Most of the cheat sites have a “Debug menu” code listed for Herdy Gerdy, the 2002 game from Core Design and Eidos Interactive:

One problem: this code doesn’t work. If you put it in, nothing happens. What’s going on? Let’s check the game data to find out.
The real cheat mode code
When you’re on the title screen, the function at 002edc50 is polling for input. Its logic looks like this pseudo-Python:
def check_cheat_mode_002edc50():
if cheat_mode_enabled_00352350 == 0:
target_button = cheat_01_buttons_0045c078[cheat_mode_counter_00465ef0]
if target_button == 0x7777:
return 1
if p1_pressed_003533a0 == target_button:
cheat_mode_counter_00465ef0 += 1
elif p1_pressed_003533a0 == 0:
return 0
else:
cheat_mode_counter_00465ef0 = 0
return 0
else:
cheat_mode_counter_00465ef0 = 0
return 0This is a typical variation on the “cheat code listener” function. It checks button presses against a sequence of patterns. For each correct one, it increments a counter (and resets it for each incorrect one).
The sequence of patterns is stored at 0045c078:
[0x08, 0x02, 0x08, 0x02, 0x400, 0x01, 0x04, 0x01, 0x04, 0x1000, 0x0100]Using the standard PlayStation pattern-to-button mapping, this translates to:
R1, R2, R1, R2, Down, L2, L1, L2, L1, Up, Select
It looks like the cheat site listings exchanged R and L? If you put the code in correctly, the main menu will indeed reappear with new items:
Cheat Off (clears this cheat code’s effect)
Play Level (choose starting level)
Character Viewer (doesn’t work very well)
Movie Viewer (cutscenes)
Map Screen
Save Game
Load All Levels (shows each level for a few seconds)
FMV Player (doesn’t work)
FMV Batch Player (doesn’t work)
Open Secrets (unlocks the Extras)
During gameplay, the pause menu will also have new items:
Cheat Off (disables cheat mode)
Select a new level
Reload cutscenes (doesn’t work)
Play cutscene (doesn’t work)
Give me all items / Remove all items
Costume Stick / Boots / Flute / Horn / Feather / Hammer / Gloves / Suit (equips an item)
Open all routes / Close all routes
Herd all creatures
Play flyby / Stop flyby (shows the level)
Record flyby (doesn’t work)
Reset movies
Show memory usage (works, but is obscured by the pause menu)
Lastly, you’ll be able to move Gerdy up to an arbitrary height by holding D-pad right. This can easily take you out of bounds.
Another debug mode code
The cheat code listener function above isn’t the only one polling for input at the main menu. There’s another one at 002edcf0 that implements the same logic. Maybe the developers were strapped for time and it was easier to duplicate the first function than to add a parameter to it?
The only thing different about the second function is that it’s looking for this sequence:
L1, L2, R2, R1, L1, L2, R2, R1, Select
When entered, this code enables debug features that can be used with Controller 2. Press Select to change which feature is active.
One of the debug features lets you turn off graphics layers. Use the D-pad Left and Right to control character models and D-pad Up and Down to control backgrounds and objects:
A second feature puts a Speed meter onscreen. Trajectories of mobile objects will be highlighted in red if you press Down on the D-pad:
A third feature lets you alter sound effects. The HUD for this feature shows the controls:
Outro
For previous adventures in correcting mistakes on cheat sites, see the articles on Ford Racing, Ford Racing 3, Syphon Filter 3, RoboCop, and Championship Motorcross.
I’ll be back with more retro game reverse engineering soon. Subscribe to Rings of Saturn to get the next edition as soon as it’s available:








