diff options
-rwxr-xr-x | constants.asm | 2 | ||||
-rwxr-xr-x | constants/map_constants.asm | 2 | ||||
-rwxr-xr-x | constants/music_constants.asm | 4 | ||||
-rwxr-xr-x | home.asm | 875 | ||||
-rwxr-xr-x | main.asm | 5 | ||||
-rwxr-xr-x | overworldmap.asm | 787 |
6 files changed, 1657 insertions, 18 deletions
diff --git a/constants.asm b/constants.asm new file mode 100755 index 0000000..3f067a9 --- /dev/null +++ b/constants.asm @@ -0,0 +1,2 @@ +INCLUDE "constants/map_constants.asm" +INCLUDE "constants/music_constants.asm"
\ No newline at end of file diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 555591a..65a4925 100755 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -29,6 +29,6 @@ FIRE_CLUB EQU $1B CHALLENGE_HALL_ENTRANCE EQU $1C CHALLENGE_HALL_LOBBY EQU $1D CHALLENGE_HALL EQU $1E -POKEMON_DOME_LOBBY EQU $1F +POKEMON_DOME_ENTRANCE EQU $1F POKEMON_DOME EQU $20 HALL_OF_HONOR EQU $21
\ No newline at end of file diff --git a/constants/music_constants.asm b/constants/music_constants.asm index 4d5a1e7..236c4f2 100755 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -15,8 +15,8 @@ MUSIC_CLUB2 EQU $0D MUSIC_CLUB3 EQU $0E MUSIC_RONALD EQU $0F MUSIC_IMAKUNI EQU $10 -MUSIC_HALLOFHONOR EQU $14 -MUSIC_CREDITS EQU $15 +MUSIC_HALLOFHONOR EQU $11 +MUSIC_CREDITS EQU $12 ;MUSIC_UNUSED13 EQU $13 ;MUSIC_UNUSED14 EQU $14 MUSIC_MATCHSTART1 EQU $15 @@ -59,12 +59,12 @@ Start: ; 0150 (0:0150) call Func_377f call Func_0241 call Func_0ea6 - call Func_0593 + call CopyDMAFunction call Func_080b - ld a, $1 + ld a, BANK(Func_4000) call BankswitchHome ld sp, $e000 - jp $4000 + jp Func_4000 VBlankHandler: ; 019b (0:019b) push af @@ -456,10 +456,10 @@ InitializePalettes: ; 0467 (0:0467) INCBIN "baserom.gbc",$0492,$0593 - $0492 -Func_0593: ; 0593 (0:0593) +CopyDMAFunction: ; 0593 (0:0593) ld c, $83 ld b, $a - ld hl, Func_05a1 + ld hl, DMA .asm_59a ld a, [hli] ld [$ff00+c], a @@ -468,8 +468,8 @@ Func_0593: ; 0593 (0:0593) jr nz, .asm_59a ret -; Func_0593 copies this function to $ff83 -Func_05a1: ; 05a1 (0:05a1) +; CopyDMAFunction copies this function to $ff83 +DMA: ; 05a1 (0:05a1) ld a, $ca ld [$ff46], a ld a, $28 @@ -492,7 +492,86 @@ JumpToFunctionInTable: ; 05ab (0:05ab) jp [hl] ; 0x5b6 -INCBIN "baserom.gbc",$05b6,$07a3 - $05b6 +INCBIN "baserom.gbc",$05b6,$0732 - $05b6 + +CopyData_SaveRegisters: ; 0732 (0:0732) + push hl + push de + push bc + call CopyData + pop bc + pop de + pop hl + ret + +; copies bc bytes from hl to de +CopyData: ; 073c (0:073c) + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, CopyData + ret + +Func_0745: ; 0745 (0:0745) + push hl + push bc + push af + push de + ld e, l + ld d, h + ld hl, [sp+$9] + ld b, [hl] + dec hl + ld c, [hl] + dec hl + ld [hl], b + dec hl + ld [hl], c + ld hl, [sp+$9] + ld a, [$ff80] + ld [hld], a + ld [hl], $0 + ld a, d + rlca + rlca + and $3 + ld b, a + res 7, d + set 6, d + ld l, e + ld h, d + pop de + pop af + add b + call BankswitchHome + pop bc + ret +; 0x76f + +INCBIN "baserom.gbc",$076f,$078e - $076f + +Func_078e: ; 078e (0:078e) + push hl + push de + ld hl, [sp+$7] + ld a, [hld] + call BankswitchHome + dec hl + ld d, [hl] + dec hl + ld e, [hl] + inc hl + inc hl + ld [hl], e + inc hl + ld [hl], d + pop de + pop hl + pop af + ret BankswitchHome: ; 07a3 (0:07a3) ld [$ff80], a @@ -879,7 +958,31 @@ Wait: ; 0c08 (0:0c08) ret ; 0xc19 -INCBIN "baserom.gbc",$0c19,$0c91 - $0c19 +INCBIN "baserom.gbc",$0c19,$0c32 - $0c19 + +Func_0c32: ; 0c32 (0:0c32) + push bc +.asm_c33 + ei + di + ld a, [$ff41] + and $3 + jr nz, .asm_c33 + ld a, [de] + ld [hl], a + ld a, [$ff41] + and $3 + jr nz, .asm_c33 + ei + inc hl + inc de + dec c + jr nz, .asm_c33 + pop bc + ret +; 0xc4b + +INCBIN "baserom.gbc",$0c4b,$0c91 - $0c4b Func_0c91: ; 0c91 (0:0c91) ld a, [$cb74] @@ -1088,7 +1191,582 @@ Func_0ea6: ; 0ea6 (0:0ea6) ret ; 0xebf -INCBIN "baserom.gbc",$0ebf,$3189 - $0ebf +INCBIN "baserom.gbc",$0ebf,$1dca - $0ebf + +Func_1dca: ; 1dca (0:1dca) + ld a, [$cabb] + bit 7, a + jr nz, .asm_1dd8 +.asm_1dd1 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_1dd1 + ret +.asm_1dd8 + jp Func_0c32 + +Func_1ddb: ; 1ddb (0:1ddb) + ld l, e + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + add hl, hl + add hl, hl + ld a, l + add d + ld l, a + ld a, h + adc $98 + ld h, a + ret +; 0x1deb + +INCBIN "baserom.gbc",$1deb,$21c5 - $1deb + +Func_21c5: ; 21c5 (0:21c5) + push de + push bc + call Func_2298 + jr .asm_21e8 +.asm_21cc + cp $5 + jr c, .asm_21d9 + cp $10 + jr nc, .asm_21d9 + call Func_21f2 + jr .asm_21e8 +.asm_21d9 + ld e, a + ld d, [hl] + call Func_2546 + jr nc, .asm_21e1 + inc hl +.asm_21e1 + call Func_22ca + xor a + call Func_21f2 +.asm_21e8 + ld a, [hli] + or a + jr nz, .asm_21cc + call Func_230f + pop bc + pop de + ret + +Func_21f2: ; 21f2 (0:21f2) + or a + jr z, .asm_2241 + cp $e + jr z, .asm_2221 + cp $f + jr z, .asm_2221 + cp $a + jr z, .asm_224d + cp $5 + jr z, .asm_2225 + cp $6 + jr z, .asm_220f + cp $7 + jr z, .asm_2215 + scf + ret +.asm_220f + ld a, $1 + ld [$cd0a], a + ret +.asm_2215 + call Func_230f + xor a + ld [$cd0a], a + ld a, $f + ld [$ffaf], a + ret +.asm_2221 + ld [$ffaf], a + xor a + ret +.asm_2225 + ld a, [$cd0a] + push af + ld a, $1 + ld [$cd0a], a + call Func_230f + pop af + ld [$cd0a], a + ld a, [$ffb0] + or a + jr nz, .asm_2240 + ld a, [hl] + push hl + call Func_22f2 + pop hl +.asm_2240 + inc hl +.asm_2241 + ld a, [$ffae] + or a + ret z + ld b, a + ld a, [$ffac] + cp b + jr z, .asm_224d + xor a + ret +.asm_224d + call Func_230f + ld a, [$cd08] + or a + call z, .asm_2257 +.asm_2257 + xor a + ld [$ffac], a + ld a, [$ffad] + add $20 + ld b, a + ld a, [$ffaa] + and $e0 + add b + ld [$ffaa], a + ld a, [$ffab] + adc $0 + ld [$ffab], a + ld a, [$cd09] + inc a + ld [$cd09], a + xor a + ret +; 0x2275 + +INCBIN "baserom.gbc",$2275,$2298 - $2275 + +Func_2298: ; 2298 (0:2298) + xor a + ld [$cd0a], a + ld [$ffac], a + ld [$cd0b], a + ld a, $f + ld [$ffaf], a + ret +; 0x22a6 + +INCBIN "baserom.gbc",$22a6,$22ae - $22a6 + +Func_22ae: ; 22ae (0:22ae) + push hl + ld a, d + ld [$ffad], a + xor a + ld [$ffae], a + ld [$cd09], a + call Func_1ddb + ld a, l + ld [$ffaa], a + ld a, h + ld [$ffab], a + call Func_2298 + xor a + ld [$cd0b], a + pop hl + ret + +Func_22ca: ; 22ca (0:22ca) + push hl + push de + push bc + ld a, [$ffb0] + and $1 + jr nz, .asm_22ed + call Func_2325 + jr c, .asm_22de + or a + jr nz, .asm_22e9 + call Func_24ac +.asm_22de + ld a, [$ffb0] + and $2 + jr nz, .asm_22e9 + ld a, [$ffa9] + call Func_22f2 +.asm_22e9 + pop bc + pop de + pop hl + ret +.asm_22ed + call Func_235e + jr .asm_22e9 + +Func_22f2: ; 22f2 (0:22f2) + ld [$cd05], a + ld hl, $ffaa + ld e, [hl] + inc hl + ld d, [hl] + inc de + ld [hl], d + dec hl + ld [hl], e + dec de + ld l, e + ld h, d + ld de, $cd05 + ld c, $1 + call Func_1dca + ld hl, $ffac + inc [hl] + ret + +Func_230f: ; 230f (0:230f) + ld a, [$cd0a] + or a + ret z + ld a, [$cd0b] + or a + ret z + push hl + push de + push bc + ld e, $20 + call Func_22ca + pop bc + pop de + pop hl + ret + +Func_2325: ; 2325 (0:2325) + call Func_235e + ret c + or a + ret nz + ld a, [$ffa8] + ld hl, $cd04 + cp [hl] + jr nz, .asm_2345 + ld a, [$ffa9] + ld h, $c8 +.asm_2337 + ld l, a + ld a, [hl] + or a + jr nz, .asm_2337 + ld h, $c9 + ld c, [hl] + ld b, $c8 + xor a + ld [bc], a + jr .asm_234a +.asm_2345 + inc [hl] + jr nz, .asm_2349 + inc [hl] +.asm_2349 + ld l, [hl] +.asm_234a + ld a, [$ffa9] + ld c, a + ld b, $c9 + ld a, l + ld [$ffa9], a + ld [bc], a + ld h, $c8 + ld [hl], c + ld h, $c6 + ld [hl], e + inc h + ld [hl], d + ld b, l + xor a + ret + +Func_235e: ; 235e (0:235e) + ld a, [$cd0a] + or a + jr z, .asm_2376 + call Func_23b1 + ld a, [$cd0b] + ld d, a + or a + jr nz, .asm_2376 + ld a, e + ld [$cd0b], a + ld a, $1 + or a + ret +.asm_2376 + xor a + ld [$cd0b], a + ld a, [$ffa9] + ld l, a +.asm_237d + ld h, $c6 + ld a, [hl] + or a + ret z + cp e + jr nz, .asm_238a + inc h + ld a, [hl] + cp d + jr z, .asm_238f +.asm_238a + ld h, $c8 + ld l, [hl] + jr .asm_237d +.asm_238f + ld a, [$ffa9] + cp l + jr z, .asm_23af + ld c, a + ld b, $c9 + ld a, l + ld [bc], a + ld [$ffa9], a + ld h, $c9 + ld b, [hl] + ld [hl], $0 + ld h, $c8 + ld a, c + ld c, [hl] + ld [hl], a + ld l, b + ld [hl], c + ld h, $c9 + inc c + dec c + jr z, .asm_23af + ld l, c + ld [hl], b +.asm_23af + scf + ret + +Func_23b1: ; 23b1 (0:23b1) + ld a, [$cd0d] + or a + ret z + ld a, e + cp $60 + ret c + cp $7b + ret nc + sub $20 + ld e, a + ret +; 0x23c1 + +INCBIN "baserom.gbc",$23c1,$24ac - $23c1 + +Func_24ac: ; 24ac (0:24ac) + push hl + push de + push bc + ld a, [$cd0a] + or a + jr nz, .asm_24bf + call Func_2510 + call Func_1dca +.asm_24bb + pop bc + pop de + pop hl + ret +.asm_24bf + call Func_24ca + call Func_2518 + call Func_1dca + jr .asm_24bb + +Func_24ca: ; 24ca (0:24ca) + push bc + ld a, [$ff80] + push af + ld a, $1d + call BankswitchHome + push de + ld a, e + ld de, $ccf4 + call Func_24fa + pop de + ld a, d + ld de, $ccf5 + call Func_24fa + ld hl, $ccf4 + ld b, $8 +.asm_24e8 + ld a, [hli] + swap a + or [hl] + dec hl + ld [hli], a + ld [hli], a + dec b + jr nz, .asm_24e8 + call Func_078e + pop bc + ld de, $ccf4 + ret + +Func_24fa: ; 24fa (0:24fa) + sub $20 + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld bc, $6668 + add hl, bc + ld b, $8 +.asm_2508 + ld a, [hli] + ld [de], a + inc de + inc de + dec b + jr nz, .asm_2508 + ret + +Func_2510: ; 2510 (0:2510) + push bc + call Func_256d + call Func_252e + pop bc +Func_2518: ; 2518 (0:2518) + ld hl, $cd07 + ld a, b + xor [hl] + ld h, $0 + ld l, a + add hl, hl + add hl, hl + add hl, hl + add hl, hl + ld a, [$cd06] + ld b, a + ld c, $0 + add hl, bc + ld c, $10 + ret + +Func_252e: ; 252e (0:252e) + ld a, $1d + call Func_0745 + ld de, $ccf4 + push de + ld c, $8 +.asm_2539 + ld a, [hli] + ld [de], a + inc de + ld [de], a + inc de + dec c + jr nz, .asm_2539 + pop de + call Func_078e + ret + +Func_2546: ; 2546 (0:2546) + ld a, [$cd0a] + or a + jr nz, .asm_255f + ld a, e + cp $10 + jr c, .asm_2561 + cp $60 + jr nc, .asm_2565 + ld a, [$ffaf] + cp $f + jr nz, .asm_2565 + ld d, $f + or a + ret +.asm_255f + or a + ret +.asm_2561 + cp $5 + jr c, .asm_2569 +.asm_2565 + ld d, $0 + or a + ret +.asm_2569 + ld e, d + ld d, a + scf + ret + +Func_256d: ; 256d (0:256d) + ld bc, $0280 + ld a, d + cp $e + jr z, .asm_2580 + cp $f + jr nz, .asm_2582 + ld bc, $0000 + ld a, e + sub $10 + ld e, a +.asm_2580 + ld d, $0 +.asm_2582 + ld l, e + ld h, d + add hl, hl + add hl, hl + add hl, hl + add hl, bc + ret +; 0x2589 + +INCBIN "baserom.gbc",$2589,$2c29 - $2589 + +Func_2c29: ; 2c29 (0:2c29) + ld a, [$ff80] + push af + call Func_2ded + call Func_21c5 + pop af + call BankswitchHome + ret +; 0x2c37 + +INCBIN "baserom.gbc",$2c37,$2ded - $2c37 + +Func_2ded: ; 2ded (0:2ded) + push de + ld e, l + ld d, h + add hl, hl + add hl, de + set 6, h + ld a, $d + call BankswitchHome + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld a, [hl] + ld h, d + rl h + rla + rl h + rla + add $d + call BankswitchHome + res 7, d + set 6, d + ld l, e + ld h, d + pop de + ret +; 0x2e12 + +INCBIN "baserom.gbc",$2e12,$3189 - $2e12 Func_3189: ; 3189 (0:3189) ld hl, PointerTable_3190 @@ -1204,13 +1882,182 @@ INCBIN "baserom.gbc",$321d,$377f - $321d Func_377f: ; 377f (0:377f) rst $28 + db BANK(Func_f4000) + dw Func_f4000 + ret + +Func_3784: ; 3784 (0:3784) + xor a + rst $28 + db BANK(Func_f4006) + dw Func_f4006 + ret + +Func_378a: ; 378a (0:378a) + rst $28 + db BANK(Func_f400f) + dw Func_f400f + ret + +Func_378f: ; 378f (0:378f) + rst $28 + db BANK(Func_f4012) + dw Func_f4012 + ret + +Func_3794: ; 3794 (0:3794) + ld a, $04 +Func_3796: ; 3796 (0:3796) + rst $28 + db BANK(Func_f4009) + dw Func_f4009 + ret + +Func_379b: ; 379b (0:379b) + rst $28 + db BANK(Func_f401b) + dw Func_f401b + ret + +Func_37a0: ; 37a0 (0:37a0) + rst $28 + db BANK(Func_f401e) + dw Func_f401e + ret +; 0x37a5 + +INCBIN "baserom.gbc",$37a5,$3bf5 - $37a5 + +Func_3bf5: ; 3bf5 (0:3bf5) + ld a, [$ff80] + push af + push hl + ld a, [$d4c6] + call BankswitchHome + ld a, [$d4c4] + ld l, a + ld a, [$d4c5] + ld h, a + call CopyData_SaveRegisters + pop hl + pop af + call BankswitchHome + ret +; 0x3c10 + +INCBIN "baserom.gbc",$3c10,$3c5a - $3c10 + +Func_3c5a: ; 3c5a (0:3c5a) + ld hl, $0000 + rl c + rl b + ld a, $10 +.asm_3c63 + ld [$ffb6], a + rl l + rl h + push hl + ld a, l + sub e + ld l, a + ld a, h + sbc d + ccf + jr nc, .asm_3c78 + ld h, a + add sp, $2 + scf + jr .asm_3c79 +.asm_3c78 + pop hl +.asm_3c79 + rl c + rl b + ld a, [$ffb6] dec a - nop - ld b, b + jr nz, .asm_3c63 + ret +; 0x3c83 + +INCBIN "baserom.gbc",$3c83,$3d72 - $3c83 + +Func_3d72: ; 3d72 (0:3d72) + ld a, [$ff80] + push af + push hl + push hl + ld a, [$d4ca] + cp $ff + jr nz, .asm_3d84 + ld de, $4e5a + xor a + jr .asm_3da1 +.asm_3d84 + ld a, [$d4c4] + ld l, a + ld a, [$d4c5] + ld h, a + ld a, [$d4c6] + call BankswitchHome + ld a, [hli] + push af + ld a, [$d4ca] + rlca + ld e, [hl] + add e + ld e, a + inc hl + ld a, [hl] + adc $0 + ld d, a + pop af +.asm_3da1 + add $20 + pop hl + ld bc, $000b + add hl, bc + ld [hli], a + call BankswitchHome + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hl], a + pop hl + pop af + call BankswitchHome + ret + +Func_3db7: ; 3db7 (0:3db7) + push bc + ld c, $0 + call Func_3dbf + pop bc + ret + +Func_3dbf: ; 3dbf (0:3dbf) + ld a, [$d4cf] + cp $10 + jr c, .asm_3dc9 + rst $38 + ld a, $f +.asm_3dc9 + push bc + swap a + push af + and $f + ld b, a + pop af + and $f0 + or c + ld c, a + ld hl, $d4d0 + add hl, bc + pop bc ret -; 0x3784 +; 0x3ddb -INCBIN "baserom.gbc",$3784,$3fe0 - $3784 +INCBIN "baserom.gbc",$3ddb,$3fe0 - $3ddb ; jumps to 3f:hl Bankswitch3dTo3f: ; 3fe0 (0:3fe0) @@ -1,8 +1,11 @@ +INCLUDE "constants.asm" + INCLUDE "macros.asm" INCLUDE "home.asm" SECTION "bank1",ROMX,BANK[$1] +Func_4000: ; 4000 (1:4000) INCBIN "baserom.gbc",$4000,$4000 SECTION "bank2",ROMX,BANK[$2] @@ -14,7 +17,7 @@ RST20: ; cc42 (3:4c42) INCBIN "baserom.gbc",$CC42,$10000 - $CC42 SECTION "bank4",ROMX,BANK[$4] -INCBIN "baserom.gbc",$10000,$4000 +INCLUDE "overworldmap.asm" SECTION "bank5",ROMX,BANK[$5] INCBIN "baserom.gbc",$14000,$4000 diff --git a/overworldmap.asm b/overworldmap.asm new file mode 100755 index 0000000..31f762c --- /dev/null +++ b/overworldmap.asm @@ -0,0 +1,787 @@ +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 + rst $28 + db $03 + dw $45d5 + 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, $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 + rst $28 + db $03 + dw $4a6c + 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 + +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 + rst $28 + db BANK(Func_1299f) + dw 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 + rst $28 + db BANK(Func_12ab5) + dw 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 + rst $28 + db $03 + dw $4a6c + 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 + rst $28 + db $03 + dw $45e9 + 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,$1229f - $111b3 + +Unknown_1229f: ; 1229f (4:629f) +INCBIN "baserom.gbc",$1229f,$1299f - $1229f + +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 + rst $28 + db $20 + dw $420f + rst $28 + db $20 + dw $4229 + 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 + rst $28 + db $20 + dw $425b + ret + +INCBIN "baserom.gbc",$12c5e,$14000 - $12c5e
\ No newline at end of file |