The Cutting Room Floor now has a Patreon page. Thanks for all your support!

If you've blocked our ad, please consider unblocking it.
We promise it isn't annoying. No flash, no sound, ever.

Ads by Project Wonderful! Your ad here, right now: $0

Pokémon Red and Blue

From The Cutting Room Floor
Jump to: navigation, search
This page contains changes which are not marked for translation.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎polski • ‎português do Brasil • ‎中文(中国大陆)‎

Title Screen

Pokémon Red and Blue

Also known as: Pocket Monsters: Red & Green (JP), Pocket Monsters: Blue (JP)
Developer: Game Freak
Publisher: Nintendo
Platforms: Game Boy, Super Game Boy
Released in JP: February 27, 1996 (Red & Green), October 15, 1996 (Blue)
Released in US: September 30, 1998
Released in EU: October 5, 1999
Released in AU: October 23, 1998


AreasIcon.png This game has unused areas.
CodeIcon.png This game has unused code.
DevMessageIcon.png This game has a hidden developer message.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
ItemsIcon.png This game has unused items.
MusicIcon.png This game has unused music.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.


NotesIcon.png This game has a notes page
BugsIcon.png This game has a bugs page
PrereleaseIcon.png This game has a prerelease article

Pokémon Red and Blue, originally released in Japan as Pocket Monsters: Red and Green and later as Pocket Monsters: Blue, are the original Pokémon games that glued many children to their Game Boys as they began their quest to become the Pokémon champion.

Gotta catch 'em all!

Sub-Pages

RegionIcon.png
Translation Errors
Text errors from when the game was translated from one language to another.
Carts.png
Version Differences
Differences in versions, as well as localization changes.

Pokémon

Early Pokédex Order

I sooo want that binder.

Unlike later games, the internal Pokémon species table is far from sorted: they aren't grouped by their evolutionary families nor any other reasonable order. For example, index numbers 0x01, 0x02, and 0x03 are Rhydon, Kangaskhan, and Nidoran♂. This is likely an early Pokédex order, or even the order in which the Pokémon were originally added to the game.

One special episode of Game Center CX features an interview with Pokémon creator Satoshi Tajiri. During the interview, a possible early design document or proposal for the games is shown complete with close-up shots of three different Pokémon: Nidoking, Slowbro, and Kadabra. The documents depicted the Pokémon sprites from Red and Green as well as their names and Pokédex numbers. Interestingly, the numbers do not match up with the final Pokédex order but rather the internal species table, placing Nidoking at 0x07, Slowbro at 0x08, and Kadabra at 0x26. It can also be assumed that those screens come from a very early version of the in-game Pokédex function, considering the layout of the screen and the faintly visible Super Game Boy border.

Also of note is Nidoking's early name which, rather than the final ニドキング (Nidokingu), is マイコー♂ (Maiko♂).

In addition, the species table has 190 entries, 39 of which are completely blank and result in the game loading MissingNo. (see below) instead. Words from Shigeki Morimoto have supported that there were once 190 Pokémon planned for inclusion in the games.

MissingNo.

Hmmm...
To do:
  • A thorough explanation of what data is organized by index number and what data is organized by Pokédex number so that the differences and similarities between MissingNo. and 'M are clearer.
  • .ogg file for 0x45; the cry is exactly identical to Zubat's. See also: http://pastebin.com/yCry6qce This needs to be incorporated into the article.
  • And most other stuff on the talk page.
HEY! KID! I'LL GIVE YOU INFINITE RARE CANDIES! Just keep walking.
MissingNo.'s Cries
ID Cry
0x43
0x4F
0x51
0x5E
0x5F
0x7F
0x89
0xB5

Arguably the most (in)famous glitch/leftover in any game, MissingNo., short for "Missing Number", is used to fill the 39 empty slots of the 190-slot Pokémon species data table. The glitch was made famous when players discovered a way to encounter it by exploiting a programming oversight in said data table for helpful side effects. The land/water border tiles on the east coast of Seafoam and Cinnabar Islands are set to generate random wild Pokémon encounters from the current location (as grass tiles do) rather than with water Pokémon. Since these areas do not have random wild Pokémon encounter data, the data from the previous area is left in memory. In the Japanese version, its name is けつばん (Ketsuban), which literally translates into "missing number."

witty caption to be written

Base Stats

The aforementioned Pokémon species table has 39 entries which give MissingNo. a Pokédex number of #000. As the base stats are ordered by Pokédex number as opposed to index number, this results in all the 39 MissingNo. copies sharing the same type (Bird/Normal), stats, start moves, graphics, etc. None of this data is actually valid; the game reads data that is stored far outside the base stats table and is actually used to define the parties of trainers. In the Japanese Blue, MissingNo. points to data that defines it as a ??? Pokémon, with a height of 1.0 m (3.3 ft) and 10.0 kg (22.1 lb), as well as a filler Pokédex entry saying 「コメント さくせいちゅう」 "Komento sakusei-chū", which translates into "Comment to be written". This information was not translated in the English localization and hence displays the erroneous values of 10.0 ft (3.1 m) for the height and 3507.2 lb (1590.8 kg) for the weight when its Pokédex entry is viewed.

