This is a sub-page of Help:Contents/Terminology.
A "debug mode" is a broad term used to describe a feature or series of features included in a game by the development team to allow quick testing of the game's various features. While many of these testing features are removed from games before they reach store shelves, there are quite a number that were simply hidden away, often only discovered years later.
Common features of debug modes include, but are not necessarily limited to:
- Stage selection (some are even so detailed as to let you select any part of a stage)
- Free movement (can pass through walls, objects, etc.)
- All items/powerups (for games that use an inventory or powerup system)
- Music and/or sound effect tests
- Sprite tests and other graphic viewers
- Frame by frame movement
- Assorted hardware diagnostic tests
- Memory/CPU load meters
In some instances, it's possible to access debug modes via button codes (which are often very complex) or another equally obscure method, but more often, the physical link to them was removed entirely, leaving cheat devices such as Game Genie, GameShark, and Action Replay as the only way to restore their functionality.
While there are technically an endless number of ways that debug mode can be presented, they're all basically variations of one of four basic methods: standard menus, debug rooms, special debugging items, and on-the-fly button triggers.
Usually activated from either the title screen or the pause menu/subscreen, this is the most prominent type of debug mode: a simple menu with a list of options. More often than not, these menus are somewhat user-unfriendly, either being somewhat glitchy, the choices presented being mere word fragments, or a combination thereof. These menus usually include a number of the basic features listed above, and often several other things related specifically to the game it's included in.
These are also the most likely of all the debug modes to be accessible via button codes.
Games for platforms with keyboards sometimes have a console where you can type in commands that perform various functions. There can often be a huge list of commands supported, some of which have multiple purposes. The user-friendliness can vary. Some games provide context-sensitive auto-completion, while others don't even let you edit the command that you're typing.
Many games with a debug console list it discretely in the controls configuration, having a dedicated button to open the console.
Debug Command Line Arguments
Games for platforms with operating systems sometimes have secret undocumented command line arguments. These can be used for a lot of things, but the simplest ones just enable an otherwise unused feature. Others can let you do things like load unused levels and enable other debugging functionality.
Similarly, some games (mostly arcade games) come with DIP switches, owner only buttons and soldering points for setting flags directly in the hardware. These are sometimes used to perform simple modifications like swapping out the title screen with one for a "completely different" game.
Debug rooms differ from debug menus in that they tend to be presented as an actual area of the game, where the player can move around and interact with many of the game's objects and obstacles in real-time. These are far more common in RPGs than any other genre (although they're far from uncommon elsewhere, it should be noted), and most debug rooms are actually not one single room, but rather a series of rooms, connected from a main hub.
In general, debug rooms are usually far more powerful debugging tools than standard menus, especially when present in RPGs, simply due to the sheer number of variables present that particular genre. It's not uncommon to find not only all the features you'd come across in a debug menu, but also battle tests, full character select options, options to give you loads of items and whatever the game's currency is, and the option to test specific scenes or movies. In more action-based games, these also usually contain various physics/terrain tests, such as water and varying types of platforms.
A cheat device or heavy glitching is almost always necessary to access a debug room.
In RPGs and other games that utilize inventories, one can occasionally come across items of extreme power with no actual way to obtain them outside of cheat devices. Different from standard dummied-out items, however, is that these were intentionally left out, since they were intended only to be used by the development team for testing purposes.
Their effects differ, naturally, but include a range of effects such as stat/level maxing, filling the inventory, or allowing quick warping to any location within the game. Infinite-use versions of items you'd otherwise only be able to use once are also fairly common debug items.
Finally, a debug mode typical of action games/platformers. Instead of a menu, area, or items, once this debug mode is active all the functions are triggered on the fly by pressing a button or combination of buttons on the controller/keyboard. Instant health restoration, full power, free movement, and stage skipping are all common features in this style of debug mode.
For single-player games, the debug commands are sometimes mapped to the second controller.
Games with password inputs sometimes have special passwords that are never mentioned/generated by the game. These passwords tend to allow access to special modes such as sound tests and debug menus, or simpler effects like invincibility and jumping to parts of the game that aren't normally accessible via password. These passwords can usually be entered and activated in an unmodified retail copy of a game, though sometimes the programmers will intentionally disable them by either removing the checks for them, or by adding "invalid" characters so they cannot be entered.
Sometimes the line between "debug passwords" and those that merely set a value higher than is normally possible (e.g. a password for 255 keys in a game that never gives you that many) can be kind of fuzzy. Generally, passwords that were generated by an external password generator that allows you to manually set these values should not be included here, as there is no way to tell if this functionality was intended to be used for debugging at one point, or is merely a side effect of the way the password system was implemented.
Developers often find it useful to write log messages to track what the game is doing. These logs are typically not shown during gameplay. They are most commonly seen as log files in some obscure folder for the game. But some games use log systems that require an attached debugger of some sort. If the game has a debug console then it often doubles as the log display.