summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-04-20 08:29:12 -0400
committerU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-04-20 08:29:12 -0400
commit012089679ffc534c7dec23c896c5e8e870939d90 (patch)
tree6073cd4268d289ba94291dee56975201a1892dcd
parent67ccd2f483fa8e759726733b20d488fd00e7b653 (diff)
bank3.asm
-rwxr-xr-xengine/bank3.asm100
-rwxr-xr-xengine/home.asm32
-rwxr-xr-xengine/overworldmap.asm5
-rwxr-xr-xmain.asm10
4 files changed, 136 insertions, 11 deletions
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"