18,700
edits
m (→Using it: the WinXP patch is no longer found on the Blam page) |
m (Mac OS X -> macOS; PC -> Windows (missed these somehow until now)) |
||
Line 110: | Line 110: | ||
;Data size on different platforms | ;Data size on different platforms | ||
:In the | :In the Windows retail, Windows demo and macOS PPC builds, every row of the lookup table takes up 16 bytes; the 3 pointers and the ID are 4-byte data words (Little Endian on PC, Big Endian on PPC Macs); if a cheat has no "disabled" message, the row's third pointer is null. | ||
<!--This does not appear to be true, not sure what version geyser was looking at. The item below this claimed to be for the Mac beta, but it's actually true of the Mac retail app. --Iritscen | <!--This does not appear to be true, not sure what version geyser was looking at. The item below this claimed to be for the Mac beta, but it's actually true of the Mac retail app. --Iritscen | ||
:In the Mac OS 9 retail and demo, every row of the lookup table takes up 8 bytes; the 3 pointers and the ID are 3-byte data words (Big Endian); if a cheat has no "disabled" message, the last byte of the third element is taken up by the ID (the remaining 2 bytes are garbage, as well as the ID field).--> | :In the Mac OS 9 retail and demo, every row of the lookup table takes up 8 bytes; the 3 pointers and the ID are 3-byte data words (Big Endian); if a cheat has no "disabled" message, the last byte of the third element is taken up by the ID (the remaining 2 bytes are garbage, as well as the ID field).--> | ||
Line 116: | Line 116: | ||
====Let's kill killmequick==== | ====Let's kill killmequick==== | ||
In the | In the Windows, Windows demo and macOS PPC builds, there's extra space at the end of the lookup table and where the cheat codes/messages are stored, so one can add '''thedayismine''' as an extra cheat. On Mac OS 9, the data is packed tighter (and the text strings are stored together with their size), so the only easy way is to replace an existing cheat. Since replacing an existing cheat is the only solution that works on all platforms, the following mini-tutorial will explain how to bind the Developer Mode cheat event to the Ultra Mode cheat code '''killmequick''' (since hardly anyone uses that cheat). | ||
====Finding the lookup table==== | ====Finding the lookup table==== | ||
Open the executable (or the data fork of the executable in the Mac OS 9 build), after backing it up of course.... We shall look for the last three elements of the table, corresponding to '''fistsoflegend''', '''killmequick''' and '''carousel'''. | Open the executable (or the data fork of the executable in the Mac OS 9 build), after backing it up of course.... We shall look for the last three elements of the table, corresponding to '''fistsoflegend''', '''killmequick''' and '''carousel'''. | ||
;In the | ;In the Windows retail and demo builds, look for '''13 00 00 00 ## ## ## ## ## ## ## ## ## ## ## ## 14 00 00 00 ## ## ## ## ## ## ## ## ## ## ## ## 15 00 00 00''' | ||
;In the | ;In the macOS PPC build, look for '''00 00 00 13 ## ## ## ## ## ## ## ## ## ## ## ## 00 00 00 14 ## ## ## ## ## ## ## ## ## ## ## ## 00 00 00 15''' ([[:File:Finding killmequick - Omni build.jpg|sample pic]]) | ||
;In the Mac OS 9 | ;In the Mac OS 9 build, look for '''00 13 ## ## ## ## ## ## 00 14 ## ## ## ## ## ## 00 15''' ([[:File:Finding killmequick - Mac OS 9 build.jpg|sample pic]]) | ||
; | ; | ||
where the ## are joker characters (wildcard bytes). Once you've found that data (make sure it occurs only once in the file), replace the '''14''' with a '''0B'''. | where the ## are joker characters (wildcard bytes). Once you've found that data (make sure it occurs only once in the file), replace the '''14''' with a '''0B'''. |