If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
Pokémon Gold and Silver
| Pokémon Gold and Silver |
|---|
|
Developer:
Game Freak
|
Contents
Sub-Pages
| Unused Maps Lake of Rage had a gym? |
Debug Menus
Pokémon & Trainer Color Test Menu
This color test menu is basically a menu to easily change the color palettes of Pokémon, both normal and shiny palettes, and trainers as well as to conveniently list if a Pokémon is capable of learning a Technical Machine (TM) or Hidden Machine (HM). The menu code is located at 3F:54F1 in the Japanese rom (Gold and Silver, v1.0 and v1.1) and the screen update service has to be enabled (register FFD6 must be checked). Other language version ROMs have the code as well, but due to the screen not being localized, graphic bugs ensue. You have to select either Pokémon or trainer mode before loading the menu by setting CF21 to 0x00 for Pokémon mode and any other value for trainer mode.
First Page
The first page is for color adjustment and sprite viewing. Beware: Altered colors will not be retained when switching between normal and shiny colors! They will be retained when changing between Pokémon/trainers though!
- Navigation: The directional pad selects either the color to manipulate, or the color's red, green, or blue channel. A will switch between normal and shiny colors for Pokémon. B will switch to the second page. Select and Start change sprites going forwards resp. backwards through the sprites in PokéDex order resp. internal order for trainers.
- Colors: The Pokémon's/trainer's two colors are represented by their color and their hexadecimal values below each color panel in the top right of the menu. One can change the colors freely for each color channel separately.
- Strings: The Pokémon's/trainer's number along with the associated name will be printed in the top left. On the bottom appears the palette name that the Pokémon is currently being displayed in. 「Aきりかえ▶」 means "A switches", 「ノーマル」 means "normal [palette]", 「レア」 means "rare [shiny palette]".
Second Page
The second page is for exiting the menu and viewing the TMs and HMs the Pokémon can be taught. Things from the first page, such as the Pokémon's name, images, and colors will be shown on this screen, too. In trainer mode, this menu will still act as if a Pokémon was selected and show the respective Pokémon's data.
- Navigation: The directional pad selects the TM/HM. B will switch to the first page. Although the screen says that the user can exit the menu when pressing A, the actual code – while still in the ROM – is never executed, probably due to the actual check for the A button having been commented out.
- TMs/HMs: Machines have their name stated on the right-hand side. Right below the name is an indicator whether the Pokémon can be taught the selected machine or not.
- Strings: 「おわりますか?」 means "Are you finished?", 「はい」 being "yes" and 「いいえ」 being "no". 「おぼえられる」 and 「おぼえられない」 mean "can be taught" and "cannot be taught" respectively.
Tileset Color Menu
While the actual routine that procures this menu has been commented out, as evident by a single ret before all subroutines of the menu, with the right code it can still be used. This menus main task was to grant the user the ability to edit the current palettes used for the current background tileset.
To get the menu in-game, one needs to write custom code that loads the menu. For the Japanese version, the following code can be placed anywhere in rom bank 0x3F. It can then be called from an in-game event, such as a signpost, via the 3byte pointer ASM command (see Gold & Silver Scripting Compendium for further info).
call $0432 ; Deactivate LCD call $55D9 ; Load font to RAM call $0454 : Activate LCD xor a, a ld [$FF00 + $D1], a ; Reset X and Y scroll ld [$FF00 + $D2], a ld a, $01 ld [$FF00 + $AC], a ; Don't require button up between presses call $5D85 ; init menu @Loop: call $5EC0 ; update menu call $09FD ; get button press call $5FD9 ; update selection call $5E5D ; process button press call $032E ; do events jr @Loop
- Navigation: The directional pad will select the current palette's color to manipulate on the top row, or the selected color's red, blue or green channel (from top to bottom respectively). Select will rotate through the palettes in order in which they are loaded in RAM. It is not be possible to edit palette 0x07, the menu palette, or any foreground palettes. B hides resp. shows the menu, probably so the user can inspect the whole map screen rather than only the top portion. While the menu is hidden, it still functions the same as if it was shown, meaning colors can be selected and edited as usual.
- Colors: The current palette's four colors are represented by their color and their hexadecimal values above each color field in the top row of the menu. One can change the colors freely for each color channel separately.
There is no means to exit the menu, as the respective code was probably commented out as well.
Unused text
All text offsets are for the Gold/Silver USA ROMs.
Unused locations names
The following location names are in the location name table alongside other location names, but are unused.
- 0x092641: N/A
- 0x0926FD: LAV RADIO TOWER
- 0x09270D: SILPH CO.
- 0x092717: SAFARI ZONE
- 0x092733: POKéMON MANSION
- 0x092740: CERULEAN CAVE
- 0x092910: VIRIDIAN FOREST
Other unused text
- 0x190262: That can't be used[NL]right now.[END]
- 0x190280: That item can't be[NL]put in the PACK.[END]
- 0x1902A4: The [String:CF6B][NL]was put in the[NBOX]PACK.[END]
- 0x1902C4: Remaining Time[END]
- 0x1902D4: Your POKéMON's HP[NL]was healed.[END]
- 0x1902EF: Warping...
- 0x1902F9: Which number[NL]should be changed?[END]
- 0x19031A: Will you play with[NL][String:CF7E]?[END]
- 0x190335: You need two POKé-[NL]MON for breeding.[END]
- 0x190358: Breeding is not[NL]possible.[END]
- 0x190373: The compatibility[NL]is [Num:D151, 1byte, 3fig].[NBOX]Should they breed?[END]
- 0x1903A4: There is no EGG.[NL][END]
- 0x1903B7: It's going to[NL]hatch![END]
- 0x1903CC: Test event[NL] [Num:CF7E, 1byte, 2fig]?[END]
- 0x1903E0: What do you want[NL]to play with?[END]
- 0x190400: You can have this.[END]
- 0x190414: The BOX is full![END]
- 0x190426: Obtained the[NL]VOLTORBBADGE![END]
- 0x190442: The password is:[NL][END]
- 0x190455: Is this OK?[END]
- 0x190462: Enter the[NL]ID no.[END]
- 0x190474: Enter the[NL]amount.[END]
- 0x190717: [END]
- 0x195B29: The window save[NL]area was exceeded.[END]
- 0x195B72: Corrupted event![END]
- 0x124558: Oh, no. Oh, no… My daughter is missing. No… She couldn’t have gone to the Burned Tower. I told her not to go near it… People seem to disappear there… Oh, what should I do…? (This may indicate a subquest for the Burned Tower was scrapped, or moved to the SS Aqua.)
Identifier not yet noted
- "No windows avail-able for popping!" (used trigger, but circumstances not possible in 'normal gameplay'; likely for debugging purposes.)
- "Coordinates event." (used trigger, but circumstances not possible in 'normal gameplay'; likely for debugging purposes.)
- "BG event." (used trigger, but trigger not possible in 'normal gameplay'; likely for debugging purposes.)
- "?????" (error handler name for 'impossible' circumstance: invalid Pokémon)
- "?" (error handler name for 'impossible' circumstance: item identifier 00 or Silver's default name before getting named automatically as "???")
Leftover text from Pokémon R/B/Y
The following strings of dialogue (from the NTSC/US ROM image) are not used within the final version of the Gold and Silver but once existed within the previous engine - Pokémon Red and Blue. The unused BIRD type is also still in the engine.
- It dodged the thrown BALL!
- This POKéMON can't be caught!
- You missed the POKéMON!
- Played the POKé FLUTE.
- Now, that's a catchy tune!
- All sleeping POKéMON woke up.
- [PLAYER] played the POKé FLUTE.
Names for invisible game mechanics
The following game mechanics, if forced to be referenced via a dialogue string (though they never are in normal gameplay) will display:
- Professor Oak's picture: "POKéMON PROF." (stored with trainer class data, though it is only referenced on the introductory screen to point to Professor Oak's picture; not in a trainer battle, so "POKéMON PROF." is not displayed.)
- Last location placeholder: "SPECIAL" (A town map name, though the name "SPECIAL" can't be seen in normal gameplay; its identifier is 00 to reference the last town map name loaded into the game's memory instead:- useful for Pokémon Centers)
- Player's back-sprite in battle: "?????" (The game references the backsprite of undefined Pokémon #252 "?????")
Voltorbbadge
The Voltorbbadge is probably an in-joke, because other badges have receive text in the format Player received NAMEBADGE.
SILPHSCOPE2
Arguably was supposed to be used instead of the SquirtBottle, as suggested by an unused dialogue string: "I hear there's a POKéMON that looks just like a tree. You can reveal its identity using a SILPHSCOPE2." [1]
Test Event
This is one of the fragments of debug text left in the game. There does not appear to be any of its code left. The RAM address it displays is actually data from the real-time clock, which makes little sense here, suggesting the code was removed before the clock was added.
Mr. Chrono
A script left over in New Bark Town. While it claims to be activating a debug mode, unfortunately all that seems to be left is the text, which displays the "real time" read from the clock and the time offset set by the player. There is also text nearby from a function that would calculate the clock reset password for you.
Sweet honey
Text about "sweet honey" appears in the ROM. It's possible that Sweet Honey was a concept that was canned (or reworked into Headbutt or Sweet Scent) and re‐implemented several years later, in the form of Sweet Honey in Pokémon Diamond and Pearl.
My Pokémon is an expert at collecting SWEET HONEY. I’ll share some with you.
I want to give you some SWEET HONEY, but you have no room for it.
Here you go! Have some SWEET HONEY!
GOLD received SWEET HONEY.
My little brother takes SWEET HONEY and goes somewhere with it. I wonder what he’s up to?
Did you put SWEET HONEY on a tree? What happened to it?
Did you put SWEET HONEY on a tree? It takes about a day for POKéMON to be drawn to it.
BUTTERFREE: Freeh!
Unused Functions
Naming your mother
Naming the player's mother is fully functioning in both Gold and Silver. However, during the DUDE's Pokémon catching tutorial, the player's own name is copied to the RAM location of the mother's name, hence imposing that the player names his mother at a stage where the tutorial cannot be accessed anymore. The name itself can be displayed in text via byte 49 and should have 11 tiles reserved in the text box to safe-guard against overflowing text.
When RAM is initialized at boot, the player's mother's name is initialized to "Mom"[2].
ERROR! Error handler
This appears when field move ability ID 15 is forced. ERROR! may have been intended as a placeholder; it does not appear for all invalid abilities, but only the last ability ID, 15. Other menus do not have such placeholders.
Extra field moves?
If an invalid identifier is referenced, the game is capable of 'withdrawing' other results from the list of attack names; this may indicate that Nintendo did not have a fixed plan of what field moves to add into the final game, as other attacks such as PAY DAY and SANDSTORM can be given, though this data is not necessarily unused; it is withdrawn from arbitrary pointer data not corresponding to field move data.
The pointer table for the abilities also shows some interesting facts:
- The table is in fact a hash map (unordered ID->pointer pairs), rather than an array. The reason for this is not clear.
- A bug: the table is not properly terminated. The game reads past its end looking for the unused IDs. By chance it finds a terminator for Error, but Pay Day leads it to an arbitrary pointer; thus, Pay Day crashes the game, while Error does nothing.
- The out-of-order keys suggest that Waterfall was added later in development; it appears near the end rather than being grouped with the other HM moves.
To see the unused menu options, enter one or both of the following Gameshark codes and select a Pokémon with one HM ability:
- 0100D5D0 - Pay Day
- 0115D6D0 - Error!
Clock Reset
By pressing Down+Select+B at the title screen, the player can access a hidden clock reset function. The function requires a password which is calculated from various game state information. The password check can be bypassed by writing 37 at ROM address 23:4225 in a US rom. Passwords can be calculated online at Filb.de.
For some reason, the Clock change Password option was removed from Crystal version. Perhaps because it was a goof on the programmer's part and the player was never meant to be able to use it or access it for that matter.
Unused Memory game
The Game Corner in Gold, Silver, and Crystal has two kinds of machines: a slot machine and a card flip table. However, there is an unused third game, which is mostly working. This third game is a memory game, and can only be activated with a coin case as well as some coins.
The directional pad will select cards. The A button will then flip the selected card to see what kind it is.
There are three different difficulty levels that affect the random placement of the individual card faces, probably one for each coin selection — one coin, two coins or three coins. CF14 is the difficulty option, from 01 to 03.
As this is a memory game, you have to find matching pairs of cards. When flipped cards match, the card will be displayed at in the top row of the screen. If they don't match, both will be flipped, and therefore hidden, again. You have five tries to find matching pairs. After that, the game just deals another set of cards.
とったもの ([Cards] taken) in the upper left-hand shows the cards you have matched, and あと#かい (# more turns) is how many tries you have left. Getting a match shows CARD いただき! (CARD, yeah!) and picking the wrong cards shows ざんねん… (Darn...).
Note that the cursor is usually garbage, as the graphics data was commented out as well. Therefore, the PokéGear indicator is used in the video.
The actual routine that would let you chose the difficulty level, award prizes, and even exit the game doesn't exist, so there is no way to win or exit outside of resetting the game.
See the Notes page for a fully commented disassembly of the Memory game.
Tilesets
Beta Tileset
The Japanese v1.0 rom's offset for the beta block data is 06:6BA0 and the offset for beta collision data is 06:73A0. These follow right after the block data of regular tileset 0x02, the Goldenrod City tileset. These were used to dump the beta city maps above. The tileset used is a mockup based on beta leftovers in tileset 01, the regular city tileset which still contained parts of the pagodas at the exact location the beta blockdata uses. Only a total of 6 tiles have been added to produce the beta mockup tileset.
As can be seen, the block data was changed after the beta city maps were created and then presumably copied over to a then-new tileset 0x02 and split to tileset 0x01 thereafter and then forgotten about. This is especially visible in Olivine City's map, where the light house now has parts of mountains instead of the proper tower parts. Also, block 0x0D was deleted for whatever reason, hence it was rendered as a black block on both Goldenrod City's and Olivine City's map. The evolution goes from Tileset 0x1F to tileset 0x20 that resembles an intermediate to tileset 0x01's final layout.
The beta tilesets are the following two:
Again, the original graphics seem to be lost, so these mock-ups were created.
For a full detailing on map and tileset naming schemes, refer to the notes on map and tileset naming scheme.
Beta Collision Data
There is an extra 0x60 bytes after the collision data at 37:7E33 in the Japanese v1.0 rom just after the Ilex forest (tileset 0x1C) collision data that allow for 0x18 more blocks than the current tileset features. Curiously, the block data does not have room for 0x18 more blocks, meaning that this may or may not have been part of the Ilex forest tileset collision data.
However, since their contents are static, it suggests the former. The blocks would have had the following layout. Each cell corresponds to one fourth of a block, the size of an in-game Person:
| Solid | Walkable |
| Solid | Walkable |
Unused Tile Palette Assignment Data
At 02:4547 in the Japanese v1.0 ROM there are 0x30 bytes of tile palette assignment, which assigns a palette for each tile of a tileset, that go unused. The layout is as follows, where the second color of each palette represents the palette overall pretty well:
This seems to fit tileset 0x09 from Pokémon RBGY. Notice how the carpet at tiles 0x37 and 0x38 is blue instead of the usual red which the dark shades of the Game Boy Mono would have suggested.
Tileset 0x06 – PokémonCenter
The tileset in the production ROM contains enough blocks for a Pokémon RBGY-style PokéCenter that are never actually used. A map with those blocks could have looked like this:
| Pokémon RBGY | ![]() |
|---|---|
| Pokémon GSC |
Also, this tileset contains a block that is never actually used whose tile has the wrong palette associated with it. It may have gone unused because of this error.
Tileset 0x15 – Caves
The cave tileset features some infamous tiles for a mine cart and some tracks. However, no blocks ever use these tiles at all.
Tileset 0x17 and 0x1A – Ruins of Alph and Hall of Fame
| Ruins of Alph | |
|---|---|
| Hall of Fame |
These two tilesets share a 2×2 ground tile, indicating that tiles might have been shifted from one tileset to the other somewhat late in the production cycle. Also notice how the color assignments of the Hall of Fame tileset hint at deleted tiles.
Tileset 0x1C – Ilex Forest
Ilex forest contains two sets of tiles for the signpost, one duplicate and one unused. This was probably a last-minute change and included to be able to reverse back at any moment. Also, Ilex forest does not feature any blocks with sand on them, making this standard tile go unused within the forest.
Unused trainers
Rosters
PKMN Trainer Cal
PKMN Trainer Cal from Viridian City's Trainer House is normally only accessible late in the game, where he faces the player with the Johto starters in their final evolutionary forms at level 50, provided that Mystery Gift was not used. Despite this, other rosters associated with Cal still exist within Gold/Silver/Crystal.
Other Unused Content
Teru-Sama
Teru-sama is a dummy item occupying many of the game's item slots. Depending on the slot, different actions (give, use, sell etc) may be enabled. It has no apparent use other than to be sold for $19660.
Somewhat interestingly, Teruki Murakawa appears on the US Staff credits as a programmer; given that this item only has a meaningful name in the US version, it may very well be that he named it after himself. This theory is helped by the fact that its sell value is also a likely birth year: $19660.
Teru-sama can literally be translated from Japanese as "Lord Sunshine" or "Master Sunshine", coming from the word Teru (Sunshine or to Shine) and the suffix -sama (an honorific that shows extreme respect and is most often translated as "lord" or "master").
In the Japanese ROM, it is called カビチュウ (Kabichuu). This seems to be equally meaningless, but perhaps could be a mistranslation of "garbage" into Katakana.
The Teru-Sama is simply a placeholder item used by the game to fill up empty item slots and prevent crashing when the data is loaded. There are a few Teru-Samas that function as items. The Town Map and Poke Flute from Red and Blue are still leftover in the code. The Poke Flute, while the sound is missing, still acts like it should. The Town Map functions but it causes the game to crash when used because the identifier data for the map locations have been moved elsewhere in the ROM or removed altogether.
Miscellaneous
- An identifier (18) exists denoting a Bulbasaur symbol (using its doll sprite) in the Slot Machine interface, information such as how many coins the player will receive if three are lined up however, is undefined. To manipulate the game into managing as if three Bulbasaur were lined up, the player may enter the Gameshark codes 011809C6 01180DC6 and 011817C6. [5]
- Sprite data for Ho-Oh is actually in color, although when the normal palette is used where Ho-Oh is black, these colors cannot be seen. A common exploit often resulting in an in-game reset without resetting the new palette involves listening to a Machop's cry in the Pokédex and using the Coin Case.
Version Differences
A few trainers, and quite a few Pokemon, had their sprites edited for the international releases, as documented here.
| To do: Copy all that to a sub-page |
Cleanup > To do
Cleanup > To investigate
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with regional differences
Games > Games by content > Games with revisional differences
Games > Games by content > Games with unused areas
Games > Games by content > Games with unused code
Games > Games by content > Games with unused game types
Games > Games by content > Games with unused graphics
Games > Games by content > Games with unused items
Games > Games by content > Games with unused text
Games > Games by developer > Games developed by Game Freak
Games > Games by platform > Game Boy games
Games > Games by platform > Game Boy games > Game Boy Color games
Games > Games by platform > Game Boy games > Super Game Boy games
Games > Games by publisher > Games published by Nintendo
Games > Games by release date > Games released in 1999
Games > Games by series > Pokémon series
The Cutting Room Floor > Featured articles

























