Debugging features within Pokémon Red/Blue/Yellow

From Glitch City Wiki
Revision as of 17:11, 24 September 2010 by >Torchickens (→‎Error handler names)
This article is a summary page for different variations of a glitches, etc. when talked about as a whole.

It is likely that Pokémon Red and Green and its sequels and localizations, like most other modern video games featured debugging features at one time in their development. This can be supported in an "Iwata Asks" interview by Satoru Iwata with Tsunekaz Ishihara and Shigeki Morimoto regarding the release of Pokémon HeartGold and SoulSilver, where Shigeki Morimoto mentioned that "debugging features which weren't going to be included in the final version of the game were removed, creating a miniscule 300 bytes of free space." in which the developers managed to fit Mew later in the empty space.[1]

Further details of the mentioned debugging features however, are not known although there are a few 'hints' of their existence, such as the original first generation error codes which have not been officially explained by Nintendo.

Error codes

Main article: Error codes#In Generation I

In the original Pokémon Red and Blue, the term "ERROR" appears in the game script, regardless of the fact that such 'errors', have not been officially explained by Nintendo or the game instruction booklet. Error codes often appear in dialogue boxes in the form of "X ERROR" when performing a different variation of the Ditto Trick, where a dialogue box will be forced open instead of the player's menu displaying "X ERROR", often appearing in between glitch dialog. 'Legitimate' error codes appear to range from 1 to 99 however, other error codes do exist may be withdrawn by the game such as 0 ERROR. However, since error messages often appear within glitch dialogue, what appears to be a two digit error code may actually be a one digit error code, with a number or symbol formed by arbitrary, or 'junk' data before it. Since there are no pointers which bring up an error code in a typical play-through, perhaps the error codes are considerable as pre-cursors for the more complicated error handlers, presumably once for debugging features in Pokémon Gold and Silver such as Object Event and No windows avail-able for popping.

Printer errors were added to Pokémon Yellow and the term "ERROR", although changed to the lower-case "error" is used in the game when attempting but failing to print the Pikachu's Beach mini-game scores. Regardless, the game will occasionally use the term "error" elsewhere when performing an alternative version of the Ditto Trick, as was the case in Pokémon Red and Green which instead used the unexplained upper-case "ERROR".

Error handler names

Error handlers sometimes substitute what appears to be an invalid identifier in an internal memory address to prevent the game otherwise from translating 'junk data', for example glitch item and glitch Pokémon names. Since their purposes are not officially mentioned by Nintendo or the game instruction booklet, these presumably were designed to inform the game developers of such errors when programming the game.

  1. ?????: ????? appears to be an error handler for a removed item which exists simply to inform the game developers that its purpose is no longer defined.
Associated item's effect: It is possible, though less likely that since the only item associated with ????? appears to have the unused item effect identical to that of using the move Surf outside of battle, perhaps this item was used to help the game developers progress quickly through the game.
2. MISSINGNO.: The well known error handler MISSINGNO. is used for invalid, formatted Pokémon with identifiers in the species byte in between those of real Pokémon. It was likely used to inform the game developers that if they were to manage a 'removed Pokémon' (with the amount of 'MISSINGNO.'s interestingly bringing the theoretical total amount of Pokémon to 190) its associated game data can no longer be found.

Sound bank pointer test (Yellow only)

What may be the remnants of a sound bank pointer test exists only within Pokémon Yellow. By setting the game's internal sound-bank pointers to values of (01,01) on the title screen footage a dialogue box with illegible text appears beneath the 'Game Freak' section and an 'item-get' sound is played, although it can only be heard by setting the sound bank values back to used integers such as (1F,1F: Title screen/Cave). Only three valid sound banks existed within Pokémon Red and Green and the later Pokémon Red and Blue whilst an extra sound font was added in Pokémon Yellow used for scenarios such as the Pikachu's Beach minigame hence testing a new sound bank pointer may have been desirable when Pokémon Yellow was still in development.