shithub: pokecrystal

Download patch

ref: 22ac1dfaf0824b5530da6d754615833710eb86d2
parent: 95ac2a8da6d1ae361b56b7d23ee1aff20c5e79bf
author: padz <[email protected]>
date: Fri Nov 2 20:45:14 EDT 2012

disasm bank3a, map audio ram, implement musscripts

--- a/constants.asm
+++ b/constants.asm
@@ -9,6 +9,10 @@
 	db \1 << 4 + \2
 	ENDM
 
+bigdw: MACRO
+	dw ((\1)/$100) + (((\1)&$ff)*$100)
+	ENDM
+
 callab: MACRO
 	ld hl, \1
 	ld a, BANK(\1)
@@ -3188,7 +3192,8 @@
 NOTE_16 EQU $0f
 
 octave: MACRO
-	db $d0 + \1
+; $d0-$d7
+	db $d8 - \1
 	ENDM
 notetype: MACRO
 	db $d8
@@ -3201,8 +3206,7 @@
 	ENDM
 tempo: MACRO
 	db $da
-	db \1
-	db \2
+	bigdw \1
 	ENDM
 dutycycle: MACRO
 	db $db
@@ -3251,7 +3255,7 @@
 	ENDM
 tone: MACRO
 	db $e6
-	dw \1
+	bigdw \1
 	ENDM
 unknownmusic0xe7: MACRO
 	db $e7
@@ -3263,11 +3267,11 @@
 	ENDM
 globaltempo : MACRO
 	db $e9
-	dw \1
+	bigdw \1
 	ENDM
 restartchannel: MACRO
 	db $ea
-	dw \1
+	bigdw \1
 	ENDM
 newsong: MACRO
 	db $eb
--- a/main.asm
+++ b/main.asm
@@ -74346,7 +74346,7 @@
 
 SoundRestart: ; e8000
 ; restart sound operation
-; clear all relevant registers
+; clear all relevant hardware registers & wram
 	push hl
 	push de
 	push bc
@@ -74362,7 +74362,7 @@
 	ld hl, $ff10 ; sound channel registers
 	ld e, $04 ; number of channels
 .clearsound
-;   sound channel   1     2     3     4
+;   sound channel   1      2      3      4
 	xor a
 	ld [hli], a ; $ff10, $ff15, $ff1a, $ff1f ; sweep = 0
 
@@ -74376,8 +74376,8 @@
 	dec e
 	jr nz, .clearsound
 
-	ld hl, $c101 ; start of channel data
-	ld de, $01bf ; length ($ * 8 channels)
+	ld hl, Channel1 ; start of channel data
+	ld de, $01bf ; length of area to clear (entire sound wram area)
 .clearchannels ; clear $c101-$c2bf
 	xor a
 	ld [hli], a
@@ -74395,45 +74395,2251 @@
 	ret
 ; e803d
 
-INCBIN "baserom.gbc",$e803d,$e8051 - $e803d
+MusicFadeRestart: ; e803d
+; restart but keep the music id to fade in to
+	ld a, [MusicFadeIDHi]
+	push af
+	ld a, [MusicFadeIDLo]
+	push af
+	call SoundRestart
+	pop af
+	ld [MusicFadeIDLo], a
+	pop af
+	ld [MusicFadeIDHi], a
+	ret
+; e8051
 
 MusicOn: ; e8051
 	ld a, $01
-	ld [$c100], a
+	ld [MusicPlaying], a
 	ret
 ; e8057
 
 MusicOff: ; e8057
 	xor a
-	ld [$c100], a
+	ld [MusicPlaying], a
 	ret
 ; e805c
 
-INCBIN "baserom.gbc",$e805c,$e8b11 - $e805c
+UpdateSound: ; e805c
+; called once per frame
+	; no use updating audio if it's not playing
+	ld a, [MusicPlaying]
+	and a
+	ret z
+	; start at ch1
+	xor a
+	ld [CurChannel], a ; just
+	ld [SoundOutput], a ; off
+	ld bc, Channel1
+.loop
+	; is the channel active?
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	bit 0, [hl]
+	jp z, .nextchannel
+	; check time left in the current note
+	ld hl, Channel1NoteDuration - Channel1
+	add hl, bc
+	ld a, [hl]
+	cp a, $02 ; 1 or 0?
+	jr c, .noteover
+	dec [hl]
+	jr .asm_e8093
+.noteover
+	; reset vibrato delay
+	ld hl, Channel1VibratoDelay - Channel1
+	add hl, bc
+	ld a, [hl]
+	ld hl, Channel1VibratoDelayCount - Channel1
+	add hl, bc
+	ld [hl], a
+	; turn vibrato off for now
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	res 1, [hl]
+	; get next note
+	call ParseMusic
+.asm_e8093
+	; 
+	call Functione84f9
+	; duty cycle
+	ld hl, Channel1DutyCycle - Channel1
+	add hl, bc
+	ld a, [hli]
+	ld [$c292], a
+	; intensity
+	ld a, [hli]
+	ld [$c293], a
+	; frequency
+	ld a, [hli]
+	ld [$c294], a
+	ld a, [hl]
+	ld [$c295], a
+	;
+	call Functione8466 ; handle vibrato and other things
+	call HandleNoise
+	; turn off music when playing sfx?
+	ld a, [SFXPriority]
+	and a
+	jr z, .next
+	; are we in a sfx channel right now?
+	ld a, [CurChannel]
+	cp a, $04
+	jr nc, .next
+	; are any sfx channels active?
+	; if so, mute 
+	ld hl, $c1cc ; Channel5Flags
+	bit 0, [hl]
+	jr nz, .restnote
+	ld hl, $c1fe ; Channel6Flags
+	bit 0, [hl]
+	jr nz, .restnote
+	ld hl, $c230 ; Channel7Flags
+	bit 0, [hl]
+	jr nz, .restnote
+	ld hl, $c262 ; Channel8Flags
+	bit 0, [hl]
+	jr z, .next
+.restnote
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 5, [hl] ; Rest
+.next
+	; are we in a sfx channel right now?
+	ld a, [CurChannel]
+	cp a, $04 ; sfx
+	jr nc, .asm_e80ee
+	ld hl, $00cb
+	add hl, bc
+	bit 0, [hl]
+	jr nz, .asm_e80fc
+.asm_e80ee
+	call UpdateChannels
+	ld hl, Channel1Tracks - Channel1
+	add hl, bc
+	ld a, [SoundOutput]
+	or [hl]
+	ld [SoundOutput], a
+.asm_e80fc
+	; clear note flags
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	xor a
+	ld [hl], a
+.nextchannel
+	; next channel
+	ld hl, Channel2 - Channel1
+	add hl, bc
+	ld c, l
+	ld b, h
+	ld a, [CurChannel]
+	inc a
+	ld [CurChannel], a
+	cp a, $08 ; are we done?
+	jp nz, .loop ; do it all again
+	; writing to hardware registers?
+	call Functione8307
+	; fade music in/out
+	call FadeMusic
+	; write volume to hardware register
+	ld a, [Volume]
+	ld [$ff00+$24], a
+	; write SO on/off to hardware register
+	ld a, [SoundOutput]
+	ld [$ff00+$25], a
+	ret
+; e8125
 
