the cutting room mirror

Pokémon Red and Blue

This article has a talk page!
view on tcrf.net

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. All cries have an internal name defined in MVOICE.H and MVOICE.DAT in the leaked source code (more information here). Not all base cries are actually used in the games. In these cases, a known Pokémon that uses a variation is listed in italics in the table below.

Cry Name

Pokémon Name

Hex

Dec.

Sound

hariusagi

Nidoran♂

00

0

hariusagi@

Nidoran♀

01

1

yaddon

Slowpoke

02

2

garura

Kangaskhan

03

3

cyhorne

Rhyhorn, Charizard

04

4

bettobeter

Grimer

05

5

biriridama

Voltorb

06

6

gengar

Gengar

07

7

fushigiso

Marowak

08

8

mycor

Nidoking

09

9

mycor@

Nidoqueen

0A

10

tamatama

Exeggcute

0B

11

beloringa

Lickitung

0C

12

nasshii

Exeggutor

0D

13

pip

Pidgey

0E

14

gyace

Ivysaur

0F

15

omom

Spearow

10

16

gagarth

Rhydon

11

17

monjara

Tangela

12

18

omega

Blastoise

13

19

caiross

Pinsir

14

20

wing

Arcanine

15

21

strike

Scyther

16

22

gyaradoss

Gyarados

17

23

shellder

Shellder

18

24

karakara

Cubone

19

25

ambler

Tentacool

1A

26

rapruth

Lapras

1B

27

gouth

Gastly

1C

28

karabatheo

Tauros

1D

29

mimi

Starmie

1E

30

yaddohogera

Slowbro

1F

31

No34

Mr. Mime

20

32

No36

Psyduck

21

33

dog

Rattata

22

34

kingthaurus

Aerodactyl

23

35

sutegon

Graveler

24

36

eleking

Ponyta

25

37

There is also an additional base cry defined in the game that is completely unreferenced anywhere, and not used by any Pokémon. This is named earthtron in the leaked source code, referencing an Ultraman series kaiju, Arstron. Interestingy, this cry would remain in the games all the way until Pokémon Crystal.

Cry Name

Pokémon Name

Hex

Dec.

Sound

earthtron

None

--

--

(Source: Pokémon Red and Blue dissassembly project - Unused Cry)

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

gagarth

11

00

80

17

0

128

0x02

002

Kangaskhan

garura

03

00

80

3

0

128

0x03

003

Nidoran♂

hariusagi

00

00

80

0

0

128

0x04

004

Clefairy

karakara

19

CC

01

25

204

1

0x05

005

Spearow

omom

10

00

80

16

0

128

0x06

006

Voltorb

biriridama

06

ED

80

6

237

128

0x07

007

Nidoking

mycor

09

00

80

9

0

128

0x08

008

Slowbro

yaddohogera

1F

00

80

31

0

128

0x09

009

Ivysaur

gyace

0F

20

80

15

32

128

0x0A

010

Exeggutor

nasshii

0D

00

80

13

0

128

0x0B

011

Lickitung

beloringa

0C

00

80

12

0

128

0x0C

012

Exeggcute

tamatama

0B

00

80

11

0

128

0x0D

013

Grimer

bettobeter

05

00

80

5

0

128

0x0E

014

Gengar

gengar

07

00

FF

7

0

255

0x0F

015

Nidoran♀

hariusagi@

01

00

80

1

0

128

0x10

016

Nidoqueen

mycor@

0A

00

80

10

0

128

0x11

017

Cubone

karakara

19

00

80

25

0

128

0x12

018

Rhyhorn

cyhorne

04

00

80

4

0

128

0x13

019

Lapras

rapruth

1B

00

80

27

0

128

0x14

020

Arcanine

wing

15

00

80

21

0

128

0x15

021

Mew

mimi

1E

EE

FF

30

238

255

0x16

022

Gyarados

gyaradoss

17

00

80

23

0

128

0x17

023

Shellder

shellder

18

00

80

24

0

128

0x18

024

Tentacool

ambler

1A

00

80

26

0

128

0x19

025

Gastly

gouth

1C

00

80

28

0

128

0x1A

026

Scyther

strike

16

00

80

22

0

128

0x1B

