Debug Menus

Debug Menus are sections of a game that developers used for testing purposes and usually allow for actions unavailable within normal gameplay. Finding these anomalies can prove difficult because the game usually has no direct access to these features after it has been released. In most cases these types of codes are found accidentally through the modification of random memory ranges using a memory editor (usually by changing the value at each address in a block of addresses from 00 to 01). Although most debug menus are visible on screen there are a few that do not display information yet rely on key press combinations to produce the desired effect.

The Method:

To determine if the game in question could possibly have a Debug Menu, you can try relative/hexadecimal text searches within the games memory (Usually using a hex/memory editor). Searching for terms like "Debug", "Menu", "Cheat" and their hex equivalents may bring you to a section of memory that holds the debug information. Some games may use a separate language all together when storing these text strings as most menu items will be labeled in the programmers native language. Also based on which processor the system is using the text could be stored in reverse.

When you think you have found something use a debugger to locate cross-references to that address (in reverse) to find the calling routine. Not all debug text will lead to an intial calling routine however, as traces may eventually dry up where the programmer removed the calling routine. In this case you can usually find a way to access the debug menu by implementing your own call routine elsewhere.

There may also be code already present to activate the debug menu, however may have been branched over by the programmer. These types of routines will usually contain the calling sequence of key press combinations or a similar compare method for calling an in-game debug menu.