+UpdateChannels: ; e8125
+	ld hl, .ChannelFnPtrs
+	ld a, [CurChannel]
+	and a, $07
+	add a
+	ld e, a
+	ld d, $00
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+
+.ChannelFnPtrs
+	dw .Channel1
+	dw .Channel2
+	dw .Channel3
+	dw .Channel4
+; sfx ch ptrs are identical to music chs
+; ..except 5
+	dw .Channel5
+	dw .Channel6
+	dw .Channel7
+	dw .Channel8
+
+.Channel1
+	ld a, [$c2a6]
+	bit 7, a
+	ret nz
+.Channel5
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	bit 3, [hl]
+	jr z, .asm_e8159
+	;
+	ld a, [SoundInput]
+	ld [$ff00+$10], a
+.asm_e8159
+	bit 5, [hl] ; rest
+	jr nz, .ch1rest
+	bit 4, [hl]
+	jr nz, .asm_e81a2
+	bit 1, [hl]
+	jr nz, .asm_e816b
+	bit 6, [hl]
+	jr nz, .asm_e8184
+	jr .asm_e8175
+.asm_e816b
+	ld a, [$c294]
+	ld [$ff00+$13], a
+	ld a, [$c295]
+	ld [$ff00+$14], a
+.asm_e8175
+	bit 0, [hl]
+	ret z
+	ld a, [$c292]
+	ld d, a
+	ld a, [$ff00+$11]
+	and a, $3f ; sound length
+	or d
+	ld [$ff00+$11], a
+	ret
+.asm_e8184
+	ld a, [$c292]
+	ld d, a
+	ld a, [$ff00+$11]
+	and a, $3f ; sound length
+	or d
+	ld [$ff00+$11], a
+	ld a, [$c294]
+	ld [$ff00+$13], a
+	ret
+.ch1rest
+	ld a, [$ff00+$26]
+	and a, %10001110 ; ch1 off
+	ld [$ff00+$26], a
+	ld hl, $ff10
+	call ClearChannel
+	ret
+.asm_e81a2
+	ld hl, $c292
+	ld a, $3f ; sound length
+	or [hl]
+	ld [$ff00+$11], a
+	ld a, [$c293]
+	ld [$ff00+$12], a
+	ld a, [$c294]
+	ld [$ff00+$13], a
+	ld a, [$c295]
+	or a, $80
+	ld [$ff00+$14], a
+	ret
+
+.Channel2
+.Channel6
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	bit 5, [hl] ; rest
+	jr nz, .ch2rest
+	bit 4, [hl]
+	jr nz, .asm_e8204
+	bit 6, [hl]
+	jr nz, .asm_e81e6
+	bit 0, [hl]
+	ret z
+	ld a, [$c292]
+	ld d, a
+	ld a, [$ff00+$16]
+	and a, $3f ; sound length
+	or d
+	ld [$ff00+$16], a
+	ret
+.asm_e81db ; unused
+	ld a, [$c294]
+	ld [$ff00+$18], a
+	ld a, [$c295]
+	ld [$ff00+$19], a
+	ret
+.asm_e81e6
+	ld a, [$c292]
+	ld d, a
+	ld a, [$ff00+$16]
+	and a, $3f ; sound length
+	or d
+	ld [$ff00+$16], a
+	ld a, [$c294]
+	ld [$ff00+$18], a
+	ret
+.ch2rest
+	ld a, [$ff00+$26]
+	and a, %10001101 ; ch2 off
+	ld [$ff00+$26], a
+	ld hl, $ff15
+	call ClearChannel
+	ret
+.asm_e8204
+	ld hl, $c292
+	ld a, $3f ; sound length
+	or [hl]
+	ld [$ff00+$16], a
+	ld a, [$c293]
+	ld [$ff00+$17], a
+	ld a, [$c294]
+	ld [$ff00+$18], a
+	ld a, [$c295]
+	or a, $80 ; initial (restart)
+	ld [$ff00+$19], a
+	ret
+
+.Channel3
+.Channel7
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	bit 5, [hl] ; rest
+	jr nz, .ch3rest
+	bit 4, [hl]
+	jr nz, .asm_e824d
+	bit 6, [hl]
+	jr nz, .asm_e823a
+	ret
+.asm_e822f ; unused
+	ld a, [$c294]
+	ld [$ff00+$1d], a
+	ld a, [$c295]
+	ld [$ff00+$1e], a
+	ret
+.asm_e823a
+	ld a, [$c294]
+	ld [$ff00+$1d], a
+	ret
+.ch3rest
+	ld a, [$ff00+$26]
+	and a, %10001011 ; ch3 off
+	ld [$ff00+$26], a
+	ld hl, $ff1a
+	call ClearChannel
+	ret
+.asm_e824d
+	ld a, $3f
+	ld [$ff00+$1b], a
+	xor a
+	ld [$ff00+$1a], a
+	call .asm_e8268
+	ld a, $80
+	ld [$ff00+$1a], a
+	ld a, [$c294]
+	ld [$ff00+$1d], a
+	ld a, [$c295]
+	or a, $80
+	ld [$ff00+$1e], a
+	ret
+.asm_e8268
+	push hl
+	ld a, [$c293]
+	and a, $0f ; only 0-9 are valid
+	ld l, a
+	ld h, $00
+	; hl << 4
+	; each wavepattern is $0f bytes long
+	; so seeking is done in $10s
+	add hl, hl
+	add hl, hl
+	add hl, hl
+	add hl, hl
+	ld de, WaveSamples
+	add hl, de
+	; load wavepattern into $ff30-$ff3f
+	ld a, [hli]
+	ld [$ff00+$30], a
+	ld a, [hli]
+	ld [$ff00+$31], a
+	ld a, [hli]
+	ld [$ff00+$32], a
+	ld a, [hli]
+	ld [$ff00+$33], a
+	ld a, [hli]
+	ld [$ff00+$34], a
+	ld a, [hli]
+	ld [$ff00+$35], a
+	ld a, [hli]
+	ld [$ff00+$36], a
+	ld a, [hli]
+	ld [$ff00+$37], a
+	ld a, [hli]
+	ld [$ff00+$38], a
+	ld a, [hli]
+	ld [$ff00+$39], a
+	ld a, [hli]
+	ld [$ff00+$3a], a
+	ld a, [hli]
+	ld [$ff00+$3b], a
+	ld a, [hli]
+	ld [$ff00+$3c], a
+	ld a, [hli]
+	ld [$ff00+$3d], a
+	ld a, [hli]
+	ld [$ff00+$3e], a
+	ld a, [hli]
+	ld [$ff00+$3f], a
+	pop hl
+	ld a, [$c293]
+	and a, $f0
+	sla a
+	ld [$ff00+$1c], a
+	ret
+
+.Channel4
+.Channel8
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	bit 5, [hl] ; rest
+	jr nz, .ch4rest
+	bit 4, [hl]
+	jr nz, .asm_e82d4
+	ret
+.asm_e82c1 ; unused
+	ld a, [$c294]
+	ld [$ff00+$22], a
+	ret
+.ch4rest
+	ld a, [$ff00+$26]
+	and a, %10000111 ; ch4 off
+	ld [$ff00+$26], a
+	ld hl, $ff1f
+	call ClearChannel
+	ret
+.asm_e82d4
+	ld a, $3f ; sound length
+	ld [$ff00+$20], a
+	ld a, [$c293]
+	ld [$ff00+$21], a
+	ld a, [$c294]
+	ld [$ff00+$22], a
+	ld a, $80
+	ld [$ff00+$23], a
+	ret
+; e82e7
+
+_CheckSFX: ; e82e7
+; return carry if any sfx channels are active
+	ld hl, $c1cc ; Channel5Flags
+	bit 0, [hl]
+	jr nz, .sfxon
+	ld hl, $c1fe ; Channel6Flags
+	bit 0, [hl]
+	jr nz, .sfxon
+	ld hl, $c230 ; Channel7Flags
+	bit 0, [hl]
+	jr nz, .sfxon
+	ld hl, $c262 ; Channel8Flags
+	bit 0, [hl]
+	jr nz, .sfxon
+	and a
+	ret
+.sfxon
+	scf
+	ret
+; e8307
+
+Functione8307: ; e8307
+; what is $c2a6?
+	ld a, [$c2a6]
+	bit 7, a
+	ret z
+	and a, $7f
+	ld d, a
+	call _CheckSFX
+	jr c, .asm_e8335
+	and a
+	jr z, .asm_e8323
+	cp a, $10
+	jr z, .asm_e831e
+	jr .asm_e8335
+.asm_e831e
+	ld hl, Tablee8354
+	jr .updatehw
+.asm_e8323
+	ld hl, Tablee8350
+.updatehw
+	xor a
+	ld [$ff00+$10], a ; sweep off
+	ld a, [hli]
+	ld [$ff00+$11], a ; sound length / duty cycle
+	ld a, [hli]
+	ld [$ff00+$12], a ; ch1 volume envelope
+	ld a, [hli]
+	ld [$ff00+$13], a ; ch1 frequency lo
+	ld a, [hli]
+	ld [$ff00+$14], a ; ch1 frequency hi
+.asm_e8335
+	ld a, d
+	inc a
+	cp a, $1e
+	jr c, .asm_e833c
+	xor a
+.asm_e833c
+	or a, $80
+	ld [$c2a6], a
+	; is hw ch1 on?
+	ld a, [SoundOutput]
+	and a, $11
+	ret nz
+	; if not, turn it on
+	ld a, [SoundOutput]
+	or a, $11
+	ld [SoundOutput], a
+	ret
+; e8350
+
+Tablee8350: ; e8350
+	db $80 ; duty 50%
+	db $e2 ; volume $e, envelope decrease sweep 2
+	db $50 ; frequency: $750
+	db $87 ; restart sound
+; e8354
+
+Tablee8354: ; e8354
+	db $80 ; duty 50%
+	db $e2 ; volume $e, envelope decrease sweep 2
+	db $ee ; frequency: $6ee
+	db $86 ; restart sound
+; e8358
+
+FadeMusic: ; e8358
+; fade music if applicable
+; usage:
+;	write to MusicFade
+;	song fades out at the given rate
+;	load song id in MusicFadeID
+;	fade new song in
+; notes:
+;	max # frames per volume level is $3f
+
+	; fading?
+	ld a, [MusicFade]
+	and a
+	ret z
+	; has the count ended?
+	ld a, [MusicFadeCount]
+	and a
+	jr z, .update
+	; count down
+	dec a
+	ld [MusicFadeCount], a
+	ret
+.update
+	ld a, [MusicFade]
+	ld d, a
+	; get new count
+	and a, $3f
+	ld [MusicFadeCount], a
+	; get SO1 volume
+	ld a, [Volume]
+	and a, $07
+	; which way are we fading?
+	bit 7, d
+	jr nz, .fadein
+	; fading out
+	and a
+	jr z, .novolume
+	dec a
+	jr .updatevolume
+.novolume
+	; make sure volume is off
+	xor a
+	ld [Volume], a
+	; did we just get on a bike?
+	ld a, [PlayerState]
+	cp a, $01 ; bicycle
+	jr z, .bicycle
+	push bc
+	; restart sound
+	call MusicFadeRestart
+	; get new song id
+	ld a, [MusicFadeIDLo]
+	and a
+	jr z, .quit ; this assumes there are fewer than 256 songs!
+	ld e, a
+	ld a, [MusicFadeIDHi]
+	ld d, a
+	; load new song
+	call LoadMusic
+.quit
+	; cleanup
+	pop bc
+	; stop fading
+	xor a
+	ld [MusicFade], a
+	ret
+.bicycle
+	push bc
+	; restart sound
+	call MusicFadeRestart
+	; this turns the volume up
+	; turn it back down
+	xor a
+	ld [Volume], a
+	; get new song id
+	ld a, [MusicFadeIDLo]
+	ld e, a
+	ld a, [MusicFadeIDHi]
+	ld d, a
+	; load new song
+	call LoadMusic
+	pop bc
+	; fade in
+	ld hl, MusicFade
+	set 7, [hl]
+	ret
+.fadein
+	; are we done?
+	cp a, $07
+	jr nc, .maxvolume
+	; inc volume
+	inc a
+	jr .updatevolume
+.maxvolume
+	; we're done
+	xor a
+	ld [MusicFade], a
+	ret
+.updatevolume
+	; hi = lo
+	ld d, a
+	swap a
+	or d
+	ld [Volume], a
+	ret
+; e83d1
+
+LoadNote: ; e83d1
+	; check mute??
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	bit 1, [hl]
+	ret z
+	; get note duration
+	ld hl, Channel1NoteDuration - Channel1
+	add hl, bc
+	ld a, [hl]
+	ld hl, $c297 ; ????
+	sub [hl]
+	jr nc, .ok
+	ld a, $01
+.ok
+	ld [hl], a
+	; get frequency
+	ld hl, Channel1Frequency - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	; ????
+	ld hl, $0021
+	add hl, bc
+	ld a, e
+	sub [hl]
+	ld e, a
+	ld a, d
+	sbc a, $00
+	ld d, a
+	; ????
+	ld hl, $0022
+	add hl, bc
+	sub [hl]
+	jr nc, .asm_e8420
+	; ????
+	ld hl, Channel1Flags3 - Channel1
+	add hl, bc
+	set 1, [hl]
+	; get frequency
+	ld hl, Channel1Frequency - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	; ????
+	ld hl, $0021
+	add hl, bc
+	ld a, [hl]
+	sub e
+	ld e, a
+	ld a, d
+	sbc a, $00
+	ld d, a
+	; ????
+	ld hl, $0022
+	add hl, bc
+	ld a, [hl]
+	sub d
+	ld d, a
+	jr .asm_e843e
+.asm_e8420
+	; ????
+	ld hl, Channel1Flags3 - Channel1
+	add hl, bc
+	res 1, [hl]
+	; get frequency
+	ld hl, Channel1Frequency - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	; ????
+	ld hl, $0021
+	add hl, bc
+	ld a, e
+	sub [hl]
+	ld e, a
+	ld a, d
+	sbc a, $00
+	ld d, a
+	; ????
+	ld hl, $0022
+	add hl, bc
+	sub [hl]
+	ld d, a
+.asm_e843e
+	push bc
+	ld hl, $c297
+	ld b, $00 ; loop count
+.loop
+	inc b
+	ld a, e
+	sub [hl]
+	ld e, a
+	jr nc, .loop
+	ld a, d
+	and a
+	jr z, .quit
+	dec d
+	jr .loop
+.quit
+	ld a, e ; result
+	add [hl]
+	ld d, b ; loop count
+	; ????
+	pop bc
+	ld hl, $0023
+	add hl, bc
+	ld [hl], d
+	ld hl, $0024
+	add hl, bc
+	ld [hl], a
+	; clear ????
+	ld hl, $0025
+	add hl, bc
+	xor a
+	ld [hl], a
+	ret
+; e8466
+
+Functione8466: ; e8466
+; handle vibrato and other things
+; unknowns: $c292, $c294
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	bit 2, [hl]
+	jr z, .next
+	ld hl, $001c
+	add hl, bc
+	ld a, [hl]
+	rlca
+	rlca
+	ld [hl], a
+	and a, $c0
+	ld [$c292], a
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 0, [hl]
+.next
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	bit 4, [hl]
+	jr z, .vibrato
+	ld hl, $0027
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $c294
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	ld e, l
+	ld d, h
+	ld hl, $c294
+	ld [hl], e
+	inc hl
+	ld [hl], d
+.vibrato
+	; is vibrato on?
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	bit 0, [hl] ; vibrato
+	jr z, .quit
+	; is vibrato active for this note yet?
+	; is the delay over?
+	ld hl, Channel1VibratoDelayCount - Channel1
+	add hl, bc
+	ld a, [hl]
+	and a
+	jr nz, .subexit
+	; is the extent nonzero?
+	ld hl, Channel1VibratoExtent - Channel1
+	add hl, bc
+	ld a, [hl]
+	and a
+	jr z, .quit
+	; save it for later
+	ld d, a
+	; is it time to toggle vibrato up/down?
+	ld hl, Channel1VibratoRate - Channel1
+	add hl, bc
+	ld a, [hl]
+	and a, $0f ; count
+	jr z, .toggle
+.subexit
+	dec [hl]
+	jr .quit
+.toggle
+	; refresh count
+	ld a, [hl]
+	swap [hl]
+	or [hl]
+	ld [hl], a
+	; ????
+	ld a, [$c294]
+	ld e, a
+	; toggle vibrato up/down
+	ld hl, Channel1Flags3 - Channel1
+	add hl, bc
+	bit 0, [hl] ; vibrato up/down
+	jr z, .down
+; up
+	; vibrato down
+	res 0, [hl]
+	; get the delay
+	ld a, d
+	and a, $0f ; lo
+	;
+	ld d, a
+	ld a, e
+	sub d
+	jr nc, .asm_e84ef
+	ld a, $00
+	jr .asm_e84ef
+.down
+	; vibrato up
+	set 0, [hl]
+	; get the delay
+	ld a, d
+	and a, $f0 ; hi
+	swap a ; move it to lo
+	;
+	add e
+	jr nc, .asm_e84ef
+	ld a, $ff
+.asm_e84ef
+	ld [$c294], a
+	;
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 6, [hl]
+.quit
+	ret
+; e84f9
+
+Functione84f9: ; e84f9
+	; quit if ????
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	bit 1, [hl]
+	ret z
+	; de = Frequency
+	ld hl, Channel1Frequency - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	; 
+	ld hl, Channel1Flags3 - Channel1
+	add hl, bc
+	bit 1, [hl]
+	jr z, .next
+	;
+	ld hl, $0023
+	add hl, bc
+	ld l, [hl]
+	ld h, $00
+	add hl, de
+	ld d, h
+	ld e, l
+	; get ????
+	ld hl, $0024
+	add hl, bc
+	ld a, [hl]
+	; add it to ????
+	ld hl, $0025
+	add hl, bc
+	add [hl]
+	ld [hl], a
+	ld a, $00
+	adc e
+	ld e, a
+	ld a, $00
+	adc d
+	ld d, a
+	;
+	ld hl, $0022
+	add hl, bc
+	ld a, [hl]
+	cp d
+	jp c, .quit1
+	jr nz, .quit2
+	ld hl, $0021
+	add hl, bc
+	ld a, [hl]
+	cp e
+	jp c, .quit1
+	jr .quit2
+.next
+	ld a, e
+	ld hl, $0023
+	add hl, bc
+	ld e, [hl]
+	sub e
+	ld e, a
+	ld a, d
+	sbc a, $00
+	ld d, a
+	ld hl, $0024
+	add hl, bc
+	ld a, [hl]
+	add a
+	ld [hl], a
+	ld a, e
+	sbc a, $00
+	ld e, a
+	ld a, d
+	sbc a, $00
+	ld d,a
+	ld hl, $0022
+	add hl, bc
+	ld a, d
+	cp [hl]
+	jr c, .quit1
+	jr nz, .quit2
+	ld hl, $0021
+	add hl, bc
+	ld a, e
+	cp [hl]
+	jr nc, .quit2
+.quit1
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	res 1, [hl]
+	ld hl, Channel1Flags3 - Channel1
+	add hl, bc
+	res 1, [hl]
+	ret
+.quit2
+	ld hl, Channel1Frequency - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 1, [hl]
+	set 0, [hl]
+	ret
+; e858c
+
+HandleNoise: ; e858c
+	; is noise sampling on?
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	bit 4, [hl] ; noise sampling
+	ret z
+	; are we in a sfx channel?
+	ld a, [CurChannel]
+	bit 2, a ; sfx
+	jr nz, .next
+	; is ch8 on? (noise)
+	ld hl, $c262 ; Channel8Flags
+	bit 0, [hl] ; on?
+	jr z, .next
+	; is ch8 playing noise?
+	bit 4, [hl]
+	ret nz ; quit if so
+	; 
+.next
+	ld a, [$c2a2]
+	and a
+	jr z, ReadNoiseSample
+	dec a
+	ld [$c2a2], a
+	ret
+; e85af
+
+ReadNoiseSample: ; e85af
+; sample struct:
+;	[wx] [yy] [zz]
+;	w: ? either 2 or 3
+;	x: ? 0-7
+;	zzyy: pointer to sample data
+;		NOTE: these seem to have $4000 added to them later
+
+	; de = NoiseSampleAddress
+	ld hl, NoiseSampleAddress
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	; is it empty?
+	ld a, e
+	or d
+	jr z, .quit
+	; get the noise sample
+	ld a, [de]
+	inc de
+	; are we done?
+	cp a, $ff
+	jr z, .quit
+	;
+	and a, $0f ; bottom nybble
+	inc a
+	ld [$c2a2], a
+	ld a, [de]
+	inc de
+	ld [$c293], a
+	ld a, [de]
+	inc de
+	ld [$c294], a
+	xor a
+	ld [$c295], a
+	;
+	ld hl, NoiseSampleAddress
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 4, [hl]
+	ret
+.quit
+	ret
+; e85e1
+
+ParseMusic: ; e85e1
+; parses until a note is read or the song is ended
+	call GetMusicByte ; store next byte in a
+	cp a, $ff ; is the song over?
+	jr z, .readff
+	cp a, $d0 ; is it a note?
+	jr c, .readnote
+	; then it's a command
+.readcommand
+	call ParseCommand
+	jr ParseMusic ; start over
+
+.readnote
+; CurMusicByte contains current note
+; special notes
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	bit 3, [hl]
+	jp nz, Functione8698
+	bit 5, [hl]
+	jp nz, Functione8698
+	bit 4, [hl] ; noise sample
+	jp nz, GetNoiseSample
+; normal note
+	; set note duration (bottom nybble)
+	ld a, [CurMusicByte]
+	and a, $0f
+	call SetNoteDuration
+	; get note pitch (top nybble)
+	ld a, [CurMusicByte]
+	swap a
+	and a, $0f
+	jr z, .rest ; pitch $0 -> rest
+	; update pitch
+	ld hl, Channel1Pitch - Channel1
+	add hl, bc
+	ld [hl], a
+	; store pitch in e
+	ld e, a
+	; store octave in d
+	ld hl, Channel1Octave - Channel1
+	add hl, bc
+	ld d, [hl]
+	; update frequency
+	call GetFrequency
+	ld hl, Channel1Frequency - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	; ????
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 4, [hl]
+	jp LoadNote
+.rest
+; note = rest
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 5, [hl] ; Rest
+	ret
+;
+.readff
+; $ff is reached in music data
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	bit 1, [hl] ; in a subroutine?
+	jr nz, .readcommand ; execute 
+	ld a, [CurChannel]
+	cp a, $04 ; channels 0-3?
+	jr nc, .asm_e8651
+	; ????
+	ld hl, $00cb
+	add hl, bc
+	bit 0, [hl]
+	jr nz, .ok
+.asm_e8651
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	bit 5, [hl]
+	call nz, RestoreVolume
+	; end music
+	ld a, [CurChannel]
+	cp a, $04 ; channel 5?
+	jr nz, .ok
+	; ????
+	xor a
+	ld [$ff00+$10], a ; sweep = 0
+.ok
+; stop playing
+	; turn channel off
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	res 0, [hl]
+	; note = rest
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 5, [hl]
+	; clear music id & bank
+	ld hl, Channel1MusicID - Channel1
+	add hl, bc
+	xor a
+	ld [hli], a ; id hi
+	ld [hli], a ; id lo
+	ld [hli], a ; bank
+	ret
+; e8679
+
+RestoreVolume: ; e8679
+	; ch5 only
+	ld a, [CurChannel]
+	cp a, $04
+	ret nz
+	xor a
+	ld hl, $c222
+	ld [hli], a
+	ld [hl], a
+	ld hl, $c286
+	ld [hli], a
+	ld [hl], a
+	ld a, [LastVolume]
+	ld [Volume], a
+	xor a
+	ld [LastVolume], a
+	ld [SFXPriority], a
+	ret
+; e8698
+
+Functione8698: ; e8698
+	; turn noise sampling on
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 4, [hl] ; noise sample
+	; update note duration
+	ld a, [CurMusicByte]
+	call SetNoteDuration ; top nybble doesnt matter?
+	; update intensity from next param
+	call GetMusicByte
+	ld hl, Channel1Intensity - Channel1
+	add hl, bc
+	ld [hl], a
+	; update lo frequency from next param
+	call GetMusicByte
+	ld hl, Channel1FrequencyLo - Channel1
+	add hl, bc
+	ld [hl], a
+	; are we on the last channel? (noise sampling)
+	ld a, [CurChannel]
+	and a, $03
+	cp a, $03
+	ret z
+	; update hi frequency from next param
+	call GetMusicByte
+	ld hl, Channel1FrequencyHi - Channel1
+	add hl, bc
+	ld [hl], a
+	ret
+; e86c5
+
+GetNoiseSample: ; e86c5
+; load ptr to sample header in NoiseSampleAddress
+	; are we on the last channel?
+	ld a, [CurChannel]
+	and a, $03
+	cp a, $03
+	; ret if not
+	ret nz
+	; update note duration
+	ld a, [CurMusicByte]
+	and a, $0f
+	call SetNoteDuration
+	; check current channel
+	ld a, [CurChannel]
+	bit 2, a ; are we in a sfx channel?
+	jr nz, .sfx
+	ld hl, $c262 ; Channel8Flags
+	bit 0, [hl] ; is ch8 on? (noise)
+	ret nz
+	ld a, [MusicNoiseSampleSet]
+	jr .next
+.sfx
+	ld a, [SFXNoiseSampleSet]
+.next
+	; load noise sample set id into de
+	ld e, a
+	ld d, $00
+	; load ptr to noise sample set in hl
+	ld hl, NoiseSampleSetsPointers
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	; get pitch
+	ld a, [CurMusicByte]
+	swap a
+	; non-rest note?
+	and a, $0f
+	ret z
+	; use 'pitch' to seek noise sample set
+	ld e, a
+	ld d, $00
+	add hl, de
+	add hl, de
+	; load sample pointer into NoiseSampleAddress
+	ld a, [hli]
+	ld [NoiseSampleAddressLo], a
+	ld a, [hl]
+	ld [NoiseSampleAddressHi], a
+	; clear ????
+	xor a
+	ld [$c2a2], a
+	ret
+; e870f
+
+ParseCommand ; e870f
+	; reload command
+	ld a, [CurMusicByte]
+	; get command #
+	sub a, $d0 ; first command
+	ld e, a
+	ld d, $00
+	; seek command pointer
+	ld hl, MusicCommands
+	add hl, de
+	add hl, de
+	; jump to the new pointer
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+; e8720
+
+MusicCommands: ; e8720
+; pointer to each command in order
+	; octaves
+	dw MusicD0 ; octave 8
+	dw MusicD0 ; octave 7
+	dw MusicD0 ; octave 6
+	dw MusicD0 ; octave 5
+	dw MusicD0 ; octave 4
+	dw MusicD0 ; octave 3
+	dw MusicD0 ; octave 2
+	dw MusicD0 ; octave 1
+	dw MusicD8 ; note length + intensity
+	dw MusicD9 ; set starting octave
+	dw MusicDA ; tempo
+	dw MusicDB ; duty cycle
+	dw MusicDC ; intensity
+	dw MusicDD ; update sound status
+	dw MusicDE ; ???? + duty cycle
+	dw MusicDF ; 
+	dw MusicE0 ; 
+	dw MusicE1 ; vibrato
+	dw MusicE2 ;
+	dw MusicE3 ; music noise sampling
+	dw MusicE4 ; force panning
+	dw MusicE5 ; volume
+	dw MusicE6 ; tune
+	dw MusicE7 ;
+	dw MusicE8 ;
+	dw MusicE9 ; global tempo
+	dw MusicEA ; restart current channel from header
+	dw MusicEB ; new song
+	dw MusicEC ; sfx priority on
+	dw MusicED ; sfx priority off
+	dw MusicEE ;
+	dw MusicEF ; stereo panning
+	dw MusicF0 ; sfx noise sampling
+	dw MusicF1 ; nothing
+	dw MusicF1 ; nothing
+	dw MusicF1 ; nothing
+	dw MusicF1 ; nothing
+	dw MusicF1 ; nothing
+	dw MusicF1 ; nothing
+	dw MusicF1 ; nothing
+	dw MusicF1 ; nothing
+	dw MusicF9 ;
+	dw MusicFA ; 
+	dw MusicFB ;
+	dw MusicFC ; jump
+	dw MusicFD ; loop
+	dw MusicFE ; call
+	dw MusicFF ; return
+; e8780
+
+MusicF1: ; e8780
+	ret
+; e8781
+
+MusicFF: ; e8781
+; called when $ff is encountered w/ subroutine flag set
+; end music stream
+; return to caller of the subroutine
+	; reset subroutine flag
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	res 1, [hl]
+	; copy LastMusicAddress to MusicAddress
+	ld hl, Channel1LastMusicAddress - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ret
+; e8796
+
+MusicFE: ; e8796
+; call music stream (subroutine)
+; parameters: ll hh ; pointer to subroutine
+	; get pointer from next 2 bytes
+	call GetMusicByte
+	ld e, a
+	call GetMusicByte
+	ld d, a
+	push de
+	; copy MusicAddress to LastMusicAddress
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, Channel1LastMusicAddress - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	; load pointer into MusicAddress
+	pop de
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	; set subroutine flag
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	set 1, [hl]
+	ret
+; e87bc
+
+MusicFC: ; e87bc
+; jump
+; parameters: ll hh ; pointer
+	; get pointer from next 2 bytes
+	call GetMusicByte
+	ld e, a
+	call GetMusicByte
+	ld d, a
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ret
+; e87cc
+
+MusicFD: ; e87cc
+; loops xx - 1 times
+; 	00: infinite
+; params: 3
+;	xx ll hh
+;		xx : loop count
+;   	ll hh : pointer
+
+	; get loop count
+	call GetMusicByte
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	bit 2, [hl] ; has the loop been initiated?
+	jr nz, .checkloop
+	and a ; loop counter 0 = infinite
+	jr z, .loop
+	; initiate loop
+	dec a
+	set 2, [hl] ; set loop flag
+	ld hl, Channel1LoopCount - Channel1
+	add hl, bc
+	ld [hl], a ; store loop counter
+.checkloop
+	ld hl, Channel1LoopCount - Channel1
+	add hl, bc
+	ld a, [hl]
+	and a ; are we done?
+	jr z, .endloop
+	dec [hl]
+.loop
+	; get pointer
+	call GetMusicByte
+	ld e, a
+	call GetMusicByte
+	ld d, a
+	; load new pointer into MusicAddress
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ret
+
+.endloop
+	; reset loop flag
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	res 2, [hl]
+	; skip to next command
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc de ; skip
+	inc de ; pointer
+	ld [hl], d
+	dec hl
+	ld [hl], e
+	ret
+; e880e
+
+MusicFA: ; e880e
+; set condition for a jump
+; used with FB
+; params: 1
+;	xx ; condition
+
+	; set condition
+	call GetMusicByte
+	ld hl, Channel1Condition - Channel1
+	add hl, bc
+	ld [hl], a
+	ret
+; e8817
+
+MusicFB: ; e8817
+; conditional jump
+; used with FA
+; params: 3
+; 	xx: condition
+;	ll hh: pointer
+
+; check condition
+	; a = condition
+	call GetMusicByte
+	; if existing condition matches, jump to new address
+	ld hl, Channel1Condition - Channel1
+	add hl, bc
+	cp [hl]
+	jr z, .jump
+; skip to next command
+	; get address
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	; skip pointer
+	inc de
+	inc de
+	; update address
+	ld [hl], d
+	dec hl
+	ld [hl], e
+	ret
+.jump
+; jump to the new address
+	; get pointer
+	call GetMusicByte
+	ld e, a
+	call GetMusicByte
+	ld d, a
+	; update pointer in MusicAddress
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ret
+; e883e
+
+MusicEE; e883e
+; conditional jump
+; checks a byte in ram corresponding to the current channel
+; doesn't seem to be set by any commands
+; params: 2
+;		ll hh ; pointer
+
+; if ????, jump
+	; get channel
+	ld a, [CurChannel]
+	and a, $03 ; ch0-3
+	ld e, a
+	ld d, $00
+	; hl = $c2b8 + channel id
+	ld hl, $c2b8
+	add hl, de
+	; if set, jump
+	ld a, [hl]
+	and a
+	jr nz, .jump
+; skip to next command
+	; get address
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	; skip pointer
+	inc de
+	inc de
+	; update address
+	ld [hl], d
+	dec hl
+	ld [hl], e
+	ret
+.jump
+	; reset jump flag
+	ld [hl], $00
+	; de = pointer
+	call GetMusicByte
+	ld e, a
+	call GetMusicByte
+	ld d, a
+	; update address
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ret
+; e886d
+
+MusicF9: ; e886d
+; sets some flag
+; seems to be unused
+; params: 0
+	ld a, $01
+	ld [$c2b5], a
+	ret
+; e8873
+
+MusicE2: ; e8873
+; seems to have been dummied out
+; params: 1
+	call GetMusicByte
+	ld hl, $002c
+	add hl, bc
+	ld [hl], a
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	set 3, [hl]
+	ret
+; e8882
+
+MusicE1: ; e8882
+; vibrato
+; params: 2
+;	1: [xx]
+	; delay in frames
+;	2: [yz]
+	; y: extent
+	; z: rate (# frames per cycle)
+
+	; set vibrato flag?
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	set 0, [hl]
+	; start at lower frequency (extent is positive)
+	ld hl, Channel1Flags3 - Channel1
+	add hl, bc
+	res 0, [hl]
+	; get delay
+	call GetMusicByte
+; update delay
+	ld hl, Channel1VibratoDelay - Channel1
+	add hl, bc
+	ld [hl], a
+; update delay count
+	ld hl, Channel1VibratoDelayCount - Channel1
+	add hl, bc
+	ld [hl], a
+; update extent
+; this is split into halves only to get added back together at the last second
+	; get extent/rate
+	call GetMusicByte
+	ld hl, Channel1VibratoExtent - Channel1
+	add hl, bc
+	ld d, a
+	; get top nybble
+	and a, $f0
+	swap a
+	srl a ; halve
+	ld e, a
+	adc a, $00 ; round up
+	swap a
+	or e
+	ld [hl], a
+; update rate
+	ld hl, Channel1VibratoRate - Channel1
+	add hl, bc
+	; get bottom nybble
+	ld a, d
+	and a, $0f
+	ld d, a
+	swap a
+	or d
+	ld [hl], a
+	ret
+; e88bd
+
+MusicE0: ; e88bd
+; ????
+; params: 2
+	call GetMusicByte
+	ld [$c297], a
+	call GetMusicByte
+	ld d, a
+	and a, $0f
+	ld e, a
+	ld a, d
+	swap a
+	and a, $0f
+	ld d, a
+	call GetFrequency
+	ld hl, $0021
+	add hl, bc
+	ld [hl], e
+	ld hl, $0022
+	add hl, bc
+	ld [hl], d
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	set 1, [hl]
+	ret
+; e88e4
+
+MusicE6: ; e88e4
+; tone
+; params: 2
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	set 4, [hl]
+	ld hl, $0028
+	add hl, bc
+	call GetMusicByte
+	ld [hld], a
+	call GetMusicByte
+	ld [hl], a
+	ret
+; e88f7
+
+MusicE7: ; e88f7
+; shrug
+; params: 1
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	set 6, [hl]
+	call GetMusicByte
+	ld hl, $0029
+	add hl, bc
+	ld [hl], a
+	ret
+; e8906
+
+MusicDE: ; e8906
+; ???? + duty cycle
+; params: 1
+	;
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	set 2, [hl] ; duty cycle
+	;
+	call GetMusicByte
+	rrca
+	rrca
+	ld hl, $001c
+	add hl, bc
+	ld [hl], a
+	; update duty cycle
+	and a, $c0 ; only uses top 2 bits
+	ld hl, Channel1DutyCycle - Channel1
+	add hl, bc
+	ld [hl], a
+	ret
+; e891e
+
+MusicE8: ; e891e
+; shrug
+; params: 1
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	set 5, [hl]
+	call GetMusicByte
+	ld hl, $002a
+	add hl, bc
+	ld [hl], a
+	ret
+; e892d
+
+MusicDF: ; e892d
+; toggle something
+; params: none
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	bit 3, [hl]
+	jr z, .on
+	res 3, [hl]
+	ret
+.on
+	set 3, [hl]
+	ret
+; e893b
+
+MusicE3: ; e893b
+; toggle music noise sampling
+; can't be used as a straight toggle since the param is not read from on->off
+; params:
+; 	noise on: 1
+; 	noise off: 0
+	; check if noise sampling is on
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	bit 4, [hl]
+	jr z, .on
+	; turn noise sampling off
+	res 4, [hl]
+	ret
+.on
+	; turn noise sampling on
+	set 4, [hl]
+	call GetMusicByte
+	ld [MusicNoiseSampleSet], a
+	ret
+; e894f
+
+MusicF0: ; e894f
+; toggle sfx noise sampling
+; params:
+;	on: 1
+; 	off: 0
+	; check if noise sampling is on
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	bit 4, [hl]
+	jr z, .on
+	; turn noise sampling off
+	res 4, [hl]
+	ret
+.on
+	; turn noise sampling on
+	set 4, [hl]
+	call GetMusicByte
+	ld [SFXNoiseSampleSet], a
+	ret
+; e8963
+
+MusicD8: ; e8963
+; note length
+;	# frames per 16th note
+; intensity: see MusicDC
+; params: 2
+	; note length
+	call GetMusicByte
+	ld hl, $002d
+	add hl, bc
+	ld [hl], a
+	ld a, [CurChannel]
+	and a, $03
+	cp a, $03
+	ret z
+	; intensity
+	call MusicDC
+	ret
+; e8977
+
+MusicDD: ; e8977
+; update sound status
+; params: 1
+	call GetMusicByte
+	ld [SoundInput], a
+	ld hl, Channel1NoteFlags - Channel1
+	add hl, bc
+	set 3, [hl]
+	ret
+; e8984
+
+MusicDB: ; e8984
+; duty cycle
+; params: 1
+	call GetMusicByte
+	rrca
+	rrca
+	and a, $c0
+	ld hl, Channel1DutyCycle - Channel1
+	add hl, bc
+	ld [hl], a
+	ret
+; e8991
+
+MusicDC: ; e8991
+; intensity
+; params: 1
+;	hi: pressure
+;   lo: velocity
+	call GetMusicByte
+	ld hl, Channel1Intensity - Channel1
+	add hl, bc
+	ld [hl], a
+	ret
+; e899a
+
+MusicDA: ; e899a
+; global tempo
+; params: 2
+;	de: tempo
+	call GetMusicByte
+	ld d, a
+	call GetMusicByte
+	ld e, a
+	call SetGlobalTempo
+	ret
+; e89a6
+
+MusicD0: ; e89a6
+; used by d0-d7
+; set octave based on lo nybble of the command
+	ld hl, Channel1Octave - Channel1
+	add hl, bc
+	ld a, [CurMusicByte] ; get current command
+	and a, $07
+	ld [hl], a
+	ret
+; e89b1
+
+MusicD9: ; e89b1
+; set starting octave
+; this forces all notes up by the starting octave
+; params: 1
+	call GetMusicByte
+	ld hl, Channel1StartingOctave - Channel1
+	add hl, bc
+	ld [hl], a
+	ret
+; e89ba
+
+MusicEF: ; e89ba
+; stereo panning
+; params: 1
+	; stereo on?
+	ld a, [Options]
+	bit 5, a ; stereo
+	jr nz, MusicE4
+	; skip param
+	call GetMusicByte
+	ret
+; e89c5
+
+MusicE4: ; e89c5
+; force panning
+; params: 1
+	call SetLRTracks
+	call GetMusicByte
+	ld hl, Channel1Tracks - Channel1
+	add hl, bc
+	and [hl]
+	ld [hl], a
+	ret
+; e89d2
+
+MusicE5: ; e89d2
+; set volume
+; params: 1
+;	see Volume
+	; read param even if it's not used
+	call GetMusicByte
+	; is the song fading?
+	ld a, [MusicFade]
+	and a
+	ret nz
+	; reload param
+	ld a, [CurMusicByte]
+	; set volume
+	ld [Volume], a
+	ret
+; e89e1
+
+MusicE9: ; e89e1
+; set global tempo to current channel tempo +- param
+; params: 1 signed
+	call GetMusicByte
+	ld e, a
+	; check sign
+	cp a, $80
+	jr nc, .negative
+;positive
+	ld d, $00
+	jr .ok
+.negative
+	ld d, $ff
+.ok
+	ld hl, Channel1Tempo - Channel1
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	ld e, l
+	ld d, h
+	call SetGlobalTempo
+	ret
+; e89fd
+
+MusicEC: ; e89fd
+; turn sfx priority on
+; params: none
+	ld a, $01
+	ld [SFXPriority], a
+	ret
+; e8a03
+
+MusicED: ; e8a03
+; turn sfx priority off
+; params: none
+	xor a
+	ld [SFXPriority], a
+	ret
+; e8a08
+
+MusicEA: ; e8a08
+; restart current channel from channel header (same bank)
+; params: 2 (5)
+; ll hh: pointer to new channel header
+;	header format: 0x yy zz
+;		x: channel # (0-3)
+;		zzyy: pointer to new music data
+
+	; update music id
+	ld hl, Channel1MusicID - Channel1
+	add hl, bc
+	ld a, [hli]
+	ld [MusicIDLo], a
+	ld a, [hl]
+	ld [MusicIDHi], a
+	; update music bank
+	ld hl, Channel1MusicBank - Channel1
+	add hl, bc
+	ld a, [hl]
+	ld [MusicBank], a
+	; get pointer to new channel header
+	call GetMusicByte
+	ld l, a
+	call GetMusicByte
+	ld h, a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	push bc ; save current channel
+	call LoadChannel
+	call StartChannel
+	pop bc ; restore current channel
+	ret
+; e8a30
+
+MusicEB: ; e8a30
+; new song
+; params: 2
+;	de: song id
+	call GetMusicByte
+	ld e, a
+	call GetMusicByte
+	ld d, a
+	push bc
+	call LoadMusic
+	pop bc
+	ret
+; e8a3e
+
+GetMusicByte: ; e8a3e
+; returns byte from current address in a
+; advances to next byte in music data
+; input: bc = start of current channel
+	push hl
+	push de
+	; load address into de
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld d, [hl]
+	; load bank into a
+	ld hl, Channel1MusicBank - Channel1
+	add hl, bc
+	ld a, [hl]
+	; get byte
+	call LoadMusicByte ; load data into CurMusicByte
+	inc de ; advance to next byte for next time this is called
+	; update channeldata address
+	ld hl, Channel1MusicAddress - Channel1
+	add hl, bc
+	ld a, e
+	ld [hli], a
+	ld [hl], d
+	; cleanup
+	pop de
+	pop hl
+	; store channeldata in a
+	ld a, [CurMusicByte]
+	ret
+; e8a5d
+
+GetFrequency: ; e8a5d
+; generate frequency
+; input:
+; 	d: octave
+;	e: pitch
+; output:
+; 	de: frequency
+
+; get octave
+	; get starting octave
+	ld hl, Channel1StartingOctave - Channel1
+	add hl, bc
+	ld a, [hl]
+	swap a ; hi nybble
+	and a, $0f
+	; add current octave
+	add d
+	push af ; we'll use this later
+	; get starting octave
+	ld hl, Channel1StartingOctave - Channel1
+	add hl, bc
+	ld a, [hl]
+	and a, $0f ; lo nybble
+	; 
+	ld l, a ; ok
+	ld d, $00
+	ld h, d
+	add hl, de ; add current pitch
+	add hl, hl ; skip 2 bytes for each
+	ld de, FrequencyTable
+	add hl, de
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	; get our octave
+	pop af
+.loop
+	; [7 - octave] loops
+	cp a, $07
+	jr nc, .ok
+	; sra de
+	sra d
+	rr e
+	inc a
+	jr .loop
+.ok
+	ld a, d
+	and a, $07 ; top 3 bits for frequency (11 total)
+	ld d, a
+	ret
+; e8a8d
+
+SetNoteDuration: ; e8a8d
+; input: a = note duration in 16ths
+	; store delay units in de
+	inc a
+	ld e, a
+	ld d, $00
+	; store NoteLength in a
+	ld hl, Channel1NoteLength - Channel1
+	add hl, bc
+	ld a, [hl]
+	; multiply NoteLength by delay units
+	ld l, $00 ; just multiply
+	call MultiplySimple
+	ld a, l ; % $100
+	; store Tempo in de
+	ld hl, Channel1Tempo - Channel1
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	; add ???? to the next result
+	ld hl, $0016
+	add hl, bc
+	ld l, [hl]
+	; multiply Tempo by last result (NoteLength * delay % $100)
+	call MultiplySimple
+	; copy result to de
+	ld e, l
+	ld d, h
+	; store result in ????
+	ld hl, $0016
+	add hl, bc
+	ld [hl], e
+	; store result in NoteDuration
+	ld hl, Channel1NoteDuration - Channel1
+	add hl, bc
+	ld [hl], d
+	ret
+; e8ab8
+
+MultiplySimple: ; e8ab8
+; multiplies a and de
+; adds the result to l
+; stores the result in hl
+	ld h, $00
+.loop
+	; halve a
+	srl a
+	; is there a remainder?
+	jr nc, .skip
+	; add it to the result
+	add hl, de
+.skip
+	; add de, de
+	sla e
+	rl d
+	; are we done?
+	and a
+	jr nz, .loop
+	ret
+; e8ac7
+
+SetGlobalTempo: ; e8ac7
+	push bc ; save current channel
+	; are we dealing with music or sfx?
+	ld a, [CurChannel]
+	cp a, $04
+	jr nc, .sfxchannels
+	ld bc, Channel1
+	call SetTempo
+	ld bc, Channel2
+	call SetTempo
+	ld bc, Channel3
+	call SetTempo
+	ld bc, Channel4
+	call SetTempo
+	jr .end
+.sfxchannels
+	ld bc, Channel5
+	call SetTempo
+	ld bc, Channel6
+	call SetTempo
+	ld bc, Channel7
+	call SetTempo
+	ld bc, Channel8
+	call SetTempo
+.end
+	pop bc ; restore current channel
+	ret
+; e8b03
+
+SetTempo: ; e8b03
+; input:
+; 	de: note length
+	; update Tempo
+	ld hl, Channel1Tempo - Channel1
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	; clear ????
+	xor a
+	ld hl, $0016
+	add hl, bc
+	ld [hl], a
+	ret
+; e8b11
+
 StartChannel: ; e8b11
 	call SetLRTracks
-	ld hl, $0003
+	ld hl, Channel1Flags - Channel1
 	add hl, bc
-	set 0, [hl] ; channel on
+	set 0, [hl] ; turn channel on
 	ret
 ; e8b1b
 
 SetLRTracks: ; e8b1b
-; input:
-;   bc = Channels ($c101)
+; set tracks for a the current channel to default
 ; seems to be redundant since this is overwritten by stereo data later
 	push de
+	; store current channel in de
 	ld a, [CurChannel]
-	and a, $03 ; bit 0-1
+	and a, $03
 	ld e, a
 	ld d, $00
-	call GetLRTracks ; hl = mono / stereo table
-	add hl, de       ; + channel #
-	ld a, [hl]       ; get result
+	; get this channel's lr tracks
+	call GetLRTracks
+	add hl, de ; de = channel 0-3
+	ld a, [hl]
+	; load lr tracks into Tracks
 	ld hl, Channel1Tracks - Channel1
 	add hl, bc
-	ld [hl], a ; set tracks
+	ld [hl], a
 	pop de
 	ret
 ; e8b30
@@ -74454,7 +76660,7 @@
 	ld e, [hl]
 	inc hl
 	ld d, [hl] ; music header address
-	call FarLoadMusicByte ; store first byte of music header in [a]
+	call FarLoadMusicByte ; store first byte of music header in a
 	rlca
 	rlca
 	and a, $03 ; get number of channels
@@ -74473,23 +76679,116 @@
 	ld [$c2b9], a
 	ld [$c2ba], a
 	ld [$c2bb], a
-	ld [$c2a0], a
-	ld [$c2a1], a
+	ld [NoiseSampleAddressLo], a
+	ld [NoiseSampleAddressHi], a
 	ld [$c2a2], a
-	ld [$c2a4], a
+	ld [MusicNoiseSampleSet], a
 	call MusicOn
 	ret
 ; e8b79
 
-INCBIN "baserom.gbc",$e8b79,$e8c04 - $e8b79
+PlayCry: ; e8b79
+; input: de = cry id
+	call MusicOff
+	; load cry id
+	ld hl, MusicID
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	; seek pointer table
+	ld hl, Cries
+	add hl, de
+	add hl, de
+	add hl, de
+	; get bank
+	ld a, [hli]
+	ld [MusicBank], a
+	; get address
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+; read cry header
+	; get byte at bank:address
+	call FarLoadMusicByte
+	; get top 2 bits (# chs)
+	rlca
+	rlca
+	and a, $03
+	inc a ; ch count -> loop count
+.loop
+	push af
+	call LoadChannel
+	ld hl, Channel1Flags - Channel1
+	add hl, bc
+	set 5, [hl]
+	ld hl, Channel1Flags2 - Channel1
+	add hl, bc
+	set 4, [hl]
+	ld hl, $0027
+	add hl, bc
+	ld a, [$c2b0]
+	ld [hli], a
+	ld a, [$c2b1]
+	ld [hl], a
+	; are we on the last channel? (music & sfx)
+	ld a, [CurChannel]
+	and a, $03
+	cp a, $03
+	jr nc, .start
+	; update tempo
+	ld hl, Channel1Tempo - Channel1
+	add hl, bc
+	ld a, [$c2b2]
+	ld [hli], a
+	ld a, [$c2b3]
+	ld [hl], a
+.start
+	call StartChannel
+	ld a, [$c2bc]
+	and a
+	jr z, .next
+; play cry from the side of the monster it's coming from (stereo only)
+; outside of battles cries play on both tracks
+	; is stereo on?
+	ld a, [Options]
+	bit 5, a ; stereo
+	jr z, .next
+	; and [Tracks], [CryTracks]
+	ld hl, Channel1Tracks - Channel1
+	add hl, bc
+	ld a, [hl]
+	ld hl, CryTracks
+	and a, [hl]
+	ld hl, Channel1Tracks - Channel1
+	add hl, bc
+	ld [hl], a
+.next
+	pop af
+	dec a
+	jr nz, .loop
+	; save current volume
+	ld a, [LastVolume]
+	and a
+	jr nz, .end
+	ld a, [Volume]
+	ld [LastVolume], a
+	; cries have max volume
+	ld a, $77
+	ld [Volume], a
+.end
+	ld a, $01 ; stop playing music
+	ld [SFXPriority], a
+	call MusicOn
+	ret
+; e8c04
 
 LoadSFX: ; e8c04
 ; clear channels if they aren't already
 	call MusicOff
-	ld hl, $c1cc ; ch5 on
-	bit 0, [hl]
+	ld hl, $c1cc ; Channel5Flags
+	bit 0, [hl] ; ch5 on?
 	jr z, .ch6
-	res 0, [hl]
+	res 0, [hl] ; turn it off
 	xor a
 	ld [$ff00+$11], a ; length/wavepattern = 0
 	ld a, $08
@@ -74499,13 +76798,13 @@
 	ld a, $80
 	ld [$ff00+$14], a ; restart sound (freq hi = 0)
 	xor a
-	ld [$c29c], a ; ????
+	ld [SoundInput], a ; global sound off
 	ld [$ff00+$10], a ; sweep = 0
 .ch6
-	ld hl, $c1fe ; ch6 on
+	ld hl, $c1fe ; ch6 on?
 	bit 0, [hl]
 	jr z, .ch7
-	res 0, [hl]
+	res 0, [hl] ; turn it off
 	xor a
 	ld [$ff00+$16], a ; length/wavepattern = 0
 	ld a, $08
@@ -74515,10 +76814,10 @@
 	ld a, $80
 	ld [$ff00+$19], a ; restart sound (freq hi = 0)
 .ch7
-	ld hl, $c230 ; ch7 on
+	ld hl, $c230 ; ch7 on?
 	bit 0, [hl]
 	jr z, .ch8
-	res 0, [hl]
+	res 0, [hl] ; turn it off
 	xor a
 	ld [$ff00+$1a], a ; sound mode #3 off
 	ld [$ff00+$1b], a ; length/wavepattern = 0
@@ -74529,10 +76828,10 @@
 	ld a, $80
 	ld [$ff00+$1e], a ; restart sound (freq hi = 0)
 .ch8
-	ld hl, $c262 ; ch8 on
+	ld hl, $c262 ; ch8 on?
 	bit 0, [hl]
 	jr z, .chscleared
-	res 0, [hl]
+	res 0, [hl] ; turn it off
 	xor a
 	ld [$ff00+$20], a ; length/wavepattern = 0
 	ld a, $08
@@ -74542,8 +76841,8 @@
 	ld a, $80
 	ld [$ff00+$23], a ; restart sound (freq hi = 0)
 	xor a
-	ld [$c2a0], a
-	ld [$c2a1], a
+	ld [NoiseSampleAddressLo], a
+	ld [NoiseSampleAddressHi], a
 .chscleared
 ; start reading sfx header for # chs
 	ld hl, MusicID
@@ -74554,22 +76853,25 @@
 	add hl, de ; three
 	add hl, de ; byte
 	add hl, de ; pointers
+	; get bank
 	ld a, [hli]
-	ld [MusicBank], a ; get bank
-	ld e, [hl] ; get address
+	ld [MusicBank], a
+	; get address
+	ld e, [hl]
 	inc hl
 	ld d, [hl]
-	call FarLoadMusicByte ; get # channels
-	rlca
-	rlca
-	and a, $03 ; bit 0-1
+	; get # channels
+	call FarLoadMusicByte
+	rlca ; top 2
+	rlca ; bits
+	and a, $03
 	inc a ; # channels -> # loops
 .startchannels
 	push af
 	call LoadChannel ; bc = current channel
-	ld hl, $0003
+	ld hl, Channel1Flags - Channel1
 	add hl, bc
-	set 3, [hl] ; not sure what bit 3 does
+	set 3, [hl]
 	call StartChannel
 	pop af
 	dec a
@@ -74576,14 +76878,16 @@
 	jr nz, .startchannels
 	call MusicOn
 	xor a
-	ld [$c2b6], a
+	ld [SFXPriority], a
 	ret
 ; e8ca6
 
-INCBIN "baserom.gbc",$e8ca6,$e8d1b - $e8ca6
+INCBIN "baserom.gbc", $e8ca6, $e8d1b - $e8ca6
 
 LoadChannel: ; e8d1b
 ; prep channel for use
+; input:
+; 	de: 
 	; get pointer to current channel
 	call FarLoadMusicByte
 	inc de
@@ -74597,7 +76901,7 @@
 	ld c, [hl]
 	inc hl
 	ld b, [hl] ; bc = channel pointer
-	ld hl, $0003
+	ld hl, Channel1Flags - Channel1
 	add hl, bc
 	res 0, [hl] ; channel off
 	call ChannelInit
@@ -74626,29 +76930,32 @@
 ; e8d5b
 
 ChannelInit: ; e8d5b
-; make sure channel is clean
+; make sure channel is cleared
 ; set default tempo and note length in case nothing is loaded
 ; input:
 ;   bc = channel struct pointer
 	push de
 	xor a
-	ld hl, $0000
+	; get channel struct location and length
+	ld hl, Channel1MusicID - Channel1 ; start
 	add hl, bc
 	ld e, Channel2 - Channel1 ; channel struct length
-; clear channel struct
+	; clear channel
 .loop
 	ld [hli], a
 	dec e
 	jr nz, .loop
+	; set tempo to default ($100)
 	ld hl, Channel1Tempo - Channel1
 	add hl, bc
 	xor a
 	ld [hli], a
 	inc a
-	ld [hl], a ; default note length $100
+	ld [hl], a
+	; set note length to default ($01) (fast)
 	ld hl, Channel1NoteLength - Channel1
 	add hl, bc
-	ld [hl], a ; default tempo $01 (fast)
+	ld [hl], a
 	pop de
 	ret
 ; e8d76
@@ -74655,9 +76962,9 @@
 
 FarLoadMusicByte: ; e8d76
 ; input:
-;   de = address of current spot in music header
+;   de = current music address
 ; output:
-;   a
+;   a = CurMusicByte
 	ld a, [MusicBank]
 	call LoadMusicByte
 	ld a, [CurMusicByte]
@@ -74664,8 +76971,352 @@
 	ret
 ; e8d80
 
-INCBIN "baserom.gbc",$e8d80,$e8fc2 - $e8d80
+FrequencyTable: ; e8d80
+	dw $0000 ; filler
+	dw $f82c
+	dw $f89d
+	dw $f907
+	dw $f96b
+	dw $f9ca
+	dw $fa23
+	dw $fa77
+	dw $fac7
+	dw $fb12
+	dw $fb58
+	dw $fb9b
+	dw $fbda
+	dw $fc16
+	dw $fc4e
+	dw $fc83
+	dw $fcb5
+	dw $fce5
+	dw $fd11
+	dw $fd3b
+	dw $fd63
+	dw $fd89
+	dw $fdac
+	dw $fdcd
+	dw $fded
+; e8db2
 
+WaveSamples: ; e8db2
+	; these are streams of 32 4-bit values used as wavepatterns
+	; nothing interesting here!
+	db $02, $46, $8a, $ce, $ff, $fe, $ed, $dc, $cb, $a9, $87, $65, $44, $33, $22, $11
+	db $02, $46, $8a, $ce, $ef, $ff, $fe, $ee, $dd, $cb, $a9, $87, $65, $43, $22, $11
+	db $13, $69, $bd, $ee, $ee, $ff, $ff, $ed, $de, $ff, $ff, $ee, $ee, $db, $96, $31
+	db $02, $46, $8a, $cd, $ef, $fe, $de, $ff, $ee, $dc, $ba, $98, $76, $54, $32, $10
+	db $01, $23, $45, $67, $8a, $cd, $ee, $f7, $7f, $ee, $dc, $a8, $76, $54, $32, $10
+	db $00, $11, $22, $33, $44, $33, $22, $11, $ff, $ee, $cc, $aa, $88, $aa, $cc, $ee
+	db $02, $46, $8a, $ce, $cb, $a9, $87, $65, $ff, $fe, $ed, $dc, $44, $33, $22, $11
+	db $c0, $a9, $87, $f5, $ff, $fe, $ed, $dc, $44, $33, $22, $f1, $02, $46, $8a, $ce
+	db $44, $33, $22, $1f, $00, $46, $8a, $ce, $f8, $fe, $ed, $dc, $cb, $a9, $87, $65
+	db $11, $00, $00, $08, $00, $13, $57, $9a, $b4, $ba, $a9, $98, $87, $65, $43, $21
+; e8e52
+
+NoiseSampleSetsPointers: ; e8e52
+	dw NoiseSampleSets0
+	dw NoiseSampleSets1
+	dw NoiseSampleSets2
+	dw NoiseSampleSets3
+	dw NoiseSampleSets4
+	dw NoiseSampleSets5
+; e8e5e
+
+NoiseSampleSets:
+NoiseSampleSets0: ; e8e5e
+	dw NoiseSampleSet00 ; rest
+	dw NoiseSampleSet01 ; c
+	dw NoiseSampleSet02 ; c#
+	dw NoiseSampleSet03 ; d
+	dw NoiseSampleSet04 ; d#
+	dw NoiseSampleSet05 ; e
+	dw NoiseSampleSet06 ; f
+	dw NoiseSampleSet07 ; f#
+	dw NoiseSampleSet08 ; g
+	dw NoiseSampleSet09 ; g#
+	dw NoiseSampleSet10 ; a
+	dw NoiseSampleSet11 ; a#
+	dw NoiseSampleSet12 ; b
+NoiseSampleSets1: ; e8e78
+	dw NoiseSampleSet00
+	dw NoiseSampleSet08
+	dw NoiseSampleSet09
+	dw NoiseSampleSet10
+	dw NoiseSampleSet11
+	dw NoiseSampleSet12
+	dw NoiseSampleSet13
+	dw NoiseSampleSet14
+	dw NoiseSampleSet15
+	dw NoiseSampleSet16
+	dw NoiseSampleSet17
+	dw NoiseSampleSet18
+	dw NoiseSampleSet19
+NoiseSampleSets2: ; e8e92
+	dw NoiseSampleSet00
+	dw NoiseSampleSet01
+	dw NoiseSampleSet17
+	dw NoiseSampleSet18
+	dw NoiseSampleSet19
+	dw NoiseSampleSet05
+	dw NoiseSampleSet06
+	dw NoiseSampleSet07
+	dw NoiseSampleSet08
+	dw NoiseSampleSet09
+	dw NoiseSampleSet10
+	dw NoiseSampleSet11
+	dw NoiseSampleSet12
+NoiseSampleSets3: ; e8eac
+	dw NoiseSampleSet21
+	dw NoiseSampleSet22
+	dw NoiseSampleSet23
+	dw NoiseSampleSet24
+	dw NoiseSampleSet25
+	dw NoiseSampleSet26
+	dw NoiseSampleSet20
+	dw NoiseSampleSet27
+	dw NoiseSampleSet28
+	dw NoiseSampleSet29
+	dw NoiseSampleSet21
+	dw NoiseSampleSet37
+	dw NoiseSampleSet34
+NoiseSampleSets4: ; e8ec6
+	dw NoiseSampleSet21
+	dw NoiseSampleSet20
+	dw NoiseSampleSet23
+	dw NoiseSampleSet24
+	dw NoiseSampleSet25
+	dw NoiseSampleSet33
+	dw NoiseSampleSet26
+	dw NoiseSampleSet35
+	dw NoiseSampleSet31
+	dw NoiseSampleSet32
+	dw NoiseSampleSet36
+	dw NoiseSampleSet37
+	dw NoiseSampleSet30
+NoiseSampleSets5: ; e8ee0
+	dw NoiseSampleSet00
+	dw NoiseSampleSet17
+	dw NoiseSampleSet18
+	dw NoiseSampleSet19
+	dw NoiseSampleSet27
+	dw NoiseSampleSet28
+	dw NoiseSampleSet29
+	dw NoiseSampleSet05
+	dw NoiseSampleSet06
+	dw NoiseSampleSet30
+	dw NoiseSampleSet24
+	dw NoiseSampleSet23
+	dw NoiseSampleSet37
+; e8efa
+
+NoiseSampleSet00: ; e8efa
+; unused
+	db $20, $11, $00
+	db $ff ; end
+; e8efe
+
+NoiseSampleSet01: ; e8efe
+	db $20, $c1, $33
+	db $ff ; end
+; e8f02
+
+NoiseSampleSet02: ; e8f02
+	db $20, $b1, $33
+	db $ff ; end
+; e8f06
+
+NoiseSampleSet03: ; e8f06
+	db $20, $a1, $33
+	db $ff ; end
+; e8f0a
+
+NoiseSampleSet04: ; e8f0a
+	db $20, $81, $33
+	db $ff ; end
+; e8f0e
+
+NoiseSampleSet05: ; e8f0e
+	db $27, $84, $37
+	db $26, $84, $36
+	db $25, $83, $35
+	db $24, $83, $34
+	db $23, $82, $33
+	db $22, $81, $32
+	db $ff ; end
+; e8f21
+
+NoiseSampleSet06: ; e8f21
+	db $20, $51, $2a
+	db $ff ; end
+; e8f25
+
+NoiseSampleSet07: ; e8f25
+	db $21, $41, $2b
+	db $20, $61, $2a
+	db $ff ; end
+; e8f2c
+
+NoiseSampleSet08: ; e8f2c
+	db $20, $81, $10
+	db $ff ; end
+; e8f30
+
+NoiseSampleSet09: ; e8f30
+	db $20, $82, $23
+	db $ff ; end
+; e8f34
+
+NoiseSampleSet10: ; e8f34
+	db $20, $82, $25
+	db $ff ; end
+; e8f38
+
+NoiseSampleSet11: ; e8f38
+	db $20, $82, $26
+	db $ff ; end
+; e8f3c
+
+NoiseSampleSet12: ; e8f3c
+	db $20, $a1, $10
+	db $ff ; end
+; e8f40
+
+NoiseSampleSet13: ; e8f40
+	db $20, $a2, $11
+	db $ff ; end
+; e8f44
+
+NoiseSampleSet14: ; e8f44
+	db $20, $a2, $50
+	db $ff ; end
+; e8f48
+
+NoiseSampleSet15: ; e8f48
+	db $20, $a1, $18
+	db $20, $31, $33
+	db $ff ; end
+; e8f4f
+
+NoiseSampleSet16: ; e8f4f
+	db $22, $91, $28
+	db $20, $71, $18
+	db $ff ; end
+; e8f56
+
+NoiseSampleSet17: ; e8f56
+	db $20, $91, $22
+	db $ff ; end
+; e8f5a
+
+NoiseSampleSet18: ; e8f5a
+	db $20, $71, $22
+	db $ff ; end
+; e8f5e
+
+NoiseSampleSet19: ; e8f5e
+	db $20, $61, $22
+	db $ff ; end
+; e8f62
+
+NoiseSampleSet20: ; e8f62
+	db $20, $11, $11
+	db $ff ; end
+; e8f66
+
+NoiseSampleSet21: ; e8f66
+	db $ff
+; e8f67
+
+NoiseSampleSet22: ; e8f67
+	db $20, $91, $33
+	db $ff ; end
+; e8f6b
+
+NoiseSampleSet23: ; e8f6b
+	db $20, $51, $32
+	db $ff ; end
+; e8f6f
+
+NoiseSampleSet24: ; e8f6f
+	db $20, $81, $31
+	db $ff ; end
+; e8f73
+
+NoiseSampleSet25: ; e8f73
+	db $20, $88, $6b
+	db $20, $71, $00
+	db $ff ; end
+; e8f7a
+
+NoiseSampleSet26: ; e8f7a
+	db $30, $91, $18
+	db $ff ; end
+; e8f7e
+
+NoiseSampleSet27: ; e8f7e
+	db $27, $92, $10
+	db $ff ; end
+; e8f82
+
+NoiseSampleSet28: ; e8f82
+	db $33, $91, $00
+	db $33, $11, $00
+	db $ff ; end
+; e8f89
+
+NoiseSampleSet29: ; e8f89
+	db $33, $91, $11
+	db $33, $11, $00
+	db $ff ; end
+; e8f90
+
+NoiseSampleSet30: ; e8f90
+	db $33, $88, $15
+	db $20, $65, $12
+	db $ff ; end
+; e8f97
+
+NoiseSampleSet31: ; e8f97
+	db $33, $51, $21
+	db $33, $11, $11
+	db $ff ; end
+; e8f9e
+
+NoiseSampleSet32: ; e8f9e
+	db $33, $51, $50
+	db $33, $11, $11
+	db $ff ; end
+; e8fa5
+
+NoiseSampleSet33: ; e8fa5
+	db $20, $a1, $31
+	db $ff ; end
+; e8fa9
+
+NoiseSampleSet34: ; e8fa9
+	db $20, $84, $12
+	db $ff ; end
+; e8fad
+
+NoiseSampleSet35: ; e8fad
+	db $33, $81, $00
+	db $33, $11, $00
+	db $ff ; end
+; e8fb4
+
+NoiseSampleSet36: ; e8fb4
+	db $33, $81, $21
+	db $33, $11, $11
+	db $ff ; end
+; e8fbb
+
+NoiseSampleSet37: ; e8fbb
+	db $20, $a8, $6b
+	db $20, $71, $00
+	db $ff ; end
+; e8fc2
+
 GetLRTracks: ; e8fc2
 ; gets the default sound l/r channels
 ; stores mono/stereo table in hl
@@ -74682,15 +77333,14 @@
 
 MonoTracks: ; e8fd1
 ; bit corresponds to track #
-; top nybble: right channel
-; bottom nybble: left channel
+; hi: left channel
+; lo: right channel
 	db $11, $22, $44, $88
 ; e8fd5
 
 StereoTracks: ; e8fd5
-; seems to be wrong
-; figure out what this is actually for
-; might be default then clears one nybble based on song id
+; made redundant
+; seems to be modified on a per-song basis
 	db $11, $22, $44, $88
 ; e8fd9
 
@@ -74707,16 +77357,50 @@
 	dw Channel8
 ; e8fe9
 
-; identical in function to SoundRestart but cleaner
-INCBIN "baserom.gbc",$e8fe9,$e900a - $e8fe9
+ClearChannels: ; e8fe9
+; runs ClearChannel for all 4 channels
+; doesn't seem to be used, but functionally identical to SoundRestart
+	ld hl, $ff24
+	xor a
+	ld [hli], a
+	ld [hli], a
+	ld a, $80
+	ld [hli], a
+	ld hl, $ff10
+	ld e, $04
+.loop
+	call ClearChannel
+	dec e
+	jr nz, .loop
+	ret
+; e8ffe
 
+ClearChannel: ; e8ffe
+; input: hl = beginning hw sound register ($ff10, $ff15, $ff1a, $ff1f)
+; output: 00 00 80 00 80
+
+;   sound channel   1      2      3      4
+	xor a
+	ld [hli], a ; $ff10, $ff15, $ff1a, $ff1f ; sweep = 0
+
+	ld [hli], a ; $ff11, $ff16, $ff1b, $ff20 ; length/wavepattern = 0
+	ld a, $08
+	ld [hli], a ; $ff12, $ff17, $ff1c, $ff21 ; envelope = 0
+	xor a
+	ld [hli], a ; $ff13, $ff18, $ff1d, $ff22 ; frequency lo = 0
+	ld a, $80
+	ld [hli], a ; $ff14, $ff19, $ff1e, $ff23 ; restart sound (freq hi = 0)
+	ret
+; e900a
+
 PlayTrainerEncounterMusic: ; e900a
 ; input: e = trainer type
-	; turn music off for one frame
+	; turn fade off
 	xor a
-	ld [MusicFade], a ; $00 = infinite
+	ld [MusicFade], a
+	; play nothing for one frame
 	push de
-	ld de, $0000
+	ld de, $0000 ; id: Music_Nothing
 	call StartMusic
 	call DelayFrame
 	; play new song
@@ -74805,9 +77489,8 @@
 ; e906e
 
 Music: ; e906e
-; bank, address
-	dbw BANK(NoMusic), NoMusic
-	dbw $3a, $7808
+	dbw BANK(Music_Nothing), Music_Nothing ; 0xe91a3
+	dbw BANK(Music_TitleScreen), Music_TitleScreen ; 0xeb808
 	dbw $3b, $4000
 	dbw $3b, $42ca
 	dbw $3b, $4506
@@ -74829,7 +77512,7 @@
 	dbw $3c, $45bf
 	dbw $3d, $4000
 	dbw $3d, $435b
-	dbw $3a, $7eab
+	dbw BANK(Music_TrainerVictory), Music_TrainerVictory ; 0xebeab
 	dbw $3d, $4518
 	dbw $3d, $462c
 	dbw $3d, $4815
@@ -74852,23 +77535,23 @@
 	dbw $3b, $7c01
 	dbw $3b, $72d0
 	dbw $3c, $4000
-	dbw $3a, $650d
-	dbw $3a, $69c1
-	dbw $3a, $574f
-	dbw $3a, $5b6f
-	dbw $3a, $6040
-	dbw $3a, $62be
+	dbw BANK(Music_JohtoGymLeaderBattle), Music_JohtoGymLeaderBattle ; 0xea50d
+	dbw BANK(Music_ChampionBattle), Music_ChampionBattle ; 0xea9c1
+	dbw BANK(Music_RivalBattle), Music_RivalBattle ; 0xe974f
+	dbw BANK(Music_RocketBattle), Music_RocketBattle ; 0xe9b6f
+	dbw BANK(Music_ElmsLab), Music_ElmsLab ; 0xea040
+	dbw BANK(Music_DarkCave), Music_DarkCave
 	dbw $3c, $4386
-	dbw $3a, $54e9
-	dbw $3a, $6d99
+	dbw BANK(Music_Route36), Music_Route36 ; 0xe94e9
+	dbw BANK(Music_SSAqua), Music_SSAqua ; 0xead99
 	dbw $3d, $66c3
 	dbw $3b, $6e3e
 	dbw $3d, $74a2
-	dbw $3a, $7de1
+	dbw BANK(Music_LookPokemaniac), Music_LookPokemaniac ; 0xebde1
 	dbw $3b, $635e
-	dbw $3a, $72d3
-	dbw $3a, $7453
-	dbw $3a, $7676
+	dbw BANK(Music_NewBarkTown), Music_NewBarkTown ; 0xeb2d3
+	dbw BANK(Music_GoldenrodCity), Music_GoldenrodCity ; 0xeb453
+	dbw BANK(Music_VermilionCity), Music_VermilionCity ; 0xeb676
 	dbw $3b, $645f
 	dbw $3d, $7b13
 	dbw $3d, $6811
@@ -74891,7 +77574,7 @@
 	dbw $3d, $7055
 	dbw $3d, $7308
 	dbw $3d, $78fd
-	dbw $3a, $7d9e
+	dbw BANK(Music_RuinsOfAlphInterior), Music_RuinsOfAlphInterior ; 0xebd9e
 	dbw $3d, $766d
 	dbw $3b, $79bc
 	dbw $3b, $7b3e
@@ -74911,21 +77594,92 @@
 	dbw $5e, $561d
 ; e91a3
 
-NoMusic: ; e91a3
-; (nothing)
-	dbw $c0, NoMusic_Ch0
-	dbw $01, NoMusic_Ch1
-	dbw $02, NoMusic_Ch2
-	dbw $03, NoMusic_Ch3
-NoMusic_Ch0:
-NoMusic_Ch1:
-NoMusic_Ch2:
-NoMusic_Ch3: ; e91af
-	db $ff ; end
-; e91b0
+Music_Nothing: ; 0xe91a3
+	dbw $c0, Music_Nothing_Ch1
+	dbw $01, Music_Nothing_Ch2
+	dbw $02, Music_Nothing_Ch3
+	dbw $03, Music_Nothing_Ch4
+;0xe91af
 
-INCBIN "baserom.gbc",$e91b0,$e927c-$e91b0
+Music_Nothing_Ch1: ; 0xe91af
+Music_Nothing_Ch2: ; 0xe91af
+Music_Nothing_Ch3: ; 0xe91af
+Music_Nothing_Ch4: ; 0xe91af
+	endchannel ; end
+; 0xe91b0
 
+Cries: ; e91b0
+; 3-byte pointers
+	dbw $3c, $747d
+	dbw $3c, $7486
+	dbw $3c, $748f
+	dbw $3c, $7498
+	dbw $3c, $74a1
+	dbw $3c, $74aa
+	dbw $3c, $74b3
+	dbw $3c, $74bc
+	dbw $3c, $74c5
+	dbw $3c, $74ce
+	dbw $3c, $74d7
+	dbw $3c, $74e0
+	dbw $3c, $74e9
+	dbw $3c, $74f2
+	dbw $3c, $74fb
+	dbw $3c, $7504
+	dbw $3c, $750d
+	dbw $3c, $7516
+	dbw $3c, $751f
+	dbw $3c, $7528
+	dbw $3c, $7531
+	dbw $3c, $753a
+	dbw $3c, $7543
+	dbw $3c, $754c
+	dbw $3c, $7555
+	dbw $3c, $755e
+	dbw $3c, $7567
+	dbw $3c, $7570
+	dbw $3c, $7579
+	dbw $3c, $7582
+	dbw $3c, $758b
+	dbw $3c, $7594
+	dbw $3c, $759d
+	dbw $3c, $75a6
+	dbw $3c, $75af
+	dbw $3c, $75b8
+	dbw $3c, $75c1
+	dbw $3c, $75ca
+	dbw $3c, $6d81
+	dbw $3c, $6d96
+	dbw $3c, $6d8a
+	dbw $3c, $6dde
+	dbw $3c, $6d9f
+	dbw $3c, $6dc0
+	dbw $3c, $6d90
+	dbw $3c, $6da8
+	dbw $3c, $6db1
+	dbw $3c, $6db7
+	dbw $3c, $6dc6
+	dbw $3c, $6dcf
+	dbw $3c, $6e35
+	dbw $3c, $6dd8
+	dbw $3c, $6e3e
+	dbw $3c, $6de7
+	dbw $3c, $6ded
+	dbw $3c, $6e6b
+	dbw $3c, $6df6
+	dbw $3c, $6e74
+	dbw $3c, $6e08
+	dbw $3c, $6e11
+	dbw $3c, $6e1a
+	dbw $3c, $6e23
+	dbw $3c, $6e2c
+	dbw $3c, $6e62
+	dbw $3c, $6e47
+	dbw $3c, $6e50
+	dbw $3c, $6e59
+	dbw $3c, $6dff
+; e927c
+
 SFX: ; e927c
 	dbw $3c, $4b3f ; dex fanfare 50-79
 	dbw $3c, $4c2f ; item
@@ -75136,7 +77890,7243 @@
 	dbw $5e, $59cb ; twinkle
 ; e94e9
 
-INCBIN "baserom.gbc",$e94e9,$ebfc3 - $e94e9
+Music_Route36: ; 0xe94e9
+	dbw $c0, Music_Route36_Ch1
+	dbw $01, Music_Route36_Ch2
+	dbw $02, Music_Route36_Ch3
+	dbw $03, Music_Route36_Ch4
+; 0xe94f5
+
+Music_Route36_Ch1: ; 0xe94f5
+	tempo $0090
+	volume $77
+	dutycycle $03
+	tone $0001
+	vibrato $10, $15
+	stereopanning $0f
+	notetype $0c, $b3
+	octave 3
+	note $13
+	note $15
+	note $60
+	note $50
+	intensity $b5
+	note $67
+	intensity $b3
+	note $65
+	note $b0
+	note $a0
+	intensity $5d
+	note $b3
+	intensity $b5
+	note $63
+	note $a1
+	note $81
+	note $61
+	note $51
+	note $61
+	note $a1
+	note $41
+	note $b3
+	note $a3
+	note $81
+	note $b3
+	note $63
+	note $a1
+	note $81
+	note $61
+	note $51
+	note $61
+	note $a1
+	note $81
+	note $b3
+	note $a3
+	octave 4
+	note $43
+	octave 3
+	note $b1
+	intensity $b6
+	octave 4
+	note $69
+	intensity $b5
+	note $11
+	note $61
+	note $11
+	octave 3
+	note $b1
+	octave 4
+	note $43
+	note $33
+	note $11
+	octave 3
+	note $b3
+	intensity $b4
+	note $a1
+	octave 4
+	note $31
+	octave 3
+	note $71
+	note $a1
+	octave 4
+	note $31
+	octave 3
+	note $71
+	note $a1
+	octave 4
+	note $31
+	intensity $a4
+	octave 3
+	note $a1
+	octave 4
+	note $31
+	note $71
+	octave 3
+	note $a1
+	octave 4
+	note $31
+	note $71
+	octave 3
+	note $a1
+	octave 4
+	note $31
+	stereopanning $f0
+	intensity $95
+	octave 3
+	note $35
+	octave 2
+	note $a5
+	octave 3
+	note $33
+	octave 2
+	note $a5
+	octave 3
+	note $35
+	note $53
+	intensity $b5
+	note $35
+	note $a5
+	note $83
+	intensity $a5
+	octave 2
+	note $a5
+	octave 3
+	note $75
+	note $53
+	note $35
+	octave 2
+	note $a5
+	octave 3
+	note $33
+	intensity $b5
+	note $75
+	note $55
+	note $23
+	note $35
+	note $a5
+	note $83
+	octave 2
+	note $a5
+	octave 3
+	note $75
+	note $33
+	note $15
+	note $85
+	note $11
+	note $51
+	intensity $b7
+	note $15
+	note $83
+	note $31
+	note $51
+	note $81
+	note $a1
+	note $91
+	note $a1
+	octave 4
+	note $35
+	note $11
+	octave 3
+	note $c1
+	note $a5
+	note $35
+	stereopanning $0f
+	intensity $b5
+	note $41
+	note $51
+	loopchannel $00, $5517 ; end
+; 0xe95af
+
+Music_Route36_Ch2: ; 0xe95af
+	dutycycle $03
+	vibrato $10, $36
+	stereopanning $f0
+	notetype $0c, $c2
+	octave 3
+	note $61
+	note $10
+	note $60
+	intensity $c7
+	note $a7
+	note $13
+	intensity $c3
+	octave 4
+	note $11
+	octave 3
+	note $a0
+	octave 4
+	note $10
+	intensity $c7
+	note $67
+	octave 3
+	note $83
+	intensity $c7
+	octave 4
+	note $19
+	intensity $c4
+	octave 3
+	note $a1
+	octave 4
+	note $11
+	note $a1
+	note $82
+	intensity $c2
+	note $40
+	intensity $c7
+	note $4b
+	note $19
+	intensity $c4
+	octave 3
+	note $a1
+	octave 4
+	note $11
+	note $61
+	intensity $c2
+	note $41
+	note $40
+	note $60
+	intensity $c7
+	note $8b
+	note $a9
+	intensity $c4
+	note $61
+	note $a1
+	octave 5
+	note $11
+	octave 4
+	note $b2
+	note $a0
+	intensity $c7
+	note $87
+	note $b3
+	intensity $b0
+	note $af
+	intensity $b7
+	note $af
+	stereopanning $0f
+	intensity $a4
+	octave 3
+	note $a5
+	note $85
+	note $73
+	note $55
+	note $75
+	note $83
+	intensity $b3
+	note $a1
+	note $70
+	note $a0
+	intensity $b7
+	octave 4
+	note $3b
+	intensity $a4
+	octave 3
+	note $71
+	note $30
+	note $70
+	intensity $a7
+	note $ab
+	intensity $c7
+	note $a5
+	note $85
+	note $73
+	note $c5
+	note $a5
+	note $83
+	intensity $c3
+	note $a1
+	note $70
+	note $a0
+	intensity $c7
+	octave 4
+	note $3b
+	intensity $c3
+	octave 3
+	note $71
+	note $30
+	note $70
+	intensity $c7
+	note $ab
+	intensity $c2
+	note $81
+	note $50
+	note $80
+	intensity $b0
+	octave 4
+	note $11
+	intensity $b7
+	note $19
+	intensity $c5
+	octave 3
+	note $81
+	note $50
+	note $80
+	intensity $c7
+	octave 4
+	note $17
+	note $23
+	stereopanning $ff
+	note $35
+	note $a5
+	note $81
+	note $71
+	intensity $b0
+	note $33
+	intensity $b7
+	note $37
+	stereopanning $f0
+	intensity $c4
+	octave 3
+	note $70
+	note $80
+	note $a0
+	note $c0
+	loopchannel $00, $55ce ; end
+; 0xe966b
+
+Music_Route36_Ch3: ; 0xe966b
+	notetype $0c, $25
+	octave 3
+	note $60
+	note $02
+	note $60
+	note $00
+	octave 4
+	note $13
+	octave 3
+	note $11
+	note $61
+	note $11
+	note $40
+	note $02
+	note $40
+	note $00
+	octave 4
+	note $63
+	octave 2
+	note $b1
+	octave 3
+	note $41
+	note $51
+	note $63
+	note $11
+	note $63
+	note $11
+	note $61
+	note $11
+	note $83
+	note $41
+	note $83
+	note $41
+	note $81
+	note $41
+	note $63
+	note $11
+	note $63
+	note $11
+	note $61
+	note $11
+	note $83
+	note $41
+	note $83
+	note $41
+	note $81
+	note $41
+	note $a3
+	note $61
+	note $a3
+	note $61
+	note $a1
+	note $61
+	note $b3
+	note $81
+	note $b3
+	note $81
+	note $b1
+	note $81
+	note $73
+	note $31
+	note $73
+	note $31
+	note $71
+	note $31
+	note $33
+	octave 2
+	note $a1
+	octave 3
+	note $33
+	octave 2
+	note $a1
+	octave 3
+	note $31
+	octave 2
+	note $a1
+	octave 3
+	note $73
+	note $31
+	note $73
+	note $31
+	note $71
+	note $31
+	note $83
+	note $51
+	note $83
+	note $51
+	note $81
+	note $51
+	note $73
+	note $31
+	note $73
+	note $31
+	note $71
+	note $31
+	note $73
+	note $31
+	note $73
+	note $31
+	note $51
+	note $a1
+	note $73
+	note $31
+	note $73
+	note $31
+	note $71
+	note $31
+	note $83
+	note $51
+	note $83
+	note $51
+	note $81
+	note $51
+	note $73
+	note $31
+	note $73
+	note $31
+	note $71
+	note $31
+	note $73
+	note $31
+	note $73
+	note $31
+	note $71
+	note $31
+	note $83
+	note $11
+	note $83
+	note $11
+	note $81
+	note $11
+	note $83
+	note $11
+	note $83
+	note $11
+	note $51
+	note $81
+	note $a5
+	octave 4
+	note $73
+	octave 3
+	note $31
+	note $a1
+	octave 4
+	note $31
+	note $12
+	note $50
+	note $75
+	octave 3
+	note $31
+	note $41
+	note $51
+	loopchannel $00, $5684 ; end
+; 0xe9709
+
+Music_Route36_Ch4: ; 0xe9709
+	togglenoise
+	db $01
+	notetype $0c, $fe
+	note $34
+	note $57
+	callchannel $5741
+	callchannel $5734
+	callchannel $573b
+	callchannel $5734
+	callchannel $5741
+	loopchannel $02, $5713
+	note $b3
+	note $a1
+	note $63
+	note $c0
+	note $c0
+	note $a3
+	loopchannel $0b, $5723
+	callchannel $5741
+	loopchannel $00, $5713 ; end
+; 0xe9734
+
+INCBIN "baserom.gbc",$e9734,$e974f - $e9734
+
+Music_RivalBattle: ; 0xe974f
+	dbw $80, Music_RivalBattle_Ch1
+	dbw $01, Music_RivalBattle_Ch2
+	dbw $02, Music_RivalBattle_Ch3
+; 0xe9758
+
+Music_RivalBattle_Ch1: ; 0xe9758
+	tempo $0066
+	volume $77
+	dutycycle $03
+	tone $0002
+	vibrato $08, $15
+	notetype $0c, $b2
+	octave 3
+	note $71
+	note $b3
+	intensity $b7
+	note $b9
+	intensity $b2
+	note $71
+	octave 4
+	note $23
+	intensity $b7
+	note $25
+	note $53
+	intensity $b2
+	octave 2
+	note $b5
+	intensity $b7
+	octave 3
+	note $25
+	intensity $b2
+	note $43
+	loopchannel $03, $5777
+	intensity $b2
+	octave 2
+	note $b1
+	octave 3
+	note $23
+	intensity $b7
+	note $29
+	intensity $b2
+	octave 3
+	note $95
+	intensity $b7
+	note $c5
+	intensity $b2
+	octave 4
+	note $23
+	loopchannel $03, $578f
+	intensity $b2
+	octave 3
+	note $91
+	note $c3
+	intensity $4d
+	note $c9
+	intensity $b7
+	note $b5
+	note $75
+	note $43
+	note $63
+	note $73
+	note $91
+	note $b5
+	intensity $b2
+	note $60
+	note $40
+	note $20
+	note $40
+	intensity $b7
+	note $63
+	intensity $b2
+	note $90
+	note $70
+	note $60
+	note $70
+	intensity $b7
+	note $93
+	intensity $b6
+	note $91
+	note $b1
+	note $c1
+	note $b1
+	note $c1
+	octave 4
+	note $21
+	octave 3
+	note $c1
+	octave 4
+	note $51
+	intensity $b7
+	octave 3
+	note $b5
+	note $75
+	note $b3
+	octave 4
+	note $23
+	octave 3
+	note $c3
+	note $b1
+	note $95
+	note $65
+	octave 4
+	note $25
+	octave 3
+	note $93
+	intensity $b5
+	note $21
+	note $61
+	note $91
+	octave 4
+	note $11
+	note $21
+	octave 3
+	note $91
+	note $61
+	note $91
+	intensity $b7
+	note $79
+	intensity $b4
+	octave 2
+	note $c1
+	octave 3
+	note $41
+	note $71
+	intensity $b7
+	note $63
+	note $43
+	note $21
+	note $45
+	intensity $a0
+	note $67
+	intensity $a7
+	note $67
+	intensity $a0
+	octave 2
+	note $b7
+	intensity $a7
+	note $b7
+	intensity $b7
+	octave 3
+	note $79
+	intensity $b5
+	octave 2
+	note $c1
+	octave 3
+	note $41
+	note $71
+	note $61
+	note $41
+	note $21
+	note $41
+	note $91
+	note $71
+	note $61
+	note $91
+	intensity $a0
+	note $bf
+	intensity $a7
+	note $bf
+	intensity $a0
+	note $c7
+	intensity $a7
+	note $c3
+	intensity $b7
+	note $93
+	intensity $b5
+	octave 4
+	note $51
+	note $41
+	note $21
+	octave 3
+	note $c1
+	octave 4
+	note $71
+	note $51
+	note $41
+	note $21
+	octave 3
+	note $b1
+	note $51
+	note $b1
+	octave 4
+	note $41
+	note $51
+	note $41
+	octave 3
+	note $b1
+	octave 4
+	note $41
+	octave 3
+	note $b1
+	octave 4
+	note $41
+	note $51
+	note $41
+	octave 3
+	note $b1
+	note $41
+	note $b1
+	octave 4
+	note $41
+	loopchannel $02, $5837
+	intensity $94
+	octave 3
+	note $47
+	octave 2
+	note $b7
+	octave 3
+	note $87
+	note $67
+	intensity $96
+	octave 2
+	note $97
+	note $b7
+	note $c7
+	octave 3
+	note $27
+	intensity $b7
+	octave 4
+	note $47
+	octave 3
+	note $b7
+	octave 4
+	note $87
+	note $67
+	octave 3
+	note $97
+	note $b7
+	note $c7
+	octave 4
+	note $27
+	intensity $a0
+	note $47
+	intensity $a7
+	note $47
+	intensity $a0
+	octave 3
+	note $87
+	intensity $a7
+	note $87
+	intensity $b7
+	note $47
+	note $27
+	note $43
+	note $23
+	octave 2
+	note $c3
+	octave 3
+	note $23
+	intensity $c7
+	octave 2
+	note $b5
+	octave 3
+	note $25
+	note $43
+	note $55
+	note $45
+	note $23
+	note $95
+	note $55
+	note $43
+	note $25
+	note $45
+	note $33
+	octave 2
+	note $95
+	note $c5
+	octave 3
+	note $23
+	note $35
+	note $25
+	octave 2
+	note $c3
+	octave 3
+	note $75
+	note $35
+	note $23
+	octave 2
+	note $c5
+	octave 3
+	note $29
+	loopchannel $00, $57a6 ; end
+; 0xe98af
+
+Music_RivalBattle_Ch2: ; 0xe98af
+	dutycycle $03
+	vibrato $08, $36
+	tone $0001
+	notetype $0c, $c2
+	octave 4
+	note $50
+	note $40
+	note $30
+	note $20
+	note $30
+	note $20
+	note $10
+	octave 3
+	note $c0
+	octave 4
+	note $10
+	octave 3
+	note $c0
+	note $b0
+	note $a0
+	note $b0
+	note $a0
+	note $90
+	note $80
+	note $90
+	note $80
+	note $70
+	note $60
+	note $70
+	note $60
+	note $50
+	note $40
+	note $50
+	note $40
+	note $30
+	note $20
+	note $30
+	note $20
+	note $10
+	octave 2
+	note $c0
+	intensity $c2
+	octave 4
+	note $45
+	intensity $c7
+	octave 3
+	note $75
+	intensity $c2
+	note $93
+	intensity $c2
+	note $45
+	intensity $c7
+	note $75
+	intensity $c2
+	note $93
+	loopchannel $02, $58ea
+	intensity $c2
+	note $41
+	note $73
+	intensity $c7
+	note $77
+	intensity $a2
+	note $c0
+	octave 4
+	note $10
+	intensity $c2
+	note $25
+	intensity $c7
+	note $55
+	intensity $c2
+	note $73
+	loopchannel $03, $5903
+	intensity $c2
+	note $21
+	note $53
+	intensity $b0
+	note $53
+	intensity $b7
+	note $55
+	callchannel $59e0
+	intensity $b0
+	note $97
+	intensity $b7
+	note $97
+	callchannel $59e0
+	intensity $4e
+	note $97
+	intensity $b7
+	note $97
+	intensity $b0
+	octave 3
+	note $c9
+	intensity $b7
+	note $c5
+	intensity $b0
+	octave 4
+	note $27
+	octave 3
+	note $c7
+	intensity $b0
+	note $b9
+	intensity $b7
+	note $b5
+	intensity $2f
+	note $49
+	intensity $b7
+	note $45
+	intensity $b0
+	note $c9
+	intensity $b7
+	note $c5
+	intensity $c7
+	octave 4
+	note $27
+	octave 3
+	note $c7
+	intensity $b0
+	octave 4
+	note $4f
+	intensity $b7
+	note $4f
+	intensity $b0
+	note $53
+	intensity $b7
+	note $55
+	intensity $c7
+	note $51
+	note $91
+	note $c1
+	octave 5
+	note $27
+	octave 4
+	note $c7
+	intensity $b0
+	note $b9
+	intensity $b7
+	note $b5
+	intensity $b0
+	note $a9
+	intensity $b7
+	note $a5
+	intensity $b0
+	note $99
+	intensity $b7
+	note $95
+	intensity $b0
+	note $89
+	intensity $b7
+	note $85
+	intensity $a4
+	octave 3
+	note $87
+	note $47
+	note $b7
+	note $97
+	intensity $a6
+	octave 2
+	note $c7
+	octave 3
+	note $27
+	note $47
+	note $67
+	intensity $c7
+	octave 4
+	note $87
+	note $47
+	note $b7
+	note $97
+	octave 3
+	note $c7
+	octave 4
+	note $27
+	note $47
+	note $67
+	intensity $b0
+	note $8f
+	note $4f
+	octave 3
+	note $c7
+	note $b7
+	note $97
+	intensity $c7
+	note $67
+	intensity $c2
+	octave 3
+	note $b5
+	intensity $c7
+	octave 4
+	note $25
+	intensity $c2
+	note $43
+	loopchannel $03, $59a6
+	intensity $c2
+	octave 3
+	note $b1
+	octave 4
+	note $23
+	intensity $b7
+	note $25
+	intensity $9a
+	note $23
+	intensity $c2
+	octave 3
+	note $95
+	intensity $c7
+	note $c5
+	intensity $c2
+	octave 4
+	note $23
+	loopchannel $03, $59c1
+	intensity $c2
+	octave 3
+	note $91
+	note $c3
+	intensity $c7
+	note $c5
+	intensity $6a
+	octave 4
+	note $33
+	loopchannel $00, $591a ; end
+; 0xe99e0
+
+INCBIN "baserom.gbc",$e99e0,$e99fb - $e99e0
+
+Music_RivalBattle_Ch3: ; 0xe99fb
+	notetype $0c, $19
+	octave 3
+	note $71
+	note $b1
+	note $01
+	note $b9
+	octave 3
+	note $71
+	octave 4
+	note $21
+	note $01
+	note $25
+	octave 3
+	note $21
+	note $31
+	note $41
+	note $21
+	note $41
+	note $73
+	note $51
+	note $41
+	note $21
+	loopchannel $04, $5a0c
+	octave 3
+	note $21
+	octave 2
+	note $c1
+	octave 3
+	note $21
+	note $53
+	note $31
+	note $21
+	octave 2
+	note $c1
+	loopchannel $03, $5a17
+	octave 3
+	note $21
+	note $51
+	note $21
+	octave 2
+	note $c3
+	octave 3
+	note $11
+	note $21
+	note $31
+	callchannel $5b47
+	octave 2
+	note $b1
+	octave 4
+	note $21
+	octave 2
+	note $b1
+	octave 3
+	note $c1
+	octave 2
+	note $b1
+	octave 3
+	note $b1
+	octave 2
+	note $b1
+	octave 3
+	note $91
+	callchannel $5b50
+	note $21
+	note $91
+	octave 4
+	note $21
+	octave 3
+	note $93
+	note $21
+	note $11
+	octave 2
+	note $c1
+	callchannel $5b47
+	octave 2
+	note $b1
+	octave 3
+	note $b1
+	octave 2
+	note $b1
+	octave 3
+	note $91
+	octave 2
+	note $b1
+	octave 3
+	note $71
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	callchannel $5b50
+	note $21
+	note $91
+	loopchannel $04, $5a66
+	callchannel $5b5c
+	note $91
+	note $71
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	loopchannel $04, $5a71
+	octave 2
+	note $b1
+	octave 3
+	note $71
+	octave 2
+	note $b1
+	octave 3
+	note $71
+	octave 2
+	note $b1
+	octave 3
+	note $71
+	note $61
+	note $41
+	callchannel $5b5c
+	octave 2
+	note $c1
+	octave 3
+	note $31
+	callchannel $5b65
+	octave 3
+	note $41
+	octave 4
+	note $41
+	callchannel $5b65
+	octave 3
+	note $41
+	note $b1
+	note $51
+	note $c1
+	octave 4
+	note $51
+	octave 3
+	note $51
+	note $c1
+	octave 4
+	note $51
+	octave 3
+	note $51
+	octave 4
+	note $51
+	octave 3
+	note $51
+	note $c1
+	octave 4
+	note $51
+	octave 3
+	note $51
+	note $51
+	note $71
+	note $81
+	note $91
+	note $41
+	note $b1
+	loopchannel $04, $5ab3
+	note $41
+	note $a1
+	loopchannel $04, $5ab9
+	note $41
+	note $91
+	loopchannel $04, $5abf
+	note $41
+	note $81
+	loopchannel $0c, $5ac5
+	octave 2
+	note $c1
+	octave 3
+	note $41
+	loopchannel $04, $5acb
+	octave 2
+	note $c1
+	octave 3
+	note $71
+	loopchannel $04, $5ad3
+	note $41
+	note $81
+	note $b1
+	note $41
+	note $81
+	note $b1
+	note $41
+	note $b1
+	note $41
+	note $81
+	note $b1
+	note $41
+	note $81
+	note $b1
+	note $41
+	note $b1
+	octave 2
+	note $c1
+	octave 3
+	note $81
+	note $c1
+	octave 2
+	note $c1
+	octave 3
+	note $81
+	note $c1
+	octave 2
+	note $c1
+	octave 3
+	note $c1
+	octave 2
+	note $c1
+	octave 3
+	note $91
+	note $c1
+	octave 2
+	note $c1
+	octave 4
+	note $41
+	note $21
+	octave 3
+	note $c1
+	note $91
+	note $87
+	note $47
+	note $b7
+	note $87
+	octave 2
+	note $c7
+	octave 3
+	note $27
+	note $47
+	note $67
+	octave 2
+	note $b1
+	octave 3
+	note $41
+	loopchannel $07, $5b10
+	note $51
+	note $41
+	octave 2
+	note $b1
+	octave 3
+	note $41
+	loopchannel $06, $5b1a
+	octave 2
+	note $b1
+	octave 3
+	note $71
+	note $61
+	note $51
+	octave 2
+	note $91
+	octave 3
+	note $21
+	loopchannel $07, $5b28
+	note $31
+	note $21
+	octave 2
+	note $91
+	octave 3
+	note $21
+	loopchannel $04, $5b32
+	octave 2
+	note $c1
+	note $91
+	note $c1
+	octave 3
+	note $63
+	note $51
+	note $41
+	note $31
+	loopchannel $00, $5a30 ; end
+; 0xe9b47
+
+INCBIN "baserom.gbc",$e9b47,$e9b6f - $e9b47
+
+Music_RocketBattle: ; 0xe9b6f
+	dbw $80, Music_RocketBattle_Ch1
+	dbw $01, Music_RocketBattle_Ch2
+	dbw $02, Music_RocketBattle_Ch3
+; 0xe9b78
+
+Music_RocketBattle_Ch1: ; 0xe9b78
+	tempo $0065
+	volume $77
+	dutycycle $03
+	tone $0002
+	vibrato $10, $15
+	notetype $0c, $b2
+	octave 4
+	note $50
+	note $40
+	note $30
+	note $20
+	note $30
+	note $20
+	note $10
+	octave 3
+	note $c0
+	octave 4
+	note $10
+	octave 3
+	note $c0
+	note $b0
+	note $a0
+	note $b0
+	note $a0
+	note $90
+	note $80
+	note $90
+	note $80
+	note $70
+	note $60
+	note $70
+	note $60
+	note $50
+	note $40
+	note $50
+	note $40
+	note $30
+	note $20
+	note $30
+	note $20
+	note $10
+	octave 2
+	note $c0
+	intensity $b2
+	octave 3
+	note $15
+	note $13
+	note $51
+	intensity $b7
+	note $33
+	loopchannel $03, $5bad
+	intensity $b2
+	note $15
+	note $15
+	intensity $b7
+	note $33
+	intensity $b2
+	octave 4
+	note $55
+	note $53
+	note $81
+	intensity $b7
+	note $63
+	loopchannel $03, $5bc1
+	intensity $b2
+	note $55
+	note $53
+	intensity $b7
+	note $31
+	note $43
+	intensity $b3
+	octave 4
+	note $11
+	octave 3
+	note $51
+	note $51
+	note $b1
+	note $61
+	note $61
+	note $a1
+	note $31
+	note $31
+	octave 4
+	note $11
+	octave 3
+	note $51
+	note $51
+	note $a1
+	note $51
+	note $31
+	note $51
+	note $61
+	note $51
+	note $61
+	intensity $b5
+	note $83
+	intensity $b3
+	note $81
+	note $61
+	note $41
+	note $31
+	note $21
+	note $31
+	intensity $b5
+	note $43
+	intensity $b3
+	note $41
+	note $31
+	note $61
+	octave 4
+	note $51
+	octave 3
+	note $51
+	note $51
+	octave 4
+	note $31
+	octave 3
+	note $61
+	note $61
+	octave 4
+	note $11
+	octave 3
+	note $31
+	note $31
+	octave 4
+	note $51
+	octave 3
+	note $51
+	note $51
+	octave 4
+	note $31
+	octave 3
+	note $51
+	note $31
+	note $51
+	note $61
+	note $51
+	note $61
+	intensity $b5
+	note $83
+	intensity $b3
+	note $81
+	note $61
+	octave 4
+	note $11
+	note $31
+	note $11
+	note $31
+	intensity $b5
+	note $63
+	intensity $b2
+	octave 3
+	note $61
+	note $81
+	note $93
+	intensity $b5
+	note $33
+	note $13
+	note $33
+	note $51
+	intensity $b2
+	note $61
+	note $a3
+	intensity $b7
+	note $a3
+	intensity $b5
+	note $a1
+	note $81
+	note $63
+	note $33
+	note $13
+	note $33
+	note $51
+	note $61
+	note $51
+	note $31
+	note $11
+	note $b1
+	note $81
+	note $a1
+	note $b1
+	intensity $b7
+	octave 4
+	note $55
+	note $33
+	octave 3
+	note $81
+	note $b3
+	note $a5
+	note $83
+	note $51
+	note $63
+	note $55
+	note $35
+	note $43
+	intensity $a0
+	note $57
+	intensity $a7
+	note $57
+	intensity $b7
+	octave 2
+	note $a7
+	note $87
+	note $a7
+	note $b7
+	note $a7
+	note $87
+	note $a7
+	octave 3
+	note $27
+	note $37
+	note $27
+	octave 2
+	note $b7
+	note $a7
+	octave 3
+	note $37
+	note $27
+	note $37
+	note $57
+	octave 2
+	note $b5
+	octave 3
+	note $35
+	note $13
+	intensity $b5
+	octave 2
+	note $b1
+	octave 3
+	note $11
+	note $31
+	note $51
+	note $61
+	note $81
+	note $a1
+	note $b1
+	note $a1
+	note $51
+	note $a1
+	note $b1
+	note $a1
+	note $51
+	note $31
+	note $51
+	note $a1
+	note $51
+	note $a1
+	octave 4
+	note $21
+	note $31
+	note $21
+	octave 3
+	note $b1
+	note $81
+	intensity $b2
+	note $55
+	note $55
+	note $53
+	note $55
+	note $53
+	intensity $b7
+	note $81
+	note $63
+	intensity $b2
+	note $55
+	note $53
+	intensity $b7
+	note $81
+	note $63
+	intensity $b2
+	note $55
+	octave 4
+	note $30
+	note $40
+	intensity $a0
+	note $57
+	intensity $b2
+	octave 3
+	note $65
+	note $63
+	intensity $b7
+	note $b1
+	note $83
+	intensity $b2
+	note $65
+	note $63
+	intensity $b7
+	note $a1
+	note $83
+	loopchannel $02, $5cc5
+	intensity $b2
+	note $65
+	octave 4
+	note $30
+	note $50
+	intensity $a0
+	note $67
+	intensity $b3
+	note $31
+	octave 3
+	note $a1
+	note $51
+	note $a3
+	note $a1
+	intensity $b7
+	octave 4
+	note $33
+	intensity $b3
+	note $41
+	octave 3
+	note $b1
+	note $81
+	note $b3
+	note $b1
+	intensity $b7
+	octave 4
+	note $33
+	intensity $b3
+	note $51
+	note $11
+	octave 3
+	note $a1
+	octave 4
+	note $13
+	note $11
+	intensity $b7
+	note $43
+	intensity $a0
+	note $53
+	intensity $a7
+	note $55
+	intensity $a0
+	octave 3
+	note $95
+	intensity $b3
+	note $11
+	note $51
+	note $51
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	note $61
+	octave 2
+	note $a1
+	octave 3
+	note $31
+	note $31
+	note $11
+	note $51
+	note $51
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	note $31
+	note $11
+	note $11
+	octave 2
+	note $b1
+	octave 3
+	note $11
+	intensity $b5
+	note $33
+	intensity $b3
+	note $31
+	note $11
+	octave 2
+	note $b1
+	octave 3
+	note $31
+	note $21
+	note $31
+	intensity $b5
+	note $43
+	intensity $b3
+	note $41
+	note $31
+	note $61
+	loopchannel $00, $5c02 ; end
+; 0xe9d3e
+
+Music_RocketBattle_Ch2: ; 0xe9d3e
+	dutycycle $03
+	vibrato $08, $36
+	tone $0001
+	notetype $0c, $b2
+	octave 4
+	note $a3
+	note $b3
+	note $c3
+	octave 5
+	note $10
+	intensity $82
+	octave 4
+	note $90
+	note $a0
+	note $90
+	intensity $c2
+	octave 5
+	note $20
+	intensity $92
+	octave 4
+	note $90
+	note $a0
+	note $90
+	intensity $c2
+	octave 5
+	note $30
+	intensity $a2
+	octave 4
+	note $90
+	note $a0
+	note $90
+	intensity $c2
+	octave 5
+	note $40
+	intensity $b2
+	octave 4
+	note $90
+	note $a0
+	note $90
+	intensity $c2
+	octave 5
+	note $50
+	octave 4
+	note $90
+	note $a0
+	note $90
+	intensity $c2
+	octave 3
+	note $a5
+	note $a3
+	octave 4
+	note $11
+	intensity $c7
+	octave 3
+	note $b3
+	loopchannel $03, $5d7b
+	intensity $c2
+	note $a5
+	note $a5
+	intensity $4a
+	note $93
+	intensity $c2
+	octave 4
+	note $a5
+	note $a3
+	octave 5
+	note $11
+	intensity $c7
+	octave 4
+	note $b3
+	loopchannel $03, $5d91
+	intensity $c2
+	note $a5
+	note $a3
+	intensity $c7
+	note $81
+	note $93
+	callchannel $5ea0
+	intensity $b0
+	note $6f
+	intensity $b7
+	note $6f
+	callchannel $5ea0
+	intensity $b0
+	note $67
+	intensity $b7
+	note $67
+	intensity $b0
+	note $b7
+	intensity $b7
+	note $b7
+	intensity $c4
+	octave 3
+	note $a1
+	note $81
+	note $a1
+	intensity $c7
+	octave 4
+	note $13
+	octave 3
+	note $b1
+	note $a1
+	note $81
+	intensity $c2
+	note $a1
+	octave 4
+	note $13
+	intensity $b0
+	note $15
+	intensity $b7
+	note $13
+	intensity $c4
+	octave 3
+	note $b1
+	note $a1
+	note $b1
+	intensity $c7
+	octave 4
+	note $33
+	note $11
+	octave 3
+	note $b1
+	note $a1
+	intensity $c2
+	note $b1
+	octave 4
+	note $33
+	intensity $b0
+	note $33
+	intensity $b7
+	note $35
+	intensity $4f
+	note $a5
+	intensity $a0
+	note $85
+	note $63
+	note $55
+	note $65
+	note $83
+	note $a5
+	note $b5
+	note $93
+	note $a5
+	intensity $a7
+	note $a9
+	intensity $3f
+	octave 3
+	note $37
+	intensity $b7
+	note $37
+	intensity $3f
+	note $27
+	intensity $b7
+	note $27
+	intensity $3f
+	note $37
+	intensity $b7
+	note $37
+	intensity $3f
+	note $57
+	intensity $b7
+	note $57
+	intensity $4e
+	note $67
+	intensity $a0
+	note $67
+	note $5f
+	note $6f
+	note $af
+	intensity $3f
+	note $6f
+	intensity $c7
+	octave 4
+	note $37
+	note $27
+	intensity $b0
+	note $57
+	intensity $b7
+	note $57
+	intensity $3c
+	note $a5
+	intensity $c7
+	note $a9
+	intensity $c2
+	octave 3
+	note $a5
+	note $a5
+	note $a3
+	note $a5
+	note $a3
+	intensity $c7
+	octave 4
+	note $11
+	octave 3
+	note $b3
+	intensity $c2
+	note $a5
+	note $a3
+	intensity $c7
+	octave 4
+	note $11
+	octave 3
+	note $b3
+	intensity $c2
+	note $a5
+	intensity $c7
+	octave 4
+	note $80
+	note $90
+	note $a7
+	intensity $c2
+	octave 3
+	note $b5
+	note $b3
+	intensity $c7
+	octave 4
+	note $31
+	note $13
+	loopchannel $03, $5e5a
+	intensity $c2
+	octave 3
+	note $b5
+	intensity $c7
+	octave 4
+	note $80
+	note $a0
+	note $b7
+	intensity $c7
+	note $a5
+	note $85
+	note $a3
+	note $b5
+	octave 5
+	note $35
+	octave 4
+	note $b3
+	note $a5
+	note $85
+	intensity $c5
+	note $a3
+	intensity $b0
+	note $a7
+	intensity $b7
+	note $a7
+	intensity $c6
+	octave 3
+	note $a5
+	note $95
+	note $53
+	note $a5
+	note $95
+	note $53
+	intensity $b0
+	note $67
+	intensity $b7
+	note $67
+	intensity $3d
+	note $b7
+	intensity $c7
+	note $b7
+	loopchannel $00, $5db1 ; end
+; 0xe9ea0
+
+INCBIN "baserom.gbc",$e9ea0,$e9eaa -$e9ea0
+
+Music_RocketBattle_Ch3: ; 0xe9eaa
+	notetype $0c, $19
+	octave 3
+	note $a1
+	octave 4
+	note $51
+	octave 3
+	note $91
+	octave 4
+	note $51
+	octave 3
+	note $81
+	octave 4
+	note $51
+	octave 3
+	note $71
+	octave 4
+	note $51
+	octave 3
+	note $61
+	octave 4
+	note $51
+	octave 3
+	note $51
+	octave 4
+	note $51
+	octave 2
+	note $c1
+	octave 3
+	note $11
+	octave 2
+	note $c1
+	note $b1
+	callchannel $5fe6
+	loopchannel $03, $5ecc
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	note $31
+	octave 2
+	note $a1
+	octave 3
+	note $81
+	note $61
+	note $51
+	note $31
+	callchannel $5fe6
+	loopchannel $03, $5edf
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	note $31
+	octave 2
+	note $a1
+	octave 3
+	note $81
+	octave 2
+	note $81
+	note $a1
+	note $b1
+	callchannel $5ff3
+	callchannel $6010
+	octave 3
+	note $61
+	callchannel $601d
+	callchannel $5ff3
+	callchannel $6010
+	octave 3
+	note $b1
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	note $51
+	note $31
+	callchannel $602a
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	note $a1
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	note $a1
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	loopchannel $05, $5f25
+	note $b1
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	note $b1
+	octave 2
+	note $b1
+	octave 3
+	note $b1
+	callchannel $602a
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	octave 2
+	note $a1
+	octave 3
+	note $61
+	note $51
+	note $31
+	callchannel $602a
+	callchannel $602a
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	note $31
+	octave 2
+	note $b1
+	note $a1
+	octave 3
+	note $31
+	note $81
+	note $61
+	loopchannel $07, $5f4e
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	note $31
+	octave 2
+	note $b1
+	note $a1
+	octave 3
+	note $a1
+	note $81
+	note $61
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	loopchannel $04, $5f6a
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	note $81
+	note $61
+	note $51
+	note $31
+	note $21
+	note $31
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	loopchannel $0d, $5f7c
+	octave 2
+	note $a1
+	octave 3
+	note $53
+	note $31
+	note $11
+	octave 2
+	note $b1
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	loopchannel $04, $5f8c
+	octave 2
+	note $a1
+	octave 4
+	note $31
+	octave 3
+	note $a1
+	note $b3
+	note $a1
+	note $81
+	note $b1
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	loopchannel $07, $5f9e
+	note $51
+	note $61
+	octave 2
+	note $b1
+	octave 3
+	note $61
+	loopchannel $05, $5fa8
+	octave 3
+	note $b1
+	octave 4
+	note $33
+	note $11
+	octave 3
+	note $b1
+	note $81
+	callchannel $6033
+	octave 3
+	note $51
+	callchannel $6010
+	octave 3
+	note $61
+	callchannel $6033
+	octave 3
+	note $a1
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	octave 2
+	note $a1
+	octave 3
+	note $51
+	callchannel $5ff3
+	callchannel $6010
+	octave 3
+	note $61
+	callchannel $601d
+	loopchannel $00, $5efe ; end
+; 0xe9fe6
+
+INCBIN "baserom.gbc",$e9fe6,$ea040 -$e9fe6
+
+Music_ElmsLab: ; 0xea040
+	dbw $c0, Music_ElmsLab_Ch1
+	dbw $01, Music_ElmsLab_Ch2
+	dbw $02, Music_ElmsLab_Ch3
+	dbw $03, Music_ElmsLab_Ch4
+; 0xea04c
+
+Music_ElmsLab_Ch1: ; 0xea04c
+	tempo $0090
+	volume $77
+	dutycycle $03
+	tone $0001
+	vibrato $10, $15
+	stereopanning $f0
+	notetype $0c, $b2
+	octave 2
+	note $61
+	note $81
+	note $a1
+	note $c1
+	intensity $b6
+	octave 3
+	note $17
+	intensity $b2
+	octave 2
+	note $b1
+	note $a1
+	note $81
+	octave 3
+	note $17
+	note $63
+	note $63
+	note $67
+	note $a3
+	note $a3
+	note $a1
+	note $01
+	note $a1
+	note $91
+	note $a1
+	intensity $b7
+	octave 4
+	note $13
+	intensity $b5
+	octave 3
+	note $c1
+	octave 4
+	note $11
+	intensity $b4
+	note $67
+	intensity $b5
+	octave 3
+	note $a1
+	note $91
+	note $a1
+	note $61
+	intensity $b7
+	note $67
+	intensity $b5
+	note $a1
+	note $81
+	note $61
+	intensity $b2
+	note $83
+	intensity $b5
+	note $a1
+	note $91
+	note $a1
+	intensity $b7
+	note $63
+	intensity $b5
+	note $13
+	intensity $b7
+	note $37
+	intensity $b4
+	note $61
+	note $51
+	note $31
+	note $61
+	intensity $b7
+	note $57
+	intensity $b4
+	note $81
+	note $61
+	note $51
+	note $81
+	intensity $b7
+	note $67
+	intensity $b4
+	note $81
+	note $a1
+	note $b1
+	note $a1
+	intensity $b2
+	note $83
+	intensity $b4
+	note $61
+	note $a1
+	note $81
+	note $61
+	note $51
+	intensity $b2
+	note $85
+	intensity $b7
+	note $63
+	octave 4
+	note $11
+	octave 3
+	note $63
+	note $31
+	note $b3
+	note $a3
+	intensity $b4
+	note $81
+	note $61
+	note $81
+	intensity $b2
+	note $a5
+	intensity $b7
+	note $53
+	note $b1
+	note $55
+	intensity $b3
+	note $61
+	note $51
+	note $61
+	note $81
+	note $a1
+	note $a1
+	note $81
+	intensity $b2
+	note $55
+	intensity $b4
+	note $63
+	octave 4
+	note $13
+	octave 3
+	note $61
+	octave 4
+	note $11
+	note $31
+	note $11
+	octave 3
+	note $b1
+	note $a1
+	intensity $b7
+	note $b7
+	octave 4
+	note $53
+	note $33
+	note $13
+	octave 3
+	note $b3
+	octave 4
+	note $13
+	note $33
+	note $43
+	note $53
+	intensity $b4
+	octave 3
+	note $a1
+	note $61
+	octave 4
+	note $11
+	octave 3
+	note $61
+	note $a1
+	note $61
+	octave 4
+	note $11
+	octave 3
+	note $61
+	note $a1
+	note $61
+	octave 4
+	note $11
+	octave 3
+	note $61
+	note $a1
+	intensity $b2
+	note $61
+	note $63
+	loopchannel $00, $6075 ; end
+; 0xea128
+
+Music_ElmsLab_Ch2: ; 0xea128
+	dutycycle $03
+	vibrato $10, $26
+	stereopanning $0f
+	notetype $0c, $c3
+	octave 4
+	note $61
+	note $51
+	note $31
+	octave 3
+	note $c1
+	intensity $c5
+	octave 4
+	note $17
+	intensity $c3
+	octave 3
+	note $b1
+	note $a1
+	note $81
+	note $51
+	intensity $c2
+	note $65
+	octave 4
+	note $13
+	note $13
+	note $17
+	note $13
+	note $13
+	note $11
+	stereopanning $ff
+	intensity $c6
+	octave 4
+	note $65
+	intensity $c2
+	note $51
+	note $61
+	note $51
+	note $61
+	note $81
+	intensity $c7
+	note $a5
+	intensity $c2
+	note $61
+	intensity $c7
+	note $17
+	intensity $c7
+	note $35
+	intensity $c3
+	note $21
+	note $31
+	note $21
+	note $31
+	note $51
+	intensity $c7
+	note $65
+	intensity $c3
+	note $11
+	intensity $c7
+	octave 3
+	note $a9
+	intensity $c3
+	note $b1
+	note $b1
+	octave 4
+	note $31
+	intensity $c5
+	note $13
+	octave 3
+	note $b5
+	intensity $c3
+	octave 4
+	note $11
+	note $11
+	note $51
+	intensity $c4
+	note $33
+	note $15
+	intensity $c2
+	note $31
+	note $31
+	note $61
+	note $81
+	note $61
+	note $51
+	note $61
+	intensity $c2
+	note $83
+	intensity $c6
+	note $13
+	note $33
+	intensity $c4
+	note $55
+	intensity $c3
+	note $61
+	note $61
+	note $81
+	intensity $c7
+	note $a3
+	intensity $c3
+	note $81
+	note $71
+	note $81
+	note $71
+	note $80
+	note $61
+	intensity $c7
+	note $3a
+	intensity $c3
+	note $51
+	note $51
+	note $61
+	intensity $c7
+	note $83
+	intensity $c3
+	note $61
+	note $51
+	note $61
+	note $81
+	note $60
+	note $31
+	intensity $c7
+	note $1a
+	intensity $c4
+	note $61
+	note $61
+	note $81
+	intensity $c7
+	note $a3
+	intensity $c4
+	note $81
+	note $61
+	note $b1
+	note $a1
+	note $b0
+	octave 5
+	note $11
+	note $34
+	intensity $c3
+	note $51
+	note $31
+	intensity $c7
+	note $13
+	octave 4
+	note $b3
+	note $a3
+	note $83
+	octave 5
+	note $13
+	octave 4
+	note $b3
+	note $a3
+	note $83
+	intensity $b0
+	note $67
+	intensity $a0
+	note $67
+	intensity $a7
+	note $69
+	intensity $c2
+	note $11
+	note $61
+	intensity $c4
+	octave 3
+	note $51
+	loopchannel $00, $614f ; end
+; 0xea1fd
+
+Music_ElmsLab_Ch3: ; 0xea1fd
+	stereopanning $0f
+	notetype $0c, $25
+	note $07
+	note $0d
+	octave 3
+	note $11
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $11
+	note $31
+	note $51
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $51
+	octave 4
+	note $11
+	octave 3
+	note $31
+	note $a1
+	octave 2
+	note $a1
+	octave 3
+	note $a1
+	note $31
+	note $a1
+	note $31
+	note $51
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $11
+	note $31
+	note $51
+	note $61
+	note $b1
+	note $31
+	note $b1
+	note $61
+	note $b1
+	note $31
+	note $b1
+	note $81
+	octave 4
+	note $11
+	octave 3
+	note $51
+	octave 4
+	note $11
+	octave 3
+	note $81
+	octave 4
+	note $11
+	octave 3
+	note $51
+	note $a1
+	note $b1
+	octave 4
+	note $31
+	octave 3
+	note $61
+	octave 4
+	note $31
+	octave 3
+	note $b1
+	octave 4
+	note $31
+	octave 3
+	note $61
+	note $c1
+	octave 4
+	note $11
+	note $01
+	note $13
+	octave 3
+	note $b3
+	note $83
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $81
+	note $b1
+	note $31
+	note $b1
+	note $81
+	note $b1
+	note $31
+	note $a1
+	note $51
+	note $81
+	note $11
+	note $81
+	note $51
+	note $81
+	note $11
+	note $81
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $81
+	note $51
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $81
+	note $b1
+	note $31
+	note $b1
+	note $81
+	note $b1
+	note $a1
+	note $81
+	note $13
+	note $33
+	note $53
+	note $83
+	note $53
+	note $63
+	note $73
+	note $83
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $a1
+	note $11
+	note $a1
+	note $61
+	note $11
+	note $61
+	note $a1
+	loopchannel $00, $6216 ; end
+; 0xea2b1
+
+Music_ElmsLab_Ch4: ; 0xea2b1
+	stereopanning $f0
+	togglenoise
+	db $00
+	notetype $0c, $0f
+	note $01
+	note $83
+	loopchannel $00, $62b9 ; end
+; 0xea2be
+
+Music_DarkCave: ; 0xea2be
+	dbw $c0, Music_DarkCave_Ch1
+	dbw $01, Music_DarkCave_Ch2
+	dbw $02, Music_DarkCave_Ch3
+	dbw $03, Music_DarkCave_Ch4
+; 0xea2ca
+
+Music_DarkCave_Ch1: ; 0xea2ca
+	tempo $0080
+	volume $77
+	dutycycle $03
+	tone $0001
+	vibrato $11, $15
+	stereopanning $f0
+	notetype $0c, $a7
+	note $0f
+	loopchannel $04, $62dc
+	octave 3
+	note $4f
+	note $3f
+	note $2f
+	note $1f
+	intensity $a3
+	callchannel $6333
+	loopchannel $03, $62e8
+	intensity $b7
+	note $97
+	note $47
+	note $87
+	note $37
+	note $67
+	note $27
+	note $47
+	note $87
+	note $97
+	note $47
+	note $87
+	note $37
+	note $67
+	note $27
+	note $47
+	note $17
+	intensity $a3
+	callchannel $6333
+	loopchannel $02, $6303
+	note $0f
+	note $07
+	intensity $b7
+	octave 2
+	note $61
+	note $81
+	note $93
+	octave 3
+	note $4f
+	note $07
+	octave 2
+	note $91
+	note $81
+	note $93
+	octave 3
+	note $4f
+	note $81
+	note $05
+	note $61
+	note $81
+	note $93
+	note $8f
+	note $61
+	note $05
+	note $91
+	note $81
+	note $93
+	intensity $a3
+	callchannel $6333
+	loopchannel $02, $6328
+	loopchannel $00, $62e8 ; end
+; 0xea333
+
+INCBIN "baserom.gbc",$ea333,$ea36a - $ea333
+
+Music_DarkCave_Ch2: ; 0xea36a
+	dutycycle $01
+	vibrato $12, $36
+	stereopanning $0f
+	notetype $0c, $a7
+	note $0f
+	loopchannel $04, $6374
+	octave 3
+	note $8f
+	note $bf
+	note $6f
+	note $8f
+	note $0f
+	loopchannel $04, $637e
+	note $07
+	stereopanning $ff
+	intensity $c7
+	octave 5
+	note $17
+	intensity $c4
+	note $31
+	note $11
+	octave 4
+	note $b1
+	note $83
+	note $b1
+	octave 5
+	note $33
+	intensity $b0
+	note $23
+	intensity $b7
+	note $2b
+	intensity $59
+	note $17
+	intensity $c7
+	note $17
+	note $07
+	intensity $c7
+	note $17
+	intensity $c4
+	note $31
+	note $11
+	octave 4
+	note $b1
+	note $81
+	note $81
+	note $b1
+	octave 5
+	note $33
+	intensity $c7
+	note $2b
+	intensity $c3
+	note $11
+	note $21
+	intensity $b0
+	note $49
+	intensity $b7
+	note $45
+	stereopanning $0f
+	intensity $c4
+	octave 4
+	note $63
+	note $41
+	note $31
+	note $43
+	note $31
+	note $11
+	note $31
+	note $11
+	octave 3
+	note $b1
+	octave 4
+	note $11
+	note $33
+	note $11
+	octave 3
+	note $b1
+	octave 4
+	note $27
+	octave 3
+	note $b7
+	intensity $b0
+	octave 4
+	note $41
+	note $31
+	note $11
+	octave 3
+	note $b1
+	octave 4
+	note $17
+	note $63
+	note $41
+	note $31
+	note $43
+	note $31
+	note $11
+	note $31
+	note $11
+	octave 3
+	note $b1
+	octave 4
+	note $11
+	note $33
+	note $11
+	octave 3
+	note $b1
+	octave 4
+	note $23
+	note $11
+	note $21
+	note $11
+	note $21
+	octave 3
+	note $b1
+	octave 4
+	note $21
+	intensity $b0
+	note $17
+	intensity $b7
+	note $17
+	intensity $c7
+	stereopanning $ff
+	note $07
+	octave 5
+	note $17
+	intensity $c4
+	note $31
+	note $11
+	octave 4
+	note $b1
+	note $83
+	note $b1
+	octave 5
+	note $33
+	intensity $49
+	note $27
+	intensity $c7
+	note $27
+	intensity $b0
+	note $17
+	intensity $b7
+	note $17
+	note $07
+	intensity $c7
+	note $17
+	intensity $c4
+	note $31
+	note $11
+	octave 4
+	note $b1
+	note $81
+	note $81
+	note $b1
+	octave 5
+	note $33
+	intensity $b0
+	note $27
+	intensity $b7
+	note $27
+	intensity $b0
+	note $17
+	intensity $b7
+	note $17
+	intensity $c7
+	note $0f
+	stereopanning $0f
+	note $07
+	octave 3
+	note $b1
+	octave 4
+	note $11
+	note $23
+	note $1f
+	note $07
+	note $21
+	note $11
+	note $23
+	note $1f
+	intensity $c2
+	note $47
+	intensity $c7
+	octave 3
+	note $b1
+	octave 4
+	note $11
+	note $23
+	note $1f
+	intensity $c2
+	octave 3
+	note $b7
+	intensity $c7
+	octave 4
+	note $21
+	note $11
+	intensity $c4
+	note $2f
+	note $03
+	note $0f
+	note $0f
+	note $0f
+	intensity $b7
+	octave 5
+	note $4f
+	note $3f
+	note $6f
+	note $4f
+	loopchannel $00, $637e ; end
+; 0xea46e
+
+Music_DarkCave_Ch3: ; 0xea46e
+	notetype $0c, $27
+	callchannel $64ce
+	loopchannel $02, $6471
+	callchannel $64ce
+	loopchannel $07, $6478
+	callchannel $64c3
+	octave 3
+	note $13
+	note $81
+	note $43
+	note $81
+	note $43
+	note $61
+	note $01
+	octave 2
+	note $bb
+	callchannel $64c3
+	octave 3
+	note $13
+	note $81
+	note $43
+	note $81
+	note $43
+	note $61
+	note $01
+	octave 2
+	note $b3
+	octave 3
+	note $21
+	note $11
+	note $23
+	callchannel $64a7
+	callchannel $64a7
+	loopchannel $00, $6478 ; end
+; 0xea4a7
+
+INCBIN "baserom.gbc",$ea4a7,$ea4ea - $ea4a7
+
+Music_DarkCave_Ch4: ; 0xea4ea
+	togglenoise
+	db $03
+	notetype $0c, $ef
+	endchannel ; end
+; 0xea4f0
+
+INCBIN "baserom.gbc",$ea4f0,$ea50d - $ea4f0
+
+Music_JohtoGymLeaderBattle: ; 0xea50d
+	dbw $80, Music_JohtoGymLeaderBattle_Ch1
+	dbw $01, Music_JohtoGymLeaderBattle_Ch2
+	dbw $02, Music_JohtoGymLeaderBattle_Ch3
+; 0xea516
+
+Music_JohtoGymLeaderBattle_Ch1: ; 0xea516
+	tempo $0065
+	volume $77
+	dutycycle $03
+	tone $0002
+	vibrato $12, $15
+	notetype $0c, $b2
+	octave 3
+	note $b0
+	note $a0
+	note $90
+	note $a0
+	loopchannel $04, $6526
+	note $20
+	note $10
+	octave 2
+	note $b0
+	octave 3
+	note $10
+	loopchannel $03, $652f
+	intensity $4b
+	note $23
+	intensity $b2
+	note $35
+	note $45
+	note $13
+	note $65
+	note $35
+	note $43
+	note $35
+	note $45
+	note $13
+	note $65
+	note $85
+	intensity $b7
+	note $13
+	intensity $b2
+	note $85
+	note $95
+	note $63
+	note $95
+	note $65
+	note $93
+	note $85
+	note $95
+	note $63
+	note $95
+	octave 4
+	note $15
+	octave 3
+	note $91
+	note $61
+	intensity $b5
+	note $35
+	note $85
+	note $61
+	note $81
+	note $93
+	note $83
+	note $63
+	note $83
+	intensity $b7
+	note $9b
+	intensity $b2
+	note $83
+	intensity $b7
+	octave 4
+	note $2b
+	intensity $b2
+	note $13
+	intensity $b5
+	octave 3
+	note $35
+	note $85
+	note $61
+	note $81
+	note $93
+	note $83
+	note $63
+	note $83
+	intensity $b7
+	note $97
+	note $87
+	note $67
+	note $47
+	intensity $70
+	note $17
+	intensity $77
+	note $17
+	intensity $b4
+	note $41
+	note $51
+	note $65
+	note $81
+	note $43
+	intensity $77
+	octave 2
+	note $b7
+	note $b7
+	intensity $c5
+	octave 3
+	note $81
+	note $91
+	note $b5
+	note $b1
+	note $93
+	intensity $c7
+	note $87
+	note $63
+	note $51
+	note $21
+	intensity $a0
+	note $17
+	intensity $a7
+	note $17
+	intensity $b2
+	note $65
+	note $63
+	note $51
+	note $63
+	note $65
+	note $65
+	note $61
+	note $91
+	note $55
+	note $53
+	note $61
+	note $51
+	note $21
+	note $15
+	note $15
+	note $13
+	note $65
+	note $61
+	note $91
+	note $51
+	note $61
+	note $91
+	note $61
+	note $13
+	note $65
+	note $51
+	note $91
+	note $51
+	note $83
+	note $53
+	note $61
+	note $51
+	note $61
+	note $85
+	note $83
+	octave 4
+	note $11
+	octave 3
+	note $81
+	note $11
+	note $15
+	note $15
+	note $13
+	note $25
+	note $25
+	note $23
+	note $35
+	note $35
+	note $33
+	note $45
+	note $45
+	note $43
+	intensity $80
+	note $8f
+	intensity $90
+	note $9f
+	intensity $a0
+	note $a7
+	note $b1
+	note $a1
+	note $91
+	note $a1
+	intensity $b0
+	note $b7
+	note $c1
+	note $b1
+	note $a1
+	octave 4
+	note $21
+	intensity $b7
+	note $17
+	note $23
+	note $13
+	octave 3
+	note $91
+	octave 4
+	note $11
+	octave 3
+	note $91
+	octave 4
+	note $41
+	octave 3
+	note $91
+	octave 4
+	note $21
+	octave 3
+	note $91
+	octave 4
+	note $11
+	note $93
+	note $43
+	note $93
+	note $43
+	note $43
+	octave 3
+	note $93
+	octave 4
+	note $43
+	octave 3
+	note $93
+	note $97
+	note $a3
+	note $93
+	note $41
+	note $91
+	note $41
+	octave 4
+	note $21
+	octave 3
+	note $41
+	note $a1
+	note $41
+	note $81
+	octave 4
+	note $23
+	octave 3
+	note $93
+	octave 4
+	note $23
+	octave 3
+	note $93
+	note $93
+	note $23
+	note $93
+	note $23
+	note $c7
+	note $a7
+	note $97
+	note $77
+	intensity $b4
+	note $a3
+	octave 4
+	note $23
+	octave 3
+	note $c3
+	octave 4
+	note $53
+	intensity $92
+	note $41
+	note $41
+	note $41
+	note $41
+	intensity $b2
+	note $41
+	note $41
+	note $41
+	note $41
+	intensity $c2
+	note $4f
+	intensity $50
+	octave 3
+	note $1f
+	note $6f
+	note $5f
+	intensity $97
+	note $49
+	intensity $b4
+	octave 2
+	note $b1
+	octave 3
+	note $41
+	note $71
+	loopchannel $00, $655d ; end
+; 0xea65f
+
+Music_JohtoGymLeaderBattle_Ch2: ; 0xea65f
+	dutycycle $03
+	vibrato $08, $36
+	tone $0001
+	notetype $0c, $c2
+	octave 4
+	note $70
+	note $60
+	note $50
+	note $b0
+	loopchannel $04, $666a
+	note $70
+	note $60
+	note $70
+	note $b0
+	loopchannel $04, $6673
+	note $a5
+	octave 3
+	note $b5
+	note $83
+	octave 4
+	note $35
+	octave 3
+	note $a5
+	note $b3
+	note $a5
+	note $b5
+	note $83
+	octave 4
+	note $35
+	note $45
+	intensity $b0
+	octave 3
+	note $43
+	intensity $c2
+	octave 4
+	note $31
+	intensity $92
+	octave 3
+	note $31
+	note $31
+	intensity $c2
+	octave 4
+	note $43
+	intensity $92
+	octave 3
+	note $31
+	intensity $c2
+	octave 4
+	note $13
+	note $81
+	notetype $0c, $92
+	octave 3
+	note $31
+	note $31
+	intensity $c2
+	octave 4
+	note $33
+	intensity $92
+	octave 3
+	note $31
+	intensity $c2
+	octave 4
+	note $41
+	intensity $92
+	octave 3
+	note $41
+	intensity $c2
+	octave 4
+	note $31
+	intensity $92
+	octave 3
+	note $31
+	note $31
+	intensity $c2
+	octave 4
+	note $43
+	intensity $92
+	octave 3
+	note $31
+	intensity $c2
+	octave 4
+	note $11
+	intensity $92
+	octave 3
+	note $41
+	intensity $c2
+	octave 4
+	note $81
+	intensity $92
+	octave 3
+	note $61
+	note $61
+	intensity $c2
+	octave 4
+	note $91
+	intensity $92
+	octave 3
+	note $61
+	note $61
+	intensity $c2
+	octave 4
+	note $71
+	intensity $b2
+	octave 3
+	note $90
+	note $a0
+	intensity $c7
+	note $b7
+	intensity $c4
+	octave 4
+	note $31
+	note $11
+	octave 3
+	note $b1
+	octave 4
+	note $11
+	intensity $c7
+	note $27
+	intensity $c4
+	note $61
+	note $41
+	note $21
+	note $41
+	intensity $b0
+	note $65
+	intensity $b7
+	note $65
+	intensity $c2
+	note $43
+	intensity $b0
+	note $95
+	intensity $b7
+	note $95
+	intensity $c2
+	note $63
+	intensity $c7
+	octave 3
+	note $b7
+	intensity $c4
+	octave 4
+	note $31
+	note $11
+	octave 3
+	note $b1
+	octave 4
+	note $11
+	intensity $c7
+	note $27
+	intensity $c4
+	note $61
+	note $41
+	note $21
+	note $41
+	intensity $b0
+	note $2f
+	intensity $b7
+	note $2f
+	intensity $a4
+	octave 3
+	note $65
+	note $45
+	note $63
+	intensity $c6
+	octave 4
+	note $15
+	octave 3
+	note $b5
+	octave 4
+	note $13
+	intensity $a4
+	octave 3
+	note $25
+	note $15
+	note $23
+	intensity $c6
+	octave 4
+	note $25
+	note $15
+	note $23
+	intensity $3c
+	note $19
+	intensity $b7
+	note $15
+	intensity $b0
+	note $57
+	intensity $b7
+	note $57
+	intensity $b0
+	octave 3
+	note $2f
+	octave 2
+	note $b7
+	octave 3
+	note $25
+	note $41
+	note $1f
+	note $5f
+	intensity $a0
+	octave 5
+	note $23
+	intensity $a7
+	octave 5
+	note $2b
+	intensity $b7
+	octave 4
+	note $b7
+	octave 5
+	note $25
+	note $41
+	intensity $a0
+	note $17
+	intensity $a7
+	note $17
+	intensity $3e
+	note $55
+	intensity $a6
+	note $59
+	intensity $c2
+	octave 3
+	note $65
+	note $65
+	note $63
+	note $75
+	note $75
+	note $73
+	note $85
+	note $85
+	note $83
+	note $95
+	note $95
+	note $93
+	intensity $90
+	octave 4
+	note $1f
+	intensity $a0
+	note $2f
+	intensity $b0
+	note $3f
+	intensity $b7
+	note $47
+	intensity $4c
+	note $45
+	intensity $c2
+	note $70
+	note $80
+	intensity $c7
+	note $97
+	note $a1
+	note $91
+	note $71
+	note $a1
+	note $93
+	octave 5
+	note $13
+	octave 4
+	note $a3
+	note $93
+	octave 5
+	note $43
+	octave 4
+	note $93
+	octave 5
+	note $43
+	octave 4
+	note $93
+	octave 5
+	note $41
+	note $21
+	note $11
+	note $21
+	note $11
+	octave 4
+	note $a1
+	note $91
+	note $a1
+	note $47
+	note $51
+	note $41
+	note $21
+	note $51
+	note $43
+	note $93
+	note $53
+	note $23
+	note $93
+	note $23
+	note $93
+	note $23
+	note $a1
+	note $91
+	note $71
+	note $51
+	note $41
+	note $51
+	note $41
+	note $21
+	note $47
+	note $27
+	octave 3
+	note $c7
+	note $a7
+	octave 4
+	note $43
+	note $93
+	note $53
+	note $a3
+	intensity $c0
+	note $97
+	intensity $c7
+	note $97
+	intensity $c2
+	note $9f
+	intensity $80
+	octave 3
+	note $6f
+	octave 4
+	note $1f
+	octave 3
+	note $cf
+	note $8f
+	loopchannel $00, $66ee ; end
+; 0xea7f4
+
+Music_JohtoGymLeaderBattle_Ch3: ; 0xea7f4
+	notetype $0c, $19
+	octave 4
+	note $60
+	note $00
+	octave 3
+	note $a1
+	octave 4
+	note $60
+	note $00
+	octave 3
+	note $91
+	octave 4
+	note $60
+	note $00
+	octave 3
+	note $81
+	octave 4
+	note $60
+	note $00
+	octave 3
+	note $71
+	octave 4
+	note $90
+	note $00
+	octave 3
+	note $61
+	octave 4
+	note $90
+	note $00
+	octave 3
+	note $51
+	note $61
+	note $81
+	note $93
+	callchannel $6952
+	note $81
+	note $31
+	note $61
+	note $81
+	note $91
+	note $91
+	note $81
+	note $61
+	note $81
+	note $31
+	note $61
+	note $81
+	note $91
+	note $41
+	note $73
+	callchannel $6952
+	note $81
+	note $31
+	note $61
+	note $81
+	note $91
+	note $91
+	note $81
+	note $61
+	note $81
+	note $31
+	note $61
+	note $81
+	note $91
+	octave 4
+	note $11
+	octave 3
+	note $b1
+	note $91
+	callchannel $6963
+	callchannel $6963
+	callchannel $696a
+	note $21
+	note $91
+	note $21
+	note $91
+	note $21
+	note $b1
+	note $a1
+	note $91
+	callchannel $6963
+	note $31
+	note $81
+	note $31
+	note $81
+	note $31
+	note $81
+	note $91
+	note $81
+	callchannel $696a
+	callchannel $696a
+	note $11
+	note $81
+	note $b1
+	note $11
+	note $41
+	note $61
+	note $81
+	note $b1
+	callchannel $6971
+	callchannel $696a
+	callchannel $6978
+	octave 3
+	note $81
+	note $91
+	note $61
+	callchannel $6971
+	note $11
+	note $81
+	note $11
+	note $81
+	note $11
+	note $51
+	note $61
+	note $81
+	callchannel $696a
+	callchannel $6978
+	octave 3
+	note $11
+	note $21
+	note $91
+	callchannel $6971
+	note $11
+	note $81
+	note $11
+	note $81
+	note $61
+	note $51
+	note $61
+	note $81
+	callchannel $696a
+	callchannel $6978
+	octave 3
+	note $61
+	octave 2
+	note $b1
+	octave 3
+	note $91
+	callchannel $6971
+	note $11
+	note $81
+	note $11
+	octave 4
+	note $11
+	octave 3
+	note $b1
+	note $81
+	note $61
+	note $81
+	callchannel $6983
+	note $01
+	callchannel $6990
+	octave 4
+	note $21
+	callchannel $699c
+	note $01
+	note $41
+	note $b1
+	octave 4
+	note $41
+	octave 3
+	note $41
+	note $b1
+	octave 4
+	note $41
+	octave 3
+	note $41
+	octave 4
+	note $41
+	callchannel $6983
+	note $81
+	callchannel $6990
+	note $91
+	callchannel $699c
+	note $a1
+	octave 4
+	note $41
+	octave 3
+	note $b1
+	note $41
+	octave 4
+	note $41
+	octave 3
+	note $41
+	octave 4
+	note $41
+	note $33
+	callchannel $69a9
+	note $41
+	note $91
+	note $41
+	octave 4
+	note $21
+	octave 3
+	note $41
+	note $a1
+	note $41
+	note $91
+	callchannel $69a9
+	note $41
+	note $91
+	note $41
+	note $91
+	note $41
+	note $a1
+	note $91
+	note $71
+	callchannel $69b1
+	note $21
+	note $71
+	note $21
+	octave 4
+	note $21
+	octave 3
+	note $21
+	note $a1
+	note $21
+	note $81
+	callchannel $69b1
+	note $21
+	note $71
+	note $21
+	note $71
+	note $21
+	note $41
+	note $51
+	note $a1
+	callchannel $69a9
+	note $41
+	note $91
+	note $41
+	note $91
+	note $41
+	note $91
+	note $a1
+	octave 4
+	note $21
+	octave 3
+	note $41
+	note $91
+	note $41
+	note $a1
+	note $41
+	note $c1
+	note $41
+	octave 4
+	note $21
+	octave 3
+	note $91
+	note $41
+	note $71
+	note $91
+	note $a1
+	note $a1
+	note $91
+	note $71
+	note $91
+	note $41
+	note $71
+	note $91
+	note $71
+	note $71
+	note $51
+	note $71
+	callchannel $69b8
+	note $61
+	note $11
+	note $41
+	note $61
+	note $41
+	note $41
+	note $21
+	note $41
+	callchannel $69b8
+	note $61
+	note $11
+	note $41
+	note $61
+	note $41
+	note $71
+	note $61
+	note $41
+	loopchannel $00, $683f ; end
+; 0xea952
+
+INCBIN "baserom.gbc",$ea952,$ea9c1 - $ea952
+
+Music_ChampionBattle: ; 0xea9c1
+	dbw $80, Music_ChampionBattle_Ch1
+	dbw $01, Music_ChampionBattle_Ch2
+	dbw $02, Music_ChampionBattle_Ch3
+; 0xea9ca
+
+Music_ChampionBattle_Ch1: ; 0xea9ca
+	tempo $0062
+	volume $77
+	dutycycle $03
+	tone $0002
+	vibrato $12, $15
+	notetype $0c, $b2
+	octave 2
+	note $b7
+	note $b7
+	note $b7
+	note $b3
+	intensity $b7
+	note $c3
+	callchannel $6aee
+	octave 3
+	note $43
+	loopchannel $02, $69e2
+	callchannel $6aee
+	octave 3
+	note $53
+	callchannel $6afc
+	loopchannel $03, $69f0
+	callchannel $6b06
+	callchannel $6afc
+	loopchannel $07, $69fa
+	callchannel $6b06
+	intensity $b2
+	note $b1
+	note $b1
+	intensity $b7
+	octave 3
+	note $43
+	intensity $b2
+	octave 2
+	note $b1
+	note $b1
+	intensity $b7
+	octave 3
+	note $53
+	intensity $b2
+	octave 2
+	note $b1
+	note $b1
+	intensity $b7
+	octave 3
+	note $73
+	intensity $b2
+	octave 2
+	note $b1
+	note $b1
+	intensity $b7
+	octave 3
+	note $93
+	intensity $a0
+	note $b7
+	octave 2
+	note $b7
+	octave 3
+	note $cb
+	intensity $b2
+	note $b0
+	note $c0
+	octave 4
+	note $10
+	note $20
+	callchannel $6b0f
+	note $51
+	note $51
+	intensity $b7
+	note $73
+	intensity $b2
+	note $51
+	note $51
+	intensity $b7
+	note $93
+	loopchannel $02, $6a3d
+	intensity $b2
+	note $51
+	note $51
+	intensity $b7
+	note $c3
+	callchannel $6b0f
+	note $51
+	note $51
+	intensity $b7
+	note $73
+	intensity $b2
+	note $51
+	note $51
+	intensity $b7
+	note $93
+	intensity $b2
+	note $51
+	note $51
+	intensity $b7
+	note $c3
+	intensity $b2
+	note $51
+	note $51
+	intensity $b7
+	octave 4
+	note $53
+	callchannel $6b24
+	note $c3
+	note $93
+	callchannel $6b24
+	octave 4
+	note $33
+	note $33
+	intensity $a0
+	octave 3
+	note $b7
+	octave 2
+	note $b7
+	octave 3
+	note $77
+	octave 2
+	note $77
+	intensity $60
+	note $cf
+	intensity $70
+	note $cf
+	intensity $80
+	octave 3
+	note $2f
+	intensity $a0
+	note $4f
+	intensity $b4
+	octave 4
+	note $73
+	note $63
+	note $53
+	note $43
+	note $33
+	note $23
+	note $73
+	note $73
+	note $73
+	note $63
+	note $53
+	note $43
+	note $71
+	note $91
+	note $41
+	note $51
+	note $73
+	note $73
+	note $0f
+	intensity $90
+	octave 3
+	note $77
+	intensity $b4
+	note $53
+	note $53
+	intensity $90
+	note $4f
+	note $2f
+	intensity $b2
+	octave 2
+	note $b1
+	note $b1
+	intensity $b7
+	octave 3
+	note $43
+	loopchannel $04, $6ab1
+	intensity $b2
+	note $11
+	note $11
+	intensity $b7
+	note $43
+	loopchannel $02, $6abe
+	intensity $b2
+	note $11
+	note $11
+	intensity $b7
+	note $73
+	intensity $b2
+	note $11
+	note $11
+	intensity $b7
+	note $93
+	callchannel $6b31
+	octave 3
+	note $41
+	note $41
+	intensity $b7
+	note $c3
+	callchannel $6b31
+	octave 3
+	note $41
+	note $41
+	intensity $b7
+	octave 4
+	note $33
+	loopchannel $00, $6a35 ; end
+; 0xeaaee
+
+INCBIN "baserom.gbc",$eaaee,$eab4a - $eaaee
+
+Music_ChampionBattle_Ch2: ; 0xeab4a
+	dutycycle $03
+	vibrato $08, $36
+	tone $0001
+	notetype $0c, $c2
+	octave 3
+	note $47
+	note $47
+	note $47
+	note $43
+	intensity $c7
+	note $33
+	callchannel $6c4f
+	note $b3
+	callchannel $6c4f
+	note $c3
+	callchannel $6c4f
+	octave 4
+	note $23
+	callchannel $6c5c
+	note $33
+	callchannel $6c5c
+	note $63
+	callchannel $6c5c
+	note $33
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	note $b3
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	note $c3
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	octave 4
+	note $13
+	intensity $c2
+	octave 3
+	note $41
+	note $41
+	intensity $c7
+	octave 4
+	note $23
+	note $47
+	octave 3
+	note $47
+	octave 4
+	note $57
+	intensity $3c
+	note $57
+	intensity $c5
+	note $45
+	octave 3
+	note $b5
+	octave 4
+	note $41
+	note $31
+	note $23
+	note $13
+	octave 3
+	note $c3
+	note $b3
+	intensity $c7
+	note $c7
+	octave 4
+	note $57
+	intensity $c2
+	octave 3
+	note $91
+	note $91
+	intensity $c7
+	note $c3
+	intensity $c2
+	note $91
+	note $91
+	intensity $c7
+	octave 4
+	note $23
+	intensity $c5
+	note $45
+	octave 3
+	note $b5
+	octave 4
+	note $41
+	note $31
+	note $23
+	note $13
+	octave 3
+	note $c3
+	note $b1
+	note $c1
+	intensity $c7
+	octave 4
+	note $57
+	note $97
+	note $57
+	note $c7
+	callchannel $6c79
+	note $53
+	note $53
+	callchannel $6c79
+	note $73
+	note $73
+	intensity $c7
+	note $47
+	octave 3
+	note $47
+	octave 4
+	note $27
+	octave 3
+	note $27
+	intensity $b0
+	note $4f
+	note $4f
+	note $6f
+	note $7f
+	intensity $c4
+	octave 5
+	note $43
+	note $33
+	note $23
+	note $13
+	note $41
+	note $31
+	note $21
+	note $11
+	octave 4
+	note $c3
+	note $c3
+	loopchannel $02, $6bef
+	intensity $b0
+	octave 3
+	note $4f
+	note $cf
+	note $bf
+	note $9f
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	note $b3
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	note $c3
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	note $b3
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	note $a3
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	note $b3
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	note $c3
+	intensity $c2
+	note $41
+	note $41
+	intensity $c7
+	octave 4
+	note $23
+	intensity $c2
+	octave 3
+	note $41
+	note $41
+	intensity $c7
+	octave 4
+	note $33
+	intensity $b0
+	note $47
+	note $57
+	note $77
+	note $57
+	note $47
+	note $57
+	note $77
+	note $97
+	loopchannel $00, $6b9d ; end
+; 0xeac4f
+
+INCBIN "baserom.gbc",$eac4f,$eac85 - $eac4f
+
+Music_ChampionBattle_Ch3: ; 0xeac85
+	notetype $0c, $14
+	octave 3
+	note $40
+	note $06
+	loopchannel $03, $6c88
+	note $40
+	note $02
+	note $53
+	callchannel $6d61
+	callchannel $6d61
+	callchannel $6d61
+	callchannel $6d6f
+	note $33
+	callchannel $6d6f
+	note $a3
+	callchannel $6d6f
+	note $33
+	note $40
+	note $00
+	note $40
+	note $00
+	note $b3
+	note $40
+	note $00
+	note $40
+	note $00
+	note $b3
+	note $40
+	note $00
+	note $40
+	note $00
+	note $c3
+	note $40
+	note $00
+	note $40
+	note $00
+	octave 4
+	note $23
+	note $47
+	octave 3
+	note $47
+	note $c3
+	note $81
+	note $c1
+	note $71
+	note $b1
+	note $61
+	note $a1
+	note $41
+	note $b1
+	loopchannel $08, $6cc6
+	note $51
+	note $c1
+	loopchannel $05, $6ccc
+	note $51
+	octave 4
+	note $11
+	octave 3
+	note $a1
+	note $c1
+	note $81
+	note $a1
+	note $41
+	note $b1
+	loopchannel $08, $6cda
+	note $51
+	note $c1
+	loopchannel $08, $6ce0
+	callchannel $6d83
+	octave 3
+	note $41
+	note $51
+	note $41
+	note $51
+	note $41
+	octave 4
+	note $31
+	note $21
+	note $11
+	callchannel $6d83
+	octave 3
+	note $41
+	note $b1
+	note $41
+	note $b1
+	note $41
+	octave 4
+	note $31
+	note $21
+	note $11
+	octave 3
+	note $b7
+	note $47
+	note $c7
+	note $47
+	note $41
+	note $71
+	loopchannel $10, $6d05
+	callchannel $6d8e
+	octave 3
+	note $51
+	note $c1
+	octave 4
+	note $41
+	note $51
+	note $71
+	octave 3
+	note $c1
+	octave 4
+	note $41
+	note $51
+	callchannel $6d8e
+	octave 3
+	note $51
+	note $c1
+	loopchannel $04, $6d1d
+	note $41
+	note $b1
+	loopchannel $05, $6d24
+	note $c1
+	octave 4
+	note $41
+	octave 3
+	note $41
+	note $01
+	note $41
+	note $01
+	note $51
+	note $c1
+	loopchannel $05, $6d32
+	octave 4
+	note $21
+	note $51
+	octave 3
+	note $51
+	note $01
+	note $51
+	note $01
+	note $41
+	note $91
+	loopchannel $08, $6d40
+	note $41
+	note $b1
+	loopchannel $07, $6d46
+	note $c1
+	note $b1
+	octave 3
+	note $41
+	note $b1
+	octave 4
+	note $31
+	note $41
+	loopchannel $07, $6d4e
+	note $21
+	octave 3
+	note $c1
+	note $b1
+	note $91
+	loopchannel $00, $6cc6 ; end
+; 0xead61
+
+INCBIN "baserom.gbc",$ead61,$ead99 - $ead61
+
+Music_SSAqua: ; 0xead99
+	dbw $c0, Music_SSAqua_Ch1
+	dbw $01, Music_SSAqua_Ch2
+	dbw $02, Music_SSAqua_Ch3
+	dbw $03, Music_SSAqua_Ch4
+; 0xeada5
+
+Music_SSAqua_Ch1: ; 0xeada5
+	tempo $0075
+	volume $77
+	stereopanning $0f
+	tone $0001
+	vibrato $12, $33
+	dutycycle $02
+	notetype $06, $97
+	octave 2
+	note $80
+	note $00
+	note $80
+	note $00
+	octave 2
+	note $8f
+	note $07
+	note $81
+	note $01
+	notetype $0c, $97
+	note $81
+	note $89
+	note $03
+	notetype $06, $97
+	note $80
+	note $00
+	note $80
+	note $00
+	note $8f
+	note $07
+	note $81
+	note $01
+	notetype $0c, $97
+	note $81
+	note $87
+	note $07
+	dutycycle $01
+	intensity $61
+	callchannel $6ff5
+	octave 5
+	note $80
+	octave 4
+	note $c0
+	note $a0
+	note $80
+	octave 5
+	note $80
+	octave 4
+	note $c0
+	note $a0
+	note $80
+	octave 5
+	note $80
+	octave 4
+	note $c0
+	note $a0
+	note $80
+	octave 5
+	note $80
+	octave 4
+	note $c0
+	note $a0
+	note $80
+	callchannel $6ff5
+	callchannel $703e
+	note $0f
+	note $0f
+	note $0f
+	intensity $97
+	note $0d
+	notetype $06, $97
+	note $30
+	note $00
+	octave 3
+	note $b0
+	note $00
+	notetype $0c, $97
+	note $0f
+	note $0f
+	intensity $95
+	note $01
+	octave 4
+	note $10
+	note $50
+	note $80
+	note $00
+	note $50
+	note $10
+	octave 3
+	note $50
+	note $10
+	note $50
+	note $80
+	octave 4
+	note $10
+	note $50
+	note $80
+	octave 5
+	note $10
+	octave 4
+	note $55
+	note $31
+	note $10
+	note $30
+	note $70
+	note $a0
+	octave 5
+	note $10
+	note $30
+	octave 4
+	note $80
+	note $70
+	dutycycle $02
+	intensity $97
+	note $87
+	note $77
+	note $57
+	note $37
+	octave 3
+	note $c7
+	note $b1
+	note $01
+	note $c0
+	note $00
+	octave 4
+	note $71
+	intensity $75
+	octave 5
+	note $a3
+	note $73
+	note $33
+	octave 4
+	note $b1
+	notetype $06, $97
+	note $30
+	note $00
+	octave 3
+	note $b0
+	note $00
+	intensity $97
+	note $8f
+	note $af
+	note $c3
+	note $03
+	note $c3
+	note $03
+	octave 4
+	note $57
+	note $87
+	note $70
+	vibrato $00, $00
+	intensity $88
+	note $89
+	vibrato $02, $23
+	intensity $87
+	note $88
+	vibrato $08, $33
+	note $13
+	note $53
+	note $13
+	note $3b
+	note $7b
+	note $07
+	octave 2
+	note $c1
+	octave 3
+	note $31
+	note $71
+	note $a1
+	note $31
+	note $71
+	note $a1
+	octave 4
+	note $31
+	note $71
+	notetype $0c, $97
+	note $06
+	note $0f
+	note $0f
+	note $87
+	note $70
+	note $30
+	octave 3
+	note $a0
+	octave 4
+	note $30
+	octave 3
+	note $a0
+	note $70
+	note $30
+	octave 2
+	note $a0
+	note $c0
+	octave 3
+	note $30
+	note $70
+	note $a0
+	note $30
+	note $70
+	note $a0
+	octave 4
+	note $30
+	note $70
+	note $06
+	note $0f
+	note $01
+	note $51
+	note $80
+	note $00
+	note $50
+	notetype $06, $97
+	note $00
+	note $10
+	note $23
+	octave 3
+	note $c1
+	note $01
+	note $a2
+	note $00
+	note $81
+	note $01
+	note $71
+	note $31
+	octave 2
+	note $a1
+	octave 3
+	note $31
+	note $a1
+	note $71
+	note $31
+	note $a1
+	octave 4
+	note $31
+	octave 3
+	note $a1
+	note $71
+	note $a1
+	octave 4
+	note $11
+	note $31
+	note $71
+	note $a1
+	loopchannel $00, $6dbc ; end
+; 0xeaeca
+
+Music_SSAqua_Ch2: ; 0xeaeca
+	stereopanning $f0
+	dutycycle $02
+	vibrato $08, $33
+	notetype $0c, $b7
+	note $01
+	notetype $0c, $b7
+	dutycycle $01
+	intensity $61
+	callchannel $6ff5
+	callchannel $703e
+	dutycycle $02
+	intensity $d7
+	callchannel $6fe0
+	note $c0
+	note $00
+	note $80
+	note $02
+	octave 3
+	note $85
+	note $80
+	note $c0
+	octave 4
+	note $20
+	note $50
+	forceoctave $0c
+	callchannel $6fe0
+	forceoctave $00
+	octave 3
+	note $c0
+	note $00
+	note $80
+	note $02
+	octave 4
+	note $85
+	note $01
+	dutycycle $03
+	intensity $b7
+	octave 3
+	note $c0
+	octave 4
+	note $10
+	callchannel $6f88
+	note $83
+	note $03
+	note $87
+	note $a7
+	note $c7
+	notetype $0c, $b7
+	octave 5
+	note $19
+	note $31
+	note $11
+	octave 4
+	note $81
+	note $c5
+	note $a5
+	note $01
+	octave 3
+	note $c0
+	octave 4
+	note $10
+	callchannel $6f88
+	note $83
+	note $03
+	note $87
+	note $a7
+	note $c7
+	octave 5
+	note $40
+	vibrato $00, $00
+	intensity $98
+	note $59
+	vibrato $04, $23
+	intensity $97
+	note $58
+	vibrato $08, $23
+	note $33
+	note $13
+	octave 4
+	note $83
+	note $cb
+	note $ab
+	note $03
+	dutycycle $00
+	note $c1
+	note $a1
+	callchannel $6fd5
+	notetype $06, $b7
+	note $90
+	note $aa
+	note $81
+	note $71
+	note $8b
+	note $03
+	note $03
+	note $51
+	note $01
+	note $51
+	note $01
+	note $81
+	note $01
+	note $a1
+	note $01
+	note $51
+	note $01
+	note $71
+	note $01
+	note $81
+	note $01
+	note $af
+	note $bb
+	note $c1
+	note $a1
+	callchannel $6fd5
+	notetype $06, $b7
+	note $90
+	note $aa
+	note $c3
+	note $8b
+	note $03
+	note $03
+	octave 5
+	note $13
+	note $31
+	note $01
+	note $11
+	note $00
+	octave 4
+	note $b0
+	note $c3
+	note $a1
+	note $01
+	note $83
+	note $51
+	note $01
+	note $77
+	note $87
+	note $a7
+	note $07
+	loopchannel $00, $6ed5 ; end
+; 0xeaf88
+
+INCBIN "baserom.gbc", $eaf88, $eb056 - $eaf88
+
+Music_SSAqua_Ch3: ; 0xeb056
+	stereopanning $ff
+	vibrato $08, $34
+	notetype $06, $15
+	octave 2
+	note $80
+	note $00
+	note $80
+	note $00
+	note $8f
+	note $07
+	note $81
+	note $01
+	notetype $0c, $15
+	note $81
+	note $89
+	note $03
+	notetype $06, $15
+	note $80
+	note $00
+	note $80
+	note $00
+	note $8f
+	note $07
+	note $81
+	note $01
+	notetype $0c, $15
+	note $81
+	note $87
+	note $c0
+	octave 3
+	note $20
+	note $30
+	note $80
+	note $30
+	note $80
+	note $c0
+	octave 4
+	note $50
+	callchannel $714d
+	callchannel $714d
+	note $81
+	note $01
+	octave 3
+	note $80
+	note $02
+	octave 2
+	note $81
+	note $01
+	octave 3
+	note $80
+	note $02
+	octave 2
+	note $81
+	note $01
+	octave 3
+	note $80
+	note $02
+	octave 2
+	note $81
+	note $01
+	octave 3
+	note $80
+	note $00
+	octave 2
+	note $80
+	note $00
+	loopchannel $04, $708d
+	callchannel $7172
+	callchannel $7172
+	callchannel $7230
+	octave 3
+	note $51
+	note $01
+	octave 4
+	note $50
+	note $02
+	octave 3
+	note $41
+	note $01
+	octave 4
+	note $40
+	note $02
+	octave 3
+	note $31
+	note $01
+	octave 4
+	note $30
+	note $02
+	octave 3
+	note $41
+	note $01
+	octave 4
+	note $40
+	note $02
+	octave 2
+	note $a1
+	note $01
+	octave 4
+	note $10
+	note $02
+	octave 2
+	note $a1
+	note $01
+	octave 4
+	note $10
+	note $02
+	octave 2
+	note $a1
+	note $01
+	octave 4
+	note $20
+	note $02
+	octave 2
+	note $a1
+	note $01
+	octave 4
+	note $20
+	note $02
+	octave 3
+	note $31
+	note $01
+	octave 4
+	note $80
+	note $02
+	octave 3
+	note $31
+	note $01
+	octave 4
+	note $80
+	note $02
+	octave 3
+	note $31
+	note $01
+	octave 4
+	note $70
+	note $02
+	octave 3
+	note $31
+	note $01
+	octave 4
+	note $70
+	note $02
+	callchannel $7230
+	octave 3
+	note $51
+	note $01
+	octave 4
+	note $50
+	note $02
+	octave 3
+	note $51
+	note $01
+	octave 4
+	note $40
+	note $02
+	octave 2
+	note $a1
+	note $01
+	octave 4
+	note $20
+	note $02
+	octave 2
+	note $a1
+	note $01
+	octave 4
+	note $20
+	note $02
+	octave 3
+	note $11
+	note $01
+	octave 4
+	note $80
+	note $02
+	octave 3
+	note $11
+	note $01
+	octave 4
+	note $80
+	note $02
+	octave 3
+	note $21
+	note $01
+	octave 4
+	note $80
+	note $02
+	octave 3
+	note $21
+	note $01
+	octave 4
+	note $80
+	note $02
+	octave 3
+	note $31
+	note $01
+	octave 4
+	note $80
+	note $02
+	octave 3
+	note $31
+	note $01
+	octave 4
+	note $80
+	note $02
+	octave 3
+	note $31
+	note $01
+	octave 4
+	note $70
+	note $02
+	octave 3
+	note $31
+	note $01
+	octave 2
+	note $80
+	note $00
+	note $80
+	note $00
+	loopchannel $00, $7063 ; end
+; 0xeb14d
+
+INCBIN "baserom.gbc", $eb14d, $eb249 - $eb14d
+
+Music_SSAqua_Ch4: ; 0xeb249
+	togglenoise
+	db $03
+	notetype $0c, $01
+	note $90
+	note $80
+	note $80
+	note $80
+	note $80
+	note $80
+	note $80
+	note $80
+	note $80
+	note $80
+	note $80
+	note $80
+	note $80
+	note $80
+	note $90
+	note $80
+	loopchannel $0c, $724e
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72bb
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72bb
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72bb
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72c7
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72bb
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72ae
+	callchannel $72c7
+	loopchannel $00, $724e ; end
+; 0xeb2ae
+
+INCBIN "baserom.gbc",$eb2ae,$eb2d3 - $eb2ae
+
+Music_NewBarkTown: ; 0xeb2d3
+	dbw $80, Music_NewBarkTown_Ch1
+	dbw $01, Music_NewBarkTown_Ch2
+	dbw $02, Music_NewBarkTown_Ch3
+; 0xeb2dc
+
+INCBIN "baserom.gbc", $eb2dc, $eb2dd - $eb2dc
+
+Music_NewBarkTown_Ch1: ; 0xeb2dd
+	tempo $00bb
+	volume $77
+	stereopanning $0f
+	vibrato $12, $23
+	notetype $0c, $87
+	note $03
+	dutycycle $00
+	callchannel $7349
+	octave 3
+	note $20
+	note $00
+	octave 2
+	note $a0
+	note $00
+	octave 3
+	note $81
+	note $71
+	dutycycle $02
+	intensity $82
+	note $50
+	note $70
+	note $50
+	note $30
+	note $20
+	octave 2
+	note $c0
+	note $a0
+	note $80
+	dutycycle $00
+	intensity $87
+	callchannel $7349
+	octave 3
+	note $20
+	note $00
+	octave 2
+	note $a0
+	note $00
+	octave 3
+	note $51
+	dutycycle $02
+	intensity $82
+	note $20
+	note $00
+	octave 2
+	note $a0
+	octave 3
+	note $20
+	note $50
+	note $80
+	note $a0
+	octave 4
+	note $20
+	note $50
+	note $a0
+	dutycycle $01
+	intensity $5e
+	callchannel $737c
+	callchannel $737c
+	callchannel $737c
+	octave 2
+	note $81
+	note $c1
+	octave 3
+	note $31
+	note $73
+	note $83
+	note $31
+	octave 2
+	note $a1
+	octave 3
+	note $21
+	note $51
+	note $83
+	note $a3
+	note $c1
+	intensity $87
+	loopchannel $00, $72eb ; end
+; 0xeb349
+
+INCBIN "baserom.gbc", $eb349, $eb38d - $eb349
+
+Music_NewBarkTown_Ch2: ; 0xeb38d
+	stereopanning $ff
+	vibrato $12, $23
+	notetype $06, $a7
+	note $07
+	dutycycle $02
+	notetype $06, $a7
+	callchannel $73bf
+	callchannel $73bf
+	callchannel $73f2
+	intensity $87
+	octave 5
+	note $c5
+	note $a5
+	intensity $77
+	octave 6
+	note $33
+	note $2f
+	callchannel $73f2
+	intensity $87
+	octave 5
+	note $c5
+	note $a5
+	intensity $77
+	octave 6
+	note $33
+	note $5f
+	loopchannel $00, $7396 ; end
+; 0xeb3bf
+
+INCBIN "baserom.gbc", $eb3bf, $eb400 - $eb3bf
+
+Music_NewBarkTown_Ch3: ; 0xeb400
+	stereopanning $f0
+	notetype $0c, $10
+	octave 5
+	note $31
+	note $51
+	vibrato $16, $23
+	note $73
+	note $a3
+	note $81
+	note $71
+	note $51
+	note $81
+	note $75
+	note $31
+	octave 4
+	note $a5
+	note $80
+	note $a0
+	note $c3
+	octave 5
+	note $33
+	note $51
+	note $31
+	note $21
+	note $31
+	note $55
+	note $71
+	note $53
+	note $01
+	note $30
+	note $50
+	note $73
+	note $a3
+	note $b1
+	note $a1
+	note $81
+	note $b1
+	note $a5
+	octave 6
+	note $21
+	note $35
+	octave 5
+	note $50
+	note $70
+	note $85
+	note $a1
+	note $c7
+	note $a5
+	note $80
+	note $70
+	note $53
+	note $03
+	intensity $25
+	vibrato $12, $53
+	octave 2
+	note $8f
+	note $af
+	note $8f
+	note $af
+	note $8f
+	note $af
+	note $8f
+	note $ad
+	intensity $10
+	vibrato $16, $23
+	octave 5
+	note $30
+	note $50
+	loopchannel $00, $7408 ; end
+; 0xeb453
+
+Music_GoldenrodCity: ; 0xeb453
+	dbw $c0, Music_GoldenrodCity_Ch1
+	dbw $01, Music_GoldenrodCity_Ch2
+	dbw $02, Music_GoldenrodCity_Ch3
+	dbw $03, Music_GoldenrodCity_Ch4
+; 0xeb45f
+
+Music_GoldenrodCity_Ch1: ; 0xeb45f
+	stereopanning $0f
+	tempo $00b0
+	volume $77
+	notetype $0c, $97
+	note $0f
+	note $0f
+	note $0f
+	note $0f
+	dutycycle $00
+	callchannel $74a9
+	octave 3
+	note $90
+	octave 4
+	note $10
+	note $40
+	note $70
+	note $40
+	note $70
+	note $90
+	octave 5
+	note $10
+	intensity $71
+	dutycycle $00
+	callchannel $74d1
+	intensity $77
+	note $41
+	note $61
+	note $71
+	note $93
+	intensity $71
+	callchannel $74d1
+	note $40
+	note $70
+	intensity $77
+	octave 5
+	note $11
+	octave 4
+	note $91
+	note $71
+	note $41
+	dutycycle $02
+	intensity $97
+	callchannel $74a9
+	note $13
+	octave 3
+	note $91
+	octave 4
+	note $11
+	loopchannel $00, $746d ; end
+; 0xeb4a9
+
+INCBIN "baserom.gbc", $eb4a9, $eb519 - $eb4a9
+
+Music_GoldenrodCity_Ch2: ; 0xeb519
+	stereopanning $f0
+	vibrato $12, $23
+	dutycycle $02
+	notetype $0c, $97
+	intensity $97
+	callchannel $7555
+	octave 4
+	note $61
+	note $71
+	note $91
+	note $61
+	note $47
+	callchannel $7555
+	note $91
+	note $b1
+	octave 5
+	note $11
+	note $21
+	note $47
+	dutycycle $02
+	intensity $77
+	callchannel $7572
+	octave 4
+	note $91
+	note $b1
+	note $c1
+	octave 5
+	note $13
+	dutycycle $03
+	intensity $77
+	callchannel $7572
+	note $61
+	note $41
+	note $21
+	note $11
+	octave 4
+	note $91
+	loopchannel $00, $7523 ; end
+; 0xeb555
+
+INCBIN "baserom.gbc", $eb555, $eb584 - $eb555
+
+Music_GoldenrodCity_Ch3: ; 0xeb584
+	stereopanning $ff
+	vibrato $08, $23
+	notetype $0c, $25
+	callchannel $75aa
+	callchannel $75aa
+	callchannel $75d2
+	note $02
+	octave 3
+	note $10
+	note $40
+	note $80
+	note $90
+	note $41
+	callchannel $75d2
+	note $00
+	octave 3
+	note $91
+	note $71
+	note $41
+	octave 2
+	note $91
+	loopchannel $00, $758c ; end
+; 0xeb5aa
+
+INCBIN "baserom.gbc", $eb5aa, $eb606 - $eb5aa
+
+Music_GoldenrodCity_Ch4: ; 0xeb606
+	togglenoise
+	db $03
+	notetype $0c, $0f
+	note $0f
+	note $0f
+	note $07
+	note $31
+	note $71
+	note $30
+	note $30
+	note $71
+	note $41
+	note $71
+	note $31
+	note $71
+	note $41
+	note $71
+	note $31
+	note $71
+	loopchannel $03, $7613
+	callchannel $7663
+	callchannel $766d
+	note $80
+	note $80
+	note $71
+	callchannel $766d
+	note $31
+	note $71
+	callchannel $766d
+	note $30
+	note $30
+	note $71
+	callchannel $766d
+	note $31
+	note $30
+	note $30
+	callchannel $766d
+	note $80
+	note $80
+	note $71
+	callchannel $766d
+	note $31
+	note $71
+	callchannel $766d
+	note $30
+	note $30
+	note $71
+	callchannel $766d
+	note $31
+	note $30
+	note $30
+	note $41
+	note $71
+	note $31
+	note $71
+	note $41
+	note $71
+	note $31
+	note $71
+	loopchannel $03, $7650
+	callchannel $7663
+	loopchannel $00, $7613 ; end
+; 0xeb663
+
+INCBIN "baserom.gbc", $eb663, $eb676 - $eb663
+
+Music_VermilionCity: ; 0xeb676
+	dbw $80, Music_VermilionCity_Ch1
+	dbw $01, Music_VermilionCity_Ch2
+	dbw $02, Music_VermilionCity_Ch3
+; 0xeb67f
+
+INCBIN "baserom.gbc", $eb67f, $eb680 - $eb67f
+
+Music_VermilionCity_Ch1: ; 0xeb680
+	stereopanning $0f
+	tempo $00b0
+	volume $77
+	dutycycle $02
+	notetype $0c, $65
+	octave 4
+	note $c3
+	note $93
+	note $73
+	note $53
+	note $33
+	octave 3
+	note $c3
+	note $a1
+	note $c0
+	octave 4
+	note $30
+	note $50
+	note $90
+	note $c0
+	octave 5
+	note $30
+	vibrato $10, $23
+	dutycycle $01
+	notetype $0c, $85
+	callchannel $76f9
+	note $63
+	octave 4
+	note $33
+	note $23
+	note $53
+	callchannel $76f9
+	callchannel $7701
+	dutycycle $02
+	notetype $0c, $85
+	callchannel $76f9
+	note $63
+	octave 4
+	note $33
+	note $50
+	note $20
+	octave 3
+	note $a0
+	note $50
+	octave 4
+	note $20
+	octave 3
+	note $a0
+	note $50
+	note $10
+	callchannel $76f9
+	callchannel $7701
+	intensity $93
+	dutycycle $00
+	note $01
+	note $71
+	note $01
+	note $71
+	note $01
+	note $71
+	note $01
+	note $71
+	callchannel $770c
+	callchannel $770c
+	intensity $87
+	dutycycle $02
+	octave 4
+	note $37
+	octave 3
+	note $97
+	note $57
+	note $c7
+	note $a3
+	note $93
+	note $73
+	note $53
+	octave 2
+	note $c3
+	note $93
+	note $c3
+	octave 3
+	note $33
+	loopchannel $00, $76a0 ; end
+; 0xeb6f9
+
+INCBIN "baserom.gbc", $eb6f9, $eb721 - $eb6f9
+
+Music_VermilionCity_Ch2: ; 0xeb721
+	stereopanning $ff
+	dutycycle $03
+	notetype $0c, $77
+	vibrato $10, $23
+	octave 5
+	note $53
+	note $33
+	octave 4
+	note $c3
+	note $93
+	note $73
+	note $53
+	note $73
+	note $93
+	notetype $0c, $97
+	callchannel $7768
+	note $91
+	callchannel $7768
+	note $51
+	intensity $b7
+	octave 3
+	note $c3
+	octave 4
+	note $23
+	note $33
+	note $53
+	callchannel $777e
+	callchannel $777e
+	note $75
+	note $50
+	note $70
+	note $57
+	note $a5
+	note $90
+	note $a0
+	note $97
+	note $9d
+	notetype $06, $57
+	note $00
+	octave 4
+	note $50
+	note $90
+	note $c0
+	notetype $0c, $87
+	octave 5
+	note $5f
+	loopchannel $00, $7735 ; end
+; 0xeb768
+
+INCBIN "baserom.gbc", $eb768, $eb785 - $eb768
+
+Music_VermilionCity_Ch3: ; 0xeb785
+	stereopanning $f0
+	vibrato $22, $23
+	notetype $0c, $25
+	octave 2
+	note $53
+	note $c3
+	octave 3
+	note $53
+	note $c3
+	note $33
+	note $53
+	note $31
+	octave 3
+	note $c0
+	note $90
+	note $70
+	note $50
+	note $30
+	octave 2
+	note $c0
+	notetype $0c, $22
+	callchannel $77de
+	octave 5
+	note $a5
+	intensity $24
+	note $50
+	note $90
+	callchannel $77de
+	note $a7
+	intensity $14
+	octave 3
+	note $33
+	note $23
+	octave 2
+	note $c3
+	note $a3
+	octave 3
+	note $31
+	note $03
+	note $30
+	note $30
+	callchannel $77f5
+	octave 4
+	note $31
+	octave 3
+	note $31
+	note $01
+	note $31
+	callchannel $77f5
+	intensity $25
+	octave 3
+	note $57
+	octave 4
+	note $57
+	octave 3
+	note $c7
+	octave 4
+	note $57
+	octave 2
+	note $5f
+	octave 3
+	note $5d
+	intensity $22
+	octave 5
+	note $50
+	note $90
+	loopchannel $00, $779e ; end
+; 0xeb7de
+
+INCBIN "baserom.gbc", $eb7de, $eb808 - $eb7de
+
+Music_TitleScreen: ; 0xeb808
+	dbw $c0, Music_TitleScreen_Ch1
+	dbw $01, Music_TitleScreen_Ch2
+	dbw $02, Music_TitleScreen_Ch3
+	dbw $03, Music_TitleScreen_Ch4
+; 0xeb814
+
+Music_TitleScreen_Ch1: ; 0xeb814
+	tempo $0086
+	volume $77
+	dutycycle $03
+	tone $0002
+	vibrato $10, $12
+	stereopanning $f0
+	notetype $0c, $a7
+	intensity $a0
+	octave 3
+	note $03
+	intensity $a7
+	octave 2
+	note $80
+	note $01
+	note $a0
+	note $c7
+	note $83
+	octave 3
+	note $10
+	note $01
+	note $30
+	note $57
+	note $13
+	octave 2
+	note $c0
+	note $01
+	octave 3
+	note $10
+	octave 2
+	note $c7
+	note $a3
+	note $a0
+	note $01
+	note $c0
+	octave 3
+	note $15
+	note $53
+	note $71
+	stereopanning $ff
+	octave 4
+	note $80
+	stereopanning $f0
+	octave 3
+	note $34
+	octave 2
+	note $c1
+	octave 3
+	note $33
+	octave 2
+	note $c3
+	octave 3
+	note $15
+	note $65
+	note $13
+	note $35
+	intensity $b7
+	note $40
+	note $50
+	note $65
+	note $50
+	note $40
+	note $37
+	notetype $08, $a7
+	note $13
+	octave 2
+	note $c3
+	octave 3
+	note $13
+	note $38
+	octave 2
+	note $c2
+	octave 3
+	note $35
+	octave 2
+	note $c5
+	octave 3
+	note $12
+	note $35
+	note $52
+	note $53
+	note $53
+	note $13
+	notetype $08, $a0
+	octave 2
+	note $c5
+	notetype $08, $a7
+	note $c5
+	notetype $08, $a7
+	octave 3
+	note $63
+	note $53
+	note $13
+	notetype $08, $a0
+	note $35
+	notetype $08, $a7
+	note $35
+	notetype $08, $a7
+	note $02
+	octave 2
+	note $c2
+	octave 3
+	note $12
+	note $32
+	note $38
+	octave 2
+	note $c2
+	octave 3
+	note $35
+	octave 2
+	note $c5
+	octave 3
+	note $18
+	note $68
+	note $15
+	note $38
+	notetype $0c, $b7
+	note $40
+	note $50
+	note $65
+	note $50
+	note $40
+	note $37
+	notetype $08, $a7
+	note $13
+	octave 2
+	note $c3
+	octave 3
+	note $13
+	note $38
+	octave 2
+	note $c2
+	octave 3
+	note $38
+	notetype $08, $b7
+	note $82
+	note $a3
+	note $83
+	note $63
+	note $65
+	note $55
+	note $38
+	note $62
+	note $82
+	note $35
+	note $82
+	notetype $08, $54
+	octave 2
+	note $82
+	note $c2
+	notetype $08, $94
+	octave 3
+	note $32
+	note $82
+	tempo $0088
+	notetype $08, $b4
+	note $62
+	note $a2
+	notetype $08, $d4
+	octave 4
+	note $12
+	note $62
+	tempo $008a
+	notetype $08, $b4
+	note $38
+	note $18
+	octave 3
+	note $b5
+	notetype $0c, $b7
+	note $60
+	note $50
+	note $30
+	note $50
+	note $63
+	octave 4
+	note $33
+	note $63
+	note $55
+	octave 3
+	note $81
+	notetype $08, $b7
+	note $a3
+	note $83
+	note $63
+	note $8b
+	octave 4
+	note $15
+	tempo $0088
+	note $25
+	tempo $0086
+	callchannel $796d
+	octave 4
+	note $13
+	note $13
+	note $23
+	callchannel $796d
+	octave 4
+	note $13
+	note $13
+	note $23
+	callchannel $796d
+	octave 3
+	note $53
+	note $53
+	note $13
+	notetype $0c, $a0
+	note $35
+	notetype $0c, $a7
+	note $39
+	intensity $a0
+	note $17
+	intensity $a7
+	note $17
+	intensity $a0
+	octave 2
+	note $c7
+	intensity $a7
+	note $c7
+	octave 3
+	note $17
+	octave 2
+	note $c7
+	octave 3
+	note $37
+	octave 2
+	note $c7
+	octave 3
+	note $17
+	note $67
+	note $a7
+	note $85
+	note $80
+	note $70
+	note $67
+	note $57
+	intensity $a0
+	note $3f
+	intensity $a7
+	note $3f
+	intensity $a3
+	octave 2
+	note $80
+	note $02
+	note $80
+	note $04
+	note $80
+	note $80
+	note $80
+	note $02
+	note $80
+	note $02
+	note $80
+	note $02
+	notetype $08, $b2
+	note $a1
+	note $a1
+	note $a1
+	note $a1
+	note $a1
+	note $71
+	notetype $0c, $b7
+	note $80
+	note $02
+	octave 1
+	note $80
+	note $0a
+	endchannel ; end
+; 0xeb96d
+
+INCBIN "baserom.gbc",$eb96d,$eb984 - $eb96d
+
+Music_TitleScreen_Ch2: ; 0xeb984
+	dutycycle $03
+	vibrato $14, $12
+	notetype $0c, $c7
+	intensity $a4
+	octave 1
+	note $80
+	octave 2
+	note $30
+	note $80
+	octave 3
+	note $10
+	intensity $c2
+	octave 3
+	note $c0
+	note $01
+	note $a0
+	intensity $b0
+	note $85
+	intensity $b7
+	note $85
+	note $0f
+	note $0f
+	intensity $c7
+	octave 4
+	note $10
+	note $01
+	note $30
+	note $57
+	note $71
+	note $50
+	note $70
+	octave 3
+	note $85
+	note $c1
+	octave 4
+	note $37
+	stereopanning $f0
+	intensity $97
+	octave 2
+	note $a3
+	note $63
+	stereopanning $ff
+	intensity $c7
+	octave 4
+	note $65
+	note $50
+	note $40
+	note $37
+	stereopanning $f0
+	intensity $97
+	octave 2
+	note $a5
+	octave 3
+	note $11
+	stereopanning $0f
+	intensity $a3
+	octave 4
+	note $33
+	note $31
+	note $13
+	note $11
+	octave 3
+	note $c3
+	stereopanning $ff
+	intensity $c7
+	octave 3
+	note $85
+	note $c1
+	octave 4
+	note $37
+	stereopanning $f0
+	intensity $97
+	octave 2
+	note $a1
+	note $63
+	note $a1
+	stereopanning $ff
+	notetype $08, $c7
+	octave 4
+	note $13
+	octave 3
+	note $c3
+	octave 4
+	note $13
+	note $3b
+	stereopanning $f0
+	notetype $08, $b7
+	octave 2
+	note $a8
+	stereopanning $0f
+	notetype $0c, $c7
+	note $80
+	note $a0
+	note $c5
+	note $50
+	note $70
+	note $83
+	notetype $0c, $4b
+	note $a3
+	stereopanning $ff
+	notetype $0c, $c7
+	octave 3
+	note $85
+	note $c1
+	octave 4
+	note $37
+	stereopanning $f0
+	intensity $97
+	octave 2
+	note $a1
+	note $65
+	stereopanning $ff
+	intensity $c7
+	octave 4
+	note $65
+	note $50
+	note $40
+	note $37
+	stereopanning $f0
+	intensity $97
+	octave 3
+	note $11
+	octave 2
+	note $a5
+	note $c5
+	note $81
+	notetype $08, $c7
+	note $63
+	note $83
+	note $63
+	stereopanning $ff
+	octave 3
+	note $88
+	note $c2
+	octave 4
+	note $3b
+	stereopanning $f0
+	notetype $08, $a7
+	octave 3
+	note $33
+	note $13
+	note $33
+	stereopanning $ff
+	notetype $08, $c7
+	octave 4
+	note $63
+	note $53
+	note $63
+	note $88
+	note $b2
+	notetype $0c, $b0
+	note $87
+	notetype $0c, $b7
+	note $87
+	intensity $c6
+	note $a3
+	intensity $5d
+	note $a3
+	intensity $c7
+	note $b5
+	intensity $c3
+	note $61
+	intensity $c7
+	note $67
+	intensity $a7
+	octave 3
+	note $b7
+	intensity $c7
+	octave 4
+	note $b3
+	note $c3
+	octave 5
+	note $15
+	intensity $c3
+	octave 4
+	note $81
+	intensity $c7
+	note $87
+	intensity $a7
+	octave 3
+	note $57
+	intensity $c7
+	octave 5
+	note $13
+	note $23
+	tone $0001
+	stereopanning $0f
+	callchannel $7ae7
+	note $23
+	callchannel $7ae7
+	note $23
+	callchannel $7ae7
+	octave 4
+	note $a3
+	stereopanning $ff
+	tone $0000
+	notetype $0c, $b0
+	octave 3
+	note $c5
+	notetype $0c, $b7
+	note $c9
+	intensity $c7
+	note $a7
+	note $65
+	note $50
+	note $40
+	note $37
+	note $87
+	note $67
+	note $a7
+	intensity $b0
+	note $87
+	intensity $b7
+	note $87
+	intensity $c7
+	note $67
+	octave 4
+	note $65
+	note $50
+	note $40
+	note $37
+	octave 2
+	note $c7
+	octave 3
+	note $17
+	note $a5
+	note $60
+	note $a0
+	intensity $b0
+	note $8f
+	intensity $b7
+	note $8f
+	intensity $c2
+	octave 4
+	note $80
+	note $02
+	note $80
+	note $04
+	note $80
+	note $80
+	note $80
+	note $02
+	note $80
+	note $02
+	intensity $90
+	note $83
+	notetype $08, $c2
+	octave 3
+	note $61
+	note $61
+	note $61
+	note $61
+	note $61
+	note $71
+	notetype $0c, $c7
+	note $80
+	note $02
+	octave 2
+	note $80
+	note $0a
+	endchannel ; end
+; 0xebae7
+
+INCBIN "baserom.gbc",$ebae7,$ebb01 - $ebae7
+
+Music_TitleScreen_Ch3: ; 0xebb01
+	stereopanning $0f
+	vibrato $10, $14
+	tone $0001
+	notetype $0c, $16
+	octave 3
+	octave 3
+	note $03
+	octave 2
+	note $81
+	note $30
+	note $20
+	note $30
+	note $00
+	note $81
+	note $30
+	note $00
+	note $31
+	note $81
+	note $31
+	note $61
+	note $10
+	octave 1
+	note $c0
+	octave 2
+	note $10
+	note $00
+	note $61
+	note $10
+	note $00
+	note $11
+	note $61
+	note $11
+	note $81
+	note $30
+	note $20
+	note $30
+	note $00
+	note $81
+	note $30
+	note $00
+	note $31
+	note $81
+	note $31
+	note $a1
+	note $60
+	note $50
+	note $60
+	note $00
+	note $a1
+	note $61
+	note $a3
+	octave 3
+	note $11
+	octave 2
+	note $83
+	note $31
+	note $83
+	note $31
+	note $81
+	note $31
+	note $a3
+	note $61
+	note $a3
+	note $61
+	note $a1
+	octave 3
+	note $11
+	octave 2
+	note $c3
+	note $81
+	note $c3
+	note $81
+	note $c1
+	note $81
+	note $83
+	note $c1
+	note $a3
+	note $c1
+	octave 3
+	note $13
+	octave 2
+	note $83
+	note $31
+	note $83
+	note $31
+	note $81
+	note $31
+	note $a3
+	note $61
+	note $a3
+	note $61
+	note $a1
+	octave 3
+	note $11
+	octave 2
+	note $c3
+	note $81
+	note $c3
+	note $81
+	note $c1
+	octave 3
+	note $11
+	octave 2
+	note $c3
+	note $81
+	note $c3
+	note $81
+	octave 3
+	note $33
+	octave 2
+	note $83
+	note $31
+	note $83
+	note $31
+	note $81
+	note $31
+	note $a3
+	note $61
+	note $a3
+	note $61
+	note $a1
+	octave 3
+	note $11
+	octave 2
+	note $c3
+	note $81
+	note $c3
+	note $81
+	note $c1
+	note $81
+	octave 3
+	note $33
+	octave 2
+	note $81
+	octave 3
+	note $33
+	octave 2
+	note $81
+	octave 3
+	note $31
+	octave 2
+	note $a1
+	note $83
+	note $31
+	note $83
+	note $31
+	note $81
+	note $31
+	note $a3
+	note $61
+	note $a3
+	note $61
+	note $a1
+	octave 3
+	note $11
+	octave 2
+	note $c3
+	note $81
+	note $c3
+	note $81
+	octave 3
+	note $31
+	octave 2
+	note $81
+	note $81
+	note $31
+	note $81
+	note $a1
+	note $a1
+	note $61
+	note $a1
+	octave 3
+	note $11
+	note $35
+	octave 2
+	note $b5
+	octave 3
+	note $63
+	note $b5
+	note $65
+	note $33
+	note $55
+	note $15
+	note $53
+	octave 4
+	note $15
+	octave 3
+	note $85
+	note $53
+	note $30
+	note $00
+	stereopanning $ff
+	notetype $0c, $16
+	tone $0000
+	octave 4
+	note $a1
+	octave 5
+	note $31
+	note $a5
+	note $81
+	note $71
+	note $30
+	note $01
+	note $50
+	note $73
+	notetype $08, $16
+	octave 3
+	note $13
+	note $13
+	note $23
+	notetype $0c, $16
+	note $30
+	note $00
+	octave 4
+	note $a1
+	octave 5
+	note $31
+	note $a5
+	note $81
+	note $71
+	note $c0
+	note $01
+	note $a0
+	note $a3
+	notetype $08, $16
+	octave 3
+	note $13
+	note $13
+	note $23
+	notetype $0c, $16
+	note $30
+	note $00
+	notetype $0c, $16
+	octave 4
+	note $a1
+	octave 5
+	note $31
+	note $85
+	note $51
+	note $81
+	note $70
+	note $50
+	note $35
+	tone $0001
+	notetype $08, $16
+	octave 3
+	note $13
+	note $13
+	note $51
+	note $71
+	stereopanning $0f
+	notetype $0c, $16
+	note $8f
+	note $6f
+	note $87
+	note $35
+	note $30
+	note $50
+	note $61
+	note $6b
+	note $50
+	note $40
+	note $37
+	note $87
+	note $67
+	note $a7
+	note $87
+	note $35
+	note $30
+	note $50
+	note $6f
+	note $80
+	note $02
+	note $80
+	note $04
+	note $80
+	note $80
+	note $80
+	note $02
+	note $80
+	note $02
+	note $80
+	note $04
+	note $80
+	note $80
+	note $80
+	note $02
+	octave 2
+	note $80
+	note $02
+	note $80
+	note $04
+	note $80
+	note $80
+	note $80
+	note $02
+	note $80
+	note $02
+	note $80
+	note $02
+	notetype $08, $16
+	note $61
+	note $61
+	note $61
+	note $61
+	note $61
+	note $a1
+	notetype $0c, $16
+	note $80
+	note $02
+	octave 1
+	note $80
+	note $0a
+	endchannel ; end
+; 0xebc5c
+
+Music_TitleScreen_Ch4: ; 0xebc5c
+	togglenoise
+	db $05
+	stereopanning $f0
+	notetype $0c, $03
+	note $11
+	note $10
+	note $10
+	note $11
+	note $10
+	note $10
+	note $10
+	note $10
+	note $15
+	note $11
+	note $10
+	note $10
+	note $11
+	note $10
+	note $10
+	note $10
+	note $10
+	note $12
+	note $10
+	note $10
+	note $10
+	note $11
+	note $10
+	note $10
+	note $11
+	note $10
+	note $10
+	note $10
+	note $10
+	note $13
+	note $41
+	note $11
+	note $10
+	note $10
+	note $11
+	note $10
+	note $10
+	note $10
+	note $10
+	note $11
+	notetype $06, $30
+	note $30
+	note $20
+	note $20
+	note $20
+	note $20
+	note $10
+	note $10
+	notetype $0c, $fe
+	note $77
+	note $7d
+	callchannel $7d81
+	callchannel $7d81
+	note $11
+	note $41
+	note $11
+	note $41
+	note $41
+	note $10
+	note $10
+	note $11
+	notetype $06, $20
+	note $20
+	note $10
+	note $10
+	notetype $0c, $fe
+	note $77
+	note $7d
+	note $11
+	note $41
+	note $11
+	note $61
+	note $41
+	note $10
+	note $10
+	note $11
+	note $11
+	callchannel $7d81
+	note $11
+	note $41
+	note $11
+	note $41
+	note $41
+	note $10
+	note $10
+	note $11
+	note $10
+	note $10
+	callchannel $7d77
+	callchannel $7d81
+	callchannel $7d81
+	note $11
+	note $41
+	note $11
+	note $41
+	note $41
+	note $10
+	note $10
+	note $11
+	notetype $06, $20
+	note $30
+	note $30
+	note $20
+	notetype $0c, $fe
+	note $77
+	note $7d
+	callchannel $7d81
+	note $11
+	note $41
+	note $11
+	note $61
+	note $41
+	note $10
+	note $10
+	note $11
+	note $10
+	note $10
+	note $11
+	note $41
+	note $11
+	note $41
+	note $41
+	note $10
+	note $10
+	note $11
+	notetype $06, $30
+	note $30
+	note $20
+	note $20
+	notetype $0c, $a1
+	note $43
+	note $a3
+	note $41
+	note $a3
+	note $a1
+	note $43
+	note $a3
+	note $41
+	note $a1
+	note $a1
+	note $a1
+	note $43
+	note $a3
+	note $41
+	note $a3
+	note $a3
+	note $a3
+	note $a1
+	note $30
+	note $30
+	note $20
+	note $20
+	note $10
+	note $10
+	callchannel $7d8b
+	callchannel $7d93
+	note $20
+	note $30
+	note $30
+	note $20
+	notetype $0c, $fe
+	note $8b
+	note $7d
+	callchannel $7d93
+	note $30
+	note $30
+	note $20
+	note $20
+	notetype $0c, $fe
+	note $8b
+	note $7d
+	callchannel $7d93
+	note $20
+	note $20
+	note $20
+	note $20
+	notetype $0c, $9f
+	note $0f
+	loopchannel $06, $7d40
+	note $0b
+	notetype $06, $30
+	note $20
+	note $30
+	note $20
+	note $30
+	note $20
+	note $10
+	note $10
+	notetype $0c, $13
+	note $15
+	note $10
+	note $10
+	note $13
+	note $13
+	note $15
+	note $10
+	note $10
+	note $13
+	note $13
+	note $15
+	note $10
+	note $10
+	note $13
+	note $13
+	note $13
+	notetype $08, $11
+	note $11
+	note $11
+	notetype $06, $20
+	note $20
+	note $30
+	note $30
+	note $20
+	note $20
+	note $10
+	note $10
+	notetype $0c, $13
+	note $c3
+	endchannel ; end
+; 0xebd77
+
+INCBIN "baserom.gbc",$ebd77,$ebd9e - $ebd77
+
+Music_RuinsOfAlphInterior: ; 0xebd9e
+	dbw $80, Music_RuinsOfAlphInterior_Ch1
+	dbw $01, Music_RuinsOfAlphInterior_Ch2
+	dbw $02, Music_RuinsOfAlphInterior_Ch3
+; 0xebda7
+
+Music_RuinsOfAlphInterior_Ch1: ; 0xebda7
+	tempo $00e0
+	volume $77
+	dutycycle $00
+	stereopanning $f0
+	notetype $0c, $44
+	note $00
+	loopchannel $00, $7dc2 ; end
+; 0xebdb8
+
+Music_RuinsOfAlphInterior_Ch2: ; 0xebdb8
+	tone $0002
+	dutycycle $00
+	stereopanning $0f
+	notetype $0c, $a4
+	octave 4
+	note $13
+	octave 3
+	note $b3
+	octave 4
+	note $21
+	note $41
+	note $11
+	octave 3
+	note $b1
+	octave 4
+	note $13
+	octave 3
+	note $b3
+	loopchannel $00, $7dc2 ; end
+; 0xebdd4
+
+Music_RuinsOfAlphInterior_Ch3: ; 0xebdd4
+	notetype $0c, $10
+	octave 2
+	note $91
+	octave 3
+	note $21
+	note $51
+	note $09
+	loopchannel $00, $7dd7 ; end
+; 0xebde1
+
+Music_LookPokemaniac: ; 0xebde1
+	dbw $80, Music_LookPokemaniac_Ch1
+	dbw $01, Music_LookPokemaniac_Ch2
+	dbw $02, Music_LookPokemaniac_Ch3
+; 0xebdea
+
+Music_LookPokemaniac_Ch1: ; 0xebdea
+	stereopanning $0f
+	tempo $0090
+	volume $77
+	vibrato $02, $33
+	tone $0002
+	notetype $0c, $b3
+	note $07
+	note $03
+	octave 3
+	note $b0
+	note $02
+	note $b0
+	note $02
+	loopchannel $04, $7dfb
+	note $03
+	note $80
+	note $02
+	note $80
+	note $02
+	loopchannel $04, $7dfb
+	loopchannel $00, $7dfb ; end
+; 0xebe12
+
+Music_LookPokemaniac_Ch2: ; 0xebe12
+	stereopanning $ff
+	vibrato $02, $33
+	tone $0001
+	notetype $0c, $b3
+	octave 2
+	note $a0
+	note $70
+	note $40
+	note $10
+	octave 1
+	note $a3
+	octave 2
+	note $11
+	note $01
+	octave 3
+	note $70
+	note $02
+	note $a0
+	note $02
+	octave 1
+	note $81
+	note $01
+	octave 3
+	note $10
+	note $02
+	note $40
+	note $02
+	loopchannel $02, $7e24
+	octave 1
+	note $a1
+	note $01
+	octave 3
+	note $40
+	note $02
+	note $70
+	note $02
+	octave 1
+	note $51
+	note $01
+	octave 2
+	note $a0
+	note $02
+	octave 3
+	note $10
+	note $02
+	loopchannel $02, $7e38
+	loopchannel $00, $7e24 ; end
+; 0xebe51
+
+Music_LookPokemaniac_Ch3: ; 0xebe51
+	stereopanning $f0
+	vibrato $06, $33
+	notetype $0c, $15
+	octave 4
+	note $10
+	note $40
+	note $70
+	note $a0
+	octave 5
+	note $13
+	intensity $10
+	callchannel $7e70
+	intensity $14
+	callchannel $7e70
+	intensity $10
+	loopchannel $00, $7e62 ; end
+; 0xebe70
+
+INCBIN "baserom.gbc",$ebe70,$ebeab - $ebe70
+
+Music_TrainerVictory: ; 0xebeab
+	dbw $80, Music_TrainerVictory_Ch1
+	dbw $01, Music_TrainerVictory_Ch2
+	dbw $02, Music_TrainerVictory_Ch3
+; 0xebeb4
+
+Music_TrainerVictory_Ch1: ; 0xebeb4
+	tempo $0078
+	volume $77
+	dutycycle $02
+	tone $0001
+	notetype $08, $b1
+	octave 4
+	note $51
+	note $51
+	note $51
+	note $51
+	note $71
+	note $81
+	intensity $b6
+	note $ab
+	stereopanning $0f
+	intensity $72
+	callchannel $7f11
+	intensity $51
+	note $21
+	note $51
+	note $71
+	note $a1
+	note $c1
+	octave 4
+	note $21
+	intensity $72
+	octave 3
+	note $a1
+	note $01
+	octave 4
+	note $21
+	note $55
+	loopchannel $02, $7ecd
+	callchannel $7f11
+	note $a1
+	note $01
+	note $61
+	note $a5
+	note $b1
+	note $01
+	note $81
+	note $b5
+	intensity $72
+	octave 4
+	note $31
+	note $21
+	octave 3
+	note $a1
+	loopchannel $03, $7ef2
+	note $71
+	note $a1
+	octave 4
+	note $31
+	octave 4
+	note $21
+	octave 3
+	note $c1
+	note $a1
+	loopchannel $03, $7f01
+	note $51
+	note $71
+	note $81
+	loopchannel $00, $7ecd ; end
+; 0xebf11
+
+INCBIN "baserom.gbc",$ebf11, $ebf1b - $ebf11
+
+Music_TrainerVictory_Ch2: ; 0xebf1b
+	vibrato $12, $34
+	dutycycle $03
+	notetype $08, $d1
+	octave 4
+	note $a1
+	note $a1
+	note $a1
+	note $a1
+	note $c1
+	octave 5
+	note $21
+	intensity $d6
+	note $3b
+	stereopanning $f0
+	notetype $08, $82
+	callchannel $7f56
+	note $71
+	note $01
+	note $81
+	note $a5
+	note $51
+	note $01
+	note $71
+	note $85
+	loopchannel $02, $7f30
+	callchannel $7f56
+	note $61
+	note $01
+	note $11
+	note $65
+	note $81
+	note $01
+	note $31
+	note $85
+	notetype $0c, $88
+	note $7f
+	note $5f
+	loopchannel $00, $7f30 ; end
+; 0xebf56
+
+INCBIN "baserom.gbc", $ebf56, $ebf64 - $ebf56
+
+Music_TrainerVictory_Ch3: ; 0xebf64
+	notetype $08, $25
+	octave 3
+	note $85
+	note $80
+	note $00
+	note $80
+	note $00
+	note $80
+	note $00
+	note $75
+	note $31
+	note $21
+	octave 2
+	note $c1
+	callchannel $7fb1
+	octave 3
+	note $21
+	note $01
+	note $21
+	note $a1
+	note $71
+	note $21
+	octave 2
+	note $a1
+	note $01
+	octave 3
+	note $a0
+	note $00
+	note $a5
+	loopchannel $02, $7f74
+	callchannel $7fb1
+	octave 3
+	note $11
+	note $01
+	note $11
+	note $a1
+	note $61
+	note $11
+	note $31
+	note $01
+	note $31
+	octave 4
+	note $31
+	octave 3
+	note $b1
+	note $81
+	note $31
+	note $71
+	note $a1
+	octave 4
+	note $3b
+	octave 3
+	note $a1
+	note $71
+	note $31
+	octave 2
+	note $a1
+	octave 3
+	note $31
+	note $51
+	note $ab
+	note $81
+	note $51
+	note $21
+	loopchannel $00, $7f74 ; end
+; 0xebfb1
+
+INCBIN "baserom.gbc",$ebfb1,$ebfc3 - $ebfb1
 
 SECTION "bank3B",DATA,BANK[$3B]
 
--- a/wram.asm
+++ b/wram.asm
@@ -72,9 +72,12 @@
 ;	hi: pressure
 ;   lo: velocity
 	ds 1
-Channel1Frequency: ; c111
+Channel1Frequency:
 ; 11 bits
-	ds 2
+Channel1FrequencyLo: ; c111
+	ds 1
+Channel1FrequencyHi: ; c112
+	ds 1
 Channel1Pitch: ; c113
 ; 0: rest
 ; 1: C