Pokémon Gold and Silver
|Pokémon Gold Version and Silver Version|
Developer: Game Freak
This game has unused areas.
This game has a notes page
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.
Lake of Rage had a gym?
Details of the graphical changes between release versions
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.
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. 「Ａきりかえ▶」 means "A switches", 「ノーマル」 means "normal [palette]", 「レア」 means "rare [shiny palette]".
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.
All text offsets are for the American version of Gold and Silver.
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
- 0x190262: "That can't be used right now."
- 0x190280: "That item can't be put in the PACK."
- 0x1902A4: "The " (string from 0xCF6B) " was put in the PACK."
- 0x1902C4: "Remaining Time"
- 0x1902D4: "Your POKéMON's HP was healed."
- 0x1902EF: "Warping..."
- 0x1902F9: "Which number should be changed?"
- 0x19031A: "Will you play with " (string from 0xCF7E) "?"
- 0x190335: "You need two POKé- MON for breeding."
- 0x190358: "Breeding is not possible."
- 0x190373: "The compatibility is " (number from 0xD151) ". Should they breed?"
- 0x1903A4: "There is no EGG. "
- 0x1903B7: "It's going to hatch!"
- 0x1903CC: "Test event " (number from 0xCF7E) "?"
- 0x1903E0: "What do you want to play with?"
- 0x190400: "You can have this."
- 0x190414: "The BOX is full!"
- 0x190426: "Obtained the VOLTORBBADGE!"
- 0x190442: "The password is:"
- 0x190455: "Is this OK?"
- 0x190462: "Enter the ID no."
- 0x190474: "Enter the amount."
- 0x195B29: "The window save area was exceeded."
- 0x195B72: "Corrupted event!"
- 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.)
- 0x195B93: "BG event" (likely a placeholder for "invisible" events such as signs)
- 0x195B9D: "Coordinates event" (likely a placeholder for events triggered by walking to certain coordinates)
- 0x195B4D: "No windows avail-able for popping!"
- 0x029438: "?????"
- (Unknown offset:) "?" (item identifier 00 or rival's default name before getting named automatically as "???")
- 0x195B84: "Object event." (placeholder for events connected to NPCs)
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 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 "?????")
The Voltorbbadge is probably an in-joke, because other badges have receive text in the format Player received NAMEBADGE.
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."
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.
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.
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.
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 implying 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".
Extra Field Move Entries
The list of field moves contains two extra entries:
- PAY DAY (ID 00) - apparently this would have been usable outside of battle at one point. Attempting to use it now only crashes the game, as it's been deleted from the pointer table.
- ERROR! (ID 15) - the last entry. No other menus have such entries, so this may be a deleted move. Like PAY DAY, this item has no entry in the pointer table, but by chance the game manages to not crash and simply does nothing when this is used.
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.
- The game checks for a terminating entry in this list (pointer 0000); if it finds this entry before the ID it's looking for, it will just return without doing anything. However, the list doesn't actually have a terminating entry, so Pay Day and Error will cause it to read past the end of the list looking for them, eventually finding an invalid pointer for Pay Day and a terminating entry in the following data (thus why 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 RAM address 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
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.
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.
When doing this on an empty battery, where it is impossible to type the correct password, the game resets and runs with a strange graphics bug.
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.
Movement Type 02
In Pokémon Gold/Silver/Crystal, there is a byte that manages different movement types. In the English Pokémon Gold and Silver, this byte has the address D682. Four of the movement types are used. 00 is used for walking, 01 is used for cycling, 04 is used for surfing and 08 is used for surfing Pikachu. 02 functions like sliding on ice, however it is actually unused - D682 doesn't change to 02 when sliding on ice in the Ice Path. Movement type 02 may have been an early implementation of sliding on ice before the final mechanics of sliding were programmed into the game.
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, 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.
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:
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:
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
Are there usable Teru-Sama different in other versions such as the Japanese Kin/Gin?
A dummy item occupying many of the game's item slots. For all Teru-Sama, normally only the 'GIVE/TOSS/QUIT' options are available. 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 two Teru-Samas that function as items, though: the Town Map and Poké Flute from Red and Blue are still present in the code. Most of the other Teru-Sama if forced to have a USE option will display Professor Oak's "This isn't the time to use that!" message. Teru-Samas with unique effects include identifiers 06h, 38h and BE, however BE has an invalid pointer and was likely never intended to have a 'USE' option.
The 06 works as a faulty version of the Town Map from Red/Blue.
The (38h) Teru-Sama works as the Poké Flute if a "USE" option is forced (Video). Like in Pokémon Red, Blue and Yellow, it can be used to wake up sleeping Pokémon in the player's party in and outside of battle. The Poké Flute sound plays if the player uses the item outside of battle with a sleeping Pokémon. The Poké Flute sound doesn't play if the player doesn't have a sleeping Pokémon in the party or uses the item with a sleeping Pokémon in the party within a battle.
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.
[Note that Articuno, Zapdos, and Moltres appear as roaming Pokémon that flee from battle in Pokémon Platinum]
The third table, which guarantees escape, contains only the legendary beasts.
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.
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.
Details of the graphical changes between release versions
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.
Both Gold and Silver have their respective Super Game Boy border leftover unused. They are the English design, rather than Japanese.
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.
|The Pokémon series|
|Generation I||Red, Green, & Blue • Yellow|
Hey You, Pikachu! • Trading Card Game • Pinball
Snap • Stadium (Japan, International)
|Generation II||Gold & Silver • Crystal|
Card GB2 • Puzzle Challenge • Pinball Mini • Stadium 2
|Generation III||Ruby & Sapphire (German Ruby Debug Version) • FireRed & LeafGreen • Emerald|
Mystery Dungeon (Red Rescue Team, Blue Rescue Team)
Pinball: Ruby & Sapphire • Channel • Colosseum • Trozei! • Team Turbo
|Generation IV||Diamond & Pearl (Prototype) • Platinum • HeartGold & SoulSilver • Battle Revolution|
Mystery Dungeon (Explorers of Darkness & Time, Explorers of Sky)
PokéPark Wii: Pikachu's Adventure
|Generation V||Black & White • Black 2 & White 2|
Learn with Pokémon: Typing Adventure • Conquest
|Generation VI||X & Y|