diff options
author | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-04-26 22:13:13 -0400 |
---|---|---|
committer | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-04-26 22:13:13 -0400 |
commit | 73130c2d075a16559f14ce49fe0b657c67c440a7 (patch) | |
tree | cd7b935b8a4952ff99f0450e35f0bc0e96c3acb4 | |
parent | f0fbb79f0b5ec5f183f9278e5c76c697dea4e2f9 (diff) |
bank1c.asm
-rwxr-xr-x | engine/bank1c.asm | 309 | ||||
-rwxr-xr-x | engine/home.asm | 125 | ||||
-rwxr-xr-x | main.asm | 5 |
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 @@ -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 |