summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xengine/bank2.asm60
-rwxr-xr-xengine/bank20.asm117
-rwxr-xr-xengine/bank3.asm198
-rwxr-xr-xengine/bank6.asm224
-rwxr-xr-xengine/home.asm67
-rwxr-xr-xmain.asm10
6 files changed, 420 insertions, 256 deletions
diff --git a/engine/bank2.asm b/engine/bank2.asm
index 4c3058d..8d2e9c8 100755
--- a/engine/bank2.asm
+++ b/engine/bank2.asm
@@ -1,31 +1,31 @@
-INCBIN "baserom.gbc",$8000,$8cf9 - $8000
-
-Func_8cf9: ; 8cf9 (2:4cf9)
- call Func_07b6
- xor a
- ld hl, $b703
- ld [hli], a
- inc a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld [$b701], a
- call Func_07be
- ld hl, Unknown_8d15
- ld de, $9380
- call Func_92ad
- ret
-
-Unknown_8d15: ; 8d15 (2:4d15)
-INCBIN "baserom.gbc",$8d15,$92ad - $8d15
-
-Func_92ad: ; 92ad (2:52ad)
- ld a, [hli]
- ld [de], a
- or a
- ret z
- inc de
- jr Func_92ad
-; 0x92b4
-
+INCBIN "baserom.gbc",$8000,$8cf9 - $8000
+
+Func_8cf9: ; 8cf9 (2:4cf9)
+ call Func_07b6
+ xor a
+ ld hl, $b703
+ ld [hli], a
+ inc a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld [$b701], a
+ call Func_07be
+ ld hl, Unknown_8d15
+ ld de, $9380
+ call Func_92ad
+ ret
+
+Unknown_8d15: ; 8d15 (2:4d15)
+INCBIN "baserom.gbc",$8d15,$92ad - $8d15
+
+Func_92ad: ; 92ad (2:52ad)
+ ld a, [hli]
+ ld [de], a
+ or a
+ ret z
+ inc de
+ jr Func_92ad
+; 0x92b4
+
INCBIN "baserom.gbc",$92b4,$c000 - $92b4 \ No newline at end of file
diff --git a/engine/bank20.asm b/engine/bank20.asm
new file mode 100755
index 0000000..a4898c4
--- /dev/null
+++ b/engine/bank20.asm
@@ -0,0 +1,117 @@
+INCBIN "baserom.gbc",$80000,$8020f - $80000
+
+Func_8020f: ; 8020f (20:420f)
+ push bc
+ push af
+ ld bc, Unknown_80e5d
+ 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 Func_07c5
+ 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 Func_07d6
+ 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,$80e5a - $802d4
+
+Unknown_80e5a: ; 80e5a (20:4e5a)
+INCBIN "baserom.gbc",$80e5a,$80e5d - $80e5a
+
+Unknown_80e5d: ; 80e5d (20:4e5d)
+INCBIN "baserom.gbc",$80e5d,$84000 - $80e5d \ No newline at end of file
diff --git a/engine/bank3.asm b/engine/bank3.asm
index 652232b..abc7497 100755
--- a/engine/bank3.asm
+++ b/engine/bank3.asm
@@ -1,100 +1,100 @@
-INCBIN "baserom.gbc",$c000,$c5d5 - $c000
-
-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
-; 0xc5fe
-
-INCBIN "baserom.gbc",$c5fe,$ca6c - $c5fe
-
-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,$cb1d - $ca84
-
-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",$c000,$c5d5 - $c000
+
+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
+; 0xc5fe
+
+INCBIN "baserom.gbc",$c5fe,$ca6c - $c5fe
+
+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,$cb1d - $ca84
+
+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,$10000 - $cc60 \ No newline at end of file
diff --git a/engine/bank6.asm b/engine/bank6.asm
index df0491e..dd83684 100755
--- a/engine/bank6.asm
+++ b/engine/bank6.asm
@@ -1,113 +1,113 @@
-INCBIN "baserom.gbc",$18000,$1996e - $18000
-
-Func_1996e: ; 1996e (6:596e)
- call Func_07b6
- 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 Func_07b6
- 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 Func_07be
- ret
-
-Func_199e0: ; 199e0 (6:59e0)
- push de
- push bc
- push hl
- call Func_302c
- jr c, .asm_19a0e
- call Func_19a12
- pop hl
- call Func_07b6
- 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 Func_07be
- 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,$1a6cc - $19a1f
-
-Func_1a6cc: ; 1a6cc (6:66cc)
- ret
-; 0x1a6cd
-
+INCBIN "baserom.gbc",$18000,$1996e - $18000
+
+Func_1996e: ; 1996e (6:596e)
+ call Func_07b6
+ 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 Func_07b6
+ 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 Func_07be
+ ret
+
+Func_199e0: ; 199e0 (6:59e0)
+ push de
+ push bc
+ push hl
+ call Func_302c
+ jr c, .asm_19a0e
+ call Func_19a12
+ pop hl
+ call Func_07b6
+ 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 Func_07be
+ 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,$1a6cc - $19a1f
+
+Func_1a6cc: ; 1a6cc (6:66cc)
+ ret
+; 0x1a6cd
+
INCBIN "baserom.gbc",$1a6cd,$1c000 - $1a6cd \ No newline at end of file
diff --git a/engine/home.asm b/engine/home.asm
index 4e6e2f3..f306b64 100755
--- a/engine/home.asm
+++ b/engine/home.asm
@@ -752,7 +752,44 @@ Func_06c3: ; 06c3 (0:06c3)
ret
; 0x6ee
-INCBIN "baserom.gbc",$06ee,$0732 - $06ee
+INCBIN "baserom.gbc",$06ee,$0709 - $06ee
+
+Func_0709: ; 0709 (0:0709)
+ jp Func_0c19
+
+Func_070c: ; 070c (0:070c)
+ ld a, [$cabb]
+ 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
@@ -876,9 +913,14 @@ Func_07cd: ; 07cd (0:07cd)
ld [$ff4f], a
pop af
ret
-; 0x7d6
-INCBIN "baserom.gbc",$07d6,$07e7 - $07d6
+Func_07d6: ; 07d6 (0:07d6)
+ ld [$ff82], a
+ ld [$ff4f], a
+ ret
+; 0x7db
+
+INCBIN "baserom.gbc",$07db,$07e7 - $07db
Func_07e7: ; 07e7 (0:07e7)
call Func_025c
@@ -2986,7 +3028,20 @@ Func_37a0: ; 37a0 (0:37a0)
ret
; 0x37a5
-INCBIN "baserom.gbc",$37a5,$397b - $37a5
+INCBIN "baserom.gbc",$37a5,$395a - $37a5
+
+Func_395a: ; 395a (0:395a)
+ ld a, [$ff80]
+ push af
+ ld a, [$d4c6]
+ call BankswitchHome
+ call Func_070c
+ pop af
+ call BankswitchHome
+ ret
+; 0x396b
+
+INCBIN "baserom.gbc",$396b,$397b - $396b
Unknown_397b: ; 397b (0:397b)
INCBIN "baserom.gbc",$397b,$3aed - $397b
@@ -3082,7 +3137,7 @@ Func_3d72: ; 3d72 (0:3d72)
ld a, [$d4ca]
cp $ff
jr nz, .asm_3d84
- ld de, Func_80e5a
+ ld de, Unknown_80e5a
xor a
jr .asm_3da1
.asm_3d84
@@ -3105,7 +3160,7 @@ Func_3d72: ; 3d72 (0:3d72)
ld d, a
pop af
.asm_3da1
- add BANK(Func_80e5a)
+ add BANK(Unknown_80e5a)
pop hl
ld bc, $000b
add hl, bc
diff --git a/main.asm b/main.asm
index 47d3bbf..919f2aa 100755
--- a/main.asm
+++ b/main.asm
@@ -102,15 +102,7 @@ SECTION "bank1F",ROMX,BANK[$1F]
emptybank
SECTION "bank20",ROMX,BANK[$20]
-INCBIN "baserom.gbc",$80000,$8020f - $80000
-Func_8020f: ; 8020f (20:420f)
-INCBIN "baserom.gbc",$8020f,$80229 - $8020f
-Func_80229: ; 80229 (20:4229)
-INCBIN "baserom.gbc",$80229,$8025b - $80229
-Func_8025b: ; 8025b (20:425b)
-INCBIN "baserom.gbc",$8025b,$80e5a - $8025b
-Func_80e5a: ; 80e5a (20:4e5a)
-INCBIN "baserom.gbc",$80e5a,$84000 - $80e5a
+INCLUDE "engine/bank20.asm"
SECTION "bank21",ROMX,BANK[$21]
INCBIN "baserom.gbc",$84000,$4000