Duck Game Linux FNA patches
Because Duck Game forgets to mkdir and wine is slow
MIT-licensed
Feel free to discuss this on Reddit!
Screenshots, GamingOnLinux.com article
0x0ade on Twitter, Patreon
You can support me on Patreon!
This project wouldn't be possible without the support from:
- Ethan Lee: Thank you for creating FNA!
- Artus Elias Meyer-Toms, Renaud Bedard and Ryan Kistner: I wouldn't be able to get my hands on the game without your support!
Usage instructions:
Preparations:
- Get yourself a fresh copy of Duck Game, f.e. via Steam... through Wine... or from a friend with Windows.
- Install
mono-complete
and libcurl3:i386
and ffmpeg
(or matching) via your package manager.
ffmpeg
, not "libav
" / avconv
.
Installing / updating:
- Download the latest released DuckGame-Linux-Complete.zip
- Extract the .zip into the Duck Game directory. Overwrite the original files when extracting.
XnaToFna.exe
, and DuckGame.exe
should be next to each other; The old Steam.dll
should be replaced by the one in the .zip.
- Open terminal in Duck Game directory, run
chmod a+x ./mod.sh; ./mod.sh
mod.sh
creates a backup of important files in an orig
subdirectory, which XnaToFna needs. It also gives all files in the directory read-write permissions for all users, otherwise both XnaToFna and MonoMod will fail.
- Run
mono DuckGame.exe
OR Launch the game via Steam (add DuckGame.sh
to your library as "non-Steam game").
- Be a duck with a gun!
The game stores its save data in ~/DuckGame
, which is technically the same as on Windows.
Current collection of patches:
- XnaToFna gets the game running using FNA instead of XNA. Thanks to flibitijibibo for FNA. Without him this wouldn't be possible!
- Non-mixed-mode Steam.dll "proxy" to Steamworks.NET - this allows you to use Steam functionality natively... although it still contains a few holes. Working on it!
- More verbose fatal error logging that help you when patching the game.
- Create missing directories automatically. Does Windows just implicitly create the directories?!
- Automatically pass -nothreading because it's faster.
- Automatically pass -nomods because the mods would need to be relinked to FNA. This doesn't happen automagically yet.
- Fix
ModLoader.modHash == null
, not "nomods"
when -nomods
is passed. This also affects vanilla Duck Game and can kill Steam.
If for whatever reason something doesn't work, please create an issue on GitHub. I want this to work for everyone!