From f9a20a518357dbef7454094ea48690b8f00a2c7b Mon Sep 17 00:00:00 2001 From: "U-Fish-PC\\Daniel" Date: Tue, 15 Apr 2014 08:59:14 -0400 Subject: Fix line endings --- Makefile | 36 +- emptybank.asm | 4 +- home.asm | 2464 +++++++++++++++++++++++------------------------ main.asm | 390 ++++---- music/engine/music1.asm | 2257 +++++++++++++++++++++++++++++++++++++++++++ music/engine/music2.asm | 2248 ++++++++++++++++++++++++++++++++++++++++++ music1.asm | 2257 ------------------------------------------- music2.asm | 2248 ------------------------------------------ 8 files changed, 5952 insertions(+), 5952 deletions(-) create mode 100755 music/engine/music1.asm create mode 100755 music/engine/music2.asm delete mode 100755 music1.asm delete mode 100755 music2.asm 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/music/engine/music1.asm b/music/engine/music1.asm new file mode 100755 index 0000000..2a44179 --- /dev/null +++ b/music/engine/music1.asm @@ -0,0 +1,2257 @@ +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" +INCLUDE "music/battletheme3.asm" +INCLUDE "music/pausemenu.asm" +INCLUDE "music/deckmachine.asm" +INCLUDE "music/cardpop.asm" +INCLUDE "music/overworld.asm" +INCLUDE "music/matchstart1.asm" +INCLUDE "music/matchstart2.asm" +INCLUDE "music/matchstart3.asm" +INCLUDE "music/matchvictory.asm" +INCLUDE "music/matchloss.asm" +INCLUDE "music/darkdiddly.asm" +INCLUDE "music/boosterpack.asm" +INCLUDE "music/medal.asm" + +rept $138 +db $ff +endr \ No newline at end of file diff --git a/music/engine/music2.asm b/music/engine/music2.asm new file mode 100755 index 0000000..f5d8919 --- /dev/null +++ b/music/engine/music2.asm @@ -0,0 +1,2248 @@ +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" +INCLUDE "music/club1.asm" +INCLUDE "music/club2.asm" +INCLUDE "music/club3.asm" +INCLUDE "music/ronald.asm" +INCLUDE "music/imakuni.asm" +INCLUDE "music/hallofhonor.asm" +INCLUDE "music/credits.asm" + +rept $109 +db $ff +endr \ No newline at end of file diff --git a/music1.asm b/music1.asm deleted file mode 100755 index 98a1b76..0000000 --- a/music1.asm +++ /dev/null @@ -1,2257 +0,0 @@ -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" -INCLUDE "music/battletheme3.asm" -INCLUDE "music/pausemenu.asm" -INCLUDE "music/deckmachine.asm" -INCLUDE "music/cardpop.asm" -INCLUDE "music/overworld.asm" -INCLUDE "music/matchstart1.asm" -INCLUDE "music/matchstart2.asm" -INCLUDE "music/matchstart3.asm" -INCLUDE "music/matchvictory.asm" -INCLUDE "music/matchloss.asm" -INCLUDE "music/darkdiddly.asm" -INCLUDE "music/boosterpack.asm" -INCLUDE "music/medal.asm" - -rept $138 -db $ff -endr \ No newline at end of file diff --git a/music2.asm b/music2.asm deleted file mode 100755 index 65d7940..0000000 --- a/music2.asm +++ /dev/null @@ -1,2248 +0,0 @@ -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" -INCLUDE "music/club1.asm" -INCLUDE "music/club2.asm" -INCLUDE "music/club3.asm" -INCLUDE "music/ronald.asm" -INCLUDE "music/imakuni.asm" -INCLUDE "music/hallofhonor.asm" -INCLUDE "music/credits.asm" - -rept $109 -db $ff -endr \ No newline at end of file -- cgit v1.2.3