Old Man Glitch

During the old man's Pokémon-catching tutorial in Viridian City, the player's name is changed to "OLD MAN". The original name is copied into the wild Pokémon encounter table for temporary storage. As soon as the player enters an area with wild Pokémon encounters, the table will be repopulated, so this normally has no effect on the game. However, taking advantage of the incorrect water tile assignment allows players to encounter wild Pokémon while the encounter table still contains the player's name. The letters of the name then define which Pokémon will appear and at which levels; several letters correspond to invalid IDs, leading to encounters with MissingNo., 'M, or glitched Trainers at impossibly high levels. In the Japanese version this does not work, and no encounters of any kind will occur on the affected tiles.

Item Duplication

Contributing to MissingNo.'s fame is the item duplication glitch. Any time the player encounters MissingNo., 'M, or any other glitch Pokémon with Pokédex number 000, the game attempts to set the "Pokémon has been seen" flag for that Pokémon in the Pokédex. Due to an integer underflow when calculating the address of this flag, it instead sets the highest bit of the quantity of the sixth item in the player's Bag, effectively adding 128 to it. If you catch it, the sixth item duplicates again (assuming it's been reduced to less than 128).

'M

The glitch Pokémon 'M (actual name consisting of corrupted graphics with 'M in the middle) is often confused with MissingNo., as they are both commonly found using the Old Man glitch and both have the Pokédex number 000, giving them the same in-battle sprite and base stats, and causing the item duplication glitch. However, 'M is not pulled from unused Pokémon data like MissingNo. but from other data located after the Pokémon data in ROM instead. Its similarities to MissingNo. are coincidental.

Variations

Most variations of MissingNo. have similar appearances to the screenshot above, but it can also assume the sprite of one of the fossils in the Pewter City museum or a Pokémon Tower ghost depending on various factors. (It should be noted that in the Japanese versions of the games, a ghost MissingNo. is referred to not as けつばん but by the otherwise unused string of "ゴースト" - distinct from actual Pokémon Tower ghosts, which are called "ゆうれい".) Each MissingNo. also has a separate cry. Most of these are simply set to three zeros, resulting in its cry sounding similar to Nidorin♂'s cry, however there are a few unique ones (see here). Each individual MissingNo. entry has a unique, empty move-learning and evolution table, further suggesting that these slots belonged to deleted Pokémon. Additionally, MissingNo.'s name is repeated 39 times in the ROM, once for each entry.

For further technical details, see here and here.

Unused Game Mechanics

Bird Type

The BIRD type.
There is an unused Bird type for Pokémon within Red and Blue. It has no weaknesses or resistances, and only certain glitch Pokémon like MissingNo. have this type. It remains, still unused, in Pokémon Gold and Silver.

Extra Field Move

In the list of field moves, there is an unused entry between Fly and Surf. It points to an empty string in the field move name table. It has a move ID of 0xB4, although the highest valid move ID is 0xA5, suggesting that there were moves removed before the games were released. Its position in the list of field moves, between two HMs (all HMs are in order) suggest this may have once been an HM.

At offset 0x80096 is the unused text string "Ground rose up somewhere!", which is located near the string used when using Strength. It has been suggested that it was originally intended to be used for a field move.
(Source: Sawakita)

"NORTH/WEST", "NORTH/EAST", and "SOUTH/EAST"

The "YES/NO" options replaced by the "NORTH/WEST" options

In addition to the normal options such as "YES/NO" and "HEAL/CANCEL", additional options "NORTH/WEST" (Japanese: きた/にし), "NORTH/EAST" (Japanese: きた/ひがし) and "SOUTH/EAST" (Japanese: みなみ/ひがし) are present but never used. "NORTH" and "EAST", while referenced in the Safari Zone, are found within strings of text rather than as options.

NORTH/WEST can be seen with GameShark code 01012CD1, NORTH/EAST can be seen with GameShark code 01042CD1 and SOUTH/EAST can be seen with GameShark code 01022CD1.

Default Total PP of Struggle

Struggle is a move which cannot be learned during regular gameplay. It is only used when the user's Pokémon attempts to attack but has no available PP for any move left (note that in-game Trainers cannot run out of PP in Generation I). Regardless, the default total PP data for Struggle is set to be 10, though there is a special handler for Struggle such that its remaining PP does not decrement since it is never supposed to be an actual move in a Pokémon's moveset.
(Source: Pokémon Red disassembly project)

The default total PP for Struggle was changed to 1 in generation II, and remains that way in all the main series handheld Pokémon games as of Generation V.

Unused Battle AI

There is data for unused battle AI routines which are normally never executed by any Trainer class, including "use X Accuracy", "use Dire Hit", and "use X Special".
(Source: Pokémon Red disassembly project)

Dragon Type is Super Effective against Itself

The Dragon type does super-effective damage to itself in Generation I, just as it does in every subsequent generation. However, the only Dragon-type move in Generation I is Dragon Rage, which does a set regular damage of 40 HP, and hence this behavior is never seen in regular gameplay during this generation.

