diff options
author | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-04-24 15:58:14 -0400 |
---|---|---|
committer | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-04-24 15:58:14 -0400 |
commit | ca6b61b139e11224709a71d57aff10a61ba77e9e (patch) | |
tree | 1bbf7e83fda9b2b6617fd7a05748065d63587313 | |
parent | 14bbdcb6c3b263b4444e93df2d2adbb992b4e7dd (diff) |
Disassemble bank 3 functions related to LoadMap
-rwxr-xr-x | engine/bank2.asm | 10 | ||||
-rwxr-xr-x | engine/bank20.asm | 15 | ||||
-rwxr-xr-x | engine/bank3.asm | 1096 | ||||
-rwxr-xr-x | engine/bank4.asm | 59 | ||||
-rwxr-xr-x | engine/bank7.asm | 23 | ||||
-rwxr-xr-x | engine/home.asm | 81 |
6 files changed, 1225 insertions, 59 deletions
diff --git a/engine/bank2.asm b/engine/bank2.asm index 8d2e9c8..ea1347a 100755 --- a/engine/bank2.asm +++ b/engine/bank2.asm @@ -17,7 +17,10 @@ Func_8cf9: ; 8cf9 (2:4cf9) ret Unknown_8d15: ; 8d15 (2:4d15) -INCBIN "baserom.gbc",$8d15,$92ad - $8d15 +INCBIN "baserom.gbc",$8d15,$8db0 - $8d15 + +Func_8db0: ; 8db0 (2:4db0) +INCBIN "baserom.gbc",$8db0,$92ad - $8db0 Func_92ad: ; 92ad (2:52ad) ld a, [hli] @@ -28,4 +31,7 @@ Func_92ad: ; 92ad (2:52ad) jr Func_92ad ; 0x92b4 -INCBIN "baserom.gbc",$92b4,$c000 - $92b4
\ No newline at end of file +INCBIN "baserom.gbc",$92b4,$a288 - $92b4 + +Func_a288: ; a288 (2:6288) +INCBIN "baserom.gbc",$a288,$c000 - $a288
\ No newline at end of file diff --git a/engine/bank20.asm b/engine/bank20.asm index 1351149..14c7d98 100755 --- a/engine/bank20.asm +++ b/engine/bank20.asm @@ -1,5 +1,8 @@ Func_80000: ; 80000 (20:4000) -INCBIN "baserom.gbc",$80000,$8020f - $80000 +INCBIN "baserom.gbc",$80000,$80028 - $80000 + +Func_80028: ; 80028 (20:4028) +INCBIN "baserom.gbc",$80028,$8020f - $80028 Func_8020f: ; 8020f (20:420f) push bc @@ -109,10 +112,16 @@ Func_802bb: ; 802bb (20:42bb) ret ; 0x802d4 -INCBIN "baserom.gbc",$802d4,$80480 - $802d4 +INCBIN "baserom.gbc",$802d4,$80418 - $802d4 + +Func_80418: ; 80418 (20:4418) +INCBIN "baserom.gbc",$80418,$80480 - $80418 Func_80480: ; 80480 (20:4480) -INCBIN "baserom.gbc",$80480,$80e5a - $80480 +INCBIN "baserom.gbc",$80480,$80b7a - $80480 + +Func_80b7a: ; 80b7a (20:4b7a) +INCBIN "baserom.gbc",$80b7a,$80e5a - $80b7a Unknown_80e5a: ; 80e5a (20:4e5a) INCBIN "baserom.gbc",$80e5a,$80e5d - $80e5a diff --git a/engine/bank3.asm b/engine/bank3.asm index 45f17cb..c85bd0e 100755 --- a/engine/bank3.asm +++ b/engine/bank3.asm @@ -83,18 +83,73 @@ Func_c0ce: ; c0ce (3:40ce) ld a, [$d0bf] res 7, a rlca - add $e0 + add PointerTable_c0e0 & $ff ld l, a - ld a, $40 + ld a, PointerTable_c0e0 >> $8 adc $0 ld h, a ld a, [hli] ld h, [hl] ld l, a jp [hl] -; 0xc0e0 -INCBIN "baserom.gbc",$c0e0,$c141 - $c0e0 +PointerTable_c0e0: ; c0e0 (3:40e0) + dw Func_c0e8 + dw Func_c0ed + dw Func_c0f1 + dw Func_c10a + +Func_c0e8: ; c0e8 (3:40e8) + farcall Func_10e55 + ret + +Func_c0ed: ; c0ed (3:40ed) + call Func_c510 + ret + +Func_c0f1: ; c0f1 (3:40f1) + ld a, [$d3b6] + ld [$d3aa], a + farcall Func_1c768 + ld a, c + ld [$d0c6], a + ld a, b + ld [$d0c7], a + ld a, $3 + ld [$d0bf], a + jr Func_c10a + +Func_c10a: ; c10a (3:410a) + ld hl, $d0c6 + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Func_c111: ; c111 (3:4111) + ld a, [$d0c1] + bit 0, a + call nz, Func_c135 + ld a, [$d0c1] + bit 1, a + jr z, .asm_c12a + ld a, [$d3b6] + ld [$d3aa], a + farcall Func_1c5e9 +.asm_c12a + xor a + ld [$d0c1], a + ld a, [$d0c0] + ld [$d0bf], a + ret + +Func_c135: ; c135 (3:4135) + push hl + farcall Func_80028 + ld hl, $d0c1 + res 0, [hl] + pop hl + ret Func_c141: ; c141 (3:4141) ld hl, $d0c2 @@ -115,37 +170,287 @@ PointerTable_c152: ; c152 (3:4152) dw Func_fcad Func_c158: ; c158 (3:4158) -INCBIN "baserom.gbc",$c158,$c17a - $c158 + ld a, [$d0c2] + cp $1 + ret nz + ld a, [$d0c4] + ld [$d3ab], a + call Func_39c3 + jr c, .asm_c179 + ld a, [$d3aa] + ld l, $4 + call Func_39ad + ld a, [$d0c5] + ld [hl], a + farcall Func_1c58e +.asm_c179 + ret Func_c17a: ; c17a (3:417a) -INCBIN "baserom.gbc",$c17a,$c184 - $c17a + ld a, [$d0bf] + cp $3 + ret z + call Func_c9b8 + ret Func_c184: ; c184 (3:4184) -INCBIN "baserom.gbc",$c184,$c199 - $c184 + push bc + ld c, $1 + ld a, [wCurMap] + cp OVERWORLD_MAP + jr nz, .asm_c190 + ld c, $0 +.asm_c190 + ld a, c + ld [$d0bf], a + ld [$d0c0], a + pop bc + ret Func_c199: ; c199 (3:4199) -INCBIN "baserom.gbc",$c199,$c1a0 - $c199 + ld hl, Func_380e + call Func_3bd2 + ret Func_c1a0: ; c1a0 (3:41a0) -INCBIN "baserom.gbc",$c1a0,$c1a4 - $c1a0 + call Func_3bdb + ret Func_c1a4: ; c1a4 (3:41a4) -INCBIN "baserom.gbc",$c1a4,$c1b1 - $c1a4 + xor a + call Func_040c + xor a + call Func_0423 + xor a + call Func_0428 + ret Func_c1b1: ; c1b1 (3:41b1) -INCBIN "baserom.gbc",$c1b1,$c1ed - $c1b1 + ld a, $c + ld [$d32e], a + ld a, $0 + ld [$d0bb], a + ld a, $c + ld [$d0bc], a + ld a, $c + ld [$d0bd], a + ld a, $2 + ld [$d0be], a + call Func_c9cb + call Func_c9dd + farcall Func_80b7a + farcall Func_1c82e + farcall Func_131b3 + xor a + ld [$cac5], a + ld [$cac6], a + ld [$cac7], a + ld [$cac8], a + ld [$cac9], a + ret Func_c1ed: ; c1ed (3:41ed) -INCBIN "baserom.gbc",$c1ed,$c1f8 - $c1ed + call Func_c9cb + farcall Func_11416 + call Func_c9dd + ret Func_c1f8: ; c1f8 (3:41f8) -INCBIN "baserom.gbc",$c1f8,$c241 - $c1f8 + xor a + ld [$d0b8], a + ld [$d0b9], a + ld [$d0ba], a + ld [$d11b], a + ld [$d0c2], a + ld [$d111], a + ld [$d112], a + ld [$d3b8], a + call Func_07b6 + ld a, [$a007] + ld [$d421], a + ld a, [$a006] + ld [$ce47], a + call Func_07be + farcall Func_10756 + ret + +Func_c228: ; c228 (3:4228) + ld a, [wCurMap] + ld [$d0bb], a + ld a, [wPlayerXCoord] + ld [$d0bc], a + ld a, [wPlayerYCoord] + ld [$d0bd], a + ld a, [$d334] + ld [$d0be], a + ret Func_c241: ; c241 (3:4241) -INCBIN "baserom.gbc",$c241,$c280 - $c241 + push hl + push bc + push de + ld de, Unknown_307f + call Func_2275 + call Func_c258 + pop de + pop bc + pop hl + ret + +Func_c251: ; c251 (3:4251) + ld a, [$ffb0] + push af + ld a, $1 + jr asm_c25d + +Func_c258: ; c258 (3:4258) + ld a, [$ffb0] + push af + ld a, $2 +asm_c25d + ld [$ffb0], a + push hl + call Func_c268 + pop hl + pop af + ld [$ffb0], a + ret + +Func_c268: ; c268 (3:4268) + ld hl, Unknown_c27c +.asm_c26b + push hl + ld a, [hli] + ld h, [hl] + ld l, a + or h + jr z, .asm_c27a + call Func_2c29 + pop hl + inc hl + inc hl + jr .asm_c26b +.asm_c27a + pop hl + ret + +Unknown_c27c: ; c27c (3:427c) +INCBIN "baserom.gbc",$c27c,$c280 - $c27c Func_c280: ; c280 (3:4280) -INCBIN "baserom.gbc",$c280,$c36a - $c280 + call Func_c228 + call Func_3ca0 + call Func_099c + ld hl, $cac0 + inc [hl] + call Func_0277 + call Func_3c48 + call Func_028a + farcall Func_12871 + ret + +Func_c29b: ; c29b (3:429b) + push hl + ld hl, $d0c1 + or [hl] + ld [hl], a + pop hl + ret + +Func_c2a3: ; c2a3 (3:42a3) + push hl + push bc + push de + call Func_c335 + farcall Func_10ab4 + ld a, $80 + call Func_c29b + ld de, Unknown_307f + call Func_2275 + farcall Func_12ba7 + call Func_3ca0 + call Func_099c + ld a, $1 + ld [$cac0], a + call Func_0277 + call Func_3c48 + call Func_028a + pop de + pop bc + pop hl + ret +; 0xc2d4 + +INCBIN "baserom.gbc",$c2d4,$c2db - $c2d4 + +Func_c2db: ; c2db (3:42db) + push hl + push bc + push de + call Func_028a + call Func_02b9 + call Func_3ca0 + farcall Func_12bcd + ld a, $c2 + ld [$ff97], a + call Func_c241 + call Func_04a2 + ld a, [$d111] + push af + farcall Func_80000 + pop af + ld [$d111], a + ld hl, $d0c1 + res 0, [hl] + call Func_c34e + farcall Func_12c5e + farcall Func_1c6f8 + ld hl, $d0c1 + res 7, [hl] + ld hl, $d10f + ld a, [hli] + or [hl] + jr z, .asm_c323 + ld a, [hld] + ld l, [hl] + ld h, a + call Func_3c45 +.asm_c323 + farcall Func_10af9 + pop de + pop bc + pop hl + ret + +Func_c32b: ; c32b (3:432b) + ld a, l + ld [$d10f], a + ld a, h + ld [$d110], a + jr Func_c2db + +Func_c335: ; c335 (3:4335) + ld a, [$cabd] + ld [$d10c], a + ld a, [$cabe] + ld [$d10d], a + ld hl, $cb30 + ld de, $d0cc + ld bc, $0040 + call CopyData_SaveRegisters + ret + +Func_c34e: ; c34e (3:434e) + ld a, [$d10c] + ld [$cabd], a + ld a, [$d10d] + ld [$cabe], a + ld hl, $d0cc + ld de, $cb30 + ld bc, $0040 + call CopyData_SaveRegisters + call Func_0404 + ret Func_c36a: ; c36a (3:436a) xor a @@ -159,16 +464,189 @@ Func_c36a: ; c36a (3:436a) ret ; 0xc37a -INCBIN "baserom.gbc",$c37a,$c491 - $c37a +INCBIN "baserom.gbc",$c37a,$c41c - $c37a + +Func_c41c: ; c41c (3:441c) + ld a, [$d332] + sub $40 + ld [$d235], a + ld a, [$d333] + sub $40 + ld [$d236], a + call Func_c430 + ret + +Func_c430: ; c430 (3:4430) + push bc + ld a, [$d237] + sla a + sla a + sla a + ld b, a + ld a, [$d235] + cp $b1 + jr c, .asm_c445 + xor a + jr .asm_c449 +.asm_c445 + cp b + jr c, .asm_c449 + ld a, b +.asm_c449 + ld [$d235], a + ld a, [$d238] + sla a + sla a + sla a + ld b, a + ld a, [$d236] + cp $b9 + jr c, .asm_c460 + xor a + jr .asm_c464 +.asm_c460 + cp b + jr c, .asm_c464 + ld a, b +.asm_c464 + ld [$d236], a + pop bc + ret + +Func_c469: ; c469 (3:4469) + ld a, [$d235] + add $4 + and $f8 + rrca + rrca + rrca + ld [$d233], a + ld a, [$d236] + add $4 + and $f8 + rrca + rrca + rrca + ld [$d234], a + ret +; 0xc484 + +INCBIN "baserom.gbc",$c484,$c491 - $c484 Func_c491: ; c491 (3:4491) -INCBIN "baserom.gbc",$c491,$c49c - $c491 + ld a, [$d0b6] + ld [$ff92], a + ld a, [$d0b7] + ld [$ff93], a + ret Func_c49c: ; c49c (3:449c) -INCBIN "baserom.gbc",$c49c,$c4b9 - $c49c + ld a, [wPlayerXCoord] + and $1f + ld [wPlayerXCoord], a + rlca + rlca + rlca + ld [$d332], a + ld a, [wPlayerYCoord] + and $1f + ld [wPlayerYCoord], a + rlca + rlca + rlca + ld [$d333], a + ret Func_c4b9: ; c4b9 (3:44b9) -INCBIN "baserom.gbc",$c4b9,$c5d5 - $c4b9 + xor a + ld [$d4ca], a + ld [$d4cb], a + ld a, $1d + farcall Func_80418 + ld b, $0 + ld a, [$cab4] + cp $2 + jr nz, .asm_c4d1 + ld b, $1e +.asm_c4d1 + ld a, b + ld [$d337], a + ld a, $0 + farcall Func_1299f + ld a, [$d4cf] + ld [$d336], a + ld b, $2 + ld a, [wCurMap] + cp OVERWORLD_MAP + jr z, .asm_c4ee + ld a, [$d0be] + ld b, a +.asm_c4ee + ld a, b + ld [$d334], a + call Func_c5e9 + ld a, [wCurMap] + cp OVERWORLD_MAP + call nz, Func_c6f7 + xor a + ld [$d335], a + ld [$d338], a + ld a, [wCurMap] + cp OVERWORLD_MAP + jr nz, .asm_c50f + farcall Func_10fde +.asm_c50f + ret + +Func_c510: ; c510 (3:4510) + ld a, [$d336] + ld [$d4cf], a + ld a, [$d335] + bit 4, a + ret nz + bit 0, a + call z, Func_c5ac + ld a, [$d335] + or a + jr z, .asm_c535 + bit 0, a + call nz, Func_c66c + ld a, [$d335] + bit 1, a + call nz, Func_c6dc + ret +.asm_c535 + ld a, [$ff91] + and $8 + call nz, Func_c74d + ret +; 0xc53d + +INCBIN "baserom.gbc",$c53d,$c5ac - $c53d + +Func_c5ac: ; c5ac (3:45ac) + ld a, [$ff90] + and $f0 + jr z, .asm_c5bf + call Func_c5cb + call Func_c5fe + ld a, [$d335] + and $1 + jr nz, .asm_c5ca +.asm_c5bf + ld a, [$ff91] + and $1 + jr z, .asm_c5ca + call Func_c71e + jr .asm_c5ca +.asm_c5ca + ret + +Func_c5cb: ; c5cb (3:45cb) + call Func_c5d5 + ld [$d334], a + call Func_c5e9 + ret Func_c5d5: ; c5d5 (3:45d5) push hl @@ -199,19 +677,503 @@ Func_c5e9: ; c5e9 (3:45e9) farcall Func_12ab5 pop bc ret -; 0xc5fe -INCBIN "baserom.gbc",$c5fe,$c943 - $c5fe +Func_c5fe: ; c5fe (3:45fe) + push bc + call Func_c653 + call Func_c619 + pop bc + ret +; 0xc607 + +INCBIN "baserom.gbc",$c607,$c619 - $c607 + +Func_c619: ; c619 (3:4619) + push hl + push bc + ld a, b + cp $1f + jr nc, .asm_c650 + ld a, c + cp $1f + jr nc, .asm_c650 + call Func_3927 + and $c0 + jr nz, .asm_c650 + ld a, b + ld [wPlayerXCoord], a + ld a, c + ld [wPlayerYCoord], a + ld a, [$d335] + or $1 + ld [$d335], a + ld a, $10 + ld [$d338], a + ld c, $f + call Func_3dbf + set 2, [hl] + ld c, $e + call Func_3dbf + ld a, $4 + ld [hl], a +.asm_c650 + pop bc + pop hl + ret + +Func_c653: ; c653 (3:4653) + ld a, [$d334] + rlca + ld c, a + ld b, $0 + push hl + ld hl, Unknown_3973 + add hl, bc + ld a, [wPlayerXCoord] + add [hl] + ld b, a + inc hl + ld a, [wPlayerYCoord] + add [hl] + ld c, a + pop hl + ret + +Func_c66c: ; c66c (3:466c) + push hl + push bc + ld c, $1 + ld a, [$ff90] + bit 1, a + jr z, .asm_c67e + ld a, [$d338] + cp $2 + jr c, .asm_c67e + inc c +.asm_c67e + ld a, [$d334] + call Func_c694 + pop bc + pop hl + ret +; 0xc687 + +INCBIN "baserom.gbc",$c687,$c694 - $c687 + +Func_c694: ; c694 (3:4694) + push hl + push bc + push bc + rlca + ld c, a + ld b, $0 + ld hl, Unknown_396b + add hl, bc + pop bc +.asm_c6a0 + push hl + ld a, [hli] + or a + call nz, Func_c6cc + ld a, [hli] + or a + call nz, Func_c6d4 + pop hl + ld a, [$d338] + dec a + ld [$d338], a + jr z, .asm_c6b8 + dec c + jr nz, .asm_c6a0 +.asm_c6b8 + ld a, [$d338] + or a + jr nz, .asm_c6c3 + ld hl, $d335 + set 1, [hl] +.asm_c6c3 + call Func_c41c + call Func_c469 + pop bc + pop hl + ret + +Func_c6cc: ; c6cc (3:46cc) + push hl + ld hl, $d332 + add [hl] + ld [hl], a + pop hl + ret + +Func_c6d4: ; c6d4 (3:46d4) + push hl + ld hl, $d333 + add [hl] + ld [hl], a + pop hl + ret + +Func_c6dc: ; c6dc (3:46dc) + push hl + ld hl, $d335 + res 0, [hl] + res 1, [hl] + call Func_c6f7 + call Func_3997 + call Func_c70d + ld a, [$d0bf] + cp $1 + call z, Func_c9c0 + pop hl + ret + +Func_c6f7: ; c6f7 (3:46f7) + ld a, [$d336] + ld [$d4cf], a + ld c, $f + call Func_3dbf + res 2, [hl] + ld c, $e + call Func_3dbf + ld a, $ff + ld [hl], a + ret + +Func_c70d: ; c70d (3:470d) + push hl + ld hl, $d0bb + ld a, [wCurMap] + cp [hl] + jr z, .asm_c71c + ld hl, $d0b4 + set 4, [hl] +.asm_c71c + pop hl + ret + +Func_c71e: ; c71e (3:471e) + ld a, $ff + ld [$d3b6], a + call Func_c653 + call Func_3927 + and $40 + jr z, .asm_c73d + farcall Func_1c72e + jr c, .asm_c73d + ld a, [$d3aa] + ld [$d3b6], a + ld a, $2 + jr .asm_c748 +.asm_c73d + call Func_3a5e + jr nc, .asm_c746 + ld a, $3 + jr .asm_c748 +.asm_c746 + or a + ret +.asm_c748 + ld [$d0bf], a + scf + ret + +Func_c74d: ; c74d (3:474d) + push hl + push bc + push de + call Func_c75a + call Func_c111 + pop de + pop bc + pop hl + ret + +Func_c75a: ; c75a (3:475a) + call Func_379b + ld a, $5 + call Func_3785 + call Func_c797 +.asm_c765 + ld a, $1 + call Func_c29b +.asm_c76a + call Func_3c48 + call Func_264b + jr nc, .asm_c76a + ld a, e + ld [$d0b8], a + ld a, [$ffb1] + cp e + jr nz, .asm_c793 + cp $5 + jr z, .asm_c793 + call Func_c2a3 + ld a, [$d0b8] + ld hl, PointerTable_c7a2 + call JumpToFunctionInTable + ld hl, Func_c797 + call Func_c32b + jr .asm_c765 +.asm_c793 + call Func_37a0 + ret + +Func_c797: ; c797 (3:4797) + ld a, [$d0b8] + ld hl, Unknown_cd98 + farcall Func_111e9 + ret + +PointerTable_c7a2: ; c7a2 (3:47a2) + dw Func_c7ae + dw Func_c7b3 + dw Func_c7b8 + dw Func_c7cc + dw Func_c7e0 + dw Func_c7e5 + +Func_c7ae: ; c7ae (3:47ae) + farcall Func_10059 + ret + +Func_c7b3: ; c7b3 (3:47b3) + farcall Func_100a2 + ret + +Func_c7b8: ; c7b8 (3:47b8) + xor a + ld [$ff92], a + ld [$ff93], a + call Func_02c2 + farcall Func_1288c + farcall Func_8db0 + call Func_02b9 + ret + +Func_c7cc: ; c7cc (3:47cc) + xor a + ld [$ff92], a + ld [$ff93], a + call Func_02c2 + farcall Func_1288c + farcall Func_a288 + call Func_02b9 + ret + +Func_c7e0: ; c7e0 (3:47e0) + farcall Func_10548 + ret + +Func_c7e5: ; c7e5 (3:47e5) + farcall Func_103d2 + ret +; 0xc7ea + +INCBIN "baserom.gbc",$c7ea,$c935 - $c7ea + +Func_c935: ; c935 (3:4935) + push hl + ld hl, $d0c6 + ld [hl], c + inc hl + ld [hl], b + ld a, $3 + ld [$d0bf], a + pop hl + ret Func_c943: ; c943 (3:4943) -INCBIN "baserom.gbc",$c943,$c9bc - $c943 + push hl + push bc + push de + ld l, $0 + call Func_3abd + jr nc, .asm_c98f +.asm_c94d + ld a, l + ld [$d4c4], a + ld a, h + ld [$d4c5], a + ld a, $4 + ld [$d4c6], a + ld de, $d3ab + ld bc, $0006 + call Func_3bf5 + ld a, [$d3ab] + or a + jr z, .asm_c98f + push hl + ld a, [$d3af] + ld l, a + ld a, [$d3b0] + ld h, a + or l + jr z, .asm_c97a + call Func_3c45 + jr nc, .asm_c988 +.asm_c97a + ld a, [$d3ab] + farcall Func_11857 + call Func_c998 + farcall Func_1c485 +.asm_c988 + pop hl + ld bc, $0006 + add hl, bc + jr .asm_c94d +.asm_c98f + ld l, $2 + call Func_c9c2 + pop de + pop bc + pop hl + ret + +Func_c998: ; c998 (3:4998) + ld a, [$d3ab] + cp $22 + ret nz + ld a, [$d3d0] + or a + ret z + ld b, $4 + ld a, [$cab4] + cp $2 + jr nz, .asm_c9ae + ld b, $e +.asm_c9ae + ld a, b + ld [$d3b1], a + ld a, $0 + ld [$d3b2], a + ret + +Func_c9b8: ; c9b8 (3:49b8) + ld l, $8 + jr Func_c9c2 Func_c9bc: ; c9bc (3:49bc) -INCBIN "baserom.gbc",$c9bc,$c9cb - $c9bc + ld l, $a + jr Func_c9c2 + +Func_c9c0: ; c9c0 (3:49c0) + ld l, $c + +Func_c9c2: ; c9c2 (3:49c2) + call Func_3abd + ret nc + jp [hl] + +Func_c9c7: ; c9c7 (3:49c7) + ld l, $e + jr Func_c9c2 Func_c9cb: ; c9cb (3:49cb) -INCBIN "baserom.gbc",$c9cb,$ca6c - $c9cb + push hl + push bc + ld hl, $d3d2 + ld bc, $0040 +.asm_c9d3 + xor a + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_c9d3 + pop bc + pop hl + ret + +Func_c9dd: ; c9dd (3:49dd) + xor a + ld [$d411], a + call Func_c9e8 + call Func_ca0e + ret + +Func_c9e8: ; c9e8 (3:49e8) + ld c, $0 + call Func_ca69 + db $13 + cp $2 + jr c, .asm_ca04 +.asm_c9f2 + call Func_089b + and $3 + ld c, a + ld b, $0 + ld hl, Unknown_ca0a + add hl, bc + ld a, [$d0bb] + cp [hl] + jr z, .asm_c9f2 +.asm_ca04 + ld a, c + call Func_ca8f + db $34 + ret +Unknown_ca0a: ; ca0a (3:4a04) +INCBIN "baserom.gbc",$ca0a,$ca0e - $ca0a + +Func_ca0e: ; ca0e (3:4a0e) + ld a, [$d32e] + cp $b + jr z, .asm_ca68 + call Func_ca69 + db $22 + or a + jr nz, .asm_ca4a + call Func_ca69 + db $40 + cp $7 + jr z, .asm_ca68 + or a + jr z, .asm_ca33 + cp $2 + jr z, .asm_ca62 + ld c, $1 + call Func_ca8f + db $40 + jr .asm_ca62 +.asm_ca33 + call Func_ca69 + db $3f + cp $7 + jr z, .asm_ca68 + or a + jr z, .asm_ca68 + cp $2 + jr z, .asm_ca68 + ld c, $1 + call Func_ca8f + db $3f + jr .asm_ca68 +.asm_ca4a + call Func_089b + ld c, $1 + and $3 + or a + jr z, .asm_ca56 + ld c, $0 +.asm_ca56 + call Func_ca8f + db $41 + jr .asm_ca5c +.asm_ca5c + ld c, $7 + call Func_ca8f + db $40 +.asm_ca62 + ld c, $7 + call Func_ca8f + db $3f +.asm_ca68 + ret + +Func_ca69: ; ca69 (3:4a69) + call Func_cab3 Func_ca6c: ; ca6c (3:4a6c) push hl push bc @@ -232,7 +1194,51 @@ Func_ca6c: ; ca6c (3:4a6c) ret ; 0xca84 -INCBIN "baserom.gbc",$ca84,$cb1d - $ca84 +INCBIN "baserom.gbc",$ca84,$ca8f - $ca84 + +Func_ca8f: ; ca8f (3:4a8f) + call Func_cab3 + push hl + push bc + call Func_cb1d + ld a, [$d3d1] +.asm_ca9a + bit 0, a + jr nz, .asm_caa4 + srl a + sla c + jr .asm_ca9a +.asm_caa4 + ld a, [$d3d1] + and c + ld c, a + ld a, [$d3d1] + cpl + and [hl] + or c + ld [hl], a + pop bc + pop hl + ret + +Func_cab3: ; cab3 (3:4ab3) + push hl + ld hl, [sp+$4] + push bc + ld c, [hl] + inc hl + ld b, [hl] + ld a, [bc] + inc bc + ld [hl], b + dec hl + ld [hl], c + pop bc + pop hl + ret +; 0xcac2 + +INCBIN "baserom.gbc",$cac2,$cb1d - $cac2 Func_cb1d: ; cb1d (3:4b1d) push bc @@ -276,10 +1282,46 @@ RST20: ; cc42 (3:4c42) ret ; 0xcc60 -INCBIN "baserom.gbc",$cc60,$fc2b - $cc60 +INCBIN "baserom.gbc",$cc60,$cd98 - $cc60 + +Unknown_cd98: ; cd98 (3:4d98) +INCBIN "baserom.gbc",$cd98,$fc2b - $cd98 Func_fc2b: ; fc2b (3:7c2b) -INCBIN "baserom.gbc",$fc2b,$fcad - $fc2b + ld a, [$d0c3] + cp $2 + jr c, .asm_fc34 + ld a, $2 +.asm_fc34 + rlca + ld c, a + ld b, $0 + ld hl, PointerTable_fc4c + add hl, bc + ld c, [hl] + inc hl + ld b, [hl] + ld a, $b0 + ld [$d0c8], a + ld a, $3 + ld [$d0c9], a + jp Func_c935 + +PointerTable_fc4c: ; fc4c (3:7c4c) + dw Unknown_fc64 + dw Unknown_fc68 + dw Unknown_fc60 + +INCBIN "baserom.gbc",$fc52,$fc60 - $fc52 + +Unknown_fc60: ; fc60 (3:7c60) +INCBIN "baserom.gbc",$fc60,$fc64 - $fc60 + +Unknown_fc64: ; fc64 (3:7c64) +INCBIN "baserom.gbc",$fc64,$fc68 - $fc64 + +Unknown_fc68: ; fc68 (3:7c68) +INCBIN "baserom.gbc",$fc68,$fcad - $fc68 Func_fcad: ; fcad (3:7cad) INCBIN "baserom.gbc",$fcad,$10000 - $fcad
\ No newline at end of file diff --git a/engine/bank4.asm b/engine/bank4.asm index 1fe322b..ef2ff3b 100755 --- a/engine/bank4.asm +++ b/engine/bank4.asm @@ -1,7 +1,22 @@ -INCBIN "baserom.gbc",$10000,$103d3 - $10000 +INCBIN "baserom.gbc",$10000,$10059 - $10000 + +Func_10059: ; 10059 (4:4059) +INCBIN "baserom.gbc",$10059,$100a2 - $10059 + +Func_100a2: ; 100a2 (4:40a2) +INCBIN "baserom.gbc",$100a2,$103d2 - $100a2 + +Func_103d2: ; 103d2 (4:43d2) +INCBIN "baserom.gbc",$103d2,$103d3 - $103d2 Func_103d3: ; 103d3 (4:43d3) -INCBIN "baserom.gbc",$103d3,$10a9b - $103d3 +INCBIN "baserom.gbc",$103d3,$10548 - $103d3 + +Func_10548: ; 10548 (4:4548) +INCBIN "baserom.gbc",$10548,$10756 - $10548 + +Func_10756: ; 10756 (4:4756) +INCBIN "baserom.gbc",$10756,$10a9b - $10756 Func_10a9b: ; 10a9b (4:4a9b) INCBIN "baserom.gbc",$10a9b,$10ab4 - $10a9b @@ -179,7 +194,7 @@ OverworldMapIndexes: ; 10f88 (4:4f88) db CHALLENGE_HALL_ENTRANCE,$08,$0E,$00 db POKEMON_DOME_ENTRANCE, $0E,$0E,$00 -Func_10fbc: ; 10fbc (4:4fbc) XXXX +Func_10fbc: ; 10fbc (4:4fbc) ld a, $25 farcall Func_1299f ld c, $2 @@ -198,7 +213,7 @@ Func_10fbc: ; 10fbc (4:4fbc) XXXX farcall Func_12ab5 ret -Func_10fde: ; 10fde (4:4fde) XXXX +Func_10fde: ; 10fde (4:4fde) ld a, [$d32e] ld [$d33d], a xor a @@ -476,10 +491,16 @@ Func_11184: ; 11184 (4:5184) ret ; 0x111b3 -INCBIN "baserom.gbc",$111b3,$11320 - $111b3 +INCBIN "baserom.gbc",$111b3,$111e9 - $111b3 + +Func_111e9: ; 111e9 (4:51e9) +INCBIN "baserom.gbc",$111e9,$11320 - $111e9 Func_11320: ; 11320 (4:5320) -INCBIN "baserom.gbc",$11320,$1162a - $11320 +INCBIN "baserom.gbc",$11320,$11416 - $11320 + +Func_11416: ; 11416 (4:5416) +INCBIN "baserom.gbc",$11416,$1162a - $11416 MapHeaders: ; 1162a (4:562a) ; OVERWORLD_MAP @@ -822,7 +843,10 @@ MapHeaders: ; 1162a (4:562a) dw $0000 dw $0000 -INCBIN "baserom.gbc",$1184a,$1217b - $1184a +INCBIN "baserom.gbc",$1184a,$11857 - $1184a + +Func_11857: ; 11857 (4:5857) +INCBIN "baserom.gbc",$11857,$1217b - $11857 Unknown_1217b: ; 1217b (4:617b) INCBIN "baserom.gbc",$1217b,$1229f - $1217b @@ -929,7 +953,13 @@ Func_1277e: ; 1277e (4:677e) ret ; 0x1279a -INCBIN "baserom.gbc",$1279a,$128a9 - $1279a +INCBIN "baserom.gbc",$1279a,$12871 - $1279a + +Func_12871: ; 12871 (4:6871) +INCBIN "baserom.gbc",$12871,$1288c - $12871 + +Func_1288c: ; 1288c (4:688c) +INCBIN "baserom.gbc",$1288c,$128a9 - $1288c Func_128a9: ; 128a9 (4:68a9) INCBIN "baserom.gbc",$128a9,$1299f - $128a9 @@ -1160,9 +1190,12 @@ Func_12b89: ; 12b89 (4:6b89) pop bc pop hl ret -; 0x12ba7 -INCBIN "baserom.gbc",$12ba7,$12c05 - $12ba7 +Func_12ba7: ; 12ba7 (4:6ba7) +INCBIN "baserom.gbc",$12ba7,$12bcd - $12ba7 + +Func_12bcd: ; 12bcd (4:6bcd) +INCBIN "baserom.gbc",$12bcd,$12c05 - $12bcd Func_12c05: ; 12c05 (4:6c05) push hl @@ -1236,4 +1269,8 @@ Func_12c4f: ; 12c4f (4:6c4f) farcall Func_8025b ret -INCBIN "baserom.gbc",$12c5e,$14000 - $12c5e
\ No newline at end of file +Func_12c5e: ; 12c5e (4:6c5e) +INCBIN "baserom.gbc",$12c5e,$131b3 - $12c5e + +Func_131b3: ; 131b3 (4:71b3) +INCBIN "baserom.gbc",$131b3,$14000 - $131b3
\ No newline at end of file diff --git a/engine/bank7.asm b/engine/bank7.asm index 8258a67..7951bfe 100755 --- a/engine/bank7.asm +++ b/engine/bank7.asm @@ -376,7 +376,28 @@ MapSongs: ; 1c374 (7:4374) db $3A,$3B,$00,$0A,$18,MUSIC_HALLOFHONOR ; HALL_OF_HONOR Func_1c440: ; 1c440 (7:4440) -INCBIN "baserom.gbc",$1c440,$1d078 - $1c440 +INCBIN "baserom.gbc",$1c440,$1c485 - $1c440 + +Func_1c485: ; 1c485 (7:4485) +INCBIN "baserom.gbc",$1c485,$1c58e - $1c485 + +Func_1c58e: ; 1c58e (7:458e) +INCBIN "baserom.gbc",$1c58e,$1c5e9 - $1c58e + +Func_1c5e9: ; 1c5e9 (7:45e9) +INCBIN "baserom.gbc",$1c5e9,$1c6f8 - $1c5e9 + +Func_1c6f8: ; 1c6f8 (7:46f8) +INCBIN "baserom.gbc",$1c6f8,$1c72e - $1c6f8 + +Func_1c72e: ; 1c72e (7:472e) +INCBIN "baserom.gbc",$1c72e,$1c768 - $1c72e + +Func_1c768: ; 1c768 (7:4768) +INCBIN "baserom.gbc",$1c768,$1c82e - $1c768 + +Func_1c82e: ; 1c82e (7:482e) +INCBIN "baserom.gbc",$1c82e,$1d078 - $1c82e Func_1d078: ; 1d078 (7:5078) INCBIN "baserom.gbc",$1d078,$1d306 - $1d078 diff --git a/engine/home.asm b/engine/home.asm index 426f2df..992aab1 100755 --- a/engine/home.asm +++ b/engine/home.asm @@ -249,7 +249,10 @@ Func_028a: ; 028a (0:028a) ret Func_02b9: ; 02b9 (0:02b9) -INCBIN "baserom.gbc",$02b9,$02dd - $02b9 +INCBIN "baserom.gbc",$02b9,$02c2 - $02b9 + +Func_02c2: ; 02c2 (0:02c2) +INCBIN "baserom.gbc",$02c2,$02dd - $02c2 Func_02dd: ; 02dd (0:02dd) ld a, [$ffff] @@ -417,9 +420,18 @@ Func_03ec: ; 03ec (0:03ec) dec b jr nz, .asm_3fe ret -; 0x404 -INCBIN "baserom.gbc",$0404,$042d - $0404 +Func_0404: ; 0404 (0:0404) +INCBIN "baserom.gbc",$0404,$040c - $0404 + +Func_040c: ; 040c (0:040c) +INCBIN "baserom.gbc",$040c,$0423 - $040c + +Func_0423: ; 0423 (0:0423) +INCBIN "baserom.gbc",$0423,$0428 - $0423 + +Func_0428: ; 0428 (0:0428) +INCBIN "baserom.gbc",$0428,$042d - $0428 Func_042d: ; 042d (0:042d) ld a, [$cabf] @@ -1036,7 +1048,10 @@ Func_0879: ; 0879 (0:0879) ret ; 0x88f -INCBIN "baserom.gbc",$088f,$099c - $088f +INCBIN "baserom.gbc",$088f,$089b - $088f + +Func_089b: ; 089b (0:089b) +INCBIN "baserom.gbc",$089b,$099c - $089b Func_099c: ; 099c (0:099c) xor a @@ -1939,8 +1954,8 @@ Func_21f2: ; 21f2 (0:21f2) ld [$cd09], a xor a ret -; 0x2275 +Func_2275: ; 2275 (0:2275) INCBIN "baserom.gbc",$2275,$2298 - $2275 Func_2298: ; 2298 (0:2298) @@ -2382,7 +2397,10 @@ Func_256d: ; 256d (0:256d) ret ; 0x2589 -INCBIN "baserom.gbc",$2589,$26da - $2589 +INCBIN "baserom.gbc",$2589,$264b - $2589 + +Func_264b: ; 264b (0:264b) +INCBIN "baserom.gbc",$264b,$26da - $264b Func_26da: ; 26da (0:26da) ld hl, $cd0f @@ -2900,7 +2918,10 @@ Func_302c: ; 302c (0:302c) ret ; 0x3055 -INCBIN "baserom.gbc",$3055,$3189 - $3055 +INCBIN "baserom.gbc",$3055,$307f - $3055 + +Unknown_307f: ; 307f (0:307f) +INCBIN "baserom.gbc",$307f,$3189 - $307f Func_3189: ; 3189 (0:3189) ld hl, PointerTable_3190 @@ -3047,7 +3068,10 @@ Func_37a0: ; 37a0 (0:37a0) ret ; 0x37a5 -INCBIN "baserom.gbc",$37a5,$383d - $37a5 +INCBIN "baserom.gbc",$37a5,$380e - $37a5 + +Func_380e: ; 380e (0:380e) +INCBIN "baserom.gbc",$380e,$383d - $380e Func_383d: ; 383d (0:383d) ld a, $1 @@ -3102,7 +3126,10 @@ Func_38fb: ; 38fb (0:38fb) INCBIN "baserom.gbc",$38fb,$3911 - $38fb Func_3911: ; 3911 (0:3911) -INCBIN "baserom.gbc",$3911,$395a - $3911 +INCBIN "baserom.gbc",$3911,$3927 - $3911 + +Func_3927: ; 3927 (0:3927) +INCBIN "baserom.gbc",$3927,$395a - $3927 Func_395a: ; 395a (0:395a) ld a, [$ff80] @@ -3113,18 +3140,33 @@ Func_395a: ; 395a (0:395a) pop af call BankswitchHome ret -; 0x396b -INCBIN "baserom.gbc",$396b,$397b - $396b +Unknown_396b: ; 396b (0:396b) +INCBIN "baserom.gbc",$396b,$3973 - $396b + +Unknown_3973: ; 3973 (0:3973) +INCBIN "baserom.gbc",$3973,$397b - $3973 Unknown_397b: ; 397b (0:397b) -INCBIN "baserom.gbc",$397b,$39fc - $397b +INCBIN "baserom.gbc",$397b,$3997 - $397b + +Func_3997: ; 3997 (0:3997) +INCBIN "baserom.gbc",$3997,$39ad - $3997 + +Func_39ad: ; 39ad (0:39ad) +INCBIN "baserom.gbc",$39ad,$39c3 - $39ad + +Func_39c3: ; 39c3 (0:39c3) +INCBIN "baserom.gbc",$39c3,$39fc - $39c3 Func_39fc: ; 39fc (0:39fc) INCBIN "baserom.gbc",$39fc,$3a40 - $39fc Func_3a40: ; 3a40 (0:3a40) -INCBIN "baserom.gbc",$3a40,$3abd - $3a40 +INCBIN "baserom.gbc",$3a40,$3a5e - $3a40 + +Func_3a5e: ; 3a5e (0:3a5e) +INCBIN "baserom.gbc",$3a5e,$3abd - $3a5e Func_3abd: ; 3abd (0:3abd) push bc @@ -3190,7 +3232,13 @@ Func_3aed: ; 3aed (0:3aed) jp [hl] ; 0x3b11 -INCBIN "baserom.gbc",$3b11,$3bf5 - $3b11 +INCBIN "baserom.gbc",$3b11,$3bd2 - $3b11 + +Func_3bd2: ; 3bd2 (0:3bd2) +INCBIN "baserom.gbc",$3bd2,$3bdb - $3bd2 + +Func_3bdb: ; 3bdb (0:3bdb) +INCBIN "baserom.gbc",$3bdb,$3bf5 - $3bdb Func_3bf5: ; 3bf5 (0:3bf5) ld a, [$ff80] @@ -3209,7 +3257,10 @@ Func_3bf5: ; 3bf5 (0:3bf5) ret ; 0x3c10 -INCBIN "baserom.gbc",$3c10,$3c48 - $3c10 +INCBIN "baserom.gbc",$3c10,$3c45 - $3c10 + +Func_3c45: ; 3c45 (0:3c45) +INCBIN "baserom.gbc",$3c45,$3c48 - $3c45 Func_3c48: ; 3c48 (0:3c48) INCBIN "baserom.gbc",$3c48,$3c5a - $3c48 |