If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Pokémon Red and Blue/Miscellaneous Data

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Pokémon Red and Blue.

Game Boy Color Detection

At the very beginning of the program (ROM address 0150), the game checks if it's running on a 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 Game Boy features, so it looks the same as it would on a regular Game Boy.

This check is absent in the Japanese releases, as they were finalised in 1995, and the Game Boy Color was only revealed in circa 1998.

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. According to the leaked source code, this shop lineup is identified as "item_town_8K" in ITEMMENU.DAT, suggesting it was linked to Fuchsia City.

Pokémon Center Triggers

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 these hidden PC triggers were removed in Yellow.

Celadon Hotel

PRB-InvisiblePC.png

The hotel in Celadon City features an invisible, intangible yet still fully working PC located at the right-most side of the lobby. The fact that this PC is in the same position as in a Pokémon Center is due to the fact that the hotel map was built off the Pokémon Center one, as such the invisible PC is just a leftover whose sprite and collision were removed but whose behavior still remains intact.

Rest Houses

Unused code suggests that three 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 Warp Data

Route 1 and 2

Route 1 Route 2
Pokémon Red Blue Unused Route 1 Warps.png Pokémon Red Blue Unused Route 2 Warps.png

Found on both Route 1 and Route 2 are a set of unused warps. The former has one, and the latter four, all sitting at coordinates X:7 - Y:2. They are fairly odd, in that while they are all set to warp you to the target map's fourth warp, there is no actual target map programmed.

Route 2 Gates

Pokémon Red Blue Unused Route 2 Gate House Warp.png

For some reason, the gate houses on Route 2 all feature two sets of warps in their upper half, suggesting that this map type originally sported a set of double doors instead of a single door. There is even a corresponding block at ID 5D in the gate tileset, but it too never gets used.

Overworld Gates

Route 6 Route 7 Route 16
Pokémon Red Blue Unused Route 6 Warps.png Pokémon Red Blue Unused Route 7 Warps.png Pokémon Red Blue Unused Route 16 Warps.png

The following gate houses all have one of their warps made inaccessible by decorative fencing.

Rock Tunnel

North Entrance South Entrance
Pokémon Red Blue Unused Rock Tunnel Warp North.png Pokémon Red Blue Unused Rock Tunnel Warp South.png

Rock Tunnel is interesting in that it's the only cave whose entrance is a ladder, and not a standard entrance mat. However, there exists unused warp data for both northern and southern sides, suggesting that Rock Tunnel may have once had standard entrances, only for them to eventually be changed to ladders.

Silph Co. 1F

Pokémon Red Blue Unused Silph Co 1F Warp.png

There exists an orphaned warp in the lobby, which is linked to the seventh warp of Silph Co. 3F (the one closest to the stairs). However, in the final games that warp pad sends the player to the fourth warp of Silph Co. 2F (the one leading to the female worker who hands you TM36), and vice-versa. As such, it's likely that earlier on, the 3F pad was a one-way trip to the lobby.

Silph Co. 11F

Pokémon Red Blue Unused Silph Co 11F Warp.png

A lone warp found right beside the President's couch, which is set to take you to the tenth warp of the last map visited (here, Saffron City). As is, taking it would send the player to an invalid map, as Saffron City only features eight warps. This is a leftover from earlier in development, where Saffron did have ten warps, the last one being a second entrance to the Silph Co. building. The aforementioned meeting room warp was then likely a shortcut leading directly outside the building.

Seafoam Islands 1F

Both of the holes on the first floor have warps assigned to them, which are set to warp player to Seafoam Islands B1F. This is odd, in that this is not how holes are handled in Generation 1, with the target map handled in a separate file than the map's main script. This then makes these two warps completely rendundant.

Trade Data

This unused in-game trade debuted in the original Japanese versions, Red and Green, and was again left unused in Japanese Blue. It would have allowed the player to trade a Butterfree for a Beedrill nicknamed ピピん ("Pipin") in the first two games and チクチク ("Chikuchiku") in the third. Meanwhile, the international Red and Blue contains unused text for a Beedrill nicknamed "CHIKUCHIKU".

The trade itself is fully functional and can be accessed by inputting the GameShark code found below and using the first glitch item in your bag. Please note that this code also has some side effects: in all versions, the player's item data will be changed, as well as the data from DA47 to DA49. In the English version of Red, this data represents the variables wNumSafariBalls, wDayCareInUse, and wDayCareMonName. In the Japanese versions of Blue and Green, it represents wild Pokémon data.

Red & Blue (U) Blue (J) Green (J) 1.0
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)

Internal NPC Data

While the Pokémon internal index is what usually steals the spotlight, the overworld sprite ID list does contain its own set of (admittedly less interesting) finds which call back to an earlier time in the game's development:

  • Index spot 31 is an unused duplicate of the Scientist's sprites. Leaked internal material tell us this spot was once occupied by what was very likely sprites of the player's father.
  • Index spot 50 is an unused duplicate of the Guard's sprites. Leaked internal material tell us this spot was once occupied by a "hermit" character/character type.
  • Index spot 54 is an unused duplicate of the Game Boy Kid's sprites. Leaked internal material tell us this spot was once occupied by a female version of this character type.
  • Index spot 68 is an unused duplicate of the Amber's sprites. Leaked internal material tell us this spot was once occupied by a "door", with no further detail given.
  • Index spot 70 is an unused duplicate of the Drunk Old Man's sprites. Leaked internal material reveal that this spot was originally for this exact same character, but for some reason the final games instead use a copy of this sprite, which is found at ID spot 72.
  • Index spot 71 is an unused duplicate of the Drunk Old Man's sprites. Leaked internal material tell us this spot was once occupied by a "dead tree", with no further detail given.
(Source: Pokémon Red Disassembly Project)

Level Check Bit

In Red and Blue, Pokémon that can evolve can do so in one of three ways: by reaching a certain level, by using a given stone, or through trade. The way the evolution data is laid out is just as straightforward, consisting of the "evo type", the minimum level requirement, and the Pokémon that will be evolved into. Interestingly, the level requirement bit also exists for Pokémon that evolve via stone/trade, though it is always set to Level 1. This suggests that early on, the devs may have wanted to prevent the player from obtaining some final-stage Pokémon until they were of a certain level. This was definitely scrapped due to not being intuitive, on top of the execution being lacking. For example, if we set Clefairy's check to, let's say, level 25, then trying to use a Moon Stone on a Clefairy that's level 24 or lower won't show anything, on top of still consuming the stone. That, or the devs decided to make it easier for themselves and just put a temporary value that won't be read, since you can't obtain level 1 Pokémon anyway.

Furthermore, this curiosity also applies to Level 0 stone Pokémon and trade evolutions obtained using glitches, without having to modify the game.

The redundant level check was originally carried over during the development of Gold and Silver, but the final games got rid of it entirely.

(Source: Pokémon Red Disassembly Project)

Trainer AI Data

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)