diff options
-rwxr-xr-x | engine/bank2.asm | 60 | ||||
-rwxr-xr-x | engine/bank20.asm | 117 | ||||
-rwxr-xr-x | engine/bank3.asm | 198 | ||||
-rwxr-xr-x | engine/bank6.asm | 224 | ||||
-rwxr-xr-x | engine/home.asm | 67 | ||||
-rwxr-xr-x | main.asm | 10 |
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 @@ -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 |