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 Version and Silver Version |
|---|
|
Developer:
Game Freak
|
Pokémon Gold and Silver is one of the most extensive Pokémon games, featuring 100 new Pokémon (a 66% increase!), and allowing the player to return to Kanto, featured in the previous Pokémon Red and Blue, as part of the storyline to work his way up to beat the ultimate trainer, Red.
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 (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 D-Pad selects either the color to manipulate, or the color's red, green, or blue channel. Press A to switch between normal and shiny colors for Pokémon, while pressing 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. You 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 D-Pad selects the TM/HM. B switches to the first page. Although the screen says that the user can exit the menu by 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 menu's 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 D-Pad selects 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). Press Select to rotate through the palettes in order in which they are loaded in RAM, although it is not 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 American version of Gold and Silver.
Location 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
Others
- 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…[NL]My daughter is[NL]missing.[NL]No… She couldn’t[NL]have gone to the[NL]BURNED TOWER.[NL]I told her not to[NL]go near it…[NL]People seem to[NL]disappear there…[NL]Oh, what should I[NL]do…? (This may indicate a subquest for the Burned Tower was scrapped, or moved to the SS Aqua.)
- 0x195B93: BG event [END]
- 0x195B9D: Coordinates event [END]
Used Triggers
- 0x195B4D: No windows avail-able for popping! [END]
- 0x029438: ?????
- (Unknown offset:) "?" (item identifier 00 or Silver's default name before getting named automatically as "???")
- 0x195B84: Object event. [END]
Leftovers from Red, Blue, and Yellow
The following strings of dialogue (from the NTSC/US ROM image) are not used within the final version of the Gold and Silver but are leftovers from the Red and Blue engine. The unused BIRD type is also still in the engine.
- 0x050A3A: BIRD
- It dodged the thrown[NL] 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.
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."
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 leftover script 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 (RT) read from the clock and the time difference (DF) set by the player as well as whether daylight saving time is on or off. There is also text nearby from a function that would calculate the clock reset password for you.
This feature was added for the Western versions of Pokémon Gold and Silver, probably to check whether daylight saving time was working correctly. Neither the Japanese nor the Korean Pokémon versions feature this leftover, because daylight saving time is not used in these countries.
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 functional in both Gold and Silver. However, during the DUDE's Pokémon-catching tutorial, the player's 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 safeguard against overflowing text.
When RAM is initialized at boot, the player's mother's name is initialized to "Mom".
ERROR!
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 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 for Pay Day, 0115D6D0 for "Error!".
Unused Battle Types
The byte D119 determines the "type" of battle which is taking place. There are a few entries which are never normally used in normal gameplay.
Battling with no Pokémon
This battle type is identifier 0x02. The player enters battle without sending out any Pokémon, however none of the functions appear to have been defined. All functions other than PACK and RUN instantly end the battle, whereas PACK and RUN function as they would in a typical battle.
Unlike the DUDE's demonstration, this battle does not change the player's sprite, automatically throw a POKé BALL once the item pack is closed, or copy the player's name to the RAM location of the mother's name.
Always battle female Pokémon
| To do: Specific DVs |
This battle type is identifier 0x05. It causes the player to always battle a Pokémon with DVs matching a female Pokémon (if possible). For unknown reasons, there does not seem to be a matching battle type for encountering male Pokémon.
Automatic Battle End
This battle type is identifier 0x06. It causes the battle to end as soon as the player sends out their first Pokémon. Although it is ultimately unused, it is called automatically when the player attempts to enter a Trainer battle without any Pokémon. There is another function, though unrelated to this byte which causes wild Pokémon battles to end before they start.
It can also be triggered by a glitch, which lets the player walk around with no usable Pokémon, if the player obtains a ????? (FF) first using the Bad Clone glitch, faints all of their other Pokémon beneath it, and then gets whited out.
Extra Experience Groups
In addition to "Fast", "Medium Fast", "Medium Slow", and "Slow", two other groups closely related to "Medium Slow" are programmed into the game but never used:
They rise pretty much as slow as "Medium Slow" but offer less maximum EXP. The maximum EXP of "Medium Slow" is 1,059,860.
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, perhaps because it was a goof on the programmer's part and the player was never meant to be able to use or access it. However, it can still be accessed with GameShark code 010464CF.
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 – namely, a memory game, which can only be activated with a Coin Case as well as some coins.
Use the D-Pad to move the cursor, and press A to 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-03.
As this is a memory game, you have to find matching pairs of cards. If the flipped cards match, they are removed and the card will be displayed at the top of the screen. If they don't match, both will be flipped back. You have five tries to find matching pairs, after which the game just deals another set of cards.
とったもの ("[Cards] taken") in the upper-left corner 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
Early Tileset
The Japanese v1.0 ROM's offset for the early block data is 06:6BA0 and the offset for early 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 early city maps above.
The tileset used is a mockup based on earlier leftovers in tileset 01, the regular city tileset which still contains parts of the pagodas at the exact location the early blockdata uses. Only a total of six tiles have been added to produce the early version mockup tileset.
As can be seen, the block data was changed after the early 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 early 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.
Early 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 Red/Blue/Green/Yellow. Notice how the carpet at tiles 0x37 and 0x38 is blue instead of the usual red, which the dark shades of the Game Boy would have suggested.
Tileset 0x06 (PokémonCenter)
The tileset in the production ROM contains enough blocks for a Red/Blue/Green/Yellow-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 Trainer Rosters
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
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 it is a portmanteau of カビゴン (Snorlax)'s "カビ (Kabi)" and ピカチュウ (Pikachu)'s "チュウ (Chuu)".
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, though: the Town Map and Poké Flute from Red and Blue are still present in the code. The Poké Flute, while the sound is missing, still acts like it should; the Town Map functions but causes the game to crash when used, as the identifier data for the map locations have been moved elsewhere in the ROM or removed altogether.
Running Pokémon
Certain Pokémon in the games have a chance to flee from battle; this data is stored in three tables, presumably in the order of increasing likelihood to flee. However, the following Pokémon cannot be encountered in the wild, thus their running behavior remains unseen.
First table:
- Eevee
- Porygon
- Dragonair
- Togetic
- Umbreon
Second table:
- Articuno
- Zapdos
- Moltres
The third table, which guarantees escape, contains only the legendary beasts.
Slot Machine
An identifier (18) exists denoting a Bulbasaur symbol (using its doll sprite) in the Slot Machine interface. However, information such as how many coins the player will receive 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.
Title Screen
The sprite data for Ho-Oh on the Gold title screen actually uses three colors, although the normal palette renders all three colours as black, meaning only its silhouette can normally be seen. The coloured sprite can be seen through any glitch which causes the game to reset in mono Game Boy mode on a Game Boy Color (preventing the correct palettes from being loaded); the most reliable way of achieving this is listening to a Machop's cry in the Pokédex and then using the Coin Case.
The Lugia sprite in Silver is, however, stored using only the two colours visible in-game, suggesting either the decision to render them in silhouette was taken some time between the drawing of the two sprites, or that the original plan was to show Ho-oh in color but Lugia in silhouette, before a last-minute decision was made to make them both the same.
Version Differences
Changed Graphics
A few trainers, and quite a few Pokémon, had their sprites edited for the international releases, as documented here.
| Changed graphics The most interesting and enlightening page you will read all day. |
Korean Version
The Korean versions of Gold and Silver, like Crystal, are only compatible with the Game Boy Color. Previous versions of Gold can be run on Game Boy mode. This is due to the fact that the Korean version uses the Game Boy Color's second bank of VRAM for printing its text, rendering it incompatible with the regular Game Boy.
When the player attempts to run the game on an original Game Boy, they receive a message stating that the game is only compatible on the Game Boy Color. The message is very plain compared to Crystal, and without borders.
The Coin Case glitch was patched (which involves listening to a cry and then viewing the Coin Case), though it is not impossible for the game to reset itself in Game Boy mode through other methods.
Wild Pokémon
In Japan, Phanpy and Donphan are found in the wild in Gold while Teddiursa and Ursaring are found in the wild in Silver. In the rest of the world, these were switched.
Interestingly, this localization change was not made for the international versions of HeartGold and SoulSilver – Phanpy and Donphan are found in HeartGold while Teddiursa and Ursaring are found in SoulSilver, regardless of region.
- Featured articles
- Games developed by Game Freak
- Games published by Nintendo
- Game Boy games
- Games released in 1999
- Games with unused areas
- Games with hidden development-related text
- Games with unused graphics
- Games with unused items
- Games with unused text
- Games with debugging functions
- Games with regional differences
- To do
- Pages with broken file links
- Pokémon series
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

























