diff options
author | Daniel Harding <corrnondacqb@yahoo.com> | 2015-03-19 00:19:59 -0400 |
---|---|---|
committer | Daniel Harding <corrnondacqb@yahoo.com> | 2015-03-19 00:19:59 -0400 |
commit | ae198f05566310d64d201bc8e5b9b54f90c27b7b (patch) | |
tree | d5fe4e6cde4cfa6d37e1a9f04ee267c384b73f42 /engine | |
parent | 3c75edba47b89066383a4dae07d225cbc1cbff77 (diff) | |
parent | d41ad62f5bf43c98d05c593d5c64a5a42b7c0cee (diff) |
Merge pull request #6 from stag019/srcrgbgfx
Move source code into "src/". Update Makefile/scan_includes.
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/bank1.asm | 251 | ||||
-rwxr-xr-x | engine/bank1c.asm | 314 | ||||
-rwxr-xr-x | engine/bank2.asm | 791 | ||||
-rwxr-xr-x | engine/bank20.asm | 133 | ||||
-rwxr-xr-x | engine/bank3.asm | 1457 | ||||
-rwxr-xr-x | engine/bank4.asm | 1147 | ||||
-rwxr-xr-x | engine/bank6.asm | 175 | ||||
-rwxr-xr-x | engine/bank7.asm | 314 | ||||
-rwxr-xr-x | engine/home.asm | 4851 |
9 files changed, 0 insertions, 9433 deletions
diff --git a/engine/bank1.asm b/engine/bank1.asm deleted file mode 100755 index c29a4c4..0000000 --- a/engine/bank1.asm +++ /dev/null @@ -1,251 +0,0 @@ -Func_4000: ; 4000 (1:4000) - di - ld sp, $e000 - call ResetSerial - call EnableInt_VBlank - call EnableInt_Timer - call EnableExtRAM - ld a, [$a006] - ld [$ce47], a - ld a, [$a009] - ld [$ccf2], a - call DisableExtRAM - ld a, $1 - ld [$cd0d], a - ei - farcall Func_1a6cc - ld a, [$ff90] - cp $3 - jr z, .asm_4035 - farcall Func_126d1 - jr Func_4000 -.asm_4035 - call Func_405a - call Func_04a2 - ld hl, $00a2 - call Func_2af0 - jr c, .asm_404d - call EnableExtRAM - xor a - ld [$a000], a - call DisableExtRAM -.asm_404d - jp Reset - -Func_4050: ; 4050 (1:4050) - farcall Func_1996e - ld a, $1 - ld [$cd0d], a - ret - -Func_405a: ; 405a (1:405a) -INCBIN "baserom.gbc",$405a,$406f - $405a - -Func_406f: ; 406f (1:406f) -INCBIN "baserom.gbc",$406f,$409f - $406f - -; this function begins the duel after the opponent's -; graphics, name and deck have been introduced -Duel_Start: ; 409f (1:409f) - ld a, $c2 - ld [$ff97], a - ld a, $0 - ld [$c2f1], a - ld a, [$cc19] - ld [wOpponentDeck], a - call $6793 - call Func_1c72 - call Duel_LoadDecks - call Func_1c72 - jr .asm_40ca - - ld a, MUSIC_DUELTHEME1 - ld [wDuelTheme], a - ld hl, $cc16 - xor a - ld [hli], a - ld [hl], a - ld [wIsPracticeDuel], a - -.asm_40ca - ld hl, [sp+$0] - ld a, l - ld [$cbe5], a - ld a, h - ld [$cbe6], a - xor a - ld [$cbc6], a - call $420b - ld a, [$cc18] - ld [$cc08], a - call $70aa - ld a, [wDuelTheme] - call PlaySong - call $4b60 - ret c - -; the loop returns here after every turn switch -.mainDuelLoop - xor a - ld [$cbc6], a - call $35e6 - call $54c8 - call $4225 - call $0f58 - ld a, [$cc07] - or a - jr nz, .asm_4136 - call $35fa - call $6baf - call $3b31 - call $0f58 - ld a, [$cc07] - or a - jr nz, .asm_4136 - ld hl, $cc06 - inc [hl] - ld a, [$cc09] - cp $80 - jr z, .asm_4126 -.asm_4121 - call Func_1c72 - jr .mainDuelLoop - -.asm_4126 - ld a, [wIsPracticeDuel] - or a - jr z, .asm_4121 - ld a, [hl] - cp $f - jr c, .asm_4121 - xor a - ld [$d0c3], a - ret - -.asm_4136 - call $5990 - call Func_04a2 - ld a, $3 - call $2167 - ld hl, $0076 - call Func_2aab - call Func_04a2 - ld a, [$ff97] - push af - ld a, $c2 - ld [$ff97], a - call $4a97 - call $4ad6 - pop af - ld [$ff97], a - call $3b21 - ld a, [$cc07] - cp $1 - jr z, .asm_4171 - cp $2 - jr z, .asm_4184 - ld a, $5f - ld c, $1a - ld hl, $0077 - jr .asm_4196 - -.asm_4171 - ld a, [$ff97] - cp $c2 - jr nz, .asm_418a -.asm_4177 - xor a - ld [$d0c3], a - ld a, $5d - ld c, $18 - ld hl, $0078 - jr .asm_4196 - -.asm_4184 - ld a, [$ff97] - cp $c2 - jr nz, .asm_4177 - -.asm_418a - ld a, $1 - ld [$d0c3], a - ld a, $5e - ld c, $19 - ld hl, $0079 - -.asm_4196 - call $3b6a - ld a, c - call PlaySong - ld a, $c3 - ld [$ff97], a - call Func_2a59 - call EnableLCD -.asm_41a7 - call Func_053f - call Func_378a - or a - jr nz, .asm_41a7 - ld a, [$cc07] - cp $3 - jr z, .asm_41c8 - call Func_39fc - call $2aae - call $3b31 - call ResetSerial - ld a, $c2 - ld [$ff97], a - ret - -.asm_41c8 - call $2aae - call $3b31 - ld a, [wDuelTheme] - call PlaySong - ld hl, $007a - call Func_2aab - ld a, $1 - ld [$cc08], a - call $70aa - ld a, [$cc09] - cp $1 - jr z, .asm_41f3 - ld a, $c2 - ld [$ff97], a - call $4b60 - jp $40ee - -.asm_41f3 - call $0f58 - ld h, $c2 - ld a, [wSerialOp] - cp $29 - jr z, .asm_4201 - ld h, $c3 - -.asm_4201 - ld a, h - ld [$ff97], a - call $4b60 - jp nc, $40ee - ret -; 0x420b - -INCBIN "baserom.gbc",$420b,$5aeb - $420b - -Func_5aeb: ; 5aeb (1:5aeb) -INCBIN "baserom.gbc",$5aeb,$6785 - $5aeb - -Func_6785: ; 6785 (1:6785) -INCBIN "baserom.gbc",$6785,$7354 - $6785 - -BuildVersion: ; 7354 (1:7354) - db "VER 12/20 09:36",TX_END - -INCBIN "baserom.gbc",$7364,$7571 - $7364 - -Func_7571: ; 7571 (1:7571) -INCBIN "baserom.gbc",$7571,$758f - $7571 - -Func_758f: ; 758f (1:758f) -INCBIN "baserom.gbc",$758f,$8000 - $758f diff --git a/engine/bank1c.asm b/engine/bank1c.asm deleted file mode 100755 index e11aaef..0000000 --- a/engine/bank1c.asm +++ /dev/null @@ -1,314 +0,0 @@ -Func_70000: ; 70000 (1c:4000) - ld a, [$cab4] - cp $1 - ret nz - ld b, $1 - ld a, $22 - farcall Func_ca6c - or a - jr z, .asm_70013 - ld b, $2 -.asm_70013 - ld a, b - call Func_70044 - ret - -Func_70018: ; 70018 (1c:4018) - ld a, [$cab4] - cp $1 - ret nz - ld a, $0 - call Func_70044 - ret -; 0x70024 - -INCBIN "baserom.gbc",$70024,$70044 - $70024 - -Func_70044: ; 70044 (1c:4044) - push hl - push bc - add a - ld c, a - add a - add c - ld c, a - ld b, $0 - ld hl, Unknown_70057 - add hl, bc - call Func_70082 - pop bc - pop hl - ret - -Unknown_70057: ; 70057 (1c:4057) -INCBIN "baserom.gbc",$70057,$70082 - $70057 - -Func_70082: ; 70082 (1c:4082) - ld a, [$cab4] - cp $1 - ret nz - push hl - push bc - ld a, [hli] - push hl - ld h, [hl] - ld l, a - call Func_700a3 - pop hl - inc hl - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a - call Func_700fe - call Func_701c0 - pop bc - pop hl - ret - -Func_700a3: ; 700a3 (1c:40a3) - push hl - push bc - push de - push hl - call Func_70136 - pop hl - push hl - ld a, [hli] - ld h, [hl] - ld l, a - ld de, $8800 - call Func_701e9 - call Func_701fe - ld hl, SGB_700de - call Func_70177 - pop hl - ld de, $0002 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] - or [hl] - jr z, .asm_700da - call Func_70136 - dec hl - ld de, $8800 - call Func_701e9 - ld hl, SGB_700ee - call Func_70177 -.asm_700da - pop de - pop bc - pop hl - ret - -; CHR_TRN: tiles $00-$7F, BG (border) tiles (from SNES $000-$FFF) -SGB_700de: ; 700de (1c:40de) -INCBIN "baserom.gbc",$700de,$700ee - $700de - -; CHR_TRN: tiles $80-$FF, BG (border) tiles (from SNES $000-$FFF) -SGB_700ee: ; 700ee (1c:40ee) -INCBIN "baserom.gbc",$700ee,$700fe - $700ee - -Func_700fe: ; 700fe (1c:40fe) - push hl - push bc - push de - push hl - push de - push hl - call Func_70136 - pop hl - ld de, $8800 - call Func_701e9 - pop hl - ld de, $9000 - call Func_701e9 - call Func_701fe - pop hl - call Func_70214 - ld hl, SGB_70126 - call Func_70177 - pop de - pop bc - pop hl - ret - -; PCT_TRN: read tile map & palette data into VRAM (from SNES $000-$87F) -SGB_70126: ; 70126 (1c:4126) -INCBIN "baserom.gbc",$70126,$70136 - $70126 - -Func_70136: ; 70136 (1c:4136) - push hl - push bc - push de - ld a, [$ff92] - ld [$d41d], a - ld a, [$ff93] - ld [$d41e], a - ld a, [$cabc] - ld [$d41f], a - ld a, [$cabb] - ld [$d420], a - di - ld hl, SGB_MASK_EN_ON_701a0 - call SendSGB - call DisableLCD - ld a, [$cabb] - and $41 - or $1 - ld [$cabb], a - ld a, $e4 - ld [rBGP], a - call Func_040c - xor a - ld [hSCX], a - ld [rSCX], a - ld [hSCY], a - ld [rSCY], a - pop de - pop bc - pop hl - ret - -Func_70177: ; 70177 (1c:4177) - push hl - push bc - push de - push hl - call EnableLCD - pop hl - call SendSGB - ld a, [$d41d] - ld [hSCX], a - ld a, [$d41e] - ld [hSCY], a - ld a, [$d41f] - call Func_040c - ld a, [$d420] - ld [$cabb], a - call DisableLCD - ei - pop de - pop bc - pop hl - ret - -; MASK_EN on -SGB_MASK_EN_ON_701a0: ; 701a0 (1c:41a0) -INCBIN "baserom.gbc",$701a0,$701b0 - $701a0 - -; MASK_EN off -SGB_MASK_EN_OFF_701b0: ; 701b0 (1c:41b0) -INCBIN "baserom.gbc",$701b0,$701c0 - $701b0 - -Func_701c0: ; 701c0 (1c:41c0) - push hl - push bc - call DisableLCD - xor a - ld c, $10 - ld hl, $9000 -.asm_701cb - ld [hli], a - dec c - jr nz, .asm_701cb - ld a, [$cab6] - push af - xor a - ld [$cab6], a - call Func_04a2 - pop af - ld [$cab6], a - di - ld hl, SGB_MASK_EN_OFF_701b0 - call SendSGB - ei - pop bc - pop hl - ret - -Func_701e9: ; 701e9 (1c:41e9) - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - or c - ret z - push de - push bc - ld e, l - ld d, h - ld b, $c0 - call Func_08bf - pop bc - pop de - call Func_08de - ret - -Func_701fe: ; 701fe (1c:41fe) - ld hl, $9800 - ld de, $000c - ld a, $80 - ld c, $d -.asm_70208 - ld b, $14 -.asm_7020a - ld [hli], a - inc a - dec b - jr nz, .asm_7020a - add hl, de - dec c - jr nz, .asm_70208 - ret - -Func_70214: ; 70214 (1c:4214) - ld a, l - cp $dc - ret nz - ld a, h - cp $49 - ret nz - ld hl, Unknown_7024a - ld a, $10 - farcall Func_ca6c - ld c, $8 -.asm_70227 - push bc - push hl - push af - bit 7, a - jr z, .asm_7023e - ld c, $9 -.asm_70230 - push bc - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - pop bc - dec c - jr nz, .asm_70230 -.asm_7023e - pop af - rlca - pop hl - ld bc, $0024 - add hl, bc - pop bc - dec c - jr nz, .asm_70227 - ret - -Unknown_7024a: ; 7024a (1c:424a) -INCBIN "baserom.gbc",$7024a,$74000 - $7024a diff --git a/engine/bank2.asm b/engine/bank2.asm deleted file mode 100755 index 1c82b47..0000000 --- a/engine/bank2.asm +++ /dev/null @@ -1,791 +0,0 @@ -INCBIN "baserom.gbc",$8000,$8cd4 - $8000 - -Func_8cd4: ; 8cd4 (2:4cd4) - push bc - call EnableExtRAM - ld b, $3c -.asm_8cda - ld a, [de] - inc de - ld [hli], a - dec b - jr nz, .asm_8cda - xor a - ld [hl], a - call DisableExtRAM - pop bc - ret -; 0x8ce7 - -INCBIN "baserom.gbc",$8ce7,$8cf9 - $8ce7 - -Func_8cf9: ; 8cf9 (2:4cf9) - call EnableExtRAM - xor a - ld hl, $b703 - ld [hli], a - inc a - ld [hli], a - ld [hli], a - ld [hl], a - ld [$b701], a - call DisableExtRAM -Func_8d0b: ; 8d0b (2:4d0b) - ld hl, Unknown_8d15 - ld de, $9380 - call Func_92ad - ret - -Unknown_8d15: ; 8d15 (2:4d15) -INCBIN "baserom.gbc",$8d15,$8d56 - $8d15 - -Func_8d56: ; 8d56 (2:4d56) - xor a - ld [$cab6], a - call Func_04a2 - call Func_099c - ld a, $1 - ld [$cac0], a - call Func_2119 - call Func_20b0 - call Func_8d0b - bank1call Func_5aeb - ld de, $3cbf - call Func_2275 - ret -; 0x8d78 - -INCBIN "baserom.gbc",$8d78,$8d9d - $8d78 - -Func_8d9d: ; 8d9d (2:4d9d) - ld de, $cfd1 - ld b, $7 -.asm_8da2 - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_8da2 - ret - -Unknown_8da9: ; 8da9 (2:4da9) -INCBIN "baserom.gbc",$8da9,$8db0 - $8da9 - -Func_8db0: ; 8db0 (2:4db0) - ld hl, Unknown_8da9 - call Func_8d9d - ld a, $ff - call Func_9168 - xor a - -Func_8dbc: ; 8dbc (2:4dbc) - ld hl, Unknown_8de2 - call Func_2636 - ld hl, $0224 - call Func_2a59 -.asm_8dc8 - call Func_053f - jr c, Func_8dbc - call Func_8dea - jr c, Func_8dbc - call Func_264b - jr nc, .asm_8dc8 - ld a, [$ffb1] - cp $ff - ret z - ld [$ceb1], a - jp Func_8e42 - -Unknown_8de2: ; 8de2 (2:4de2) -INCBIN "baserom.gbc",$8de2,$8dea - $8de2 - -Func_8dea: ; 8dea (2:4dea) - ld a, [hButtonsPressed2] - and $8 - ret z - ld a, [$cd10] - ld [$ceb1], a - call Func_8ff2 - jp nc, Func_8e05 - ld a, $ff - call Func_90fb - call Func_8fe8 - scf - ret - -Func_8e05: ; 8e05 (2:4e05) - ld a, $1 - call Func_90fb - call Func_9048 - push hl - call Func_9038 - pop de - call Func_8e1f - ld a, $ff - call Func_9168 - ld a, [$ceb1] - scf - ret - -Func_8e1f: ; 8e1f (2:4e1f) - push de - ld de, $cfb9 - call Func_92b4 - pop de - ld hl, $cf17 - call Func_8cd4 - ld a, $9 - ld hl, $cebb - call Func_9843 - ld a, $3c - ld [$cecc], a - ld hl, $cebb - ld [hl], a - call Func_9e41 - ret - -Func_8e42: ; 8e42 (2:4e42) - call Func_2a9e - ld hl, Unknown_9027 - call Func_2c08 - call Func_905a -.asm_8e4e - call Func_053f - call Func_9065 - jp nc, .asm_8e4e - cp $ff - jr nz, .asm_8e64 - call Func_90d8 - ld a, [$ceb1] - jp Func_8dbc -.asm_8e64 - ld a, [$ceaf] - or a - jp nz, Func_8f8a - ld a, [$ceb0] - or a - jp nz, .asm_8ecf - call Func_9048 - ld e, l - ld d, h - ld hl, $cf17 - call Func_8cd4 - ld a, $14 - ld hl, $cfb9 - call Func_9843 - ld de, $cfb9 - call Func_9038 - call Func_92b4 - call Func_9345 - jr nc, .asm_8ec4 - call EnableExtRAM - ld hl, $cf17 - call Func_910a - call Func_9048 - call Func_9152 - ld e, l - ld d, h - ld hl, $cf17 - ld b, $3c -.asm_8ea9 - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_8ea9 - call Func_9038 - ld d, h - ld e, l - ld hl, $cfb9 - call Func_92ad - call Func_9038 - ld a, [hl] - call DisableExtRAM - or a - jr z, .asm_8edb -.asm_8ec4 - ld a, $ff - call Func_9168 - ld a, [$ceb1] - jp Func_8dbc -.asm_8ecf - call Func_8ff2 - jp nc, .asm_8edb - call Func_8fe8 - jp Func_8dbc -.asm_8edb - ld a, $14 - ld hl, $cfb9 - call Func_9843 - ld de, $cfb9 - call Func_9038 - call Func_92b4 - call Func_8f05 - call Func_9038 - ld d, h - ld e, l - ld hl, $cfb9 - call Func_92b4 - ld a, $ff - call Func_9168 - ld a, [$ceb1] - jp Func_8dbc - -Func_8f05: ; 8f05 (2:4f05) - ld a, [$ceb1] - or a - jr nz, .asm_8f10 - ld hl, Unknown_a763 - jr .asm_8f23 -.asm_8f10 - dec a - jr nz, .asm_8f18 - ld hl, Unknown_a76c - jr .asm_8f23 -.asm_8f18 - dec a - jr nz, .asm_8f20 - ld hl, Unknown_a775 - jr .asm_8f23 -.asm_8f20 - ld hl, Unknown_a77e -.asm_8f23 - ld a, $14 - ld bc, $0401 - ld de, $cfb9 - farcall Func_1ad89 - ld a, [$cfb9] - or a - ret nz - call Func_8f38 - ret - -Func_8f38: ; 8f38 (2:4f38) - ld hl, $b701 - call EnableExtRAM - ld a, [hli] - ld h, [hl] - call DisableExtRAM - ld l, a - ld de, $c590 - call Func_0663 - ld hl, $cfb9 - ld [hl], $6 - inc hl - ld [hl], $44 - inc hl - ld [hl], $65 - inc hl - ld [hl], $63 - inc hl - ld [hl], $6b - inc hl - ld [hl], $20 - inc hl - ld de, $c592 - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hli], a - xor a - ld [hl], a - ld hl, $b701 - call EnableExtRAM - ld e, [hl] - inc hl - ld d, [hl] - ld a, $3 - cp d - jr nz, .asm_8f82 - ld a, $e7 - cp e - jr nz, .asm_8f82 - ld de, $0000 -.asm_8f82 - inc de - ld [hl], d - dec hl - ld [hl], e - call DisableExtRAM - ret - -Func_8f8a: ; 8f8a (2:4f8a) - ld a, [$ceb0] - or a - jp nz, Func_9026 - call Func_8ff2 - jp nc, Func_8f9d - call Func_8fe8 - jp Func_8dbc - -Func_8f9d: ; 8f9d (2:4f9d) - call EnableExtRAM - ld a, [$b700] - call DisableExtRAM - ld h, $3 - ld l, a - call Func_0879 - ld e, l - inc e - ld d, $2 - xor a - ld hl, $0000 - ld bc, $0202 - call Func_1f5f - ld a, [$ceb1] - call EnableExtRAM - ld [$b700], a - call DisableExtRAM - call Func_9326 - call Func_9038 - call EnableExtRAM - call Func_9253 - call DisableExtRAM - xor a - ld [$ce3f], a - ld [$ce40], a - ld hl, $022a - call Func_2aab - ld a, [$ceb1] - jp Func_8dbc - -Func_8fe8: ; 8fe8 (2:4fe8) - ld hl, $022f - call Func_2aab - ld a, [$ceb1] - ret - -Func_8ff2: ; 8ff2 (2:4ff2) - ld a, [$ceb1] - ld hl, $ceb2 - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - or a - ret nz - scf - ret -; 0x9001 - -INCBIN "baserom.gbc",$9001,$9026 - $9001 - -Func_9026: ; 9026 (2:5026) - ret - -Unknown_9027: ; 9027 (2:5027) -INCBIN "baserom.gbc",$9027,$9038 - $9027 - -Func_9038: ; 9038 (2:5038) - ld a, [$ceb1] - ld h, a - ld l, $54 - call Func_0879 - push de - ld de, $a200 - add hl, de - pop de - ret - -Func_9048: ; 9048 (2:5048) - push af - ld a, [$ceb1] - ld h, a - ld l, $54 - call Func_0879 - push de - ld de, $a218 - add hl, de - pop de - pop af - ret - -Func_905a: ; 905a (2:505a) - xor a - ld [$ceaf], a - ld [$ceb0], a - ld [$cea3], a - ret - -Func_9065: ; 9065 (2:5065) - xor a - ld [$cfe3], a - ld a, [$ceaf] - ld d, a - ld a, [$ceb0] - ld e, a - ld a, [hButtonsPressed2] - or a - jr z, .asm_90a6 - bit 5, a - jr nz, .asm_907e - bit 4, a - jr z, .asm_9084 -.asm_907e - ld a, d - xor $1 - ld d, a - jr .asm_9090 -.asm_9084 - bit 6, a - jr nz, .asm_908c - bit 7, a - jr z, .asm_90a6 -.asm_908c - ld a, e - xor $1 - ld e, a -.asm_9090 - ld a, $1 - ld [$cfe3], a - push de - call Func_90d8 - pop de - ld a, d - ld [$ceaf], a - ld a, e - ld [$ceb0], a - xor a - ld [$cea3], a -.asm_90a6 - ld a, [$ff91] - and $3 - jr z, .asm_90c1 - and $1 - jr nz, .asm_90b7 - ld a, $ff - call Func_90fb - scf - ret -.asm_90b7 - call Func_90f7 - ld a, $1 - call Func_90fb - scf - ret -.asm_90c1 - ld a, [$cfe3] - or a - jr z, .asm_90ca - call Func_3796 -.asm_90ca - ld hl, $cea3 - ld a, [hl] - inc [hl] - and $f - ret nz - ld a, $f - bit 4, [hl] - jr z, asm_90da -Func_90d8: ; 90d8 (2:50d8) - ld a, $0 -asm_90da - ld e, a - ld a, $a - ld l, a - ld a, [$ceaf] - ld h, a - call Func_0879 - ld a, l - add $1 - ld b, a - ld a, [$ceb0] - sla a - add $e - ld c, a - ld a, e - call Func_06c3 - or a - ret - -Func_90f7: ; 90f7 (2:50f7) - ld a, $f - jr asm_90da - -Func_90fb: ; 90fb (2:50fb) - push af - inc a - jr z, .asm_9103 - ld a, $2 - jr .asm_9105 -.asm_9103 - ld a, $3 -.asm_9105 - call Func_3796 - pop af - ret - -Func_910a: ; 910a (2:510a) - push hl - ld b, $0 - ld d, $3c -.asm_910f - ld a, [hli] - or a - jr z, .asm_911e - ld c, a - push hl - ld hl, $a100 - add hl, bc - dec [hl] - pop hl - dec d - jr nz, .asm_910f -.asm_911e - pop hl - ret -; 0x9120 - -INCBIN "baserom.gbc",$9120,$9152 - $9120 - -Func_9152: ; 9152 (2:5152) - push hl - ld b, $0 - ld d, $3c -.asm_9157 - ld a, [hli] - or a - jr z, .asm_9166 - ld c, a - push hl - ld hl, $a100 - add hl, bc - inc [hl] - pop hl - dec d - jr nz, .asm_9157 -.asm_9166 - pop hl - ret - -Func_9168: ; 9168 (2:5168) - ;ld [$ffb5], a - db $ea, $b5, $ff - call Func_8d56 - ld de, $0000 - ld bc, $1404 - call Func_1e7c - ld de, $0003 - ld bc, $1404 - call Func_1e7c - ld de, $0006 - ld bc, $1404 - call Func_1e7c - ld de, $0009 - ld bc, $1404 - call Func_1e7c - ld hl, Unknown_9242 - call Func_2c08 - ld a, $4 - ld hl, $ceb2 - call Func_9843 - ;ld a, [$ffb5] - db $fa, $b5, $ff - bit 0, a - jr z, .asm_91b0 - ld hl, $a200 - ld de, $0602 - call Func_926e -.asm_91b0 - ld hl, $a218 - call Func_9314 - jr c, .asm_91bd - ld a, $1 - ld [$ceb2], a -.asm_91bd - ;ld a, [$ffb5] - db $fa, $b5, $ff - bit 1, a - jr z, .asm_91cd - ld hl, $a254 - ld de, $0605 - call Func_926e -.asm_91cd - ld hl, $a26c - call Func_9314 - jr c, .asm_91da - ld a, $1 - ld [$ceb3], a -.asm_91da - ;ld a, [$ffb5] - db $fa, $b5, $ff - bit 2, a - jr z, .asm_91ea - ld hl, $a2a8 - ld de, $0608 - call Func_926e -.asm_91ea - ld hl, $a2c0 - call Func_9314 - jr c, .asm_91f7 - ld a, $1 - ld [$ceb4], a -.asm_91f7 - ;ld a, [$ffb5] - db $fa, $b5, $ff - bit 3, a - jr z, .asm_9207 - ld hl, $a2fc - ld de, $060b - call Func_926e -.asm_9207 - ld hl, $a314 - call Func_9314 - jr c, .asm_9214 - ld a, $1 - ld [$ceb5], a -.asm_9214 - call EnableExtRAM - ld a, [$b700] - ld c, a - ld b, $0 - ld d, $2 -.asm_921f - ld hl, $ceb2 - add hl, bc - ld a, [hl] - or a - jr nz, .asm_9234 - inc c - ld a, $4 - cp c - jr nz, .asm_921f - ld c, $0 - dec d - jr z, .asm_9234 - jr .asm_921f -.asm_9234 - ld a, c - ld [$b700], a - call DisableExtRAM - call Func_9326 - call EnableLCD - ret - -Unknown_9242: ; 9242 (2:5242) -INCBIN "baserom.gbc",$9242,$9253 - $9242 - -Func_9253: ; 9253 (2:5253) - ld de, $c590 - call Func_92ad - ld hl, $c590 - call Func_23c1 - ld b, $0 - ld hl, $c590 - add hl, bc - ld d, h - ld e, l - ld hl, Unknown_92a7 - call Func_92ad - ret - -Func_926e: ; 926e (2:526e) - push hl - call Func_9314 - pop hl - jr c, .asm_929c - push de - ld de, $c590 - call Func_92b4 - ld hl, $c590 - call Func_23c1 - ld b, $0 - ld hl, $c590 - add hl, bc - ld d, h - ld e, l - ld hl, Unknown_92a7 - call Func_92ad - pop de - ld hl, $c590 - call Func_22ae - call Func_21c5 - or a - ret -.asm_929c - call Func_22ae - ld hl, $0223 - call Func_2c29 - scf - ret - -Unknown_92a7: ; 92a7 (2:52a7) -INCBIN "baserom.gbc",$92a7,$92ad - $92a7 - -Func_92ad: ; 92ad (2:52ad) - ld a, [hli] - ld [de], a - or a - ret z - inc de - jr Func_92ad - -Func_92b4: ; 92b4 (2:52b4) - call EnableExtRAM - call Func_92ad - call DisableExtRAM - ret -; 0x92be - -INCBIN "baserom.gbc",$92be,$9314 - $92be - -Func_9314: ; 9314 (2:5314) - ld bc, $0018 - add hl, bc - call EnableExtRAM - ld a, [hl] - call DisableExtRAM - or a - jr nz, .asm_9324 - scf - ret -.asm_9324 - or a - ret - -Func_9326: ; 9326 (2:5326) - call EnableExtRAM - ld a, [$b700] - call DisableExtRAM - ld h, $3 - ld l, a - call Func_0879 - ld e, l - inc e - ld d, $2 - ld a, $38 - ld hl, $0102 - ld bc, $0202 - call Func_1f5f - ret - -Func_9345: ; 9345 (2:5345) -INCBIN "baserom.gbc",$9345,$9843 - $9345 - -Func_9843: ; 9843 (2:5843) -INCBIN "baserom.gbc",$9843,$9e41 - $9843 - -Func_9e41: ; 9e41 (2:5e41) -INCBIN "baserom.gbc",$9e41,$a288 - $9e41 - -Func_a288: ; a288 (2:6288) -INCBIN "baserom.gbc",$a288,$a763 - $a288 - -Unknown_a763: ; a763 (2:6763) -INCBIN "baserom.gbc",$a763,$a76c - $a763 - -Unknown_a76c: ; a76c (2:676c) -INCBIN "baserom.gbc",$a76c,$a775 - $a76c - -Unknown_a775: ; a775 (2:6775) -INCBIN "baserom.gbc",$a775,$a77e - $a775 - -Unknown_a77e: ; a77e (2:677e) -INCBIN "baserom.gbc",$a77e,$b177 - $a77e - -Func_b177: ; b177 (2:7177) -INCBIN "baserom.gbc",$b177,$c000 - $b177 diff --git a/engine/bank20.asm b/engine/bank20.asm deleted file mode 100755 index 11ca29a..0000000 --- a/engine/bank20.asm +++ /dev/null @@ -1,133 +0,0 @@ -Func_80000: ; 80000 (20:4000) -INCBIN "baserom.gbc",$80000,$80028 - $80000 - -Func_80028: ; 80028 (20:4028) -INCBIN "baserom.gbc",$80028,$8020f - $80028 - -Func_8020f: ; 8020f (20:420f) - push bc - push af - ld bc, MapDataPointers - ld h, $0 - add hl, bc - ld c, [hl] - inc hl - ld b, [hl] - pop af - ld l, a - ld h, $0 - sla l - rl h - sla l - rl h - add hl, bc - pop bc - ret - -Func_80229: ; 80229 (20:4229) - ld a, [hli] - ld [$d4c4], a - ld a, [hli] - ld [$d4c5], a - ld a, [hli] - add $20 - ld [$d4c6], a - ret -; 0x80238 - -INCBIN "baserom.gbc",$80238,$8025b - $80238 - -Func_8025b: ; 8025b (20:425b) - push hl - ld l, $4 - call Func_8020f - call Func_80229 - ld a, [hl] - push af - ld [$d4c8], a - ld a, $10 - ld [$d4c7], a - call Func_80274 - pop af - pop hl - ret - -Func_80274: ; 80274 (20:4274) - call Func_8029f - jr asm_8027c - -Func_80279: ; 80279 (20:4279) - call Func_802bb -asm_8027c - push hl - push bc - push de - ld a, [$d4c8] - ld b, a - ld a, [$d4c7] - ld c, a - ld hl, $d4c2 - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $d4c4 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl - inc hl - call Func_395a - call BankswitchVRAM_0 - pop de - pop bc - pop hl - ret - -Func_8029f: ; 8029f (20:429f) - ld a, [$d4ca] - swap a - push af - and $f0 - ld [$d4c2], a - pop af - and $f - add $80 - ld [$d4c3], a - ld a, [$d4cb] - and $1 - call BankswitchVRAM - ret - -Func_802bb: ; 802bb (20:42bb) - ld a, [$d4ca] - push af - xor $80 - ld [$d4ca], a - call Func_8029f - ld a, [$d4c3] - add $8 - ld [$d4c3], a - pop af - ld [$d4ca], a - ret -; 0x802d4 - -INCBIN "baserom.gbc",$802d4,$80418 - $802d4 - -Func_80418: ; 80418 (20:4418) -INCBIN "baserom.gbc",$80418,$80480 - $80418 - -Func_80480: ; 80480 (20:4480) -INCBIN "baserom.gbc",$80480,$804d8 - $80480 - -Func_804d8: ; 804d8 (20:44d8) -INCBIN "baserom.gbc",$804d8,$80b7a - $804d8 - -Func_80b7a: ; 80b7a (20:4b7a) -INCBIN "baserom.gbc",$80b7a,$80e5a - $80b7a - -Unknown_80e5a: ; 80e5a (20:4e5a) -INCBIN "baserom.gbc",$80e5a,$80e5d - $80e5a - -MapDataPointers: ; 80e5d (20:4e5d) -INCBIN "baserom.gbc",$80e5d,$84000 - $80e5d diff --git a/engine/bank3.asm b/engine/bank3.asm deleted file mode 100755 index 38a56cd..0000000 --- a/engine/bank3.asm +++ /dev/null @@ -1,1457 +0,0 @@ -LoadMap: ; c000 (3:4000) - call DisableLCD - call EnableExtRAM - bank1call Func_6785 - call DisableExtRAM - ld a, $0 - ld [$d0b5], a - xor a - ld [$d10f], a - ld [$d110], a - ld [$d113], a - farcall Func_10a9b - call Func_c1a4 - call Func_099c - xor a - ld [$cab6], a - call Func_2119 - call Set_OBJ_8x8 - xor a - ld [$cd08], a - xor a - ld [$d291], a -.asm_c037 - farcall Func_10ab4 - call Func_c1a4 - call Func_c241 - call Func_04a2 - call Func_3ca0 - ld a, $c2 - ld [$ff97], a - farcall Func_1c440 - ld a, [$d0bb] - ld [wCurMap], a - ld a, [$d0bc] - ld [wPlayerXCoord], a - ld a, [$d0bd] - ld [wPlayerYCoord], a - call Func_c36a - call Func_c184 - call Func_c49c - farcall Func_80000 - call Func_c4b9 - call Func_c943 - call Func_c158 - farcall Func_80480 - call Func_c199 - xor a - ld [$d0b4], a - ld [$d0c1], a - call Func_39fc - farcall Func_10af9 - call Func_c141 - call Func_c17a -.asm_c092 - call Func_3c48 - call Func_c491 - call Func_c0ce - ld hl, $d0b4 - ld a, [hl] - and $d0 - jr z, .asm_c092 - call Func_3c48 - ld hl, $d0b4 - ld a, [hl] - bit 4, [hl] - jr z, .asm_c0b6 - ld a, $c - call Func_3796 - jp .asm_c037 -.asm_c0b6 - farcall Func_10ab4 - call Func_c1a0 - ld a, [$d113] - or a - jr z, .asm_c0ca - call Func_c280 - farcall Duel_Init -.asm_c0ca - call Func_c280 - ret - -Func_c0ce: ; c0ce (3:40ce) - ld a, [$d0bf] - res 7, a - rlca - add PointerTable_c0e0 & $ff - ld l, a - ld a, PointerTable_c0e0 >> $8 - adc $0 - ld h, a - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -PointerTable_c0e0: ; c0e0 (3:40e0) - dw Func_c0e8 - dw Func_c0ed - dw Func_c0f1 - dw Func_c10a - -Func_c0e8: ; c0e8 (3:40e8) - farcall Func_10e55 - ret - -Func_c0ed: ; c0ed (3:40ed) - call Func_c510 - ret - -Func_c0f1: ; c0f1 (3:40f1) - ld a, [$d3b6] - ld [$d3aa], a - farcall Func_1c768 - ld a, c - ld [$d0c6], a - ld a, b - ld [$d0c7], a - ld a, $3 - ld [$d0bf], a - jr Func_c10a - -Func_c10a: ; c10a (3:410a) - ld hl, $d0c6 - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Func_c111: ; c111 (3:4111) - ld a, [$d0c1] - bit 0, a - call nz, Func_c135 - ld a, [$d0c1] - bit 1, a - jr z, .asm_c12a - ld a, [$d3b6] - ld [$d3aa], a - farcall Func_1c5e9 -.asm_c12a - xor a - ld [$d0c1], a - ld a, [$d0c0] - ld [$d0bf], a - ret - -Func_c135: ; c135 (3:4135) - push hl - farcall Func_80028 - ld hl, $d0c1 - res 0, [hl] - pop hl - ret - -Func_c141: ; c141 (3:4141) - ld hl, $d0c2 - ld a, [hl] - or a - ret z - push af - xor a - ld [hl], a - pop af - dec a - ld hl, PointerTable_c152 - jp JumpToFunctionInTable - -PointerTable_c152: ; c152 (3:4152) - dw Func_c9bc - dw Func_fc2b - dw Func_fcad - -Func_c158: ; c158 (3:4158) - ld a, [$d0c2] - cp $1 - ret nz - ld a, [$d0c4] - ld [$d3ab], a - call Func_39c3 - jr c, .asm_c179 - ld a, [$d3aa] - ld l, $4 - call Func_39ad - ld a, [$d0c5] - ld [hl], a - farcall Func_1c58e -.asm_c179 - ret - -Func_c17a: ; c17a (3:417a) - ld a, [$d0bf] - cp $3 - ret z - call Func_c9b8 - ret - -Func_c184: ; c184 (3:4184) - push bc - ld c, $1 - ld a, [wCurMap] - cp OVERWORLD_MAP - jr nz, .asm_c190 - ld c, $0 -.asm_c190 - ld a, c - ld [$d0bf], a - ld [$d0c0], a - pop bc - ret - -Func_c199: ; c199 (3:4199) - ld hl, Func_380e - call Func_3bd2 - ret - -Func_c1a0: ; c1a0 (3:41a0) - call Func_3bdb - ret - -Func_c1a4: ; c1a4 (3:41a4) - xor a - call Func_040c - xor a - call Set_OBP0 - xor a - call Set_OBP1 - ret - -Func_c1b1: ; c1b1 (3:41b1) - ld a, $c - ld [$d32e], a - ld a, $0 - ld [$d0bb], a - ld a, $c - ld [$d0bc], a - ld a, $c - ld [$d0bd], a - ld a, $2 - ld [$d0be], a - call Func_c9cb - call Func_c9dd - farcall Func_80b7a - farcall Func_1c82e - farcall Func_131b3 - xor a - ld [wCounter + 0], a - ld [wCounter + 1], a - ld [wCounter + 2], a - ld [wCounter + 3], a - ld [wCounter + 4], a - ret - -Func_c1ed: ; c1ed (3:41ed) - call Func_c9cb - farcall Func_11416 - call Func_c9dd - ret - -Func_c1f8: ; c1f8 (3:41f8) - xor a - ld [$d0b8], a - ld [$d0b9], a - ld [$d0ba], a - ld [$d11b], a - ld [$d0c2], a - ld [$d111], a - ld [$d112], a - ld [$d3b8], a - call EnableExtRAM - ld a, [$a007] - ld [$d421], a - ld a, [$a006] - ld [$ce47], a - call DisableExtRAM - farcall Func_10756 - ret - -Func_c228: ; c228 (3:4228) - ld a, [wCurMap] - ld [$d0bb], a - ld a, [wPlayerXCoord] - ld [$d0bc], a - ld a, [wPlayerYCoord] - ld [$d0bd], a - ld a, [$d334] - ld [$d0be], a - ret - -Func_c241: ; c241 (3:4241) - push hl - push bc - push de - ld de, $307f - call Func_2275 - call Func_c258 - pop de - pop bc - pop hl - ret - -Func_c251: ; c251 (3:4251) - ld a, [$ffb0] - push af - ld a, $1 - jr asm_c25d - -Func_c258: ; c258 (3:4258) - ld a, [$ffb0] - push af - ld a, $2 -asm_c25d - ld [$ffb0], a - push hl - call Func_c268 - pop hl - pop af - ld [$ffb0], a - ret - -Func_c268: ; c268 (3:4268) - ld hl, Unknown_c27c -.asm_c26b - push hl - ld a, [hli] - ld h, [hl] - ld l, a - or h - jr z, .asm_c27a - call Func_2c29 - pop hl - inc hl - inc hl - jr .asm_c26b -.asm_c27a - pop hl - ret - -Unknown_c27c: ; c27c (3:427c) -INCBIN "baserom.gbc",$c27c,$c280 - $c27c - -Func_c280: ; c280 (3:4280) - call Func_c228 - call Func_3ca0 - call Func_099c - ld hl, $cac0 - inc [hl] - call EnableLCD - call Func_3c48 - call DisableLCD - farcall Func_12871 - ret - -Func_c29b: ; c29b (3:429b) - push hl - ld hl, $d0c1 - or [hl] - ld [hl], a - pop hl - ret - -Func_c2a3: ; c2a3 (3:42a3) - push hl - push bc - push de - call Func_c335 - farcall Func_10ab4 - ld a, $80 - call Func_c29b - ld de, $307f - call Func_2275 - farcall Func_12ba7 - call Func_3ca0 - call Func_099c - ld a, $1 - ld [$cac0], a - call EnableLCD - call Func_3c48 - call DisableLCD - pop de - pop bc - pop hl - ret -; 0xc2d4 - -INCBIN "baserom.gbc",$c2d4,$c2db - $c2d4 - -Func_c2db: ; c2db (3:42db) - push hl - push bc - push de - call DisableLCD - call Set_OBJ_8x8 - call Func_3ca0 - farcall Func_12bcd - ld a, $c2 - ld [$ff97], a - call Func_c241 - call Func_04a2 - ld a, [$d111] - push af - farcall Func_80000 - pop af - ld [$d111], a - ld hl, $d0c1 - res 0, [hl] - call Func_c34e - farcall Func_12c5e - farcall Func_1c6f8 - ld hl, $d0c1 - res 7, [hl] - ld hl, $d10f - ld a, [hli] - or [hl] - jr z, .asm_c323 - ld a, [hld] - ld l, [hl] - ld h, a - call Func_3c45 -.asm_c323 - farcall Func_10af9 - pop de - pop bc - pop hl - ret - -Func_c32b: ; c32b (3:432b) - ld a, l - ld [$d10f], a - ld a, h - ld [$d110], a - jr Func_c2db - -Func_c335: ; c335 (3:4335) - ld a, [$cabd] - ld [$d10c], a - ld a, [$cabe] - ld [$d10d], a - ld hl, $cb30 - ld de, $d0cc - ld bc, $0040 - call CopyData_SaveRegisters - ret - -Func_c34e: ; c34e (3:434e) - ld a, [$d10c] - ld [$cabd], a - ld a, [$d10d] - ld [$cabe], a - ld hl, $d0cc - ld de, $cb30 - ld bc, $0040 - call CopyData_SaveRegisters - call Func_0404 - ret - -Func_c36a: ; c36a (3:436a) - xor a - ld [$d323], a - ld a, [wCurMap] - cp POKEMON_DOME_ENTRANCE - jr nz, .asm_c379 - xor a - ld [$d324], a -.asm_c379 - ret -; 0xc37a - -INCBIN "baserom.gbc",$c37a,$c41c - $c37a - -Func_c41c: ; c41c (3:441c) - ld a, [$d332] - sub $40 - ld [$d235], a - ld a, [$d333] - sub $40 - ld [$d236], a - call Func_c430 - ret - -Func_c430: ; c430 (3:4430) - push bc - ld a, [$d237] - sla a - sla a - sla a - ld b, a - ld a, [$d235] - cp $b1 - jr c, .asm_c445 - xor a - jr .asm_c449 -.asm_c445 - cp b - jr c, .asm_c449 - ld a, b -.asm_c449 - ld [$d235], a - ld a, [$d238] - sla a - sla a - sla a - ld b, a - ld a, [$d236] - cp $b9 - jr c, .asm_c460 - xor a - jr .asm_c464 -.asm_c460 - cp b - jr c, .asm_c464 - ld a, b -.asm_c464 - ld [$d236], a - pop bc - ret - -Func_c469: ; c469 (3:4469) - ld a, [$d235] - add $4 - and $f8 - rrca - rrca - rrca - ld [$d233], a - ld a, [$d236] - add $4 - and $f8 - rrca - rrca - rrca - ld [$d234], a - ret - -Func_c484: ; c484 (3:4484) - ld a, [$d235] - ld [$d0b6], a - ld a, [$d236] - ld [$d0b7], a - ret - -Func_c491: ; c491 (3:4491) - ld a, [$d0b6] - ld [$ff92], a - ld a, [$d0b7] - ld [$ff93], a - ret - -Func_c49c: ; c49c (3:449c) - ld a, [wPlayerXCoord] - and $1f - ld [wPlayerXCoord], a - rlca - rlca - rlca - ld [$d332], a - ld a, [wPlayerYCoord] - and $1f - ld [wPlayerYCoord], a - rlca - rlca - rlca - ld [$d333], a - ret - -Func_c4b9: ; c4b9 (3:44b9) - xor a - ld [$d4ca], a - ld [$d4cb], a - ld a, $1d - farcall Func_80418 - ld b, $0 - ld a, [$cab4] - cp $2 - jr nz, .asm_c4d1 - ld b, $1e -.asm_c4d1 - ld a, b - ld [$d337], a - ld a, $0 - farcall Func_1299f - ld a, [$d4cf] - ld [$d336], a - ld b, $2 - ld a, [wCurMap] - cp OVERWORLD_MAP - jr z, .asm_c4ee - ld a, [$d0be] - ld b, a -.asm_c4ee - ld a, b - ld [$d334], a - call Func_c5e9 - ld a, [wCurMap] - cp OVERWORLD_MAP - call nz, Func_c6f7 - xor a - ld [$d335], a - ld [$d338], a - ld a, [wCurMap] - cp OVERWORLD_MAP - jr nz, .asm_c50f - farcall Func_10fde -.asm_c50f - ret - -Func_c510: ; c510 (3:4510) - ld a, [$d336] - ld [$d4cf], a - ld a, [$d335] - bit 4, a - ret nz - bit 0, a - call z, Func_c5ac - ld a, [$d335] - or a - jr z, .asm_c535 - bit 0, a - call nz, Func_c66c - ld a, [$d335] - bit 1, a - call nz, Func_c6dc - ret -.asm_c535 - ld a, [$ff91] - and $8 - call nz, Func_c74d - ret -; 0xc53d - -INCBIN "baserom.gbc",$c53d,$c554 - $c53d - -Func_c554: ; c554 (3:4554) - ld a, [$d336] - ld [$d4cf], a - ld a, [wCurMap] - cp OVERWORLD_MAP - jr nz, .asm_c566 - farcall Func_10e28 - ret -.asm_c566 - push hl - push bc - push de - call Func_c58b - ld a, [$d235] - ld d, a - ld a, [$d236] - ld e, a - ld c, $2 - call Func_3dbf - ld a, [$d332] - sub d - add $8 - ld [hli], a - ld a, [$d333] - sub e - add $10 - ld [hli], a - pop de - pop bc - pop hl - ret - -Func_c58b: ; c58b (3:458b) - push hl - ld a, [wPlayerXCoord] - ld b, a - ld a, [wPlayerYCoord] - ld c, a - call Func_3927 - and $10 - push af - ld c, $f - call Func_3dbf - pop af - ld a, [hl] - jr z, .asm_c5a7 - or $80 - jr .asm_c5a9 -.asm_c5a7 - and $7f -.asm_c5a9 - ld [hl], a - pop hl - ret - -Func_c5ac: ; c5ac (3:45ac) - ld a, [$ff90] - and $f0 - jr z, .asm_c5bf - call Func_c5cb - call Func_c5fe - ld a, [$d335] - and $1 - jr nz, .asm_c5ca -.asm_c5bf - ld a, [$ff91] - and $1 - jr z, .asm_c5ca - call Func_c71e - jr .asm_c5ca -.asm_c5ca - ret - -Func_c5cb: ; c5cb (3:45cb) - call Func_c5d5 - ld [$d334], a - call Func_c5e9 - ret - -Func_c5d5: ; c5d5 (3:45d5) - push hl - ld hl, Unknown_c5e5 - or a - jr z, .asm_c5e2 -.asm_c5dc - rlca - jr c, .asm_c5e2 - inc hl - jr .asm_c5dc -.asm_c5e2 - ld a, [hl] - pop hl - ret - -Unknown_c5e5: ; c5e5 (3:45e5) - db $02,$00,$03,$01 - -Func_c5e9: ; c5e9 (3:45e9) - push bc - ld a, [$d336] - ld [$d4cf], a - ld a, [$d337] - ld b, a - ld a, [$d334] - add b - farcall Func_12ab5 - pop bc - ret - -Func_c5fe: ; c5fe (3:45fe) - push bc - call Func_c653 - call Func_c619 - pop bc - ret -; 0xc607 - -INCBIN "baserom.gbc",$c607,$c619 - $c607 - -Func_c619: ; c619 (3:4619) - push hl - push bc - ld a, b - cp $1f - jr nc, .asm_c650 - ld a, c - cp $1f - jr nc, .asm_c650 - call Func_3927 - and $c0 - jr nz, .asm_c650 - ld a, b - ld [wPlayerXCoord], a - ld a, c - ld [wPlayerYCoord], a - ld a, [$d335] - or $1 - ld [$d335], a - ld a, $10 - ld [$d338], a - ld c, $f - call Func_3dbf - set 2, [hl] - ld c, $e - call Func_3dbf - ld a, $4 - ld [hl], a -.asm_c650 - pop bc - pop hl - ret - -Func_c653: ; c653 (3:4653) - ld a, [$d334] - rlca - ld c, a - ld b, $0 - push hl - ld hl, Unknown_3973 - add hl, bc - ld a, [wPlayerXCoord] - add [hl] - ld b, a - inc hl - ld a, [wPlayerYCoord] - add [hl] - ld c, a - pop hl - ret - -Func_c66c: ; c66c (3:466c) - push hl - push bc - ld c, $1 - ld a, [$ff90] - bit 1, a - jr z, .asm_c67e - ld a, [$d338] - cp $2 - jr c, .asm_c67e - inc c -.asm_c67e - ld a, [$d334] - call Func_c694 - pop bc - pop hl - ret -; 0xc687 - -INCBIN "baserom.gbc",$c687,$c694 - $c687 - -Func_c694: ; c694 (3:4694) - push hl - push bc - push bc - rlca - ld c, a - ld b, $0 - ld hl, Unknown_396b - add hl, bc - pop bc -.asm_c6a0 - push hl - ld a, [hli] - or a - call nz, Func_c6cc - ld a, [hli] - or a - call nz, Func_c6d4 - pop hl - ld a, [$d338] - dec a - ld [$d338], a - jr z, .asm_c6b8 - dec c - jr nz, .asm_c6a0 -.asm_c6b8 - ld a, [$d338] - or a - jr nz, .asm_c6c3 - ld hl, $d335 - set 1, [hl] -.asm_c6c3 - call Func_c41c - call Func_c469 - pop bc - pop hl - ret - -Func_c6cc: ; c6cc (3:46cc) - push hl - ld hl, $d332 - add [hl] - ld [hl], a - pop hl - ret - -Func_c6d4: ; c6d4 (3:46d4) - push hl - ld hl, $d333 - add [hl] - ld [hl], a - pop hl - ret - -Func_c6dc: ; c6dc (3:46dc) - push hl - ld hl, $d335 - res 0, [hl] - res 1, [hl] - call Func_c6f7 - call Func_3997 - call Func_c70d - ld a, [$d0bf] - cp $1 - call z, Func_c9c0 - pop hl - ret - -Func_c6f7: ; c6f7 (3:46f7) - ld a, [$d336] - ld [$d4cf], a - ld c, $f - call Func_3dbf - res 2, [hl] - ld c, $e - call Func_3dbf - ld a, $ff - ld [hl], a - ret - -Func_c70d: ; c70d (3:470d) - push hl - ld hl, $d0bb - ld a, [wCurMap] - cp [hl] - jr z, .asm_c71c - ld hl, $d0b4 - set 4, [hl] -.asm_c71c - pop hl - ret - -Func_c71e: ; c71e (3:471e) - ld a, $ff - ld [$d3b6], a - call Func_c653 - call Func_3927 - and $40 - jr z, .asm_c73d - farcall Func_1c72e - jr c, .asm_c73d - ld a, [$d3aa] - ld [$d3b6], a - ld a, $2 - jr .asm_c748 -.asm_c73d - call Func_3a5e - jr nc, .asm_c746 - ld a, $3 - jr .asm_c748 -.asm_c746 - or a - ret -.asm_c748 - ld [$d0bf], a - scf - ret - -Func_c74d: ; c74d (3:474d) - push hl - push bc - push de - call MainMenu_c75a - call Func_c111 - pop de - pop bc - pop hl - ret - -MainMenu_c75a: ; c75a (3:475a) - call Func_379b - ld a, MUSIC_PAUSEMENU - call PlaySong - call Func_c797 -.asm_c765 - ld a, $1 - call Func_c29b -.asm_c76a - call Func_3c48 - call Func_264b - jr nc, .asm_c76a - ld a, e - ld [$d0b8], a - ld a, [$ffb1] - cp e - jr nz, .asm_c793 - cp $5 - jr z, .asm_c793 - call Func_c2a3 - ld a, [$d0b8] - ld hl, PointerTable_c7a2 - call JumpToFunctionInTable - ld hl, Func_c797 - call Func_c32b - jr .asm_c765 -.asm_c793 - call Func_37a0 - ret - -Func_c797: ; c797 (3:4797) - ld a, [$d0b8] - ld hl, Unknown_cd98 - farcall Func_111e9 - ret - -PointerTable_c7a2: ; c7a2 (3:47a2) - dw Func_c7ae - dw Func_c7b3 - dw Func_c7b8 - dw Func_c7cc - dw Func_c7e0 - dw Func_c7e5 - -Func_c7ae: ; c7ae (3:47ae) - farcall Func_10059 - ret - -Func_c7b3: ; c7b3 (3:47b3) - farcall Func_100a2 - ret - -Func_c7b8: ; c7b8 (3:47b8) - xor a - ld [$ff92], a - ld [$ff93], a - call Set_OBJ_8x16 - farcall Func_1288c - farcall Func_8db0 - call Set_OBJ_8x8 - ret - -Func_c7cc: ; c7cc (3:47cc) - xor a - ld [$ff92], a - ld [$ff93], a - call Set_OBJ_8x16 - farcall Func_1288c - farcall Func_a288 - call Set_OBJ_8x8 - ret - -Func_c7e0: ; c7e0 (3:47e0) - farcall Func_10548 - ret - -Func_c7e5: ; c7e5 (3:47e5) - farcall Func_103d2 - ret - -PC_c7ea: ; c7ea (3:47ea) - ld a, MUSIC_PCMAINMENU - call PlaySong - call Func_c241 - call $4915 - call Func_3c48 - ld hl, $0352 - call $2c73 - call $484e -.asm_c801 - ld a, $1 - call Func_c29b -.asm_c806 - call Func_3c48 - call Func_264b - jr nc, .asm_c806 - ld a, e - ld [$d0b9], a - ld a, [$ffb1] - cp e - jr nz, .asm_c82f - cp $4 - jr z, .asm_c82f - call Func_c2a3 - ld a, [$d0b9] - ld hl, $4846 - call JumpToFunctionInTable - ld hl, $484e - call Func_c32b - jr .asm_c801 -.asm_c82f - call Func_c135 - call Func_3c48 - ld hl, $0353 - call $4891 - call Func_c111 - xor a - ld [$d112], a - call Func_39fc - ret -; 0xc846 - -INCBIN "baserom.gbc",$c846,$c935 - $c846 - -Func_c935: ; c935 (3:4935) - push hl - ld hl, $d0c6 - ld [hl], c - inc hl - ld [hl], b - ld a, $3 - ld [$d0bf], a - pop hl - ret - -Func_c943: ; c943 (3:4943) - push hl - push bc - push de - ld l, $0 - call Func_3abd - jr nc, .asm_c98f -.asm_c94d - ld a, l - ld [$d4c4], a - ld a, h - ld [$d4c5], a - ld a, $4 - ld [$d4c6], a - ld de, $d3ab - ld bc, $0006 - call Func_3bf5 - ld a, [$d3ab] - or a - jr z, .asm_c98f - push hl - ld a, [$d3af] - ld l, a - ld a, [$d3b0] - ld h, a - or l - jr z, .asm_c97a - call Func_3c45 - jr nc, .asm_c988 -.asm_c97a - ld a, [$d3ab] - farcall Func_11857 - call Func_c998 - farcall Func_1c485 -.asm_c988 - pop hl - ld bc, $0006 - add hl, bc - jr .asm_c94d -.asm_c98f - ld l, $2 - call Func_c9c2 - pop de - pop bc - pop hl - ret - -Func_c998: ; c998 (3:4998) - ld a, [$d3ab] - cp $22 - ret nz - ld a, [$d3d0] - or a - ret z - ld b, $4 - ld a, [$cab4] - cp $2 - jr nz, .asm_c9ae - ld b, $e -.asm_c9ae - ld a, b - ld [$d3b1], a - ld a, $0 - ld [$d3b2], a - ret - -Func_c9b8: ; c9b8 (3:49b8) - ld l, $8 - jr Func_c9c2 - -Func_c9bc: ; c9bc (3:49bc) - ld l, $a - jr Func_c9c2 - -Func_c9c0: ; c9c0 (3:49c0) - ld l, $c - -Func_c9c2: ; c9c2 (3:49c2) - call Func_3abd - ret nc - jp [hl] - -Func_c9c7: ; c9c7 (3:49c7) - ld l, $e - jr Func_c9c2 - -Func_c9cb: ; c9cb (3:49cb) - push hl - push bc - ld hl, $d3d2 - ld bc, $0040 -.asm_c9d3 - xor a - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_c9d3 - pop bc - pop hl - ret - -Func_c9dd: ; c9dd (3:49dd) - xor a - ld [$d411], a - call Func_c9e8 - call Func_ca0e - ret - -Func_c9e8: ; c9e8 (3:49e8) - ld c, $0 - call Func_ca69 - db $13 - cp $2 - jr c, .asm_ca04 -.asm_c9f2 - call Func_089b - and $3 - ld c, a - ld b, $0 - ld hl, Unknown_ca0a - add hl, bc - ld a, [$d0bb] - cp [hl] - jr z, .asm_c9f2 -.asm_ca04 - ld a, c - call Func_ca8f - db $34 - ret - -Unknown_ca0a: ; ca0a (3:4a04) -INCBIN "baserom.gbc",$ca0a,$ca0e - $ca0a - -Func_ca0e: ; ca0e (3:4a0e) - ld a, [$d32e] - cp $b - jr z, .asm_ca68 - call Func_ca69 - db $22 - or a - jr nz, .asm_ca4a - call Func_ca69 - db $40 - cp $7 - jr z, .asm_ca68 - or a - jr z, .asm_ca33 - cp $2 - jr z, .asm_ca62 - ld c, $1 - call Func_ca8f - db $40 - jr .asm_ca62 -.asm_ca33 - call Func_ca69 - db $3f - cp $7 - jr z, .asm_ca68 - or a - jr z, .asm_ca68 - cp $2 - jr z, .asm_ca68 - ld c, $1 - call Func_ca8f - db $3f - jr .asm_ca68 -.asm_ca4a - call Func_089b - ld c, $1 - and $3 - or a - jr z, .asm_ca56 - ld c, $0 -.asm_ca56 - call Func_ca8f - db $41 - jr .asm_ca5c -.asm_ca5c - ld c, $7 - call Func_ca8f - db $40 -.asm_ca62 - ld c, $7 - call Func_ca8f - db $3f -.asm_ca68 - ret - -Func_ca69: ; ca69 (3:4a69) - call Func_cab3 -Func_ca6c: ; ca6c (3:4a6c) - push hl - push bc - call Func_cb1d - ld c, [hl] - ld a, [$d3d1] -.asm_ca75 - bit 0, a - jr nz, .asm_ca7f - srl a - srl c - jr .asm_ca75 -.asm_ca7f - and c - pop bc - pop hl - or a - ret -; 0xca84 - -INCBIN "baserom.gbc",$ca84,$ca8f - $ca84 - -Func_ca8f: ; ca8f (3:4a8f) - call Func_cab3 - push hl - push bc - call Func_cb1d - ld a, [$d3d1] -.asm_ca9a - bit 0, a - jr nz, .asm_caa4 - srl a - sla c - jr .asm_ca9a -.asm_caa4 - ld a, [$d3d1] - and c - ld c, a - ld a, [$d3d1] - cpl - and [hl] - or c - ld [hl], a - pop bc - pop hl - ret - -Func_cab3: ; cab3 (3:4ab3) - push hl - ld hl, [sp+$4] - push bc - ld c, [hl] - inc hl - ld b, [hl] - ld a, [bc] - inc bc - ld [hl], b - dec hl - ld [hl], c - pop bc - pop hl - ret -; 0xcac2 - -INCBIN "baserom.gbc",$cac2,$cb1d - $cac2 - -Func_cb1d: ; cb1d (3:4b1d) - push bc - ld c, a - ld b, $0 - sla c - rl b - ld hl, Unknown_cb37 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld [$d3d1], a - ld b, $0 - ld hl, $d3d2 - add hl, bc - pop bc - ret - -Unknown_cb37: ; cb37 (3:4b37) -INCBIN "baserom.gbc",$cb37,$cc42 - $cb37 - -RST20: ; cc42 (3:4c42) - pop hl - ld a, l - ld [$d413], a - ld a, h - ld [$d414], a - xor a - ld [$d412], a -.asm_cc4f - call Func_3aed - ld a, [$d412] - or a - jr z, .asm_cc4f - ld hl, $d413 - ld a, [hli] - ld c, a - ld b, [hl] - push bc - ret -; 0xcc60 - -INCBIN "baserom.gbc",$cc60,$cd98 - $cc60 - -Unknown_cd98: ; cd98 (3:4d98) -INCBIN "baserom.gbc",$cd98,$d336 - $cd98 - -DeckMachine_d336: ; d336 (3:5336) - push bc - call Func_c2a3 - call Func_379b - ld a, MUSIC_DECKMACHINE - call PlaySong - call Func_04a2 - xor a - ld [$ff92], a - ld [$ff93], a - farcall Func_1288c - call EnableLCD - pop bc - ld a, c - or a - jr z, .asm_d360 - dec a - ld [$d0a9], a - farcallx $2, $7a04 - jr .asm_d364 -.asm_d360 - farcallx $2, $719d -.asm_d364 - call Func_37a0 - call $42d4 - jp $4c64 -; 0xd36d - -INCBIN "baserom.gbc",$d36d,$fc2b - $d36d - -Func_fc2b: ; fc2b (3:7c2b) - ld a, [$d0c3] - cp $2 - jr c, .asm_fc34 - ld a, $2 -.asm_fc34 - rlca - ld c, a - ld b, $0 - ld hl, PointerTable_fc4c - add hl, bc - ld c, [hl] - inc hl - ld b, [hl] - ld a, $b0 - ld [$d0c8], a - ld a, $3 - ld [$d0c9], a - jp Func_c935 - -PointerTable_fc4c: ; fc4c (3:7c4c) - dw Unknown_fc64 - dw Unknown_fc68 - dw Unknown_fc60 - -INCBIN "baserom.gbc",$fc52,$fc60 - $fc52 - -Unknown_fc60: ; fc60 (3:7c60) -INCBIN "baserom.gbc",$fc60,$fc64 - $fc60 - -Unknown_fc64: ; fc64 (3:7c64) -INCBIN "baserom.gbc",$fc64,$fc68 - $fc64 - -Unknown_fc68: ; fc68 (3:7c68) -INCBIN "baserom.gbc",$fc68,$fcad - $fc68 - -Func_fcad: ; fcad (3:7cad) -INCBIN "baserom.gbc",$fcad,$10000 - $fcad diff --git a/engine/bank4.asm b/engine/bank4.asm deleted file mode 100755 index f144aa6..0000000 --- a/engine/bank4.asm +++ /dev/null @@ -1,1147 +0,0 @@ -INCBIN "baserom.gbc",$10000,$10059 - $10000 - -Func_10059: ; 10059 (4:4059) -INCBIN "baserom.gbc",$10059,$100a2 - $10059 - -Func_100a2: ; 100a2 (4:40a2) -INCBIN "baserom.gbc",$100a2,$1029e - $100a2 - -Medal_1029e: ; 1029e (4:429e) - sub $8 - ld c, a - ld [$d115], a - ld a, [$d291] - push af - push bc - call Func_379b - ld a, MUSIC_STOP - call PlaySong - farcall Func_70000 - call DisableLCD - call $4000 - ld a, $fa - ld [$d114], a - call $410c - pop bc - ld a, c - add a - ld c, a - ld b, $0 - ld hl, Unknown_1030b - add hl, bc - ld a, [hli] - ld [$ce3f], a - ld a, [hl] - ld [$ce40], a - call $4031 - ld a, MUSIC_MEDAL - call PlaySong - ld a, $ff - ld [$d116], a -.asm_102e2 - call Func_3c48 - ld a, [$d116] - inc a - ld [$d116], a - and $f - jr nz, .asm_102e2 - call $4197 - ld a, [$d116] - cp $e0 - jr nz, .asm_102e2 - ld hl, $038b - call $2c73 - call $3c96 - call Func_37a0 - pop af - ld [$d291], a - ret - -Unknown_1030b: ; 1030b (4:430b) -INCBIN "baserom.gbc",$1030b,$1031b - $1030b - -BoosterPack_1031b: ; 1031b (4:431b) - ld c, a - ld a, [$d291] - push af - push bc - call DisableLCD - call $4000 - xor a - ld [$ccf3], a - pop bc - push bc - ld b, $0 - ld hl, $43a5 - add hl, bc - ld a, [hl] - ld c, a - add a - add a - ld c, a - ld hl, $43c2 - add hl, bc - ld a, [hli] - push hl - ld bc, $0600 - call $70ca - pop hl - ld a, [hli] - ld [$ce43], a - xor a - ld [$ce44], a - ld a, [hli] - ld [$ce3f], a - ld a, [hl] - ld [$ce40], a - call $4031 - call Func_379b - ld a, MUSIC_BOOSTERPACK - call PlaySong - pop bc - ld a, c - farcallx $7, $61c4 - ld hl, $0387 - ld a, [$d117] - cp $1 - jr nz, .asm_10373 - ld hl, $0388 -.asm_10373 - call $2c73 - call $3c96 - call Func_37a0 - ld hl, $0389 - call $2c73 - call DisableLCD - call Func_1288c - call Func_099c - ld a, $1 - ld [$cac0], a - ld a, $4 - ld [$ccf3], a - farcallx $1, $7599 - farcall Func_c1a4 - call Func_3c48 - pop af - ld [$d291], a - ret -; 0x103a5 - -INCBIN "baserom.gbc",$103a5,$103d2 - $103a5 - -Func_103d2: ; 103d2 (4:43d2) -INCBIN "baserom.gbc",$103d2,$103d3 - $103d2 - -Duel_Init: ; 103d3 (4:43d3) - ld a, [$d291] - push af - call DisableLCD - call $4000 - ld a, $4 - ld [$ccf3], a - ld de, $000c - ld bc, $1406 - call Func_1e7c ; LoadTextBoxBorder - ld a, [$cc19] - add a - add a - ld c, a - ld b, $0 - ld hl, $445b - add hl, bc - ld a, [hli] - ld [$ce3f], a - ld a, [hli] - ld [$ce40], a - push hl - ld a, [$cc16] - ld [$ce41], a - ld a, [$cc17] - ld [$ce42], a - ld hl, $4451 - call $51b3 ; LoadDuelistName - pop hl - ld a, [hli] - ld [$ce3f], a - ld c, a - ld a, [hli] - ld [$ce40], a - or c - jr z, .asm_10425 - ld hl, $4456 - call $51b3 ; LoadDeckName - -.asm_10425 - ld bc, $0703 - ld a, [$cc15] - call Func_3e2a ; LoadDuelistPortrait - ld a, [wMatchStartTheme] - call PlaySong - call $4031 - call Func_3c48 - ld bc, $2f1d - ld de, $1211 - call Func_2a1a - call $2a00 ; wait for the user to press a or b - call $3c96 - call Func_10ab4 ; fade out - pop af - ld [$d291], a - ret -; 0x10451 - -INCBIN "baserom.gbc",$10451,$10548 - $10451 - -Func_10548: ; 10548 (4:4548) -INCBIN "baserom.gbc",$10548,$10756 - $10548 - -Func_10756: ; 10756 (4:4756) -INCBIN "baserom.gbc",$10756,$10a9b - $10756 - -Func_10a9b: ; 10a9b (4:4a9b) -INCBIN "baserom.gbc",$10a9b,$10ab4 - $10a9b - -Func_10ab4: ; 10ab4 (4:4ab4) -INCBIN "baserom.gbc",$10ab4,$10af9 - $10ab4 - -Func_10af9: ; 10af9 (4:4af9) -INCBIN "baserom.gbc",$10af9,$10e28 - $10af9 - -Func_10e28: ; 10e28 (4:4e28) -INCBIN "baserom.gbc",$10e28,$10e55 - $10e28 - -Func_10e55: ; 10e55 (4:4e55) - ld a, [$d336] - ld [$d4cf], a - ld a, [$d33e] - or a - jr nz, .asm_10e65 - call Func_10e71 - ret -.asm_10e65 - cp $2 - jr z, .asm_10e6d - call Func_11060 - ret -.asm_10e6d - call LoadOverworldMapSelection - ret - -Func_10e71: ; 10e71 (4:4e71) - ld a, [$ff91] - and $f0 - jr z, .asm_10e83 - farcall Func_c5d5 - ld [$d334], a - call Func_10e97 - jr .asm_10e96 -.asm_10e83 - ld a, [$ff91] - and $1 - jr z, .asm_10e96 - ld a, $2 - call Func_3796 - call Func_11016 - call Func_11024 - jr .asm_10e96 -.asm_10e96 - ret - -Func_10e97: ; 10e97 (4:4e97) - push hl - pop hl - ld a, [$d32e] - rlca - rlca - ld c, a - ld a, [$d334] - add c - ld c, a - ld b, $0 - ld hl, Unknown_10ebc - add hl, bc - ld a, [hl] - or a - jr z, .asm_10eb9 - ld [$d32e], a - call Func_10f2e - ld a, $1 - call Func_3796 -.asm_10eb9 - pop bc - pop hl - ret - -Unknown_10ebc: ; 10ebc (4:4ebc) -INCBIN "baserom.gbc",$10ebc,$10efd - $10ebc - -Func_10efd: ; 10efd (4:4efd) - push hl - push de - rlca - ld e, a - ld d, $0 - ld hl, Unknown_10f14 - add hl, de - pop de - ld a, [hli] - add $8 - add d - ld d, a - ld a, [hl] - add $10 - add e - ld e, a - pop hl - ret - -Unknown_10f14: ; 10f14 (4:4f14) -INCBIN "baserom.gbc",$10f14,$10f2e - $10f14 - -Func_10f2e: ; 10f2e (4:4f2e) - push hl - push de - ld de, $0101 - call Func_22ae - call Func_10f4a - rlca - ld e, a - ld d, $0 - ld hl, Unknown_397b - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - call Func_2c29 - pop de - pop hl - ret - -Func_10f4a: ; 10f4a (4:4f4a) - push bc - ld a, [$d32e] - cp $2 - jr nz, .asm_10f5f - ld c, a - ld a, $1e - farcall Func_ca6c - or a - ld a, c - jr nz, .asm_10f5f - ld a, $d -.asm_10f5f - pop bc - ret - -LoadOverworldMapSelection: ; 10f61 (4:4f61) - push hl - push bc - ld a, [$d32e] - rlca - rlca - ld c, a - ld b, $0 - ld hl, OverworldMapIndexes - add hl, bc - ld a, [hli] - ld [$d0bb], a - ld a, [hli] - ld [$d0bc], a - ld a, [hli] - ld [$d0bd], a - ld a, $0 - ld [$d0be], a - ld hl, $d0b4 - set 4, [hl] - pop bc - pop hl - ret - -INCLUDE "data/overworld_indexes.asm" - -Func_10fbc: ; 10fbc (4:4fbc) - ld a, $25 - farcall Func_1299f - ld c, $2 - call Func_3dbf - ld a, $80 - ld [hli], a - ld a, $10 - ld [hl], a - ld b, $34 - ld a, [$cab4] - cp $2 - jr nz, .asm_10fd8 - ld b, $37 -.asm_10fd8 - ld a, b - farcall Func_12ab5 - ret - -Func_10fde: ; 10fde (4:4fde) - ld a, [$d32e] - ld [$d33d], a - xor a - ld [$d33e], a - ld a, $25 - call Func_1299f - ld a, [$d4cf] - ld [$d33b], a - ld b, $35 - ld a, [$cab4] - cp $2 - jr nz, .asm_10ffe - ld b, $38 -.asm_10ffe - ld a, b - ld [$d33c], a - call Func_12ab5 - ld a, $3e - farcall Func_ca6c - or a - jr nz, .asm_11015 - ld c, $f - call Func_3dbf - set 7, [hl] -.asm_11015 - ret - -Func_11016: ; 11016 (4:5016) - ld a, [$d33b] - ld [$d4cf], a - ld a, [$d33c] - inc a - call Func_12ab5 - ret - -Func_11024: ; 11024 (4:5024) - ld a, $57 - call Func_3796 - ld a, [$d336] - ld [$d4cf], a - ld c, $f - call Func_3dbf - set 2, [hl] - ld hl, Unknown_1229f - ld a, [$d33d] - dec a - add a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d32e] - dec a - add a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - ld [$d33f], a - ld a, [hl] - ld [$d340], a - ld a, $1 - ld [$d33e], a - xor a - ld [$d341], a - ret - -Func_11060: ; 11060 (4:5060) - ld a, [$d336] - ld [$d4cf], a - ld a, [$d341] - or a - jp nz, Func_11184 - ld a, [$d33f] - ld l, a - ld a, [$d340] - ld h, a - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - and b - cp $ff - jr z, .asm_110a0 - ld a, c - or b - jr nz, .asm_11094 - ld a, [$d33d] - ld e, a - ld a, [$d32e] - cp e - jr z, .asm_110a0 - ld de, $0000 - call Func_10efd - ld b, d - ld c, e -.asm_11094 - ld a, l - ld [$d33f], a - ld a, h - ld [$d340], a - call Func_110a6 - ret -.asm_110a0 - ld a, $2 - ld [$d33e], a - ret - -Func_110a6: ; 110a6 (4:50a6) - push hl - push bc - ld c, $2 - call Func_3dbf - pop bc - ld a, b - sub [hl] - ld [$d343], a - ld a, $0 - sbc $0 - ld [$d344], a - inc hl - ld a, c - sub [hl] - ld [$d345], a - ld a, $0 - sbc $0 - ld [$d346], a - ld a, [$d343] - ld b, a - ld a, [$d344] - bit 7, a - jr z, .asm_110d8 - ld a, [$d343] - cpl - inc a - ld b, a -.asm_110d8 - ld a, [$d345] - ld c, a - ld a, [$d346] - bit 7, a - jr z, .asm_110e9 - ld a, [$d345] - cpl - inc a - ld c, a -.asm_110e9 - ld a, b - cp c - jr c, .asm_110f2 - call Func_11102 - jr .asm_110f5 -.asm_110f2 - call Func_1113e -.asm_110f5 - xor a - ld [$d347], a - ld [$d348], a - farcall Func_c5e9 - pop hl - ret - -Func_11102: ; 11102 (4:5102) - ld a, b - ld [$d341], a - ld e, a - ld d, $0 - ld hl, $d343 - xor a - ld [hli], a - bit 7, [hl] - jr z, .asm_11115 - dec a - jr .asm_11116 -.asm_11115 - inc a -.asm_11116 - ld [hl], a - ld b, c - ld c, $0 - call Func_3c5a - ld a, [$d346] - bit 7, a - jr z, .asm_11127 - call Func_11179 -.asm_11127 - ld a, c - ld [$d345], a - ld a, b - ld [$d346], a - ld hl, $d344 - ld a, $1 - bit 7, [hl] - jr z, .asm_1113a - ld a, $3 -.asm_1113a - ld [$d334], a - ret - -Func_1113e: ; 1113e (4:513e) - ld a, c - ld [$d341], a - ld e, a - ld d, $0 - ld hl, $d345 - xor a - ld [hli], a - bit 7, [hl] - jr z, .asm_11151 - dec a - jr .asm_11152 -.asm_11151 - inc a -.asm_11152 - ld [hl], a - ld c, $0 - call Func_3c5a - ld a, [$d344] - bit 7, a - jr z, .asm_11162 - call Func_11179 -.asm_11162 - ld a, c - ld [$d343], a - ld a, b - ld [$d344], a - ld hl, $d346 - ld a, $2 - bit 7, [hl] - jr z, .asm_11175 - ld a, $0 -.asm_11175 - ld [$d334], a - ret - -Func_11179: ; 11179 (4:5179) - ld a, c - cpl - add $1 - ld c, a - ld a, b - cpl - adc $0 - ld b, a - ret - -Func_11184: ; 11184 (4:5184) - ld a, [$d347] - ld d, a - ld a, [$d348] - ld e, a - ld c, $2 - call Func_3dbf - ld a, [$d343] - add d - ld d, a - ld a, [$d344] - adc [hl] - ld [hl], a - inc hl - ld a, [$d345] - add e - ld e, a - ld a, [$d346] - adc [hl] - ld [hl], a - ld a, d - ld [$d347], a - ld a, e - ld [$d348], a - ld hl, $d341 - dec [hl] - ret -; 0x111b3 - -INCBIN "baserom.gbc",$111b3,$111e9 - $111b3 - -Func_111e9: ; 111e9 (4:51e9) -INCBIN "baserom.gbc",$111e9,$1124d - $111e9 - -Func_1124d: ; 1124d (4:524d) -INCBIN "baserom.gbc",$1124d,$11320 - $1124d - -Func_11320: ; 11320 (4:5320) -INCBIN "baserom.gbc",$11320,$11416 - $11320 - -Func_11416: ; 11416 (4:5416) -INCBIN "baserom.gbc",$11416,$11430 - $11416 - -Func_11430: ; 11430 (4:5430) -INCBIN "baserom.gbc",$11430,$1162a - $11430 - -INCLUDE "data/map_scripts.asm" - -INCBIN "baserom.gbc",$1184a,$11857 - $1184a - -Func_11857: ; 11857 (4:5857) -INCBIN "baserom.gbc",$11857,$1217b - $11857 - -Unknown_1217b: ; 1217b (4:617b) -INCBIN "baserom.gbc",$1217b,$1229f - $1217b - -Unknown_1229f: ; 1229f (4:629f) -INCBIN "baserom.gbc",$1229f,$126d1 - $1229f - -Func_126d1: ; 126d1 (4:66d1) - call Func_099c - ld hl, $cac0 - inc [hl] - farcall Func_70018 - ld a, $ff - ld [$d627], a -.asm_126e1 - ld a, $c2 - ld [$ff97], a - farcall Func_c1f8 - farcall Func_1d078 - ld a, [$d628] - ld hl, PointerTable_126fc - call JumpToFunctionInTable - jr c, .asm_126e1 - jr Func_126d1 - - scf - ret - -PointerTable_126fc - dw CardPop_12768 - dw Func_12741 - dw Func_12704 - dw Func_1277e - -Func_12704: ; 12704 (4:6704) - farcall Func_c1b1 - call Func_128a9 - farcall Func_1996e - call EnableExtRAM - ld a, [$a007] - ld [$d421], a - ld a, [$a006] - ld [$ce47], a - call DisableExtRAM - ld a, MUSIC_STOP - call PlaySong - farcall Func_70000 - ld a, $9 - ld [$d111], a - call Func_39fc - farcall Func_1d306 - ld a, $0 - ld [$d0b5], a - farcallx $03, Func_383d - or a - ret - -Func_12741: ; 12741 (4:6741) - ld a, MUSIC_STOP - call PlaySong - call Func_11320 - jr nc, Func_12704 - farcall Func_c1ed - farcall Func_70000 - call EnableExtRAM - xor a - ld [$ba44], a - call DisableExtRAM - ld a, $0 - ld [$d0b5], a - farcallx $03, Func_383d - or a - ret - -CardPop_12768: ; 12768 (4:6768) - ld a, MUSIC_CARDPOP - call PlaySong - bank1call Func_7571 - farcall Func_c1a4 - call Func_3c48 - ld a, MUSIC_STOP - call PlaySong - scf - ret - -Func_1277e: ; 1277e (4:677e) - ld a, MUSIC_STOP - call PlaySong - farcall Func_c9cb - farcallx $04, Func_3a40 - farcall Func_70000 - ld a, $5 - ld [$d0b5], a - farcallx $03, Func_383d - or a - ret -; 0x1279a - -INCBIN "baserom.gbc",$1279a,$12871 - $1279a - -Func_12871: ; 12871 (4:6871) -INCBIN "baserom.gbc",$12871,$1288c - $12871 - -Func_1288c: ; 1288c (4:688c) -INCBIN "baserom.gbc",$1288c,$128a9 - $1288c - -Func_128a9: ; 128a9 (4:68a9) -INCBIN "baserom.gbc",$128a9,$1296e - $128a9 - -Func_1296e: ; 1296e (4:696e) -INCBIN "baserom.gbc",$1296e,$1299f - $1296e - -Func_1299f: ; 1299f (4:699f) - push af - ld a, [$d5d7] - or a - jr z, .asm_129a8 - pop af - ret -.asm_129a8 - pop af - push bc - push hl - call Func_12c05 - ld [$d5d3], a - xor a - ld [$d4cf], a - call Func_3db7 - ld bc, $0010 -.asm_129bb - ld a, [hl] - or a - jr z, .asm_129cf - add hl, bc - ld a, [$d4cf] - inc a - ld [$d4cf], a - cp $10 - jr nz, .asm_129bb - rst $38 - scf - jr .asm_129d6 -.asm_129cf - ld a, $1 - ld [hl], a - call Func_129d9 - or a -.asm_129d6 - pop hl - pop bc - ret - -Func_129d9: ; 129d9 (4:69d9) - push hl - push bc - push hl - inc hl - ld c, $f - xor a -.asm_129e0 - ld [hli], a - dec c - jr nz, .asm_129e0 - pop hl - ld bc, $0004 - add hl, bc - ld a, [$d5d3] - ld [hli], a - ld a, $ff - ld [hl], a - ld bc, $0009 - add hl, bc - ld a, $ff - ld [hl], a - pop bc - pop hl - ret -; 0x129fa - -INCBIN "baserom.gbc",$129fa,$12a21 - $129fa - -Func_12a21: ; 12a21 (4:6a21) -INCBIN "baserom.gbc",$12a21,$12ab5 - $12a21 - -Func_12ab5: ; 12ab5 (4:6ab5) - push hl - push af - ld c, $5 - call Func_3dbf - pop af - cp [hl] - pop hl - ret z - push hl - call Func_12ae2 - call Func_12b13 - pop hl - ret -; 0x12ac9 - -INCBIN "baserom.gbc",$12ac9,$12ae2 - $12ac9 - -Func_12ae2: ; 12ae2 (4:6ae2) - push bc - push af - call Func_3db7 - pop af - push hl - ld bc, $0005 - add hl, bc - ld [hli], a - push hl - ld l, $6 - farcall Func_8020f - farcall Func_80229 - pop hl - ld a, [$d4c6] - ld [hli], a - ld a, [$d4c4] - ld [hli], a - ld c, a - ld a, [$d4c5] - ld [hli], a - ld b, a - ld a, $3 - add c - ld [hli], a - ld a, $0 - adc b - ld [hli], a - pop hl - pop bc - ret - -Func_12b13: ; 12b13 (4:6b13) - push bc - push de - push hl -.asm_12b16 - push hl - ld bc, $0006 - add hl, bc - ld a, [hli] - ld [$d4c6], a - inc hl - inc hl - ld a, [hl] - ld [$d4c4], a - add $4 - ld [hli], a - ld a, [hl] - ld [$d4c5], a - adc $0 - ld [hl], a - ld de, $d23e - ld bc, $0004 - call Func_3bf5 - pop hl - ld de, $d23e - ld a, [de] - call Func_12b6a - inc de - ld a, [de] - call Func_12b89 - jr c, .asm_12b16 - inc de - ld bc, $0002 - add hl, bc - push hl - ld bc, $000d - add hl, bc - ld b, [hl] - pop hl - ld a, [de] - bit 0, b - jr z, .asm_12b5a - cpl - inc a -.asm_12b5a - add [hl] - ld [hli], a - inc de - ld a, [de] - bit 1, b - jr z, .asm_12b64 - cpl - inc a -.asm_12b64 - add [hl] - ld [hl], a - pop hl - pop de - pop bc - ret - -Func_12b6a: ; 12b6a (4:6b6a) - ld [$d4ca], a - push hl - push bc - push de - push hl - ld bc, $0006 - add hl, bc - ld a, [hli] - ld [$d4c6], a - ld a, [hli] - ld [$d4c4], a - ld a, [hli] - ld [$d4c5], a - pop hl - call Func_3d72 - pop de - pop bc - pop hl - ret - -Func_12b89: ; 12b89 (4:6b89) - push hl - push bc - ld bc, $000e - add hl, bc - ld [hl], a - or a - jr nz, .asm_12ba4 - ld bc, $fff9 - add hl, bc - ld a, [hli] - add $3 - ld c, a - ld a, [hli] - adc $0 - ld b, a - ld a, c - ld [hli], a - ld a, b - ld [hl], a - scf -.asm_12ba4 - pop bc - pop hl - ret - -Func_12ba7: ; 12ba7 (4:6ba7) -INCBIN "baserom.gbc",$12ba7,$12bcd - $12ba7 - -Func_12bcd: ; 12bcd (4:6bcd) -INCBIN "baserom.gbc",$12bcd,$12c05 - $12bcd - -Func_12c05: ; 12c05 (4:6c05) - push hl - push bc - push de - ld b, a - ld d, $0 - ld a, [$d618] - ld c, a - ld hl, $d5d8 - or a - jr z, .asm_12c22 -.asm_12c15 - inc hl - ld a, [hl] - cp b - jr z, .asm_12c3a - inc hl - ld a, [hli] - add [hl] - ld d, a - inc hl - dec c - jr nz, .asm_12c15 -.asm_12c22 - ld a, [$d618] - cp $10 - jr nc, .asm_12c48 - inc a - ld [$d618], a - inc hl - push hl - ld a, b - ld [hli], a - call Func_12c4f - push af - ld a, d - ld [hli], a - pop af - ld [hl], a - pop hl -.asm_12c3a - dec hl - inc [hl] - inc hl - inc hl - ld a, [hli] - add [hl] - cp $81 - jr nc, .asm_12c48 - ld a, d - or a - jr .asm_12c4b -.asm_12c48 - rst $38 - xor a - scf -.asm_12c4b - pop de - pop bc - pop hl - ret - -Func_12c4f: ; 12c4f (4:6c4f) - push af - xor a - ld [$d4cb], a - ld a, d - ld [$d4ca], a - pop af - farcall Func_8025b - ret - -Func_12c5e: ; 12c5e (4:6c5e) -INCBIN "baserom.gbc",$12c5e,$12c7f - $12c5e - -Func_12c7f: ; 12c7f (4:6c7f) -INCBIN "baserom.gbc",$12c7f,$131b3 - $12c7f - -Func_131b3: ; 131b3 (4:71b3) -INCBIN "baserom.gbc",$131b3,$131d3 - $131b3 - -Func_131d3: ; 131d3 (4:71d3) -INCBIN "baserom.gbc",$131d3,$1344d - $131d3 - -Func_1344d: ; 1344d (4:744d) - call Func_379b - ld a, MUSIC_MEDAL - call PlaySong - ld hl, $07e6 - call $2c73 - call $3c96 - call Func_37a0 - ret -; 0x13462 - -INCBIN "baserom.gbc",$13462,$13485 - $13462 - -Func_13485: ; 13485 (4:7485) - call EnableExtRAM - ld a, [$ba68] - or a - ret z - ld a, [$ba56] - ld [$ce43], a - ld a, [$ba57] - ld [$ce44], a - call DisableExtRAM - call Func_379b - ld a, MUSIC_MEDAL - call PlaySong - ld hl, $07e8 - call $2c73 - call $3c96 - call Func_37a0 - ret -; 0x134b1 - -INCBIN "baserom.gbc",$134b1,$14000 - $134b1 diff --git a/engine/bank6.asm b/engine/bank6.asm deleted file mode 100755 index 7535b3f..0000000 --- a/engine/bank6.asm +++ /dev/null @@ -1,175 +0,0 @@ -INCBIN "baserom.gbc",$18000,$1996e - $18000 - -Func_1996e: ; 1996e (6:596e) - call EnableExtRAM - ld a, $c2 - ld [$ff97], a - ld hl, $a100 - ld bc, $1607 -.asm_1997b - xor a - ld [hli], a - dec bc - ld a, c - or b - jr nz, .asm_1997b - ld a, $5 - ld hl, $a350 - call Func_199e0 - ld a, $7 - ld hl, $a3a4 - call Func_199e0 - ld a, $9 - ld hl, $a3f8 - call Func_199e0 - call EnableExtRAM - ld hl, $a100 - ld a, $80 -.asm_199a2 - ld [hl], a - inc l - jr nz, .asm_199a2 - ld hl, $bc00 - xor a - ld [hli], a - ld [hli], a - ld [hl], a - ld hl, $bb00 - ld c, $10 -.asm_199b2 - ld [hl], $0 - ld de, $0010 - add hl, de - dec c - jr nz, .asm_199b2 - ld a, $2 - ld [$a003], a - ld a, $2 - ld [$a006], a - ld [$ce47], a - xor a - ld [$a007], a - ld [$a009], a - ld [$a004], a - ld [$a005], a - ld [$a00a], a - farcall Func_8cf9 - call DisableExtRAM - ret - -Func_199e0: ; 199e0 (6:59e0) - push de - push bc - push hl - call LoadDeck - jr c, .asm_19a0e - call Func_19a12 - pop hl - call EnableExtRAM - push hl - ld de, $c590 -.asm_199f3 - ld a, [de] - inc de - ld [hli], a - or a - jr nz, .asm_199f3 - pop hl - push hl - ld de, $0018 - add hl, de - ld de, $c400 - ld c, $3c -.asm_19a04 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_19a04 - call DisableExtRAM - or a -.asm_19a0e - pop hl - pop bc - pop de - ret - -Func_19a12: ; 19a12 (6:5a12) - ld hl, $cce9 - ld a, [hli] - ld h, [hl] - ld l, a - ld de, $c590 - call Func_2e89 - ret -; 0x19a1f - -INCBIN "baserom.gbc",$19a1f,$1a61f - $19a1f - -Func_1a61f: ; 1a61f (6:661f) - push af - ld de, $389f - call Func_2275 - pop af - or a - jr nz, .asm_1a640 - ld a, $40 - call $663b - ld a, $5f - call $663b - ld a, $76 - call $663b - ld a, $c1 - ld hl, $0191 - jr .asm_1a660 -.asm_1a640 - ld hl, $018f - cp $1e - jr z, .asm_1a660 - cp $43 - jr z, .asm_1a660 - ld hl, $0192 - cp $64 - jr z, .asm_1a660 - ld hl, $0193 - cp $65 - jr z, .asm_1a660 - cp $66 - jr z, .asm_1a660 - ld hl, $0190 -.asm_1a660 - push hl - ld e, a - ld d, $0 - call $2f10 - call Func_379b - ld a, MUSIC_MEDAL - call PlaySong - ld hl, $cc27 - ld a, [hli] - ld h, [hl] - ld l, a - bank1call $2ebb - ld a, $c2 - ld [$ff97], a - pop hl - bank1call $5e5f -.asm_1a680 - call Func_378a - or a - jr nz, .asm_1a680 - call Func_37a0 - bank1call $5773 - ret -; 0x1a68d - -INCBIN "baserom.gbc",$1a68d,$1a6cc - $1a68d - -Func_1a6cc: ; 1a6cc (6:66cc) - ret -; 0x1a6cd - -INCBIN "baserom.gbc",$1a6cd,$1ad89 - $1a6cd - -Func_1ad89: ; 1ad89 (6:6d89) -INCBIN "baserom.gbc",$1ad89,$1c000 - $1ad89 diff --git a/engine/bank7.asm b/engine/bank7.asm deleted file mode 100755 index 7622b0d..0000000 --- a/engine/bank7.asm +++ /dev/null @@ -1,314 +0,0 @@ -INCBIN "baserom.gbc",$1c000,$1c056 - $1c000 - -Func_1c056: ; 1c056 (7:4056) - push hl - push bc - push de - ld a, [wCurMap] - add a - ld c, a - ld b, $0 - ld hl, WarpDataPointers - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld bc, $0005 - ld a, [wPlayerXCoord] - ld d, a - ld a, [wPlayerYCoord] - ld e, a -.asm_1c072 - ld a, [hli] - or [hl] - jr z, .asm_1c095 - ld a, [hld] - cp e - jr nz, .asm_1c07e - ld a, [hl] - cp d - jr z, .asm_1c081 -.asm_1c07e - add hl, bc - jr .asm_1c072 -.asm_1c081 - inc hl - inc hl - ld a, [hli] - ld [$d0bb], a - ld a, [hli] - ld [$d0bc], a - ld a, [hli] - ld [$d0bd], a - ld a, [$d334] - ld [$d0be], a -.asm_1c095 - pop de - pop bc - pop hl - ret - -INCLUDE "data/warp_data.asm" - -Func_1c33b: ; 1c33b (7:433b) - push hl - push bc - push de - ld a, [wCurMap] - add a - ld c, a - add a - add c - ld c, a - ld b, $0 - ld hl, MapSongs - add hl, bc - ld a, [hli] - ld [$d131], a - ld a, [hli] - ld c, a - ld a, [hli] - ld [$d28f], a - ld a, [hli] - ld [$d132], a - ld a, [hli] - ld [$d290], a - ld a, [hli] - ld [$d111], a - ld a, [$cab4] - cp $2 - jr nz, .asm_1c370 - ld a, c - or a - jr z, .asm_1c370 - ld [$d131], a -.asm_1c370 - pop de - pop bc - pop hl - ret - -INCLUDE "data/map_songs.asm" - -Func_1c440: ; 1c440 (7:4440) -INCBIN "baserom.gbc",$1c440,$1c485 - $1c440 - -Func_1c485: ; 1c485 (7:4485) -INCBIN "baserom.gbc",$1c485,$1c58e - $1c485 - -Func_1c58e: ; 1c58e (7:458e) -INCBIN "baserom.gbc",$1c58e,$1c5e9 - $1c58e - -Func_1c5e9: ; 1c5e9 (7:45e9) -INCBIN "baserom.gbc",$1c5e9,$1c610 - $1c5e9 - -Func_1c610: ; 1c610 (7:4610) -INCBIN "baserom.gbc",$1c610,$1c6f8 - $1c610 - -Func_1c6f8: ; 1c6f8 (7:46f8) -INCBIN "baserom.gbc",$1c6f8,$1c72e - $1c6f8 - -Func_1c72e: ; 1c72e (7:472e) -INCBIN "baserom.gbc",$1c72e,$1c768 - $1c72e - -Func_1c768: ; 1c768 (7:4768) -INCBIN "baserom.gbc",$1c768,$1c82e - $1c768 - -Func_1c82e: ; 1c82e (7:482e) -INCBIN "baserom.gbc",$1c82e,$1d078 - $1c82e - -Func_1d078: ; 1d078 (7:5078) - ld a, [$d627] - or a - jr z, .asm_1d0c7 -.asm_1d07e - ld a, MUSIC_STOP - call PlaySong - call Func_3ca0 - call $5335 - call $53ce - xor a - ld [$d635], a - ld a, $3c - ld [$d626], a -.asm_1d095 - call Func_3c48 - call Func_089b - call $5614 - ld hl, $d635 - inc [hl] - call Func_378a - or a - jr nz, .asm_1d0ae - farcall Func_10ab4 - jr .asm_1d07e -.asm_1d0ae - ld hl, $d626 - ld a, [hl] - or a - jr z, .asm_1d0b8 - dec [hl] - jr .asm_1d095 -.asm_1d0b8 - ld a, [$ff91] - and $9 - jr z, .asm_1d095 - ld a, $2 - call Func_3796 - farcall Func_10ab4 - -.asm_1d0c7 - call $50fa - call $511c - ld a, [$d628] - cp $2 - jr nz, .asm_1d0db - call $5289 - jr c, Func_1d078 - jr .asm_1d0e7 -.asm_1d0db - ld a, [$d628] - cp $1 - jr nz, .asm_1d0e7 - call $52b8 - jr c, Func_1d078 -.asm_1d0e7 - ld a, [$d628] - cp $0 - jr nz, .asm_1d0f3 - call $52dd - jr c, Func_1d078 -.asm_1d0f3 - call Func_3bdb - call Func_3ca0 - ret -; 0x1d0fa - -INCBIN "baserom.gbc",$1d0fa,$1d11c - $1d0fa - -Func_1d11c: ; 1d11c (7:511c) - ld a, MUSIC_PCMAINMENU - call PlaySong - call DisableLCD - farcallx $4, $4000 - ld de, $308f - call Func_2275 - call Func_3ca0 - xor a - ld [$cd08], a - call $51e1 - call $517f - ld a, $ff - ld [$d626], a - ld a, [$d627] - cp $4 - jr c, .asm_1d14f - ld a, [$d624] - or a - jr z, .asm_1d14f - ld a, $1 -.asm_1d14f - ld hl, $d636 - farcall Func_111e9 - farcallx $4, $4031 -.asm_1d15a - call Func_3c48 - call Func_089b - call Func_264b - push af - call $51e9 - pop af - jr nc, .asm_1d15a - ld a, [$ffb1] - cp e - jr nz, .asm_1d15a - ld [$d627], a - ld a, [$d624] - or a - jr nz, .asm_1d17a - inc e - inc e -.asm_1d17a - ld a, e - ld [$d628], a - ret -; 0x1d17f - -INCBIN "baserom.gbc",$1d17f,$1d306 - $1d17f - -Func_1d306: ; 1d306 (7:5306) -INCBIN "baserom.gbc",$1d306,$1d386 - $1d306 - -Titlescreen_1d386: ; 1d386 (7:5386) - call Func_378a - or a - jr nz, .asm_1d39f - call DisableLCD - ld a, MUSIC_TITLESCREEN - call PlaySong - ld bc, $0000 - ld a, $0 - call Func_3df3 - call Func_1d59c -.asm_1d39f - call Func_3ca0 - call Func_1d3a9 - call EnableLCD - ret - -Func_1d3a9: ; 1d3a9 (7:53a9) -INCBIN "baserom.gbc",$1d3a9,$1d42e - $1d3a9 - -Func_1d42e: ; 1d42e (7:542e) -INCBIN "baserom.gbc",$1d42e,$1d519 - $1d42e - -Titlescreen_1d519: ; 1d519 (7:5519) - ld a, MUSIC_TITLESCREEN - call PlaySong - call Func_1d42e - scf - ret -; 0x1d523 - -INCBIN "baserom.gbc",$1d523,$1d59c - $1d523 - -Func_1d59c: ; 1d59c (7:559c) -INCBIN "baserom.gbc",$1d59c,$1d6ad - $1d59c - -Credits_1d6ad: ; 1d6ad (7:56ad) - ld a, MUSIC_STOP - call PlaySong - call $5705 - call $4858 - xor a - ld [$d324], a - ld a, MUSIC_CREDITS - call PlaySong - farcallx $4, $4031 - call $57fc -.asm_1d6c8 - call Func_3c48 - call $5765 - call $580b - ld a, [$d633] - cp $ff - jr nz, .asm_1d6c8 - call $3c96 - ld a, $8 - farcallx $4, $6863 - ld a, MUSIC_STOP - call PlaySong - farcall Func_10ab4 - call $3ca4 - call $02d4 - call $5758 - call EnableLCD - call Func_3c48 - call DisableLCD - ld hl, $cabb - set 1, [hl] - call Func_3bdb - ret -; 0x1d705 - -INCBIN "baserom.gbc",$1d705,$20000 - $1d705 diff --git a/engine/home.asm b/engine/home.asm deleted file mode 100755 index dd06781..0000000 --- a/engine/home.asm +++ /dev/null @@ -1,4851 +0,0 @@ -GLOBAL GrassEnergyCardGfx -GLOBAL TextOffsets - -; 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 [rIF], a - ld [rIE], a - call ZeroRAM - ld a, $1 - call BankswitchHome - xor a - call BankswitchRAM - call BankswitchVRAM_0 - call DisableLCD - pop af - ld [wInitialA], a - call DetectConsole - ld a, $20 - ld [wTileMapFill], a - call SetupVRAM - call SetupLCD - call SetupPalettes - call SetupSound_T - call SetupTimer - call ResetSerial - call CopyDMAFunction - call SetupExtRAM - ld a, BANK(Func_4000) - call BankswitchHome - ld sp, $e000 - jp Func_4000 - -VBlankHandler: ; 019b (0:019b) - push af - push bc - push de - push hl - ld a, [hBankROM] - push af - ld hl, wReentrancyFlag - bit 0, [hl] - jr nz, .done - set 0, [hl] - ld a, [wVBlankOAMCopyToggle] - or a - jr z, .no_oam_copy - call hDMAFunction ; DMA-copy $ca00-$ca9f to OAM memory - xor a - ld [wVBlankOAMCopyToggle], a -.no_oam_copy - ; flush scaling/windowing parameters - ld a, [hSCX] - ld [rSCX], a - ld a, [hSCY] - ld [rSCY], a - ld a, [hWX] - ld [rWX], a - ld a, [hWY] - ld [rWY], a - ; flush LCDC - ld a, [wLCDC] - ld [rLCDC], a - ei - call $cad0 - call FlushPalettes - ld hl, wVBlankCtr - inc [hl] - ld hl, wReentrancyFlag - res 0, [hl] -.done - 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 SerialTimerHandler - ; only trigger every fourth interrupt ≈ 60.24 Hz - ld hl, wCounterCtr - ld a, [hl] - inc [hl] - and $3 - jr nz, .done - ; increment the 60-60-60-255-255 counter - call IncrementCounter - ; check in-timer flag - ld hl, wReentrancyFlag - bit 1, [hl] - jr nz, .done - set 1, [hl] - ld a, [hBankROM] - push af - ld a, BANK(SoundTimerHandler_Ext) - call BankswitchHome - call SoundTimerHandler_Ext - pop af - call BankswitchHome - ; clear in-timer flag - ld hl, wReentrancyFlag - res 1, [hl] -.done - pop bc - pop de - pop hl - pop af - reti - -; increment timer counter by a tick -IncrementCounter: ; 021c (0:021c) - ld a, [wCounterEnable] - or a - ret z - ld hl, wCounter - inc [hl] - ld a, [hl] - cp 60 - ret c - ld [hl], $0 - inc hl - inc [hl] - ld a, [hl] - cp 60 - ret c - ld [hl], $0 - inc hl - inc [hl] - ld a, [hl] - cp 60 - ret c - ld [hl], $0 - inc hl - inc [hl] - ret nz - inc hl - inc [hl] - ret - -; setup timer to 16384/68 ≈ 240.94 Hz -SetupTimer: ; 0241 (0:0241) - ld b, $100 - 68 - ; ld b, $bc - call CheckForCGB - jr c, .asm_250 - ld a, [rKEY1] - and $80 - jr z, .asm_250 - ld b, $100 - 2*68 -.asm_250 - ld a, b - ld [rTMA], a - ld a, rTAC_16384_HZ - ld [rTAC], a - ld a, $7 - ld [rTAC], a - ret - -; carry flag: 0 if CGB -CheckForCGB: ; 025c (0:025c) - ld a, [wConsole] - cp CONSOLE_CGB - ret z - scf - ret - -; wait for vblank -WaitForVBlank: ; 0264 (0:0264) - push hl - ld a, [wLCDC] - bit 7, a - jr z, .asm_275 - ld hl, wVBlankCtr - ld a, [hl] -.asm_270 - halt - cp [hl] - jr z, .asm_270 -.asm_275 - pop hl - ret - -; turn LCD on -EnableLCD: ; 0277 (0:0277) - ld a, [wLCDC] ; - bit 7, a ; - ret nz ; assert that LCD is off - or $80 ; - ld [wLCDC], a ; - ld [rLCDC], a ; turn LCD on - ld a, $c0 - ld [wFlushPaletteFlags], a - ret - -; wait for vblank, then turn LCD off -DisableLCD: ; 028a (0:028a) - ld a, [rLCDC] ; - bit 7, a ; - ret z ; assert that LCD is on - ld a, [rIE] - ld [wIE], a - res 0, a ; - ld [rIE], a ; disable vblank interrupt -.asm_298 - ld a, [rLY] ; - cp $91 ; - jr nz, .asm_298 ; wait for vblank - ld a, [rLCDC] ; - and $7f ; - ld [rLCDC], a ; - ld a, [wLCDC] ; - and $7f ; - ld [wLCDC], a ; turn LCD off - xor a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a - ld a, [wIE] - ld [rIE], a - ret - -; set OBJ size: 8x8 -Set_OBJ_8x8: ; 02b9 (0:02b9) - ld a, [wLCDC] - and $fb - ld [wLCDC], a - ret - -; set OBJ size: 8x16 -Set_OBJ_8x16: ; 02c2 (0:02c2) - ld a, [wLCDC] - or $4 - ld [wLCDC], a - ret - -; set Window Display on -Set_WD_on: ; 02cb (0:02cb) - ld a, [wLCDC] - or $20 - ld [wLCDC], a - ret - -; set Window Display off -Set_WD_off: ; 02d4 (0:02d4) - ld a, [wLCDC] - and $df - ld [wLCDC], a - ret - -EnableInt_Timer: ; 02dd (0:02dd) - ld a, [rIE] - or $4 - ld [rIE], a - ret - -EnableInt_VBlank: ; 02e4 (0:02e4) - ld a, [rIE] - or $1 - ld [rIE], a - ret - -EnableInt_HBlank: ; 02eb (0:02eb) - ld a, [rSTAT] - or $8 - ld [rSTAT], a - xor a - ld [rIF], a - ld a, [rIE] - or $2 - ld [rIE], a - ret - -DisableInt_HBlank: ; 02fb (0:02fb) - ld a, [rSTAT] - and $f7 - ld [rSTAT], a - xor a - ld [rIF], a - ld a, [rIE] - and $fd - ld [rIE], a - ret - -SetupLCD: ; 030b (0:030b) - xor a - ld [rSCY], a - ld [rSCX], a - ld [rWY], a - ld [rWX], a - ld [$cab0], a - ld [$cab1], a - ld [$cab2], a - ld [hSCX], a - ld [hSCY], a - ld [hWX], a - ld [hWY], a - xor a - ld [wReentrancyFlag], a - ld a, $c3 ; $c3 = jp nn - ld [$cacd], a - ld [wVBlankFunctionTrampoline], a - ld hl, wVBlankFunctionTrampoline + 1 - ld [hl], NopF & $ff ; - inc hl ; load `jp NopF` - ld [hl], NopF >> $8 ; - ld a, $47 - ld [wLCDC], a - ld a, $1 - ld [MBC3LatchClock], a - ld a, $a - ld [MBC3SRamEnable], a -NopF: ; 0348 (0:0348) - ret - -DetectConsole: ; 0349 (0:0349) - ld b, CONSOLE_CGB - cp GBC - jr z, .asm_35b - call DetectSGB - ld b, CONSOLE_DMG - jr nc, .asm_35b - call InitSGB - ld b, CONSOLE_SGB -.asm_35b - ld a, b - ld [wConsole], a - cp CONSOLE_CGB - ret nz - ld a, CONSOLE_SGB - ld [rSVBK], a - call Func_07e7 - ret - -; initialize the palettes (both monochrome and color) -SetupPalettes: ; 036a (0:036a) - ld hl, wBGP - ld a, $e4 - ld [rBGP], a - ld [hli], a - ld [rOBP0], a - ld [rOBP1], a - ld [hli], a - ld [hl], a - xor a - ld [wFlushPaletteFlags], a - ld a, [wConsole] - cp CONSOLE_CGB - ret nz - ld de, wBufPalette - 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 FlushBothCGBPalettes - ret - -InitialPalette: ; 0399 (0:0399) - RGB 28,28,24 - RGB 21,21,16 - RGB 10,10,08 - RGB 00,00,00 - -SetupVRAM: ; 03a1 (0:03a1) - call FillTileMap - call CheckForCGB - jr c, .asm_3b2 - call BankswitchVRAM_1 - call .asm_3b2 - call BankswitchVRAM_0 -.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 - -; fill VARM tile map banks with [wTileMapFill] -FillTileMap: ; 03c0 (0:03c0) - call BankswitchVRAM_0 - ld hl, $9800 - ld bc, $0400 -.asm_3c9 - ld a, [wTileMapFill] - ld [hli], a - dec bc - ld a, c - or b - jr nz, .asm_3c9 - ld a, [wConsole] - cp CONSOLE_CGB - ret nz - call BankswitchVRAM_1 - 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 BankswitchVRAM_0 - ret - -; zero work RAM & stack area ($C000-$EFFF, $FF80-$FF7F) -ZeroRAM: ; 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 - -Func_0404: ; 0404 (0:0404) - ld a, $c0 - jr asm_411 - -Func_0408: ; 0408 (0:0408) - or $80 - jr asm_411 - -Func_040c: ; 040c (0:040c) - ld [wBGP], a -asm_40f - ld a, $80 -asm_411 - ld [wFlushPaletteFlags], a - ld a, [wLCDC] - rla - ret c - push hl - push de - push bc - call FlushPalettes - pop bc - pop de - pop hl - ret - -Set_OBP0: ; 0423 (0:0423) - ld [wOBP0], a - jr asm_40f - -Set_OBP1: ; 0428 (0:0428) - ld [wOBP1], a - jr asm_40f - -; flushes non-CGB palettes from [wBGP], [wOBP0], [wOBP1] as well as CGB -; palettes from [wBufPalette..wBufPalette+$1f] (BG palette) and -; [wBufPalette+$20..wBufPalette+$3f] (sprite palette). -; only flushes if [wFlushPaletteFlags] is nonzero, and only flushes sprite -; palette if bit6 of that location is set. -FlushPalettes: ; 042d (0:042d) - ld a, [wFlushPaletteFlags] - or a - ret z - ; flush grayscale (non-CGB) palettes - ld hl, wBGP - ld a, [hli] - ld [rBGP], a - ld a, [hli] - ld [rOBP0], a - ld a, [hl] - ld [rOBP1], a - ld a, [wConsole] - cp CONSOLE_CGB - jr z, flushPaletteCGB -flushPaletteDone - xor a - ld [wFlushPaletteFlags], a - ret -flushPaletteCGB - ; flush BG palette (BGP) - ; if bit6 of [wFlushPaletteFlags] is set, flush OBP too - ld a, [wFlushPaletteFlags] - bit 6, a - jr nz, FlushBothCGBPalettes - ld b, $8 - call CopyPalette - jr flushPaletteDone - -FlushBothCGBPalettes: ; 0458 (0:0458) - xor a - ld b, $40 - ; flush BGP $00-$1f - call CopyPalette - ld a, $8 - ld b, $40 - ; flush OBP $00-$1f - call CopyPalette - jr flushPaletteDone - -CopyPalette: ; 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, [rSTAT] - 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 - -Func_0492: ; 0492 (0:0492) - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - call Func_04cf - jr .asm_49d -.asm_49b - ld [de], a - inc de -.asm_49d - ld a, [hli] - or a - jr nz, .asm_49b - ret - -Func_04a2: ; 04a2 (0:04a2) - call DisableLCD - call FillTileMap - xor a - ld [$cac2], a - ld a, [wConsole] - cp CONSOLE_SGB - ret nz - call EnableLCD ; - ld hl, SGB_04bf ; send SGB data - call SendSGB ; - call DisableLCD ; - ret - -SGB_04bf: ; 04bf (0:04bf) -INCBIN "baserom.gbc",$04bf,$04cf - $04bf - -Func_04cf: ; 04cf (0:04cf) - ld l, c - ld h, $0 - add hl, hl - add hl, hl - add hl, hl - add hl, hl - add hl, hl - ld c, b - ld b, $98 - add hl, bc - ld e, l - ld d, h - ret - -; read joypad -ReadJoypad: ; 04de (0:04de) - ld a, $20 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - cpl - and $f - swap a - ld b, a - ld a, $10 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - cpl - and $f - or b - ld c, a ; joypad data - cpl - ld b, a - ld a, [hButtonsHeld] - xor c - and b - ld [hButtonsReleased], a - ld a, [hButtonsHeld] - xor c - and c - ld b, a - ld [hButtonsPressed], a - ld a, [hButtonsHeld] - and $f - cp $f - jr nz, asm_522 ; handle reset - call ResetSerial -Reset: ; 051b (0:051b) - ld a, [wInitialA] - di - jp Start -asm_522 - ld a, c - ld [hButtonsHeld], a - ld a, $30 - ld [rJOYP], a - ret - -; clear joypad hmem data -ClearJoypad: ; 052a (0:052a) - push hl - ld hl, hDPadRepeat - xor a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - pop hl - ret - -Func_0536: ; 0536 (0:0536) -.loop - push af - call Func_053f - pop af - dec a - jr nz, .loop - ret - -Func_053f: ; 053f (0:053f) - push af - push hl - push de - push bc - ld hl, $cad3 - call CallIndirect - call WaitForVBlank - call ReadJoypad - call HandleDPadRepeat - ld a, [$cad5] - or a - jr z, .asm_56d - ld a, [hButtonsPressed] - and $4 - jr z, .asm_56d -.asm_55e - call WaitForVBlank - call ReadJoypad - call HandleDPadRepeat - ld a, [hButtonsPressed] - and $4 - jr z, .asm_55e -.asm_56d - pop bc - pop de - pop hl - pop af - ret - -; handle D-pad repeatcounter -HandleDPadRepeat: ; 0572 (0:0572) - ld a, [hButtonsHeld] - ld [hButtonsPressed2], a - and $f0 - jr z, .asm_58c - ld hl, hDPadRepeat - ld a, [hButtonsPressed] - and $f0 - jr z, .asm_586 - ld [hl], 24 - ret -.asm_586 - dec [hl] - jr nz, .asm_58c - ld [hl], 6 - ret -.asm_58c - ld a, [hButtonsPressed] - and $f - ld [hButtonsPressed2], a - ret - -CopyDMAFunction: ; 0593 (0:0593) - ld c, $83 - ld b, JumpToFunctionInTable - DMA - ld hl, DMA -.asm_59a - ld a, [hli] - ld [$ff00+c], a - inc c - dec b - jr nz, .asm_59a - ret - -; CopyDMAFunction copies this function to $ff83 -DMA: ; 05a1 (0:05a1) - ld a, $ca - ld [rDMA], 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] - -; call function at [hl] if non-NULL -CallIndirect: ; 05b6 (0:05b6) - push af - ld a, [hli] - or [hl] - jr nz, .asm_5bd - pop af - ret -.asm_5bd - ld a, [hld] - ld l, [hl] - ld h, a - pop af - ; fallthrough -CallF: ; 05c1 (0:05c1) - jp [hl] -; 0x5c2 - -INCBIN "baserom.gbc",$05c2,$0663 - $05c2 - -Func_0663: ; 0663 (0:0663) - push bc - ld bc, $d8f0 - call Func_0686 - ld bc, $fc18 - call Func_0686 - ld bc, $ff9c - call Func_0686 - ld bc, $fff6 - call Func_0686 - ld bc, $ffff - call Func_0686 - xor a - ld [de], a - pop bc - ret - -Func_0686: ; 0686 (0:0686) - ld a, $2f -.asm_688 - inc a - add hl, bc - jr c, .asm_688 - ld [de], a - inc de - ld a, l - sub c - ld l, a - ld a, h - sbc b - ld h, a - ret -; 0x695 - -INCBIN "baserom.gbc",$0695,$06c3 - $0695 - -Func_06c3: ; 06c3 (0:06c3) - push af - ld a, [wLCDC] - rla - jr c, .asm_6d8 - pop af - push hl - push de - push bc - push af - call Func_04cf - pop af - ld [de], a - pop bc - pop de - pop hl - ret -.asm_6d8 - pop af - push hl - push de - push bc - ld hl, $cac1 - push hl - ld [hl], a - call Func_04cf - pop hl - ld b, $1 - call MemcpyHLDE_hblank - pop bc - pop de - pop hl - ret -; 0x6ee - -INCBIN "baserom.gbc",$06ee,$0709 - $06ee - -Func_0709: ; 0709 (0:0709) - jp MemcpyHLDE_hblank - -CopyGfxData: ; 070c (0:070c) - ld a, [wLCDC] - rla - jr nc, .asm_726 -.asm_712 - push bc - push hl - push de - ld b, c - call Func_0709 - ld b, $0 - pop hl - add hl, bc - ld e, l - ld d, h - pop hl - add hl, bc - pop bc - dec b - jr nz, .asm_712 - ret -.asm_726 - push bc -.asm_727 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_727 - pop bc - dec b - jr nz, .asm_726 - ret - -CopyData_SaveRegisters: ; 0732 (0:0732) - push hl - push de - push bc - call CopyData - pop bc - pop de - pop hl - ret - -; copies bc bytes from hl to de -CopyData: ; 073c (0:073c) - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, c - or b - jr nz, CopyData - ret - -; switch to rombank (A + top2 of h shifted down), -; set top2 of H to 01, -; return old rombank id on top-of-stack -BankpushHome: ; 0745 (0:0745) - push hl - push bc - push af - push de - ld e, l - ld d, h - ld hl, [sp+$9] - ld b, [hl] - dec hl - ld c, [hl] - dec hl - ld [hl], b - dec hl - ld [hl], c - ld hl, [sp+$9] - ld a, [hBankROM] - ld [hld], a - ld [hl], $0 - ld a, d - rlca - rlca - and $3 - ld b, a - res 7, d - set 6, d - ld l, e - ld h, d - pop de - pop af - add b - call BankswitchHome - pop bc - ret -; 0x76f - -INCBIN "baserom.gbc",$076f,$078e - $076f - -; restore rombank from top-of-stack -BankpopHome: ; 078e (0:078e) - push hl - push de - ld hl, [sp+$7] - ld a, [hld] - call BankswitchHome - dec hl - ld d, [hl] - dec hl - ld e, [hl] - inc hl - inc hl - ld [hl], e - inc hl - ld [hl], d - pop de - pop hl - pop af - ret - -; switch ROM bank -BankswitchHome: ; 07a3 (0:07a3) - ld [hBankROM], a - ld [MBC3RomBank], a - ret - -; switch RAM bank -BankswitchRAM: ; 07a9 (0:07a9) - push af - ld [hBankRAM], a - ld [MBC3SRamBank], a - ld a, $a - ld [MBC3SRamEnable], a - pop af - ret - -; enable external RAM -EnableExtRAM: ; 07b6 (0:07b6) - push af - ld a, $a - ld [MBC3SRamEnable], a - pop af - ret - -; disable external RAM -DisableExtRAM: ; 07be (0:07be) - push af - xor a - ld [MBC3SRamEnable], a - pop af - ret - -; set current dest VRAM bank to 0 -BankswitchVRAM_0: ; 07c5 (0:07c5) - push af - xor a - ld [hBankVRAM], a - ld [rVBK], a - pop af - ret - -; set current dest VRAM bank to 1 -BankswitchVRAM_1: ; 07cd (0:07cd) - push af - ld a, $1 - ld [hBankVRAM], a - ld [rVBK], a - pop af - ret - -; set current dest VRAM bank -; a: value to write -BankswitchVRAM: ; 07d6 (0:07d6) - ld [hBankVRAM], a - ld [rVBK], a - ret -; 0x7db - -INCBIN "baserom.gbc",$07db,$07e7 - $07db - -Func_07e7: ; 07e7 (0:07e7) - call CheckForCGB - ret c - ld hl, rKEY1 - bit 7, [hl] - ret nz - ld a, [rIE] - push af - xor a - ld [rIE], a - set 0, [hl] - xor a - ld [rIF], a - ld [rIE], a - ld a, $30 - ld [rJOYP], a - stop - call SetupTimer - pop af - ld [rIE], a - ret - -SetupExtRAM: ; 080b (0:080b) - xor a - call BankswitchRAM - 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 Func_4050 - call DisableExtRAM - 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 Func_4050 - call DisableExtRAM - ret - -Func_084d: ; 084d (0:084d) - ld a, $3 -.asm_84f - call ClearExtRAMBank - 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 - -ClearExtRAMBank: ; 0863 (0:0863) - push af - call BankswitchRAM - call EnableExtRAM - 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 - -Func_0879: ; 0879 (0:0879) - push de - ld a, h - ld e, l - ld d, $0 - ld l, d - ld h, d - jr .asm_887 -.asm_882 - add hl, de -.asm_883 - sla e - rl d -.asm_887 - srl a - jr c, .asm_882 - jr nz, .asm_883 - pop de - ret -; 0x88f - -INCBIN "baserom.gbc",$088f,$089b - $088f - -Func_089b: ; 089b (0:089b) - push hl - push de - ld hl, $caca - ld a, [hli] - ld d, [hl] - inc hl - ld e, a - ld a, d - rlca - rlca - xor e - rra - push af - ld a, d - xor e - ld d, a - ld a, [hl] - xor e - ld e, a - pop af - rl e - rl d - ld a, d - xor e - inc [hl] - dec hl - ld [hl], d - dec hl - ld [hl], e - pop de - pop hl - ret - -Func_08bf: ; 08bf (0:08bf) - ld hl, $cad6 - ld [hl], e - inc hl - ld [hl], d - ld hl, $cad8 - ld [hl], $1 - inc hl - xor a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], b - inc hl - ld [hli], a - ld [hl], $ef - ld h, b - ld l, $0 - xor a -.asm_8d9 - ld [hl], a - inc l - jr nz, .asm_8d9 - ret - -Func_08de: ; 08de (0:08de) - push hl - push de -.asm_8e0 - push bc - call Func_08ef - ld [de], a - inc de - pop bc - dec bc - ld a, c - or b - jr nz, .asm_8e0 - pop de - pop hl - ret - -Func_08ef: ; 08ef (0:08ef) - ld hl, $cadc - ld a, [hl] - or a - jr z, .asm_902 - dec [hl] - inc hl -.asm_8f8 - ld b, [hl] - inc hl - ld c, [hl] - inc [hl] - inc hl - ld a, [bc] - ld c, [hl] - inc [hl] - ld [bc], a - ret -.asm_902 - ld hl, $cad6 - ld c, [hl] - inc hl - ld b, [hl] - inc hl - dec [hl] - inc hl - jr nz, .asm_914 - dec hl - ld [hl], $8 - inc hl - ld a, [bc] - inc bc - ld [hl], a -.asm_914 - rl [hl] - ld a, [bc] - inc bc - jr nc, .asm_92a - ld hl, $cad6 - ld [hl], c - inc hl - ld [hl], b - ld hl, $cadd - ld b, [hl] - inc hl - inc hl - ld c, [hl] - inc [hl] - ld [bc], a - ret -.asm_92a - ld [$cade], a - ld hl, $cada - bit 0, [hl] - jr nz, .asm_94a - set 0, [hl] - inc hl - ld a, [bc] - inc bc - ld [hli], a - swap a -.asm_93c - and $f - inc a - ld [hli], a - push hl - ld hl, $cad6 - ld [hl], c - inc hl - ld [hl], b - pop hl - jr .asm_8f8 -.asm_94a - res 0, [hl] - inc hl - ld a, [hli] - jr .asm_93c -; 0x950 - -INCBIN "baserom.gbc",$0950,$099c - $0950 - -Func_099c: ; 099c (0:099c) - xor a - ld [$cab5], a - ld hl, $ca00 - ld c, $28 - xor a -.asm_9a6 - ld [hli], a - ld [hli], a - inc hl - inc hl - dec c - jr nz, .asm_9a6 - ret - -; this function affects the stack so that it returns -; to the pointer following the rst call -; similar to rst 28, except this always loads bank 1 -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, [hBankROM] - 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 - -; this function affects the stack so that it returns -; to the three byte pointer following the rst call -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, [hBankROM] - 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 - -; setup SNES memory $810-$867 and palette -InitSGB: ; 0a0d (0:0a0d) - ld hl, SGB_0ad0 - call SendSGB - ld hl, SGB_0a50 - call SendSGB - ld hl, SGB_0a60 - call SendSGB - ld hl, SGB_0a70 - call SendSGB - ld hl, SGB_0a80 - call SendSGB - ld hl, SGB_0a90 - call SendSGB - ld hl, SGB_0aa0 - call SendSGB - ld hl, SGB_0ab0 - call SendSGB - ld hl, SGB_0ac0 - call SendSGB - ld hl, SGB_0af0 - call SendSGB - ld hl, SGB_0ae0 - call SendSGB - ret - -SGB_0a50: ; 0a50 (0:0a50) -INCBIN "baserom.gbc",$0a50,$0a60 - $0a50 - -SGB_0a60: ; 0a60 (0:0a60) -INCBIN "baserom.gbc",$0a60,$0a70 - $0a60 - -SGB_0a70: ; 0a70 (0:0a70) -INCBIN "baserom.gbc",$0a70,$0a80 - $0a70 - -SGB_0a80: ; 0a80 (0:0a80) -INCBIN "baserom.gbc",$0a80,$0a90 - $0a80 - -SGB_0a90: ; 0a90 (0:0a90) -INCBIN "baserom.gbc",$0a90,$0aa0 - $0a90 - -SGB_0aa0: ; 0aa0 (0:0aa0) -INCBIN "baserom.gbc",$0aa0,$0ab0 - $0aa0 - -SGB_0ab0: ; 0ab0 (0:0ab0) -INCBIN "baserom.gbc",$0ab0,$0ac0 - $0ab0 - -SGB_0ac0: ; 0ac0 (0:0ac0) -INCBIN "baserom.gbc",$0ac0,$0ad0 - $0ac0 - -SGB_0ad0: ; 0ad0 (0:0ad0) -INCBIN "baserom.gbc",$0ad0,$0ae0 - $0ad0 - -SGB_0ae0: ; 0ae0 (0:0ae0) -INCBIN "baserom.gbc",$0ae0,$0af0 - $0ae0 - -SGB_0af0: ; 0af0 (0:0af0) -INCBIN "baserom.gbc",$0af0,$0b20 - $0af0 - -; send SGB command -SendSGB: ; 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, 4 - call Wait - ret - -DetectSGB: ; 0b59 (0:0b59) - ld bc, 60 - call Wait - ld hl, SGB_MASK_EN_ON_0bbb - call SendSGB - ld a, [rJOYP] - and $3 - cp $3 - jr nz, .asm_ba3 - ld a, $20 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - ld a, $30 - ld [rJOYP], a - ld a, $10 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, $30 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - and $3 - cp $3 - jr nz, .asm_ba3 - ld hl, SGB_MASK_EN_OFF_0bab - call SendSGB - or a - ret -.asm_ba3 - ld hl, SGB_MASK_EN_OFF_0bab - call SendSGB - scf - ret - -SGB_MASK_EN_OFF_0bab: ; 0bab (0:0bab) -INCBIN "baserom.gbc",$0bab,$0bbb - $0bab - -SGB_MASK_EN_ON_0bbb: ; 0bbb (0:0bbb) -INCBIN "baserom.gbc",$0bbb,$0c08 - $0bbb - -; loops 63000 * bc cycles (~15 * bc ms) -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 - -; memcpy(DE, HL, B), but only during hblank -MemcpyHLDE_hblank: ; 0c19 (0:0c19) - push bc -.loop - ei - di - ld a, [rSTAT] ; - and $3 ; - jr nz, .loop ; assert hblank - ld a, [hl] - ld [de], a - ld a, [rSTAT] ; - and $3 ; - jr nz, .loop ; assert still in hblank - ei - inc hl - inc de - dec b - jr nz, .loop - pop bc - ret - -; memcpy(HL, DE, B), but only during hblank -MemcpyDEHL_hblank: ; 0c32 (0:0c32) - push bc -.asm_c33 - ei - di - ld a, [rSTAT] - and $3 - jr nz, .asm_c33 - ld a, [de] - ld [hl], a - ld a, [rSTAT] - and $3 - jr nz, .asm_c33 - ei - inc hl - inc de - dec c - jr nz, .asm_c33 - pop bc - ret -; 0xc4b - -INCBIN "baserom.gbc",$0c4b,$0c91 - $0c4b - -; called at roughly 240Hz by TimerHandler -SerialTimerHandler: ; 0c91 (0:0c91) - ld a, [wSerialOp] - cp $29 - jr z, .begin_transfer - cp $12 - jr z, .check_for_timeout - ret -.begin_transfer - ld a, [rSC] ; - add a ; make sure that no serial transfer is active - ret c ; - ld a, $1 - ld [rSC], a ; use internal clock - ld a, $81 - ld [rSC], a ; use internal clock, set transfer start flag - ret -.check_for_timeout - ; sets bit7 of [wSerialFlags] if the serial interrupt hasn't triggered - ; within four timer interrupts (60Hz) - ld a, [wSerialCounter] - ld hl, wSerialCounter2 - cp [hl] - ld [hl], a - ld hl, wSerialTimeoutCounter - jr nz, .clear_counter - inc [hl] - ld a, [hl] - cp $4 - ret c - ld hl, wSerialFlags - set 7, [hl] - ret -.clear_counter - 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 ; if [$ce63] nonzero: - call Func_3189 ; ? - jr .done ; return -.asm_d35 - ld a, [wSerialOp] ; - or a ; - jr z, .asm_d55 ; skip ahead if [$cb74] zero - ; send/receive a byte - ld a, [rSB] - call SerialHandleRecv - call SerialHandleSend ; returns byte to actually send - push af -.wait_for_completion - ld a, [rSC] - add a - jr c, .wait_for_completion - pop af - ; end send/receive - ld [rSB], a ; prepare sending byte (from Func_0dc8?) - ld a, [wSerialOp] - cp $29 - jr z, .done ; if [$cb74] != $29, use external clock - jr .asm_d6a ; and prepare for next byte. either way, return -.asm_d55 - ld a, $1 - ld [wSerialRecvCounter], a - ld a, [rSB] - ld [wSerialRecvBuf], a - ld a, $ac - ld [rSB], a - ld a, [wSerialRecvBuf] - cp $12 ; if [$cba5] != $12, use external clock - jr z, .done ; and prepare for next byte. either way, return -.asm_d6a - ld a, $80 ; - ld [rSC], a ; transfer start, use external clock -.done - ld hl, wSerialCounter - inc [hl] - pop bc - pop de - pop hl - pop af - reti - -; handles a byte read from serial transfer by decoding it and storing it into -; the receive buffer -SerialHandleRecv: ; 0d77 (0:0d77) - ld hl, wSerialLastReadCA - ld e, [hl] - dec e - jr z, .last_was_ca - cp $ac - ret z ; return if read_data == $ac - cp $ca - jr z, .read_ca - or a - jr z, .read_00_or_ff - cp $ff - jr nz, .read_data -.read_00_or_ff - ld hl, wSerialFlags - set 6, [hl] - ret -.read_ca - inc [hl] ; inc [wSerialLastReadCA] - ret -.last_was_ca - ; if last byte read was $ca, flip all bits of data received - ld [hl], $0 - cpl - jr .handle_byte -.read_data - ; flip top2 bits of data received - xor $c0 -.handle_byte - push af - ld a, [wSerialRecvIndex] - ld e, a - ld a, [$cba3] - dec a - and $1f - cp e - jr z, .set_flag_and_return - ld d, $0 - ; store into receive buffer - ld hl, wSerialRecvBuf - add hl, de - pop af - ld [hl], a - ; increment buffer index (mod 32) - ld a, e - inc a - and $1f - ld [$cba4], a - ; increment received bytes counter & clear flags - ld hl, wSerialRecvCounter - inc [hl] - xor a - ld [wSerialFlags], a - ret -.set_flag_and_return - pop af - ld hl, wSerialFlags - set 0, [hl] - ret - -; prepares a byte to send over serial transfer, either from the send-save byte -; slot or the send buffer -SerialHandleSend: ; 0dc8 (0:0dc8) - ld hl, wSerialSendSave - ld a, [hl] - or a - jr nz, .send_saved - ld hl, wSerialSendBufToggle - ld a, [hl] - or a - jr nz, .send_buf - ; no more data--send $ac to indicate this - ld a, $ac - ret -.send_saved - ld a, [hl] - ld [hl], $0 - ret -.send_buf - ; grab byte to send from send buffer, increment buffer index - ; and decrement to-send length - dec [hl] - ld a, [wSerialSendBufIndex] - ld e, a - ld d, $0 - ld hl, wSerialSendBuf - add hl, de - inc a - and $1f - ld [wSerialSendBufIndex], a - ld a, [hl] - ; flip top2 bits of sent data - xor $c0 - cp $ac - jr z, .send_escaped - cp $ca - jr z, .send_escaped - cp $ff - jr z, .send_escaped - or a - jr z, .send_escaped - ret -.send_escaped - ; escape tricky data by prefixing it with $ca and flipping all bits - ; instead of just top2 - xor $c0 - cpl - ld [wSerialSendSave], a - ld a, $ca - ret - -; store data in sendbuf for sending? -Func_0e0a: ; 0e0a (0:0e0a) - push hl - push de - push bc - push af -.asm_e0e - ld a, [$cb80] - ld e, a - ld a, [wSerialSendBufIndex] - dec a - and $1f - cp e - jr z, .asm_e0e - ld d, $0 - ld a, e - inc a - and $1f - ld [$cb80], a - ld hl, wSerialSendBuf - add hl, de - pop af - ld [hl], a - ld hl, wSerialSendBufToggle - inc [hl] - pop bc - pop de - pop hl - ret - -; sets carry if [wSerialRecvCounter] nonzero -Func_0e32: ; 0e32 (0:0e32) - ld a, [wSerialRecvCounter] - or a - ret z - scf - ret - -Func_0e39: ; 0e39 (0:0e39) - push hl - ld hl, wSerialRecvCounter - ld a, [hl] - or a - jr nz, .asm_e49 - pop hl - ld a, [wSerialFlags] - or a - ret nz - scf - ret -.asm_e49 - push de - dec [hl] - ld a, [$cba3] - ld e, a - ld d, $0 - ld hl, wSerialRecvBuf - add hl, de - ld a, [hl] - push af - ld a, e - inc a - and $1f - ld [$cba3], a - pop af - pop de - pop hl - or a - ret - -Func_0e63: ; 0e63 (0:0e63) - ld b, c -.asm_e64 - ld a, b - sub c - jr c, .asm_e6c - cp $1f - jr nc, .asm_e75 -.asm_e6c - inc c - dec c - jr z, .asm_e75 - ld a, [hli] - call $0e0a - dec c -.asm_e75 - inc b - dec b - jr z, .asm_e81 - call $0e39 - jr c, .asm_e81 - ld [de], a - inc de - dec b -.asm_e81 - ld a, [wSerialFlags] - or a - jr nz, .asm_e8c - ld a, c - or b - jr nz, .asm_e64 - ret -.asm_e8c - scf - ret - -; go into slave mode (external clock) for serial transfer? -Func_0e8e: ; 0e8e (0:0e8e) - call ClearSerialData - ld a, $12 - ld [rSB], a ; send $12 - ld a, $80 - ld [rSC], a ; use external clock, set transfer start flag - ld a, [rIF] - and $f7 - ld [rIF], a ; clear serial interrupt flag - ld a, [rIE] - or $8 ; enable serial interrupt - ld [rIE], a - ret - -ResetSerial: ; 0ea6 (0:0ea6) - ld a, [rIE] - and $f7 - ld [rIE], a - xor a - ld [rSB], a - ld [rSC], a - ; fallthrough -ClearSerialData: ; 0eb1 (0:0eb1) - ld hl, wSerialOp - ld bc, $0051 -.loop - xor a - ld [hli], a - dec bc - ld a, c - or b - jr nz, .loop - ret -; 0xebf - -INCBIN "baserom.gbc",$0ebf,$1072 - $0ebf - -; copies the deck pointed to by de to $c400 or $c480 -CopyDeckData: ; 1072 (0:1072) - ld hl, $c400 - ld a, [$ff97] - cp $c2 - jr z, .asm_107e - ld hl, $c480 -.asm_107e - ; start by putting a terminator at the end of the deck - push hl - ld bc, 59 - add hl, bc - ld [hl], $0 - pop hl - push hl -.nextCard - ld a, [de] - inc de - ld b, a - or a - jr z, .done - ld a, [de] - inc de - ld c, a -.cardQuantityLoop - ld [hl], c - inc hl - dec b - jr nz, .cardQuantityLoop - jr .nextCard -.done - ld hl, $cce9 - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - pop hl - ld bc, 59 - add hl, bc - ld a, [hl] - or a - ret nz - rst $38 - scf - ret -; 0x10aa - -INCBIN "baserom.gbc",$10aa,$160b - $10aa - -Func_160b: ; 160b (0:160b) - ld l, a - ld a, [$ff97] - ld h, a - ld a, [hl] - ret - -Func_1611: ; 1611 (0:1611) - ld l, a - ld a, [$ff97] - ld h, $c3 - cp $c2 - jr z, .asm_161c - ld h, $c2 - -.asm_161c - ld a, [hl] - ret -; 0x161e - -INCBIN "baserom.gbc",$161e,$1c72 - $161e - -Func_1c72: ; 1c72 (0:1c72) - push af - push hl - call Func_1611 - ld a, h - ld [$ff97], a - pop hl - pop af - ret - -Func_1c7d: ; 1c7d (0:1c7d) - call EnableExtRAM - ld hl, $a010 -asm_1c83 - ld a, [hli] - ld [de], a - inc de - or a - jr nz, asm_1c83 - dec de - call DisableExtRAM - ret - -Func_1c8e: ; 1c8e (0:1c8e) - ld hl, $cc16 - ld a, [hli] - or [hl] - jr z, .asm_1c9b - ld a, [hld] - ld l, [hl] - ld h, a - jp Func_2e89 -.asm_1c9b - ld hl, $c500 - ld a, [hl] - or a - jr z, .asm_1ca4 - jr asm_1c83 -.asm_1ca4 - ld hl, $0092 - jp Func_2e89 -; 0x1caa - -INCBIN "baserom.gbc",$1caa,$1dca - $1caa - -; memcpy(HL, DE, C) -Memcpy: ; 1dca (0:1dca) - ld a, [$cabb] ; - bit 7, a ; - jr nz, .asm_1dd8 ; assert that LCD is on -.asm_1dd1 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_1dd1 - ret -.asm_1dd8 - jp MemcpyDEHL_hblank - -Func_1ddb: ; 1ddb (0:1ddb) - ld l, e - ld h, $0 - add hl, hl - add hl, hl - add hl, hl - add hl, hl - add hl, hl - ld a, l - add d - ld l, a - ld a, h - adc $98 - ld h, a - ret - -Func_1deb: ; 1deb (0:1deb) - push af - ld a, [$ff92] - rra - rra - rra - and $1f - add d - ld d, a - ld a, [$ff93] - rra - rra - rra - and $1f - add e - ld e, a - pop af - ret -; 0x1e00 - -INCBIN "baserom.gbc",$1e00,$1e7c - $1e00 - -Func_1e7c: ; 1e7c (0:1e7c) - ld a, [wConsole] - cp CONSOLE_CGB - jr z, asm_1ec9 - cp CONSOLE_SGB - jp z, Func_1f0f -Func_1e88: ; 1e88 (0:1e88) - call Func_1ddb - ld a, $1c - ld de, $1819 - call Func_1ea5 - dec c - dec c -.asm_1e95 - ld a, $0 - ld de, $1e1f - call Func_1ea5 - dec c - jr nz, .asm_1e95 - ld a, $1d - ld de, $1a1b -Func_1ea5: ; 1ea5 (0:1ea5) - add sp, $e0 - push hl - push bc - ld hl, [sp+$4] - dec b - dec b - push hl - ld [hl], d - inc hl -.asm_1eb0 - ld [hli], a - dec b - jr nz, .asm_1eb0 - ld [hl], e - pop de - pop bc - pop hl - push hl - push bc - ld c, b - ld b, $0 - call Memcpy - pop bc - pop de - ld hl, $0020 - add hl, de - add sp, $20 - ret -asm_1ec9 - call Func_1ddb - ld a, $1c - ld de, $1819 - call Func_1efb - dec c - dec c -.asm_1ed6 - ld a, $0 - ld de, $1e1f - push hl - call Func_1ea5 - pop hl - call BankswitchVRAM_1 - ld a, [$ccf3] - ld e, a - ld d, a - xor a - call Func_1ea5 - call BankswitchVRAM_0 - dec c - jr nz, .asm_1ed6 - ld a, $1d - ld de, $1a1b - call Func_1efb - ret - -Func_1efb: ; 1efb (0:1efb) - push hl - call Func_1ea5 - pop hl - call BankswitchVRAM_1 - ld a, [$ccf3] - ld e, a - ld d, a - call Func_1ea5 - call BankswitchVRAM_0 - ret - -Func_1f0f: ; 1f0f (0:1f0f) - push bc - push de - call Func_1e88 - pop de - pop bc - ld a, [$ccf3] - or a - ret z - push bc - push de - ld hl, $cae0 - ld de, Unknown_1f4f - ld c, $10 -.asm_1f25 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_1f25 - pop de - pop bc - ld hl, $cae4 - ld [hl], d - inc hl - ld [hl], e - inc hl - ld a, d - add b - dec a - ld [hli], a - ld a, e - add c - dec a - ld [hli], a - ld a, [$ccf3] - and $80 - jr z, .asm_1f48 - ld a, $2 - ld [$cae2], a -.asm_1f48 - ld hl, $cae0 - call SendSGB - ret - -Unknown_1f4f: ; 1f4f (0:1f4f) -INCBIN "baserom.gbc",$1f4f,$1f5f - $1f4f - -Func_1f5f: ; 1f5f (0:1f5f) - push de - push af - push hl - add sp, $e0 - call Func_1ddb -.asm_1f67 - push hl - push bc - ld hl, [sp+$25] - ld d, [hl] - ld hl, [sp+$27] - ld a, [hl] - ld hl, [sp+$4] - push hl -.asm_1f72 - ld [hli], a - add d - dec b - jr nz, .asm_1f72 - pop de - pop bc - pop hl - push hl - push bc - ld c, b - ld b, $0 - call Memcpy - ld hl, [sp+$24] - ld a, [hl] - ld hl, [sp+$27] - add [hl] - ld [hl], a - pop bc - pop de - ld hl, $0020 - add hl, de - dec c - jr nz, .asm_1f67 - add sp, $24 - pop de - ret -; 0x1f96 - -INCBIN "baserom.gbc",$1f96,$20b0 - $1f96 - -Func_20b0: ; 20b0 (0:20b0) - ld hl, $2fe8 - ld a, [wConsole] - cp CONSOLE_CGB - jr nz, .asm_20bd - ld hl, $37f8 -.asm_20bd - ld de, $8d00 - ld b, $30 - jr asm_2121 - -Func_20c4: ; 20c4 (0:20c4) - ld hl, $3028 - ld a, [wConsole] - cp CONSOLE_CGB - jr nz, .asm_20d1 - ld hl, $3838 -.asm_20d1 - ld de, $8d40 - ld b, $c - jr asm_2121 - -Func_20d8: ; 20d8 (0:20d8) - ld b, $10 - jr asm_20de - -Func_20dc: ; 20dc (0:20dc) - ld b, $24 -asm_20de - ld hl, $32e8 - ld a, [wConsole] - cp CONSOLE_CGB - jr nz, .asm_20eb - ld hl, $3af8 -.asm_20eb - ld de, $8d00 - jr asm_2121 - -Func_20f0: ; 20f0 (0:20f0) - ld hl, $4008 - ld de, $8a00 - ld b, $d - call asm_2121 - ld hl, $3528 - ld a, [wConsole] - cp CONSOLE_CGB - jr nz, .asm_2108 - ld hl, $3d38 -.asm_2108 - ld de, $8d00 - ld b, $30 - jr asm_2121 - -Func_210f: ; 210f (0:210f) - ld hl, $40d8 - ld de, $9300 - ld b, $8 - jr asm_2121 - -Func_2119: ; 2119 (0:2119) - ld hl, DuelGraphics - Fonts - ld de, $9000 ; destination - ld b, $38 ; number of tiles -asm_2121 - ld a, BANK(Fonts) - call BankpushHome - ld c, $10 - call CopyGfxData - call BankpopHome - ret -; 0x212f - -INCBIN "baserom.gbc",$212f,$21c5 - $212f - -Func_21c5: ; 21c5 (0:21c5) - push de - push bc - call Func_2298 - jr .asm_21e8 -.asm_21cc - cp $5 - jr c, .asm_21d9 - cp $10 - jr nc, .asm_21d9 - call Func_21f2 - jr .asm_21e8 -.asm_21d9 - ld e, a - ld d, [hl] - call Func_2546 - jr nc, .asm_21e1 - inc hl -.asm_21e1 - call Func_22ca - xor a - call Func_21f2 -.asm_21e8 - ld a, [hli] - or a - jr nz, .asm_21cc - call Func_230f - pop bc - pop de - ret - -Func_21f2: ; 21f2 (0:21f2) - or a - jr z, .asm_2241 - cp $e - jr z, .asm_2221 - cp $f - jr z, .asm_2221 - cp $a - jr z, .asm_224d - cp $5 - jr z, .asm_2225 - cp $6 - jr z, .asm_220f - cp $7 - jr z, .asm_2215 - scf - ret -.asm_220f - ld a, $1 - ld [$cd0a], a - ret -.asm_2215 - call Func_230f - xor a - ld [$cd0a], a - ld a, $f - ld [$ffaf], a - ret -.asm_2221 - ld [$ffaf], a - xor a - ret -.asm_2225 - ld a, [$cd0a] - push af - ld a, $1 - ld [$cd0a], a - call Func_230f - pop af - ld [$cd0a], a - ld a, [$ffb0] - or a - jr nz, .asm_2240 - ld a, [hl] - push hl - call Func_22f2 - pop hl -.asm_2240 - inc hl -.asm_2241 - ld a, [$ffae] - or a - ret z - ld b, a - ld a, [$ffac] - cp b - jr z, .asm_224d - xor a - ret -.asm_224d - call Func_230f - ld a, [$cd08] - or a - call z, .asm_2257 -.asm_2257 - xor a - ld [$ffac], a - ld a, [$ffad] - add $20 - ld b, a - ld a, [$ffaa] - and $e0 - add b - ld [$ffaa], a - ld a, [$ffab] - adc $0 - ld [$ffab], a - ld a, [$cd09] - inc a - ld [$cd09], a - xor a - ret - -Func_2275: ; 2275 (0:2275) - ld a, d - dec a - ld [$cd04], a - ld a, e - ld [$ffa8], a - call Func_2298 - xor a - ld [$ffb0], a - ld [$ffa9], a - ld a, $88 - ld [$cd06], a - ld a, $80 - ld [$cd07], a - ld hl, $c600 -.asm_2292 - xor a - ld [hl], a - inc l - jr nz, .asm_2292 - ret - -Func_2298: ; 2298 (0:2298) - xor a - ld [$cd0a], a - ld [$ffac], a - ld [$cd0b], a - ld a, $f - ld [$ffaf], a - ret - -Func_22a6: ; 22a6 (0:22a6) - push af - call Func_22ae - pop af - ld [$ffae], a - ret - -Func_22ae: ; 22ae (0:22ae) - push hl - ld a, d - ld [$ffad], a - xor a - ld [$ffae], a - ld [$cd09], a - call Func_1ddb - ld a, l - ld [$ffaa], a - ld a, h - ld [$ffab], a - call Func_2298 - xor a - ld [$cd0b], a - pop hl - ret - -Func_22ca: ; 22ca (0:22ca) - push hl - push de - push bc - ld a, [$ffb0] - and $1 - jr nz, .asm_22ed - call Func_2325 - jr c, .asm_22de - or a - jr nz, .asm_22e9 - call Func_24ac -.asm_22de - ld a, [$ffb0] - and $2 - jr nz, .asm_22e9 - ld a, [$ffa9] - call Func_22f2 -.asm_22e9 - pop bc - pop de - pop hl - ret -.asm_22ed - call Func_235e - jr .asm_22e9 - -Func_22f2: ; 22f2 (0:22f2) - ld [$cd05], a - ld hl, $ffaa - ld e, [hl] - inc hl - ld d, [hl] - inc de - ld [hl], d - dec hl - ld [hl], e - dec de - ld l, e - ld h, d - ld de, $cd05 - ld c, $1 - call Memcpy - ld hl, $ffac - inc [hl] - ret - -Func_230f: ; 230f (0:230f) - ld a, [$cd0a] - or a - ret z - ld a, [$cd0b] - or a - ret z - push hl - push de - push bc - ld e, $20 - call Func_22ca - pop bc - pop de - pop hl - ret - -Func_2325: ; 2325 (0:2325) - call Func_235e - ret c - or a - ret nz - ld a, [$ffa8] - ld hl, $cd04 - cp [hl] - jr nz, .asm_2345 - ld a, [$ffa9] - ld h, $c8 -.asm_2337 - ld l, a - ld a, [hl] - or a - jr nz, .asm_2337 - ld h, $c9 - ld c, [hl] - ld b, $c8 - xor a - ld [bc], a - jr .asm_234a -.asm_2345 - inc [hl] - jr nz, .asm_2349 - inc [hl] -.asm_2349 - ld l, [hl] -.asm_234a - ld a, [$ffa9] - ld c, a - ld b, $c9 - ld a, l - ld [$ffa9], a - ld [bc], a - ld h, $c8 - ld [hl], c - ld h, $c6 - ld [hl], e - inc h - ld [hl], d - ld b, l - xor a - ret - -; search linked-list for letters e/d (regisers), if found hoist the result to -; head of list and return it. carry flag denotes success. -Func_235e: ; 235e (0:235e) - ld a, [$cd0a] ; - or a ; - jr z, .asm_2376 ; if [$cd0a] nonzero: - call Uppercase ; uppercase e - ld a, [$cd0b] - ld d, a - or a - jr nz, .asm_2376 ; if [$cd0b] is zero: - ld a, e ; - ld [$cd0b], a ; [$cd0b] ← e - ld a, $1 ; - or a ; return a = 1 - ret -.asm_2376 - xor a - ld [$cd0b], a ; [$cd0b] ← 0 - ld a, [$ffa9] - ld l, a ; l ← [$ffa9]; index to to linked-list head -.asm_237d - ld h, $c6 ; - ld a, [hl] ; a ← key1[l] ; - or a ; - ret z ; if NULL, return a = 0 ; - cp e ; loop for e/d key in - jr nz, .asm_238a ; ; linked list - inc h ; ; - ld a, [hl] ; if key1[l] == e and ; - cp d ; key2[l] == d: ; - jr z, .asm_238f ; break ; -.asm_238a ; - ld h, $c8 ; ; - ld l, [hl] ; l ← next[l] ; - jr .asm_237d -.asm_238f - ld a, [$ffa9] - cp l - jr z, .asm_23af ; assert at least one iteration - ld c, a - ld b, $c9 - ld a, l - ld [bc], a ; prev[i0] ← i - ld [$ffa9], a ; [$ffa9] ← i (update linked-list head) - ld h, $c9 - ld b, [hl] - ld [hl], $0 ; prev[i] ← 0 - ld h, $c8 - ld a, c - ld c, [hl] - ld [hl], a ; next[i] ← i0 - ld l, b - ld [hl], c ; next[prev[i]] ← next[i] - ld h, $c9 - inc c - dec c - jr z, .asm_23af ; if next[i] != NULL: - ld l, c ; l ← next[i] - ld [hl], b ; prev[next[i]] ← prev[i] -.asm_23af - scf ; set carry to indicate success - ret ; (return new linked-list head in a) - -; uppercases e if [wUppercaseFlag] is nonzero -Uppercase: ; 23b1 (0:23b1) - ld a, [wUppercaseFlag] - or a - ret z - ld a, e - cp $60 - ret c - cp $7b - ret nc - sub $20 - ld e, a - ret - -Func_23c1: ; 23c1 (0:23c1) - ld a, [hl] - cp $6 - jr nz, .asm_23cf - call Func_23d3 - inc b - srl b - xor a - sub b - ret -.asm_23cf - xor a - ld [$cd0a], a -Func_23d3: ; 23d3 (0:23d3) - push hl - push de - ld bc, $0000 -.asm_23d8 - ld a, [hli] - or a - jr z, .asm_23f8 - inc c - cp $5 - jr c, .asm_23ec - cp $10 - jr nc, .asm_23ec - cp $5 - jr nz, .asm_23d8 - inc b - jr .asm_23f4 -.asm_23ec - ld e, a - ld d, [hl] - inc b - call Func_2546 - jr nc, .asm_23d8 -.asm_23f4 - inc c - inc hl - jr .asm_23d8 -.asm_23f8 - xor a - sub b - pop de - pop hl - ret -; 0x23fd - -INCBIN "baserom.gbc",$23fd,$245d - $23fd - -Func_245d: ; 245d (0:245d) - push de - push bc - ld de, $caa0 - push de - ld bc, $d8f0 - call Func_2499 - ld bc, $fc18 - call Func_2499 - ld bc, $ff9c - call Func_2499 - ld bc, $fff6 - call Func_2499 - ld bc, $ffff - call Func_2499 - xor a - ld [de], a - pop hl - ld e, $5 -.asm_2486 - inc hl - ld a, [hl] - cp $20 - jr nz, .asm_2495 - ld [hl], $0 - inc hl - dec e - jr nz, .asm_2486 - dec hl - ld [hl], $20 -.asm_2495 - dec hl - pop bc - pop de - ret - -Func_2499: ; 2499 (0:2499) - ld a, $5 - ld [de], a - inc de - ld a, $1f -.asm_249f - inc a - add hl, bc - jr c, .asm_249f - ld [de], a - inc de - ld a, l - sub c - ld l, a - ld a, h - sbc b - ld h, a - ret - -Func_24ac: ; 24ac (0:24ac) - push hl - push de - push bc - ld a, [$cd0a] - or a - jr nz, .asm_24bf - call Func_2510 - call Memcpy -.asm_24bb - pop bc - pop de - pop hl - ret -.asm_24bf - call Func_24ca - call Func_2518 - call Memcpy - jr .asm_24bb - -Func_24ca: ; 24ca (0:24ca) - push bc - ld a, [hBankROM] - push af - ld a, BANK(VWF) - call BankswitchHome - push de - ld a, e - ld de, $ccf4 - call Func_24fa - pop de - ld a, d - ld de, $ccf5 - call Func_24fa - ld hl, $ccf4 - ld b, $8 -.asm_24e8 - ld a, [hli] - swap a - or [hl] - dec hl - ld [hli], a - ld [hli], a - dec b - jr nz, .asm_24e8 - call BankpopHome - pop bc - ld de, $ccf4 - ret - -Func_24fa: ; 24fa (0:24fa) - sub $20 - ld l, a - ld h, $0 - add hl, hl - add hl, hl - add hl, hl - ld bc, VWF - add hl, bc - ld b, $8 -.asm_2508 - ld a, [hli] - ld [de], a - inc de - inc de - dec b - jr nz, .asm_2508 - ret - -Func_2510: ; 2510 (0:2510) - push bc - call Func_256d - call Func_252e - pop bc -Func_2518: ; 2518 (0:2518) - ld hl, $cd07 - ld a, b - xor [hl] - ld h, $0 - ld l, a - add hl, hl - add hl, hl - add hl, hl - add hl, hl - ld a, [$cd06] - ld b, a - ld c, $0 - add hl, bc - ld c, $10 - ret - -Func_252e: ; 252e (0:252e) - ld a, $1d - call BankpushHome - ld de, $ccf4 - push de - ld c, $8 -.asm_2539 - ld a, [hli] - ld [de], a - inc de - ld [de], a - inc de - dec c - jr nz, .asm_2539 - pop de - call BankpopHome - ret - -Func_2546: ; 2546 (0:2546) - ld a, [$cd0a] - or a - jr nz, .asm_255f - ld a, e - cp $10 - jr c, .asm_2561 - cp $60 - jr nc, .asm_2565 - ld a, [$ffaf] - cp $f - jr nz, .asm_2565 - ld d, $f - or a - ret -.asm_255f - or a - ret -.asm_2561 - cp $5 - jr c, .asm_2569 -.asm_2565 - ld d, $0 - or a - ret -.asm_2569 - ld e, d - ld d, a - scf - ret - -Func_256d: ; 256d (0:256d) - ld bc, $0280 - ld a, d - cp $e - jr z, .asm_2580 - cp $f - jr nz, .asm_2582 - ld bc, $0000 - ld a, e - sub $10 - ld e, a -.asm_2580 - ld d, $0 -.asm_2582 - ld l, e - ld h, d - add hl, hl - add hl, hl - add hl, hl - add hl, bc - ret -; 0x2589 - -INCBIN "baserom.gbc",$2589,$2636 - $2589 - -Func_2636: ; 2636 (0:2636) - ld [$cd10], a - ld [$ffb1], a - ld de, $cd11 - ld b, $8 -.asm_2640 - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_2640 - xor a - ld [$cd0f], a - ret - -Func_264b: ; 264b (0:264b) - xor a - ld [$cd99], a - ld a, [hButtonsPressed2] - or a - jr z, .asm_2685 - ld b, a - ld a, [$cd14] - ld c, a - ld a, [$cd10] - bit 6, b - jr z, .asm_266b - dec a - bit 7, a - jr z, .asm_2674 - ld a, [$cd14] - dec a - jr .asm_2674 -.asm_266b - bit 7, b - jr z, .asm_2685 - inc a - cp c - jr c, .asm_2674 - xor a -.asm_2674 - push af - ld a, $1 - ld [$cd99], a - call Func_26e9 - pop af - ld [$cd10], a - xor a - ld [$cd0f], a -.asm_2685 - ld a, [$cd10] - ld [$ffb1], a - ld hl, $cd17 - ld a, [hli] - or [hl] - jr z, .asm_26a9 - ld a, [hld] - ld l, [hl] - ld h, a - ld a, [$ffb1] - call CallF - jr nc, asm_26d1 -.asm_269b - call Func_270b - call Func_26c0 - ld a, [$cd10] - ld e, a - ld a, [$ffb1] - scf - ret -.asm_26a9 - ld a, [hButtonsPressed] - and $3 - jr z, asm_26d1 - and $1 - jr nz, .asm_269b - ld a, [$cd10] - ld e, a - ld a, $ff - ld [$ffb1], a - call Func_26c0 - scf - ret - -Func_26c0: ; 26c0 (0:26c0) - push af - ld a, [$ffb1] - inc a - jr z, .asm_26ca - ld a, $2 - jr .asm_26cc -.asm_26ca - ld a, $3 -.asm_26cc - call Func_3796 - pop af - ret -asm_26d1 - ld a, [$cd99] - or a - jr z, Func_26da - call Func_3796 - -Func_26da: ; 26da (0:26da) - ld hl, $cd0f - ld a, [hl] - inc [hl] - and $f - ret nz - ld a, [$cd15] - bit 4, [hl] - jr z, asm_26ec -Func_26e9: ; 26e9 (0:26e9) - ld a, [$cd16] -asm_26ec - ld c, a - ld a, [$cd13] - ld l, a - ld a, [$cd10] - ld h, a - call Func_0879 - ld a, l - ld hl, $cd11 - ld d, [hl] - inc hl - add [hl] - ld e, a - call Func_1deb - ld a, c - ld c, e - ld b, d - call Func_06c3 - or a - ret - -Func_270b: ; 270b (0:270b) - ld a, [$cd15] - jr asm_26ec -; 0x2710 - -INCBIN "baserom.gbc",$2710,$2a1a - $2710 - -Func_2a1a: ; 2a1a (0:2a1a) - xor a - ld hl, $cd10 - ld [hli], a - ld [hl], d - inc hl - ld [hl], e - inc hl - ld [hl], $0 - inc hl - ld [hl], $1 - inc hl - ld [hl], b - inc hl - ld [hl], c - ld [$cd0f], a - ret -; 0x2a30 - -INCBIN "baserom.gbc",$2a30,$2a3e - $2a30 - -Func_2a3e: ; 2a3e (0:2a3e) - push hl - call Func_2a6f - ld a, $b - ld de, $010e - call Func_1deb - call Func_22a6 - pop hl - ld a, l - or h - jp nz, Func_2e76 - ld hl, $c590 - jp Func_21c5 - -Func_2a59: ; 2a59 (0:2a59) - push hl - call Func_2a9e - ld a, $13 - ld de, $010e - call Func_1deb - call Func_22a6 - call EnableLCD - pop hl - jp Func_2e41 - -Func_2a6f: ; 2a6f (0:2a6f) - ld de, $000c - ld bc, $0c06 - call Func_1deb - call Func_1e7c - ret -; 0x2a7c - -INCBIN "baserom.gbc",$2a7c,$2a9e - $2a7c - -Func_2a9e: ; 2a9e (0:2a9e) - ld de, $000c - ld bc, $1406 - call Func_1deb - call Func_1e7c - ret - -Func_2aab: ; 2aab (0:2aab) - call Func_2a59 - xor a - ld hl, Unknown_2ac8 - call Func_2636 - call EnableLCD -.asm_2ab8 - call Func_053f - call Func_26da - ld a, [hButtonsPressed] - and $3 - jr z, .asm_2ab8 - call Func_26e9 - ret - -Unknown_2ac8: ; 2ac8 (0:2ac8) -INCBIN "baserom.gbc",$2ac8,$2af0 - $2ac8 - -Func_2af0: ; 2af0 (0:2af0) - call Func_2a59 - ld de, $0710 - call Func_2b66 - ld de, $0610 - jr .asm_2b0a - call Func_2a3e - ld de, $0310 - call Func_2b66 - ld de, $0210 -.asm_2b0a - ld a, d - ld [$cd98], a - ld bc, $0f00 - call Func_2a1a - ld a, [$cd9a] - ld [$cd10], a - call EnableLCD - jr .asm_2b39 -.asm_2b1f - call Func_053f - call Func_26da - ld a, [hButtonsPressed] - bit 0, a - jr nz, .asm_2b50 - ld a, [hButtonsPressed2] - and $30 - jr z, .asm_2b1f - ld a, $1 - call Func_3796 - call Func_26e9 -.asm_2b39 - ld a, [$cd98] - ld c, a - ld hl, $cd10 - ld a, [hl] - xor $1 - ld [hl], a - add a - add a - add c - ld [$cd11], a - xor a - ld [$cd0f], a - jr .asm_2b1f -.asm_2b50 - ld a, [$cd10] - ld [$ffb1], a - or a - jr nz, .asm_2b5c - ld [$cd9a], a - ret -.asm_2b5c - xor a - ld [$cd9a], a - ld a, $1 - ld [$ffb1], a - scf - ret - -Func_2b66: ; 2b66 (0:2b66) - call Func_1deb - ld hl, $002f - call Func_2c1b - ret -; 0x2b70 - -INCBIN "baserom.gbc",$2b70,$2b78 - $2b70 - -Duel_LoadDecks: ; 2b78 (0:2b78) - xor a - ld [wIsPracticeDuel], a - ld a, [wOpponentDeck] - cp SAMS_NORMAL_DECK - 2 - jr z, .normalSamDuel - or a ; cp SAMS_PRACTICE_DECK - 2 - jr nz, .notPracticeDuel - -; only practice duels will display help messages, but -; any duel with Sam will force the PRACTICE_PLAYER_DECK -;.practiceSamDuel - inc a - ld [wIsPracticeDuel], a - -.normalSamDuel - xor a - ld [wOpponentDeck], a - call Func_1c72 - ld a, PRACTICE_PLAYER_DECK - call LoadDeck - call Func_1c72 - ld hl, $caca - ld a, $57 - ld [hli], a - ld [hli], a - ld [hl], a - xor a - -.notPracticeDuel - inc a - inc a - call LoadDeck - ld a, [wOpponentDeck] - cp NUMBER_OF_DECKS - jr c, .validDeck - ld a, PRACTICE_PLAYER_DECK - 2 - ld [wOpponentDeck], a - -.validDeck - ld a, $f1 - call Func_160b - ld a, [wOpponentDeck] - or $80 - ld [hl], a - ret -; 0x2bbf - -INCBIN "baserom.gbc",$2bbf,$2c08 - $2bbf - -Func_2c08: ; 2c08 (0:2c08) - ld d, [hl] - inc hl - bit 7, d - ret nz - ld e, [hl] - inc hl - call Func_22ae - push hl - call Func_2c23 - pop hl - inc hl - inc hl - jr Func_2c08 - -Func_2c1b: ; 2c1b (0:2c1b) - call Func_22ae - jr Func_2c29 - -Func_2c20: ; 2c20 (0:2c20) - call Func_22ae -Func_2c23: ; 2c23 (0:2c23) - ld a, [hli] - or [hl] - ret z - ld a, [hld] - ld l, [hl] - ld h, a -Func_2c29: ; 2c29 (0:2c29) - ld a, [hBankROM] - push af - call ReadTextOffset - call Func_21c5 - pop af - call BankswitchHome - ret -; 0x2c37 - -INCBIN "baserom.gbc",$2c37,$2cc8 - $2c37 - -Func_2cc8: ; 2cc8 (0:2cc8) - xor a - ld [$ce48], a - ld [$ce49], a - ld [$ce4a], a - ld a, $f - ;ld [$ffaf], a - db $ea, $af, $ff -Func_2cd7: ; 2cd7 (0:2cd7) - push hl - call Func_2d06 - pop bc - ;ld a, [$ffaf] - db $fa, $af, $ff - ld [hli], a - ld a, [$cd0a] - ld [hli], a - ld a, [hBankROM] - ld [hli], a - ld [hl], c - inc hl - ld [hl], b - ret - -Func_2ceb: ; 2ceb (0:2ceb) - call Func_2cd7 - ld hl, $ce48 - inc [hl] - ret - -Func_2cf3: ; 2cf3 (0:2cf3) - call Func_2d06 - ld a, [hli] - ;ld [$ffaf], a - db $ea, $af, $ff - ld a, [hli] - ld [$cd0a], a - ld a, [hli] - call BankswitchHome - ld a, [hli] - ld h, [hl] - ld l, a - ret - -Func_2d06: ; 2d06 (0:2d06) - ld a, [$ce48] - ld e, a - add a - add a - add e - ld e, a - ld d, $0 - ld hl, $ce2b - add hl, de - ret -; 0x2d15 - -INCBIN "baserom.gbc",$2d15,$2d43 - $2d15 - -Func_2d43: ; 2d43 (0:2d43) - call Func_2cf3 - ld a, [hli] - or a - jr z, .asm_2d79 - cp $5 - jr c, .asm_2d65 - cp $10 - jr nc, .asm_2d65 - call Func_21f2 - jr nc, .asm_2d74 - cp $9 - jr z, .asm_2dc8 - cp $b - jr z, .asm_2d8a - cp $c - jr z, .asm_2db3 - jr .asm_2d74 -.asm_2d65 - ld e, a - ld d, [hl] - call Func_2546 - jr nc, .asm_2d6d - inc hl -.asm_2d6d - call Func_22ca - xor a - call Func_21f2 -.asm_2d74 - call Func_2cd7 - or a - ret -.asm_2d79 - ld a, [$ce48] - or a - jr z, .asm_2d85 - dec a - ld [$ce48], a - jr Func_2d43 -.asm_2d85 - call Func_230f - scf - ret -.asm_2d8a - call Func_2ceb - ld a, $f - ;ld [$ffaf], a - db $ea, $af, $ff - xor a - ld [$cd0a], a - ld de, $ce3f - ld hl, $ce49 - call Func_2de0 - ld a, l - or h - jr z, .asm_2dab - call ReadTextOffset - call Func_2cd7 - jr Func_2d43 -.asm_2dab - ld hl, $c590 - call Func_2cd7 - jr Func_2d43 -.asm_2db3 - call Func_2ceb - ld de, $ce43 - ld hl, $ce4a - call Func_2de0 - call Func_2e12 - call Func_2cd7 - jp Func_2d43 -.asm_2dc8 - call Func_2ceb - call Func_2e2c - ld a, [$caa0] - cp $6 - jr z, .asm_2dda - ld a, $7 - call Func_21f2 -.asm_2dda - call Func_2cd7 - jp Func_2d43 - -Func_2de0: ; 2de0 (0:2de0) - push de - ld a, [hl] - inc [hl] - add a - ld e, a - ld d, $0 - pop hl - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ret - -; uses the two byte text id in hl to read the three byte text offset -; loads the correct bank for the specific text and returns the pointer in hl -ReadTextOffset: ; 2ded (0:2ded) - push de - ld e, l - ld d, h - add hl, hl - add hl, de - set 6, h ; hl = (hl * 3) + $4000 - ld a, BANK(TextOffsets) - call BankswitchHome - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld a, [hl] - ld h, d - rl h - rla - rl h - rla - add BANK(TextOffsets) - call BankswitchHome - res 7, d - set 6, d ; $4000 ≤ de ≤ $7fff - ld l, e - ld h, d - pop de - ret - -Func_2e12: ; 2e12 (0:2e12) - ld a, [$cd0a] - or a - jp z, Func_245d - ld de, $caa0 - push de - call Func_0663 - pop hl - ld c, $4 -.asm_2e23 - ld a, [hl] - cp $30 - ret nz - inc hl - dec c - jr nz, .asm_2e23 - ret - -Func_2e2c: ; 2e2c (0:2e2c) - ld de, $caa0 - push de - ld a, [$ff97] - cp $c3 - jp z, .asm_2e3c - call Func_1c7d - pop hl - ret -.asm_2e3c - call Func_1c8e - pop hl - ret - -Func_2e41: ; 2e41 (0:2e41) - ld a, l - or h - jr z, .asm_2e53 - ld a, [hBankROM] - push af - call ReadTextOffset - call .asm_2e56 - pop af - call BankswitchHome - ret -.asm_2e53 - ld hl, $c590 -.asm_2e56 - call Func_2cc8 -.asm_2e59 - ld a, [$ff90] - ld b, a - ld a, [$ce47] - inc a - cp $3 - jr nc, .asm_2e6d - bit 1, b - jr nz, .asm_2e70 - jr .asm_2e6d -.asm_2e6a - call Func_053f -.asm_2e6d - dec a - jr nz, .asm_2e6a -.asm_2e70 - call Func_2d43 - jr nc, .asm_2e59 - ret - -Func_2e76: ; 2e76 (0:2e76) - ld a, [hBankROM] - push af - call ReadTextOffset - call Func_2cc8 -.asm_2e7f - call Func_2d43 - jr nc, .asm_2e7f - pop af - call BankswitchHome - ret - -Func_2e89: ; 2e89 (0:2e89) - ld a, l - or h - jr z, .asm_2e9f - ld a, [hBankROM] - push af - call ReadTextOffset -.asm_2e93 - ld a, [hli] - ld [de], a - inc de - or a - jr nz, .asm_2e93 - pop af - call BankswitchHome - dec de - ret -.asm_2e9f - ld a, [$ff97] - cp $c3 - jp z, Func_1c8e - jp Func_1c7d -; 0x2ea9 - -INCBIN "baserom.gbc",$2ea9,$2fa0 - $2ea9 - -LoadCardGfx: ; 2fa0 (0:2fa0) - ld a, [hBankROM] - push af - push hl - srl h - srl h - srl h - ld a, BANK(GrassEnergyCardGfx) - add h - call BankswitchHome - pop hl - add hl, hl - add hl, hl - add hl, hl - res 7, h - set 6, h - call CopyGfxData - ld b, $8 ; length of palette - ld de, $ce23 -.copyCardPalette - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .copyCardPalette - pop af - call BankswitchHome - ret -; 0x2fcb - -INCBIN "baserom.gbc",$2fcb,$302c - $2fcb - -; loads the deck id in a from DeckPointers -; sets carry flag if an invalid deck id is used -LoadDeck: ; 302c (0:302c) - push hl - ld l, a - ld h, $0 - ld a, [hBankROM] - push af - ld a, BANK(DeckPointers) - call BankswitchHome - add hl, hl - ld de, DeckPointers - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld a, d - or e - jr z, .nullPointer - call CopyDeckData - pop af - call BankswitchHome - pop hl - or a - ret -.nullPointer - pop af - call BankswitchHome - pop hl - scf - ret -; 0x3055 - -Func_3055: ; 3055 (0:3055) - push hl - ld hl, $ccb9 - add [hl] - ld [hli], a - ld a, $0 - adc [hl] - ld [hl], a - pop hl - ret - -Func_3061: ; 3061 (0:3061) - push de - push hl - ld e, a - ld hl, $ccb9 - ld a, [hl] - sub e - ld [hli], a - ld a, [hl] - sbc $0 - ld [hl], a - pop hl - pop de - ret - -Func_3071: ; 3071 (0:3071) - push hl - ld hl, $ce4e - ld [hl], e - inc hl - ld [hl], d - rst $18 - xor l - ld [hl], c - pop hl - ret - -Func_307d: ; 307d (0:307d) - push hl - ld hl, $ce4e - ld [hl], e - inc hl - ld [hl], d - ld a, $1 - rst $18 - xor l - ld [hl], c - ld hl, $cac2 - ld [hl], $0 - pop hl - ret - -Func_3090: ; 3090 (0:3090) - ld a, d - cp b - ret nz - ld a, e - cp c - ret - -Func_3096: ; 3096 (0:3096) - ld a, [hBankROM] - push af - ld a, $2 - call BankswitchHome - call $4000 - pop af - call BankswitchHome - ret - -Func_30a6: ; 30a6 (0:30a6) - ld a, [hBankROM] - push af - ld a, $6 - call BankswitchHome - ld a, $1 - ld [$ce60], a - call $40d5 - pop bc - ld a, b - call BankswitchHome - ret - -Func_30bc: ; 30bc (0:30bc) - ld a, h - ld [$ce50], a - ld a, l - ld [$ce51], a - ld a, [hBankROM] - push af - ld a, $2 - call BankswitchHome - call $4211 - call Func_2a9e - pop af - call BankswitchHome - ret - -Func_30d7: ; 30d7 (0:30d7) - ld a, [hBankROM] - push af - ld a, $2 - call BankswitchHome - call $433c - pop af - call BankswitchHome - ret - -Func_30e7: ; 30e7 (0:30e7) - ld a, [hBankROM] - push af - ld a, $2 - call BankswitchHome - call $4764 - ld b, a - pop af - call BankswitchHome - ld a, b - ret - -Func_30f9: ; 30f9 (0:30f9) - ld b, a - ld a, [hBankROM] - push af - ld a, $2 - call BankswitchHome - call $4932 - pop af - call BankswitchHome - ret - -Func_310a: ; 310a (0:310a) - ld [$ce59], a - ld a, [hBankROM] - push af - ld a, $2 - call BankswitchHome - call $4aaa - pop af - call BankswitchHome - ret - -Func_311d: ; 311d (0:311d) - ld a, [hBankROM] - push af - ld a, $2 - call BankswitchHome - call $4b85 - pop af - call BankswitchHome - ret - -Func_312d: ; 312d (0:312d) ; serial transfer-related - push hl - ld hl, $ce64 - ld a, $88 - ld [hli], a ; [$ce64] ← $88 - ld a, $33 - ld [hli], a ; [$ce65] ← $33 - ld [hl], d ; [$ce66] ← d - inc hl - ld [hl], e ; [$ce67] ← e - inc hl - ld [hl], c ; [$ce68] ← c - inc hl - ld [hl], b ; [$ce69] ← b - inc hl - pop de - ld [hl], e ; [$ce6a] ← l - inc hl - ld [hl], d ; [$ce6b] ← h - inc hl - ld de, $ff45 - ld [hl], e ; [$ce6c] ← $45 - inc hl - ld [hl], d ; [$ce6d] ← $ff - ld hl, $ce70 - ld [hl], $64 ; [$ce70] ← $64 - inc hl - ld [hl], $ce ; [$ce71] ← $ce - call Func_0e8e - ld a, $1 - ld [$ce63], a ; [$ce63] ← 1 - call Func_31fc -.asm_315d - call Func_053f - ld a, [$ce63] - or a - jr nz, .asm_315d - call ResetSerial - ld bc, $05dc -.asm_316c - dec bc - ld a, b - or c - jr nz, .asm_316c - ld a, [$ce6e] - cp $81 - jr nz, .asm_3182 - ld a, [$ce6f] - ld l, a - and $f1 - ld a, l - ret z - scf - ret -.asm_3182 - ld a, $ff - ld [$ce6f], a - scf - ret - -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, [rSB] - ld [$ce6e], a -Func_31ef: ; 31ef (0:31ef) - xor a - jr Func_31e0 - -Func_31f2: ; 31f2 (0:31f2) - ld a, [rSB] - 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 - ; fallthrough -Func_3212: ; 3212 (0:3212) - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret -; 0x321d - -INCBIN "baserom.gbc",$321d,$377f - $321d - -SetupSound_T: ; 377f (0:377f) - farcall SetupSound_Ext - ret - -Func_3784: ; 3784 (0:3784) - xor a -PlaySong: ; 3785 (0:3785) - farcall Func_f4006 - ret - -Func_378a: ; 378a (0:378a) - farcall Func_f400f - ret - -Func_378f: ; 378f (0:378f) - farcall Func_f4012 - ret - -Func_3794: ; 3794 (0:3794) - ld a, $04 -Func_3796: ; 3796 (0:3796) - farcall Func_f4009 - ret - -Func_379b: ; 379b (0:379b) - farcall Func_f401b - ret - -Func_37a0: ; 37a0 (0:37a0) - farcall Func_f401e - ret -; 0x37a5 - -INCBIN "baserom.gbc",$37a5,$380e - $37a5 - -Func_380e: ; 380e (0:380e) - ld a, [$d0c1] - bit 7, a - ret nz - ld a, [hBankROM] - push af - ld a, BANK(Func_c484) - call BankswitchHome - call Func_c484 - call Func_c554 - ld a, BANK(Func_1c610) - call BankswitchHome - call Func_1c610 - call Func_3cb4 - ld a, BANK(Func_804d8) - call BankswitchHome - call Func_804d8 - call Func_089b - pop af - call BankswitchHome - ret - -Func_383d: ; 383d (0:383d) - ld a, $1 - ld [wCounterEnable], a - ld a, [hBankROM] - push af -.asm_3845 - call Func_3855 - jr nc, .asm_3850 - farcall LoadMap - jr .asm_3845 -.asm_3850 - pop af - call BankswitchHome - ret - -Func_3855: ; 3855 (0:3855) - ld a, [$d0b5] - cp $7 - jr c, .asm_385e - ld a, $6 -.asm_385e - ld hl, PointerTable_3864 - jp JumpToFunctionInTable - -PointerTable_3864: ; 3864 (0:3864) - dw Func_3874 - dw Func_38c0 - dw Func_38a3 - dw Func_3876 - dw Credits_3911 - dw Func_38fb - dw Func_38db - dw Func_3874 - -Func_3874: ; 3874 (0:3874) - scf - ret - -Func_3876: ; 3876 (0:3876) - ld a, [hBankROM] - push af - call Func_379b - ld a, MUSIC_CARDPOP - call PlaySong - ld a, $3 - ld [$d0c2], a - ld a, [$d10e] - or $10 - ld [$d10e], a - farcall Func_b177 - ld a, [$d10e] - and $ef - ld [$d10e], a - call Func_37a0 - pop af - call BankswitchHome - scf - ret - -Func_38a3: ; 38a3 (0:38a3) - ld a, $2 - ld [$d0c2], a - xor a - ld [$d112], a - ld a, $ff - ld [$d0c3], a - ld a, $2 - ld [$cc1a], a - ld a, MUSIC_CARDPOP - call PlaySong - bank1call Func_758f - scf - ret - -Func_38c0: ; 38c0 (0:38c0) - ld a, $1 - ld [$d0c2], a - xor a - ld [$d112], a - call EnableExtRAM - xor a - ld [$ba44], a - call DisableExtRAM - call Func_3a3b - bank1call Duel_Start - scf - ret - -Func_38db: ; 38db (0:38db) - ld a, $6 - ld [$d111], a - call Func_39fc - call EnableExtRAM - xor a - ld [$ba44], a - call DisableExtRAM -asm_38ed - farcall Func_131d3 - ld a, $9 - ld [$d111], a - call Func_39fc - scf - ret - -Func_38fb: ; 38fb (0:38fb) - xor a - ld [$d112], a - bank1call Func_406f - call EnableExtRAM - ld a, [$ba44] - call DisableExtRAM - cp $ff - jr z, asm_38ed - scf - ret - -Credits_3911: ; 3911 (0:3911) - farcall Credits_1d6ad - or a - ret -; 0x3917 - -INCBIN "baserom.gbc",$3917,$3927 - $3917 - -Func_3927: ; 3927 (0:3927) - push hl - call Func_3946 - ld a, [hl] - pop hl - ret -; 0x392e - -INCBIN "baserom.gbc",$392e,$3946 - $392e - -Func_3946: ; 3946 (0:3946) - push bc - srl b - srl c - swap c - ld a, c - and $f0 - or b - ld c, a - ld b, $0 - ld hl, $d133 - add hl, bc - pop bc - ret - -Func_395a: ; 395a (0:395a) - ld a, [hBankROM] - push af - ld a, [$d4c6] - call BankswitchHome - call CopyGfxData - pop af - call BankswitchHome - ret - -Unknown_396b: ; 396b (0:396b) -INCBIN "baserom.gbc",$396b,$3973 - $396b - -Unknown_3973: ; 3973 (0:3973) -INCBIN "baserom.gbc",$3973,$397b - $3973 - -Unknown_397b: ; 397b (0:397b) -INCBIN "baserom.gbc",$397b,$3997 - $397b - -Func_3997: ; 3997 (0:3997) - ld a, [hBankROM] - push af - ld a, BANK(Func_1c056) - call BankswitchHome - call Func_1c056 - pop af - call BankswitchHome - ret -; 0x39a7 - -INCBIN "baserom.gbc",$39a7,$39ad - $39a7 - -Func_39ad: ; 39ad (0:39ad) - push bc - cp $8 - jr c, .asm_39b4 - rst $38 - xor a -.asm_39b4 - add a - add a - ld h, a - add a - add h - add l - ld l, a - ld h, $0 - ld bc, $d34a - add hl, bc - pop bc - ret - -Func_39c3: ; 39c3 (0:39c3) - push hl - push bc - push de - xor a - ld [$d3aa], a - ld b, a - ld c, $8 - ld de, $000c - ld hl, $d34a - ld a, [$d3ab] -.asm_39d6 - cp [hl] - jr z, .asm_39e1 - add hl, de - inc b - dec c - jr nz, .asm_39d6 - scf - jr z, .asm_39e6 -.asm_39e1 - ld a, b - ld [$d3aa], a - or a -.asm_39e6 - pop de - pop bc - pop hl - ret -; 0x39ea - -INCBIN "baserom.gbc",$39ea,$39fc - $39ea - -Func_39fc: ; 39fc (0:39fc) - push hl - push bc - call Func_378a - or a - push af - call Func_3a1f - ld c, a - pop af - jr z, .asm_3a11 - ld a, c - ld hl, $d112 - cp [hl] - jr z, .asm_3a1c -.asm_3a11 - ld a, c - cp $1f - jr nc, .asm_3a1c - ld [$d112], a - call PlaySong -.asm_3a1c - pop bc - pop hl - ret - -Func_3a1f: ; 3a1f (0:3a1f) - ld a, [$d3b8] - or a - jr z, .asm_3a37 - ld a, [$d32e] - cp $2 - jr z, .asm_3a37 - cp $b - jr z, .asm_3a37 - cp $c - jr z, .asm_3a37 - ld a, MUSIC_RONALD - ret -.asm_3a37 - ld a, [$d111] - ret - -Func_3a3b: ; 3a3b (0:3a3b) - farcall Func_1124d - ret - -Func_3a40: ; 3a40 (0:3a40) - farcall Func_11430 - ret -; 0x3a45 - -INCBIN "baserom.gbc",$3a45,$3a5e - $3a45 - -Func_3a5e: ; 3a5e (0:3a5e) - ld a, [hBankROM] - push af - ld l, $4 - call Func_3abd - jr nc, .asm_3ab3 - ld a, BANK(Func_c653) - call BankswitchHome - call Func_c653 - ld a, $4 - call BankswitchHome - ld a, [$d334] - ld d, a -.asm_3a79 - ld a, [hli] - bit 7, a - jr nz, .asm_3ab3 - push bc - push hl - cp d - jr nz, .asm_3aab - ld a, [hli] - cp b - jr nz, .asm_3aab - ld a, [hli] - cp c - jr nz, .asm_3aab - ld a, [hli] - ld [$d0c6], a - ld a, [hli] - ld [$d0c7], a - ld a, [hli] - ld [$d0ca], a - ld a, [hli] - ld [$d0cb], a - ld a, [hli] - ld [$d0c8], a - ld a, [hli] - ld [$d0c9], a - pop hl - pop bc - pop af - call BankswitchHome - scf - ret -.asm_3aab - pop hl - ld bc, $0008 - add hl, bc - pop bc - jr .asm_3a79 -.asm_3ab3 - pop af - call BankswitchHome - ld l, $6 - call $49c2 - ret - -Func_3abd: ; 3abd (0:3abd) - push bc - push hl - ld a, [wCurMap] - ld l, a - ld h, $0 - add hl, hl - add hl, hl - add hl, hl - add hl, hl - ld bc, MapScripts - add hl, bc - pop bc - ld b, $0 - add hl, bc - ld a, [hBankROM] - push af - ld a, BANK(MapScripts) - call BankswitchHome - ld a, [hli] - ld h, [hl] - ld l, a - pop af - call BankswitchHome - ld a, l - or h - jr nz, .asm_3ae5 - scf -.asm_3ae5 - ccf - pop bc - ret -; 0x3ae8 - -INCBIN "baserom.gbc",$3ae8,$3aed - $3ae8 - -Func_3aed: ; 3aed (0:3aed) - ld hl, $d413 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] - ld c, [hl] - inc hl - ld b, [hl] - push bc - rlca - ld c, a - ld b, $0 - ld hl, Unknown_1217b - add hl, bc - ld a, [hBankROM] - push af - ld a, BANK(Unknown_1217b) - call BankswitchHome - ld a, [hli] - ld h, [hl] - ld l, a - pop af - call BankswitchHome - pop bc - jp [hl] -; 0x3b11 - -INCBIN "baserom.gbc",$3b11,$3bd2 - $3b11 - -Func_3bd2: ; 3bd2 (0:3bd2) - ld a, l - ld [$cad3], a - ld a, h - ld [$cad4], a - ret - -Func_3bdb: ; 3bdb (0:3bdb) - push hl - ld hl, $0000 - call Func_3bd2 - pop hl - ret -; 0x3be4 - -INCBIN "baserom.gbc",$3be4,$3bf5 - $3be4 - -Func_3bf5: ; 3bf5 (0:3bf5) - ld a, [hBankROM] - push af - push hl - ld a, [$d4c6] - call BankswitchHome - ld a, [$d4c4] - ld l, a - ld a, [$d4c5] - ld h, a - call CopyData_SaveRegisters - pop hl - pop af - call BankswitchHome - ret -; 0x3c10 - -INCBIN "baserom.gbc",$3c10,$3c45 - $3c10 - -Func_3c45: ; 3c45 (0:3c45) - jp [hl] -; 0x3c46 - -INCBIN "baserom.gbc",$3c46,$3c48 - $3c46 - -Func_3c48: ; 3c48 (0:3c48) - push af - ld a, [rLCDC] - bit 7, a - jr z, .asm_3c58 - push bc - push de - push hl - call Func_053f - pop hl - pop de - pop bc -.asm_3c58 - pop af - ret - -Func_3c5a: ; 3c5a (0:3c5a) - ld hl, $0000 - rl c - rl b - ld a, $10 -.asm_3c63 - ld [$ffb6], a - rl l - rl h - push hl - ld a, l - sub e - ld l, a - ld a, h - sbc d - ccf - jr nc, .asm_3c78 - ld h, a - add sp, $2 - scf - jr .asm_3c79 -.asm_3c78 - pop hl -.asm_3c79 - rl c - rl b - ld a, [$ffb6] - dec a - jr nz, .asm_3c63 - ret -; 0x3c83 - -INCBIN "baserom.gbc",$3c83,$3ca0 - $3c83 - -Func_3ca0: ; 3ca0 (0:3ca0) - xor a - ld [$d5d7], a - ld a, [hBankROM] - push af - ld a, BANK(Func_1296e) - call BankswitchHome - call Func_1296e - pop af - call BankswitchHome - ret - -Func_3cb4: ; 3cb4 (0:3cb4) - ld a, [hBankROM] - push af - ld a, BANK(Func_12a21) - call BankswitchHome - call Func_12a21 - pop af - call BankswitchHome - ret -; 0x3cc4 - -INCBIN "baserom.gbc",$3cc4,$3d72 - $3cc4 - -Func_3d72: ; 3d72 (0:3d72) - ld a, [hBankROM] - push af - push hl - push hl - ld a, [$d4ca] - cp $ff - jr nz, .asm_3d84 - ld de, Unknown_80e5a - xor a - jr .asm_3da1 -.asm_3d84 - ld a, [$d4c4] - ld l, a - ld a, [$d4c5] - ld h, a - ld a, [$d4c6] - call BankswitchHome - ld a, [hli] - push af - ld a, [$d4ca] - rlca - ld e, [hl] - add e - ld e, a - inc hl - ld a, [hl] - adc $0 - ld d, a - pop af -.asm_3da1 - add BANK(Unknown_80e5a) - pop hl - ld bc, $000b - add hl, bc - ld [hli], a - call BankswitchHome - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hl], a - pop hl - pop af - call BankswitchHome - ret - -Func_3db7: ; 3db7 (0:3db7) - push bc - ld c, $0 - call Func_3dbf - pop bc - ret - -Func_3dbf: ; 3dbf (0:3dbf) - ld a, [$d4cf] - cp $10 - jr c, .asm_3dc9 - rst $38 - ld a, $f -.asm_3dc9 - push bc - swap a - push af - and $f - ld b, a - pop af - and $f0 - or c - ld c, a - ld hl, $d4d0 - add hl, bc - pop bc - ret -; 0x3ddb - -INCBIN "baserom.gbc",$3ddb,$3df3 - $3ddb - -Func_3df3: ; 3df3 (0:3df3) - push af - ld a, [hBankROM] - push af - push hl - ld a, BANK(Func_12c7f) - call BankswitchHome - ld hl, [sp+$5] - ld a, [hl] - call Func_12c7f - call Func_0404 - pop hl - pop af - call BankswitchHome - pop af - ld a, [$d61b] - ret -; 0x3e10 - -INCBIN "baserom.gbc",$3e10,$3e17 - $3e10 - -Func_3e17: ; 3e17 (0:3e17) - ld [$d131], a - ld a, [hBankROM] - push af - ld a, $4 - call BankswitchHome - call $6fc6 - pop af - call BankswitchHome - ret - -Func_3e2a: ; 3e2a (0:3e2a) - ld [$d61e], a - ld a, $63 - jr Func_3e17 -; 0x3e31 - -INCBIN "baserom.gbc",$3e31,$3fe0 - $3e31 - -; jumps to 3f:hl -Bankswitch3dTo3f:: ; 3fe0 (0:3fe0) - push af - ld a, $3f - ld [hBankROM], a - ld [MBC3RomBank], a - pop af - ld bc, Bankswitch3d - push bc - jp [hl] - -Bankswitch3d: ; 3fe0 (0:3fe0) - ld a, $3d - ld [hBankROM], a - ld [MBC3RomBank], a - ret - -rept $a -db $ff -endr |