Debugging features within Pokémon Red/Blue/Yellow: Difference between revisions

From Glitch City Wiki
Jump to navigation Jump to search
Content added Content deleted
>Torchickens
 
(15 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Debugging summary pages}}
{{Debugging summary pages}}
{{Summary page}}
{{Summary page}}
{{Outdated|Missing 'debug new game' and test battle features}}
[[bp:Pokémon Red and Green|Pokémon Red and Green]] featured debugging features at one time in their development. This is confirmed in an "Iwata Asks" interview by Satoru Iwata with Tsunekazu Ishihara and Shigeki Morimoto regarding the release of [[bp:Pokémon HeartGold and SoulSilver|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.[http://nintendodsi.com/iwata-asks-chapter.jsp?interviewId=6&volumeId=1&chapterId=1]


Further details of the mentioned debugging features are not known, but there is one hint of their existence, namely the original first generation [[error codes]] which have not been officially explained by Nintendo.
It is likely that Pokémon Red and Green, 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 [[bp:Pokémon HeartGold and SoulSilver|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.[http://nintendodsi.com/iwata-asks-chapter.jsp?interviewId=6&volumeId=1&chapterId=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==
==Error codes==
''Main article: [[Error codes#In Generation I]]''
''Main article: [[Error codes#In Generation I]]''


ERROR codes in Pokémon Red/Blue/Yellow (known as "error" codes in Pokémon Yellow) appear in the form of "(X ERROR)" when there is a 00 character in the middle of a text box (normally only possible through [[glitch dialog]]). The actual number, X, marks the 'text box ID' . All text after the error code is removed, but text, including numbers can appear before the error code, giving a false impression that the error code is of a higher value than it actually is.
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 dialogue]]. '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]].

An example of an error code in action without a [[cheating device]] is this:

#In Pokémon Yellow, perform the [[Trainer-Fly glitch]] to fly away from the long range Trainer on Route 6.
#Fight any Trainer on a route other than Route 6 and either win or lose. #Read the sign that says 'VERMILION CITY The Port of Exquisite Sunsets'.
#Return to Route 6 and an '8 error' will appear.


In Pokémon Red and Blue, the 'Port of Exquisite Sunsets' sign step can be replaced with the PokéMart sign to get a '9 error'.
==Error handler names==


Printer errors were added to Pokémon Yellow and the lowercase word "error" is used for an instance of printer error related text that is used when trying to print the player's high-score in the Summer Beach house (Surfing Pikachu minigame house), getting a highscore and exiting, however "PRINT error!" is part of a completely different text string, and has an "!" mark that the ("X error") phrase does not.
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.


==Placeholder terms==
#'''?????''': ????? 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 [[bp:Surf (move)|Surf]] outside of battle, perhaps this item was used to help the game developers progress quickly through the game.


Placeholder terms for the purpose of this article are names used for unused entries in a list that were 'dummied out', i.e. made valid.
2.'''MISSINGNO.''': The well known error handler [[MISSINGNO. (name)|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.


#'''?????''': ????? is an item name for the unused items with index numbers of hex:07 (aka the '[[ItemDex/RGBY:007|surfboard]]') and hex:2C ([[ItemDex/RGBY:044|an unusable item]]). The term is the same in the Japanese games.
==Sound bank pointer test (Yellow only)==
#'''[[Missingno.]]''': Contrary to popular belief, Missingno. is not an error handler for invalid Pokémon in general. Only 39 invalid Pokémon are called Missingno. and all of the invalid Pokémon index numbers past hex:BE (dec:190), counting 00 as 256, have glitched names. Though most data about Missingno. is invalid, not all of it is. For example, 30 Missingno. have blanked out cries and 9 have unused cries. At least some of these Pokémon may have been worked with before. According to [http://www.smogon.com/forums/threads/there-were-190-pok%C3%A9mon.78267/ a post from Zog on Smogon], Shigeki Morimoto confirmed that there were originally 190 Pokémon (151+39), and that the rest were saved for later.


The developers may have either added in 'Missingno.' as a placeholder for if they wanted to add more Pokémon into the game, or replaced a 'scrapped Pokémon' for Generation I with "Missingno." (the latter is more likely for the Missingno. with unused cries).
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.
[[Category:Debugging features]]

Latest revision as of 00:09, 7 July 2023

Summary pages of debugging features within the Pokémon games:

Pokémon Red/Blue/Yellow | Pokémon Gold/Silver/Crystal | Pokémon Ruby/Sapphire/Emerald | Pokémon Mystery Dungeon: Red and Blue Rescue Team | Pokémon Platinum | Pokémon Mystery Dungeon: Explorers of Sky | Pokemon HeartGold and SoulSilver




(view, talk, edit)
This article is a summary page for different variations of a glitches, etc. when talked about as a whole.
This article is outdated

Feel free to update it.

Reason given: Missing 'debug new game' and test battle features


Pokémon Red and Green featured debugging features at one time in their development. This is confirmed in an "Iwata Asks" interview by Satoru Iwata with Tsunekazu 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 are not known, but there is one hint of their existence, namely the original first generation error codes which have not been officially explained by Nintendo.

Error codes

Main article: Error codes#In Generation I

ERROR codes in Pokémon Red/Blue/Yellow (known as "error" codes in Pokémon Yellow) appear in the form of "(X ERROR)" when there is a 00 character in the middle of a text box (normally only possible through glitch dialog). The actual number, X, marks the 'text box ID' . All text after the error code is removed, but text, including numbers can appear before the error code, giving a false impression that the error code is of a higher value than it actually is.

An example of an error code in action without a cheating device is this:

  1. In Pokémon Yellow, perform the Trainer-Fly glitch to fly away from the long range Trainer on Route 6.
  2. Fight any Trainer on a route other than Route 6 and either win or lose. #Read the sign that says 'VERMILION CITY The Port of Exquisite Sunsets'.
  3. Return to Route 6 and an '8 error' will appear.

In Pokémon Red and Blue, the 'Port of Exquisite Sunsets' sign step can be replaced with the PokéMart sign to get a '9 error'.

Printer errors were added to Pokémon Yellow and the lowercase word "error" is used for an instance of printer error related text that is used when trying to print the player's high-score in the Summer Beach house (Surfing Pikachu minigame house), getting a highscore and exiting, however "PRINT error!" is part of a completely different text string, and has an "!" mark that the ("X error") phrase does not.

Placeholder terms

Placeholder terms for the purpose of this article are names used for unused entries in a list that were 'dummied out', i.e. made valid.

  1. ?????: ????? is an item name for the unused items with index numbers of hex:07 (aka the 'surfboard') and hex:2C (an unusable item). The term is the same in the Japanese games.
  2. Missingno.: Contrary to popular belief, Missingno. is not an error handler for invalid Pokémon in general. Only 39 invalid Pokémon are called Missingno. and all of the invalid Pokémon index numbers past hex:BE (dec:190), counting 00 as 256, have glitched names. Though most data about Missingno. is invalid, not all of it is. For example, 30 Missingno. have blanked out cries and 9 have unused cries. At least some of these Pokémon may have been worked with before. According to a post from Zog on Smogon, Shigeki Morimoto confirmed that there were originally 190 Pokémon (151+39), and that the rest were saved for later.

The developers may have either added in 'Missingno.' as a placeholder for if they wanted to add more Pokémon into the game, or replaced a 'scrapped Pokémon' for Generation I with "Missingno." (the latter is more likely for the Missingno. with unused cries).