summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorDaniel Harding <corrnondacqb@yahoo.com>2015-03-19 00:19:59 -0400
committerDaniel Harding <corrnondacqb@yahoo.com>2015-03-19 00:19:59 -0400
commitae198f05566310d64d201bc8e5b9b54f90c27b7b (patch)
treed5fe4e6cde4cfa6d37e1a9f04ee267c384b73f42 /engine
parent3c75edba47b89066383a4dae07d225cbc1cbff77 (diff)
parentd41ad62f5bf43c98d05c593d5c64a5a42b7c0cee (diff)
Merge pull request #6 from stag019/srcrgbgfx
Move source code into "src/". Update Makefile/scan_includes.
Diffstat (limited to 'engine')
-rwxr-xr-xengine/bank1.asm251
-rwxr-xr-xengine/bank1c.asm314
-rwxr-xr-xengine/bank2.asm791
-rwxr-xr-xengine/bank20.asm133
-rwxr-xr-xengine/bank3.asm1457
-rwxr-xr-xengine/bank4.asm1147
-rwxr-xr-xengine/bank6.asm175
-rwxr-xr-xengine/bank7.asm314
-rwxr-xr-xengine/home.asm4851
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