A patch for Pre-Release versions of TrackMania Forever to remove the online master server check.
Copy the TMFOffline.asi file into the game directory. You need to use either an ASI loader (like Ultimate-ASI-Loader) or inject the file it via Cheat Engine before selecting a profile.
This patch is currently compatible with the following games:
- TmNationsForever Beta4
- TmNationsForever Beta5
- TmNationsForever RC1
- TmNationsForever RC2
- TmNationsForever RC3
- This patch flips a instruction that checks if the game is connected to the master server. That means it will reverse the effect if you are connected. (It will kick you out.) Please use in offline only.
Simply use cmake in your output directory to generate a makefile, then run make TMFOffline.
If you're using Linux and want to cross-compile for Windows, run the included build_linux_crosscompile.sh
You may need to install the mingw-w64 toolchain.
# apt install mingw-w64
This project uses the minhook library.
Q: Why?
A: This patch was made to ensure these Pre-Release versions of TmForever are preserved forever. Once the official master servers will eventually shut down, it would be impossible to run these builds without a patch like this one.
Q: Why a runtime DLL, instead of patched game exe?
A: Unfortunately in order to make these games work offline, more effort is required than just flipping a single jump operation, which is not feasable to do via simple binary editing.
Q: How?
A: The patch does two things:
- Flips a
JNZinstruction toJZin order to skip the "You must be connected to the internet" dialog. - The packlist data is injected before installing pack files.
The second step is needed, because the game only accepts the packlist received from the master server.