ref: 7c72858b75c0584eb4bf71ed7edc01ba991942b2
parent: 8a353e74b130a20c9eba0766d26b9b00f68f9fbb
parent: 177c1dccba84f7010bc404067835c275feb8c983
author: [email protected] <[email protected]>
date: Mon Jan 23 04:43:20 EST 2012
merge hg-commit-id: 0bd33b891f95
--- a/.hgignore
+++ b/.hgignore
@@ -6,6 +6,9 @@
#compiled object file
*.o
+#no binaries
+*.exe
+
#roms
*.gbc
@@ -24,3 +27,5 @@
#for vim configuration
#url: http://www.vim.org/scripts/script.php?script_id=441
.lvimrc
+
+*.exe
\ No newline at end of file
--- a/common.asm
+++ b/common.asm
@@ -421,7 +421,7 @@
call LoadGBPal
ld a,[$d736]
bit 6,a ; jumping down a ledge?
- call nz,$039e
+ call nz, HandleMidJump
ld a,[$cfc5] ; walking animation counter
and a
jp nz,.moveAhead\@ ; if the player sprite has not yet completed the walking animation
@@ -702,10 +702,10 @@
ld [$ffb4],a ; clear joypad state
ld a,[W_CURMAP]
cp a,CINNABAR_GYM
- jr nz,.notCinnabarGyn\@
+ jr nz,.notCinnabarGym\@
ld hl,$d79b
set 7,[hl]
-.notCinnabarGyn\@
+.notCinnabarGym\@
ld hl,$d72e
set 5,[hl]
ld a,[W_CURMAP]
@@ -5705,7 +5705,6 @@
INCBIN "baserom.gbc",$8000,$822E - $8000
;Music Headers
-
;Pallet Town
PalletTown_mh: ;0x822E - 0x8236
db $80
@@ -5771,16 +5770,16 @@
db $02
dw Cinnabar_md_3 ;Channel 3
-;Vermillion City
-Vermillion_mh: ;0x8270 - 0x827B
+;Vermilion City
+Vermilion_mh: ;0x8270 - 0x827B
db $C0
- dw Vermillion_md_1 ;Channel 1
+ dw Vermilion_md_1 ;Channel 1
db $01
- dw Vermillion_md_2 ;Channel 2
+ dw Vermilion_md_2 ;Channel 2
db $02
- dw Vermillion_md_3 ;Channel 3
+ dw Vermilion_md_3 ;Channel 3
db $03
- dw Vermillion_md_4 ;Channel 4
+ dw Vermilion_md_4 ;Channel 4
;Lavender Town
Lavender_mh: ;0x827C - 0x8287
@@ -5904,239 +5903,8 @@
db $03
dw IndigoPlateau_md_4 ;Channel 4
-; Music Data
-; The start and stop of these byte ranges were based off the theory they're lined
-; consecutively (Right up against each other).
-
-INCBIN "baserom.gbc",$82FD,$9ba3 - $82FD
-
-;Pokemon Healed Music
-PkmnHealed_md_1: ;9BA3 - 9BC3
-INCBIN "baserom.gbc",$9ba3,$9bc4 - $9ba3
-
-PkmnHealed_md_2: ;9BC4 - 9BD1
-INCBIN "baserom.gbc",$9bc4,$9bd2 - $9bc4
-
-PkmnHealed_md_3: ;9BD2 - 9BDD
-INCBIN "baserom.gbc",$9bd2,$9bde - $9bd2
-
-;Routes 1 and 2
-Routes1_md_1: ;9BDE - 9C50
-INCBIN "baserom.gbc",$9bde,$9c51 - $9bde
-
-Routes1_md_2: ;9C51 - 9CD7
-INCBIN "baserom.gbc",$9c51,$9cd8 - $9c51
-
-Routes1_md_3: ;9CD8 - 9D23
-INCBIN "baserom.gbc",$9cd8,$9d24 - $9cd8
-
-Routes1_md_4: ;9D24 - 9DB8
-INCBIN "baserom.gbc",$9d24,$9db9 - $9d24
-
-;Routes 24 and 25
-Routes2_md_1: ;9BD9 - 9E4E
-INCBIN "baserom.gbc",$9db9,$9e4f - $9db9
-
-Routes2_md_2: ;9E4F - 9E9A
-INCBIN "baserom.gbc",$9e4f,$9e9b - $9e4f
-
-Routes2_md_3: ;9E9B - 9F07
-INCBIN "baserom.gbc",$9e9b,$9f08 - $9e9b
-
-Routes2_md_4: ;9F08 - 9FAC
-INCBIN "baserom.gbc",$9f08,$9fad - $9f08
-
-;Routes 3, 4, 5, 6, 7, 8, 9, 10, 16, 17, 18, 19, 20, 21, 22
-Routes3_md_1: ;9FAD - A008
-INCBIN "baserom.gbc",$9fad,$a009 - $9fad
-
-Routes3_md_2: ;A009 - A07E
-INCBIN "baserom.gbc",$a009,$a07f - $a009
-
-Routes3_md_3: ;A07F - 6130
-INCBIN "baserom.gbc",$a07f,$a131 - $a07f
-
-Routes3_md_4: ;A131 -A26A
-INCBIN "baserom.gbc",$a131,$a26a - $a131
-
-;Routes 11, 12, 13, 14, 15
-Routes4_md_1: ;a26a - a303
-INCBIN "baserom.gbc",$a26a,$a304 - $a26a
-
-Routes4_md_2: ;a304 - a3c3
-INCBIN "baserom.gbc",$a304,$a3c4 - $a304
-
-Routes4_md_3: ;a3c4 - a49c
-INCBIN "baserom.gbc",$a3c4,$a49d - $a3c4
-
-Routes4_md_4: ;a49d - a5ef
-INCBIN "baserom.gbc",$a49d,$a5f0 - $a49d
-
-;Indigo Plateau
-IndigoPlateau_md_1: ;a5f0 - a663
-INCBIN "baserom.gbc",$a5f0,$a664 - $a5f0
-
-IndigoPlateau_md_2: ;a664 - a6b9
-INCBIN "baserom.gbc",$a664,$a6ba - $a664
-
-IndigoPlateau_md_3: ;a6ba - a70e
-INCBIN "baserom.gbc",$a6ba,$a70f - $a6ba
-
-IndigoPlateau_md_4: ;a70f - a7c4
-INCBIN "baserom.gbc",$a70f,$a7c5 - $a70f
-
-;Pallet Town
-PalletTown_md_1: ; a7c5 - a85e (154 bytes)
-INCBIN "baserom.gbc",$a7c5,$a85f - $a7c5
-
-PalletTown_md_2: ; a85f - a8dd (127 bytes)
-INCBIN "baserom.gbc",$a85f,$a8de - $a85f
-
-PalletTown_md_3: ; a8de - aa75 (408 bytes)
-INCBIN "baserom.gbc",$a8de,$aa76 - $a8de
-
-;Viridian City, Pewter City, Saffron City
-Cities1_md_1: ;AA76 - AB91
-INCBIN "baserom.gbc",$aa76,$ab92 - $aa76
-
-Cities1_md_2: ;AB92 - AC02
-INCBIN "baserom.gbc",$ab92,$ac32 - $ab92
-
-Cities1_md_3: ;AC32 - AC7F
-INCBIN "baserom.gbc",$ac32,$acef - $ac32
-
-Cities1_md_4: ;ACEF - ADAD
-INCBIN "baserom.gbc",$acef,$adae - $acef
-
-;Guy walks you to museum
-MuseumGuy_md_1: ;ADAE - ADF0
-INCBIN "baserom.gbc",$adae,$adf1 - $adae
-
-MuseumGuy_md_2: ;ADF1 - AE6D
-INCBIN "baserom.gbc",$adf1,$ae6e - $adf1
-
-MuseumGuy_md_3: ;AE6E - AED0
-INCBIN "baserom.gbc",$ae6e,$aed1 - $ae6e
-
-MuseumGuy_md_4: ;AED1 - AF58
-INCBIN "baserom.gbc",$aed1,$af59 - $aed1
-
-;Meet Prof. Oak
-MeetProfOak_md_1: ;AF59 - AFA8
-INCBIN "baserom.gbc",$af59,$afa9 - $af59
-
-MeetProfOak_md_2: ;AFA9 - B03D
-INCBIN "baserom.gbc",$afa9,$b03d - $afa9
-
-MeetProfOak_md_3: ;B03D - B11F
-INCBIN "baserom.gbc",$b03d,$b120 - $b03d
-
-;Meet Rival
-MeetRival_md_1: ;B120 - B1BA
-INCBIN "baserom.gbc",$b120,$b1bb - $b120
-
-MeetRival_md_2: ;B1BB - B232
-INCBIN "baserom.gbc",$b1bb,$b233 - $b1bb
-
-MeetRival_md_3: ;B233 - B3A6
-INCBIN "baserom.gbc",$b233,$b3a7 - $b233
-
-;SS Anne
-SSAnne_md_1: ;B3A7 - B418
-INCBIN "baserom.gbc",$b3a7,$b419 - $b3a7
-
-SSAnne_md_2: ;B419 - B4CA
-INCBIN "baserom.gbc",$b419,$b4cb - $b419
-
-SSAnne_md_3: ;B4CB - B503
-INCBIN "baserom.gbc",$b4cb,$b504 - $b4cb
-
-;Cerulean City, Fuchsia City
-Cities2_md_1: ;B504 - B568
-INCBIN "baserom.gbc",$b504,$b569 - $b504
-
-Cities2_md_2: ;B569 - B63F
-INCBIN "baserom.gbc",$b569,$b640 - $b569
-
-Cities2_md_3: ;B640 - B6C6
-INCBIN "baserom.gbc",$b640,$b6c7 - $b640
-
-;Celadon City
-Celadon_md_1: ;B6C7 - B739
-INCBIN "baserom.gbc",$b6c7,$b73a - $b6c7
-
-Celadon_md_2: ;B73A - B7B4
-INCBIN "baserom.gbc",$b73a,$b7b5 - $b73a
-
-Celadon_md_3: ;B7B5 - B86C
-INCBIN "baserom.gbc",$b7b5,$b86d - $b7b5
-
-;Cinnabar Island
-Cinnabar_md_1: ;B86D - B8D3
-INCBIN "baserom.gbc",$b86d,$b8d4 - $b86d
-
-Cinnabar_md_2: ;B8D4 - B93C
-INCBIN "baserom.gbc",$b8d4,$b93d - $b8d4
-
-Cinnabar_md_3: ;B93D - B9EA
-INCBIN "baserom.gbc",$b93d,$b9eb - $b93d
-
-;Vermillion City
-Vermillion_md_1: ;B9EB - BA60
-INCBIN "baserom.gbc",$b9eb,$ba61 - $b9eb
-
-Vermillion_md_2: ;BA61 - BAA5
-INCBIN "baserom.gbc",$ba61,$baa6 - $ba61
-
-Vermillion_md_3: ;BAA6 - BB0C
-INCBIN "baserom.gbc",$baa6,$bb0d - $baa6
-
-Vermillion_md_4: ;BB0D - BB57
-INCBIN "baserom.gbc",$bb0d,$bb58 - $bb0d
-
-;Lavender Town
-Lavender_md_1: ;BB58 - BB9D
-INCBIN "baserom.gbc",$bb58,$bb9e - $bb58
-
-Lavender_md_2: ;BB9E - BBAD
-INCBIN "baserom.gbc",$bb9e,$bbae - $bb9e
-
-Lavender_md_3: ;BBAE - BC20
-INCBIN "baserom.gbc",$bbae,$bc21 - $bbae
-
-Lavender_md_4: ;BC21 - BC2D
-INCBIN "baserom.gbc",$bc21,$bc2e - $bc21
-
-;Safari Zone
-SafariZone_md_1: ;BC2E - BC69
-INCBIN "baserom.gbc",$bc2e,$bc6a - $bc2e
-
-SafariZone_md_2: ;BC6A - BC93
-INCBIN "baserom.gbc",$bc6a,$bc94 - $bc6a
-
-SafariZone_md_3: ;BC94 - BCBA
-INCBIN "baserom.gbc",$bc94,$bcbb - $bc94
-
-;Gyms
-Gym_md_1: ;bcbb - bd6a (175 bytes)
-INCBIN "baserom.gbc",$bcbb,$bd6b - $bcbb
-
-Gym_md_2: ;bd6b - bdf9 (142 bytes)
-INCBIN "baserom.gbc",$bd6b,$bdfa - $bd6b
-
-Gym_md_3: ;bdfa - be55 (91 bytes)
-INCBIN "baserom.gbc",$bdfa,$be56 - $bdfa
-
-;Pokemon Center
-Pokecenter_md_1: ;be56 - bef8 (162 bytes)
-INCBIN "baserom.gbc",$be56,$bef9 - $be56
-
-Pokecenter_md_2: ;0xbef9 - bf6f (118 bytes)
-INCBIN "baserom.gbc",$bef9,$bf70 - $bef9
-
-Pokecenter_md_3: ;0xbf70 - bfff (143 bytes)
-INCBIN "baserom.gbc",$bf70,$c000 - $bf70
-
+INCLUDE "music.asm"
+
SECTION "bank3",DATA,BANK[$3]
INCBIN "baserom.gbc",$C000,$C23D - $C000
@@ -12916,12 +12684,12 @@
db $08 ; asm
ld a, [$d356]
cp $7f
- ld hl, $5127
+ ld hl, UnnamedText_19127
jr z, .asm_ae9fe ; 0x19110
ld a, [$d751]
bit 1, a
jr nz, .asm_ae9fe ; 0x19117
- ld hl, $5122
+ ld hl, UnnamedText_19122
.asm_ae9fe ; 0x1911c
call PrintText
jp TextScriptEnd
@@ -12938,17 +12706,17 @@
ViridianCityText3: ; 0x1912c
db $08 ; asm
- ld hl, $514d
+ ld hl, UnnamedText_1914d
call PrintText
call $35ec
ld a, [$cc26]
and a
jr nz, .asm_6dfea ; 0x1913a
- ld hl, $5157
+ ld hl, UnnamedText_19157
call PrintText
jr .asm_d611f ; 0x19142
.asm_6dfea ; 0x19144
- ld hl, $5152
+ ld hl, UnnamedText_19152
call PrintText
.asm_d611f ; 0x1914a
jp TextScriptEnd
@@ -12973,11 +12741,11 @@
ld a, [$d74b]
bit 5, a
jr nz, .asm_83894 ; 0x19162
- ld hl, $5175
+ ld hl, UnnamedText_19175
call PrintText
jr .asm_700a6 ; 0x1916a
.asm_83894 ; 0x1916c
- ld hl, $517a
+ ld hl, UnnamedText_1917a
call PrintText
.asm_700a6 ; 0x19172
jp TextScriptEnd
@@ -12994,7 +12762,7 @@
ViridianCityText5: ; 0x1917f
db $08 ; asm
- ld hl, $5191
+ ld hl, UnnamedText_19191
call PrintText
call $50cf
ld a, $3
@@ -13011,22 +12779,22 @@
ld a, [$d74c]
bit 1, a
jr nz, .asm_4e5a0 ; 0x1919c
- ld hl, $51ca
+ ld hl, UnnamedText_191ca
call PrintText
- ld bc,(TM_42 << 8) | 1
+ ld bc, (TM_42 << 8) | 1
call GiveItem
jr nc, .asm_b655e ; 0x191aa
- ld hl, $51cf
+ ld hl, ReceivedTM42Text
call PrintText
ld hl, $d74c
set 1, [hl]
jr .asm_3c73c ; 0x191b7
.asm_b655e ; 0x191b9
- ld hl, $51da
+ ld hl, UnnamedText_191da
call PrintText
jr .asm_3c73c ; 0x191bf
.asm_4e5a0 ; 0x191c1
- ld hl, $51d5
+ ld hl, UnnamedText_191d5
call PrintText
.asm_3c73c ; 0x191c7
jp TextScriptEnd
@@ -13036,7 +12804,10 @@
db $50
; 0x191ca + 5 bytes
-INCBIN "baserom.gbc",$191cf,$191d5 - $191cf
+ReceivedTM42Text: ; 0x191cf
+ TX_FAR _ReceivedTM42Text ; 0xa469a
+ db $10, $50
+; 0x191cf + 6 bytes = 0x191d5
UnnamedText_191d5: ; 0x191d5
TX_FAR _UnnamedText_191d5
@@ -13050,7 +12821,7 @@
ViridianCityText7: ; 0x191df
db $08 ; asm
- ld hl, $520a
+ ld hl, UnnamedText_1920a
call PrintText
ld c, $2
call $3739
@@ -13058,13 +12829,13 @@
ld a, [$cc26]
and a
jr z, .asm_42f68 ; 0x191f2
- ld hl, $520f
+ ld hl, UnnamedText_1920f
call PrintText
ld a, $1
ld [$d5f4], a
jr .asm_2413a ; 0x191ff
.asm_42f68 ; 0x19201
- ld hl, $5214
+ ld hl, UnnamedText_19214
call PrintText
.asm_2413a ; 0x19207
jp TextScriptEnd
@@ -13148,17 +12919,17 @@
PewterCityText3: ; 0x193b1
db $08 ; asm
- ld hl, $53f1
+ ld hl, UnnamedText_193f1
call PrintText
call $35ec
ld a, [$cc26]
and a
jr nz, .asm_f46a9 ; 0x193bf
- ld hl, $53f6
+ ld hl, UnnamedText_193f6
call PrintText
jr .asm_ac429 ; 0x193c7
.asm_f46a9 ; 0x193c9
- ld hl, $53fb
+ ld hl, UnnamedText_193fb
call PrintText
xor a
ldh [$b3], a
@@ -13200,17 +12971,17 @@
PewterCityText4: ; 0x19405
db $8
- ld hl, $5427
+ ld hl, UnnamedText_19427
call PrintText
call $35ec
ld a, [$cc26]
cp $0
jr nz, .asm_e4603
- ld hl, $542c
+ ld hl, UnnamedText_1942c
call PrintText
jr .asm_e4604 ; 0x1941c $6
.asm_e4603
- ld hl, $5431
+ ld hl, UnnamedText_19431
call PrintText
.asm_e4604 ; 0x19424
jp TextScriptEnd
@@ -13233,7 +13004,7 @@
PewterCityText5: ; 0x19436
db $08 ; asm
- ld hl, $545d
+ ld hl, UnnamedText_1945d
call PrintText
xor a
ldh [$b4], a
@@ -13468,11 +13239,11 @@
ld a, [$d75a]
bit 0, a
jr z, .asm_a89f9 ; 0x19655
- ld hl, $5677
+ ld hl, UnnamedText_19677
call PrintText
jr .asm_815c6 ; 0x1965d
.asm_a89f9 ; 0x1965f
- ld hl, $5668
+ ld hl, UnnamedText_19668
call PrintText
.asm_815c6 ; 0x19665
jp TextScriptEnd
@@ -13587,17 +13358,17 @@
ldh a, [$d3]
cp $b4
jr c, .asm_e9fc9 ; 0x19711
- ld hl, $5730
+ ld hl, UnnamedText_19730
call PrintText
jr .asm_d486e ; 0x19719
.asm_e9fc9 ; 0x1971b
cp $64
jr c, .asm_df99b ; 0x1971d
- ld hl, $5735
+ ld hl, UnnamedText_19735
call PrintText
jr .asm_d486e ; 0x19725
.asm_df99b ; 0x19727
- ld hl, $573a
+ ld hl, UnnamedText_1973a
call PrintText
.asm_d486e ; 0x1972d
jp TextScriptEnd
@@ -13622,23 +13393,23 @@
ldh a, [$d3]
cp $b4
jr c, .asm_e28da ; 0x19744
- ld hl, $576f
+ ld hl, UnnamedText_1976f
call PrintText
jr .asm_f2f38 ; 0x1974c
.asm_e28da ; 0x1974e
cp $78
jr c, .asm_15d08 ; 0x19750
- ld hl, $5774
+ ld hl, UnnamedText_19774
call PrintText
jr .asm_f2f38 ; 0x19758
.asm_15d08 ; 0x1975a
cp $3c
jr c, .asm_d7fea ; 0x1975c
- ld hl, $5779
+ ld hl, UnnamedText_19779
call PrintText
jr .asm_f2f38 ; 0x19764
.asm_d7fea ; 0x19766
- ld hl, $577e
+ ld hl, UnnamedText_1977e
call PrintText
.asm_f2f38 ; 0x1976c
jp TextScriptEnd
@@ -13768,11 +13539,11 @@
ld a, [$d803]
bit 2, a
jr nz, .asm_359bd ; 0x19894
- ld hl, $58a7
+ ld hl, UnnamedText_198a7
call PrintText
jr .asm_735d9 ; 0x1989c
.asm_359bd ; 0x1989e
- ld hl, $58ac
+ ld hl, UnnamedText_198ac
call PrintText
.asm_735d9 ; 0x198a4
jp TextScriptEnd
@@ -13799,11 +13570,11 @@
call $34bf
jr nc, .asm_57b73 ; 0x198c6
.asm_07af3 ; 0x198c8
- ld hl, $5904
+ ld hl, UnnamedText_19904
call PrintText
jr .asm_79bd1 ; 0x198ce
.asm_57b73 ; 0x198d0
- ld hl, $5909
+ ld hl, UnnamedText_19909
call PrintText
ld b, $3f
ld a, $1c
@@ -13811,17 +13582,17 @@
ld a, b
and a
jr nz, .asm_0419b ; 0x198df
- ld hl, $5913
+ ld hl, UnnamedText_19913
call PrintText
jr .asm_79bd1 ; 0x198e7
.asm_0419b ; 0x198e9
- ld hl, $590e
+ ld hl, UnnamedText_1990e
call PrintText
ld a, $4
ld [$d62a], a
jr .asm_79bd1 ; 0x198f4
.asm_3e0e9 ; 0x198f6
- ld hl, $5918
+ ld hl, UnnamedText_19918
call PrintText
.asm_79bd1 ; 0x198fc
jp TextScriptEnd
@@ -13928,22 +13699,22 @@
ld a, [$d777]
bit 0, a
jr nz, .asm_7053f ; 0x199a4
- ld hl, $59d2
+ ld hl, UnnamedText_199d2
call PrintText
- ld bc,(TM_41 << 8) | 1
+ ld bc, (TM_41 << 8) | 1
call GiveItem
jr c, .asm_890ec ; 0x199b2
- ld hl, $59e2
+ ld hl, UnnamedText_199e2
call PrintText
jr .asm_c765a ; 0x199ba
.asm_890ec ; 0x199bc
- ld hl, $59d7
+ ld hl, UnnamedText_199d7
call PrintText
ld hl, $d777
set 0, [hl]
jr .asm_c765a ; 0x199c7
.asm_7053f ; 0x199c9
- ld hl, $59dd
+ ld hl, UnnamedText_199dd
call PrintText
.asm_c765a ; 0x199cf
jp TextScriptEnd
@@ -13953,7 +13724,10 @@
db $50
; 0x199d2 + 5 bytes
-INCBIN "baserom.gbc",$199d7,$199dd - $199d7
+UnnamedText_199d7: ; 0x199d7
+ TX_FAR _UnnamedText_199d7 ; 0xa5b5a
+ db $0B, $50
+; 0x199d7 + 6 bytes = 0x199dd
UnnamedText_199dd: ; 0x199dd
TX_FAR _UnnamedText_199dd
@@ -14071,7 +13845,7 @@
FuchsiaCityText19: ; 0x19a90
db $08 ; asm
- ld hl, $5a9f
+ ld hl, UnnamedText_19a9f
call PrintText
ld a, $28
call $349b
@@ -14084,7 +13858,7 @@
FuchsiaCityText20: ; 0x19aa4
db $08 ; asm
- ld hl, $5ab3
+ ld hl, UnnamedText_19ab3
call PrintText
ld a, $6
call $349b
@@ -14097,7 +13871,7 @@
FuchsiaCityText21: ; 0x19ab8
db $08 ; asm
- ld hl, $5ac7
+ ld hl, UnnamedText_19ac7
call PrintText
ld a, $2
call $349b
@@ -14110,7 +13884,7 @@
FuchsiaCityText22: ; 0x19acc
db $08 ; asm
- ld hl, $5adb
+ ld hl, UnnamedText_19adb
call PrintText
ld a, $25
call $349b
@@ -14123,7 +13897,7 @@
FuchsiaCityText23: ; 0x19ae0
db $08 ; asm
- ld hl, $5aef
+ ld hl, UnnamedText_19aef
call PrintText
ld a, $13
call $349b
@@ -14141,16 +13915,16 @@
jr nz, .asm_3b4e8 ; 0x19afa
bit 7, a
jr nz, .asm_667d5 ; 0x19afe
- ld hl, $5b2a
+ ld hl, UnnamedText_19b2a
call PrintText
jr .asm_4343f ; 0x19b06
.asm_3b4e8 ; 0x19b08
- ld hl, $5b20
+ ld hl, UnnamedText_19b20
call PrintText
ld a, $62
jr .asm_81556 ; 0x19b10
.asm_667d5 ; 0x19b12
- ld hl, $5b25
+ ld hl, UnnamedText_19b25
call PrintText
ld a, $5a
.asm_81556 ; 0x19b1a
@@ -27190,8 +26964,8 @@
RockTunnel1Script: ; 0x444dc
call $3c3c
- ld hl, $4505
- ld de, $44ef
+ ld hl, Unnamed_44505 ; $4505
+ ld de, Unnamed_444ef ; $44ef
ld a, [$d621]
call $3160
ld [$d621], a
@@ -27198,11 +26972,13 @@
ret
; 0x444ef
+Unnamed_444ef:
INCBIN "baserom.gbc",$444ef,$6
RockTunnel1Texts: ; 0x444f5
dw RockTunnel1Text1, RockTunnel1Text2, RockTunnel1Text3, RockTunnel1Text4, RockTunnel1Text5, RockTunnel1Text6, RockTunnel1Text7, RockTunnel1Text8
+Unnamed_44505:
INCBIN "baserom.gbc",$44505,$55
RockTunnel1Text1: ; 0x4455a
@@ -33606,9 +33382,8 @@
SaffronCityText12: ; 0x50c6c
TX_FAR _SaffronCityText12
+ db $15, $50
-INCBIN "baserom.gbc",$50c70,$50c72 - $50c70
-
SaffronCityText13: ; 0x50c72
TX_FAR _SaffronCityText13
db $50
@@ -33672,6 +33447,8 @@
Route20Texts: ; 0x50d22
dw Route20Text1, Route20Text2, Route20Text3, Route20Text4, Route20Text5, Route20Text6, Route20Text7, Route20Text8, Route20Text9, Route20Text10, Route20Text11, Route20Text12
+Route20TrainerHeaders:
+Route20TrainerHeader1:
INCBIN "baserom.gbc",$50d3a,$79
Route20Text1: ; 0x50db3
@@ -34268,7 +34045,7 @@
ld a, [$d7ef]
bit 0, a
jr nz, .asm_a03f5 ; 0x514af $48
- ld hl, $5510
+ ld hl, UnnamedText_51510
call PrintText
ld bc, $3101
call GiveItem
@@ -34275,15 +34052,15 @@
jr nc, .asm_3a23d ; 0x514bd $43
ld hl, $d7ef
set 0, [hl]
- ld hl, $551a
+ ld hl, UnnamedText_5151a
call PrintText
- ld hl, $5526
+ ld hl, UnnamedText_51526
call PrintText
ld hl, $d72d
set 6, [hl]
set 7, [hl]
- ld hl, $552b
- ld de, $552b
+ ld hl, UnnamedText_5152b
+ ld de, $552b ; probably UnnamedText_5152b
call $3354
ld a, [$ff00+$8c]
ld [$cf13], a
@@ -34296,11 +34073,11 @@
ld [$da39], a
jp TextScriptEnd
.asm_a03f5 ; 0x514f9
- ld hl, $5530
+ ld hl, UnnamedText_51530
call PrintText
jp TextScriptEnd
.asm_3a23d ; 0x51502
- ld hl, $5521
+ ld hl, UnnamedText_51521
call PrintText
ld hl, $d7f0
set 1, [hl]
@@ -34307,14 +34084,16 @@
jp TextScriptEnd
; 0x51510
-INCBIN "baserom.gbc",$51510,$51515 - $51510
-
-UnnamedText_51515: ; 0x51515
- TX_FAR _UnnamedText_51515
+UnnamedText_51510: ; 0x51510
+ TX_FAR _UnnamedText_51510 ; 0x92721
+ db $0B
+ TX_FAR _UnnamedText_51515 ; 0x92755
db $50
-; 0x51515 + 5 bytes
+; 0x5151a
-INCBIN "baserom.gbc",$5151a,$51521 - $5151a
+UnnamedText_5151a: ; 0x5151a
+ TX_FAR _UnnamedText_5151a ; 0x92779
+ db $0B, $6, $50
UnnamedText_51521: ; 0x51521
TX_FAR _UnnamedText_51521
@@ -34945,13 +34724,13 @@
ld a, [$d838]
bit 7, a
jr nz, .asm_688b4 ; 0x51d9b
- ld hl, $5ddd
+ ld hl, UnnamedText_51ddd
call PrintText
jr .asm_b3069 ; 0x51da3
.asm_d7e17 ; 0x51da5
- ld hl, $5dd3
+ ld hl, UnnamedText_51dd3
call PrintText
- ld bc,(LAPRAS << 8) | 15
+ ld bc, (LAPRAS << 8) | 15
call GivePokemon
jr nc, .asm_b3069 ; 0x51db1
ld a, [$ccd3]
@@ -34958,13 +34737,13 @@
and a
call z, $3865
call $3c3c
- ld hl, $5dd8
+ ld hl, UnnamedText_51dd8
call PrintText
ld hl, $d72e
set 0, [hl]
jr .asm_b3069 ; 0x51dc8
.asm_688b4 ; 0x51dca
- ld hl, $5de2
+ ld hl, UnnamedText_51de2
call PrintText
.asm_b3069 ; 0x51dd0
jp TextScriptEnd
@@ -34994,11 +34773,11 @@
ld a, [$d838]
bit 7, a
jr nz, .asm_892ce ; 0x51ded $8
- ld hl, $5e00
+ ld hl, UnnamedText_51e00
call PrintText
jr .asm_e4d89 ; 0x51df5 $6
.asm_892ce ; 0x51df7
- ld hl, $5e05
+ ld hl, UnnamedText_51e05
call PrintText
.asm_e4d89 ; 0x51dfd
jp TextScriptEnd
@@ -35019,11 +34798,11 @@
ld a, [$d838]
bit 7, a
jr nz, .asm_254aa ; 0x51e10
- ld hl, $5e23
+ ld hl, UnnamedText_51e23
call PrintText
jr .asm_6472b ; 0x51e18
.asm_254aa ; 0x51e1a
- ld hl, $5e28
+ ld hl, UnnamedText_51e28
call PrintText
.asm_6472b ; 0x51e20
jp TextScriptEnd
@@ -35043,11 +34822,11 @@
ld a, [$d838]
bit 7, a
jr nz, .asm_0f7ee ; 0x51e33
- ld hl, $5e46
+ ld hl, UnnamedText_51e46
call PrintText
jr .asm_27a32 ; 0x51e3b
.asm_0f7ee ; 0x51e3d
- ld hl, $5e4b
+ ld hl, UnnamedText_51e4b
call PrintText
.asm_27a32 ; 0x51e43
jp TextScriptEnd
@@ -35148,7 +34927,7 @@
SilphCo7Text9: ; 0x51eb4
db $08 ; asm
- ld hl, $5ebe
+ ld hl, UnnamedText_51ebe
call PrintText
jp TextScriptEnd
@@ -35831,7 +35610,7 @@
ld c,a
pop af
ld b,a
- call $3E48 ; GivePokemon
+ call GivePokemon
push af
ld a,[$CCD3] ; XXX is there room?
and a
@@ -36525,7 +36304,7 @@
Route3Script: ; 0x554f8
call $3c3c
- ld hl, $5525
+ ld hl, Unknown_55525
ld de, $550b
ld a, [$d5f8]
call $3160
@@ -36538,6 +36317,7 @@
Route3Texts: ; 0x55511
dw Route3Text1, Route3Text2, Route3Text3, Route3Text4, Route3Text5, Route3Text6, Route3Text7, Route3Text8, Route3Text9, Route3Text10
+Unknown_55525:
INCBIN "baserom.gbc",$55525,$61
Route3Text1: ; 0x55586
@@ -36718,8 +36498,8 @@
Route4Script: ; 0x55658
call $3c3c
- ld hl, $567d
- ld de, $566b
+ ld hl, Unknown_5567d
+ ld de, UnknownData_5566b
ld a, [$d5f9]
call $3160
ld [$d5f9], a
@@ -36726,11 +36506,13 @@
ret
; 0x5566b
+UnknownData_5566b:
INCBIN "baserom.gbc",$5566b,$6
Route4Texts: ; 0x55671
dw Route4Text1, Route4Text2, Route4Text3, Route4Text4, Route4Text5, Route4Text6
+Unknown_5567d:
INCBIN "baserom.gbc",$5567d,$d
Route4Text1: ; 0x5568a
@@ -36798,8 +36580,15 @@
Route12Text14: ; 0x556f0
db $57
-INCBIN "baserom.gbc",$556f1,$55758 - $556f1
+INCBIN "baserom.gbc",$556f1,$5571b - $556f1
+; XXX
+UnnamedText_5571b: ; 0x5571b
+ db $5, $20, $cf, $d7, $ce, $57
+; 0x5571b + 6 bytes = 0x55721
+
+INCBIN "baserom.gbc",$55721,$55758 - $55721
+
Route9Text1: ; 0x55758
db $8 ; asm
ld hl, $56eb
@@ -38165,27 +37954,27 @@
ld a, [$d728]
bit 3, a
jr nz, asm_03ef5 ; 0x5607b
- ld hl, $60b1
+ ld hl, UnnamedText_560b1
call PrintText
call $35ec
ld a, [$cc26]
and a
jr nz, asm_eb1b7 ; 0x5608a
- ld bc,(OLD_ROD << 8) | 1
+ ld bc, (OLD_ROD << 8) | 1
call GiveItem
jr nc, asm_fd67b ; 0x56092
ld hl, $d728
set 3, [hl]
- ld hl, $60b6
+ ld hl, UnnamedText_560b6
jr asm_5dd95 ; 0x5609c
asm_fd67b ; 0x5609e
- ld hl, $60ca
+ ld hl, UnnamedText_560ca
jr asm_5dd95 ; 0x560a1
asm_eb1b7 ; 0x560a3
- ld hl, $60c0
+ ld hl, UnnamedText_560c0
jr asm_5dd95 ; 0x560a6
asm_03ef5 ; 0x560a8
- ld hl, $60c5
+ ld hl, UnnamedText_560c5
asm_5dd95 ; 0x560ab
call PrintText
jp TextScriptEnd
@@ -38195,12 +37984,12 @@
db $50
; 0x560b1 + 5 bytes
-INCBIN "baserom.gbc",$560b6,$560bb - $560b6
-
-UnnamedText_560bb: ; 0x560bb
- TX_FAR _UnnamedText_560bb
+UnnamedText_560b6: ; 0x560b6
+ TX_FAR _UnnamedText_560b6 ; 0x9c554
+ db $0B
+ TX_FAR _UnnamedText_560bb ; 0x9c5a4
db $50
-; 0x560bb + 5 bytes
+; 0x560c0
UnnamedText_560c0: ; 0x560c0
TX_FAR _UnnamedText_560c0
@@ -38305,27 +38094,27 @@
ld a, [$d728]
bit 4, a
jr nz, asm_6084e ; 0x56187
- ld hl, $61bd
+ ld hl, UnnamedText_561bd
call PrintText
call $35ec
ld a, [$cc26]
and a
jr nz, asm_3ace4 ; 0x56196
- ld bc,(GOOD_ROD << 8) | 1
+ ld bc, (GOOD_ROD << 8) | 1
call GiveItem
jr nc, asm_628ee ; 0x5619e
ld hl, $d728
set 4, [hl]
- ld hl, $61c2
+ ld hl, UnnamedText_561c2
jr asm_1b09c ; 0x561a8
asm_628ee ; 0x561aa
- ld hl, $621c
+ ld hl, UnnamedText_5621c
jr asm_1b09c ; 0x561ad
asm_3ace4 ; 0x561af
- ld hl, $6212
+ ld hl, UnnamedText_56212
jr asm_1b09c ; 0x561b2
asm_6084e ; 0x561b4
- ld hl, $6217
+ ld hl, UnnamedText_56217
asm_1b09c ; 0x561b7
call PrintText
jp TextScriptEnd
@@ -38335,8 +38124,13 @@
db $50
; 0x561bd + 5 bytes
-INCBIN "baserom.gbc",$561c2,$56212 - $561c2
+UnnamedText_561c2: ; 0x561c2
+ TX_FAR _UnnamedText_561c2 ; 0xa06e8
+ db $0B, $50
+; 0x561c8
+INCBIN "baserom.gbc",$561c8,$56212 - $561c8
+
UnnamedText_56212: ; 0x56212
TX_FAR _UnnamedText_56212
db $50
@@ -38390,19 +38184,19 @@
call $36f4
ld a, [$da48]
and a
- jp nz, $62e1
- ld hl, $640f
+ jp nz, Unnamed_562e1
+ ld hl, UnnamedText_5640f
call PrintText
call $35ec
ld a, [$cc26]
and a
- ld hl, $643b
- jp nz, $6409
+ ld hl, UnnamedText_5643b
+ jp nz, Unnamed_56409
ld a, [$d163]
dec a
- ld hl, $6445
- jp z, $6409
- ld hl, $6414
+ ld hl, UnnamedText_56445
+ jp z, Unnamed_56409
+ ld hl, UnnamedText_56414
call PrintText
xor a
ld [$cfcb], a
@@ -38414,19 +38208,19 @@
call $3dbe
call $20ba
pop af
- ld hl, $6437
- jp c, $6409
- ld hl, $571b
+ ld hl, UnnamedText_56437
+ jp c, Unnamed_56409
+ ld hl, UnnamedText_5571b
ld b, $8
call Bankswitch
- ld hl, $644a
- jp c, $6409
+ ld hl, UnnamedText_5644a
+ jp c, Unnamed_56409
xor a
ld [$cc2b], a
ld a, [$cf92]
ld hl, $d2b5
call $15ba
- ld hl, $6419
+ ld hl, UnnamedText_56419
call PrintText
ld a, $1
ld [$da48], a
@@ -38438,12 +38232,18 @@
call $391f
ld a, [$cf91]
call $13d0
- ld hl, $641e
- jp $6409
+ ld hl, UnnamedText_5641e
+ jp Unnamed_56409
; 0x562e1
-INCBIN "baserom.gbc",$562e1,$5640f - $562e1
+Unnamed_562e1:
+INCBIN "baserom.gbc",$562e1,$56409 - $562e1
+Unnamed_56409: ; 0x56409
+ call PrintText
+ jp TextScriptEnd
+; 0x5640f
+
UnnamedText_5640f: ; 0x5640f
TX_FAR _UnnamedText_5640f
db $50
@@ -38484,10 +38284,10 @@
db $50
; 0x56432 + 5 bytes
-INCBIN "baserom.gbc",$56437,$5643b - $56437
-
+UnnamedText_56437: ; 0x56437
+ TX_FAR _UnnamedText_56437 ; 0x8c000
UnnamedText_5643b: ; 0x5643b
- TX_FAR _UnnamedText_5643b
+ TX_FAR _UnnamedText_5643b ; 0x8c013
db $50
; 0x5643b + 5 bytes
@@ -38552,27 +38352,27 @@
ld a, [$d728]
bit 5, a
jr nz, asm_b4cad ; 0x5648a
- ld hl, $64c0
+ ld hl, UnnamedText_564c0
call PrintText
call $35ec
ld a, [$cc26]
and a
jr nz, asm_a2d76 ; 0x56499
- ld bc,(SUPER_ROD << 8) | 1
+ ld bc, (SUPER_ROD << 8) | 1
call GiveItem
jr nc, asm_e3b89 ; 0x564a1
ld hl, $d728
set 5, [hl]
- ld hl, $64c5
+ ld hl, UnnamedText_564c5
jr asm_df984 ; 0x564ab
asm_e3b89 ; 0x564ad
- ld hl, $64d9
+ ld hl, UnnamedText_564d9
jr asm_df984 ; 0x564b0
asm_a2d76 ; 0x564b2
- ld hl, $64cf
+ ld hl, UnnamedText_564cf
jr asm_df984 ; 0x564b5
asm_b4cad ; 0x564b7
- ld hl, $64d4
+ ld hl, UnnamedText_564d4
asm_df984 ; 0x564ba
call PrintText
jp TextScriptEnd
@@ -38582,12 +38382,12 @@
db $50
; 0x564c0 + 5 bytes
-INCBIN "baserom.gbc",$564c5,$564ca - $564c5
-
-UnnamedText_564ca: ; 0x564ca
- TX_FAR _UnnamedText_564ca
+UnnamedText_564c5: ; 0x564c5
+ TX_FAR _UnnamedText_564c5 ; 0x8ca00
+ db $0B
+ TX_FAR _UnnamedText_564ca ; 0x8ca4f
db $50
-; 0x564ca + 5 bytes
+; 0x564c5 + 10 bytes = 0x564cf
UnnamedText_564cf: ; 0x564cf
TX_FAR _UnnamedText_564cf
@@ -38650,9 +38450,9 @@
db $08 ; asm
ld a, [$d838]
bit 7, a
- ld hl, $65c3
+ ld hl, UnnamedText_565c3
jr nz, asm_a468f ; 0x565b3
- ld hl, $65be
+ ld hl, UnnamedText_565be
asm_a468f ; 0x565b8
call PrintText
jp TextScriptEnd
@@ -40728,13 +40528,13 @@
ld a, [$d771]
bit 7, a
jr nz, asm_67b22 ; 0x59b9a
- ld hl, $5bb7
+ ld hl, UnnamedText_59bb7
call PrintText
ld hl, $d771
set 6, [hl]
jr asm_64f01 ; 0x59ba7
asm_67b22 ; 0x59ba9
- ld hl, $5bbc
+ ld hl, UnnamedText_59bbc
call PrintText
ld hl, $d771
res 7, [hl]
@@ -40756,13 +40556,13 @@
ld a, [$d771]
bit 6, a
jr nz, asm_5cd59 ; 0x59bc7
- ld hl, $5be4
+ ld hl, UnnamedText_59be4
call PrintText
ld hl, $d771
set 7, [hl]
jr asm_59625 ; 0x59bd4
asm_5cd59 ; 0x59bd6
- ld hl, $5be9
+ ld hl, UnnamedText_59be9
call PrintText
ld hl, $d771
res 6, [hl]
@@ -40781,7 +40581,7 @@
FanClubText3: ; 0x59bee
db $8
- ld hl, $5c00
+ ld hl, UnnamedText_59c00
call PrintText
ld a, $54
call $13d0
@@ -40796,9 +40596,9 @@
FanClubText4: ; 0x59c05
db $08 ; asm
- ld hl, $5c17
+ ld hl, UnnamedText_59c17
call PrintText
- ld a,SEEL
+ ld a, SEEL
call $13d0
call $3748
jp TextScriptEnd
@@ -40812,32 +40612,32 @@
db $08 ; asm
call $5b73
jr nz, asm_38bb3 ; 0x59c20
- ld hl, $5c65
+ ld hl, UnnamedText_59c65
call PrintText
call $35ec
ld a, [$cc26]
and a
jr nz, asm_2c8d7 ; 0x59c2f
- ld hl, $5c6a
+ ld hl, UnnamedText_59c6a
call PrintText
- ld bc,(BIKE_VOUCHER << 8) | 1
+ ld bc, (BIKE_VOUCHER << 8) | 1
call GiveItem
jr nc, asm_867d4 ; 0x59c3d
- ld hl, $5c6f
+ ld hl, ReceivedBikeVoucherText
call PrintText
ld hl, $d771
set 1, [hl]
jr asm_d3c26 ; 0x59c4a
asm_867d4 ; 0x59c4c
- ld hl, $5c83
+ ld hl, UnnamedText_59c83
call PrintText
jr asm_d3c26 ; 0x59c52
asm_2c8d7 ; 0x59c54
- ld hl, $5c79
+ ld hl, UnnamedText_59c79
call PrintText
jr asm_d3c26 ; 0x59c5a
asm_38bb3 ; 0x59c5c
- ld hl, $5c7e
+ ld hl, UnnamedText_59c7e
call PrintText
asm_d3c26 ; 0x59c62
jp TextScriptEnd
@@ -40852,12 +40652,12 @@
db $50
; 0x59c6a + 5 bytes
-INCBIN "baserom.gbc",$59c6f,$59c74 - $59c6f
-
-UnnamedText_59c74: ; 0x59c74
- TX_FAR _UnnamedText_59c74
+ReceivedBikeVoucherText: ; 0x59c6f
+ TX_FAR _ReceivedBikeVoucherText ; 0x9a82e
+ db $11
+ TX_FAR _UnnamedText_59c74 ; 0x9a844
db $50
-; 0x59c74 + 5 bytes
+; 0x59c6f + 10 bytes = 0x59c79
UnnamedText_59c79: ; 0x59c79
TX_FAR _UnnamedText_59c79
@@ -40943,18 +40743,18 @@
ld a, [$d826]
bit 7, a
jr nz, asm_b8a0d ; 0x59dc7
- ld hl, $5ded
+ ld hl, UnnamedText_59ded
call PrintText
- ld bc,(TM_36 << 8) | 1
+ ld bc, (TM_36 << 8) | 1
call GiveItem
- ld hl, $5dfd
+ ld hl, TM36NoRoomText
jr nc, asm_2c1e0 ; 0x59dd8
ld hl, $d826
set 7, [hl]
- ld hl, $5df2
+ ld hl, ReceivedTM36Text
jr asm_2c1e0 ; 0x59de2
asm_b8a0d ; 0x59de4
- ld hl, $5df8
+ ld hl, TM36ExplanationText
asm_2c1e0 ; 0x59de7
call PrintText
jp TextScriptEnd
@@ -40964,15 +40764,18 @@
db $50
; 0x59ded + 5 bytes
-INCBIN "baserom.gbc",$59df2,$59df8 - $59df2
+ReceivedTM36Text: ; 0x59df2
+ TX_FAR _ReceivedTM36Text ; 0x824ba
+ db $0B, $50
+; 0x59df2 + 6 bytes = 0x59df8
-UnnamedText_59df8: ; 0x59df8
- TX_FAR _UnnamedText_59df8
+TM36ExplanationText: ; 0x59df8
+ TX_FAR _TM36ExplanationText
db $50
; 0x59df8 + 5 bytes
-UnnamedText_59dfd: ; 0x59dfd
- TX_FAR _UnnamedText_59dfd
+TM36NoRoomText: ; 0x59dfd
+ TX_FAR _TM36NoRoomText
db $50
; 0x59dfd + 5 bytes
@@ -41117,6 +40920,7 @@
SilphCo3Texts: ; 0x59fc4
dw SilphCo3Text1, SilphCo3Text2, SilphCo3Text3, SilphCo3Text4
+SilphCo3TrainerHeader1: ; 0x59fcc
INCBIN "baserom.gbc",$59fcc,$19
SilphCo3Text1: ; 0x59fe5
@@ -41123,9 +40927,9 @@
db $08 ; asm
ld a, [$d838]
bit 7, a
- ld hl, $5ffe
+ ld hl, UnnamedText_59ffe
jr nz, asm_8c56f ; 0x59fee
- ld hl, $5ff9
+ ld hl, UnnamedText_59ff9
asm_8c56f ; 0x59ff3
call PrintText
jp TextScriptEnd
@@ -41142,7 +40946,7 @@
SilphCo3Text2: ; 0x5a003
db $08 ; asm
- ld hl, $5fcc
+ ld hl, SilphCo3TrainerHeader1
call LoadTrainerHeader
jp TextScriptEnd
@@ -41262,9 +41066,9 @@
db $08 ; asm
ld a, [$d838]
bit 7, a
- ld hl, $61d8
+ ld hl, UnnamedText_5a1d8
jr nz, asm_cf85f ; 0x5a1c8
- ld hl, $61d3
+ ld hl, UnnamedText_5a1d3
asm_cf85f ; 0x5a1cd
call PrintText
jp TextScriptEnd
@@ -41692,7 +41496,7 @@
ld a, [$d754]
bit 0, a
jr nz, asm_31a16 ; 0x5c158 $10
- ld hl, $423d
+ ld hl, UnnamedText_5c23d
call PrintText
jp $4217
asm_b8709: ; 0x5c163
@@ -41700,7 +41504,7 @@
bit 0, a
jr z, asm_3ded4 ; 0x5c168 $9
asm_31a16: ; 0x5c16a
- ld hl, $4242
+ ld hl, UnnamedText_5c242
call PrintText
jp $4217
asm_3ded4: ; 0x5c173
@@ -41709,7 +41513,7 @@
call $30e8
xor a
ld [$ff00+$b4], a
- ld hl, $421f
+ ld hl, UnnamedText_5c21f
call PrintText
call $35ec
ld a, [$cc26]
@@ -41722,11 +41526,11 @@
ld [$ff00+$a1], a
call $35a6
jr nc, asm_0f3e3 ; 0x5c199 $9
- ld hl, $4229
+ ld hl, UnnamedText_5c229
call PrintText
jp $41da
asm_0f3e3: ; 0x5c1a4
- ld hl, $4224
+ ld hl, UnnamedText_5c224
call PrintText
ld hl, $d754
set 0, [hl]
@@ -41762,17 +41566,17 @@
ld [$d619], a
jr asm_d1145 ; 0x5c1f7 $1e
;XXX what calls this?
- ld hl, $422e
+ ld hl, UnnamedText_5c22e
call PrintText
call $35ec
ld a, [$cc26]
cp $0
jr nz, asm_d1144
- ld hl, $4233
+ ld hl, UnnamedText_5c233
call PrintText
jr asm_d1145 ; 0x5c20f $6
asm_d1144:
- ld hl, $4238
+ ld hl, UnnamedText_5c238
call PrintText
asm_d1145: ; 0x5c217
jp TextScriptEnd
@@ -41825,7 +41629,7 @@
MuseumF1Text2: ; 0x5c247
db $08 ; asm
- ld hl, $4251
+ ld hl, UnnamedText_5c251
call PrintText
jp TextScriptEnd
@@ -41839,9 +41643,9 @@
ld a, [$d754]
bit 1, a
jr nz, .asm_16599 ; 0x5c25c
- ld hl, $428e
+ ld hl, UnnamedText_5c28e
call PrintText
- ld bc,(OLD_AMBER << 8) | 1
+ ld bc, (OLD_AMBER << 8) | 1
call GiveItem
jr nc, .asm_91ebf ; 0x5c26a
ld hl, $d754
@@ -41850,13 +41654,13 @@
ld [$cc4d], a
ld a, $11
call Predef
- ld hl, $4293
+ ld hl, ReceivedOldAmberText
jr .asm_52e0f ; 0x5c27e
.asm_91ebf ; 0x5c280
- ld hl, $429e
+ ld hl, UnnamedText_5c29e
jr .asm_52e0f ; 0x5c283
.asm_16599 ; 0x5c285
- ld hl, $4299
+ ld hl, UnnamedText_5c299
.asm_52e0f ; 0x5c288
call PrintText
jp TextScriptEnd
@@ -41866,7 +41670,10 @@
db $50
; 0x5c28e + 5 bytes
-INCBIN "baserom.gbc",$5c293,$5c299 - $5c293
+ReceivedOldAmberText: ; 0x5c293
+ TX_FAR _ReceivedOldAmberText ; 0x96790
+ db $0B, $50
+; 0x5c293 + 6 bytes = 0x5c299
UnnamedText_5c299: ; 0x5c299
TX_FAR _UnnamedText_5c299
@@ -41880,7 +41687,7 @@
MuseumF1Text4: ; 0x5c2a3
db $08 ; asm
- ld hl, $42ad
+ ld hl, UnnamedText_5c2ad
call PrintText
jp TextScriptEnd
@@ -41891,7 +41698,7 @@
MuseumF1Text5: ; 0x5c2b2
db $08 ; asm
- ld hl, $42bc
+ ld hl, UnnamedText_5c2bc
call PrintText
jp TextScriptEnd
@@ -42029,17 +41836,17 @@
call $30b6
jr .asm_e0ffb ; 0x5c460
.asm_ff7d0 ; 0x5c462
- ld hl, $44a3
+ ld hl, UnnamedText_5c4a3
call PrintText
jr .asm_e0ffb ; 0x5c468
.asm_4a735 ; 0x5c46a
- ld hl, $449e
+ ld hl, UnnamedText_5c49e
call PrintText
ld hl, $d72d
set 6, [hl]
set 7, [hl]
- ld hl, $44bc
- ld de, $44bc
+ ld hl, UnnamedText_5c4bc
+ ld de, $44bc ; probably UnnamedText_5c4bc
call $3354
ldh a, [$8c]
ld [$cf13], a
@@ -42081,12 +41888,12 @@
TX_FAR _UnnamedText_5c4b7
db $50
-INCBIN "baserom.gbc",$5c4bc,$5c4c1 - $5c4bc
-
-UnnamedText_5c4c1: ; 0x5c4c1
- TX_FAR _UnnamedText_5c4c1
+UnnamedText_5c4bc: ; 0x5c4bc
+ TX_FAR _UnnamedText_5c4bc ; 0x981c9
+ db $0B
+ TX_FAR _UnnamedText_5c4c1 ; 0x98232
db $50
-; 0x5c4c1 + 5 bytes
+; 0x5c4c6
PewterGymText2: ; 0x5c4c6
db $08 ; asm
@@ -42114,24 +41921,24 @@
ld a, [$d72a]
bit 0, a
jr nz, .asm_71369 ; 0x5c4e5
- ld hl, $4515
+ ld hl, UnnamedText_5c515
call PrintText
call $35ec
ld a, [$cc26]
and a
jr nz, .asm_6123a ; 0x5c4f4
- ld hl, $451a
+ ld hl, UnnamedText_5c51a
call PrintText
jr .asm_d1578 ; 0x5c4fc
.asm_6123a ; 0x5c4fe
- ld hl, $4524
+ ld hl, UnnamedText_5c524
call PrintText
.asm_d1578 ; 0x5c504
- ld hl, $451f
+ ld hl, UnnamedText_5c51f
call PrintText
jr .asm_07013 ; 0x5c50a
.asm_71369 ; 0x5c50c
- ld hl, $4529
+ ld hl, UnnamedText_5c529
call PrintText
.asm_07013 ; 0x5c512
jp TextScriptEnd
@@ -42209,7 +42016,7 @@
db $8
ld a, $1
ld [$cc3c], a
- ld hl, $4603
+ ld hl, PewterPokecenterText5
call PrintText
ld a, $ff
call $23b1
@@ -42255,14 +42062,15 @@
jp TextScriptEnd
; 0x5c603
-PewterPokecenterText5: ; broken TX_FAR to _PewterPokecenterText4
- db $17, $44, $47, $26
+PewterPokecenterText5: ; 0x5c603
+ TX_FAR _PewterPokecenterText5 ; 0x98744
db $50
+; 0x5c603 + 5 bytes = 0x5c608
-;XXX wtf?
+; 0x5c608 XXX
db $30, $38, $34, $3c
-PewterPokecenterText4: ; XXX confirm text_id number
+PewterPokecenterText4: ; 0x5c60b
db $f6
PewterPokecenterObject: ; 0x5c60d (size=44)
@@ -42376,11 +42184,11 @@
call $30b6
jr .asm_95b04 ; 0x5c783
.asm_37a1b ; 0x5c785
- ld hl, $47c3
+ ld hl, UnnamedText_5c7c3
call PrintText
jr .asm_95b04 ; 0x5c78b
.asm_10854 ; 0x5c78d
- ld hl, $47be
+ ld hl, UnnamedText_5c7be
call PrintText
ld hl, $d72d
set 6, [hl]
@@ -42475,11 +42283,11 @@
ld a, [$d75e]
bit 7, a
jr nz, .asm_f80ce ; 0x5c817
- ld hl, $482a
+ ld hl, UnnamedText_5c82a
call PrintText
jr .asm_18a31 ; 0x5c81f
.asm_f80ce ; 0x5c821
- ld hl, $482f
+ ld hl, UnnamedText_5c82f
call PrintText
.asm_18a31 ; 0x5c827
jp TextScriptEnd
@@ -42630,11 +42438,11 @@
ld a, [$d7e0]
bit 7, a
jr nz, .asm_c88d4 ; 0x5c940
- ld hl, $4953
+ ld hl, UnnamedText_5c953
call PrintText
jr .asm_6d225 ; 0x5c948
.asm_c88d4 ; 0x5c94a
- ld hl, $4958
+ ld hl, UnnamedText_5c958
call PrintText
.asm_6d225 ; 0x5c950
jp TextScriptEnd
@@ -42802,11 +42610,11 @@
call $30b6
jr .asm_23621 ; 0x5cb2f
.asm_41203 ; 0x5cb31
- ld hl, $4b72
+ ld hl, UnnamedText_5cb72
call PrintText
jr .asm_23621 ; 0x5cb37
.asm_7cc29 ; 0x5cb39
- ld hl, $4b6d
+ ld hl, UnnamedText_5cb6d
call PrintText
ld hl, $d72d
set 6, [hl]
@@ -42844,19 +42652,18 @@
; 0x5cb77 + 5 bytes
VermilionGymText7: ; 0x5cb7c
-
-INCBIN "baserom.gbc",$5cb7c,5
-
-UnnamedText_5cb81:
- TX_FAR _UnnamedText_5cb81
+ TX_FAR _ReceivedTM24Text ; 0x9c0e0
+ db $11
+ TX_FAR _TM24ExplanationText ; 0x9c0f5
db $50
+; 0x5cb7c + 10 bytes = 0x5cb86
VermilionGymText8: ; 0x5cb86
- TX_FAR _UnnamedText_5cb86
+ TX_FAR _TM24NoRoomText
db $50
-UnnamedText_5cb8b:
- TX_FAR _UnnamedText_5cb8b
+ReceivedThunderbadgeText:
+ TX_FAR _ReceivedThunderbadgeText
db $50
VermilionGymText2: ; 0x5cb90
@@ -42927,11 +42734,11 @@
ld a, [$d72a]
bit 2, a
jr nz, .asm_13b67 ; 0x5cbe1
- ld hl, $4bf4
+ ld hl, UnnamedText_5cbf4
call PrintText
jr .asm_c2b38 ; 0x5cbe9
.asm_13b67 ; 0x5cbeb
- ld hl, $4bf9
+ ld hl, UnnamedText_5cbf9
call PrintText
.asm_c2b38 ; 0x5cbf1
jp TextScriptEnd
@@ -42991,17 +42798,17 @@
jr nz, .asm_7ccf3 ; 0x5cc88
ld a, $1
ld [$cc3c], a
- ld hl, $4cd4
+ ld hl, UnnamedText_5ccd4
call PrintText
- ld b,POKE_DOLL
- call $3493
+ ld b, POKE_DOLL
+ call $3493 ; probably check has item or take item
jr z, .asm_62ecd ; 0x5cc9a
- ld hl, $4cd9
+ ld hl, UnnamedText_5ccd9
call PrintText
- ld bc,(TM_31 << 8) | 1
+ ld bc, (TM_31 << 8) | 1
call GiveItem
jr nc, .asm_16690 ; 0x5cca8
- ld hl, $4cde
+ ld hl, ReceivedTM31Text
call PrintText
ld a, $33
ldh [$db], a
@@ -43012,11 +42819,11 @@
set 0, [hl]
jr .asm_62ecd ; 0x5ccc1
.asm_16690 ; 0x5ccc3
- ld hl, $4cee
+ ld hl, TM31NoRoomText
call PrintText
jr .asm_62ecd ; 0x5ccc9
.asm_7ccf3 ; 0x5cccb
- ld hl, $4ce9
+ ld hl, TM31ExplanationText2
call PrintText
.asm_62ecd ; 0x5ccd1
jp TextScriptEnd
@@ -43031,14 +42838,23 @@
db $50
; 0x5ccd9 + 5 bytes
-INCBIN "baserom.gbc",$5ccde,$5cce9 - $5ccde
+ReceivedTM31Text: ; 0x5ccde
+ TX_FAR _ReceivedTM31Text ; 0xa1675
+ db $0B
+TM31ExplanationText1: ; 0x5cce2
+ TX_FAR _TM31ExplanationText1 ; 0xa1689
+ db $d, $50
+; 0x5cce9
-UnnamedText_5cce9: ; 0x5cce9
- TX_FAR _UnnamedText_5cce9
+TM31ExplanationText2: ; 0x5cce9
+ TX_FAR _TM31ExplanationText2 ; 0xa16c5
db $50
-; 0x5cce9 + 5 bytes
+; 0x5cce9 + 5 bytes = 0x5ccee
-INCBIN "baserom.gbc",$5ccee,$6
+TM31NoRoomText: ; 0x5ccee
+ TX_FAR _TM31NoRoomText ; 0xa1733
+ db $d, $50
+; 0x5ccf4
CopycatsHouseF2Text2: ; 0x5ccf4
TX_FAR _CopycatsHouseF2Text2
@@ -43058,9 +42874,9 @@
db $08 ; asm
ld a, [$c109]
cp $4
- ld hl, $4d1c
+ ld hl, UnnamedText_5cd1c
jr nz, .asm_399a4 ; 0x5cd0c
- ld hl, $4d17
+ ld hl, UnnamedText_5cd17
.asm_399a4 ; 0x5cd11
call PrintText
jp TextScriptEnd
@@ -43124,10 +42940,10 @@
db $08 ; asm
ld a, [$d7b1]
bit 0, a
- jp nz, $4e7d
+ jp nz, .continue1\@
bit 1, a
- jp nz, $4e85
- ld hl, $4e8e
+ jp nz, .continue2\@
+ ld hl, UnnamedText_5ce8e
call PrintText
ld hl, $d72d
set 6, [hl]
@@ -43143,10 +42959,12 @@
ld [$d642], a
ld [$da39], a
jr .asm_9dba4 ; 0x5ce7b
- ld hl, $4e9d
+.continue1\@ ; 0x5ce7d
+ ld hl, UnnamedText_5ce9d
call PrintText
jr .asm_9dba4 ; 0x5ce83
- ld hl, $4e98
+.continue2\@ ; 0x5ce85f
+ ld hl, FightingDojoText8
call PrintText
.asm_9dba4 ; 0x5ce8b
jp TextScriptEnd
@@ -43260,13 +43078,13 @@
ld a, [$d7b1]
and $c0
jr z, .asm_f8e28 ; 0x5cf0c
- ld hl, $4f96
+ ld hl, UnnamedText_5cf96
call PrintText
jr .asm_3a2c8 ; 0x5cf14
.asm_f8e28 ; 0x5cf16
ld a, $2b
call $349b
- ld hl, $4f49
+ ld hl, UnnamedText_5cf49
call PrintText
call $35ec
ld a, [$cc26]
@@ -43274,7 +43092,7 @@
jr nz, .asm_3a2c8 ; 0x5cf28
ld a, [$cf91]
ld b, a
- ld c,30
+ ld c, 30
call GivePokemon
jr nc, .asm_3a2c8 ; 0x5cf33
ld a, $4a
@@ -43297,13 +43115,13 @@
ld a, [$d7b1]
and $c0
jr z, .asm_170a9 ; 0x5cf54
- ld hl, $4f96
+ ld hl, UnnamedText_5cf96
call PrintText
jr .asm_f1f47 ; 0x5cf5c
.asm_170a9 ; 0x5cf5e
ld a, $2c
call $349b
- ld hl, $4f91
+ ld hl, UnnamedText_5cf91
call PrintText
call $35ec
ld a, [$cc26]
@@ -43399,17 +43217,17 @@
call $30b6
jr .asm_34c2c ; 0x5d12a
.asm_8d2f6 ; 0x5d12c
- ld hl, $516e
+ ld hl, UnnamedText_5d16e
call PrintText
jr .asm_34c2c ; 0x5d132
.asm_e3544 ; 0x5d134
- ld hl, $5162
+ ld hl, UnnamedText_5d162
call PrintText
ld hl, $d72d
set 6, [hl]
set 7, [hl]
- ld hl, $5167
- ld de, $5167
+ ld hl, UnnamedText_5d167
+ ld de, $5167 ; probably UnnamedText_5d167
call $3354
ldh a, [$8c]
ld [$cf13], a
@@ -43502,11 +43320,11 @@
ld a, [$d7b3]
bit 1, a
jr nz, .asm_13f3c ; 0x5d1d3
- ld hl, $51e6
+ ld hl, UnnamedText_5d1e6
call PrintText
jr .asm_e9907 ; 0x5d1db
.asm_13f3c ; 0x5d1dd
- ld hl, $51eb
+ ld hl, UnnamedText_5d1eb
call PrintText
.asm_e9907 ; 0x5d1e3
jp TextScriptEnd
@@ -43941,7 +43759,7 @@
ld hl, $d7c2
set 0, [hl]
.asm_6592c ; 0x5d60d
- ld hl, $5616
+ ld hl, UnnamedText_5d616
call PrintText
.asm_ad646 ; 0x5d613
jp TextScriptEnd
@@ -44202,7 +44020,7 @@
ld a, [$d838]
bit 7, a
jr nz, .asm_a14c3 ; 0x5d8be
- ld hl, $58e5
+ ld hl, UnnamedText_5d8e5
call PrintText
ld a, $7
call Predef
@@ -44209,11 +44027,11 @@
call $20d8
call Delay3
call $20f6
- ld hl, $58ea
+ ld hl, UnnamedText_5d8ea
call PrintText
jr .asm_b6e28 ; 0x5d8da
.asm_a14c3 ; 0x5d8dc
- ld hl, $58ef
+ ld hl, UnnamedText_5d8ef
call PrintText
.asm_b6e28 ; 0x5d8e2
jp TextScriptEnd
@@ -44729,17 +44547,17 @@
ld a, [$d764]
bit 7, a
jr z, .asm_16f24 ; 0x605e5
- ld hl, $463c
+ ld hl, UnnamedText_6063c
call PrintText
jr .asm_41852 ; 0x605ed
.asm_16f24 ; 0x605ef
- ld hl, $462d
+ ld hl, UnnamedText_6062d
call PrintText
ld hl, $d72d
set 6, [hl]
set 7, [hl]
- ld hl, $4632
- ld de, $4637
+ ld hl, UnnamedText_60632
+ ld de, UnnamedText_60637 ; XXX $4637
call $3354
ld a, $f2
ld [$d059], a
@@ -45350,7 +45168,7 @@
PokemonTower7Text4: ; 0x60e8a
db $08 ; asm
- ld hl, $4ec4
+ ld hl, UnnamedText_60ec4
call PrintText
ld hl, $d7e0
set 7, [hl]
@@ -45904,7 +45722,7 @@
SSAnne2Text2: ; 0x614e6
db $8
- ld hl, $5500
+ ld hl, UnnamedText_61500
call PrintText
ld hl, $d72d
set 6, [hl]
@@ -46155,20 +45973,20 @@
SSAnne6Text7: ; 0x617e3
db $08 ; asm
- ld hl, $5807
+ ld hl, UnnamedText_61807
call PrintText
ldh a, [$d3]
bit 7, a
jr z, .asm_93eb1 ; 0x617ee
- ld hl, $580c
+ ld hl, UnnamedText_6180c
jr .asm_63292 ; 0x617f3
.asm_93eb1 ; 0x617f5
bit 4, a
jr z, .asm_7436c ; 0x617f7
- ld hl, $5811
+ ld hl, UnnamedText_61811
jr .asm_63292 ; 0x617fc
.asm_7436c ; 0x617fe
- ld hl, $5816
+ ld hl, UnnamedText_61816
.asm_63292 ; 0x61801
call PrintText
jp TextScriptEnd
@@ -46239,38 +46057,67 @@
ld a, [$d803]
bit 0, a
jr nz, .asm_797c4 ; 0x618b3
- ld hl, $58ec
+ ld hl, SSAnne7RubText
call PrintText
- ld hl, $5927
+ ld hl, ReceivingHM01Text
call PrintText
- ld bc,(HM_01 << 8) | 1
+ ld bc, (HM_01 << 8) | 1
call GiveItem
jr nc, .asm_ccdcd ; 0x618c7
- ld hl, $592c
+ ld hl, ReceivedHM01Text
call PrintText
ld hl, $d803
set 0, [hl]
jr .asm_0faf5 ; 0x618d4
.asm_ccdcd ; 0x618d6
- ld hl, $5937
+ ld hl, HM01NoRoomText
call PrintText
ld hl, $d72d
set 5, [hl]
jr .asm_0faf5 ; 0x618e1
.asm_797c4 ; 0x618e3
- ld hl, $5932
+ ld hl, UnnamedText_61932
call PrintText
.asm_0faf5 ; 0x618e9
jp TextScriptEnd
-INCBIN "baserom.gbc",$618ec,$61927 - $618ec
+SSAnne7RubText: ; 0x618ec
+ TX_FAR _SSAnne7RubText ; 0x812dd
+ db $8
+ ld a, [$c0ef]
+ cp $1f
+ ld [$c0f0], a
+ jr nz, .asm_61908 ; 0x618f9 $d
+ ld a, $ff
+ ld [$c0ee], a
+ call $23b1
+ ld a, $2
+ ld [$c0ef], a
+.asm_61908
+ ld a, $e8
+ ld [$c0ee], a
+ call $23b1
+.asm_61910
+ ld a, [$c026]
+ cp $e8
+ jr z, .asm_61910 ; 0x61915 $f9
+ call $2307
+ ld hl, $d803
+ set 1, [hl]
+ ld hl, $d72d
+ res 5, [hl]
+ jp TextScriptEnd
+; 0x61927
-UnnamedText_61927: ; 0x61927
- TX_FAR _UnnamedText_61927
+ReceivingHM01Text: ; 0x61927
+ TX_FAR _ReceivingHM01Text
db $50
; 0x61927 + 5 bytes
-INCBIN "baserom.gbc",$6192c,$61932 - $6192c
+ReceivedHM01Text: ; 0x6192c
+ TX_FAR _ReceivedHM01Text ; 0x8140d
+ db $11, $50
+; 0x6192c + 6 bytes = 0x61932
UnnamedText_61932: ; 0x61932
TX_FAR _UnnamedText_61932
@@ -46277,8 +46124,8 @@
db $50
; 0x61932 + 5 bytes
-UnnamedText_61937: ; 0x61937
- TX_FAR _UnnamedText_61937
+HM01NoRoomText: ; 0x61937
+ TX_FAR _HM01NoRoomText
db $50
; 0x61937 + 5 bytes
@@ -46537,7 +46384,7 @@
SSAnne9Text5: ; 0x61bdd
db $08 ; asm
call $3719
- ld hl, $5bf2
+ ld hl, UnnamedText_61bf2
call PrintText
call $3725
ld a, $84
@@ -46551,7 +46398,7 @@
SSAnne9Text7: ; 0x61bf7
db $08 ; asm
- ld hl, $5c01
+ ld hl, UnnamedText_61c01
call PrintText
jp TextScriptEnd
@@ -46562,7 +46409,7 @@
SSAnne9Text8: ; 0x61c06
db $08 ; asm
- ld hl, $5c10
+ ld hl, UnnamedText_61c10
call PrintText
jp TextScriptEnd
@@ -46573,7 +46420,7 @@
SSAnne9Text10: ; 0x61c15
db $08 ; asm
- ld hl, $5c1f
+ ld hl, UnnamedText_61c1f
call PrintText
jp TextScriptEnd
@@ -46584,7 +46431,7 @@
SSAnne9Text11: ; 0x61c24
db $08 ; asm
- ld hl, $5c2e
+ ld hl, UnnamedText_61c2e
call PrintText
jp TextScriptEnd
@@ -46595,7 +46442,7 @@
SSAnne9Text12: ; 0x61c33
db $08 ; asm
- ld hl, $5c3d
+ ld hl, UnnamedText_61c3d
call PrintText
jp TextScriptEnd
@@ -46606,7 +46453,7 @@
SSAnne9Text13: ; 0x61c42
db $08 ; asm
- ld hl, $5c4c
+ ld hl, UnnamedText_61c4c
call PrintText
jp TextScriptEnd
@@ -47051,32 +46898,36 @@
db $08 ; asm
ld a, [$d838]
bit 5, a
- jp nz, $6308
- ld hl, $6311
+ jp nz, .asm_62308
+ ld hl, SilphCoPresidentText
call PrintText
- ld bc,(MASTER_BALL << 8) | 1
+ ld bc, (MASTER_BALL << 8) | 1
call GiveItem
jr nc, .asm_36088 ; 0x622f1
- ld hl, $6316
+ ld hl, ReceivedSilphCoMasterBallText
call PrintText
ld hl, $d838
set 5, [hl]
jr .asm_fd405 ; 0x622fe
.asm_36088 ; 0x62300
- ld hl, $6321
+ ld hl, SilphCoMasterBallNoRoomText
call PrintText
jr .asm_fd405 ; 0x62306
- ld hl, $631c
+.asm_62308 ; 0x62308
+ ld hl, UnnamedText_6231c
call PrintText
.asm_fd405 ; 0x6230e
jp TextScriptEnd
-UnnamedText_62311: ; 0x62311
- TX_FAR _UnnamedText_62311
+SilphCoPresidentText: ; 0x62311
+ TX_FAR _SilphCoPresidentText
db $50
; 0x62311 + 5 bytes
-INCBIN "baserom.gbc",$62316,$6231c - $62316
+ReceivedSilphCoMasterBallText: ; 0x62316
+ TX_FAR _ReceivedSilphCoMasterBallText ; 0x84f63
+ db $11, $50
+; 0x62316 + 6 bytes = 0x6231c
UnnamedText_6231c: ; 0x6231c
TX_FAR _UnnamedText_6231c
@@ -47083,8 +46934,8 @@
db $50
; 0x6231c + 5 bytes
-UnnamedText_62321: ; 0x62321
- TX_FAR _UnnamedText_62321
+SilphCoMasterBallNoRoomText: ; 0x62321
+ TX_FAR _SilphCoMasterBallNoRoomText
db $50
; 0x62321 + 5 bytes
@@ -47734,7 +47585,7 @@
jr nz,.asm_99bca ; 0x71b4b $b
call Function71c07
jr c,.asm_99bca ; 0x71b50 $6
- ld hl,$5d8d
+ ld hl, UnnamedText_71d8d
call PrintText
.asm_99bca ; 0x71b58
ld hl,$cd12
@@ -47802,7 +47653,7 @@
ld b,$1
ld a,$10
call Predef
- ld hl,$5d88
+ ld hl, UnnamedText_71d88
call PrintText
ld a,[$cf92]
push af
@@ -48722,7 +48573,7 @@
.asm_9fc95 ; 0x74a7d
ld a, $1
ld [$cc3c], a
- ld hl, $4ad9
+ ld hl, UnnamedText_74ad9
call PrintText
call $20ef
ld a, $32
@@ -48734,7 +48585,7 @@
call $20d1
jr .asm_6dff7 ; 0x74a9e
.asm_6de66 ; 0x74aa0
- ld hl, $4ace
+ ld hl, UnnamedText_74ace
call PrintText
ld hl, $d72d
set 6, [hl]
@@ -48761,11 +48612,12 @@
UnnamedText_74ad3: ; 0x74ad3
TX_FAR _UnnamedText_74ad3
db $0b, $50
-; 0x74ad3 + 6 bytes
+; 0x74ad9
-UnnamedText_74ad8:
- TX_FAR _UnnamedText_74ad8
+UnnamedText_74ad9: ; 0x74ad9
+ TX_FAR _UnnamedText_74ad9
db $0d, $50
+; 0x74add
ViridianGymText12: ; 0x74adf
TX_FAR _ViridianGymText12
@@ -48958,11 +48810,11 @@
ld a, [$d751]
bit 1, a
jr nz, .asm_1abd1 ; 0x74bc1
- ld hl, $4bd4
+ ld hl, UnnamedText_74bd4
call PrintText
jr .asm_6064d ; 0x74bc9
.asm_1abd1 ; 0x74bcb
- ld hl, $4bd9
+ ld hl, UnnamedText_74bd9
call PrintText
.asm_6064d ; 0x74bd1
jp TextScriptEnd
@@ -49026,7 +48878,7 @@
PewterMartText2: ; 0x74cbc
db $08 ; asm
- ld hl, $4cc6
+ ld hl, UnnamedText_74cc6
call PrintText
jp TextScriptEnd
@@ -49037,7 +48889,7 @@
PewterMartText3: ; 0x74ccb
db $08 ; asm
- ld hl, $4cd5
+ ld hl, UnnamedText_74cd5
call PrintText
jp TextScriptEnd
@@ -49135,15 +48987,15 @@
CeruleanHouse3Text1: ; 0x74e15
db $8
- ld hl, $4e77
+ ld hl, UnnamedText_74e77
call PrintText
xor a
ld [$cc26], a
ld [$cc36], a
.asm_74e23
- ld hl, $4e7c
+ ld hl, UnnamedText_74e7c
call PrintText
- ld hl, $4e6d
+ ld hl, UnnamedText_74e6d
call $2a5a
ld hl, $cf7b
ld a, l
@@ -49172,11 +49024,12 @@
.asm_74e60
xor a
ld [$cc36], a
- ld hl, $4e81
+ ld hl, UnnamedText_74e81
call PrintText
jp TextScriptEnd
; 0x74e6d
+UnnamedText_74e6d: ; 0x74e6d
db $8,BOULDERBADGE,CASCADEBADGE,THUNDERBADGE,RAINBOWBADGE,SOULBADGE,MARSHBADGE,VOLCANOBADGE,EARTHBADGE,$FF
UnnamedText_74e77: ; 0x74e77
@@ -49412,19 +49265,19 @@
ld a, [$d78e]
bit 1, a
jr nz, .asm_60cba ; 0x750d6
- ld hl, $5135
+ ld hl, UnnamedText_75135
call PrintText
call $35ec
ld a, [$cc26]
and a
- ld hl, $513f
+ ld hl, UnnamedText_7513f
jr nz, .asm_61238 ; 0x750e8
- ld hl, $513a
+ ld hl, UnnamedText_7513a
.asm_61238 ; 0x750ed
call PrintText
jr .asm_52039 ; 0x750f0
.asm_3f30f ; 0x750f2
- ld hl, $5144
+ ld hl, UnnamedText_75144
call PrintText
ld a, $40
ldh [$db], a
@@ -49434,22 +49287,22 @@
ld hl, $d78e
set 1, [hl]
.asm_60cba ; 0x75109
- ld hl, $514e
+ ld hl, UnnamedText_7514e
call PrintText
ld bc,(HM_04 << 8) | 1
call GiveItem
jr nc, .asm_53b90 ; 0x75115
- ld hl, $5153
+ ld hl, UnnamedText_75153
call PrintText
ld hl, $d78e
set 0, [hl]
jr .asm_52039 ; 0x75122
.asm_58feb ; 0x75124
- ld hl, $5159
+ ld hl, UnnamedText_75159
call PrintText
jr .asm_52039 ; 0x7512a
.asm_53b90 ; 0x7512c
- ld hl, $515e
+ ld hl, UnnamedText_7515e
call PrintText
.asm_52039 ; 0x75132
jp TextScriptEnd
@@ -49503,9 +49356,9 @@
db $08 ; asm
ldh a, [$8c]
cp $4
- ld hl, $517b
+ ld hl, UnnamedText_7517b
jr nz, .asm_4c9a2 ; 0x7516b
- ld hl, $5176
+ ld hl, UnnamedText_75176
.asm_4c9a2 ; 0x75170
call PrintText
jp TextScriptEnd
@@ -49696,7 +49549,7 @@
ld [$ff00+$a1], a
call $35a6
jr nc, .asm_752f9 ; 0x752ef $8
- ld hl, $536a
+ ld hl, UnnamedText_7536a
call PrintText
jr .asm_7534c ; 0x752f7 $53
.asm_752f9
@@ -49714,7 +49567,7 @@
ld a, $13
ld [$d125], a
call $30e8
- ld hl, $535b
+ ld hl, UnnamedText_7535b
call PrintText
ld a, $1e
ld [$da47], a
@@ -49731,7 +49584,7 @@
ld a, $3
ld [$d61f], a
jr .asm_75358 ; 0x75344 $12
- ld hl, $5365
+ ld hl, UnnamedText_75365
call PrintText
.asm_7534c
ld a, $80
@@ -49769,7 +49622,7 @@
ld a, [$cc26]
and a
jr nz, .asm_7539c ; 0x7537b $1f
- ld hl, $53bb
+ ld hl, UnnamedText_753bb
call PrintText
xor a
ld [$c109], a
@@ -49783,7 +49636,7 @@
ld [$cf0d], a
jr .asm_753b3 ; 0x7539a $17
.asm_7539c
- ld hl, $53c0
+ ld hl, UnnamedText_753c0
call PrintText
ld a, $4
ld [$c109], a
@@ -49815,14 +49668,14 @@
SafariZoneEntranceText2: ; 0x753ca
db $08 ; asm
- ld hl, $53e6
+ ld hl, UnnamedText_753e6
call PrintText
call $35ec
ld a, [$cc26]
and a
- ld hl, $53f0
+ ld hl, UnnamedText_753f0
jr nz, .asm_278a6 ; 0x753db
- ld hl, $53eb
+ ld hl, UnnamedText_753eb
.asm_278a6 ; 0x753e0
call PrintText
jp TextScriptEnd
@@ -49910,17 +49763,17 @@
call $30b6
jr .asm_e84c6 ; 0x75546
.asm_adc3b ; 0x75548
- ld hl, $558b
+ ld hl, UnnamedText_7558b
call PrintText
jr .asm_e84c6 ; 0x7554e
.asm_181b6 ; 0x75550
- ld hl, $5581
+ ld hl, UnnamedText_75581
call PrintText
ld hl, $d72d
set 6, [hl]
set 7, [hl]
- ld hl, $5586
- ld de, $5586
+ ld hl, UnnamedText_75586
+ ld de, $5586 ; probably UnnamedText_75586
call $3354
ldh a, [$8c]
ld [$cf13], a
@@ -50099,9 +49952,9 @@
db $08 ; asm
ld a, [$d792]
bit 1, a
- ld hl, $5653
+ ld hl, UnnamedText_75653
jr nz, .asm_50671 ; 0x75643
- ld hl, $564e
+ ld hl, UnnamedText_7564e
.asm_50671 ; 0x75648
call PrintText
jp TextScriptEnd
@@ -50356,14 +50209,14 @@
call $30b6
jp TextScriptEnd
.asm_3012f ; 0x758f4
- ld hl, $5920
+ ld hl, UnnamedText_75920
call PrintText
jp TextScriptEnd
.asm_d9332 ; 0x758fd
- ld hl, $5914
+ ld hl, UnnamedText_75914
call PrintText
- ld hl, $5919
- ld de, $5919
+ ld hl, UnnamedText_75919
+ ld de, UnnamedText_75919 ; $5919 XXX
call $3354
ld a, $7
ld [$d05c], a
@@ -50409,14 +50262,14 @@
ld a, [$d79a]
bit 2, a
jr nz, .asm_46bb4 ; 0x75942
- ld hl, $595f
+ ld hl, UnnamedText_7595f
call PrintText
- ld hl, $5964
- ld de, $5964
+ ld hl, UnnamedText_75964
+ ld de, UnnamedText_75964 ; $5964 XXX
call $3354
jp $58b7
.asm_46bb4 ; 0x75956
- ld hl, $5969
+ ld hl, UnnamedText_75969
call PrintText
jp TextScriptEnd
@@ -50441,14 +50294,14 @@
ld a, [$d79a]
bit 3, a
jr nz, .asm_4b406 ; 0x75977
- ld hl, $5994
+ ld hl, UnnamedText_75994
call PrintText
- ld hl, $5999
- ld de, $5999
+ ld hl, UnnamedText_75999
+ ld de, UnnamedText_75999 ; $5999 XXX
call $3354
jp $58b7
.asm_4b406 ; 0x7598b
- ld hl, $599e
+ ld hl, UnnamedText_7599e
call PrintText
jp TextScriptEnd
@@ -50473,14 +50326,14 @@
ld a, [$d79a]
bit 4, a
jr nz, .asm_c0673 ; 0x759ac
- ld hl, $59c9
+ ld hl, UnnamedText_759c9
call PrintText
- ld hl, $59ce
- ld de, $59ce
+ ld hl, UnnamedText_759ce
+ ld de, UnnamedText_759ce ; $59ce XXX
call $3354
jp $58b7
.asm_c0673 ; 0x759c0
- ld hl, $59d3
+ ld hl, UnnamedText_759d3
call PrintText
jp TextScriptEnd
@@ -50505,14 +50358,14 @@
ld a, [$d79a]
bit 5, a
jr nz, .asm_5cfd7 ; 0x759e1
- ld hl, $59fe
+ ld hl, UnnamedText_759fe
call PrintText
- ld hl, $5a03
- ld de, $5a03
+ ld hl, UnnamedText_75a03
+ ld de, UnnamedText_75a03 ; $5a03 XXX
call $3354
jp $58b7
.asm_5cfd7 ; 0x759f5
- ld hl, $5a08
+ ld hl, UnnamedText_75a08
call PrintText
jp TextScriptEnd
@@ -50537,14 +50390,14 @@
ld a, [$d79a]
bit 6, a
jr nz, .asm_776b4 ; 0x75a16
- ld hl, $5a33
+ ld hl, UnnamedText_75a33
call PrintText
- ld hl, $5a38
- ld de, $5a38
+ ld hl, UnnamedText_75a38
+ ld de, UnnamedText_75a38
call $3354
jp $58b7
.asm_776b4 ; 0x75a2a
- ld hl, $5a3d
+ ld hl, UnnamedText_75a3d
call PrintText
jp TextScriptEnd
@@ -50569,7 +50422,7 @@
ld a, [$d79a]
bit 7, a
jr nz, .asm_2f755 ; 0x75a4b
- ld hl, $5a68
+ ld hl, UnnamedText_75a68
call PrintText
ld hl, $5a6d
ld de, $5a6d
@@ -50601,14 +50454,14 @@
ld a, [$d79b]
bit 0, a
jr nz, .asm_d87be ; 0x75a80
- ld hl, $5a9d
+ ld hl, UnnamedText_75a9d
call PrintText
- ld hl, $5aa2
- ld de, $5aa2
+ ld hl, UnnamedText_75aa2
+ ld de, UnnamedText_75aa2 ; $5aa2 XXX
call $3354
jp $58b7
.asm_d87be ; 0x75a94
- ld hl, $5aa7
+ ld hl, UnnamedText_75aa7
call PrintText
jp TextScriptEnd
@@ -50632,10 +50485,10 @@
ld a, [$d79a]
bit 1, a
jr nz, .asm_627d9 ; 0x75ab2
- ld hl, $5ac2
+ ld hl, UnnamedText_75ac2
jr .asm_0b11d ; 0x75ab7
.asm_627d9 ; 0x75ab9
- ld hl, $5ac7
+ ld hl, UnnamedText_75ac7
.asm_0b11d ; 0x75abc
call PrintText
jp TextScriptEnd
@@ -50817,22 +50670,22 @@
ld a, [$d7a1]
bit 7, a
jr nz, .asm_e551a ; 0x75c9a
- ld hl, $5cc8
+ ld hl, UnnamedText_75cc8
call PrintText
- ld bc,(TM_35 << 8) | 1
+ ld bc, (TM_35 << 8) | 1
call GiveItem
jr nc, .asm_6c187 ; 0x75ca8
- ld hl, $5ccd
+ ld hl, UnnamedText_75ccd
call PrintText
ld hl, $d7a1
set 7, [hl]
jr .asm_eb896 ; 0x75cb5
.asm_6c187 ; 0x75cb7
- ld hl, $5cd8
+ ld hl, UnnamedText_75cd8
call PrintText
jr .asm_eb896 ; 0x75cbd
.asm_e551a ; 0x75cbf
- ld hl, $5cd3
+ ld hl, UnnamedText_75cd3
call PrintText
.asm_eb896 ; 0x75cc5
jp TextScriptEnd
@@ -50915,7 +50768,7 @@
ld a, [$d7a3]
bit 0, a
jr nz, .asm_75d96 ; 0x75d72 $22
- ld hl, $5dc6
+ ld hl, UnnamedText_75dc6
call PrintText
call $5d38
ld a, [$cd37]
@@ -50926,7 +50779,7 @@
call Bankswitch
jr .asm_75d93 ; 0x75d8b $6
.asm_75d8d
- ld hl, $5dcb
+ ld hl, UnnamedText_75dcb
call PrintText
.asm_75d93
jp TextScriptEnd
@@ -50933,12 +50786,12 @@
.asm_75d96
bit 1, a
jr z, .asm_75da2 ; 0x75d98 $8
- ld hl, $5dd0
+ ld hl, UnnamedText_75dd0
call PrintText
jr .asm_75d93 ; 0x75da0 $f1
.asm_75da2
call $5de8
- ld hl, $5dd5
+ ld hl, UnnamedText_75dd5
call PrintText
ld hl, $d7a3
set 2, [hl]
@@ -51247,9 +51100,9 @@
db $08 ; asm
ld a, [$d867]
bit 1, a
- ld hl, $60f4
+ ld hl, UnnamedText_760f4
jr z, .asm_17e9f ; 0x760e9
- ld hl, $6103
+ ld hl, UnnamedText_76103
.asm_17e9f ; 0x760ee
call PrintText
jp TextScriptEnd
@@ -51283,7 +51136,7 @@
ld a, [$d717]
ld [$d11e], a
call GetMonName
- ld hl, $6120
+ ld hl, UnnamedText_76120
call PrintText
jp TextScriptEnd
; 0x76120
@@ -52974,7 +52827,7 @@
db "fillets du beef?", $57
; 0x812a6 + 55 bytes
-UnnamedText_812dd: ; 0x812dd
+_SSAnne7RubText: ; 0x812dd
db $0, "CAPTAIN: Ooargh...", $4f
db "I feel hideous...", $55
db "Urrp! Seasick...", $51
@@ -52985,7 +52838,7 @@
db "Rub-rub...@@"
; 0x81347
-_UnnamedText_61927: ; 0x81347
+_ReceivingHM01Text: ; 0x81347
db $0, "CAPTAIN: Whew!", $4f
db "Thank you! I", $55
db "feel much better!", $51
@@ -53001,7 +52854,7 @@
db "any time!", $58
; 0x81347 + 198 bytes
-UnnamedText_8140d: ; 0x8140d
+_ReceivedHM01Text: ; 0x8140d
db $0, $52, " got", $4f
db "@"
TX_RAM $cf4b
@@ -53015,7 +52868,7 @@
db "guess it's time.", $57
; 0x8141c + 65 bytes
-_UnnamedText_61937: ; 0x8145d
+_HM01NoRoomText: ; 0x8145d
db $0, "Oh no! You have", $4f
db "no room for this!", $57
; 0x8145d + 35 bytes
@@ -53628,7 +53481,7 @@
db "please take this!", $58
; 0x82454 + 102 bytes
-UnnamedText_824ba: ; 0x824ba
+_ReceivedTM36Text: ; 0x824ba
db $0, $52, " got", $4f
db "@"
TX_RAM $cf4b
@@ -53635,7 +53488,7 @@
db $0, "!@@"
; 0x824c9
-_UnnamedText_59df8: ; 0x824c9
+_TM36ExplanationText: ; 0x824c9
db $0, "TM36 is", $4f
db "SELFDESTRUCT!", $51
db "It's powerful, but", $4f
@@ -53644,7 +53497,7 @@
db "Be careful.", $57
; 0x824c9 + 83 bytes
-_UnnamedText_59dfd: ; 0x8251c
+_TM36NoRoomText: ; 0x8251c
db $0, "You don't have any", $4f
db "room for this.", $57
; 0x8251c + 34 bytes
@@ -54386,7 +54239,7 @@
db "Then go on home!", $57
; 0x84e66 + 53 bytes
-_UnnamedText_62311: ; 0x84e9b
+_SilphCoPresidentText: ; 0x84e9b
db $0, "PRESIDENT: Thank", $4f
db "you for saving", $55
db "SILPH!", $51
@@ -54403,7 +54256,7 @@
db "will do!", $58
; 0x84e9b + 200 bytes
-UnnamedText_84f63: ; 0x84f63
+_ReceivedSilphCoMasterBallText: ; 0x84f63
db $0, $52, " got a", $4f
db "@"
TX_RAM $cf4b
@@ -54425,7 +54278,7 @@
db "it, though.", $57
; 0x84f74 + 159 bytes
-_UnnamedText_62321: ; 0x85013
+_SilphCoMasterBallNoRoomText: ; 0x85013
db $0, "You have no", $4f
db "room for this.", $57
; 0x85013 + 28 bytes
@@ -57171,7 +57024,7 @@
SECTION "bank23",DATA,BANK[$23]
-UnknownText_8c000: ; 0x8c000
+_UnnamedText_56437: ; 0x8c000
db $0, "All right then,", $4f
db "@@"
; 0x8c000 + 19 bytes
@@ -57497,7 +57350,7 @@
db "fish?", $57
; 0x8c9b3 + 77 bytes
-UnknownText_8ca00: ; 0x8ca00
+_UnnamedText_564c5: ; 0x8ca00
db $0, "Grand! I like", $4f
db "your style!", $51
db "Take this and", $4f
@@ -60390,7 +60243,7 @@
db $0, "VICTORY ROAD GATE", $4f
db "- #MON LEAGUE", $57
-UnknownText_92721: ; 0x92721
+_UnnamedText_51510: ; 0x92721
db $0, "Congratulations!", $4f
db "You beat our 5", $55
db "contest trainers!@@"
@@ -60402,7 +60255,7 @@
db "fabulous prize!", $58
; 0x92755 + 36 bytes
-UnknownText_92779: ; 0x92779
+_UnnamedText_5151a: ; 0x92779
db $0, $52, " received", $4f
db "a @"
; 0x92779 + 15 bytes
@@ -61611,7 +61464,7 @@
db "the EARTHBADGE!@@"
; 0x95ed5 + 85 bytes
-_UnnamedText_74ad8: ; 0x95f2b
+_UnnamedText_74ad9: ; 0x95f2b
db $0, "Having lost, I", $4f
db "cannot face my", $55
db "underlings!", $55
@@ -61890,7 +61743,7 @@
db "get it examined!", $58
; 0x966b4 + 220 bytes
-ReceivedOldAmberText: ; 0x96790
+_ReceivedOldAmberText: ; 0x96790
db $0, $52, " received", $4f
db "OLD AMBER!@@"
; 0x96790 + 24 bytes
@@ -62017,7 +61870,7 @@
db "room for this!", $57
; 0x981ab + 30 bytes
-UnnamedText_981c9: ; 0x981c9
+_UnnamedText_5c4bc: ; 0x981c9
db $0, "I took", $4f
db "you for granted.", $51
db "As proof of your", $4f
@@ -62161,7 +62014,7 @@
db "I'm on the phone!", $51
db "Scram!", $57
-UnnamedText_98744: ; 0x98744
+_PewterPokecenterText5: ; 0x98744
db $0, "JIGGLYPUFF: Puu", $4f
db "pupuu!", $57
; 0x9875c
@@ -63172,7 +63025,7 @@
db "you to have this!", $58
; 0x9a6e0 + 334 bytes
-UnnamedText_9a82e: ; 0x9a82e
+_ReceivedBikeVoucherText: ; 0x9a82e
db $0, $52, " received", $4f
db "a @"
TX_RAM $cf4b
@@ -63286,7 +63139,7 @@
db "kid! Take this!", $57
; 0x9c069 + 119 bytes
-UnnamedText_9c0e0: ; 0x9c0e0
+_ReceivedTM24Text: ; 0x9c0e0
db $0, $52, " received ", $4f
db "@"
TX_RAM $cf4b
@@ -63293,7 +63146,7 @@
db $0, "!@@"
; 0x9c0f5
-_UnnamedText_5cb81: ; 0x9c0f5
+_TM24ExplanationText: ; 0x9c0f5
db $0, $51
db "TM24 contains", $4f
db "THUNDERBOLT!", $51
@@ -63301,12 +63154,12 @@
db "electric #MON!", $57
; 0x9c0f5 + 59 bytes
-_UnnamedText_5cb86: ; 0x9c130
+_TM24NoRoomText: ; 0x9c130
db $0, "Yo kid, make room", $4f
db "in your pack!", $57
; 0x9c130 + 33 bytes
-_UnnamedText_5cb8b: ; 0x9c151
+_ReceivedThunderbadgeText: ; 0x9c151
db $0, "Whoa!", $51
db "You're the real", $4f
db "deal, kid!", $51
@@ -63426,7 +63279,7 @@
db "fish?", $57
; 0x9c510 + 68 bytes
-UnnamedText_9c554: ; 0x9c554
+_UnnamedText_560b6: ; 0x9c554
db $0, "Grand! I like", $4f
db "your style!", $51
db "Take this and", $4f
@@ -64808,7 +64661,7 @@
db "fish?", $57
; 0xa0695 + 83 bytes
-UnnamedText_a06e8: ; 0xa06e8
+_UnnamedText_561c2: ; 0xa06e8
db $0, "Grand! I like", $4f
db "your style!", $51
db "Take this and", $4f
@@ -65319,7 +65172,7 @@
db "this, then!", $58
; 0xa1636 + 63 bytes
-UnnamedText_a1675: ; 0xa1675
+_ReceivedTM31Text: ; 0xa1675
db $0, $52, " received", $4f
db "@"
TX_RAM $cf4b
@@ -65326,7 +65179,7 @@
db $0, "!@@"
; 0xa1689
-UnnamedText_a1689: ; 0xa1689
+_TM31ExplanationText1: ; 0xa1689
db $0, $51
db "TM31 contains my", $4f
db "favorite, MIMIC!", $51
@@ -65334,7 +65187,7 @@
db "#MON!@@"
; 0xa16c5
-_UnnamedText_5cce9: ; 0xa16c5
+_TM31ExplanationText2: ; 0xa16c5
db $0, $52, ": Hi!", $4f
db "Thanks for TM31!", $51
db $52, ": Pardon?", $51
@@ -65345,7 +65198,7 @@
db "It's a scream!", $57
; 0xa16c5 + 110 bytes
-UnnamedText_a1733: ; 0xa1733
+_TM31NoRoomText: ; 0xa1733
db $0, "Don't you want", $4f
db "this?@@"
; 0xa1749
@@ -66221,7 +66074,7 @@
db "have this TM.", $58
; 0xa45ea + 176 bytes
-ReceivedTM42Text: ; 0xa469a
+_ReceivedTM42Text: ; 0xa469a
db $0, $52, " received", $4f
db "TM42!@@"
; 0xa46ad
@@ -66810,7 +66663,7 @@
db "dropping by!", $58
; 0xa5afd + 93 bytes
-UnnamedText_a5b5a: ; 0xa5b5a
+_UnnamedText_199d7: ; 0xa5b5a
db $0, $52, " received", $4f
db "@"
TX_RAM $cf4b
--- a/constants.asm
+++ b/constants.asm
@@ -95,6 +95,8 @@
W_WHICHPOKEMON EQU $CF92 ; which pokemon you selected
+W_WALKCOUNTER EQU $CFC5 ; walk animation counter
+
W_OPPONENTHP EQU $CFE6 ; active opponent's hp (16 bits)
W_OPPONENTNUMBER EQU $CFE8 ; active opponent's position in team (0 to 5)
W_OPPONENTSTATUS EQU $CFE9 ; active opponent's status condition
@@ -2567,3 +2569,147 @@
; Agatha_h map_id=247
AGATHAS_ROOM_HEIGHT EQU $06
AGATHAS_ROOM_WIDTH EQU $05
+
+;Sound Constants (Copied from pkms.asm with modifications)
+MUSIC EQU 0
+SFX EQU 4
+CH1 EQU 0
+CH2 EQU 1
+CH3 EQU 2
+CH4 EQU 3
+
+;Note Pitch
+noteC EQU $0
+noteC# EQU $1
+noteD EQU $2
+noteD# EQU $3
+noteE EQU $4
+noteF EQU $5
+noteF# EQU $6
+noteG EQU $7
+noteG# EQU $8
+noteA EQU $9
+noteA# EQU $A
+noteB EQU $B
+noteRst EQU $C
+
+;Note Delay
+note16 EQU $0 ;1/16
+note8 EQU $1 ;1/8
+note8_16 EQU $2 ;1/8 + 1/16
+note4 EQU $3 ;1/4
+note4_16 EQU $4 ;1/4 + 1/16
+note4_8 EQU $5 ;1/4 + 1/8
+note4_8_16 EQU $6 ;1/4 + 1/8 + 1/16
+note2 EQU $7 ;1/2
+note2_16 EQU $8 ;1/2 + 1/16
+note2_8 EQU $9 ;1/2 + 1/8
+note2_8_16 EQU $A ;1/2 + 1/8 + 1/16
+note2_4 EQU $B ;1/2 + 1/4
+note2_4_16 EQU $C ;1/2 + 1/4 + 1/16
+note2_4_8 EQU $D ;1/2 + 1/4 + 1/8
+note2_4_8_16 EQU $E ;1/2 + 1/4 + 1/8 + 1/16
+note1 EQU $F ;1
+
+;Drum
+dNote EQU $B0
+dRst EQU $C0
+d5d3Spd EQU $D4
+d4d3Spd EQU $D8
+dNormSpd EQU $DC
+d2Spd EQU $D0
+
+; octaves
+oct0 EQU $E7
+oct1 EQU $E6
+oct2 EQU $E5
+oct3 EQU $E4
+oct4 EQU $E3
+oct5 EQU $E2
+oct6 EQU $E1
+oct7 EQU $E0
+
+;duty
+duty12_5 EQU $0
+duty25 EQU $1
+duty50 EQU $2
+duty75 EQU $3
+
+;Write a music note
+;format: mus_note pitch delay
+mus_note: MACRO
+ db ((\1 << 4) | \2)
+ENDM
+
+;Write an octave note
+;format: mus_octave octave
+mus_octave: MACRO
+ db \1
+ENDM
+
+; set velocity/note fade (\1 is velocity, \2 is note length, both 0-15)
+; format: mus_vel vel, length
+mus_vel: MACRO
+ db $DC
+ db ((\1 << 4) | \2)
+ENDM
+
+; stop sound
+; format: mus_end
+mus_end: MACRO
+ db $FF
+ENDM
+
+; ???
+; format: mus_E8
+mus_E8: MACRO
+ db $E8
+ENDM
+
+; set modulation (\1 is delay, \2 is depth, \3 is rate)
+; format: mus_mod delay, depth, rate
+mus_mod: MACRO
+ db $EA
+ db \1
+ db ((\2 << 4) | \3)
+ENDM
+
+; set duty cycle (\1: 0 = 12.5%, 1 = 25%, 2 = 50%, 3 = 75%)
+; format: mus_duty duty
+mus_duty: MACRO
+ db $EC
+ db \1
+ENDM
+
+; set music tempo (\1 is divider, \2 is modifier)
+; format: mus_tempo divider, modifier
+mus_tempo: MACRO
+ db $ED
+ db \1
+ db \2
+ENDM
+
+; set volume (\1 is volume)
+; format: mus_volume volume
+; (may actually be panning?)
+mus_volume: MACRO
+ db $F0
+ db \1
+ENDM
+
+; call \1
+; format: mus_call offset
+mus_call: MACRO
+ db $FD
+ ;dw ((\1 % $4000) + ((\1 >= $4000) * $4000))
+ dw \1
+ENDM
+
+; jump \1 \2
+; format: mus_jump loop offset
+mus_jump: MACRO
+ db $FE
+ db \1
+ dw \2
+ ;dw ((\2 % $4000) + ((\2 >= $4000) * $4000))
+ENDM
--- a/extras/gbz80disasm.py
+++ b/extras/gbz80disasm.py
@@ -568,6 +568,7 @@
"6581": "ItemUseNotTime",
"3a87": "AddNTimes",
"3dab": "IsInArray", #bank 3
+ "039e": "HandleMidJump",
}
def random_asm_label():
--- a/extras/print_pc_items.py
+++ /dev/null
@@ -1,9 +1,0 @@
-#!/usr/bin/python
-#author: Bryan Bishop <[email protected]>
-#date: 2012-01-19
-#spit out some constants
-
-for x in range(1, 51):
- print "W_BOXITEM%.2d EQU $%s" % (x, ("%.2x" % (0xd539+(x*2))).upper())
- print "W_BOXITEM%.2dQTY EQU $%s" % (x, ("%.2x" % (0xd539+(x*2)+1)).upper())
-
--- /dev/null
+++ b/music.asm
@@ -1,0 +1,4121 @@
+; Music Data
+; The start and stop of these byte ranges were based off the theory they're lined
+; consecutively (Right up against each other).
+
+INCBIN "baserom.gbc",$82FD,$9ba3 - $82FD
+
+;Pokemon Healed Music
+PkmnHealed_md_1: ;9BA3 - 9BC3
+ ;Setup
+ mus_tempo 0, $90
+ mus_volume 119
+ mus_duty duty50
+ db $E8 ;??
+ mus_vel 8, 1
+
+;Music
+ ;Piece 1
+ mus_note noteRst, note8
+ db $EB, $00
+ mus_note noteE, note2_4
+ mus_note noteB, note8
+ db $EB, $00
+ mus_note noteF, note4_16
+ mus_note noteB, note8
+ db $EB, $00
+ mus_note noteE, note4_16
+ mus_note noteE, note8
+ mus_note noteRst, note4
+ db $EB, $00
+ mus_note noteD#, note2_4
+ mus_note noteE, note4
+ db $EB, $00
+ mus_note noteE, note2_4
+ mus_note noteB, note4
+
+ mus_end ;End
+
+PkmnHealed_md_2: ;9BC4 - 9BD1
+;Setup
+ mus_duty duty50
+
+;Music
+ ;Octave Switch
+ db dNormSpd
+ mus_note noteRst, note4
+ db oct3
+
+ ;Piece 1
+ mus_note noteB, note4
+ mus_note noteB, note4
+ mus_note noteB, note8
+ mus_note noteG#, note8
+
+ ;Octave Switch
+ db dNormSpd
+ mus_note noteRst, note4_16
+ db oct4
+
+ ;Piece 2
+ mus_note noteE, note2
+
+ mus_end ;End
+
+PkmnHealed_md_3: ;9BD2 - 9BDD
+;Music
+ ;Octave Switch
+ db dNormSpd
+ mus_note noteC#, note16
+ db oct3
+
+ ;Piece 1
+ mus_note noteE, note8
+ mus_note noteRst, note8
+ mus_note noteE, note8
+ mus_note noteRst, note8
+ mus_note noteE, note8
+ mus_note noteG#, note8
+ mus_note noteE, note4_8
+ mus_note noteRst, note8
+
+ mus_end ;End
+
+ ;Routes 1 and 2
+Routes1_md_1: ;9BDE - 9C50
+ mus_tempo 0, 152
+ mus_volume 119
+ mus_mod 4, 2, 3
+ mus_duty duty50
+ db $E8
+
+branch_9BE9:
+ mus_vel 10, 1
+ mus_note noteRst, note4
+
+ mus_octave oct3
+ mus_note noteD, note8
+ mus_note noteD, note4_8
+ mus_note noteD, note8
+ mus_note noteD, note4_8
+ mus_note noteD, note8
+ mus_note noteD, note16
+ mus_note noteC#, note16
+
+ mus_octave oct2
+ mus_note noteB, note16
+
+ mus_octave oct3
+ mus_note noteC#, note16
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_note noteA, note8
+ mus_note noteA, note4_8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+ mus_note noteC#, note4_8
+ mus_note noteC#, note8
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteA, note8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_note noteA, note4_8
+
+ mus_octave oct3
+ mus_note noteD, note8
+ mus_note noteD, note4_8
+ mus_note noteD, note8
+ mus_note noteD, note4_8
+ mus_note noteD, note8
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteD, note16
+ mus_note noteC#, note16
+
+ mus_octave oct2
+ mus_note noteB, note8
+ mus_note noteA, note8
+ mus_note noteA, note4_8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+ mus_note noteC#, note4_8
+
+ mus_octave oct2
+ mus_note noteA, note8
+
+ mus_octave oct3
+ mus_note noteE, note8
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_vel 10, 2
+
+ mus_octave oct3
+ mus_note noteG, note4
+ mus_note noteE, note4
+ mus_note noteF#, note8
+ mus_vel 10, 1
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_note noteA, note4_8
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteA, note4
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+
+ mus_octave oct2
+ mus_note noteB, note4
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteA, note4
+ mus_note noteG, note8
+ mus_note noteE, note8
+ mus_note noteC#, note4
+ mus_note noteA, note8
+
+ mus_octave oct3
+ mus_note noteD, note8
+
+ mus_octave oct2
+ mus_note noteA, note4
+ mus_note noteB, note8
+ mus_note noteG, note8
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteD, note8
+ mus_note noteE, note8
+ mus_note noteC#, note8
+ mus_note noteD, note8
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_note noteA, note8
+ mus_jump 0, branch_9BE9 ;5BE9
+ mus_end
+
+Routes1_md_2: ;9C51 - 9CD7
+ mus_duty duty50
+
+branch_9C53:
+ mus_vel 13, 1
+ mus_call branch_9C65
+ mus_call branch_9C78
+ mus_call branch_9C65
+ mus_call branch_9C8D
+ mus_jump 0, branch_9C53
+
+branch_9C65:
+ mus_octave oct3
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteF#, note8
+ mus_note noteF#, note8
+ mus_note noteF#, note8
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteF#, note8
+ mus_note noteF#, note8
+ mus_note noteF#, note8
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteF#, note8
+ mus_note noteF#, note8
+ mus_note noteG, note8_16
+ mus_note noteF#, note16
+ mus_note noteE, note4_8
+ mus_end
+
+branch_9C78:
+ mus_note noteC#, note16
+ mus_note noteD, note16
+ mus_note noteE, note8
+ mus_note noteE, note8
+ mus_note noteE, note8
+ mus_note noteC#, note16
+ mus_note noteD, note16
+ mus_note noteE, note8
+ mus_note noteE, note8
+ mus_note noteE, note8
+ mus_note noteC#, note16
+ mus_note noteD, note16
+ mus_note noteE, note8
+ mus_note noteE, note8
+ mus_note noteF#, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteF#, note16
+ mus_note noteD, note4
+ mus_note noteF#, note8
+ mus_end
+
+branch_9C8D:
+ mus_note noteC#, note16
+ mus_note noteD, note16
+ mus_note noteE, note8
+ mus_note noteG, note8
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteD, note8
+ mus_note noteC#, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+ mus_vel 13, 2
+ mus_note noteB, note4
+ db $D6
+ db $D1
+
+ mus_octave oct2
+ mus_note noteB, note16
+
+ mus_octave oct3
+ mus_note noteC#, note16
+ mus_vel 13, 1
+
+ mus_octave oct2
+ mus_note noteB, note16
+ mus_note noteA, note16
+
+ mus_octave oct3
+ mus_note noteC#, note16
+ mus_note noteD, note4_8
+ mus_vel 13, 2
+ mus_note noteF#, note16
+ mus_note noteG, note16
+ mus_note noteA, note8
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteD, note8
+
+ mus_octave oct4
+ mus_note noteD, note8
+ mus_note noteC#, note8
+
+ mus_octave oct3
+ mus_note noteB, note8
+
+ mus_octave oct4
+ mus_note noteC#, note8
+
+ mus_octave oct3
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteD, note8_16
+ mus_note noteF#, note16
+ mus_note noteE, note4_8
+ mus_note noteF#, note16
+ mus_note noteG, note16
+ mus_note noteA, note8
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteA, note8
+
+ mus_octave oct4
+ mus_note noteD, note8
+ mus_note noteC#, note8
+
+ mus_octave oct3
+ mus_note noteB, note8_16
+ mus_note noteG, note16
+ mus_note noteA, note8
+
+ mus_octave oct4
+ mus_note noteD, note8
+ mus_note noteC#, note8
+ mus_note noteE, note8
+ mus_note noteD, note8
+ mus_vel 13, 1
+
+ mus_octave oct3
+ mus_note noteD, note8
+ mus_note noteD, note8
+ mus_end
+ mus_end
+
+Routes1_md_3: ;9CD8 - 9D23
+ mus_mod 8, 2, 5
+ mus_vel 1, 3
+
+branch_9CDD:
+ mus_note noteRst, note8
+
+ mus_octave oct3
+ mus_note noteD, note4
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteB, note4
+ mus_note noteA, note4
+
+ mus_octave oct3
+ mus_note noteD, note4
+
+ mus_octave oct2
+ mus_note noteA, note4
+ mus_note noteB, note4
+ mus_note noteA, note4
+
+ mus_octave oct3
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteA, note4
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteC, note4
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteA, note4
+
+ mus_octave oct3
+ mus_note noteD, note4
+
+ mus_octave oct2
+ mus_note noteA, note4
+
+ mus_octave oct3
+ mus_note noteD, note4
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteB, note4
+ mus_note noteA, note4
+
+ mus_octave oct3
+ mus_note noteD, note4
+
+ mus_octave oct2
+ mus_note noteA, note4
+ mus_note noteB, note4
+ mus_note noteA, note4
+
+ mus_octave oct3
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteB, note4
+ mus_note noteA, note4
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteA, note4
+
+ mus_octave oct3
+ mus_note noteD, note4
+
+ mus_octave oct2
+ mus_note noteA, note4
+
+ mus_octave oct3
+ mus_note noteD, note2
+
+ mus_octave oct2
+ mus_note noteG, note2
+ mus_note noteA, note2
+
+ mus_octave oct3
+ mus_note noteC#, note2
+ mus_note noteD, note2
+
+ mus_octave oct2
+ mus_note noteG, note2
+ mus_note noteA, note2
+
+ mus_octave oct3
+ mus_note noteD, note4_8
+ mus_jump 0, branch_9CDD
+ mus_end
+ ; 9D23
+
+Routes1_md_4: ;9D24 - 9DB8
+; 9D24
+ mus_vel 12, 3
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note4
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note4
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note4
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note4
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note4
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note4
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_note noteB, note8
+ mus_note noteC, note1
+ mus_jump 0, Routes1_md_4
+ mus_end
+; 9DB8
+
+;Routes 24 and 25
+Routes2_md_1: ;9DB9 - 9E4E
+ ; 9DB9
+ mus_tempo 0, 152
+ mus_volume 119
+ mus_mod 9, 2, 5
+ mus_duty duty25
+
+branch_9DBC:
+ mus_vel 11, 2
+
+ mus_octave oct1
+ mus_note noteB, note4
+
+ mus_octave oct2
+ mus_note noteG#, note4_8
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteD#, note16
+ mus_note noteF#, note16
+ mus_note noteE, note8
+
+ mus_octave oct1
+ mus_note noteB, note8
+
+ mus_octave oct2
+ mus_note noteE, note8
+ mus_note noteA, note8
+ mus_note noteG#, note4
+ mus_note noteF#, note4
+
+ mus_octave oct1
+ mus_note noteB, note4
+
+ mus_octave oct2
+ mus_note noteG#, note4_8
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteD#, note16
+ mus_note noteF#, note16
+ mus_note noteB, note8
+
+ mus_octave oct1
+ mus_note noteB, note8
+
+ mus_octave oct2
+ mus_note noteE, note8
+ mus_note noteA, note8
+ mus_note noteG#, note4
+ mus_note noteB, note4
+ db $D8
+ mus_note noteB, note8_16
+
+ mus_octave oct3
+ mus_note noteE, note8
+
+ mus_octave oct2
+ mus_note noteA, note8
+
+ mus_octave oct3
+ mus_note noteE, note8
+ mus_note noteE, note8
+
+ mus_octave oct2
+ mus_note noteA, note8
+
+ mus_octave oct3
+ mus_note noteE, note8
+ mus_note noteD#, note8
+
+ mus_octave oct2
+ mus_note noteG#, note8
+
+ mus_octave oct3
+ mus_note noteD#, note8
+ mus_note noteD#, note8
+
+ mus_octave oct2
+ mus_note noteG#, note8
+
+ mus_octave oct3
+ mus_note noteD#, note8
+ mus_note noteC#, note8
+
+ mus_octave oct2
+ mus_note noteF#, note8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+ mus_note noteC#, note8
+
+ mus_octave oct2
+ mus_note noteF#, note8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+ mus_note noteE, note8
+ mus_note noteB, note8
+ mus_note noteB, note8
+ mus_note noteE, note8
+ mus_note noteG#, note8
+ mus_note noteF#, note8
+ mus_note noteG#, note8
+ mus_note noteA, note8
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteG#, note8
+ mus_note noteA, note8
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteA, note8
+ mus_note noteG#, note8
+ mus_note noteE, note8
+ mus_note noteB, note8
+ mus_note noteB, note8
+ mus_note noteE, note8
+ mus_note noteB, note8
+ mus_note noteB, note8
+ mus_note noteE, note8
+ mus_note noteB, note8
+ mus_note noteB, note8
+ mus_note noteE, note8
+ mus_note noteB, note8
+ mus_note noteA, note8
+ mus_note noteB, note8
+ mus_note noteA, note8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+ mus_note noteD, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteD, note8
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteD#, note8
+ mus_note noteE, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteE, note8
+ mus_note noteE, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteE, note8
+ mus_note noteE, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteE, note8
+ mus_note noteE, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteE, note8
+ mus_jump 0, branch_9DBC
+ mus_end
+ ; 9E4E
+
+Routes2_md_2: ;9E4F - 9E9A
+
+ ; 9E4F
+ mus_mod 8, 2, 6
+ mus_duty duty75
+
+branch_9E54:
+ mus_vel 13, 4
+
+ mus_octave oct3
+ mus_note noteE, note4_8
+
+ mus_octave oct2
+ mus_note noteB, note16
+
+ mus_octave oct3
+ mus_note noteE, note16
+ mus_note noteF#, note4_8
+ mus_note noteA, note8
+ mus_note noteG#, note8_16
+ mus_note noteE, note16
+ mus_note noteF#, note2
+
+ mus_octave oct2
+ mus_note noteD#, note4
+
+ mus_octave oct3
+ mus_note noteE, note4_8
+
+ mus_octave oct2
+ mus_note noteB, note16
+
+ mus_octave oct3
+ mus_note noteE, note16
+ mus_note noteF#, note4_8
+ mus_note noteA, note8
+ mus_note noteG#, note8_16
+ mus_note noteE, note16
+ mus_note noteB, note2
+
+ mus_octave oct2
+ mus_note noteG#, note4
+
+ mus_octave oct4
+ mus_note noteC#, note4_8
+
+ mus_octave oct3
+ mus_note noteB, note16
+ mus_note noteA, note16
+ mus_note noteB, note4_8
+ mus_note noteA, note16
+ mus_note noteG#, note16
+ mus_note noteA, note4_8
+ mus_note noteG#, note16
+ mus_note noteF#, note16
+ mus_note noteG#, note4
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteD, note8
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteF#, note2
+ mus_note noteA, note4
+ mus_note noteG#, note8_16
+ mus_note noteF#, note16
+ mus_note noteE, note2
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteD, note8
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteF#, note8
+ mus_note noteF#, note16
+ mus_note noteG#, note16
+ mus_note noteA, note4
+
+ mus_octave oct4
+ mus_note noteC#, note4
+
+ mus_octave oct3
+ mus_note noteB, note8_16
+ mus_note noteA, note16
+ mus_note noteG#, note2
+ mus_note noteRst, note4
+ mus_jump 0, branch_9E54
+ mus_end
+ ; 9E9A
+
+Routes2_md_3: ;9E9B - 9F07
+ ; 9E9B
+ mus_mod 9, 2, 8
+
+branch_9E9E:
+ mus_vel 1, 1
+
+ mus_octave oct2
+ mus_note noteE, note8
+ mus_note noteRst, note8
+
+ mus_octave oct1
+ mus_note noteB, note4_8
+
+ mus_octave oct2
+ mus_note noteD, note16
+ mus_note noteC#, note16
+ mus_note noteD, note8
+ mus_note noteD#, note8
+ mus_note noteE, note8
+ mus_note noteRst, note8
+
+ mus_octave oct1
+ mus_note noteB, note4_8
+
+ mus_octave oct2
+ mus_note noteD, note16
+ mus_note noteC#, note16
+
+ mus_octave oct1
+ mus_note noteA, note8
+
+ mus_octave oct2
+ mus_note noteC#, note8
+ mus_note noteE, note8
+ mus_note noteRst, note8
+
+ mus_octave oct1
+ mus_note noteB, note4_8
+
+ mus_octave oct2
+ mus_note noteD, note16
+ mus_note noteC#, note16
+ mus_note noteD, note8
+ mus_note noteD#, note8
+ mus_note noteE, note8
+ mus_note noteRst, note8
+
+ mus_octave oct1
+ mus_note noteB, note4
+
+ mus_octave oct2
+ mus_note noteC#, note8
+
+ mus_octave oct1
+ mus_note noteB, note8
+
+ mus_octave oct2
+ mus_note noteD, note8
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteRst, note8
+
+ mus_octave oct1
+ mus_note noteA, note8
+ mus_note noteRst, note8
+
+ mus_octave oct2
+ mus_note noteD#, note8
+ mus_note noteRst, note8
+
+ mus_octave oct1
+ mus_note noteG#, note8
+ mus_note noteRst, note8
+
+ mus_octave oct2
+ mus_note noteC#, note8
+ mus_note noteRst, note8
+
+ mus_octave oct1
+ mus_note noteF#, note8
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteRst, note8
+ mus_note noteE, note8
+ mus_note noteG#, note8
+ mus_note noteF#, note8
+ mus_note noteRst, note8
+ mus_note noteA, note8
+ mus_note noteRst, note8
+ mus_note noteF#, note8
+ mus_note noteRst, note8
+ mus_note noteA, note8
+ mus_note noteRst, note8
+ mus_note noteG#, note8
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteRst, note8
+ mus_note noteG#, note8
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteRst, note8
+ mus_note noteF#, note8
+ mus_note noteRst, note8
+ mus_note noteA, note8
+ mus_note noteRst, note8
+
+ mus_octave oct2
+ mus_note noteC#, note8
+ mus_note noteRst, note8
+
+ mus_octave oct1
+ mus_note noteA, note8
+
+ mus_octave oct2
+ mus_note noteC#, note8
+
+ mus_octave oct1
+ mus_note noteB, note8
+ mus_note noteRst, note8
+
+ mus_octave oct2
+ mus_note noteE, note8
+ mus_note noteRst, note8
+ mus_note noteG#, note8
+ mus_note noteRst, note8
+ mus_note noteE, note8
+ mus_note noteRst, note8
+ mus_jump 0, branch_9E9E
+ mus_end
+ ; 9F07
+
+Routes2_md_4: ;9F08 - 9FAC
+ ; 9F08
+ mus_vel 11, 1
+ mus_note noteC, note4
+ mus_note noteRst, note8
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteRst, note4_16
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note8
+ db $D8
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_vel 11, 0
+ mus_note noteC, note4
+ mus_note noteRst, note8_16
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note4
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note8
+ db $D8
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteRst, note8_16
+ mus_vel 11, 0
+ mus_note noteC, note4
+ mus_note noteRst, note4_16
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note8
+ db $D8
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteRst, note8_16
+ mus_vel 11, 0
+ mus_note noteC, note4
+ mus_note noteRst, note8_16
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note4
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note8
+ db $D8
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteRst, note8_16
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteRst, note8_16
+ mus_vel 11, 0
+ mus_note noteC, note4
+ mus_note noteRst, note4_16
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note16
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteRst, note8
+ db $D8
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8
+ mus_note noteC, note4
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteRst, note8_16
+ mus_note noteB, note8_16
+ mus_note noteC, note4
+ mus_note noteRst, note8_16
+ mus_jump 0, Routes2_md_4
+ mus_end
+ ; 9FAC
+
+;Routes 3, 4, 5, 6, 7, 8, 9, 10, 16, 17, 18, 19, 20, 21, 22
+Routes3_md_1: ;9FAD - A008
+ ; 9FAD
+ mus_tempo 0, 148
+ mus_volume 119
+ mus_duty duty75
+ mus_mod 6, 3, 4
+ db $E8
+ mus_vel 11, 5
+
+ mus_octave oct2
+ mus_note noteE, note16
+ mus_note noteF#, note16
+ mus_note noteG, note4_8
+ mus_note noteF, note16
+ mus_note noteG, note16
+ mus_note noteE, note16
+ mus_note noteRst, note1
+ mus_note noteRst, note2_4_8_16
+
+branch_9FC3:
+ mus_vel 11, 5
+ mus_note noteE, note4_8
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteC, note4
+ mus_note noteE, note4
+ mus_note noteC, note4_8
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteF, note8
+ mus_note noteG, note8
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_vel 10, 7
+ mus_note noteA#, note2
+ mus_note noteF, note2
+ mus_note noteD, note2
+ mus_note noteF, note2
+ mus_vel 11, 5
+ mus_note noteE, note4_8
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteC, note4
+ mus_note noteE, note4
+ mus_note noteC, note4_8
+ mus_note noteD, note16
+ mus_note noteE, note16
+ mus_note noteF, note8
+ mus_note noteG, note8
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_vel 10, 7
+ mus_note noteA#, note2
+ mus_note noteA#, note2
+ mus_note noteD, note2
+ mus_note noteF, note2
+ mus_vel 11, 5
+ mus_note noteE, note4
+ mus_note noteE, note8
+ mus_note noteF, note8
+ mus_note noteG, note4
+ mus_note noteF, note8
+ mus_note noteE, note8
+ mus_note noteB, note8
+
+ mus_octave oct1
+ mus_note noteG, note4
+
+ mus_octave oct2
+ mus_note noteB, note2
+ mus_note noteA, note8
+ db $D8
+ mus_note noteRst, note4
+ mus_note noteA, note4
+ mus_note noteF, note4
+ mus_note noteA, note4
+ db $D8
+ mus_note noteE, note1
+ mus_note noteA, note2_4
+ db $D8
+ mus_note noteA, note16
+ mus_note noteF, note2_4
+ mus_note noteG, note2_4
+ mus_jump 0, branch_9FC3
+ ;A008
+ ;No end byte until indigo plateu channel 1
+
+Routes3_md_2: ;A009 - A07E
+ ; A009
+ mus_mod 8, 2, 3
+ mus_duty duty50
+ mus_vel 12, 7
+
+ mus_octave oct2
+ mus_note noteG, note16
+ mus_note noteA#, note16
+ mus_note noteB, note4_8
+ mus_note noteA, note16
+ mus_note noteB, note16
+
+ mus_octave oct3
+ mus_note noteC, note16
+ mus_note noteRst, note2_4_8_16
+ mus_note noteRst, note1
+
+branch_A01A:
+ mus_vel 12, 7
+ mus_duty duty50
+
+ mus_octave oct3
+ mus_note noteC, note4_8
+
+ mus_octave oct2
+ mus_note noteG, note16
+
+ mus_octave oct3
+ mus_note noteC, note16
+ mus_note noteE, note2_8
+
+ mus_octave oct2
+ mus_note noteG, note8
+
+ mus_octave oct3
+ mus_note noteC, note8
+ mus_note noteG, note8
+ mus_note noteF, note8
+ mus_note noteE, note8
+ mus_note noteD, note8
+ mus_note noteC, note8
+ mus_note noteD, note2
+ mus_note noteF, note2
+ mus_vel 12, 5
+ mus_duty duty75
+
+ mus_octave oct2
+ mus_note noteA#, note2
+ mus_note noteA, note2
+ mus_vel 12, 7
+ mus_duty duty50
+
+ mus_octave oct3
+ mus_note noteC, note4_8
+
+ mus_octave oct2
+ mus_note noteG, note16
+
+ mus_octave oct3
+ mus_note noteC, note16
+ mus_note noteE, note2_8
+
+ mus_octave oct2
+ mus_note noteG, note8
+
+ mus_octave oct3
+ mus_note noteC, note8
+ mus_note noteG, note8
+ mus_note noteF, note8
+ mus_note noteE, note8
+ mus_note noteD, note8
+ mus_note noteC, note8
+ mus_note noteD, note2
+ mus_note noteF, note2
+ mus_vel 12, 5
+ mus_duty duty75
+
+ mus_octave oct2
+ mus_note noteA#, note2
+
+ mus_octave oct3
+ mus_note noteD, note4_8
+ mus_vel 12, 7
+ mus_duty duty50
+ mus_note noteC, note16
+ mus_note noteD, note16
+ mus_note noteE, note8
+ mus_note noteD, note8
+ mus_note noteE, note8
+ mus_note noteC, note2
+
+ mus_octave oct2
+ mus_note noteB, note16
+
+ mus_octave oct3
+ mus_note noteC, note16
+ mus_note noteD, note8
+
+ mus_octave oct2
+ mus_note noteG, note4
+
+ mus_octave oct3
+ mus_note noteG, note2
+ mus_note noteF, note16
+ mus_note noteE, note16
+ db $D8
+ db $D3
+ mus_note noteF, note4
+ mus_note noteE, note4
+ db $D8
+ mus_note noteRst, note4_16
+ mus_note noteC, note4
+ db $D8
+ mus_note noteRst, note4_8
+ mus_note noteC, note2_4
+ mus_vel 10, 0
+ mus_duty duty75
+
+ mus_octave oct2
+ mus_note noteA, note2
+ mus_note noteB, note2
+ mus_jump 0, branch_A01A
+ ; A07E
+ ;No end byte until indigo plateu channel 1
+
+Routes3_md_3: ;A07F - A130
+ ; A07F
+ mus_mod 4, 1, 0
+ db $D6
+ mus_note noteC#, note8_16
+
+ mus_octave oct3
+ mus_note noteG, note8
+ mus_note noteA#, note8
+ mus_note noteB, note2
+ mus_note noteA, note2
+ mus_note noteG, note8
+ mus_note noteRst, note8
+ mus_note noteG, note4_8_16
+ mus_note noteRst, note16
+ mus_note noteG, note16
+ mus_note noteRst, note16
+ mus_note noteG, note16
+ mus_note noteRst, note16
+ mus_note noteG, note8
+ mus_note noteRst, note8
+ mus_note noteG, note8
+ mus_note noteRst, note8
+ mus_note noteG, note2
+ mus_note noteG, note8
+ mus_note noteRst, note8
+ mus_note noteG, note4_8_16
+ mus_note noteRst, note16
+ mus_note noteG, note16
+ mus_note noteRst, note16
+ mus_note noteG, note16
+ mus_note noteRst, note16
+ mus_note noteG, note8
+ mus_note noteRst, note8
+ mus_note noteG, note8
+ mus_note noteRst, note8
+ mus_note noteG, note2
+
+branch_A0A3:
+ mus_vel 1, 2
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG, note4
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG, note4
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG, note4
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA#, note4
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA#, note4
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA#, note4
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA#, note8
+ mus_note noteF, note8
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG, note4
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG, note4
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG, note4
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA#, note4
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA#, note4
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA#, note4
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA#, note8
+ mus_note noteA, note8
+ mus_note noteG, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteC, note4
+
+ mus_octave oct3
+ mus_note noteG, note16
+ mus_note noteG, note16
+ mus_note noteG, note16
+ mus_note noteRst, note16
+ mus_note noteG, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteC, note4
+
+ mus_octave oct3
+ mus_note noteG, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteD, note4
+
+ mus_octave oct3
+ mus_note noteG, note16
+ mus_note noteG, note16
+ mus_note noteG, note16
+ mus_note noteRst, note16
+ mus_note noteG, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteD, note4
+
+ mus_octave oct3
+ mus_note noteF, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteC, note4
+
+ mus_octave oct3
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteC, note4
+
+ mus_octave oct3
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA, note4
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteF, note16
+ mus_note noteRst, note16
+ mus_note noteA, note4
+ mus_jump 0, branch_A0A3
+ ; A130
+ ;No end byte until indigo plateu channel 1
+
+Routes3_md_4: ;A131 -A269
+ ; A131
+ db $D6
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+
+branch_A17A:
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note2
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note2_8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note4
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note2
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note2_8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note2
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note2_8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note2
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note2
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note2_4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_jump 0, branch_A17A
+ ; A269
+ ;No end byte until indigo plateu channel 1
+
+;Routes 11, 12, 13, 14, 15
+Routes4_md_1: ;a26a - a303
+ ; A26A
+ mus_tempo 0, 148
+ mus_volume 119
+ mus_duty duty75
+ mus_mod 10, 3, 4
+ db $E8
+ mus_vel 10, 2
+
+ mus_octave oct1
+ mus_note noteG#, note4
+ mus_note noteG#, note4
+ mus_note noteG#, note4
+ mus_vel 7, 15
+ mus_note noteG#, note4
+ mus_vel 10, 2
+ mus_note noteG#, note4
+ mus_note noteG#, note4
+ mus_note noteG#, note4
+ mus_vel 11, 7
+ mus_note noteB, note16
+
+ mus_octave oct2
+ mus_note noteE, note16
+ mus_note noteF#, note16
+ mus_note noteB, note16
+
+branch_A28A:
+ mus_vel 11, 7
+ mus_note noteB, note4_8
+ mus_note noteE, note8
+ mus_note noteE, note4
+
+ mus_octave oct3
+ mus_note noteE, note4
+ mus_note noteD, note4
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteB, note4
+ mus_note noteA, note4
+ mus_vel 11, 1
+ mus_note noteG#, note8_16
+ mus_vel 11, 7
+ mus_note noteE, note16
+ mus_note noteF#, note2_4
+ mus_note noteE, note2
+ mus_note noteD#, note4
+ mus_note noteF#, note4
+ mus_note noteB, note4_8
+ mus_note noteE, note8
+ mus_note noteE, note4
+
+ mus_octave oct3
+ mus_note noteE, note4
+ mus_note noteD, note4
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteC#, note4
+ mus_vel 11, 1
+ mus_note noteE, note8_16
+ mus_vel 11, 7
+ mus_note noteD#, note16
+ mus_note noteE, note2_4
+
+ mus_octave oct2
+ mus_note noteB, note8_16
+ mus_note noteA, note16
+ mus_note noteG#, note2
+
+ mus_octave oct3
+ mus_note noteE, note4
+
+ mus_octave oct2
+ mus_note noteD, note8
+ mus_note noteE, note8
+ mus_note noteF#, note8
+ mus_note noteG#, note8
+ mus_note noteA, note8
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteC#, note8
+ mus_note noteD, note8
+ mus_note noteD, note8
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteD, note8
+ mus_note noteE, note8
+ mus_note noteF#, note8
+ mus_note noteA, note8
+ mus_note noteG#, note8
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteF#, note8
+ mus_note noteG#, note8
+ mus_note noteA, note8
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteD#, note8
+ mus_note noteE, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+ mus_note noteG#, note8
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteF#, note8
+ mus_note noteG#, note8
+ mus_note noteB, note8
+ db $D8
+ mus_note noteB, note4_8
+ mus_note noteA, note4
+ mus_note noteG#, note4
+ mus_note noteF#, note4
+
+ mus_octave oct3
+ mus_note noteE, note4
+ mus_note noteD#, note4
+ mus_note noteC#, note4
+ mus_note noteC#, note4
+
+ mus_octave oct2
+ mus_note noteB, note4
+ mus_note noteA, note4
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteC#, note4
+ mus_note noteD#, note4
+
+ mus_octave oct2
+ mus_note noteE, note8_16
+ mus_note noteF#, note8_16
+ mus_note noteG#, note8_16
+ mus_note noteA, note8_16
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteC#, note4
+ mus_note noteD#, note4
+ mus_note noteE, note8_16
+
+ mus_octave oct2
+ mus_note noteB, note8_16
+ mus_note noteG#, note8_16
+ mus_note noteF#, note8_16
+ mus_note noteE, note8_16
+ mus_note noteF#, note8_16
+ mus_note noteG#, note8_16
+ mus_note noteA, note8_16
+ mus_jump 0, branch_A28A
+ ; A303
+ ;No end byte until indigo plateu channel 1
+
+Routes4_md_2: ;a304 - a3c3
+ ; a304
+ mus_mod 12, 2, 4
+ mus_duty duty25
+ mus_vel 9, 2
+
+ mus_octave oct2
+ mus_note noteE, note8_16
+ mus_note noteF#, note16
+ mus_vel 9, 0
+ mus_note noteE, note2_4
+ mus_vel 9, 2
+
+ mus_octave oct1
+ mus_note noteB, note8_16
+
+ mus_octave oct2
+ mus_note noteC, note16
+ mus_vel 9, 0
+
+ mus_octave oct1
+ mus_note noteB, note2
+ mus_duty duty75
+ mus_vel 12, 7
+
+ mus_octave oct2
+ mus_note noteE, note16
+ mus_note noteF#, note16
+ mus_note noteB, note16
+
+ mus_octave oct3
+ mus_note noteD#, note16
+
+branch_A325:
+ mus_vel 12, 7
+ mus_note noteE, note4_8
+
+ mus_octave oct2
+ mus_note noteB, note8
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteB, note4
+ mus_note noteA, note4
+ mus_note noteG#, note4
+ mus_note noteF#, note4
+ mus_note noteF#, note16
+ mus_note noteA, note16
+ mus_note noteG#, note16
+ mus_note noteF#, note16
+ mus_vel 12, 2
+ mus_note noteG#, note8_16
+ mus_note noteE, note16
+ mus_vel 10, 0
+
+ mus_octave oct2
+ mus_note noteB, note2_4
+ mus_duty duty12_5
+ mus_vel 12, 2
+
+ mus_octave oct1
+ mus_note noteB, note8_16
+ mus_vel 12, 7
+
+ mus_octave oct2
+ mus_note noteC, note16
+
+ mus_octave oct1
+ mus_note noteB, note2
+
+ mus_octave oct2
+ mus_note noteD#, note4
+ mus_duty duty75
+
+ mus_octave oct3
+ mus_note noteE, note4_8
+
+ mus_octave oct2
+ mus_note noteB, note8
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteB, note4
+ mus_note noteA, note4
+ mus_note noteG#, note4
+ mus_note noteF#, note4
+ mus_note noteA, note16
+
+ mus_octave oct4
+ mus_note noteC#, note16
+
+ mus_octave oct3
+ mus_note noteB, note16
+ mus_note noteA, note16
+ mus_vel 12, 2
+ mus_note noteB, note8_16
+ mus_vel 12, 7
+ mus_note noteA, note16
+ mus_vel 11, 0
+ mus_note noteG#, note4_8
+ mus_vel 9, 0
+ mus_note noteG#, note4_8
+ mus_vel 7, 0
+ mus_note noteG#, note4_8
+ mus_vel 6, 15
+ mus_note noteG#, note4_8
+ mus_vel 12, 7
+ mus_note noteG#, note4
+ db $D8
+ mus_note noteRst, note4
+ mus_note noteA, note4
+ mus_note noteG#, note4
+ mus_note noteF#, note4
+ db $D8
+ mus_note noteA, note16
+ mus_note noteF#, note4_8
+ db $D8
+ mus_note noteG, note1
+ mus_note noteF#, note4_8
+ mus_duty duty12_5
+ db $D8
+ mus_note noteA, note16
+
+ mus_octave oct2
+ mus_note noteF#, note4
+ mus_note noteE, note4
+ mus_note noteF#, note4
+ mus_note noteA, note4_8
+ mus_duty duty75
+ db $D8
+ mus_note noteRst, note2
+
+ mus_octave oct3
+ mus_note noteF#, note4_8
+ mus_note noteG#, note4
+ mus_note noteF#, note4
+ db $D8
+ mus_note noteRst, note4_16
+ mus_note noteE, note4
+ db $D8
+ mus_note noteA#, note16
+ mus_note noteE, note2_4
+ mus_duty duty12_5
+ db $D8
+ mus_note noteA, note16
+
+ mus_octave oct2
+ mus_note noteE, note4
+ mus_note noteD#, note4
+ mus_note noteE, note4
+ mus_note noteG#, note4_8
+ mus_duty duty75
+ db $D8
+ mus_note noteRst, note2
+
+ mus_octave oct3
+ mus_note noteE, note4_8
+ mus_note noteF#, note4
+ mus_note noteD#, note4
+
+ mus_octave oct2
+ mus_note noteB, note4
+ db $D8
+ mus_note noteA#, note16
+
+ mus_octave oct3
+ mus_note noteB, note1
+ db $D8
+ mus_note noteA#, note2
+ mus_note noteB, note2
+ db $D8
+ mus_note noteB, note16
+ mus_note noteA, note4_8
+ db $D8
+ mus_note noteB, note2
+ mus_note noteA, note4_8
+ mus_vel 10, 7
+ mus_note noteG#, note16
+ mus_note noteF#, note16
+ mus_vel 11, 0
+ mus_note noteE, note2_4
+ mus_vel 10, 0
+ mus_note noteE, note2
+ mus_vel 10, 7
+ mus_note noteE, note2_8
+ mus_jump 0, branch_A325
+ ; A3C3
+ ;No end byte until indigo plateu channel 1
+
+Routes4_md_3: ;a3c4 - a49c
+; A3C4
+ mus_vel 1, 0
+
+ mus_octave oct3
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteD#, note16
+ mus_note noteRst, note8_16
+
+branch_A3D7:
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8_16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8_16
+ mus_note noteA, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note8_16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note8_16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note8_16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note8_16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8_16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8_16
+ mus_note noteA, note16
+ mus_note noteRst, note16
+ mus_note noteB, note16
+ mus_note noteRst, note8_16
+ mus_note noteB, note16
+ mus_note noteB, note16
+ mus_note noteB, note16
+ mus_note noteB, note16
+ mus_note noteB, note16
+ mus_note noteRst, note16
+ mus_note noteB, note16
+ mus_note noteRst, note8_16
+ mus_note noteB, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteA, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8_16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8_16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteD, note16
+ mus_note noteRst, note8_16
+ mus_note noteD, note16
+ mus_note noteD, note16
+ mus_note noteD, note16
+ mus_note noteD, note16
+ mus_note noteD, note16
+ mus_note noteRst, note16
+ mus_note noteD, note16
+ mus_note noteRst, note8_16
+ mus_note noteD, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note8_16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note8_16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8_16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8_16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteB, note16
+ mus_note noteRst, note8_16
+ mus_note noteB, note16
+ mus_note noteB, note16
+ mus_note noteB, note16
+ mus_note noteB, note16
+ mus_note noteB, note16
+ mus_note noteRst, note16
+ mus_note noteB, note16
+ mus_note noteRst, note8_16
+ mus_note noteB, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note8_16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note8_16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note8_16
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_jump 0, branch_A3D7
+ ; A49C
+ ;No end byte until indigo plateu channel 1
+
+Routes4_md_4: ;a49d - a5ef
+ ; A49D
+ mus_vel 12, 15
+ mus_note noteRst, note2_4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+
+branch_A4A8:
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_note noteB, note8
+ mus_note noteC#, note8
+ mus_jump 0, $64A8
+ ; A5EF
+ ;No end byte until indigo plateu channel 1
+
+;Indigo Plateau
+IndigoPlateau_md_1: ;a5f0 - a663
+ mus_tempo 0, 132
+ mus_volume 119
+ mus_duty duty75
+ mus_mod 6, 3, 4
+ db $E8
+ mus_vel 11, 2
+
+ mus_octave oct1
+ mus_note noteA, note2
+ mus_note noteA, note2
+ mus_note noteA, note2
+ mus_note noteA, note4
+ mus_vel 10, 4
+ mus_note noteA#, note4
+
+branch_a605:
+ mus_call branch_a659
+ mus_vel 11, 4
+
+ mus_octave oct2
+ mus_note noteD, note4
+ mus_call branch_a659
+ mus_vel 11, 4
+
+ mus_octave oct2
+ mus_note noteD#, note4
+ mus_call branch_a659
+ mus_vel 11, 4
+
+ mus_octave oct2
+ mus_note noteD, note4
+ mus_call branch_a659
+ mus_vel 10, 0
+
+ mus_octave oct1
+ mus_note noteA#, note4
+ mus_call branch_a659
+ mus_vel 11, 4
+
+ mus_octave oct2
+ mus_note noteD, note4
+ mus_vel 13, 4
+
+ mus_octave oct2
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_vel 11, 4
+
+ mus_octave oct2
+ mus_note noteD#, note4
+ mus_vel 13, 4
+
+ mus_octave oct2
+ mus_note noteA#, note4
+ mus_note noteA#, note4
+ mus_note noteA#, note4
+ mus_note noteA#, note4
+ mus_note noteA#, note4
+ mus_note noteA#, note4
+ mus_note noteA#, note4
+ mus_vel 11, 4
+
+ mus_octave oct2
+ mus_note noteF, note8
+ mus_vel 11, 4
+
+ mus_octave oct2
+ mus_note noteG, note8
+ mus_vel 11, 0
+ mus_note noteA, note2
+
+ mus_octave oct1
+ mus_note noteA, note2
+ mus_vel 11, 7
+
+ mus_octave oct2
+ mus_note noteF, note2
+ mus_vel 4, 14
+
+ mus_octave oct1
+ mus_note noteA#, note2
+ mus_jump 0, branch_a605
+
+branch_a659:
+ mus_vel 11, 2
+
+ mus_octave oct1
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_note noteA, note4
+ mus_end
+ ; A663
+
+IndigoPlateau_md_2: ;a664 - a6b9
+; A664
+ mus_duty duty75
+ mus_mod 8, 2, 5
+ mus_vel 12, 2
+
+ mus_octave oct2
+ mus_note noteD, note2
+ mus_note noteD, note2
+ mus_note noteD, note2
+ mus_note noteD, note4
+ mus_vel 5, 10
+ mus_note noteD#, note4
+
+branch_a673:
+ mus_call branch_a6af
+ mus_vel 12, 5
+ mus_note noteA, note4
+ mus_call branch_a6af
+ mus_vel 12, 5
+ mus_note noteA#, note4
+ mus_call branch_a6af
+ mus_vel 12, 5
+ mus_note noteA, note4
+ mus_call branch_a6af
+ mus_vel 12, 7
+ mus_note noteC#, note4
+ mus_call branch_a6af
+ mus_vel 12, 5
+ mus_note noteA, note4
+ mus_call branch_a6af
+ mus_vel 12, 5
+ mus_note noteA#, note4
+ mus_call branch_a6af
+ mus_vel 12, 5
+
+ mus_octave oct3
+ mus_note noteC, note8
+ mus_vel 12, 7
+
+ mus_octave oct3
+ mus_note noteC#, note8
+ mus_note noteD, note2
+
+ mus_octave oct2
+ mus_note noteD, note2
+
+ mus_octave oct3
+ mus_note noteC, note2
+ mus_vel 4, 13
+
+ mus_octave oct3
+ mus_note noteD#, note2
+ mus_jump 0, branch_a673
+
+branch_a6af:
+ mus_vel 12, 2
+
+ mus_octave oct2
+ mus_note noteD, note4
+ mus_note noteD, note4
+ mus_note noteD, note4
+ mus_note noteD, note4
+ mus_note noteD, note4
+ mus_note noteD, note4
+ mus_note noteD, note4
+ mus_end
+ ; A6B9
+
+IndigoPlateau_md_3: ;a6ba - a70e
+ ; A6BA
+ mus_vel 1, 0
+
+ mus_octave oct3
+ mus_note noteD, note8
+ mus_note noteRst, note4_8
+ mus_note noteD, note8
+ mus_note noteRst, note4_8
+ mus_note noteD, note8
+ mus_note noteRst, note4_8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD#, note4
+
+branch_a6c6:
+ mus_call branch_a6fe
+ mus_call branch_a6fe
+ mus_call branch_a6fe
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteF#, note4
+ mus_call branch_a6fe
+ mus_call branch_a6fe
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteA#, note16
+ mus_note noteRst, note16
+ mus_note noteA#, note16
+ mus_note noteRst, note16
+ mus_note noteA, note2
+ mus_note noteD, note2
+ mus_note noteA#, note2
+ mus_note noteD#, note2
+ mus_jump 0, branch_a6c6
+
+
+branch_a6fe:
+ mus_octave oct3
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteD, note8
+ mus_note noteRst, note8
+ mus_note noteA, note4
+ mus_end
+ ; A70E
+
+IndigoPlateau_md_4: ;a70f - a7c4
+ ; A70F
+
+;piece 1
+ db $D6
+ mus_note noteB, note1
+ mus_note noteC#, note8
+ mus_note noteB, note1
+ mus_note noteC#, note8
+ mus_note noteB, note1
+ mus_note noteC#, note8
+ mus_note noteB, note2
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+
+branch_a728:
+ mus_call branch_a791
+ mus_call branch_a77e
+ mus_call branch_a791
+ mus_call branch_a7a8
+ mus_call branch_a791
+ mus_call branch_a77e
+ mus_call branch_a791
+ mus_call branch_a7a8
+ mus_call branch_a791
+ mus_call branch_a77e
+ mus_call branch_a791
+ mus_call branch_a7a8
+ mus_call branch_a77e
+ mus_call branch_a7a8
+ mus_note noteB, note1
+ mus_note noteC#, note8
+ mus_note noteB, note2
+ mus_note noteC#, note8
+ mus_note noteB, note2
+ mus_note noteC#, note8_16
+ mus_note noteB, note1
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note8
+ mus_jump 0, branch_a728
+
+branch_a77e:
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note4
+ mus_note noteB, note4
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note4
+ mus_note noteB, note8
+ mus_note noteC#, note4
+ mus_note noteB, note8
+ mus_note noteC#, note8_16
+ mus_end
+ ; A790
+
+;piece 2
+branch_a791:
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note4
+ mus_note noteB, note4
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_end
+ ; A7A7
+
+;piece 3
+branch_a7a8:
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8_16
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note4
+ mus_note noteC#, note8
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note4
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_note noteB, note16
+ mus_note noteC#, note8_16
+ mus_end
+ ; A7C4
+
+;Pallet Town
+PalletTown_md_1: ; a7c5 - a85e (154 bytes)
+ ; A7C5
+ mus_tempo 0, 160
+ mus_volume 119
+ mus_duty duty50
+ mus_vel 12, 3
+
+branch_a7ce:
+ mus_octave oct2
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteC, note8
+ mus_note noteD, note4
+ mus_note noteG, note8
+ mus_note noteD, note8
+ mus_note noteC, note8
+
+ mus_octave oct2
+ mus_note noteB, note4
+ mus_note noteG, note8
+
+ mus_octave oct3
+ mus_note noteD, note4
+ mus_note noteD, note8
+ mus_note noteC, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+ mus_note noteRst, note8
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteC, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteC, note2
+ mus_note noteRst, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteC, note8
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_note noteB, note8
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteB, note4
+
+ mus_octave oct3
+ mus_note noteC, note8
+ mus_note noteD, note4
+ mus_note noteG, note8
+ mus_note noteD, note8
+ mus_note noteC, note8
+
+ mus_octave oct2
+ mus_note noteB, note4
+ mus_note noteG, note8
+
+ mus_octave oct3
+ mus_note noteD, note4
+ mus_note noteD, note8
+ mus_note noteG, note8
+ mus_note noteF#, note8
+ mus_note noteE, note4
+ mus_note noteD, note8
+ mus_note noteC, note4
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_note noteB, note8
+
+ mus_octave oct3
+ mus_note noteC, note8
+ mus_note noteD, note8
+ mus_note noteC, note8
+
+ mus_octave oct2
+ mus_note noteB, note8
+ mus_note noteA, note8
+ mus_note noteG, note4
+ mus_note noteF#, note4
+
+ mus_octave oct3
+ mus_note noteC, note8
+
+ mus_octave oct2
+ mus_note noteG, note8
+ mus_note noteE, note8
+ mus_note noteG, note8
+
+ mus_octave oct3
+ mus_note noteD, note8
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteA, note8
+ mus_vel 11, 3
+ mus_note noteB, note8
+ mus_note noteG, note8
+ mus_note noteD, note8
+ mus_note noteG, note8
+ mus_note noteB, note8
+ mus_note noteG, note8
+ mus_note noteD, note8
+ mus_note noteG, note8
+
+ mus_octave oct3
+ mus_note noteC, note8
+
+ mus_octave oct2
+ mus_note noteG, note8
+ mus_note noteE, note8
+ mus_note noteG, note8
+
+ mus_octave oct3
+ mus_note noteD, note8
+
+ mus_octave oct2
+ mus_note noteA, note8
+ mus_note noteF#, note8
+ mus_note noteA, note8
+ mus_note noteB, note8
+ mus_note noteG, note8
+ mus_note noteD, note8
+ mus_note noteG, note8
+ mus_note noteB, note8
+ mus_note noteG, note8
+ mus_note noteD, note8
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_note noteE, note8
+ mus_note noteC, note8
+ mus_note noteE, note8
+ mus_note noteA, note8
+ mus_note noteE, note8
+ mus_note noteC, note8
+ mus_note noteE, note8
+ mus_note noteA, note8
+ mus_note noteE, note8
+ mus_note noteC, note8
+ mus_note noteE, note8
+ mus_note noteA, note8
+ mus_note noteE, note8
+ mus_note noteC, note8
+ mus_note noteE, note8
+ mus_note noteF#, note8
+ mus_note noteD, note8
+ mus_note noteC, note8
+ mus_note noteD, note8
+ mus_note noteG, note8
+ mus_note noteE, note8
+ mus_note noteC, note8
+ mus_note noteE, note8
+ mus_note noteG, note8
+ mus_note noteE, note8
+ mus_note noteC, note8
+ mus_note noteE, note8
+ mus_note noteF#, note8
+ mus_note noteD, note8
+ mus_note noteC, note8
+ mus_note noteD, note8
+ mus_jump 0, branch_a7ce
+ mus_end
+ ; A85E
+
+PalletTown_md_2: ; a85f - a8dd (127 bytes)
+ ; A85F
+ mus_duty duty50
+
+branch_a861:
+ mus_vel 13, 3
+
+ mus_octave oct4
+ mus_note noteD, note8
+ mus_vel 10, 3
+ mus_note noteC, note8
+ mus_vel 13, 3
+
+ mus_octave oct3
+ mus_note noteB, note8
+ mus_vel 11, 3
+ mus_note noteA, note8
+ mus_vel 13, 3
+
+ mus_octave oct4
+ mus_note noteG, note8
+ mus_vel 11, 3
+ mus_note noteE, note8
+ mus_vel 13, 3
+ mus_note noteF#, note8
+ mus_note noteE, note8
+ mus_note noteD, note4_8
+
+ mus_octave oct3
+ mus_note noteB, note8
+ mus_note noteG, note8
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_note noteB, note8
+
+ mus_octave oct4
+ mus_note noteC, note2_8
+
+ mus_octave oct3
+ mus_note noteF#, note8
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_note noteB, note4_8
+
+ mus_octave oct4
+ mus_note noteC, note16
+
+ mus_octave oct3
+ mus_note noteB, note16
+ mus_note noteA, note2
+
+ mus_octave oct4
+ mus_note noteD, note8
+ mus_vel 10, 3
+ mus_note noteC, note8
+ mus_vel 13, 3
+
+ mus_octave oct3
+ mus_note noteB, note8
+ mus_vel 11, 3
+
+ mus_octave oct4
+ mus_note noteD, note8
+ mus_vel 13, 3
+ mus_note noteG, note8
+ mus_vel 10, 3
+ mus_note noteF#, note8
+ mus_vel 11, 3
+ mus_note noteF#, note8
+ mus_vel 13, 3
+ mus_note noteG, note8
+ mus_note noteE, note4_8
+ mus_note noteD, note8
+ mus_note noteD, note2
+ mus_note noteC, note8
+
+ mus_octave oct3
+ mus_note noteB, note8
+ mus_note noteA, note8
+ mus_note noteG, note8
+
+ mus_octave oct4
+ mus_note noteD, note8
+ mus_note noteC, note8
+
+ mus_octave oct3
+ mus_note noteB, note8
+ mus_note noteA, note8
+ mus_note noteG, note2_8
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_note noteB, note8
+
+ mus_octave oct4
+ mus_note noteC, note2
+ mus_note noteD, note4_8
+ mus_note noteC, note8
+
+ mus_octave oct3
+ mus_note noteB, note2
+ mus_note noteRst, note8
+ mus_note noteG, note8
+ mus_note noteA, note8
+ mus_note noteB, note8
+
+ mus_octave oct4
+ mus_note noteC, note4
+ mus_note noteC, note4
+ mus_note noteD, note4_8
+ mus_note noteC, note16
+ mus_note noteD, note16
+
+ mus_octave oct3
+ mus_note noteB, note2
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteA, note8
+ mus_note noteG, note8
+ mus_note noteA, note2
+ mus_note noteE, note4
+ mus_note noteB, note4
+ mus_note noteA, note2
+ mus_note noteG, note4
+ mus_note noteE, note4
+ mus_note noteF#, note2
+ mus_note noteG, note4
+ mus_note noteB, note4
+ mus_note noteB, note2
+ mus_note noteA, note2
+ mus_jump 0, branch_a861
+ mus_end
+ ; A8DD
+
+PalletTown_md_3: ; a8de - aa75 (408 bytes)
+;INCBIN "baserom.gbc",$a8de,$aa76 - $a8de
+
+ ; A8DE
+ mus_mod 24, 2, 8
+ mus_vel 1, 2
+
+branch_a8e3:
+ mus_octave oct3
+ mus_note noteG, note4_8
+ mus_note noteE, note4_8
+ mus_note noteF#, note4
+ mus_note noteG, note4_8
+ mus_note noteA, note4_8
+ mus_note noteG, note4
+ mus_note noteE, note4_8
+ mus_note noteF#, note4_8
+ mus_note noteE, note4
+ mus_note noteG, note4_8
+ mus_note noteE, note4_8
+ mus_note noteD, note4
+ mus_note noteG, note4_8
+ mus_note noteE, note4_8
+ mus_note noteF#, note4
+ mus_note noteG, note4_8
+ mus_note noteA, note4_8
+ mus_note noteG, note4
+ mus_note noteE, note4_8
+ mus_note noteF#, note4_8
+ mus_note noteA, note4
+ mus_note noteG, note4_8
+ mus_note noteE, note4_8
+ mus_note noteD, note4
+ mus_note noteC, note2
+ mus_note noteD, note2
+ mus_note noteG, note2
+ mus_note noteE, note4
+ mus_note noteD, note4
+ mus_note noteC, note2
+ mus_note noteD, note2
+ mus_note noteG, note2
+ mus_note noteA, note4
+ mus_note noteG, note4
+ mus_note noteE, note2
+ mus_note noteA, note2
+ mus_note noteE, note2
+ mus_note noteG, note2
+ mus_note noteF#, note2
+ mus_note noteE, note2
+ mus_note noteE, note2
+ mus_note noteF#, note2
+ mus_jump 0, branch_a8e3
+ mus_end
+ ; A912
+
+ mus_tempo 0, 144
+ mus_volume 119
+ mus_mod 5, 1, 6
+
+branch_a91b:
+ mus_vel 1, 0
+
+ mus_octave oct5
+ mus_note noteE, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+ mus_note noteRst, note16
+
+ mus_octave oct5
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+
+ mus_octave oct5
+ mus_note noteE, note16
+ mus_note noteRst, note4
+ mus_note noteE, note8
+ mus_note noteRst, note8
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+ mus_note noteRst, note16
+
+ mus_octave oct5
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+
+ mus_octave oct5
+ mus_note noteD#, note16
+ mus_note noteRst, note2
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteC#, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+ mus_note noteRst, note8
+
+ mus_octave oct5
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteC#, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+ mus_note noteRst, note8
+
+ mus_octave oct5
+ mus_note noteD#, note4
+ mus_note noteC#, note4
+ mus_note noteD#, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteB, note8
+ mus_note noteRst, note16
+
+ mus_octave oct5
+ mus_note noteE, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+ mus_note noteRst, note16
+
+ mus_octave oct5
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+
+ mus_octave oct5
+ mus_note noteE, note16
+ mus_note noteRst, note2
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+ mus_note noteRst, note16
+
+ mus_octave oct5
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+
+ mus_octave oct5
+ mus_note noteD#, note16
+ mus_note noteRst, note4
+
+ mus_octave oct4
+ mus_note noteB, note8
+ mus_note noteRst, note8
+
+ mus_octave oct5
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteC#, note16
+
+ mus_octave oct4
+ mus_note noteB, note16
+ mus_note noteRst, note8
+
+ mus_octave oct5
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8
+ mus_note noteF#, note4
+ mus_note noteE, note4
+ mus_note noteF#, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note8
+ mus_note noteRst, note8_16
+
+ mus_octave oct4
+ mus_note noteA, note8
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteRst, note8
+
+ mus_octave oct5
+ mus_note noteC#, note8
+ mus_note noteRst, note8
+ mus_note noteE, note8
+ mus_note noteF#, note2
+ mus_note noteRst, note8
+ mus_note noteE, note8
+ mus_note noteD#, note8
+ mus_note noteC#, note8
+ mus_note noteRst, note8
+
+ mus_octave oct4
+ mus_note noteG#, note8
+ mus_note noteRst, note8
+ mus_note noteA, note8
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteRst, note8
+
+ mus_octave oct5
+ mus_note noteD#, note8
+ mus_note noteE, note2
+ mus_note noteRst, note8
+ mus_note noteD#, note8
+ mus_note noteC#, note8
+ mus_note noteD#, note8
+
+ mus_octave oct4
+ mus_note noteA, note8
+ mus_note noteG#, note8
+ mus_note noteA, note8
+ mus_note noteA#, note16
+ mus_note noteB, note16
+ mus_note noteRst, note4
+ mus_note noteF#, note8
+ mus_note noteRst, note8
+ mus_note noteB, note8
+ mus_note noteA#, note8
+ mus_note noteB, note8
+
+ mus_octave oct5
+ mus_note noteC, note16
+ mus_note noteC#, note16
+ mus_note noteRst, note2
+
+ mus_octave oct4
+ mus_note noteF#, note8
+ mus_note noteF, note8
+ mus_note noteF#, note8
+ mus_note noteG#, note8
+ mus_note noteA, note8
+
+ mus_octave oct5
+ mus_note noteE, note8
+ mus_note noteD#, note8
+ mus_note noteC#, note8
+
+ mus_octave oct4
+ mus_note noteB, note8
+ mus_note noteRst, note4_8
+ mus_note noteB, note8
+ mus_note noteRst, note4_8
+ mus_jump 0, branch_a91b
+ mus_end
+ ; A9CE
+
+ ; A9CF
+ mus_tempo 0, 144
+ mus_volume 119
+ db $E8
+ mus_mod 6, 1, 5
+
+branch_a9d8:
+ mus_vel 1, 0
+
+ mus_octave oct5
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteA, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note2
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note4
+
+ mus_octave oct4
+ mus_note noteB, note8
+ mus_note noteRst, note8
+
+ mus_octave oct5
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8
+ mus_note noteF#, note4
+ mus_note noteE, note4
+ mus_note noteF#, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note8
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteA, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note4
+ mus_note noteE, note8
+ mus_note noteRst, note8
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteRst, note16
+ mus_note noteG#, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note2
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8
+ mus_note noteC#, note16
+ mus_note noteRst, note16
+ mus_note noteD#, note16
+ mus_note noteRst, note16
+ mus_note noteE, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note8
+ mus_note noteF#, note4
+ mus_note noteE, note4
+ mus_note noteF#, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note16
+ mus_note noteB, note16
+ mus_note noteRst, note16
+ mus_note noteF#, note8
+ mus_note noteRst, note16
+ mus_note noteC#, note8
+ mus_note noteRst, note8
+ mus_note noteD#, note8
+ mus_note noteRst, note8
+ mus_note noteE, note8
+ mus_note noteRst, note8
+ mus_note noteG#, note8
+ mus_note noteRst, note8
+ mus_note noteD#, note2
+ mus_note noteRst, note8
+ mus_note noteE, note8
+ mus_note noteD#, note8
+ mus_note noteC#, note8
+
+ mus_octave oct4
+ mus_note noteB, note8
+ mus_note noteRst, note8
+
+ mus_octave oct5
+ mus_note noteC#, note8
+ mus_note noteRst, note8
+ mus_note noteD#, note8
+ mus_note noteRst, note8
+ mus_note noteF#, note8
+ mus_note noteRst, note8
+ mus_note noteC#, note2
+ mus_note noteRst, note8
+ mus_note noteD#, note8
+ mus_note noteC#, note8
+
+ mus_octave oct4
+ mus_note noteB, note8
+ mus_note noteA, note8
+ mus_note noteG#, note8
+ mus_note noteA, note8
+ mus_note noteG#, note16
+ mus_note noteF#, note16
+ mus_note noteRst, note2
+ mus_note noteB, note8
+ mus_note noteA#, note8
+ mus_note noteB, note8
+ mus_note noteA, note16
+ mus_note noteG#, note16
+ mus_note noteRst, note4
+ mus_note noteG#, note8
+ mus_note noteRst, note8
+ mus_note noteF#, note8
+ mus_note noteF, note8
+ mus_note noteF#, note8
+ mus_note noteG#, note8
+ mus_note noteA, note8
+ mus_note noteE, note8
+ mus_note noteC#, note8
+ mus_note noteE, note8
+ mus_note noteF#, note8
+ mus_note noteRst, note4_8
+ mus_note noteD#, note8
+ mus_note noteRst, note4_8
+ mus_jump 0, branch_a9d8
+ mus_end
+ ; AA6E
+
+ ; AA6F
+ mus_tempo 0, 232
+ mus_jump 0, $6A79 ;;Leads into city music not dugout yet
+ ; AA75
+
+;Viridian City, Pewter City, Saffron City
+Cities1_md_1: ;AA76 - AB91
+INCBIN "baserom.gbc",$aa76,$ab92 - $aa76
+
+Cities1_md_2: ;AB92 - AC02
+INCBIN "baserom.gbc",$ab92,$ac32 - $ab92
+
+Cities1_md_3: ;AC32 - AC7F
+INCBIN "baserom.gbc",$ac32,$acef - $ac32
+
+Cities1_md_4: ;ACEF - ADAD
+INCBIN "baserom.gbc",$acef,$adae - $acef
+
+;Guy walks you to museum
+MuseumGuy_md_1: ;ADAE - ADF0
+INCBIN "baserom.gbc",$adae,$adf1 - $adae
+
+MuseumGuy_md_2: ;ADF1 - AE6D
+INCBIN "baserom.gbc",$adf1,$ae6e - $adf1
+
+MuseumGuy_md_3: ;AE6E - AED0
+INCBIN "baserom.gbc",$ae6e,$aed1 - $ae6e
+
+MuseumGuy_md_4: ;AED1 - AF58
+INCBIN "baserom.gbc",$aed1,$af59 - $aed1
+
+;Meet Prof. Oak
+MeetProfOak_md_1: ;AF59 - AFA8
+INCBIN "baserom.gbc",$af59,$afa9 - $af59
+
+MeetProfOak_md_2: ;AFA9 - B03D
+INCBIN "baserom.gbc",$afa9,$b03d - $afa9
+
+MeetProfOak_md_3: ;B03D - B11F
+INCBIN "baserom.gbc",$b03d,$b120 - $b03d
+
+;Meet Rival
+MeetRival_md_1: ;B120 - B1BA
+INCBIN "baserom.gbc",$b120,$b1bb - $b120
+
+MeetRival_md_2: ;B1BB - B232
+INCBIN "baserom.gbc",$b1bb,$b233 - $b1bb
+
+MeetRival_md_3: ;B233 - B3A6
+INCBIN "baserom.gbc",$b233,$b3a7 - $b233
+
+;SS Anne
+SSAnne_md_1: ;B3A7 - B418
+INCBIN "baserom.gbc",$b3a7,$b419 - $b3a7
+
+SSAnne_md_2: ;B419 - B4CA
+INCBIN "baserom.gbc",$b419,$b4cb - $b419
+
+SSAnne_md_3: ;B4CB - B503
+INCBIN "baserom.gbc",$b4cb,$b504 - $b4cb
+
+;Cerulean City, Fuchsia City
+Cities2_md_1: ;B504 - B568
+INCBIN "baserom.gbc",$b504,$b569 - $b504
+
+Cities2_md_2: ;B569 - B63F
+INCBIN "baserom.gbc",$b569,$b640 - $b569
+
+Cities2_md_3: ;B640 - B6C6
+INCBIN "baserom.gbc",$b640,$b6c7 - $b640
+
+;Celadon City
+Celadon_md_1: ;B6C7 - B739
+INCBIN "baserom.gbc",$b6c7,$b73a - $b6c7
+
+Celadon_md_2: ;B73A - B7B4
+INCBIN "baserom.gbc",$b73a,$b7b5 - $b73a
+
+Celadon_md_3: ;B7B5 - B86C
+INCBIN "baserom.gbc",$b7b5,$b86d - $b7b5
+
+;Cinnabar Island
+Cinnabar_md_1: ;B86D - B8D3
+INCBIN "baserom.gbc",$b86d,$b8d4 - $b86d
+
+Cinnabar_md_2: ;B8D4 - B93C
+INCBIN "baserom.gbc",$b8d4,$b93d - $b8d4
+
+Cinnabar_md_3: ;B93D - B9EA
+INCBIN "baserom.gbc",$b93d,$b9eb - $b93d
+
+;Vermilion City
+Vermilion_md_1: ;B9EB - BA60
+INCBIN "baserom.gbc",$b9eb,$ba61 - $b9eb
+
+Vermilion_md_2: ;BA61 - BAA5
+INCBIN "baserom.gbc",$ba61,$baa6 - $ba61
+
+Vermilion_md_3: ;BAA6 - BB0C
+INCBIN "baserom.gbc",$baa6,$bb0d - $baa6
+
+Vermilion_md_4: ;BB0D - BB57
+INCBIN "baserom.gbc",$bb0d,$bb58 - $bb0d
+
+;Lavender Town
+Lavender_md_1: ;BB58 - BB9D
+INCBIN "baserom.gbc",$bb58,$bb9e - $bb58
+
+Lavender_md_2: ;BB9E - BBAD
+INCBIN "baserom.gbc",$bb9e,$bbae - $bb9e
+
+Lavender_md_3: ;BBAE - BC20
+INCBIN "baserom.gbc",$bbae,$bc21 - $bbae
+
+Lavender_md_4: ;BC21 - BC2D
+INCBIN "baserom.gbc",$bc21,$bc2e - $bc21
+
+;Safari Zone
+SafariZone_md_1: ;BC2E - BC69
+INCBIN "baserom.gbc",$bc2e,$bc6a - $bc2e
+
+SafariZone_md_2: ;BC6A - BC93
+INCBIN "baserom.gbc",$bc6a,$bc94 - $bc6a
+
+SafariZone_md_3: ;BC94 - BCBA
+INCBIN "baserom.gbc",$bc94,$bcbb - $bc94
+
+;Gyms
+Gym_md_1: ;bcbb - bd6a (175 bytes)
+INCBIN "baserom.gbc",$bcbb,$bd6b - $bcbb
+
+Gym_md_2: ;bd6b - bdf9 (142 bytes)
+INCBIN "baserom.gbc",$bd6b,$bdfa - $bd6b
+
+Gym_md_3: ;bdfa - be55 (91 bytes)
+INCBIN "baserom.gbc",$bdfa,$be56 - $bdfa
+
+;Pokemon Center
+Pokecenter_md_1: ;be56 - bef8 (162 bytes)
+INCBIN "baserom.gbc",$be56,$bef9 - $be56
+
+Pokecenter_md_2: ;0xbef9 - bf6f (118 bytes)
+INCBIN "baserom.gbc",$bef9,$bf70 - $bef9
+
+Pokecenter_md_3: ;0xbf70 - bfff (143 bytes)
+INCBIN "baserom.gbc",$bf70,$c000 - $bf70
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/AbstractData.cpp
@@ -1,0 +1,37 @@
+#include "AbstractData.h"
+using namespace std;
+
+AbstractData::AbstractData()
+{
+ error = false;
+}
+
+// This method must always return "" if true but can return
+// any other value for false
+string AbstractData::GenAsm()
+{
+ if(error) return ";#Error";
+ else return "";
+}
+
+bool AbstractData::IsValid(unsigned char* byte)
+{
+ return true;
+}
+
+bool AbstractData::Parse(unsigned char* byte)
+{
+ // If it's not valid, don't even bother parsing
+ if(!IsValid(byte)) return false;
+ return true;
+}
+
+unsigned int AbstractData::Arguments()
+{
+ return 0;
+}
+
+bool AbstractData::GetError()
+{
+ return error;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/AbstractData.h
@@ -1,0 +1,23 @@
+#ifndef ABSTRACTDATA_H
+#define ABSTRACTDATA_H
+
+#include <string>
+
+// All information types inherit from here
+class AbstractData
+{
+public:
+ AbstractData();
+
+ virtual std::string GenAsm(); // Generate Assembly Output
+ virtual bool IsValid(unsigned char* byte); // Check for byte validity
+ virtual bool Parse(unsigned char* byte); // Parse Given Data
+ virtual unsigned int Arguments(); // Number of arguments taken
+
+ virtual bool GetError(); // Get Error (No Write, Error is read only)
+
+protected:
+ bool error; // Whether there's an error in parsing or not
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Call.cpp
@@ -1,0 +1,71 @@
+#include <sstream>
+#include "Call.h"
+using namespace std;
+
+Call::Call()
+{
+ error = false;
+ address = 0;
+}
+
+Call::Call(unsigned char* byte)
+{
+ Parse(byte);
+}
+
+Call::Call(unsigned short value, bool)
+{
+ SetAddress(value);
+}
+
+unsigned short Call::GetAddress()
+{
+ return address;
+}
+
+void Call::SetAddress(unsigned short value)
+{
+ address = value;
+}
+
+string Call::GenAsm()
+{
+ string tmpRet = AbstractData::GenAsm();
+ if(tmpRet != "") return tmpRet;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_call" << " $" << hex << uppercase << address;
+ return tmpAsmOut.str();
+}
+
+bool Call::IsValid(unsigned char* byte)
+{
+ if(byte[0] == 0xFD)
+ {
+ error = false;
+ return true;
+ }
+ else
+ {
+ error = true;
+ return false;
+ }
+}
+
+bool Call::Parse(unsigned char* byte)
+{
+ if(!AbstractData::Parse(byte)) return false;
+
+ // Get Address
+ address = byte[2];
+ address <<= 8;
+ address |= byte[1];
+
+ return true;
+}
+
+unsigned int Call::Arguments()
+{
+ // 1 2-byte argument = 2 bytes
+ return 2;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Call.h
@@ -1,0 +1,34 @@
+#ifndef CALL_H
+#define CALL_H
+
+#include "AbstractData.h"
+
+// Represents 1 call
+class Call : public AbstractData
+{
+public:
+ // Constructors
+ Call(); // Default
+ Call(unsigned char* byte); // Parse Immidiately
+ Call(unsigned short value, bool); // Set value
+
+ // Direct Getter/Setter Functions
+ unsigned short GetAddress();
+ void SetAddress(unsigned short value);
+
+ // The standard re-implementations from AbstractData
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+
+private:
+ unsigned short address;
+};
+
+#endif
+
+// Rqandom Notes
+//ED Speed of song
+//EC Instrument
+//DC Volume
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Console.cpp
@@ -1,0 +1,54 @@
+#include "console.h"
+
+using namespace std;
+
+// Basic
+void Console::Get(char* value)
+{
+ cin >> value;
+}
+void Console::Get(string& value)
+{
+ cin >> value;
+}
+void Console::Print(const char* value)
+{
+ cout << value;
+}
+void Console::Error(const char* value)
+{
+ cerr << value;
+}
+
+// Upper-Basic
+void Console::PrintLn(const char* value)
+{
+ Print(value);
+ cout << endl;
+}
+void Console::ErrorLn(const char* value)
+{
+ Error(value);
+ cerr << endl;
+}
+
+// Higher
+void Console::Ask(const char* question, char* answer)
+{
+ Print(question);
+ Get(answer);
+}
+void Console::Ask(const char* question, string& answer)
+{
+ Print(question);
+ Get(answer);
+}
+
+// Better Error Handling
+int Console::atoi_ex(const char* input, bool supress)
+{
+ int convInp = atoi(input);
+ if((supress == false) && (convInp == 0))
+ PrintLn("Warning: the converted integer input is 0, this may not be what you intended");
+ return convInp;
+}
--- /dev/null
+++ b/music/pokeredmusicdisasm/Console.h
@@ -1,0 +1,29 @@
+#ifndef CONSOLE_H
+#define CONSOLE_H
+
+#include <iostream>
+#include <string>
+
+// Just a Console Utility Library
+class Console
+{
+public:
+ // Basic
+ static void Get(char* value);
+ static void Get(std::string& value);
+ static void Print(const char* value);
+ static void Error(const char* value);
+
+ // Upper-Basic
+ static void PrintLn(const char* value);
+ static void ErrorLn(const char* value);
+
+ // Higher
+ static void Ask(const char* question, char* answer);
+ static void Ask(const char* question, std::string& answer);
+
+ // Better Error Handling
+ static int atoi_ex(const char* input, bool supress = false);
+};
+
+#endif // CONSOLE_H
--- /dev/null
+++ b/music/pokeredmusicdisasm/Duty.cpp
@@ -1,0 +1,93 @@
+#include <sstream>
+#include "Duty.h"
+using namespace std;
+
+Duty::Duty()
+{
+ duty = 0;
+}
+
+Duty::Duty(unsigned char* byte) // Parse Immidiately
+{
+ Parse(byte);
+}
+
+Duty::Duty(unsigned char value, bool) // Set value
+{
+ SetDuty(value);
+}
+
+unsigned char Duty::GetDuty()
+{
+ return duty;
+}
+
+void Duty::SetDuty(unsigned char value)
+{
+ // Clamp duty to 3 since that's the highest possible
+ duty = value;
+ if(duty >= 3) duty = 3;
+}
+
+// Byte 0 - The Command Code
+// Byte 1 - The Value
+bool Duty::IsValid(unsigned char* byte)
+{
+ if((byte[0] == 0xEC) &&
+ (byte[1] >= 0x0) &&
+ (byte[1] <= 0x3))
+ {
+ error = false; // Unblock assembling
+ return true;
+ }
+ else
+ {
+ error = true; // Block assembling
+ return false;
+ }
+}
+
+string Duty::GenAsm()
+{
+ string ret = AbstractData::GenAsm();
+ if(ret != "") return ret;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_duty " << LookupDutyString();
+ return tmpAsmOut.str();
+}
+
+bool Duty::Parse(unsigned char* byte)
+{
+ if(!AbstractData::Parse(byte)) return false;
+
+ duty = byte[1];
+ return true;
+}
+
+string Duty::LookupDutyString()
+{
+ // In case some error happens and the values doesn't match the list below
+ stringstream defTmp;
+
+ switch(duty)
+ {
+ case duty12_5:
+ return "duty12_5";
+ case duty25:
+ return "duty25";
+ case duty50:
+ return "duty50";
+ case duty75:
+ return "duty75";
+ default:
+ defTmp << "$" << uppercase << hex << (short)duty;
+ return defTmp.str();
+ }
+}
+
+unsigned int Duty::Arguments()
+{
+ //1 1-byte argument = 1
+ return 1;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Duty.h
@@ -1,0 +1,40 @@
+#ifndef DUTY_H
+#define DUTY_H
+
+#include "AbstractData.h"
+
+//Represents 1 Duty data
+class Duty : public AbstractData
+{
+public:
+ // Constructors
+ Duty();
+ Duty(unsigned char* byte); // Parse Immidiately
+ Duty(unsigned char value, bool); // Set value
+
+ // Re-Implementations from Parent
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+
+ // Direct Getters and Setters
+ unsigned char GetDuty();
+ void SetDuty(unsigned char value);
+
+ // Custom Functions
+ std::string LookupDutyString();
+
+ const enum dutyList : unsigned char
+ {
+ duty12_5 = 0x0,
+ duty25 = 0x1,
+ duty50 = 0x2,
+ duty75 = 0x3
+ };
+
+private:
+ unsigned char duty;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/File.h
@@ -1,0 +1,26 @@
+#ifndef FILE_H
+#define FILE_H
+
+#include <string>
+#include <vector>
+#include <fstream>
+
+class File
+{
+public:
+ File();
+ File(std::string filename, unsigned int offset = 0, unsigned int length = 0);
+
+ string GetFileName();
+ void SetFilename(string value);
+
+private:
+ std::string filename;
+ std::vector<unsigned char> fileBuffer;
+ std::fstream fileHandle;
+
+ std::vector<unsigned char>::iterator start;
+ std::vector<unsigned char>::iterator cur;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Jump.cpp
@@ -1,0 +1,83 @@
+#include <sstream>
+#include "Jump.h"
+using namespace std;
+
+Jump::Jump()
+{
+ address = 0x0000;
+ loop = 0;
+}
+
+Jump::Jump(unsigned char* byte) // Parse Immidiately
+{
+ Parse(byte);
+}
+
+Jump::Jump(unsigned short value, unsigned char loop, bool) // Set value
+{
+ SetAddress(value);
+ SetLoop(loop);
+}
+
+unsigned short Jump::GetAddress()
+{
+ return address;
+}
+
+void Jump::SetAddress(unsigned short value)
+{
+ address = value;
+}
+
+unsigned char Jump::GetLoop()
+{
+ return loop;
+}
+
+void Jump::SetLoop(unsigned char value)
+{
+ loop = value;
+}
+
+string Jump::GenAsm()
+{
+ string tmpRet = AbstractData::GenAsm();
+ if(tmpRet != "") return tmpRet;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_jump" << " " << (short)loop << ", $" << hex << uppercase << address;
+ return tmpAsmOut.str();
+}
+
+bool Jump::IsValid(unsigned char* byte)
+{
+ if(byte[0] == 0xFE)
+ {
+ error = false;
+ return true;
+ }
+ else
+ {
+ error = true;
+ return false;
+ }
+}
+
+bool Jump::Parse(unsigned char* byte)
+{
+ if(!AbstractData::Parse(byte)) return false;
+
+ loop = byte[1];
+
+ address = byte[3];
+ address <<= 8;
+ address |= byte[2];
+
+ return true;
+}
+
+unsigned int Jump::Arguments()
+{
+ // 1 1-byte command, 1 1-byte loop, 1 2-byte pointer = 4 bytes
+ return 3;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Jump.h
@@ -1,0 +1,33 @@
+#ifndef JUMP_H
+#define JUMP_H
+
+#include "AbstractData.h"
+
+// Represents 1 Jump Class
+class Jump : public AbstractData
+{
+public:
+ // Constructors
+ Jump(); // Default
+ Jump(unsigned char* byte); // Parse Immidiately
+ Jump(unsigned short value, unsigned char loop, bool); // Set value
+
+ // Direct Getter/Setter Functions
+ unsigned short GetAddress();
+ void SetAddress(unsigned short value);
+
+ unsigned char GetLoop();
+ void SetLoop(unsigned char value);
+
+ // The standard re-implementations from AbstractData
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+
+private:
+ unsigned short address;
+ unsigned char loop;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Modulation.cpp
@@ -1,0 +1,96 @@
+#include <sstream>
+#include "Modulation.h"
+using namespace std;
+
+Modulation::Modulation()
+{
+ delay = 0;
+ depth = 0;
+ rate = 0;
+}
+
+Modulation::Modulation(unsigned char* byte) // Parse Immidiately
+{
+ Parse(byte);
+}
+
+Modulation::Modulation(unsigned char delay, unsigned char depth, unsigned char rate, bool) // Set value
+{
+ SetDelay(delay);
+ SetDepth(depth);
+ SetRate(rate);
+}
+
+// Direct Getter/Setter Functions
+unsigned char Modulation::GetDelay()
+{
+ return delay;
+}
+
+void Modulation::SetDelay(unsigned char value)
+{
+ delay = value;
+}
+
+unsigned char Modulation::GetDepth()
+{
+ return depth;
+}
+
+void Modulation::SetDepth(unsigned char value)
+{
+ depth = value;
+}
+
+unsigned char Modulation::GetRate()
+{
+ return rate;
+}
+
+void Modulation::SetRate(unsigned char value)
+{
+ rate = value;
+}
+
+bool Modulation::IsValid(unsigned char* byte)
+{
+ if(byte[0] == 0xEA)
+ {
+ error = false; // Unblock assembling
+ return true;
+ }
+ else
+ {
+ error = true; // Block assembling
+ return false;
+ }
+}
+
+string Modulation::GenAsm()
+{
+ string tmpRet = AbstractData::GenAsm();
+ if(tmpRet != "") return tmpRet;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_mod " << (short)delay << ", " << (short)depth << ", " << (short)rate;
+ return tmpAsmOut.str();
+}
+
+bool Modulation::Parse(unsigned char* byte)
+{
+ if(!AbstractData::Parse(byte)) return false;
+
+ delay = byte[1];
+
+ depth = byte[2] & 0xF0;
+ depth >>= 4;
+
+ rate = byte[2] & 0x0F;
+ return true;
+}
+
+unsigned int Modulation::Arguments()
+{
+ // 2 1-byte arguments = 2
+ return 2;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Modulation.h
@@ -1,0 +1,37 @@
+#ifndef MODULATION_H
+#define MODULATION_H
+
+#include "AbstractData.h"
+
+//Represents 1 modulation value
+class Modulation : public AbstractData
+{
+public:
+ // Constructors
+ Modulation();
+ Modulation(unsigned char* byte); // Parse Immidiately
+ Modulation(unsigned char delay, unsigned char depth, unsigned char rate, bool); // Set value
+
+ // Direct Getter/Setter Functions
+ unsigned char GetDelay();
+ void SetDelay(unsigned char value);
+
+ unsigned char GetDepth();
+ void SetDepth(unsigned char value);
+
+ unsigned char GetRate();
+ void SetRate(unsigned char value);
+
+ // Re-implemented
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+
+private:
+ unsigned char delay;
+ unsigned char depth;
+ unsigned char rate;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Note.cpp
@@ -1,0 +1,174 @@
+#include <sstream>
+#include "Note.h"
+
+using namespace std;
+
+Note::Note()
+{
+ pitch = 0x0;
+ delay = 0x0;
+}
+
+Note::Note(unsigned char* byte) // Parse Immidiately
+{
+ Parse(byte);
+}
+
+Note::Note(unsigned char pitch, unsigned char delay,bool) // Set value
+{
+ SetPitch(pitch);
+ SetDelay(delay);
+}
+
+unsigned char Note::GetPitch()
+{
+ return pitch;
+}
+
+void Note::SetPitch(unsigned char value)
+{
+ pitch = value;
+}
+
+unsigned char Note::GetDelay()
+{
+ return delay;
+}
+
+void Note::SetDelay(unsigned char value)
+{
+ delay = value;
+}
+
+bool Note::IsValid(unsigned char* byte)
+{
+ // A Note is a byte that is between 0x00 and 0xCF
+ if((byte[0] >= 0x00) &&
+ (byte[0] <= 0xCF))
+ {
+ error = false; // Unblock assembling
+ return true;
+ }
+ else
+ {
+ error = true; // Block assembling
+ return false;
+ }
+}
+
+// Generates the assembly for this note
+string Note::GenAsm()
+{
+ string tmpRet = AbstractData::GenAsm();
+ if(tmpRet != "") return tmpRet;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_note" << " " << LookupPitchStr() << ", " << LookupDelayStr();
+ return tmpAsmOut.str();
+}
+
+// Takes the raw byte and parses it's data, storing it
+bool Note::Parse(unsigned char* byte)
+{
+ if(!AbstractData::Parse(byte)) return false;
+
+ pitch = byte[0] & 0xF0;
+ pitch >>= 4;
+
+ delay = byte[0] & 0x0F;
+ return true;
+}
+
+// Fetches the asm string name for the pitch
+string Note::LookupPitchStr()
+{
+ // In case some error happens and the values doesn't match the list below
+ stringstream defTmp;
+
+ switch(pitch)
+ {
+ case noteC:
+ return "noteC";
+ case noteCS:
+ return "noteC#";
+ case noteD:
+ return "noteD";
+ case noteDS:
+ return "noteD#";
+ case noteE:
+ return "noteE";
+ case noteF:
+ return "noteF";
+ case noteFS:
+ return "noteF#";
+ case noteG:
+ return "noteG";
+ case noteGS:
+ return "noteG#";
+ case noteA:
+ return "noteA";
+ case noteAS:
+ return "noteA#";
+ case noteB:
+ return "noteB";
+ case noteRst:
+ return "noteRst";
+ default:
+ defTmp.setf(ios_base::uppercase | ios_base::hex);
+ defTmp << "$" << pitch;
+ return defTmp.str();
+ }
+}
+
+// Fetches the asm string name for the delay
+string Note::LookupDelayStr()
+{
+ // In case some error happens and the values doesn't match the list below
+ stringstream defTmp;
+
+ switch(delay)
+ {
+ case note16:
+ return "note16";
+ case note8:
+ return "note8";
+ case note8_16:
+ return "note8_16";
+ case note4:
+ return "note4";
+ case note4_16:
+ return "note4_16";
+ case note4_8:
+ return "note4_8";
+ case note4_8_16:
+ return "note4_8_16";
+ case note2:
+ return "note2";
+ case note2_16:
+ return "note2_16";
+ case note2_8:
+ return "note2_8";
+ case note2_8_16:
+ return "note2_8_16";
+ case note2_4:
+ return "note2_4";
+ case note2_4_16:
+ return "note2_4_16";
+ case note2_4_8:
+ return "note2_4_8";
+ case note2_4_8_16:
+ return "note2_4_8_16";
+ case note1:
+ return "note1";
+ default:
+ defTmp.setf(ios_base::uppercase | ios_base::hex);
+ defTmp << "$" << (short)pitch;
+ return defTmp.str();
+ }
+}
+
+unsigned int Note::Arguments()
+{
+ // No Arguments
+ return 0;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Note.h
@@ -1,0 +1,73 @@
+#ifndef NOTE_H
+#define NOTE_H
+
+#include "AbstractData.h"
+
+// Holds a single note
+class Note : public AbstractData
+{
+public:
+ // Constructors
+ Note();
+ Note(unsigned char* byte); // Parse Immidiately
+ Note(unsigned char pitch, unsigned char delay,bool); // Set value
+
+ // Reimplementations
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+
+ // Getters and Setters
+ unsigned char GetPitch();
+ void SetPitch(unsigned char value);
+
+ unsigned char GetDelay();
+ void SetDelay(unsigned char value);
+
+ // Specific Methods
+ std::string LookupPitchStr();
+ std::string LookupDelayStr();
+
+ const enum pitch_code : unsigned char
+ {
+ noteC = 0x0,
+ noteCS = 0x1,
+ noteD = 0x2,
+ noteDS = 0x3,
+ noteE = 0x4,
+ noteF = 0x5,
+ noteFS = 0x6,
+ noteG = 0x7,
+ noteGS = 0x8,
+ noteA = 0x9,
+ noteAS = 0xA,
+ noteB = 0xB,
+ noteRst = 0xC
+ };
+
+ const enum delay_code : unsigned char
+ {
+ note16 = 0x0,
+ note8 = 0x1,
+ note8_16 = 0x2,
+ note4 = 0x3,
+ note4_16 = 0x4,
+ note4_8 = 0x5,
+ note4_8_16 = 0x6,
+ note2 = 0x7,
+ note2_16 = 0x8,
+ note2_8 = 0x9,
+ note2_8_16 = 0xA,
+ note2_4 = 0xB,
+ note2_4_16 = 0xC,
+ note2_4_8 = 0xD,
+ note2_4_8_16 = 0xE,
+ note1 = 0xF
+ };
+private:
+ unsigned char pitch;
+ unsigned char delay;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Octave.cpp
@@ -1,0 +1,97 @@
+#include <sstream>
+#include "Octave.h"
+using namespace std;
+
+Octave::Octave()
+{
+ octave = 0;
+}
+
+Octave::Octave(unsigned char* byte) // Parse Immidiately
+{
+ Parse(byte);
+}
+
+Octave::Octave(unsigned char octave, bool) // Set value
+{
+ SetOctave(octave);
+}
+
+unsigned char Octave::GetOctave()
+{
+ return octave;
+}
+
+void Octave::SetOctave(unsigned char value)
+{
+ octave = value;
+}
+
+bool Octave::IsValid(unsigned char* byte)
+{
+ if((byte[0] >= 0xE0) &&
+ (byte[0] <= 0xE7))
+ {
+ error = false; // Unblock assembling
+ return true;
+ }
+ else
+ {
+ error = true; // Block assembling
+ return false;
+ }
+}
+
+string Octave::GenAsm()
+{
+ string tmpRet = AbstractData::GenAsm();
+ if(tmpRet != "") return tmpRet;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_octave" << " " << LookupOctString();
+ return tmpAsmOut.str();
+}
+
+bool Octave::Parse(unsigned char* byte)
+{
+ if(!AbstractData::Parse(byte)) return false;
+
+ octave = byte[0];
+ return true;
+}
+
+string Octave::LookupOctString()
+{
+ // In case some error happens and the values doesn't match the list below
+ stringstream defTmp;
+
+ switch(octave)
+ {
+ case oct0:
+ return "oct0";
+ case oct1:
+ return "oct1";
+ case oct2:
+ return "oct2";
+ case oct3:
+ return "oct3";
+ case oct4:
+ return "oct4";
+ case oct5:
+ return "oct5";
+ case oct6:
+ return "oct6";
+ case oct7:
+ return "oct7";
+ default:
+ defTmp.setf(ios_base::uppercase | ios_base::hex);
+ defTmp << "$" << (short)octave;
+ return defTmp.str();
+ }
+}
+
+unsigned int Octave::Arguments()
+{
+ // No Arguments
+ return 0;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Octave.h
@@ -1,0 +1,43 @@
+#ifndef OCTAVE_H
+#define OCTAVE_H
+
+#include "AbstractData.h"
+
+//Represents 1 octave value
+class Octave : public AbstractData
+{
+public:
+ // Constructors
+ Octave();
+ Octave(unsigned char* byte); // Parse Immidiately
+ Octave(unsigned char octave, bool); // Set value
+
+ // Direct Getters / Setters
+ unsigned char GetOctave();
+ void SetOctave(unsigned char value);
+
+ // Overides
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+
+ std::string LookupOctString();
+
+ const enum OctaveCode : unsigned char
+ {
+ oct0 = 0xE7,
+ oct1 = 0xE6,
+ oct2 = 0xE5,
+ oct3 = 0xE4,
+ oct4 = 0xE3,
+ oct5 = 0xE2,
+ oct6 = 0xE1,
+ oct7 = 0xE0,
+ };
+
+private:
+ unsigned char octave;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Parser.cpp
@@ -1,0 +1,218 @@
+#include <sstream>
+#include "Parser.h"
+using namespace std;
+
+// Constructors
+Parser::Parser()
+{
+ rawBytes = 0;
+ fileLength = 0;
+ filePos = 0;
+ stop = false;
+ stopAddress = 0;
+}
+
+Parser::Parser(std::string filename)
+{
+ rawBytes = 0;
+ fileLength = 0;
+ filePos = 0;
+ stop = false;
+
+ SetFilename(filename);
+}
+
+// Deconstructors
+Parser::~Parser()
+{
+ // Clear out temporary buffer
+ delete[] rawBytes;
+
+ // Clear out parsed buffer
+ for(unsigned int i = 0; i < parsedBytes.size(); i++)
+ {
+ delete parsedBytes[i];
+ }
+}
+
+// Getters / Setters
+string Parser::GetFilename()
+{
+ return filename;
+}
+
+void Parser::SetFilename(std::string value)
+{
+ filename = value;
+ Read();
+}
+
+unsigned int Parser::GetStopAddress()
+{
+ return stopAddress;
+}
+
+void Parser::SetStopAddress(unsigned int value)
+{
+ stopAddress = value;
+}
+
+string Parser::GetParsedAsm()
+{
+ string tmpStr;
+
+ for(unsigned int i = 0; i < parsedString.size(); i++)
+ {
+ tmpStr += parsedString[i] + "\n";
+ }
+
+ return tmpStr;
+}
+
+// File Operations
+// Absolutely no error checking at all - likely needs to be done at somepoint
+void Parser::Read()
+{
+ // open File
+ fstream tmpFile(filename, ios_base::in | ios_base::binary);
+
+ // Get Length
+ tmpFile.seekg(0, ios::end);
+ fileLength = tmpFile.tellg();
+ tmpFile.seekg(0, ios::beg);
+
+ // Allocate proper memory
+ rawBytes = new char[fileLength];
+
+ // Read filedata
+ tmpFile.read(rawBytes, fileLength);
+ tmpFile.close();
+}
+
+// Code Operations
+void Parser::Parse(unsigned int offset)
+{
+ filePos = offset;
+ ParseNext();
+}
+
+void Parser::ParseNext() // Parses the block immidiately following
+{
+ stringstream tmpStr;
+ unsigned char* rawBytesFixed = (unsigned char*)rawBytes;
+ stop = false;
+
+ // Smart generation
+ bool indent = false;
+ bool firstNonNote = false; // First byte wasn't a note or octacve switch, add ";Setup" comment
+ bool firstNote = false; // First note or octave
+
+ stringstream pos;
+ pos << "; " << hex << uppercase << (unsigned int)filePos;
+ parsedString.push_back(pos.str());
+
+ for(unsigned int i = filePos; (i <= fileLength) && (stop == false); i++)
+ {
+ // There's a way to make this block shorter but for now it does it's job
+
+ // Check to see if it's the correct data type and if so then use it
+ if(tmpCall.IsValid(&rawBytesFixed[i])) // Should have made IsValid static
+ {
+ // Call data type
+
+ // Create data type then move the increment pointer further up as needed
+ parsedBytes.push_back(new Call(&rawBytesFixed[i]));
+ parsedString.push_back(parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpCall.Arguments(); // should have made Arguments static
+
+ Call* _tmp = (Call*)parsedBytes[parsedBytes.size() - 1];
+ }
+ else if(tmpDuty.IsValid(&rawBytesFixed[i]))
+ {
+ // Duty data type
+ parsedBytes.push_back(new Duty(&rawBytesFixed[i]));
+ parsedString.push_back(parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpDuty.Arguments();
+ }
+ else if(tmpJump.IsValid(&rawBytesFixed[i]))
+ {
+ // Jump data type
+ parsedBytes.push_back(new Jump(&rawBytesFixed[i]));
+ parsedString.push_back(parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpJump.Arguments();
+
+ Jump* _tmp = (Jump*)parsedBytes[parsedBytes.size() - 1];
+ }
+ else if(tmpModulation.IsValid(&rawBytesFixed[i]))
+ {
+ // Modulation data type
+ parsedBytes.push_back(new Modulation(&rawBytesFixed[i]));
+ parsedString.push_back(parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpModulation.Arguments();
+ }
+ else if(tmpNote.IsValid(&rawBytesFixed[i]))
+ {
+ // Note data type
+ parsedBytes.push_back(new Note(&rawBytesFixed[i]));
+ parsedString.push_back(parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpNote.Arguments();
+ }
+ else if(tmpOctave.IsValid(&rawBytesFixed[i]))
+ {
+ // Octave data type
+ parsedBytes.push_back(new Octave(&rawBytesFixed[i]));
+ parsedString.push_back("\n" + parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpOctave.Arguments();
+ }
+ else if(tmpStop.IsValid(&rawBytesFixed[i]))
+ {
+ // Stop data type
+ parsedBytes.push_back(new Stop(&rawBytesFixed[i]));
+ parsedString.push_back(parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpStop.Arguments();
+
+ stop = true; // Stop all further processing, we've reached the end of the song
+ }
+ else if(tmpTempo.IsValid(&rawBytesFixed[i]))
+ {
+ // Tempo data type
+ parsedBytes.push_back(new Tempo(&rawBytesFixed[i]));
+ parsedString.push_back(parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpTempo.Arguments();
+ }
+ else if(tmpVelocity.IsValid(&rawBytesFixed[i]))
+ {
+ // Velocity data type
+ parsedBytes.push_back(new Velocity(&rawBytesFixed[i]));
+ parsedString.push_back(parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpVelocity.Arguments();
+ }
+ else if(tmpVolume.IsValid(&rawBytesFixed[i]))
+ {
+ // Volume data type
+ parsedBytes.push_back(new Volume(&rawBytesFixed[i]));
+ parsedString.push_back(parsedBytes[parsedBytes.size() - 1]->GenAsm());
+ i += tmpVolume.Arguments();
+ }
+ else
+ {
+ // Unknown code
+ stringstream unkCode;
+ short tmpByte = (short)rawBytesFixed[i];
+ unkCode << "db $" << hex << uppercase << (short)rawBytesFixed[i];
+ parsedString.push_back(unkCode.str());
+ }
+
+ filePos = i;
+
+ // If the stop address parameter is set, break when we get there
+ if( (stopAddress != 0) && (i >= stopAddress) ) break;
+ }
+
+ // Now record the postion we left off
+ pos.str("");
+ pos << "; " << hex << uppercase << (unsigned int)filePos;
+ parsedString.push_back(pos.str());
+
+ filePos += 1; // increment 1 for the start of the next possible song
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Parser.h
@@ -1,0 +1,78 @@
+#ifndef PARSER_H
+#define PARSER_H
+
+#include <fstream>
+#include <string>
+#include <vector>
+
+#include "AbstractData.h"
+#include "Call.h"
+#include "Console.h"
+#include "Duty.h"
+#include "Jump.h"
+#include "Modulation.h"
+#include "Note.h"
+#include "Octave.h"
+#include "Parser.h"
+#include "Stop.h"
+#include "Tempo.h"
+#include "Velocity.h"
+#include "Volume.h"
+
+// This is the final class, it takes all of the data types, abstract class, and helper functions and uses them
+// for parsing
+
+// the final decided plan was to read the whole file into memory (a rom isn't exactly a big memory breaker)
+class Parser
+{
+public:
+ // Constructors
+ Parser();
+ Parser(std::string filename);
+
+ // Deconstructors
+ ~Parser();
+
+ // Getters / Setters
+ std::string GetFilename();
+ void SetFilename(std::string value);
+
+ unsigned int GetStopAddress();
+ void SetStopAddress(unsigned int value);
+
+ std::string GetParsedAsm();
+
+ // File Operations
+ void Read();
+
+ // Code Operations
+ void Parse(unsigned int offset);
+ void ParseNext(); // Parses the block immidiately following
+
+private:
+ std::string filename;
+ std::vector<AbstractData*> parsedBytes;
+ std::vector<std::string> parsedString;
+
+ char* rawBytes;
+ unsigned int fileLength;
+ unsigned int filePos;
+ bool stop;
+
+ // Optional Settings
+ unsigned int stopAddress;
+
+ // A lot of tmp classes
+ Call tmpCall;
+ Duty tmpDuty;
+ Jump tmpJump;
+ Modulation tmpModulation;
+ Note tmpNote;
+ Octave tmpOctave;
+ Stop tmpStop;
+ Tempo tmpTempo;
+ Velocity tmpVelocity;
+ Volume tmpVolume;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Stop.cpp
@@ -1,0 +1,47 @@
+#include <sstream>
+#include "Stop.h"
+using namespace std;
+
+Stop::Stop()
+{}
+
+Stop::Stop(unsigned char* byte)
+{
+ Parse(byte);
+}
+
+bool Stop::IsValid(unsigned char* byte)
+{
+ if(byte[0] == 0xFF)
+ {
+ error = false; // Unblock assembling
+ return true;
+ }
+ else
+ {
+ error = true; // Block assembling
+ return false;
+ }
+}
+
+string Stop::GenAsm()
+{
+ string tmpRet = AbstractData::GenAsm();
+ if(tmpRet != "") return false;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_end";
+ return tmpAsmOut.str();
+}
+
+bool Stop::Parse(unsigned char* byte)
+{
+ if(AbstractData::Parse(byte)) return false;
+ return true;
+}
+
+unsigned int Stop::Arguments()
+{
+ // No Arguments
+ return 0;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Stop.h
@@ -1,0 +1,21 @@
+#ifndef STOP_H
+#define STOP_H
+
+#include "AbstractData.h"
+
+//Represents 1 end music data
+class Stop : public AbstractData
+{
+public:
+ // Constructors
+ Stop();
+ Stop(unsigned char* byte); // Parse Immidiately
+
+ // Re-Implementations
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Tempo.cpp
@@ -1,0 +1,80 @@
+#include <sstream>
+#include "Tempo.h"
+using namespace std;
+
+Tempo::Tempo()
+{
+ divider = 0;
+ modifier = 0;
+}
+
+Tempo::Tempo(unsigned char* byte) // Parse Immidiately
+{
+ Parse(byte);
+}
+
+Tempo::Tempo(unsigned char divider, unsigned char modifier, bool) // Set value
+{
+ SetDivider(divider);
+ SetModifier(modifier);
+}
+
+unsigned char Tempo::GetDivider()
+{
+ return divider;
+}
+
+void Tempo::SetDivider(unsigned char value)
+{
+ divider = value;
+}
+
+unsigned char Tempo::Getmodifier()
+{
+ return modifier;
+}
+
+void Tempo::SetModifier(unsigned char value)
+{
+ modifier = value;
+}
+
+bool Tempo::IsValid(unsigned char* byte)
+{
+ if(byte[0] == 0xED)
+ {
+ error = false;
+ return true;
+ }
+ else
+ {
+ error = true;
+ return false;
+ }
+}
+
+string Tempo::GenAsm()
+{
+ string tmpRet = AbstractData::GenAsm();
+ if(tmpRet != "") return false;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_tempo" << " " << (short)divider << ", " << (short)modifier;
+ return tmpAsmOut.str();
+}
+
+bool Tempo::Parse(unsigned char* byte)
+{
+ if(!AbstractData::Parse(byte)) return false;
+
+ divider = byte[1];
+ modifier = byte[2];
+
+ return true;
+}
+
+unsigned int Tempo::Arguments()
+{
+ // 2 1-byte arguments = 2
+ return 2;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Tempo.h
@@ -1,0 +1,32 @@
+#ifndef TEMPO_H
+#define TEMPO_H
+
+#include "AbstractData.h"
+
+class Tempo : public AbstractData
+{
+public:
+ // Constructors
+ Tempo();
+ Tempo(unsigned char* byte); // Parse Immidiately
+ Tempo(unsigned char divider, unsigned char modifier, bool); // Set value
+
+ // Direct Getters and Setters
+ unsigned char GetDivider();
+ void SetDivider(unsigned char value);
+
+ unsigned char Getmodifier();
+ void SetModifier(unsigned char value);
+
+ // Overides
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+
+private:
+ unsigned char divider;
+ unsigned char modifier;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Velocity.cpp
@@ -1,0 +1,82 @@
+#include <sstream>
+#include "Velocity.h"
+using namespace std;
+
+Velocity::Velocity()
+{
+ velocity = 0;
+ length = 0;
+}
+
+Velocity::Velocity(unsigned char* byte) // Parse Immidiately
+{
+ Parse(byte);
+}
+
+Velocity::Velocity(unsigned char velocity, unsigned char length, bool) // Set value
+{
+ SetVelocity(velocity);
+ SetLength(length);
+}
+
+// Direct Getters/Setters
+unsigned char Velocity::GetVelocity()
+{
+ return velocity;
+}
+
+void Velocity::SetVelocity(unsigned char value)
+{
+ velocity = value;
+}
+
+unsigned char Velocity::GetLength()
+{
+ return length;
+}
+
+void Velocity::SetLength(unsigned char value)
+{
+ length = value;
+}
+
+bool Velocity::IsValid(unsigned char* byte)
+{
+ if(byte[0] == 0xDC)
+ {
+ error = false;
+ return true;
+ }
+ else
+ {
+ error = true;
+ return false;
+ }
+}
+
+string Velocity::GenAsm()
+{
+ string tmpRet = AbstractData::GenAsm();
+ if(tmpRet != "") return tmpRet;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_vel" << " " << (short)velocity << ", " << (short)length;
+ return tmpAsmOut.str();
+}
+
+bool Velocity::Parse(unsigned char* byte)
+{
+ if(!AbstractData::Parse(byte)) return false;
+
+ velocity = byte[1] & 0xF0;
+ velocity >>= 4;
+
+ length = byte[1] & 0x0F;
+ return true;
+}
+
+unsigned int Velocity::Arguments()
+{
+ // 1 1-byte argument
+ return 1;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Velocity.h
@@ -1,0 +1,32 @@
+#ifndef VELOCITY_H
+#define VELOCITY_H
+
+#include "AbstractData.h"
+
+class Velocity : public AbstractData
+{
+public:
+ // Constructors
+ Velocity();
+ Velocity(unsigned char* byte); // Parse Immidiately
+ Velocity(unsigned char velocity, unsigned char length, bool); // Set value
+
+ // Direct Getters/Setters
+ unsigned char GetVelocity();
+ void SetVelocity(unsigned char value);
+
+ unsigned char GetLength();
+ void SetLength(unsigned char value);
+
+ // Overides
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+
+private:
+ unsigned char velocity;
+ unsigned char length;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Volume.cpp
@@ -1,0 +1,67 @@
+#include <sstream>
+#include "Volume.h"
+using namespace std;
+
+Volume::Volume()
+{
+ volume = 0;
+}
+
+Volume::Volume(unsigned char* byte) // Parse Immidiately
+{
+ Parse(byte);
+}
+
+Volume::Volume(unsigned char volume, bool) // Set value
+{
+ SetVolume(volume);
+}
+
+unsigned char Volume::GetVolume()
+{
+ return volume;
+}
+
+void Volume::SetVolume(unsigned char value)
+{
+ volume = value;
+}
+
+bool Volume::IsValid(unsigned char* byte)
+{
+ if(byte[0] == 0xF0)
+ {
+ error = false;
+ return true;
+ }
+ else
+ {
+ error = true;
+ return false;
+ }
+}
+
+string Volume::GenAsm()
+{
+ string tmpRet = AbstractData::GenAsm();
+ if(tmpRet != "") return false;
+
+ stringstream tmpAsmOut;
+ tmpAsmOut << "mus_volume" << " " << (short)volume;
+ return tmpAsmOut.str();
+}
+
+bool Volume::Parse(unsigned char* byte)
+{
+ // If it's not a Note, don't even bother parsing
+ if(!AbstractData::Parse(byte)) return false;
+
+ volume = byte[1];
+ return true;
+}
+
+unsigned int Volume::Arguments()
+{
+ // 1 1-byte argument = 1
+ return 1;
+}
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/Volume.h
@@ -1,0 +1,28 @@
+#ifndef VOLUME_H
+#define VOLUME_H
+
+#include "AbstractData.h"
+
+class Volume : public AbstractData
+{
+public:
+ // Constructors
+ Volume();
+ Volume(unsigned char* byte); // Parse Immidiately
+ Volume(unsigned char volume, bool); // Set value
+
+ // Direct Getters / Setters
+ unsigned char GetVolume();
+ void SetVolume(unsigned char value);
+
+ // Re-implementations
+ virtual std::string GenAsm();
+ virtual bool IsValid(unsigned char* byte);
+ virtual bool Parse(unsigned char* byte);
+ virtual unsigned int Arguments();
+
+private:
+ unsigned char volume;
+};
+
+#endif
\ No newline at end of file
--- /dev/null
+++ b/music/pokeredmusicdisasm/main.cpp
@@ -1,0 +1,69 @@
+#include "Console.h"
+#include "Parser.h"
+#include <sstream>
+#include <string>
+
+using namespace std;
+
+int main(int argc, char** argv)
+{
+ const unsigned char parameters = 2;
+ const unsigned char self = 1;
+ const unsigned char _max_argc = parameters + self;
+ const string defFileLoc = "../baserom.gbc";
+
+ string arg1; // Offset
+ string arg2; // File or "--" (if "--" then the file is assumed)
+
+ string paramStopAddr;
+
+ if(argc >= _max_argc)
+ {
+ arg1 = argv[1];
+ arg2 = argv[2];
+ }
+ else if(argc == (_max_argc - 1))
+ {
+ arg1 = argv[1];
+ arg2 = defFileLoc;
+ }
+
+ // Process any parameters
+ if(argc > _max_argc)
+ {
+ for(int i = _max_argc; i < argc; i++)
+ {
+ string tmpArgv = argv[i];
+ if(tmpArgv.substr(0, 7) == "--stop=") paramStopAddr = tmpArgv.substr(7);
+ }
+ }
+
+ if(arg1 == "") Console::Ask("What offset in the file in hex (0x----): ", arg1);
+ if(arg2 == "") Console::Ask("What file: ", arg2);
+ if(arg2 == "--") arg2 = defFileLoc; // You can also put "--" for the default file location
+
+ // Weird way of converting arg1 to an unsigned integer
+ Parser p(arg2);
+
+ stringstream arg1Conv;
+ unsigned int arg1ConvNum;
+ arg1Conv << arg1;
+ arg1Conv << hex;
+ arg1Conv >> arg1ConvNum;
+
+ if(paramStopAddr != "")
+ {
+ stringstream paramStopAddrConv;
+ unsigned int paramStopAddrNum = 0;
+ paramStopAddrConv.str("");
+ paramStopAddrConv << paramStopAddr;
+ paramStopAddrConv << hex;
+ paramStopAddrConv >> paramStopAddrNum;
+ p.SetStopAddress(paramStopAddrNum);
+ }
+
+ p.Parse(arg1ConvNum);
+ Console::PrintLn(p.GetParsedAsm().c_str());
+
+ return 0;
+}
\ No newline at end of file