Debugging features within Pokémon Gold/Silver/Crystal: Difference between revisions
Content deleted Content added
>Torchickens Lots of credit to IIMarckus, Hyperhacker, Tauwasser, etc. |
No edit summary |
||
(31 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{Debugging summary pages}} |
|||
{{Summary page}} |
{{Summary page}} |
||
{{Outdated|Missing Pokémon Crystal debug menu information}} |
|||
[[Image:GSCDebug menu2.png|270px|thumb|right|An unused dialogue string "Now on DEBUG..." for a possible debug menu in Pokémon Gold and Silver, although such functions do not exist in the final game, which perhaps suggests that such a feature existed in an earlier Beta version.]] |
|||
{{Factcheck}} |
|||
[[Image:GSCDebug menu2.png|270px|thumb|right|The unused text "Now on DEBUG..." used for MR. CHRONO. It remains in Pokémon Crystal.]] |
|||
Several unused features have been found within the coding of the final |
Several unused features have been found within the coding of the final versions of {{GSC}} related to debugging. |
||
==Error codes== |
|||
{{main|Error codes (Generations I and II)}}. |
|||
Error codes from {{RBY}} re-appear in Gold, Silver but in the English versions they are untranslated from the Japanese version. |
|||
They appear in the form of '(x)エラー' (read as 'erā') in the Japanese versions, but as '(x)Df-' in the English versions. |
|||
This is because the index numbers of 'エ', 'ラ' and 'ー' in the Japanese versions are hex:83, hex:A5 and hex:E3 respectively, but in the English versions, 'D', 'f' and '-' use these values. If a hex:00 character is forced in the middle of a text string in {{Crystal}}, '?' appears instead of '(x)Df-'. |
|||
==MR. CHRONO RT/DF display== |
==MR. CHRONO RT/DF display== |
||
Dialog for a non-existing NPC named 'MR. CHRONO' can be found in Pokémon Gold and Silver. If the player forces a conversation with "MR. CHRONO" he will say; "I'm MR CHRONO" and "Now on DEBUG." respectively. Prior to the "Now on DEBUG" message, an interface is displayed which shows the current time according to the "Real-Time Clock" (RT) and the DF ('time difference'). Next to the time offset; either "ON" or "OFF" is displayed. "ON" denotes that the player is using Daylight-Saving Time and "OFF" denotes that Daylight-Saving Time is disabled. |
|||
===Now on DEBUG.=== |
===Now on DEBUG.=== |
||
The "Now on DEBUG." message will appear after the RT/DF display is exited. However, this dialog string does not appear to activate any further debugging features |
The "Now on DEBUG." message will appear after the RT/DF display is exited. However, this dialog string does not appear to activate any further debugging features. |
||
====Test event XX?==== |
====Test event XX?==== |
||
A dialogue string "Test event XX?" exists within the coding of |
A dialogue string "Test event XX?" exists within the coding of Pokémon Gold/Silver, where XX is any integer between 0 and 255, for example; "Test event 04?". XX is from a memory address related to the Real-Time Clock data.{{clarify}} |
||
⚫ | |||
{{main|Pokémon and Trainer color test menu and TM/HM compatibility checker}} |
|||
[[Image:GSbColorDebug.png|270px|thumb|right|Altering the palette of Bulbasaur using the color test menu in Japanese Pokémon Gold and Silver.]] |
|||
The color test menus and TM/HM compatibility checker in Gold/Silver allow the player to change the colors of Pokémon or Trainers, and check if a Pokémon is able to learn a TM/HM. |
|||
⚫ | |||
The interface still exists in translated versions of the game, but in the English versions [[mojibake]] appears due to the screen not being localized. |
|||
Interestingly, a large unused, complex interface, presumably for in-game battles, exists within the final game. It consists of two pages; the first can be used to change the colors of Pokémon or trainers in battle and the second allows one to check the TM/HM compatability of the relevant Pokémon. Although the interface still exists within translated versions of the game, it is the most stable on the original Japanese version; as the game will attempt to manage dialogue which was removed in later versions, such as おわりますか? ("Are you finished?"), graphic bugs would also ensue due to the screen not being localised. |
|||
===Japanese text strings=== |
|||
In the Japanese version; the interface occupies memory address 3F:54F1 (v1.0 and v1.10) and can be activated by enabling the screen update service (i.e. by checking address FFD6), whether the game will attempt to manage a Pokémon or a trainer depends on the memory address CF21, where an identifier of 00 activates 'Pokémon mode' and any other identifier activates 'Trainer mode'. |
|||
The following Japanese text strings are used for this menu: |
|||
===Unused dialogue corresponding to this menu=== |
|||
⚫ | |||
The following strings of dialog, in the ROM images of the Japanese versions of Pokémon Gold and Silver are unique to this interface and are not used elswhere in the final game. |
|||
⚫ | |||
#ノーマル ({{Explain|normal|palette}}) |
#ノーマル ({{Explain|normal|palette}}) |
||
#レア ({{Explain|rare|shiny palette |
#レア ({{Explain|rare|shiny palette}}) |
||
#おわりますか? ("Are you finished?") |
#おわりますか? ("Are you finished?") |
||
#おぼえられる ("Can be taught") |
#おぼえられる ("Can be taught") |
||
#おぼえられない ("Cannot be taught") |
#おぼえられない ("Cannot be taught") |
||
⚫ | |||
[[Image:GSoColorDebug.png|270px|thumb|right|The tileset color interface]] |
|||
===First page=== |
|||
The tileset color interface is an unused debugging interface; likely related to the Pokémon/Trainer color interface exists within Pokémon Gold and Silver. |
|||
The manageable Pokémon/Trainer is initially Bulbasaur or Falkner respectively, although it can be changed by using either the Select button to change to the next Pokémon/Trainer according to identifier in the Species or Trainer byte, or the Start button to change to the previous Pokémon/Trainer. |
|||
Custom code must be written to generate the menu, but subroutines for the menu exist. |
|||
One can change the color of the front and backsprites Pokémon/Trainer via the directional pad. Three 'scroll bars' can be adjusted to change the amount of Red, Green or Blue saturation in the relevent sprite 'region'. A cursor at the top-right section of the screen denotes what region the player is managing; the left-most section changes the primary color scheme and the right-most section changes the secondary color scheme. The location of the cursor can be changed to manage another color scheme. The hexadecimal identifier (two bytes) of the final color is shown below both icons for the primary and secondary color schemes and denotes the values for each one respectively. |
|||
By pressing the A button, a player can switch between the default normal and 'rare' (shiny) palettes for the relevent Pokémon. If the player switches to a rare Pokémon palette however, the changes remain permanent for the current game session and would need to be set back to the normal color manually. |
|||
It is possible that this page may have been used by the game developers to make better decisions regarding what color palettes they should use for trainers and Pokémon in the final game, as it allows one to easily change the amount of color saturation for a particular region of the sprite in either the red, blue or green channel by using the directional pad. |
|||
===Second page=== |
|||
The player can press the B button on the first page to proceed to the second page or press the B button again to return the first page. On the second page, the game will manage the Pokémon/Trainer from the first page, using the palettes previously loaded to the game's memory. The game suggests that the menu is exitable via the A button however, although the game code to exit the menu exists, it remains unused for unknown reasons. |
|||
The directional pad on this page, can be used to select a TM or HM, with respect to its relevent identifier. After choosing a TM or HM, the game will display the message "おぼえられる" if the Pokémon can be taught that move, or "おぼえられない" if the Pokémon cannot be taught that move. |
|||
This page may have been used by the game developers to easily check whether the chosen Pokémon is capable of using a TM or HM move before deciding on its natural learn-set. |
|||
⚫ | |||
The menu is like the Pokémon and Trainer color debug menu, but enables the player to alter color settings for the map instead of Pokémon or Trainers. |
|||
Another interface; likely related to the Pokémon/Trainer color interface exists within the final builds of Pokémon Gold and Silver, but remains unused. The menu cannot normally be seen even if it is called via a [[game-altering device]] because of the fact that a return function is called prior to all subroutines. If the menu is modified however to remove the return function being used, or if a custom game code is written to load the interface directly further details can be revealed. |
|||
⚫ | |||
Upon activating the menu; presuming that the return function was not called, an interface will appear at the bottom of the screen which functions similarly to the one used in the Pokémon/Trainer color interface. Instead of changing the primary and secondary palettes of Pokémon and trainers however, it allows one to change the red, blue and green channels of elements within the main map interface, or manipulate the hexadecimal identifiers of what colors are already being used. |
|||
[[Image:Object event.png|270px|thumb|right|Object event.]] |
|||
By pressing the Select button, players can rotate between which palettes are going to be managed depending on the order they are loaded in the game's RAM. However, the menu palette and any foreground palettes cannot be altered via this interface, with the addition of palette 07. There is no valid function in this interface to exit this menu, once called. |
|||
The event data messages are unused messages in Gold, Silver and Crystal that may have been used for debugging. They can appear in a text box through hacking or glitching. What they are meant to be for is undocumented. |
|||
⚫ | |||
#The window save area was exceeded. |
|||
Several specific error messages exist within the final game but cannot easily be triggered in normal gameplay. Since they have not officially been mentioned by Nintendo, it could be suggested that the following error messages were used by the game developers to refer to a specific problem whilst debugging. |
|||
#No windows avail-able for popping. |
|||
#Corrupted event! |
|||
#Object event. |
|||
#BG event |
|||
#Coordinates event |
|||
[[Category:Debugging summary pages]] |
|||
#[[N/A]] - Possibly for an invalid map location (unused) |
|||
[[Category:Debugging features]] |
|||
#[[Object event.]] - Possibly for when the player speaks to an object or NPC with no defined dialog data, compare with [[!]]. |
|||
#[[No windows avail-able for popping.]] - Possibly for when the game attempts to bring up a window with undefined or invalid data. |
|||
#[[Corrupted event!]] - Possibly for speaking with an object or NPC which starts an event with invalid data |
|||
#[[Coordinates event.]] - Possibly an extension of Object Event for an object or NPC whom has no defined text and changes the co-ordinates of an other object |
|||
#[[BG event.]] - Possibly an extension of Object Event for an object or NPC which changes details of the map background. |
|||
#[[ERROR!]] - Used for an invalid [[bp:field move|field move]]. |
|||
#[[?????]] - Used for an invalid Pokémon species |
|||
#[[Teru-Sama]] - Denotes placeholder item data |
|||
#[[?]] - Used for an invalid item |