This is a based off of GenLauncher. Tested on Windows 10 and Ubuntu.
- The original is writen in
.NET Framework, which generally isn't suppport on Linux - I comtemplated migrated
.NET Framworkto.NET Core, but.NET Coreisn't support on BSD, which is a goal - A Systems language is a better language for this kind of tool, as the code base dropped from ~100k loc to ~20k loc.
- I have limited time to support this and LLMs are better at rust
- Grab a binary from the releases
- Move the binary into the Generals folder
- run executable (Linux users may need to
chmod +xbinary)
You don't have to launch the vanilla game first, as
GenLauncher-Linuxwill create theoptions.inifile if it doesn't exist.
If you're having issues running the game, check protondb and configure the compatability mode of the game to use the newest version of proton. I used
experimentalon ubuntu26.
- lock file rather than a mutex, so it works the same on Windows/Linux.
- extraction attempts
7z,unarorunrarif one is on PATH. - No self-update
- No advertising card
- Modded executable.
Use modded exe files[default] now downloads the repository'sModdedExeand runs it. - With
Install and autoupdate Gentoolon [default], each game launch checks gentool.net and installs or updates GenTool'sd3d8.dllin the game folder. With it off,d3d8.dllis moved aside for the run.
-
Steam edition sometimes gets error "Failed to fetch Steam App Name!". Make sure
Use modded exe filesis on. -
With more than one monitor, the game can ignore the mouse. This is due to how Wine runs the virtual desktop
-
If the game is running, GenLauncher will refuse to close by design to prevent any race condition from the lock file.
bumping
versioninCargo.tomltriggers therelease.ymlCI
cargo run --releasecargo testOn Linux, one more drives a whole launch through a stand-in wine script: mod
linking into differently-cased folders, the environment Wine receives, waiting
for game.dat, and restoring the folder. It claims the process-wide game
folder, so run it on its own (CI does):
cargo test proton_launch_end_to_end -- --ignored| Action | What |
|---|---|
| Start-up | the repository index and the manifests/logos of mods you already have |
| Adding a mod | that mod's manifest and its patch/addon manifests |
| Installing | the mod's files, from its S3 bucket or its share link |
| Installing (S3 only) | one SNTP query to time.windows.com, to warn about a skewed clock |
| Launching with GenTool on | the gentool.net front page, and GenTool itself when it is missing or outdated |
| Launching Zero Hour with "Use modded exe files" on | the repository's modded executable, once |
| Launching with Vulkan on | the Vulkan layer, if the repository has a newer one |