027

Staryu

mimi

1E

02

20

30

2

32

0x1C

028

Blastoise

omega

13

00

80

19

0

128

0x1D

029

Pinsir

caiross

14

00

80

20

0

128

0x1E

030

Tangela

monjara

12

00

80

18

0

128

0x1F

031

MissingNo.

hariusagi

00

00

00

0

0

0

0x20

032

MissingNo.

hariusagi

00

00

00

0

0

0

0x21

033

Growlithe

yaddohogera

1F

20

40

31

32

64

0x22

034

Onix

gyaradoss

17

FF

C0

23

255

192

0x23

035

Fearow

shellder

18

40

A0

24

64

160

0x24

036

Pidgey

pip

0E

DF

04

14

223

4

0x25

037

Slowpoke

yaddon

02

00

80

2

0

128

0x26

038

Kadabra

gouth

1C

A8

C0

28

168

192

0x27

039

Graveler

sutegon

24

00

80

36

0

128

0x28

040

Chansey

caiross

14

0A

C0

20

10

192

0x29

041

Machoke

yaddohogera

1F

48

60

31

72

96

0x2A

042

Mr.Mime

No34

20

08

40

32

8

64

0x2B

043

Hitmonlee

monjara

12

80

C0

18

128

192

0x2C

044

Hitmonchan

beloringa

0C

EE

C0

12

238

192

0x2D

045

Arbok

gyaradoss

17

E0

10

23

224

16

0x2E

046

Parasect

mimi

1E

42

FF

30

66

255

0x2F

047

Psyduck

No36

21

20

60

33

32

96

0x30

048

Dowzee

nasshii

0D

88

20

13

136

32

0x31

049

Golem

monjara

12

E0

40

18

224

64

0x32

050

MissingNo.

hariusagi

00

00

00

0

0

0

0x33

051

Magmar

cyhorne

04

FF

30

4

255

48

0x34

052

MissingNo.

hariusagi

00

00

00

0

0

0

0x35

053

Electabuzz

biriridama

06

8F

FF

6

143

255

0x36

054

Magneton

gouth

1C

20

C0

28

32

192

0x37

055

Koffing

monjara

12

E6

DD

18

230

221

0x38

056

MissingNo.

hariusagi

00

00

00

0

0

0

0x39

057

Mankey

mycor@

0A

DD

60

10

221

96

0x3A

058

Seel

beloringa

0C

88

C0

12

136

192

0x3B

059

Diglett

tamatama

0B

AA

01

11

170

1

0x3C

060

Tauros

karabatheo

1D

11

40

29

17

64

0x3D

061

MissingNo.

hariusagi

00

00

00

0

0

0

0x3E

062

MissingNo.

hariusagi

00

00

00

0

0

0

0x3F

063

MissingNo.

hariusagi

00

00

00

0

0

0

0x40

064

Farfetch'd

omom

10

DD

01

16

221

1

0x41

065

Venonat

ambler

1A

44

40

26

68

64

0x42

066

Dragonite

gyace

0F

3C

C0

15

60

192

0x43

067

MissingNo.

hariusagi

00

80

10

0

128

16

0x44

068

MissingNo.

hariusagi

00

00

00

0

0

0

0x45

069

MissingNo.

karabatheo

1D

E0

80

29

224

128

0x46

070

Doduo

tamatama

0B

BB

01

11

187

1

0x47

071

Poliwag

pip

0E

FF

FF

14

255

255

0x48

072

Jynx

nasshii

0D

FF

FF

13

255

255

0x49

073

Moltres

mycor

09

F8

40

9

248

64

0x4A

074

Articuno

mycor

09

80

40

9

128

64

0x4B

075

Zapdos

shellder

18

FF

80

24

255

128

0x4C

076

Ditto

pip

0E

FF

FF

14

255

255

0x4D

077

Meowth

karakara

19

77

10

25

119

16

0x4E

078

Krabby

No34

20

20

E0

32

32

224

0x4F

079

MissingNo.

dog

22

FF

40

34

255

64

0x50

080

MissingNo.

hariusagi

00

00

00

0

0

0

0x51

081

MissingNo.

pip

0E

E0

60

14

224

96

0x52

082

Vulpix