Unused Move Effects

There are a handful of effects in English Red and Blue which aren't used by any valid move, although some of these are used by the TM(xx) and HM(xx) glitch moves. Note that in the Japanese versions, effect 23 (30.1% freeze chance) was used because the effect was assigned to Blizzard (see here).

Identifier Effect
01 Puts enemy to Sleep.
0C Raises Speed by 1 stage.
0E Raises Accuracy by 1 stage.
15 Lowers Special by 1 stage.
17 Lowers Evasion by 1 stage.
1E Attacks for 2-5 turns.
23 30.1% chance of freezing the opponent.*
36 Raises Accuracy by 2 stages. (probability=hit chance)
37 Raises Evasion by 2 stages. (probability=hit chance)
3A Lowers Attack by 2 stages. (probability=hit chance)
3C Lowers Speed by 2 stages. (probability=hit chance)
3D Lowers Special by 2 stages. (probability=hit chance)
3E Lowers Accuracy by 2 stages. (probability=hit chance)
3F Lowers Evasion by 2 stages. (probability=hit chance)
48 10.2% chance of lowering Accuracy by 1 stage.
49 10.2% chance of lowering Evasion by 1 stage.
4A 10.2% chance of lowering a non-existent glitch stat by 1 stage, which effectively does nothing.
4B 10.2% chance of lowering a non-existent glitch stat by 1 stage, which effectively does nothing.
4E None.
(Source: Pokémon Red disassembly project)

Butterfree for Beedrill in-game Trade

Hmmm...
To do:
Replace video with a screenshot if necessary.

There is an unused in-game trade in which the player would trade a Butterfree for a Beedrill, which was carried over from the Japanese Red and Green. In those versions, the traded Beedrill was originally nicknamed ピピん (Pipin); however, in the Japanese Blue (which the international Red and Blue are mainly based upon), its nickname was changed to チクチク (Chikuchiku).

As such, there is unused text in the English Red and Blue for a Beedrill nicknamed "CHIKUCHIKU".

The trade is actually fully functional and can be accessed with a GameShark code. Once entered, use the first glitch item in your pack. Due note that the code has the side effects of changing your item pack items in all versions and data from DA47-DA49 (wNumSafariBalls wDayCareInUse, wDayCareMonName) (Red), or wild Pokémon data (Japanese Blue, Green).

English Red or Blue version Japanese Blue version Japanese Green 1.0 version
01C347DA
012248DA
01D349DA
016A1ED3
013E22D3
010223D3
01EA24D3
013D25D3
01CD26D3
013E27D3
015428D3
01CD29D3
016D2AD3
013E2BD3
01C32CD3
01D72DD3
01242ED3
01C92FD3
01C306D8
01A607D8
01D208D8
017BA2D2
0150B4C3
013EA6D2
0102A7D2
01EAA8D2
013DA9D2
01CDAAD2
013EABD2
0154ACD2
01CDADD2
01B1AED2
013EAFD2
01C3B0D2
01B7B1D2
0124B2D2
01C9B3D2
01C306D8
01A607D8
01D208D8
017BA2D2
013EA6D2
0102A7D2
01EAA8D2
013DA9D2
01CDAAD2
013EABD2
0154ACD2
01CDADD2
019DAED2
013EAFD2
01C3B0D2
016AB1D2
010FB2D2
01C9B3D2
(Source: ChickasaurusGL)

Unobtainable Items

There are several unobtainable items in the games. These remain present and unaltered in Yellow.

Miscellaneous Items

# Name Buy Sell Notes
00 Appears as a glitch item if forced to load. It is called "!j" in Red and Blue and "x" in Yellow.
07  ????? 0 0 This item's name was dummied out. It allows you to surf without requiring a Pokémon or the necessary badge. It can also be used on Cycling Road without the usual "Cycling is fun! Forget SURFing!" message. Additionally, while using this item, the music of the area updates normally. Attempting to use this item while facing land as you are surfing glitches the item name tile graphics and causes the game to freeze. Internally, it implements the effect of the Surf HM, unlike other HM moves, though it is similar to the out-of-battle effect of Dig, which is handled by using an Escape Rope.
08 Safari Ball 1000 500 While used, this item is unobtainable via normal means. Unlike in later generations, it is classified as a key item in Generation I.
09 Pokédex 0 While used, this item is unobtainable via normal means. It can be used both during and outside of battle, opening the Pokédex. However, using it in battle causes the VRAM to load the overworld tileset, and turns the HP bar into letters.
15 BoulderBadge 0 0 When used in battle, this item behaves like the Throw Bait function in the Safari Zone. When used in the overworld, it changes the background music to a single channel of the song Guide. When used in a dungeon or cave, it changes the background music to a single channel of the song Title Screen. This is because the function is attempting to load the "throw Bait or Rock" sound effect, but instead refers to the wrong soundbank.
16 CascadeBadge 0 0 When used in battle, this item behaves like the Throw Rock function in the Safari Zone. When used in the overworld, it changes the background music to a single channel of the song Guide. When used in a dungeon or cave, it changes the background music to a single channel of the song Title Screen. This is because the function is attempting to load the "throw Bait or Rock" sound effect, but instead refers to the wrong soundbank.
17 ThunderBadge 0 0 Attempting to use this item displays Professor Oak's "This isn't the time to use that!" message.
18 RainbowBadge 0 0 Attempting to use this item displays Professor Oak's "This isn't the time to use that!" message.
19 SoulBadge 0 0 Attempting to use this item displays Professor Oak's "This isn't the time to use that!" message.
1A MarshBadge 0 0 Attempting to use this item displays Professor Oak's "This isn't the time to use that!" message.
1B VolcanoBadge 0 0 Attempting to use this item displays Professor Oak's "This isn't the time to use that!" message.
1C EarthBadge 0 0 Attempting to use this item displays Professor Oak's "This isn't the time to use that!" message.
2C  ????? 0 0 This item's name was dummied out. Attempting to use it displays Professor Oak's "This isn't the time to use that!" message.
32 PP Up 9800 4900 This duplicate PP Up uses index number 0x32, while the actual PP Up is at 0x4F. Unlike the regular PP Up, which has a buy and sell price of ¥0, this version is worth significantly more.
3B Coin 10 5 This item can be stacked in the inventory, but cannot be stored in a Coin Case, and attempting to use it displays Professor Oak's "This isn't the time to use that!" message.


