From 012089679ffc534c7dec23c896c5e8e870939d90 Mon Sep 17 00:00:00 2001 From: "U-Fish-PC\\Daniel" Date: Sun, 20 Apr 2014 08:29:12 -0400 Subject: bank3.asm --- engine/bank3.asm | 100 ++++++++++++++++++++++++++++++++++++++++++++++++ engine/home.asm | 32 +++++++++++++++- engine/overworldmap.asm | 5 ++- main.asm | 10 +---- 4 files changed, 136 insertions(+), 11 deletions(-) create mode 100755 engine/bank3.asm diff --git a/engine/bank3.asm b/engine/bank3.asm new file mode 100755 index 0000000..652232b --- /dev/null +++ b/engine/bank3.asm @@ -0,0 +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",$cc60,$10000 - $cc60 \ No newline at end of file diff --git a/engine/home.asm b/engine/home.asm index 66e1005..986d95a 100755 --- a/engine/home.asm +++ b/engine/home.asm @@ -2908,7 +2908,37 @@ Func_37a0: ; 37a0 (0:37a0) INCBIN "baserom.gbc",$37a5,$397b - $37a5 Unknown_397b: ; 397b (0:397b) -INCBIN "baserom.gbc",$397b,$3bf5 - $397b +INCBIN "baserom.gbc",$397b,$3aed - $397b + +Func_3aed: ; 3aed (0:7aed) + 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, [$ff80] + 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,$3bf5 - $3b11 Func_3bf5: ; 3bf5 (0:3bf5) ld a, [$ff80] diff --git a/engine/overworldmap.asm b/engine/overworldmap.asm index 4ef1e30..aa3a189 100755 --- a/engine/overworldmap.asm +++ b/engine/overworldmap.asm @@ -464,7 +464,10 @@ Func_11184: ; 11184 (4:5184) ret ; 0x111b3 -INCBIN "baserom.gbc",$111b3,$1229f - $111b3 +INCBIN "baserom.gbc",$111b3,$1217b - $111b3 + +Unknown_1217b: ; 1217b (4:617b) +INCBIN "baserom.gbc",$1217b,$1229f - $1217b Unknown_1229f: ; 1229f (4:629f) INCBIN "baserom.gbc",$1229f,$126d1 - $1229f diff --git a/main.asm b/main.asm index 5b289d7..d9dccc2 100755 --- a/main.asm +++ b/main.asm @@ -11,15 +11,7 @@ SECTION "bank2",ROMX,BANK[$2] INCBIN "baserom.gbc",$8000,$4000 SECTION "bank3",ROMX,BANK[$3] -INCBIN "baserom.gbc",$c000,$c5d5 - $c000 -Func_c5d5: ; c5d5 (3:45d5) -INCBIN "baserom.gbc",$c5d5,$c5e9 - $c5d5 -Func_c5e9: ; c5e9 (3:45e9) -INCBIN "baserom.gbc",$c5e9,$ca6c - $c5e9 -Func_ca6c: ; ca6c (3:4a6c) -INCBIN "baserom.gbc",$ca6c,$cc42 - $ca6c -RST20: ; cc42 (3:4c42) -INCBIN "baserom.gbc",$cc42,$10000 - $cc42 +INCLUDE "engine/bank3.asm" SECTION "bank4",ROMX,BANK[$4] INCLUDE "engine/overworldmap.asm" -- cgit v1.2.3