sutegon

24

4F

10

36

79

16

0x53

083

Ninetales

sutegon

24

88

60

36

136

96

0x54

084

Pikachu

gyace

0F

EE

01

15

238

1

0x55

085

Raichu

mycor

09

EE

08

9

238

8

0x56

086

MissingNo.

hariusagi

00

00

00

0

0

0

0x57

087

MissingNo.

hariusagi

00

00

00

0

0

0

0x58

088

Dratini

gyace

0F

60

40

15

96

64

0x59

089

Dragonair

gyace

0F

40

80

15

64

128

0x5A

090

Kabuto

strike

16

BB

40

22

187

64

0x5B

091

Kabutops

shellder

18

EE

01

24

238

1

0x5C

092

Horsea

karakara

19

99

10

25

153

16

0x5D

093

Seadra

karakara

19

3C

01

25

60

1

0x5E

094

MissingNo.

gyace

0F

40

C0

15

64

192

0x5F

095

MissingNo.

gyace

0F

20

C0

15

32

192

0x60

096

Sandshrew

hariusagi

00

20

40

0

32

64

0x61

097

Sandslash

hariusagi

00

FF

FF

0

255

255

0x62

098

Omanyte

yaddohogera

1F

F0

01

31

240

1

0x63

099

Omastar

yaddohogera

1F

FF

40

31

255

64

0x64

100

Jigglypuff

pip

0E

FF

35

14

255

53

0x65

101

Wigglytuff

pip

0E

68

60

14

104

96

0x66

102

Eevee

ambler

1A

88

60

26

136

96

0x67

103

Flareon

ambler

1A

10

20

26

16

32

0x68

104

Jolteon

ambler

1A

3D

80

26

61

128

0x69

105

Vaporeon

ambler

1A

AA

FF

26

170

255

0x6A

106

Machop

yaddohogera

1F

EE

01

31

238

1

0x6B

107

Zubat

karabatheo

1D

E0

80

29

224

128

0x6C

108

Ekans

gyaradoss

17

12

40

23

18

64

0x6D

109

Paras

mimi

1E

20

E0

30

32

224

0x6E

110

Poliwhirl

pip

0E

77

60

14

119

96

0x6F

111

Poliwrath

pip

0E

00

FF

14

0

255

0x70

112

Weedle

wing

15

EE

01

21

238

1

0x71

113

Kakuna

omega

13

FF

01

19

255

1

0x72

114

Beedrill

omega

13

60

80

19

96

128

0x73

115

MissingNo.

hariusagi

00

00

00

0

0

0

0x74

116

Dodrio

tamatama

0B

99

20

11

153

32

0x75

117

Primeape

mycor@

0A

AF

40

10

175

64

0x76

118

Dugtrio

tamatama

0B

2A

10

11

42

16

0x77

119

Venomoth

ambler

1A

29

80

26

41

128

0x78

120

Dewgong

beloringa

0C

23

FF

12

35

255

0x79

121

MissingNo.

hariusagi

00

00

00

0

0

0

0x7A

122

MissingNo.

hariusagi

00

00

00

0

0

0

0x7B

123

Caterpie

strike

16

80

20

22

128

32

0x7C

124

Metapod

gouth

1C

CC

01

28

204

1

0x7D

125

Butterfree

strike

16

77

40

22

119

64

0x7E

126

Machamp

yaddohogera

1F

08

C0

31

8

192

0x7F

127

MissingNo.

gagarth

11

20

10

17

32

16

0x80

128

Golduck

No36

21

FF

40

33

255

64

0x81

129

Hypno

nasshii

0D

EE

40

13

238

64

0x82

130

Golbat

karabatheo

1D

FA

80

29

250

128

0x83

131

Mewtwo

mimi

1E

99

FF

30

153

255

0x84

132

Snorlax

bettobeter

05

55

01

5

85

1

0x85

133

Magikarp

gyaradoss

17

80

00

23

128

0

0x86

134

MissingNo.

hariusagi

00

00

00

0

0

0

0x87

135

MissingNo.

hariusagi

00

00

00

0

0

0

0x88

136

Muk

gengar

07

EF

FF

7

239

255

0x89

137

MissingNo.

gyace

0F