(Source: Bulbapedia's List of Unobtainable Items, Pokémon Red Disassembly Project's Item Prices & Item Documentation)

Elevator Floor Names

Following the list of item names, at offset 0x4A63 in the English games and 0x45B5 in the Japanese, are a list of the floor names used by elevators. These are stored in the same format as the item names. As a result, they can be loaded as items, but lack valid effects and may freeze the game when used.

# Name Buy Sell
54 B2F 0 0
55 B1F 0 0
56 1F 0 0
57 2F 0 0
58 3F 0 0
59 4F 0 0
5A 5F 0 0
5B 6F 0 0
5C 7F 0 0
5D 8F 0 0
5E 9F 0 0
5F 10F 0 0
60 11F 0 0
61 B4F 0 0


(Source: Bulbapedia's List of Unobtainable Items, Pokémon Red Disassembly Project's Item Prices & Item Documentation)

Untranslated Text

Additionally, there are several curious unused text strings at offset 0x45F5 in the Japanese Red and Green. The same data can also be found at offset 0x4A92 in the English games. However, in the English games, these strings display as gibberish, as the character table is incompatible between the Japanese and English releases.

Curiously, the badge names are written バッヂ (baddzi) instead of バッジ (bajji), as in the final game.

# Name Translation Notes
62 かみなりバッヂ Thunder Badge The Japanese name for the Thunder Badge is actually the Orange Badge.
63 かいがらバッヂ Shell Badge
64 おじぞうバッヂ Monk Badge
65 はやぶさバッヂ Falcon Badge
66 ひんやりバッヂ Chill Badge
67 なかよしバッヂ Friendship Badge
68 バラバッヂ Rose Badge
69 ひのたまバッヂ Fireball Badge
6A ゴールドバッヂ Gold Badge The Japanese name for the Marsh Badge is the Gold Badge.
6B たまご Egg
6C ひよこ Chick
6D ブロンズ Bronze
6E シルバー Silver
6F ゴールド Gold
70 プチキャプテン Petit Captain
71 キャプテン Captain
72 プチマスタ Petit Master
73 マスター Master
74 エクセレント Excellent

The last entry, "Excellent", is unusual in that it is not terminated by 0x50.

