summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-04-15 08:59:14 -0400
committerU-Daniel-Laptop\Daniel <corrnondacqb@yahoo.com>2014-04-15 10:02:32 -0400
commitf9a20a518357dbef7454094ea48690b8f00a2c7b (patch)
tree8ec3984ec5823c4ae27b7d017463f0a51b0b5677
parentf73b6b45f01808c07955e33ce093ad5bc0992665 (diff)
Fix line endings
-rwxr-xr-xMakefile36
-rwxr-xr-xemptybank.asm4
-rwxr-xr-xhome.asm2464
-rwxr-xr-xmain.asm390
-rwxr-xr-xmusic/engine/music1.asm (renamed from music1.asm)4482
-rwxr-xr-xmusic/engine/music2.asm (renamed from music2.asm)4476
6 files changed, 5926 insertions, 5926 deletions
diff --git a/Makefile b/Makefile
index 43027cb..3299842 100755
--- a/Makefile
+++ b/Makefile
@@ -1,19 +1,19 @@
-.PHONY: all compare clean
-
-ROMS := tcg.gbc
-OBJS := main.o
-
-all: tcg.gbc compare
-compare: baserom.gbc $(ROMS)
- cmp $^
-
-%.o: %.asm
- rgbasm -o $@ $<
-
-tcg.gbc: $(OBJS)
- rgblink -o $@ $^
- rgbfix -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03 -t POKECARD -i AXQE $@
-
-clean:
- rm -f $(ROMS)
+.PHONY: all compare clean
+
+ROMS := tcg.gbc
+OBJS := main.o
+
+all: tcg.gbc compare
+compare: baserom.gbc $(ROMS)
+ cmp $^
+
+%.o: %.asm
+ rgbasm -o $@ $<
+
+tcg.gbc: $(OBJS)
+ rgblink -o $@ $^
+ rgbfix -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03 -t POKECARD -i AXQE $@
+
+clean:
+ rm -f $(ROMS)
rm -f $(OBJS) \ No newline at end of file
diff --git a/emptybank.asm b/emptybank.asm
index 16845e2..ad93186 100755
--- a/emptybank.asm
+++ b/emptybank.asm
@@ -1,3 +1,3 @@
-rept $4000
-db $ff
+rept $4000
+db $ff
endr \ No newline at end of file
diff --git a/home.asm b/home.asm
index c8334d2..967b102 100755
--- a/home.asm
+++ b/home.asm
@@ -1,1233 +1,1233 @@
-; rst vectors
-SECTION "rst00",ROM0[0]
- ret
-SECTION "rst08",ROM0[8]
- ret
-SECTION "rst10",ROM0[$10]
- ret
-SECTION "rst18",ROM0[$18]
- jp RST18
-SECTION "rst20",ROM0[$20]
- jp RST20
-SECTION "rst28",ROM0[$28]
- jp RST28
-SECTION "rst30",ROM0[$30]
- ret
-SECTION "rst38",ROM0[$38]
- ret
-
-; interrupts
-SECTION "vblank",ROM0[$40]
- jp VBlankHandler
-SECTION "lcdc",ROM0[$48]
- call $cacd
- reti
-SECTION "timer",ROM0[$50]
- jp TimerHandler
-SECTION "serial",ROM0[$58]
- jp SerialHandler
-SECTION "joypad",ROM0[$60]
- reti
-
-SECTION "romheader",ROM0[$100]
- nop
- jp Start
-
-SECTION "start",ROM0[$150]
-Start: ; 0150 (0:0150)
- di
- ld sp, $fffe
- push af
- xor a
- ld [$ff0f], a
- ld [$ffff], a
- call Func_03ec
- ld a, $1
- call BankswitchHome
- xor a
- call Func_07a9
- call Func_07c5
- call Func_028a
- pop af
- ld [$cab3], a
- call Func_0349
- ld a, $20
- ld [$cab6], a
- call Func_03a1
- call Func_030b
- call Func_036a
- call Func_377f
- call Func_0241
- call Func_0ea6
- call Func_0593
- call Func_080b
- ld a, $1
- call BankswitchHome
- ld sp, $e000
- jp $4000
-
-VBlankHandler: ; 019b (0:019b)
- push af
- push bc
- push de
- push hl
- ld a, [$ff80]
- push af
- ld hl, $caba
- bit 0, [hl]
- jr nz, .asm_1dd
- set 0, [hl]
- ld a, [$cac0]
- or a
- jr z, .asm_1b8
- call $ff83
- xor a
- ld [$cac0], a
-.asm_1b8
- ld a, [$ff92]
- ld [$ff43], a
- ld a, [$ff93]
- ld [$ff42], a
- ld a, [$ff94]
- ld [$ff4b], a
- ld a, [$ff95]
- ld [$ff4a], a
- ld a, [$cabb]
- ld [$ff40], a
- ei
- call $cad0
- call Func_042d
- ld hl, $cab8
- inc [hl]
- ld hl, $caba
- res 0, [hl]
-.asm_1dd
- pop af
- call BankswitchHome
- pop hl
- pop de
- pop bc
- pop af
- reti
-
-TimerHandler: ; 01e6 (0:01e6)
- push af
- push hl
- push de
- push bc
- ei
- call Func_0c91
- ld hl, $cac3
- ld a, [hl]
- inc [hl]
- and $3
- jr nz, .asm_217
- call Func_021c
- ld hl, $caba
- bit 1, [hl]
- jr nz, .asm_217
- set 1, [hl]
- ld a, [$ff80]
- push af
- ld a, BANK(Func_f4003)
- call BankswitchHome
- call Func_f4003
- pop af
- call BankswitchHome
- ld hl, $caba
- res 1, [hl]
-.asm_217
- pop bc
- pop de
- pop hl
- pop af
- reti
-
-Func_021c: ; 021c (0:021c)
- ld a, [$cac4]
- or a
- ret z
- ld hl, $cac5
- inc [hl]
- ld a, [hl]
- cp $3c
- ret c
- ld [hl], $0
- inc hl
- inc [hl]
- ld a, [hl]
- cp $3c
- ret c
- ld [hl], $0
- inc hl
- inc [hl]
- ld a, [hl]
- cp $3c
- ret c
- ld [hl], $0
- inc hl
- inc [hl]
- ret nz
- inc hl
- inc [hl]
- ret
-
-Func_0241: ; 0241 (0:0241)
- ld b, $bc
- call Func_025c
- jr c, .asm_250
- ld a, [$ff4d]
- and $80
- jr z, .asm_250
- ld b, $78
-.asm_250
- ld a, b
- ld [$ff06], a
- ld a, $3
- ld [$ff07], a
- ld a, $7
- ld [$ff07], a
- ret
-
-Func_025c: ; 025c (0:025c)
- ld a, [$cab4]
- cp $2
- ret z
- scf
- ret
-; 0x264
-
-INCBIN "baserom.gbc",$0264,$028a - $0264
-
-Func_028a: ; 028a (0:028a)
- ld a, [$ff40]
- bit 7, a
- ret z
- ld a, [$ffff]
- ld [$cab7], a
- res 0, a
- ld [$ffff], a
-.asm_298
- ld a, [$ff44]
- cp $91
- jr nz, .asm_298
- ld a, [$ff40]
- and $7f
- ld [$ff40], a
- ld a, [$cabb]
- and $7f
- ld [$cabb], a
- xor a
- ld [$ff47], a
- ld [$ff48], a
- ld [$ff49], a
- ld a, [$cab7]
- ld [$ffff], a
- ret
-; 0x2b9
-
-INCBIN "baserom.gbc",$02b9,$030b - $02b9
-
-Func_030b: ; 030b (0:030b)
- xor a
- ld [$ff42], a
- ld [$ff43], a
- ld [$ff4a], a
- ld [$ff4b], a
- ld [$cab0], a
- ld [$cab1], a
- ld [$cab2], a
- ld [$ff92], a
- ld [$ff93], a
- ld [$ff94], a
- ld [$ff95], a
- xor a
- ld [$caba], a
- ld a, $c3
- ld [$cacd], a
- ld [$cad0], a
- ld hl, $cad1
- ld [hl], Func_0348 & $ff
- inc hl
- ld [hl], Func_0348 >> $8
- ld a, $47
- ld [$cabb], a
- ld a, $1
- ld [$6000], a
- ld a, $a
- ld [$0000], a
-Func_0348: ; 0348 (0:0348)
- ret
-
-Func_0349: ; 0349 (0:0349)
- ld b, $2
- cp $11
- jr z, .asm_35b
- call Func_0b59
- ld b, $0
- jr nc, .asm_35b
- call Func_0a0d
- ld b, $1
-.asm_35b
- ld a, b
- ld [$cab4], a
- cp $2
- ret nz
- ld a, $1
- ld [$ff70], a
- call Func_07e7
- ret
-
-Func_036a: ; 036a (0:036a)
- ld hl, $cabc
- ld a, $e4
- ld [$ff47], a
- ld [hli], a
- ld [$ff48], a
- ld [$ff49], a
- ld [hli], a
- ld [hl], a
- xor a
- ld [$cabf], a
- ld a, [$cab4]
- cp $2
- ret nz
- ld de, $caf0
- ld c, $10
-.asm_387
- ld hl, InitialPalette
- ld b, $8
-.asm_38c
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .asm_38c
- dec c
- jr nz, .asm_387
- call Func_0458
- ret
-
-InitialPalette: ; 0399 (0:0399)
- RGB 28,28,24
- RGB 21,21,16
- RGB 10,10,08
- RGB 00,00,00
-
-Func_03a1: ; 03a1 (0:03a1)
- call Func_03c0
- call Func_025c
- jr c, .asm_3b2
- call Func_07cd
- call .asm_3b2
- call Func_07c5
-.asm_3b2
- ld hl, $8000
- ld bc, $1800
-.asm_3b8
- xor a
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_3b8
- ret
-
-Func_03c0: ; 03c0 (0:03c0)
- call Func_07c5
- ld hl, $9800
- ld bc, $0400
-.asm_3c9
- ld a, [$cab6]
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_3c9
- ld a, [$cab4]
- cp $2
- ret nz
- call Func_07cd
- ld hl, $9800
- ld bc, $0400
-.asm_3e1
- xor a
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_3e1
- call Func_07c5
- ret
-
-Func_03ec: ; 03ec (0:03ec)
- ld hl, $c000
- ld bc, $2000
-.asm_3f2
- xor a
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_3f2
- ld c, $80
- ld b, $70
- xor a
-.asm_3fe
- ld [$ff00+c], a
- inc c
- dec b
- jr nz, .asm_3fe
- ret
-; 0x404
-
-INCBIN "baserom.gbc",$0404,$042d - $0404
-
-Func_042d: ; 042d (0:042d)
- ld a, [$cabf]
- or a
- ret z
- ld hl, $cabc
- ld a, [hli]
- ld [$ff47], a
- ld a, [hli]
- ld [$ff48], a
- ld a, [hl]
- ld [$ff49], a
- ld a, [$cab4]
- cp $2
- jr z, asm_44a
-asm_445
- xor a
- ld [$cabf], a
- ret
-asm_44a
- ld a, [$cabf]
- bit 6, a
- jr nz, Func_0458
- ld b, $8
- call InitializePalettes
- jr asm_445
-
-Func_0458: ; 0458 (0:0458)
- xor a
- ld b, $40
- call InitializePalettes
- ld a, $8
- ld b, $40
- call InitializePalettes
- jr asm_445
-
-InitializePalettes: ; 0467 (0:0467)
- add a
- add a
- add a
- ld e, a
- ld d, $0
- ld hl, $caf0
- add hl, de
- ld c, $68
- bit 6, a
- jr z, .asm_479
- ld c, $6a
-.asm_479
- and $bf
- ld e, a
-.asm_47c
- ld a, e
- ld [$ff00+c], a
- inc c
-.asm_47f
- ld a, [$ff41]
- and $2
- jr nz, .asm_47f
- ld a, [hl]
- ld [$ff00+c], a
- ld a, [$ff00+c]
- cp [hl]
- jr nz, .asm_47f
- inc hl
- dec c
- inc e
- dec b
- jr nz, .asm_47c
- ret
-; 0x492
-
-INCBIN "baserom.gbc",$0492,$0593 - $0492
-
-Func_0593: ; 0593 (0:0593)
- ld c, $83
- ld b, $a
- ld hl, Func_05a1
-.asm_59a
- ld a, [hli]
- ld [$ff00+c], a
- inc c
- dec b
- jr nz, .asm_59a
- ret
-
-; Func_0593 copies this function to $ff83
-Func_05a1: ; 05a1 (0:05a1)
- ld a, $ca
- ld [$ff46], a
- ld a, $28
-.asm_5a7
- dec a
- jr nz, .asm_5a7
- ret
-
-; jumps to index a in pointer table hl
-JumpToFunctionInTable: ; 05ab (0:05ab)
- add a
- add l
- ld l, a
- ld a, $0
- adc h
- ld h, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 0x5b6
-
-INCBIN "baserom.gbc",$05b6,$07a3 - $05b6
-
-BankswitchHome: ; 07a3 (0:07a3)
- ld [$ff80], a
- ld [$2000], a
- ret
-
-Func_07a9: ; 07a9 (0:07a9)
- push af
- ld [$ff81], a
- ld [$4000], a
- ld a, $a
- ld [$0000], a
- pop af
- ret
-
-Func_07b6: ; 07b6 (0:07b6)
- push af
- ld a, $a
- ld [$0000], a
- pop af
- ret
-
-Func_07be: ; 07be (0:07be)
- push af
- xor a
- ld [$0000], a
- pop af
- ret
-
-Func_07c5: ; 07c5 (0:07c5)
- push af
- xor a
- ld [$ff82], a
- ld [$ff4f], a
- pop af
- ret
-
-Func_07cd: ; 07cd (0:07cd)
- push af
- ld a, $1
- ld [$ff82], a
- ld [$ff4f], a
- pop af
- ret
-; 0x7d6
-
-INCBIN "baserom.gbc",$07d6,$07e7 - $07d6
-
-Func_07e7: ; 07e7 (0:07e7)
- call Func_025c
- ret c
- ld hl, $ff4d
- bit 7, [hl]
- ret nz
- ld a, [$ffff]
- push af
- xor a
- ld [$ffff], a
- set 0, [hl]
- xor a
- ld [$ff0f], a
- ld [$ffff], a
- ld a, $30
- ld [$ff00], a
- stop
- call Func_0241
- pop af
- ld [$ffff], a
- ret
-
-Func_080b: ; 080b (0:080b)
- xor a
- call Func_07a9
- ld hl, $a000
- ld bc, $1000
-.asm_815
- ld a, [hli]
- cp $41
- jr nz, .asm_82f
- ld a, [hli]
- cp $93
- jr nz, .asm_82f
- dec bc
- ld a, c
- or b
- jr nz, .asm_815
- call Func_084d
- scf
- call $4050
- call Func_07be
- ret
-.asm_82f
- ld hl, $a000
- ld a, [hli]
- cp $4
- jr nz, .asm_842
- ld a, [hli]
- cp $21
- jr nz, .asm_842
- ld a, [hl]
- cp $5
- jr nz, .asm_842
- ret
-.asm_842
- call Func_084d
- or a
- call $4050
- call Func_07be
- ret
-
-Func_084d: ; 084d (0:084d)
- ld a, $3
-.asm_84f
- call Func_0863
- dec a
- cp $ff
- jr nz, .asm_84f
- ld hl, $a000
- ld [hl], $4
- inc hl
- ld [hl], $21
- inc hl
- ld [hl], $5
- ret
-
-Func_0863: ; 0863 (0:0863)
- push af
- call Func_07a9
- call Func_07b6
- ld hl, $a000
- ld bc, $2000
-.asm_870
- xor a
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_870
- pop af
- ret
-; 0x879
-
-INCBIN "baserom.gbc",$0879,$09ae - $0879
-
-RST18: ; 09ae (0:09ae)
- push hl
- push hl
- push hl
- push hl
- push de
- push af
- ld hl, [sp+$d]
- ld d, [hl]
- dec hl
- ld e, [hl]
- dec hl
- ld [hl], $0
- dec hl
- ld a, [$ff80]
- ld [hld], a
- ld [hl], $9
- dec hl
- ld [hl], $dc
- dec hl
- inc de
- ld a, [de]
- ld [hld], a
- dec de
- ld a, [de]
- ld [hl], a
- ld a, $1
- ; fallthrough
-Func_09ce: ; 09ce (0:09ce)
- call BankswitchHome
- ld hl, [sp+$d]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- pop af
- pop de
- pop hl
- ret
-; 0x9dc
-
-INCBIN "baserom.gbc",$09dc,$09e9 - $09dc
-
-RST28: ; 09e9 (0:09e9)
- push hl
- push hl
- push hl
- push hl
- push de
- push af
- ld hl, [sp+$d]
- ld d, [hl]
- dec hl
- ld e, [hl]
- dec hl
- ld [hl], $0
- dec hl
- ld a, [$ff80]
- ld [hld], a
- ld [hl], $9
- dec hl
- ld [hl], $dc
- dec hl
- inc de
- inc de
- ld a, [de]
- ld [hld], a
- dec de
- ld a, [de]
- ld [hl], a
- dec de
- ld a, [de]
- inc de
- jr Func_09ce
-
-Func_0a0d: ; 0a0d (0:0a0d)
- ld hl, Unknown_0ad0
- call Func_0b20
- ld hl, Unknown_0a50
- call Func_0b20
- ld hl, Unknown_0a60
- call Func_0b20
- ld hl, Unknown_0a70
- call Func_0b20
- ld hl, Unknown_0a80
- call Func_0b20
- ld hl, Unknown_0a90
- call Func_0b20
- ld hl, Unknown_0aa0
- call Func_0b20
- ld hl, Unknown_0ab0
- call Func_0b20
- ld hl, Unknown_0ac0
- call Func_0b20
- ld hl, Unknown_0af0
- call Func_0b20
- ld hl, Unknown_0ae0
- call Func_0b20
- ret
-
-Unknown_0a50: ; 0a50 (0:0a50)
-INCBIN "baserom.gbc",$0a50,$0a60 - $0a50
-
-Unknown_0a60: ; 0a60 (0:0a60)
-INCBIN "baserom.gbc",$0a60,$0a70 - $0a60
-
-Unknown_0a70: ; 0a70 (0:0a70)
-INCBIN "baserom.gbc",$0a70,$0a80 - $0a70
-
-Unknown_0a80: ; 0a80 (0:0a80)
-INCBIN "baserom.gbc",$0a80,$0a90 - $0a80
-
-Unknown_0a90: ; 0a90 (0:0a90)
-INCBIN "baserom.gbc",$0a90,$0aa0 - $0a90
-
-Unknown_0aa0: ; 0aa0 (0:0aa0)
-INCBIN "baserom.gbc",$0aa0,$0ab0 - $0aa0
-
-Unknown_0ab0: ; 0ab0 (0:0ab0)
-INCBIN "baserom.gbc",$0ab0,$0ac0 - $0ab0
-
-Unknown_0ac0: ; 0ac0 (0:0ac0)
-INCBIN "baserom.gbc",$0ac0,$0ad0 - $0ac0
-
-Unknown_0ad0: ; 0ad0 (0:0ad0)
-INCBIN "baserom.gbc",$0ad0,$0ae0 - $0ad0
-
-Unknown_0ae0: ; 0ae0 (0:0ae0)
-INCBIN "baserom.gbc",$0ae0,$0af0 - $0ae0
-
-Unknown_0af0: ; 0af0 (0:0af0)
-INCBIN "baserom.gbc",$0af0,$0b20 - $0af0
-
-Func_0b20: ; 0b20 (0:0b20)
- ld a, [hl]
- and $7
- ret z
- ld b, a
- ld c, $0
-.asm_b27
- push bc
- ld a, $0
- ld [$ff00+c], a
- ld a, $30
- ld [$ff00+c], a
- ld b, $10
-.asm_b30
- ld e, $8
- ld a, [hli]
- ld d, a
-.asm_b34
- bit 0, d
- ld a, $10
- jr nz, .asm_b3c
- ld a, $20
-.asm_b3c
- ld [$ff00+c], a
- ld a, $30
- ld [$ff00+c], a
- rr d
- dec e
- jr nz, .asm_b34
- dec b
- jr nz, .asm_b30
- ld a, $20
- ld [$ff00+c], a
- ld a, $30
- ld [$ff00+c], a
- pop bc
- dec b
- jr nz, .asm_b27
- ld bc, $0004
- call Wait
- ret
-
-Func_0b59: ; 0b59 (0:0b59)
- ld bc, $003c
- call Wait
- ld hl, Unknown_0bbb
- call Func_0b20
- ld a, [$ff00]
- and $3
- cp $3
- jr nz, .asm_ba3
- ld a, $20
- ld [$ff00], a
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, $30
- ld [$ff00], a
- ld a, $10
- ld [$ff00], a
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, $30
- ld [$ff00], a
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
- ld a, [$ff00]
- and $3
- cp $3
- jr nz, .asm_ba3
- ld hl, Unknown_0bab
- call Func_0b20
- or a
- ret
-.asm_ba3
- ld hl, Unknown_0bab
- call Func_0b20
- scf
- ret
-
-Unknown_0bab: ; 0bab (0:0bab)
-INCBIN "baserom.gbc",$0bab,$0bbb - $0bab
-
-Unknown_0bbb: ; 0bbb (0:0bbb)
-INCBIN "baserom.gbc",$0bbb,$0c08 - $0bbb
-
-; loops 1750 * bc times
-Wait: ; 0c08 (0:0c08)
- ld de, 1750
-.loop
- nop
- nop
- nop
- dec de
- ld a, d
- or e
- jr nz, .loop
- dec bc
- ld a, b
- or c
- jr nz, Wait
- ret
-; 0xc19
-
-INCBIN "baserom.gbc",$0c19,$0c91 - $0c19
-
-Func_0c91: ; 0c91 (0:0c91)
- ld a, [$cb74]
- cp $29
- jr z, .asm_c9d
- cp $12
- jr z, .asm_caa
- ret
-.asm_c9d
- ld a, [$ff02]
- add a
- ret c
- ld a, $1
- ld [$ff02], a
- ld a, $81
- ld [$ff02], a
- ret
-.asm_caa
- ld a, [$cb76]
- ld hl, $cb77
- cp [hl]
- ld [hl], a
- ld hl, $cb78
- jr nz, .asm_cc2
- inc [hl]
- ld a, [hl]
- cp $4
- ret c
- ld hl, $cb75
- set 7, [hl]
- ret
-.asm_cc2
- ld [hl], $0
- ret
-; 0xcc5
-
-INCBIN "baserom.gbc",$0cc5,$0d26 - $0cc5
-
-SerialHandler: ; 0d26 (0:0d26)
- push af
- push hl
- push de
- push bc
- ld a, [$ce63]
- or a
- jr z, .asm_d35
- call Func_3189
- jr .asm_d6e
-.asm_d35
- ld a, [$cb74]
- or a
- jr z, .asm_d55
- ld a, [$ff01]
- call Func_0d77
- call Func_0dc8
- push af
-.asm_d44
- ld a, [$ff02]
- add a
- jr c, .asm_d44
- pop af
- ld [$ff01], a
- ld a, [$cb74]
- cp $29
- jr z, .asm_d6e
- jr .asm_d6a
-.asm_d55
- ld a, $1
- ld [$cba2], a
- ld a, [$ff01]
- ld [$cba5], a
- ld a, $ac
- ld [$ff01], a
- ld a, [$cba5]
- cp $12
- jr z, .asm_d6e
-.asm_d6a
- ld a, $80
- ld [$ff02], a
-.asm_d6e
- ld hl, $cb76
- inc [hl]
- pop bc
- pop de
- pop hl
- pop af
- reti
-
-Func_0d77: ; 0d77 (0:0d77)
- ld hl, $cba1
- ld e, [hl]
- dec e
- jr z, .asm_d94
- cp $ac
- ret z
- cp $ca
- jr z, .asm_d92
- or a
- jr z, .asm_d8c
- cp $ff
- jr nz, .asm_d99
-.asm_d8c
- ld hl, $cb75
- set 6, [hl]
- ret
-.asm_d92
- inc [hl]
- ret
-.asm_d94
- ld [hl], $0
- cpl
- jr .asm_d9b
-.asm_d99
- xor $c0
-.asm_d9b
- push af
- ld a, [$cba4]
- ld e, a
- ld a, [$cba3]
- dec a
- and $1f
- cp e
- jr z, .asm_dc1
- ld d, $0
- ld hl, $cba5
- add hl, de
- pop af
- ld [hl], a
- ld a, e
- inc a
- and $1f
- ld [$cba4], a
- ld hl, $cba2
- inc [hl]
- xor a
- ld [$cb75], a
- ret
-.asm_dc1
- pop af
- ld hl, $cb75
- set 0, [hl]
- ret
-
-Func_0dc8: ; 0dc8 (0:0dc8)
- ld hl, $cb7d
- ld a, [hl]
- or a
- jr nz, .asm_dd9
- ld hl, $cb7e
- ld a, [hl]
- or a
- jr nz, .asm_ddd
- ld a, $ac
- ret
-.asm_dd9
- ld a, [hl]
- ld [hl], $0
- ret
-.asm_ddd
- dec [hl]
- ld a, [$cb7f]
- ld e, a
- ld d, $0
- ld hl, $cb81
- add hl, de
- inc a
- and $1f
- ld [$cb7f], a
- ld a, [hl]
- xor $c0
- cp $ac
- jr z, .asm_e01
- cp $ca
- jr z, .asm_e01
- cp $ff
- jr z, .asm_e01
- or a
- jr z, .asm_e01
- ret
-.asm_e01
- xor $c0
- cpl
- ld [$cb7d], a
- ld a, $ca
- ret
-; 0xe0a
-
-INCBIN "baserom.gbc",$0e0a,$0ea6 - $0e0a
-
-Func_0ea6: ; 0ea6 (0:0ea6)
- ld a, [$ffff]
- and $f7
- ld [$ffff], a
- xor a
- ld [$ff01], a
- ld [$ff02], a
- ld hl, $cb74
- ld bc, $0051
-.asm_eb7
- xor a
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_eb7
- ret
-; 0xebf
-
-INCBIN "baserom.gbc",$0ebf,$3189 - $0ebf
-
-Func_3189: ; 3189 (0:3189)
- ld hl, PointerTable_3190
- dec a
- jp JumpToFunctionInTable
-
-PointerTable_3190: ; 3190 (0:3190)
- dw Func_31a8
- dw Func_31a8
- dw Func_31a8
- dw Func_31a8
- dw Func_31a8
- dw Func_31b0
- dw Func_31ca
- dw Func_31dd
- dw Func_31e5
- dw Func_31ef
- dw Func_31ea
- dw Func_31f2
-
-Func_31a8: ; 31a8 (0:31a8)
- call Func_31fc
-Func_31ab: ; 31ab (0:31ab)
- ld hl, $ce63
- inc [hl]
- ret
-
-Func_31b0: ; 31b0 (0:31b0)
- call Func_31ab
- ld hl, $ce68
- ld a, [hli]
- or [hl]
- jr nz, .asm_31bf
- call Func_31ab
- jr Func_31dd
-.asm_31bf
- ld hl, $ce6a
- ld de, $ce70
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
-
-Func_31ca: ; 31ca (0:31ca)
- call Func_31fc
- ld hl, $ce68
- ld a, [hl]
- dec [hl]
- or a
- jr nz, .asm_31d8
- inc hl
- dec [hl]
- dec hl
-.asm_31d8
- ld a, [hli]
- or [hl]
- jr z, Func_31ab
- ret
-
-Func_31dd: ; 31dd (0:31dd)
- ld a, [$ce6c]
-Func_31e0: ; 31e0 (0:31e0)
- call Func_3212
- jr Func_31ab
-
-Func_31e5: ; 31e5 (0:31e5)
- ld a, [$ce6d]
- jr Func_31e0
-
-Func_31ea: ; 31ea (0:31ea)
- ld a, [$ff01]
- ld [$ce6e], a
-Func_31ef: ; 31ef (0:31ef)
- xor a
- jr Func_31e0
-
-Func_31f2: ; 31f2 (0:31f2)
- ld a, [$ff01]
- ld [$ce6f], a
- xor a
- ld [$ce63], a
- ret
-
-Func_31fc: ; 31fc (0:31fc)
- ld hl, $ce70
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [de]
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ld e, a
- ld hl, $ce6c
- add [hl]
- ld [hli], a
- ld a, $0
- adc [hl]
- ld [hl], a
- ld a, e
-Func_3212: ; 3212 (0:3212)
- ld [$ff01], a
- ld a, $1
- ld [$ff02], a
- ld a, $81
- ld [$ff02], a
- ret
-; 0x321d
-
-INCBIN "baserom.gbc",$321d,$377f - $321d
-
-Func_377f: ; 377f (0:377f)
- rst $28
- dec a
- nop
- ld b, b
- ret
-; 0x3784
-
-INCBIN "baserom.gbc",$3784,$3fe0 - $3784
-
-; jumps to 3f:hl
-Bankswitch3dTo3f: ; 3fe0 (0:3fe0)
- push af
- ld a, $3f
- ld [$ff80], a
- ld [$2000], a
- pop af
- ld bc, Bankswitch3d
- push bc
- jp [hl]
-
-Bankswitch3d: ; 3fe0 (0:3fe0)
- ld a, $3d
- ld [$ff80], a
- ld [$2000], a
- ret
-; 0x3ff6
-
+; rst vectors
+SECTION "rst00",ROM0[0]
+ ret
+SECTION "rst08",ROM0[8]
+ ret
+SECTION "rst10",ROM0[$10]
+ ret
+SECTION "rst18",ROM0[$18]
+ jp RST18
+SECTION "rst20",ROM0[$20]
+ jp RST20
+SECTION "rst28",ROM0[$28]
+ jp RST28
+SECTION "rst30",ROM0[$30]
+ ret
+SECTION "rst38",ROM0[$38]
+ ret
+
+; interrupts
+SECTION "vblank",ROM0[$40]
+ jp VBlankHandler
+SECTION "lcdc",ROM0[$48]
+ call $cacd
+ reti
+SECTION "timer",ROM0[$50]
+ jp TimerHandler
+SECTION "serial",ROM0[$58]
+ jp SerialHandler
+SECTION "joypad",ROM0[$60]
+ reti
+
+SECTION "romheader",ROM0[$100]
+ nop
+ jp Start
+
+SECTION "start",ROM0[$150]
+Start: ; 0150 (0:0150)
+ di
+ ld sp, $fffe
+ push af
+ xor a
+ ld [$ff0f], a
+ ld [$ffff], a
+ call Func_03ec
+ ld a, $1
+ call BankswitchHome
+ xor a
+ call Func_07a9
+ call Func_07c5
+ call Func_028a
+ pop af
+ ld [$cab3], a
+ call Func_0349
+ ld a, $20
+ ld [$cab6], a
+ call Func_03a1
+ call Func_030b
+ call Func_036a
+ call Func_377f
+ call Func_0241
+ call Func_0ea6
+ call Func_0593
+ call Func_080b
+ ld a, $1
+ call BankswitchHome
+ ld sp, $e000
+ jp $4000
+
+VBlankHandler: ; 019b (0:019b)
+ push af
+ push bc
+ push de
+ push hl
+ ld a, [$ff80]
+ push af
+ ld hl, $caba
+ bit 0, [hl]
+ jr nz, .asm_1dd
+ set 0, [hl]
+ ld a, [$cac0]
+ or a
+ jr z, .asm_1b8
+ call $ff83
+ xor a
+ ld [$cac0], a
+.asm_1b8
+ ld a, [$ff92]
+ ld [$ff43], a
+ ld a, [$ff93]
+ ld [$ff42], a
+ ld a, [$ff94]
+ ld [$ff4b], a
+ ld a, [$ff95]
+ ld [$ff4a], a
+ ld a, [$cabb]
+ ld [$ff40], a
+ ei
+ call $cad0
+ call Func_042d
+ ld hl, $cab8
+ inc [hl]
+ ld hl, $caba
+ res 0, [hl]
+.asm_1dd
+ pop af
+ call BankswitchHome
+ pop hl
+ pop de
+ pop bc
+ pop af
+ reti
+
+TimerHandler: ; 01e6 (0:01e6)
+ push af
+ push hl
+ push de
+ push bc
+ ei
+ call Func_0c91
+ ld hl, $cac3
+ ld a, [hl]
+ inc [hl]
+ and $3
+ jr nz, .asm_217
+ call Func_021c
+ ld hl, $caba
+ bit 1, [hl]
+ jr nz, .asm_217
+ set 1, [hl]
+ ld a, [$ff80]
+ push af
+ ld a, BANK(Func_f4003)
+ call BankswitchHome
+ call Func_f4003
+ pop af
+ call BankswitchHome
+ ld hl, $caba
+ res 1, [hl]
+.asm_217
+ pop bc
+ pop de
+ pop hl
+ pop af
+ reti
+
+Func_021c: ; 021c (0:021c)
+ ld a, [$cac4]
+ or a
+ ret z
+ ld hl, $cac5
+ inc [hl]
+ ld a, [hl]
+ cp $3c
+ ret c
+ ld [hl], $0
+ inc hl
+ inc [hl]
+ ld a, [hl]
+ cp $3c
+ ret c
+ ld [hl], $0
+ inc hl
+ inc [hl]
+ ld a, [hl]
+ cp $3c
+ ret c
+ ld [hl], $0
+ inc hl
+ inc [hl]
+ ret nz
+ inc hl
+ inc [hl]
+ ret
+
+Func_0241: ; 0241 (0:0241)
+ ld b, $bc
+ call Func_025c
+ jr c, .asm_250
+ ld a, [$ff4d]
+ and $80
+ jr z, .asm_250
+ ld b, $78
+.asm_250
+ ld a, b
+ ld [$ff06], a
+ ld a, $3
+ ld [$ff07], a
+ ld a, $7
+ ld [$ff07], a
+ ret
+
+Func_025c: ; 025c (0:025c)
+ ld a, [$cab4]
+ cp $2
+ ret z
+ scf
+ ret
+; 0x264
+
+INCBIN "baserom.gbc",$0264,$028a - $0264
+
+Func_028a: ; 028a (0:028a)
+ ld a, [$ff40]
+ bit 7, a
+ ret z
+ ld a, [$ffff]
+ ld [$cab7], a
+ res 0, a
+ ld [$ffff], a
+.asm_298
+ ld a, [$ff44]
+ cp $91
+ jr nz, .asm_298
+ ld a, [$ff40]
+ and $7f
+ ld [$ff40], a
+ ld a, [$cabb]
+ and $7f
+ ld [$cabb], a
+ xor a
+ ld [$ff47], a
+ ld [$ff48], a
+ ld [$ff49], a
+ ld a, [$cab7]
+ ld [$ffff], a
+ ret
+; 0x2b9
+
+INCBIN "baserom.gbc",$02b9,$030b - $02b9
+
+Func_030b: ; 030b (0:030b)
+ xor a
+ ld [$ff42], a
+ ld [$ff43], a
+ ld [$ff4a], a
+ ld [$ff4b], a
+ ld [$cab0], a
+ ld [$cab1], a
+ ld [$cab2], a
+ ld [$ff92], a
+ ld [$ff93], a
+ ld [$ff94], a
+ ld [$ff95], a
+ xor a
+ ld [$caba], a
+ ld a, $c3
+ ld [$cacd], a
+ ld [$cad0], a
+ ld hl, $cad1
+ ld [hl], Func_0348 & $ff
+ inc hl
+ ld [hl], Func_0348 >> $8
+ ld a, $47
+ ld [$cabb], a
+ ld a, $1
+ ld [$6000], a
+ ld a, $a
+ ld [$0000], a
+Func_0348: ; 0348 (0:0348)
+ ret
+
+Func_0349: ; 0349 (0:0349)
+ ld b, $2
+ cp $11
+ jr z, .asm_35b
+ call Func_0b59
+ ld b, $0
+ jr nc, .asm_35b
+ call Func_0a0d
+ ld b, $1
+.asm_35b
+ ld a, b
+ ld [$cab4], a
+ cp $2
+ ret nz
+ ld a, $1
+ ld [$ff70], a
+ call Func_07e7
+ ret
+
+Func_036a: ; 036a (0:036a)
+ ld hl, $cabc
+ ld a, $e4
+ ld [$ff47], a
+ ld [hli], a
+ ld [$ff48], a
+ ld [$ff49], a
+ ld [hli], a
+ ld [hl], a
+ xor a
+ ld [$cabf], a
+ ld a, [$cab4]
+ cp $2
+ ret nz
+ ld de, $caf0
+ ld c, $10
+.asm_387
+ ld hl, InitialPalette
+ ld b, $8
+.asm_38c
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_38c
+ dec c
+ jr nz, .asm_387
+ call Func_0458
+ ret
+
+InitialPalette: ; 0399 (0:0399)
+ RGB 28,28,24
+ RGB 21,21,16
+ RGB 10,10,08
+ RGB 00,00,00
+
+Func_03a1: ; 03a1 (0:03a1)
+ call Func_03c0
+ call Func_025c
+ jr c, .asm_3b2
+ call Func_07cd
+ call .asm_3b2
+ call Func_07c5
+.asm_3b2
+ ld hl, $8000
+ ld bc, $1800
+.asm_3b8
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_3b8
+ ret
+
+Func_03c0: ; 03c0 (0:03c0)
+ call Func_07c5
+ ld hl, $9800
+ ld bc, $0400
+.asm_3c9
+ ld a, [$cab6]
+ ld [hli], a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_3c9
+ ld a, [$cab4]
+ cp $2
+ ret nz
+ call Func_07cd
+ ld hl, $9800
+ ld bc, $0400
+.asm_3e1
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_3e1
+ call Func_07c5
+ ret
+
+Func_03ec: ; 03ec (0:03ec)
+ ld hl, $c000
+ ld bc, $2000
+.asm_3f2
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_3f2
+ ld c, $80
+ ld b, $70
+ xor a
+.asm_3fe
+ ld [$ff00+c], a
+ inc c
+ dec b
+ jr nz, .asm_3fe
+ ret
+; 0x404
+
+INCBIN "baserom.gbc",$0404,$042d - $0404
+
+Func_042d: ; 042d (0:042d)
+ ld a, [$cabf]
+ or a
+ ret z
+ ld hl, $cabc
+ ld a, [hli]
+ ld [$ff47], a
+ ld a, [hli]
+ ld [$ff48], a
+ ld a, [hl]
+ ld [$ff49], a
+ ld a, [$cab4]
+ cp $2
+ jr z, asm_44a
+asm_445
+ xor a
+ ld [$cabf], a
+ ret
+asm_44a
+ ld a, [$cabf]
+ bit 6, a
+ jr nz, Func_0458
+ ld b, $8
+ call InitializePalettes
+ jr asm_445
+
+Func_0458: ; 0458 (0:0458)
+ xor a
+ ld b, $40
+ call InitializePalettes
+ ld a, $8
+ ld b, $40
+ call InitializePalettes
+ jr asm_445
+
+InitializePalettes: ; 0467 (0:0467)
+ add a
+ add a
+ add a
+ ld e, a
+ ld d, $0
+ ld hl, $caf0
+ add hl, de
+ ld c, $68
+ bit 6, a
+ jr z, .asm_479
+ ld c, $6a
+.asm_479
+ and $bf
+ ld e, a
+.asm_47c
+ ld a, e
+ ld [$ff00+c], a
+ inc c
+.asm_47f
+ ld a, [$ff41]
+ and $2
+ jr nz, .asm_47f
+ ld a, [hl]
+ ld [$ff00+c], a
+ ld a, [$ff00+c]
+ cp [hl]
+ jr nz, .asm_47f
+ inc hl
+ dec c
+ inc e
+ dec b
+ jr nz, .asm_47c
+ ret
+; 0x492
+
+INCBIN "baserom.gbc",$0492,$0593 - $0492
+
+Func_0593: ; 0593 (0:0593)
+ ld c, $83
+ ld b, $a
+ ld hl, Func_05a1
+.asm_59a
+ ld a, [hli]
+ ld [$ff00+c], a
+ inc c
+ dec b
+ jr nz, .asm_59a
+ ret
+
+; Func_0593 copies this function to $ff83
+Func_05a1: ; 05a1 (0:05a1)
+ ld a, $ca
+ ld [$ff46], a
+ ld a, $28
+.asm_5a7
+ dec a
+ jr nz, .asm_5a7
+ ret
+
+; jumps to index a in pointer table hl
+JumpToFunctionInTable: ; 05ab (0:05ab)
+ add a
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 0x5b6
+
+INCBIN "baserom.gbc",$05b6,$07a3 - $05b6
+
+BankswitchHome: ; 07a3 (0:07a3)
+ ld [$ff80], a
+ ld [$2000], a
+ ret
+
+Func_07a9: ; 07a9 (0:07a9)
+ push af
+ ld [$ff81], a
+ ld [$4000], a
+ ld a, $a
+ ld [$0000], a
+ pop af
+ ret
+
+Func_07b6: ; 07b6 (0:07b6)
+ push af
+ ld a, $a
+ ld [$0000], a
+ pop af
+ ret
+
+Func_07be: ; 07be (0:07be)
+ push af
+ xor a
+ ld [$0000], a
+ pop af
+ ret
+
+Func_07c5: ; 07c5 (0:07c5)
+ push af
+ xor a
+ ld [$ff82], a
+ ld [$ff4f], a
+ pop af
+ ret
+
+Func_07cd: ; 07cd (0:07cd)
+ push af
+ ld a, $1
+ ld [$ff82], a
+ ld [$ff4f], a
+ pop af
+ ret
+; 0x7d6
+
+INCBIN "baserom.gbc",$07d6,$07e7 - $07d6
+
+Func_07e7: ; 07e7 (0:07e7)
+ call Func_025c
+ ret c
+ ld hl, $ff4d
+ bit 7, [hl]
+ ret nz
+ ld a, [$ffff]
+ push af
+ xor a
+ ld [$ffff], a
+ set 0, [hl]
+ xor a
+ ld [$ff0f], a
+ ld [$ffff], a
+ ld a, $30
+ ld [$ff00], a
+ stop
+ call Func_0241
+ pop af
+ ld [$ffff], a
+ ret
+
+Func_080b: ; 080b (0:080b)
+ xor a
+ call Func_07a9
+ ld hl, $a000
+ ld bc, $1000
+.asm_815
+ ld a, [hli]
+ cp $41
+ jr nz, .asm_82f
+ ld a, [hli]
+ cp $93
+ jr nz, .asm_82f
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_815
+ call Func_084d
+ scf
+ call $4050
+ call Func_07be
+ ret
+.asm_82f
+ ld hl, $a000
+ ld a, [hli]
+ cp $4
+ jr nz, .asm_842
+ ld a, [hli]
+ cp $21
+ jr nz, .asm_842
+ ld a, [hl]
+ cp $5
+ jr nz, .asm_842
+ ret
+.asm_842
+ call Func_084d
+ or a
+ call $4050
+ call Func_07be
+ ret
+
+Func_084d: ; 084d (0:084d)
+ ld a, $3
+.asm_84f
+ call Func_0863
+ dec a
+ cp $ff
+ jr nz, .asm_84f
+ ld hl, $a000
+ ld [hl], $4
+ inc hl
+ ld [hl], $21
+ inc hl
+ ld [hl], $5
+ ret
+
+Func_0863: ; 0863 (0:0863)
+ push af
+ call Func_07a9
+ call Func_07b6
+ ld hl, $a000
+ ld bc, $2000
+.asm_870
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_870
+ pop af
+ ret
+; 0x879
+
+INCBIN "baserom.gbc",$0879,$09ae - $0879
+
+RST18: ; 09ae (0:09ae)
+ push hl
+ push hl
+ push hl
+ push hl
+ push de
+ push af
+ ld hl, [sp+$d]
+ ld d, [hl]
+ dec hl
+ ld e, [hl]
+ dec hl
+ ld [hl], $0
+ dec hl
+ ld a, [$ff80]
+ ld [hld], a
+ ld [hl], $9
+ dec hl
+ ld [hl], $dc
+ dec hl
+ inc de
+ ld a, [de]
+ ld [hld], a
+ dec de
+ ld a, [de]
+ ld [hl], a
+ ld a, $1
+ ; fallthrough
+Func_09ce: ; 09ce (0:09ce)
+ call BankswitchHome
+ ld hl, [sp+$d]
+ inc de
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ pop af
+ pop de
+ pop hl
+ ret
+; 0x9dc
+
+INCBIN "baserom.gbc",$09dc,$09e9 - $09dc
+
+RST28: ; 09e9 (0:09e9)
+ push hl
+ push hl
+ push hl
+ push hl
+ push de
+ push af
+ ld hl, [sp+$d]
+ ld d, [hl]
+ dec hl
+ ld e, [hl]
+ dec hl
+ ld [hl], $0
+ dec hl
+ ld a, [$ff80]
+ ld [hld], a
+ ld [hl], $9
+ dec hl
+ ld [hl], $dc
+ dec hl
+ inc de
+ inc de
+ ld a, [de]
+ ld [hld], a
+ dec de
+ ld a, [de]
+ ld [hl], a
+ dec de
+ ld a, [de]
+ inc de
+ jr Func_09ce
+
+Func_0a0d: ; 0a0d (0:0a0d)
+ ld hl, Unknown_0ad0
+ call Func_0b20
+ ld hl, Unknown_0a50
+ call Func_0b20
+ ld hl, Unknown_0a60
+ call Func_0b20
+ ld hl, Unknown_0a70
+ call Func_0b20
+ ld hl, Unknown_0a80
+ call Func_0b20
+ ld hl, Unknown_0a90
+ call Func_0b20
+ ld hl, Unknown_0aa0
+ call Func_0b20
+ ld hl, Unknown_0ab0
+ call Func_0b20
+ ld hl, Unknown_0ac0
+ call Func_0b20
+ ld hl, Unknown_0af0
+ call Func_0b20
+ ld hl, Unknown_0ae0
+ call Func_0b20
+ ret
+
+Unknown_0a50: ; 0a50 (0:0a50)
+INCBIN "baserom.gbc",$0a50,$0a60 - $0a50
+
+Unknown_0a60: ; 0a60 (0:0a60)
+INCBIN "baserom.gbc",$0a60,$0a70 - $0a60
+
+Unknown_0a70: ; 0a70 (0:0a70)
+INCBIN "baserom.gbc",$0a70,$0a80 - $0a70
+
+Unknown_0a80: ; 0a80 (0:0a80)
+INCBIN "baserom.gbc",$0a80,$0a90 - $0a80
+
+Unknown_0a90: ; 0a90 (0:0a90)
+INCBIN "baserom.gbc",$0a90,$0aa0 - $0a90
+
+Unknown_0aa0: ; 0aa0 (0:0aa0)
+INCBIN "baserom.gbc",$0aa0,$0ab0 - $0aa0
+
+Unknown_0ab0: ; 0ab0 (0:0ab0)
+INCBIN "baserom.gbc",$0ab0,$0ac0 - $0ab0
+
+Unknown_0ac0: ; 0ac0 (0:0ac0)
+INCBIN "baserom.gbc",$0ac0,$0ad0 - $0ac0
+
+Unknown_0ad0: ; 0ad0 (0:0ad0)
+INCBIN "baserom.gbc",$0ad0,$0ae0 - $0ad0
+
+Unknown_0ae0: ; 0ae0 (0:0ae0)
+INCBIN "baserom.gbc",$0ae0,$0af0 - $0ae0
+
+Unknown_0af0: ; 0af0 (0:0af0)
+INCBIN "baserom.gbc",$0af0,$0b20 - $0af0
+
+Func_0b20: ; 0b20 (0:0b20)
+ ld a, [hl]
+ and $7
+ ret z
+ ld b, a
+ ld c, $0
+.asm_b27
+ push bc
+ ld a, $0
+ ld [$ff00+c], a
+ ld a, $30
+ ld [$ff00+c], a
+ ld b, $10
+.asm_b30
+ ld e, $8
+ ld a, [hli]
+ ld d, a
+.asm_b34
+ bit 0, d
+ ld a, $10
+ jr nz, .asm_b3c
+ ld a, $20
+.asm_b3c
+ ld [$ff00+c], a
+ ld a, $30
+ ld [$ff00+c], a
+ rr d
+ dec e
+ jr nz, .asm_b34
+ dec b
+ jr nz, .asm_b30
+ ld a, $20
+ ld [$ff00+c], a
+ ld a, $30
+ ld [$ff00+c], a
+ pop bc
+ dec b
+ jr nz, .asm_b27
+ ld bc, $0004
+ call Wait
+ ret
+
+Func_0b59: ; 0b59 (0:0b59)
+ ld bc, $003c
+ call Wait
+ ld hl, Unknown_0bbb
+ call Func_0b20
+ ld a, [$ff00]
+ and $3
+ cp $3
+ jr nz, .asm_ba3
+ ld a, $20
+ ld [$ff00], a
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, $30
+ ld [$ff00], a
+ ld a, $10
+ ld [$ff00], a
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, $30
+ ld [$ff00], a
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+ ld a, [$ff00]
+ and $3
+ cp $3
+ jr nz, .asm_ba3
+ ld hl, Unknown_0bab
+ call Func_0b20
+ or a
+ ret
+.asm_ba3
+ ld hl, Unknown_0bab
+ call Func_0b20
+ scf
+ ret
+
+Unknown_0bab: ; 0bab (0:0bab)
+INCBIN "baserom.gbc",$0bab,$0bbb - $0bab
+
+Unknown_0bbb: ; 0bbb (0:0bbb)
+INCBIN "baserom.gbc",$0bbb,$0c08 - $0bbb
+
+; loops 1750 * bc times
+Wait: ; 0c08 (0:0c08)
+ ld de, 1750
+.loop
+ nop
+ nop
+ nop
+ dec de
+ ld a, d
+ or e
+ jr nz, .loop
+ dec bc
+ ld a, b
+ or c
+ jr nz, Wait
+ ret
+; 0xc19
+
+INCBIN "baserom.gbc",$0c19,$0c91 - $0c19
+
+Func_0c91: ; 0c91 (0:0c91)
+ ld a, [$cb74]
+ cp $29
+ jr z, .asm_c9d
+ cp $12
+ jr z, .asm_caa
+ ret
+.asm_c9d
+ ld a, [$ff02]
+ add a
+ ret c
+ ld a, $1
+ ld [$ff02], a
+ ld a, $81
+ ld [$ff02], a
+ ret
+.asm_caa
+ ld a, [$cb76]
+ ld hl, $cb77
+ cp [hl]
+ ld [hl], a
+ ld hl, $cb78
+ jr nz, .asm_cc2
+ inc [hl]
+ ld a, [hl]
+ cp $4
+ ret c
+ ld hl, $cb75
+ set 7, [hl]
+ ret
+.asm_cc2
+ ld [hl], $0
+ ret
+; 0xcc5
+
+INCBIN "baserom.gbc",$0cc5,$0d26 - $0cc5
+
+SerialHandler: ; 0d26 (0:0d26)
+ push af
+ push hl
+ push de
+ push bc
+ ld a, [$ce63]
+ or a
+ jr z, .asm_d35
+ call Func_3189
+ jr .asm_d6e
+.asm_d35
+ ld a, [$cb74]
+ or a
+ jr z, .asm_d55
+ ld a, [$ff01]
+ call Func_0d77
+ call Func_0dc8
+ push af
+.asm_d44
+ ld a, [$ff02]
+ add a
+ jr c, .asm_d44
+ pop af
+ ld [$ff01], a
+ ld a, [$cb74]
+ cp $29
+ jr z, .asm_d6e
+ jr .asm_d6a
+.asm_d55
+ ld a, $1
+ ld [$cba2], a
+ ld a, [$ff01]
+ ld [$cba5], a
+ ld a, $ac
+ ld [$ff01], a
+ ld a, [$cba5]
+ cp $12
+ jr z, .asm_d6e
+.asm_d6a
+ ld a, $80
+ ld [$ff02], a
+.asm_d6e
+ ld hl, $cb76
+ inc [hl]
+ pop bc
+ pop de
+ pop hl
+ pop af
+ reti
+
+Func_0d77: ; 0d77 (0:0d77)
+ ld hl, $cba1
+ ld e, [hl]
+ dec e
+ jr z, .asm_d94
+ cp $ac
+ ret z
+ cp $ca
+ jr z, .asm_d92
+ or a
+ jr z, .asm_d8c
+ cp $ff
+ jr nz, .asm_d99
+.asm_d8c
+ ld hl, $cb75
+ set 6, [hl]
+ ret
+.asm_d92
+ inc [hl]
+ ret
+.asm_d94
+ ld [hl], $0
+ cpl
+ jr .asm_d9b
+.asm_d99
+ xor $c0
+.asm_d9b
+ push af
+ ld a, [$cba4]
+ ld e, a
+ ld a, [$cba3]
+ dec a
+ and $1f
+ cp e
+ jr z, .asm_dc1
+ ld d, $0
+ ld hl, $cba5
+ add hl, de
+ pop af
+ ld [hl], a
+ ld a, e
+ inc a
+ and $1f
+ ld [$cba4], a
+ ld hl, $cba2
+ inc [hl]
+ xor a
+ ld [$cb75], a
+ ret
+.asm_dc1
+ pop af
+ ld hl, $cb75
+ set 0, [hl]
+ ret
+
+Func_0dc8: ; 0dc8 (0:0dc8)
+ ld hl, $cb7d
+ ld a, [hl]
+ or a
+ jr nz, .asm_dd9
+ ld hl, $cb7e
+ ld a, [hl]
+ or a
+ jr nz, .asm_ddd
+ ld a, $ac
+ ret
+.asm_dd9
+ ld a, [hl]
+ ld [hl], $0
+ ret
+.asm_ddd
+ dec [hl]
+ ld a, [$cb7f]
+ ld e, a
+ ld d, $0
+ ld hl, $cb81
+ add hl, de
+ inc a
+ and $1f
+ ld [$cb7f], a
+ ld a, [hl]
+ xor $c0
+ cp $ac
+ jr z, .asm_e01
+ cp $ca
+ jr z, .asm_e01
+ cp $ff
+ jr z, .asm_e01
+ or a
+ jr z, .asm_e01
+ ret
+.asm_e01
+ xor $c0
+ cpl
+ ld [$cb7d], a
+ ld a, $ca
+ ret
+; 0xe0a
+
+INCBIN "baserom.gbc",$0e0a,$0ea6 - $0e0a
+
+Func_0ea6: ; 0ea6 (0:0ea6)
+ ld a, [$ffff]
+ and $f7
+ ld [$ffff], a
+ xor a
+ ld [$ff01], a
+ ld [$ff02], a
+ ld hl, $cb74
+ ld bc, $0051
+.asm_eb7
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_eb7
+ ret
+; 0xebf
+
+INCBIN "baserom.gbc",$0ebf,$3189 - $0ebf
+
+Func_3189: ; 3189 (0:3189)
+ ld hl, PointerTable_3190
+ dec a
+ jp JumpToFunctionInTable
+
+PointerTable_3190: ; 3190 (0:3190)
+ dw Func_31a8
+ dw Func_31a8
+ dw Func_31a8
+ dw Func_31a8
+ dw Func_31a8
+ dw Func_31b0
+ dw Func_31ca
+ dw Func_31dd
+ dw Func_31e5
+ dw Func_31ef
+ dw Func_31ea
+ dw Func_31f2
+
+Func_31a8: ; 31a8 (0:31a8)
+ call Func_31fc
+Func_31ab: ; 31ab (0:31ab)
+ ld hl, $ce63
+ inc [hl]
+ ret
+
+Func_31b0: ; 31b0 (0:31b0)
+ call Func_31ab
+ ld hl, $ce68
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_31bf
+ call Func_31ab
+ jr Func_31dd
+.asm_31bf
+ ld hl, $ce6a
+ ld de, $ce70
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+
+Func_31ca: ; 31ca (0:31ca)
+ call Func_31fc
+ ld hl, $ce68
+ ld a, [hl]
+ dec [hl]
+ or a
+ jr nz, .asm_31d8
+ inc hl
+ dec [hl]
+ dec hl
+.asm_31d8
+ ld a, [hli]
+ or [hl]
+ jr z, Func_31ab
+ ret
+
+Func_31dd: ; 31dd (0:31dd)
+ ld a, [$ce6c]
+Func_31e0: ; 31e0 (0:31e0)
+ call Func_3212
+ jr Func_31ab
+
+Func_31e5: ; 31e5 (0:31e5)
+ ld a, [$ce6d]
+ jr Func_31e0
+
+Func_31ea: ; 31ea (0:31ea)
+ ld a, [$ff01]
+ ld [$ce6e], a
+Func_31ef: ; 31ef (0:31ef)
+ xor a
+ jr Func_31e0
+
+Func_31f2: ; 31f2 (0:31f2)
+ ld a, [$ff01]
+ ld [$ce6f], a
+ xor a
+ ld [$ce63], a
+ ret
+
+Func_31fc: ; 31fc (0:31fc)
+ ld hl, $ce70
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ld e, a
+ ld hl, $ce6c
+ add [hl]
+ ld [hli], a
+ ld a, $0
+ adc [hl]
+ ld [hl], a
+ ld a, e
+Func_3212: ; 3212 (0:3212)
+ ld [$ff01], a
+ ld a, $1
+ ld [$ff02], a
+ ld a, $81
+ ld [$ff02], a
+ ret
+; 0x321d
+
+INCBIN "baserom.gbc",$321d,$377f - $321d
+
+Func_377f: ; 377f (0:377f)
+ rst $28
+ dec a
+ nop
+ ld b, b
+ ret
+; 0x3784
+
+INCBIN "baserom.gbc",$3784,$3fe0 - $3784
+
+; jumps to 3f:hl
+Bankswitch3dTo3f: ; 3fe0 (0:3fe0)
+ push af
+ ld a, $3f
+ ld [$ff80], a
+ ld [$2000], a
+ pop af
+ ld bc, Bankswitch3d
+ push bc
+ jp [hl]
+
+Bankswitch3d: ; 3fe0 (0:3fe0)
+ ld a, $3d
+ ld [$ff80], a
+ ld [$2000], a
+ ret
+; 0x3ff6
+
INCBIN "baserom.gbc",$3ff6,$4000 - $3ff6 \ No newline at end of file
diff --git a/main.asm b/main.asm
index 715d8f5..bd94639 100755
--- a/main.asm
+++ b/main.asm
@@ -1,196 +1,196 @@
-INCLUDE "macros.asm"
-
-INCLUDE "home.asm"
-
-SECTION "bank1",ROMX,BANK[$1]
-INCBIN "baserom.gbc",$4000,$4000
-
-SECTION "bank2",ROMX,BANK[$2]
-INCBIN "baserom.gbc",$8000,$4000
-
-SECTION "bank3",ROMX,BANK[$3]
-INCBIN "baserom.gbc",$C000,$CC42 - $C000
-RST20: ; cc42 (3:4c42)
-INCBIN "baserom.gbc",$CC42,$10000 - $CC42
-
-SECTION "bank4",ROMX,BANK[$4]
-INCBIN "baserom.gbc",$10000,$4000
-
-SECTION "bank5",ROMX,BANK[$5]
-INCBIN "baserom.gbc",$14000,$4000
-
-SECTION "bank6",ROMX,BANK[$6]
-INCBIN "baserom.gbc",$18000,$4000
-
-SECTION "bank7",ROMX,BANK[$7]
-INCBIN "baserom.gbc",$1C000,$4000
-
-SECTION "bank8",ROMX,BANK[$8]
-INCBIN "baserom.gbc",$20000,$4000
-
-SECTION "bank9",ROMX,BANK[$9]
-INCLUDE "emptybank.asm"
-
-SECTION "bankA",ROMX,BANK[$A]
-INCLUDE "emptybank.asm"
-
-SECTION "bankB",ROMX,BANK[$B]
-INCBIN "baserom.gbc",$2C000,$4000
-
-SECTION "bankC",ROMX,BANK[$C]
-INCBIN "baserom.gbc",$30000,$4000
-
-SECTION "bankD",ROMX,BANK[$D]
-INCBIN "baserom.gbc",$34000,$4000
-
-SECTION "bankE",ROMX,BANK[$E]
-INCBIN "baserom.gbc",$38000,$4000
-
-SECTION "bankF",ROMX,BANK[$F]
-INCBIN "baserom.gbc",$3C000,$4000
-
-SECTION "bank10",ROMX,BANK[$10]
-INCBIN "baserom.gbc",$40000,$4000
-
-SECTION "bank11",ROMX,BANK[$11]
-INCBIN "baserom.gbc",$44000,$4000
-
-SECTION "bank12",ROMX,BANK[$12]
-INCBIN "baserom.gbc",$48000,$4000
-
-SECTION "bank13",ROMX,BANK[$13]
-INCBIN "baserom.gbc",$4C000,$4000
-
-SECTION "bank14",ROMX,BANK[$14]
-INCBIN "baserom.gbc",$50000,$4000
-
-SECTION "bank15",ROMX,BANK[$15]
-INCBIN "baserom.gbc",$54000,$4000
-
-SECTION "bank16",ROMX,BANK[$16]
-INCBIN "baserom.gbc",$58000,$4000
-
-SECTION "bank17",ROMX,BANK[$17]
-INCBIN "baserom.gbc",$5C000,$4000
-
-SECTION "bank18",ROMX,BANK[$18]
-INCBIN "baserom.gbc",$60000,$4000
-
-SECTION "bank19",ROMX,BANK[$19]
-INCBIN "baserom.gbc",$64000,$4000
-
-SECTION "bank1A",ROMX,BANK[$1A]
-INCLUDE "emptybank.asm"
-
-SECTION "bank1B",ROMX,BANK[$1B]
-INCLUDE "emptybank.asm"
-
-SECTION "bank1C",ROMX,BANK[$1C]
-INCBIN "baserom.gbc",$70000,$4000
-
-SECTION "bank1D",ROMX,BANK[$1D]
-INCBIN "baserom.gbc",$74000,$4000
-
-SECTION "bank1E",ROMX,BANK[$1E]
-INCBIN "baserom.gbc",$78000,$4000
-
-SECTION "bank1F",ROMX,BANK[$1F]
-INCLUDE "emptybank.asm"
-
-SECTION "bank20",ROMX,BANK[$20]
-INCBIN "baserom.gbc",$80000,$4000
-
-SECTION "bank21",ROMX,BANK[$21]
-INCBIN "baserom.gbc",$84000,$4000
-
-SECTION "bank22",ROMX,BANK[$22]
-INCBIN "baserom.gbc",$88000,$4000
-
-SECTION "bank23",ROMX,BANK[$23]
-INCBIN "baserom.gbc",$8C000,$4000
-
-SECTION "bank24",ROMX,BANK[$24]
-INCBIN "baserom.gbc",$90000,$4000
-
-SECTION "bank25",ROMX,BANK[$25]
-INCBIN "baserom.gbc",$94000,$4000
-
-SECTION "bank26",ROMX,BANK[$26]
-INCBIN "baserom.gbc",$98000,$4000
-
-SECTION "bank27",ROMX,BANK[$27]
-INCBIN "baserom.gbc",$9C000,$4000
-
-SECTION "bank28",ROMX,BANK[$28]
-INCBIN "baserom.gbc",$A0000,$4000
-
-SECTION "bank29",ROMX,BANK[$29]
-INCBIN "baserom.gbc",$A4000,$4000
-
-SECTION "bank2A",ROMX,BANK[$2A]
-INCBIN "baserom.gbc",$A8000,$4000
-
-SECTION "bank2B",ROMX,BANK[$2B]
-INCBIN "baserom.gbc",$AC000,$4000
-
-SECTION "bank2C",ROMX,BANK[$2C]
-INCBIN "baserom.gbc",$B0000,$4000
-
-SECTION "bank2D",ROMX,BANK[$2D]
-INCBIN "baserom.gbc",$B4000,$4000
-
-SECTION "bank2E",ROMX,BANK[$2E]
-INCBIN "baserom.gbc",$B8000,$4000
-
-SECTION "bank2F",ROMX,BANK[$2F]
-INCLUDE "emptybank.asm"
-
-SECTION "bank30",ROMX,BANK[$30]
-INCLUDE "emptybank.asm"
-
-SECTION "bank31",ROMX,BANK[$31]
-INCBIN "baserom.gbc",$C4000,$4000
-
-SECTION "bank32",ROMX,BANK[$32]
-INCBIN "baserom.gbc",$C8000,$4000
-
-SECTION "bank33",ROMX,BANK[$33]
-INCBIN "baserom.gbc",$CC000,$4000
-
-SECTION "bank34",ROMX,BANK[$34]
-INCBIN "baserom.gbc",$D0000,$4000
-
-SECTION "bank35",ROMX,BANK[$35]
-INCBIN "baserom.gbc",$D4000,$4000
-
-SECTION "bank36",ROMX,BANK[$36]
-INCBIN "baserom.gbc",$D8000,$4000
-
-SECTION "bank37",ROMX,BANK[$37]
-INCBIN "baserom.gbc",$DC000,$4000
-
-SECTION "bank38",ROMX,BANK[$38]
-INCBIN "baserom.gbc",$E0000,$4000
-
-SECTION "bank39",ROMX,BANK[$39]
-INCBIN "baserom.gbc",$E4000,$4000
-
-SECTION "bank3A",ROMX,BANK[$3A]
-INCBIN "baserom.gbc",$E8000,$4000
-
-SECTION "bank3B",ROMX,BANK[$3B]
-INCBIN "baserom.gbc",$EC000,$4000
-
-SECTION "bank3C",ROMX,BANK[$3C]
-INCLUDE "emptybank.asm"
-
-SECTION "bank3D",ROMX,BANK[$3D]
-
-INCLUDE "music1.asm"
-
-SECTION "bank3E",ROMX,BANK[$3E]
-
-INCLUDE "music2.asm"
-
-SECTION "bank3F",ROMX,BANK[$3F]
+INCLUDE "macros.asm"
+
+INCLUDE "home.asm"
+
+SECTION "bank1",ROMX,BANK[$1]
+INCBIN "baserom.gbc",$4000,$4000
+
+SECTION "bank2",ROMX,BANK[$2]
+INCBIN "baserom.gbc",$8000,$4000
+
+SECTION "bank3",ROMX,BANK[$3]
+INCBIN "baserom.gbc",$C000,$CC42 - $C000
+RST20: ; cc42 (3:4c42)
+INCBIN "baserom.gbc",$CC42,$10000 - $CC42
+
+SECTION "bank4",ROMX,BANK[$4]
+INCBIN "baserom.gbc",$10000,$4000
+
+SECTION "bank5",ROMX,BANK[$5]
+INCBIN "baserom.gbc",$14000,$4000
+
+SECTION "bank6",ROMX,BANK[$6]
+INCBIN "baserom.gbc",$18000,$4000
+
+SECTION "bank7",ROMX,BANK[$7]
+INCBIN "baserom.gbc",$1C000,$4000
+
+SECTION "bank8",ROMX,BANK[$8]
+INCBIN "baserom.gbc",$20000,$4000
+
+SECTION "bank9",ROMX,BANK[$9]
+INCLUDE "emptybank.asm"
+
+SECTION "bankA",ROMX,BANK[$A]
+INCLUDE "emptybank.asm"
+
+SECTION "bankB",ROMX,BANK[$B]
+INCBIN "baserom.gbc",$2C000,$4000
+
+SECTION "bankC",ROMX,BANK[$C]
+INCBIN "baserom.gbc",$30000,$4000
+
+SECTION "bankD",ROMX,BANK[$D]
+INCBIN "baserom.gbc",$34000,$4000
+
+SECTION "bankE",ROMX,BANK[$E]
+INCBIN "baserom.gbc",$38000,$4000
+
+SECTION "bankF",ROMX,BANK[$F]
+INCBIN "baserom.gbc",$3C000,$4000
+
+SECTION "bank10",ROMX,BANK[$10]
+INCBIN "baserom.gbc",$40000,$4000
+
+SECTION "bank11",ROMX,BANK[$11]
+INCBIN "baserom.gbc",$44000,$4000
+
+SECTION "bank12",ROMX,BANK[$12]
+INCBIN "baserom.gbc",$48000,$4000
+
+SECTION "bank13",ROMX,BANK[$13]
+INCBIN "baserom.gbc",$4C000,$4000
+
+SECTION "bank14",ROMX,BANK[$14]
+INCBIN "baserom.gbc",$50000,$4000
+
+SECTION "bank15",ROMX,BANK[$15]
+INCBIN "baserom.gbc",$54000,$4000
+
+SECTION "bank16",ROMX,BANK[$16]
+INCBIN "baserom.gbc",$58000,$4000
+
+SECTION "bank17",ROMX,BANK[$17]
+INCBIN "baserom.gbc",$5C000,$4000
+
+SECTION "bank18",ROMX,BANK[$18]
+INCBIN "baserom.gbc",$60000,$4000
+
+SECTION "bank19",ROMX,BANK[$19]
+INCBIN "baserom.gbc",$64000,$4000
+
+SECTION "bank1A",ROMX,BANK[$1A]
+INCLUDE "emptybank.asm"
+
+SECTION "bank1B",ROMX,BANK[$1B]
+INCLUDE "emptybank.asm"
+
+SECTION "bank1C",ROMX,BANK[$1C]
+INCBIN "baserom.gbc",$70000,$4000
+
+SECTION "bank1D",ROMX,BANK[$1D]
+INCBIN "baserom.gbc",$74000,$4000
+
+SECTION "bank1E",ROMX,BANK[$1E]
+INCBIN "baserom.gbc",$78000,$4000
+
+SECTION "bank1F",ROMX,BANK[$1F]
+INCLUDE "emptybank.asm"
+
+SECTION "bank20",ROMX,BANK[$20]
+INCBIN "baserom.gbc",$80000,$4000
+
+SECTION "bank21",ROMX,BANK[$21]
+INCBIN "baserom.gbc",$84000,$4000
+
+SECTION "bank22",ROMX,BANK[$22]
+INCBIN "baserom.gbc",$88000,$4000
+
+SECTION "bank23",ROMX,BANK[$23]
+INCBIN "baserom.gbc",$8C000,$4000
+
+SECTION "bank24",ROMX,BANK[$24]
+INCBIN "baserom.gbc",$90000,$4000
+
+SECTION "bank25",ROMX,BANK[$25]
+INCBIN "baserom.gbc",$94000,$4000
+
+SECTION "bank26",ROMX,BANK[$26]
+INCBIN "baserom.gbc",$98000,$4000
+
+SECTION "bank27",ROMX,BANK[$27]
+INCBIN "baserom.gbc",$9C000,$4000
+
+SECTION "bank28",ROMX,BANK[$28]
+INCBIN "baserom.gbc",$A0000,$4000
+
+SECTION "bank29",ROMX,BANK[$29]
+INCBIN "baserom.gbc",$A4000,$4000
+
+SECTION "bank2A",ROMX,BANK[$2A]
+INCBIN "baserom.gbc",$A8000,$4000
+
+SECTION "bank2B",ROMX,BANK[$2B]
+INCBIN "baserom.gbc",$AC000,$4000
+
+SECTION "bank2C",ROMX,BANK[$2C]
+INCBIN "baserom.gbc",$B0000,$4000
+
+SECTION "bank2D",ROMX,BANK[$2D]
+INCBIN "baserom.gbc",$B4000,$4000
+
+SECTION "bank2E",ROMX,BANK[$2E]
+INCBIN "baserom.gbc",$B8000,$4000
+
+SECTION "bank2F",ROMX,BANK[$2F]
+INCLUDE "emptybank.asm"
+
+SECTION "bank30",ROMX,BANK[$30]
+INCLUDE "emptybank.asm"
+
+SECTION "bank31",ROMX,BANK[$31]
+INCBIN "baserom.gbc",$C4000,$4000
+
+SECTION "bank32",ROMX,BANK[$32]
+INCBIN "baserom.gbc",$C8000,$4000
+
+SECTION "bank33",ROMX,BANK[$33]
+INCBIN "baserom.gbc",$CC000,$4000
+
+SECTION "bank34",ROMX,BANK[$34]
+INCBIN "baserom.gbc",$D0000,$4000
+
+SECTION "bank35",ROMX,BANK[$35]
+INCBIN "baserom.gbc",$D4000,$4000
+
+SECTION "bank36",ROMX,BANK[$36]
+INCBIN "baserom.gbc",$D8000,$4000
+
+SECTION "bank37",ROMX,BANK[$37]
+INCBIN "baserom.gbc",$DC000,$4000
+
+SECTION "bank38",ROMX,BANK[$38]
+INCBIN "baserom.gbc",$E0000,$4000
+
+SECTION "bank39",ROMX,BANK[$39]
+INCBIN "baserom.gbc",$E4000,$4000
+
+SECTION "bank3A",ROMX,BANK[$3A]
+INCBIN "baserom.gbc",$E8000,$4000
+
+SECTION "bank3B",ROMX,BANK[$3B]
+INCBIN "baserom.gbc",$EC000,$4000
+
+SECTION "bank3C",ROMX,BANK[$3C]
+INCLUDE "emptybank.asm"
+
+SECTION "bank3D",ROMX,BANK[$3D]
+
+INCLUDE "music/engine/music1.asm"
+
+SECTION "bank3E",ROMX,BANK[$3E]
+
+INCLUDE "music/engine/music2.asm"
+
+SECTION "bank3F",ROMX,BANK[$3F]
INCBIN "baserom.gbc",$FC000,$4000 \ No newline at end of file
diff --git a/music1.asm b/music/engine/music1.asm
index 98a1b76..2a44179 100755
--- a/music1.asm
+++ b/music/engine/music1.asm
@@ -1,2240 +1,2240 @@
-Func_f4000: ; f4000 (3d:4000)
- jp Func_f407d
-
-Func_f4003: ; f4003 (3d:4003)
- jp Func_f40e9
-
-Func_f4006: ; f4006 (3d:4006)
- jp Func_f4021
-
-Func_f4009: ; f4009 (3d:4009)
- jp Func_f402d
-
-Func_f400c: ; f400c (3d:400c)
- jp Func_f404e
-
-Func_f400f: ; f400f (3d:400f)
- jp Func_f4052
-
-Func_f4012: ; f4012 (3d:4012)
- jp Func_f405c
-
-Func_f4015: ; f4015 (3d:4015)
- jp Func_f4066
-
-Func_f4018: ; f4018 (3d:4018)
- jp Func_f406f
-
-Func_f401b: ; f401b (3d:401b)
- jp Func_f49c4
-
-Func_f401e: ; f401e (3d:401e)
- jp Func_f49d0
-
-Func_f4021: ; f4021 (3d:4021)
- push hl
- ld hl, NumberOfSongs1
- cp [hl]
- jr nc, .asm_f402b
- ld [$dd80], a
-.asm_f402b
- pop hl
- ret
-
-Func_f402d: ; f402d (3d:402d)
- push bc
- push hl
- ld b, $0
- ld c, a
- or a
- jr z, .asm_f4043
- ld hl, Unknown_f4e85
- add hl, bc
- ld b, [hl]
- ld a, [$dd83]
- or a
- jr z, .asm_f4043
- cp b
- jr c, .asm_f404b
-.asm_f4043
- ld a, b
- ld [$dd83], a
- ld a, c
- ld [$dd82], a
-.asm_f404b
- pop hl
- pop bc
- ret
-
-Func_f404e: ; f404e (3d:404e)
- ld [$ddf0], a
- ret
-
-Func_f4052: ; f4052 (3d:4052)
- ld a, [$dd80]
- cp $80
- ld a, $1
- ret nz
- xor a
- ret
-
-Func_f405c: ; f405c (3d:405c)
- ld a, [$dd82]
- cp $80
- ld a, $1
- ret nz
- xor a
- ret
-
-Func_f4066: ; f4066 (3d:4066)
- ld a, [$ddf2]
- xor $1
- ld [$ddf2], a
- ret
-
-Func_f406f: ; f406f (3d:406f)
- push bc
- push af
- and $7
- ld b, a
- swap b
- or b
- ld [$ddf1], a
- pop af
- pop bc
- ret
-
-Func_f407d: ; f407d (3d:407d)
- xor a
- ld [$ff26], a
- ld a, $80
- ld [$ff26], a
- ld a, $77
- ld [$ff24], a
- ld a, $ff
- ld [$ff25], a
- ld a, $3d
- ld [$dd81], a
- ld a, $80
- ld [$dd80], a
- ld [$dd82], a
- ld a, $77
- ld [$ddf1], a
- xor a
- ld [$dd8c], a
- ld [$de53], a
- ld [$dd8b], a
- ld [$ddef], a
- ld [$ddf0], a
- ld [$ddf2], a
- dec a
- ld [$dd84], a
- ld de, $0001
- ld bc, $0000
-.asm_f40bb
- ld hl, $dd8d
- add hl, bc
- ld [hl], d
- ld hl, $dd91
- add hl, bc
- ld [hl], d
- ld hl, $ddb3
- add hl, bc
- ld [hl], d
- ld hl, $ddcb
- add hl, bc
- ld [hl], d
- ld hl, $ddbf
- add hl, bc
- ld [hl], d
- inc c
- ld a, c
- cp $4
- jr nz, .asm_f40bb
- ld hl, Unknown_f4c20
- ld bc, $ddf3
- ld d, $8
-.asm_f40e2
- ld a, [hli]
- ld [bc], a
- inc bc
- dec d
- jr nz, .asm_f40e2
- ret
-
-Func_f40e9: ; f40e9 (3d:40e9)
- call Func_f42a4
- call Func_f411c
- ld hl, $4003
- call Bankswitch3dTo3f
- ld a, [$dd81]
- ld [$ff80], a
- ld [$2000], a
- ld a, [$ddf2]
- cp $0
- jr z, .asm_f4109
- call Func_f4980
- jr .asm_f4115
-.asm_f4109
- call Func_f42a5
- call Func_f430a
- call Func_f436f
- call Func_f43ce
-.asm_f4115
- call Func_f4866
- call Func_f49b1
- ret
-
-Func_f411c: ; f411c (3d:411c)
- ld a, [$dd80]
- rla
- jr c, .asm_f4133
- call Func_f414b
- ld a, [$dd80]
- call Func_f418c
- ld a, [$dd80]
- or $80
- ld [$dd80], a
-.asm_f4133
- ld a, [$dd82]
- rla
- jr c, .asm_f414a
- ld a, [$dd82]
- ld hl, $4000
- call Bankswitch3dTo3f
- ld a, [$dd82]
- or $80
- ld [$dd82], a
-.asm_f414a
- ret
-
-Func_f414b: ; f414b (3d:414b)
- ld a, [$dd8c]
- ld d, a
- xor a
- ld [$dd8d], a
- bit 0, d
- jr nz, .asm_f415f
- ld a, $8
- ld [$ff12], a
- swap a
- ld [$ff14], a
-.asm_f415f
- xor a
- ld [$dd8e], a
- bit 1, d
- jr nz, .asm_f416f
- ld a, $8
- ld [$ff17], a
- swap a
- ld [$ff19], a
-.asm_f416f
- xor a
- ld [$dd90], a
- bit 3, d
- jr nz, .asm_f417f
- ld a, $8
- ld [$ff21], a
- swap a
- ld [$ff23], a
-.asm_f417f
- xor a
- ld [$dd8f], a
- bit 2, d
- jr nz, .asm_f418b
- ld a, $0
- ld [$ff1c], a
-.asm_f418b
- ret
-
-Func_f418c: ; f418c (3d:418c)
- push af
- ld c, a
- ld b, $0
- ld hl, SongBanks1
- add hl, bc
- ld a, [hl]
- ld [$dd81], a
- ld [$ff80], a
- ld [$2000], a
- pop af
- add a
- ld c, a
- ld b, $0
- ld hl, SongHeaderPointers1
- add hl, bc
- ld e, [hl]
- inc hl
- ld h, [hl]
- ld l, e
- ld e, [hl]
- inc hl
- ld b, h
- ld c, l
- rr e
- jr nc, .asm_f41eb
- ld a, [bc]
- inc bc
- ld [$dd95], a
- ld [$dd9d], a
- ld a, [bc]
- inc bc
- ld [$dd96], a
- ld [$dd9e], a
- ld a, $1
- ld [$ddbb], a
- ld [$dd8d], a
- xor a
- ld [$dd91], a
- ld [$ddea], a
- ld [$ddbf], a
- ld [$dddf], a
- ld [$ddcb], a
- ld a, [Unknown_f4c20]
- ld [$ddf3], a
- ld a, [Unknown_f4c20 + 1]
- ld [$ddf4], a
- ld a, $8
- ld [$ddc7], a
-.asm_f41eb
- rr e
- jr nc, .asm_f4228
- ld a, [bc]
- inc bc
- ld [$dd97], a
- ld [$dd9f], a
- ld a, [bc]
- inc bc
- ld [$dd98], a
- ld [$dda0], a
- ld a, $1
- ld [$ddbc], a
- ld [$dd8e], a
- xor a
- ld [$dd92], a
- ld [$ddeb], a
- ld [$ddc0], a
- ld [$dde0], a
- ld [$ddcc], a
- ld a, [Unknown_f4c20 + 2]
- ld [$ddf5], a
- ld a, [Unknown_f4c20 + 3]
- ld [$ddf6], a
- ld a, $8
- ld [$ddc8], a
-.asm_f4228
- rr e
- jr nc, .asm_f4265
- ld a, [bc]
- inc bc
- ld [$dd99], a
- ld [$dda1], a
- ld a, [bc]
- inc bc
- ld [$dd9a], a
- ld [$dda2], a
- ld a, $1
- ld [$ddbd], a
- ld [$dd8f], a
- xor a
- ld [$dd93], a
- ld [$ddec], a
- ld [$ddc1], a
- ld [$dde1], a
- ld [$ddcd], a
- ld a, [Unknown_f4c20 + 4]
- ld [$ddf7], a
- ld a, [Unknown_f4c20 + 5]
- ld [$ddf8], a
- ld a, $40
- ld [$ddc9], a
-.asm_f4265
- rr e
- jr nc, .asm_f429f
- ld a, [bc]
- inc bc
- ld [$dd9b], a
- ld [$dda3], a
- ld a, [bc]
- inc bc
- ld [$dd9c], a
- ld [$dda4], a
- ld a, $1
- ld [$ddbe], a
- ld [$dd90], a
- xor a
- ld [$dd94], a
- ld [$ddc2], a
- ld [$dde2], a
- ld [$ddce], a
- ld a, [Unknown_f4c20 + 6]
- ld [$ddf9], a
- ld a, [Unknown_f4c20 + 7]
- ld [$ddfa], a
- ld a, $40
- ld [$ddca], a
-.asm_f429f
- xor a
- ld [$ddf2], a
- ret
-
-Func_f42a4: ; f42a4 (3d:42a4)
- ret
-
-Func_f42a5: ; f42a5 (3d:42a5)
- ld a, [$dd8d]
- or a
- jr z, .asm_f42fa
- ld a, [$ddb7]
- cp $0
- jr z, .asm_f42d4
- ld a, [$ddc3]
- dec a
- ld [$ddc3], a
- jr nz, .asm_f42d4
- ld a, [$ddbb]
- cp $1
- jr z, .asm_f42d4
- ld a, [$dd8c]
- bit 0, a
- jr nz, .asm_f42d4
- ld hl, $ff12
- ld a, [$ddc7]
- ld [hli], a
- inc hl
- ld a, $80
- ld [hl], a
-.asm_f42d4
- ld a, [$ddbb]
- dec a
- ld [$ddbb], a
- jr nz, .asm_f42f4
- ld a, [$dd96]
- ld h, a
- ld a, [$dd95]
- ld l, a
- ld bc, $0000
- call Func_f4414
- ld a, [$dd8d]
- or a
- jr z, .asm_f42fa
- call Func_f4714
-.asm_f42f4
- ld a, $0
- call Func_f485a
- ret
-.asm_f42fa
- ld a, [$dd8c]
- bit 0, a
- jr nz, .asm_f4309
- ld a, $8
- ld [$ff12], a
- swap a
- ld [$ff14], a
-.asm_f4309
- ret
-
-Func_f430a: ; f430a (3d:430a)
- ld a, [$dd8e]
- or a
- jr z, .asm_f435f
- ld a, [$ddb8]
- cp $0
- jr z, .asm_f4339
- ld a, [$ddc4]
- dec a
- ld [$ddc4], a
- jr nz, .asm_f4339
- ld a, [$ddbc]
- cp $1
- jr z, .asm_f4339
- ld a, [$dd8c]
- bit 1, a
- jr nz, .asm_f4339
- ld hl, $ff17
- ld a, [$ddc8]
- ld [hli], a
- inc hl
- ld a, $80
- ld [hl], a
-.asm_f4339
- ld a, [$ddbc]
- dec a
- ld [$ddbc], a
- jr nz, .asm_f4359
- ld a, [$dd98]
- ld h, a
- ld a, [$dd97]
- ld l, a
- ld bc, $0001
- call Func_f4414
- ld a, [$dd8e]
- or a
- jr z, .asm_f435f
- call Func_f475a
-.asm_f4359
- ld a, $1
- call Func_f485a
- ret
-.asm_f435f
- ld a, [$dd8c]
- bit 1, a
- jr nz, .asm_f436e
- ld a, $8
- ld [$ff17], a
- swap a
- ld [$ff19], a
-.asm_f436e
- ret
-
-Func_f436f: ; f436f (3d:436f)
- ld a, [$dd8f]
- or a
- jr z, .asm_f43be
- ld a, [$ddb9]
- cp $0
- jr z, .asm_f4398
- ld a, [$ddc5]
- dec a
- ld [$ddc5], a
- jr nz, .asm_f4398
- ld a, [$dd8c]
- bit 2, a
- jr nz, .asm_f4398
- ld a, [$ddbd]
- cp $1
- jr z, .asm_f4398
- ld a, [$ddc9]
- ld [$ff1c], a
-.asm_f4398
- ld a, [$ddbd]
- dec a
- ld [$ddbd], a
- jr nz, .asm_f43b8
- ld a, [$dd9a]
- ld h, a
- ld a, [$dd99]
- ld l, a
- ld bc, $0002
- call Func_f4414
- ld a, [$dd8f]
- or a
- jr z, .asm_f43be
- call Func_f479c
-.asm_f43b8
- ld a, $2
- call Func_f485a
- ret
-.asm_f43be
- ld a, [$dd8c]
- bit 2, a
- jr nz, .asm_f43cd
- ld a, $0
- ld [$ff1c], a
- ld a, $80
- ld [$ff1e], a
-.asm_f43cd
- ret
-
-Func_f43ce: ; f43ce (3d:43ce)
- ld a, [$dd90]
- or a
- jr z, .asm_f4400
- ld a, [$ddbe]
- dec a
- ld [$ddbe], a
- jr nz, .asm_f43f6
- ld a, [$dd9c]
- ld h, a
- ld a, [$dd9b]
- ld l, a
- ld bc, $0003
- call Func_f4414
- ld a, [$dd90]
- or a
- jr z, .asm_f4400
- call Func_f480a
- jr .asm_f4413
-.asm_f43f6
- ld a, [$ddef]
- or a
- jr z, .asm_f4413
- call Func_f4839
- ret
-.asm_f4400
- ld a, [$dd8c]
- bit 3, a
- jr nz, .asm_f4413
- xor a
- ld [$ddef], a
- ld a, $8
- ld [$ff21], a
- swap a
- ld [$ff23], a
-.asm_f4413
- ret
-
-Func_f4414: ; f4414 (3d:4414)
- ld a, [hli]
- push hl
- push af
- cp $d0
- jr c, .asm_f448c
- sub $d0
- add a
- ld e, a
- ld d, $0
- ld hl, .data_f442c
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld h, d
- ld l, e
- pop af
- jp [hl]
-
-.data_f442c
- dw Func_f4598
- dw Func_f45a3
- dw Func_f45a3
- dw Func_f45a3
- dw Func_f45a3
- dw Func_f45a3
- dw Func_f45a3
- dw Func_f45bb
- dw Func_f45c3
- dw Func_f45cb
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f45d4
- dw Func_f45ef
- dw Func_f45fd
- dw Func_f4609
- dw Func_f461e
- dw Func_f4638
- dw Func_f463f
- dw Func_f4656
- dw Func_f4667
- dw Func_f4674
- dw Func_f4683
- dw Func_f4690
- dw Func_f46a0
- dw Func_f46ad
- dw Func_f46ba
- dw Func_f46cc
- dw Func_f46d9
- dw Func_f46e6
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
- dw Func_f46f4
-
-.asm_f448c
- push af
- ld a, [hl]
- ld e, a
- ld hl, $dd91
- add hl, bc
- ld a, [hl]
- cp $80
- jr z, .asm_f44b0
- ld [hl], $1
- xor a
- ld hl, $dddb
- add hl, bc
- ld [hl], a
- ld hl, $dde3
- add hl, bc
- ld [hl], a
- inc [hl]
- ld hl, $ddd7
- add hl, bc
- ld a, [hl]
- ld hl, $ddd3
- add hl, bc
- ld [hl], a
-.asm_f44b0
- pop af
- push de
- ld hl, $ddcf
- add hl, bc
- ld d, [hl]
- and $f
- inc a
- cp d
- jr nc, .asm_f44c0
- ld e, a
- ld a, d
- ld d, e
-.asm_f44c0
- ld e, a
-.asm_f44c1
- dec d
- jr z, .asm_f44c7
- add e
- jr .asm_f44c1
-.asm_f44c7
- ld hl, $ddbb
- add hl, bc
- ld [hl], a
- pop de
- ld d, a
- ld a, e
- cp $d9
- ld a, d
- jr z, .asm_f44fb
- ld e, a
- ld hl, $ddbf
- add hl, bc
- ld a, [hl]
- cp $8
- ld d, a
- ld a, e
- jr z, .asm_f44fb
- push hl
- push bc
- ld b, $0
- ld c, a
- ld hl, $0000
-.asm_f44e8
- add hl, bc
- dec d
- jr nz, .asm_f44e8
- srl h
- rr l
- srl h
- rr l
- srl h
- rr l
- ld a, l
- pop bc
- pop hl
-.asm_f44fb
- ld hl, $ddc3
- add hl, bc
- ld [hl], a
- pop af
- and $f0
- ld hl, $ddb7
- add hl, bc
- ld [hl], a
- or a
- jr nz, .asm_f450e
- jp .asm_f458e
-.asm_f450e
- swap a
- dec a
- ld h, a
- ld a, $3
- cp c
- ld a, h
- jr z, .asm_f451a
- jr .asm_f4564
-.asm_f451a
- push af
- ld hl, $ddaf
- add hl, bc
- ld a, [hl]
- ld d, a
- sla a
- add d
- sla a
- sla a
- sla a
- ld e, a
- pop af
- ld hl, PointerTable_f4d34
- add a
- ld d, c
- ld c, a
- add hl, bc
- ld c, e
- add hl, bc
- ld c, d
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hli]
- ld d, a
- ld a, [$dd84]
- and $77
- or d
- ld [$dd84], a
- ld de, $ddab
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld b, [hl]
- inc hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- ld b, $0
- ld a, l
- ld d, h
- ld hl, $dded
- ld [hli], a
- ld [hl], d
- ld a, $1
- ld [$ddef], a
- jr .asm_f458e
-.asm_f4564
- ld hl, $dda5
- add hl, bc
- add hl, bc
- push hl
- ld hl, $ddaf
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, Unknown_f4c28
- add hl, de
- add a
- ld e, [hl]
- add e
- ld hl, $ddcb
- add hl, bc
- ld e, [hl]
- add e
- add e
- ld e, a
- ld hl, $4c30
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- call Func_f4967
- pop hl
- ld a, e
- ld [hli], a
- ld [hl], d
-.asm_f458e
- pop de
- ld hl, $dd95
- add hl, bc
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-Func_f4598: ; f4598 (3d:4598)
- pop hl
- ld a, [hli]
- push hl
- ld hl, $ddcf
- add hl, bc
- ld [hl], a
- jp Func_f4710
-
-Func_f45a3: ; f45a3 (3d:45a3)
- and $7
- dec a
- ld hl, $ddaf
- add hl, bc
- push af
- ld a, c
- cp $2
- jr nz, .asm_f45b6
- pop af
- inc a
- ld [hl], a
- jp Func_f4710
-.asm_f45b6
- pop af
- ld [hl], a
- jp Func_f4710
-
-Func_f45bb: ; f45bb (3d:45bb)
- ld hl, $ddaf
- add hl, bc
- inc [hl]
- jp Func_f4710
-
-Func_f45c3: ; f45c3 (3d:45c3)
- ld hl, $ddaf
- add hl, bc
- dec [hl]
- jp Func_f4710
-
-Func_f45cb: ; f45cb (3d:45cb)
- ld hl, $dd91
- add hl, bc
- ld [hl], $80
- jp Func_f4710
-
-Func_f45d4: ; f45d4 (3d:45d4)
- pop hl
- ld a, [hli]
- push hl
- push bc
- inc c
- ld e, $ee
-.asm_f45db
- dec c
- jr z, .asm_f45e3
- rlca
- rlc e
- jr .asm_f45db
-.asm_f45e3
- ld d, a
- ld hl, $dd84
- ld a, [hl]
- and e
- or d
- ld [hl], a
- pop bc
- jp Func_f4710
-
-Func_f45ef: ; f45ef (3d:45ef)
- pop de
- push de
- dec de
- ld hl, $dd9d
- add hl, bc
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- jp Func_f4710
-
-Func_f45fd: ; f45fd (3d:45fd)
- pop hl
- ld hl, $dd9d
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp Func_f4414
-
-Func_f4609: ; f4609 (3d:4609)
- pop de
- ld a, [de]
- inc de
- push af
- call Func_f46fc
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- pop af
- ld [hl], a
- inc hl
- push de
- call Func_f4705
- jp Func_f4710
-
-Func_f461e: ; f461e (3d:461e)
- call Func_f46fc
- dec hl
- ld a, [hl]
- dec a
- jr z, .asm_f4630
- ld [hld], a
- ld d, [hl]
- dec hl
- ld e, [hl]
- pop hl
- ld h, d
- ld l, e
- jp Func_f4414
-.asm_f4630
- dec hl
- dec hl
- call Func_f4705
- jp Func_f4710
-
-Func_f4638: ; f4638 (3d:4638)
- pop hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp Func_f4414
-
-Func_f463f: ; f463f (3d:463f)
- call Func_f46fc
- pop de
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, [de]
- ld b, a
- inc de
- ld a, [de]
- ld d, a
- ld e, b
- ld b, $0
- push de
- call Func_f4705
- jp Func_f4710
-
-Func_f4656: ; f4656 (3d:4656)
- pop de
- call Func_f46fc
- dec hl
- ld a, [hld]
- ld e, [hl]
- ld d, a
- inc de
- inc de
- push de
- call Func_f4705
- jp Func_f4710
-
-Func_f4667: ; f4667 (3d:4667)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddea
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f4674: ; f4674 (3d:4674)
- pop de
- ld a, [de]
- and $c0
- inc de
- ld hl, $dd86
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f4683: ; f4683 (3d:4683)
- pop de
- ld a, [de]
- inc de
- ld hl, $dde7
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f4690: ; f4690 (3d:4690)
- pop de
- ld a, [de]
- inc de
- ld [$dd8a], a
- ld a, $1
- ld [$dd8b], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f46a0: ; f46a0 (3d:46a0)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddbf
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f46ad: ; f46ad (3d:46ad)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddc7
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f46ba: ; f46ba (3d:46ba)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddd3
- add hl, bc
- ld [hl], a
- ld hl, $ddd7
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f46cc: ; f46cc (3d:46cc)
- pop de
- ld a, [de]
- inc de
- ld hl, $dddf
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f46d9: ; f46d9 (3d:46d9)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddcb
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f46e6: ; f46e6 (3d:46e6)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddcb
- add hl, bc
- add [hl]
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f4414
-
-Func_f46f4: ; f46f4 (3d:46f4)
- ld hl, $dd8d
- add hl, bc
- ld [hl], $0
- pop hl
- ret
-
-Func_f46fc: ; f46fc (3d:46fc)
- ld hl, $ddf3
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-Func_f4705: ; f4705 (3d:4705)
- ld d, h
- ld e, l
- ld hl, $ddf3
- add hl, bc
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-Func_f4710: ; f4710 (3d:4710)
- pop hl
- jp Func_f4414
-
-Func_f4714: ; f4714 (3d:4714)
- ld a, [$dd8c]
- bit 0, a
- jr nz, .asm_f4749
- ld a, [$ddb7]
- cp $0
- jr z, .asm_f474a
- ld d, $0
- ld hl, $dd91
- ld a, [hl]
- cp $80
- jr z, .asm_f4733
- ld a, [$dde7]
- ld [$ff12], a
- ld d, $80
-.asm_f4733
- ld [hl], $2
- ld a, $8
- ld [$ff10], a
- ld a, [$dd86]
- ld [$ff11], a
- ld a, [$dda5]
- ld [$ff13], a
- ld a, [$dda6]
- or d
- ld [$ff14], a
-.asm_f4749
- ret
-.asm_f474a
- ld hl, $dd91
- ld [hl], $0
- ld hl, $ff12
- ld a, $8
- ld [hli], a
- inc hl
- swap a
- ld [hl], a
- ret
-
-Func_f475a: ; f475a (3d:475a)
- ld a, [$dd8c]
- bit 1, a
- jr nz, .asm_f478b
- ld a, [$ddb8]
- cp $0
- jr z, .asm_f478c
- ld d, $0
- ld hl, $dd92
- ld a, [hl]
- cp $80
- jr z, .asm_f4779
- ld a, [$dde8]
- ld [$ff17], a
- ld d, $80
-.asm_f4779
- ld [hl], $2
- ld a, [$dd87]
- ld [$ff16], a
- ld a, [$dda7]
- ld [$ff18], a
- ld a, [$dda8]
- or d
- ld [$ff19], a
-.asm_f478b
- ret
-.asm_f478c
- ld hl, $dd92
- ld [hl], $0
- ld hl, $ff17
- ld a, $8
- ld [hli], a
- inc hl
- swap a
- ld [hl], a
- ret
-
-Func_f479c: ; f479c (3d:479c)
- ld a, [$dd8c]
- bit 2, a
- jr nz, .asm_f47e0
- ld d, $0
- ld a, [$dd8b]
- or a
- jr z, .asm_f47b3
- xor a
- ld [$ff1a], a
- call Func_f47ea
- ld d, $80
-.asm_f47b3
- ld a, [$ddb9]
- cp $0
- jr z, .asm_f47e1
- ld hl, $dd93
- ld a, [hl]
- cp $80
- jr z, .asm_f47cc
- ld a, [$dde9]
- ld [$ff1c], a
- xor a
- ld [$ff1a], a
- ld d, $80
-.asm_f47cc
- ld [hl], $2
- xor a
- ld [$ff1b], a
- ld a, [$dda9]
- ld [$ff1d], a
- ld a, $80
- ld [$ff1a], a
- ld a, [$ddaa]
- or d
- ld [$ff1e], a
-.asm_f47e0
- ret
-.asm_f47e1
- ld hl, $dd91
- ld [hl], $0
- xor a
- ld [$ff1a], a
- ret
-
-Func_f47ea: ; f479c (3d:47ea)
- ld a, [$dd8a]
- add a
- ld d, $0
- ld e, a
- ld hl, PointerTable_f4cda
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld b, d
- ld de, $ff30
-.asm_f47fc
- ld a, [hli]
- ld [de], a
- inc de
- inc b
- ld a, b
- cp $10
- jr nz, .asm_f47fc
- xor a
- ld [$dd8b], a
- ret
-
-Func_f480a: ; f480a (3d:480a)
- ld a, [$dd8c]
- bit 3, a
- jr nz, .asm_f4829
- ld a, [$ddba]
- cp $0
- jr z, asm_f482a
- ld de, $ff20
- ld hl, $ddab
- ld a, [hli]
- ld [de], a
- inc e
- ld a, [hli]
- ld [de], a
- inc e
- ld a, [hli]
- ld [de], a
- inc e
- ld a, [hli]
- ld [de], a
-.asm_f4829
- ret
-asm_f482a
- xor a
- ld [$ddef], a
- ld hl, $ff21
- ld a, $8
- ld [hli], a
- inc hl
- swap a
- ld [hl], a
- ret
-
-Func_f4839: ; f4839 (3d:4839)
- ld a, [$dd8c]
- bit 3, a
- jr z, .asm_f4846
- xor a
- ld [$ddef], a
- jr .asm_f4859
-.asm_f4846
- ld hl, $dded
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ld a, [de]
- cp $ff
- jr nz, .asm_f4853
- jr asm_f482a
-.asm_f4853
- ld [$ff22], a
- inc de
- ld a, d
- ld [hld], a
- ld [hl], e
-.asm_f4859
- ret
-
-Func_f485a: ; f485a (3d:485a)
- push af
- ld b, $0
- ld c, a
- call Func_f4898
- pop af
- call Func_f490b
- ret
-
-Func_f4866: ; f4866 (3d:4866)
- ld a, [$ddf1]
- ld [$ff24], a
- ld a, [$dd8c]
- or a
- ld hl, $dd84
- ld a, [hli]
- jr z, .asm_f4888
- ld a, [$dd8c]
- and $f
- ld d, a
- swap d
- or d
- ld d, a
- xor $ff
- ld e, a
- ld a, [hld]
- and d
- ld d, a
- ld a, [hl]
- and e
- or d
-.asm_f4888
- ld d, a
- ld a, [$ddf0]
- xor $ff
- and $f
- ld e, a
- swap e
- or e
- and d
- ld [$ff25], a
- ret
-
-Func_f4898: ; f4898 (3d:4898)
- ld hl, $dddf
- add hl, bc
- ld a, [hl]
- cp $0
- jr z, .asm_f4902
- ld hl, $dde3
- add hl, bc
- cp [hl]
- jr z, .asm_f48ab
- inc [hl]
- jr .asm_f4902
-.asm_f48ab
- ld hl, $ddd3
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, PointerTable_f4dde
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- ld hl, $dddb
- add hl, bc
- ld d, $0
- ld e, [hl]
- inc [hl]
- pop hl
- add hl, de
- ld a, [hli]
- cp $80
- jr z, .asm_f48ee
- ld hl, $dda5
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- bit 7, a
- jr nz, .asm_f48df
- add e
- ld e, a
- ld a, $0
- adc d
- and $7
- ld d, a
- ret
-.asm_f48df
- xor $ff
- inc a
- push bc
- ld c, a
- ld a, e
- sub c
- ld e, a
- ld a, d
- sbc b
- and $7
- ld d, a
- pop bc
- ret
-.asm_f48ee
- push hl
- ld hl, $dddb
- add hl, bc
- ld [hl], $0
- pop hl
- ld a, [hl]
- cp $80
- jr z, .asm_f48ab
- ld hl, $ddd3
- add hl, bc
- ld [hl], a
- jr .asm_f48ab
-.asm_f4902
- ld hl, $dda5
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- ret
-
-Func_f490b: ; f490b (3d:490b)
- cp $0
- jr nz, .asm_f492c
- ld a, [$dddf]
- cp $0
- jr z, .asm_f4966
- ld a, [$dd8c]
- bit 0, a
- jr nz, .asm_f4966
- ld a, e
- ld [$ff13], a
- ld a, [$ff11]
- and $c0
- ld [$ff11], a
- ld a, d
- and $3f
- ld [$ff14], a
- ret
-.asm_f492c
- cp $1
- jr nz, .asm_f494b
- ld a, [$dde0]
- cp $0
- jr z, .asm_f4966
- ld a, [$dd8c]
- bit 1, a
- jr nz, .asm_f4966
- ld a, e
- ld [$ff18], a
- ld a, [$ff16]
- and $c0
- ld [$ff16], a
- ld a, d
- ld [$ff19], a
- ret
-.asm_f494b
- cp $2
- jr nz, .asm_f4966
- ld a, [$dde1]
- cp $0
- jr z, .asm_f4966
- ld a, [$dd8c]
- bit 2, a
- jr nz, .asm_f4966
- ld a, e
- ld [$ff1d], a
- xor a
- ld [$ff1b], a
- ld a, d
- ld [$ff1e], a
-.asm_f4966
- ret
-
-Func_f4967: ; f4967 (3d:4967)
- ld hl, $ddea
- add hl, bc
- ld a, [hl]
- bit 7, a
- jr nz, .asm_f4976
- add e
- ld e, a
- ld a, d
- adc b
- ld d, a
- ret
-.asm_f4976
- xor $ff
- ld h, a
- ld a, e
- sub h
- ld e, a
- ld a, d
- sbc b
- ld d, a
- ret
-
-Func_f4980: ; f4980 (3d:4980)
- ld a, [$dd8c]
- ld d, a
- bit 0, d
- jr nz, .asm_f4990
- ld a, $8
- ld [$ff12], a
- swap a
- ld [$ff14], a
-.asm_f4990
- bit 1, d
- jr nz, .asm_f499c
- swap a
- ld [$ff17], a
- swap a
- ld [$ff19], a
-.asm_f499c
- bit 3, d
- jr nz, .asm_f49a8
- swap a
- ld [$ff21], a
- swap a
- ld [$ff23], a
-.asm_f49a8
- bit 2, d
- jr nz, .asm_f49b0
- ld a, $0
- ld [$ff1c], a
-.asm_f49b0
- ret
-
-Func_f49b1: ; f49b1 (3d:49b1)
- ld hl, $dd8d
- xor a
- add [hl]
- inc hl
- add [hl]
- inc hl
- add [hl]
- inc hl
- add [hl]
- or a
- ret nz
- ld a, $80
- ld [$dd80], a
- ret
-
-Func_f49c4: ; f49c4 (3d:49c4)
- di
- call Func_f4980
- call Func_f49dc
- call Func_f414b
- ei
- ret
-
-Func_f49d0: ; f49d0 (3d:49d0)
- di
- call Func_f4980
- call Func_f414b
- call Func_f4b01
- ei
- ret
-
-Func_f49dc: ; f49dc (3d:49dc)
- ld a, [$dd80]
- ld [$de55], a
- ld a, [$dd81]
- ld [$de56], a
- ld a, [$dd84]
- ld [$de57], a
- ld hl, $dd86
- ld de, $de58
- ld a, $4
- call Func_f4c18
- ld a, [$dd8a]
- ld [$de5c], a
- ld a, [$dd8b]
- ld [$de5d], a
- ld hl, $dd8d
- ld de, $de5e
- ld a, $4
- call Func_f4c18
- ld hl, $dd91
- ld de, $de62
- ld a, $4
- call Func_f4c18
- ld hl, $dd95
- ld de, $de66
- ld a, $8
- call Func_f4c18
- ld hl, $dd9d
- ld de, $de6e
- ld a, $8
- call Func_f4c18
- ld a, [$ddab]
- ld [$de76], a
- ld a, [$ddac]
- ld [$de77], a
- ld hl, $ddaf
- ld de, $de78
- ld a, $4
- call Func_f4c18
- ld hl, $ddb3
- ld de, $de7c
- ld a, $4
- call Func_f4c18
- ld hl, $ddb7
- ld de, $de80
- ld a, $4
- call Func_f4c18
- ld hl, $ddbb
- ld de, $de84
- ld a, $4
- call Func_f4c18
- ld hl, $ddbf
- ld de, $de88
- ld a, $4
- call Func_f4c18
- ld hl, $ddc3
- ld de, $de8c
- ld a, $4
- call Func_f4c18
- ld hl, $ddc7
- ld de, $de90
- ld a, $4
- call Func_f4c18
- ld hl, $ddcb
- ld de, $de94
- ld a, $4
- call Func_f4c18
- ld hl, $ddcf
- ld de, $de98
- ld a, $4
- call Func_f4c18
- ld hl, $ddd7
- ld de, $de9c
- ld a, $4
- call Func_f4c18
- ld hl, $dddf
- ld de, $dea0
- ld a, $4
- call Func_f4c18
- ld a, $0
- ld [$dddb], a
- ld [$dddc], a
- ld [$dddd], a
- ld [$ddde], a
- ld hl, $dde7
- ld de, $dea4
- ld a, $3
- call Func_f4c18
- ld hl, $ddea
- ld de, $dea7
- ld a, $3
- call Func_f4c18
- ld hl, $dded
- ld de, $deaa
- ld a, $2
- call Func_f4c18
- ld a, $0
- ld [$deac], a
- ld hl, $ddf3
- ld de, $dead
- ld a, $8
- call Func_f4c18
- ld hl, $ddfb
- ld de, $deb5
- ld a, $30
- call Func_f4c18
- ret
-
-Func_f4b01: ; f4b01 (3d:4b01)
- ld a, [$de55]
- ld [$dd80], a
- ld a, [$de56]
- ld [$dd81], a
- ld a, [$de57]
- ld [$dd84], a
- ld hl, $de58
- ld de, $dd86
- ld a, $4
- call Func_f4c18
- ld a, [$de5c]
- ld [$dd8a], a
- ld a, $1
- ld [$dd8b], a
- ld hl, $de5e
- ld de, $dd8d
- ld a, $4
- call Func_f4c18
- ld hl, $de62
- ld de, $dd91
- ld a, $4
- call Func_f4c18
- ld hl, $de66
- ld de, $dd95
- ld a, $8
- call Func_f4c18
- ld hl, $de6e
- ld de, $dd9d
- ld a, $8
- call Func_f4c18
- ld a, [$de76]
- ld [$ddab], a
- ld a, [$de77]
- ld [$ddac], a
- ld hl, $de78
- ld de, $ddaf
- ld a, $4
- call Func_f4c18
- ld hl, $de7c
- ld de, $ddb3
- ld a, $4
- call Func_f4c18
- ld hl, $de80
- ld de, $ddb7
- ld a, $4
- call Func_f4c18
- ld hl, $de84
- ld de, $ddbb
- ld a, $4
- call Func_f4c18
- ld hl, $de88
- ld de, $ddbf
- ld a, $4
- call Func_f4c18
- ld hl, $de8c
- ld de, $ddc3
- ld a, $4
- call Func_f4c18
- ld hl, $de90
- ld de, $ddc7
- ld a, $4
- call Func_f4c18
- ld hl, $de94
- ld de, $ddcb
- ld a, $4
- call Func_f4c18
- ld hl, $de98
- ld de, $ddcf
- ld a, $4
- call Func_f4c18
- ld hl, $de9c
- ld de, $ddd7
- ld a, $4
- call Func_f4c18
- ld hl, $dea0
- ld de, $dddf
- ld a, $4
- call Func_f4c18
- ld hl, $dea4
- ld de, $dde7
- ld a, $3
- call Func_f4c18
- ld hl, $dea7
- ld de, $ddea
- ld a, $3
- call Func_f4c18
- ld hl, $deaa
- ld de, $dded
- ld a, $2
- call Func_f4c18
- ld a, [$deac]
- ld [$ddef], a
- ld hl, $dead
- ld de, $ddf3
- ld a, $8
- call Func_f4c18
- ld hl, $deb5
- ld de, $ddfb
- ld a, $30
- call Func_f4c18
- ret
-
-; copies a bytes from hl to de
-Func_f4c18: ; f4c18 (3d:4c18)
- ld c, a
-.asm_f4c19
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_f4c19
- ret
-
-Unknown_f4c20: ; f4c20 (3d:4c20)
-INCBIN "baserom.gbc",$f4c20,$f4c28 - $f4c20
-
-Unknown_f4c28: ; f4c28 (3d:4c28)
-INCBIN "baserom.gbc",$f4c28,$f4cda - $f4c28
-
-PointerTable_f4cda: ; f4cda (3d:4cda)
- dw Unknown_f4ce4
- dw Unknown_f4cf4
- dw Unknown_f4d04
- dw Unknown_f4d14
- dw Unknown_f4d24
-
-Unknown_f4ce4: ; f4ce4 (3d:4ce4)
-INCBIN "baserom.gbc",$f4ce4,$f4cf4 - $f4ce4
-
-Unknown_f4cf4: ; f4cf4 (3d:4cf4)
-INCBIN "baserom.gbc",$f4cf4,$f4d04 - $f4cf4
-
-Unknown_f4d04: ; f4d04 (3d:4d04)
-INCBIN "baserom.gbc",$f4d04,$f4d14 - $f4d04
-
-Unknown_f4d14: ; f4d14 (3d:4d14)
-INCBIN "baserom.gbc",$f4d14,$f4d24 - $f4d14
-
-Unknown_f4d24: ; f4d24 (3d:4d24)
-INCBIN "baserom.gbc",$f4d24,$f4d34 - $f4d24
-
-PointerTable_f4d34: ; f4d34 (3d:4d34)
- dw Unknown_f4d53
- dw Unknown_f4d4c
- dw Unknown_f4d5a
- dw Unknown_f4d4c
- dw Unknown_f4d64
- dw Unknown_f4d4c
- dw Unknown_f4d6d
- dw Unknown_f4d4c
- dw Unknown_f4d76
- dw Unknown_f4d4c
- dw Unknown_f4d4c
- dw Unknown_f4daa
-
-Unknown_f4d4c: ; f4d4c (3d:4d4c)
-INCBIN "baserom.gbc",$f4d4c,$f4d53 - $f4d4c
-
-Unknown_f4d53: ; f4d53 (3d:4d53)
-INCBIN "baserom.gbc",$f4d53,$f4d5a - $f4d53
-
-Unknown_f4d5a: ; f4d5a (3d:4d5a)
-INCBIN "baserom.gbc",$f4d5a,$f4d64 - $f4d5a
-
-Unknown_f4d64: ; f4d64 (3d:4d64)
-INCBIN "baserom.gbc",$f4d64,$f4d6d - $f4d64
-
-Unknown_f4d6d: ; f4d6d (3d:4d6d)
-INCBIN "baserom.gbc",$f4d6d,$f4d76 - $f4d6d
-
-Unknown_f4d76: ; f4d76 (3d:4d76)
-INCBIN "baserom.gbc",$f4d76,$f4daa - $f4d76
-
-Unknown_f4daa: ; f4daa (3d:4daa)
-INCBIN "baserom.gbc",$f4daa,$f4dde - $f4daa
-
-PointerTable_f4dde: ; f4dde (3d:4dde)
- dw Unknown_f4df4
- dw Unknown_f4df7
- dw Unknown_f4e01
- dw Unknown_f4e0f
- dw Unknown_f4e19
- dw Unknown_f4e27
- dw Unknown_f4e35
- dw Unknown_f4e47
- dw Unknown_f4e5b
- dw Unknown_f4e65
- dw Unknown_f4e73
-
-Unknown_f4df4: ; f4df4 (3d:4df4)
-INCBIN "baserom.gbc",$f4df4,$f4df7 - $f4df4
-
-Unknown_f4df7: ; f4df7 (3d:4df7)
-INCBIN "baserom.gbc",$f4df7,$f4e01 - $f4df7
-
-Unknown_f4e01: ; f4e01 (3d:4e01)
-INCBIN "baserom.gbc",$f4e01,$f4e0f - $f4e01
-
-Unknown_f4e0f: ; f4e0f (3d:4e0f)
-INCBIN "baserom.gbc",$f4e0f,$f4e19 - $f4e0f
-
-Unknown_f4e19: ; f4e19 (3d:4e19)
-INCBIN "baserom.gbc",$f4e19,$f4e27 - $f4e19
-
-Unknown_f4e27: ; f4e27 (3d:4e27)
-INCBIN "baserom.gbc",$f4e27,$f4e35 - $f4e27
-
-Unknown_f4e35: ; f4e35 (3d:4e35)
-INCBIN "baserom.gbc",$f4e35,$f4e47 - $f4e35
-
-Unknown_f4e47: ; f4e47 (3d:4e47)
-INCBIN "baserom.gbc",$f4e47,$f4e5b - $f4e47
-
-Unknown_f4e5b: ; f4e5b (3d:4e5b)
-INCBIN "baserom.gbc",$f4e5b,$f4e65 - $f4e5b
-
-Unknown_f4e65: ; f4e65 (3d:4e65)
-INCBIN "baserom.gbc",$f4e65,$f4e73 - $f4e65
-
-Unknown_f4e73: ; f4e73 (3d:4e73)
-INCBIN "baserom.gbc",$f4e73,$f4e85 - $f4e73
-
-Unknown_f4e85: ; f4e85 (3d:4e85)
-INCBIN "baserom.gbc",$f4e85,$f4ee5 - $f4e85
-
-NumberOfSongs1: ; 4fee5 (3d:4ee5)
- db $1f
-
-SongBanks1: ; f4ee6 (3d:4ee6)
- db BANK(Music_Stop)
- db BANK(Music_TitleScreen)
- db BANK(Music_BattleTheme1)
- db BANK(Music_BattleTheme2)
- db BANK(Music_BattleTheme3)
- db BANK(Music_PauseMenu)
- db BANK(Music_PCMainMenu)
- db BANK(Music_DeckMachine)
- db BANK(Music_CardPop)
- db BANK(Music_Overworld)
- db BANK(Music_PokemonDome)
- db BANK(Music_ChallengeHall)
- db BANK(Music_Club1)
- db BANK(Music_Club2)
- db BANK(Music_Club3)
- db BANK(Music_Ronald)
- db BANK(Music_Imakuni)
- db BANK(Music_HallOfHonor)
- db BANK(Music_Credits)
- db BANK(Music_Unused13)
- db BANK(Music_Unused14)
- db BANK(Music_MatchStart1)
- db BANK(Music_MatchStart2)
- db BANK(Music_MatchStart3)
- db BANK(Music_MatchVictory)
- db BANK(Music_MatchLoss)
- db BANK(Music_DarkDiddly)
- db BANK(Music_Unused1b)
- db BANK(Music_BoosterPack)
- db BANK(Music_Medal)
- db BANK(Music_Unused1e)
-
-SongHeaderPointers1: ; f4f05 (3d:4f05)
- dw Music_Stop
- dw Music_TitleScreen
- dw Music_BattleTheme1
- dw Music_BattleTheme2
- dw Music_BattleTheme3
- dw Music_PauseMenu
- dw $0000
- dw Music_DeckMachine
- dw Music_CardPop
- dw Music_Overworld
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw Music_Unused13
- dw Music_Unused14
- dw Music_MatchStart1
- dw Music_MatchStart2
- dw Music_MatchStart3
- dw Music_MatchVictory
- dw Music_MatchLoss
- dw Music_DarkDiddly
- dw Music_Unused1b
- dw Music_BoosterPack
- dw Music_Medal
- dw Music_Unused1e
-
-Music_Stop: ; f4f43 (3d:4f43)
- db %0000
-
-Music_TitleScreen: ; f4f44 (3d:4f44)
- db %1111
- dw Music_TitleScreen_Ch1
- dw Music_TitleScreen_Ch2
- dw Music_TitleScreen_Ch3
- dw Music_TitleScreen_Ch4
-
-Music_BattleTheme1: ; f4f4d (3d:4f4d)
- db %1111
- dw Music_BattleTheme1_Ch1
- dw Music_BattleTheme1_Ch2
- dw Music_BattleTheme1_Ch3
- dw Music_BattleTheme1_Ch4
-
-Music_BattleTheme2: ; f4f56 (3d:4f56)
- db %1111
- dw Music_BattleTheme2_Ch1
- dw Music_BattleTheme2_Ch2
- dw Music_BattleTheme2_Ch3
- dw Music_BattleTheme2_Ch4
-
-Music_BattleTheme3: ; f4f5f (3d:4f5f)
- db %1111
- dw Music_BattleTheme3_Ch1
- dw Music_BattleTheme3_Ch2
- dw Music_BattleTheme3_Ch3
- dw Music_BattleTheme3_Ch4
-
-Music_PauseMenu: ; f4f68 (3d:4f68)
- db %1111
- dw Music_PauseMenu_Ch1
- dw Music_PauseMenu_Ch2
- dw Music_PauseMenu_Ch3
- dw Music_PauseMenu_Ch4
-
-;Music_PCMainMenu
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-Music_DeckMachine: ; f4f7a (3d:4f7a)
- db %1111
- dw Music_DeckMachine_Ch1
- dw Music_DeckMachine_Ch2
- dw Music_DeckMachine_Ch3
- dw Music_DeckMachine_Ch4
-
-Music_CardPop: ; f4f83 (3d:4f83)
- db %1111
- dw Music_CardPop_Ch1
- dw Music_CardPop_Ch2
- dw Music_CardPop_Ch3
- dw Music_CardPop_Ch4
-
-Music_Overworld: ; f4f8c (3d:4f8c)
- db %1111
- dw Music_Overworld_Ch1
- dw Music_Overworld_Ch2
- dw Music_Overworld_Ch3
- dw Music_Overworld_Ch4
-
-;Music_PokemonDome
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_ChallengeHall
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Club1
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Club2
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Club3
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Ronald
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Imakuni
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_HallOfHonor
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Credits
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-Music_Unused13: ; f4fe6 (3d:4fe6)
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-Music_Unused14: ; f4fef (3d:4fef)
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-Music_MatchStart1: ; f4ff8 (3d:4ff8)
- db %0001
- dw Music_MatchStart1_Ch1
- dw $0000
- dw $0000
- dw $0000
-
-Music_MatchStart2: ; f5001 (3d:5001)
- db %0011
- dw Music_MatchStart2_Ch1
- dw Music_MatchStart2_Ch2
- dw $0000
- dw $0000
-
-Music_MatchStart3: ; f500a (3d:500a)
- db %0011
- dw Music_MatchStart3_Ch1
- dw Music_MatchStart3_Ch2
- dw $0000
- dw $0000
-
-Music_MatchVictory: ; f5013 (3d:5013)
- db %0111
- dw Music_MatchVictory_Ch1
- dw Music_MatchVictory_Ch2
- dw Music_MatchVictory_Ch3
- dw $0000
-
-Music_MatchLoss: ; f501c (3d:501c)
- db %0111
- dw Music_MatchLoss_Ch1
- dw Music_MatchLoss_Ch2
- dw Music_MatchLoss_Ch3
- dw $0000
-
-Music_DarkDiddly: ; f5025 (3d:5025)
- db %0111
- dw Music_DarkDiddly_Ch1
- dw Music_DarkDiddly_Ch2
- dw Music_DarkDiddly_Ch3
- dw $0000
-
-Music_Unused1b: ; f502e (3d:502e)
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-Music_BoosterPack: ; f5037 (3d:5037)
- db %0111
- dw Music_BoosterPack_Ch1
- dw Music_BoosterPack_Ch2
- dw Music_BoosterPack_Ch3
- dw $0000
-
-Music_Medal: ; f5040 (3d:5040)
- db %0111
- dw Music_Medal_Ch1
- dw Music_Medal_Ch2
- dw Music_Medal_Ch3
- dw $0000
-
-Music_Unused1e: ; f5049 (3d:5049)
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
+Func_f4000: ; f4000 (3d:4000)
+ jp Func_f407d
+
+Func_f4003: ; f4003 (3d:4003)
+ jp Func_f40e9
+
+Func_f4006: ; f4006 (3d:4006)
+ jp Func_f4021
+
+Func_f4009: ; f4009 (3d:4009)
+ jp Func_f402d
+
+Func_f400c: ; f400c (3d:400c)
+ jp Func_f404e
+
+Func_f400f: ; f400f (3d:400f)
+ jp Func_f4052
+
+Func_f4012: ; f4012 (3d:4012)
+ jp Func_f405c
+
+Func_f4015: ; f4015 (3d:4015)
+ jp Func_f4066
+
+Func_f4018: ; f4018 (3d:4018)
+ jp Func_f406f
+
+Func_f401b: ; f401b (3d:401b)
+ jp Func_f49c4
+
+Func_f401e: ; f401e (3d:401e)
+ jp Func_f49d0
+
+Func_f4021: ; f4021 (3d:4021)
+ push hl
+ ld hl, NumberOfSongs1
+ cp [hl]
+ jr nc, .asm_f402b
+ ld [$dd80], a
+.asm_f402b
+ pop hl
+ ret
+
+Func_f402d: ; f402d (3d:402d)
+ push bc
+ push hl
+ ld b, $0
+ ld c, a
+ or a
+ jr z, .asm_f4043
+ ld hl, Unknown_f4e85
+ add hl, bc
+ ld b, [hl]
+ ld a, [$dd83]
+ or a
+ jr z, .asm_f4043
+ cp b
+ jr c, .asm_f404b
+.asm_f4043
+ ld a, b
+ ld [$dd83], a
+ ld a, c
+ ld [$dd82], a
+.asm_f404b
+ pop hl
+ pop bc
+ ret
+
+Func_f404e: ; f404e (3d:404e)
+ ld [$ddf0], a
+ ret
+
+Func_f4052: ; f4052 (3d:4052)
+ ld a, [$dd80]
+ cp $80
+ ld a, $1
+ ret nz
+ xor a
+ ret
+
+Func_f405c: ; f405c (3d:405c)
+ ld a, [$dd82]
+ cp $80
+ ld a, $1
+ ret nz
+ xor a
+ ret
+
+Func_f4066: ; f4066 (3d:4066)
+ ld a, [$ddf2]
+ xor $1
+ ld [$ddf2], a
+ ret
+
+Func_f406f: ; f406f (3d:406f)
+ push bc
+ push af
+ and $7
+ ld b, a
+ swap b
+ or b
+ ld [$ddf1], a
+ pop af
+ pop bc
+ ret
+
+Func_f407d: ; f407d (3d:407d)
+ xor a
+ ld [$ff26], a
+ ld a, $80
+ ld [$ff26], a
+ ld a, $77
+ ld [$ff24], a
+ ld a, $ff
+ ld [$ff25], a
+ ld a, $3d
+ ld [$dd81], a
+ ld a, $80
+ ld [$dd80], a
+ ld [$dd82], a
+ ld a, $77
+ ld [$ddf1], a
+ xor a
+ ld [$dd8c], a
+ ld [$de53], a
+ ld [$dd8b], a
+ ld [$ddef], a
+ ld [$ddf0], a
+ ld [$ddf2], a
+ dec a
+ ld [$dd84], a
+ ld de, $0001
+ ld bc, $0000
+.asm_f40bb
+ ld hl, $dd8d
+ add hl, bc
+ ld [hl], d
+ ld hl, $dd91
+ add hl, bc
+ ld [hl], d
+ ld hl, $ddb3
+ add hl, bc
+ ld [hl], d
+ ld hl, $ddcb
+ add hl, bc
+ ld [hl], d
+ ld hl, $ddbf
+ add hl, bc
+ ld [hl], d
+ inc c
+ ld a, c
+ cp $4
+ jr nz, .asm_f40bb
+ ld hl, Unknown_f4c20
+ ld bc, $ddf3
+ ld d, $8
+.asm_f40e2
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ dec d
+ jr nz, .asm_f40e2
+ ret
+
+Func_f40e9: ; f40e9 (3d:40e9)
+ call Func_f42a4
+ call Func_f411c
+ ld hl, $4003
+ call Bankswitch3dTo3f
+ ld a, [$dd81]
+ ld [$ff80], a
+ ld [$2000], a
+ ld a, [$ddf2]
+ cp $0
+ jr z, .asm_f4109
+ call Func_f4980
+ jr .asm_f4115
+.asm_f4109
+ call Func_f42a5
+ call Func_f430a
+ call Func_f436f
+ call Func_f43ce
+.asm_f4115
+ call Func_f4866
+ call Func_f49b1
+ ret
+
+Func_f411c: ; f411c (3d:411c)
+ ld a, [$dd80]
+ rla
+ jr c, .asm_f4133
+ call Func_f414b
+ ld a, [$dd80]
+ call Func_f418c
+ ld a, [$dd80]
+ or $80
+ ld [$dd80], a
+.asm_f4133
+ ld a, [$dd82]
+ rla
+ jr c, .asm_f414a
+ ld a, [$dd82]
+ ld hl, $4000
+ call Bankswitch3dTo3f
+ ld a, [$dd82]
+ or $80
+ ld [$dd82], a
+.asm_f414a
+ ret
+
+Func_f414b: ; f414b (3d:414b)
+ ld a, [$dd8c]
+ ld d, a
+ xor a
+ ld [$dd8d], a
+ bit 0, d
+ jr nz, .asm_f415f
+ ld a, $8
+ ld [$ff12], a
+ swap a
+ ld [$ff14], a
+.asm_f415f
+ xor a
+ ld [$dd8e], a
+ bit 1, d
+ jr nz, .asm_f416f
+ ld a, $8
+ ld [$ff17], a
+ swap a
+ ld [$ff19], a
+.asm_f416f
+ xor a
+ ld [$dd90], a
+ bit 3, d
+ jr nz, .asm_f417f
+ ld a, $8
+ ld [$ff21], a
+ swap a
+ ld [$ff23], a
+.asm_f417f
+ xor a
+ ld [$dd8f], a
+ bit 2, d
+ jr nz, .asm_f418b
+ ld a, $0
+ ld [$ff1c], a
+.asm_f418b
+ ret
+
+Func_f418c: ; f418c (3d:418c)
+ push af
+ ld c, a
+ ld b, $0
+ ld hl, SongBanks1
+ add hl, bc
+ ld a, [hl]
+ ld [$dd81], a
+ ld [$ff80], a
+ ld [$2000], a
+ pop af
+ add a
+ ld c, a
+ ld b, $0
+ ld hl, SongHeaderPointers1
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld h, [hl]
+ ld l, e
+ ld e, [hl]
+ inc hl
+ ld b, h
+ ld c, l
+ rr e
+ jr nc, .asm_f41eb
+ ld a, [bc]
+ inc bc
+ ld [$dd95], a
+ ld [$dd9d], a
+ ld a, [bc]
+ inc bc
+ ld [$dd96], a
+ ld [$dd9e], a
+ ld a, $1
+ ld [$ddbb], a
+ ld [$dd8d], a
+ xor a
+ ld [$dd91], a
+ ld [$ddea], a
+ ld [$ddbf], a
+ ld [$dddf], a
+ ld [$ddcb], a
+ ld a, [Unknown_f4c20]
+ ld [$ddf3], a
+ ld a, [Unknown_f4c20 + 1]
+ ld [$ddf4], a
+ ld a, $8
+ ld [$ddc7], a
+.asm_f41eb
+ rr e
+ jr nc, .asm_f4228
+ ld a, [bc]
+ inc bc
+ ld [$dd97], a
+ ld [$dd9f], a
+ ld a, [bc]
+ inc bc
+ ld [$dd98], a
+ ld [$dda0], a
+ ld a, $1
+ ld [$ddbc], a
+ ld [$dd8e], a
+ xor a
+ ld [$dd92], a
+ ld [$ddeb], a
+ ld [$ddc0], a
+ ld [$dde0], a
+ ld [$ddcc], a
+ ld a, [Unknown_f4c20 + 2]
+ ld [$ddf5], a
+ ld a, [Unknown_f4c20 + 3]
+ ld [$ddf6], a
+ ld a, $8
+ ld [$ddc8], a
+.asm_f4228
+ rr e
+ jr nc, .asm_f4265
+ ld a, [bc]
+ inc bc
+ ld [$dd99], a
+ ld [$dda1], a
+ ld a, [bc]
+ inc bc
+ ld [$dd9a], a
+ ld [$dda2], a
+ ld a, $1
+ ld [$ddbd], a
+ ld [$dd8f], a
+ xor a
+ ld [$dd93], a
+ ld [$ddec], a
+ ld [$ddc1], a
+ ld [$dde1], a
+ ld [$ddcd], a
+ ld a, [Unknown_f4c20 + 4]
+ ld [$ddf7], a
+ ld a, [Unknown_f4c20 + 5]
+ ld [$ddf8], a
+ ld a, $40
+ ld [$ddc9], a
+.asm_f4265
+ rr e
+ jr nc, .asm_f429f
+ ld a, [bc]
+ inc bc
+ ld [$dd9b], a
+ ld [$dda3], a
+ ld a, [bc]
+ inc bc
+ ld [$dd9c], a
+ ld [$dda4], a
+ ld a, $1
+ ld [$ddbe], a
+ ld [$dd90], a
+ xor a
+ ld [$dd94], a
+ ld [$ddc2], a
+ ld [$dde2], a
+ ld [$ddce], a
+ ld a, [Unknown_f4c20 + 6]
+ ld [$ddf9], a
+ ld a, [Unknown_f4c20 + 7]
+ ld [$ddfa], a
+ ld a, $40
+ ld [$ddca], a
+.asm_f429f
+ xor a
+ ld [$ddf2], a
+ ret
+
+Func_f42a4: ; f42a4 (3d:42a4)
+ ret
+
+Func_f42a5: ; f42a5 (3d:42a5)
+ ld a, [$dd8d]
+ or a
+ jr z, .asm_f42fa
+ ld a, [$ddb7]
+ cp $0
+ jr z, .asm_f42d4
+ ld a, [$ddc3]
+ dec a
+ ld [$ddc3], a
+ jr nz, .asm_f42d4
+ ld a, [$ddbb]
+ cp $1
+ jr z, .asm_f42d4
+ ld a, [$dd8c]
+ bit 0, a
+ jr nz, .asm_f42d4
+ ld hl, $ff12
+ ld a, [$ddc7]
+ ld [hli], a
+ inc hl
+ ld a, $80
+ ld [hl], a
+.asm_f42d4
+ ld a, [$ddbb]
+ dec a
+ ld [$ddbb], a
+ jr nz, .asm_f42f4
+ ld a, [$dd96]
+ ld h, a
+ ld a, [$dd95]
+ ld l, a
+ ld bc, $0000
+ call Func_f4414
+ ld a, [$dd8d]
+ or a
+ jr z, .asm_f42fa
+ call Func_f4714
+.asm_f42f4
+ ld a, $0
+ call Func_f485a
+ ret
+.asm_f42fa
+ ld a, [$dd8c]
+ bit 0, a
+ jr nz, .asm_f4309
+ ld a, $8
+ ld [$ff12], a
+ swap a
+ ld [$ff14], a
+.asm_f4309
+ ret
+
+Func_f430a: ; f430a (3d:430a)
+ ld a, [$dd8e]
+ or a
+ jr z, .asm_f435f
+ ld a, [$ddb8]
+ cp $0
+ jr z, .asm_f4339
+ ld a, [$ddc4]
+ dec a
+ ld [$ddc4], a
+ jr nz, .asm_f4339
+ ld a, [$ddbc]
+ cp $1
+ jr z, .asm_f4339
+ ld a, [$dd8c]
+ bit 1, a
+ jr nz, .asm_f4339
+ ld hl, $ff17
+ ld a, [$ddc8]
+ ld [hli], a
+ inc hl
+ ld a, $80
+ ld [hl], a
+.asm_f4339
+ ld a, [$ddbc]
+ dec a
+ ld [$ddbc], a
+ jr nz, .asm_f4359
+ ld a, [$dd98]
+ ld h, a
+ ld a, [$dd97]
+ ld l, a
+ ld bc, $0001
+ call Func_f4414
+ ld a, [$dd8e]
+ or a
+ jr z, .asm_f435f
+ call Func_f475a
+.asm_f4359
+ ld a, $1
+ call Func_f485a
+ ret
+.asm_f435f
+ ld a, [$dd8c]
+ bit 1, a
+ jr nz, .asm_f436e
+ ld a, $8
+ ld [$ff17], a
+ swap a
+ ld [$ff19], a
+.asm_f436e
+ ret
+
+Func_f436f: ; f436f (3d:436f)
+ ld a, [$dd8f]
+ or a
+ jr z, .asm_f43be
+ ld a, [$ddb9]
+ cp $0
+ jr z, .asm_f4398
+ ld a, [$ddc5]
+ dec a
+ ld [$ddc5], a
+ jr nz, .asm_f4398
+ ld a, [$dd8c]
+ bit 2, a
+ jr nz, .asm_f4398
+ ld a, [$ddbd]
+ cp $1
+ jr z, .asm_f4398
+ ld a, [$ddc9]
+ ld [$ff1c], a
+.asm_f4398
+ ld a, [$ddbd]
+ dec a
+ ld [$ddbd], a
+ jr nz, .asm_f43b8
+ ld a, [$dd9a]
+ ld h, a
+ ld a, [$dd99]
+ ld l, a
+ ld bc, $0002
+ call Func_f4414
+ ld a, [$dd8f]
+ or a
+ jr z, .asm_f43be
+ call Func_f479c
+.asm_f43b8
+ ld a, $2
+ call Func_f485a
+ ret
+.asm_f43be
+ ld a, [$dd8c]
+ bit 2, a
+ jr nz, .asm_f43cd
+ ld a, $0
+ ld [$ff1c], a
+ ld a, $80
+ ld [$ff1e], a
+.asm_f43cd
+ ret
+
+Func_f43ce: ; f43ce (3d:43ce)
+ ld a, [$dd90]
+ or a
+ jr z, .asm_f4400
+ ld a, [$ddbe]
+ dec a
+ ld [$ddbe], a
+ jr nz, .asm_f43f6
+ ld a, [$dd9c]
+ ld h, a
+ ld a, [$dd9b]
+ ld l, a
+ ld bc, $0003
+ call Func_f4414
+ ld a, [$dd90]
+ or a
+ jr z, .asm_f4400
+ call Func_f480a
+ jr .asm_f4413
+.asm_f43f6
+ ld a, [$ddef]
+ or a
+ jr z, .asm_f4413
+ call Func_f4839
+ ret
+.asm_f4400
+ ld a, [$dd8c]
+ bit 3, a
+ jr nz, .asm_f4413
+ xor a
+ ld [$ddef], a
+ ld a, $8
+ ld [$ff21], a
+ swap a
+ ld [$ff23], a
+.asm_f4413
+ ret
+
+Func_f4414: ; f4414 (3d:4414)
+ ld a, [hli]
+ push hl
+ push af
+ cp $d0
+ jr c, .asm_f448c
+ sub $d0
+ add a
+ ld e, a
+ ld d, $0
+ ld hl, .data_f442c
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld h, d
+ ld l, e
+ pop af
+ jp [hl]
+
+.data_f442c
+ dw Func_f4598
+ dw Func_f45a3
+ dw Func_f45a3
+ dw Func_f45a3
+ dw Func_f45a3
+ dw Func_f45a3
+ dw Func_f45a3
+ dw Func_f45bb
+ dw Func_f45c3
+ dw Func_f45cb
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f45d4
+ dw Func_f45ef
+ dw Func_f45fd
+ dw Func_f4609
+ dw Func_f461e
+ dw Func_f4638
+ dw Func_f463f
+ dw Func_f4656
+ dw Func_f4667
+ dw Func_f4674
+ dw Func_f4683
+ dw Func_f4690
+ dw Func_f46a0
+ dw Func_f46ad
+ dw Func_f46ba
+ dw Func_f46cc
+ dw Func_f46d9
+ dw Func_f46e6
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+ dw Func_f46f4
+
+.asm_f448c
+ push af
+ ld a, [hl]
+ ld e, a
+ ld hl, $dd91
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f44b0
+ ld [hl], $1
+ xor a
+ ld hl, $dddb
+ add hl, bc
+ ld [hl], a
+ ld hl, $dde3
+ add hl, bc
+ ld [hl], a
+ inc [hl]
+ ld hl, $ddd7
+ add hl, bc
+ ld a, [hl]
+ ld hl, $ddd3
+ add hl, bc
+ ld [hl], a
+.asm_f44b0
+ pop af
+ push de
+ ld hl, $ddcf
+ add hl, bc
+ ld d, [hl]
+ and $f
+ inc a
+ cp d
+ jr nc, .asm_f44c0
+ ld e, a
+ ld a, d
+ ld d, e
+.asm_f44c0
+ ld e, a
+.asm_f44c1
+ dec d
+ jr z, .asm_f44c7
+ add e
+ jr .asm_f44c1
+.asm_f44c7
+ ld hl, $ddbb
+ add hl, bc
+ ld [hl], a
+ pop de
+ ld d, a
+ ld a, e
+ cp $d9
+ ld a, d
+ jr z, .asm_f44fb
+ ld e, a
+ ld hl, $ddbf
+ add hl, bc
+ ld a, [hl]
+ cp $8
+ ld d, a
+ ld a, e
+ jr z, .asm_f44fb
+ push hl
+ push bc
+ ld b, $0
+ ld c, a
+ ld hl, $0000
+.asm_f44e8
+ add hl, bc
+ dec d
+ jr nz, .asm_f44e8
+ srl h
+ rr l
+ srl h
+ rr l
+ srl h
+ rr l
+ ld a, l
+ pop bc
+ pop hl
+.asm_f44fb
+ ld hl, $ddc3
+ add hl, bc
+ ld [hl], a
+ pop af
+ and $f0
+ ld hl, $ddb7
+ add hl, bc
+ ld [hl], a
+ or a
+ jr nz, .asm_f450e
+ jp .asm_f458e
+.asm_f450e
+ swap a
+ dec a
+ ld h, a
+ ld a, $3
+ cp c
+ ld a, h
+ jr z, .asm_f451a
+ jr .asm_f4564
+.asm_f451a
+ push af
+ ld hl, $ddaf
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ sla a
+ add d
+ sla a
+ sla a
+ sla a
+ ld e, a
+ pop af
+ ld hl, PointerTable_f4d34
+ add a
+ ld d, c
+ ld c, a
+ add hl, bc
+ ld c, e
+ add hl, bc
+ ld c, d
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+ ld d, a
+ ld a, [$dd84]
+ and $77
+ or d
+ ld [$dd84], a
+ ld de, $ddab
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld b, [hl]
+ inc hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ ld b, $0
+ ld a, l
+ ld d, h
+ ld hl, $dded
+ ld [hli], a
+ ld [hl], d
+ ld a, $1
+ ld [$ddef], a
+ jr .asm_f458e
+.asm_f4564
+ ld hl, $dda5
+ add hl, bc
+ add hl, bc
+ push hl
+ ld hl, $ddaf
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, Unknown_f4c28
+ add hl, de
+ add a
+ ld e, [hl]
+ add e
+ ld hl, $ddcb
+ add hl, bc
+ ld e, [hl]
+ add e
+ add e
+ ld e, a
+ ld hl, $4c30
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ call Func_f4967
+ pop hl
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+.asm_f458e
+ pop de
+ ld hl, $dd95
+ add hl, bc
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+Func_f4598: ; f4598 (3d:4598)
+ pop hl
+ ld a, [hli]
+ push hl
+ ld hl, $ddcf
+ add hl, bc
+ ld [hl], a
+ jp Func_f4710
+
+Func_f45a3: ; f45a3 (3d:45a3)
+ and $7
+ dec a
+ ld hl, $ddaf
+ add hl, bc
+ push af
+ ld a, c
+ cp $2
+ jr nz, .asm_f45b6
+ pop af
+ inc a
+ ld [hl], a
+ jp Func_f4710
+.asm_f45b6
+ pop af
+ ld [hl], a
+ jp Func_f4710
+
+Func_f45bb: ; f45bb (3d:45bb)
+ ld hl, $ddaf
+ add hl, bc
+ inc [hl]
+ jp Func_f4710
+
+Func_f45c3: ; f45c3 (3d:45c3)
+ ld hl, $ddaf
+ add hl, bc
+ dec [hl]
+ jp Func_f4710
+
+Func_f45cb: ; f45cb (3d:45cb)
+ ld hl, $dd91
+ add hl, bc
+ ld [hl], $80
+ jp Func_f4710
+
+Func_f45d4: ; f45d4 (3d:45d4)
+ pop hl
+ ld a, [hli]
+ push hl
+ push bc
+ inc c
+ ld e, $ee
+.asm_f45db
+ dec c
+ jr z, .asm_f45e3
+ rlca
+ rlc e
+ jr .asm_f45db
+.asm_f45e3
+ ld d, a
+ ld hl, $dd84
+ ld a, [hl]
+ and e
+ or d
+ ld [hl], a
+ pop bc
+ jp Func_f4710
+
+Func_f45ef: ; f45ef (3d:45ef)
+ pop de
+ push de
+ dec de
+ ld hl, $dd9d
+ add hl, bc
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ jp Func_f4710
+
+Func_f45fd: ; f45fd (3d:45fd)
+ pop hl
+ ld hl, $dd9d
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp Func_f4414
+
+Func_f4609: ; f4609 (3d:4609)
+ pop de
+ ld a, [de]
+ inc de
+ push af
+ call Func_f46fc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ pop af
+ ld [hl], a
+ inc hl
+ push de
+ call Func_f4705
+ jp Func_f4710
+
+Func_f461e: ; f461e (3d:461e)
+ call Func_f46fc
+ dec hl
+ ld a, [hl]
+ dec a
+ jr z, .asm_f4630
+ ld [hld], a
+ ld d, [hl]
+ dec hl
+ ld e, [hl]
+ pop hl
+ ld h, d
+ ld l, e
+ jp Func_f4414
+.asm_f4630
+ dec hl
+ dec hl
+ call Func_f4705
+ jp Func_f4710
+
+Func_f4638: ; f4638 (3d:4638)
+ pop hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp Func_f4414
+
+Func_f463f: ; f463f (3d:463f)
+ call Func_f46fc
+ pop de
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, [de]
+ ld b, a
+ inc de
+ ld a, [de]
+ ld d, a
+ ld e, b
+ ld b, $0
+ push de
+ call Func_f4705
+ jp Func_f4710
+
+Func_f4656: ; f4656 (3d:4656)
+ pop de
+ call Func_f46fc
+ dec hl
+ ld a, [hld]
+ ld e, [hl]
+ ld d, a
+ inc de
+ inc de
+ push de
+ call Func_f4705
+ jp Func_f4710
+
+Func_f4667: ; f4667 (3d:4667)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddea
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f4674: ; f4674 (3d:4674)
+ pop de
+ ld a, [de]
+ and $c0
+ inc de
+ ld hl, $dd86
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f4683: ; f4683 (3d:4683)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $dde7
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f4690: ; f4690 (3d:4690)
+ pop de
+ ld a, [de]
+ inc de
+ ld [$dd8a], a
+ ld a, $1
+ ld [$dd8b], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f46a0: ; f46a0 (3d:46a0)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddbf
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f46ad: ; f46ad (3d:46ad)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddc7
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f46ba: ; f46ba (3d:46ba)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddd3
+ add hl, bc
+ ld [hl], a
+ ld hl, $ddd7
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f46cc: ; f46cc (3d:46cc)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $dddf
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f46d9: ; f46d9 (3d:46d9)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddcb
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f46e6: ; f46e6 (3d:46e6)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddcb
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f4414
+
+Func_f46f4: ; f46f4 (3d:46f4)
+ ld hl, $dd8d
+ add hl, bc
+ ld [hl], $0
+ pop hl
+ ret
+
+Func_f46fc: ; f46fc (3d:46fc)
+ ld hl, $ddf3
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+
+Func_f4705: ; f4705 (3d:4705)
+ ld d, h
+ ld e, l
+ ld hl, $ddf3
+ add hl, bc
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+Func_f4710: ; f4710 (3d:4710)
+ pop hl
+ jp Func_f4414
+
+Func_f4714: ; f4714 (3d:4714)
+ ld a, [$dd8c]
+ bit 0, a
+ jr nz, .asm_f4749
+ ld a, [$ddb7]
+ cp $0
+ jr z, .asm_f474a
+ ld d, $0
+ ld hl, $dd91
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f4733
+ ld a, [$dde7]
+ ld [$ff12], a
+ ld d, $80
+.asm_f4733
+ ld [hl], $2
+ ld a, $8
+ ld [$ff10], a
+ ld a, [$dd86]
+ ld [$ff11], a
+ ld a, [$dda5]
+ ld [$ff13], a
+ ld a, [$dda6]
+ or d
+ ld [$ff14], a
+.asm_f4749
+ ret
+.asm_f474a
+ ld hl, $dd91
+ ld [hl], $0
+ ld hl, $ff12
+ ld a, $8
+ ld [hli], a
+ inc hl
+ swap a
+ ld [hl], a
+ ret
+
+Func_f475a: ; f475a (3d:475a)
+ ld a, [$dd8c]
+ bit 1, a
+ jr nz, .asm_f478b
+ ld a, [$ddb8]
+ cp $0
+ jr z, .asm_f478c
+ ld d, $0
+ ld hl, $dd92
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f4779
+ ld a, [$dde8]
+ ld [$ff17], a
+ ld d, $80
+.asm_f4779
+ ld [hl], $2
+ ld a, [$dd87]
+ ld [$ff16], a
+ ld a, [$dda7]
+ ld [$ff18], a
+ ld a, [$dda8]
+ or d
+ ld [$ff19], a
+.asm_f478b
+ ret
+.asm_f478c
+ ld hl, $dd92
+ ld [hl], $0
+ ld hl, $ff17
+ ld a, $8
+ ld [hli], a
+ inc hl
+ swap a
+ ld [hl], a
+ ret
+
+Func_f479c: ; f479c (3d:479c)
+ ld a, [$dd8c]
+ bit 2, a
+ jr nz, .asm_f47e0
+ ld d, $0
+ ld a, [$dd8b]
+ or a
+ jr z, .asm_f47b3
+ xor a
+ ld [$ff1a], a
+ call Func_f47ea
+ ld d, $80
+.asm_f47b3
+ ld a, [$ddb9]
+ cp $0
+ jr z, .asm_f47e1
+ ld hl, $dd93
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f47cc
+ ld a, [$dde9]
+ ld [$ff1c], a
+ xor a
+ ld [$ff1a], a
+ ld d, $80
+.asm_f47cc
+ ld [hl], $2
+ xor a
+ ld [$ff1b], a
+ ld a, [$dda9]
+ ld [$ff1d], a
+ ld a, $80
+ ld [$ff1a], a
+ ld a, [$ddaa]
+ or d
+ ld [$ff1e], a
+.asm_f47e0
+ ret
+.asm_f47e1
+ ld hl, $dd91
+ ld [hl], $0
+ xor a
+ ld [$ff1a], a
+ ret
+
+Func_f47ea: ; f479c (3d:47ea)
+ ld a, [$dd8a]
+ add a
+ ld d, $0
+ ld e, a
+ ld hl, PointerTable_f4cda
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld b, d
+ ld de, $ff30
+.asm_f47fc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ inc b
+ ld a, b
+ cp $10
+ jr nz, .asm_f47fc
+ xor a
+ ld [$dd8b], a
+ ret
+
+Func_f480a: ; f480a (3d:480a)
+ ld a, [$dd8c]
+ bit 3, a
+ jr nz, .asm_f4829
+ ld a, [$ddba]
+ cp $0
+ jr z, asm_f482a
+ ld de, $ff20
+ ld hl, $ddab
+ ld a, [hli]
+ ld [de], a
+ inc e
+ ld a, [hli]
+ ld [de], a
+ inc e
+ ld a, [hli]
+ ld [de], a
+ inc e
+ ld a, [hli]
+ ld [de], a
+.asm_f4829
+ ret
+asm_f482a
+ xor a
+ ld [$ddef], a
+ ld hl, $ff21
+ ld a, $8
+ ld [hli], a
+ inc hl
+ swap a
+ ld [hl], a
+ ret
+
+Func_f4839: ; f4839 (3d:4839)
+ ld a, [$dd8c]
+ bit 3, a
+ jr z, .asm_f4846
+ xor a
+ ld [$ddef], a
+ jr .asm_f4859
+.asm_f4846
+ ld hl, $dded
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ld a, [de]
+ cp $ff
+ jr nz, .asm_f4853
+ jr asm_f482a
+.asm_f4853
+ ld [$ff22], a
+ inc de
+ ld a, d
+ ld [hld], a
+ ld [hl], e
+.asm_f4859
+ ret
+
+Func_f485a: ; f485a (3d:485a)
+ push af
+ ld b, $0
+ ld c, a
+ call Func_f4898
+ pop af
+ call Func_f490b
+ ret
+
+Func_f4866: ; f4866 (3d:4866)
+ ld a, [$ddf1]
+ ld [$ff24], a
+ ld a, [$dd8c]
+ or a
+ ld hl, $dd84
+ ld a, [hli]
+ jr z, .asm_f4888
+ ld a, [$dd8c]
+ and $f
+ ld d, a
+ swap d
+ or d
+ ld d, a
+ xor $ff
+ ld e, a
+ ld a, [hld]
+ and d
+ ld d, a
+ ld a, [hl]
+ and e
+ or d
+.asm_f4888
+ ld d, a
+ ld a, [$ddf0]
+ xor $ff
+ and $f
+ ld e, a
+ swap e
+ or e
+ and d
+ ld [$ff25], a
+ ret
+
+Func_f4898: ; f4898 (3d:4898)
+ ld hl, $dddf
+ add hl, bc
+ ld a, [hl]
+ cp $0
+ jr z, .asm_f4902
+ ld hl, $dde3
+ add hl, bc
+ cp [hl]
+ jr z, .asm_f48ab
+ inc [hl]
+ jr .asm_f4902
+.asm_f48ab
+ ld hl, $ddd3
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, PointerTable_f4dde
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ ld hl, $dddb
+ add hl, bc
+ ld d, $0
+ ld e, [hl]
+ inc [hl]
+ pop hl
+ add hl, de
+ ld a, [hli]
+ cp $80
+ jr z, .asm_f48ee
+ ld hl, $dda5
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ bit 7, a
+ jr nz, .asm_f48df
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ and $7
+ ld d, a
+ ret
+.asm_f48df
+ xor $ff
+ inc a
+ push bc
+ ld c, a
+ ld a, e
+ sub c
+ ld e, a
+ ld a, d
+ sbc b
+ and $7
+ ld d, a
+ pop bc
+ ret
+.asm_f48ee
+ push hl
+ ld hl, $dddb
+ add hl, bc
+ ld [hl], $0
+ pop hl
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f48ab
+ ld hl, $ddd3
+ add hl, bc
+ ld [hl], a
+ jr .asm_f48ab
+.asm_f4902
+ ld hl, $dda5
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ret
+
+Func_f490b: ; f490b (3d:490b)
+ cp $0
+ jr nz, .asm_f492c
+ ld a, [$dddf]
+ cp $0
+ jr z, .asm_f4966
+ ld a, [$dd8c]
+ bit 0, a
+ jr nz, .asm_f4966
+ ld a, e
+ ld [$ff13], a
+ ld a, [$ff11]
+ and $c0
+ ld [$ff11], a
+ ld a, d
+ and $3f
+ ld [$ff14], a
+ ret
+.asm_f492c
+ cp $1
+ jr nz, .asm_f494b
+ ld a, [$dde0]
+ cp $0
+ jr z, .asm_f4966
+ ld a, [$dd8c]
+ bit 1, a
+ jr nz, .asm_f4966
+ ld a, e
+ ld [$ff18], a
+ ld a, [$ff16]
+ and $c0
+ ld [$ff16], a
+ ld a, d
+ ld [$ff19], a
+ ret
+.asm_f494b
+ cp $2
+ jr nz, .asm_f4966
+ ld a, [$dde1]
+ cp $0
+ jr z, .asm_f4966
+ ld a, [$dd8c]
+ bit 2, a
+ jr nz, .asm_f4966
+ ld a, e
+ ld [$ff1d], a
+ xor a
+ ld [$ff1b], a
+ ld a, d
+ ld [$ff1e], a
+.asm_f4966
+ ret
+
+Func_f4967: ; f4967 (3d:4967)
+ ld hl, $ddea
+ add hl, bc
+ ld a, [hl]
+ bit 7, a
+ jr nz, .asm_f4976
+ add e
+ ld e, a
+ ld a, d
+ adc b
+ ld d, a
+ ret
+.asm_f4976
+ xor $ff
+ ld h, a
+ ld a, e
+ sub h
+ ld e, a
+ ld a, d
+ sbc b
+ ld d, a
+ ret
+
+Func_f4980: ; f4980 (3d:4980)
+ ld a, [$dd8c]
+ ld d, a
+ bit 0, d
+ jr nz, .asm_f4990
+ ld a, $8
+ ld [$ff12], a
+ swap a
+ ld [$ff14], a
+.asm_f4990
+ bit 1, d
+ jr nz, .asm_f499c
+ swap a
+ ld [$ff17], a
+ swap a
+ ld [$ff19], a
+.asm_f499c
+ bit 3, d
+ jr nz, .asm_f49a8
+ swap a
+ ld [$ff21], a
+ swap a
+ ld [$ff23], a
+.asm_f49a8
+ bit 2, d
+ jr nz, .asm_f49b0
+ ld a, $0
+ ld [$ff1c], a
+.asm_f49b0
+ ret
+
+Func_f49b1: ; f49b1 (3d:49b1)
+ ld hl, $dd8d
+ xor a
+ add [hl]
+ inc hl
+ add [hl]
+ inc hl
+ add [hl]
+ inc hl
+ add [hl]
+ or a
+ ret nz
+ ld a, $80
+ ld [$dd80], a
+ ret
+
+Func_f49c4: ; f49c4 (3d:49c4)
+ di
+ call Func_f4980
+ call Func_f49dc
+ call Func_f414b
+ ei
+ ret
+
+Func_f49d0: ; f49d0 (3d:49d0)
+ di
+ call Func_f4980
+ call Func_f414b
+ call Func_f4b01
+ ei
+ ret
+
+Func_f49dc: ; f49dc (3d:49dc)
+ ld a, [$dd80]
+ ld [$de55], a
+ ld a, [$dd81]
+ ld [$de56], a
+ ld a, [$dd84]
+ ld [$de57], a
+ ld hl, $dd86
+ ld de, $de58
+ ld a, $4
+ call Func_f4c18
+ ld a, [$dd8a]
+ ld [$de5c], a
+ ld a, [$dd8b]
+ ld [$de5d], a
+ ld hl, $dd8d
+ ld de, $de5e
+ ld a, $4
+ call Func_f4c18
+ ld hl, $dd91
+ ld de, $de62
+ ld a, $4
+ call Func_f4c18
+ ld hl, $dd95
+ ld de, $de66
+ ld a, $8
+ call Func_f4c18
+ ld hl, $dd9d
+ ld de, $de6e
+ ld a, $8
+ call Func_f4c18
+ ld a, [$ddab]
+ ld [$de76], a
+ ld a, [$ddac]
+ ld [$de77], a
+ ld hl, $ddaf
+ ld de, $de78
+ ld a, $4
+ call Func_f4c18
+ ld hl, $ddb3
+ ld de, $de7c
+ ld a, $4
+ call Func_f4c18
+ ld hl, $ddb7
+ ld de, $de80
+ ld a, $4
+ call Func_f4c18
+ ld hl, $ddbb
+ ld de, $de84
+ ld a, $4
+ call Func_f4c18
+ ld hl, $ddbf
+ ld de, $de88
+ ld a, $4
+ call Func_f4c18
+ ld hl, $ddc3
+ ld de, $de8c
+ ld a, $4
+ call Func_f4c18
+ ld hl, $ddc7
+ ld de, $de90
+ ld a, $4
+ call Func_f4c18
+ ld hl, $ddcb
+ ld de, $de94
+ ld a, $4
+ call Func_f4c18
+ ld hl, $ddcf
+ ld de, $de98
+ ld a, $4
+ call Func_f4c18
+ ld hl, $ddd7
+ ld de, $de9c
+ ld a, $4
+ call Func_f4c18
+ ld hl, $dddf
+ ld de, $dea0
+ ld a, $4
+ call Func_f4c18
+ ld a, $0
+ ld [$dddb], a
+ ld [$dddc], a
+ ld [$dddd], a
+ ld [$ddde], a
+ ld hl, $dde7
+ ld de, $dea4
+ ld a, $3
+ call Func_f4c18
+ ld hl, $ddea
+ ld de, $dea7
+ ld a, $3
+ call Func_f4c18
+ ld hl, $dded
+ ld de, $deaa
+ ld a, $2
+ call Func_f4c18
+ ld a, $0
+ ld [$deac], a
+ ld hl, $ddf3
+ ld de, $dead
+ ld a, $8
+ call Func_f4c18
+ ld hl, $ddfb
+ ld de, $deb5
+ ld a, $30
+ call Func_f4c18
+ ret
+
+Func_f4b01: ; f4b01 (3d:4b01)
+ ld a, [$de55]
+ ld [$dd80], a
+ ld a, [$de56]
+ ld [$dd81], a
+ ld a, [$de57]
+ ld [$dd84], a
+ ld hl, $de58
+ ld de, $dd86
+ ld a, $4
+ call Func_f4c18
+ ld a, [$de5c]
+ ld [$dd8a], a
+ ld a, $1
+ ld [$dd8b], a
+ ld hl, $de5e
+ ld de, $dd8d
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de62
+ ld de, $dd91
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de66
+ ld de, $dd95
+ ld a, $8
+ call Func_f4c18
+ ld hl, $de6e
+ ld de, $dd9d
+ ld a, $8
+ call Func_f4c18
+ ld a, [$de76]
+ ld [$ddab], a
+ ld a, [$de77]
+ ld [$ddac], a
+ ld hl, $de78
+ ld de, $ddaf
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de7c
+ ld de, $ddb3
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de80
+ ld de, $ddb7
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de84
+ ld de, $ddbb
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de88
+ ld de, $ddbf
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de8c
+ ld de, $ddc3
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de90
+ ld de, $ddc7
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de94
+ ld de, $ddcb
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de98
+ ld de, $ddcf
+ ld a, $4
+ call Func_f4c18
+ ld hl, $de9c
+ ld de, $ddd7
+ ld a, $4
+ call Func_f4c18
+ ld hl, $dea0
+ ld de, $dddf
+ ld a, $4
+ call Func_f4c18
+ ld hl, $dea4
+ ld de, $dde7
+ ld a, $3
+ call Func_f4c18
+ ld hl, $dea7
+ ld de, $ddea
+ ld a, $3
+ call Func_f4c18
+ ld hl, $deaa
+ ld de, $dded
+ ld a, $2
+ call Func_f4c18
+ ld a, [$deac]
+ ld [$ddef], a
+ ld hl, $dead
+ ld de, $ddf3
+ ld a, $8
+ call Func_f4c18
+ ld hl, $deb5
+ ld de, $ddfb
+ ld a, $30
+ call Func_f4c18
+ ret
+
+; copies a bytes from hl to de
+Func_f4c18: ; f4c18 (3d:4c18)
+ ld c, a
+.asm_f4c19
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_f4c19
+ ret
+
+Unknown_f4c20: ; f4c20 (3d:4c20)
+INCBIN "baserom.gbc",$f4c20,$f4c28 - $f4c20
+
+Unknown_f4c28: ; f4c28 (3d:4c28)
+INCBIN "baserom.gbc",$f4c28,$f4cda - $f4c28
+
+PointerTable_f4cda: ; f4cda (3d:4cda)
+ dw Unknown_f4ce4
+ dw Unknown_f4cf4
+ dw Unknown_f4d04
+ dw Unknown_f4d14
+ dw Unknown_f4d24
+
+Unknown_f4ce4: ; f4ce4 (3d:4ce4)
+INCBIN "baserom.gbc",$f4ce4,$f4cf4 - $f4ce4
+
+Unknown_f4cf4: ; f4cf4 (3d:4cf4)
+INCBIN "baserom.gbc",$f4cf4,$f4d04 - $f4cf4
+
+Unknown_f4d04: ; f4d04 (3d:4d04)
+INCBIN "baserom.gbc",$f4d04,$f4d14 - $f4d04
+
+Unknown_f4d14: ; f4d14 (3d:4d14)
+INCBIN "baserom.gbc",$f4d14,$f4d24 - $f4d14
+
+Unknown_f4d24: ; f4d24 (3d:4d24)
+INCBIN "baserom.gbc",$f4d24,$f4d34 - $f4d24
+
+PointerTable_f4d34: ; f4d34 (3d:4d34)
+ dw Unknown_f4d53
+ dw Unknown_f4d4c
+ dw Unknown_f4d5a
+ dw Unknown_f4d4c
+ dw Unknown_f4d64
+ dw Unknown_f4d4c
+ dw Unknown_f4d6d
+ dw Unknown_f4d4c
+ dw Unknown_f4d76
+ dw Unknown_f4d4c
+ dw Unknown_f4d4c
+ dw Unknown_f4daa
+
+Unknown_f4d4c: ; f4d4c (3d:4d4c)
+INCBIN "baserom.gbc",$f4d4c,$f4d53 - $f4d4c
+
+Unknown_f4d53: ; f4d53 (3d:4d53)
+INCBIN "baserom.gbc",$f4d53,$f4d5a - $f4d53
+
+Unknown_f4d5a: ; f4d5a (3d:4d5a)
+INCBIN "baserom.gbc",$f4d5a,$f4d64 - $f4d5a
+
+Unknown_f4d64: ; f4d64 (3d:4d64)
+INCBIN "baserom.gbc",$f4d64,$f4d6d - $f4d64
+
+Unknown_f4d6d: ; f4d6d (3d:4d6d)
+INCBIN "baserom.gbc",$f4d6d,$f4d76 - $f4d6d
+
+Unknown_f4d76: ; f4d76 (3d:4d76)
+INCBIN "baserom.gbc",$f4d76,$f4daa - $f4d76
+
+Unknown_f4daa: ; f4daa (3d:4daa)
+INCBIN "baserom.gbc",$f4daa,$f4dde - $f4daa
+
+PointerTable_f4dde: ; f4dde (3d:4dde)
+ dw Unknown_f4df4
+ dw Unknown_f4df7
+ dw Unknown_f4e01
+ dw Unknown_f4e0f
+ dw Unknown_f4e19
+ dw Unknown_f4e27
+ dw Unknown_f4e35
+ dw Unknown_f4e47
+ dw Unknown_f4e5b
+ dw Unknown_f4e65
+ dw Unknown_f4e73
+
+Unknown_f4df4: ; f4df4 (3d:4df4)
+INCBIN "baserom.gbc",$f4df4,$f4df7 - $f4df4
+
+Unknown_f4df7: ; f4df7 (3d:4df7)
+INCBIN "baserom.gbc",$f4df7,$f4e01 - $f4df7
+
+Unknown_f4e01: ; f4e01 (3d:4e01)
+INCBIN "baserom.gbc",$f4e01,$f4e0f - $f4e01
+
+Unknown_f4e0f: ; f4e0f (3d:4e0f)
+INCBIN "baserom.gbc",$f4e0f,$f4e19 - $f4e0f
+
+Unknown_f4e19: ; f4e19 (3d:4e19)
+INCBIN "baserom.gbc",$f4e19,$f4e27 - $f4e19
+
+Unknown_f4e27: ; f4e27 (3d:4e27)
+INCBIN "baserom.gbc",$f4e27,$f4e35 - $f4e27
+
+Unknown_f4e35: ; f4e35 (3d:4e35)
+INCBIN "baserom.gbc",$f4e35,$f4e47 - $f4e35
+
+Unknown_f4e47: ; f4e47 (3d:4e47)
+INCBIN "baserom.gbc",$f4e47,$f4e5b - $f4e47
+
+Unknown_f4e5b: ; f4e5b (3d:4e5b)
+INCBIN "baserom.gbc",$f4e5b,$f4e65 - $f4e5b
+
+Unknown_f4e65: ; f4e65 (3d:4e65)
+INCBIN "baserom.gbc",$f4e65,$f4e73 - $f4e65
+
+Unknown_f4e73: ; f4e73 (3d:4e73)
+INCBIN "baserom.gbc",$f4e73,$f4e85 - $f4e73
+
+Unknown_f4e85: ; f4e85 (3d:4e85)
+INCBIN "baserom.gbc",$f4e85,$f4ee5 - $f4e85
+
+NumberOfSongs1: ; 4fee5 (3d:4ee5)
+ db $1f
+
+SongBanks1: ; f4ee6 (3d:4ee6)
+ db BANK(Music_Stop)
+ db BANK(Music_TitleScreen)
+ db BANK(Music_BattleTheme1)
+ db BANK(Music_BattleTheme2)
+ db BANK(Music_BattleTheme3)
+ db BANK(Music_PauseMenu)
+ db BANK(Music_PCMainMenu)
+ db BANK(Music_DeckMachine)
+ db BANK(Music_CardPop)
+ db BANK(Music_Overworld)
+ db BANK(Music_PokemonDome)
+ db BANK(Music_ChallengeHall)
+ db BANK(Music_Club1)
+ db BANK(Music_Club2)
+ db BANK(Music_Club3)
+ db BANK(Music_Ronald)
+ db BANK(Music_Imakuni)
+ db BANK(Music_HallOfHonor)
+ db BANK(Music_Credits)
+ db BANK(Music_Unused13)
+ db BANK(Music_Unused14)
+ db BANK(Music_MatchStart1)
+ db BANK(Music_MatchStart2)
+ db BANK(Music_MatchStart3)
+ db BANK(Music_MatchVictory)
+ db BANK(Music_MatchLoss)
+ db BANK(Music_DarkDiddly)
+ db BANK(Music_Unused1b)
+ db BANK(Music_BoosterPack)
+ db BANK(Music_Medal)
+ db BANK(Music_Unused1e)
+
+SongHeaderPointers1: ; f4f05 (3d:4f05)
+ dw Music_Stop
+ dw Music_TitleScreen
+ dw Music_BattleTheme1
+ dw Music_BattleTheme2
+ dw Music_BattleTheme3
+ dw Music_PauseMenu
+ dw $0000
+ dw Music_DeckMachine
+ dw Music_CardPop
+ dw Music_Overworld
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw Music_Unused13
+ dw Music_Unused14
+ dw Music_MatchStart1
+ dw Music_MatchStart2
+ dw Music_MatchStart3
+ dw Music_MatchVictory
+ dw Music_MatchLoss
+ dw Music_DarkDiddly
+ dw Music_Unused1b
+ dw Music_BoosterPack
+ dw Music_Medal
+ dw Music_Unused1e
+
+Music_Stop: ; f4f43 (3d:4f43)
+ db %0000
+
+Music_TitleScreen: ; f4f44 (3d:4f44)
+ db %1111
+ dw Music_TitleScreen_Ch1
+ dw Music_TitleScreen_Ch2
+ dw Music_TitleScreen_Ch3
+ dw Music_TitleScreen_Ch4
+
+Music_BattleTheme1: ; f4f4d (3d:4f4d)
+ db %1111
+ dw Music_BattleTheme1_Ch1
+ dw Music_BattleTheme1_Ch2
+ dw Music_BattleTheme1_Ch3
+ dw Music_BattleTheme1_Ch4
+
+Music_BattleTheme2: ; f4f56 (3d:4f56)
+ db %1111
+ dw Music_BattleTheme2_Ch1
+ dw Music_BattleTheme2_Ch2
+ dw Music_BattleTheme2_Ch3
+ dw Music_BattleTheme2_Ch4
+
+Music_BattleTheme3: ; f4f5f (3d:4f5f)
+ db %1111
+ dw Music_BattleTheme3_Ch1
+ dw Music_BattleTheme3_Ch2
+ dw Music_BattleTheme3_Ch3
+ dw Music_BattleTheme3_Ch4
+
+Music_PauseMenu: ; f4f68 (3d:4f68)
+ db %1111
+ dw Music_PauseMenu_Ch1
+ dw Music_PauseMenu_Ch2
+ dw Music_PauseMenu_Ch3
+ dw Music_PauseMenu_Ch4
+
+;Music_PCMainMenu
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+Music_DeckMachine: ; f4f7a (3d:4f7a)
+ db %1111
+ dw Music_DeckMachine_Ch1
+ dw Music_DeckMachine_Ch2
+ dw Music_DeckMachine_Ch3
+ dw Music_DeckMachine_Ch4
+
+Music_CardPop: ; f4f83 (3d:4f83)
+ db %1111
+ dw Music_CardPop_Ch1
+ dw Music_CardPop_Ch2
+ dw Music_CardPop_Ch3
+ dw Music_CardPop_Ch4
+
+Music_Overworld: ; f4f8c (3d:4f8c)
+ db %1111
+ dw Music_Overworld_Ch1
+ dw Music_Overworld_Ch2
+ dw Music_Overworld_Ch3
+ dw Music_Overworld_Ch4
+
+;Music_PokemonDome
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_ChallengeHall
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Club1
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Club2
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Club3
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Ronald
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Imakuni
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_HallOfHonor
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Credits
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+Music_Unused13: ; f4fe6 (3d:4fe6)
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+Music_Unused14: ; f4fef (3d:4fef)
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+Music_MatchStart1: ; f4ff8 (3d:4ff8)
+ db %0001
+ dw Music_MatchStart1_Ch1
+ dw $0000
+ dw $0000
+ dw $0000
+
+Music_MatchStart2: ; f5001 (3d:5001)
+ db %0011
+ dw Music_MatchStart2_Ch1
+ dw Music_MatchStart2_Ch2
+ dw $0000
+ dw $0000
+
+Music_MatchStart3: ; f500a (3d:500a)
+ db %0011
+ dw Music_MatchStart3_Ch1
+ dw Music_MatchStart3_Ch2
+ dw $0000
+ dw $0000
+
+Music_MatchVictory: ; f5013 (3d:5013)
+ db %0111
+ dw Music_MatchVictory_Ch1
+ dw Music_MatchVictory_Ch2
+ dw Music_MatchVictory_Ch3
+ dw $0000
+
+Music_MatchLoss: ; f501c (3d:501c)
+ db %0111
+ dw Music_MatchLoss_Ch1
+ dw Music_MatchLoss_Ch2
+ dw Music_MatchLoss_Ch3
+ dw $0000
+
+Music_DarkDiddly: ; f5025 (3d:5025)
+ db %0111
+ dw Music_DarkDiddly_Ch1
+ dw Music_DarkDiddly_Ch2
+ dw Music_DarkDiddly_Ch3
+ dw $0000
+
+Music_Unused1b: ; f502e (3d:502e)
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+Music_BoosterPack: ; f5037 (3d:5037)
+ db %0111
+ dw Music_BoosterPack_Ch1
+ dw Music_BoosterPack_Ch2
+ dw Music_BoosterPack_Ch3
+ dw $0000
+
+Music_Medal: ; f5040 (3d:5040)
+ db %0111
+ dw Music_Medal_Ch1
+ dw Music_Medal_Ch2
+ dw Music_Medal_Ch3
+ dw $0000
+
+Music_Unused1e: ; f5049 (3d:5049)
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
INCLUDE "music/titlescreen.asm"
INCLUDE "music/battletheme1.asm"
INCLUDE "music/battletheme2.asm"
@@ -2250,8 +2250,8 @@ INCLUDE "music/matchvictory.asm"
INCLUDE "music/matchloss.asm"
INCLUDE "music/darkdiddly.asm"
INCLUDE "music/boosterpack.asm"
-INCLUDE "music/medal.asm"
-
-rept $138
-db $ff
+INCLUDE "music/medal.asm"
+
+rept $138
+db $ff
endr \ No newline at end of file
diff --git a/music2.asm b/music/engine/music2.asm
index 65d7940..f5d8919 100755
--- a/music2.asm
+++ b/music/engine/music2.asm
@@ -1,2237 +1,2237 @@
-Func_f8000: ; f8000 (3e:4000)
- jp Func_f807d
-
-Func_f8003: ; f8003 (3e:4003)
- jp Func_f80e9
-
-Func_f8006: ; f8006 (3e:4006)
- jp Func_f8021
-
-Func_f8009: ; f8009 (3e:4009)
- jp Func_f802d
-
-Func_f800c: ; f800c (3e:400c)
- jp Func_f804e
-
-Func_f800f: ; f800f (3e:400f)
- jp Func_f8052
-
-Func_f8012: ; f8012 (3e:4012)
- jp Func_f805c
-
-Func_f8015: ; f8015 (3e:4015)
- jp Func_f8066
-
-Func_f8018: ; f8018 (3e:4018)
- jp Func_f806f
-
-Func_f801b: ; f801b (3e:401b)
- jp Func_f89c4
-
-Func_f801e: ; f801e (3e:401e)
- jp Func_f89d0
-
-Func_f8021: ; f8021 (3e:4021)
- push hl
- ld hl, NumberOfSongs2
- cp [hl]
- jr nc, .asm_f802b
- ld [$dd80], a
-.asm_f802b
- pop hl
- ret
-
-Func_f802d: ; f802d (3e:402d)
- push bc
- push hl
- ld b, $0
- ld c, a
- or a
- jr z, .asm_f8043
- ld hl, $4e85
- add hl, bc
- ld b, [hl]
- ld a, [$dd83]
- or a
- jr z, .asm_f8043
- cp b
- jr c, .asm_f804b
-.asm_f8043
- ld a, b
- ld [$dd83], a
- ld a, c
- ld [$dd82], a
-.asm_f804b
- pop hl
- pop bc
- ret
-
-Func_f804e: ; f804e (3e:404e)
- ld [$ddf0], a
- ret
-
-Func_f8052: ; f8052 (3e:4052)
- ld a, [$dd80]
- cp $80
- ld a, $1
- ret nz
- xor a
- ret
-
-Func_f805c: ; f805c (3e:405c)
- ld a, [$dd82]
- cp $80
- ld a, $1
- ret nz
- xor a
- ret
-
-Func_f8066: ; f8066 (3e:4066)
- ld a, [$ddf2]
- xor $1
- ld [$ddf2], a
- ret
-
-Func_f806f: ; f806f (3e:406f)
- push bc
- push af
- and $7
- ld b, a
- swap b
- or b
- ld [$ddf1], a
- pop af
- pop bc
- ret
-
-Func_f807d: ; f807d (3e:407d)
- xor a
- ld [$ff26], a
- ld a, $80
- ld [$ff26], a
- ld a, $77
- ld [$ff24], a
- ld a, $ff
- ld [$ff25], a
- ld a, $3d
- ld [$dd81], a
- ld a, $80
- ld [$dd80], a
- ld [$dd82], a
- ld a, $77
- ld [$ddf1], a
- xor a
- ld [$dd8c], a
- ld [$de53], a
- ld [$dd8b], a
- ld [$ddef], a
- ld [$ddf0], a
- ld [$ddf2], a
- dec a
- ld [$dd84], a
- ld de, $0001
- ld bc, $0000
-.asm_f80bb
- ld hl, $dd8d
- add hl, bc
- ld [hl], d
- ld hl, $dd91
- add hl, bc
- ld [hl], d
- ld hl, $ddb3
- add hl, bc
- ld [hl], d
- ld hl, $ddcb
- add hl, bc
- ld [hl], d
- ld hl, $ddbf
- add hl, bc
- ld [hl], d
- inc c
- ld a, c
- cp $4
- jr nz, .asm_f80bb
- ld hl, Unknown_f8c20
- ld bc, $ddf3
- ld d, $8
-.asm_f80e2
- ld a, [hli]
- ld [bc], a
- inc bc
- dec d
- jr nz, .asm_f80e2
- ret
-
-Func_f80e9: ; f80e9 (3e:40e9)
- call Func_f82a4
- call Func_f811c
- ld hl, $4003
- call Bankswitch3dTo3f
- ld a, [$dd81]
- ld [$ff80], a
- ld [$2000], a
- ld a, [$ddf2]
- cp $0
- jr z, .asm_f8109
- call Func_f8980
- jr .asm_f8115
-.asm_f8109
- call Func_f82a5
- call Func_f830a
- call Func_f836f
- call Func_f83ce
-.asm_f8115
- call Func_f8866
- call Func_f89b1
- ret
-
-Func_f811c: ; f811c (3e:411c)
- ld a, [$dd80]
- rla
- jr c, .asm_f8133
- call Func_f814b
- ld a, [$dd80]
- call Func_f818c
- ld a, [$dd80]
- or $80
- ld [$dd80], a
-.asm_f8133
- ld a, [$dd82]
- rla
- jr c, .asm_f814a
- ld a, [$dd82]
- ld hl, $4000
- call Bankswitch3dTo3f
- ld a, [$dd82]
- or $80
- ld [$dd82], a
-.asm_f814a
- ret
-
-Func_f814b: ; f814b (3e:414b)
- ld a, [$dd8c]
- ld d, a
- xor a
- ld [$dd8d], a
- bit 0, d
- jr nz, .asm_f815f
- ld a, $8
- ld [$ff12], a
- swap a
- ld [$ff14], a
-.asm_f815f
- xor a
- ld [$dd8e], a
- bit 1, d
- jr nz, .asm_f816f
- ld a, $8
- ld [$ff17], a
- swap a
- ld [$ff19], a
-.asm_f816f
- xor a
- ld [$dd90], a
- bit 3, d
- jr nz, .asm_f817f
- ld a, $8
- ld [$ff21], a
- swap a
- ld [$ff23], a
-.asm_f817f
- xor a
- ld [$dd8f], a
- bit 2, d
- jr nz, .asm_f818b
- ld a, $0
- ld [$ff1c], a
-.asm_f818b
- ret
-
-Func_f818c: ; f818c (3e:418c)
- push af
- ld c, a
- ld b, $0
- ld hl, SongBanks1
- add hl, bc
- ld a, [hl]
- ld [$dd81], a
- ld [$ff80], a
- ld [$2000], a
- pop af
- add a
- ld c, a
- ld b, $0
- ld hl, SongHeaderPointers1
- add hl, bc
- ld e, [hl]
- inc hl
- ld h, [hl]
- ld l, e
- ld e, [hl]
- inc hl
- ld b, h
- ld c, l
- rr e
- jr nc, .asm_f81eb
- ld a, [bc]
- inc bc
- ld [$dd95], a
- ld [$dd9d], a
- ld a, [bc]
- inc bc
- ld [$dd96], a
- ld [$dd9e], a
- ld a, $1
- ld [$ddbb], a
- ld [$dd8d], a
- xor a
- ld [$dd91], a
- ld [$ddea], a
- ld [$ddbf], a
- ld [$dddf], a
- ld [$ddcb], a
- ld a, [Unknown_f8c20]
- ld [$ddf3], a
- ld a, [Unknown_f8c20 + 1]
- ld [$ddf4], a
- ld a, $8
- ld [$ddc7], a
-.asm_f81eb
- rr e
- jr nc, .asm_f8228
- ld a, [bc]
- inc bc
- ld [$dd97], a
- ld [$dd9f], a
- ld a, [bc]
- inc bc
- ld [$dd98], a
- ld [$dda0], a
- ld a, $1
- ld [$ddbc], a
- ld [$dd8e], a
- xor a
- ld [$dd92], a
- ld [$ddeb], a
- ld [$ddc0], a
- ld [$dde0], a
- ld [$ddcc], a
- ld a, [Unknown_f8c20 + 2]
- ld [$ddf5], a
- ld a, [Unknown_f8c20 + 3]
- ld [$ddf6], a
- ld a, $8
- ld [$ddc8], a
-.asm_f8228
- rr e
- jr nc, .asm_f8265
- ld a, [bc]
- inc bc
- ld [$dd99], a
- ld [$dda1], a
- ld a, [bc]
- inc bc
- ld [$dd9a], a
- ld [$dda2], a
- ld a, $1
- ld [$ddbd], a
- ld [$dd8f], a
- xor a
- ld [$dd93], a
- ld [$ddec], a
- ld [$ddc1], a
- ld [$dde1], a
- ld [$ddcd], a
- ld a, [Unknown_f8c20 + 4]
- ld [$ddf7], a
- ld a, [Unknown_f8c20 + 5]
- ld [$ddf8], a
- ld a, $40
- ld [$ddc9], a
-.asm_f8265
- rr e
- jr nc, .asm_f829f
- ld a, [bc]
- inc bc
- ld [$dd9b], a
- ld [$dda3], a
- ld a, [bc]
- inc bc
- ld [$dd9c], a
- ld [$dda4], a
- ld a, $1
- ld [$ddbe], a
- ld [$dd90], a
- xor a
- ld [$dd94], a
- ld [$ddc2], a
- ld [$dde2], a
- ld [$ddce], a
- ld a, [Unknown_f8c20 + 6]
- ld [$ddf9], a
- ld a, [Unknown_f8c20 + 7]
- ld [$ddfa], a
- ld a, $40
- ld [$ddca], a
-.asm_f829f
- xor a
- ld [$ddf2], a
- ret
-
-Func_f82a4: ; f82a4 (3e:42a4)
- ret
-
-Func_f82a5: ; f82a5 (3e:42a5)
- ld a, [$dd8d]
- or a
- jr z, .asm_f82fa
- ld a, [$ddb7]
- cp $0
- jr z, .asm_f82d4
- ld a, [$ddc3]
- dec a
- ld [$ddc3], a
- jr nz, .asm_f82d4
- ld a, [$ddbb]
- cp $1
- jr z, .asm_f82d4
- ld a, [$dd8c]
- bit 0, a
- jr nz, .asm_f82d4
- ld hl, $ff12
- ld a, [$ddc7]
- ld [hli], a
- inc hl
- ld a, $80
- ld [hl], a
-.asm_f82d4
- ld a, [$ddbb]
- dec a
- ld [$ddbb], a
- jr nz, .asm_f82f4
- ld a, [$dd96]
- ld h, a
- ld a, [$dd95]
- ld l, a
- ld bc, $0000
- call Func_f8414
- ld a, [$dd8d]
- or a
- jr z, .asm_f82fa
- call Func_f8714
-.asm_f82f4
- ld a, $0
- call Func_f885a
- ret
-.asm_f82fa
- ld a, [$dd8c]
- bit 0, a
- jr nz, .asm_f8309
- ld a, $8
- ld [$ff12], a
- swap a
- ld [$ff14], a
-.asm_f8309
- ret
-
-Func_f830a: ; f830a (3e:430a)
- ld a, [$dd8e]
- or a
- jr z, .asm_f835f
- ld a, [$ddb8]
- cp $0
- jr z, .asm_f8339
- ld a, [$ddc4]
- dec a
- ld [$ddc4], a
- jr nz, .asm_f8339
- ld a, [$ddbc]
- cp $1
- jr z, .asm_f8339
- ld a, [$dd8c]
- bit 1, a
- jr nz, .asm_f8339
- ld hl, $ff17
- ld a, [$ddc8]
- ld [hli], a
- inc hl
- ld a, $80
- ld [hl], a
-.asm_f8339
- ld a, [$ddbc]
- dec a
- ld [$ddbc], a
- jr nz, .asm_f8359
- ld a, [$dd98]
- ld h, a
- ld a, [$dd97]
- ld l, a
- ld bc, $0001
- call Func_f8414
- ld a, [$dd8e]
- or a
- jr z, .asm_f835f
- call Func_f875a
-.asm_f8359
- ld a, $1
- call Func_f885a
- ret
-.asm_f835f
- ld a, [$dd8c]
- bit 1, a
- jr nz, .asm_f836e
- ld a, $8
- ld [$ff17], a
- swap a
- ld [$ff19], a
-.asm_f836e
- ret
-
-Func_f836f: ; f836f (3e:436f)
- ld a, [$dd8f]
- or a
- jr z, .asm_f83be
- ld a, [$ddb9]
- cp $0
- jr z, .asm_f8398
- ld a, [$ddc5]
- dec a
- ld [$ddc5], a
- jr nz, .asm_f8398
- ld a, [$dd8c]
- bit 2, a
- jr nz, .asm_f8398
- ld a, [$ddbd]
- cp $1
- jr z, .asm_f8398
- ld a, [$ddc9]
- ld [$ff1c], a
-.asm_f8398
- ld a, [$ddbd]
- dec a
- ld [$ddbd], a
- jr nz, .asm_f83b8
- ld a, [$dd9a]
- ld h, a
- ld a, [$dd99]
- ld l, a
- ld bc, $0002
- call Func_f8414
- ld a, [$dd8f]
- or a
- jr z, .asm_f83be
- call Func_f879c
-.asm_f83b8
- ld a, $2
- call Func_f885a
- ret
-.asm_f83be
- ld a, [$dd8c]
- bit 2, a
- jr nz, .asm_f83cd
- ld a, $0
- ld [$ff1c], a
- ld a, $80
- ld [$ff1e], a
-.asm_f83cd
- ret
-
-Func_f83ce: ; f83ce (3e:43ce)
- ld a, [$dd90]
- or a
- jr z, .asm_f8400
- ld a, [$ddbe]
- dec a
- ld [$ddbe], a
- jr nz, .asm_f83f6
- ld a, [$dd9c]
- ld h, a
- ld a, [$dd9b]
- ld l, a
- ld bc, $0003
- call Func_f8414
- ld a, [$dd90]
- or a
- jr z, .asm_f8400
- call Func_f880a
- jr .asm_f8413
-.asm_f83f6
- ld a, [$ddef]
- or a
- jr z, .asm_f8413
- call Func_f8839
- ret
-.asm_f8400
- ld a, [$dd8c]
- bit 3, a
- jr nz, .asm_f8413
- xor a
- ld [$ddef], a
- ld a, $8
- ld [$ff21], a
- swap a
- ld [$ff23], a
-.asm_f8413
- ret
-
-Func_f8414: ; f8414 (3e:4414)
- ld a, [hli]
- push hl
- push af
- cp $d0
- jr c, .asm_f848c
- sub $d0
- add a
- ld e, a
- ld d, $0
- ld hl, .data_f842c
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld h, d
- ld l, e
- pop af
- jp [hl]
-
-.data_f842c
- dw Func_f8598
- dw Func_f85a3
- dw Func_f85a3
- dw Func_f85a3
- dw Func_f85a3
- dw Func_f85a3
- dw Func_f85a3
- dw Func_f85bb
- dw Func_f85c3
- dw Func_f85cb
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f85d4
- dw Func_f85ef
- dw Func_f85fd
- dw Func_f8609
- dw Func_f861e
- dw Func_f8638
- dw Func_f863f
- dw Func_f8656
- dw Func_f8667
- dw Func_f8674
- dw Func_f8683
- dw Func_f8690
- dw Func_f86a0
- dw Func_f86ad
- dw Func_f86ba
- dw Func_f86cc
- dw Func_f86d9
- dw Func_f86e6
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
- dw Func_f86f4
-
-.asm_f848c
- push af
- ld a, [hl]
- ld e, a
- ld hl, $dd91
- add hl, bc
- ld a, [hl]
- cp $80
- jr z, .asm_f84b0
- ld [hl], $1
- xor a
- ld hl, $dddb
- add hl, bc
- ld [hl], a
- ld hl, $dde3
- add hl, bc
- ld [hl], a
- inc [hl]
- ld hl, $ddd7
- add hl, bc
- ld a, [hl]
- ld hl, $ddd3
- add hl, bc
- ld [hl], a
-.asm_f84b0
- pop af
- push de
- ld hl, $ddcf
- add hl, bc
- ld d, [hl]
- and $f
- inc a
- cp d
- jr nc, .asm_f84c0
- ld e, a
- ld a, d
- ld d, e
-.asm_f84c0
- ld e, a
-.asm_f84c1
- dec d
- jr z, .asm_f84c7
- add e
- jr .asm_f84c1
-.asm_f84c7
- ld hl, $ddbb
- add hl, bc
- ld [hl], a
- pop de
- ld d, a
- ld a, e
- cp $d9
- ld a, d
- jr z, .asm_f84fb
- ld e, a
- ld hl, $ddbf
- add hl, bc
- ld a, [hl]
- cp $8
- ld d, a
- ld a, e
- jr z, .asm_f84fb
- push hl
- push bc
- ld b, $0
- ld c, a
- ld hl, $0000
-.asm_f84e8
- add hl, bc
- dec d
- jr nz, .asm_f84e8
- srl h
- rr l
- srl h
- rr l
- srl h
- rr l
- ld a, l
- pop bc
- pop hl
-.asm_f84fb
- ld hl, $ddc3
- add hl, bc
- ld [hl], a
- pop af
- and $f0
- ld hl, $ddb7
- add hl, bc
- ld [hl], a
- or a
- jr nz, .asm_f850e
- jp .asm_f858e
-.asm_f850e
- swap a
- dec a
- ld h, a
- ld a, $3
- cp c
- ld a, h
- jr z, .asm_f851a
- jr .asm_f8564
-.asm_f851a
- push af
- ld hl, $ddaf
- add hl, bc
- ld a, [hl]
- ld d, a
- sla a
- add d
- sla a
- sla a
- sla a
- ld e, a
- pop af
- ld hl, PointerTable_f8d34
- add a
- ld d, c
- ld c, a
- add hl, bc
- ld c, e
- add hl, bc
- ld c, d
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hli]
- ld d, a
- ld a, [$dd84]
- and $77
- or d
- ld [$dd84], a
- ld de, $ddab
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld b, [hl]
- inc hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- ld b, $0
- ld a, l
- ld d, h
- ld hl, $dded
- ld [hli], a
- ld [hl], d
- ld a, $1
- ld [$ddef], a
- jr .asm_f858e
-.asm_f8564
- ld hl, $dda5
- add hl, bc
- add hl, bc
- push hl
- ld hl, $ddaf
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, Unknown_f8c28
- add hl, de
- add a
- ld e, [hl]
- add e
- ld hl, $ddcb
- add hl, bc
- ld e, [hl]
- add e
- add e
- ld e, a
- ld hl, $4c30
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- call Func_f8967
- pop hl
- ld a, e
- ld [hli], a
- ld [hl], d
-.asm_f858e
- pop de
- ld hl, $dd95
- add hl, bc
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-Func_f8598: ; f8598 (3e:4598)
- pop hl
- ld a, [hli]
- push hl
- ld hl, $ddcf
- add hl, bc
- ld [hl], a
- jp Func_f8710
-
-Func_f85a3: ; f85a3 (3e:45a3)
- and $7
- dec a
- ld hl, $ddaf
- add hl, bc
- push af
- ld a, c
- cp $2
- jr nz, .asm_f85b6
- pop af
- inc a
- ld [hl], a
- jp Func_f8710
-.asm_f85b6
- pop af
- ld [hl], a
- jp Func_f8710
-
-Func_f85bb: ; f85bb (3e:45bb)
- ld hl, $ddaf
- add hl, bc
- inc [hl]
- jp Func_f8710
-
-Func_f85c3: ; f85c3 (3e:45c3)
- ld hl, $ddaf
- add hl, bc
- dec [hl]
- jp Func_f8710
-
-Func_f85cb: ; f85cb (3e:45cb)
- ld hl, $dd91
- add hl, bc
- ld [hl], $80
- jp Func_f8710
-
-Func_f85d4: ; f85d4 (3e:45d4)
- pop hl
- ld a, [hli]
- push hl
- push bc
- inc c
- ld e, $ee
-.asm_f85db
- dec c
- jr z, .asm_f85e3
- rlca
- rlc e
- jr .asm_f85db
-.asm_f85e3
- ld d, a
- ld hl, $dd84
- ld a, [hl]
- and e
- or d
- ld [hl], a
- pop bc
- jp Func_f8710
-
-Func_f85ef: ; f85ef (3e:45ef)
- pop de
- push de
- dec de
- ld hl, $dd9d
- add hl, bc
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- jp Func_f8710
-
-Func_f85fd: ; f85fd (3e:45fd)
- pop hl
- ld hl, $dd9d
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp Func_f8414
-
-Func_f8609: ; f8609 (3e:4609)
- pop de
- ld a, [de]
- inc de
- push af
- call Func_f86fc
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- pop af
- ld [hl], a
- inc hl
- push de
- call Func_f8705
- jp Func_f8710
-
-Func_f861e: ; f861e (3e:461e)
- call Func_f86fc
- dec hl
- ld a, [hl]
- dec a
- jr z, .asm_f8630
- ld [hld], a
- ld d, [hl]
- dec hl
- ld e, [hl]
- pop hl
- ld h, d
- ld l, e
- jp Func_f8414
-.asm_f8630
- dec hl
- dec hl
- call Func_f8705
- jp Func_f8710
-
-Func_f8638: ; f8638 (3e:4638)
- pop hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp Func_f8414
-
-Func_f863f: ; f863f (3e:463f)
- call Func_f86fc
- pop de
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, [de]
- ld b, a
- inc de
- ld a, [de]
- ld d, a
- ld e, b
- ld b, $0
- push de
- call Func_f8705
- jp Func_f8710
-
-Func_f8656: ; f8656 (3e:4656)
- pop de
- call Func_f86fc
- dec hl
- ld a, [hld]
- ld e, [hl]
- ld d, a
- inc de
- inc de
- push de
- call Func_f8705
- jp Func_f8710
-
-Func_f8667: ; f8667 (3e:4667)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddea
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f8674: ; f8674 (3e:4674)
- pop de
- ld a, [de]
- and $c0
- inc de
- ld hl, $dd86
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f8683: ; f8683 (3e:4683)
- pop de
- ld a, [de]
- inc de
- ld hl, $dde7
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f8690: ; f8690 (3e:4690)
- pop de
- ld a, [de]
- inc de
- ld [$dd8a], a
- ld a, $1
- ld [$dd8b], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f86a0: ; f86a0 (3e:46a0)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddbf
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f86ad: ; f86ad (3e:46ad)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddc7
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f86ba: ; f86ba (3e:46ba)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddd3
- add hl, bc
- ld [hl], a
- ld hl, $ddd7
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f86cc: ; f86cc (3e:46cc)
- pop de
- ld a, [de]
- inc de
- ld hl, $dddf
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f86d9: ; f86d9 (3e:46d9)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddcb
- add hl, bc
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f86e6: ; f86e6 (3e:46e6)
- pop de
- ld a, [de]
- inc de
- ld hl, $ddcb
- add hl, bc
- add [hl]
- ld [hl], a
- ld h, d
- ld l, e
- jp Func_f8414
-
-Func_f86f4: ; f86f4 (3e:46f4)
- ld hl, $dd8d
- add hl, bc
- ld [hl], $0
- pop hl
- ret
-
-Func_f86fc: ; f86fc (3e:46fc)
- ld hl, $ddf3
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-Func_f8705: ; f8705 (3e:4705)
- ld d, h
- ld e, l
- ld hl, $ddf3
- add hl, bc
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-Func_f8710: ; f8710 (3e:4710)
- pop hl
- jp Func_f8414
-
-Func_f8714: ; f8714 (3e:4714)
- ld a, [$dd8c]
- bit 0, a
- jr nz, .asm_f8749
- ld a, [$ddb7]
- cp $0
- jr z, .asm_f874a
- ld d, $0
- ld hl, $dd91
- ld a, [hl]
- cp $80
- jr z, .asm_f8733
- ld a, [$dde7]
- ld [$ff12], a
- ld d, $80
-.asm_f8733
- ld [hl], $2
- ld a, $8
- ld [$ff10], a
- ld a, [$dd86]
- ld [$ff11], a
- ld a, [$dda5]
- ld [$ff13], a
- ld a, [$dda6]
- or d
- ld [$ff14], a
-.asm_f8749
- ret
-.asm_f874a
- ld hl, $dd91
- ld [hl], $0
- ld hl, $ff12
- ld a, $8
- ld [hli], a
- inc hl
- swap a
- ld [hl], a
- ret
-
-Func_f875a: ; f875a (3e:475a)
- ld a, [$dd8c]
- bit 1, a
- jr nz, .asm_f878b
- ld a, [$ddb8]
- cp $0
- jr z, .asm_f878c
- ld d, $0
- ld hl, $dd92
- ld a, [hl]
- cp $80
- jr z, .asm_f8779
- ld a, [$dde8]
- ld [$ff17], a
- ld d, $80
-.asm_f8779
- ld [hl], $2
- ld a, [$dd87]
- ld [$ff16], a
- ld a, [$dda7]
- ld [$ff18], a
- ld a, [$dda8]
- or d
- ld [$ff19], a
-.asm_f878b
- ret
-.asm_f878c
- ld hl, $dd92
- ld [hl], $0
- ld hl, $ff17
- ld a, $8
- ld [hli], a
- inc hl
- swap a
- ld [hl], a
- ret
-
-Func_f879c: ; f879c (3e:479c)
- ld a, [$dd8c]
- bit 2, a
- jr nz, .asm_f87e0
- ld d, $0
- ld a, [$dd8b]
- or a
- jr z, .asm_f87b3
- xor a
- ld [$ff1a], a
- call Func_f87ea
- ld d, $80
-.asm_f87b3
- ld a, [$ddb9]
- cp $0
- jr z, .asm_f87e1
- ld hl, $dd93
- ld a, [hl]
- cp $80
- jr z, .asm_f87cc
- ld a, [$dde9]
- ld [$ff1c], a
- xor a
- ld [$ff1a], a
- ld d, $80
-.asm_f87cc
- ld [hl], $2
- xor a
- ld [$ff1b], a
- ld a, [$dda9]
- ld [$ff1d], a
- ld a, $80
- ld [$ff1a], a
- ld a, [$ddaa]
- or d
- ld [$ff1e], a
-.asm_f87e0
- ret
-.asm_f87e1
- ld hl, $dd91
- ld [hl], $0
- xor a
- ld [$ff1a], a
- ret
-
-Func_f87ea: ; f879c (3e:47ea)
- ld a, [$dd8a]
- add a
- ld d, $0
- ld e, a
- ld hl, PointerTable_f8cda
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld b, d
- ld de, $ff30
-.asm_f87fc
- ld a, [hli]
- ld [de], a
- inc de
- inc b
- ld a, b
- cp $10
- jr nz, .asm_f87fc
- xor a
- ld [$dd8b], a
- ret
-
-Func_f880a: ; f880a (3e:480a)
- ld a, [$dd8c]
- bit 3, a
- jr nz, .asm_f8829
- ld a, [$ddba]
- cp $0
- jr z, asm_f882a
- ld de, $ff20
- ld hl, $ddab
- ld a, [hli]
- ld [de], a
- inc e
- ld a, [hli]
- ld [de], a
- inc e
- ld a, [hli]
- ld [de], a
- inc e
- ld a, [hli]
- ld [de], a
-.asm_f8829
- ret
-asm_f882a
- xor a
- ld [$ddef], a
- ld hl, $ff21
- ld a, $8
- ld [hli], a
- inc hl
- swap a
- ld [hl], a
- ret
-
-Func_f8839: ; f8839 (3e:4839)
- ld a, [$dd8c]
- bit 3, a
- jr z, .asm_f8846
- xor a
- ld [$ddef], a
- jr .asm_f8859
-.asm_f8846
- ld hl, $dded
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ld a, [de]
- cp $ff
- jr nz, .asm_f8853
- jr asm_f882a
-.asm_f8853
- ld [$ff22], a
- inc de
- ld a, d
- ld [hld], a
- ld [hl], e
-.asm_f8859
- ret
-
-Func_f885a: ; f885a (3e:485a)
- push af
- ld b, $0
- ld c, a
- call Func_f8898
- pop af
- call Func_f890b
- ret
-
-Func_f8866: ; f8866 (3e:4866)
- ld a, [$ddf1]
- ld [$ff24], a
- ld a, [$dd8c]
- or a
- ld hl, $dd84
- ld a, [hli]
- jr z, .asm_f8888
- ld a, [$dd8c]
- and $f
- ld d, a
- swap d
- or d
- ld d, a
- xor $ff
- ld e, a
- ld a, [hld]
- and d
- ld d, a
- ld a, [hl]
- and e
- or d
-.asm_f8888
- ld d, a
- ld a, [$ddf0]
- xor $ff
- and $f
- ld e, a
- swap e
- or e
- and d
- ld [$ff25], a
- ret
-
-Func_f8898: ; f8898 (3e:4898)
- ld hl, $dddf
- add hl, bc
- ld a, [hl]
- cp $0
- jr z, .asm_f8902
- ld hl, $dde3
- add hl, bc
- cp [hl]
- jr z, .asm_f88ab
- inc [hl]
- jr .asm_f8902
-.asm_f88ab
- ld hl, $ddd3
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, PointerTable_f8dde
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- ld hl, $dddb
- add hl, bc
- ld d, $0
- ld e, [hl]
- inc [hl]
- pop hl
- add hl, de
- ld a, [hli]
- cp $80
- jr z, .asm_f88ee
- ld hl, $dda5
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- bit 7, a
- jr nz, .asm_f88df
- add e
- ld e, a
- ld a, $0
- adc d
- and $7
- ld d, a
- ret
-.asm_f88df
- xor $ff
- inc a
- push bc
- ld c, a
- ld a, e
- sub c
- ld e, a
- ld a, d
- sbc b
- and $7
- ld d, a
- pop bc
- ret
-.asm_f88ee
- push hl
- ld hl, $dddb
- add hl, bc
- ld [hl], $0
- pop hl
- ld a, [hl]
- cp $80
- jr z, .asm_f88ab
- ld hl, $ddd3
- add hl, bc
- ld [hl], a
- jr .asm_f88ab
-.asm_f8902
- ld hl, $dda5
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- ret
-
-Func_f890b: ; f890b (3e:490b)
- cp $0
- jr nz, .asm_f892c
- ld a, [$dddf]
- cp $0
- jr z, .asm_f8966
- ld a, [$dd8c]
- bit 0, a
- jr nz, .asm_f8966
- ld a, e
- ld [$ff13], a
- ld a, [$ff11]
- and $c0
- ld [$ff11], a
- ld a, d
- and $3f
- ld [$ff14], a
- ret
-.asm_f892c
- cp $1
- jr nz, .asm_f894b
- ld a, [$dde0]
- cp $0
- jr z, .asm_f8966
- ld a, [$dd8c]
- bit 1, a
- jr nz, .asm_f8966
- ld a, e
- ld [$ff18], a
- ld a, [$ff16]
- and $c0
- ld [$ff16], a
- ld a, d
- ld [$ff19], a
- ret
-.asm_f894b
- cp $2
- jr nz, .asm_f8966
- ld a, [$dde1]
- cp $0
- jr z, .asm_f8966
- ld a, [$dd8c]
- bit 2, a
- jr nz, .asm_f8966
- ld a, e
- ld [$ff1d], a
- xor a
- ld [$ff1b], a
- ld a, d
- ld [$ff1e], a
-.asm_f8966
- ret
-
-Func_f8967: ; f8967 (3e:4967)
- ld hl, $ddea
- add hl, bc
- ld a, [hl]
- bit 7, a
- jr nz, .asm_f8976
- add e
- ld e, a
- ld a, d
- adc b
- ld d, a
- ret
-.asm_f8976
- xor $ff
- ld h, a
- ld a, e
- sub h
- ld e, a
- ld a, d
- sbc b
- ld d, a
- ret
-
-Func_f8980: ; f8980 (3e:4980)
- ld a, [$dd8c]
- ld d, a
- bit 0, d
- jr nz, .asm_f8990
- ld a, $8
- ld [$ff12], a
- swap a
- ld [$ff14], a
-.asm_f8990
- bit 1, d
- jr nz, .asm_f899c
- swap a
- ld [$ff17], a
- swap a
- ld [$ff19], a
-.asm_f899c
- bit 3, d
- jr nz, .asm_f89a8
- swap a
- ld [$ff21], a
- swap a
- ld [$ff23], a
-.asm_f89a8
- bit 2, d
- jr nz, .asm_f89b0
- ld a, $0
- ld [$ff1c], a
-.asm_f89b0
- ret
-
-Func_f89b1: ; f89b1 (3e:49b1)
- ld hl, $dd8d
- xor a
- add [hl]
- inc hl
- add [hl]
- inc hl
- add [hl]
- inc hl
- add [hl]
- or a
- ret nz
- ld a, $80
- ld [$dd80], a
- ret
-
-Func_f89c4: ; f89c4 (3e:49c4)
- di
- call Func_f8980
- call Func_f89dc
- call Func_f814b
- ei
- ret
-
-Func_f89d0: ; f89d0 (3e:49d0)
- di
- call Func_f8980
- call Func_f814b
- call Func_f8b01
- ei
- ret
-
-Func_f89dc: ; f89dc (3e:49dc)
- ld a, [$dd80]
- ld [$de55], a
- ld a, [$dd81]
- ld [$de56], a
- ld a, [$dd84]
- ld [$de57], a
- ld hl, $dd86
- ld de, $de58
- ld a, $4
- call Func_f8c18
- ld a, [$dd8a]
- ld [$de5c], a
- ld a, [$dd8b]
- ld [$de5d], a
- ld hl, $dd8d
- ld de, $de5e
- ld a, $4
- call Func_f8c18
- ld hl, $dd91
- ld de, $de62
- ld a, $4
- call Func_f8c18
- ld hl, $dd95
- ld de, $de66
- ld a, $8
- call Func_f8c18
- ld hl, $dd9d
- ld de, $de6e
- ld a, $8
- call Func_f8c18
- ld a, [$ddab]
- ld [$de76], a
- ld a, [$ddac]
- ld [$de77], a
- ld hl, $ddaf
- ld de, $de78
- ld a, $4
- call Func_f8c18
- ld hl, $ddb3
- ld de, $de7c
- ld a, $4
- call Func_f8c18
- ld hl, $ddb7
- ld de, $de80
- ld a, $4
- call Func_f8c18
- ld hl, $ddbb
- ld de, $de84
- ld a, $4
- call Func_f8c18
- ld hl, $ddbf
- ld de, $de88
- ld a, $4
- call Func_f8c18
- ld hl, $ddc3
- ld de, $de8c
- ld a, $4
- call Func_f8c18
- ld hl, $ddc7
- ld de, $de90
- ld a, $4
- call Func_f8c18
- ld hl, $ddcb
- ld de, $de94
- ld a, $4
- call Func_f8c18
- ld hl, $ddcf
- ld de, $de98
- ld a, $4
- call Func_f8c18
- ld hl, $ddd7
- ld de, $de9c
- ld a, $4
- call Func_f8c18
- ld hl, $dddf
- ld de, $dea0
- ld a, $4
- call Func_f8c18
- ld a, $0
- ld [$dddb], a
- ld [$dddc], a
- ld [$dddd], a
- ld [$ddde], a
- ld hl, $dde7
- ld de, $dea4
- ld a, $3
- call Func_f8c18
- ld hl, $ddea
- ld de, $dea7
- ld a, $3
- call Func_f8c18
- ld hl, $dded
- ld de, $deaa
- ld a, $2
- call Func_f8c18
- ld a, $0
- ld [$deac], a
- ld hl, $ddf3
- ld de, $dead
- ld a, $8
- call Func_f8c18
- ld hl, $ddfb
- ld de, $deb5
- ld a, $30
- call Func_f8c18
- ret
-
-Func_f8b01: ; f8b01 (3e:4b01)
- ld a, [$de55]
- ld [$dd80], a
- ld a, [$de56]
- ld [$dd81], a
- ld a, [$de57]
- ld [$dd84], a
- ld hl, $de58
- ld de, $dd86
- ld a, $4
- call Func_f8c18
- ld a, [$de5c]
- ld [$dd8a], a
- ld a, $1
- ld [$dd8b], a
- ld hl, $de5e
- ld de, $dd8d
- ld a, $4
- call Func_f8c18
- ld hl, $de62
- ld de, $dd91
- ld a, $4
- call Func_f8c18
- ld hl, $de66
- ld de, $dd95
- ld a, $8
- call Func_f8c18
- ld hl, $de6e
- ld de, $dd9d
- ld a, $8
- call Func_f8c18
- ld a, [$de76]
- ld [$ddab], a
- ld a, [$de77]
- ld [$ddac], a
- ld hl, $de78
- ld de, $ddaf
- ld a, $4
- call Func_f8c18
- ld hl, $de7c
- ld de, $ddb3
- ld a, $4
- call Func_f8c18
- ld hl, $de80
- ld de, $ddb7
- ld a, $4
- call Func_f8c18
- ld hl, $de84
- ld de, $ddbb
- ld a, $4
- call Func_f8c18
- ld hl, $de88
- ld de, $ddbf
- ld a, $4
- call Func_f8c18
- ld hl, $de8c
- ld de, $ddc3
- ld a, $4
- call Func_f8c18
- ld hl, $de90
- ld de, $ddc7
- ld a, $4
- call Func_f8c18
- ld hl, $de94
- ld de, $ddcb
- ld a, $4
- call Func_f8c18
- ld hl, $de98
- ld de, $ddcf
- ld a, $4
- call Func_f8c18
- ld hl, $de9c
- ld de, $ddd7
- ld a, $4
- call Func_f8c18
- ld hl, $dea0
- ld de, $dddf
- ld a, $4
- call Func_f8c18
- ld hl, $dea4
- ld de, $dde7
- ld a, $3
- call Func_f8c18
- ld hl, $dea7
- ld de, $ddea
- ld a, $3
- call Func_f8c18
- ld hl, $deaa
- ld de, $dded
- ld a, $2
- call Func_f8c18
- ld a, [$deac]
- ld [$ddef], a
- ld hl, $dead
- ld de, $ddf3
- ld a, $8
- call Func_f8c18
- ld hl, $deb5
- ld de, $ddfb
- ld a, $30
- call Func_f8c18
- ret
-
-; copies a bytes from hl to de
-Func_f8c18: ; f8c18 (3e:4c18)
- ld c, a
-.asm_f8c19
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_f8c19
- ret
-
-Unknown_f8c20: ; f8c20 (3e:4c20)
-INCBIN "baserom.gbc",$f8c20,$f8c28 - $f8c20
-
-Unknown_f8c28: ; f8c28 (3e:4c28)
-INCBIN "baserom.gbc",$f8c28,$f8cda - $f8c28
-
-PointerTable_f8cda: ; f8cda (3e:4cda)
- dw Unknown_f8ce4
- dw Unknown_f8cf4
- dw Unknown_f8d04
- dw Unknown_f8d14
- dw Unknown_f8d24
-
-Unknown_f8ce4: ; f8ce4 (3e:4ce4)
-INCBIN "baserom.gbc",$f8ce4,$f8cf4 - $f8ce4
-
-Unknown_f8cf4: ; f8cf4 (3e:4cf4)
-INCBIN "baserom.gbc",$f8cf4,$f8d04 - $f8cf4
-
-Unknown_f8d04: ; f8d04 (3e:4d04)
-INCBIN "baserom.gbc",$f8d04,$f8d14 - $f8d04
-
-Unknown_f8d14: ; f8d14 (3e:4d14)
-INCBIN "baserom.gbc",$f8d14,$f8d24 - $f8d14
-
-Unknown_f8d24: ; f8d24 (3e:4d24)
-INCBIN "baserom.gbc",$f8d24,$f8d34 - $f8d24
-
-PointerTable_f8d34: ; f8d34 (3e:4d34)
- dw Unknown_f8d53
- dw Unknown_f8d4c
- dw Unknown_f8d5a
- dw Unknown_f8d4c
- dw Unknown_f8d64
- dw Unknown_f8d4c
- dw Unknown_f8d6d
- dw Unknown_f8d4c
- dw Unknown_f8d76
- dw Unknown_f8d4c
- dw Unknown_f8d4c
- dw Unknown_f8daa
-
-Unknown_f8d4c: ; f8d4c (3e:4d4c)
-INCBIN "baserom.gbc",$f8d4c,$f8d53 - $f8d4c
-
-Unknown_f8d53: ; f8d53 (3e:4d53)
-INCBIN "baserom.gbc",$f8d53,$f8d5a - $f8d53
-
-Unknown_f8d5a: ; f8d5a (3e:4d5a)
-INCBIN "baserom.gbc",$f8d5a,$f8d64 - $f8d5a
-
-Unknown_f8d64: ; f8d64 (3e:4d64)
-INCBIN "baserom.gbc",$f8d64,$f8d6d - $f8d64
-
-Unknown_f8d6d: ; f8d6d (3e:4d6d)
-INCBIN "baserom.gbc",$f8d6d,$f8d76 - $f8d6d
-
-Unknown_f8d76: ; f8d76 (3e:4d76)
-INCBIN "baserom.gbc",$f8d76,$f8daa - $f8d76
-
-Unknown_f8daa: ; f8daa (3e:4daa)
-INCBIN "baserom.gbc",$f8daa,$f8dde - $f8daa
-
-PointerTable_f8dde: ; f8dde (3e:4dde)
- dw Unknown_f8df4
- dw Unknown_f8df7
- dw Unknown_f8e01
- dw Unknown_f8e0f
- dw Unknown_f8e19
- dw Unknown_f8e27
- dw Unknown_f8e35
- dw Unknown_f8e47
- dw Unknown_f8e5b
- dw Unknown_f8e65
- dw Unknown_f8e73
-
-Unknown_f8df4: ; f8df4 (3e:4df4)
-INCBIN "baserom.gbc",$f8df4,$f8df7 - $f8df4
-
-Unknown_f8df7: ; f8df7 (3e:4df7)
-INCBIN "baserom.gbc",$f8df7,$f8e01 - $f8df7
-
-Unknown_f8e01: ; f8e01 (3e:4e01)
-INCBIN "baserom.gbc",$f8e01,$f8e0f - $f8e01
-
-Unknown_f8e0f: ; f8e0f (3e:4e0f)
-INCBIN "baserom.gbc",$f8e0f,$f8e19 - $f8e0f
-
-Unknown_f8e19: ; f8e19 (3e:4e19)
-INCBIN "baserom.gbc",$f8e19,$f8e27 - $f8e19
-
-Unknown_f8e27: ; f8e27 (3e:4e27)
-INCBIN "baserom.gbc",$f8e27,$f8e35 - $f8e27
-
-Unknown_f8e35: ; f8e35 (3e:4e35)
-INCBIN "baserom.gbc",$f8e35,$f8e47 - $f8e35
-
-Unknown_f8e47: ; f8e47 (3e:4e47)
-INCBIN "baserom.gbc",$f8e47,$f8e5b - $f8e47
-
-Unknown_f8e5b: ; f8e5b (3e:4e5b)
-INCBIN "baserom.gbc",$f8e5b,$f8e65 - $f8e5b
-
-Unknown_f8e65: ; f8e65 (3e:4e65)
-INCBIN "baserom.gbc",$f8e65,$f8e73 - $f8e65
-
-Unknown_f8e73: ; f8e73 (3e:4e73)
-INCBIN "baserom.gbc",$f8e73,$f8ee5 - $f8e73
-
-NumberOfSongs2: ; f8ee5 (3e:4ee5)
- db $1f
-
-SongBanks2: ; f8ee6 (3e:4ee6)
- db BANK(Music_Stop)
- db BANK(Music_TitleScreen)
- db BANK(Music_BattleTheme1)
- db BANK(Music_BattleTheme2)
- db BANK(Music_BattleTheme3)
- db BANK(Music_PauseMenu)
- db BANK(Music_PCMainMenu)
- db BANK(Music_DeckMachine)
- db BANK(Music_CardPop)
- db BANK(Music_Overworld)
- db BANK(Music_PokemonDome)
- db BANK(Music_ChallengeHall)
- db BANK(Music_Club1)
- db BANK(Music_Club2)
- db BANK(Music_Club3)
- db BANK(Music_Ronald)
- db BANK(Music_Imakuni)
- db BANK(Music_HallOfHonor)
- db BANK(Music_Credits)
- db BANK(Music_Unused13)
- db BANK(Music_Unused14)
- db BANK(Music_MatchStart1)
- db BANK(Music_MatchStart2)
- db BANK(Music_MatchStart3)
- db BANK(Music_MatchVictory)
- db BANK(Music_MatchLoss)
- db BANK(Music_DarkDiddly)
- db BANK(Music_Unused1b)
- db BANK(Music_BoosterPack)
- db BANK(Music_Medal)
- db BANK(Music_Unused1e)
-
-SongHeaderPointers2: ; f8f05 (3e:4f05)
- dw Music_Stop
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw Music_PCMainMenu
- dw $0000
- dw $0000
- dw $0000
- dw Music_PokemonDome
- dw Music_ChallengeHall
- dw Music_Club1
- dw Music_Club2
- dw Music_Club3
- dw Music_Ronald
- dw Music_Imakuni
- dw Music_HallOfHonor
- dw Music_Credits
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Stop
- db %0000
-
-;Music_TitleScreen
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_BattleTheme1
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_BattleTheme2
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_BattleTheme3
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_PauseMenu
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-Music_PCMainMenu: ; f8f71 (3e:4f71)
- db %1111
- dw Music_PCMainMenu_Ch1 ; 5052
- dw Music_PCMainMenu_Ch2 ; 50ED
- dw Music_PCMainMenu_Ch3 ; 5189
- dw Music_PCMainMenu_Ch4 ; 522B
-
-;Music_DeckMachine
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_CardPop
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Overworld
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-Music_PokemonDome: ; f8f95 (3e:4f95)
- db %1111
- dw Music_PokemonDome_Ch1 ; 5251
- dw Music_PokemonDome_Ch2 ; 53F8
- dw Music_PokemonDome_Ch3 ; 5579
- dw Music_PokemonDome_Ch4 ; 5629
-
-Music_ChallengeHall: ; f8f9e (3e:4f9e)
- db %1111
- dw Music_ChallengeHall_Ch1 ; 5646
- dw Music_ChallengeHall_Ch2 ; 5883
- dw Music_ChallengeHall_Ch3 ; 5a92
- dw Music_ChallengeHall_Ch4 ; 5bA9
-
-Music_Club1: ; f8fa7 (3e:4fa7)
- db %1111
- dw Music_Club1_Ch1 ; 5bE5
- dw Music_Club1_Ch2 ; 5d5F
- dw Music_Club1_Ch3 ; 5eC4
- dw Music_Club1_Ch4 ; 6044
-
-Music_Club2: ; f8fb0 (3e:4fb0)
- db %0111
- dw Music_Club2_Ch1 ; 6077
- dw Music_Club2_Ch2 ; 60E3
- dw Music_Club2_Ch3 ; 6164
- dw $0000
-
-Music_Club3: ; f8fb9 (3e:4fb9)
- db %1111
- dw Music_Club3_Ch1 ; 6210
- dw Music_Club3_Ch2 ; 6423
- dw Music_Club3_Ch3 ; 663E
- dw Music_Club3_Ch4 ; 6772
-
-Music_Ronald: ; f8fc2 (3e:4fc2)
- db %1111
- dw Music_Ronald_Ch1 ; 67A0
- dw Music_Ronald_Ch2 ; 6a0E
- dw Music_Ronald_Ch3 ; 6bC0
- dw Music_Ronald_Ch4 ; 6cE0
-
-Music_Imakuni: ; f8fcb (3e:4fcb)
- db %1111
- dw Music_Imakuni_Ch1 ; 6d55
- dw Music_Imakuni_Ch2 ; 6e32
- dw Music_Imakuni_Ch3 ; 6eBC
- dw Music_Imakuni_Ch4 ; 6fA4
-
-Music_HallOfHonor: ; f8fd4 (3e:4fd4)
- db %0111
- dw Music_HallOfHonor_Ch1 ; 6fEA
- dw Music_HallOfHonor_Ch2 ; 706E
- dw Music_HallOfHonor_Ch3 ; 70D5
- dw $0000
-
-Music_Credits: ; f8fdd (3e:4fdd)
- db %1111
- dw Music_Credits_Ch1 ; 71FE
- dw Music_Credits_Ch2 ; 768A
- dw Music_Credits_Ch3 ; 7b9D
- dw Music_Credits_Ch4 ; 7e51
-
-;Music_Unused13
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Unused14
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_MatchStart1
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_MatchStart2
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_MatchStart3
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_MatchVictory
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_MatchLoss
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_DarkDiddly
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Unused1b
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_BoosterPack
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Medal
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
-;Music_Unused1e
- db %0000
- dw $0000
- dw $0000
- dw $0000
- dw $0000
-
+Func_f8000: ; f8000 (3e:4000)
+ jp Func_f807d
+
+Func_f8003: ; f8003 (3e:4003)
+ jp Func_f80e9
+
+Func_f8006: ; f8006 (3e:4006)
+ jp Func_f8021
+
+Func_f8009: ; f8009 (3e:4009)
+ jp Func_f802d
+
+Func_f800c: ; f800c (3e:400c)
+ jp Func_f804e
+
+Func_f800f: ; f800f (3e:400f)
+ jp Func_f8052
+
+Func_f8012: ; f8012 (3e:4012)
+ jp Func_f805c
+
+Func_f8015: ; f8015 (3e:4015)
+ jp Func_f8066
+
+Func_f8018: ; f8018 (3e:4018)
+ jp Func_f806f
+
+Func_f801b: ; f801b (3e:401b)
+ jp Func_f89c4
+
+Func_f801e: ; f801e (3e:401e)
+ jp Func_f89d0
+
+Func_f8021: ; f8021 (3e:4021)
+ push hl
+ ld hl, NumberOfSongs2
+ cp [hl]
+ jr nc, .asm_f802b
+ ld [$dd80], a
+.asm_f802b
+ pop hl
+ ret
+
+Func_f802d: ; f802d (3e:402d)
+ push bc
+ push hl
+ ld b, $0
+ ld c, a
+ or a
+ jr z, .asm_f8043
+ ld hl, $4e85
+ add hl, bc
+ ld b, [hl]
+ ld a, [$dd83]
+ or a
+ jr z, .asm_f8043
+ cp b
+ jr c, .asm_f804b
+.asm_f8043
+ ld a, b
+ ld [$dd83], a
+ ld a, c
+ ld [$dd82], a
+.asm_f804b
+ pop hl
+ pop bc
+ ret
+
+Func_f804e: ; f804e (3e:404e)
+ ld [$ddf0], a
+ ret
+
+Func_f8052: ; f8052 (3e:4052)
+ ld a, [$dd80]
+ cp $80
+ ld a, $1
+ ret nz
+ xor a
+ ret
+
+Func_f805c: ; f805c (3e:405c)
+ ld a, [$dd82]
+ cp $80
+ ld a, $1
+ ret nz
+ xor a
+ ret
+
+Func_f8066: ; f8066 (3e:4066)
+ ld a, [$ddf2]
+ xor $1
+ ld [$ddf2], a
+ ret
+
+Func_f806f: ; f806f (3e:406f)
+ push bc
+ push af
+ and $7
+ ld b, a
+ swap b
+ or b
+ ld [$ddf1], a
+ pop af
+ pop bc
+ ret
+
+Func_f807d: ; f807d (3e:407d)
+ xor a
+ ld [$ff26], a
+ ld a, $80
+ ld [$ff26], a
+ ld a, $77
+ ld [$ff24], a
+ ld a, $ff
+ ld [$ff25], a
+ ld a, $3d
+ ld [$dd81], a
+ ld a, $80
+ ld [$dd80], a
+ ld [$dd82], a
+ ld a, $77
+ ld [$ddf1], a
+ xor a
+ ld [$dd8c], a
+ ld [$de53], a
+ ld [$dd8b], a
+ ld [$ddef], a
+ ld [$ddf0], a
+ ld [$ddf2], a
+ dec a
+ ld [$dd84], a
+ ld de, $0001
+ ld bc, $0000
+.asm_f80bb
+ ld hl, $dd8d
+ add hl, bc
+ ld [hl], d
+ ld hl, $dd91
+ add hl, bc
+ ld [hl], d
+ ld hl, $ddb3
+ add hl, bc
+ ld [hl], d
+ ld hl, $ddcb
+ add hl, bc
+ ld [hl], d
+ ld hl, $ddbf
+ add hl, bc
+ ld [hl], d
+ inc c
+ ld a, c
+ cp $4
+ jr nz, .asm_f80bb
+ ld hl, Unknown_f8c20
+ ld bc, $ddf3
+ ld d, $8
+.asm_f80e2
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ dec d
+ jr nz, .asm_f80e2
+ ret
+
+Func_f80e9: ; f80e9 (3e:40e9)
+ call Func_f82a4
+ call Func_f811c
+ ld hl, $4003
+ call Bankswitch3dTo3f
+ ld a, [$dd81]
+ ld [$ff80], a
+ ld [$2000], a
+ ld a, [$ddf2]
+ cp $0
+ jr z, .asm_f8109
+ call Func_f8980
+ jr .asm_f8115
+.asm_f8109
+ call Func_f82a5
+ call Func_f830a
+ call Func_f836f
+ call Func_f83ce
+.asm_f8115
+ call Func_f8866
+ call Func_f89b1
+ ret
+
+Func_f811c: ; f811c (3e:411c)
+ ld a, [$dd80]
+ rla
+ jr c, .asm_f8133
+ call Func_f814b
+ ld a, [$dd80]
+ call Func_f818c
+ ld a, [$dd80]
+ or $80
+ ld [$dd80], a
+.asm_f8133
+ ld a, [$dd82]
+ rla
+ jr c, .asm_f814a
+ ld a, [$dd82]
+ ld hl, $4000
+ call Bankswitch3dTo3f
+ ld a, [$dd82]
+ or $80
+ ld [$dd82], a
+.asm_f814a
+ ret
+
+Func_f814b: ; f814b (3e:414b)
+ ld a, [$dd8c]
+ ld d, a
+ xor a
+ ld [$dd8d], a
+ bit 0, d
+ jr nz, .asm_f815f
+ ld a, $8
+ ld [$ff12], a
+ swap a
+ ld [$ff14], a
+.asm_f815f
+ xor a
+ ld [$dd8e], a
+ bit 1, d
+ jr nz, .asm_f816f
+ ld a, $8
+ ld [$ff17], a
+ swap a
+ ld [$ff19], a
+.asm_f816f
+ xor a
+ ld [$dd90], a
+ bit 3, d
+ jr nz, .asm_f817f
+ ld a, $8
+ ld [$ff21], a
+ swap a
+ ld [$ff23], a
+.asm_f817f
+ xor a
+ ld [$dd8f], a
+ bit 2, d
+ jr nz, .asm_f818b
+ ld a, $0
+ ld [$ff1c], a
+.asm_f818b
+ ret
+
+Func_f818c: ; f818c (3e:418c)
+ push af
+ ld c, a
+ ld b, $0
+ ld hl, SongBanks1
+ add hl, bc
+ ld a, [hl]
+ ld [$dd81], a
+ ld [$ff80], a
+ ld [$2000], a
+ pop af
+ add a
+ ld c, a
+ ld b, $0
+ ld hl, SongHeaderPointers1
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld h, [hl]
+ ld l, e
+ ld e, [hl]
+ inc hl
+ ld b, h
+ ld c, l
+ rr e
+ jr nc, .asm_f81eb
+ ld a, [bc]
+ inc bc
+ ld [$dd95], a
+ ld [$dd9d], a
+ ld a, [bc]
+ inc bc
+ ld [$dd96], a
+ ld [$dd9e], a
+ ld a, $1
+ ld [$ddbb], a
+ ld [$dd8d], a
+ xor a
+ ld [$dd91], a
+ ld [$ddea], a
+ ld [$ddbf], a
+ ld [$dddf], a
+ ld [$ddcb], a
+ ld a, [Unknown_f8c20]
+ ld [$ddf3], a
+ ld a, [Unknown_f8c20 + 1]
+ ld [$ddf4], a
+ ld a, $8
+ ld [$ddc7], a
+.asm_f81eb
+ rr e
+ jr nc, .asm_f8228
+ ld a, [bc]
+ inc bc
+ ld [$dd97], a
+ ld [$dd9f], a
+ ld a, [bc]
+ inc bc
+ ld [$dd98], a
+ ld [$dda0], a
+ ld a, $1
+ ld [$ddbc], a
+ ld [$dd8e], a
+ xor a
+ ld [$dd92], a
+ ld [$ddeb], a
+ ld [$ddc0], a
+ ld [$dde0], a
+ ld [$ddcc], a
+ ld a, [Unknown_f8c20 + 2]
+ ld [$ddf5], a
+ ld a, [Unknown_f8c20 + 3]
+ ld [$ddf6], a
+ ld a, $8
+ ld [$ddc8], a
+.asm_f8228
+ rr e
+ jr nc, .asm_f8265
+ ld a, [bc]
+ inc bc
+ ld [$dd99], a
+ ld [$dda1], a
+ ld a, [bc]
+ inc bc
+ ld [$dd9a], a
+ ld [$dda2], a
+ ld a, $1
+ ld [$ddbd], a
+ ld [$dd8f], a
+ xor a
+ ld [$dd93], a
+ ld [$ddec], a
+ ld [$ddc1], a
+ ld [$dde1], a
+ ld [$ddcd], a
+ ld a, [Unknown_f8c20 + 4]
+ ld [$ddf7], a
+ ld a, [Unknown_f8c20 + 5]
+ ld [$ddf8], a
+ ld a, $40
+ ld [$ddc9], a
+.asm_f8265
+ rr e
+ jr nc, .asm_f829f
+ ld a, [bc]
+ inc bc
+ ld [$dd9b], a
+ ld [$dda3], a
+ ld a, [bc]
+ inc bc
+ ld [$dd9c], a
+ ld [$dda4], a
+ ld a, $1
+ ld [$ddbe], a
+ ld [$dd90], a
+ xor a
+ ld [$dd94], a
+ ld [$ddc2], a
+ ld [$dde2], a
+ ld [$ddce], a
+ ld a, [Unknown_f8c20 + 6]
+ ld [$ddf9], a
+ ld a, [Unknown_f8c20 + 7]
+ ld [$ddfa], a
+ ld a, $40
+ ld [$ddca], a
+.asm_f829f
+ xor a
+ ld [$ddf2], a
+ ret
+
+Func_f82a4: ; f82a4 (3e:42a4)
+ ret
+
+Func_f82a5: ; f82a5 (3e:42a5)
+ ld a, [$dd8d]
+ or a
+ jr z, .asm_f82fa
+ ld a, [$ddb7]
+ cp $0
+ jr z, .asm_f82d4
+ ld a, [$ddc3]
+ dec a
+ ld [$ddc3], a
+ jr nz, .asm_f82d4
+ ld a, [$ddbb]
+ cp $1
+ jr z, .asm_f82d4
+ ld a, [$dd8c]
+ bit 0, a
+ jr nz, .asm_f82d4
+ ld hl, $ff12
+ ld a, [$ddc7]
+ ld [hli], a
+ inc hl
+ ld a, $80
+ ld [hl], a
+.asm_f82d4
+ ld a, [$ddbb]
+ dec a
+ ld [$ddbb], a
+ jr nz, .asm_f82f4
+ ld a, [$dd96]
+ ld h, a
+ ld a, [$dd95]
+ ld l, a
+ ld bc, $0000
+ call Func_f8414
+ ld a, [$dd8d]
+ or a
+ jr z, .asm_f82fa
+ call Func_f8714
+.asm_f82f4
+ ld a, $0
+ call Func_f885a
+ ret
+.asm_f82fa
+ ld a, [$dd8c]
+ bit 0, a
+ jr nz, .asm_f8309
+ ld a, $8
+ ld [$ff12], a
+ swap a
+ ld [$ff14], a
+.asm_f8309
+ ret
+
+Func_f830a: ; f830a (3e:430a)
+ ld a, [$dd8e]
+ or a
+ jr z, .asm_f835f
+ ld a, [$ddb8]
+ cp $0
+ jr z, .asm_f8339
+ ld a, [$ddc4]
+ dec a
+ ld [$ddc4], a
+ jr nz, .asm_f8339
+ ld a, [$ddbc]
+ cp $1
+ jr z, .asm_f8339
+ ld a, [$dd8c]
+ bit 1, a
+ jr nz, .asm_f8339
+ ld hl, $ff17
+ ld a, [$ddc8]
+ ld [hli], a
+ inc hl
+ ld a, $80
+ ld [hl], a
+.asm_f8339
+ ld a, [$ddbc]
+ dec a
+ ld [$ddbc], a
+ jr nz, .asm_f8359
+ ld a, [$dd98]
+ ld h, a
+ ld a, [$dd97]
+ ld l, a
+ ld bc, $0001
+ call Func_f8414
+ ld a, [$dd8e]
+ or a
+ jr z, .asm_f835f
+ call Func_f875a
+.asm_f8359
+ ld a, $1
+ call Func_f885a
+ ret
+.asm_f835f
+ ld a, [$dd8c]
+ bit 1, a
+ jr nz, .asm_f836e
+ ld a, $8
+ ld [$ff17], a
+ swap a
+ ld [$ff19], a
+.asm_f836e
+ ret
+
+Func_f836f: ; f836f (3e:436f)
+ ld a, [$dd8f]
+ or a
+ jr z, .asm_f83be
+ ld a, [$ddb9]
+ cp $0
+ jr z, .asm_f8398
+ ld a, [$ddc5]
+ dec a
+ ld [$ddc5], a
+ jr nz, .asm_f8398
+ ld a, [$dd8c]
+ bit 2, a
+ jr nz, .asm_f8398
+ ld a, [$ddbd]
+ cp $1
+ jr z, .asm_f8398
+ ld a, [$ddc9]
+ ld [$ff1c], a
+.asm_f8398
+ ld a, [$ddbd]
+ dec a
+ ld [$ddbd], a
+ jr nz, .asm_f83b8
+ ld a, [$dd9a]
+ ld h, a
+ ld a, [$dd99]
+ ld l, a
+ ld bc, $0002
+ call Func_f8414
+ ld a, [$dd8f]
+ or a
+ jr z, .asm_f83be
+ call Func_f879c
+.asm_f83b8
+ ld a, $2
+ call Func_f885a
+ ret
+.asm_f83be
+ ld a, [$dd8c]
+ bit 2, a
+ jr nz, .asm_f83cd
+ ld a, $0
+ ld [$ff1c], a
+ ld a, $80
+ ld [$ff1e], a
+.asm_f83cd
+ ret
+
+Func_f83ce: ; f83ce (3e:43ce)
+ ld a, [$dd90]
+ or a
+ jr z, .asm_f8400
+ ld a, [$ddbe]
+ dec a
+ ld [$ddbe], a
+ jr nz, .asm_f83f6
+ ld a, [$dd9c]
+ ld h, a
+ ld a, [$dd9b]
+ ld l, a
+ ld bc, $0003
+ call Func_f8414
+ ld a, [$dd90]
+ or a
+ jr z, .asm_f8400
+ call Func_f880a
+ jr .asm_f8413
+.asm_f83f6
+ ld a, [$ddef]
+ or a
+ jr z, .asm_f8413
+ call Func_f8839
+ ret
+.asm_f8400
+ ld a, [$dd8c]
+ bit 3, a
+ jr nz, .asm_f8413
+ xor a
+ ld [$ddef], a
+ ld a, $8
+ ld [$ff21], a
+ swap a
+ ld [$ff23], a
+.asm_f8413
+ ret
+
+Func_f8414: ; f8414 (3e:4414)
+ ld a, [hli]
+ push hl
+ push af
+ cp $d0
+ jr c, .asm_f848c
+ sub $d0
+ add a
+ ld e, a
+ ld d, $0
+ ld hl, .data_f842c
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld h, d
+ ld l, e
+ pop af
+ jp [hl]
+
+.data_f842c
+ dw Func_f8598
+ dw Func_f85a3
+ dw Func_f85a3
+ dw Func_f85a3
+ dw Func_f85a3
+ dw Func_f85a3
+ dw Func_f85a3
+ dw Func_f85bb
+ dw Func_f85c3
+ dw Func_f85cb
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f85d4
+ dw Func_f85ef
+ dw Func_f85fd
+ dw Func_f8609
+ dw Func_f861e
+ dw Func_f8638
+ dw Func_f863f
+ dw Func_f8656
+ dw Func_f8667
+ dw Func_f8674
+ dw Func_f8683
+ dw Func_f8690
+ dw Func_f86a0
+ dw Func_f86ad
+ dw Func_f86ba
+ dw Func_f86cc
+ dw Func_f86d9
+ dw Func_f86e6
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+ dw Func_f86f4
+
+.asm_f848c
+ push af
+ ld a, [hl]
+ ld e, a
+ ld hl, $dd91
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f84b0
+ ld [hl], $1
+ xor a
+ ld hl, $dddb
+ add hl, bc
+ ld [hl], a
+ ld hl, $dde3
+ add hl, bc
+ ld [hl], a
+ inc [hl]
+ ld hl, $ddd7
+ add hl, bc
+ ld a, [hl]
+ ld hl, $ddd3
+ add hl, bc
+ ld [hl], a
+.asm_f84b0
+ pop af
+ push de
+ ld hl, $ddcf
+ add hl, bc
+ ld d, [hl]
+ and $f
+ inc a
+ cp d
+ jr nc, .asm_f84c0
+ ld e, a
+ ld a, d
+ ld d, e
+.asm_f84c0
+ ld e, a
+.asm_f84c1
+ dec d
+ jr z, .asm_f84c7
+ add e
+ jr .asm_f84c1
+.asm_f84c7
+ ld hl, $ddbb
+ add hl, bc
+ ld [hl], a
+ pop de
+ ld d, a
+ ld a, e
+ cp $d9
+ ld a, d
+ jr z, .asm_f84fb
+ ld e, a
+ ld hl, $ddbf
+ add hl, bc
+ ld a, [hl]
+ cp $8
+ ld d, a
+ ld a, e
+ jr z, .asm_f84fb
+ push hl
+ push bc
+ ld b, $0
+ ld c, a
+ ld hl, $0000
+.asm_f84e8
+ add hl, bc
+ dec d
+ jr nz, .asm_f84e8
+ srl h
+ rr l
+ srl h
+ rr l
+ srl h
+ rr l
+ ld a, l
+ pop bc
+ pop hl
+.asm_f84fb
+ ld hl, $ddc3
+ add hl, bc
+ ld [hl], a
+ pop af
+ and $f0
+ ld hl, $ddb7
+ add hl, bc
+ ld [hl], a
+ or a
+ jr nz, .asm_f850e
+ jp .asm_f858e
+.asm_f850e
+ swap a
+ dec a
+ ld h, a
+ ld a, $3
+ cp c
+ ld a, h
+ jr z, .asm_f851a
+ jr .asm_f8564
+.asm_f851a
+ push af
+ ld hl, $ddaf
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ sla a
+ add d
+ sla a
+ sla a
+ sla a
+ ld e, a
+ pop af
+ ld hl, PointerTable_f8d34
+ add a
+ ld d, c
+ ld c, a
+ add hl, bc
+ ld c, e
+ add hl, bc
+ ld c, d
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+ ld d, a
+ ld a, [$dd84]
+ and $77
+ or d
+ ld [$dd84], a
+ ld de, $ddab
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld b, [hl]
+ inc hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ ld b, $0
+ ld a, l
+ ld d, h
+ ld hl, $dded
+ ld [hli], a
+ ld [hl], d
+ ld a, $1
+ ld [$ddef], a
+ jr .asm_f858e
+.asm_f8564
+ ld hl, $dda5
+ add hl, bc
+ add hl, bc
+ push hl
+ ld hl, $ddaf
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, Unknown_f8c28
+ add hl, de
+ add a
+ ld e, [hl]
+ add e
+ ld hl, $ddcb
+ add hl, bc
+ ld e, [hl]
+ add e
+ add e
+ ld e, a
+ ld hl, $4c30
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ call Func_f8967
+ pop hl
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+.asm_f858e
+ pop de
+ ld hl, $dd95
+ add hl, bc
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+Func_f8598: ; f8598 (3e:4598)
+ pop hl
+ ld a, [hli]
+ push hl
+ ld hl, $ddcf
+ add hl, bc
+ ld [hl], a
+ jp Func_f8710
+
+Func_f85a3: ; f85a3 (3e:45a3)
+ and $7
+ dec a
+ ld hl, $ddaf
+ add hl, bc
+ push af
+ ld a, c
+ cp $2
+ jr nz, .asm_f85b6
+ pop af
+ inc a
+ ld [hl], a
+ jp Func_f8710
+.asm_f85b6
+ pop af
+ ld [hl], a
+ jp Func_f8710
+
+Func_f85bb: ; f85bb (3e:45bb)
+ ld hl, $ddaf
+ add hl, bc
+ inc [hl]
+ jp Func_f8710
+
+Func_f85c3: ; f85c3 (3e:45c3)
+ ld hl, $ddaf
+ add hl, bc
+ dec [hl]
+ jp Func_f8710
+
+Func_f85cb: ; f85cb (3e:45cb)
+ ld hl, $dd91
+ add hl, bc
+ ld [hl], $80
+ jp Func_f8710
+
+Func_f85d4: ; f85d4 (3e:45d4)
+ pop hl
+ ld a, [hli]
+ push hl
+ push bc
+ inc c
+ ld e, $ee
+.asm_f85db
+ dec c
+ jr z, .asm_f85e3
+ rlca
+ rlc e
+ jr .asm_f85db
+.asm_f85e3
+ ld d, a
+ ld hl, $dd84
+ ld a, [hl]
+ and e
+ or d
+ ld [hl], a
+ pop bc
+ jp Func_f8710
+
+Func_f85ef: ; f85ef (3e:45ef)
+ pop de
+ push de
+ dec de
+ ld hl, $dd9d
+ add hl, bc
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ jp Func_f8710
+
+Func_f85fd: ; f85fd (3e:45fd)
+ pop hl
+ ld hl, $dd9d
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp Func_f8414
+
+Func_f8609: ; f8609 (3e:4609)
+ pop de
+ ld a, [de]
+ inc de
+ push af
+ call Func_f86fc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ pop af
+ ld [hl], a
+ inc hl
+ push de
+ call Func_f8705
+ jp Func_f8710
+
+Func_f861e: ; f861e (3e:461e)
+ call Func_f86fc
+ dec hl
+ ld a, [hl]
+ dec a
+ jr z, .asm_f8630
+ ld [hld], a
+ ld d, [hl]
+ dec hl
+ ld e, [hl]
+ pop hl
+ ld h, d
+ ld l, e
+ jp Func_f8414
+.asm_f8630
+ dec hl
+ dec hl
+ call Func_f8705
+ jp Func_f8710
+
+Func_f8638: ; f8638 (3e:4638)
+ pop hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp Func_f8414
+
+Func_f863f: ; f863f (3e:463f)
+ call Func_f86fc
+ pop de
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, [de]
+ ld b, a
+ inc de
+ ld a, [de]
+ ld d, a
+ ld e, b
+ ld b, $0
+ push de
+ call Func_f8705
+ jp Func_f8710
+
+Func_f8656: ; f8656 (3e:4656)
+ pop de
+ call Func_f86fc
+ dec hl
+ ld a, [hld]
+ ld e, [hl]
+ ld d, a
+ inc de
+ inc de
+ push de
+ call Func_f8705
+ jp Func_f8710
+
+Func_f8667: ; f8667 (3e:4667)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddea
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f8674: ; f8674 (3e:4674)
+ pop de
+ ld a, [de]
+ and $c0
+ inc de
+ ld hl, $dd86
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f8683: ; f8683 (3e:4683)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $dde7
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f8690: ; f8690 (3e:4690)
+ pop de
+ ld a, [de]
+ inc de
+ ld [$dd8a], a
+ ld a, $1
+ ld [$dd8b], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f86a0: ; f86a0 (3e:46a0)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddbf
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f86ad: ; f86ad (3e:46ad)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddc7
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f86ba: ; f86ba (3e:46ba)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddd3
+ add hl, bc
+ ld [hl], a
+ ld hl, $ddd7
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f86cc: ; f86cc (3e:46cc)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $dddf
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f86d9: ; f86d9 (3e:46d9)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddcb
+ add hl, bc
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f86e6: ; f86e6 (3e:46e6)
+ pop de
+ ld a, [de]
+ inc de
+ ld hl, $ddcb
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld h, d
+ ld l, e
+ jp Func_f8414
+
+Func_f86f4: ; f86f4 (3e:46f4)
+ ld hl, $dd8d
+ add hl, bc
+ ld [hl], $0
+ pop hl
+ ret
+
+Func_f86fc: ; f86fc (3e:46fc)
+ ld hl, $ddf3
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+
+Func_f8705: ; f8705 (3e:4705)
+ ld d, h
+ ld e, l
+ ld hl, $ddf3
+ add hl, bc
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+Func_f8710: ; f8710 (3e:4710)
+ pop hl
+ jp Func_f8414
+
+Func_f8714: ; f8714 (3e:4714)
+ ld a, [$dd8c]
+ bit 0, a
+ jr nz, .asm_f8749
+ ld a, [$ddb7]
+ cp $0
+ jr z, .asm_f874a
+ ld d, $0
+ ld hl, $dd91
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f8733
+ ld a, [$dde7]
+ ld [$ff12], a
+ ld d, $80
+.asm_f8733
+ ld [hl], $2
+ ld a, $8
+ ld [$ff10], a
+ ld a, [$dd86]
+ ld [$ff11], a
+ ld a, [$dda5]
+ ld [$ff13], a
+ ld a, [$dda6]
+ or d
+ ld [$ff14], a
+.asm_f8749
+ ret
+.asm_f874a
+ ld hl, $dd91
+ ld [hl], $0
+ ld hl, $ff12
+ ld a, $8
+ ld [hli], a
+ inc hl
+ swap a
+ ld [hl], a
+ ret
+
+Func_f875a: ; f875a (3e:475a)
+ ld a, [$dd8c]
+ bit 1, a
+ jr nz, .asm_f878b
+ ld a, [$ddb8]
+ cp $0
+ jr z, .asm_f878c
+ ld d, $0
+ ld hl, $dd92
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f8779
+ ld a, [$dde8]
+ ld [$ff17], a
+ ld d, $80
+.asm_f8779
+ ld [hl], $2
+ ld a, [$dd87]
+ ld [$ff16], a
+ ld a, [$dda7]
+ ld [$ff18], a
+ ld a, [$dda8]
+ or d
+ ld [$ff19], a
+.asm_f878b
+ ret
+.asm_f878c
+ ld hl, $dd92
+ ld [hl], $0
+ ld hl, $ff17
+ ld a, $8
+ ld [hli], a
+ inc hl
+ swap a
+ ld [hl], a
+ ret
+
+Func_f879c: ; f879c (3e:479c)
+ ld a, [$dd8c]
+ bit 2, a
+ jr nz, .asm_f87e0
+ ld d, $0
+ ld a, [$dd8b]
+ or a
+ jr z, .asm_f87b3
+ xor a
+ ld [$ff1a], a
+ call Func_f87ea
+ ld d, $80
+.asm_f87b3
+ ld a, [$ddb9]
+ cp $0
+ jr z, .asm_f87e1
+ ld hl, $dd93
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f87cc
+ ld a, [$dde9]
+ ld [$ff1c], a
+ xor a
+ ld [$ff1a], a
+ ld d, $80
+.asm_f87cc
+ ld [hl], $2
+ xor a
+ ld [$ff1b], a
+ ld a, [$dda9]
+ ld [$ff1d], a
+ ld a, $80
+ ld [$ff1a], a
+ ld a, [$ddaa]
+ or d
+ ld [$ff1e], a
+.asm_f87e0
+ ret
+.asm_f87e1
+ ld hl, $dd91
+ ld [hl], $0
+ xor a
+ ld [$ff1a], a
+ ret
+
+Func_f87ea: ; f879c (3e:47ea)
+ ld a, [$dd8a]
+ add a
+ ld d, $0
+ ld e, a
+ ld hl, PointerTable_f8cda
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld b, d
+ ld de, $ff30
+.asm_f87fc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ inc b
+ ld a, b
+ cp $10
+ jr nz, .asm_f87fc
+ xor a
+ ld [$dd8b], a
+ ret
+
+Func_f880a: ; f880a (3e:480a)
+ ld a, [$dd8c]
+ bit 3, a
+ jr nz, .asm_f8829
+ ld a, [$ddba]
+ cp $0
+ jr z, asm_f882a
+ ld de, $ff20
+ ld hl, $ddab
+ ld a, [hli]
+ ld [de], a
+ inc e
+ ld a, [hli]
+ ld [de], a
+ inc e
+ ld a, [hli]
+ ld [de], a
+ inc e
+ ld a, [hli]
+ ld [de], a
+.asm_f8829
+ ret
+asm_f882a
+ xor a
+ ld [$ddef], a
+ ld hl, $ff21
+ ld a, $8
+ ld [hli], a
+ inc hl
+ swap a
+ ld [hl], a
+ ret
+
+Func_f8839: ; f8839 (3e:4839)
+ ld a, [$dd8c]
+ bit 3, a
+ jr z, .asm_f8846
+ xor a
+ ld [$ddef], a
+ jr .asm_f8859
+.asm_f8846
+ ld hl, $dded
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ld a, [de]
+ cp $ff
+ jr nz, .asm_f8853
+ jr asm_f882a
+.asm_f8853
+ ld [$ff22], a
+ inc de
+ ld a, d
+ ld [hld], a
+ ld [hl], e
+.asm_f8859
+ ret
+
+Func_f885a: ; f885a (3e:485a)
+ push af
+ ld b, $0
+ ld c, a
+ call Func_f8898
+ pop af
+ call Func_f890b
+ ret
+
+Func_f8866: ; f8866 (3e:4866)
+ ld a, [$ddf1]
+ ld [$ff24], a
+ ld a, [$dd8c]
+ or a
+ ld hl, $dd84
+ ld a, [hli]
+ jr z, .asm_f8888
+ ld a, [$dd8c]
+ and $f
+ ld d, a
+ swap d
+ or d
+ ld d, a
+ xor $ff
+ ld e, a
+ ld a, [hld]
+ and d
+ ld d, a
+ ld a, [hl]
+ and e
+ or d
+.asm_f8888
+ ld d, a
+ ld a, [$ddf0]
+ xor $ff
+ and $f
+ ld e, a
+ swap e
+ or e
+ and d
+ ld [$ff25], a
+ ret
+
+Func_f8898: ; f8898 (3e:4898)
+ ld hl, $dddf
+ add hl, bc
+ ld a, [hl]
+ cp $0
+ jr z, .asm_f8902
+ ld hl, $dde3
+ add hl, bc
+ cp [hl]
+ jr z, .asm_f88ab
+ inc [hl]
+ jr .asm_f8902
+.asm_f88ab
+ ld hl, $ddd3
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, PointerTable_f8dde
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ ld hl, $dddb
+ add hl, bc
+ ld d, $0
+ ld e, [hl]
+ inc [hl]
+ pop hl
+ add hl, de
+ ld a, [hli]
+ cp $80
+ jr z, .asm_f88ee
+ ld hl, $dda5
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ bit 7, a
+ jr nz, .asm_f88df
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ and $7
+ ld d, a
+ ret
+.asm_f88df
+ xor $ff
+ inc a
+ push bc
+ ld c, a
+ ld a, e
+ sub c
+ ld e, a
+ ld a, d
+ sbc b
+ and $7
+ ld d, a
+ pop bc
+ ret
+.asm_f88ee
+ push hl
+ ld hl, $dddb
+ add hl, bc
+ ld [hl], $0
+ pop hl
+ ld a, [hl]
+ cp $80
+ jr z, .asm_f88ab
+ ld hl, $ddd3
+ add hl, bc
+ ld [hl], a
+ jr .asm_f88ab
+.asm_f8902
+ ld hl, $dda5
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ret
+
+Func_f890b: ; f890b (3e:490b)
+ cp $0
+ jr nz, .asm_f892c
+ ld a, [$dddf]
+ cp $0
+ jr z, .asm_f8966
+ ld a, [$dd8c]
+ bit 0, a
+ jr nz, .asm_f8966
+ ld a, e
+ ld [$ff13], a
+ ld a, [$ff11]
+ and $c0
+ ld [$ff11], a
+ ld a, d
+ and $3f
+ ld [$ff14], a
+ ret
+.asm_f892c
+ cp $1
+ jr nz, .asm_f894b
+ ld a, [$dde0]
+ cp $0
+ jr z, .asm_f8966
+ ld a, [$dd8c]
+ bit 1, a
+ jr nz, .asm_f8966
+ ld a, e
+ ld [$ff18], a
+ ld a, [$ff16]
+ and $c0
+ ld [$ff16], a
+ ld a, d
+ ld [$ff19], a
+ ret
+.asm_f894b
+ cp $2
+ jr nz, .asm_f8966
+ ld a, [$dde1]
+ cp $0
+ jr z, .asm_f8966
+ ld a, [$dd8c]
+ bit 2, a
+ jr nz, .asm_f8966
+ ld a, e
+ ld [$ff1d], a
+ xor a
+ ld [$ff1b], a
+ ld a, d
+ ld [$ff1e], a
+.asm_f8966
+ ret
+
+Func_f8967: ; f8967 (3e:4967)
+ ld hl, $ddea
+ add hl, bc
+ ld a, [hl]
+ bit 7, a
+ jr nz, .asm_f8976
+ add e
+ ld e, a
+ ld a, d
+ adc b
+ ld d, a
+ ret
+.asm_f8976
+ xor $ff
+ ld h, a
+ ld a, e
+ sub h
+ ld e, a
+ ld a, d
+ sbc b
+ ld d, a
+ ret
+
+Func_f8980: ; f8980 (3e:4980)
+ ld a, [$dd8c]
+ ld d, a
+ bit 0, d
+ jr nz, .asm_f8990
+ ld a, $8
+ ld [$ff12], a
+ swap a
+ ld [$ff14], a
+.asm_f8990
+ bit 1, d
+ jr nz, .asm_f899c
+ swap a
+ ld [$ff17], a
+ swap a
+ ld [$ff19], a
+.asm_f899c
+ bit 3, d
+ jr nz, .asm_f89a8
+ swap a
+ ld [$ff21], a
+ swap a
+ ld [$ff23], a
+.asm_f89a8
+ bit 2, d
+ jr nz, .asm_f89b0
+ ld a, $0
+ ld [$ff1c], a
+.asm_f89b0
+ ret
+
+Func_f89b1: ; f89b1 (3e:49b1)
+ ld hl, $dd8d
+ xor a
+ add [hl]
+ inc hl
+ add [hl]
+ inc hl
+ add [hl]
+ inc hl
+ add [hl]
+ or a
+ ret nz
+ ld a, $80
+ ld [$dd80], a
+ ret
+
+Func_f89c4: ; f89c4 (3e:49c4)
+ di
+ call Func_f8980
+ call Func_f89dc
+ call Func_f814b
+ ei
+ ret
+
+Func_f89d0: ; f89d0 (3e:49d0)
+ di
+ call Func_f8980
+ call Func_f814b
+ call Func_f8b01
+ ei
+ ret
+
+Func_f89dc: ; f89dc (3e:49dc)
+ ld a, [$dd80]
+ ld [$de55], a
+ ld a, [$dd81]
+ ld [$de56], a
+ ld a, [$dd84]
+ ld [$de57], a
+ ld hl, $dd86
+ ld de, $de58
+ ld a, $4
+ call Func_f8c18
+ ld a, [$dd8a]
+ ld [$de5c], a
+ ld a, [$dd8b]
+ ld [$de5d], a
+ ld hl, $dd8d
+ ld de, $de5e
+ ld a, $4
+ call Func_f8c18
+ ld hl, $dd91
+ ld de, $de62
+ ld a, $4
+ call Func_f8c18
+ ld hl, $dd95
+ ld de, $de66
+ ld a, $8
+ call Func_f8c18
+ ld hl, $dd9d
+ ld de, $de6e
+ ld a, $8
+ call Func_f8c18
+ ld a, [$ddab]
+ ld [$de76], a
+ ld a, [$ddac]
+ ld [$de77], a
+ ld hl, $ddaf
+ ld de, $de78
+ ld a, $4
+ call Func_f8c18
+ ld hl, $ddb3
+ ld de, $de7c
+ ld a, $4
+ call Func_f8c18
+ ld hl, $ddb7
+ ld de, $de80
+ ld a, $4
+ call Func_f8c18
+ ld hl, $ddbb
+ ld de, $de84
+ ld a, $4
+ call Func_f8c18
+ ld hl, $ddbf
+ ld de, $de88
+ ld a, $4
+ call Func_f8c18
+ ld hl, $ddc3
+ ld de, $de8c
+ ld a, $4
+ call Func_f8c18
+ ld hl, $ddc7
+ ld de, $de90
+ ld a, $4
+ call Func_f8c18
+ ld hl, $ddcb
+ ld de, $de94
+ ld a, $4
+ call Func_f8c18
+ ld hl, $ddcf
+ ld de, $de98
+ ld a, $4
+ call Func_f8c18
+ ld hl, $ddd7
+ ld de, $de9c
+ ld a, $4
+ call Func_f8c18
+ ld hl, $dddf
+ ld de, $dea0
+ ld a, $4
+ call Func_f8c18
+ ld a, $0
+ ld [$dddb], a
+ ld [$dddc], a
+ ld [$dddd], a
+ ld [$ddde], a
+ ld hl, $dde7
+ ld de, $dea4
+ ld a, $3
+ call Func_f8c18
+ ld hl, $ddea
+ ld de, $dea7
+ ld a, $3
+ call Func_f8c18
+ ld hl, $dded
+ ld de, $deaa
+ ld a, $2
+ call Func_f8c18
+ ld a, $0
+ ld [$deac], a
+ ld hl, $ddf3
+ ld de, $dead
+ ld a, $8
+ call Func_f8c18
+ ld hl, $ddfb
+ ld de, $deb5
+ ld a, $30
+ call Func_f8c18
+ ret
+
+Func_f8b01: ; f8b01 (3e:4b01)
+ ld a, [$de55]
+ ld [$dd80], a
+ ld a, [$de56]
+ ld [$dd81], a
+ ld a, [$de57]
+ ld [$dd84], a
+ ld hl, $de58
+ ld de, $dd86
+ ld a, $4
+ call Func_f8c18
+ ld a, [$de5c]
+ ld [$dd8a], a
+ ld a, $1
+ ld [$dd8b], a
+ ld hl, $de5e
+ ld de, $dd8d
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de62
+ ld de, $dd91
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de66
+ ld de, $dd95
+ ld a, $8
+ call Func_f8c18
+ ld hl, $de6e
+ ld de, $dd9d
+ ld a, $8
+ call Func_f8c18
+ ld a, [$de76]
+ ld [$ddab], a
+ ld a, [$de77]
+ ld [$ddac], a
+ ld hl, $de78
+ ld de, $ddaf
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de7c
+ ld de, $ddb3
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de80
+ ld de, $ddb7
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de84
+ ld de, $ddbb
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de88
+ ld de, $ddbf
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de8c
+ ld de, $ddc3
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de90
+ ld de, $ddc7
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de94
+ ld de, $ddcb
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de98
+ ld de, $ddcf
+ ld a, $4
+ call Func_f8c18
+ ld hl, $de9c
+ ld de, $ddd7
+ ld a, $4
+ call Func_f8c18
+ ld hl, $dea0
+ ld de, $dddf
+ ld a, $4
+ call Func_f8c18
+ ld hl, $dea4
+ ld de, $dde7
+ ld a, $3
+ call Func_f8c18
+ ld hl, $dea7
+ ld de, $ddea
+ ld a, $3
+ call Func_f8c18
+ ld hl, $deaa
+ ld de, $dded
+ ld a, $2
+ call Func_f8c18
+ ld a, [$deac]
+ ld [$ddef], a
+ ld hl, $dead
+ ld de, $ddf3
+ ld a, $8
+ call Func_f8c18
+ ld hl, $deb5
+ ld de, $ddfb
+ ld a, $30
+ call Func_f8c18
+ ret
+
+; copies a bytes from hl to de
+Func_f8c18: ; f8c18 (3e:4c18)
+ ld c, a
+.asm_f8c19
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_f8c19
+ ret
+
+Unknown_f8c20: ; f8c20 (3e:4c20)
+INCBIN "baserom.gbc",$f8c20,$f8c28 - $f8c20
+
+Unknown_f8c28: ; f8c28 (3e:4c28)
+INCBIN "baserom.gbc",$f8c28,$f8cda - $f8c28
+
+PointerTable_f8cda: ; f8cda (3e:4cda)
+ dw Unknown_f8ce4
+ dw Unknown_f8cf4
+ dw Unknown_f8d04
+ dw Unknown_f8d14
+ dw Unknown_f8d24
+
+Unknown_f8ce4: ; f8ce4 (3e:4ce4)
+INCBIN "baserom.gbc",$f8ce4,$f8cf4 - $f8ce4
+
+Unknown_f8cf4: ; f8cf4 (3e:4cf4)
+INCBIN "baserom.gbc",$f8cf4,$f8d04 - $f8cf4
+
+Unknown_f8d04: ; f8d04 (3e:4d04)
+INCBIN "baserom.gbc",$f8d04,$f8d14 - $f8d04
+
+Unknown_f8d14: ; f8d14 (3e:4d14)
+INCBIN "baserom.gbc",$f8d14,$f8d24 - $f8d14
+
+Unknown_f8d24: ; f8d24 (3e:4d24)
+INCBIN "baserom.gbc",$f8d24,$f8d34 - $f8d24
+
+PointerTable_f8d34: ; f8d34 (3e:4d34)
+ dw Unknown_f8d53
+ dw Unknown_f8d4c
+ dw Unknown_f8d5a
+ dw Unknown_f8d4c
+ dw Unknown_f8d64
+ dw Unknown_f8d4c
+ dw Unknown_f8d6d
+ dw Unknown_f8d4c
+ dw Unknown_f8d76
+ dw Unknown_f8d4c
+ dw Unknown_f8d4c
+ dw Unknown_f8daa
+
+Unknown_f8d4c: ; f8d4c (3e:4d4c)
+INCBIN "baserom.gbc",$f8d4c,$f8d53 - $f8d4c
+
+Unknown_f8d53: ; f8d53 (3e:4d53)
+INCBIN "baserom.gbc",$f8d53,$f8d5a - $f8d53
+
+Unknown_f8d5a: ; f8d5a (3e:4d5a)
+INCBIN "baserom.gbc",$f8d5a,$f8d64 - $f8d5a
+
+Unknown_f8d64: ; f8d64 (3e:4d64)
+INCBIN "baserom.gbc",$f8d64,$f8d6d - $f8d64
+
+Unknown_f8d6d: ; f8d6d (3e:4d6d)
+INCBIN "baserom.gbc",$f8d6d,$f8d76 - $f8d6d
+
+Unknown_f8d76: ; f8d76 (3e:4d76)
+INCBIN "baserom.gbc",$f8d76,$f8daa - $f8d76
+
+Unknown_f8daa: ; f8daa (3e:4daa)
+INCBIN "baserom.gbc",$f8daa,$f8dde - $f8daa
+
+PointerTable_f8dde: ; f8dde (3e:4dde)
+ dw Unknown_f8df4
+ dw Unknown_f8df7
+ dw Unknown_f8e01
+ dw Unknown_f8e0f
+ dw Unknown_f8e19
+ dw Unknown_f8e27
+ dw Unknown_f8e35
+ dw Unknown_f8e47
+ dw Unknown_f8e5b
+ dw Unknown_f8e65
+ dw Unknown_f8e73
+
+Unknown_f8df4: ; f8df4 (3e:4df4)
+INCBIN "baserom.gbc",$f8df4,$f8df7 - $f8df4
+
+Unknown_f8df7: ; f8df7 (3e:4df7)
+INCBIN "baserom.gbc",$f8df7,$f8e01 - $f8df7
+
+Unknown_f8e01: ; f8e01 (3e:4e01)
+INCBIN "baserom.gbc",$f8e01,$f8e0f - $f8e01
+
+Unknown_f8e0f: ; f8e0f (3e:4e0f)
+INCBIN "baserom.gbc",$f8e0f,$f8e19 - $f8e0f
+
+Unknown_f8e19: ; f8e19 (3e:4e19)
+INCBIN "baserom.gbc",$f8e19,$f8e27 - $f8e19
+
+Unknown_f8e27: ; f8e27 (3e:4e27)
+INCBIN "baserom.gbc",$f8e27,$f8e35 - $f8e27
+
+Unknown_f8e35: ; f8e35 (3e:4e35)
+INCBIN "baserom.gbc",$f8e35,$f8e47 - $f8e35
+
+Unknown_f8e47: ; f8e47 (3e:4e47)
+INCBIN "baserom.gbc",$f8e47,$f8e5b - $f8e47
+
+Unknown_f8e5b: ; f8e5b (3e:4e5b)
+INCBIN "baserom.gbc",$f8e5b,$f8e65 - $f8e5b
+
+Unknown_f8e65: ; f8e65 (3e:4e65)
+INCBIN "baserom.gbc",$f8e65,$f8e73 - $f8e65
+
+Unknown_f8e73: ; f8e73 (3e:4e73)
+INCBIN "baserom.gbc",$f8e73,$f8ee5 - $f8e73
+
+NumberOfSongs2: ; f8ee5 (3e:4ee5)
+ db $1f
+
+SongBanks2: ; f8ee6 (3e:4ee6)
+ db BANK(Music_Stop)
+ db BANK(Music_TitleScreen)
+ db BANK(Music_BattleTheme1)
+ db BANK(Music_BattleTheme2)
+ db BANK(Music_BattleTheme3)
+ db BANK(Music_PauseMenu)
+ db BANK(Music_PCMainMenu)
+ db BANK(Music_DeckMachine)
+ db BANK(Music_CardPop)
+ db BANK(Music_Overworld)
+ db BANK(Music_PokemonDome)
+ db BANK(Music_ChallengeHall)
+ db BANK(Music_Club1)
+ db BANK(Music_Club2)
+ db BANK(Music_Club3)
+ db BANK(Music_Ronald)
+ db BANK(Music_Imakuni)
+ db BANK(Music_HallOfHonor)
+ db BANK(Music_Credits)
+ db BANK(Music_Unused13)
+ db BANK(Music_Unused14)
+ db BANK(Music_MatchStart1)
+ db BANK(Music_MatchStart2)
+ db BANK(Music_MatchStart3)
+ db BANK(Music_MatchVictory)
+ db BANK(Music_MatchLoss)
+ db BANK(Music_DarkDiddly)
+ db BANK(Music_Unused1b)
+ db BANK(Music_BoosterPack)
+ db BANK(Music_Medal)
+ db BANK(Music_Unused1e)
+
+SongHeaderPointers2: ; f8f05 (3e:4f05)
+ dw Music_Stop
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw Music_PCMainMenu
+ dw $0000
+ dw $0000
+ dw $0000
+ dw Music_PokemonDome
+ dw Music_ChallengeHall
+ dw Music_Club1
+ dw Music_Club2
+ dw Music_Club3
+ dw Music_Ronald
+ dw Music_Imakuni
+ dw Music_HallOfHonor
+ dw Music_Credits
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Stop
+ db %0000
+
+;Music_TitleScreen
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_BattleTheme1
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_BattleTheme2
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_BattleTheme3
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_PauseMenu
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+Music_PCMainMenu: ; f8f71 (3e:4f71)
+ db %1111
+ dw Music_PCMainMenu_Ch1 ; 5052
+ dw Music_PCMainMenu_Ch2 ; 50ED
+ dw Music_PCMainMenu_Ch3 ; 5189
+ dw Music_PCMainMenu_Ch4 ; 522B
+
+;Music_DeckMachine
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_CardPop
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Overworld
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+Music_PokemonDome: ; f8f95 (3e:4f95)
+ db %1111
+ dw Music_PokemonDome_Ch1 ; 5251
+ dw Music_PokemonDome_Ch2 ; 53F8
+ dw Music_PokemonDome_Ch3 ; 5579
+ dw Music_PokemonDome_Ch4 ; 5629
+
+Music_ChallengeHall: ; f8f9e (3e:4f9e)
+ db %1111
+ dw Music_ChallengeHall_Ch1 ; 5646
+ dw Music_ChallengeHall_Ch2 ; 5883
+ dw Music_ChallengeHall_Ch3 ; 5a92
+ dw Music_ChallengeHall_Ch4 ; 5bA9
+
+Music_Club1: ; f8fa7 (3e:4fa7)
+ db %1111
+ dw Music_Club1_Ch1 ; 5bE5
+ dw Music_Club1_Ch2 ; 5d5F
+ dw Music_Club1_Ch3 ; 5eC4
+ dw Music_Club1_Ch4 ; 6044
+
+Music_Club2: ; f8fb0 (3e:4fb0)
+ db %0111
+ dw Music_Club2_Ch1 ; 6077
+ dw Music_Club2_Ch2 ; 60E3
+ dw Music_Club2_Ch3 ; 6164
+ dw $0000
+
+Music_Club3: ; f8fb9 (3e:4fb9)
+ db %1111
+ dw Music_Club3_Ch1 ; 6210
+ dw Music_Club3_Ch2 ; 6423
+ dw Music_Club3_Ch3 ; 663E
+ dw Music_Club3_Ch4 ; 6772
+
+Music_Ronald: ; f8fc2 (3e:4fc2)
+ db %1111
+ dw Music_Ronald_Ch1 ; 67A0
+ dw Music_Ronald_Ch2 ; 6a0E
+ dw Music_Ronald_Ch3 ; 6bC0
+ dw Music_Ronald_Ch4 ; 6cE0
+
+Music_Imakuni: ; f8fcb (3e:4fcb)
+ db %1111
+ dw Music_Imakuni_Ch1 ; 6d55
+ dw Music_Imakuni_Ch2 ; 6e32
+ dw Music_Imakuni_Ch3 ; 6eBC
+ dw Music_Imakuni_Ch4 ; 6fA4
+
+Music_HallOfHonor: ; f8fd4 (3e:4fd4)
+ db %0111
+ dw Music_HallOfHonor_Ch1 ; 6fEA
+ dw Music_HallOfHonor_Ch2 ; 706E
+ dw Music_HallOfHonor_Ch3 ; 70D5
+ dw $0000
+
+Music_Credits: ; f8fdd (3e:4fdd)
+ db %1111
+ dw Music_Credits_Ch1 ; 71FE
+ dw Music_Credits_Ch2 ; 768A
+ dw Music_Credits_Ch3 ; 7b9D
+ dw Music_Credits_Ch4 ; 7e51
+
+;Music_Unused13
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Unused14
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_MatchStart1
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_MatchStart2
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_MatchStart3
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_MatchVictory
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_MatchLoss
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_DarkDiddly
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Unused1b
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_BoosterPack
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Medal
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
+;Music_Unused1e
+ db %0000
+ dw $0000
+ dw $0000
+ dw $0000
+ dw $0000
+
INCLUDE "music/pcmainmenu.asm"
INCLUDE "music/pokemondome.asm"
INCLUDE "music/challengehall.asm"
@@ -2241,8 +2241,8 @@ INCLUDE "music/club3.asm"
INCLUDE "music/ronald.asm"
INCLUDE "music/imakuni.asm"
INCLUDE "music/hallofhonor.asm"
-INCLUDE "music/credits.asm"
-
-rept $109
-db $ff
+INCLUDE "music/credits.asm"
+
+rept $109
+db $ff
endr \ No newline at end of file