shithub: pokered

Download patch

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