(Source: Bulbapedia's List of items by index number (Generation I) - "Excellent" Info, ID Numbers, & Japanese Offset, GlitterBerri - Translation)

TMs

It appears that the Hidden Machines were once classed as Technical Machines, themselves. Unlike the corresponding HMs, these TMs can be stacked in the inventory, as well as sold at PokéMarts.

# Name Buy Sell Notes
FB TM51 3000 1500 This item functions like HM01 (Cut).
FC TM52 14000 7000 This item functions like HM02 (Fly). Its sell price displays as a glitched tile followed by three zeroes.
FD TM53 0 0 This item functions like HM03 (Surf).
FE TM54 8000 4000 This item functions like HM04 (Strength).
FF TM55 4000 2000 This item functions like HM05 (Flash). It is used as the game's Cancel function, displaying the text "Cancel" and hiding items below it.


(Source: Bulbapedia's List of Unobtainable Items, Pokémon Red Disassembly Project's Item Prices & Item Documentation)

Unused Coin Drop

The hidden coin item on the ground directly three squares above the top-left slot machine on the cluster of machines that is the second from the east side is supposed to give you 40 coins. However, due to a typo in the routine that handles picking up hidden coins, only 20 coins are found instead.

Unused Trainer Classes

Chief

Pokemon chief.png

Triggered by an hexadecimal identifier of 0xE3. It actually has no sprite, but uses the Scientist Trainer class sprite because its identifier is directly before it (0xE4). No rosters appear to be defined, meaning 'its first roster' is the first Scientist's roster. The Chief has not been found to give any valid victory speeches when defeated. Despite this, he is still mentioned in-game by a Team Rocket Grunt in one of the houses near the hotel in Celadon City, whose dialogue is "CHIEF! We just shipped 2000 POKéMON as slot prizes!"

Interestingly, the Japanese name of the Chief Trainer class is "シルフのチーフ" (Shirufu no Chīfu), which translates to "Silph's Chief". This implies that the player was originally meant to battle Silph Co.'s president.

Professor Oak

Pokemon oak.png

A battle with Professor Oak is programmed in, although he never actually battles the player during regular gameplay. The battle can be triggered with GameShark code 01E2D8CF (where the level of what would be a wild Pokémon corresponds with the roster value), or by using one of various glitches in the game. His name appears as "PROF.OAK" (Japanese: "オーキドせんせい" aka "Ōkido-sensei", rather than the normal "オーキドはかせ" aka "Ōkido-hakase").

Oak is programmed with three different teams, each consisting of a Level 66 Tauros, a Level 67 Exeggutor, a Level 68 Arcanine, and a Level 70 Gyarados. His fourth Pokémon is Level 69 and is either a Venusaur, Blastoise, or Charizard. It is assumed the game would choose the team with the final evolution of the starter Pokémon that neither the player nor the rival chose. Additionally, based on this team and their levels, it's likely he was supposed to appear at the very end, perhaps even after the final rival battle at Indigo Plateau. When defeated and counting the fact that Professor Oak used one of the valid rosters mentioned above, he will give whatever dialog that the Trainer you used to fight him says when defeated. This means that he has no real "lost battle" dialogues of his own programmed in.

It is possible to battle him using the Ditto glitch (an extended version of the Mew glitch) with the last Special stat in memory as 226. He can be encountered (though without his appropriate roster) as a glitch Trainer while doing the Old Man glitch and having the MN symbol in the third, fifth, or seventh slots of the player's name. Another way of battling him is this select button glitch in Japanese Red, Green and Blue.

The data for this battle remains present in Yellow. The concept of battling a Pokémon professor would later be reused in Pokémon X and Y.

Unused Trainer Parties

Several trainer parties that are never referred to by trainer objects exist in the game. Below is a list of the parties' Pokémon and corresponding party level and trainer type (which can be determined by the pointers to the trainer classes' rosters).

Trainer class Roster ID Party LV Pokémon
Youngster 0D L17 Spearow, Rattata, Rattata, Spearow
Bug Catcher 0C L18 Metapod, Caterpie, Venonat
Jr. Trainer♂ 06 L18 Diglett, Diglett, Sandshrew
Jr. Trainer♀ 04 L22 Bulbasaur
Super Nerd 06 L22 Koffing, Magnemite, Weezing
Super Nerd 07 L20 Magnemite, Magnemite, Koffing, Magnemite
Super Nerd 08 L24 Magnemite, Voltorb
Burglar 01 L29 Growlithe, Vulpix
Burglar 02 L33 Growlithe
Burglar 03 L28 Vulpix, Charmander, Ponyta
Engineer 01 L21 Voltorb, Magnemite
Gambler 06 L22 Onix, Geodude, Graveler
Beauty 0B L33 Weepinbell, Bellsprout, Weepinbell
Juggler 06 L33 Hypno
Tamer 06 L42 Rhyhorn, Primeape, Arbok, Tauros
Bird Keeper 0C L39 Pidgeotto, Pidgeotto, Pidgey, Pidgeotto
Bird Keeper 0D L42 Farfetch'd, Fearow
Scientist 01 L34 Koffing, Voltorb
Rocket 16 L26 Drowzee, Koffing
Cooltrainer♂ 04 L45 Kingler, Starmie
Cooltrainer♂ 06 L44 Ivysaur, Wartortle, Charmeleon
Cooltrainer♂ 07 L49 Nidoking
Cooltrainer♂ 08 L44 Kingler, Cloyster
Cooltrainer♀ 04 L46 Vileplume, Butterfree
Cooltrainer♀ 06 L45 Ivysaur, Venusaur
Cooltrainer♀ 07 L45 Nidorina, Nidoqueen
Cooltrainer♀ 08 L43 Persian, Ninetales, Raichu
Gentleman 04 L48 Primeape
Channeler 01 L22 Gastly
Channeler 02 L24 Gastly
Channeler 03 L23 Gastly, Gastly
Channeler 04 L24 Gastly
Channeler 07 L24 Haunter
Channeler 0B L24 Gastly
Channeler 0D L24 Gastly
Channeler 0F L24 Gastly

Maps

Deleted Maps

