196 lines
3.8 KiB
Markdown
196 lines
3.8 KiB
Markdown
# Elsword-GE Build Project
|
|
|
|
This repository builds two custom Proton-GE 11 compatibility tools for Elsword on Linux/Steam:
|
|
|
|
- `Elsword-GE-10-34`
|
|
- `Elsword-GE-10-34+dxvk-git`
|
|
|
|
It is designed for NixOS and for hosting on a private or public Gitea server with Gitea Actions.
|
|
|
|
## What this project does
|
|
|
|
- Builds a Proton-GE 10-34 / Wine 10 based compatibility tool for Elsword.
|
|
- Uses Steam Linux Runtime 4 (`soldier`, appid `4183110`).
|
|
- Builds DXVK for both x86 and x64.
|
|
- Produces release archives that other users can install into Steam.
|
|
- Disables optional extras that are known to be risky for game stability by default:
|
|
- `PROTON_DISCORD_BRIDGE=0`
|
|
- `PROTON_USE_OPTISCALER=0`
|
|
- `PROTON_USE_D7VK=0`
|
|
- `MANGOHUD=0`
|
|
- `ENABLE_VKBASALT=0`
|
|
|
|
## What this project does not do
|
|
|
|
- No GameGuard bypass.
|
|
- No anti-cheat bypass.
|
|
- No patching or hooking of GameGuard.
|
|
- No hard override of `LOW_LATENCY_LAYER`.
|
|
- No global hard override of `LD_PRELOAD`.
|
|
|
|
## Variant difference
|
|
|
|
- `Elsword-GE-10-34`
|
|
- Proton-GE 11 base
|
|
- DXVK newest stable release at build time
|
|
|
|
- `Elsword-GE-10-34+dxvk-git`
|
|
- Proton-GE 11 base
|
|
- DXVK from current upstream Git
|
|
|
|
## Repository layout
|
|
|
|
```text
|
|
.
|
|
├── flake.nix
|
|
├── README.md
|
|
├── LICENSE
|
|
├── .gitignore
|
|
├── .gitea/
|
|
│ └── workflows/
|
|
│ └── build.yml
|
|
├── scripts/
|
|
│ ├── common.sh
|
|
│ ├── build.sh
|
|
│ ├── package.sh
|
|
│ ├── install-to-steam.sh
|
|
│ ├── validate-build.sh
|
|
│ └── create-release-archive.sh
|
|
├── patches/
|
|
│ └── proton-defaults-elsword.patch
|
|
├── profiles/
|
|
│ └── elsword-launch-options.md
|
|
└── dist/
|
|
```
|
|
|
|
## NixOS prerequisites
|
|
|
|
Use the provided flake:
|
|
|
|
```bash
|
|
nix develop
|
|
```
|
|
|
|
The shell includes build dependencies such as:
|
|
|
|
- git
|
|
- bash
|
|
- coreutils
|
|
- findutils
|
|
- gnused
|
|
- gnugrep
|
|
- gawk
|
|
- jq
|
|
- curl
|
|
- wget
|
|
- tar
|
|
- zstd
|
|
- meson
|
|
- ninja
|
|
- python3
|
|
- pkg-config
|
|
- cmake
|
|
- perl
|
|
- patchelf
|
|
- binutils
|
|
- mingw-w64 toolchains for `i686` and `x86_64`
|
|
- Wine / wow64 support
|
|
|
|
## Local build
|
|
|
|
Build the stable DXVK variant:
|
|
|
|
```bash
|
|
nix develop -c ./scripts/build.sh stable
|
|
```
|
|
|
|
Build the DXVK Git variant:
|
|
|
|
```bash
|
|
nix develop -c ./scripts/build.sh dxvk-git
|
|
```
|
|
|
|
Build both:
|
|
|
|
```bash
|
|
nix develop -c ./scripts/build.sh all
|
|
```
|
|
|
|
Package both into release archives:
|
|
|
|
```bash
|
|
nix develop -c ./scripts/create-release-archive.sh
|
|
```
|
|
|
|
## Output files
|
|
|
|
After packaging, the main release files are:
|
|
|
|
```text
|
|
dist/Elsword-GE-10-34.tar.zst
|
|
dist/Elsword-GE-10-34+dxvk-git.tar.zst
|
|
dist/Elsword-GE-10-34-dxvk-git.tar.zst
|
|
dist/SHA256SUMS.txt
|
|
dist/release-notes.md
|
|
```
|
|
|
|
If `+` causes issues in a filesystem or upload target, the safe alias is:
|
|
|
|
```text
|
|
Elsword-GE-10-34-dxvk-git.tar.zst
|
|
```
|
|
|
|
The Steam compatibility tool name still remains exactly:
|
|
|
|
```text
|
|
Elsword-GE-10-34+dxvk-git
|
|
```
|
|
|
|
## Install into Steam
|
|
|
|
Install a built archive:
|
|
|
|
```bash
|
|
./scripts/install-to-steam.sh dist/Elsword-GE-10-34.tar.zst
|
|
./scripts/install-to-steam.sh dist/Elsword-GE-10-34+dxvk-git.tar.zst
|
|
```
|
|
|
|
Generic installer for release archives, including Flatpak Steam users:
|
|
|
|
```bash
|
|
./scripts/install-compat-tool.sh /path/to/Tool.tar.zst
|
|
./scripts/install-compat-tool.sh --flatpak /path/to/Tool.tar.zst
|
|
./scripts/install-compat-tool.sh --all /path/to/Tool.tar.zst
|
|
```
|
|
|
|
Target path:
|
|
|
|
```text
|
|
~/.local/share/Steam/compatibilitytools.d/
|
|
```
|
|
|
|
After install:
|
|
|
|
1. Fully restart Steam.
|
|
2. Open Elsword properties in Steam.
|
|
3. Select the matching compatibility tool.
|
|
|
|
## Debugging
|
|
|
|
For Proton logs:
|
|
|
|
```bash
|
|
PROTON_LOG=1 %command%
|
|
```
|
|
|
|
## Security and anti-cheat note
|
|
|
|
This project intentionally avoids:
|
|
|
|
- GameGuard bypasses
|
|
- anti-cheat bypasses
|
|
- GameGuard patches
|
|
- GameGuard hooks
|
|
|
|
The goal is only a clean Proton-GE build with complete DXVK payloads and conservative defaults for optional extras.
|