40

80

15

64

128

0x8A

138

Kingler

No34

20

EE

E0

32

238

224

0x8B

139

Cloyster

shellder

18

6F

E0

24

111

224

0x8C

140

MissingNo.

hariusagi

00

00

00

0

0

0

0x8D

141

Electrode

biriridama

06

A8

90

6

168

144

0x8E

142

Clefable

karakara

19

AA

20

25

170

32

0x8F

143

Weezing

monjara

12

FF

FF

18

255

255

0x90

144

Persian

karakara

19

99

FF

25

153

255

0x91

145

Marowak

fushigiso

08

4F

60

8

79

96

0x92

146

MissingNo.

hariusagi

00

00

00

0

0

0

0x93

147

Haunter

gouth

1C

30

40

28

48

64

0x94

148

Abra

gouth

1C

C0

01

28

192

1

0x95

149

Alakazam

gouth

1C

98

FF

28

152

255

0x96

150

Pidgeotto

caiross

14

28

C0

20

40

192

0x97

151

Pidgeot

caiross

14

11

FF

20

17

255

0x98

152

Starmie

mimi

1E

00

80

30

0

128

0x99

153

Bulbasaur

gyace

0F

80

01

15

128

1

0x9A

154

Venusaur

gyace

0F

00

C0

15

0

192

0x9B

155

Tentacruel

ambler

1A

EE

FF

26

238

255

0x9C

156

MissingNo.

hariusagi

00

00

00

0

0

0

0x9D

157

Goldeen

strike

16

80

40

22

128

64

0x9E

158

Seaking

strike

16

10

FF

22

16

255

0x9F

159

MissingNo.

hariusagi

00

00

00

0

0

0

0xA0

160

MissingNo.

hariusagi

00

00

00

0

0

0

0xA1

161

MissingNo.

hariusagi

00

00

00

0

0

0

0xA2

162

MissingNo.

hariusagi

00

00

00

0

0

0

0xA3

163

Ponyta

eleking

25

00

80

37

0

128

0xA4

164

Rapidash

eleking

25

20

C0

37

32

192

0xA5

165

Rattata

dog

22

00

80

34

0

128

0xA6

166

Raticate

dog

22

20

FF

34

32

255

0xA7

167

Nidorino

hariusagi

00

2C

C0

0

44

192

0xA8

168

Nidorina

hariusagi@

01

2C

E0

1

44

224

0xA9

169

Geodude

sutegon

24

F0

10

36

240

16

0xAA

170

Porygon

eleking

25

AA

FF

37

170

255

0xAB

171

Aerodactyl

kingthaurus

23

20

F0

35

32

240

0xAC

172

MissingNo.

hariusagi

00

00

00

0

0

0

0xAD

173

Magnemite

gouth

1C

80

60

28

128

96

0xAE

174

MissingNo.

hariusagi

00

00

00

0

0

0

0xAF

175

MissingNo.

hariusagi

00

00

00

0

0

0

0xB0

176

Charmander

cyhorne

04

60

40

4

96

64

0xB1

177

Squirtle

karabatheo

1D

60

40

29

96

64

0xB2

178

Charmeleon

cyhorne

04

20

40

4

32

64

0xB3

179

Wartortle

karabatheo

1D

20

40

29

32

64

0xB4

180

Charizard

cyhorne

04

00

80

4

0

128

0xB5

181

MissingNo.

karabatheo

1D

00

80

29

0

128

0xB6

182

MissingNo.

hariusagi

00

00

00

0

0

0

0xB7

183

MissingNo.

hariusagi

00

00

00

0

0

0

0xB8

184

MissingNo.

hariusagi

00

00

00

0

0

0

0xB9

185

Oddish

fushigiso

08

DD

01

8

221

1

0xBA

186

Gloom

fushigiso

08

AA

40

8

170

64

0xBB

187

Vileplume

kingthaurus

23

22

FF

35

34

255

0xBC

188

Bellsprout

No36

21

55

01

33

85

1

0xBD

189

Weepinbell

eleking

25

44

20

37

68

32

0xBE

190

Victreebel

eleking

25

66

CC

37

102

204

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

(Source: Retro Game Mechanics Explained - Gen 1 cries)