From af333e112a76c8ddf92e104f92e190c5d0f8e01c Mon Sep 17 00:00:00 2001 From: "U-Fish-PC\\Daniel" Date: Tue, 22 Apr 2014 08:44:13 -0400 Subject: Misc disassembling --- engine/bank1.asm | 5 +- engine/bank3.asm | 20 +- engine/bank4.asm | 884 ++++++++++++++++++++++++++++++++++++++++++++++++ engine/bank7.asm | 8 +- engine/home.asm | 90 ++++- engine/music1.asm | 8 +- engine/music2.asm | 8 +- engine/overworldmap.asm | 780 ------------------------------------------ macros.asm | 24 +- main.asm | 9 +- 10 files changed, 1023 insertions(+), 813 deletions(-) create mode 100755 engine/bank4.asm delete mode 100755 engine/overworldmap.asm diff --git a/engine/bank1.asm b/engine/bank1.asm index 617b70e..5856f5a 100755 --- a/engine/bank1.asm +++ b/engine/bank1.asm @@ -39,4 +39,7 @@ Func_4050: ; 4050 (1:4050) ret Func_405a: ; 405a (1:405a) -INCBIN "baserom.gbc",$405a,$8000 - $405a \ No newline at end of file +INCBIN "baserom.gbc",$405a,$7571 - $405a + +Func_7571: ; 7571 (1:7571) +INCBIN "baserom.gbc",$7571,$8000 - $7571 \ No newline at end of file diff --git a/engine/bank3.asm b/engine/bank3.asm index abc7497..ecabee2 100755 --- a/engine/bank3.asm +++ b/engine/bank3.asm @@ -1,4 +1,17 @@ -INCBIN "baserom.gbc",$c000,$c5d5 - $c000 +Func_c000: ; c000 (3:4000) +INCBIN "baserom.gbc",$c000,$c1a4 - $c000 + +Func_c1a4: ; c1a4 (3:41a4) +INCBIN "baserom.gbc",$c1a4,$c1b1 - $c1a4 + +Func_c1b1: ; c1b1 (3:41b1) +INCBIN "baserom.gbc",$c1b1,$c1ed - $c1b1 + +Func_c1ed: ; c1ed (3:41ed) +INCBIN "baserom.gbc",$c1ed,$c1f8 - $c1ed + +Func_c1f8: ; c1f8 (3:41f8) +INCBIN "baserom.gbc",$c1f8,$c5d5 - $c1f8 Func_c5d5: ; c5d5 (3:45d5) push hl @@ -31,7 +44,10 @@ Func_c5e9: ; c5e9 (3:45e9) ret ; 0xc5fe -INCBIN "baserom.gbc",$c5fe,$ca6c - $c5fe +INCBIN "baserom.gbc",$c5fe,$c9cb - $c5fe + +Func_c9cb: ; c9cb (3:49cb) +INCBIN "baserom.gbc",$c9cb,$ca6c - $c9cb Func_ca6c: ; ca6c (3:4a6c) push hl diff --git a/engine/bank4.asm b/engine/bank4.asm new file mode 100755 index 0000000..18a1cbd --- /dev/null +++ b/engine/bank4.asm @@ -0,0 +1,884 @@ +INCBIN "baserom.gbc",$10000,$10e55 - $10000 + +Func_10e55: ; 10e55 (4:4e55) + ld a, [$d336] + ld [$d4cf], a + ld a, [$d33e] + or a + jr nz, .asm_10e65 + call Func_10e71 + ret +.asm_10e65 + cp $2 + jr z, .asm_10e6d + call Func_11060 + ret +.asm_10e6d + call LoadOverworldMapSelection + ret + +Func_10e71: ; 10e71 (4:4e71) + ld a, [$ff91] + and $f0 + jr z, .asm_10e83 + farcall Func_c5d5 + ld [$d334], a + call Func_10e97 + jr .asm_10e96 +.asm_10e83 + ld a, [$ff91] + and $1 + jr z, .asm_10e96 + ld a, $2 + call Func_3796 + call Func_11016 + call Func_11024 + jr .asm_10e96 +.asm_10e96 + ret + +Func_10e97: ; 10e97 (4:4e97) + push hl + pop hl + ld a, [$d32e] + rlca + rlca + ld c, a + ld a, [$d334] + add c + ld c, a + ld b, $0 + ld hl, Unknown_10ebc + add hl, bc + ld a, [hl] + or a + jr z, .asm_10eb9 + ld [$d32e], a + call Func_10f2e + ld a, $1 + call Func_3796 +.asm_10eb9 + pop bc + pop hl + ret + +Unknown_10ebc: ; 10ebc (4:4ebc) +INCBIN "baserom.gbc",$10ebc,$10efd - $10ebc + +Func_10efd: ; 10efd (4:4efd) + push hl + push de + rlca + ld e, a + ld d, $0 + ld hl, Unknown_10f14 + add hl, de + pop de + ld a, [hli] + add $8 + add d + ld d, a + ld a, [hl] + add $10 + add e + ld e, a + pop hl + ret + +Unknown_10f14: ; 10f14 (4:4f14) +INCBIN "baserom.gbc",$10f14,$10f2e - $10f14 + +Func_10f2e: ; 10f2e (4:4f2e) + push hl + push de + ld de, $0101 + call Func_22ae + call Func_10f4a + rlca + ld e, a + ld d, $0 + ld hl, Unknown_397b + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call Func_2c29 + pop de + pop hl + ret + +Func_10f4a: ; 10f4a (4:4f4a) + push bc + ld a, [$d32e] + cp $2 + jr nz, .asm_10f5f + ld c, a + ld a, $1e + farcall Func_ca6c + or a + ld a, c + jr nz, .asm_10f5f + ld a, $d +.asm_10f5f + pop bc + ret + +LoadOverworldMapSelection: ; 10f61 (4:4f61) + push hl + push bc + ld a, [$d32e] + rlca + rlca + ld c, a + ld b, $0 + ld hl, OverworldMapIndexes + add hl, bc + ld a, [hli] + ld [$d0bb], a + ld a, [hli] + ld [$d0bc], a + ld a, [hli] + ld [$d0bd], a + ld a, $0 + ld [$d0be], a + ld hl, $d0b4 + set 4, [hl] + pop bc + pop hl + ret + +; each entry in the overworld map is four bytes +; 1: map id +; 2: player's x coordinate when entering the map +; 2: player's y coordinate when entering the map +; 4: 00 +OverworldMapIndexes: ; 10f88 (4:4f88) + db $00,$00,$00,$00 + db MASON_LABORATORY, $0E,$1A,$00 + db ISHIHARAS_HOUSE, $08,$14,$00 + db FIGHTING_CLUB_ENTRANCE, $08,$0E,$00 + db ROCK_CLUB_ENTRANCE, $08,$0E,$00 + db WATER_CLUB_ENTRANCE, $08,$0E,$00 + db LIGHTNING_CLUB_ENTRANCE,$08,$0E,$00 + db GRASS_CLUB_ENTRANCE, $08,$0E,$00 + db PSYCHIC_CLUB_ENTRANCE, $08,$0E,$00 + db SCIENCE_CLUB_ENTRANCE, $08,$0E,$00 + db FIRE_CLUB_ENTRANCE, $08,$0E,$00 + db CHALLENGE_HALL_ENTRANCE,$08,$0E,$00 + db POKEMON_DOME_ENTRANCE, $0E,$0E,$00 + +Func_10fbc: ; 10fbc (4:4fbc) XXXX + ld a, $25 + farcall Func_1299f + ld c, $2 + call Func_3dbf + ld a, $80 + ld [hli], a + ld a, $10 + ld [hl], a + ld b, $34 + ld a, [$cab4] + cp $2 + jr nz, .asm_10fd8 + ld b, $37 +.asm_10fd8 + ld a, b + farcall Func_12ab5 + ret + +Func_10fde: ; 10fde (4:4fde) XXXX + ld a, [$d32e] + ld [$d33d], a + xor a + ld [$d33e], a + ld a, $25 + call Func_1299f + ld a, [$d4cf] + ld [$d33b], a + ld b, $35 + ld a, [$cab4] + cp $2 + jr nz, .asm_10ffe + ld b, $38 +.asm_10ffe + ld a, b + ld [$d33c], a + call Func_12ab5 + ld a, $3e + farcall Func_ca6c + or a + jr nz, .asm_11015 + ld c, $f + call Func_3dbf + set 7, [hl] +.asm_11015 + ret + +Func_11016: ; 11016 (4:5016) + ld a, [$d33b] + ld [$d4cf], a + ld a, [$d33c] + inc a + call Func_12ab5 + ret + +Func_11024: ; 11024 (4:5024) + ld a, $57 + call Func_3796 + ld a, [$d336] + ld [$d4cf], a + ld c, $f + call Func_3dbf + set 2, [hl] + ld hl, Unknown_1229f + ld a, [$d33d] + dec a + add a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d32e] + dec a + add a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + ld [$d33f], a + ld a, [hl] + ld [$d340], a + ld a, $1 + ld [$d33e], a + xor a + ld [$d341], a + ret + +Func_11060: ; 11060 (4:5060) + ld a, [$d336] + ld [$d4cf], a + ld a, [$d341] + or a + jp nz, Func_11184 + ld a, [$d33f] + ld l, a + ld a, [$d340] + ld h, a + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + and b + cp $ff + jr z, .asm_110a0 + ld a, c + or b + jr nz, .asm_11094 + ld a, [$d33d] + ld e, a + ld a, [$d32e] + cp e + jr z, .asm_110a0 + ld de, $0000 + call Func_10efd + ld b, d + ld c, e +.asm_11094 + ld a, l + ld [$d33f], a + ld a, h + ld [$d340], a + call Func_110a6 + ret +.asm_110a0 + ld a, $2 + ld [$d33e], a + ret + +Func_110a6: ; 110a6 (4:50a6) + push hl + push bc + ld c, $2 + call Func_3dbf + pop bc + ld a, b + sub [hl] + ld [$d343], a + ld a, $0 + sbc $0 + ld [$d344], a + inc hl + ld a, c + sub [hl] + ld [$d345], a + ld a, $0 + sbc $0 + ld [$d346], a + ld a, [$d343] + ld b, a + ld a, [$d344] + bit 7, a + jr z, .asm_110d8 + ld a, [$d343] + cpl + inc a + ld b, a +.asm_110d8 + ld a, [$d345] + ld c, a + ld a, [$d346] + bit 7, a + jr z, .asm_110e9 + ld a, [$d345] + cpl + inc a + ld c, a +.asm_110e9 + ld a, b + cp c + jr c, .asm_110f2 + call Func_11102 + jr .asm_110f5 +.asm_110f2 + call Func_1113e +.asm_110f5 + xor a + ld [$d347], a + ld [$d348], a + farcall Func_c5e9 + pop hl + ret + +Func_11102: ; 11102 (4:5102) + ld a, b + ld [$d341], a + ld e, a + ld d, $0 + ld hl, $d343 + xor a + ld [hli], a + bit 7, [hl] + jr z, .asm_11115 + dec a + jr .asm_11116 +.asm_11115 + inc a +.asm_11116 + ld [hl], a + ld b, c + ld c, $0 + call Func_3c5a + ld a, [$d346] + bit 7, a + jr z, .asm_11127 + call Func_11179 +.asm_11127 + ld a, c + ld [$d345], a + ld a, b + ld [$d346], a + ld hl, $d344 + ld a, $1 + bit 7, [hl] + jr z, .asm_1113a + ld a, $3 +.asm_1113a + ld [$d334], a + ret + +Func_1113e: ; 1113e (4:513e) + ld a, c + ld [$d341], a + ld e, a + ld d, $0 + ld hl, $d345 + xor a + ld [hli], a + bit 7, [hl] + jr z, .asm_11151 + dec a + jr .asm_11152 +.asm_11151 + inc a +.asm_11152 + ld [hl], a + ld c, $0 + call Func_3c5a + ld a, [$d344] + bit 7, a + jr z, .asm_11162 + call Func_11179 +.asm_11162 + ld a, c + ld [$d343], a + ld a, b + ld [$d344], a + ld hl, $d346 + ld a, $2 + bit 7, [hl] + jr z, .asm_11175 + ld a, $0 +.asm_11175 + ld [$d334], a + ret + +Func_11179: ; 11179 (4:5179) + ld a, c + cpl + add $1 + ld c, a + ld a, b + cpl + adc $0 + ld b, a + ret + +Func_11184: ; 11184 (4:5184) + ld a, [$d347] + ld d, a + ld a, [$d348] + ld e, a + ld c, $2 + call Func_3dbf + ld a, [$d343] + add d + ld d, a + ld a, [$d344] + adc [hl] + ld [hl], a + inc hl + ld a, [$d345] + add e + ld e, a + ld a, [$d346] + adc [hl] + ld [hl], a + ld a, d + ld [$d347], a + ld a, e + ld [$d348], a + ld hl, $d341 + dec [hl] + ret +; 0x111b3 + +INCBIN "baserom.gbc",$111b3,$11320 - $111b3 + +Func_11320: ; 11320 (4:5320) +INCBIN "baserom.gbc",$11320,$1217b - $11320 + +Unknown_1217b: ; 1217b (4:617b) +INCBIN "baserom.gbc",$1217b,$1229f - $1217b + +Unknown_1229f: ; 1229f (4:629f) +INCBIN "baserom.gbc",$1229f,$126d1 - $1229f + +Func_126d1: ; 126d1 (4:66d1) + call Func_099c + ld hl, $cac0 + inc [hl] + farcall Func_70018 + ld a, $ff + ld [$d627], a +.asm_126e1 + ld a, $c2 + ld [$ff97], a + farcall Func_c1f8 + farcall Func_1d078 + ld a, [$d628] + ld hl, PointerTable_126fc + call JumpToFunctionInTable + jr c, .asm_126e1 + jr Func_126d1 + + scf + ret + +PointerTable_126fc + dw Func_12768 + dw Func_12741 + dw Func_12704 + dw Func_1277e + +Func_12704: ; 12704 (4:6704) + farcall Func_c1b1 + call Func_128a9 + farcall Func_1996e + call Func_07b6 + ld a, [$a007] + ld [$d421], a + ld a, [$a006] + ld [$ce47], a + call Func_07be + ld a, $0 + call Func_3785 + farcall Func_70000 + ld a, $9 + ld [$d111], a + call Func_39fc + farcall Func_1d306 + ld a, $0 + ld [$d0b5], a + rst $28 + db $03 + dw Func_383d + or a + ret + +Func_12741: ; 12741 (4:6741) + ld a, $0 + call Func_3785 + call Func_11320 + jr nc, Func_12704 + farcall Func_c1ed + farcall Func_70000 + call Func_07b6 + xor a + ld [$ba44], a + call Func_07be + ld a, $0 + ld [$d0b5], a + rst $28 + db $03 + dw Func_383d + or a + ret + +Func_12768: ; 12768 (4:6768) + ld a, $8 + call Func_3785 + bank1call Func_7571 + farcall Func_c1a4 + call Func_3c48 + ld a, $0 + call Func_3785 + scf + ret + +Func_1277e: ; 1277e (4:677e) + ld a, $0 + call Func_3785 + farcall Func_c9cb + rst $28 + db $04 + dw Func_3a40 + farcall Func_70000 + ld a, $5 + ld [$d0b5], a + rst $28 + db $03 + dw Func_383d + or a + ret +; 0x1279a + +INCBIN "baserom.gbc",$1279a,$128a9 - $1279a + +Func_128a9: ; 128a9 (4:68a9) +INCBIN "baserom.gbc",$128a9,$1299f - $128a9 + +Func_1299f: ; 1299f (4:699f) + push af + ld a, [$d5d7] + or a + jr z, .asm_129a8 + pop af + ret +.asm_129a8 + pop af + push bc + push hl + call Func_12c05 + ld [$d5d3], a + xor a + ld [$d4cf], a + call Func_3db7 + ld bc, $0010 +.asm_129bb + ld a, [hl] + or a + jr z, .asm_129cf + add hl, bc + ld a, [$d4cf] + inc a + ld [$d4cf], a + cp $10 + jr nz, .asm_129bb + rst $38 + scf + jr .asm_129d6 +.asm_129cf + ld a, $1 + ld [hl], a + call Func_129d9 + or a +.asm_129d6 + pop hl + pop bc + ret + +Func_129d9: ; 129d9 (4:69d9) + push hl + push bc + push hl + inc hl + ld c, $f + xor a +.asm_129e0 + ld [hli], a + dec c + jr nz, .asm_129e0 + pop hl + ld bc, $0004 + add hl, bc + ld a, [$d5d3] + ld [hli], a + ld a, $ff + ld [hl], a + ld bc, $0009 + add hl, bc + ld a, $ff + ld [hl], a + pop bc + pop hl + ret +; 0x129fa + +INCBIN "baserom.gbc",$129fa,$12ab5 - $129fa + +Func_12ab5: ; 12ab5 (4:6ab5) + push hl + push af + ld c, $5 + call Func_3dbf + pop af + cp [hl] + pop hl + ret z + push hl + call Func_12ae2 + call Func_12b13 + pop hl + ret +; 0x12ac9 + +INCBIN "baserom.gbc",$12ac9,$12ae2 - $12ac9 + +Func_12ae2: ; 12ae2 (4:6ae2) + push bc + push af + call Func_3db7 + pop af + push hl + ld bc, $0005 + add hl, bc + ld [hli], a + push hl + ld l, $6 + farcall Func_8020f + farcall Func_80229 + pop hl + ld a, [$d4c6] + ld [hli], a + ld a, [$d4c4] + ld [hli], a + ld c, a + ld a, [$d4c5] + ld [hli], a + ld b, a + ld a, $3 + add c + ld [hli], a + ld a, $0 + adc b + ld [hli], a + pop hl + pop bc + ret + +Func_12b13: ; 12b13 (4:6b13) + push bc + push de + push hl +.asm_12b16 + push hl + ld bc, $0006 + add hl, bc + ld a, [hli] + ld [$d4c6], a + inc hl + inc hl + ld a, [hl] + ld [$d4c4], a + add $4 + ld [hli], a + ld a, [hl] + ld [$d4c5], a + adc $0 + ld [hl], a + ld de, $d23e + ld bc, $0004 + call Func_3bf5 + pop hl + ld de, $d23e + ld a, [de] + call Func_12b6a + inc de + ld a, [de] + call Func_12b89 + jr c, .asm_12b16 + inc de + ld bc, $0002 + add hl, bc + push hl + ld bc, $000d + add hl, bc + ld b, [hl] + pop hl + ld a, [de] + bit 0, b + jr z, .asm_12b5a + cpl + inc a +.asm_12b5a + add [hl] + ld [hli], a + inc de + ld a, [de] + bit 1, b + jr z, .asm_12b64 + cpl + inc a +.asm_12b64 + add [hl] + ld [hl], a + pop hl + pop de + pop bc + ret + +Func_12b6a: ; 12b6a (4:6b6a) + ld [$d4ca], a + push hl + push bc + push de + push hl + ld bc, $0006 + add hl, bc + ld a, [hli] + ld [$d4c6], a + ld a, [hli] + ld [$d4c4], a + ld a, [hli] + ld [$d4c5], a + pop hl + call Func_3d72 + pop de + pop bc + pop hl + ret + +Func_12b89: ; 12b89 (4:6b89) + push hl + push bc + ld bc, $000e + add hl, bc + ld [hl], a + or a + jr nz, .asm_12ba4 + ld bc, $fff9 + add hl, bc + ld a, [hli] + add $3 + ld c, a + ld a, [hli] + adc $0 + ld b, a + ld a, c + ld [hli], a + ld a, b + ld [hl], a + scf +.asm_12ba4 + pop bc + pop hl + ret +; 0x12ba7 + +INCBIN "baserom.gbc",$12ba7,$12c05 - $12ba7 + +Func_12c05: ; 12c05 (4:6c05) + push hl + push bc + push de + ld b, a + ld d, $0 + ld a, [$d618] + ld c, a + ld hl, $d5d8 + or a + jr z, .asm_12c22 +.asm_12c15 + inc hl + ld a, [hl] + cp b + jr z, .asm_12c3a + inc hl + ld a, [hli] + add [hl] + ld d, a + inc hl + dec c + jr nz, .asm_12c15 +.asm_12c22 + ld a, [$d618] + cp $10 + jr nc, .asm_12c48 + inc a + ld [$d618], a + inc hl + push hl + ld a, b + ld [hli], a + call Func_12c4f + push af + ld a, d + ld [hli], a + pop af + ld [hl], a + pop hl +.asm_12c3a + dec hl + inc [hl] + inc hl + inc hl + ld a, [hli] + add [hl] + cp $81 + jr nc, .asm_12c48 + ld a, d + or a + jr .asm_12c4b +.asm_12c48 + rst $38 + xor a + scf +.asm_12c4b + pop de + pop bc + pop hl + ret + +Func_12c4f: ; 12c4f (4:6c4f) + push af + xor a + ld [$d4cb], a + ld a, d + ld [$d4ca], a + pop af + farcall Func_8025b + ret + +INCBIN "baserom.gbc",$12c5e,$14000 - $12c5e \ No newline at end of file diff --git a/engine/bank7.asm b/engine/bank7.asm index 2108cdf..25e0772 100755 --- a/engine/bank7.asm +++ b/engine/bank7.asm @@ -375,4 +375,10 @@ MapSongs: ; 1c374 (7:4374) db $36,$37,$00,$0A,$17,MUSIC_POKEMONDOME ; POKEMON_DOME db $3A,$3B,$00,$0A,$18,MUSIC_HALLOFHONOR ; HALL_OF_HONOR -INCBIN "baserom.gbc",$1c440,$20000 - $1c440 \ No newline at end of file +INCBIN "baserom.gbc",$1c440,$1d078 - $1c440 + +Func_1d078: ; 1d078 (7:5078) +INCBIN "baserom.gbc",$1d078,$1d306 - $1d078 + +Func_1d306: ; 1d306 (7:5306) +INCBIN "baserom.gbc",$1d306,$20000 - $1d306 \ No newline at end of file diff --git a/engine/home.asm b/engine/home.asm index f306b64..07d6193 100755 --- a/engine/home.asm +++ b/engine/home.asm @@ -631,7 +631,7 @@ Func_0572: ; 0572 (0:0572) CopyDMAFunction: ; 0593 (0:0593) ld c, $83 - ld b, $a + ld b, JumpToFunctionInTable - DMA ld hl, DMA .asm_59a ld a, [hli] @@ -1036,7 +1036,22 @@ Func_0879: ; 0879 (0:0879) ret ; 0x88f -INCBIN "baserom.gbc",$088f,$09ae - $088f +INCBIN "baserom.gbc",$088f,$099c - $088f + +Func_099c: ; 099c (0:099c) + xor a + ld [$cab5], a + ld hl, $ca00 + ld c, $28 + xor a +.asm_9a6 + ld [hli], a + ld [hli], a + inc hl + inc hl + dec c + jr nz, .asm_9a6 + ret ; this function affects the stack so that it returns to the pointer following the rst call ; similar to rst 28, except this always loads bank 1 @@ -3002,6 +3017,7 @@ Func_377f: ; 377f (0:377f) Func_3784: ; 3784 (0:3784) xor a +Func_3785: ; 3785 (0:3785) farcall Func_f4006 ret @@ -3028,7 +3044,62 @@ Func_37a0: ; 37a0 (0:37a0) ret ; 0x37a5 -INCBIN "baserom.gbc",$37a5,$395a - $37a5 +INCBIN "baserom.gbc",$37a5,$383d - $37a5 + +Func_383d: ; 383d (0:383d) + ld a, $1 + ld [$cac4], a + ld a, [$ff80] + push af +.asm_3845 + call Func_3855 + jr nc, .asm_3850 + farcall Func_c000 + jr .asm_3845 +.asm_3850 + pop af + call BankswitchHome + ret + +Func_3855: ; 3855 (0:3855) + ld a, [$d0b5] + cp $7 + jr c, .asm_385e + ld a, $6 +.asm_385e + ld hl, PointerTable_3864 + jp JumpToFunctionInTable + +PointerTable_3864: ; 3864 (0:3864) + dw Func_3874 + dw Func_38c0 + dw Func_38a3 + dw Func_3876 + dw Func_3911 + dw Func_38fb + dw Func_38db + dw Func_3874 + +Func_3874: ; 3874 (0:3874) +INCBIN "baserom.gbc",$3874,$3876 - $3874 + +Func_3876: ; 3876 (0:3876) +INCBIN "baserom.gbc",$3876,$38a3 - $3876 + +Func_38a3: ; 38a3 (0:38a3) +INCBIN "baserom.gbc",$38a3,$38c0 - $38a3 + +Func_38c0: ; 38c0 (0:38c0) +INCBIN "baserom.gbc",$38c0,$38db - $38c0 + +Func_38db: ; 38db (0:38db) +INCBIN "baserom.gbc",$38db,$38fb - $38db + +Func_38fb: ; 38fb (0:38fb) +INCBIN "baserom.gbc",$38fb,$3911 - $38fb + +Func_3911: ; 3911 (0:3911) +INCBIN "baserom.gbc",$3911,$395a - $3911 Func_395a: ; 395a (0:395a) ld a, [$ff80] @@ -3044,7 +3115,13 @@ Func_395a: ; 395a (0:395a) INCBIN "baserom.gbc",$396b,$397b - $396b Unknown_397b: ; 397b (0:397b) -INCBIN "baserom.gbc",$397b,$3aed - $397b +INCBIN "baserom.gbc",$397b,$39fc - $397b + +Func_39fc: ; 39fc (0:39fc) +INCBIN "baserom.gbc",$39fc,$3a40 - $39fc + +Func_3a40: ; 3a40 (0:3a40) +INCBIN "baserom.gbc",$3a40,$3aed - $3a40 Func_3aed: ; 3aed (0:3aed) ld hl, $d413 @@ -3093,7 +3170,10 @@ Func_3bf5: ; 3bf5 (0:3bf5) ret ; 0x3c10 -INCBIN "baserom.gbc",$3c10,$3c5a - $3c10 +INCBIN "baserom.gbc",$3c10,$3c48 - $3c10 + +Func_3c48: ; 3c48 (0:3c48) +INCBIN "baserom.gbc",$3c48,$3c5a - $3c48 Func_3c5a: ; 3c5a (0:3c5a) ld hl, $0000 diff --git a/engine/music1.asm b/engine/music1.asm index cc7c021..3f420f5 100755 --- a/engine/music1.asm +++ b/engine/music1.asm @@ -610,9 +610,9 @@ Music1_CommandTable: ; f442c (3d:442c) dw Music1_end dw Music1_musicdc dw Music1_MainLoop - dw Music1_endMainLoop + dw Music1_EndMainLoop dw Music1_Loop - dw Music1_endLoop + dw Music1_EndLoop dw Music1_jp dw Music1_call dw Music1_ret @@ -919,7 +919,7 @@ Music1_MainLoop: ; f45ef (3d:45ef) ld [hl], d jp Music1_PlayNextNote_pop -Music1_endMainLoop: ; f45fd (3d:45fd) +Music1_EndMainLoop: ; f45fd (3d:45fd) pop hl ld hl, $dd9d add hl, bc @@ -946,7 +946,7 @@ Music1_Loop: ; f4609 (3d:4609) call Music1_SetReturnAddress jp Music1_PlayNextNote_pop -Music1_endLoop: ; f461e (3d:461e) +Music1_EndLoop: ; f461e (3d:461e) call Music1_GetReturnAddress dec hl ld a, [hl] diff --git a/engine/music2.asm b/engine/music2.asm index 88a6943..065fb8d 100755 --- a/engine/music2.asm +++ b/engine/music2.asm @@ -610,9 +610,9 @@ Music2_CommandTable: ; f842c (3e:442c) dw Music2_end dw Music2_musicdc dw Music2_MainLoop - dw Music2_endMainLoop + dw Music2_EndMainLoop dw Music2_Loop - dw Music2_endLoop + dw Music2_EndLoop dw Music2_jp dw Music2_call dw Music2_ret @@ -919,7 +919,7 @@ Music2_MainLoop: ; f85ef (3e:45ef) ld [hl], d jp Music2_PlayNextNote_pop -Music2_endMainLoop: ; f85fd (3e:45fd) +Music2_EndMainLoop: ; f85fd (3e:45fd) pop hl ld hl, $dd9d add hl, bc @@ -946,7 +946,7 @@ Music2_Loop: ; f8609 (3e:4609) call Music2_SetReturnAddress jp Music2_PlayNextNote_pop -Music2_endLoop: ; f861e (3e:461e) +Music2_EndLoop: ; f861e (3e:461e) call Music2_GetReturnAddress dec hl ld a, [hl] diff --git a/engine/overworldmap.asm b/engine/overworldmap.asm deleted file mode 100755 index aa3a189..0000000 --- a/engine/overworldmap.asm +++ /dev/null @@ -1,780 +0,0 @@ -INCBIN "baserom.gbc",$10000,$10e55 - $10000 - -Func_10e55: ; 10e55 (4:4e55) - ld a, [$d336] - ld [$d4cf], a - ld a, [$d33e] - or a - jr nz, .asm_10e65 - call Func_10e71 - ret -.asm_10e65 - cp $2 - jr z, .asm_10e6d - call Func_11060 - ret -.asm_10e6d - call LoadOverworldMapSelection - ret - -Func_10e71: ; 10e71 (4:4e71) - ld a, [$ff91] - and $f0 - jr z, .asm_10e83 - farcall Func_c5d5 - ld [$d334], a - call Func_10e97 - jr .asm_10e96 -.asm_10e83 - ld a, [$ff91] - and $1 - jr z, .asm_10e96 - ld a, $2 - call Func_3796 - call Func_11016 - call Func_11024 - jr .asm_10e96 -.asm_10e96 - ret - -Func_10e97: ; 10e97 (4:4e97) - push hl - pop hl - ld a, [$d32e] - rlca - rlca - ld c, a - ld a, [$d334] - add c - ld c, a - ld b, $0 - ld hl, Unknown_10ebc - add hl, bc - ld a, [hl] - or a - jr z, .asm_10eb9 - ld [$d32e], a - call Func_10f2e - ld a, $1 - call Func_3796 -.asm_10eb9 - pop bc - pop hl - ret - -Unknown_10ebc: ; 10ebc (4:4ebc) -INCBIN "baserom.gbc",$10ebc,$10efd - $10ebc - -Func_10efd: ; 10efd (4:4efd) - push hl - push de - rlca - ld e, a - ld d, $0 - ld hl, Unknown_10f14 - add hl, de - pop de - ld a, [hli] - add $8 - add d - ld d, a - ld a, [hl] - add $10 - add e - ld e, a - pop hl - ret - -Unknown_10f14: ; 10f14 (4:4f14) -INCBIN "baserom.gbc",$10f14,$10f2e - $10f14 - -Func_10f2e: ; 10f2e (4:4f2e) - push hl - push de - ld de, $0101 - call Func_22ae - call Func_10f4a - rlca - ld e, a - ld d, $0 - ld hl, Unknown_397b - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - call Func_2c29 - pop de - pop hl - ret - -Func_10f4a: ; 10f4a (4:4f4a) - push bc - ld a, [$d32e] - cp $2 - jr nz, .asm_10f5f - ld c, a - ld a, $1e - farcall Func_ca6c - or a - ld a, c - jr nz, .asm_10f5f - ld a, $d -.asm_10f5f - pop bc - ret - -LoadOverworldMapSelection: ; 10f61 (4:4f61) - push hl - push bc - ld a, [$d32e] - rlca - rlca - ld c, a - ld b, $0 - ld hl, OverworldMapIndexes - add hl, bc - ld a, [hli] - ld [$d0bb], a - ld a, [hli] - ld [$d0bc], a - ld a, [hli] - ld [$d0bd], a - ld a, $0 - ld [$d0be], a - ld hl, $d0b4 - set 4, [hl] - pop bc - pop hl - ret - -; each entry in the overworld map is four bytes -; 1: map id -; 2: player's x coordinate when entering the map -; 2: player's y coordinate when entering the map -; 4: 00 -OverworldMapIndexes: ; 10f88 (4:4f88) - db $00,$00,$00,$00 - db MASON_LABORATORY, $0E,$1A,$00 - db ISHIHARAS_HOUSE, $08,$14,$00 - db FIGHTING_CLUB_ENTRANCE, $08,$0E,$00 - db ROCK_CLUB_ENTRANCE, $08,$0E,$00 - db WATER_CLUB_ENTRANCE, $08,$0E,$00 - db LIGHTNING_CLUB_ENTRANCE,$08,$0E,$00 - db GRASS_CLUB_ENTRANCE, $08,$0E,$00 - db PSYCHIC_CLUB_ENTRANCE, $08,$0E,$00 - db SCIENCE_CLUB_ENTRANCE, $08,$0E,$00 - db FIRE_CLUB_ENTRANCE, $08,$0E,$00 - db CHALLENGE_HALL_ENTRANCE,$08,$0E,$00 - db POKEMON_DOME_ENTRANCE, $0E,$0E,$00 - -Func_10fbc: ; 10fbc (4:4fbc) XXXX - ld a, $25 - farcall Func_1299f - ld c, $2 - call Func_3dbf - ld a, $80 - ld [hli], a - ld a, $10 - ld [hl], a - ld b, $34 - ld a, [$cab4] - cp $2 - jr nz, .asm_10fd8 - ld b, $37 -.asm_10fd8 - ld a, b - farcall Func_12ab5 - ret - -Func_10fde: ; 10fde (4:4fde) XXXX - ld a, [$d32e] - ld [$d33d], a - xor a - ld [$d33e], a - ld a, $25 - call Func_1299f - ld a, [$d4cf] - ld [$d33b], a - ld b, $35 - ld a, [$cab4] - cp $2 - jr nz, .asm_10ffe - ld b, $38 -.asm_10ffe - ld a, b - ld [$d33c], a - call Func_12ab5 - ld a, $3e - farcall Func_ca6c - or a - jr nz, .asm_11015 - ld c, $f - call Func_3dbf - set 7, [hl] -.asm_11015 - ret - -Func_11016: ; 11016 (4:5016) - ld a, [$d33b] - ld [$d4cf], a - ld a, [$d33c] - inc a - call Func_12ab5 - ret - -Func_11024: ; 11024 (4:5024) - ld a, $57 - call Func_3796 - ld a, [$d336] - ld [$d4cf], a - ld c, $f - call Func_3dbf - set 2, [hl] - ld hl, Unknown_1229f - ld a, [$d33d] - dec a - add a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d32e] - dec a - add a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - ld [$d33f], a - ld a, [hl] - ld [$d340], a - ld a, $1 - ld [$d33e], a - xor a - ld [$d341], a - ret - -Func_11060: ; 11060 (4:5060) - ld a, [$d336] - ld [$d4cf], a - ld a, [$d341] - or a - jp nz, Func_11184 - ld a, [$d33f] - ld l, a - ld a, [$d340] - ld h, a - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - and b - cp $ff - jr z, .asm_110a0 - ld a, c - or b - jr nz, .asm_11094 - ld a, [$d33d] - ld e, a - ld a, [$d32e] - cp e - jr z, .asm_110a0 - ld de, $0000 - call Func_10efd - ld b, d - ld c, e -.asm_11094 - ld a, l - ld [$d33f], a - ld a, h - ld [$d340], a - call Func_110a6 - ret -.asm_110a0 - ld a, $2 - ld [$d33e], a - ret - -Func_110a6: ; 110a6 (4:50a6) - push hl - push bc - ld c, $2 - call Func_3dbf - pop bc - ld a, b - sub [hl] - ld [$d343], a - ld a, $0 - sbc $0 - ld [$d344], a - inc hl - ld a, c - sub [hl] - ld [$d345], a - ld a, $0 - sbc $0 - ld [$d346], a - ld a, [$d343] - ld b, a - ld a, [$d344] - bit 7, a - jr z, .asm_110d8 - ld a, [$d343] - cpl - inc a - ld b, a -.asm_110d8 - ld a, [$d345] - ld c, a - ld a, [$d346] - bit 7, a - jr z, .asm_110e9 - ld a, [$d345] - cpl - inc a - ld c, a -.asm_110e9 - ld a, b - cp c - jr c, .asm_110f2 - call Func_11102 - jr .asm_110f5 -.asm_110f2 - call Func_1113e -.asm_110f5 - xor a - ld [$d347], a - ld [$d348], a - farcall Func_c5e9 - pop hl - ret - -Func_11102: ; 11102 (4:5102) - ld a, b - ld [$d341], a - ld e, a - ld d, $0 - ld hl, $d343 - xor a - ld [hli], a - bit 7, [hl] - jr z, .asm_11115 - dec a - jr .asm_11116 -.asm_11115 - inc a -.asm_11116 - ld [hl], a - ld b, c - ld c, $0 - call Func_3c5a - ld a, [$d346] - bit 7, a - jr z, .asm_11127 - call Func_11179 -.asm_11127 - ld a, c - ld [$d345], a - ld a, b - ld [$d346], a - ld hl, $d344 - ld a, $1 - bit 7, [hl] - jr z, .asm_1113a - ld a, $3 -.asm_1113a - ld [$d334], a - ret - -Func_1113e: ; 1113e (4:513e) - ld a, c - ld [$d341], a - ld e, a - ld d, $0 - ld hl, $d345 - xor a - ld [hli], a - bit 7, [hl] - jr z, .asm_11151 - dec a - jr .asm_11152 -.asm_11151 - inc a -.asm_11152 - ld [hl], a - ld c, $0 - call Func_3c5a - ld a, [$d344] - bit 7, a - jr z, .asm_11162 - call Func_11179 -.asm_11162 - ld a, c - ld [$d343], a - ld a, b - ld [$d344], a - ld hl, $d346 - ld a, $2 - bit 7, [hl] - jr z, .asm_11175 - ld a, $0 -.asm_11175 - ld [$d334], a - ret - -Func_11179: ; 11179 (4:5179) - ld a, c - cpl - add $1 - ld c, a - ld a, b - cpl - adc $0 - ld b, a - ret - -Func_11184: ; 11184 (4:5184) - ld a, [$d347] - ld d, a - ld a, [$d348] - ld e, a - ld c, $2 - call Func_3dbf - ld a, [$d343] - add d - ld d, a - ld a, [$d344] - adc [hl] - ld [hl], a - inc hl - ld a, [$d345] - add e - ld e, a - ld a, [$d346] - adc [hl] - ld [hl], a - ld a, d - ld [$d347], a - ld a, e - ld [$d348], a - ld hl, $d341 - dec [hl] - ret -; 0x111b3 - -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 - -Func_126d1: ; 126d1 (4:66d1) -INCBIN "baserom.gbc",$126d1,$1299f - $126d1 - -Func_1299f: ; 1299f (4:699f) - push af - ld a, [$d5d7] - or a - jr z, .asm_129a8 - pop af - ret -.asm_129a8 - pop af - push bc - push hl - call Func_12c05 - ld [$d5d3], a - xor a - ld [$d4cf], a - call Func_3db7 - ld bc, $0010 -.asm_129bb - ld a, [hl] - or a - jr z, .asm_129cf - add hl, bc - ld a, [$d4cf] - inc a - ld [$d4cf], a - cp $10 - jr nz, .asm_129bb - rst $38 - scf - jr .asm_129d6 -.asm_129cf - ld a, $1 - ld [hl], a - call Func_129d9 - or a -.asm_129d6 - pop hl - pop bc - ret - -Func_129d9: ; 129d9 (4:69d9) - push hl - push bc - push hl - inc hl - ld c, $f - xor a -.asm_129e0 - ld [hli], a - dec c - jr nz, .asm_129e0 - pop hl - ld bc, $0004 - add hl, bc - ld a, [$d5d3] - ld [hli], a - ld a, $ff - ld [hl], a - ld bc, $0009 - add hl, bc - ld a, $ff - ld [hl], a - pop bc - pop hl - ret -; 0x129fa - -INCBIN "baserom.gbc",$129fa,$12ab5 - $129fa - -Func_12ab5: ; 12ab5 (4:6ab5) - push hl - push af - ld c, $5 - call Func_3dbf - pop af - cp [hl] - pop hl - ret z - push hl - call Func_12ae2 - call Func_12b13 - pop hl - ret -; 0x12ac9 - -INCBIN "baserom.gbc",$12ac9,$12ae2 - $12ac9 - -Func_12ae2: ; 12ae2 (4:6ae2) - push bc - push af - call Func_3db7 - pop af - push hl - ld bc, $0005 - add hl, bc - ld [hli], a - push hl - ld l, $6 - farcall Func_8020f - farcall Func_80229 - pop hl - ld a, [$d4c6] - ld [hli], a - ld a, [$d4c4] - ld [hli], a - ld c, a - ld a, [$d4c5] - ld [hli], a - ld b, a - ld a, $3 - add c - ld [hli], a - ld a, $0 - adc b - ld [hli], a - pop hl - pop bc - ret - -Func_12b13: ; 12b13 (4:6b13) - push bc - push de - push hl -.asm_12b16 - push hl - ld bc, $0006 - add hl, bc - ld a, [hli] - ld [$d4c6], a - inc hl - inc hl - ld a, [hl] - ld [$d4c4], a - add $4 - ld [hli], a - ld a, [hl] - ld [$d4c5], a - adc $0 - ld [hl], a - ld de, $d23e - ld bc, $0004 - call Func_3bf5 - pop hl - ld de, $d23e - ld a, [de] - call Func_12b6a - inc de - ld a, [de] - call Func_12b89 - jr c, .asm_12b16 - inc de - ld bc, $0002 - add hl, bc - push hl - ld bc, $000d - add hl, bc - ld b, [hl] - pop hl - ld a, [de] - bit 0, b - jr z, .asm_12b5a - cpl - inc a -.asm_12b5a - add [hl] - ld [hli], a - inc de - ld a, [de] - bit 1, b - jr z, .asm_12b64 - cpl - inc a -.asm_12b64 - add [hl] - ld [hl], a - pop hl - pop de - pop bc - ret - -Func_12b6a: ; 12b6a (4:6b6a) - ld [$d4ca], a - push hl - push bc - push de - push hl - ld bc, $0006 - add hl, bc - ld a, [hli] - ld [$d4c6], a - ld a, [hli] - ld [$d4c4], a - ld a, [hli] - ld [$d4c5], a - pop hl - call Func_3d72 - pop de - pop bc - pop hl - ret - -Func_12b89: ; 12b89 (4:6b89) - push hl - push bc - ld bc, $000e - add hl, bc - ld [hl], a - or a - jr nz, .asm_12ba4 - ld bc, $fff9 - add hl, bc - ld a, [hli] - add $3 - ld c, a - ld a, [hli] - adc $0 - ld b, a - ld a, c - ld [hli], a - ld a, b - ld [hl], a - scf -.asm_12ba4 - pop bc - pop hl - ret -; 0x12ba7 - -INCBIN "baserom.gbc",$12ba7,$12c05 - $12ba7 - -Func_12c05: ; 12c05 (4:6c05) - push hl - push bc - push de - ld b, a - ld d, $0 - ld a, [$d618] - ld c, a - ld hl, $d5d8 - or a - jr z, .asm_12c22 -.asm_12c15 - inc hl - ld a, [hl] - cp b - jr z, .asm_12c3a - inc hl - ld a, [hli] - add [hl] - ld d, a - inc hl - dec c - jr nz, .asm_12c15 -.asm_12c22 - ld a, [$d618] - cp $10 - jr nc, .asm_12c48 - inc a - ld [$d618], a - inc hl - push hl - ld a, b - ld [hli], a - call Func_12c4f - push af - ld a, d - ld [hli], a - pop af - ld [hl], a - pop hl -.asm_12c3a - dec hl - inc [hl] - inc hl - inc hl - ld a, [hli] - add [hl] - cp $81 - jr nc, .asm_12c48 - ld a, d - or a - jr .asm_12c4b -.asm_12c48 - rst $38 - xor a - scf -.asm_12c4b - pop de - pop bc - pop hl - ret - -Func_12c4f: ; 12c4f (4:6c4f) - push af - xor a - ld [$d4cb], a - ld a, d - ld [$d4ca], a - pop af - farcall Func_8025b - ret - -INCBIN "baserom.gbc",$12c5e,$14000 - $12c5e \ No newline at end of file diff --git a/macros.asm b/macros.asm index 122e609..ad8938b 100755 --- a/macros.asm +++ b/macros.asm @@ -20,18 +20,18 @@ emptybank: MACRO ENDM ; notes -C_ EQU $1 -C# EQU $2 -D_ EQU $3 -D# EQU $4 -E_ EQU $5 -F_ EQU $6 -F# EQU $7 -G_ EQU $8 -G# EQU $9 -A_ EQU $A -A# EQU $B -B_ EQU $C +C_ EQU $1 +C# EQU $2 +D_ EQU $3 +D# EQU $4 +E_ EQU $5 +F_ EQU $6 +F# EQU $7 +G_ EQU $8 +G# EQU $9 +A_ EQU $A +A# EQU $B +B_ EQU $C ; instruments bass EQU $1 diff --git a/main.asm b/main.asm index bbfb2be..ada4235 100755 --- a/main.asm +++ b/main.asm @@ -14,7 +14,7 @@ SECTION "bank3",ROMX,BANK[$3] INCLUDE "engine/bank3.asm" SECTION "bank4",ROMX,BANK[$4] -INCLUDE "engine/overworldmap.asm" +INCLUDE "engine/bank4.asm" SECTION "bank5",ROMX,BANK[$5] INCBIN "baserom.gbc",$14000,$4000 @@ -88,7 +88,10 @@ SECTION "bank1B",ROMX,BANK[$1B] emptybank SECTION "bank1C",ROMX,BANK[$1C] -INCBIN "baserom.gbc",$70000,$4000 +Func_70000: ; 70000 (1c:4000) +INCBIN "baserom.gbc",$70000,$70018 - $70000 +Func_70018: ; 70018 (1c:4018) +INCBIN "baserom.gbc",$70018,$74000 - $70018 SECTION "bank1D",ROMX,BANK[$1D] INCBIN "baserom.gbc",$74000,$76668 - $74000 @@ -189,11 +192,9 @@ SECTION "bank3C",ROMX,BANK[$3C] emptybank SECTION "bank3D",ROMX,BANK[$3D] - INCLUDE "engine/music1.asm" SECTION "bank3E",ROMX,BANK[$3E] - INCLUDE "engine/music2.asm" SECTION "bank3F",ROMX,BANK[$3F] -- cgit v1.2.3