This is a patching tool that can apply multiple different hacks to the Doom 2 version 1.9 executable (709905 bytes).
This utility is a collection of hacks that were distributed on Doomworld over the years.
Most of the hacks are cumulative, which means that applying a hack doesn't change the bytes at an offset used by another hack, so you can use many of these hacks at the same time.
VANILLA
: The hack is not detected. The bytes at the offsets where the patch makes the changes are the same as vanilla.
PATCHED
: The executable is already patched with this hack.
UNKNOWN
: The executable is corrupted or an incompatible hack has already been applied.
- Increase the maximum mouse sensitivity from 9 to 127
- Increase the maximum heap size to 32MB
- Display "Picked up a medikit that you REALLY need!"
- Fix for fast doors that make two closing sounds
- Fix for the ouch face
- Fix for the duration of the SSG's muzzle flash
- Fix Arch-Vile fire spawned at the wrong location
- Disable 'Q' when recording demos
- Extend the stack allocation size (64KB => 512KB)
- Use DPCHGUN/DSCHGUN as the chaingunner's attack sound
- Enable random sound pitch
- Increase the static limits to those of Doom+
- Enable long tics
- Replace 'Deathmatch 1.0' with 'Deathmatch 3.0'
- Make the startup banner blue
The extended stack size hack is incompatible with Doom+.
Many thanks to the authors of the hacks who made them available on Doomworld. They are: Miguel Folatelli (aka myk), Andrey "entryway" Budko (aka e6y), Colin Phipps (aka cph), Randy87 and xttl. If you can't find your name here and think I forgot you, then send me an email or contact me on Doomworld.
On GNU/Linux, you can easily create a patch to be added to this script using this command:
cmp -l DOOM2.EXE HACKED.EXE | gawk '{printf "[0x%08X, 0x%02X, 0x%02X],\n", $1-1, strtonum(0$2), strtonum(0$3)}'
You can add the generated output to the Python script and make it work with minimal changes.
You may open a pull request and I will take a look at your new patch. Please, one pull request per hack.