I was hoping some of you wouldn't mind testing it. Presenting:
BotF Patcher
Get it here:
If you're running Windows, just extract the ZIP file, and run the EXE (make sure you extract the patches too).
If you're prototyping a mod, make a Trek.exe backup before goofing with this! I'm 99% confident it won't mess anything up, but you never know.
What do all those colors mean?
After you open a Trek.exe, the list of patches may be colored or not. If not, then none of the listed patches are installed. If a patch is:
- green: it is installed;
- bright red with !: it's not installed or it's not vanilla; this means there's probably another conflicting patch installed (but that patch may not be in the list). It might not be wise to install or remove these patches (it's up to you);
- yellow with +: this means that you've selected a patch to be installed (when you hit "apply");
- dull red with -: this means that you've selected a patch to be removed (when you hit "apply");
- otherwise: the patch is not installed (i.e. vanilla code was detected).
The Patch Database
The patch database is not complete. It includes most of the ECM3 patches, but there are plenty of cool patches not included (yet). You can post requests for patches if you like.
If you make any new patch files, or fix up the existing ones, please post them here or PM me, and I will update the database for everyone.
Patch File Format
Each patch is in its own .patch file. They're just text files, so you can use any text editor to edit the patch files. You'll find them in the "patches" folder. Here's an example patch:
Code: Select all
NAME: Send Chat Messages with Return Key
DESC: Makes the multiplayer chat window behave more like an instant message client.
AUTHOR: QuasarDonkey
URL: https://www.armadafleetcommand.com/onscreen/botf/viewtopic.php?f=9&t=2199
# This is the old vanilla code:
>> 0x1099c9 89 C8 E8 D0 61 03 00
# This the new patched code:
<< 0x1099c9 E8 22 FD FF FF 31 C0
The real meat is in the << and >> tags. Think out >> with the old, in << with the new. The first number after << or >> is the file offset in hex. The other numbers are the bytes (in hex). You can type as many bytes as you want in one line, or split them up into multiple << commands on separate lines. Note you must provide both vanilla code as well as the patched code. This is so the patch can be uninstalled (and it's used to test for conflicts).
The Future
There's still some features that could be added, like multilingual support (you're stuck with English for now). The ability to flag unknown patches/mods would be nice. I think it's better to spend time actually building the patch database first, to make it as useful as possible, because:
The tool is only as good as the patch database. If your version of Trek.exe is patched with something not listed in the database, it will either not show up at all, or it will show up as a conflict in another patch (red with exclamation).