There are 22 deleted map locations, including a tentative unused town with its own Fly flag. They have music values and pointers to header data, but they all point to headers of existing maps, though it looks for them in the entirely wrong banks. Headers and map data may have been shuffled around during development, since several maps attempt to use headers for Lance's room in the Elite Four. Due to having no data and most likely trying to read the header from the wrong bank, all of these freeze the game when accessed.

  • An unused map likely to be a town, with identifier 0x0B. It uses Saffron City's header, but loads from bank 0x01, which has no map headers at all. See the section below.
  • 11 deleted maps using the header for Lance's room, with identifiers 0x69-0x6B, 0x6D-0x70, and 0x72-0x75. They all load from bank 0x1D, where all the other Elite Four rooms are, but Lance's room is in 0x16.
  • 3 deleted maps using the header for the Rocket HQ Elevator, with identifiers 0xCC-0xCE. They load from bank 0x01, which has no map headers.
  • A deleted map using the header for Route 16's gate, with identifier 0xE7. They also load from bank 0x01.
  • 6 deleted maps using the header from Silph Co.'s second floor, with identifiers 0xED-0xEE and 0xF1-0xF4. They load from bank 0x11, but the correct header should be 0x16.

Extra Town?

Map 0x0B is stored alongside city/town maps (0x00-0x0A; routes start with Route 1 at map 0x0C) and has Town Map location data as a town (not as a route) north of Indigo Plateau, since an unused flag when checked allows the player to Fly to it. It erroneously appears north of Indigo Plateau because its coordinates are undefined, leading the game to fallback to coordinates (0,0). The relevant Town Map name is also presumably undefined and shares its name with prefix 0x00: Pallet Town. Additionally, no Pokémon appear in map 0x0B. From this, it can reasonably be concluded that there was at one point another town in that location, removed from the final releases.

Celadon House

Location of the deleted entrance
An unused warp exists in Celadon City where the door to a house would be, but the door is not found in the final game. The warp leads to the fifth floor of the Celadon Department Store (map 136).

Since it would be unreasonable to end up on the fifth floor of somewhere from Celadon City and not the first floor, it may suggest that map 136 was altered at some point in the game's development. Further supporting this theory, the other floors (in order) for the Celadon Department Store have index numbers 122-125 respectively. The fifth floor (map 136) does not follow this pattern.

Exit location data exists for the map (the exit point index number is 08).

You can create a door to access the warp with the GameShark code 017C72C8. You can appear where the warp is by using the GameShark codes 0108B5D3 0108B1D3, entering a certain map in Celadon City (such as the Pokémon Center) and exiting.
(Source: Torchickens/IIMarckus)

Unused Alternative Maps

For unknown reasons, complete maps exist within the games which correspond to real locations, but these corresponding maps use different theme music for what was actually used for the same location in the final releases. These maps can be accessed via the map location modifier code 01XX5ED3.

Location Used map identifier Corresponding unused map identifier Music of used map Music of the corresponding unused map
House robbed by a Team Rocket Grunt in Cerulean City 0x3E 0x45 Cerulean City Theme Caves of Mt. Moon
Underground Path entrance (Route 6) 0x4A 0x4B Pewter City Theme Vermillion City Theme
PokéMart in Cinnabar Island 0xAC 0xAD Pokémon Center Cinnabar Island Theme
(Source: Glitch City forums)

Duplicate Diglett's Cave Map Data

There are two copies of the map data for Diglett's Cave in the English Red and Blue (and probably other localizations too). In these versions, the maps are at ROM offsets 0x60258 and 0x61F86.

Hidden Items in Unused Maps/Misplaced in Maps

