summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-04-26 22:13:13 -0400
committerU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-04-26 22:13:13 -0400
commit73130c2d075a16559f14ce49fe0b657c67c440a7 (patch)
treecd7b935b8a4952ff99f0450e35f0bc0e96c3acb4
parentf0fbb79f0b5ec5f183f9278e5c76c697dea4e2f9 (diff)
bank1c.asm
-rwxr-xr-xengine/bank1c.asm309
-rwxr-xr-xengine/home.asm125
-rwxr-xr-xmain.asm5
3 files changed, 433 insertions, 6 deletions
diff --git a/engine/bank1c.asm b/engine/bank1c.asm
new file mode 100755
index 0000000..de26d29
--- /dev/null
+++ b/engine/bank1c.asm
@@ -0,0 +1,309 @@
+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, Unknown_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, Unknown_700ee
+ call Func_70177
+.asm_700da
+ pop de
+ pop bc
+ pop hl
+ ret
+
+Unknown_700de: ; 700de (1c:40de)
+INCBIN "baserom.gbc",$700de,$700ee - $700de
+
+Unknown_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, Unknown_70126
+ call Func_70177
+ pop de
+ pop bc
+ pop hl
+ ret
+
+Unknown_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, Unknown_701a0
+ call Func_0b20
+ call Func_028a
+ ld a, [$cabb]
+ and $41
+ or $1
+ ld [$cabb], a
+ ld a, $e4
+ ld [$ff47], a
+ call Func_040c
+ xor a
+ ld [$ff92], a
+ ld [$ff43], a
+ ld [$ff93], a
+ ld [$ff42], a
+ pop de
+ pop bc
+ pop hl
+ ret
+
+Func_70177: ; 70177 (1c:4177)
+ push hl
+ push bc
+ push de
+ push hl
+ call Func_0277
+ pop hl
+ call Func_0b20
+ ld a, [$d41d]
+ ld [$ff92], a
+ ld a, [$d41e]
+ ld [$ff93], a
+ ld a, [$d41f]
+ call Func_040c
+ ld a, [$d420]
+ ld [$cabb], a
+ call Func_028a
+ ei
+ pop de
+ pop bc
+ pop hl
+ ret
+
+Unknown_701a0: ; 701a0 (1c:41a0)
+INCBIN "baserom.gbc",$701a0,$701b0 - $701a0
+
+Unknown_701b0: ; 701b0 (1c:41b0)
+INCBIN "baserom.gbc",$701b0,$701c0 - $701b0
+
+Func_701c0: ; 701c0 (1c:41c0)
+ push hl
+ push bc
+ call Func_028a
+ 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, Unknown_701b0
+ call Func_0b20
+ 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 \ No newline at end of file
diff --git a/engine/home.asm b/engine/home.asm
index 8f06811..6d50caf 100755
--- a/engine/home.asm
+++ b/engine/home.asm
@@ -1115,9 +1115,130 @@ Func_089b: ; 089b (0:089b)
pop de
pop hl
ret
-; 0x8bf
-INCBIN "baserom.gbc",$08bf,$099c - $08bf
+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
diff --git a/main.asm b/main.asm
index ada4235..6540b9f 100755
--- a/main.asm
+++ b/main.asm
@@ -88,10 +88,7 @@ SECTION "bank1B",ROMX,BANK[$1B]
emptybank
SECTION "bank1C",ROMX,BANK[$1C]
-Func_70000: ; 70000 (1c:4000)
-INCBIN "baserom.gbc",$70000,$70018 - $70000
-Func_70018: ; 70018 (1c:4018)
-INCBIN "baserom.gbc",$70018,$74000 - $70018
+INCLUDE "engine/bank1c.asm"
SECTION "bank1D",ROMX,BANK[$1D]
INCBIN "baserom.gbc",$74000,$76668 - $74000