diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-19 18:07:20 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-19 18:09:11 -0500 |
commit | 93a129eb6dc261faccaf2b2d58daf3db204ab3ba (patch) | |
tree | 9095a3735deb1608ce6e4a23dcea4a5f43b4be95 /main.asm | |
parent | 8a6a1a7d77fdcd1f8468f0c411795a8f039d4bd8 (diff) |
main.asm is now under 30k lines
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 9893 |
1 files changed, 17 insertions, 9876 deletions
@@ -4839,7 +4839,7 @@ CutDownTreeOrGrass: ; c810 ld e, a callba OWCutAnimation call BufferScreen - call Function2914 + call GetMovementPermissions call UpdateSprites call DelayFrame call LoadStandardFont @@ -5952,7 +5952,7 @@ DisappearWhirlpool: ; ce1d ld e, a callba PlayWhirlpoolSound call BufferScreen - call Function2914 + call GetMovementPermissions ret ; ce3e @@ -7350,7 +7350,7 @@ Functiond4e5: ; d4e5 (3:54e5) ret Jumptable_d4f2: ; d4f2 (3:54f2) - dw Function2914 + dw GetMovementPermissions dw BufferScreen dw .mobile dw .fail2 @@ -18307,7 +18307,7 @@ Function4aa7a: ; 4aa7a push hl cp -1 jr z, .done - ld hl, wc314 + ld hl, wSpriteAnimationStructs inc a ld d, a .inner_loop @@ -24674,3901 +24674,23 @@ Function80422:: ; 80422 -EngineFlagAction:: ; 80430 -; Do action b on engine flag de -; -; b = 0: reset flag -; = 1: set flag -; > 1: check flag, result in c -; -; Setting/resetting does not return a result. - - -; 16-bit flag ids are considered invalid, but it's nice -; to know that the infrastructure is there. - - ld a, d - cp 0 - jr z, .ceiling - jr c, .read ; cp 0 can't set carry! - jr .invalid - -; There are only $a2 engine flags, so -; anything beyond that is invalid too. - -.ceiling - ld a, e - cp NUM_ENGINE_FLAGS - jr c, .read - -; Invalid flags are treated as flag 00. - -.invalid - xor a - ld e, a - ld d, a - -; Get this flag's location. - -.read - ld hl, EngineFlags -; location -rept 2 - add hl, de -endr -; bit - add hl, de - -; location - ld e, [hl] - inc hl - ld d, [hl] - inc hl -; bit - ld c, [hl] - -; What are we doing with this flag? - - ld a, b - cp 1 - jr c, .reset ; b = 0 - jr z, .set ; b = 1 - -; Return the given flag in c. -.check - ld a, [de] - and c - ld c, a - ret - -; Set the given flag. -.set - ld a, [de] - or c - ld [de], a - ret - -; Reset the given flag. -.reset - ld a, c - cpl ; AND all bits except the one in question - ld c, a - ld a, [de] - and c - ld [de], a - ret -; 80462 - - -EngineFlags: ; 80462 INCLUDE "engine/engine_flags.asm" ; 80648 - - -_GetVarAction:: ; 80648 (20:4648) - ld a, c - cp NUM_VARS - jr c, .valid - xor a -.valid - ld c, a - ld b, 0 - ld hl, .VarActionTable -rept 3 - add hl, bc -endr - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld b, [hl] - ld a, b - and RETVAR_EXECUTE - jr nz, .call - ld a, b - and RETVAR_ADDR_DE - ret nz - ld a, [de] - jr .loadstringbuffer2 - -.call - call _de_ - ret - -.loadstringbuffer2: ; 8066c (20:466c) - ld de, StringBuffer2 - ld [de], a - ret -; 80671 (20:4671) - -.VarActionTable: ; 80671 -; $00: copy [de] to StringBuffer2 -; $40: return address in de -; $80: call function - dwb StringBuffer2, RETVAR_STRBUF2 - dwb PartyCount, RETVAR_STRBUF2 - dwb .BattleResult, RETVAR_EXECUTE - dwb BattleType, RETVAR_ADDR_DE - dwb TimeOfDay, RETVAR_STRBUF2 - dwb .CountCaughtMons, RETVAR_EXECUTE - dwb .CountSeenMons, RETVAR_EXECUTE - dwb .CountBadges, RETVAR_EXECUTE - dwb PlayerState, RETVAR_ADDR_DE - dwb .PlayerFacing, RETVAR_EXECUTE - dwb hHours, RETVAR_STRBUF2 - dwb .DayOfWeek, RETVAR_EXECUTE - dwb MapGroup, RETVAR_STRBUF2 - dwb MapNumber, RETVAR_STRBUF2 - dwb .UnownCaught, RETVAR_EXECUTE - dwb wPermission, RETVAR_STRBUF2 - dwb .BoxFreeSpace, RETVAR_EXECUTE - dwb wBugContestMinsRemaining, RETVAR_STRBUF2 - dwb XCoord, RETVAR_STRBUF2 - dwb YCoord, RETVAR_STRBUF2 - dwb wSpecialPhoneCallID, RETVAR_STRBUF2 - dwb wcf64, RETVAR_STRBUF2 - dwb wKurtApricornQuantity, RETVAR_STRBUF2 - dwb wCurrentCaller, RETVAR_ADDR_DE - dwb wBlueCardBalance, RETVAR_ADDR_DE - dwb wBuenasPassword, RETVAR_ADDR_DE - dwb wdc58, RETVAR_STRBUF2 - dwb NULL, RETVAR_STRBUF2 -; 806c5 - -.CountCaughtMons: ; 806c5 -; Caught mons. - ld hl, PokedexCaught - ld b, EndPokedexCaught - PokedexCaught - call CountSetBits - ld a, [wd265] - jp .loadstringbuffer2 -; 806d3 - -.CountSeenMons: ; 806d3 -; Seen mons. - ld hl, PokedexSeen - ld b, EndPokedexSeen - PokedexSeen - call CountSetBits - ld a, [wd265] - jp .loadstringbuffer2 -; 806e1 - -.CountBadges: ; 806e1 -; Number of owned badges. - ld hl, Badges - ld b, 2 - call CountSetBits - ld a, [wd265] - jp .loadstringbuffer2 -; 806ef - -.PlayerFacing: ; 806ef -; The direction the player is facing. - ld a, [PlayerDirection] - and $c - rrca - rrca - jp .loadstringbuffer2 -; 806f9 - -.DayOfWeek: ; 806f9 -; The day of the week. - call GetWeekday - jp .loadstringbuffer2 -; 806ff - -.UnownCaught: ; 806ff -; Number of unique Unown caught. - call .count - ld a, b - jp .loadstringbuffer2 - -.count - ld hl, UnownDex - ld b, 0 -.loop - ld a, [hli] - and a - ret z - inc b - ld a, b - cp 26 - jr c, .loop - ret -; 80715 - -.BoxFreeSpace: ; 80715 -; Remaining slots in the current box. - ld a, BANK(sBoxCount) - call GetSRAMBank - ld hl, sBoxCount - ld a, MONS_PER_BOX - sub [hl] - ld b, a - call CloseSRAM - ld a, b - jp .loadstringbuffer2 -; 80728 - -.BattleResult: ; 80728 - ld a, [wBattleResult] - and $3f - jp .loadstringbuffer2 -; 80730 - +INCLUDE "engine/variables.asm" BattleText:: INCLUDE "text/battle.asm" - -ColorTest: ; 818ac -; A debug menu to test monster and trainer palettes at runtime. - - ld a, [hCGB] - and a - jr nz, .asm_818b5 - ld a, [hSGB] - and a - ret z - -.asm_818b5 - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call DisableLCD - call Function81948 - call Function8197c - call Function819a7 - call Function818f4 - call EnableLCD - ld de, MUSIC_NONE - call PlayMusic - xor a - ld [wJumptableIndex], a - ld [wcf66], a - ld [wd003], a -.asm_818de - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_818f0 - call Function81a74 - call Function81f5e - call DelayFrame - jr .asm_818de - -.asm_818f0 - pop af - ld [hInMenu], a - ret -; 818f4 - -Function818f4: ; 818f4 - ld a, [wd002] - and a - jr nz, Function81911 - ld hl, PokemonPalettes - -Function818fd: ; 818fd - ld de, OverworldMap - ld c, NUM_POKEMON + 1 -.asm_81902 - push bc - push hl - call Function81928 - pop hl - ld bc, 8 - add hl, bc - pop bc - dec c - jr nz, .asm_81902 - ret - -Function81911: ; 81911 - ld hl, TrainerPalettes - ld de, OverworldMap - ld c, NUM_TRAINER_CLASSES -.asm_81919 - push bc - push hl - call Function81928 - pop hl - ld bc, 4 - add hl, bc - pop bc - dec c - jr nz, .asm_81919 - ret -; 81928 - -Function81928: ; 81928 - ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - inc hl - ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - inc hl - ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - inc hl - ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - ret -; 81948 - -Function81948: ; 81948 - ld a, $1 - ld [rVBK], a - ld hl, VTiles0 - ld bc, sScratch - VTiles0 - xor a - call ByteFill - ld a, $0 - ld [rVBK], a - ld hl, VTiles0 - ld bc, sScratch - VTiles0 - xor a - call ByteFill - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - call ClearSprites - ret -; 8197c - -Function8197c: ; 8197c - ld hl, DebugColorTestGFX + $10 - ld de, VTiles2 tile $6a - ld bc, $160 - call CopyBytes - ld hl, DebugColorTestGFX - ld de, VTiles0 - ld bc, $10 - call CopyBytes - call LoadStandardFont - ld hl, VTiles1 - lb bc, 8, 0 -.asm_8199d - ld a, [hl] - xor $ff - ld [hli], a - dec bc - ld a, c - or b - jr nz, .asm_8199d - ret -; 819a7 - -Function819a7: ; 819a7 - ld a, [hCGB] - and a - ret z - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_819f4 - ld de, BGPals - ld bc, $80 - call CopyBytes - ld a, $80 - ld [rBGPI], a - ld hl, Palette_819f4 - ld c, $40 - xor a -.asm_819c8 - ld [rBGPD], a - dec c - jr nz, .asm_819c8 - ld a, $80 - ld [rOBPI], a - ld hl, Palette_81a34 - ld c, $40 -.asm_819d6 - ld a, [hli] - ld [rOBPD], a - dec c - jr nz, .asm_819d6 - ld a, $94 - ld [wc608], a - ld a, $52 - ld [wc608 + 1], a - ld a, $4a - ld [wc608 + 2], a - ld a, $29 - ld [wc608 + 3], a - pop af - ld [rSVBK], a - ret -; 819f4 - -Palette_819f4: ; 819f4 - ; white - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - ; red - RGB 31, 00, 00 - RGB 31, 00, 00 - RGB 31, 00, 00 - RGB 00, 00, 00 - - ; green - RGB 00, 31, 00 - RGB 00, 31, 00 - RGB 00, 31, 00 - RGB 00, 00, 00 - - ; blue - RGB 00, 00, 31 - RGB 00, 00, 31 - RGB 00, 00, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - -Palette_81a34: ; 81a34 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - ; red - RGB 31, 31, 31 - RGB 31, 00, 00 - RGB 31, 00, 00 - RGB 00, 00, 00 - - ; green - RGB 31, 31, 31 - RGB 00, 31, 00 - RGB 00, 31, 00 - RGB 00, 00, 00 - - ; blue - RGB 31, 31, 31 - RGB 00, 00, 31 - RGB 00, 00, 31 - RGB 00, 00, 00 -; 81a74 - -Function81a74: ; 81a74 - call JoyTextDelay - ld a, [wJumptableIndex] - cp $4 - jr nc, .asm_81a8b - ld hl, hJoyLast - ld a, [hl] - and SELECT - jr nz, .asm_81a9a - ld a, [hl] - and START - jr nz, .asm_81aab - -.asm_81a8b - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_81acf -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.asm_81a9a - call Function81eca - call Function81ac3 - ld e, a - ld a, [wcf66] - inc a - cp e - jr c, .asm_81aba - xor a - jr .asm_81aba - -.asm_81aab - call Function81eca - ld a, [wcf66] - dec a - cp $ff - jr nz, .asm_81aba - call Function81ac3 - dec a - -.asm_81aba - ld [wcf66], a - ld a, $0 - ld [wJumptableIndex], a - ret -; 81ac3 - -Function81ac3: ; 81ac3 -; Looping back around the pic set. - ld a, [wd002] - and a - jr nz, .asm_81acc - ld a, NUM_POKEMON ; CELEBI - ret - -.asm_81acc - ld a, NUM_TRAINER_CLASSES - 1 ; MYSTICALMAN - ret -; 81acf - -Jumptable_81acf: ; 81acf - dw Function81adb - dw Function81c18 - dw Function81c33 - dw Function81cc2 - dw Function81d8e - dw Function81daf -; 81adb - -Function81adb: ; 81adb - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $6f - call ByteFill - hlcoord 1, 3 - lb bc, 7, 18 - ld a, $6c - call Bank20_FillBoxWithByte - hlcoord 11, 0 - lb bc, 2, 3 - ld a, $6d - call Bank20_FillBoxWithByte - hlcoord 16, 0 - lb bc, 2, 3 - ld a, $6e - call Bank20_FillBoxWithByte - call Function81bc0 - call Function81bf4 - ld a, [wcf66] - inc a - ld [CurPartySpecies], a - ld [wd265], a - hlcoord 0, 1 - ld de, wd265 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - ld a, [wd002] - and a - jr nz, .asm_81b7a - ld a, $1 - ld [UnownLetter], a - call GetPokemonName - hlcoord 4, 1 - call PlaceString - xor a - ld [wc2c6], a - hlcoord 12, 3 - call _PrepMonFrontpic - ld de, VTiles2 tile $31 - predef GetBackpic - ld a, $31 - ld [hFillBox], a - hlcoord 2, 4 - lb bc, 6, 6 - predef FillBox - ld a, [wd003] - and a - jr z, .asm_81b66 - ld de, String_81baf - jr .asm_81b69 - -.asm_81b66 - ld de, String_81bb4 - -.asm_81b69 - hlcoord 7, 17 - call PlaceString - hlcoord 0, 17 - ld de, String_81bb9 - call PlaceString - jr .asm_81ba9 - -.asm_81b7a - ld a, [wd265] - ld [TrainerClass], a - callab Function3957b - ld de, StringBuffer1 - hlcoord 4, 1 - call PlaceString - ld de, VTiles2 - callab GetTrainerPic - xor a - ld [TempEnemyMonSpecies], a - ld [hFillBox], a - hlcoord 2, 3 - lb bc, 7, 7 - predef FillBox - -.asm_81ba9 - ld a, $1 - ld [wJumptableIndex], a - ret -; 81baf - -String_81baf: db "レア", $6f, $6f, "@" ; rare (shiny) -String_81bb4: db "ノーマル@" ; normal -String_81bb9: db $7a, "きりかえ▶@" ; (A) switches -; 81bc0 - -Function81bc0: ; 81bc0 - decoord 0, 11, AttrMap - hlcoord 2, 11 - ld a, $1 - call Function81bde - decoord 0, 13, AttrMap - hlcoord 2, 13 - ld a, $2 - call Function81bde - decoord 0, 15, AttrMap - hlcoord 2, 15 - ld a, $3 - -Function81bde: ; 81bde - push af - ld a, $6a - ld [hli], a - ld bc, $f - ld a, $6b - call ByteFill - ld l, e - ld h, d - pop af - ld bc, $28 - call ByteFill - ret -; 81bf4 - -Function81bf4: ; 81bf4 - ld a, [wcf66] - inc a - ld l, a - ld h, $0 -rept 2 - add hl, hl -endr - ld de, OverworldMap - add hl, de - ld de, wc608 - ld bc, 4 - call CopyBytes - xor a - ld [wcf64], a - ld [wcf65], a - ld de, wc608 - call Function81ea5 - ret -; 81c18 - -Function81c18: ; 81c18 - ld a, [hCGB] - and a - jr z, .asm_81c2a - ld a, $2 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - call DelayFrame - -.asm_81c2a - call WaitBGMap - ld a, $2 - ld [wJumptableIndex], a - ret -; 81c33 - -Function81c33: ; 81c33 - ld a, [hCGB] - and a - jr z, .asm_81c69 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld de, wc608 - ld c, $1 - call Function81ee3 - hlcoord 10, 2 - ld de, wc608 - call Function81ca7 - hlcoord 15, 2 - ld de, wc608 + 2 - call Function81ca7 - ld a, $1 - ld [hCGBPalUpdate], a - ld a, $3 - ld [wJumptableIndex], a - pop af - ld [rSVBK], a - ret - -.asm_81c69 - ld hl, wcda9 - ld a, $1 - ld [hli], a - ld a, $ff - ld [hli], a - ld a, $7f - ld [hli], a - ld a, [wc608] - ld [hli], a - ld a, [wc608 + 1] - ld [hli], a - ld a, [wc608 + 2] - ld [hli], a - ld a, [wc608 + 3] - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - ld hl, wcda9 - call Function81f0c - hlcoord 10, 2 - ld de, wc608 - call Function81ca7 - hlcoord 15, 2 - ld de, wc608 + 2 - call Function81ca7 - ld a, $3 - ld [wJumptableIndex], a - ret -; 81ca7 - -Function81ca7: ; 81ca7 -rept 3 - inc hl -endr - ld a, [de] - call Function81cbc - ld a, [de] - swap a - call Function81cbc - inc de - ld a, [de] - call Function81cbc - ld a, [de] - swap a - -Function81cbc: ; 81cbc - and $f - add $70 - ld [hld], a - ret -; 81cc2 - -Function81cc2: ; 81cc2 - ld a, [hJoyLast] - and B_BUTTON - jr nz, .asm_81cdf - ld a, [hJoyLast] - and A_BUTTON - jr nz, .asm_81ce5 - ld a, [wcf64] - and $3 - ld e, a - ld d, 0 - ld hl, Jumptable_81d02 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.asm_81cdf - ld a, $4 - ld [wJumptableIndex], a - ret - -.asm_81ce5 - ld a, [wd002] - and a - ret nz - ld a, [wd003] - xor $4 - ld [wd003], a - ld c, a - ld b, 0 - ld hl, PokemonPalettes - add hl, bc - call Function818fd - ld a, $0 - ld [wJumptableIndex], a - ret -; 81d02 - -Jumptable_81d02: ; 81d02 - dw Function81d0a - dw Function81d34 - dw Function81d46 - dw Function81d58 -; 81d0a - -Function81d0a: ; 81d0a - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function81d89 - ld a, [hl] - and D_LEFT - jr nz, .asm_81d1d - ld a, [hl] - and D_RIGHT - jr nz, .asm_81d28 - ret - -.asm_81d1d - xor a - ld [wcf65], a - ld de, wc608 - call Function81ea5 - ret - -.asm_81d28 - ld a, $1 - ld [wcf65], a - ld de, wc608 + 2 - call Function81ea5 - ret - -Function81d34: ; 81d34 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function81d89 - ld a, [hl] - and D_UP - jr nz, Function81d84 - ld hl, wc608 + 10 - jr Function81d63 - -Function81d46: ; 81d46 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function81d89 - ld a, [hl] - and D_UP - jr nz, Function81d84 - ld hl, wc608 + 11 - jr Function81d63 - -Function81d58: ; 81d58 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, Function81d84 - ld hl, wc608 + 12 - -Function81d63: ; 81d63 - ld a, [hJoyLast] - and D_RIGHT - jr nz, Function81d70 - ld a, [hJoyLast] - and D_LEFT - jr nz, Function81d77 - ret - -Function81d70: ; 81d70 - ld a, [hl] - cp $1f - ret nc - inc [hl] - jr Function81d7b - -Function81d77: ; 81d77 - ld a, [hl] - and a - ret z - dec [hl] - -Function81d7b: ; 81d7b - call Function81e67 - ld a, $2 - ld [wJumptableIndex], a - ret - -Function81d84: ; 81d84 - ld hl, wcf64 - dec [hl] - ret - -Function81d89: ; 81d89 - ld hl, wcf64 - inc [hl] - ret -; 81d8e - -Function81d8e: ; 81d8e - hlcoord 0, 10 - ld bc, $a0 - ld a, $6f - call ByteFill - hlcoord 2, 12 - ld de, String_81fcd - call PlaceString - xor a - ld [wd004], a - call Function81df4 - ld a, $5 - ld [wJumptableIndex], a - ret -; 81daf - -Function81daf: ; 81daf - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .asm_81dbb - call Function81dc7 - ret - -.asm_81dbb - ld a, $0 - ld [wJumptableIndex], a - ret -; 81dc1 - -Function81dc1: ; 81dc1 - ld hl, wJumptableIndex - set 7, [hl] - ret -; 81dc7 - -Function81dc7: ; 81dc7 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_81dd5 - ld a, [hl] - and D_DOWN - jr nz, .asm_81de2 - ret - -.asm_81dd5 - ld a, [wd004] - cp $3b - jr z, .asm_81ddf - inc a - jr .asm_81ded - -.asm_81ddf - xor a - jr .asm_81ded - -.asm_81de2 - ld a, [wd004] - and a - jr z, .asm_81deb - dec a - jr .asm_81ded - -.asm_81deb - ld a, $3b - -.asm_81ded - ld [wd004], a - call Function81df4 - ret -; 81df4 - -Function81df4: ; 81df4 - hlcoord 10, 11 - call Function81e5e - hlcoord 10, 12 - call Function81e5e - hlcoord 10, 13 - call Function81e5e - hlcoord 10, 14 - call Function81e5e - ld a, [wd004] - inc a - ld [wd265], a - predef GetTMHMMove - ld a, [wd265] - ld [wd262], a - call GetMoveName - hlcoord 10, 12 - call PlaceString - ld a, [wd004] - call Function81e55 - ld [CurItem], a - predef CanLearnTMHMMove - ld a, c - and a - ld de, String_81e46 - jr nz, .asm_81e3f - ld de, String_81e4d - -.asm_81e3f - hlcoord 10, 14 - call PlaceString - ret -; 81e46 - -String_81e46: db "おぼえられる@" ; can be taught -String_81e4d: db "おぼえられない@" ; cannot be taught -; 81e55 - -Function81e55: ; 81e55 - cp $32 - jr c, .asm_81e5b -rept 2 - inc a -endr - -.asm_81e5b - add $bf - ret -; 81e5e - -Function81e5e: ; 81e5e - ld bc, $a - ld a, $6f - call ByteFill - ret -; 81e67 - -Function81e67: ; 81e67 - ld a, [wc608 + 10] - and $1f - ld e, a - ld a, [wc608 + 11] - and $7 - sla a - swap a - or e - ld e, a - ld a, [wc608 + 11] - and $18 - sla a - swap a - ld d, a - ld a, [wc608 + 12] - and $1f - sla a - sla a - or d - ld d, a - ld a, [wcf65] - and a - jr z, .asm_81e9c - ld a, e - ld [wc608 + 2], a - ld a, d - ld [wc608 + 3], a - ret - -.asm_81e9c - ld a, e - ld [wc608], a - ld a, d - ld [wc608 + 1], a - ret -; 81ea5 - -Function81ea5: ; 81ea5 - ld a, [de] - and $1f - ld [wc608 + 10], a - ld a, [de] - and $e0 - swap a - srl a - ld b, a - inc de - ld a, [de] - and $3 - swap a - srl a - or b - ld [wc608 + 11], a - ld a, [de] - and $7c - srl a - srl a - ld [wc608 + 12], a - ret -; 81eca - -Function81eca: ; 81eca - ld a, [wcf66] - inc a - ld l, a - ld h, $0 -rept 2 - add hl, hl -endr - ld de, OverworldMap - add hl, de - ld e, l - ld d, h - ld hl, wc608 - ld bc, 4 - call CopyBytes - ret -; 81ee3 - -Function81ee3: ; 81ee3 -.asm_81ee3 - ld a, $ff - ld [hli], a - ld a, $7f - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - dec c - jr nz, .asm_81ee3 - ret -; 81efc - -Bank20_FillBoxWithByte: ; 81efc -; For some reason, we have another copy of FillBoxWithByte here -.row - push bc - push hl -.col - ld [hli], a - dec c - jr nz, .col - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .row - ret -; 81f0c - -Function81f0c: ; 81f0c - ld a, [wcfbe] - push af - set 7, a - ld [wcfbe], a - call Function81f1d - pop af - ld [wcfbe], a - ret -; 81f1d - -Function81f1d: ; 81f1d - ld a, [hl] - and $7 - ret z - ld b, a -.asm_81f22 - push bc - xor a - ld [rJOYP], a - ld a, $30 - ld [rJOYP], a - ld b, $10 -.asm_81f2c - ld e, $8 - ld a, [hli] - ld d, a -.asm_81f30 - bit 0, d - ld a, $10 - jr nz, .asm_81f38 - ld a, $20 - -.asm_81f38 - ld [rJOYP], a - ld a, $30 - ld [rJOYP], a - rr d - dec e - jr nz, .asm_81f30 - dec b - jr nz, .asm_81f2c - ld a, $20 - ld [rJOYP], a - ld a, $30 - ld [rJOYP], a - ld de, 7000 -.asm_81f51 - nop - nop - nop - dec de - ld a, d - or e - jr nz, .asm_81f51 - pop bc - dec b - jr nz, .asm_81f22 - ret -; 81f5e - -Function81f5e: ; 81f5e - ld a, $6f - hlcoord 10, 0 - ld [hl], a - hlcoord 15, 0 - ld [hl], a - hlcoord 1, 11 - ld [hl], a - hlcoord 1, 13 - ld [hl], a - hlcoord 1, 15 - ld [hl], a - ld a, [wJumptableIndex] - cp $3 - jr nz, .asm_81fc9 - ld a, [wcf64] - and a - jr z, .asm_81f8d - dec a - hlcoord 1, 11 - ld bc, 2 * SCREEN_WIDTH - call AddNTimes - ld [hl], $ed - -.asm_81f8d - ld a, [wcf65] - and a - jr z, .asm_81f98 - hlcoord 15, 0 - jr .asm_81f9b - -.asm_81f98 - hlcoord 10, 0 - -.asm_81f9b - ld [hl], $ed - ld b, $70 - ld c, $5 - ld hl, Sprites - ld de, wc608 + 10 - call .asm_81fb7 - ld de, wc608 + 11 - call .asm_81fb7 - ld de, wc608 + 12 - call .asm_81fb7 - ret - -.asm_81fb7 - ld a, b - ld [hli], a - ld a, [de] -rept 2 - add a -endr - add $18 - ld [hli], a - xor a - ld [hli], a - ld a, c - ld [hli], a - ld a, $10 - add b - ld b, a - inc c - ret - -.asm_81fc9 - call ClearSprites - ret -; 81fcd - -String_81fcd: ; 81fcd - db "おわりますか?" ; Are you finished? - next "はい", $f2, $f2, $f2, $7a ; YES (A) - next "いいえ", $f2, $f2, $7b ; NO (B) - db "@" -; 81fe3 - -DebugColorTestGFX: -INCBIN "gfx/debug/color_test.2bpp" - - -TilesetColorTest: - ret - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [hMapAnims], a - call ClearSprites - call OverworldTextModeSwitch - call Function3200 - xor a - ld [hBGMapMode], a - ld de, DebugColorTestGFX + $10 - ld hl, VTiles2 tile $6a - lb bc, BANK(DebugColorTestGFX), $16 - call Request2bpp - ld de, DebugColorTestGFX - ld hl, VTiles1 - lb bc, BANK(DebugColorTestGFX), 1 - call Request2bpp - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $6f - call ByteFill - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $7 - call ByteFill - ld de, $15 - ld a, $6c - call Function821d2 - ld de, $1a - ld a, $6d - call Function821d2 - ld de, $1f - ld a, $6e - call Function821d2 - ld de, $24 - ld a, $6f - call Function821d2 - call Function821f4 - call Function8220f - call Function3200 - ld [wJumptableIndex], a - ld a, $40 - ld [hWY], a - ret -; 821d2 - -Function821d2: ; 821d2 - hlcoord 0, 0 - call Function821de - -Function821d8: ; 821d8 - ld a, [wcf64] - hlcoord 0, 0, AttrMap - -Function821de: ; 821de - add hl, de -rept 4 - ld [hli], a -endr - ld bc, $10 - add hl, bc -rept 4 - ld [hli], a -endr - ld bc, $10 - add hl, bc -rept 4 - ld [hli], a -endr - ret -; 821f4 - -Function821f4: ; 821f4 - hlcoord 2, 4 - call Function82203 - hlcoord 2, 6 - call Function82203 - hlcoord 2, 8 - -Function82203: ; 82203 - ld a, $6a - ld [hli], a - ld bc, $10 - 1 - ld a, $6b - call ByteFill - ret -; 8220f - -Function8220f: ; 8220f - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, [wcf64] - ld l, a - ld h, $0 -rept 3 - add hl, hl -endr - ld de, wMapPals - add hl, de - ld de, wc608 - ld bc, 8 - call CopyBytes - ld de, wc608 - call Function81ea5 - pop af - ld [rSVBK], a - ret -; 82236 - - -Function82236: ; 82236 - ld hl, hJoyLast - ld a, [hl] - and SELECT - jr nz, .loop7 - ld a, [hl] - and B_BUTTON - jr nz, .asm_82299 - call Function822f0 - ret - -.loop7 - ld hl, wcf64 - ld a, [hl] - inc a - and $7 - cp $7 - jr nz, .asm_82253 - xor a - -.asm_82253 - ld [hl], a - ld de, $15 - call Function821d8 - ld de, $1a - call Function821d8 - ld de, $1f - call Function821d8 - ld de, $24 - call Function821d8 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld a, [wcf64] - ld bc, 8 - call AddNTimes - ld de, wc608 - ld bc, 8 - call CopyBytes - pop af - ld [rSVBK], a - ld a, $2 - ld [hBGMapMode], a - ld c, 3 - call DelayFrames - ld a, $1 - ld [hBGMapMode], a - ret - -.asm_82299 - call ClearSprites - ld a, [hWY] - xor $d0 - ld [hWY], a - ret -; 822a3 - -Function822a3: ; 822a3 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld a, [wcf64] - ld bc, 8 - call AddNTimes - ld e, l - ld d, h - ld hl, wc608 - ld bc, 8 - call CopyBytes - hlcoord 1, 0 - ld de, wc608 - call Function81ca7 - hlcoord 6, 0 - ld de, wc608 + 2 - call Function81ca7 - hlcoord 11, 0 - ld de, wc608 + 4 - call Function81ca7 - hlcoord 16, 0 - ld de, wc608 + 6 - call Function81ca7 - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - call DelayFrame - ret -; 822f0 - -Function822f0: ; 822f0 - ld a, [wcf65] - and 3 - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 82301 - -.jumptable: ; 82301 - dw Function82309 - dw Function82339 - dw Function8234b - dw Function8235d -; 82309 - -Function82309: ; 82309 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function8238c - ld a, [hl] - and D_LEFT - jr nz, .asm_8231c - ld a, [hl] - and D_RIGHT - jr nz, .asm_82322 - ret - -.asm_8231c - ld a, [wcf66] - dec a - jr .asm_82326 - -.asm_82322 - ld a, [wcf66] - inc a - -.asm_82326 - and $3 - ld [wcf66], a - ld e, a - ld d, $0 - ld hl, wc608 -rept 2 - add hl, de -endr - ld e, l - ld d, h - call Function81ea5 - ret - -Function82339: ; 82338 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function8238c - ld a, [hl] - and D_UP - jr nz, Function82387 - ld hl, wc608 + 10 - jr Function82368 - -Function8234b: ; 8234b - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function8238c - ld a, [hl] - and D_UP - jr nz, Function82387 - ld hl, wc608 + 11 - jr Function82368 - -Function8235d: ; 8235d - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, Function82387 - ld hl, wc608 + 12 - -Function82368: ; 82368 - ld a, [hJoyLast] - and D_RIGHT - jr nz, .asm_82375 - ld a, [hJoyLast] - and D_LEFT - jr nz, .asm_8237c - ret - -.asm_82375 - ld a, [hl] - cp $1f - ret nc - inc [hl] - jr .asm_82380 - -.asm_8237c - ld a, [hl] - and a - ret z - dec [hl] - -.asm_82380 - call Function82391 - call Function822a3 - ret - -Function82387: ; 82387 - ld hl, wcf65 - dec [hl] - ret - -Function8238c: ; 8238c - ld hl, wcf65 - inc [hl] - ret -; 82391 - -Function82391: ; 82391 - ld a, [wc608 + 10] - and $1f - ld e, a - ld a, [wc608 + 11] - and $7 - sla a - swap a - or e - ld e, a - ld a, [wc608 + 11] - and $18 - sla a - swap a - ld d, a - ld a, [wc608 + 12] - and $1f - sla a - sla a - or d - ld d, a - ld a, [wcf66] - ld c, a - ld b, $0 - ld hl, wc608 -rept 2 - add hl, bc -endr - ld a, e - ld [hli], a - ld [hl], d - ret -; 823c6 - -Function823c6: ; 823c6 - ret - -Function823c7: ; 823c7 - ret -; 823c8 - +INCLUDE "engine/debug.asm" SECTION "bank21", ROMX, BANK[$21] -Function84000: ; 84000 - ld hl, OverworldMap - lb bc, 4, 12 - xor a - call Function842ab - xor a - ld [rSB], a - ld [rSC], a - ld [wc2d5], a - ld hl, wc2d4 - set 0, [hl] - ld a, [GBPrinter] - ld [wcbfb], a - xor a - ld [wJumptableIndex], a - ret -; 84022 - -Function84022: ; 84022 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_84031 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 84031 - - -Jumptable_84031: ; 84031 (21:4031) - dw Function84077 - dw Function84143 - dw Function84120 - dw Function84099 - dw Function84180 - dw Function8412e - dw Function840c5 - dw Function84180 - dw Function84120 - dw Function840de - dw Function84180 - dw Function84120 - dw Function841a1 - dw Function84063 - dw Function8406d - dw Function84120 - dw Function84103 - dw Function84071 - dw Function841b0 - dw Function841b3 - - -Function84059: ; 84059 (21:4059) - ld hl, wJumptableIndex - inc [hl] - ret - -Function8405e: ; 8405e (21:405e) - ld hl, wJumptableIndex - dec [hl] - ret - -Function84063: ; 84063 (21:4063) - xor a - ld [wca89], a - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function8406d: ; 8406d (21:406d) - call Function84059 - ret - -Function84071: ; 84071 (21:4071) - ld a, $1 - ld [wJumptableIndex], a - ret - -Function84077: ; 84077 (21:4077) - call Function841fb - ld hl, Unknown_842b7 - call Function841e2 - xor a - ld [wca8e], a - ld [wca8f], a - ld a, [wcf65] - ld [wca81], a - call Function84059 - call Function841c3 - ld a, $1 - ld [wcbf8], a - ret - -Function84099: ; 84099 (21:4099) - call Function841fb - ld hl, wca81 - ld a, [hl] - and a - jr z, Function840c5 - ld hl, Unknown_842c3 - call Function841e2 - call Function84260 - ld a, $80 - ld [wca8e], a - ld a, $2 - ld [wca8f], a - call Function84219 - call Function84059 - call Function841c3 - ld a, $2 - ld [wcbf8], a - ret - -Function840c5: ; 840c5 (21:40c5) - ld a, $6 - ld [wJumptableIndex], a - ld hl, Unknown_842c9 - call Function841e2 - xor a - ld [wca8e], a - ld [wca8f], a - call Function84059 - call Function841c3 - ret - -Function840de: ; 840de (21:40de) - call Function841fb - ld hl, Unknown_842bd - call Function841e2 - call Function84249 - ld a, $4 - ld [wca8e], a - ld a, $0 - ld [wca8f], a - call Function84219 - call Function84059 - call Function841c3 - ld a, $3 - ld [wcbf8], a - ret - -Function84103: ; 84103 (21:4103) - call Function841fb - ld hl, Unknown_842b7 - call Function841e2 - xor a - ld [wca8e], a - ld [wca8f], a - ld a, [wcf65] - ld [wca81], a - call Function84059 - call Function841c3 - ret - -Function84120: ; 84120 (21:4120) - ld hl, wca8b - inc [hl] - ld a, [hl] - cp $6 - ret c - xor a - ld [hl], a - call Function84059 - ret - -Function8412e: ; 8412e (21:412e) - ld hl, wca8b - inc [hl] - ld a, [hl] - cp $6 - ret c - xor a - ld [hl], a - ld hl, wca81 - dec [hl] - call Function8405e - call Function8405e - ret - -Function84143: ; 84143 (21:4143) - ld a, [wc2d5] - and a - ret nz - ld a, [wca88] - cp $ff - jr nz, .printer_connected - ld a, [wca89] - cp $ff - jr z, .printer_error - -.printer_connected - ld a, [wca88] - cp $81 - jr nz, .printer_error - ld a, [wca89] - cp $0 - jr nz, .printer_error - ld hl, wc2d4 - set 1, [hl] - ld a, $5 - ld [wca8a], a - call Function84059 - ret - -.printer_error - ld a, $ff - ld [wca88], a - ld [wca89], a - ld a, $e - ld [wJumptableIndex], a - ret - -Function84180: ; 84180 (21:4180) - ld a, [wc2d5] - and a - ret nz - ld a, [wca89] - and $f0 - jr nz, .asm_8419b - ld a, [wca89] - and $1 - jr nz, .asm_84197 - call Function84059 - ret -.asm_84197 - call Function8405e - ret -.asm_8419b - ld a, $12 - ld [wJumptableIndex], a - ret - -Function841a1: ; 841a1 (21:41a1) - ld a, [wc2d5] - and a - ret nz - ld a, [wca89] - and $f3 - ret nz - call Function84059 - ret - -Function841b0: ; 841b0 (21:41b0) - call Function84059 - -Function841b3: ; 841b3 (21:41b3) - ld a, [wc2d5] - and a - ret nz - ld a, [wca89] - and $f0 - ret nz - xor a - ld [wJumptableIndex], a - ret - -Function841c3: ; 841c3 (21:41c3) - ld a, [wc2d5] - and a - jr nz, Function841c3 - xor a - ld [wca8c], a - ld [wca8d], a - ld a, $1 - ld [wc2d5], a - ld a, $88 - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret - -Function841e2: ; 841e2 (21:41e2) - ld a, [hli] - ld [wca82], a - ld a, [hli] - ld [wca83], a - ld a, [hli] - ld [wca84], a - ld a, [hli] - ld [wca85], a - ld a, [hli] - ld [wca86], a - ld a, [hl] - ld [wca87], a - ret - -Function841fb: ; 841fb (21:41fb) - xor a - ld hl, wca82 -rept 3 - ld [hli], a -endr - ld [hl], a - ld hl, wca86 - ld [hli], a - ld [hl], a - xor a - ld [wca8e], a - ld [wca8f], a - ld hl, OverworldMap - ld bc, $280 - call Function842ab - ret - -Function84219: ; 84219 (21:4219) - ld hl, 0 - ld bc, $4 - ld de, wca82 - call Function8423c - ld a, [wca8e] - ld c, a - ld a, [wca8f] - ld b, a - ld de, OverworldMap - call Function8423c - ld a, l - ld [wca86], a - ld a, h - ld [wca87], a - ret - -Function8423c: ; 8423c (21:423c) - ld a, [de] - inc de - add l - jr nc, .asm_84242 - inc h -.asm_84242 - ld l, a - dec bc - ld a, c - or b - jr nz, Function8423c - ret - -Function84249: ; 84249 (21:4249) - ld a, $1 - ld [OverworldMap], a - ld a, [wcbfa] - ld [wc801], a - ld a, $e4 - ld [wc802], a - ld a, [wcbfb] - ld [wc803], a - ret - -Function84260: ; 84260 (21:4260) - ld a, [wca81] - xor $ff - ld d, a - ld a, [wcf65] - inc a - add d - ld hl, wca90 - ld de, $28 -.asm_84271 - and a - jr z, .asm_84278 - add hl, de - dec a - jr .asm_84271 -.asm_84278 - ld e, l - ld d, h - ld hl, OverworldMap - ld c, $28 -.asm_8427f - ld a, [de] - inc de - push bc - push de - push hl - swap a - ld d, a - and $f0 - ld e, a - ld a, d - and $f - ld d, a - and $8 - ld a, d - jr nz, .asm_84297 - or $90 - jr .asm_84299 -.asm_84297 - or $80 -.asm_84299 - ld d, a - lb bc, $21, 1 - call Request2bpp - pop hl - ld de, $10 - add hl, de - pop de - pop bc - dec c - jr nz, .asm_8427f - ret - -Function842ab: ; 842ab - push de - ld e, a -.asm_842ad - ld [hl], e - inc hl - dec bc - ld a, c - or b - jr nz, .asm_842ad - ld a, e - pop de - ret -; 842b7 - -Unknown_842b7: db 1, 0, $00, 0, 1, 0 -Unknown_842bd: db 2, 0, $04, 0, 0, 0 -Unknown_842c3: db 4, 0, $80, 2, 0, 0 -Unknown_842c9: db 4, 0, $00, 0, 4, 0 -Unknown_842cf: db 8, 0, $00, 0, 8, 0 ; unused -Unknown_842d5: db 15, 0, $00, 0, 15, 0 ; unused -; 842db - - -Function842db:: ; 842db - ld a, [wc2d5] - add a - ld e, a - ld d, 0 - ld hl, Jumptable_842ea - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 842ea - - -Jumptable_842ea: ; 842ea (21:42ea) - dw Function8432f - dw Function84330 - dw Function84339 - dw Function84343 - dw Function8434d - dw Function84357 - dw Function84361 - dw Function8438b - dw Function84395 - dw Function8439f - dw Function843a8 - dw Function843b6 - dw Function84330 - dw Function843c0 - dw Function843c9 - dw Function843c9 - dw Function843c9 - dw Function843c0 - dw Function843c9 - dw Function8439f - dw Function843a8 - dw Function843e6 - dw Function84330 - dw Function843d2 - dw Function843c9 - dw Function843c9 - dw Function843c9 - dw Function843d2 - dw Function843c9 - dw Function8439f - dw Function843a8 - dw Function843b6 - - -Function8432a: ; 8432a (21:432a) - ld hl, wc2d5 - inc [hl] - ret - -Function8432f: ; 8432f (21:432f) - ret - -Function84330: ; 84330 (21:4330) - ld a, $33 - call Function843db - call Function8432a - ret - -Function84339: ; 84339 (21:4339) - ld a, [wca82] - call Function843db - call Function8432a - ret - -Function84343: ; 84343 (21:4343) - ld a, [wca83] - call Function843db - call Function8432a - ret - -Function8434d: ; 8434d (21:434d) - ld a, [wca84] - call Function843db - call Function8432a - ret - -Function84357: ; 84357 (21:4357) - ld a, [wca85] - call Function843db - call Function8432a - ret - -Function84361: ; 84361 (21:4361) - ld hl, wca8e - ld a, [hli] - ld d, [hl] - ld e, a - or d - jr z, .asm_84388 - dec de - ld [hl], d - dec hl - ld [hl], e - ld a, [wca8c] - ld e, a - ld a, [wca8d] - ld d, a - ld hl, OverworldMap - add hl, de - inc de - ld a, e - ld [wca8c], a - ld a, d - ld [wca8d], a - ld a, [hl] - call Function843db - ret -.asm_84388 - call Function8432a - -Function8438b: ; 8438b (21:438b) - ld a, [wca86] - call Function843db - call Function8432a - ret - -Function84395: ; 84395 (21:4395) - ld a, [wca87] - call Function843db - call Function8432a - ret - -Function8439f: ; 8439f (21:439f) - ld a, $0 - call Function843db - call Function8432a - ret - -Function843a8: ; 843a8 (21:43a8) - ld a, [rSB] - ld [wca88], a - ld a, $0 - call Function843db - call Function8432a - ret - -Function843b6: ; 843b6 (21:43b6) - ld a, [rSB] - ld [wca89], a - xor a - ld [wc2d5], a - ret - -Function843c0: ; 843c0 (21:43c0) - ld a, $f - call Function843db - call Function8432a - ret - -Function843c9: ; 843c9 (21:43c9) - ld a, $0 - call Function843db - call Function8432a - ret - -Function843d2: ; 843d2 (21:43d2) - ld a, $8 - call Function843db - call Function8432a - ret - -Function843db: ; 843db (21:43db) - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret - -Function843e6: ; 843e6 (21:43e6) - ld a, [rSB] - ld [wca89], a - xor a - ld [wc2d5], a - ret - -Function843f0: ; 843f0 -.asm_843f0 - call JoyTextDelay - call Function846f6 - jr c, .asm_8440f - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_8440d - call Function84022 - call Function84757 - call Function84785 - call DelayFrame - jr .asm_843f0 - -.asm_8440d - and a - ret - -.asm_8440f - scf - ret -; 84411 - -Function84411: ; 84411 - xor a - ld [wc2d4], a - ld [wc2d5], a - ret -; 84419 - -Function84419: ; 84419 - push af - call Function84000 - pop af - ld [wcbfa], a - call Function84728 - ret -; 84425 - -Function84425: ; 84425 - call ReturnToMapFromSubmenu - call Function84753 - ret -; 8442c - -Function8442c: ; 8442c - ld a, [wcf65] - push af - ld hl, VTiles1 - ld de, FontInversed - lb bc, BANK(FontInversed), $80 - call Request1bpp - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - call Function84000 - ld a, $10 - ld [wcbfa], a - callba Function1dc1b0 - call ClearTileMap - ld a, $e4 - call DmgToCgbBGPals - call DelayFrame - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - ld a, $8 - ld [wcf65], a - call Function84742 - call Function843f0 - jr c, .asm_8449d - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - call Function84000 - ld a, $3 - ld [wcbfa], a - callba Function1dc213 - call Function84742 - ld a, $4 - ld [wcf65], a - call Function843f0 - -.asm_8449d - pop af - ld [hVBlank], a - call Function84411 - xor a - ld [rIF], a - pop af - ld [rIE], a - call Function84425 - ld c, $8 -.asm_844ae - call LowVolume - call DelayFrame - dec c - jr nz, .asm_844ae - pop af - ld [wcf65], a - ret -; 844bc - -Function844bc: ; 844bc (21:44bc) - ld a, [wcf65] - push af - ld a, $9 - ld [wcf65], a - ld a, e - ld [wd004], a - ld a, d - ld [StartFlypoint], a - ld a, b - ld [EndFlypoint], a - ld a, c - ld [MovementBuffer], a - xor a - ld [$ffac], a - ld [wd003], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - xor a - ld [hBGMapMode], a - call Function84817 - ld a, $10 - call Function84419 - call Function84559 - jr c, .asm_84545 - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - call Function8486f - ld a, $0 - call Function84419 - call Function84559 - jr c, .asm_84545 - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - call Function84893 - ld a, $0 - call Function84419 - call Function84559 - jr c, .asm_84545 - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - call Function848b7 - ld a, $3 - call Function84419 - call Function84559 -.asm_84545 - pop af - ld [hVBlank], a - call Function84411 - xor a - ld [rIF], a - pop af - ld [rIE], a - call Function84425 - pop af - ld [wcf65], a - ret - -Function84559: ; 84559 (21:4559) - call Function84742 - call Function843f0 - ret - -Function84560: ; 84560 - ld a, [wcf65] - push af - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - xor a - ld [hBGMapMode], a - call LoadTileMapToTempTileMap - callba Function16dac - ld a, $0 - call Function84419 - call Call_LoadTempTileMapToTileMap - call Function84742 - ld a, $9 - ld [wcf65], a -.asm_84597 - call JoyTextDelay - call Function846f6 - jr c, .asm_845c0 - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_845c0 - call Function84022 - ld a, [wJumptableIndex] - cp $2 - jr nc, .asm_845b5 - ld a, $3 - ld [wca81], a - -.asm_845b5 - call Function84757 - call Function84785 - call DelayFrame - jr .asm_84597 - -.asm_845c0 - pop af - ld [hVBlank], a - call Function84411 - call Call_LoadTempTileMapToTileMap - xor a - ld [rIF], a - pop af - ld [rIE], a - pop af - ld [wcf65], a - ret -; 845d4 - -Function845d4: ; 845d4 - call Function845db - call Function84425 - ret -; 845db - -Function845db: ; 845db - ld a, [wcf65] - push af - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - xor a - ld [hBGMapMode], a - ld a, $13 - call Function84419 - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - ld a, $9 - ld [wcf65], a - call Function843f0 - pop af - ld [hVBlank], a - call Function84411 - call Function84735 - xor a - ld [rIF], a - pop af - ld [rIE], a - pop af - ld [wcf65], a - ret -; 8461a - -Function8461a: ; 8461a - ld a, [wcf65] - push af - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - xor a - ld [hBGMapMode], a - callba Function1dc381 - ld a, $10 - call Function84419 - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - ld a, $8 - ld [wcf65], a - call Function84742 - call Function843f0 - jr c, .asm_84671 - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - callba Function1dc47b - ld a, $3 - call Function84419 - ld a, $9 - ld [wcf65], a - call Function84742 - call Function843f0 - -.asm_84671 - pop af - ld [hVBlank], a - call Function84411 - call Function84735 - xor a - ld [rIF], a - pop af - ld [rIE], a - call Function84425 - pop af - ld [wcf65], a - ret -; 84688 - -_PrintDiploma: ; 84688 - ld a, [wcf65] - push af - callba Function1dd709 - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - ld a, $10 - call Function84419 - call Function84742 - ld a, $9 - ld [wcf65], a - call Function843f0 - jr c, .asm_846e2 - call Function84411 - ld c, 12 - call DelayFrames - call LoadTileMapToTempTileMap - xor a - ld [hBGMapMode], a - callba Function1dd7ae - ld a, $3 - call Function84419 - call Call_LoadTempTileMapToTileMap - call Function84742 - ld a, $9 - ld [wcf65], a - call Function843f0 - -.asm_846e2 - pop af - ld [hVBlank], a - call Function84411 - xor a - ld [rIF], a - pop af - ld [rIE], a - call Function84425 - pop af - ld [wcf65], a - ret -; 846f6 - -Function846f6: ; 846f6 - ld a, [hJoyDown] - and B_BUTTON - jr nz, .asm_846fe - and a - ret - -.asm_846fe - ld a, [wca80] - cp $c - jr nz, .asm_84722 -.asm_84705 - ld a, [wc2d5] - and a - jr nz, .asm_84705 - ld a, $16 - ld [wc2d5], a - ld a, $88 - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a -.asm_8471c - ld a, [wc2d5] - and a - jr nz, .asm_8471c - -.asm_84722 - ld a, $1 - ld [$ffac], a - scf - ret -; 84728 - -Function84728: ; 84728 - hlcoord 0, 0 - ld de, wca90 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call CopyBytes - ret -; 84735 - -Function84735: ; 84735 - ld hl, wca90 - decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call CopyBytes - ret -; 84742 - -Function84742: ; 84742 - xor a - ld [hJoyReleased], a - ld [hJoyPressed], a - ld [hJoyDown], a - ld [hJoyLast], a - ret -; 8474c - -Function8474c: ; 8474c - ld de, MUSIC_PRINTER - call PlayMusic2 - ret -; 84753 - -Function84753: ; 84753 - call RestartMapMusic - ret -; 84757 - -Function84757: ; 84757 - ld a, [wca88] - cp -1 - jr nz, .printer_connected - ld a, [wca89] - cp -1 - jr z, .error_2 - -.printer_connected - ld a, [wca89] - and %11100000 - ret z ; no error - - bit 7, a - jr nz, .error_1 - bit 6, a - jr nz, .error_4 - ld a, 6 ; error 3 - jr .load_text_index - -.error_4 - ld a, 7 ; error 4 - jr .load_text_index - -.error_1 - ld a, 4 ; error 1 - jr .load_text_index - -.error_2 - ld a, 5 ; error 2 - -.load_text_index - ld [wcbf8], a - ret -; 84785 - -Function84785: ; 84785 - ld a, [wcbf8] - and a - ret z - push af - xor a - ld [hBGMapMode], a - hlcoord 0, 5 - lb bc, 10, 18 - call TextBox - pop af - ld e, a - ld d, 0 - ld hl, PrinterStatusStringPointers -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 1, 7 - ld a, BANK(GBPrinterStrings) - call FarString - hlcoord 2, 15 - ld de, String_PressBToCancel - call PlaceString - ld a, $1 - ld [hBGMapMode], a - xor a - ld [wcbf8], a - ret -; 847bd - -Function847bd: ; 847bd - ld a, [wcbf8] - and a - ret z - push af - xor a - ld [hBGMapMode], a - hlcoord 2, 4 - lb bc, 13, 16 - call ClearBox - pop af - ld e, a - ld d, 0 - ld hl, PrinterStatusStringPointers -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 4, 7 - ld a, BANK(GBPrinterStrings) - call FarString - hlcoord 4, 15 - ld de, String_PressBToCancel - call PlaceString - ld a, $1 - ld [hBGMapMode], a - xor a - ld [wcbf8], a - ret -; 847f5 - -String_PressBToCancel: - db "Press B to Cancel@" -; 84807 - -PrinterStatusStringPointers: ; 84807 - dw String_1dc275 ; @ - dw String_1dc276 ; CHECKING LINK - dw String_1dc289 ; TRANSMITTING - dw String_1dc29c ; PRINTING - dw String_1dc2ad ; error 1 - dw String_1dc2e2 ; error 2 - dw String_1dc317 ; error 3 - dw String_1dc34c ; error 4 -; 84817 - -Function84817: ; 84817 (21:4817) - xor a - ld [wd002], a - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function84a0e - hlcoord 0, 0 - ld bc, 9 * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function849e9 - call Function849d7 - hlcoord 4, 3 - ld de, String_84865 - call PlaceString - ld a, [wd007] - ld bc, BOX_NAME_LENGTH - ld hl, wBoxNames - call AddNTimes - ld d, h - ld e, l - hlcoord 6, 5 - call PlaceString - ld a, $1 - call Function849c6 - hlcoord 2, 9 - ld c, $3 - call Function848e7 - ret -; 84865 (21:4865) - -String_84865: - db "#MON LIST@" -; 8486f - -Function8486f: ; 8486f (21:486f) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function84a0e - call Function849e9 - ld a, [wd003] - and a - ret nz - ld a, $4 - call Function849c6 - hlcoord 2, 0 - ld c, $6 - call Function848e7 - ret - -Function84893: ; 84893 (21:4893) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function84a0e - call Function849e9 - ld a, [wd003] - and a - ret nz - ld a, $a - call Function849c6 - hlcoord 2, 0 - ld c, $6 - call Function848e7 - ret - -Function848b7: ; 848b7 (21:48b7) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function84a0e - hlcoord 1, 15 - lb bc, 2, 18 - call ClearBox - call Function849e9 - call Function849fc - ld a, [wd003] - and a - ret nz - ld a, $10 - call Function849c6 - hlcoord 2, 0 - ld c, $5 - call Function848e7 - ret - -Function848e7: ; 848e7 (21:48e7) - ld a, [EndFlypoint] - call GetSRAMBank - -Function848ed: ; 848ed (21:48ed) - ld a, c - and a - jp z, Function84986 - dec c - ld a, [de] - cp $ff - jp z, Function84981 - ld [wd265], a - ld [CurPartySpecies], a - push bc - push hl - push de - push hl - ld bc, $10 - ld a, " " - call ByteFill - pop hl - push hl - call GetBasePokemonName - pop hl - push hl - call PlaceString - ld a, [CurPartySpecies] - cp $fd - pop hl - jr z, .ok2 - ld bc, $b - add hl, bc - call Function8498a - ld bc, $9 - add hl, bc - ld a, $f3 - ld [hli], a - push hl - ld bc, $e - ld a, " " - call ByteFill - pop hl - push hl - ld a, [wd004] - ld l, a - ld a, [StartFlypoint] - ld h, a - ld bc, $372 - add hl, bc - ld bc, $b - ld a, [wd002] - call AddNTimes - ld e, l - ld d, h - pop hl - push hl - call PlaceString - pop hl - ld bc, $b - add hl, bc - push hl - ld a, [wd004] - ld l, a - ld a, [StartFlypoint] - ld h, a - ld bc, $35 - add hl, bc - ld bc, $20 - ld a, [wd002] - call AddNTimes - ld a, [hl] - pop hl - call Function383d -.ok2 - ld hl, wd002 - inc [hl] - pop de - pop hl - ld bc, $3c - add hl, bc - pop bc - inc de - jp Function848ed - -Function84981: ; 84981 (21:4981) - ld a, $1 - ld [wd003], a - -Function84986: ; 84986 (21:4986) - call CloseSRAM - ret - -Function8498a: ; 8498a (21:498a) - push hl - ld a, [wd004] - ld l, a - ld a, [StartFlypoint] - ld h, a - ld bc, $2b - add hl, bc - ld bc, $20 - ld a, [wd002] - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, [wd002] - ld [CurPartyMon], a - ld a, $3 - ld [MonType], a - callba GetGender - ld a, $7f - jr c, .asm_849c3 - ld a, $ef - jr nz, .asm_849c3 - ld a, $f5 -.asm_849c3 - pop hl - ld [hli], a - ret - -Function849c6: ; 849c6 (21:49c6) - push hl - ld e, a - ld d, $0 - ld a, [wd004] - ld l, a - ld a, [StartFlypoint] - ld h, a - add hl, de - ld e, l - ld d, h - pop hl - ret - -Function849d7: ; 849d7 (21:49d7) - hlcoord 0, 0 - ld a, $79 - ld [hli], a - ld a, $7a - ld c, $12 -.asm_849e1 - ld [hli], a - dec c - jr nz, .asm_849e1 - ld a, $7b - ld [hl], a - ret - -Function849e9: ; 849e9 (21:49e9) - hlcoord 0, 0 - ld de, $13 - ld c, $12 -.asm_849f1 - ld a, $7c - ld [hl], a - add hl, de - ld a, $7c - ld [hli], a - dec c - jr nz, .asm_849f1 - ret - -Function849fc: ; 849fc (21:49fc) - hlcoord 0, 17 - ld a, $7d - ld [hli], a - ld a, $7a - ld c, $12 -.asm_84a06 - ld [hli], a - dec c - jr nz, .asm_84a06 - ld a, $7e - ld [hl], a - ret - -Function84a0e: ; 84a0e (21:4a0e) - hlcoord 2, 0 - ld c, $6 -.asm_84a13 - push bc - push hl - ld de, String84a25 - call PlaceString - pop hl - ld bc, $3c - add hl, bc - pop bc - dec c - jr nz, .asm_84a13 - ret -; 84a25 (21:4a25) - -String84a25: ; 84a25 - db " ------@" -; 84a2e - +INCLUDE "engine/printer.asm" INCLUDE "battle/anim_gfx.asm" - -HallOfFame:: ; 0x8640e - call Function8648e - ld a, [StatusFlags] - push af - ld a, 1 - ld [wc2cd], a - call DisableSpriteUpdates - ld a, SPAWN_LANCE - ld [wSpawnAfterChampion], a - - ; Enable the Pokégear map to cycle through all of Kanto - ld hl, StatusFlags - set 6, [hl] ; hall of fame - - callba Function14da0 - - ld hl, wHallOfFameCount - ld a, [hl] - cp 200 - jr nc, .ok - inc [hl] -.ok - callba SaveGameData - call GetHallOfFameParty - callba AddHallOfFameEntry - - xor a - ld [wc2cd], a - call Function864c3 - pop af - ld b, a - callba Function109847 - ret -; 0x86455 - -RedCredits:: ; 86455 - ld a, MUSIC_NONE % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_NONE / $100 - ld [MusicFadeIDHi], a - ld a, $a - ld [MusicFade], a - callba FadeOutPalettes - xor a - ld [VramState], a - ld [hMapAnims], a - callba Function4e8c2 - ld c, 8 - call DelayFrames - call DisableSpriteUpdates - ld a, SPAWN_RED - ld [wSpawnAfterChampion], a - ld a, [StatusFlags] - ld b, a - callba Function109847 - ret -; 8648e - -Function8648e: ; 8648e - ld a, MUSIC_NONE % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_NONE / $100 - ld [MusicFadeIDHi], a - ld a, 10 - ld [MusicFade], a - callba FadeOutPalettes - xor a - ld [VramState], a - ld [hMapAnims], a - callba Function4e881 - ld c, 100 - jp DelayFrames -; 864b4 - -Function864b4: ; 864b4 - push de - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - pop de - call PlayMusic - ret -; 864c3 - -Function864c3: ; 864c3 - xor a - ld [wJumptableIndex], a - call Function8671c - jr c, .done - ld de, SCREEN_WIDTH - call Function864b4 - xor a - ld [wcf64], a -.loop - ld a, [wcf64] - cp 6 - jr nc, .done - ld hl, wc608 + 1 - ld bc, $10 - call AddNTimes - ld a, [hl] - cp -1 - jr z, .done - push hl - call Function865b5 - pop hl - call Function8650c - jr c, .done - ld hl, wcf64 - inc [hl] - jr .loop - -.done - call Function86810 - ld a, $4 - ld [MusicFade], a - call FadeToWhite - ld c, 8 - call DelayFrames - ret -; 8650c - -Function8650c: ; 8650c - call Function86748 - ld de, String_8652c - hlcoord 1, 2 - call PlaceString - call WaitBGMap - decoord 6, 5 - ld c, $6 - predef Functiond066e - ld c, 60 - call DelayFrames - and a - ret -; 8652c - -String_8652c: - db "New Hall of Famer!@" -; 8653f - - -GetHallOfFameParty: ; 8653f - ld hl, OverworldMap - ld bc, HOF_LENGTH - xor a - call ByteFill - ld a, [wHallOfFameCount] - ld de, OverworldMap - ld [de], a - inc de - ld hl, PartySpecies - ld c, 0 -.next - ld a, [hli] - cp -1 - jr z, .done - cp EGG - jr nz, .mon - inc c - jr .next - -.mon - push hl - push de - push bc - - ld a, c - ld hl, PartyMons - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld c, l - ld b, h - - ld hl, MON_SPECIES - add hl, bc - ld a, [hl] - ld [de], a - inc de - - ld hl, MON_ID - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - - ld hl, MON_DVS - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - - ld hl, MON_LEVEL - add hl, bc - ld a, [hl] - ld [de], a - inc de - - pop bc - push bc - ld a, c - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - call AddNTimes - ld bc, PKMN_NAME_LENGTH - 1 - call CopyBytes - - pop bc - inc c - pop de - ld hl, HOF_MON_LENGTH - add hl, de - ld e, l - ld d, h - pop hl - jr .next - -.done - ld a, $ff - ld [de], a - ret -; 865b5 - -Function865b5: ; 865b5 - push hl - call ClearBGPalettes - callba Function4e906 - pop hl - ld a, [hli] - ld [TempMonSpecies], a - ld [CurPartySpecies], a -rept 2 - inc hl -endr - ld a, [hli] - ld [TempMonDVs], a - ld a, [hli] - ld [TempMonDVs + 1], a - ld hl, TempMonDVs - predef GetUnownLetter - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ld de, VTiles2 tile $31 - predef GetBackpic - ld a, $31 - ld [hFillBox], a - hlcoord 6, 6 - lb bc, 6, 6 - predef FillBox - ld a, $d0 - ld [hSCY], a - ld a, $90 - ld [hSCX], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ld b, SCGB_1A - call GetSGBLayout - call SetPalettes - call Function86635 - xor a - ld [wc2c6], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - hlcoord 6, 5 - call _PrepMonFrontpic - call WaitBGMap - xor a - ld [hBGMapMode], a - ld [hSCY], a - call Function86643 - ret -; 86635 - -Function86635: ; 86635 -.loop - ld a, [hSCX] - cp $70 - ret z - add $4 - ld [hSCX], a - call DelayFrame - jr .loop -; 86643 - -Function86643: ; 86643 -.loop - ld a, [hSCX] - and a - ret z -rept 2 - dec a -endr - ld [hSCX], a - call DelayFrame - jr .loop -; 86650 - -_HallOfFamePC: ; 86650 - call LoadFontsBattleExtra - xor a - ld [wJumptableIndex], a -.loop - call Function8671c - ret c - call Function86665 - ret c - ld hl, wJumptableIndex - inc [hl] - jr .loop -; 86665 - -Function86665: ; 86665 - xor a - ld [wcf64], a -.next - call Function86692 - jr c, .start_button -.loop - call JoyTextDelay - ld hl, hJoyLast - ld a, [hl] - and B_BUTTON - jr nz, .b_button - ld a, [hl] - and A_BUTTON - jr nz, .a_button - ld a, [hl] - and START - jr nz, .start_button - call DelayFrame - jr .loop - -.a_button - ld hl, wcf64 - inc [hl] - jr .next - -.b_button - scf - ret - -.start_button - and a - ret -; 86692 - -Function86692: ; 86692 -; Print the number of times the player has entered the Hall of Fame. -; If that number is above 200, print "HOF Master!" instead. - ld a, [wcf64] - cp $6 - jr nc, .fail - ld hl, wc608 + 1 - ld bc, $10 - call AddNTimes - ld a, [hl] - cp $ff - jr nz, .okay - -.fail - scf - ret - -.okay - push hl - call ClearBGPalettes - pop hl - call Function86748 - ld a, [wc608] - cp 200 + 1 - jr c, .print_num_hof - ld de, String_866fc - hlcoord 1, 2 - call PlaceString - hlcoord 13, 2 - jr .finish - -.print_num_hof - ld de, String_8670c - hlcoord 1, 2 - call PlaceString - hlcoord 2, 2 - ld de, wc608 - lb bc, 1, 3 - call PrintNum - hlcoord 11, 2 - -.finish - ld de, String_866fb - call PlaceString - call WaitBGMap - ld b, SCGB_1A - call GetSGBLayout - call SetPalettes - decoord 6, 5 - ld c, $6 - predef Functiond066e - and a - ret -; 866fb - -String_866fb: - db "@" -; 866fc - -String_866fc: - db " HOF Master!@" -; 8670c - -String_8670c: - db " -Time Famer@" -; 8671c - - -Function8671c: ; 8671c - ld a, [wJumptableIndex] - cp NUM_HOF_TEAMS - jr nc, .full - ld hl, sHallOfFame - ld bc, HOF_LENGTH - call AddNTimes - ld a, BANK(sHallOfFame) - call GetSRAMBank - ld a, [hl] - and a - jr z, .fail - ld de, wc608 - ld bc, HOF_LENGTH - call CopyBytes - call CloseSRAM - and a - ret - -.fail - call CloseSRAM - -.full - scf - ret -; 86748 - -Function86748: ; 86748 - xor a - ld [hBGMapMode], a - ld a, [hli] - ld [TempMonSpecies], a - ld a, [hli] - ld [TempMonID], a - ld a, [hli] - ld [TempMonID + 1], a - ld a, [hli] - ld [TempMonDVs], a - ld a, [hli] - ld [TempMonDVs + 1], a - ld a, [hli] - ld [TempMonLevel], a - ld de, StringBuffer2 - ld bc, 10 - call CopyBytes - ld a, "@" - ld [StringBuffer2 + 10], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - hlcoord 0, 0 - lb bc, 3, SCREEN_WIDTH - 2 - call TextBox - hlcoord 0, 12 - lb bc, 4, SCREEN_WIDTH - 2 - call TextBox - ld a, [TempMonSpecies] - ld [CurPartySpecies], a - ld [wd265], a - ld hl, TempMonDVs - predef GetUnownLetter - xor a - ld [wc2c6], a - hlcoord 6, 5 - call _PrepMonFrontpic - ld a, [CurPartySpecies] - cp EGG - jr z, .print_id_no - hlcoord 1, 13 - ld a, $74 - ld [hli], a - ld [hl], $f2 - hlcoord 3, 13 - ld de, wd265 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - call GetBasePokemonName - hlcoord 7, 13 - call PlaceString - ld a, $3 - ld [MonType], a - callba GetGender - ld a, " " - jr c, .got_gender - ld a, "♂" - jr nz, .got_gender - ld a, "♀" - -.got_gender - hlcoord 18, 13 - ld [hli], a - hlcoord 8, 14 - ld a, "/" - ld [hli], a - ld de, StringBuffer2 - call PlaceString - hlcoord 1, 16 - call PrintLevel - -.print_id_no - hlcoord 7, 16 - ld a, "<ID>" - ld [hli], a - ld a, "№" - ld [hli], a - ld [hl], "/" - hlcoord 10, 16 - ld de, TempMonID - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - ret -; 86810 - -Function86810: ; 86810 - call ClearBGPalettes - ld hl, VTiles2 tile $63 - ld de, FontExtra + $d0 - lb bc, BANK(FontExtra), 1 - call Request2bpp - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - callba GetPlayerBackpic - ld a, $31 - ld [hFillBox], a - hlcoord 6, 6 - lb bc, 6, 6 - predef FillBox - ld a, $d0 - ld [hSCY], a - ld a, $90 - ld [hSCX], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ld [CurPartySpecies], a - ld b, SCGB_1A - call GetSGBLayout - call SetPalettes - call Function86635 - xor a - ld [wc2c6], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - callba Function88840 - xor a - ld [hFillBox], a - hlcoord 12, 5 - lb bc, 7, 7 - predef FillBox - ld a, $c0 - ld [hSCX], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ld [hSCY], a - call Function86643 - xor a - ld [hBGMapMode], a - hlcoord 0, 2 - lb bc, 8, 9 - call TextBox - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - hlcoord 2, 4 - ld de, PlayerName - call PlaceString - hlcoord 1, 6 - ld a, $73 - ld [hli], a - ld a, $74 - ld [hli], a - ld [hl], $f3 - hlcoord 4, 6 - ld de, PlayerID - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - hlcoord 1, 8 - ld de, .PlayTime - call PlaceString - hlcoord 3, 9 - ld de, GameTimeHours - lb bc, 2, 3 - call PrintNum - ld [hl], $63 - inc hl - ld de, GameTimeMinutes - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - call WaitBGMap - callba Function26601 - ret -; 868ed - -.PlayTime - db "PLAY TIME@" -; 868f7 - +INCLUDE "event/halloffame.asm" SECTION "bank22", ROMX, BANK[$22] @@ -29053,543 +25175,6 @@ Function8cf4f: ; 8cf4f INCLUDE "engine/sprites.asm" -Function8e79d: ; 8e79d - ld a, [hSGB] - ld de, GFX_8e7f4 - and a - jr z, .asm_8e7a8 - ld de, GFX_8e804 - -.asm_8e7a8 - ld hl, VTiles0 - lb bc, BANK(GFX_8e7f4), 1 - call Request2bpp - ld c, $8 - ld d, $0 -.asm_8e7b5 - push bc - call Function8e7c6 - call DelayFrame - pop bc -rept 2 - inc d -endr - dec c - jr nz, .asm_8e7b5 - call ClearSprites - ret -; 8e7c6 - -Function8e7c6: ; 8e7c6 - ld hl, Sprites - ld c, $8 -.asm_8e7cb - ld a, c - and a - ret z - dec c - ld a, c - sla a - sla a - sla a - push af - push de - push hl - call Function8e72c - pop hl - pop de - add $68 - ld [hli], a - pop af - push de - push hl - call Function8e72a - pop hl - pop de - add $54 - ld [hli], a - ld a, $0 - ld [hli], a - ld a, $6 - ld [hli], a - jr .asm_8e7cb -; 8e7f4 - -GFX_8e7f4: ; 8e7f4 -INCBIN "gfx/unknown/08e7f4.2bpp" -GFX_8e804: ; 8e804 -INCBIN "gfx/unknown/08e804.2bpp" - -InefficientlyClear121BytesAtwc300: ; 8e814 - push hl - push de - push bc - push af - ld hl, wc300 - ld bc, wc3c1 - wc300 -.loop - ld [hl], $0 - inc hl - dec bc - ld a, c - or b - jr nz, .loop - pop af - pop bc - pop de - pop hl - ret -; 8e82b - -Function8e82b: ; 8e82b - ld a, e - call ReadMonMenuIcon - ld l, a - ld h, 0 - add hl, hl - ld de, IconPointers - add hl, de - ld a, [hli] - ld e, a - ld d, [hl] - ld b, BANK(Icons) - ld c, 8 - ret -; 8e83f - -Function8e83f: ; 8e83f - push hl - push de - push bc - call Function8e849 - pop bc - pop de - pop hl - ret -; 8e849 - -Function8e849: ; 8e849 - ld d, 0 - ld hl, Jumptable_8e854 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 8e854 - - -Jumptable_8e854: ; 8e854 (23:6854) - dw Function8e8d5 - dw Function8e961 - dw Function8e97d - dw Function8e99a - dw Function8e898 - dw Function8e8b1 - dw Function8e862 - - -Function8e862: ; 8e862 (23:6862) - call Function8e908 - call Function8e86c - call Function8e936 - ret - -Function8e86c: ; 8e86c (23:686c) - push bc - ld a, [hObjectStructIndexBuffer] - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - pop bc - ld a, [hl] - and a - jr z, .asm_8e890 - push hl - push bc - ld d, a - callab ItemIsMail - pop bc - pop hl - jr c, .asm_8e88e - ld a, $6 - jr .asm_8e892 -.asm_8e88e - ld a, $5 -.asm_8e890 - ld a, $4 -.asm_8e892 - ld hl, $1 - add hl, bc - ld [hl], a - ret - -Function8e898: ; 8e898 (23:6898) - call Function8e8d5 - ld hl, $2 - add hl, bc - ld a, $0 - ld [hl], a - ld hl, $4 - add hl, bc - ld a, $48 - ld [hl], a - ld hl, $5 - add hl, bc - ld a, $48 - ld [hl], a - ret - -Function8e8b1: ; 8e8b1 (23:68b1) - call Function8e908 - call Function8e936 - ld hl, $2 - add hl, bc - ld a, $0 - ld [hl], a - ld hl, $4 - add hl, bc - ld a, $18 - ld [hl], a - ld hl, $5 - add hl, bc - ld a, $60 - ld [hl], a - ld a, c - ld [wc608], a - ld a, b - ld [wc608 + 1], a - ret - -Function8e8d5: ; 8e8d5 (23:68d5) - call Function8e908 - call Function8e8df - call Function8e936 - ret - -Function8e8df: ; 8e8df (23:68df) - push bc - ld a, [hObjectStructIndexBuffer] - ld hl, PartyMon1Item - ld bc, $30 - call AddNTimes - pop bc - ld a, [hl] - and a - ret z - push hl - push bc - ld d, a - callab ItemIsMail - pop bc - pop hl - jr c, .asm_8e900 - ld a, $3 - jr .asm_8e902 -.asm_8e900 - ld a, $2 -.asm_8e902 - ld hl, $1 - add hl, bc - ld [hl], a - ret - -Function8e908: ; 8e908 (23:6908) - ld a, [wc3b7] - push af - ld a, [hObjectStructIndexBuffer] - ld hl, PartySpecies - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call ReadMonMenuIcon - ld [CurIcon], a - call Function8e9db - ld a, [hObjectStructIndexBuffer] -; y coord -rept 4 - add a -endr - add $1c - ld d, a -; x coord - ld e, $10 -; type is partymon icon - ld a, SPRITE_ANIM_INDEX_00 - call InitSpriteAnimStruct - pop af - ld hl, $3 - add hl, bc - ld [hl], a - ret - -Function8e936: ; 8e936 (23:6936) - push bc - ld a, [hObjectStructIndexBuffer] - ld b, a - call Function8e94c - ld a, b - pop bc - ld hl, $9 - add hl, bc - ld [hl], a - rlca - rlca - ld hl, $d - add hl, bc - ld [hl], a - ret - -Function8e94c: ; 8e94c (23:694c) - callba PlacePartymonHPBar - call GetHPPal - ld e, d - ld d, 0 - ld hl, Unknown_8e95e - add hl, de - ld b, [hl] - ret -; 8e95e (23:695e) - -Unknown_8e95e: ; 8e95e - db $00, $40, $80 -; 8e961 - -Function8e961: ; 8e961 (23:6961) - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - xor a - call GetIconGFX - lb de, $24, $20 - ld a, SPRITE_ANIM_INDEX_00 - call InitSpriteAnimStruct - ld hl, $2 - add hl, bc - ld [hl], $0 - ret - -Function8e97d: ; 8e97d (23:697d) - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - xor a - call GetIconGFX - ld d, $1a - ld e, $24 - ld a, SPRITE_ANIM_INDEX_00 - call InitSpriteAnimStruct - ld hl, $2 - add hl, bc - ld [hl], $0 - ret - -Function8e99a: ; 8e99a (23:699a) - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - ld a, $62 - ld [wc3b7], a - call Function8e9db - ret - -GetSpeciesIcon: ; 8e9ac -; Load species icon into VRAM at tile a - push de - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - pop de - ld a, e - call GetIconGFX - ret -; 8e9bc - - -Function8e9bc: ; 8e9bc (23:69bc) - push de - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - pop de - ld a, e - call GetIcon_a - ret -; 8e9cc (23:69cc) - -Function8e9cc: ; 8e9cc - push de - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - pop de - call GetIcon_de - ret -; 8e9db - -Function8e9db: ; 8e9db (23:69db) - ld a, [wc3b7] - -GetIconGFX: ; 8e9de - call GetIcon_a - ld de, $80 ; 8 tiles - add hl, de - ld de, HeldItemIcons - lb bc, BANK(HeldItemIcons), 2 - call GetGFXUnlessMobile - ld a, [wc3b7] - add 10 - ld [wc3b7], a - ret - -HeldItemIcons: -INCBIN "gfx/icon/mail.2bpp" -INCBIN "gfx/icon/item.2bpp" -; 8ea17 - -GetIcon_de: ; 8ea17 -; Load icon graphics into VRAM starting from tile de. - ld l, e - ld h, d - jr GetIcon - -GetIcon_a: ; 8ea1b -; Load icon graphics into VRAM starting from tile a. - ld l, a - ld h, 0 - -GetIcon: ; 8ea1e -; Load icon graphics into VRAM starting from tile hl. - -; One tile is 16 bytes long. -rept 4 - add hl, hl -endr - - ld de, VTiles0 - add hl, de - push hl - -; The icons are contiguous, in order and of the same -; size, so the pointer table is somewhat redundant. - ld a, [CurIcon] - push hl - ld l, a - ld h, 0 - add hl, hl - ld de, IconPointers - add hl, de - ld a, [hli] - ld e, a - ld d, [hl] - pop hl - - lb bc, BANK(Icons), 8 - call GetGFXUnlessMobile - - pop hl - ret -; 8ea3f - -GetGFXUnlessMobile: ; 8ea3f - ld a, [wLinkMode] - cp LINK_MOBILE - jp nz, Request2bpp - jp Get2bpp_2 -; 8ea4a - -Function8ea4a: ; 8ea4a - ld hl, wc314 - ld e, $6 - ld a, [MenuSelection2] - ld d, a -.loop - ld a, [hl] - and a - jr z, .next - cp d - jr z, .loadwithtwo - ld a, $0 - jr .ok - -.loadwithtwo - ld a, $2 - -.ok - push hl - ld c, l - ld b, h - ld hl, $2 - add hl, bc - ld [hl], a - pop hl - -.next - ld bc, $10 - add hl, bc - dec e - jr nz, .loop - ret -; 8ea71 - -Function8ea71: ; 8ea71 - ld hl, wc314 - ld e, $6 -.loop - ld a, [hl] - and a - jr z, .zero - push hl - ld c, l - ld b, h - ld hl, $2 - add hl, bc - ld [hl], $1 - pop hl -.zero - ld bc, $10 - add hl, bc - dec e - jr nz, .loop - ret -; 8ea8c (23:6a8c) - -Function8ea8c: ; 8ea8c - ld hl, wc314 - ld e, $6 - ld a, [wd0e3] - ld d, a -.asm_8ea95 - ld a, [hl] - and a - jr z, .asm_8eaab - cp d - jr z, .asm_8eaa0 - ld a, $3 - jr .asm_8eaa2 -.asm_8eaa0 - ld a, $2 -.asm_8eaa2 - push hl - ld c, l - ld b, h - ld hl, $2 - add hl, bc - ld [hl], a - pop hl -.asm_8eaab - ld bc, $10 - add hl, bc - dec e - jr nz, .asm_8ea95 - ret - - -INCLUDE "menu/mon_icons.asm" - SECTION "bank24", ROMX, BANK[$24] @@ -29638,1095 +25223,7 @@ INCLUDE "engine/events_3.asm" INCLUDE "engine/radio.asm" -ReadPartyMonMail: ; b9229 - ld a, [CurPartyMon] - ld hl, sPartyMail - ld bc, MAIL_STRUCT_LENGTH - call AddNTimes - ld d, h - ld e, l -ReadAnyMail: ; b9237 - push de - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - call LoadFontsExtra - pop de - push de - ld a, BANK(sPartyMail) - call GetSRAMBank - callba Function1de5c8 - call CloseSRAM - ld a, c - ld de, GFX_1de5e6 - or a - jr z, .asm_b9268 - ld de, GFX_1de9e6 - sub $3 - jr c, .asm_b9268 - ld de, GFX_1dede6 - -.asm_b9268 - ld hl, VTiles1 - lb bc, BANK(GFX_1de5e6), $80 - call Get1bpp - pop de - call Functionb92b8 - call EnableLCD - call WaitBGMap - ld a, [wd1ec] - ld e, a - callba Function8cb4 - call SetPalettes - xor a - ld [hJoyPressed], a - call Functionb929a - call ClearBGPalettes - call DisableLCD - call LoadStandardFont - jp EnableLCD -; b929a - -Functionb929a: ; b929a -.asm_b929a - call GetJoypad - ld a, [hJoyPressed] - and A_BUTTON | B_BUTTON | START - jr z, .asm_b929a - and START - jr nz, .asm_b92a8 - ret - -.asm_b92a8 - ld a, [wJumptableIndex] - push af - callab Function845d4 - pop af - ld [wJumptableIndex], a - jr .asm_b929a -; b92b8 - -Functionb92b8: ; b92b8 - ld h, d - ld l, e - push hl - ld a, $0 - call GetSRAMBank - ld de, $2b - add hl, de - ld a, [hli] - ld [Buffer1], a - ld a, [hli] - ld [Buffer2], a - ld a, [hli] - ld [CurPartySpecies], a - ld b, [hl] - call CloseSRAM - ld hl, Unknown_b92f8 - ld c, 0 -.asm_b92d9 - ld a, [hli] - cp b - jr z, .asm_b92ea - cp $ff - jr z, .asm_b92e6 - inc c -rept 2 - inc hl -endr - jr .asm_b92d9 - -.asm_b92e6 - ld hl, Unknown_b92f8 - inc hl - -.asm_b92ea - ld a, c - ld [wd1ec], a - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .done - pop bc - push de - jp [hl] -.done - ret -; b92f8 - -Unknown_b92f8: ; b92f8 - dbw FLOWER_MAIL, Functionb963e - dbw SURF_MAIL, Functionb9317 - dbw LITEBLUEMAIL, Functionb9335 - dbw PORTRAITMAIL, Functionb96ca - dbw LOVELY_MAIL, Functionb944b - dbw EON_MAIL, Functionb93d2 - dbw MORPH_MAIL, Functionb94d6 - dbw BLUESKY_MAIL, Functionb9582 - dbw MUSIC_MAIL, Functionb9710 - dbw MIRAGE_MAIL, Functionb9776 - db $ff -; b9317 - -Functionb9317: ; b9317 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9d46 - ld c, $40 - call Functionb9915 - ld de, MailLaprasGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b994e - ld c, $8 - call Functionb9915 - jr Functionb9351 - -Functionb9335: ; b9335 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9dc6 - ld c, $40 - call Functionb9915 - ld de, MailDratiniGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b995e - ld c, $8 - call Functionb9915 - -Functionb9351: ; b9351 - ld de, Unknown_b9976 - ld c, $10 - call Functionb9915 - ld c, $10 - call Functionb990c - ld de, Unknown_b9c3e - ld c, $40 - call Functionb990c - ld c, $40 - call Functionb9915 - call Functionb9858 - hlcoord 2, 15 - ld a, $3f - call Functionb98d4 - ld a, $39 - hlcoord 15, 14 - call Functionb98fc - ld a, $44 - hlcoord 2, 2 - call Functionb98ee - hlcoord 15, 11 - call Functionb98ee - ld a, $4c - hlcoord 3, 12 - call Functionb98ee - hlcoord 15, 2 - call Functionb98ee - ld a, $50 - hlcoord 6, 3 - call Functionb98ee - ld a, $40 - hlcoord 13, 2 - ld [hli], a - hlcoord 6, 14 - ld [hl], a - ld a, $41 - hlcoord 4, 5 - ld [hli], a - hlcoord 17, 5 - ld [hli], a - hlcoord 13, 12 - ld [hl], a - ld a, $42 - hlcoord 9, 2 - ld [hli], a - hlcoord 14, 5 - ld [hli], a - hlcoord 3, 10 - ld [hl], a - ld a, $43 - hlcoord 6, 11 - ld [hli], a - pop hl - jp Functionb9803 -; b93d2 - -Functionb93d2: ; b93d2 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld de, Unknown_b998e - ld c, $8 - call Functionb990c - ld de, Unknown_b998e - ld c, $8 - call Functionb990c - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld de, Unknown_b9d76 - ld c, $8 - call Functionb9915 - ld de, MailPikaGFX - ld c, $30 - call Functionb991e - ld hl, VTiles2 tile $3d - ld de, Unknown_b9c9e - ld c, $20 - call Functionb990c - ld de, Unknown_b998e - ld c, $8 - call Functionb9915 - ld a, $31 - hlcoord 0, 0 - call Functionb98a8 - hlcoord 1, 17 - call Functionb98a8 - ld a, $33 - hlcoord 0, 1 - call Functionb98ba - hlcoord 19, 0 - call Functionb98ba - hlcoord 2, 15 - ld a, $35 - call Functionb98d4 - inc a - hlcoord 15, 14 - call Functionb98fc - call Functionb9491 - pop hl - jp Functionb9803 -; b944b - -Functionb944b: ; b944b - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9e26 - ld c, $28 - call Functionb9915 - ld de, MailPoliwagGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b9966 - ld c, $8 - call Functionb9915 - ld de, Unknown_b9c5e - ld c, $20 - call Functionb9915 - ld de, Unknown_b996e - ld c, $8 - call Functionb990c - call Functionb987b - hlcoord 2, 15 - ld a, $3c - call Functionb98d4 - ld a, $36 - hlcoord 15, 14 - call Functionb98fc - call Functionb9491 - pop hl - jp Functionb9803 -; b9491 - -Functionb9491: ; b9491 - ld a, $3d - hlcoord 2, 2 - call Functionb98ee - hlcoord 16, 2 - call Functionb98ee - hlcoord 9, 4 - call Functionb98ee - hlcoord 2, 11 - call Functionb98ee - hlcoord 6, 12 - call Functionb98ee - hlcoord 12, 11 - call Functionb98ee - ld a, $41 - hlcoord 5, 4 - ld [hl], a - hlcoord 6, 2 - ld [hl], a - hlcoord 12, 4 - ld [hl], a - hlcoord 14, 2 - ld [hl], a - hlcoord 3, 13 - ld [hl], a - hlcoord 9, 11 - ld [hl], a - hlcoord 16, 12 - ld [hl], a - ret -; b94d6 - -Functionb94d6: ; b94d6 - push bc - ld hl, VTiles2 tile $31 - ld bc, $28 - call Functionb97f8 - ld de, Unknown_b9c96 - ld c, 8 - call Functionb9915 - ld de, Unknown_b9c7e - ld c, 8 - call Functionb9915 - ld de, Unknown_b993e - ld c, 8 - call Functionb9915 - ld de, Unknown_b997e - ld c, 8 - call Functionb990c - ld de, Unknown_b9926 - ld c, 8 - call Functionb9915 - ld de, MailDittoGFX - ld c, $30 - call Functionb991e - call Functionb987b - ld a, $31 - hlcoord 1, 1 - call Functionb98ee - hlcoord 17, 15 - call Functionb98ee - hlcoord 1, 3 - ld [hl], a - hlcoord 3, 1 - ld [hl], a - hlcoord 16, 16 - ld [hl], a - hlcoord 18, 14 - ld [hl], a - ld a, $36 - hlcoord 1, 4 - ld [hl], a - hlcoord 2, 3 - ld [hl], a - hlcoord 3, 2 - ld [hl], a - hlcoord 4, 1 - ld [hl], a - inc a - hlcoord 15, 16 - ld [hl], a - hlcoord 16, 15 - ld [hl], a - hlcoord 17, 14 - ld [hl], a - hlcoord 18, 13 - ld [hl], a - inc a - hlcoord 2, 15 - ld b, $e - call Functionb98de - inc a - hlcoord 2, 11 - call Functionb98d4 - hlcoord 2, 5 - call Functionb98d4 - inc a - hlcoord 6, 1 - call Functionb98d0 - hlcoord 1, 16 - call Functionb98d0 - inc a - hlcoord 3, 13 - call Functionb98fc - pop hl - jp Functionb9803 -; b9582 - -Functionb9582: ; b9582 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld a, $ff - ld bc, $10 - call ByteFill - ld de, Unknown_b992e - ld c, $8 - call Functionb991e - ld de, MailDragoniteGFX - ld c, $b8 - call Functionb991e - ld de, MailCloudGFX - ld c, $30 - call Functionb990c - ld de, Unknown_b9db6 - ld c, $8 - call Functionb990c - ld de, MailCloudGFX - ld c, $8 - call Functionb990c - ld de, Unknown_b9d26 - ld c, $10 - call Functionb990c - ld de, Unknown_b9d3e - ld c, $8 - call Functionb990c - ld a, $31 - hlcoord 0, 0 - call Functionb98dc - hlcoord 0, 1 - call Functionb98e3 - hlcoord 19, 1 - call Functionb98e3 - inc a - hlcoord 0, 17 - call Functionb98dc - inc a - hlcoord 0, 16 - call Functionb98dc - inc a - hlcoord 2, 2 - call Functionb9636 - hlcoord 3, 3 - call Functionb9636 - hlcoord 4, 4 - call Functionb9636 - dec hl - ld [hl], $7f - dec a - hlcoord 15, 14 - call Functionb98ee - add $4 - hlcoord 15, 16 - ld [hli], a - inc a - ld [hl], a - inc a - push af - hlcoord 12, 1 - call Functionb98fc - pop af - hlcoord 15, 4 - call Functionb98fc - inc a - hlcoord 2, 11 - call Functionb98d4 - inc a - hlcoord 10, 3 - call Functionb98ee - pop hl - jp Functionb9803 -; b9636 - -Functionb9636: ; b9636 - ld b, $6 -.asm_b9638 - ld [hli], a - inc a - dec b - jr nz, .asm_b9638 - ret -; b963e - -Functionb963e: ; b963e - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9d86 - ld c, $40 - call Functionb990c - ld de, MailOddishGFX - ld c, $20 - call Functionb991e - ld de, Unknown_b9db6 - ld c, $8 - call Functionb9915 - ld de, Unknown_b9cbe - ld c, $20 - call Functionb990c - ld c, $20 - call Functionb9915 - call Functionb9858 - hlcoord 2, 15 - ld a, $3d - call Functionb98d4 - ld a, $39 - hlcoord 16, 13 - call Functionb98ee - hlcoord 2, 13 - call Functionb98ee - ld a, $3e - hlcoord 2, 2 - call Functionb98ee - hlcoord 5, 3 - call Functionb98ee - hlcoord 10, 2 - call Functionb98ee - hlcoord 16, 3 - call Functionb98ee - hlcoord 5, 11 - call Functionb98ee - hlcoord 16, 10 - call Functionb98ee - ld a, $42 - hlcoord 3, 4 - call Functionb98ee - hlcoord 12, 3 - call Functionb98ee - hlcoord 14, 2 - call Functionb98ee - hlcoord 2, 10 - call Functionb98ee - hlcoord 14, 11 - call Functionb98ee - pop hl - jp Functionb9803 -; b96ca - -Functionb96ca: ; b96ca - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9e4e - ld c, $28 - call Functionb9915 - ld de, Unknown_b995e - ld c, $8 - call Functionb9915 - ld hl, VTiles2 tile $3d - ld de, Unknown_b9bfe - ld c, $20 - call Functionb990c - ld de, Unknown_b9936 - ld c, $8 - call Functionb9915 - call Functionb987b - hlcoord 8, 15 - ld a, $36 - ld b, $a - call Functionb98de - call Functionb9491 - ld a, $1 - ld [UnownLetter], a - hlcoord 1, 10 - call PrepMonFrontpic - pop hl - jp Functionb9803 -; b9710 - -Functionb9710: ; b9710 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9e06 - ld c, $20 - call Functionb9915 - ld de, Unknown_b993e - ld c, $10 - call Functionb9915 - ld de, Unknown_b9996 - ld c, $30 - call Functionb991e - xor a - ld bc, $10 - call ByteFill - ld de, Unknown_b9cfe - ld c, $18 - call Functionb990c - ld de, Unknown_b9946 - ld c, $8 - call Functionb990c - ld a, $31 - hlcoord 0, 0 - call Functionb98a8 - hlcoord 1, 17 - call Functionb98a8 - ld a, $33 - hlcoord 0, 1 - call Functionb98ba - hlcoord 19, 0 - call Functionb98ba - ld a, $35 - hlcoord 2, 15 - call Functionb989e - ld a, $37 - hlcoord 15, 14 - call Functionb98fc - call Functionb9491 - pop hl - jp Functionb9803 -; b9776 - -Functionb9776: ; b9776 - push bc - ld hl, VTiles2 tile $31 - ld bc, $28 - call Functionb97f8 - ld de, Unknown_b992e - ld c, $8 - call Functionb9915 - ld de, MailMewGFX - ld c, $90 - call Functionb9915 - ld de, Unknown_b9dce - ld c, $8 - call Functionb990c - ld de, Unknown_b9df6 - ld c, $8 - call Functionb990c - call Functionb987b - ld a, $36 - hlcoord 1, 16 - call Functionb98d8 - inc a - hlcoord 15, 14 - call Functionb98fc - inc a - hlcoord 15, 16 - ld [hli], a - inc a - ld [hl], a - ld a, $3f - hlcoord 1, 1 - call Functionb98a8 - ld a, $41 - hlcoord 0, 2 - call Functionb98b5 - ld a, $43 - hlcoord 19, 2 - call Functionb98b5 - ld a, $45 - hlcoord 0, 1 - ld [hl], a - inc a - hlcoord 19, 1 - ld [hl], a - inc a - hlcoord 0, 16 - ld [hl], a - inc a - hlcoord 19, 16 - ld [hl], a - inc a - hlcoord 2, 5 - call Functionb98d4 - inc a - hlcoord 2, 11 - call Functionb98d4 - pop hl - jp Functionb9803 -; b97f8 - -Functionb97f8: ; b97f8 -.asm_b97f8 - xor a - ld [hli], a - ld a, $ff - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_b97f8 - ret -; b9803 - -Functionb9803: ; b9803 - ld bc, $2f - ld de, wd002 - ld a, $0 - call GetSRAMBank - call CopyBytes - call CloseSRAM - ld hl, wd023 - ld de, wd050 - ld bc, $a - call CopyBytes - ld a, $50 - ld [wd023], a - ld [wd05a], a - ld de, wd002 - hlcoord 2, 7 - call PlaceString - ld de, wd050 - ld a, [de] - and a - ret z - ld a, [wd1ec] - hlcoord 8, 14 - cp $3 - jr z, .asm_b984b - hlcoord 6, 14 - cp $6 - jr z, .asm_b984b - hlcoord 5, 14 - -.asm_b984b - jp PlaceString -; b984e - -Functionb984e: ; b984e -.asm_b984e - ld a, [hl] - xor $ff - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_b984e - ret -; b9858 - -Functionb9858: ; b9858 - hlcoord 0, 0 - ld a, $31 - ld [hli], a - inc a - call Functionb98d8 - inc a - ld [hli], a - inc a - call Functionb98e3 - ld a, $36 - ld [hli], a - inc a - call Functionb98d8 - hlcoord 19, 1 - ld a, $35 - call Functionb98e3 - ld a, $38 - ld [hl], a - ret -; b987b - -Functionb987b: ; b987b - hlcoord 0, 0 - ld a, $31 - ld [hli], a - inc a - call Functionb98d8 - ld [hl], $31 - inc hl - inc a - call Functionb98e3 - ld [hl], $31 - inc hl - inc a - call Functionb98d8 - hlcoord 19, 1 - ld a, $35 - call Functionb98e3 - ld [hl], $31 - ret -; b989e - -Functionb989e: ; b989e - push af - ld b, $7 - jr Functionb98ab - -Functionb98a3: ; b98a3 - push af - ld b, $8 - jr Functionb98ab - -Functionb98a8: ; b98a8 - push af - ld b, $9 - -Functionb98ab: ; b98ab - ld [hli], a - inc a - ld [hli], a - dec a - dec b - jr nz, Functionb98ab - ld [hl], a - pop af - ret -; b98b5 - -Functionb98b5: ; b98b5 - push af - ld b, $7 - jr Functionb98bd - -Functionb98ba: ; b98ba - push af - ld b, $8 - -Functionb98bd: ; b98bd - ld [hl], a - ld de, SCREEN_WIDTH - add hl, de - inc a - ld [hl], a - add hl, de - dec a - dec b - jr nz, Functionb98bd - ld [hl], a - pop af - ret -; b98cc - -Functionb98cc: ; b98cc - ld b, $7 - jr Functionb98de - -Functionb98d0: ; b98d0 - ld b, $d - jr Functionb98de - -Functionb98d4: ; b98d4 - ld b, $10 - jr Functionb98de - -Functionb98d8: ; b98d8 - ld b, $12 - jr Functionb98de - -Functionb98dc: ; b98dc - ld b, $14 - -Functionb98de: ; b98de - ld [hli], a - dec b - jr nz, Functionb98de - ret -; b98e3 - -Functionb98e3: ; b98e3 - ld b, $10 - ld de, SCREEN_WIDTH -.asm_b98e8 - ld [hl], a - add hl, de - dec b - jr nz, .asm_b98e8 - ret -; b98ee - -Functionb98ee: ; b98ee - push af - ld [hli], a - inc a - ld [hl], a - ld bc, $13 - add hl, bc - inc a - ld [hli], a - inc a - ld [hl], a - pop af - ret -; b98fc - -Functionb98fc: ; b98fc - ld [hli], a - inc a - ld [hli], a - inc a - ld [hl], a - ld bc, SCREEN_HEIGHT - add hl, bc - inc a - ld [hli], a - inc a - ld [hli], a - inc a - ld [hl], a - ret -; b990c - -Functionb990c: ; b990c -.asm_b990c - ld a, [de] - inc de - ld [hli], a - xor a - ld [hli], a - dec c - jr nz, .asm_b990c - ret -; b9915 - -Functionb9915: ; b9915 -.asm_b9915 - xor a - ld [hli], a - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_b9915 - ret -; b991e - -Functionb991e: ; b991e -.asm_b991e - ld a, [de] - inc de -rept 2 - ld [hli], a -endr - dec c - jr nz, .asm_b991e - ret -; b9926 - -Unknown_b9926: ; b9926 -INCBIN "gfx/unknown/0b9926.1bpp" - -Unknown_b992e: ; b992e -INCBIN "gfx/unknown/0b992e.1bpp" - -Unknown_b9936: ; b9936 -INCBIN "gfx/unknown/0b9936.1bpp" - -Unknown_b993e: ; b993e -INCBIN "gfx/unknown/0b993e.1bpp" - -Unknown_b9946: ; b9946 -INCBIN "gfx/unknown/0b9946.1bpp" - -Unknown_b994e: ; b994e -INCBIN "gfx/unknown/0b994e.1bpp" - -Unknown_b995e: ; b995e -INCBIN "gfx/unknown/0b995e.1bpp" - -Unknown_b9966: ; b9966 -INCBIN "gfx/unknown/0b9966.1bpp" - -Unknown_b996e: ; b996e -INCBIN "gfx/unknown/0b996e.1bpp" - -Unknown_b9976: ; b9976 -INCBIN "gfx/unknown/0b9976.1bpp" - -Unknown_b997e: ; b997e -INCBIN "gfx/unknown/0b997e.1bpp" - -Unknown_b998e: ; b998e -INCBIN "gfx/unknown/0b998e.1bpp" - -Unknown_b9996: ; b9996 -INCBIN "gfx/unknown/0b9996.1bpp" - -MailDratiniGFX: ; b99c6 -INCBIN "gfx/unknown/0b99c6.1bpp" - -MailPoliwagGFX: ; b99f6 -INCBIN "gfx/unknown/0b99f6.1bpp" - -MailLaprasGFX: ; b9a26 -INCBIN "gfx/unknown/0b9a26.1bpp" - -MailPikaGFX: ; b9a56 -INCBIN "gfx/unknown/0b9a56.1bpp" - -MailDittoGFX: ; b9a86 -INCBIN "gfx/unknown/0b9a86.1bpp" - -MailMewGFX: ; b9ab6 -INCBIN "gfx/unknown/0b9ab6.1bpp" - -MailDragoniteGFX: ; b9b46 -INCBIN "gfx/unknown/0b9b46.1bpp" - -MailSentretGFX: ; b9bce -INCBIN "gfx/unknown/0b9bce.1bpp" - -Unknown_b9bee: ; b9bee -INCBIN "gfx/unknown/0b9bee.1bpp" - -Unknown_b9bfe: ; b9bfe -INCBIN "gfx/unknown/0b9bfe.1bpp" - -MailOddishGFX: ; b9c1e -INCBIN "gfx/unknown/0b9c1e.1bpp" - -Unknown_b9c3e: ; b9c3e -INCBIN "gfx/unknown/0b9c3e.1bpp" - -Unknown_b9c5e: ; b9c5e -INCBIN "gfx/unknown/0b9c5e.1bpp" - -Unknown_b9c7e: ; b9c7e -INCBIN "gfx/unknown/0b9c7e.1bpp" - -Unknown_b9c96: ; b9c96 -INCBIN "gfx/unknown/0b9c96.1bpp" - -Unknown_b9c9e: ; b9c9e -INCBIN "gfx/unknown/0b9c9e.1bpp" - -Unknown_b9cbe: ; b9cbe -INCBIN "gfx/unknown/0b9cbe.1bpp" - -Unknown_b9cde: ; b9cde -INCBIN "gfx/unknown/0b9cde.1bpp" - -Unknown_b9cfe: ; b9cfe -INCBIN "gfx/unknown/0b9cfe.1bpp" - -MailCloudGFX: ; b9d16 -INCBIN "gfx/unknown/0b9d16.1bpp" - -Unknown_b9d26: ; b9d26 -INCBIN "gfx/unknown/0b9d26.1bpp" - -Unknown_b9d3e: ; b9d3e -INCBIN "gfx/unknown/0b9d3e.1bpp" - -Unknown_b9d46: ; b9d46 -INCBIN "gfx/unknown/0b9d46.1bpp" - -Unknown_b9d76: ; b9d76 -INCBIN "gfx/unknown/0b9d76.1bpp" - -Unknown_b9d86: ; b9d86 -INCBIN "gfx/unknown/0b9d86.1bpp" - -Unknown_b9db6: ; b9db6 -INCBIN "gfx/unknown/0b9db6.1bpp" - -Unknown_b9dc6: ; b9dc6 -INCBIN "gfx/unknown/0b9dc6.1bpp" - -Unknown_b9dce: ; b9dce -INCBIN "gfx/unknown/0b9dce.1bpp" - -Unknown_b9df6: ; b9df6 -INCBIN "gfx/unknown/0b9df6.1bpp" - -Unknown_b9e06: ; b9e06 -INCBIN "gfx/unknown/0b9e06.1bpp" - -Unknown_b9e26: ; b9e26 -INCBIN "gfx/unknown/0b9e26.1bpp" - -Unknown_b9e4e: ; b9e4e -INCBIN "gfx/unknown/0b9e4e.1bpp" - - -ItemIsMail: ; b9e76 - ld a, d - ld hl, .items - ld de, 1 - jp IsInArray -; b9e80 - -.items - db FLOWER_MAIL - db SURF_MAIL - db LITEBLUEMAIL - db PORTRAITMAIL - db LOVELY_MAIL - db EON_MAIL - db MORPH_MAIL - db BLUESKY_MAIL - db MUSIC_MAIL - db MIRAGE_MAIL - db $ff -; b9e8b - +INCLUDE "gfx/mail.asm" SECTION "bank2F", ROMX, BANK[$2F] @@ -31159,3463 +25656,12 @@ INCBIN "gfx/misc/copyright.2bpp" ; e41d0 INCLUDE "engine/options_menu.asm" - -Functione455c: ; e455c - hlcoord 1, 1 - ld de, SCREEN_WIDTH - ld c, $10 -.asm_e4564 - ld [hl], $7f - add hl, de - dec c - jr nz, .asm_e4564 - hlcoord 1, 2 - ld bc, $28 - ld a, [wJumptableIndex] - call AddNTimes - ld [hl], $ed - ret -; e4579 - - -Functione4579: ; e4579 - ld de, MUSIC_NONE - call PlayMusic - call ClearBGPalettes - call ClearTileMap - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - xor a - ld [hBGMapAddress], a - ld [hJoyDown], a - ld [hSCX], a - ld [hSCY], a - ld a, $90 - ld [hWY], a - call WaitBGMap - ld b, SCGB_19 - call GetSGBLayout - call SetPalettes - ld c, 10 - call DelayFrames - callab Copyright - call WaitBGMap - ld c, 100 - call DelayFrames - call ClearTileMap - callba GBCOnlyScreen - call Functione45e8 -.joy_loop - call JoyTextDelay - ld a, [hJoyLast] - and BUTTONS - jr nz, .pressed_button - ld a, [wJumptableIndex] - bit 7, a - jr nz, .finish - call PlaceGameFreakPresents - callba Function8cf69 - call DelayFrame - jr .joy_loop - -.pressed_button - call Functione465e - scf - ret - -.finish - call Functione465e - and a - ret -; e45e8 - -Functione45e8: ; e45e8 - ld de, GameFreakLogo - ld hl, VTiles2 - lb bc, BANK(GameFreakLogo), $1c - call Get1bpp - - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - - ld hl, IntroLogoGFX - ld de, w6_d000 - ld a, BANK(IntroLogoGFX) - call FarDecompress - - ld hl, VTiles0 - ld de, w6_d000 - lb bc, 1, 8 tiles - call Request2bpp - - ld hl, VTiles1 - ld de, w6_d000 + $80 tiles - lb bc, 1, 8 tiles - call Request2bpp - - pop af - ld [rSVBK], a - - callba Function8cf53 - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_03 - call _InitSpriteAnimStruct - ld hl, $7 - add hl, bc - ld [hl], $a0 - ld hl, $c - add hl, bc - ld [hl], $60 - ld hl, $d - add hl, bc - ld [hl], $30 - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [hSCX], a - ld [hSCY], a - ld a, $1 - ld [hBGMapMode], a - ld a, $90 - ld [hWY], a - ld de, $e4e4 - call DmgToCgbObjPals - ret -; e465e - -Functione465e: ; e465e - callba Function8cf53 - call ClearTileMap - call ClearSprites - ld c, 16 - call DelayFrames - ret -; e4670 - -PlaceGameFreakPresents: ; e4670 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e467f - -.jumptable: ; e467f - dw PlaceGameFreakPresents_0 - dw PlaceGameFreakPresents_1 - dw PlaceGameFreakPresents_2 - dw PlaceGameFreakPresents_3 -; e4687 - -PlaceGameFreakPresents_AdvanceIndex: ; e4687 - ld hl, wJumptableIndex - inc [hl] - ret -; e468c - -PlaceGameFreakPresents_0: ; e468c - ret -; e468d - -PlaceGameFreakPresents_1: ; e468d - ld hl, wcf65 - ld a, [hl] - cp $20 - jr nc, .PlaceGameFreak - inc [hl] - ret - -.PlaceGameFreak - ld [hl], 0 - ld hl, .GAME_FREAK - decoord 5, 10 - ld bc, .end - .GAME_FREAK - call CopyBytes - call PlaceGameFreakPresents_AdvanceIndex - ld de, SFX_GAME_FREAK_PRESENTS - call PlaySFX - ret -; e46af - -.GAME_FREAK - ; G A M E _ F R E A K - db 0, 1, 2, 3, 13, 4, 5, 3, 1, 6 -.end - db "@" -; e46ba - -PlaceGameFreakPresents_2: ; e46ba - ld hl, wcf65 - ld a, [hl] - cp $40 - jr nc, .place_presents - inc [hl] - ret - -.place_presents - ld [hl], 0 - ld hl, .presents - decoord 7,11 - ld bc, .end - .presents - call CopyBytes - call PlaceGameFreakPresents_AdvanceIndex - ret -; e46d6 - -.presents - db 7, 8, 9, 10, 11, 12 -.end - db "@" -; e46dd - -PlaceGameFreakPresents_3: ; e46dd - ld hl, wcf65 - ld a, [hl] - cp $80 - jr nc, .finish - inc [hl] - ret - -.finish - ld hl, wJumptableIndex - set 7, [hl] - ret -; e46ed - - - -GameFreakLogoJumper: ; e46ed (39:46ed) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, GameFreakLogoScenes -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -GameFreakLogoScenes: ; e46fd (39:46fd) - dw GameFreakLogoScene1 - dw GameFreakLogoScene2 - dw GameFreakLogoScene3 - dw GameFreakLogoScene4 - dw GameFreakLogoScene5 - - -GameFreakLogoScene1: ; e4707 (39:4707) - ld hl, $b - add hl, bc - inc [hl] - ret - -GameFreakLogoScene2: ; e470d (39:470d) - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_e4747 - ld d, a - ld hl, $d - add hl, bc - ld a, [hl] - and $3f - cp $20 - jr nc, .asm_e4723 - add $20 -.asm_e4723 - ld e, a - callba Functionce765 - ld hl, $7 - add hl, bc - ld [hl], e - ld hl, $d - add hl, bc - ld a, [hl] - dec [hl] - and $1f - ret nz - ld hl, $c - add hl, bc - ld a, [hl] - sub $30 - ld [hl], a - ld de, SFX_DITTO_BOUNCE - call PlaySFX - ret -.asm_e4747 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $d - add hl, bc - ld [hl], $0 - ld de, SFX_DITTO_POP_UP - call PlaySFX - ret - -GameFreakLogoScene3: ; e4759 (39:4759) - ld hl, $d - add hl, bc - ld a, [hl] - cp $20 - jr nc, .asm_e4764 - inc [hl] - ret -.asm_e4764 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $d - add hl, bc - ld [hl], $0 - ld de, SFX_DITTO_TRANSFORM - call PlaySFX - ret - -GameFreakLogoScene4: ; e4776 (39:4776) - ld hl, $d - add hl, bc - ld a, [hl] - cp $40 - jr z, .asm_e47a3 - inc [hl] - srl a - srl a - ld e, a - ld d, $0 - ld hl, GameFreakLogoPalettes -rept 2 - add hl, de -endr - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, [hli] - ld [OBPals + 12], a - ld a, [hli] - ld [OBPals + 13], a - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -.asm_e47a3 - ld hl, $b - add hl, bc - inc [hl] - call PlaceGameFreakPresents_AdvanceIndex - -GameFreakLogoScene5: ; e47ab (39:47ab) - ret -; e47ac (39:47ac) - -GameFreakLogoPalettes: ; e47ac -; Ditto's color as it turns into the Game Freak logo. -; Fade from pink to orange. -; One color per step. - RGB 23, 12, 28 - RGB 23, 12, 27 - RGB 23, 13, 26 - RGB 23, 13, 24 - RGB 24, 14, 22 - RGB 24, 14, 20 - RGB 24, 15, 18 - RGB 24, 15, 16 - RGB 25, 16, 14 - RGB 25, 16, 12 - RGB 25, 17, 10 - RGB 25, 17, 08 - RGB 26, 18, 06 - RGB 26, 18, 04 - RGB 26, 19, 02 - RGB 26, 19, 00 -;' e47cc - -GameFreakLogo: ; e47cc -INCBIN "gfx/splash/logo.1bpp" -; e48ac - -CrystalIntro: ; e48ac - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - ld a, [hInMenu] - push af - ld a, [hVBlank] - push af - call Functione4901 -.loop: ; e48bc - call JoyTextDelay - ld a, [hJoyLast] - and BUTTONS - jr nz, .ShutOffMusic - ld a, [wJumptableIndex] - bit 7, a - jr nz, .done - call IntroSceneJumper - callba Function8cf69 - call DelayFrame - jp .loop - -.ShutOffMusic - ld de, MUSIC_NONE - call PlayMusic - -.done - call ClearBGPalettes - call ClearSprites - call ClearTileMap - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - pop af - ld [hVBlank], a - pop af - ld [hInMenu], a - pop af - ld [rSVBK], a - ret -; e4901 - -Functione4901: ; e4901 - xor a - ld [hVBlank], a - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - ld [wJumptableIndex], a - ret -; e490f - -IntroSceneJumper: ; e490f - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, IntroScenes -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e491e - - -IntroScenes: ; e491e (39:491e) - dw IntroScene1 - dw IntroScene2 - dw IntroScene3 - dw IntroScene4 - dw IntroScene5 - dw IntroScene6 - dw IntroScene7 - dw IntroScene8 - dw IntroScene9 - dw IntroScene10 - dw IntroScene11 - dw IntroScene12 - dw IntroScene13 - dw IntroScene14 - dw IntroScene15 - dw IntroScene16 - dw IntroScene17 - dw IntroScene18 - dw IntroScene19 - dw IntroScene20 - dw IntroScene21 - dw IntroScene22 - dw IntroScene23 - dw IntroScene24 - dw IntroScene25 - dw IntroScene26 - dw IntroScene27 - dw IntroScene28 - - -NextIntroScene: ; e4956 (39:4956) - ld hl, wJumptableIndex - inc [hl] - ret - -IntroScene1: ; e495b (39:495b) -; Setup the next scene. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap001 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroUnownsGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroPulseGFX - ld de, VTiles0 tile $00 - call Functione54c2 - ld hl, IntroTilemap002 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_365ad - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_365ad - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wIntroSceneFrameCounter], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene2: ; e49d6 (39:49d6) -; First Unown (A) fades in, pulses, then fades out. - ld hl, wIntroSceneFrameCounter - ld a, [hl] - inc [hl] - cp $80 - jr nc, .endscene - cp $60 - jr nz, .DontPlaySound - push af - ld de, $5858 - call Functione51dc - ld de, SFX_INTRO_UNOWN_1 - call PlaySFX - pop af -.DontPlaySound - ld [wcf65], a - xor a - call Functione5223 - ret -.endscene - call NextIntroScene - ret - -IntroScene3: ; e49fd (39:49fd) -; More setup. Transition to the outdoor scene. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap003 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroBackgroundGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap004 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e5edd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e5edd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - call Functione5516 - call Functione549e - xor a - ld [wIntroSceneFrameCounter], a - call NextIntroScene - ret - -IntroScene4: ; e4a69 (39:4a69) -; Scroll the outdoor panorama for a bit. - call Functione552f - ld hl, wIntroSceneFrameCounter - ld a, [hl] - cp $80 - jr z, .endscene - inc [hl] - ret -.endscene - call NextIntroScene - ret - -IntroScene5: ; e4a7a (39:4a7a) -; Go back to the Unown. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld [hLCDStatCustom], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap005 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroUnownsGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroPulseGFX - ld de, VTiles0 tile $00 - call Functione54c2 - ld hl, IntroTilemap006 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_365ad - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_365ad - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene6: ; e4af7 (39:4af7) -; Two more Unown (I, H) fade in. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $80 - jr nc, .endscene - cp $60 - jr z, .SecondUnown - cp $40 - jr nc, .StopUnown - cp $20 - jr z, .FirstUnown - jr .NoUnown -.FirstUnown - push af - ld de, $3878 - call Functione51dc - ld de, SFX_INTRO_UNOWN_2 - call PlaySFX - pop af -.NoUnown - ld [wcf65], a - xor a - call Functione5223 - ret -.SecondUnown - push af - ld de, $7030 - call Functione51dc - ld de, SFX_INTRO_UNOWN_1 - call PlaySFX - pop af -.StopUnown - ld [wcf65], a - ld a, $1 - call Functione5223 - ret -.endscene - call NextIntroScene - ret - -IntroScene7: ; e4b3f (39:4b3f) -; Back to the outdoor scene. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap003 - ld de, VBGMap0 tile $00 - call Functione54fa - ld hl, IntroPichuWooperGFX - ld de, VTiles0 tile $00 - call Functione54c2 - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneRunGFX - ld de, VTiles0 tile $00 - call Functione54de - ld hl, IntroBackgroundGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap004 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e5edd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e5edd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - call Functione5516 - callba Function8cf53 - depixel 13, 27, 4, 0 - ld a, SPRITE_ANIM_INDEX_26 - call _InitSpriteAnimStruct - ld a, $f0 - ld [wc3c0], a - call Functione549e - xor a - ld [wIntroSceneFrameCounter], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene8: ; e4bd3 (39:4bd3) -; Scroll the scene, then show Suicune running across the screen. - ld hl, wIntroSceneFrameCounter - ld a, [hl] - inc [hl] - cp $40 - jr z, .asm_e4be2 - jr nc, .asm_e4be8 - call Functione552f - ret -.asm_e4be2 - ld de, SFX_INTRO_SUICUNE_3 - call PlaySFX -.asm_e4be8 - ld a, [wc3c0] - and a - jr z, .asm_e4bf4 - sub $8 - ld [wc3c0], a - ret -.asm_e4bf4 - ld de, SFX_INTRO_SUICUNE_2 - call PlaySFX - callba Function8d03d - call NextIntroScene - ret - -IntroScene9: ; e4c04 (39:4c04) -; Set up the next scene (same bg). - xor a - ld [hLCDStatCustom], a - call ClearSprites - hlcoord 0, 0, AttrMap - ld bc, $f0 - ld a, $1 - call ByteFill - ld bc, $3c - ld a, $2 - call ByteFill - ld bc, $3c - ld a, $3 - call ByteFill - ld a, $2 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - call DelayFrame - ld a, $c - ld [hBGMapAddress], a - call DelayFrame - call DelayFrame - call DelayFrame - xor a - ld [hBGMapMode], a - ld [hBGMapAddress], a - ld [wc3c0], a - xor a - ld [wcf64], a - call NextIntroScene - ret - -IntroScene10: ; e4c4f (39:4c4f) -; Wooper and Pichu enter. - call Functione546d - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $c0 - jr z, .done - cp $20 - jr z, .wooper - cp $40 - jr z, .pichu - ret - -.pichu - depixel 21, 16, 1, 0 - ld a, SPRITE_ANIM_INDEX_27 - call _InitSpriteAnimStruct - ld de, SFX_INTRO_PICHU - call PlaySFX - ret - -.wooper - depixel 22, 6 - ld a, SPRITE_ANIM_INDEX_28 - call _InitSpriteAnimStruct - ld de, SFX_INTRO_PICHU - call PlaySFX - ret -.done - call NextIntroScene - ret - -IntroScene11: ; e4c86 (39:4c86) -; Back to Unown again. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld [hLCDStatCustom], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap007 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroUnownsGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap008 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_365ad - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_365ad - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wIntroSceneFrameCounter], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene12: ; e4cfa (39:4cfa) -; Even more Unown. - call Functione4d36 - ld hl, wIntroSceneFrameCounter - ld a, [hl] - inc [hl] - cp $c0 - jr nc, .asm_e4d32 - cp $80 - jr nc, .asm_e4d1d - ld c, a - and $1f - sla a - ld [wcf65], a - ld a, c - and $e0 - srl a - swap a - call Functione5223 - ret -.asm_e4d1d - ld c, a - and $f - sla a - sla a - ld [wcf65], a - ld a, c - and $70 - or $40 - swap a - call Functione5223 - ret -.asm_e4d32 - call NextIntroScene - ret - -Functione4d36: ; e4d36 (39:4d36) - ld a, [wIntroSceneFrameCounter] - ld c, a - ld hl, .UnownSounds -.loop - ld a, [hli] - cp -1 - ret z - cp c - jr z, .playsound -rept 2 - inc hl -endr - jr .loop -.playsound - ld a, [hli] - ld d, [hl] - ld e, a - push de - call SFXChannelsOff - pop de - call PlaySFX - ret -; e4d54 (39:4d54) - -.UnownSounds: ; e4d54 - dbw $00, SFX_INTRO_UNOWN_3 - dbw $20, SFX_INTRO_UNOWN_2 - dbw $40, SFX_INTRO_UNOWN_1 - dbw $60, SFX_INTRO_UNOWN_2 - dbw $80, SFX_INTRO_UNOWN_3 - dbw $90, SFX_INTRO_UNOWN_2 - dbw $a0, SFX_INTRO_UNOWN_1 - dbw $b0, SFX_INTRO_UNOWN_2 - db $ff -; e4d6d - -IntroScene13: ; e4d6d (39:4d6d) -; Switch scenes again. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap003 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneRunGFX - ld de, VTiles0 tile $00 - call Functione54de - ld hl, IntroBackgroundGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap004 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e5edd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e5edd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - depixel 13, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_26 - call _InitSpriteAnimStruct - ld de, MUSIC_CRYSTAL_OPENING - call PlayMusic - xor a - ld [wc3c0], a - call Functione549e - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene14: ; e4dfa (39:4dfa) -; Suicune runs then jumps. - ld a, [hSCX] - sub 10 - ld [hSCX], a - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $80 - jr z, .done - cp $60 - jr z, .jump - jr nc, .asm_e4e1a - cp $40 - jr nc, .asm_e4e33 - ret - -.jump - ld de, SFX_INTRO_SUICUNE_4 - call PlaySFX - -.asm_e4e1a - ld a, $1 - ld [wcf65], a - ld a, [wc3c0] - cp $88 - jr c, .asm_e4e2c - sub $8 - ld [wc3c0], a - ret - -.asm_e4e2c - callba Function8d03d - ret - -.asm_e4e33 - ld a, [wc3c0] - sub $2 - ld [wc3c0], a - ret - -.done - call NextIntroScene - ret - -IntroScene15: ; e4e40 (39:4e40) -; Transition to a new scene. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap009 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneJumpGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroUnownBackGFX - ld de, VTiles0 tile $00 - call Functione54c2 - ld de, GFX_e7a5d - ld hl, VTiles1 tile $00 - lb bc, BANK(GFX_e7a5d), 1 - call Request2bpp - ld hl, IntroTilemap010 - ld de, VBGMap0 tile $00 - call Functione54fa - call Functione541b - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e77dd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e77dd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld a, $90 - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - depixel 8, 5 - ld a, SPRITE_ANIM_INDEX_2A - call _InitSpriteAnimStruct - depixel 12, 0 - ld a, SPRITE_ANIM_INDEX_2B - call _InitSpriteAnimStruct - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene16: ; e4edc (39:4edc) -; Suicune shows its face. An Unown appears in front. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $80 - jr nc, .done - call Functione5441 - ld a, [hSCY] - and a - ret z - add 8 - ld [hSCY], a - ret -.done - call NextIntroScene - ret - -IntroScene17: ; e4ef5 (39:4ef5) -; ... - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap011 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneCloseGFX - ld de, VTiles1 tile $00 - call Functione54de - ld hl, IntroTilemap012 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e6d6d - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e6d6d - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene18: ; e4f67 (39:4f67) -; Suicune close up. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $60 - jr nc, .done - ld a, [hSCX] - cp $60 - ret z - add 8 - ld [hSCX], a - ret -.done - call NextIntroScene - ret - -IntroScene19: ; e4f7e (39:4f7e) -; More setup. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap013 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneBackGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroUnownsGFX - ld de, VTiles1 tile $00 - call Functione54c2 - ld de, GFX_e7a5d - ld hl, VTiles1 tile $7f - lb bc, BANK(GFX_e7a5d), 1 - call Request2bpp - ld hl, IntroTilemap014 - ld de, VBGMap0 tile $00 - call Functione54fa - call Functione541b - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e77dd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e77dd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld a, $d8 - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - ld hl, wc300 - xor a - ld [hli], a - ld [hl], $7f - call Functione549e - depixel 12, 0 - ld a, SPRITE_ANIM_INDEX_2B - call _InitSpriteAnimStruct - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene20: ; e5019 (39:5019) -; Suicune running away. A bunch of Unown appear. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $98 - jr nc, .asm_e5059 - cp $58 - ret nc - cp $40 - jr nc, .asm_e5032 - cp $28 - ret nc - ld a, [hSCY] - inc a - ld [hSCY], a - ret - -.asm_e5032 - sub $18 - ld c, a - and $3 - cp $3 - ret nz - ld a, c - and $1c - srl a - srl a - ld [wcf65], a - xor a - call Functione5348 - ret -; e5049 (39:5049) - - ld a, c - and $1c - srl a - srl a - ld [wcf65], a - ld a, 1 - call Functione5348 - ret - -.asm_e5059 - call NextIntroScene - ret - -IntroScene21: ; e505d (39:505d) -; Suicune gets more distant and turns black. - call Functione5451 - ld c, 3 - call DelayFrames - xor a - ld [hBGMapMode], a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene22: ; e5072 (39:5072) - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $8 - jr nc, .done - ret -.done - callba Function8d03d - call NextIntroScene - ret - -IntroScene23: ; e5086 (39:5086) - xor a - ld [wcf64], a - call NextIntroScene - ret - -IntroScene24: ; e508e (39:508e) -; Fade to white. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $20 - jr nc, .done - - ld c, a - and $3 - ret nz - ld a, c - and $1c - sla a - call Functione5172 - ret - -.done - ld a, $40 - ld [wcf64], a - call NextIntroScene - ret - -IntroScene25: ; e50ad (39:50ad) -; Wait around a bit. - ld a, [wcf64] - dec a - jr z, .done - ld [wcf64], a - ret -.done - call NextIntroScene - ret - -IntroScene26: ; e50bb (39:50bb) -; Load the final scene. - call ClearBGPalettes - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap015 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroCrystalUnownsGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap017 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e679d - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e679d - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene27: ; e512d (39:512d) -; Spell out C R Y S T A L with Unown. - ld hl, wcf65 - inc [hl] - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $80 - jr nc, .done - - ld c, a - and $f - ld [wcf65], a - ld a, c - and $70 - swap a - call Functione539d - ret - -.done - call NextIntroScene - ld a, $80 - ld [wcf64], a - ret - -IntroScene28: ; e5152 (39:5152) -; Cut out when the music ends, and lead into the title screen. - ld hl, wcf64 - ld a, [hl] - and a - jr z, .done - dec [hl] - cp $18 - jr z, .clear - cp $8 - ret nz - - ld de, SFX_UNKNOWN_CB - call PlaySFX - ret - -.clear - call ClearBGPalettes - ret - -.done - ld hl, wJumptableIndex - set 7, [hl] - ret - - -Functione5172: ; e5172 (39:5172) - ld hl, Unknown_e519c - add l - ld l, a - ld a, $0 - adc h - ld h, a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld de, BGPals - ld b, $8 -.asm_e5187 - push hl - ld c, $8 -.asm_e518a - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_e518a - pop hl - dec b - jr nz, .asm_e5187 - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; e519c (39:519c) - -Unknown_e519c: ; e519c -; Fade to white. - RGB 24, 12, 09 - RGB 31, 31, 31 - RGB 12, 00, 31 - RGB 00, 00, 00 - - RGB 31, 19, 05 - RGB 31, 31, 31 - RGB 15, 05, 31 - RGB 07, 07, 07 - - RGB 31, 21, 09 - RGB 31, 31, 31 - RGB 18, 09, 31 - RGB 11, 11, 11 - - RGB 31, 23, 13 - RGB 31, 31, 31 - RGB 21, 13, 31 - RGB 15, 15, 15 - - RGB 31, 25, 17 - RGB 31, 31, 31 - RGB 25, 17, 31 - RGB 19, 19, 19 - - RGB 31, 27, 21 - RGB 31, 31, 31 - RGB 27, 21, 31 - RGB 23, 23, 23 - - RGB 31, 29, 25 - RGB 31, 31, 31 - RGB 29, 26, 31 - RGB 27, 27, 27 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 -; e51dc - -Functione51dc: ; e51dc (39:51dc) - push de - ld a, SPRITE_ANIM_INDEX_29 - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld [hl], $8 - ld a, $3c - call Function3b3c - pop de - - push de - ld a, SPRITE_ANIM_INDEX_29 - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld [hl], $18 - ld a, $3b - call Function3b3c - pop de - - push de - ld a, SPRITE_ANIM_INDEX_29 - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld [hl], $28 - ld a, $39 - call Function3b3c - pop de - - ld a, SPRITE_ANIM_INDEX_29 - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld [hl], $38 - ld a, $3a - call Function3b3c - ret - -Functione5223: ; e5223 (39:5223) -rept 3 - add a -endr - ld e, a - ld d, $0 - ld hl, BGPals - add hl, de -rept 2 - inc hl -endr - ld a, [wcf65] - and $3f - cp $1f - jr z, .asm_e523e - jr c, .asm_e523e - ld c, a - ld a, $3f - sub c -.asm_e523e - ld c, a - ld b, $0 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - push hl - push bc - ld hl, BGPals - ld bc, $40 - xor a - call ByteFill - pop bc - pop hl - push hl - ld hl, Unknown_e5288 -rept 2 - add hl, bc -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - push hl - ld hl, Unknown_e52c8 -rept 2 - add hl, bc -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - push hl - ld hl, Unknown_e5308 -rept 2 - add hl, bc -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; e5288 (39:5288) - -Unknown_e5288: ; e5288 -; Fade between black and white. -hue = 0 -rept 32 - RGB hue, hue, hue -hue = hue + 1 -endr -; e52c8 - -Unknown_e52c8: ; e52c8 -; Fade between black and light blue. -hue = 0 -rept 32 - RGB 0, hue / 2, hue -hue = hue + 1 -endr -; e5308 - -Unknown_e5308: ; e5308 -; Fade between black and blue. -hue = 0 -rept 32 - RGB 0, 0, hue -hue = hue + 1 -endr -; e5348 - -Functione5348: ; e5348 (39:5348) - and a - jr nz, .asm_e5350 - ld hl, Palette_e538d - jr .asm_e5353 -.asm_e5350 - ld hl, Palette_e5395 -.asm_e5353 - ld a, [wcf65] - and $7 -rept 3 - add a -endr - ld c, a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - push bc - ld de, BGPals - ld a, c - add e - ld e, a - ld a, $0 - adc d - ld d, a - ld bc, $8 - call CopyBytes - pop bc - ld de, wMapPals - ld a, c - add e - ld e, a - ld a, $0 - adc d - ld d, a - ld bc, $8 - call CopyBytes - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; e538d (39:538d) - -Palette_e538d: ; e538d - RGB 24, 12, 09 - RGB 31, 31, 31 - RGB 12, 00, 31 - RGB 00, 00, 00 -; e5395 - -Palette_e5395: ; e5395 - RGB 24, 12, 09 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 -; e539d - -Functione539d: ; e539d (39:539d) -rept 3 - add a -endr - ld e, a - ld d, $0 - ld hl, BGPals - add hl, de -rept 4 - inc hl -endr - ld a, [wcf65] - add a - ld c, a - ld b, $0 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - push hl - ld hl, Palette_e53db - add hl, bc - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - push hl - ld hl, Palette_e53fb - add hl, bc - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; e53db (39:53db) - -Palette_e53db: ; e53db -hue = 31 -rept 8 - RGB hue, hue, hue -hue = hue + -1 - RGB hue, hue, hue -hue = hue + -2 -endr -; e53fb - -Palette_e53fb: ; e53fb -hue = 31 -rept 16 - RGB hue, hue, hue -hue = hue + -1 -endr -; e541b - -Functione541b: ; e541b (39:541b) - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld hl, w6_d000 - decoord 0, 0 - ld b, SCREEN_HEIGHT -.asm_e542a - ld c, SCREEN_WIDTH -.asm_e542c - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_e542c - ld a, $c - add l - ld l, a - ld a, $0 - adc h - ld h, a - dec b - jr nz, .asm_e542a - pop af - ld [rSVBK], a - ret - -Functione5441: ; e5441 (39:5441) - ld a, [wcf64] - and $3 - jr z, Functione5451 - cp $3 - jr z, .asm_e544d - ret -.asm_e544d - xor a - ld [hBGMapMode], a - ret - -Functione5451: ; e5451 (39:5451) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH -.asm_e5457 - ld a, [hl] - and a - jr z, .asm_e5462 - cp $80 - jr nc, .asm_e5462 - xor $8 - ld [hl], a -.asm_e5462 - inc hl - dec bc - ld a, c - or b - jr nz, .asm_e5457 - ld a, $1 - ld [hBGMapMode], a - ret - -Functione546d: ; e546d (39:546d) - ld a, [wcf64] - cp $24 - ret nc - and $c - srl a - ld e, a - ld d, $0 - ld hl, Unknown_e5496 - add hl, de - ld a, [hli] - ld [Requested2bppSource], a - ld a, [hli] - ld [Requested2bppSource + 1], a - ld a, (VTiles2 tile $09) % $100 - ld [Requested2bppDest], a - ld a, (VTiles2 tile $09) / $100 - ld [Requested2bppDest + 1], a - ld a, $4 - ld [Requested2bpp], a - ret -; e5496 (39:5496) - -Unknown_e5496: ; e5496 - dw GFX_e799d - dw GFX_e79dd - dw GFX_e7a1d - dw GFX_e79dd -; e549e - -Functione549e: ; e549e (39:549e) - ld a, $1 - ld [hCGBPalUpdate], a - ret - -Functione54a3: ; e54a3 (39:54a3) - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld bc, $80 - xor a - call ByteFill - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - call DelayFrame - call DelayFrame - ret - -Functione54c2: ; e54c2 (39:54c2) - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push de - ld de, w6_d000 - call Decompress - pop hl - ld de, w6_d000 - ld bc, $180 - call Request2bpp - pop af - ld [rSVBK], a - ret - -Functione54de: ; e54de (39:54de) - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push de - ld de, w6_d000 - call Decompress - pop hl - ld de, w6_d000 - ld bc, $1ff - call Request2bpp - pop af - ld [rSVBK], a - ret - -Functione54fa: ; e54fa (39:54fa) - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push de - ld de, w6_d000 - call Decompress - pop hl - ld de, w6_d000 - ld bc, $140 - call Request2bpp - pop af - ld [rSVBK], a - ret - -Functione5516: ; e5516 (39:5516) - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, LYOverrides - ld bc, $90 - xor a - call ByteFill - pop af - ld [rSVBK], a - ld a, $43 - ld [hLCDStatCustom], a - ret - -Functione552f: ; e552f (39:552f) - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, [wcf64] - and $1 - jr z, .asm_e5548 - ld hl, LYOverrides - ld a, [hl] - inc a - ld bc, $5f - call ByteFill -.asm_e5548 - ld hl, LYOverrides + $5f - ld a, [hl] -rept 2 - inc a -endr - ld bc, $31 - call ByteFill - ld a, [LYOverrides + 0] - ld [hSCX], a - pop af - ld [rSVBK], a - ret - -IntroSuicuneRunGFX: ; e555d -INCBIN "gfx/intro/suicune_run.2bpp.lz" -; e592d - -IntroPichuWooperGFX: ; e592d -INCBIN "gfx/intro/pichu_wooper.2bpp.lz" -; e5c7d - -IntroBackgroundGFX: ; e5c7d -INCBIN "gfx/intro/background.2bpp.lz" -; e5e6d - -IntroTilemap004: ; e5e6d -INCBIN "gfx/intro/004.tilemap.lz" -; e5ecd - -IntroTilemap003: ; e5ecd -INCBIN "gfx/intro/003.tilemap.lz" -; e5edd - -Palette_e5edd: ; e5edd - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 0, 4, 5 - RGB 1, 8, 5 - RGB 4, 12, 9 - RGB 24, 12, 9 - RGB 0, 4, 5 - RGB 9, 6, 8 - RGB 8, 16, 5 - RGB 5, 10, 4 - RGB 31, 31, 31 - RGB 9, 6, 8 - RGB 18, 9, 9 - RGB 13, 8, 9 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 2, 5, 22 - RGB 1, 5, 12 - RGB 31, 31, 31 - RGB 31, 10, 25 - RGB 31, 21, 0 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 21, 31 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroUnownsGFX: ; e5f5d -INCBIN "gfx/intro/unowns.2bpp.lz" -; e634d - -IntroPulseGFX: ; e634d -INCBIN "gfx/intro/pulse.2bpp.lz" -; e63dd - -IntroTilemap002: ; e63dd -INCBIN "gfx/intro/002.tilemap.lz" -; e641d - -IntroTilemap001: ; e641d -INCBIN "gfx/intro/001.tilemap.lz" -; e642d - -IntroTilemap006: ; e642d -INCBIN "gfx/intro/006.tilemap.lz" -; e647d - -IntroTilemap005: ; e647d -INCBIN "gfx/intro/005.tilemap.lz" -; e649d - -IntroTilemap008: ; e649d -INCBIN "gfx/intro/008.tilemap.lz" -; e655d - -IntroTilemap007: ; e655d -INCBIN "gfx/intro/007.tilemap.lz" -; e65ad - -Palette_365ad: ; e65ad - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 10, 0, 10 - RGB 19, 0, 19 - RGB 31, 0, 31 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroCrystalUnownsGFX: ; e662d -INCBIN "gfx/intro/crystal_unowns.2bpp.lz" -; e672d - -IntroTilemap017: ; e672d -INCBIN "gfx/intro/017.tilemap.lz" -; e676d - -IntroTilemap015: ; e676d -INCBIN "gfx/intro/015.tilemap.lz" -; e679d - -Palette_e679d: ; e679d - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroSuicuneCloseGFX: ; e681d -INCBIN "gfx/intro/suicune_close.2bpp.lz" -; e6c3d - -IntroTilemap012: ; e6c3d -INCBIN "gfx/intro/012.tilemap.lz" -; e6d0d - -IntroTilemap011: ; e6d0d -INCBIN "gfx/intro/011.tilemap.lz" -; e6d6d - -Palette_e6d6d: ; e6d6d - RGB 24, 12, 9 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 24, 12, 9 - RGB 31, 31, 31 - RGB 8, 9, 31 - RGB 0, 0, 0 - RGB 24, 12, 9 - RGB 12, 20, 31 - RGB 19, 8, 31 - RGB 0, 0, 0 - RGB 12, 20, 31 - RGB 8, 9, 31 - RGB 19, 8, 31 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 12, 20, 31 - RGB 8, 9, 31 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroSuicuneJumpGFX: ; e6ded -INCBIN "gfx/intro/suicune_jump.2bpp.lz" -; e72ad - -IntroSuicuneBackGFX: ; e72ad -INCBIN "gfx/intro/suicune_back.2bpp.lz" -; e764d - -IntroTilemap010: ; e764d -INCBIN "gfx/intro/010.tilemap.lz" -; e76ad - -IntroTilemap009: ; e76ad -INCBIN "gfx/intro/009.tilemap.lz" -; e76bd - -IntroTilemap014: ; e76bd -INCBIN "gfx/intro/014.tilemap.lz" -; e778d - -IntroTilemap013: ; e778d -INCBIN "gfx/intro/013.tilemap.lz" -; e77dd - -Palette_e77dd: ; e77dd - RGB 24, 12, 9 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 24, 12, 9 - RGB 31, 31, 31 - RGB 8, 9, 31 - RGB 0, 0, 0 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 12, 0, 31 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 21, 9, 0 - RGB 21, 9, 0 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroUnownBackGFX: ; e785d -INCBIN "gfx/intro/unown_back.2bpp.lz" -; e799d - -GFX_e799d: ; e799d -INCBIN "gfx/unknown/0e799d.2bpp" -GFX_e79dd: ; e79dd -INCBIN "gfx/unknown/0e79dd.2bpp" -GFX_e7a1d: ; e7a1d -INCBIN "gfx/unknown/0e7a1d.2bpp" - -GFX_e7a5d: ; e7a5d -INCBIN "gfx/unknown/0e7a5d.2bpp" - - +INCLUDE "engine/crystal_intro.asm" SECTION "bank3E", ROMX, BANK[$3E] -FontExtra: -INCBIN "gfx/misc/font_extra.2bpp" - -Font: -INCBIN "gfx/misc/font.1bpp" - -FontBattleExtra: -INCBIN "gfx/misc/font_battle_extra.2bpp" - -Frames: ; f8800 -INCBIN "gfx/frames/1.1bpp" -INCBIN "gfx/frames/2.1bpp" -INCBIN "gfx/frames/3.1bpp" -INCBIN "gfx/frames/4.1bpp" -INCBIN "gfx/frames/5.1bpp" -INCBIN "gfx/frames/6.1bpp" -INCBIN "gfx/frames/7.1bpp" -INCBIN "gfx/frames/8.1bpp" -INCBIN "gfx/frames/9.1bpp" -; f89b0 - -; TODO: Various misc graphics here. - -GFX_f89b0: ; f89b0 -INCBIN "gfx/unknown/0f89b0.2bpp" -; f8a90 - -ShinyIcon: ; f8a90 -INCBIN "gfx/stats/shiny.2bpp" - -GFX_f8aa0: ; f8aa0 -INCBIN "gfx/unknown/0f8aa0.2bpp" -; f8ac0 - -EnemyHPBarBorderGFX: ; f8ac0 -INCBIN "gfx/battle/enemy_hp_bar_border.1bpp" -; f8ae0 - -HPExpBarBorderGFX: ; f8ae0 -INCBIN "gfx/battle/hp_exp_bar_border.1bpp" -; f8b10 - -ExpBarGFX: ; f8b10 -INCBIN "gfx/battle/expbar.2bpp" -; f8ba0 - -TownMapGFX: ; f8ba0 -INCBIN "gfx/misc/town_map.2bpp.lz" -; f8ea4 - -GFX_f8ea4: ; unused -INCBIN "gfx/unknown/0f8ea4.2bpp" -; f8f24 - -OverworldPhoneIconGFX: ; f8f24 -INCBIN "gfx/mobile/overworld_phone_icon.2bpp" -; f8f34 - -GFX_f8f34: ; unused -INCBIN "gfx/unknown/0f8f34.2bpp" -; f9204 - -TextBoxSpaceGFX: ; f9204 -INCBIN "gfx/frames/space.2bpp" -; f9214 - -MobilePhoneTilesGFX: ; f9214 -INCBIN "gfx/mobile/phone_tiles.2bpp" -; f9344 - -MapEntryFrameGFX: ; f9344 -INCBIN "gfx/frames/map_entry_sign.2bpp" -; f9424 - -GFX_f9424: ; f9424 -INCBIN "gfx/unknown/0f9424.2bpp" -; f9434 - -Footprints: ; f9434 -INCBIN "gfx/misc/footprints.1bpp" -; fb434 - -; This and the following two functions are unreferenced. -Unknown_fb434: - db 0 - -Functionfb435: ; 4b435 - ld a, [Unknown_fb434] - and a - jp nz, Get1bpp_2 - jp Get1bpp -; fb43f - -Functionfb43f: ; fb43f - ld a, [Unknown_fb434] - and a - jp nz, Get2bpp_2 - jp Get2bpp -; End unreferenced block -; fb449 - -_LoadStandardFont:: ; fb449 - ld de, Font - ld hl, VTiles1 - lb bc, BANK(Font), $80 - ld a, [rLCDC] - bit 7, a - jp z, Copy1bpp - - ld de, Font - ld hl, VTiles1 - lb bc, BANK(Font), $20 - call Get1bpp_2 - ld de, Font + $20 * LEN_1BPP_TILE - ld hl, VTiles1 tile $20 - lb bc, BANK(Font), $20 - call Get1bpp_2 - ld de, Font + $40 * LEN_1BPP_TILE - ld hl, VTiles1 tile $40 - lb bc, BANK(Font), $20 - call Get1bpp_2 - ld de, Font + $60 * LEN_1BPP_TILE - ld hl, VTiles1 tile $60 - lb bc, BANK(Font), $20 - call Get1bpp_2 - ret -; fb48a - -_LoadFontsExtra1:: ; fb48a - ld de, MobilePhoneTilesGFX - ld hl, VTiles2 tile $60 - lb bc, BANK(MobilePhoneTilesGFX), 1 - call Get1bpp_2 - ld de, OverworldPhoneIconGFX - ld hl, VTiles2 tile $62 - lb bc, BANK(OverworldPhoneIconGFX), 1 - call Get2bpp_2 - ld de, FontExtra + 3 * LEN_2BPP_TILE - ld hl, VTiles2 tile $63 - lb bc, BANK(FontExtra), $16 - call Get2bpp_2 - jr LoadFrame -; fb4b0 - -_LoadFontsExtra2:: ; fb4b0 - ld de, GFX_f9424 - ld hl, VTiles2 tile $61 - ld b, BANK(GFX_f9424) - ld c, 1 - call Get2bpp_2 - ret -; fb4be - -_LoadFontsBattleExtra:: ; fb4be - ld de, FontBattleExtra - ld hl, VTiles2 tile $60 - lb bc, BANK(FontBattleExtra), $19 - call Get2bpp_2 - jr LoadFrame -; fb4cc - -LoadFrame: ; fb4cc - ld a, [TextBoxFrame] - and 7 - ld bc, TILES_PER_FRAME * LEN_1BPP_TILE - ld hl, Frames - call AddNTimes - ld d, h - ld e, l - ld hl, VTiles2 tile $79 - lb bc, BANK(Frames), TILES_PER_FRAME - call Get1bpp_2 - ld hl, VTiles2 tile $7f - ld de, TextBoxSpaceGFX - lb bc, BANK(TextBoxSpaceGFX), 1 - call Get1bpp_2 - ret -; fb4f2 - -LoadBattleFontsHPBar: ; fb4f2 - ld de, FontBattleExtra - ld hl, VTiles2 tile $60 - lb bc, BANK(FontBattleExtra), $c - call Get2bpp_2 - ld hl, VTiles2 tile $70 - ld de, FontBattleExtra + $10 * LEN_2BPP_TILE - lb bc, BANK(FontBattleExtra), 3 - call Get2bpp_2 - call LoadFrame - -LoadHPBar: ; fb50d - ld de, EnemyHPBarBorderGFX - ld hl, VTiles2 tile $6c - lb bc, BANK(EnemyHPBarBorderGFX), 4 - call Get1bpp_2 - ld de, HPExpBarBorderGFX - ld hl, VTiles2 tile $73 - lb bc, BANK(HPExpBarBorderGFX), 6 - call Get1bpp_2 - ld de, ExpBarGFX - ld hl, VTiles2 tile $55 - lb bc, BANK(ExpBarGFX), 9 - call Get2bpp_2 - ld de, MobilePhoneTilesGFX + 9 * LEN_2BPP_TILE - ld hl, VTiles2 tile $5e - lb bc, BANK(MobilePhoneTilesGFX), 2 - call Get2bpp_2 - ret -; fb53e - -Functionfb53e: ; fb53e - call _LoadFontsBattleExtra - ld de, EnemyHPBarBorderGFX - ld hl, VTiles2 tile $6c - lb bc, BANK(EnemyHPBarBorderGFX), 4 - call Get1bpp_2 - ld de, HPExpBarBorderGFX - ld hl, VTiles2 tile $78 - lb bc, BANK(HPExpBarBorderGFX), 1 - call Get1bpp_2 - ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE - ld hl, VTiles2 tile $76 - lb bc, BANK(HPExpBarBorderGFX), 2 - call Get1bpp_2 - ld de, ExpBarGFX - ld hl, VTiles2 tile $55 - lb bc, BANK(ExpBarGFX), 8 - call Get2bpp_2 - -Functionfb571: ; fb571 - ld de, GFX_f89b0 - ld hl, VTiles2 tile $31 - lb bc, BANK(GFX_f89b0), $11 - call Get2bpp_2 - ret -; fb57e - -; These functions seem to be related to backwards compatibility - -Functionfb57e: ; fb57e - ld a, [wd003] - ld hl, OTPartyMon1Species - call GetPartyLocation - push hl - ld a, [wd003] - inc a - ld c, a - ld b, 0 - ld hl, OTPartyCount - add hl, bc - ld a, [hl] - pop hl - cp EGG - jr z, .asm_fb59c - cp [hl] - jr nz, .asm_fb5db - -.asm_fb59c - ld b, h - ld c, l - ld hl, MON_LEVEL - add hl, bc - ld a, [hl] - cp 101 - jr nc, .asm_fb5db - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr nz, .asm_fb5d9 - ld hl, OTPartySpecies - ld a, [wd003] - ld c, a - ld b, 0 - add hl, bc - ld a, [hl] - - ; Magnemite and Magneton's types changed - ; from Electric to Electric/Steel. - cp MAGNEMITE - jr z, .asm_fb5d9 - cp MAGNETON - jr z, .asm_fb5d9 - - ld [CurSpecies], a - call GetBaseData - ld hl, wcbea -rept 2 - add hl, bc -endr - ld a, [BaseType1] - cp [hl] - jr nz, .asm_fb5db - inc hl - ld a, [BaseType2] - cp [hl] - jr nz, .asm_fb5db - -.asm_fb5d9 - and a - ret - -.asm_fb5db - scf - ret -; fb5dd - -Functionfb5dd: ; fb5dd - ld a, [wd002] - ld d, a - ld a, [PartyCount] - ld b, a - ld c, $0 -.asm_fb5e7 - ld a, c - cp d - jr z, .asm_fb5f8 - push bc - ld a, c - ld hl, PartyMon1HP - call GetPartyLocation - pop bc - ld a, [hli] - or [hl] - jr nz, .asm_fb60b - -.asm_fb5f8 - inc c - dec b - jr nz, .asm_fb5e7 - ld a, [wd003] - ld hl, OTPartyMon1HP - call GetPartyLocation - ld a, [hli] - or [hl] - jr nz, .asm_fb60b - scf - ret - -.asm_fb60b - and a - ret -; fb60d - -Functionfb60d: ; fb60d - hlcoord 4, 0 - ld de, PlayerName - call PlaceString - ld a, $14 - ld [bc], a - hlcoord 4, 8 - ld de, wd26b - call PlaceString - ld a, $14 - ld [bc], a - hlcoord 7, 1 - ld de, PartySpecies - call Functionfb634 - hlcoord 7, 9 - ld de, OTPartySpecies - -Functionfb634: ; fb634 - ld c, $0 -.asm_fb636 - ld a, [de] - cp $ff - ret z - ld [wd265], a - push bc - push hl - push de - push hl - ld a, c - ld [hProduct], a - call GetPokemonName - pop hl - call PlaceString - pop de - inc de - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - inc c - jr .asm_fb636 -; fb656 - -KantoMonSpecials: ; fb656 -; The original special base stat for -; each Kanto monster from Red/Blue. - db 65 ; BULBASAUR - db 80 ; IVYSAUR - db 100 ; VENUSAUR - db 50 ; CHARMANDER - db 65 ; CHARMELEON - db 85 ; CHARIZARD - db 50 ; SQUIRTLE - db 65 ; WARTORTLE - db 85 ; BLASTOISE - db 20 ; CATERPIE - db 25 ; METAPOD - db 80 ; BUTTERFREE - db 20 ; WEEDLE - db 25 ; KAKUNA - db 45 ; BEEDRILL - db 35 ; PIDGEY - db 50 ; PIDGEOTTO - db 70 ; PIDGEOT - db 25 ; RATTATA - db 50 ; RATICATE - db 31 ; SPEAROW - db 61 ; FEAROW - db 40 ; EKANS - db 65 ; ARBOK - db 50 ; PIKACHU - db 90 ; RAICHU - db 30 ; SANDSHREW - db 55 ; SANDSLASH - db 40 ; NIDORAN_F - db 55 ; NIDORINA - db 75 ; NIDOQUEEN - db 40 ; NIDORAN_M - db 55 ; NIDORINO - db 75 ; NIDOKING - db 60 ; CLEFAIRY - db 85 ; CLEFABLE - db 65 ; VULPIX - db 100 ; NINETALES - db 25 ; JIGGLYPUFF - db 50 ; WIGGLYTUFF - db 40 ; ZUBAT - db 75 ; GOLBAT - db 75 ; ODDISH - db 85 ; GLOOM - db 100 ; VILEPLUME - db 55 ; PARAS - db 80 ; PARASECT - db 40 ; VENONAT - db 90 ; VENOMOTH - db 45 ; DIGLETT - db 70 ; DUGTRIO - db 40 ; MEOWTH - db 65 ; PERSIAN - db 50 ; PSYDUCK - db 80 ; GOLDUCK - db 35 ; MANKEY - db 60 ; PRIMEAPE - db 50 ; GROWLITHE - db 80 ; ARCANINE - db 40 ; POLIWAG - db 50 ; POLIWHIRL - db 70 ; POLIWRATH - db 105 ; ABRA - db 120 ; KADABRA - db 135 ; ALAKAZAM - db 35 ; MACHOP - db 50 ; MACHOKE - db 65 ; MACHAMP - db 70 ; BELLSPROUT - db 85 ; WEEPINBELL - db 100 ; VICTREEBEL - db 100 ; TENTACOOL - db 120 ; TENTACRUEL - db 30 ; GEODUDE - db 45 ; GRAVELER - db 55 ; GOLEM - db 65 ; PONYTA - db 80 ; RAPIDASH - db 40 ; SLOWPOKE - db 80 ; SLOWBRO - db 95 ; MAGNEMITE - db 120 ; MAGNETON - db 58 ; FARFETCH_D - db 35 ; DODUO - db 60 ; DODRIO - db 70 ; SEEL - db 95 ; DEWGONG - db 40 ; GRIMER - db 65 ; MUK - db 45 ; SHELLDER - db 85 ; CLOYSTER - db 100 ; GASTLY - db 115 ; HAUNTER - db 130 ; GENGAR - db 30 ; ONIX - db 90 ; DROWZEE - db 115 ; HYPNO - db 25 ; KRABBY - db 50 ; KINGLER - db 55 ; VOLTORB - db 80 ; ELECTRODE - db 60 ; EXEGGCUTE - db 125 ; EXEGGUTOR - db 40 ; CUBONE - db 50 ; MAROWAK - db 35 ; HITMONLEE - db 35 ; HITMONCHAN - db 60 ; LICKITUNG - db 60 ; KOFFING - db 85 ; WEEZING - db 30 ; RHYHORN - db 45 ; RHYDON - db 105 ; CHANSEY - db 100 ; TANGELA - db 40 ; KANGASKHAN - db 70 ; HORSEA - db 95 ; SEADRA - db 50 ; GOLDEEN - db 80 ; SEAKING - db 70 ; STARYU - db 100 ; STARMIE - db 100 ; MR__MIME - db 55 ; SCYTHER - db 95 ; JYNX - db 85 ; ELECTABUZZ - db 85 ; MAGMAR - db 55 ; PINSIR - db 70 ; TAUROS - db 20 ; MAGIKARP - db 100 ; GYARADOS - db 95 ; LAPRAS - db 48 ; DITTO - db 65 ; EEVEE - db 110 ; VAPOREON - db 110 ; JOLTEON - db 110 ; FLAREON - db 75 ; PORYGON - db 90 ; OMANYTE - db 115 ; OMASTAR - db 45 ; KABUTO - db 70 ; KABUTOPS - db 60 ; AERODACTYL - db 65 ; SNORLAX - db 125 ; ARTICUNO - db 125 ; ZAPDOS - db 125 ; MOLTRES - db 50 ; DRATINI - db 70 ; DRAGONAIR - db 100 ; DRAGONITE - db 154 ; MEWTWO - db 100 ; MEW -; fb6ed - - -INCLUDE "event/name_rater.asm" - - -PlaySlowCry: ; fb841 - ld a, [ScriptVar] - call LoadCryHeader - jr c, .done - - ld hl, CryPitch - ld a, [hli] - ld h, [hl] - ld l, a - ld bc, -$140 - add hl, bc - ld a, l - ld [CryPitch], a - ld a, h - ld [CryPitch + 1], a - ld hl, CryLength - ld a, [hli] - ld h, [hl] - ld l, a - ld bc, $60 - add hl, bc - ld a, l - ld [CryLength], a - ld a, h - ld [CryLength + 1], a - callba _PlayCryHeader - call WaitSFX - -.done - ret -; fb877 - -NewPokedexEntry: ; fb877 - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a - call LowVolume - call ClearBGPalettes - call ClearTileMap - call UpdateSprites - call ClearSprites - ld a, [wPokedexStatus] - push af - ld a, [hSCX] - add $5 - ld [hSCX], a - xor a - ld [wPokedexStatus], a - callba Function41a7f - call WaitPressAorB_BlinkCursor - ld a, $1 - ld [wPokedexStatus], a - callba Function4424d - call WaitPressAorB_BlinkCursor - pop af - ld [wPokedexStatus], a - call MaxVolume - call FadeToWhite - ld a, [hSCX] - add $fb - ld [hSCX], a - call Functionfb8c8 - pop af - ld [hMapAnims], a - ret -; fb8c8 - -Functionfb8c8: ; fb8c8 - call ClearTileMap - call LoadFontsExtra - call LoadStandardFont - callba Function40ab2 - call Function3200 - callba GetEnemyMonDVs - ld a, [hli] - ld [TempMonDVs], a - ld a, [hl] - ld [TempMonDVs + 1], a - ld b, SCGB_1C - call GetSGBLayout - call SetPalettes - ret -; fb8f1 - -ConvertMon_2to1: ; fb8f1 -; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265. - push bc - push hl - ld a, [wd265] - ld b, a - ld c, 0 - ld hl, Pokered_MonIndices -.loop - inc c - ld a, [hli] - cp b - jr nz, .loop - ld a, c - ld [wd265], a - pop hl - pop bc - ret -; fb908 - -ConvertMon_1to2: ; fb908 -; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265. - push bc - push hl - ld a, [wd265] - dec a - ld hl, Pokered_MonIndices - ld b, 0 - ld c, a - add hl, bc - ld a, [hl] - ld [wd265], a - pop hl - pop bc - ret -; fb91c - -Pokered_MonIndices: ; fb91c - db RHYDON - db KANGASKHAN - db NIDORAN_M - db CLEFAIRY - db SPEAROW - db VOLTORB - db NIDOKING - db SLOWBRO - db IVYSAUR - db EXEGGUTOR - db LICKITUNG - db EXEGGCUTE - db GRIMER - db GENGAR - db NIDORAN_F - db NIDOQUEEN - db CUBONE - db RHYHORN - db LAPRAS - db ARCANINE - db MEW - db GYARADOS - db SHELLDER - db TENTACOOL - db GASTLY - db SCYTHER - db STARYU - db BLASTOISE - db PINSIR - db TANGELA - db SCIZOR - db SHUCKLE - db GROWLITHE - db ONIX - db FEAROW - db PIDGEY - db SLOWPOKE - db KADABRA - db GRAVELER - db CHANSEY - db MACHOKE - db MR__MIME - db HITMONLEE - db HITMONCHAN - db ARBOK - db PARASECT - db PSYDUCK - db DROWZEE - db GOLEM - db HERACROSS - db MAGMAR - db HO_OH - db ELECTABUZZ - db MAGNETON - db KOFFING - db SNEASEL - db MANKEY - db SEEL - db DIGLETT - db TAUROS - db TEDDIURSA - db URSARING - db SLUGMA - db FARFETCH_D - db VENONAT - db DRAGONITE - db MAGCARGO - db SWINUB - db PILOSWINE - db DODUO - db POLIWAG - db JYNX - db MOLTRES - db ARTICUNO - db ZAPDOS - db DITTO - db MEOWTH - db KRABBY - db CORSOLA - db REMORAID - db OCTILLERY - db VULPIX - db NINETALES - db PIKACHU - db RAICHU - db DELIBIRD - db MANTINE - db DRATINI - db DRAGONAIR - db KABUTO - db KABUTOPS - db HORSEA - db SEADRA - db SKARMORY - db HOUNDOUR - db SANDSHREW - db SANDSLASH - db OMANYTE - db OMASTAR - db JIGGLYPUFF - db WIGGLYTUFF - db EEVEE - db FLAREON - db JOLTEON - db VAPOREON - db MACHOP - db ZUBAT - db EKANS - db PARAS - db POLIWHIRL - db POLIWRATH - db WEEDLE - db KAKUNA - db BEEDRILL - db HOUNDOOM - db DODRIO - db PRIMEAPE - db DUGTRIO - db VENOMOTH - db DEWGONG - db KINGDRA - db PHANPY - db CATERPIE - db METAPOD - db BUTTERFREE - db MACHAMP - db DONPHAN - db GOLDUCK - db HYPNO - db GOLBAT - db MEWTWO - db SNORLAX - db MAGIKARP - db PORYGON2 - db STANTLER - db MUK - db SMEARGLE - db KINGLER - db CLOYSTER - db TYROGUE - db ELECTRODE - db CLEFABLE - db WEEZING - db PERSIAN - db MAROWAK - db HITMONTOP - db HAUNTER - db ABRA - db ALAKAZAM - db PIDGEOTTO - db PIDGEOT - db STARMIE - db BULBASAUR - db VENUSAUR - db TENTACRUEL - db SMOOCHUM - db GOLDEEN - db SEAKING - db ELEKID - db MAGBY - db MILTANK - db BLISSEY - db PONYTA - db RAPIDASH - db RATTATA - db RATICATE - db NIDORINO - db NIDORINA - db GEODUDE - db PORYGON - db AERODACTYL - db RAIKOU - db MAGNEMITE - db ENTEI - db SUICUNE - db CHARMANDER - db SQUIRTLE - db CHARMELEON - db WARTORTLE - db CHARIZARD - db LARVITAR - db PUPITAR - db TYRANITAR - db LUGIA - db ODDISH - db GLOOM - db VILEPLUME - db BELLSPROUT - db WEEPINBELL - db VICTREEBEL - db CHIKORITA - db BAYLEEF - db MEGANIUM - db CYNDAQUIL - db QUILAVA - db TYPHLOSION - db TOTODILE - db CROCONAW - db FERALIGATR - db SENTRET - db FURRET - db HOOTHOOT - db NOCTOWL - db LEDYBA - db LEDIAN - db SPINARAK - db ARIADOS - db CROBAT - db CHINCHOU - db LANTURN - db PICHU - db CLEFFA - db IGGLYBUFF - db TOGEPI - db TOGETIC - db NATU - db XATU - db MAREEP - db FLAAFFY - db AMPHAROS - db BELLOSSOM - db MARILL - db AZUMARILL - db SUDOWOODO - db POLITOED - db HOPPIP - db SKIPLOOM - db JUMPLUFF - db AIPOM - db SUNKERN - db SUNFLORA - db YANMA - db WOOPER - db QUAGSIRE - db ESPEON - db UMBREON - db MURKROW - db SLOWKING - db MISDREAVUS - db UNOWN - db WOBBUFFET - db GIRAFARIG - db PINECO - db FORRETRESS - db DUNSPARCE - db GLIGAR - db STEELIX - db SNUBBULL - db GRANBULL - db QWILFISH - db WOBBUFFET - db WOBBUFFET -; fba18 - +INCLUDE "gfx/font.asm" +INCLUDE "engine/time_capsule/conversion.asm" UpdateUnownDex: ; fba18 ld a, [UnownLetter] @@ -34747,914 +25793,9 @@ SECTION "bank3F", ROMX, BANK[$3F] INCLUDE "tilesets/animations.asm" +INCLUDE "engine/npctrade.asm" -; Trade struct -TRADE_DIALOG EQU 0 -TRADE_GIVEMON EQU 1 -TRADE_GETMON EQU 2 -TRADE_NICK EQU 3 -TRADE_DVS EQU 14 -TRADE_ITEM EQU 16 -TRADE_OT_ID EQU 17 -TRADE_OT_NAME EQU 19 -TRADE_GENDER EQU 30 -TRADE_PADDING EQU 31 - -; Trade dialogs -TRADE_INTRO EQU 0 -TRADE_CANCEL EQU 1 -TRADE_WRONG EQU 2 -TRADE_COMPLETE EQU 3 -TRADE_AFTER EQU 4 - -NPCTrade:: ; fcba8 - ld a, e - ld [wJumptableIndex], a - call Functionfcc59 - ld b, CHECK_FLAG - call TradeFlagAction - ld a, TRADE_AFTER - jr nz, .done - - ld a, TRADE_INTRO - call PrintTradeText - - call YesNoBox - ld a, TRADE_CANCEL - jr c, .done - -; Select givemon from party - ld b, 6 - callba Function5001d - ld a, TRADE_CANCEL - jr c, .done - - ld e, TRADE_GIVEMON - call GetTradeAttribute - ld a, [CurPartySpecies] - cp [hl] - ld a, TRADE_WRONG - jr nz, .done - - call CheckTradeGender - ld a, TRADE_WRONG - jr c, .done - - ld b, SET_FLAG - call TradeFlagAction - - ld hl, ConnectLinkCableText - call PrintText - - call Functionfcc63 - call Functionfcc07 - call GetTradeMonNames - - ld hl, TradedForText - call PrintText - - call RestartMapMusic - - ld a, TRADE_COMPLETE - -.done - call PrintTradeText - ret -; fcc07 - -Functionfcc07: ; fcc07 - call DisableSpriteUpdates - ld a, [wJumptableIndex] - push af - ld a, [wcf64] - push af - predef Function28f24 - pop af - ld [wcf64], a - pop af - ld [wJumptableIndex], a - call Function2b74 - ret -; fcc23 - -CheckTradeGender: ; fcc23 - xor a - ld [MonType], a - - ld e, TRADE_GENDER - call GetTradeAttribute - ld a, [hl] - and a - jr z, .asm_fcc46 - cp 1 - jr z, .asm_fcc3e - - callba GetGender - jr nz, .asm_fcc48 - jr .asm_fcc46 - -.asm_fcc3e - callba GetGender - jr z, .asm_fcc48 - -.asm_fcc46 - and a - ret - -.asm_fcc48 - scf - ret -; fcc4a - -TradeFlagAction: ; fcc4a - ld hl, wd960 - ld a, [wJumptableIndex] - ld c, a - predef FlagPredef - ld a, c - and a - ret -; fcc59 - -Functionfcc59: ; fcc59 - ld e, TRADE_DIALOG - call GetTradeAttribute - ld a, [hl] - ld [wcf64], a - ret -; fcc63 - -Functionfcc63: ; fcc63 - ld e, TRADE_GIVEMON - call GetTradeAttribute - ld a, [hl] - ld [wc6d0], a - - ld e, TRADE_GETMON - call GetTradeAttribute - ld a, [hl] - ld [wc702], a - - ld a, [wc6d0] - ld de, wc6d1 - call Functionfcde8 - call Functionfcdf4 - - ld a, [wc702] - ld de, wc703 - call Functionfcde8 - call Functionfcdf4 - - ld hl, PartyMonOT - ld bc, NAME_LENGTH - call Functionfcdd7 - ld de, wc6f2 - call Functionfcdf4 - - ld hl, PlayerName - ld de, wc6e7 - call Functionfcdf4 - - ld hl, PartyMon1ID - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld de, wc6ff - call Functionfce0f - - ld hl, PartyMon1DVs - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld de, wc6fd - call Functionfce0f - - ld hl, PartyMon1Species - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wc701], a - - ld e, TRADE_DIALOG - call GetTradeAttribute - ld a, [hl] - cp TRADE_COMPLETE - ld a, 1 - jr c, .asm_fcce6 - ld a, 2 -.asm_fcce6 - ld [wEnemyCharging], a - - ld hl, PartyMon1Level - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld a, [hl] - ld [CurPartyLevel], a - ld a, [wc702] - ld [CurPartySpecies], a - xor a - ld [MonType], a - ld [wPokemonWithdrawDepositParameter], a - callab Functione039 - predef TryAddMonToParty - - ld e, TRADE_DIALOG - call GetTradeAttribute - ld a, [hl] - cp TRADE_COMPLETE - ld b, 0 - jr c, .asm_fcd1c - ld b, 1 -.asm_fcd1c - callba SetGiftPartyMonCaughtData - - ld e, TRADE_NICK - call GetTradeAttribute - ld de, wc70e - call Functionfcdf4 - - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - call Functionfcdde - ld hl, wc70e - call Functionfcdf4 - - ld e, TRADE_OT_NAME - call GetTradeAttribute - push hl - ld de, wc724 - call Functionfcdf4 - pop hl - ld de, wc719 - call Functionfcdf4 - - ld hl, PartyMonOT - ld bc, NAME_LENGTH - call Functionfcdde - ld hl, wc724 - call Functionfcdf4 - - ld e, TRADE_DVS - call GetTradeAttribute - ld de, wEnemyTrappingMove - call Functionfce0f - - ld hl, PartyMon1DVs - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdde - ld hl, wEnemyTrappingMove - call Functionfce0f - - ld e, TRADE_OT_ID - call GetTradeAttribute - ld de, wPlayerCharging - call Functionfce15 - - ld hl, PartyMon1ID - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdde - ld hl, wEnemyWrapCount - call Functionfce0f - - ld e, TRADE_ITEM - call GetTradeAttribute - push hl - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdde - pop hl - ld a, [hl] - ld [de], a - - push af - push bc - push de - push hl - ld a, [CurPartyMon] - push af - ld a, [PartyCount] - dec a - ld [CurPartyMon], a - callba Functione134 - pop af - ld [CurPartyMon], a - pop hl - pop de - pop bc - pop af - ret -; fcdc2 - - -GetTradeAttribute: ; 0xfcdc2 - ld d, 0 - push de - ld a, [wJumptableIndex] - and $f - swap a - ld e, a - ld d, 0 - ld hl, NPCTrades -rept 2 - add hl, de -endr - pop de - add hl, de - ret -; 0xfcdd7 - -Functionfcdd7: ; fcdd7 - ld a, [CurPartyMon] - call AddNTimes - ret -; fcdde - -Functionfcdde: ; fcdde - ld a, [PartyCount] - dec a - call AddNTimes - ld e, l - ld d, h - ret -; fcde8 - -Functionfcde8: ; fcde8 - push de - ld [wd265], a - call GetBasePokemonName - ld hl, StringBuffer1 - pop de - ret -; fcdf4 - -Functionfcdf4: ; fcdf4 - ld bc, NAME_LENGTH - call CopyBytes - ret -; fcdfb - -Functionfcdfb: ; fcdfb - ld bc, 4 - call CopyBytes - ld a, $50 - ld [de], a - ret -; fce05 - -Functionfce05: ; fce05 - ld bc, 3 - call CopyBytes - ld a, $50 - ld [de], a - ret -; fce0f - -Functionfce0f: ; fce0f - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - ret -; fce15 - -Functionfce15: ; fce15 - ld a, [hli] - ld [de], a - dec de - ld a, [hl] - ld [de], a - ret -; fce1b - -GetTradeMonNames: ; fce1b - ld e, TRADE_GETMON - call GetTradeAttribute - ld a, [hl] - call Functionfcde8 - - ld de, StringBuffer2 - call Functionfcdf4 - - ld e, TRADE_GIVEMON - call GetTradeAttribute - ld a, [hl] - call Functionfcde8 - - ld de, wd050 - call Functionfcdf4 - - ld hl, StringBuffer1 -.loop - ld a, [hli] - cp "@" - jr nz, .loop - - dec hl - push hl - ld e, TRADE_GENDER - call GetTradeAttribute - ld a, [hl] - pop hl - and a - ret z - - cp 1 - ld a, "♂" - jr z, .done - ld a, "♀" -.done - ld [hli], a - ld [hl], "@" - ret -; fce58 - - -NPCTrades: ; fce58 - db 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, $54, $92, "MIKE@@@@@@@", 0, 0 - db 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, $1e, $bf, "KYLE@@@@@@@", 0, 0 - db 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, $05, $72, "TIM@@@@@@@@", 0, 0 - db 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, $1b, $01, "EMY@@@@@@@@", 2, 0 - db 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, $00, $3d, "CHRIS@@@@@@", 0, 0 - db 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, $7b, $67, "KIM@@@@@@@@", 0, 0 - db 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, $a2, $c3, "FOREST@@@@@", 0, 0 -; fcf38 - - -PrintTradeText: ; fcf38 - push af - call GetTradeMonNames - pop af - ld bc, 2 * 4 - ld hl, TradeTexts - call AddNTimes - ld a, [wcf64] - ld c, a -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - ret -; fcf53 - -TradeTexts: ; fcf53 -; intro - dw TradeIntroText1 - dw TradeIntroText2 - dw TradeIntroText3 - dw TradeIntroText4 - -; cancel - dw TradeCancelText1 - dw TradeCancelText2 - dw TradeCancelText3 - dw TradeCancelText4 - -; wrong mon - dw TradeWrongText1 - dw TradeWrongText2 - dw TradeWrongText3 - dw TradeWrongText4 - -; completed - dw TradeCompleteText1 - dw TradeCompleteText2 - dw TradeCompleteText3 - dw TradeCompleteText4 - -; after - dw TradeAfterText1 - dw TradeAfterText2 - dw TradeAfterText3 - dw TradeAfterText4 -; fcf7b - - -ConnectLinkCableText: ; 0xfcf7b - ; OK, connect the Game Link Cable. - text_jump UnknownText_0x1bd407 - db "@" -; 0xfcf80 - - -TradedForText: ; 0xfcf80 - ; traded givemon for getmon - text_jump UnknownText_0x1bd429 - start_asm - - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - ld hl, .done - ret - -.done - ; sound0x0A - ; interpret_data - text_jump UnknownText_0x1bd445 - db "@" -; 0xfcf97 - - -TradeIntroText1: ; 0xfcf97 - ; I collect #MON. Do you have @ ? Want to trade it for my @ ? - text_jump UnknownText_0x1bd449 - db "@" -; 0xfcf9c - -TradeCancelText1: ; 0xfcf9c - ; You don't want to trade? Aww… - text_jump UnknownText_0x1bd48c - db "@" -; 0xfcfa1 - -TradeWrongText1: ; 0xfcfa1 - ; Huh? That's not @ . What a letdown… - text_jump UnknownText_0x1bd4aa - db "@" -; 0xfcfa6 - -TradeCompleteText1: ; 0xfcfa6 - ; Yay! I got myself @ ! Thanks! - text_jump UnknownText_0x1bd4d2 - db "@" -; 0xfcfab - -TradeAfterText1: ; 0xfcfab - ; Hi, how's my old @ doing? - text_jump UnknownText_0x1bd4f4 - db "@" -; 0xfcfb0 - - -TradeIntroText2: -TradeIntroText3: ; 0xfcfb0 - ; Hi, I'm looking for this #MON. If you have @ , would you trade it for my @ ? - text_jump UnknownText_0x1bd512 - db "@" -; 0xfcfb5 - -TradeCancelText2: -TradeCancelText3: ; 0xfcfb5 - ; You don't have one either? Gee, that's really disappointing… - text_jump UnknownText_0x1bd565 - db "@" -; 0xfcfba - -TradeWrongText2: -TradeWrongText3: ; 0xfcfba - ; You don't have @ ? That's too bad, then. - text_jump UnknownText_0x1bd5a1 - db "@" -; 0xfcfbf - -TradeCompleteText2: ; 0xfcfbf - ; Great! Thank you! I finally got @ . - text_jump UnknownText_0x1bd5cc - db "@" -; 0xfcfc4 - -TradeAfterText2: ; 0xfcfc4 - ; Hi! The @ you traded me is doing great! - text_jump UnknownText_0x1bd5f4 - db "@" -; 0xfcfc9 - - -TradeIntroText4: ; 0xfcfc9 - ; 's cute, but I don't have it. Do you have @ ? Want to trade it for my @ ? - text_jump UnknownText_0x1bd621 - db "@" -; 0xfcfce - -TradeCancelText4: ; 0xfcfce - ; You don't want to trade? Oh, darn… - text_jump UnknownText_0x1bd673 - db "@" -; 0xfcfd3 - -TradeWrongText4: ; 0xfcfd3 - ; That's not @ . Please trade with me if you get one. - text_jump UnknownText_0x1bd696 - db "@" -; 0xfcfd8 - -TradeCompleteText4: ; 0xfcfd8 - ; Wow! Thank you! I always wanted @ ! - text_jump UnknownText_0x1bd6cd - db "@" -; 0xfcfdd - -TradeAfterText4: ; 0xfcfdd - ; How is that @ I traded you doing? Your @ 's so cute! - text_jump UnknownText_0x1bd6f5 - db "@" -; 0xfcfe2 - - -TradeCompleteText3: ; 0xfcfe2 - ; Uh? What happened? - text_jump UnknownText_0x1bd731 - db "@" -; 0xfcfe7 - -TradeAfterText3: ; 0xfcfe7 - ; Trading is so odd… I still have a lot to learn about it. - text_jump UnknownText_0x1bd745 - db "@" -; 0xfcfec - - -MomTriesToBuySomething:: ; fcfec - ld a, [wMapReentryScriptQueueFlag] - and a - ret nz - call GetMapHeaderPhoneServiceNybble - and a - ret nz - xor a - ld [wdc18], a - call CheckBalance_MomItem2 - ret nc - call Functionfd0c3 - ret nc - ld b, BANK(UnknownScript_0xfd00f) - ld de, UnknownScript_0xfd00f - callba LoadScriptBDE - scf - ret -; fd00f - -UnknownScript_0xfd00f: ; 0xfd00f - callasm Functionfd017 - farjump Script_ReceivePhoneCall -; 0xfd017 - -Functionfd017: ; fd017 - call MomBuysItem_DeductFunds - call Functionfd0eb - ld a, [wdc18] - and a - jr nz, .ok - ld hl, wdc17 - inc [hl] -.ok - ld a, 1 - ld [wCurrentCaller], a - ld bc, wd03f - ld hl, 0 - add hl, bc - ld [hl], 0 - inc hl - ld [hl], 1 - ld hl, 9 - add hl, bc - ld a, $3f - ld [hli], a - ld a, e - ld [hli], a - ld a, d - ld [hl], a - ret -; fd044 - -CheckBalance_MomItem2: ; fd044 - ld a, [wdc17] - cp 10 - jr nc, .nope - call GetItemFromMom - ld a, [hli] - ld [hMoneyTemp], a - ld a, [hli] - ld [hMoneyTemp + 1], a - ld a, [hli] - ld [hMoneyTemp + 2], a - ld de, wMomsMoney - ld bc, hMoneyTemp - callba CompareMoney - jr nc, .have_enough_money - -.nope - jr .check_have_2300 - -.have_enough_money - scf - ret - -.check_have_2300 - ld hl, hMoneyTemp - ld [hl], (2300 / $10000) ; $00 - inc hl - ld [hl], ((2300 % $10000) / $100) ; $08 - inc hl - ld [hl], (2300 % $100) ; $fc -.loop - ld de, wdc19 - ld bc, wMomsMoney - callba CompareMoney - jr z, .exact - jr nc, .less_than - call Functionfd099 - jr .loop - -.less_than - xor a - ret - -.exact - call Functionfd099 - ld a, 5 - call RandomRange - inc a - ld [wdc18], a - scf - ret -; fd099 - -Functionfd099: ; fd099 - ld de, wdc19 - ld bc, hMoneyTemp - callba AddMoney - ret -; fd0a6 - - -MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6) - call GetItemFromMom - ld de, 3 - add hl, de - ld a, [hli] - ld [hMoneyTemp], a - ld a, [hli] - ld [hMoneyTemp + 1], a - ld a, [hli] - ld [hMoneyTemp + 2], a - ld de, wMomsMoney - ld bc, hMoneyTemp - callba TakeMoney - ret - - -Functionfd0c3: ; fd0c3 - call GetItemFromMom - ld de, 6 - add hl, de - ld a, [hli] - cp 1 - jr z, .not_doll - ld a, [hl] - ld c, a - ld b, 1 - callba DecorationFlagAction_c - scf - ret - -.not_doll - ld a, [hl] - ld [CurItem], a - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld hl, PCItems - call ReceiveItem - ret -; fd0eb - - -Functionfd0eb: ; fd0eb (3f:50eb) - call GetItemFromMom - ld de, 6 ; field - add hl, de - ld a, [hli] - ld de, Script_MomBoughtItem - cp 1 - ret z - ld de, Script_MomBoughtDoll - ret -; fd0fd (3f:50fd) - -Script_MomBoughtItem: ; 0xfd0fd - writetext _MomText_HiHowAreYou - writetext _MomText_FoundAnItem - writetext _MomText_BoughtWithYourMoney - writetext _MomText_ItsInPC - end -; 0xfd10a - -Script_MomBoughtDoll: ; 0xfd10a - writetext _MomText_HiHowAreYou - writetext _MomText_FoundADoll - writetext _MomText_BoughtWithYourMoney - writetext _MomText_ItsInRoom - end -; 0xfd117 - - -GetItemFromMom: ; fd117 - ld a, [wdc18] - and a - jr z, .zero - dec a - ld de, MomItems_1 - jr .incave - -.zero - ld a, [wdc17] - cp 10 ; length of MomItems_2 - jr c, .ok - xor a - -.ok - ld de, MomItems_2 - -.incave - ld l, a - ld h, 0 -rept 3 ; multiply hl by 8 - add hl, hl -endr - add hl, de - ret -; fd136 - -momitem: macro -; money to trigger, cost, kind, item - dt \1 - dt \2 - db \3, \4 -ENDM - - -MomItems_1: ; fd136 - momitem 0, 600, MOM_ITEM, SUPER_POTION - momitem 0, 90, MOM_ITEM, ANTIDOTE - momitem 0, 180, MOM_ITEM, POKE_BALL - momitem 0, 450, MOM_ITEM, ESCAPE_ROPE - momitem 0, 500, MOM_ITEM, GREAT_BALL -; fd15e - -MomItems_2: ; fd15e - momitem 900, 600, MOM_ITEM, SUPER_POTION - momitem 4000, 270, MOM_ITEM, REPEL - momitem 7000, 600, MOM_ITEM, SUPER_POTION - momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL - momitem 15000, 3000, MOM_ITEM, MOON_STONE - momitem 19000, 600, MOM_ITEM, SUPER_POTION - momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL - momitem 40000, 900, MOM_ITEM, HYPER_POTION - momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL - momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL -; fd1ae - - db 0, 0, 0 ; XXX - -_MomText_HiHowAreYou: ; 0xfd1b1 - ; Hi, ! How are you? - text_jump UnknownText_0x1bc615 - db "@" -; 0xfd1b6 - -_MomText_FoundAnItem: ; 0xfd1b6 - ; I found a useful item shopping, so - text_jump UnknownText_0x1bc62a - db "@" -; 0xfd1bb - -_MomText_BoughtWithYourMoney: ; 0xfd1bb - ; I bought it with your money. Sorry! - text_jump UnknownText_0x1bc64e - db "@" -; 0xfd1c0 - -_MomText_ItsInPC: ; 0xfd1c0 - ; It's in your PC. You'll like it! - text_jump UnknownText_0x1bc673 - db "@" -; 0xfd1c5 - -_MomText_FoundADoll: ; 0xfd1c5 - ; While shopping today, I saw this adorable doll, so - text_jump UnknownText_0x1bc693 - db "@" -; 0xfd1ca - -_MomText_ItsInRoom: ; 0xfd1ca - ; It's in your room. You'll love it! - text_jump UnknownText_0x1bc6c7 - db "@" -; 0xfd1cf - - db 0 ; XXX - -Functionfd1d0: ; fd1d0 - ret -; fd1d1 - - ret ; XXX - +INCLUDE "event/mom_phone.asm" INCLUDE "misc/mobile_40.asm" @@ -35716,7 +25857,7 @@ Function10404d: ; 10404d ret ; 104061 -Function104061:: ; 104061 +ReloadMapPart:: ; 104061 ld hl, Function104067 jp Function104177 ; 104067 @@ -35746,7 +25887,7 @@ Function104067: ; 104067 ret Function104099: ; 104099 - ld hl, Function104061 + ld hl, ReloadMapPart ; useless ld hl, Function1040a2 jp Function104177 ; 1040a2 @@ -36585,7 +26726,7 @@ LoadMapPalettes: ; 1047eb RefreshMapSprites: ; 1047f0 call ClearSprites callba ReturnFromMapSetupScript - call Function2914 + call GetMovementPermissions callba Function579d callba CheckReplaceKrisSprite ld hl, wPlayerSpriteSetupFlags |