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

Notes:Pokémon Red and Blue

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


This page contains notes for the game Pokémon Red and Blue.

The following tables were created with the help of the documentation provided by the Pokémon Red Disassembly Project.

Unused Song

This unused song is simply known as Koukan, which translates to “Trading”. In source/MUSHEAD.DMG, the song's headers are placed after the "follow-me" song (called musautowalk). Unusually, this song is split into two headers, each pointing at different channel data. They are both commented out, and would've had the labels muskoukan1 and muskoukan2.

The usual sound header format in the Pokémon games goes like this: take a four-channel track, for example: C0 xx xx 01 xx xx 02 xx xx 03 xx xx. From left to right, the sound engine will read these series of bytes as follows:

  1. Read byte 0xC0 hexadecimal. This encodes the total number of channels as well as which channel should the following pointer be assigned to. The total number of channels are encoded in bits 6–7, which in this case is %11 binary. Throughout this header, a value of 0 is interpreted as 1. So, despite ordinarily meaning 3 in decimal, this actually means 4, therefore the sound has 4 channels. Bits 0–3 encode which channel the following pointer is assigned to, which follows the same convention. Here, it's %00, which means the first Game Boy channel.
  2. Read 2 bytes xx xx. The preceding byte says this is to be assigned to channel 1, so this is the pointer that contains the data played on channel 1.
  3. We still have 3 more channels to go, so read another byte 0x01. Using the same interpretation as in step 1, this means that we assign the following pointer of 1 channel to channel 2.
  4. Read 2 bytes xx xx. The preceding byte says this is to be assigned to channel 2, so this is the pointer that contains the data played on channel 2.
  5. Repeat steps 3 and 4 two more times to cover channels 3 and 4.

The channel assignment numbers start from 0 for music and 4 for sound effects—in which case, giving us four “virtual SFX channels” in channels 5, 6, 7, and 8.

Koukan’s headers both look like this: 02 xx xx. Using the same interpretation rules, this gives both of its parts a header meaning “data for 1 channel to be played through channel 3”.

While the headers were never compiled in the retail ROM, the data itself is, so we can use audio/music/unusedsong.asm from the Pokémon Red & Blue disassembly to help explain things:

  • Both channel data has a tempo 144 command listed. Usually, the tempo command is required only in the first channel of a music track. However, because each “channel” actually belongs to two separate headers, the tempo must be defined separately in both channel data as well.
  • Both channel data lists the command note_type 12, 1, 0. In the context of channels 1 and 2 (square wave channels), this command doesn't make much sense: it specifies a note type of length 12, volume 1 and 0 fade. A volume of 1 here is the lowest possible volume, and is likely the reason why the “damaged” version sounds quiet. On the other hand, in the context of channel 3 (the wave channel), this command specifies a note type of length 12, volume 1, and wave instrument 0. Here, a volume of 1 encodes the highest possible volume for the wave channel.
  • There are no duty cycle commands or anything else that would make sense for a square wave channel.

Taking into consideration the arrangement of the song header as well as the song data above, it can be assumed that the song was likely meant to be played using two Game Boys. There may have been technical reasons why it was scrapped: if one were to speculate, synchronization problems might have been a factor.

It may be also worth noting the source version, KOUKAN.MUS, assigns the channel data to channels 2 and 3, while channels 1 and 4 are all rests. Given the information above, this is likely for ease of composition. In the G/S sources, a version of this file converted into the G/S/C sound commands is mons2/SOURCE/EFFDATA/M_TRADE.DAT, further confirming the song's original purpose.

Additionally, the notes may have been pitched one octave too high. The other unused R/G/B songs that were discovered in the G/S source but were unused seem to have also been pitched too high, if the restorations tell us anything. This could either be as a result of engine changes, or the macros/conversion tooling itself changing.

Base Types

Each Pokémon's cry is built off a "base" that is shared with other Pokémon, often those within the same evolutionary family.

Base Type Hex Dec.
Nidoran♂ 00 0
Nidoran♀ 01 1
Slowpoke 02 2
Kangaskhan 03 3
Charmander 04 4
Grimer 05 5
Voltorb 06 6
Muk 07 7
Oddish 08 8
Raichu 09 9
Nidoqueen 0A 10
Diglett 0B 11
Seel 0C 12
Drowzee 0D 13
Pidgey 0E 14
Bulbasaur 0F 15
Spearow 10 16
Rhydon 11 17
Golem 12 18
Blastoise 13 19
Pidgeotto 14 20
Weedle 15 21
Caterpie 16 22
Ekans 17 23
Fearow 18 24
Clefairy 19 25
Venonat 1A 26
Lapras 1B 27
Metapod 1C 28
Squirtle 1D 29
Paras 1E 30
Growlithe 1F 31
Krabby 20 32
Psyduck 21 33
Rattata 22 34
Vileplume 23 35
Vulpix 24 36
Weepinbell 25 37