Hmmm...
To do:
Show where the coordinates are located on the map (since it's a small enough map, it should be okay).
Location of the inaccessible Nugget in Safari Zone entrance

In certain areas around the Safari Zone entrance, using your Itemfinder causes it to tell you there is a hidden item nearby, which is unobtainable. The item is a Nugget, located at the coordinates (10,1). This suggests that the map was changed during development without the hidden item being removed, as hidden item data is separate from other map data.

There are also coordinates for a hidden Max Elixer at coordinates (14,11) of unused map 0x6F, for which there is no map data.

Pokémon Center data in other maps

PRB-InvisiblePC.png

Pokémon Center data including triggers for PCs can be found in maps that are not used as Pokémon Centers in Red and Blue. As there is no PC sprite, the PCs are invisible. All of the hidden PC triggers were removed in Yellow.

Celadon Hotel

The Celadon Hotel has an invisible PC in the same position as a Pokémon Center.

Safari Zone rest houses

Unused code suggests that 3 of the rest houses in the Safari Zone, specifically maps DF, E0 and E1 were intended to function as Pokémon Centers. Each map has a trigger for an invisible PC in the same position as a Pokémon Center. Additionally, when healing at a Pokémon Center, the game saves your current location as the place to return to when using e.g. Teleport. The code checks if you're in one of the rest houses, and if so will not save your location.
(Source: stag019 (Safari Zone information))

Unused Song

Game Genie
equivalentː
132-2FB-F7D
132-2FB-F7D
692-30B-7F7
CF2-32B-917
692-33B-4CB
6F2-35B-911
6A2-36B-4CB

Red and Blue both contain a short unused song with no defined pointers. As it only has two channels, with the octaves set too high and one channel that goes off-sync with the rest of the music, the song appears to be incomplete. The song is defined in the ROM with a relatively high tempo. The addresses for the two channels can be heard and are stored in the ROM at offsets 0xA913 and 0xA9CF, respectively. The restored version of the track gives an idea of how the song should have been:

Damaged Restored

The song can be patched to Pallet Town by changing offsets 0x822F to 13, 0x8230 to 69, 0x8232 to CF, 0x8233 to 69, 0x8235 to 6F and 0x8236 to 6A. Game Genie equivalent at the left.

(Source: Restored by Koolboyman)

Unused Functions

Unused functions and subroutines in the program.

Debug Mode

Setting bit 1 of RAM address D732 enables some debug features:

  • When starting a new game, most of Oak's intro speech is skipped, including the player and rival name selections. Their names are set to "NINTEN" and "SONY" respectively.
    • In the original Red and Green, the player is named やまぐち (Yamaguchi, named after Wataru Yamaguchi, who is listed in the game credits under Special Thanks), and the rival is named いしはら (Ishihara, named after Pokémon developer Tsunekazu Ishihara).
    • In the Japanese Blue, the player is named ゲーフリ (Gēfuri, an abbreviation of "Game Freak"), and the rival is named クリチャ (Kuricha (creature), a reference to Creatures Inc.)
  • When starting a new game, the player starts outside their house, rather than in their bedroom.
  • Holding B prevents wild Pokémon encounters.
The GameShark code 010332D7 will enable this, but may have other side effects, such as not forcing a bicycle on Cycling Road, and some warps not functioning correctly. (These are due to the code changing other, unrelated bits of the same address.)
(Source: IIMarckus (default names) & Pokémon Red Disassembly (debug flag))

Error Codes

ERROR code Pokered.png
Error codes are messages that appear when a 00 character appears in the middle of a text string. Error codes appear in the format "(X) ERROR." In Pokémon Yellow, they appear in the format "(X) error." (X) is a number normally representing the identifier of the text string. When an error message is printed on the screen, all text after the 00 character is ignored, however it's possible for other text to precede the error code, causing confusion ("54 error" vs "4 error" which happens to have a "5" before it). Error codes may appear during the Trainer-Fly glitch. For example, fleeing from the long-range Trainer on Route 6, re-enabling the ability to use the start menu with a Trainer in a location other than Route 6 and returning to Route 6 after reading the PokéMart sign in Vermilion City will bring up a '9 ERROR.' as shown in the picture on the left. This is because the PokéMart sign has a text identifier of 09, stored in the memory address CF13, so the game attempts to load the last text box ID in memory. The corresponding text for Route 6 doesn't exist and is presumably just a single 00 character, so the game prints a '9 ERROR.' The PokéMart sign in Yellow has a text identifier of 0B, which coincidentally does not give an error message, though the 'VERMILION CITY The Port of Exquisite Sunsets' sign has an identifier of 08 and brings up a '8 ERROR.' upon returning to Route 6.

Gift Pokémon Function

In Japanese Red and Green, an unused function exists at ROM addresses 01:645C (Red v1.0), 01:645D (Green v1.0), 01:6401 (Red v1.1), or 01:6402 (Green v1.1), that adds three Pokémon to the player's party:

  • Exeggutor, level 90
  • Ekans, level 90
  • Rhydon, level 5

In Japanese Blue, the function is at 01:656F and adds three Pokémon to the player's party:

In the English Red and Blue, the function is at at ROM address 01:64CA and adds five Pokémon to the player's party:

In an interview with Pokémon developer Tsunekazu Ishihara, he states that Exeggutor is his favorite Pokémon, since he used it while debugging the game. This may explain the first entry in the list.

Unused "Battle Test" Function

Hmmm...
To do:
Check whether the code exists in non-English translations. It seems to have been removed in Yellow, but it could still exist in an altered form.

This code was likely intended for debugging purposes. It can be accessed by running the code at 01:4DA6. This requires a bank switch, which is possible via the bank switch function at $35D6 (see here for the location in other regions/revisions), which sets the bank to what register c is, and jumps to hl.

It sets the badges value to $80 (effectively giving you the Earth Badge and no other badges), sets your current location to Pallet Town (though you can't see it), removes your current party Pokémon, and prompts you to nickname a level 20 Rhydon. Whether you give it a nickname or not, it will start a battle against another level 20 Rhydon. All four of your available moves only act like Pound, though this doesn't apply to the opposing Rhydon. After the battle (regardless of the outcome), the nickname prompt appears again and the entire process repeats.

The code exists in Pokémon Red and Green too, at 01:4B8D, where it seems to work the same.
(Source: Glitch City Laboratories Forums)

Game Boy Color detection

At the very beginning of the program (ROM address 0150), the game checks if it's running on Game Boy Color, and stores the result of this check at RAM address CF1A. However, the check stores zero in both cases:

cp a,$11 ;GBC can be detected by value of A register at boot
jr z, .gbc
xor a, a ;If not GBC, A = 0
jr .ok

.gbc:
ld a, 0 ;If GBC, A = 0

.ok:
ld [$CF1A], a

The use of two different methods to set A=0 (single-byte xor a,a instruction vs the two-byte ld a,0) suggest that this check may have been quickly patched out. In any case, a few instructions later the init process clears all memory, so this flag gets reset either way.

If this flag is set, the game loads a set of monochrome palettes and skips loading Super Gameboy features, so it looks the same as it would on a regular Game Boy.

Unused Graphics

Hmmm...
To do:
Figure out what the other missing blocks in tilesets 03, 06, 0B, 0C, 0D, and 10 are.
Red, Green, Blue, and Yellow have many tileset blocks that are never used in any existing map. Tileset 13 was added in Pokémon Yellow.
Identifier Unused Tiles Tileset
03 23, 2E, 30-32, 34-35, 37-3A, 3C-3D Pokemon RBY Tile Set 03.png
06 03, 05-09, 0B-0E, 10-11, 19, 20, 23-26, 2D-34, 39 Pokemon RBY Tile Set 06.png
0A 1A, 30-32, 4E, 5F-7B Pokemon RBY Tile Set 0A.png
0B 28, 30, 32, 4B-4C, 75-76, 78 Pokemon RBY Tile Set 0B.png
0C 0F, 18-1A, 22-24, 26-30, 32, 34, 40-46, 48-4A, 6B Pokemon RBY Tile Set 0C.png
10 1F, 23-27 Pokemon RBY Tile Set 10.png
11 0C-0D, 1D Pokemon RBY Tile Set 11.png
13 03-04, 08, 0E Pokemon RBY Tile Set 13.png

Outside the S.S. Anne

Unused Tiles

A sign is present in this tilemap but is unused, other maps do use the graphic though.

Identifier Tileset
04 Pokemon RBY Tile Set 04.png

Out Of View Graphics

There is a truck and boxes on the map that cannot be seen normally at the S.S. Anne dock.

And there's no Mew under the truck!
Give that player a cookie!
The truck in the Game Boy Advance remake.

It is possible to see them using tricks, however:

  • You must be one block above and one block to the left of the guy who checks the ship's tickets. Now walk one block to the right and then press start immediately after you come to a stop. Now save and restart your game, your character should be facing right. Now use the HM Surf and you will surf onto the ticket checker; press Down to bypass him.
  • You acquire a Pokémon with the HM Cut through a trade. This bypasses getting the HM on the ship which as a result makes the ship leave. You then obtain the HM Surf later and you can now surf to see the truck.
  • Acquire the HM on the S.S. Anne and lose to a Pokémon battle. Come back to the ship once you can use surf.

Despite rumors, the truck is only decoration and does not have anything hidden around or under it, save for a Lava Cookie in the GBA remakes.

Cave

The cave tileset contains some graphics that resemble the standard rock graphics, but they appear to be shinier and transparent, suggesting that it might be ice.

Identifier Tileset
0D Pokemon RBY Tile Set 0D.png
Pokemon RBY cave ice.png

Underground Path

The underground tunnel appears to be missing some graphics for the wall.

Identifier Tileset
12 Pokemon RBY Tile Set 12.png

Below is a recreation of how the tiles may have been arranged. It appears it was intended to have some sort of lighting fixture on the wall.

Original Mockup
Pokemon RBY underground path original.png Pokemon RBY underground path mock up.png

Walking Elite Four Sprites

PRB-EliteFourWalk.png

The Elite Four have walking sprites, but these are never seen in-game since they stand in one position and don't move. Colorized versions of Lance's walking sprites were used in Pokémon Gold and Silver.

"Pocket Monsters!" Border Tiles

Hmmm...
To do:
Game Genie codes to restore the original logos.
For some weird reason, the US Red and Blue still have the full tileset of the original Japanese "Pocket Monsters!" logo for the Super Game Boy borders. The European versions overwrote the logo as needed.
Red Blue
Pokemon Red U SGB Unused Pocket Monsters tiles.png Pokemon Blue U SGB Unused Pocket Monsters tiles.png
(Source: nensondubois)

Miscellaneous Findings

Placeholder Dialogue

Exhibited Pokémon

Spanish International
Exclaiming in the right language. Pokemon Blue Unused Pokemon Dialouge.png

Using a walk-through-walls cheat to enter the Pokémon exhibits outside of the Safari Zone entrance and attempting to talk to the Pokémon in them reveals that they have placeholder dialogue programmed in, most likely in order to prevent crashing. This dialogue can also be seen when attempting to talk to a trainer in the Cable Club.

Fossil Pokémon Sign

Japanese International
PRB-FossilSignJP.png PRB-FossilSign.png

This sign is supposed to show an empty Pokédex entry for the fossil Pokémon which were not chosen in Mt. Moon. However, if the event is skipped by using a walk-through-walls cheat or warp glitch, the sign will instead display a placeholder consisting in suspension points, which is likely programmed in order to prevent crashing like the other one.

Green Reference (English Red only)

Midori, there is always something there to remind me!
The English Red has VRAM tile data on the title screen for "GREEN", which unsurprisingly cannot be seen in regular gameplay. The English Blue does not have any respective data for "RED", though.

Unused PokéMart Data

PokéMart data is listed between the Fuchsia City and Cinnabar Island PokéMarts but doesn't seem to be used. It lists Great Ball, Hyper Potion, Super Potion, Full Heal, and Revive as available purchasable items.