This repository contains game-specific hacks and patches for Mono/FNA games on low power SBCs and handhelds, and the required tooling to comfortably develop and deploy said patches are provided here.
This isn't meant for end-users, but for development reference or contribution. Please refer to your favorite supported packaging system, such as PortMaster.
What follows is a non-exhaustive guide on how to first build the patch, it won't go into details on how to actually work with Harmony or how to approach the patch development. If you're looking for those, read Harmony's documentation, MonoMod's documentation and check out ILSpy.
deps
folder, refer to the dot files included.DEPS_FOLDER
: Where the referenced game assemblies are.MONO_PREFIX
: Where your mono install is.COMPILER
: Where your VisFree.exe
assembly is.Example:
export CONFIGURATION=Debug
export COMPILER=VisFree/bin/Debug/VisFree.exe
export MONO_PREFIX=~/mono-6.12.0.122/built
export DEPS_FOLDER=~/.steam/steam/SteamApps/common/Celeste
git clone --recursive https://github.com/JohnnyonFlame/FNAPatches
(cd deps/Harmony && wget https://github.com/pardeike/Harmony/releases/download/v2.2.1.0/Harmony.2.2.1.0.zip && unzip Harmony.2.2.1.0.zip)
(cd deps/MonoMod && wget https://github.com/MonoMod/MonoMod/releases/download/v22.05.01.01/MonoMod-22.05.01.01-net452.zip && unzip MonoMod-22.05.01.01-net452.zip)
(cd deps/FNA && wget https://github.com/JohnnyonFlame/FNAHacks/releases/download/IntPtr-SoundEffect/FNA_3d954a5-aarch64.tar.gz && tar zxvf FNA_3d954a5-aarch64.tar.gz --strip-components=1 --wildcards dlls/\*.dll)
make -C VisFree
make libs
make Celeste
The files in this repository are free software licensed under MIT, read the License File for reference.