Cry Values

This table lists each cry's base, pitch, and length values in both hexadecimal and decimal.

Internal ID Pokémon Base Type Base Pitch Length Base Pitch Length
Hex Dec. Hex Dec.
0x01 001 Rhydon Rhydon 11 00 80 17 0 128
0x02 002 Kangaskhan Kangaskhan 03 00 80 3 0 128
0x03 003 Nidoran♂ Nidoran♂ 00 00 80 0 0 128
0x04 004 Clefairy Clefairy 19 CC 01 25 204 1
0x05 005 Spearow Spearow 10 00 80 16 0 128
0x06 006 Voltorb Voltorb 06 ED 80 6 237 128
0x07 007 Nidoking Raichu 09 00 80 9 0 128
0x08 008 Slowbro Growlithe 1F 00 80 31 0 128
0x09 009 Ivysaur Bulbasaur 0F 20 80 15 32 128
0x0A 010 Exeggutor Drowzee 0D 00 80 13 0 128
0x0B 011 Lickitung Seel 0C 00 80 12 0 128
0x0C 012 Exeggcute Diglett 0B 00 80 11 0 128
0x0D 013 Grimer Grimer 05 00 80 5 0 128
0x0E 014 Gengar Muk 07 00 FF 7 0 255
0x0F 015 Nidoran♀ Nidoran♀ 01 00 80 1 0 128
0x10 016 Nidoqueen Nidoqueen 0A 00 80 10 0 128
0x11 017 Cubone Clefairy 19 00 80 25 0 128
0x12 018 Rhyhorn Charmander 04 00 80 4 0 128
0x13 019 Lapras Lapras 1B 00 80 27 0 128
0x14 020 Arcanine Weedle 15 00 80 21 0 128
0x15 021 Mew Paras 1E EE FF 30 238 255
0x16 022 Gyarados Ekans 17 00 80 23 0 128
0x17 023 Shellder Fearow 18 00 80 24 0 128
0x18 024 Tentacool Venonat 1A 00 80 26 0 128
0x19 025 Gastly Metapod 1C 00 80 28 0 128
0x1A 026 Scyther Caterpie 16 00 80 22 0 128
0x1B 027 Staryu Paras 1E 02 20 30 2 32
0x1C 028 Blastoise Blastoise 13 00 80 19 0 128
0x1D 029 Pinsir Pidgeotto 14 00 80 20 0 128
0x1E 030 Tangela Golem 12 00 80 18 0 128
0x1F 031 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x20 032 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x21 033 Growlithe Growlithe 1F 20 40 31 32 64
0x22 034 Onix Ekans 17 FF C0 23 255 192
0x23 035 Fearow Fearow 18 40 A0 24 64 160
0x24 036 Pidgey Pidgey 0E DF 04 14 223 4
0x25 037 Slowpoke Slowpoke 02 00 80 2 0 128
0x26 038 Kadabra Metapod 1C A8 C0 28 168 192
0x27 039 Graveler Vulpix 24 00 80 36 0 128
0x28 040 Chansey Pidgeotto 14 0A C0 20 10 192
0x29 041 Machoke Growlithe 1F 48 60 31 72 96
0x2A 042 Mr.Mime Krabby 20 08 40 32 8 64
0x2B 043 Hitmonlee Golem 12 80 C0 18 128 192
0x2C 044 Hitmonchan Seel 0C EE C0 12 238 192
0x2D 045 Arbok Ekans 17 E0 10 23 224 16
0x2E 046 Parasect Paras 1E 42 FF 30 66 255
0x2F 047 Psyduck Psyduck 21 20 60 33 32 96
0x30 048 Drowzee Drowzee 0D 88 20 13 136 32
0x31 049 Golem Golem 12 E0 40 18 224 64
0x32 050 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x33 051 Magmar Charmander 04 FF 30 4 255 48
0x34 052 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x35 053 Electabuzz Voltorb 06 8F FF 6 143 255
0x36 054 Magneton Metapod 1C 20 C0 28 32 192
0x37 055 Koffing Golem 12 E6 DD 18 230 221
0x38 056 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x39 057 Mankey Nidoqueen 0A DD 60 10 221 96
0x3A 058 Seel Seel 0C 88 C0 12 136 192
0x3B 059 Diglett Diglett 0B AA 01 11 170 1
0x3C 060 Tauros Squirtle 1D 11 40 29 17 64
0x3D 061 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x3E 062 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x3F 063 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x40 064 Farfetch'd Spearow 10 DD 01 16 221 1
0x41 065 Venonat Venonat 1A 44 40 26 68 64
0x42 066 Dragonite Bulbasaur 0F 3C C0 15 60 192
0x43 067 MissingNo. Nidoran♂ 00 80 10 0 128 16
0x44 068 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x45 069 MissingNo. Squirtle 1D E0 80 29 224 128
0x46 070 Doduo Diglett 0B BB 01 11 187 1
0x47 071 Poliwag Pidgey 0E FF FF 14 255 255
0x48 072 Jynx Drowzee 0D FF FF 13 255 255
0x49 073 Moltres Raichu 09 F8 40 9 248 64
0x4A 074 Articuno Raichu 09 80 40 9 128 64
0x4B 075 Zapdos Fearow 18 FF 80 24 255 128
0x4C 076 Ditto Pidgey 0E FF FF 14 255 255
0x4D 077 Meowth Clefairy 19 77 10 25 119 16
0x4E 078 Krabby Krabby 20 20 E0 32 32 224
0x4F 079 MissingNo. Rattata 22 FF 40 34 255 64
0x50 080 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x51 081 MissingNo. Pidgey 0E E0 60 14 224 96
0x52 082 Vulpix Vulpix 24 4F 10 36 79 16
0x53 083 Ninetales Vulpix 24 88 60 36 136 96
0x54 084 Pikachu Bulbasaur 0F EE 01 15 238 1
0x55 085 Raichu Raichu 09 EE 08 9 238 8
0x56 086 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x57 087 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x58 088 Dratini Bulbasaur 0F 60 40 15 96 64
0x59 089 Dragonair Bulbasaur 0F 40 80 15 64 128
0x5A 090 Kabuto Caterpie 16 BB 40 22 187 64
0x5B 091 Kabutops Fearow 18 EE 01 24 238 1
0x5C 092 Horsea Clefairy 19 99 10 25 153 16
0x5D 093 Seadra Clefairy 19 3C 01 25 60 1
0x5E 094 MissingNo. Bulbasaur 0F 40 C0 15 64 192
0x5F 095 MissingNo. Bulbasaur 0F 20 C0 15 32 192
0x60 096 Sandshrew Nidoran♂ 00 20 40 0 32 64
0x61 097 Sandslash Nidoran♂ 00 FF FF 0 255 255
0x62 098 Omanyte Growlithe 1F F0 01 31 240 1
0x63 099 Omastar Growlithe 1F FF 40 31 255 64
0x64 100 Jigglypuff Pidgey 0E FF 35 14 255 53
0x65 101 Wigglytuff Pidgey 0E 68 60 14 104 96
0x66 102 Eevee Venonat 1A 88 60 26 136 96
0x67 103 Flareon Venonat 1A 10 20 26 16 32
0x68 104 Jolteon Venonat 1A 3D 80 26 61 128
0x69 105 Vaporeon Venonat 1A AA FF 26 170 255
0x6A 106 Machop Growlithe 1F EE 01 31 238 1
0x6B 107 Zubat Squirtle 1D E0 80 29 224 128
0x6C 108 Ekans Ekans 17 12 40 23 18 64
0x6D 109 Paras Paras 1E 20 E0 30 32 224
0x6E 110 Poliwhirl Pidgey 0E 77 60 14 119 96
0x6F 111 Poliwrath Pidgey 0E 00 FF 14 0 255
0x70 112 Weedle Weedle 15 EE 01 21 238 1
0x71 113 Kakuna Blastoise 13 FF 01 19 255 1
0x72 114 Beedrill Blastoise 13 60 80 19 96 128
0x73 115 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x74 116 Dodrio Diglett 0B 99 20 11 153 32
0x75 117 Primeape Nidoqueen 0A AF 40 10 175 64
0x76 118 Dugtrio Diglett 0B 2A 10 11 42 16
0x77 119 Venomoth Venonat 1A 29 80 26 41 128
0x78 120 Dewgong Seel 0C 23 FF 12 35 255
0x79 121 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x7A 122 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x7B 123 Caterpie Caterpie 16 80 20 22 128 32
0x7C 124 Metapod Metapod 1C CC 01 28 204 1
0x7D 125 Butterfree Caterpie 16 77 40 22 119 64
0x7E 126 Machamp Growlithe 1F 08 C0 31 8 192
0x7F 127 MissingNo. Rhydon 11 20 10 17 32 16
0x80 128 Golduck Psyduck 21 FF 40 33 255 64
0x81 129 Hypno Drowzee 0D EE 40 13 238 64
0x82 130 Golbat Squirtle 1D FA 80 29 250 128
0x83 131 Mewtwo Paras 1E 99 FF 30 153 255
0x84 132 Snorlax Grimer 05 55 01 5 85 1
0x85 133 Magikarp Ekans 17 80 00 23 128 0
0x86 134 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x87 135 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x88 136 Muk Muk 07 EF FF 7 239 255
0x89 137 MissingNo. Bulbasaur 0F 40 80 15 64 128
0x8A 138 Kingler Krabby 20 EE E0 32 238 224
0x8B 139 Cloyster Fearow 18 6F E0 24 111 224
0x8C 140 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x8D 141 Electrode Voltorb 06 A8 90 6 168 144
0x8E 142 Clefable Clefairy 19 AA 20 25 170 32
0x8F 143 Weezing Golem 12 FF FF 18 255 255
0x90 144 Persian Clefairy 19 99 FF 25 153 255
0x91 145 Marowak Oddish 08 4F 60 8 79 96
0x92 146 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x93 147 Haunter Metapod 1C 30 40 28 48 64
0x94 148 Abra Metapod 1C C0 01 28 192 1
0x95 149 Alakazam Metapod 1C 98 FF 28 152 255
0x96 150 Pidgeotto Pidgeotto 14 28 C0 20 40 192
0x97 151 Pidgeot Pidgeotto 14 11 FF 20 17 255
0x98 152 Starmie Paras 1E 00 80 30 0 128
0x99 153 Bulbasaur Bulbasaur 0F 80 01 15 128 1
0x9A 154 Venusaur Bulbasaur 0F 00 C0 15 0 192
0x9B 155 Tentacruel Venonat 1A EE FF 26 238 255
0x9C 156 MissingNo. Nidoran♂ 00 00 00 0 0 0
0x9D 157 Goldeen Caterpie 16 80 40 22 128 64
0x9E 158 Seaking Caterpie 16 10 FF 22 16 255
0x9F 159 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xA0 160 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xA1 161 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xA2 162 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xA3 163 Ponyta Weepinbell 25 00 80 37 0 128
0xA4 164 Rapidash Weepinbell 25 20 C0 37 32 192
0xA5 165 Rattata Rattata 22 00 80 34 0 128
0xA6 166 Raticate Rattata 22 20 FF 34 32 255
0xA7 167 Nidorino Nidoran♂ 00 2C C0 0 44 192
0xA8 168 Nidorina Nidoran♀ 01 2C E0 1 44 224
0xA9 169 Geodude Vulpix 24 F0 10 36 240 16
0xAA 170 Porygon Weepinbell 25 AA FF 37 170 255
0xAB 171 Aerodactyl Vileplume 23 20 F0 35 32 240
0xAC 172 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xAD 173 Magnemite Metapod 1C 80 60 28 128 96
0xAE 174 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xAF 175 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xB0 176 Charmander Charmander 04 60 40 4 96 64
0xB1 177 Squirtle Squirtle 1D 60 40 29 96 64
0xB2 178 Charmeleon Charmander 04 20 40 4 32 64
0xB3 179 Wartortle Squirtle 1D 20 40 29 32 64
0xB4 180 Charizard Charmander 04 00 80 4 0 128
0xB5 181 MissingNo. Squirtle 1D 00 80 29 0 128
0xB6 182 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xB7 183 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xB8 184 MissingNo. Nidoran♂ 00 00 00 0 0 0
0xB9 185 Oddish Oddish 08 DD 01 8 221 1
0xBA 186 Gloom Oddish 08 AA 40 8 170 64
0xBB 187 Vileplume Vileplume 23 22 FF 35 34 255
0xBC 188 Bellsprout Psyduck 21 55 01 33 85 1
0xBD 189 Weepinbell Weepinbell 25 44 20 37 68 32
0xBE 190 Victreebel Weepinbell 25 66 CC 37 102 204


(Source: Pokémon Red Disassembly Project - Cry Values)