diff options
85 files changed, 10945 insertions, 11772 deletions
diff --git a/audio/engine.asm b/audio/engine.asm index 017833f6a..f3a67e5f3 100644 --- a/audio/engine.asm +++ b/audio/engine.asm @@ -6,7 +6,7 @@ ; FadeMusic ; PlayStereoSFX -_SoundRestart:: ; e8000 +_MapSetup_Sound_Off:: ; e8000 ; restart sound operation ; clear all relevant hardware registers & wram push hl @@ -63,7 +63,7 @@ MusicFadeRestart: ; e803d push af ld a, [MusicFadeIDLo] push af - call _SoundRestart + call _MapSetup_Sound_Off pop af ld [MusicFadeIDLo], a pop af @@ -3161,7 +3161,7 @@ ChannelPointers: ; e8fd9 ClearChannels:: ; e8fe9 ; runs ClearChannel for all 4 channels -; doesn't seem to be used, but functionally identical to SoundRestart +; doesn't seem to be used, but functionally identical to MapSetup_Sound_Off ld hl, rNR50 xor a rept 2 diff --git a/battle/core.asm b/battle/core.asm index 0a6e9e0f5..1defd0e23 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2527,7 +2527,7 @@ WinTrainerBattle: ; 3cfa4 or [hl] ret nz call ClearTileMap - call WhiteBGMap + call ClearBGPalettes ret ; 3d02b @@ -2911,7 +2911,7 @@ ForcePlayerMonChoice: ; 3d227 .enemy_fainted_mobile_error call ClearSprites - call WhiteBGMap + call ClearBGPalettes call _LoadHPBar call ExitMenu call LoadTileMapToTempTileMap @@ -2995,7 +2995,7 @@ IsMobileBattle: ; 3d2f1 ; 3d2f7 Function3d2f7: ; 3d2f7 - call WhiteBGMap + call ClearBGPalettes Function3d2fa: ; switch to fullscreen menu? callba Function5004f callba Function50405 @@ -3137,7 +3137,7 @@ LostBattle: ; 3d38e callba BattleTowerText call WaitPressAorB_BlinkCursor call ClearTileMap - call WhiteBGMap + call ClearBGPalettes ret .not_canlose @@ -5290,7 +5290,7 @@ Function3e234: ; 3e234 ld a, [wItemAttributeParamBuffer] cp $3 jr z, .asm_3e24a - call WhiteBGMap + call ClearBGPalettes .asm_3e24a xor a @@ -5332,7 +5332,7 @@ BattleMenu_PKMN: ; 3e28d Function3e290: call ExitMenu call LoadStandardMenuDataHeader - call WhiteBGMap + call ClearBGPalettes Function3e299: call Function3d2fa xor a @@ -8816,7 +8816,7 @@ endr bit 0, a ret z call ClearTileMap - call WhiteBGMap + call ClearBGPalettes ret ; 3f759 diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 09b8fa2fc..9d9ae339b 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -540,7 +540,7 @@ const_value SET 1 const OBJECT_SPRITE_Y const OBJECT_SPRITE_X_OFFSET const OBJECT_SPRITE_Y_OFFSET - const OBJECT_27 + const OBJECT_MOVEMENT_BYTE_INDEX const OBJECT_28 const OBJECT_29 const OBJECT_30 diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm index 89d99ba90..194257996 100644 --- a/constants/map_setup_constants.asm +++ b/constants/map_setup_constants.asm @@ -1,16 +1,16 @@ const_value SET $f1 const MAPSETUP_WARP - const MAPSETUP_02 + const MAPSETUP_CONTINUE const MAPSETUP_RELOADMAP - const MAPSETUP_04 - const MAPSETUP_05 - const MAPSETUP_06 - const MAPSETUP_07 - const MAPSETUP_08 - const MAPSETUP_09 - const MAPSETUP_10 + const MAPSETUP_TELEPORT + const MAPSETUP_DOOR + const MAPSETUP_FALL + const MAPSETUP_CONNECTION + const MAPSETUP_LINKRETURN + const MAPSETUP_TRAIN + const MAPSETUP_SUBMENU const MAPSETUP_BADWARP - const MAPSETUP_12 + const MAPSETUP_FLY ; Command descriptions from Condensation water's scripting compendium. const_def const_def diff --git a/constants/script_constants.asm b/constants/script_constants.asm index c734867ea..058f9d92d 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -42,10 +42,10 @@ const_value SET -1 const PLAYEREVENT_SEENBYTRAINER const PLAYEREVENT_TALKTOTRAINER const PLAYEREVENT_ITEMBALL - const PLAYEREVENT_4 + const PLAYEREVENT_CONNECTION const PLAYEREVENT_WARP const PLAYEREVENT_FALL const PLAYEREVENT_WHITEOUT const PLAYEREVENT_HATCH - const PLAYEREVENT_9 + const PLAYEREVENT_JOYCHANGEFACING NUM_PLAYER_EVENTS EQU const_value diff --git a/engine/billspc.asm b/engine/billspc.asm new file mode 100755 index 000000000..03a7592ca --- /dev/null +++ b/engine/billspc.asm @@ -0,0 +1,2667 @@ +_DepositPKMN: ; e2391 (38:6391) + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + xor a + ld [hMapAnims], a + call Functione2963 + xor a + ld [wcb2e], a + call DelayFrame +.asm_e23b4 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_e23c6 + call Functione23d5 + call DelayFrame + jr .asm_e23b4 +.asm_e23c6 + call ClearSprites + pop af + ld [hInMenu], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret + +Functione23d5: ; e23d5 (38:63d5) + ld a, [wJumptableIndex] + ld hl, Jumptable_e23df + call Functione33df + jp [hl] + +Jumptable_e23df: ; e23df (38:63df) + dw Functione23e9 + dw Functione241a + dw Functione245d + dw Functione247d + dw Functione2992 + + +Functione23e9: ; e23e9 (38:63e9) + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2d30 + call Functione2a8e + ld de, PCString_ChooseaPKMN + call Functione2a6e + ld a, $5 + ld [wcb2d], a + call Functione2c2c + call PCMonInfo + ld a, $ff + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + call WaitBGMap + call Functione2e01 + call Functione298d + ret + +Functione241a: ; e241a (38:641a) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and B_BUTTON + jr nz, .asm_e2457 + ld a, [hl] + and A_BUTTON + jr nz, .asm_e2443 + call Functione29b5 + and a + ret z + call Functione2e01 + xor a + ld [hBGMapMode], a + call Functione2c2c + call PCMonInfo + ld a, $1 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + ret +.asm_e2443 + call Functione2def + and a + ret z + cp $ff + jr z, .asm_e2457 + ld a, $2 + ld [wJumptableIndex], a + ret +; e2452 (38:6452) + +.asm_e2452 + ld hl, wJumptableIndex + dec [hl] + ret + +.asm_e2457 + ld a, $4 + ld [wJumptableIndex], a + ret + +Functione245d: ; e245d (38:645d) + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ld de, PCString_WhatsUp + call Functione2a6e + ld a, $1 + ld [MenuSelection2], a + call Functione298d + ret + +Functione247d: ; e247d (38:647d) + ld hl, BillsPCDepositMenuDataHeader + call CopyMenuDataHeader + ld a, [MenuSelection2] + call Function1d4b + call InterpretMenu2 + jp c, BillsPCDepositFuncCancel + ld a, [MenuSelection2] + dec a + and $3 + ld e, a + ld d, 0 + ld hl, BillsPCDepositJumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +BillsPCDepositJumptable: ; e24a1 (38:64a1) + dw BillsPCDepositFuncDeposit ; Deposit Pokemon + dw BillsPCDepositFuncStats ; Pokemon Stats + dw BillsPCDepositFuncRelease ; Release Pokemon + dw BillsPCDepositFuncCancel ; Cancel + + +BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) + call Functione2f18 + jp c, BillsPCDepositFuncCancel + call Functione307c + jr c, .no_overflow_31 + ld a, $0 + ld [wJumptableIndex], a + xor a + ld [wcb2b], a + ld [wcb2a], a + ret +.no_overflow_31 + ld de, PCString_WhatsUp + call Functione2a6e + ret + +BillsPCDepositFuncStats: ; e24c8 (38:64c8) + call LoadStandardMenuDataHeader + call Functione2f7e + call ExitMenu + call PCMonInfo + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ret + +BillsPCDepositFuncRelease: ; e24e0 (38:64e0) + call Functione2f18 + jr c, BillsPCDepositFuncCancel + call Functione2f5f + jr c, BillsPCDepositFuncCancel + ld a, [MenuSelection2] + push af + ld de, PCString_ReleasePKMN + call Functione2a6e + call LoadStandardMenuDataHeader + lb bc, 14, 11 + call PlaceYesNoBox + ld a, [MenuSelection2] + dec a + call ExitMenu + and a + jr nz, .asm_e252c + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + xor a + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + call Functione3180 + ld a, $0 + ld [wJumptableIndex], a + xor a + ld [wcb2b], a + ld [wcb2a], a + pop af + ret +.asm_e252c + ld de, PCString_WhatsUp + call Functione2a6e + pop af + ld [MenuSelection2], a + ret + +BillsPCDepositFuncCancel: ; e2537 (38:6537) + ld a, $0 + ld [wJumptableIndex], a + ret +; e253d (38:653d) + +BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d) + db $40 ; flags + db 04, 09 ; start coords + db 13, 19 ; end coords + dw BillsPCDepositMenuData + db 1 ; default option +; 0xe2545 + +BillsPCDepositMenuData: ; 0xe2545 (38:6545) + db $80 ; flags + db 4 ; items + db "DEPOSIT@" + db "STATS@" + db "RELEASE@" + db "CANCEL@" +; 0xe2564 (38:6564) + +Functione2564: ; e2564 + hlcoord 0, 0 + ld b, $4 + ld c, $8 + call ClearBox + hlcoord 0, 4 + ld b, $a + ld c, $9 + call ClearBox + hlcoord 0, 14 + ld b, $2 + ld c, $8 + call ClearBox + ret +; e2583 + +_WithdrawPKMN: ; e2583 (38:6583) + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + xor a + ld [hMapAnims], a + call Functione2963 + ld a, $f + ld [wcb2e], a + call DelayFrame +.asm_e25a7 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .no_overflow_49 + call Functione25c8 + call DelayFrame + jr .asm_e25a7 +.no_overflow_49 + call ClearSprites + pop af + ld [hInMenu], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret + +Functione25c8: ; e25c8 (38:65c8) + ld a, [wJumptableIndex] + ld hl, .jumptable + call Functione33df + jp [hl] + +.jumptable: ; e25d2 (38:65d2) + dw Functione25dc + dw Functione2612 + dw Functione2655 + dw BillsPC_Withdraw + dw Functione2992 + + +Functione25dc: ; e25dc (38:65dc) + ld a, $f + ld [wcb2e], a + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2d30 + call Functione2a8e + ld de, PCString_ChooseaPKMN + call Functione2a6e + ld a, $5 + ld [wcb2d], a + call Functione2c2c + call PCMonInfo + ld a, $ff + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + call WaitBGMap + call Functione2e01 + call Functione298d + ret + +Functione2612: ; e2612 (38:6612) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and B_BUTTON + jr nz, .asm_e264f + ld a, [hl] + and A_BUTTON + jr nz, .asm_e263b + call Functione29b5 + and a + ret z + call Functione2e01 + xor a + ld [hBGMapMode], a + call Functione2c2c + call PCMonInfo + ld a, $1 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + ret +.asm_e263b + call Functione2def + and a + ret z + cp $ff + jr z, .asm_e264f + ld a, $2 + ld [wJumptableIndex], a + ret +; e264a (38:664a) + +.asm_e264a + ld hl, wJumptableIndex + dec [hl] + ret + +.asm_e264f + ld a, $4 + ld [wJumptableIndex], a + ret +; e2655 + +Functione2655: ; e2655 (38:6655) + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ld de, PCString_WhatsUp + call Functione2a6e + ld a, $1 + ld [MenuSelection2], a + call Functione298d + ret + +BillsPC_Withdraw: ; e2675 (38:6675) + ld hl, .MenuDataHeader + call CopyMenuDataHeader + ld a, [MenuSelection2] + call Function1d4b + call InterpretMenu2 + jp c, .cancel + ld a, [MenuSelection2] + dec a + 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] + +.jumptable: ; e2699 (38:6699) #mark + dw .withdraw ; Withdraw + dw .stats ; Stats + dw .release ; Release + dw .cancel ; Cancel + + +.withdraw: ; e26a1 (38:66a1) + call Functione2f18 + jp c, .cancel + call TryWithdrawPokemon + jr c, .FailedWithdraw + ld a, $0 + ld [wJumptableIndex], a + xor a + ld [wcb2b], a + ld [wcb2a], a + ret +.FailedWithdraw + ld de, PCString_WhatsUp + call Functione2a6e + ret + +.stats: ; e26c0 (38:66c0) + call LoadStandardMenuDataHeader + call Functione2f7e + call ExitMenu + call PCMonInfo + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ret + +.release: ; e26d8 (38:66d8) + ld a, [MenuSelection2] + push af + call Functione2f5f + jr c, .FailedRelease + ld de, PCString_ReleasePKMN + call Functione2a6e + call LoadStandardMenuDataHeader + lb bc, 14, 11 + call PlaceYesNoBox + ld a, [MenuSelection2] + dec a + call ExitMenu + and a + jr nz, .FailedRelease + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + call Functione3180 + ld a, $0 + ld [wJumptableIndex], a + xor a + ld [wcb2b], a + ld [wcb2a], a + pop af + ret +.FailedRelease + ld de, PCString_WhatsUp + call Functione2a6e + pop af + ld [MenuSelection2], a + ret + +.cancel: ; e272b (38:672b) + ld a, $0 + ld [wJumptableIndex], a + ret +; e2731 (38:6731) + +.MenuDataHeader: ; 0xe2731 + db $40 ; flags + db 04, 09 ; start coords + db 13, 19 ; end coords + dw .MenuData + db 1 ; default option +; 0xe2739 + +.MenuData: ; 0xe2739 + db $80 ; flags + db 4 ; items + db "WITHDRAW@" + db "STATS@" + db "RELEASE@" + db "CANCEL@" +; 0xe2759 + +_MovePKMNWithoutMail: ; e2759 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + xor a + ld [hMapAnims], a + call Functione2963 + ld a, [wCurBox] + and $f + inc a + ld [wcb2e], a + call DelayFrame +.asm_e2781 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_e2793 + call Functione27a2 + call DelayFrame + jr .asm_e2781 + +.asm_e2793 + call ClearSprites + pop af + ld [hInMenu], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret +; e27a2 + +Functione27a2: ; e27a2 + ld a, [wJumptableIndex] + ld hl, Jumptable_e27ac + call Functione33df + jp [hl] +; e27ac + +Jumptable_e27ac: ; e27ac + dw Functione27ba + dw Functione27eb + dw Functione283d + dw Functione285d + dw Functione28df + dw Functione2903 + dw Functione2992 +; e27ba + +Functione27ba: ; e27ba + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2d30 + ld de, PCString_ChooseaPKMN + call Functione2a6e + ld a, $5 + ld [wcb2d], a + call Functione2c2c + call Functione2a80 + call PCMonInfo + ld a, $ff + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + call WaitBGMap + call Functione2e01 + call Functione298d + ret +; e27eb + +Functione27eb: ; e27eb + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .asm_e2837 + ld a, [hl] + and A_BUTTON + jr nz, .asm_e2823 + call Functione29d0 + jr c, .asm_e2816 + and a + ret z + call Functione2e01 + xor a + ld [hBGMapMode], a + call Functione2c2c + call PCMonInfo + ld a, $1 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + ret + +.asm_e2816 + xor a + ld [wcb2b], a + ld [wcb2a], a + ld a, $0 + ld [wJumptableIndex], a + ret + +.asm_e2823 + call Functione2def + and a + ret z + cp $ff + jr z, .asm_e2837 + ld a, $2 + ld [wJumptableIndex], a + ret + + ld hl, wJumptableIndex + dec [hl] + ret + +.asm_e2837 + ld a, $6 + ld [wJumptableIndex], a + ret +; e283d + +Functione283d: ; e283d + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ld de, PCString_WhatsUp + call Functione2a6e + ld a, $1 + ld [MenuSelection2], a + call Functione298d + ret +; e285d + +Functione285d: ; e285d + ld hl, MenuDataHeader_0xe28c3 + call CopyMenuDataHeader + ld a, [MenuSelection2] + call Function1d4b + call InterpretMenu2 + jp c, Functione28bd + ld a, [MenuSelection2] + dec a + and 3 + ld e, a + ld d, 0 + ld hl, Jumptable_e2881 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e2881 + +Jumptable_e2881: ; e2881 + dw Functione2887 + dw Functione28a5 + dw Functione28bd +; e2887 + +Functione2887: ; e2887 + call Functione2f18 + jp c, Functione28bd + ld a, [wcb2a] + ld [wcb2f], a + ld a, [wcb2b] + ld [wcb30], a + ld a, [wcb2e] + ld [wcb31], a + ld a, $4 + ld [wJumptableIndex], a + ret +; e28a5 + +Functione28a5: ; e28a5 + call LoadStandardMenuDataHeader + call Functione2f7e + call ExitMenu + call PCMonInfo + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ret +; e28bd + +Functione28bd: ; e28bd + ld a, $0 + ld [wJumptableIndex], a + ret +; e28c3 + +MenuDataHeader_0xe28c3: ; 0xe28c3 + db $40 ; flags + db 04, 09 ; start coords + db 13, 19 ; end coords + dw MenuData2_0xe28cb + db 1 ; default option +; 0xe28cb + +MenuData2_0xe28cb: ; 0xe28cb + db $80 ; flags + db 3 ; items + db "MOVE@" + db "STATS@" + db "CANCEL@" +; 0xe28df + +Functione28df: ; e28df + xor a + ld [hBGMapMode], a + call Functione2d30 + ld de, PCString_MoveToWhere + call Functione2a6e + ld a, $5 + ld [wcb2d], a + call Functione2c2c + call Functione2a80 + call ClearSprites + call Functione2e8c + call WaitBGMap + call Functione298d + ret +; e2903 + +Functione2903: ; e2903 + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .asm_e294b + ld a, [hl] + and A_BUTTON + jr nz, .asm_e2938 + call Functione29f4 + jr c, .asm_e292b + and a + ret z + call Functione2e8c + xor a + ld [hBGMapMode], a + call Functione2c2c + ld a, $1 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + ret + +.asm_e292b + xor a + ld [wcb2b], a + ld [wcb2a], a + ld a, $4 + ld [wJumptableIndex], a + ret + +.asm_e2938 + call Functione2ee5 + jr c, .asm_e2946 + call Functione31e7 + ld a, $0 + ld [wJumptableIndex], a + ret + +.asm_e2946 + ld hl, wJumptableIndex + dec [hl] + ret + +.asm_e294b + ld a, [wcb2f] + ld [wcb2a], a + ld a, [wcb30] + ld [wcb2b], a + ld a, [wcb31] + ld [wcb2e], a + ld a, $0 + ld [wJumptableIndex], a + ret +; e2963 + +Functione2963: ; e2963 (38:6963) + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call Functione33e8 + ld hl, OverworldMap + ld bc, $338 + xor a + call ByteFill + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld [wcb2b], a + ld [wcb2a], a + ret + +Functione298d: ; e298d (38:698d) + ld hl, wJumptableIndex + inc [hl] + ret + +Functione2992: ; e2992 (38:6992) + ld hl, wJumptableIndex + set 7, [hl] + ret + +Functione2998: ; e2998 (38:6998) + ld a, [wcb2d] + ld d, a + ld a, [wcb2c] + and a + jr z, .asm_e29b2 + dec a + cp $1 + jr z, .asm_e29b2 + ld e, a + ld a, [hl] + and D_UP + jr nz, Functione2a18 + ld a, [hl] + and D_DOWN + jr nz, Functione2a2c +.asm_e29b2 + jp Functione2a65 + +Functione29b5: ; e29b5 (38:69b5) + ld hl, hJoyLast + ld a, [wcb2d] + ld d, a + ld a, [wcb2c] + ld e, a + and a + jr z, .asm_e29cd + ld a, [hl] + and D_UP + jr nz, Functione2a18 + ld a, [hl] + and D_DOWN + jr nz, Functione2a2c +.asm_e29cd + jp Functione2a65 +; e29d0 (38:69d0) + +Functione29d0: ; e29d0 + ld hl, hJoyLast + ld a, [wcb2d] + ld d, a + ld a, [wcb2c] + ld e, a + and a + jr z, .asm_e29e8 + ld a, [hl] + and D_UP + jr nz, Functione2a18 + ld a, [hl] + and D_DOWN + jr nz, Functione2a2c + +.asm_e29e8 + ld a, [hl] + and D_LEFT + jr nz, Functione2a48 + ld a, [hl] + and D_RIGHT + jr nz, Functione2a56 + jr Functione2a65 + +Functione29f4: ; e29f4 + ld hl, hJoyLast + ld a, [wcb2d] + ld d, a + ld a, [wcb2c] + ld e, a + and a + jr z, .asm_e2a0c + + ld a, [hl] + and D_UP + jr nz, Functione2a18 + ld a, [hl] + and D_DOWN + jr nz, Functione2a2c + +.asm_e2a0c + ld a, [hl] + and D_LEFT + jr nz, Functione2a48 + ld a, [hl] + and D_RIGHT + jr nz, Functione2a56 + jr Functione2a65 + +Functione2a18: ; e2a18 (38:6a18) + ld hl, wcb2b + ld a, [hl] + and a + jr z, .asm_e2a22 + dec [hl] + jr Functione2a68 + +.asm_e2a22 + ld hl, wcb2a + ld a, [hl] + and a + jr z, Functione2a65 + dec [hl] + jr Functione2a68 + +Functione2a2c: ; e2a2c (38:6a2c) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + inc a + cp e + jr nc, Functione2a65 + + ld hl, wcb2b + ld a, [hl] + inc a + cp d + jr nc, .asm_e2a42 + inc [hl] + jr Functione2a68 + +.asm_e2a42 + ld hl, wcb2a + inc [hl] + jr Functione2a68 +; e2a48 (38:6a48) + +Functione2a48: ; e2a48 + ld hl, wcb2e + ld a, [hl] + and a + jr z, .asm_e2a52 + dec [hl] + jr Functione2a6c + +.asm_e2a52 + ld [hl], $e + jr Functione2a6c + +Functione2a56: ; e2a56 + ld hl, wcb2e + ld a, [hl] + cp $e + jr z, .asm_e2a61 + inc [hl] + jr Functione2a6c + +.asm_e2a61 + ld [hl], $0 + jr Functione2a6c + +Functione2a65: ; e2a65 (38:6a65) + xor a + and a + ret + +Functione2a68: ; e2a68 (38:6a68) + ld a, $1 + and a + ret +; e2a6c (38:6a6c) + +Functione2a6c: ; e2a6c + scf + ret +; e2a6e + +Functione2a6e: ; e2a6e (38:6a6e) + push de + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + pop de + hlcoord 1, 16 + call PlaceString + ret +; e2a80 (38:6a80) + +Functione2a80: ; e2a80 + call Functione2a8e + hlcoord 8, 1 + ld [hl], $5f + hlcoord 19, 1 + ld [hl], $5e + ret +; e2a8e + +Functione2a8e: ; e2a8e (38:6a8e) + hlcoord 8, 0 + lb bc, 1, 10 + call TextBox + + ld a, [wcb2e] + and a + jr z, .party + + cp NUM_BOXES + 1 + jr nz, .gotbox + + ld a, [wCurBox] + inc a +.gotbox + dec a + ld hl, wBoxNames + ld bc, BOX_NAME_LENGTH + call AddNTimes + ld e, l + ld d, h + jr .print + +.party + ld de, String_e2abd +.print + hlcoord 10, 1 + call PlaceString + ret +; e2abd (38:6abd) + +String_e2abd: + db "PARTY <PK><MN>@" +; e2ac6 + +PCMonInfo: ; e2ac6 (38:6ac6) +; Display a monster's pic and +; attributes when highlighting +; it in a PC menu. + +; Includes the neat cascading +; effect when showing the pic. + +; Example: Species, level, gender, +; whether it's holding an item. + + hlcoord 0, 0 + lb bc, 15, 8 + call ClearBox + + hlcoord 8, 14 + lb bc, 1, 3 + call ClearBox + + call Functione2def + and a + ret z + cp $ff + ret z + + ld [wd265], a + hlcoord 1, 4 + xor a + ld b, 7 +.asm_e2ae9 + ld c, 7 + push af + push hl +.asm_e2aed + ld [hli], a + add 7 + dec c + jr nz, .asm_e2aed + pop hl + ld de, 20 + add hl, de + pop af + inc a + dec b + jr nz, .asm_e2ae9 + + call Functione2b6d + ld a, [wd265] + ld [CurPartySpecies], a + ld [CurSpecies], a + ld hl, TempMonDVs + predef GetUnownLetter + call GetBaseData + ld de, VTiles2 tile $00 + predef GetFrontpic + xor a + ld [wcb32], a + ld a, [CurPartySpecies] + ld [wd265], a + + cp EGG + ret z + + call GetBasePokemonName + hlcoord 1, 14 + call PlaceString + + hlcoord 1, 12 + call PrintLevel + + ld a, $3 + ld [MonType], a + callba GetGender + jr c, .asm_e2b4f + ld a, "♂" + jr nz, .printgender + ld a, "♀" +.printgender + hlcoord 5, 12 + ld [hl], a +.asm_e2b4f + + ld a, [TempMonItem] + and a + ret z + + ld d, a + callab ItemIsMail + jr c, .mail + ld a, $5d ; item icon + jr .printitem +.mail + ld a, $1 + ld [wcb32], a + ld a, $5c ; mail icon +.printitem + hlcoord 7, 12 + ld [hl], a + ret + +Functione2b6d: ; e2b6d (38:6b6d) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld e, a + ld d, $0 + ld hl, wc801 +rept 3 + add hl, de +endr + ld a, [hl] + and a + jr z, .asm_e2bc6 + cp $f + jr z, .asm_e2bf5 + ld b, a + call Functione3396 + ld a, b + call GetSRAMBank + push hl + ld bc, $35 + add hl, bc + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonLevel], a + pop hl + push hl + ld bc, $17 + add hl, bc + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonItem], a + pop hl + ld bc, $2b + add hl, bc + ld bc, $20 + ld a, e + call AddNTimes + ld de, TempMonDVs + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + call CloseSRAM + ret +.asm_e2bc6 + ld hl, PartyMon1Level + ld bc, $30 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonLevel], a + ld hl, PartyMon1Item + ld bc, $30 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonItem], a + ld hl, PartyMon1DVs + ld bc, $30 + ld a, e + call AddNTimes + ld de, TempMonDVs + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ret + +.asm_e2bf5 + ld a, BANK(sBox) + call GetSRAMBank + ld hl, sBoxMon1Level + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonLevel], a + + ld hl, sBoxMon1Item + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonItem], a + + ld hl, sBoxMon1DVs + ld bc, $20 + ld a, e + call AddNTimes + ld de, TempMonDVs + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + + call CloseSRAM + ret + +Functione2c2c: ; e2c2c (38:6c2c) + hlcoord 8, 2 + lb bc, 10, 10 + call TextBox + + hlcoord 8, 2 + ld [hl], "└" + hlcoord 19, 2 + ld [hl], "┘" + + ld a, [wcb2a] + ld e, a + ld d, 0 + ld hl, OverworldMap +rept 3 + add hl, de +endr + ld e, l + ld d, h + hlcoord 9, 4 + ld a, [wcb2d] +.asm_e2c53 + push af + push de + push hl + call Functione2c6e + pop hl + ld de, $28 + add hl, de + pop de +rept 3 + inc de +endr + pop af + dec a + jr nz, .asm_e2c53 + ret +; e2c67 (38:6c67) + +String_e2c67: + db "CANCEL@" +; e2c6e + +Functione2c6e: ; e2c6e (38:6c6e) + ld a, [de] + and a + ret z + cp $ff + jr nz, .asm_e2c7c + ld de, String_e2c67 + call PlaceString + ret +.asm_e2c7c + inc de + ld a, [de] + ld b, a + inc de + ld a, [de] + ld e, a + ld a, b + and a + jr z, .asm_e2cc8 + cp $f + jr z, .asm_e2cf1 + push hl + call Functione3396 + ld a, b + call GetSRAMBank + push hl + ld bc, $16 + add hl, bc + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + pop hl + and a + jr z, .asm_e2cc2 + ld bc, $372 + add hl, bc + ld bc, $b + ld a, e + call AddNTimes + ld de, StringBuffer1 + ld bc, $b + call CopyBytes + call CloseSRAM + pop hl + ld de, StringBuffer1 + call PlaceString + ret +.asm_e2cc2 + call CloseSRAM + pop hl + jr .asm_e2d23 +.asm_e2cc8 + push hl + ld hl, PartySpecies + ld d, $0 + add hl, de + ld a, [hl] + and a + jr z, .asm_e2cee + ld hl, PartyMonNicknames + ld bc, $b + ld a, e + call AddNTimes + ld de, StringBuffer1 + ld bc, $b + call CopyBytes + pop hl + ld de, StringBuffer1 + call PlaceString + ret +.asm_e2cee + pop hl + jr .asm_e2d23 +.asm_e2cf1 + push hl + ld a, BANK(sBox) + call GetSRAMBank + ld hl, sBoxSpecies + ld d, $0 + add hl, de + ld a, [hl] + and a + jr z, .asm_e2d1f + ld hl, sBoxMonNicknames + ld bc, PKMN_NAME_LENGTH + ld a, e + call AddNTimes + ld de, StringBuffer1 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + call CloseSRAM + pop hl + ld de, StringBuffer1 + call PlaceString + ret +.asm_e2d1f + call CloseSRAM + pop hl +.asm_e2d23 + ld de, String_e2d2a + call PlaceString + ret +; e2d2a (38:6d2a) + +String_e2d2a: + db "-----@" +; e2d30 + +Functione2d30: ; e2d30 (38:6d30) + xor a + ld hl, OverworldMap + ld bc, $5a + call ByteFill + ld de, OverworldMap + xor a + ld [wd003], a + ld [wd004], a + ld a, [wcb2e] + and a + jr z, .asm_e2d87 + cp $f + jr z, .asm_e2db7 + ld b, a + call Functione3396 + ld a, b + call GetSRAMBank + inc hl +.asm_e2d57 + ld a, [hl] + cp $ff + jr z, .asm_e2d79 + and a + jr z, .asm_e2d79 + ld [de], a + inc de + ld a, [wcb2e] + ld [de], a + inc de + ld a, [wd003] + ld [de], a + inc a + ld [wd003], a + inc de + inc hl + ld a, [wd004] + inc a + ld [wd004], a + jr .asm_e2d57 +.asm_e2d79 + call CloseSRAM + ld a, $ff + ld [de], a + ld a, [wd004] + inc a + ld [wcb2c], a + ret +.asm_e2d87 + ld hl, PartySpecies +.asm_e2d8a + ld a, [hl] + cp $ff + jr z, .asm_e2dac + and a + jr z, .asm_e2dac + ld [de], a + inc de + ld a, [wcb2e] + ld [de], a + inc de + ld a, [wd003] + ld [de], a + inc a + ld [wd003], a + inc de + inc hl + ld a, [wd004] + inc a + ld [wd004], a + jr .asm_e2d8a +.asm_e2dac + ld a, $ff + ld [de], a + ld a, [wd004] + inc a + ld [wcb2c], a + ret +.asm_e2db7 + ld a, BANK(sBox) + call GetSRAMBank + ld hl, sBoxSpecies +.asm_e2dbf + ld a, [hl] + cp $ff + jr z, .asm_e2de1 + and a + jr z, .asm_e2de1 + ld [de], a + inc de + ld a, [wcb2e] + ld [de], a + inc de + ld a, [wd003] + ld [de], a + inc a + ld [wd003], a + inc de + inc hl + ld a, [wd004] + inc a + ld [wd004], a + jr .asm_e2dbf +.asm_e2de1 + call CloseSRAM + ld a, $ff + ld [de], a + ld a, [wd004] + inc a + ld [wcb2c], a + ret + +Functione2def: ; e2def (38:6def) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld e, a + ld d, $0 + ld hl, OverworldMap +rept 3 + add hl, de +endr + ld a, [hl] + ret + +Functione2e01: ; e2e01 (38:6e01) + ld a, [wcb2c] + and a + jr nz, .asm_e2e0b + call ClearSprites + ret +.asm_e2e0b + ld hl, Unknown_e2e2b + ld de, Sprites +.done1 + ld a, [hl] + cp $ff + ret z + ld a, [wcb2b] + and $7 + swap a + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + jr .done1 +; e2e2b (38:6e2b) + +Unknown_e2e2b: ; e2e2b + db $26, $50, $00, $00 + db $26, $58, $00, $00 + db $26, $60, $00, $00 + db $26, $68, $00, $00 + db $26, $70, $00, $00 + db $26, $78, $00, $00 + db $26, $80, $00, $00 + db $26, $88, $00, $00 + db $26, $90, $00, $00 + db $26, $97, $00, $00 + db $39, $50, $00, $40 + db $39, $58, $00, $40 + db $39, $60, $00, $40 + db $39, $68, $00, $40 + db $39, $70, $00, $40 + db $39, $78, $00, $40 + db $39, $80, $00, $40 + db $39, $88, $00, $40 + db $39, $90, $00, $40 + db $39, $97, $00, $40 + db $2e, $4e, $01, $00 + db $31, $4e, $01, $40 + db $2e, $99, $01, $20 + db $31, $99, $01, $60 + db $ff +; e2e8c + +Functione2e8c: ; e2e8c + ld hl, Unknown_e2eac + ld de, Sprites +.asm_e2e92 + ld a, [hl] + cp $ff + ret z + ld a, [wcb2b] + and $7 + swap a + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + jr .asm_e2e92 +; e2eac + +Unknown_e2eac: ; e2eac + db $27, $50, $06, $00 + db $2b, $58, $00, $40 + db $2b, $60, $00, $40 + db $2b, $68, $00, $40 + db $2b, $70, $00, $40 + db $2b, $78, $00, $40 + db $2b, $80, $00, $40 + db $2b, $88, $00, $40 + db $2b, $90, $00, $40 + db $27, $98, $07, $00 + db $ff +; e2ed5 + +Functione2ed5: ; e2ed5 +.asm_e2ed5 + push bc + push hl +.asm_e2ed7 + ld [hli], a + dec c + jr nz, .asm_e2ed7 + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_e2ed5 + ret +; e2ee5 + +Functione2ee5: ; e2ee5 + ld hl, wcb2e + ld a, [wcb31] + cp [hl] + jr z, .asm_e2f00 + ld a, [wcb2e] + and a + jr z, .asm_e2ef8 + ld e, $15 + jr .asm_e2efa + +.asm_e2ef8 + ld e, $7 + +.asm_e2efa + ld a, [wcb2c] + cp e + jr nc, .asm_e2f02 + +.asm_e2f00 + and a + ret + +.asm_e2f02 + ld de, PCString_TheresNoRoom + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret +; e2f18 + +Functione2f18: ; e2f18 (38:6f18) + ld a, [wcb2e] + and a + jr nz, .Okay + ld a, [wcb2c] + cp $3 + jr c, .ItsYourLastPokemon + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + callba CheckCurPartyMonFainted + jr c, .AllOthersFainted + ld a, [wcb32] + and a + jr nz, .HasMail +.Okay + and a + ret +.HasMail + ld de, PCString_RemoveMail + jr .NotOkay +.AllOthersFainted + ld de, PCString_NoMoreUsablePKMN + jr .NotOkay +.ItsYourLastPokemon + ld de, PCString_ItsYourLastPKMN +.NotOkay + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret + +Functione2f5f: ; e2f5f (38:6f5f) + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_e2f68 + and a + ret +.asm_e2f68 + ld de, PCString_NoReleasingEGGS + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret + +Functione2f7e: ; e2f7e (38:6f7e) + call LowVolume + call Functione2fd6 + ld a, $3 + ld [MonType], a + predef StatsScreenInit + call Functione33e8 + call MaxVolume + ret + +Functione2f95: ; e2f95 (38:6f95) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and A_BUTTON | B_BUTTON | D_RIGHT | D_LEFT + ld [wcf73], a + jr nz, .pressed_a_b_right_left + ld a, [hl] + and D_DOWN | D_UP + ld [wcf73], a + jr nz, .pressed_down_up + jr .pressed_a_b_right_left + +.pressed_down_up + call Functione2998 + and a + jr z, .asm_e2fd1 + call Functione2def + ld [wd265], a + call Functione2b6d + ld a, [wd265] + ld [CurPartySpecies], a + ld [CurSpecies], a + ld hl, TempMonDVs + predef GetUnownLetter + call GetBaseData + call Functione2fd6 +.pressed_a_b_right_left + ret + +.asm_e2fd1 + xor a + ld [wcf73], a + ret + +Functione2fd6: ; e2fd6 (38:6fd6) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + ld a, [wcb2e] + and a + jr z, .asm_e3020 + cp $f + jr nz, .asm_e3048 + ld a, BANK(sBox) + call GetSRAMBank + ld hl, sBoxSpecies + call Functione3357 + ld hl, sBoxMonNicknames + call Functione3363 + ld hl, sBoxMonOT + call Functione3376 + ld hl, sBoxMons + ld bc, BOXMON_STRUCT_LENGTH + ld a, [CurPartyMon] + call AddNTimes + ld de, wd018_Mon + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + call CloseSRAM + callba Function5088b + ret + +.asm_e3020 + ld hl, PartySpecies + call Functione3357 + ld hl, PartyMonNicknames + call Functione3363 + ld hl, PartyMonOT + call Functione3376 + ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [CurPartyMon] + call AddNTimes + ld de, wd018_Mon + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + ret + +.asm_e3048 + ld b, a + call Functione3396 + ld a, b + call GetSRAMBank + push hl + inc hl + call Functione3357 + pop hl + push hl + ld bc, $372 + add hl, bc + call Functione3363 + pop hl + push hl + ld bc, $296 + add hl, bc + call Functione3376 + pop hl + ld bc, $16 + add hl, bc + ld bc, $20 + call Functione3389 + call CloseSRAM + callba Function5088b + ret + +Functione307c: ; e307c (38:707c) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + ld hl, PartyMonNicknames + ld a, [CurPartyMon] + call GetNick + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a + predef SentGetPkmnIntoFromBox + jr c, .asm_boxisfull + xor a + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + ld a, [CurPartySpecies] + call PlayCry + hlcoord 0, 0 + lb bc, 15, 8 + call ClearBox + hlcoord 8, 14 + lb bc, 1, 3 + call ClearBox + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + call WaitBGMap + hlcoord 1, 16 + ld de, PCString_Stored + call PlaceString + ld l, c + ld h, b + ld de, StringBuffer1 + call PlaceString + ld a, "!" + ld [bc], a + ld c, 50 + call DelayFrames + and a + ret + +.asm_boxisfull + ld de, PCString_BoxFull + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret + +TryWithdrawPokemon: ; e30fa (38:70fa) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + ld a, BANK(sBoxMonNicknames) + call GetSRAMBank + ld a, [CurPartyMon] + ld hl, sBoxMonNicknames + call GetNick + call CloseSRAM + xor a + ld [wPokemonWithdrawDepositParameter], a + predef SentGetPkmnIntoFromBox + jr c, .PartyFull + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + ld a, [CurPartySpecies] + call PlayCry + hlcoord 0, 0 + lb bc, 15, 8 + call ClearBox + hlcoord 8, 14 + lb bc, 1, 3 + call ClearBox + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + call WaitBGMap + hlcoord 1, 16 + ld de, PCString_Got + call PlaceString + ld l, c + ld h, b + ld de, StringBuffer1 + call PlaceString + ld a, $e7 + ld [bc], a + ld c, 50 + call DelayFrames + and a + ret + +.PartyFull + ld de, PCString_PartyFull + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret + + +Functione3180: ; e3180 (38:7180) + hlcoord 0, 0 + lb bc, 15, 8 + call ClearBox + hlcoord 8, 14 + lb bc, 1, 3 + call ClearBox + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + + call WaitBGMap + ld a, [CurPartySpecies] + call GetCryIndex + jr c, .asm_e31ab + ld e, c + ld d, b + call PlayCryHeader +.asm_e31ab + + ld a, [CurPartySpecies] + ld [wd265], a + call GetPokemonName + hlcoord 1, 16 + ld de, PCString_ReleasedPKMN + call PlaceString + ld c, 80 + call DelayFrames + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + hlcoord 1, 16 + ld de, PCString_Bye + call PlaceString + ld l, c + ld h, b + inc hl + ld de, StringBuffer1 + call PlaceString + ld l, c + ld h, b + ld [hl], $e7 + ld c, 50 + call DelayFrames + ret +; e31e7 (38:71e7) + +Functione31e7: ; e31e7 + push hl + push de + push bc + push af + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + hlcoord 1, 16 + ld de, String_e3233 + call PlaceString + ld c, 20 + call DelayFrames + pop af + pop bc + pop de + pop hl + ld a, [wCurBox] + push af + ld bc, 0 + ld a, [wcb31] + and a + jr nz, .asm_e3215 + set 0, c + +.asm_e3215 + ld a, [wcb2e] + and a + jr nz, .asm_e321d + set 1, c + +.asm_e321d + ld hl, Jumptable_e3245 +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, Functione322a + push de + jp [hl] +; e322a + +Functione322a: ; e322a + pop af + ld e, a + callba Function14ad5 + ret +; e3233 + +String_e3233: + db "Saving… Leave ON!@" +; e3245 + +Jumptable_e3245: ; e3245 + dw Functione324d + dw Functione3267 + dw Functione327d + dw Functione3284 +; e324d + +Functione324d: ; e324d + ld hl, wcb31 + ld a, [wcb2e] + cp [hl] + jr z, .asm_e325d + call Functione32b0 + call Functione32fa + ret + +.asm_e325d + call Functione32b0 + call Functione328e + call Functione32fa + ret +; e3267 + +Functione3267: ; e3267 + call Functione3316 + ld a, $1 + ld [wc2cd], a + callba SaveGameData + xor a + ld [wc2cd], a + call Functione32fa + ret +; e327d + +Functione327d: ; e327d + call Functione32b0 + call Functione3346 + ret +; e3284 + +Functione3284: ; e3284 + call Functione3316 + call Functione328e + call Functione3346 + ret +; e328e + +Functione328e: ; e328e + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld e, a + ld a, [wcb30] + ld hl, wcb2f + add [hl] + cp e + ret nc + ld hl, wcb2b + ld a, [hl] + and a + jr z, .asm_e32a8 + dec [hl] + ret + +.asm_e32a8 + ld hl, wcb2a + ld a, [hl] + and a + ret z + dec [hl] + ret +; e32b0 + +Functione32b0: ; e32b0 + ld a, [wcb31] + dec a + ld e, a + callba Function14ac2 + ld a, [wcb30] + ld hl, wcb2f + add [hl] + ld [CurPartyMon], a + ld a, $1 + call GetSRAMBank + ld hl, sBoxSpecies + call Functione3357 + ld hl, sBoxMonNicknames + call Functione3363 + ld hl, sBoxMonOT + call Functione3376 + ld hl, sBoxMons + ld bc, BOXMON_STRUCT_LENGTH + call Functione3389 + call CloseSRAM + callba Function5088b + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + ret +; e32fa + +Functione32fa: ; e32fa + ld a, [wcb2e] + dec a + ld e, a + callba Function14ac2 + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + callba Function51322 + ret +; e3316 + +Functione3316: ; e3316 + ld a, [wcb30] + ld hl, wcb2f + add [hl] + ld [CurPartyMon], a + ld hl, PartySpecies + call Functione3357 + ld hl, PartyMonNicknames + call Functione3363 + ld hl, PartyMonOT + call Functione3376 + ld hl, PartyMon1Species + ld bc, PARTYMON_STRUCT_LENGTH + call Functione3389 + xor a + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + ret +; e3346 + +Functione3346: ; e3346 + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + callba Function5138b + ret +; e3357 + +Functione3357: ; e3357 (38:7357) + ld a, [CurPartyMon] + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [CurPartySpecies], a + ret + +Functione3363: ; e3363 (38:7363) + ld bc, $b + ld a, [CurPartyMon] + call AddNTimes + ld de, wd002 + ld bc, $b + call CopyBytes + ret + +Functione3376: ; e3376 (38:7376) + ld bc, $b + ld a, [CurPartyMon] + call AddNTimes + ld de, wd00d + ld bc, $b + call CopyBytes + ret + +Functione3389: ; e3389 (38:7389) + ld a, [CurPartyMon] + call AddNTimes + ld de, wd018 + call CopyBytes + ret + +Functione3396: ; e3396 (38:7396) + dec b + ld c, b + ld b, 0 + ld hl, Unknown_e33a6 +rept 3 + add hl, bc +endr + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + ret +; e33a6 (38:73a6) + +Unknown_e33a6: ; e33a6 + ; bank, address + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 +; e33d0 + +Functione33d0: ; e33d0 (38:73d0) + ld b, a + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld a, $fc + call Functioncf8 + ret + +Functione33df: ; e33df (38:73df) + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ret + +Functione33e8: ; e33e8 (38:73e8) + call DisableLCD + ld hl, VTiles2 tile $00 + ld bc, $310 + xor a + call ByteFill + call LoadStandardFont + call LoadFontsBattleExtra + ld hl, PCMailGFX + ld de, VTiles2 tile $5c + ld bc, $40 + call CopyBytes + ld hl, PCSelectLZ + ld de, VTiles0 tile $00 + call Decompress + ld a, 6 + call SkipMusic + call EnableLCD + ret +; e3419 (38:7419) + +PCSelectLZ: INCBIN "gfx/pc.2bpp.lz" +PCMailGFX: INCBIN "gfx/pc_mail.2bpp" +; e34dd + +PCString_ChooseaPKMN: db "Choose a <PK><MN>.@" +PCString_WhatsUp: db "What's up?@" +PCString_ReleasePKMN: db "Release <PK><MN>?@" +PCString_MoveToWhere: db "Move to where?@" +PCString_ItsYourLastPKMN: db "It's your last <PK><MN>!@" +PCString_TheresNoRoom: db "There's no room!@" +PCString_NoMoreUsablePKMN: db "No more usable <PK><MN>!@" +PCString_RemoveMail: db "Remove MAIL.@" +PCString_ReleasedPKMN: db "Released <PK><MN>.@" +PCString_Bye: db "Bye,@" +PCString_Stored: db "Stored @" +PCString_Got: db "Got @" +PCString_Non: db "Non.@" +PCString_BoxFull: db "The BOX is full.@" +PCString_PartyFull: db "The party's full!@" +PCString_NoReleasingEGGS: db "No releasing EGGS!@" +; e35aa + + +_ChangeBox: ; e35aa (38:75aa) + call LoadStandardMenuDataHeader + call Functione35e2 +.loop + xor a + ld [hBGMapMode], a + call Functione36cf + call Functione379c + ld hl, _ChangeBox_menudataheader + call CopyMenuDataHeader + xor a + ld [wd0e4], a + hlcoord 0, 4 + lb bc, 8, 9 + call TextBox + call HandleScrollingMenu + ld a, [wcf73] + cp $2 + jr z, .done + call Functione37af + call Functione36f9 + jr .loop +.done + call WriteBackup + ret + +Functione35e2: ; e35e2 (38:75e2) + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + ret +; e35f1 (38:75f1) + +_ChangeBox_menudataheader: ; 0xe35f1 + db $40 ; flags + db 05, 01 ; start coords + db 12, 09 ; end coords + dw .menudata2 + db 1 ; default option +; 0xe35f9 + +.menudata2: ; 0xe35f9 + db $22 ; flags + db 4, 0 + db 1 + dba .boxes + dba .boxnames + dba NULL + dba Functione3632 +; e3609 + +.boxes: ; e3609 + db NUM_BOXES +x = 1 +rept NUM_BOXES + db x +x = x + 1 +endr + db -1 +; e3619 + +.boxnames: ; e3619 + push de + ld a, [MenuSelection] + dec a + call GetBoxName + pop hl + call PlaceString + ret +; e3626 + +GetBoxName: ; e3626 (38:7626) + ld bc, BOX_NAME_LENGTH + ld hl, wBoxNames + call AddNTimes + ld d, h + ld e, l + ret +; e3632 (38:7632) + +Functione3632: ; e3632 + hlcoord 11, 7 + lb bc, 5, 7 + call TextBox + ld a, [MenuSelection] + cp -1 + ret z + hlcoord 12, 9 + ld de, String_e3663 + call PlaceString + call GetBoxCount + ld [wd265], a + hlcoord 13, 11 + ld de, wd265 + lb bc, 1, 2 + call PrintNum + ld de, String_e3668 + call PlaceString + ret +; e3663 + +String_e3663: ; e3663 + db "#MON@" +; e3668 + +String_e3668: ; e3668 + ; db "/20@" + db "/" + db "0" + MONS_PER_BOX / 10 ; "2" + db "0" + MONS_PER_BOX % 10 ; "0" + db "@" +; e366c + +GetBoxCount: ; e366c (38:766c) + ld a, [wCurBox] + ld c, a + ld a, [MenuSelection] + dec a + cp c + jr z, .activebox + ld c, a + ld b, 0 + ld hl, .boxbanks +rept 3 + add hl, bc +endr + ld a, [hli] + ld b, a + call GetSRAMBank + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + call CloseSRAM + ld c, a + ld a, [wSavedAtLeastOnce] + and a + jr z, .newfile + ld a, c + ret + +.newfile + xor a + ret + +.activebox + ld a, BANK(sBoxCount) + ld b, a + call GetSRAMBank + ld hl, sBoxCount + ld a, [hl] + call CloseSRAM + ret +; e36a5 (38:76a5) + +.boxbanks: ; e36a5 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 +; e36cf + +Functione36cf: ; e36cf (38:76cf) + hlcoord 0, 0 + ld b, 2 + ld c, 18 + call TextBox + hlcoord 1, 2 + ld de, String_e36f1 + call PlaceString + ld a, [wCurBox] + and $f + call GetBoxName + hlcoord 11, 2 + call PlaceString + ret +; e36f1 (38:76f1) + +String_e36f1: ; e36f1 + db "CURRENT@" +; e36f9 + +Functione36f9: ; e36f9 (38:76f9) + ld hl, MenuDataHeader_0xe377b + call LoadMenuDataHeader + call InterpretMenu2 + call ExitMenu + ret c + ld a, [MenuSelection2] + cp $1 + jr z, .asm_e3734 + cp $2 + jr z, .asm_e3745 + cp $3 + jr z, .asm_e3717 + and a + ret + +.asm_e3717 + call GetBoxCount + and a + jr z, .asm_e372f + ld e, l + ld d, h + ld a, [MenuSelection] + dec a + ld c, a + callba Function844bc + call Functione35e2 + and a + ret + +.asm_e372f + call Functione37be + and a + ret + +.asm_e3734 + ld a, [MenuSelection] + dec a + ld e, a + ld a, [wCurBox] + cp e + ret z + callba Function14a83 + ret + +.asm_e3745 + ld b, $4 + ld de, wd002 + callba NamingScreen + call ClearTileMap + call LoadStandardFont + call LoadFontsBattleExtra + ld a, [MenuSelection] + dec a + call GetBoxName + ld e, l + ld d, h + ld hl, wd002 + ld c, $8 + call InitString + ld a, [MenuSelection] + dec a + call GetBoxName + ld de, wd002 + call CopyName2 + ret +; e3778 (38:7778) + + hlcoord 11, 7 ; XXX + +MenuDataHeader_0xe377b: ; 0xe377b + db $40 ; flags + db 04, 11 ; start coords + db 13, 19 ; end coords + dw MenuData2_0xe3783 + db 1 ; default option +; 0xe3783 + +MenuData2_0xe3783: ; 0xe3783 + db $80 ; flags + db 4 ; items + db "SWITCH@" + db "NAME@" + db "PRINT@" + db "QUIT@" +; 0xe379c + +Functione379c: ; e379c (38:779c) + ld de, String_e37a1 + jr Functione37e3 +; e37a1 (38:77a1) + +String_e37a1: ; e37a1 + db "Choose a BOX.@" +; e37af + +Functione37af: ; e37af (38:77af) + ld de, String_e37b4 + jr Functione37e3 +; e37b4 (38:77b4) + +String_e37b4: ; e37b4 + db "What's up?@" +; e37be + +Functione37be: ; e37be (38:77be) + ld de, String_e37d3 + call Functione37e3 + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + ret +; e37d3 (38:77d3) + +String_e37d3: ; e37d3 + db "There's no #MON.@" +; e37e3 + +Functione37e3: ; e37e3 (38:77e3) + push de + hlcoord 0, 14 + lb bc, 2, 18 + call TextBox + pop de + hlcoord 1, 16 + call PlaceString + ld a, $1 + ld [hBGMapMode], a + ret diff --git a/engine/card_flip.asm b/engine/card_flip.asm new file mode 100755 index 000000000..cf19cdbaf --- /dev/null +++ b/engine/card_flip.asm @@ -0,0 +1,2560 @@ +_CardFlip: ; e00ee (38:40ee) + ld hl, Options + set 4, [hl] + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld de, MUSIC_NONE + call PlayMusic + call DelayFrame + call DisableLCD + call LoadStandardFont + call LoadFontsExtra + ld hl, LZ_e0d16 + ld de, VTiles2 tile $00 + call Decompress + ld hl, LZ_e0ea8 + ld de, VTiles2 tile $3e + call Decompress + ld hl, LZ_e0cdb + ld de, VTiles0 tile $00 + call Decompress + ld hl, GFX_e0cf6 + ld de, VTiles1 tile $6f + ld bc, $10 + call CopyBytes + ld hl, GFX_e0d06 + ld de, VTiles1 tile $75 + ld bc, $10 + call CopyBytes + call Functione0521 + call Functione04c1 + call Functione0c37 + call EnableLCD + call Function3200 + ld a, $e4 + call DmgToCgbBGPals + ld de, $e4e4 + call DmgToCgbObjPals + call DelayFrame + xor a + ld [wJumptableIndex], a + ld a, $2 + ld [wcf64], a + ld [wcf65], a + ld de, MUSIC_GAME_CORNER + call PlayMusic +.MasterLoop + ld a, [wJumptableIndex] + bit 7, a + jr nz, .leavethegame + call .CardFlip + jr .MasterLoop +.leavethegame + call WaitSFX + ld de, SFX_QUIT_SLOTS + call PlaySFX + call WaitSFX + call ClearBGPalettes + ld hl, Options + res 4, [hl] + ret + +.CardFlip: ; e0191 (38:4191) + 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] +; e01a0 (38:41a0) + +.Jumptable: ; e01a0 + dw .AskPlayWithThree + dw .DeductCoins + dw .ChooseACard + dw .PlaceYourBet + dw .CheckTheCard + dw .TabulateTheResult + dw .PlayAgain + dw .Quit +; e01b0 + +.Increment: ; e01b0 + ld hl, wJumptableIndex + inc [hl] + ret +; e01b5 + +.AskPlayWithThree: ; e01b5 + ld hl, .PlayWithThreeCoinsText + call Functione0489 + call YesNoBox + jr c, .SaidNo + call Functione0366 + call .Increment + ret + +.SaidNo + ld a, $7 + ld [wJumptableIndex], a + ret +; e01cd + +.PlayWithThreeCoinsText: ; 0xe01cd + ; Play with three coins? + text_jump UnknownText_0x1c5793 + db "@" +; 0xe01d2 + +.DeductCoins: ; e01d2 + ld a, [Coins] + ld h, a + ld a, [Coins + 1] + ld l, a + ld a, h + and a + jr nz, .deduct ; You have at least 256 coins. + ld a, l + cp 3 + jr nc, .deduct ; You have at least 3 coins. + ld hl, .NotEnoughCoinsText + call Functione0489 + ld a, $7 + ld [wJumptableIndex], a + ret + +.deduct + ld de, -3 + add hl, de + ld a, h + ld [Coins], a + ld a, l + ld [Coins + 1], a + ld de, SFX_TRANSACTION + call PlaySFX + xor a + ld [hBGMapMode], a + call Functione049c + ld a, $1 + ld [hBGMapMode], a + call WaitSFX + call .Increment + ret +; e0212 + +.NotEnoughCoinsText: ; 0xe0212 + ; Not enough coins… + text_jump UnknownText_0x1c57ab + db "@" +; 0xe0217 + +.ChooseACard: ; e0217 + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + lb bc, 12, 9 + call Functione04e5 + hlcoord 9, 0 + ld bc, SCREEN_WIDTH + ld a, [wc6e8] + call AddNTimes + ld [hl], $f5 + ld a, $1 + ld [hBGMapMode], a + ld c, 20 + call DelayFrames + hlcoord 2, 0 + call Functione03c1 + ld a, $1 + ld [hBGMapMode], a + ld c, 20 + call DelayFrames + hlcoord 2, 6 + call Functione03c1 + call WaitBGMap + ld hl, .ChooseACardText + call Functione0489 + xor a + ld [wcf66], a +.loop + call JoyTextDelay + ld a, [hJoyLast] + and A_BUTTON + jr nz, .next + ld de, SFX_KINESIS + call PlaySFX + call Functione0849 + ld c, 4 + call DelayFrames + ld hl, wcf66 + ld a, [hl] + xor $1 + ld [hl], a + jr .loop + +.next + ld de, SFX_SLOT_MACHINE_START + call PlaySFX + ld a, $3 +.loop2 + push af + call Functione0849 + ld c, 4 + call DelayFrames + call ClearSprites + ld c, 4 + call DelayFrames + pop af + dec a + jr nz, .loop2 + ld hl, wcf66 + ld a, [hl] + push af + xor $1 + ld [hl], a + call Functione03ac + lb bc, 6, 5 + call Functione04e5 + pop af + ld [wcf66], a + call .Increment + ret +; e02b2 + +.ChooseACardText: ; 0xe02b2 + ; Choose a card. + text_jump UnknownText_0x1c57be + db "@" +; 0xe02b7 + +.PlaceYourBet: ; e02b7 + ld hl, .PlaceYourBetText + call Functione0489 +.betloop + call JoyTextDelay + ld a, [hJoyLast] + and A_BUTTON + jr nz, .betdone + call Functione089c + call Functione0960 + call DelayFrame + jr .betloop + +.betdone + call .Increment + ret +; e02d5 + +.PlaceYourBetText: ; 0xe02d5 + ; Place your bet. + text_jump UnknownText_0x1c57ce + db "@" +; 0xe02da + +.CheckTheCard: ; e02da + xor a + ld [hVBlankCounter], a + call Functione0960 + call WaitSFX + ld de, SFX_CHOOSE_A_CARD + call PlaySFX + call WaitSFX + ld a, [wc6e8] + ld e, a + ld d, 0 + ld hl, wc6d0 +rept 2 + add hl, de +endr + ld a, [wcf66] + ld e, a + add hl, de + ld a, [hl] + ld [CurEnemyMoveNum], a + ld e, a + ld hl, wc6ea + add hl, de + ld [hl], $1 + call Functione03ac + call Functione03ec + call Function3200 + call .Increment + ret +; e0314 + +.TabulateTheResult: ; e0314 + call Functione0637 + call WaitPressAorB_BlinkCursor + call .Increment + ret +; e031e + +.PlayAgain: ; e031e + call ClearSprites + ld hl, .PlayAgainText + call Functione0489 + call YesNoBox + jr nc, .Continue + call .Increment + ret + +.Continue + ld a, [wc6e8] + inc a + ld [wc6e8], a + cp $c + jr c, .KeepTheCurrentDeck + call Functione04c1 + ld a, $1 + ld [hBGMapMode], a + call Functione0366 + ld hl, .CardsShuffledText + call PrintText + jr .LoopAround + +.KeepTheCurrentDeck + call Functione0534 + +.LoopAround + ld a, $1 + ld [wJumptableIndex], a + ret +; e0356 + +.PlayAgainText: ; 0xe0356 + ; Want to play again? + text_jump UnknownText_0x1c57df + db "@" +; 0xe035b + +.CardsShuffledText: ; 0xe035b + ; The cards have been shuffled. + text_jump UnknownText_0x1c57f4 + db "@" +; 0xe0360 + +.Quit: ; e0360 + ld hl, wJumptableIndex + set 7, [hl] + ret +; e0366 + +Functione0366: ; e0366 + ld hl, wc6d0 + ld bc, $18 + xor a + call ByteFill + ld de, wc6d0 + ld c, $17 +.asm_e0375 + call Random + and $1f + cp $18 + jr nc, .asm_e0375 + ld l, a + ld h, $0 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0375 + ld [hl], c + dec c + jr nz, .asm_e0375 + xor a + ld [wc6e8], a + ld hl, wc6ea + ld bc, $18 + call ByteFill + ret +; e0398 + +Functione0398: ; e0398 + ld hl, 0 + ld bc, 6 + ld a, [wcf64] + call AddNTimes + ld b, $0 + ld a, [wcf65] + ld c, a + add hl, bc + ret +; e03ac + +Functione03ac: ; e03ac + ld a, [wcf66] + and a + jr nz, .asm_e03ba + hlcoord 2, 0 + ld bc, $1018 + jr .asm_e03c0 + +.asm_e03ba + hlcoord 2, 6 + ld bc, $4018 + +.asm_e03c0 + ret +; e03c1 + +Functione03c1: ; e03c1 + xor a + ld [hBGMapMode], a + ld de, Unknown_e03ce + lb bc, 6, 5 + call Functione04f7 + ret +; e03ce + +Unknown_e03ce: ; e03ce + db $08, $09, $09, $09, $0a + db $0b, $28, $2b, $28, $0c + db $0b, $2c, $2d, $2e, $0c + db $0b, $2f, $30, $31, $0c + db $0b, $32, $33, $34, $0c + db $0d, $0e, $0e, $0e, $0f +; e03ec + +Functione03ec: ; e03ec + xor a + ld [hBGMapMode], a + push hl + push hl + ld de, Unknown_e043b + lb bc, 6, 5 + call Functione04f7 + ld a, [CurEnemyMoveNum] + ld e, a + ld d, 0 + ld hl, Unknown_e0459 +rept 2 + add hl, de +endr + ld a, [hli] + ld e, a + ld d, [hl] + pop hl + ld bc, $17 + add hl, bc + ld [hl], e + ld bc, SCREEN_HEIGHT + add hl, bc + ld a, d + ld de, SCREEN_WIDTH + ld b, $3 +.asm_e0418 + push hl + ld c, $3 +.asm_e041b + ld [hli], a + inc a + dec c + jr nz, .asm_e041b + pop hl + add hl, de + dec b + jr nz, .asm_e0418 + pop hl + ld a, [hCGB] + and a + ret z + ld de, AttrMap - TileMap + add hl, de + ld a, [CurEnemyMoveNum] + and 3 + inc a + lb bc, 6, 5 + call Functione04e7 + ret +; e043b + +Unknown_e043b: ; e043b + db $18, $19, $19, $19, $1a + db $1b, $35, $7f, $7f, $1c + db $0b, $28, $28, $28, $0c + db $0b, $28, $28, $28, $0c + db $0b, $28, $28, $28, $0c + db $1d, $1e, $1e, $1e, $1f +; e0459 + +Unknown_e0459: ; e0459 + db $f7,$4e, $f7,$57, $f7,$69, $f7,$60 + db $f8,$4e, $f8,$57, $f8,$69, $f8,$60 + db $f9,$4e, $f9,$57, $f9,$69, $f9,$60 + db $fa,$4e, $fa,$57, $fa,$69, $fa,$60 + db $fb,$4e, $fb,$57, $fb,$69, $fb,$60 + db $fc,$4e, $fc,$57, $fc,$69, $fc,$60 +; e0489 + +Functione0489: ; e0489 + push hl + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + pop hl + call PrintTextBoxText + call Functione049c + ret +; e049c + +Functione049c: ; e049c + hlcoord 9, 15 + ld b, $1 + ld c, $9 + call TextBox + hlcoord 10, 16 + ld de, String_e04bc + call PlaceString + hlcoord 15, 16 + ld de, Coins + lb bc, PRINTNUM_LEADINGZEROS | 2, 4 + call PrintNum + ret +; e04bc + +String_e04bc: + db "COIN@" +; e04c1 + +Functione04c1: ; e04c1 (38:44c1) + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, $29 + call ByteFill + hlcoord 9, 0 + ld de, Unknown_e110c + lb bc, 12, 11 + call Functione04f7 + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + ret +; e04e5 (38:44e5) + +Functione04e5: ; e04e5 + ld a, $29 + +Functione04e7: ; e04e7 (38:44e7) + push bc + push hl +.asm_e04e9 + ld [hli], a + dec c + jr nz, .asm_e04e9 + pop hl + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, Functione04e7 + ret + +Functione04f7: ; e04f7 (38:44f7) + push bc + push hl +.asm_e04f9 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_e04f9 + pop hl + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, Functione04f7 + ret +; e0509 (38:4509) + +Functione0509: ; e0509 + ld de, Sprites + ld a, [hli] +.asm_e050d + push af + ld a, [hli] + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + pop af + dec a + jr nz, .asm_e050d + ret +; e0521 + +Functione0521: ; e0521 (38:4521) + ld de, VTiles1 tile $76 + ld hl, $8f62 + ld bc, $9e + call CopyBytes + ld hl, $8ffe + xor a + ld [hli], a + ld [hl], a + ret +; e0534 (38:4534) + +Functione0534: ; e0534 + xor a + ld [hBGMapMode], a + ld a, [CurEnemyMoveNum] + ld e, a + ld d, 0 + and 3 + ld c, a + ld b, 0 + ld a, e + and $1c + srl a + add Jumptable_e0553 % $100 + ld l, a + ld a, 0 + adc Jumptable_e0553 / $100 + ld h, a + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e0553 + +Jumptable_e0553: ; e0553 + dw Functione055f + dw Functione0583 + dw Functione05a7 + dw Functione05cb + dw Functione05ef + dw Functione0613 +; e055f + +Functione055f: ; e055f + ld hl, wc6e6 + 8 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0575 + hlcoord 13, 3 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $37 + ret + +.asm_e0575 + hlcoord 13, 3 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3d + ret +; e0583 + +Functione0583: ; e0583 + ld hl, wc6e6 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0599 + hlcoord 13, 4 +rept 2 + add hl, bc +endr + ld [hl], $3b + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.asm_e0599 + hlcoord 13, 4 +rept 2 + add hl, bc +endr + ld [hl], $3d + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret +; e05a7 + +Functione05a7: ; e05a7 + ld hl, wc6e6 + 8 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e05bd + hlcoord 13, 6 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $38 + ret + +.asm_e05bd + hlcoord 13, 6 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3d + ret +; e05cb + +Functione05cb: ; e05cb + ld hl, wc6e6 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e05e1 + hlcoord 13, 7 +rept 2 + add hl, bc +endr + ld [hl], $3c + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.asm_e05e1 + hlcoord 13, 7 +rept 2 + add hl, bc +endr + ld [hl], $3d + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret +; e05ef + +Functione05ef: ; e05ef + ld hl, wc6e6 + 8 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0605 + hlcoord 13, 9 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $39 + ret + +.asm_e0605 + hlcoord 13, 9 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3d + ret +; e0613 + +Functione0613: ; e0613 + ld hl, wc6e6 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0629 + hlcoord 13, 10 +rept 2 + add hl, bc +endr + ld [hl], $3c + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.asm_e0629 + hlcoord 13, 10 +rept 2 + add hl, bc +endr + ld [hl], $3d + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret +; e0637 + +Functione0637: ; e0637 + call Functione0398 + add hl, hl + ld de, Jumptable_e0643 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e0643 + +Jumptable_e0643: ; e0643 + dw Functione06a3 + dw Functione06a3 + dw Functione06a6 + dw Functione06a6 + dw Functione06b0 + dw Functione06b0 + dw Functione06a3 + dw Functione06a3 + dw Functione06ec + dw Functione06f6 + dw Functione0702 + dw Functione070e + dw Functione06c2 + dw Functione0722 + dw Functione0770 + dw Functione0774 + dw Functione0778 + dw Functione077c + dw Functione06c2 + dw Functione072c + dw Functione0780 + dw Functione0784 + dw Functione0788 + dw Functione078c + dw Functione06cc + dw Functione0738 + dw Functione0790 + dw Functione0794 + dw Functione0798 + dw Functione079c + dw Functione06cc + dw Functione0744 + dw Functione07a0 + dw Functione07a4 + dw Functione07a8 + dw Functione07ac + dw Functione06d8 + dw Functione0750 + dw Functione07b0 + dw Functione07b4 + dw Functione07b8 + dw Functione07bc + dw Functione06d8 + dw Functione075c + dw Functione07c0 + dw Functione07c4 + dw Functione07c8 + dw Functione07cc +; e06a3 + +Functione06a3: ; e06a3 + jp Functione07db +; e06a6 + +Functione06a6: ; e06a6 + ld a, [CurEnemyMoveNum] + and $2 + jp nz, Functione07db + jr Functione06ba + +Functione06b0: ; e06b0 + ld a, [CurEnemyMoveNum] + and $2 + jr nz, Functione06ba + jp Functione07db + +Functione06ba: ; e06ba + ld c, $6 + ld de, SFX_2ND_PLACE + jp Functione07eb +; e06c2 + +Functione06c2: ; e06c2 + ld a, [CurEnemyMoveNum] + and $18 + jr z, Functione06e4 + jp Functione07db + +Functione06cc: ; e06cc + ld a, [CurEnemyMoveNum] + and $18 + cp $8 + jr z, Functione06e4 + jp Functione07db + +Functione06d8: ; e06d8 + ld a, [CurEnemyMoveNum] + and $18 + cp $10 + jr z, Functione06e4 + jp Functione07db + +Functione06e4: ; e06e4 + ld c, $9 + ld de, SFX_2ND_PLACE + jp Functione07eb +; e06ec + +Functione06ec: ; e06ec + ld a, [CurEnemyMoveNum] + and $3 + jr z, Functione071a + jp Functione07db + +Functione06f6: ; e06f6 + ld a, [CurEnemyMoveNum] + and $3 + cp $1 + jr z, Functione071a + jp Functione07db + +Functione0702: ; e0702 + ld a, [CurEnemyMoveNum] + and $3 + cp $2 + jr z, Functione071a + jp Functione07db + +Functione070e: ; e070e + ld a, [CurEnemyMoveNum] + and $3 + cp $3 + jr z, Functione071a + jp Functione07db + +Functione071a: ; e071a + ld c, $c + ld de, SFX_2ND_PLACE + jp Functione07eb +; e0722 + +Functione0722: ; e0722 + ld a, [CurEnemyMoveNum] + and $1c + jr z, Functione0768 + jp Functione07db + +Functione072c: ; e072c + ld a, [CurEnemyMoveNum] + and $1c + cp $4 + jr z, Functione0768 + jp Functione07db + +Functione0738: ; e0738 + ld a, [CurEnemyMoveNum] + and $1c + cp $8 + jr z, Functione0768 + jp Functione07db + +Functione0744: ; e0744 + ld a, [CurEnemyMoveNum] + and $1c + cp $c + jr z, Functione0768 + jp Functione07db + +Functione0750: ; e0750 + ld a, [CurEnemyMoveNum] + and $1c + cp $10 + jr z, Functione0768 + jp Functione07db + +Functione075c: ; e075c + ld a, [CurEnemyMoveNum] + and $1c + cp $14 + jr z, Functione0768 + jp Functione07db + +Functione0768: ; e0768 + ld c, $12 + ld de, SFX_2ND_PLACE + jp Functione07eb +; e0770 + + +Functione0770: ; e0770 + ld e, $0 + jr Functione07ce + +Functione0774: ; e0774 + ld e, $1 + jr Functione07ce + +Functione0778: ; e0778 + ld e, $2 + jr Functione07ce + +Functione077c: ; e077c + ld e, $3 + jr Functione07ce + +Functione0780: ; e0780 + ld e, $4 + jr Functione07ce + +Functione0784: ; e0784 + ld e, $5 + jr Functione07ce + +Functione0788: ; e0788 + ld e, $6 + jr Functione07ce + +Functione078c: ; e078c + ld e, $7 + jr Functione07ce + +Functione0790: ; e0790 + ld e, $8 + jr Functione07ce + +Functione0794: ; e0794 + ld e, $9 + jr Functione07ce + +Functione0798: ; e0798 + ld e, $a + jr Functione07ce + +Functione079c: ; e079c + ld e, $b + jr Functione07ce + +Functione07a0: ; e07a0 + ld e, $c + jr Functione07ce + +Functione07a4: ; e07a4 + ld e, $d + jr Functione07ce + +Functione07a8: ; e07a8 + ld e, $e + jr Functione07ce + +Functione07ac: ; e07ac + ld e, $f + jr Functione07ce + +Functione07b0: ; e07b0 + ld e, $10 + jr Functione07ce + +Functione07b4: ; e07b4 + ld e, $11 + jr Functione07ce + +Functione07b8: ; e07b8 + ld e, $12 + jr Functione07ce + +Functione07bc: ; e07bc + ld e, $13 + jr Functione07ce + +Functione07c0: ; e07c0 + ld e, $14 + jr Functione07ce + +Functione07c4: ; e07c4 + ld e, $15 + jr Functione07ce + +Functione07c8: ; e07c8 + ld e, $16 + jr Functione07ce + +Functione07cc: ; e07cc + ld e, $17 + +Functione07ce: ; e07ce + ld a, [CurEnemyMoveNum] + cp e + jr nz, Functione07db + ld c, $48 + ld de, SFX_2ND_PLACE + jr Functione07eb + +Functione07db: ; e07db + ld de, SFX_WRONG + call PlaySFX + ld hl, UnknownText_0xe0816 + call Functione0489 + call WaitSFX + ret + +Functione07eb: ; e07eb + push bc + push de + ld hl, UnknownText_0xe0811 + call Functione0489 + pop de + call PlaySFX + call WaitSFX + pop bc +.asm_e07fb + push bc + call Functione0833 + jr c, .asm_e0804 + call Functione081b + +.asm_e0804 + call Functione049c + ld c, 2 + call DelayFrames + pop bc + dec c + jr nz, .asm_e07fb + ret +; e0811 + +UnknownText_0xe0811: ; 0xe0811 + ; Yeah! + text_jump UnknownText_0x1c5813 + db "@" +; 0xe0816 + +UnknownText_0xe0816: ; 0xe0816 + ; Darn… + text_jump UnknownText_0x1c581a + db "@" +; 0xe081b + +Functione081b: ; e081b + ld a, [Coins] + ld h, a + ld a, [Coins + 1] + ld l, a + inc hl + ld a, h + ld [Coins], a + ld a, l + ld [Coins + 1], a + ld de, SFX_PAY_DAY + call PlaySFX + ret +; e0833 + +Functione0833: ; e0833 + ld a, [Coins] + cp 9999 / $100 + jr c, .asm_e0847 + jr z, .asm_e083e + jr .asm_e0845 + +.asm_e083e + ld a, [Coins + 1] + cp 9999 % $100 + jr c, .asm_e0847 + +.asm_e0845 + scf + ret + +.asm_e0847 + and a + ret +; e0849 + +Functione0849: ; e0849 + call Functione03ac + ld hl, Unknown_e0853 + call Functione0509 + ret +; e0853 + +Unknown_e0853: ; e0853 + db 18 + db $00, $00, $04, $00 + db $00, $08, $06, $00 + db $00, $10, $06, $00 + db $00, $18, $06, $00 + db $00, $20, $04, $20 + db $08, $00, $05, $00 + db $08, $20, $05, $20 + db $10, $00, $05, $00 + db $10, $20, $05, $20 + db $18, $00, $05, $00 + db $18, $20, $05, $20 + db $20, $00, $05, $00 + db $20, $20, $05, $20 + db $28, $00, $04, $40 + db $28, $08, $06, $40 + db $28, $10, $06, $40 + db $28, $18, $06, $40 + db $28, $20, $04, $60 +; e089c + +Functione089c: ; e089c + ld hl, hJoyLast + ld a, [hl] + and D_LEFT + jp nz, Functione08b8 + ld a, [hl] + and D_RIGHT + jp nz, Functione08ef + ld a, [hl] + and D_UP + jp nz, Functione090a + ld a, [hl] + and D_DOWN + jp nz, Functione093d + ret +; e08b8 + +Functione08b8: ; e08b8 + ld hl, wcf65 + ld a, [wcf64] + and a + jr z, .asm_e08d5 + cp $1 + jr z, .asm_e08cc + ld a, [hl] + and a + ret z + dec [hl] + jp Functione0959 + +.asm_e08cc + ld a, [hl] + cp $3 + jr c, .asm_e08e2 + dec [hl] + jp Functione0959 + +.asm_e08d5 + ld a, [hl] + and $e + ld [hl], a + cp $3 + jr c, .asm_e08e2 +rept 2 + dec [hl] +endr + jp Functione0959 + +.asm_e08e2 + ld a, $2 + ld [wcf64], a + ld a, $1 + ld [wcf65], a + jp Functione0959 +; e08ef + +Functione08ef: ; e08ef + ld hl, wcf65 + ld a, [wcf64] + and a + jr z, .asm_e08ff + ld a, [hl] + cp $5 + ret nc + inc [hl] + jr Functione0959 + +.asm_e08ff + ld a, [hl] + and $e + ld [hl], a + cp $4 + ret nc +rept 2 + inc [hl] +endr + jr Functione0959 + +Functione090a: ; e090a + ld hl, wcf64 + ld a, [wcf65] + and a + jr z, .asm_e0925 + cp $1 + jr z, .asm_e091d + ld a, [hl] + and a + ret z + dec [hl] + jr Functione0959 + +.asm_e091d + ld a, [hl] + cp $3 + jr c, .asm_e0931 + dec [hl] + jr Functione0959 + +.asm_e0925 + ld a, [hl] + and $e + ld [hl], a + cp $3 + jr c, .asm_e0931 +rept 2 + dec [hl] +endr + jr Functione0959 + +.asm_e0931 + ld a, $1 + ld [wcf64], a + ld a, $2 + ld [wcf65], a + jr Functione0959 + +Functione093d: ; e093d + ld hl, wcf64 + ld a, [wcf65] + and a + jr z, .asm_e0950 + ld hl, wcf64 + ld a, [hl] + cp $7 + ret nc + inc [hl] + jr Functione0959 + +.asm_e0950 + ld a, [hl] + and $e + ld [hl], a + cp $6 + ret nc +rept 2 + inc [hl] +endr + +Functione0959: ; e0959 + ld de, SFX_POKEBALLS_PLACED_ON_TABLE + call PlaySFX + ret +; e0960 + +Functione0960: ; e0960 + call ClearSprites + ld a, [hCGB] + and a + jr nz, .asm_e096d + ld a, [hVBlankCounter] + and $4 + ret nz + +.asm_e096d + call Functione0398 +rept 2 + add hl, hl +endr + ld de, Unknown_e0981 + add hl, de + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + call Functione0509 + ret +; e0981 + +Unknown_e0981: ; e0981 + dbbw $58, $10, Unknown_e0c26 + dbbw $60, $10, Unknown_e0c26 + dbbw $68, $10, Unknown_e0b8d + dbbw $68, $10, Unknown_e0b8d + dbbw $88, $10, Unknown_e0b8d + dbbw $88, $10, Unknown_e0b8d + + dbbw $58, $18, Unknown_e0c26 + dbbw $60, $18, Unknown_e0c26 + dbbw $68, $18, Unknown_e0a5a + dbbw $78, $18, Unknown_e0a5a + dbbw $88, $18, Unknown_e0a5a + dbbw $98, $18, Unknown_e0a5a + + dbbw $58, $28, Unknown_e0b14 + dbbw $60, $28, Unknown_e0ac3 + dbbw $68, $28, Unknown_e0a41 + dbbw $78, $28, Unknown_e0a41 + dbbw $88, $28, Unknown_e0a41 + dbbw $98, $28, Unknown_e0a41 + dbbw $58, $28, Unknown_e0b14 + + dbbw $60, $34, Unknown_e0ac3 + dbbw $68, $34, Unknown_e0a41 + dbbw $78, $34, Unknown_e0a41 + dbbw $88, $34, Unknown_e0a41 + dbbw $98, $34, Unknown_e0a41 + + dbbw $58, $40, Unknown_e0b14 + dbbw $60, $40, Unknown_e0ac3 + dbbw $68, $40, Unknown_e0a41 + dbbw $78, $40, Unknown_e0a41 + dbbw $88, $40, Unknown_e0a41 + dbbw $98, $40, Unknown_e0a41 + dbbw $58, $40, Unknown_e0b14 + + dbbw $60, $4c, Unknown_e0ac3 + dbbw $68, $4c, Unknown_e0a41 + dbbw $78, $4c, Unknown_e0a41 + dbbw $88, $4c, Unknown_e0a41 + dbbw $98, $4c, Unknown_e0a41 + + dbbw $58, $58, Unknown_e0b14 + dbbw $60, $58, Unknown_e0ac3 + dbbw $68, $58, Unknown_e0a41 + dbbw $78, $58, Unknown_e0a41 + dbbw $88, $58, Unknown_e0a41 + dbbw $98, $58, Unknown_e0a41 + dbbw $58, $58, Unknown_e0b14 + + dbbw $60, $64, Unknown_e0ac3 + dbbw $68, $64, Unknown_e0a41 + dbbw $78, $64, Unknown_e0a41 + dbbw $88, $64, Unknown_e0a41 + dbbw $98, $64, Unknown_e0a41 +; e0a41 + +Unknown_e0a41: ; e0a41 + db 6 + db $00, $ff, $00, $80 + db $00, $00, $02, $80 + db $00, $08, $03, $80 + db $05, $ff, $00, $c0 + db $05, $00, $02, $c0 + db $05, $08, $03, $80 + +Unknown_e0a5a: ; e0a5a + db 26 + db $00, $ff, $00, $80 + db $00, $00, $02, $80 + db $00, $08, $00, $a0 + db $08, $ff, $01, $80 + db $08, $08, $01, $a0 + db $10, $ff, $01, $80 + db $10, $08, $03, $80 + db $18, $ff, $01, $80 + db $18, $08, $03, $80 + db $20, $ff, $01, $80 + db $20, $08, $03, $80 + db $28, $ff, $01, $80 + db $28, $08, $03, $80 + db $30, $ff, $01, $80 + db $30, $08, $03, $80 + db $38, $ff, $01, $80 + db $38, $08, $03, $80 + db $40, $ff, $01, $80 + db $40, $08, $03, $80 + db $48, $ff, $01, $80 + db $48, $08, $03, $80 + db $50, $ff, $01, $80 + db $50, $08, $03, $80 + db $51, $ff, $00, $c0 + db $51, $00, $02, $c0 + db $51, $08, $03, $80 + +Unknown_e0ac3: ; e0ac3 + db 20 + db $00, $ff, $00, $80 + db $00, $00, $02, $80 + db $00, $08, $02, $80 + db $00, $10, $03, $80 + db $00, $18, $02, $80 + db $00, $20, $03, $80 + db $00, $28, $02, $80 + db $00, $30, $03, $80 + db $00, $38, $02, $80 + db $00, $40, $03, $80 + db $05, $ff, $00, $c0 + db $05, $00, $02, $c0 + db $05, $08, $02, $c0 + db $05, $10, $03, $80 + db $05, $18, $02, $c0 + db $05, $20, $03, $80 + db $05, $28, $02, $c0 + db $05, $30, $03, $80 + db $05, $38, $02, $c0 + db $05, $40, $03, $80 + +Unknown_e0b14: ; e0b14 + db 30 + db $00, $00, $00, $80 + db $00, $08, $02, $80 + db $00, $10, $02, $80 + db $00, $18, $03, $80 + db $00, $20, $02, $80 + db $00, $28, $03, $80 + db $00, $30, $02, $80 + db $00, $38, $03, $80 + db $00, $40, $02, $80 + db $00, $48, $03, $80 + db $08, $00, $01, $80 + db $08, $18, $03, $80 + db $08, $28, $03, $80 + db $08, $38, $03, $80 + db $08, $48, $03, $80 + db $10, $00, $01, $80 + db $10, $18, $03, $80 + db $10, $28, $03, $80 + db $10, $38, $03, $80 + db $10, $48, $03, $80 + db $11, $00, $00, $c0 + db $11, $08, $02, $c0 + db $11, $10, $02, $c0 + db $11, $18, $03, $80 + db $11, $20, $03, $80 + db $11, $28, $03, $80 + db $11, $30, $03, $80 + db $11, $38, $03, $80 + db $11, $40, $03, $80 + db $11, $48, $03, $80 + +Unknown_e0b8d: ; e0b8d + db 38 + db $00, $ff, $00, $80 + db $00, $18, $00, $a0 + db $08, $ff, $01, $80 + db $08, $18, $01, $a0 + db $10, $ff, $01, $80 + db $10, $18, $01, $a0 + db $18, $ff, $01, $80 + db $18, $08, $03, $80 + db $18, $18, $03, $80 + db $20, $ff, $01, $80 + db $20, $08, $03, $80 + db $20, $18, $03, $80 + db $28, $ff, $01, $80 + db $28, $08, $03, $80 + db $28, $18, $03, $80 + db $30, $ff, $01, $80 + db $30, $08, $03, $80 + db $30, $18, $03, $80 + db $38, $ff, $01, $80 + db $38, $08, $03, $80 + db $38, $18, $03, $80 + db $40, $ff, $01, $80 + db $40, $08, $03, $80 + db $40, $18, $03, $80 + db $48, $ff, $01, $80 + db $48, $08, $03, $80 + db $48, $18, $03, $80 + db $50, $ff, $01, $80 + db $50, $08, $03, $80 + db $50, $18, $03, $80 + db $58, $ff, $01, $80 + db $58, $08, $03, $80 + db $58, $18, $03, $80 + db $59, $ff, $00, $c0 + db $59, $00, $02, $c0 + db $59, $08, $03, $c0 + db $59, $10, $02, $c0 + db $59, $18, $03, $e0 + +Unknown_e0c26: ; e0c26 + db 4 + db $00, $00, $00, $80 + db $00, $08, $00, $a0 + db $08, $00, $00, $c0 + db $08, $08, $00, $e0 +; e0c37 + +Functione0c37: ; e0c37 (38:4c37) + ld a, [hCGB] + and a + ret z + hlcoord 0, 0, AttrMap + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + xor a + call ByteFill + hlcoord 12, 1, AttrMap + lb bc, 2, 2 + ld a, $1 + call Functione04e7 + hlcoord 14, 1, AttrMap + lb bc, 2, 2 + ld a, $2 + call Functione04e7 + hlcoord 16, 1, AttrMap + lb bc, 2, 2 + ld a, $3 + call Functione04e7 + hlcoord 18, 1, AttrMap + lb bc, 2, 2 + ld a, $4 + call Functione04e7 + hlcoord 9, 0, AttrMap + lb bc, 12, 1 + ld a, $1 + call Functione04e7 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_e0c93 + ld de, Unkn1Pals + ld bc, $48 + call CopyBytes + pop af + ld [rSVBK], a + ret +; e0c93 (38:4c93) + +Palette_e0c93: ; e0c93 + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 29, 25, 00 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 13, 30 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 08, 17, 30 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 08, 31, 08 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 00, 00 + RGB 31, 00, 00 +; e0cdb + +LZ_e0cdb: ; e0cdb +INCBIN "gfx/unknown/0e0cdb.2bpp.lz" + +GFX_e0cf6: ; e0cf6 +INCBIN "gfx/unknown/0e0cf6.2bpp" + +GFX_e0d06: ; e0d06 +INCBIN "gfx/unknown/0e0d06.2bpp" + +LZ_e0d16: ; e0d16 +INCBIN "gfx/unknown/0e0d16.2bpp.lz" + +LZ_e0ea8: ; e0ea8 +INCBIN "gfx/unknown/0e0ea8.2bpp.lz" + +Unknown_e110c: ; e110c + db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27 + db $ef, $07, $27, $3e, $3f, $42, $43, $46, $47, $4a, $4b + db $ef, $17, $26, $40, $41, $44, $45, $48, $49, $4c, $4d + db $ef, $25, $04, $00, $01, $00, $01, $00, $01, $00, $01 + db $ef, $05, $14, $10, $11, $10, $11, $10, $11, $10, $11 + db $ef, $16, $24, $20, $21, $20, $21, $20, $21, $20, $21 + db $ef, $25, $04, $00, $02, $00, $02, $00, $02, $00, $02 + db $ef, $05, $14, $10, $12, $10, $12, $10, $12, $10, $12 + db $ef, $16, $24, $20, $22, $20, $22, $20, $22, $20, $22 + db $ef, $25, $04, $00, $03, $00, $03, $00, $03, $00, $03 + db $ef, $05, $14, $10, $13, $10, $13, $10, $13, $10, $13 + db $ef, $16, $24, $20, $23, $20, $23, $20, $23, $20, $23 +; e1190 + +Functione1190: ; e1190 + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call ClearBGPalettes + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + call DisableLCD + ld hl, wc608 + ld bc, $1e0 + xor a + call ByteFill + ld hl, GFX_e17c5 + ld de, VTiles1 tile $60 + ld bc, $40 + call CopyBytes + ld hl, LZ_e1805 + ld de, VTiles1 tile $6d + call Decompress + call Functione17a3 + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $ee + call ByteFill + hlcoord 4, 3 + lb bc, 12, 12 + ld a, $ef + call Functione13ee + call Functione124e + call Functione13fe + call Functione127d + xor a + ld [hSCY], a + ld [hSCX], a + ld [rWY], a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld a, $93 + ld [rLCDC], a + call WaitBGMap + ld b, $18 + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld a, $24 + call Functioncf8 + xor a + ld [wd0ec], a + call DelayFrame +.asm_e1217 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_e123d + call Functione12ca + ld a, [wcf64] + and a + jr nz, .asm_e1230 + ld a, [hVBlankCounter] + and $10 + jr z, .asm_e1235 + +.asm_e1230 + call Functione14d9 + jr .asm_e1238 + +.asm_e1235 + call ClearSprites + +.asm_e1238 + call DelayFrame + jr .asm_e1217 + +.asm_e123d + pop af + ld [hInMenu], a + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld a, $e3 + ld [rLCDC], a + ret +; e124e + +Functione124e: ; e124e + ld c, $1 + ld b, $10 +.asm_e1252 + call Random + and $f + ld hl, Unknown_e126d + ld e, a + ld d, $0 + add hl, de + ld e, [hl] + ld hl, wc6d0 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e1252 + ld [hl], c + inc c + dec b + jr nz, .asm_e1252 + ret +; e126d + +Unknown_e126d: ; e126d + db $00, $01, $02, $03 + db $04, $05, $06, $0b + db $0c, $11, $12, $17 + db $18, $1d, $1e, $23 +; e127d + +Functione127d: ; e127d + call Functione128d + hlcoord 5, 16 + ld a, $f6 + ld c, $a +.asm_e1287 + ld [hli], a + inc a + dec c + jr nz, .asm_e1287 + ret +; e128d + +Functione128d: ; e128d + hlcoord 4, 15 + ld a, $f0 + ld [hli], a + ld bc, $a + ld a, $f1 + call ByteFill + hlcoord 15, 15 + ld a, $f2 + ld [hli], a + hlcoord 4, 16 + ld a, $f3 + ld [hli], a + ld bc, $a + ld a, $ef + call ByteFill + hlcoord 15, 16 + ld a, $f3 + ld [hli], a + hlcoord 4, 17 + ld a, $f4 + ld [hli], a + ld bc, $a + ld a, $f1 + call ByteFill + hlcoord 15, 17 + ld a, $f5 + ld [hl], a + ret +; e12ca + +Functione12ca: ; e12ca + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_e12d9 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e12d9 + +Jumptable_e12d9: ; e12d9 + dw Functione12db +; e12db + +Functione12db: ; e12db + ld a, [hJoyPressed] + and START + jp nz, Functione13de + ld a, [hJoyPressed] + and A_BUTTON + jp nz, Functione1376 + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_e1301 + ld a, [hl] + and D_DOWN + jr nz, .asm_e130d + ld a, [hl] + and D_LEFT + jr nz, .asm_e1325 + ld a, [hl] + and D_RIGHT + jr nz, .asm_e1345 + ret + +.asm_e1301 + ld hl, wcf65 + ld a, [hl] + cp $6 + ret c + sub $6 + ld [hl], a + jr .asm_e1364 + +.asm_e130d + ld hl, wcf65 + ld a, [hl] + cp $19 + ret z + cp $1a + ret z + cp $1b + ret z + cp $1c + ret z + cp $1e + ret nc + add $6 + ld [hl], a + jr .asm_e1364 + +.asm_e1325 + ld hl, wcf65 + ld a, [hl] + and a + ret z + cp $6 + ret z + cp $c + ret z + cp $12 + ret z + cp $18 + ret z + cp $1e + ret z + cp $23 + jr z, .asm_e1341 + dec [hl] + jr .asm_e1364 + +.asm_e1341 + ld [hl], $1e + jr .asm_e1364 + +.asm_e1345 + ld hl, wcf65 + ld a, [hl] + cp $5 + ret z + cp $b + ret z + cp $11 + ret z + cp $17 + ret z + cp $1d + ret z + cp $23 + ret z + cp $1e + jr z, .asm_e1362 + inc [hl] + jr .asm_e1364 + +.asm_e1362 + ld [hl], $23 + +.asm_e1364 + ld a, [wcf64] + and a + jr nz, .asm_e136f + ld de, SFX_POUND + jr .asm_e1372 + +.asm_e136f + ld de, SFX_MOVE_PUZZLE_PIECE + +.asm_e1372 + call PlaySFX + ret +; e1376 + +Functione1376: ; e1376 + ld a, [wcf64] + and a + jr nz, .asm_e139f + call Functione1475 + and a + jr z, Functione13e4 + ld de, SFX_MEGA_KICK + call PlaySFX + ld [hl], $0 + ld [wcf66], a + call Functione14d9 + call Functione1441 + call WaitBGMap + call WaitSFX + ld a, $1 + ld [wcf64], a + ret + +.asm_e139f + call Functione1475 + and a + jr nz, Functione13e4 + ld de, SFX_PLACE_PUZZLE_PIECE_DOWN + call PlaySFX + ld a, [wcf66] + ld [hl], a + call Functione141f + call WaitBGMap + xor a + ld [wcf66], a + call Functione14d9 + xor a + ld [wcf64], a + call WaitSFX + call Functione14a0 + ret nc + call Functione128d + call ClearSprites + ld de, SFX_1ST_PLACE + call PlaySFX + call WaitSFX + call SimpleWaitPressAorB + ld a, $1 + ld [wd0ec], a + +Functione13de: ; e13de + ld hl, wJumptableIndex + set 7, [hl] + ret + +Functione13e4: ; e13e4 + ld de, SFX_WRONG + call PlaySFX + call WaitSFX + ret +; e13ee + +Functione13ee: ; e13ee + ld de, SCREEN_WIDTH +.asm_e13f1 + push bc + push hl +.asm_e13f3 + ld [hli], a + dec c + jr nz, .asm_e13f3 + pop hl + add hl, de + pop bc + dec b + jr nz, .asm_e13f1 + ret +; e13fe + +Functione13fe: ; e13fe + xor a + ld [wcf65], a + ld c, $24 +.asm_e1404 + push bc + call Functione1475 + ld [wcf66], a + and a + jr z, .asm_e1413 + call Functione141f + jr .asm_e1416 + +.asm_e1413 + call Functione1441 + +.asm_e1416 + ld hl, wcf65 + inc [hl] + pop bc + dec c + jr nz, .asm_e1404 + ret +; e141f + +Functione141f: ; e141f + ld a, $2 + call Functione1463 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + call Functione1481 + pop hl + ld de, SCREEN_WIDTH + ld b, $3 +.asm_e1431 + ld c, $3 + push hl +.asm_e1434 + ld [hli], a + inc a + dec c + jr nz, .asm_e1434 + add $9 + pop hl + add hl, de + dec b + jr nz, .asm_e1431 + ret +; e1441 + +Functione1441: ; e1441 + ld a, $2 + call Functione1463 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld a, $4 + call Functione1463 + ld a, [hl] + pop hl + ld de, SCREEN_WIDTH + ld b, $3 +.asm_e1456 + ld c, $3 + push hl +.asm_e1459 + ld [hli], a + dec c + jr nz, .asm_e1459 + pop hl + add hl, de + dec b + jr nz, .asm_e1456 + ret +; e1463 + +Functione1463: ; e1463 + ld e, a + ld d, 0 + ld hl, Unknown_e1559 + add hl, de + ld a, [wcf65] + ld e, a +rept 4 + add hl, de +endr +rept 2 + add hl, de +endr + ret +; e1475 + +Functione1475: ; e1475 + ld hl, wc6d0 + ld a, [wcf65] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + ret +; e1481 + +Functione1481: ; e1481 + ld a, [wcf66] + ld hl, Unknown_e148f + add l + ld l, a + ld a, $0 + adc h + ld h, a + ld a, [hl] + ret +; e148f + +Unknown_e148f: ; e148f + db $e0 + db $00, $03, $06, $09 + db $24, $27, $2a, $2d + db $48, $4b, $4e, $51 + db $6c, $6f, $72, $75 +; e14a0 + +Functione14a0: ; e14a0 + ld hl, Unknown_e14b5 + ld de, wc6d0 + ld c, $24 +.asm_e14a8 + ld a, [de] + cp [hl] + jr nz, .asm_e14b3 + inc de + inc hl + dec c + jr nz, .asm_e14a8 + scf + ret + +.asm_e14b3 + and a + ret +; e14b5 + +Unknown_e14b5: ; e14b5 + db $00, $00, $00, $00, $00, $00 + db $00, $01, $02, $03, $04, $00 + db $00, $05, $06, $07, $08, $00 + db $00, $09, $0a, $0b, $0c, $00 + db $00, $0d, $0e, $0f, $10, $00 + db $00, $00, $00, $00, $00, $00 +; e14d9 + +Functione14d9: ; e14d9 + call Functione1481 + ld [wd002], a + xor a + call Functione1463 + ld a, [hli] + ld b, [hl] + ld c, a + ld a, [wd002] + cp $e0 + jr z, .asm_e14f2 + ld hl, Unknown_e150f + jr .asm_e14f5 + +.asm_e14f2 + ld hl, Unknown_e1534 + +.asm_e14f5 + ld de, Sprites +.asm_e14f8 + ld a, [hli] + cp $ff + ret z + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [wd002] + add [hl] + ld [de], a + inc hl + inc de + ld a, [hli] + ld [de], a + inc de + jr .asm_e14f8 +; e150f + +Unknown_e150f: ; e150f + db $f4, $f4, $00, $00 + db $f4, $fc, $01, $00 + db $f4, $04, $02, $00 + db $fc, $f4, $0c, $00 + db $fc, $fc, $0d, $00 + db $fc, $04, $0e, $00 + db $04, $f4, $18, $00 + db $04, $fc, $19, $00 + db $04, $04, $1a, $00 + db $ff + +Unknown_e1534: ; e1534 + db $f4, $f4, $00, $00 + db $f4, $fc, $01, $00 + db $f4, $04, $00, $20 + db $fc, $f4, $02, $00 + db $fc, $fc, $03, $00 + db $fc, $04, $02, $20 + db $04, $f4, $00, $40 + db $04, $fc, $01, $40 + db $04, $04, $00, $60 + db $ff + +Unknown_e1559: ; e1559 + +macro_e1559: macro + db \1, \2 + dwcoord \3, \4 + db \5, \6 +endm + + macro_e1559 $1c, $1c, 1, 0, $ee, $00 + macro_e1559 $34, $1c, 4, 0, $ee, $00 + macro_e1559 $4c, $1c, 7, 0, $ee, $00 + macro_e1559 $64, $1c, 10, 0, $ee, $00 + macro_e1559 $7c, $1c, 13, 0, $ee, $00 + macro_e1559 $94, $1c, 16, 0, $ee, $00 + macro_e1559 $1c, $34, 1, 3, $ee, $00 + macro_e1559 $34, $34, 4, 3, $ef, $00 + macro_e1559 $4c, $34, 7, 3, $ef, $00 + macro_e1559 $64, $34, 10, 3, $ef, $00 + macro_e1559 $7c, $34, 13, 3, $ef, $00 + macro_e1559 $94, $34, 16, 3, $ee, $00 + macro_e1559 $1c, $4c, 1, 6, $ee, $00 + macro_e1559 $34, $4c, 4, 6, $ef, $00 + macro_e1559 $4c, $4c, 7, 6, $ef, $00 + macro_e1559 $64, $4c, 10, 6, $ef, $00 + macro_e1559 $7c, $4c, 13, 6, $ef, $00 + macro_e1559 $94, $4c, 16, 6, $ee, $00 + macro_e1559 $1c, $64, 1, 9, $ee, $00 + macro_e1559 $34, $64, 4, 9, $ef, $00 + macro_e1559 $4c, $64, 7, 9, $ef, $00 + macro_e1559 $64, $64, 10, 9, $ef, $00 + macro_e1559 $7c, $64, 13, 9, $ef, $00 + macro_e1559 $94, $64, 16, 9, $ee, $00 + macro_e1559 $1c, $7c, 1, 12, $ee, $00 + macro_e1559 $34, $7c, 4, 12, $ef, $00 + macro_e1559 $4c, $7c, 7, 12, $ef, $00 + macro_e1559 $64, $7c, 10, 12, $ef, $00 + macro_e1559 $7c, $7c, 13, 12, $ef, $00 + macro_e1559 $94, $7c, 16, 12, $ee, $00 + macro_e1559 $1c, $94, 1, 15, $ee, $00 + macro_e1559 $34, $94, 4, 15, $ee, $00 + macro_e1559 $4c, $94, 7, 15, $ee, $00 + macro_e1559 $64, $94, 10, 15, $ee, $00 + macro_e1559 $7c, $94, 13, 15, $ee, $00 + macro_e1559 $94, $94, 16, 15, $ee, $00 + +Functione1631: ; e1631 + ld hl, VTiles2 + ld de, VTiles0 + ld b, $6 +.asm_e1639 + push bc + push hl + push hl + call Functione1654 + pop hl + ld bc, 8 + add hl, bc + call Functione1654 + pop hl + ld bc, $60 + add hl, bc + pop bc + dec b + jr nz, .asm_e1639 + call Functione16c7 + ret +; e1654 + +Functione1654: ; e1654 + ld c, $6 +.asm_e1656 + push bc + push hl + push hl + ld c, $4 +.asm_e165b + push bc + ld a, [hli] + and $f0 + swap a + call Functione16aa + ld c, a + ld a, [hli] + and $f0 + swap a + call Functione16aa + ld b, a + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + pop bc + dec c + jr nz, .asm_e165b + pop hl + ld c, $4 +.asm_e1681 + push bc + ld a, [hli] + and $f + call Functione16aa + ld c, a + ld a, [hli] + and $f + call Functione16aa + ld b, a + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + pop bc + dec c + jr nz, .asm_e1681 + pop hl + ld bc, $10 + add hl, bc + pop bc + dec c + jr nz, .asm_e1656 + ret +; e16aa + +Functione16aa: ; e16aa + push hl + ld hl, Unknown_e16b7 + add l + ld l, a + ld a, 0 + adc h + ld h, a + ld a, [hl] + pop hl + ret +; e16b7 + +Unknown_e16b7: ; e16b7 + db $00, $03, $0c, $0f + db $30, $33, $3c, $3f + db $c0, $c3, $cc, $cf + db $f0, $f3, $fc, $ff +; e16c7 + +Functione16c7: ; e16c7 + ld hl, Unknown_e1703 + ld a, $8 +.asm_e16cc + push af + push hl + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + call Functione16e2 + pop hl +rept 4 + inc hl +endr + pop af + dec a + jr nz, .asm_e16cc + ret +; e16e2 + +Functione16e2: ; e16e2 + lb bc, 4, 4 +.asm_e16e5 + push bc +.asm_e16e6 + push de + push hl + ld b, $10 +.asm_e16ea + ld a, [de] + or [hl] + ld [hli], a + inc de + dec b + jr nz, .asm_e16ea + pop hl + ld de, $30 + add hl, de + pop de + dec c + jr nz, .asm_e16e6 + ld bc, $180 + add hl, bc + pop bc + dec b + jr nz, .asm_e16e5 + ret +; e1703 + +Unknown_e1703: ; e1703 + dw GFX_e1723 + $00, $8000 + dw GFX_e1723 + $10, $8010 + dw GFX_e1723 + $20, $8020 + dw GFX_e1723 + $30, $80c0 + dw GFX_e1723 + $40, $80e0 + dw GFX_e1723 + $50, $8180 + dw GFX_e1723 + $60, $8190 + dw GFX_e1723 + $70, $81a0 +; e1723 + +GFX_e1723: ; e1723 +INCBIN "gfx/unknown/0e1723.2bpp" + +Functione17a3: ; e17a3 + ld a, [ScriptVar] + and 3 + ld e, a + ld d, 0 + ld hl, Unknown_e17bd +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, VTiles2 + call Decompress + call Functione1631 + ret +; e17bd + +Unknown_e17bd: ; e17bd + dw LZ_e1bab + dw LZ_e1c9b + dw LZ_e19fb + dw LZ_e18ab +; e17c5 + +GFX_e17c5: ; e17c5 +INCBIN "gfx/unknown/0e17c5.2bpp" + +LZ_e1805: ; e1805 +INCBIN "gfx/unknown/0e1805.2bpp.lz" + +LZ_e18ab: ; e18ab +INCBIN "gfx/unknown/0e18ab.2bpp.lz" + +LZ_e19fb: ; e19fb +INCBIN "gfx/unknown/0e19fb.2bpp.lz" + +LZ_e1bab: ; e1bab +INCBIN "gfx/unknown/0e1bab.2bpp.lz" + +LZ_e1c9b: ; e1c9b +INCBIN "gfx/unknown/0e1c9b.2bpp.lz" diff --git a/engine/credits.asm b/engine/credits.asm index f03950d69..3cee62e13 100644 --- a/engine/credits.asm +++ b/engine/credits.asm @@ -131,7 +131,7 @@ Function109847:: ; 109847 ld a, $5 ld [rSVBK], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites @@ -210,7 +210,7 @@ Function109847:: ; 109847 jr .asm_1098de .asm_1098ee - call WhiteBGMap + call ClearBGPalettes xor a ld [hLCDStatCustom], a ld [hBGMapAddress], a diff --git a/engine/diploma.asm b/engine/diploma.asm index 86a9a6ceb..7699cf930 100644 --- a/engine/diploma.asm +++ b/engine/diploma.asm @@ -6,7 +6,7 @@ Function1dd702: ; 1dd702 ; 1dd709 Function1dd709: ; 1dd709 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD diff --git a/engine/dummy_game.asm b/engine/dummy_game.asm new file mode 100755 index 000000000..86d505e0e --- /dev/null +++ b/engine/dummy_game.asm @@ -0,0 +1,615 @@ +_DummyGame: ; e1e5b (38:5e5b) + call Functione1e67 + call DelayFrame +.asm_e1e61 + call Functione1ebb + jr nc, .asm_e1e61 + ret + +Functione1e67: ; e1e67 (38:5e67) + call DisableLCD + ld b, $8 + call GetSGBLayout + callab Function8cf53 + ld hl, LZ_e2221 + ld de, VTiles2 tile $00 + call Decompress + ld hl, Unknown_e00ed + ld de, VTiles0 tile $00 + ld bc, $40 + ld a, BANK(Unknown_e00ed) + call FarCopyBytes + ld a, $8 + ld hl, wc300 + ld [hli], a + ld [hl], $0 + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + xor a + call ByteFill + xor a + ld [hSCY], a + ld [hSCX], a + ld [rWY], a + ld [wJumptableIndex], a + ld a, $1 + ld [hBGMapMode], a + ld a, $e3 + ld [rLCDC], a + ld a, $e4 + call DmgToCgbBGPals + ld a, $e0 + call Functioncf8 + ret + +Functione1ebb: ; e1ebb (38:5ebb) + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_e1ed0 + call Functione1ed2 + callab Function8cf69 + call DelayFrame + and a + ret +.asm_e1ed0 + scf + ret + +Functione1ed2: ; e1ed2 (38:5ed2) + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_e1ee1 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e1ee1 (38:5ee1) + +Jumptable_e1ee1: ; e1ee1 + dw Functione1ef3 + dw Functione1efb + dw Functione1f1c + dw Functione1f42 + dw Functione1f61 + dw Functione1f8b + dw Functione1fba + dw Functione1fcc + dw Functione2000 +; e1ef3 + +Functione1ef3: ; e1ef3 + call Functione2152 + ld hl, wJumptableIndex + inc [hl] + ret +; e1efb + +Functione1efb: ; e1efb + call Functione00ed + jr nc, .asm_e1f06 + ld hl, wJumptableIndex + set 7, [hl] + ret + +.asm_e1f06 + call Functione209d + ld hl, wJumptableIndex + inc [hl] + xor a + ld [wc708], a + ld hl, wc703 +rept 4 + ld [hli], a +endr + ld [hl], a + ld [wc709], a + +Functione1f1c: ; e1f1c + ld hl, wc708 + ld a, [hl] + cp $2d + jr nc, .asm_e1f30 + inc [hl] + call Functione2183 + xor a + ld [wc6fd], a + call Functione2128 + ret + +.asm_e1f30 + ld de, $341c + ld a, $c + call Function3b2a + ld a, $5 + ld [wc702], a + ld hl, wJumptableIndex + inc [hl] + ret +; e1f42 + +Functione1f42: ; e1f42 + ld a, [wc702] + hlcoord 17, 0 + add $f6 + ld [hl], a + ld hl, wc702 + ld a, [hl] + and a + jr nz, .asm_e1f58 + ld a, $7 + ld [wJumptableIndex], a + ret + +.asm_e1f58 + dec [hl] + xor a + ld [wcf64], a + ld hl, wJumptableIndex + inc [hl] + +Functione1f61: ; e1f61 + ld a, [wcf64] + and a + ret z + dec a + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld a, [hl] + cp $ff + ret z + ld [wc6fd], a + ld [wPlayerMinimized], a + ld a, e + ld [EnemyScreens], a + call Functione2183 + call Functione2128 + xor a + ld [wcf64], a + ld hl, wJumptableIndex + inc [hl] + ret +; e1f8b + +Functione1f8b: ; e1f8b + ld a, [wcf64] + and a + ret z + dec a + ld hl, EnemyScreens + cp [hl] + ret z + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld a, [hl] + cp $ff + ret z + ld [wc6fd], a + ld [PlayerScreens], a + ld a, e + ld [wc701], a + call Functione2183 + call Functione2128 + ld a, $40 + ld [wc708], a + ld hl, wJumptableIndex + inc [hl] + +Functione1fba: ; e1fba + ld hl, wc708 + ld a, [hl] + and a + jr z, .asm_e1fc3 + dec [hl] + ret + +.asm_e1fc3 + call Functione2010 + ld a, $3 + ld [wJumptableIndex], a + ret +; e1fcc + +Functione1fcc: ; e1fcc + ld a, [hJoypadPressed] + and A_BUTTON + ret z + xor a + ld [wc708], a +.asm_e1fd5 + ld hl, wc708 + ld a, [hl] + cp $2d + jr nc, .asm_e1ff9 + inc [hl] + push af + call Functione2183 + pop af + push hl + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld a, [hl] + pop hl + cp $ff + jr z, .asm_e1fd5 + ld [wc6fd], a + call Functione2128 + jr .asm_e1fd5 + +.asm_e1ff9 + call WaitPressAorB_BlinkCursor + ld hl, wJumptableIndex + inc [hl] + +Functione2000: ; e2000 + call Functione00ed + jr nc, .asm_e200b + ld hl, wJumptableIndex + set 7, [hl] + ret + +.asm_e200b + xor a + ld [wJumptableIndex], a + ret +; e2010 + +Functione2010: ; e2010 + ld hl, wPlayerMinimized + ld a, [hli] + cp [hl] + jr nz, .asm_e2066 + ld a, [EnemyScreens] + call Functione2183 + call Functione2142 + ld a, [wc701] + call Functione2183 + call Functione2142 + ld a, [EnemyScreens] + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld [hl], $ff + ld a, [wc701] + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld [hl], $ff + ld hl, wc703 +.asm_e2044 + ld a, [hli] + and a + jr nz, .asm_e2044 + dec hl + ld a, [wPlayerMinimized] + ld [hl], a + ld [wc6fd], a + ld hl, wc709 + ld e, [hl] +rept 2 + inc [hl] +endr + ld d, $0 + hlcoord 5, 0 + add hl, de + call Functione2128 + ld hl, UnknownText_0xe2083 + call PrintText + ret + +.asm_e2066 + xor a + ld [wc6fd], a + ld a, [EnemyScreens] + call Functione2183 + call Functione2128 + ld a, [wc701] + call Functione2183 + call Functione2128 + ld hl, UnknownText_0xe2098 + call PrintText + ret +; e2083 + +UnknownText_0xe2083: ; 0xe2083 + start_asm +; 0xe2084 + +Functione2084: ; e2084 + push bc + hlcoord 2, 13 + call Functione2128 + ld hl, UnknownText_0xe2093 + pop bc +rept 3 + inc bc +endr + ret +; e2093 + +UnknownText_0xe2093: ; 0xe2093 + ; , yeah! + text_jump UnknownText_0x1c1a5b + db "@" +; 0xe2098 + +UnknownText_0xe2098: ; 0xe2098 + ; Darn… + text_jump UnknownText_0x1c1a65 + db "@" +; 0xe209d + +Functione209d: ; e209d + ld hl, wc6d0 + ld bc, $2d + xor a + call ByteFill + call Functione2101 + ld c, $2 + ld b, [hl] + call Functione20e5 + ld c, $8 + ld b, [hl] + call Functione20e5 + ld c, $4 + ld b, [hl] + call Functione20e5 + ld c, $7 + ld b, [hl] + call Functione20e5 + ld c, $3 + ld b, [hl] + call Functione20e5 + ld c, $6 + ld b, [hl] + call Functione20e5 + ld c, $1 + ld b, [hl] + call Functione20e5 + ld c, $5 + ld hl, wc6d0 + ld b, $2d +.asm_e20db + ld a, [hl] + and a + jr nz, .asm_e20e0 + ld [hl], c + +.asm_e20e0 + inc hl + dec b + jr nz, .asm_e20db + ret +; e20e5 + +Functione20e5: ; e20e5 + push hl + ld de, wc6d0 +.asm_e20e9 + call Random + and $3f + cp $2d + jr nc, .asm_e20e9 + ld l, a + ld h, $0 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e20e9 + ld [hl], c + dec b + jr nz, .asm_e20e9 + pop hl + inc hl + ret +; e2101 + +Functione2101: ; e2101 + ld a, [MenuSelection2] + dec a + ld l, a + ld h, 0 +rept 3 + add hl, hl +endr + ld de, Unknown_e2110 + add hl, de + ret +; e2110 + +Unknown_e2110: ; e2110 + db $02, $03, $06, $06, $06, $08, $08, $06 + db $02, $02, $04, $06, $06, $08, $08, $09 + db $02, $02, $02, $04, $07, $08, $08, $0c +; e2128 + +Functione2128: ; e2128 + ld a, [wc6fd] + sla a + sla a + add $4 + ld [hli], a + inc a + ld [hld], a + inc a + ld bc, SCREEN_WIDTH + add hl, bc + ld [hli], a + inc a + ld [hl], a + ld c, 3 + call DelayFrames + ret +; e2142 + +Functione2142: ; e2142 + ld a, $1 + ld [hli], a + ld [hld], a + ld bc, SCREEN_WIDTH + add hl, bc + ld [hli], a + ld [hl], a + ld c, 3 + call DelayFrames + ret +; e2152 + +Functione2152: ; e2152 + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $1 + call ByteFill + hlcoord 0, 0 + ld de, String_e2177 + call PlaceString + hlcoord 15, 0 + ld de, String_e217d + call PlaceString + ld hl, UnknownText_0xe2176 + call PrintText + ret +; e2176 + +UnknownText_0xe2176: ; 0xe2176 + db "@" +; 0xe2177 + +String_e2177: db "とったもの@" +String_e217d: db "あと かい@" +; e2183 + +Functione2183: ; e2183 + ld d, $0 +.asm_e2185 + sub $9 + jr c, .asm_e218c + inc d + jr .asm_e2185 + +.asm_e218c + add $9 + ld e, a + hlcoord 1, 2 + ld bc, $28 +.asm_e2195 + ld a, d + and a + jr z, .asm_e219d + add hl, bc + dec d + jr .asm_e2195 + +.asm_e219d + sla e + add hl, de + ret +; e21a1 + +Functione21a1: ; e21a1 (38:61a1) + ld a, [wJumptableIndex] + cp $7 + jr nc, .quit + call JoyTextDelay + ld hl, hJoypadPressed ; $ffa3 + ld a, [hl] + and A_BUTTON + jr nz, .pressed_a + ld a, [hl] + and D_LEFT + jr nz, .pressed_left + ld a, [hl] + and D_RIGHT + jr nz, .pressed_right + ld a, [hl] + and D_UP + jr nz, .pressed_up + ld a, [hl] + and D_DOWN + jr nz, .pressed_down + ret + +.quit + ld hl, 0 + add hl, bc + ld [hl], $0 + ret + +.pressed_a + ld hl, $c + add hl, bc + ld a, [hl] + inc a + ld [wcf64], a + ret + +.pressed_left + ld hl, $6 + add hl, bc + ld a, [hl] + and a + ret z + sub $10 + ld [hl], a + ld hl, $c + add hl, bc + dec [hl] + ret + +.pressed_right + ld hl, $6 + add hl, bc + ld a, [hl] + cp $80 + ret z + add $10 + ld [hl], a + ld hl, $c + add hl, bc + inc [hl] + ret + +.pressed_up + ld hl, $7 + add hl, bc + ld a, [hl] + and a + ret z + sub $10 + ld [hl], a + ld hl, $c + add hl, bc + ld a, [hl] + sub $9 + ld [hl], a + ret + +.pressed_down + ld hl, $7 + add hl, bc + ld a, [hl] + cp $40 + ret z + add $10 + ld [hl], a + ld hl, $c + add hl, bc + ld a, [hl] + add $9 + ld [hl], a + ret +; e2221 (38:6221) + +LZ_e2221: ; e2221 +INCBIN "gfx/unknown/0e2221.2bpp.lz" diff --git a/engine/events.asm b/engine/events.asm index ff2f55dbe..3a3c2b9be 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -138,7 +138,7 @@ EnterMap: ; 9673e call ClearAllScriptFlags3 ld a, [hMapEntryMethod] - cp MAPSETUP_07 + cp MAPSETUP_CONNECTION jr nz, .dontset call SetAll_ScriptFlags3 .dontset @@ -322,9 +322,9 @@ PlayerEvents: ; 9681f ld [ScriptRunning], a call DoPlayerEvent ld a, [ScriptRunning] - cp PLAYEREVENT_4 + cp PLAYEREVENT_CONNECTION jr z, .ok2 - cp PLAYEREVENT_9 + cp PLAYEREVENT_JOYCHANGEFACING jr z, .ok2 xor a @@ -1050,8 +1050,10 @@ DoPlayerEvent: ; 96beb ld a, [ScriptRunning] and a ret z + cp PLAYEREVENT_MAPSCRIPT ; run script ret z + cp NUM_PLAYER_EVENTS ret nc @@ -1071,24 +1073,24 @@ endr ; 96c0c PlayerEventScriptPointers: ; 96c0c - dba Invalid_0x96c2d ; 0 - dba SeenByTrainerScript ; 1 - dba TalkToTrainerScript ; 2 - dba FindItemInBallScript ; 3 - dba UnknownScript_0x96c4d ; 4 - dba WarpToNewMapScript ; 5 - dba FallIntoMapScript ; 6 - dba Script_OverworldWhiteout ; 7 - dba HatchEggScript ; 8 - dba UnknownScript_0x96c4f ; 9 - dba Invalid_0x96c2d ; 10 + dba Invalid_0x96c2d ; 0 + dba SeenByTrainerScript ; 1 + dba TalkToTrainerScript ; 2 + dba FindItemInBallScript ; 3 + dba UnknownScript_0x96c4d ; 4 + dba WarpToNewMapScript ; 5 + dba FallIntoMapScript ; 6 + dba Script_OverworldWhiteout ; 7 + dba HatchEggScript ; 8 + dba UnknownScript_0x96c4f ; 9 + dba Invalid_0x96c2d ; 10 ; 96c2d Invalid_0x96c2d: ; 96c2d end ; 96c2e -UnknownScript_0x96c2e: ; 96c2e +; unreferenced end ; 96c2f @@ -1099,12 +1101,12 @@ HatchEggScript: ; 96c2f WarpToNewMapScript: ; 96c34 warpsound - newloadmap MAPSETUP_05 + newloadmap MAPSETUP_DOOR end ; 96c38 FallIntoMapScript: ; 96c38 - newloadmap MAPSETUP_06 + newloadmap MAPSETUP_FALL playsound SFX_KINESIS applymovement PLAYER, MovementData_0x96c48 playsound SFX_STRENGTH @@ -1123,7 +1125,7 @@ LandAfterPitfallScript: ; 96c4a ; 96c4d UnknownScript_0x96c4d: ; 4 - reloadandreturn MAPSETUP_07 + reloadandreturn MAPSETUP_CONNECTION ; 96c4f UnknownScript_0x96c4f: ; 9 diff --git a/engine/events_3.asm b/engine/events_3.asm new file mode 100755 index 000000000..f9f8ffedc --- /dev/null +++ b/engine/events_3.asm @@ -0,0 +1,863 @@ +ReturnFromMapSetupScript:: ; b8000 + xor a + ld [hBGMapMode], a + ; For some reson, GameFreak chose to use a callba here instead of just falling through. + ; No other function in the game references the function at 2E:400A, here labeled + ; ReturnFromMapSetupScript.inefficientcallba. + callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes + ret +; b800a + +.inefficientcallba: ; b800a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + ld [wCurrentLandmark], a + call .CheckNationalParkGate + jr z, .nationalparkgate + + call GetMapPermission + cp GATE + jr nz, .not_gate + +.nationalparkgate + ld a, -1 + ld [wCurrentLandmark], a + +.not_gate + ld hl, wEnteredMapFromContinue + bit 1, [hl] + res 1, [hl] + jr nz, .dont_do_map_sign + + call .CheckMovingWithinLandmark + jr z, .dont_do_map_sign + ld a, [wCurrentLandmark] + ld [wPreviousLandmark], a + + call .CheckSpecialMap + jr z, .dont_do_map_sign + +; Display for 60 frames + ld a, 60 + ld [wLandmarkSignTimer], a + call LoadMapNameSignGFX + call InitMapNameFrame + callba Function104303 + ret + +.dont_do_map_sign + ld a, [wCurrentLandmark] + ld [wPreviousLandmark], a + ld a, $90 + ld [rWY], a + ld [hWY], a + xor a + ld [hLCDStatCustom], a + ret +; b8064 + +.CheckMovingWithinLandmark: ; b8064 + ld a, [wCurrentLandmark] + ld c, a + ld a, [wPreviousLandmark] + cp c + ret z + cp $0 + ret +; b8070 + +.CheckSpecialMap: ; b8070 + cp -1 + ret z + cp SPECIAL_MAP + ret z + cp RADIO_TOWER + ret z + cp LAV_RADIO_TOWER + ret z + cp UNDERGROUND + ret z + cp INDIGO_PLATEAU + ret z + cp POWER_PLANT + ret z + ld a, $1 + and a + ret +; b8089 + +.CheckNationalParkGate: ; b8089 + ld a, [MapGroup] + cp GROUP_ROUTE_35_NATIONAL_PARK_GATE + ret nz + ld a, [MapNumber] + cp MAP_ROUTE_35_NATIONAL_PARK_GATE + ret z + cp MAP_ROUTE_36_NATIONAL_PARK_GATE + ret +; b8098 + + +PlaceMapNameSign:: ; b8098 (2e:4098) + ld hl, wLandmarkSignTimer + ld a, [hl] + and a + jr z, .disappear + dec [hl] + cp 60 + ret z + cp 59 + jr nz, .skip2 + call InitMapNameFrame + call PlaceMapNameCenterAlign + callba Function104303 +.skip2 + ld a, $80 + ld a, $70 + ld [rWY], a + ld [hWY], a + ret + +.disappear + ld a, $90 + ld [rWY], a + ld [hWY], a + xor a + ld [hLCDStatCustom], a + ret + + +LoadMapNameSignGFX: ; b80c6 + ld de, MapEntryFrameGFX + ld hl, VTiles2 tile $60 + lb bc, BANK(MapEntryFrameGFX), $e + call Get2bpp + ret +; b80d3 + +InitMapNameFrame: ; b80d3 + hlcoord 0, 0 + ld b, 2 + ld c, 18 + call InitMapSignAttrMap + call PlaceMapNameFrame + ret +; b80e1 + + +PlaceMapNameCenterAlign: ; b80e1 (2e:40e1) + ld a, [wCurrentLandmark] + ld e, a + callba GetLandmarkName + call .GetNameLength + ld a, SCREEN_WIDTH + sub c + srl a + ld b, $0 + ld c, a + hlcoord 0, 2 + add hl, bc + ld de, StringBuffer1 + call PlaceString + ret + +.GetNameLength: ; b8101 (2e:4101) + ld c, 0 + push hl + ld hl, StringBuffer1 +.loop + ld a, [hli] + cp "@" + jr z, .stop + cp "%" + jr z, .loop + inc c + jr .loop +.stop + pop hl + ret + + +InitMapSignAttrMap: ; b8115 + ld de, AttrMap - TileMap + add hl, de +rept 2 + inc b +endr +rept 2 + inc c +endr + ld a, $87 +.loop + push bc + push hl +.inner_loop + ld [hli], a + dec c + jr nz, .inner_loop + pop hl + ld de, SCREEN_WIDTH + add hl, de + pop bc + dec b + jr nz, .loop + ret +; b812f + +PlaceMapNameFrame: ; b812f + hlcoord 0, 0 + ; top left + ld a, $61 + ld [hli], a + ; top row + ld a, $62 + call .FillTopBottom + ; top right + ld a, $64 + ld [hli], a + ; left, first line + ld a, $65 + ld [hli], a + ; first line + call .FillMiddle + ; right, first line + ld a, $6b + ld [hli], a + ; left, second line + ld a, $66 + ld [hli], a + ; second line + call .FillMiddle + ; right, second line + ld a, $6c + ld [hli], a + ; bottom left + ld a, $67 + ld [hli], a + ; bottom + ld a, $68 + call .FillTopBottom + ; bottom right + ld a, $6a + ld [hl], a + ret +; b815b + +.FillMiddle: ; b815b + ld c, 18 + ld a, $6d +.loop + ld [hli], a + dec c + jr nz, .loop + ret +; b8164 + +.FillTopBottom: ; b8164 + ld c, 5 + jr .enterloop + +.continueloop +rept 2 + ld [hli], a +endr + +.enterloop + inc a +rept 2 + ld [hli], a +endr + dec a + dec c + jr nz, .continueloop + ret +; b8172 + +CheckForSignpostItems: ; b8172 +; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry. + call GetMapScriptHeaderBank + ld [Buffer1], a +; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed. + ld a, [XCoord] + add SCREEN_WIDTH / 4 + ld [wd1ed], a + ld a, [YCoord] + add SCREEN_HEIGHT / 4 + ld [wd1ec], a +; Get the pointer for the first signpost header in the map... + ld hl, wdc02 + ld a, [hli] + ld h, [hl] + ld l, a +; ... before even checking to see if there are any signposts on this map. + ld a, [wCurrentMapSignpostCount] + and a + jr z, .nosignpostitems +; For i = 1:wCurrentMapSignpostCount... +.loop +; Store the counter in Buffer2, and store the signpost header pointer in the stack. + ld [Buffer2], a + push hl +; Get the Y coordinate of the signpost. + call .GetFarByte + ld e, a +; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost. + ld a, [wd1ec] + sub e + jr c, .next + cp SCREEN_HEIGHT / 2 + jr nc, .next +; Is the X coordinate of the signpost on the screen? If not, go to the next signpost. + call .GetFarByte + ld d, a + ld a, [wd1ed] + sub d + jr c, .next + cp SCREEN_WIDTH / 2 + jr nc, .next +; Is this signpost a hidden item? If not, go to the next signpost. + call .GetFarByte + cp SIGNPOST_ITEM + jr nz, .next +; Has this item already been found? If not, set off the Itemfinder. + ld a, [Buffer1] + call GetFarHalfword + ld a, [Buffer1] + call GetFarHalfword + ld d, h + ld e, l + ld b, CHECK_FLAG + call EventFlagAction + ld a, c + and a + jr z, .itemnearby + +.next +; Restore the signpost header pointer and increment it by the length of a signpost header. + pop hl + ld bc, 5 + add hl, bc +; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range. + ld a, [Buffer2] + dec a + jr nz, .loop + +.nosignpostitems + xor a + ret + +.itemnearby + pop hl + scf + ret +; b81e2 + +.GetFarByte: ; b81e2 + ld a, [Buffer1] + call GetFarByte + inc hl + ret +; b81ea + + +TreeMonEncounter: ; b81ea + callba MobileFn_1060ef + + xor a + ld [TempWildMonSpecies], a + ld [CurPartyLevel], a + + ld hl, TreeMonMaps + call GetTreeMonSet + jr nc, .no_battle + + call GetTreeMons + jr nc, .no_battle + + call GetTreeMon + jr nc, .no_battle + + ld a, BATTLETYPE_TREE + ld [BattleType], a + ld a, 1 + ld [ScriptVar], a + ret + +.no_battle + xor a + ld [ScriptVar], a + ret +; b8219 + +RockMonEncounter: ; b8219 + + xor a + ld [TempWildMonSpecies], a + ld [CurPartyLevel], a + + ld hl, RockMonMaps + call GetTreeMonSet + jr nc, .no_battle + + call GetTreeMons + jr nc, .no_battle + + ld a, 10 + call RandomRange + cp 4 + jr nc, .no_battle + + call SelectTreeMon + jr nc, .no_battle + + ret + +.no_battle + xor a + ret +; b823e + + db $05 ; ???? + +GetTreeMonSet: ; b823f +; Return carry and treemon set in a +; if the current map is in table hl. + ld a, [MapNumber] + ld e, a + ld a, [MapGroup] + ld d, a +.loop + ld a, [hli] + cp -1 + jr z, .not_in_table + + cp d + jr nz, .skip2 + + ld a, [hli] + cp e + jr nz, .skip1 + + jr .in_table + +.skip2 + inc hl +.skip1 + inc hl + jr .loop + +.not_in_table + xor a + ret + +.in_table + ld a, [hl] + scf + ret +; b825e + +TreeMonMaps: ; b825e +treemon_map: macro + map \1 + db \2 ; treemon set +endm + treemon_map ROUTE_26, 4 + treemon_map ROUTE_27, 4 + treemon_map ROUTE_28, 0 + treemon_map ROUTE_29, 3 + treemon_map ROUTE_30, 3 + treemon_map ROUTE_31, 3 + treemon_map ROUTE_32, 4 + treemon_map ROUTE_33, 2 + treemon_map ROUTE_34, 3 + treemon_map ROUTE_35, 3 + treemon_map ROUTE_36, 3 + treemon_map ROUTE_37, 3 + treemon_map ROUTE_38, 3 + treemon_map ROUTE_39, 3 + treemon_map ROUTE_40, 0 + treemon_map ROUTE_41, 0 + treemon_map ROUTE_42, 2 + treemon_map ROUTE_43, 5 + treemon_map ROUTE_44, 1 + treemon_map ROUTE_45, 1 + treemon_map ROUTE_46, 1 + treemon_map NEW_BARK_TOWN, 0 + treemon_map CHERRYGROVE_CITY, 0 + treemon_map VIOLET_CITY, 0 + treemon_map AZALEA_TOWN, 2 + treemon_map CIANWOOD_CITY, 0 + treemon_map GOLDENROD_CITY, 0 + treemon_map OLIVINE_CITY, 0 + treemon_map ECRUTEAK_CITY, 0 + treemon_map MAHOGANY_TOWN, 0 + treemon_map LAKE_OF_RAGE, 5 + treemon_map BLACKTHORN_CITY, 0 + treemon_map SILVER_CAVE_OUTSIDE, 0 + treemon_map ILEX_FOREST, 6 + db -1 +; b82c5 + +RockMonMaps: ; b82c5 + treemon_map CIANWOOD_CITY, 7 + treemon_map ROUTE_40, 7 + treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7 + treemon_map SLOWPOKE_WELL_B1F, 7 + db -1 +; b82d2 + +GetTreeMons: ; b82d2 +; Return the address of TreeMon table a in hl. +; Return nc if table a doesn't exist. + + cp 8 + jr nc, .quit + + and a + jr z, .quit + + ld e, a + ld d, 0 + ld hl, TreeMons +rept 2 + add hl, de +endr + + ld a, [hli] + ld h, [hl] + ld l, a + + scf + ret + +.quit + xor a + ret +; b82e8 + +TreeMons: ; b82e8 + dw TreeMons1 + dw TreeMons1 + dw TreeMons2 + dw TreeMons3 + dw TreeMons4 + dw TreeMons5 + dw TreeMons6 + dw RockMons + dw TreeMons1 + +; Two tables each (normal, rare). +; Structure: +; db %, species, level + +TreeMons1: ; b82fa + db 50, SPEAROW, 10 + db 15, SPEAROW, 10 + db 15, SPEAROW, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + + db 50, SPEAROW, 10 + db 15, HERACROSS, 10 + db 15, HERACROSS, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + +TreeMons2: ; b8320 + db 50, SPEAROW, 10 + db 15, EKANS, 10 + db 15, SPEAROW, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + + db 50, SPEAROW, 10 + db 15, HERACROSS, 10 + db 15, HERACROSS, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + +TreeMons3: ; b8346 + db 50, HOOTHOOT, 10 + db 15, SPINARAK, 10 + db 15, LEDYBA, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + +TreeMons4: ; b836c + db 50, HOOTHOOT, 10 + db 15, EKANS, 10 + db 15, HOOTHOOT, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + +TreeMons5: ; b8392 + db 50, HOOTHOOT, 10 + db 15, VENONAT, 10 + db 15, HOOTHOOT, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + +TreeMons6: ; b83b8 + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, NOCTOWL, 10 + db 5, BUTTERFREE, 10 + db 5, BEEDRILL, 10 + db -1 + + db 50, HOOTHOOT, 10 + db 15, CATERPIE, 10 + db 15, WEEDLE, 10 + db 10, HOOTHOOT, 10 + db 5, METAPOD, 10 + db 5, KAKUNA, 10 + db -1 + +RockMons: ; b83de + db 90, KRABBY, 15 + db 10, SHUCKLE, 15 + db -1 +; b83e5 + +GetTreeMon: ; b83e5 + push hl + call GetTreeScore + pop hl + and a + jr z, .bad + cp 1 + jr z, .good + cp 2 + jr z, .rare + ret + +.bad + ld a, 10 + call RandomRange + and a + jr nz, NoTreeMon + jr SelectTreeMon + +.good + ld a, 10 + call RandomRange + cp 5 + jr nc, NoTreeMon + jr SelectTreeMon + +.rare + ld a, 10 + call RandomRange + cp 8 + jr nc, NoTreeMon + jr .skip +.skip + ld a, [hli] + cp -1 + jr nz, .skip + call SelectTreeMon + ret +; b841f + +SelectTreeMon: ; b841f +; Read a TreeMons table and pick one monster at random. + + ld a, 100 + call RandomRange +.loop + sub [hl] + jr c, .ok +rept 3 + inc hl +endr + jr .loop + +.ok + ld a, [hli] + cp $ff + jr z, NoTreeMon + + ld a, [hli] + ld [TempWildMonSpecies], a + ld a, [hl] + ld [CurPartyLevel], a + scf + ret + +NoTreeMon: ; b843b + xor a + ld [TempWildMonSpecies], a + ld [CurPartyLevel], a + ret +; b8443 + +GetTreeScore: ; b8443 + call .CoordScore + ld [Buffer1], a + call .OTIDScore + ld [Buffer2], a + ld c, a + ld a, [Buffer1] + sub c + jr z, .rare + jr nc, .ok + add 10 +.ok + cp 5 + jr c, .good + +.bad + xor a + ret + +.good + ld a, 1 + ret + +.rare + ld a, 2 + ret +; b8466 + +.CoordScore: ; b8466 + call GetFacingTileCoord + ld hl, 0 + ld c, e + ld b, 0 + ld a, d + + and a + jr z, .next +.loop + add hl, bc + dec a + jr nz, .loop +.next + + add hl, bc + ld c, d + add hl, bc + + ld a, h + ld [hDividend], a + ld a, l + ld [hDividend + 1], a + ld a, 5 + ld [hDivisor], a + ld b, 2 + call Divide + + ld a, [hQuotient + 1] + ld [hDividend], a + ld a, [hQuotient + 2] + ld [hDividend + 1], a + ld a, 10 + ld [hDivisor], a + ld b, 2 + call Divide + + ld a, [hQuotient + 3] + ret +; b849d + +.OTIDScore: ; b849d + ld a, [PlayerID] + ld [hDividend], a + ld a, [PlayerID + 1] + ld [hDividend + 1], a + ld a, 10 + ld [hDivisor], a + ld b, 2 + call Divide + ld a, [hQuotient + 3] + ret +; b84b3 + +LoadFishingGFX: ; b84b3 + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + + ld de, FishingGFX + ld a, [PlayerGender] + bit 0, a + jr z, .got_gender + ld de, KrisFishingGFX +.got_gender + + ld hl, VTiles0 tile $02 + call .LoadGFX + ld hl, VTiles0 tile $06 + call .LoadGFX + ld hl, VTiles0 tile $0a + call .LoadGFX + ld hl, VTiles1 tile $7c + call .LoadGFX + + pop af + ld [rVBK], a + ret +; b84e3 + +.LoadGFX: ; b84e3 + lb bc, BANK(FishingGFX), 2 + push de + call Get2bpp + pop de + ld hl, 2 tiles + add hl, de + ld d, h + ld e, l + ret +; b84f2 + +FishingGFX: ; b84f2 +INCBIN "gfx/overworld/chris_fish.2bpp" +; b8582 + +KrisFishingGFX: ; b8582 +INCBIN "gfx/overworld/kris_fish.2bpp" +; b8612 diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm index 85bc8c5a8..69e7aec4c 100755 --- a/engine/evolution_animation.asm +++ b/engine/evolution_animation.asm @@ -372,7 +372,7 @@ INCBIN "gfx/evo/bubble_large.2bpp" INCBIN "gfx/evo/bubble.2bpp" Function4e881: ; 4e881 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -405,7 +405,7 @@ UnknownText_0x4e8bd: ; 0x4e8bd Function4e8c2: ; 4e8c2 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD diff --git a/engine/flypoints.asm b/engine/flypoints.asm new file mode 100755 index 000000000..7f6d384aa --- /dev/null +++ b/engine/flypoints.asm @@ -0,0 +1,916 @@ +_FlyMap: ; 91af3 + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld hl, hInMenu + ld a, [hl] + push af + ld [hl], $1 + xor a + ld [hBGMapMode], a + callba Function8cf53 + call Function91ff2 + ld de, GFX_922e1 + ld hl, VTiles2 tile $30 + lb bc, BANK(GFX_922e1), 6 + call Request1bpp + call FlyMap + call Function91c8f + ld b, $2 + call GetSGBLayout + call SetPalettes +.loop + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .pressedB + ld a, [hl] + and A_BUTTON + jr nz, .pressedA + call FlyMapScroll + call GetMapCursorCoordinates + callba Function8cf69 + call DelayFrame + jr .loop + +.pressedB + ld a, -1 + jr .exit + +.pressedA + ld a, [wd002] + ld l, a + ld h, 0 + add hl, hl + ld de, Flypoints + 1 + add hl, de + ld a, [hl] + +.exit + ld [wd002], a + pop af + ld [hInMenu], a + call ClearBGPalettes + ld a, $90 + ld [hWY], a + xor a + ld [hBGMapAddress], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + ld a, [wd002] + ld e, a + ret +; 91b73 + +FlyMapScroll: ; 91b73 + ld a, [StartFlypoint] + ld e, a + ld a, [EndFlypoint] + ld d, a + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .ScrollNext + ld a, [hl] + and D_DOWN + jr nz, .ScrollPrev + ret + +.ScrollNext + ld hl, wd002 + ld a, [hl] + cp d + jr nz, .NotAtEndYet + ld a, e + dec a + ld [hl], a + +.NotAtEndYet + inc [hl] + call CheckIfVisitedFlypoint + jr z, .ScrollNext + jr .Finally + +.ScrollPrev + ld hl, wd002 + ld a, [hl] + cp e + jr nz, .NotAtStartYet + ld a, d + inc a + ld [hl], a + +.NotAtStartYet + dec [hl] + call CheckIfVisitedFlypoint + jr z, .ScrollPrev + +.Finally + call TownMapBubble + call WaitBGMap + xor a + ld [hBGMapMode], a + ret +; 91bb5 + +TownMapBubble: ; 91bb5 +; Draw the bubble containing the location text in the town map HUD + +; Top-left corner + hlcoord 1, 0 + ld a, $30 + ld [hli], a + +; Top row + ld bc, 16 + ld a, " " + call ByteFill + +; Top-right corner + ld a, $31 + ld [hl], a + hlcoord 1, 1 + + +; Middle row + ld bc, 18 + ld a, " " + call ByteFill + + +; Bottom-left corner + hlcoord 1, 2 + ld a, $32 + ld [hli], a + +; Bottom row + ld bc, 16 + ld a, " " + call ByteFill + +; Bottom-right corner + ld a, $33 + ld [hl], a + + +; Print "Where?" + hlcoord 2, 0 + ld de, .Where + call PlaceString + +; Print the name of the default flypoint + call .Name + +; Up/down arrows + hlcoord 18, 1 + ld [hl], $34 + ret + +.Where + db "Where?@" + +.Name +; We need the map location of the default flypoint + ld a, [wd002] + ld l, a + ld h, 0 + add hl, hl ; two bytes per flypoint + ld de, Flypoints + add hl, de + ld e, [hl] + + callba GetLandmarkName + + hlcoord 2, 1 + ld de, StringBuffer1 + call PlaceString + ret +; 91c17 + +GetMapCursorCoordinates: ; 91c17 + ld a, [wd002] + ld l, a + ld h, $0 + add hl, hl + ld de, Flypoints + add hl, de + ld e, [hl] + callba GetLandmarkCoords + ld a, [wd003] + ld c, a + ld a, [wd004] + ld b, a + ld hl, $4 + add hl, bc + ld [hl], e + ld hl, $5 + add hl, bc + ld [hl], d + ret +; 91c3c + +CheckIfVisitedFlypoint: ; 91c3c +; Check if the flypoint loaded in [hl] has been visited yet. + push bc + push de + push hl + ld l, [hl] + ld h, 0 + add hl, hl + ld de, Flypoints + 1 + add hl, de + ld c, [hl] + call HasVisitedSpawn + pop hl + pop de + pop bc + and a + ret +; 91c50 + +HasVisitedSpawn: ; 91c50 +; Check if spawn point c has been visited. + ld hl, VisitedSpawns + ld b, CHECK_FLAG + ld d, 0 + predef FlagPredef + ld a, c + ret +; 91c5e + +Flypoints: ; 91c5e +; landmark, spawn point + + const_def + +flypoint: MACRO +; \1\@FLY EQUS "FLY_\1" +; \1\@SPAWN EQUS "SPAWN_\1" + ; const \1\@FLY + ; db \2, \1\@SPAWN + const FLY_\1 + db \2, SPAWN_\1 +ENDM + +; Johto + flypoint NEW_BARK, NEW_BARK_TOWN + flypoint CHERRYGROVE, CHERRYGROVE_CITY + flypoint VIOLET, VIOLET_CITY + flypoint AZALEA, AZALEA_TOWN + flypoint GOLDENROD, GOLDENROD_CITY + flypoint ECRUTEAK, ECRUTEAK_CITY + flypoint OLIVINE, OLIVINE_CITY + flypoint CIANWOOD, CIANWOOD_CITY + flypoint MAHOGANY, MAHOGANY_TOWN + flypoint LAKE, LAKE_OF_RAGE + flypoint BLACKTHORN, BLACKTHORN_CITY + flypoint MT_SILVER, SILVER_CAVE + +; Kanto +KANTO_FLYPOINT EQU const_value + + flypoint PALLET, PALLET_TOWN + flypoint VIRIDIAN, VIRIDIAN_CITY + flypoint PEWTER, PEWTER_CITY + flypoint CERULEAN, CERULEAN_CITY + flypoint VERMILION, VERMILION_CITY + flypoint ROCK_TUNNEL, ROCK_TUNNEL + flypoint LAVENDER, LAVENDER_TOWN + flypoint CELADON, CELADON_CITY + flypoint SAFFRON, SAFFRON_CITY + flypoint FUCHSIA, FUCHSIA_CITY + flypoint CINNABAR, CINNABAR_ISLAND + flypoint INDIGO, INDIGO_PLATEAU + + db -1 +; 91c8f + +Function91c8f: ; 91c8f + ret +; 91c90 + +FlyMap: ; 91c90 + + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + +; If we're not in a valid location, i.e. Pokecenter floor 2F, +; the backup map information is used + + cp SPECIAL_MAP + jr nz, .CheckRegion + + ld a, [BackupMapGroup] + ld b, a + ld a, [BackupMapNumber] + ld c, a + call GetWorldMapLocation + +.CheckRegion +; The first 46 locations are part of Johto. The rest are in Kanto + cp KANTO_LANDMARK + jr nc, .KantoFlyMap + +.JohtoFlyMap +; Note that .NoKanto should be modified in tandem with this branch + + push af + +; Start from New Bark Town + ld a, FLY_NEW_BARK + ld [wd002], a + +; Flypoints begin at New Bark Town... + ld [StartFlypoint], a +; ..and end at Silver Cave + ld a, FLY_MT_SILVER + ld [EndFlypoint], a + +; Fill out the map + call FillJohtoMap + call .MapHud + pop af + call TownMapPlayerIcon + ret + +.KantoFlyMap + +; The event that there are no flypoints enabled in a map is not +; accounted for. As a result, if you attempt to select a flypoint +; when there are none enabled, the game will crash. Additionally, +; the flypoint selection has a default starting point that +; can be flown to even if none are enabled + +; To prevent both of these things from happening when the player +; enters Kanto, fly access is restricted until Indigo Plateau is +; visited and its flypoint enabled + + push af + ld c, SPAWN_INDIGO + call HasVisitedSpawn + and a + jr z, .NoKanto + +; Kanto's map is only loaded if we've visited Indigo Plateau + +; Flypoints begin at Pallet Town... + ld a, FLY_PALLET + ld [StartFlypoint], a +; ...and end at Indigo Plateau + ld a, FLY_INDIGO + ld [EndFlypoint], a + +; Because Indigo Plateau is the first flypoint the player +; visits, it's made the default flypoint + ld [wd002], a + +; Fill out the map + call FillKantoMap + call .MapHud + pop af + call TownMapPlayerIcon + ret + +.NoKanto +; If Indigo Plateau hasn't been visited, we use Johto's map instead + +; Start from New Bark Town + ld a, FLY_NEW_BARK + ld [wd002], a + +; Flypoints begin at New Bark Town... + ld [StartFlypoint], a +; ..and end at Silver Cave + ld a, FLY_MT_SILVER + ld [EndFlypoint], a + + call FillJohtoMap + + pop af + +.MapHud + call TownMapBubble + call TownMapPals + + ld hl, VBGMap0 ; BG Map 0 + call TownMapBGUpdate + + call TownMapMon + ld a, c + ld [wd003], a + ld a, b + ld [wd004], a + ret +; 91d11 + +Function91d11: ; 91d11 + ld a, [wd002] + push af + ld a, [wd003] + push af + ld a, e + ld [wd002], a + call ClearSprites + xor a + ld [hBGMapMode], a + ld a, $1 + ld [hInMenu], a + ld de, GFX_922d1 + ld hl, VTiles0 tile $7f + lb bc, BANK(GFX_922d1), 1 + call Request2bpp ; actually 1bpp + call Function91ed0 + ld hl, VTiles0 tile $78 + ld c, $4 + call Request2bpp + call Function91ff2 + call FillKantoMap + call Function91de9 + call TownMapPals + ld hl, VBGMap1 + call TownMapBGUpdate + call FillJohtoMap + call Function91de9 + call TownMapPals + ld hl, VBGMap0 + call TownMapBGUpdate + ld b, $2 + call GetSGBLayout + call SetPalettes + xor a + ld [hBGMapMode], a + xor a + call Function91e1e +.asm_91d6e + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and A_BUTTON | B_BUTTON + jr nz, .asm_91d8f + ld a, [hJoypadDown] + and SELECT + jr nz, .asm_91d87 + call Function91d9b + call Function91dcd + jr .asm_91d8a + +.asm_91d87 + call Function91e5a + +.asm_91d8a + call DelayFrame + jr .asm_91d6e + +.asm_91d8f + call ClearSprites + pop af + ld [wd003], a + pop af + ld [wd002], a + ret +; 91d9b + +Function91d9b: ; 91d9b + ld a, [hl] + and $20 + jr nz, .asm_91da6 + ld a, [hl] + and $10 + jr nz, .asm_91db7 + ret + +.asm_91da6 + ld a, [hWY] + cp $90 + ret z + call ClearSprites + ld a, $90 + ld [hWY], a + xor a + call Function91e1e + ret + +.asm_91db7 + ld a, [StatusFlags] + bit 6, a + ret z + ld a, [hWY] + and a + ret z + call ClearSprites + xor a + ld [hWY], a + ld a, $1 + call Function91e1e + ret +; 91dcd + +Function91dcd: ; 91dcd + ld a, [hVBlankCounter] + ld e, a + and $f + ret nz + ld a, e + and $10 + jr nz, .asm_91ddc + call ClearSprites + ret + +.asm_91ddc + hlcoord 0, 0 + ld de, Sprites + ld bc, $a0 + call CopyBytes + ret +; 91de9 + +Function91de9: ; 91de9 + hlcoord 0, 0 + ld bc, SCREEN_WIDTH + ld a, $7f + call ByteFill + hlcoord 0, 1 + ld a, $6 + ld [hli], a + ld bc, SCREEN_HEIGHT + ld a, $7 + call ByteFill + ld [hl], $17 + call GetPokemonName + hlcoord 2, 0 + call PlaceString + ld h, b + ld l, c + ld de, String_91e16 + call PlaceString + ret +; 91e16 + +String_91e16: + db "'S NEST@" +; 91e1e + +Function91e1e: ; 91e1e + ld [wd003], a + ld e, a + callba Function2a01f + decoord 0, 0 + ld hl, Sprites +.asm_91e2e + ld a, [de] + and a + jr z, .asm_91e4d + push de + ld e, a + push hl + callba GetLandmarkCoords + pop hl + ld a, d + sub $4 + ld [hli], a + ld a, e + sub $4 + ld [hli], a + ld a, $7f + ld [hli], a + xor a + ld [hli], a + pop de + inc de + jr .asm_91e2e + +.asm_91e4d + ld hl, Sprites + decoord 0, 0 + ld bc, $a0 + call CopyBytes + ret +; 91e5a + +Function91e5a: ; 91e5a + call Function91ea9 + ret c + + ld a, [wd002] + ld e, a + callba GetLandmarkCoords + ld c, e + ld b, d + ld de, Unknown_91e9c + ld hl, Sprites +.asm_91e70 + ld a, [de] + cp $80 + jr z, .asm_91e91 + + add b + ld [hli], a + inc de + + ld a, [de] + add c + ld [hli], a + inc de + + ld a, [de] + add $78 + ld [hli], a + inc de + + push bc + ld c, 0 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_91e8c + inc c +.asm_91e8c + ld a, c + ld [hli], a + pop bc + + jr .asm_91e70 + +.asm_91e91 + ld hl, Sprites + $10 + ld bc, SpritesEnd - (Sprites + $10) + xor a + call ByteFill + ret +; 91e9c + +Unknown_91e9c: ; 91e9c + db -8, -8, 0 + db -8, 0, 1 + db 0, -8, 2 + db 0, 0, 3 + db $80 ; terminator +; 91ea9 + +Function91ea9: ; 91ea9 + ld a, [wd002] + cp FAST_SHIP + jr z, .johto + cp KANTO_LANDMARK + jr c, .johto + +.kanto + ld a, [wd003] + and a + jr z, .clear + jr .ok + +.johto + ld a, [wd003] + and a + jr nz, .clear + +.ok + and a + ret + +.clear + ld hl, Sprites + ld bc, SpritesEnd - Sprites + xor a + call ByteFill + scf + ret +; 91ed0 + +Function91ed0: ; 91ed0 + ld a, [wd002] + cp FAST_SHIP + jr z, .asm_91ede + callba GetPlayerIcon + ret + +.asm_91ede + ld de, FastShipGFX + ld b, BANK(FastShipGFX) + ret +; 91ee4 + +TownMapBGUpdate: ; 91ee4 +; Update BG Map tiles and attributes + +; BG Map address + ld a, l + ld [hBGMapAddress], a + ld a, h + ld [hBGMapAddress + 1], a + +; Only update palettes on CGB + ld a, [hCGB] + and a + jr z, .tiles + +; BG Map mode 2 (palettes) + ld a, 2 + ld [hBGMapMode], a + +; The BG Map is updated in thirds, so we wait +; 3 frames to update the whole screen's palettes. + ld c, 3 + call DelayFrames + +.tiles +; Update BG Map tiles + call WaitBGMap + +; Turn off BG Map update + xor a + ld [hBGMapMode], a + ret +; 91eff + +FillJohtoMap: ; 91eff + ld de, JohtoMap + jr FillTownMap + +FillKantoMap: ; 91f04 + ld de, KantoMap + +FillTownMap: ; 91f07 + hlcoord 0, 0 +.loop + ld a, [de] + cp $ff + ret z + ld a, [de] + ld [hli], a + inc de + jr .loop +; 91f13 + +TownMapPals: ; 91f13 +; Assign palettes based on tile ids + + hlcoord 0, 0 + decoord 0, 0, AttrMap + ld bc, 360 +.loop +; Current tile + ld a, [hli] + push hl + +; HP/borders use palette 0 + cp $60 + jr nc, .pal0 + +; The palette data is condensed to nybbles, +; least-significant first. + ld hl, TownMapPalMap + srl a + jr c, .odd + +; Even-numbered tile ids take the bottom nybble... + add l + ld l, a + ld a, h + adc 0 + ld h, a + ld a, [hl] + and %111 + jr .update + +.odd +; ...and odd ids take the top. + add l + ld l, a + ld a, h + adc 0 + ld h, a + ld a, [hl] + swap a + and %111 + jr .update + +.pal0 + xor a + +.update + pop hl + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .loop + ret + +TownMapPalMap: + db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00 + db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00 + db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33 + db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00 +; 91f7b + +TownMapMon: ; 91f7b +; Draw the FlyMon icon at town map location in + +; Get FlyMon species + ld a, [CurPartyMon] + ld hl, PartySpecies + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + ld [wd265], a + +; Get FlyMon icon + ld e, 8 ; starting tile in VRAM + callba GetSpeciesIcon + +; Animation/palette + ld de, 0 + ld a, $0 + call Function3b2a + + ld hl, 3 + add hl, bc + ld [hl], 8 + ld hl, 2 + add hl, bc + ld [hl], 0 + ret +; 91fa6 + +TownMapPlayerIcon: ; 91fa6 +; Draw the player icon at town map location in a + push af + + callba GetPlayerIcon + +; Standing icon + ld hl, VTiles0 tile $10 + ld c, 4 ; # tiles + call Request2bpp + +; Walking icon + ld hl, $c0 + add hl, de + ld d, h + ld e, l + ld hl, VTiles0 tile $14 + ld c, 4 ; # tiles + ld a, BANK(ChrisSpriteGFX) ; does nothing + call Request2bpp + +; Animation/palette + ld de, 0 + ld b, $0a ; Male + ld a, [PlayerGender] + bit 0, a + jr z, .asm_91fd3 + ld b, $1e ; Female +.asm_91fd3 + ld a, b + call Function3b2a + + ld hl, $3 + add hl, bc + ld [hl], $10 + + pop af + ld e, a + push bc + callba GetLandmarkCoords + pop bc + + ld hl, 4 + add hl, bc + ld [hl], e + ld hl, 5 + add hl, bc + ld [hl], d + ret +; 0x91ff2 + +Function91ff2: ; 91ff2 + ld hl, TownMapGFX + ld de, VTiles2 + lb bc, BANK(TownMapGFX), $30 + call DecompressRequest2bpp + ret +; 91fff + + +JohtoMap: ; 91fff +INCBIN "gfx/misc/johto.bin" +; 92168 + +KantoMap: ; 92168 +INCBIN "gfx/misc/kanto.bin" +; 922d1 + + +GFX_922d1: ; 922d1 +INCBIN "gfx/unknown/0922d1.2bpp" +GFX_922e1: ; 922e1 +INCBIN "gfx/unknown/0922e1.2bpp" +GFX_92301: ; 92301 +INCBIN "gfx/unknown/092301.2bpp" diff --git a/engine/link.asm b/engine/link.asm index 38ac235fb..a1fa0661b 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1,6 +1,6 @@ LinkCommunications: ; 28000 - call WhiteBGMap - ld c, $50 + call ClearBGPalettes + ld c, 80 call DelayFrames call ClearScreen call ClearSprites @@ -8,7 +8,7 @@ LinkCommunications: ; 28000 xor a ld [hSCX], a ld [hSCY], a - ld c, $50 + ld c, 80 call DelayFrames call ClearScreen call UpdateSprites @@ -431,7 +431,7 @@ Function28177: ; 28177 ld de, OTName ld bc, NAME_LENGTH call CopyBytes - call Function222a + call ReturnToMapFromSubmenu ld a, [wc2d7] push af ld a, $1 @@ -509,7 +509,7 @@ UnknownText_0x283ed: ; 0x283ed Function283f2: ; 283f2 ld a, $1 - ld [$ffcc], a + ld [hFFCC], a .asm_283f6 ld a, [hl] ld [hSerialSend], a @@ -521,14 +521,14 @@ Function283f2: ; 283f2 .asm_28401 dec a jr nz, .asm_28401 - ld a, [$ffcc] + ld a, [hFFCC] and a ld a, b pop bc jr z, .asm_28411 dec hl xor a - ld [$ffcc], a + ld [hFFCC], a jr .asm_283f6 .asm_28411 @@ -2172,7 +2172,7 @@ Function28fa1: ; 28fa1 Function28fdb: ; 28fdb xor a ld [wJumptableIndex], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -2495,7 +2495,7 @@ Function29220: ; 29220 ; 29229 Function29229: ; 29229 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -2623,7 +2623,7 @@ Function292ec: ; 292ec Function292f6: ; 292f6 push af - call WhiteBGMap + call ClearBGPalettes call WaitTop ld a, VBGMap1 / $100 ld [hBGMapAddress + 1], a @@ -3902,7 +3902,7 @@ Function29dba: ; 29dba Function29e0c: ; 29e0c xor a - ld [$ffca], a + ld [hFFCA], a ld a, [wcf5b] ld h, a ld a, [wcf5c] diff --git a/engine/map_objects.asm b/engine/map_objects.asm index bc1ce4a67..4c2adc9aa 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -655,7 +655,7 @@ Function467b: ; 467b ld hl, OBJECT_12 add hl, bc ld [hl], a - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc rept 3 ld [hli], a @@ -848,28 +848,28 @@ RestoreDefaultMovement: ; 4769 ; 4780 ClearObjectStructField27: ; 4780 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hl], 0 ret ; 4787 IncrementObjectStructField27: ; 4787 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc inc [hl] ret ; 478d DecrementObjectStructField27: ; 478d - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc dec [hl] ret ; 4793 JumptoObjectStructField27: ; 4793 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld a, [hl] pop hl @@ -1043,17 +1043,17 @@ Function47dd: ; 47dd .ObeyDPad: ; 487c ld hl, Function5000 - jp Function5041 + jp HandleMovementData ; 4882 .Movement08: ; 4882 ld hl, Function5015 - jp Function5041 + jp HandleMovementData ; 4888 .Movement09: ; 4888 ld hl, Function5026 - jp Function5041 + jp HandleMovementData ; 488e .Movement0a: ; 488e @@ -1070,7 +1070,7 @@ Function47dd: ; 47dd .Movement0d: ; 4897 ld hl, Function5000 - jp Function5041 + jp HandleMovementData ; 489d .Movement0e: ; 489d @@ -1079,12 +1079,12 @@ Function47dd: ; 47dd .Follow: ; 48a0 ld hl, Function54e6 - jp Function5041 + jp HandleMovementData ; 48a6 .Script: ; 48a6 ld hl, Function500e - jp Function5041 + jp HandleMovementData ; 48ac .Strength: ; 48ac @@ -1149,12 +1149,15 @@ Function47dd: ; 47dd ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] + ld hl, OBJECT_MAP_Y add hl, bc ld e, [hl] + ld hl, OBJECT_32 add hl, bc ld a, [hl] + push bc call GetObjectStruct ld hl, OBJECT_DIRECTION_WALKING @@ -1162,6 +1165,7 @@ Function47dd: ; 47dd ld a, [hl] cp STANDING jr z, .standing + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] @@ -2400,11 +2404,14 @@ UpdateJumpPosition: ; 4fd5 ; 5000 Function5000: ; unscripted? +; copy [wc3de] to [wc2df] ld a, [wc2de] ld hl, wc2df ld [hl], a - ld a, $3e +; load [wc2de] with movement_step_sleep_1 + ld a, movement_step_sleep_1 ld [wc2de], a +; recover the previous value of [wc2de] ld a, [hl] ret ; 500e @@ -2416,7 +2423,7 @@ Function500e: ; scripted ; 5015 Function5015: ; 5015 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld e, [hl] inc [hl] @@ -2431,7 +2438,7 @@ Function5015: ; 5015 ; 5026 Function5026: ; 5026 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld e, [hl] inc [hl] @@ -2446,16 +2453,16 @@ Function5026: ; 5026 ; 5037 Function5037: ; 5037 - ld hl, Function503d - jp Function5041 + ld hl, GetMovementPerson + jp HandleMovementData ; 503d -Function503d: ; 503d +GetMovementPerson: ; 503d ld a, [wMovementPerson] ret ; 5041 -Function5041: ; 5041 +HandleMovementData: ; 5041 call CopyMovementPointer .loop xor a @@ -2484,7 +2491,7 @@ GetMovementByte: ; 505e jp [hl] ; 5065 -Function5065: ; 5065 +ContinueReadingMovement: ; 5065 ld a, 1 ld [wc2ea], a ret @@ -2563,7 +2570,8 @@ Function54e6: ; 54e6 .done call Function550a ret c - ld a, $3e + + ld a, movement_step_sleep_1 ret ; 550a @@ -2585,7 +2593,7 @@ Function550a: ; 550a .nope ld a, $ff ld [wObjectFollow_Follower], a - ld a, $47 + ld a, movement_step_end scf ret ; 5529 @@ -2696,6 +2704,7 @@ Function5582: ; 5582 Function55ac: ; 55ac call FindFirstEmptyObjectStruct ret nc + ld d, h ld e, l callba Function8286 @@ -2703,11 +2712,14 @@ Function55ac: ; 55ac ; 55b9 Function55b9: ; 55b9 +; load into wc2f0: +; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [MapX], [MapY], -1 ld hl, wc2f0 ld [hl], -1 inc hl ld [hl], -1 inc hl + ld a, [de] inc de ld [hli], a @@ -2716,8 +2728,10 @@ Function55b9: ; 55b9 ld [hli], a ld a, [de] ld [hli], a + ld a, [hMapObjectIndexBuffer] ld [hli], a + push hl ld hl, OBJECT_MAP_X add hl, bc @@ -2726,6 +2740,7 @@ Function55b9: ; 55b9 add hl, bc ld e, [hl] pop hl + ld [hl], d inc hl ld [hl], e @@ -2786,17 +2801,21 @@ Function561d: ; 561d Function5629: ; 5629 cp NUM_OBJECTS ret nc + call GetMapObject ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp -1 ret z + cp NUM_OBJECT_STRUCTS ret nc + call GetObjectStruct call GetObjectSprite ret z + call Function5673 ret ; 5645 @@ -2977,9 +2996,9 @@ Function56cd: ; 56cd .ok7 ld a, d - ld [$ffbf], a + ld [hFFBF], a .loop - ld a, [$ffbf] + ld a, [hFFBF] ld d, a ld a, [hUsedSpriteTile] add e @@ -3180,7 +3199,7 @@ ResetFollower: ; 5847 cp -1 ret z call GetObjectStruct - callba Function58e3 + callba Function58e3 ; no need to bankswitch ld a, -1 ld [wObjectFollow_Follower], a ret @@ -3294,16 +3313,19 @@ Function58e3: ; 58e3 add hl, bc ld a, [hl] cp -1 - jp z, Function5903 + jp z, Function5903 ; a jr would have been appropriate here + push bc call GetMapObject ld hl, MAPOBJECT_MOVEMENT add hl, bc ld a, [hl] pop bc + ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], a + ld hl, OBJECT_09 add hl, bc ld [hl], 0 @@ -3322,6 +3344,7 @@ Function5903: ; 5903 ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], a + ld hl, OBJECT_09 add hl, bc ld [hl], 0 @@ -3495,7 +3518,7 @@ Function59f3: ; 59f3 .next ld a, [hli] ld d, a - and %11110000 + and $f0 ret z cp c jr nz, .next @@ -3503,20 +3526,20 @@ Function59f3: ; 59f3 push bc push hl ld a, d - and %00001111 - call Function5ac2 - call Function5a0d + and $f + call .GetObjectStructPointer + call .asm_5a0d pop hl pop bc jr .next ; 5a0d -Function5a0d: ; 5a0d +.asm_5a0d: ; 5a0d ld hl, OBJECT_SPRITE_TILE add hl, bc ld a, [hl] and %01111111 - ld [$ffc1], a + ld [hFFC1], a xor a bit 7, [hl] @@ -3550,7 +3573,7 @@ Function5a0d: ; 5a0d jr z, .skip4 or %10000000 .skip4 - ld [$ffc2], a + ld [hFFC2], a ld hl, OBJECT_SPRITE_X add hl, bc @@ -3565,7 +3588,7 @@ Function5a0d: ; 5a0d ld e, a ld a, [wd14c] add e - ld [$ffbf], a + ld [hFFBF], a ld hl, OBJECT_SPRITE_Y add hl, bc @@ -3580,7 +3603,7 @@ Function5a0d: ; 5a0d ld e, a ld a, [wd14d] add e - ld [$ffc0], a + ld [hFFC0], a ld hl, OBJECT_FACING_STEP add hl, bc @@ -3609,14 +3632,14 @@ Function5a0d: ; 5a0d jr nc, .full .addsprite - ld a, [$ffc0] + ld a, [hFFC0] add [hl] inc hl ld [bc], a inc c - ld a, [$ffbf] + ld a, [hFFBF] add [hl] inc hl @@ -3626,7 +3649,7 @@ Function5a0d: ; 5a0d ld e, [hl] inc hl - ld a, [$ffc1] + ld a, [hFFC1] bit 2, e jr z, .nope1 xor a @@ -3640,7 +3663,7 @@ Function5a0d: ; 5a0d ld a, e bit 1, a jr z, .nope2 - ld a, [$ffc2] + ld a, [hFFC2] or e .nope2 and %11110000 @@ -3665,7 +3688,7 @@ Function5a0d: ; 5a0d ret ; 5ac2 -Function5ac2: ; 5ac2 +.GetObjectStructPointer: ; 5ac2 ld c, a ld b, 0 ld hl, .Addresses diff --git a/engine/map_setup.asm b/engine/map_setup.asm index 8ae9838f0..09fc4d155 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -17,28 +17,28 @@ endr ; 15377 MapSetupScripts: ; 15377 - dw MapSetupScript1 - dw MapSetupScript2 - dw MapSetupScript3 - dw MapSetupScript4 - dw MapSetupScript5 - dw MapSetupScript6 - dw MapSetupScript7 - dw MapSetupScript8 - dw MapSetupScript9 - dw MapSetupScript10 - dw MapSetupScript11 - dw MapSetupScript12 + dw MapSetupScript_Warp + dw MapSetupScript_Continue + dw MapSetupScript_ReloadMap + dw MapSetupScript_Teleport + dw MapSetupScript_Door + dw MapSetupScript_Fall + dw MapSetupScript_Connection + dw MapSetupScript_LinkReturn + dw MapSetupScript_Train + dw MapSetupScript_Submenu + dw MapSetupScript_BadWarp + dw MapSetupScript_Fly ; 1538f -MapSetupScript4: ; 1538f +MapSetupScript_Teleport: ; 1538f db map_prolong_sprites -MapSetupScript12: ; 15390 +MapSetupScript_Fly: ; 15390 db map_fade_out_palettes db map_keep_roam -MapSetupScript1: ; 15392 +MapSetupScript_Warp: ; 15392 db map_lcd_off db map_sound_off db map_load_spawn @@ -63,7 +63,7 @@ MapSetupScript1: ; 15392 db map_wildmons db map_end_setup_script -MapSetupScript11: ; 153a9 +MapSetupScript_BadWarp: ; 153a9 db map_load_spawn db map_attributes db map_change_callback @@ -87,7 +87,7 @@ MapSetupScript11: ; 153a9 db map_wildmons db map_end_setup_script -MapSetupScript7: ; 153bf +MapSetupScript_Connection: ; 153bf db map_animations_off db map_load_connection db map_attributes @@ -106,13 +106,13 @@ MapSetupScript7: ; 153bf db map_animations_on db map_end_setup_script -MapSetupScript6: ; 153d0 +MapSetupScript_Fall: ; 153d0 db map_prolong_sprites -MapSetupScript5: ; 153d1 +MapSetupScript_Door: ; 153d1 db map_fade_out_palettes -MapSetupScript9: ; 153d2 +MapSetupScript_Train: ; 153d2 db map_load_warp db map_attributes db map_warp_face @@ -135,7 +135,7 @@ MapSetupScript9: ; 153d2 db map_update_roam db map_end_setup_script -MapSetupScript3: ; 153e7 +MapSetupScript_ReloadMap: ; 153e7 db map_fade db map_clear_bg_palettes db map_lcd_off @@ -153,7 +153,7 @@ MapSetupScript3: ; 153e7 db map_wildmons db map_end_setup_script -MapSetupScript8: ; 153f7 +MapSetupScript_LinkReturn: ; 153f7 db map_fade db map_lcd_off db map_sound_off @@ -172,7 +172,7 @@ MapSetupScript8: ; 153f7 db map_text_scroll_off db map_end_setup_script -MapSetupScript2: ; 15408 +MapSetupScript_Continue: ; 15408 db map_lcd_off db map_sound_off db map_attributes_2 @@ -192,7 +192,7 @@ MapSetupScript2: ; 15408 db map_wildmons db map_end_setup_script -MapSetupScript10: ; 1541a +MapSetupScript_Submenu: ; 1541a db map_load_blocks db map_connection_blocks db map_end_setup_script @@ -245,7 +245,7 @@ endr MapSetupCommands: ; 15440 dba EnableLCD ; 00 dba DisableLCD ; 01 - dba SoundRestart ; 02 + dba MapSetup_Sound_Off ; 02 dba PlayMapMusic ; 03 dba RestartMapMusic ; 04 dba FadeToMapMusic ; 05 @@ -271,9 +271,9 @@ MapSetupCommands: ; 15440 dba LoadWarpData ; 19 dba LoadMapAttributes ; 1a dba LoadMapAttributes_IgnoreHidden ; 1b - dba WhiteBGMap ; 1c - dba FadeBlackBGMap ; 1d - dba FadeInBGMap ; 1e + dba ClearBGPalettes ; 1c + dba FadeOutPalettes ; 1d + dba FadeInPalettes ; 1e dba GetCoordOfUpperLeftCorner ; 1f dba RestoreFacingAfterWarp ; 20 dba SpawnInFacingDown ; 21 diff --git a/engine/movement.asm b/engine/movement.asm index 0a6851ed4..21dd89e9f 100644 --- a/engine/movement.asm +++ b/engine/movement.asm @@ -61,32 +61,32 @@ MovementPointers: ; 5075 dw Movement_fix_facing ; 3b dw Movement_3c ; 3c dw Movement_hide_person ; 3d - dw Movement_show_person ; 3e - dw Movement_3f ; 3f - dw Movement_40 ; 40 - dw Movement_41 ; 41 - dw Movement_42 ; 42 - dw Movement_43 ; 43 - dw Movement_44 ; 44 - dw Movement_accelerate_last ; 45 + dw Movement_step_sleep_1 ; 3e + dw Movement_step_sleep_2 ; 3f + dw Movement_step_sleep_3 ; 40 + dw Movement_step_sleep_4 ; 41 + dw Movement_step_sleep_5 ; 42 + dw Movement_step_sleep_6 ; 43 + dw Movement_step_sleep_7 ; 44 + dw Movement_step_sleep_8 ; 45 dw Movement_step_sleep ; 46 dw Movement_step_end ; 47 dw Movement_48 ; 48 dw Movement_remove_person ; 49 - dw Movement_4a ; 4a + dw Movement_step_loop ; 4a dw Movement_4b ; 4b dw Movement_teleport_from ; 4c dw Movement_teleport_to ; 4d dw Movement_skyfall ; 4e dw Movement_step_wait5 ; 4f dw Movement_50 ; 50 - dw Movement_51 ; 51 - dw Movement_52 ; 52 + dw Movement_fish_got_bite ; 51 + dw Movement_fish_cast_rod ; 52 dw Movement_hide_emote ; 53 dw Movement_show_emote ; 54 dw Movement_step_shake ; 55 dw Movement_56 ; 56 - dw Movement_57 ; 57 + dw Movement_rock_smash ; 57 dw Movement_58 ; 58 dw Movement_59 ; 59 ; 5129 @@ -139,7 +139,7 @@ Movement_step_wait5: ; 5145 ld [hl], $3 ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 516a @@ -156,14 +156,14 @@ Movement_58: ; 516a ld [hl], a ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ld hl, OBJECT_09 add hl, bc ld [hl], $12 ret ; 5189 -Movement_51: ; 5189 +Movement_fish_got_bite: ; 5189 ld hl, OBJECT_11 add hl, bc ld [hl], $6 @@ -173,7 +173,7 @@ Movement_51: ; 5189 ret ; 5196 -Movement_57: ; 5196 +Movement_rock_smash: ; 5196 call GetMovementByte ld hl, OBJECT_STEP_DURATION add hl, bc @@ -187,7 +187,7 @@ Movement_57: ; 5196 ret ; 51ab -Movement_52: ; 51ab +Movement_fish_cast_rod: ; 51ab ld hl, OBJECT_11 add hl, bc ld [hl], $6 @@ -197,11 +197,11 @@ Movement_52: ; 51ab ret ; 51b8 -Movement_4a: ; 51b8 - ld hl, OBJECT_27 +Movement_step_loop: ; 51b8 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hl], $0 - jp Function5065 + jp ContinueReadingMovement ; 51c1 Movement_step_end: ; 51c1 @@ -209,11 +209,14 @@ Movement_step_end: ; 51c1 ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], a - ld hl, OBJECT_27 + + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hl], $0 + ld hl, VramState res 7, [hl] + ld hl, OBJECT_09 add hl, bc ld [hl], $1 @@ -225,16 +228,20 @@ Movement_48: ; 51db ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], a - ld hl, OBJECT_27 + + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hl], $0 + call GetMovementByte ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a + ld hl, OBJECT_09 add hl, bc ld [hl], $3 + ld hl, VramState res 7, [hl] ret @@ -245,10 +252,10 @@ Movement_remove_person: ; 51fd ld hl, wObjectFollow_Leader ld a, [hMapObjectIndexBuffer] cp [hl] - jr nz, .asm_520a - ld [hl], $ff + jr nz, .not_leading + ld [hl], -1 -.asm_520a +.not_leading ld hl, VramState res 7, [hl] ret @@ -258,43 +265,45 @@ Movement_4b: ; 5210 ld hl, OBJECT_11 add hl, bc ld [hl], $1 + ld hl, OBJECT_09 add hl, bc ld [hl], $4 + ld hl, VramState res 7, [hl] ret ; 5222 -Movement_show_person: ; 5222 +Movement_step_sleep_1: ; 5222 ld a, $1 jr Function5247 -Movement_3f: ; 5226 +Movement_step_sleep_2: ; 5226 ld a, $2 jr Function5247 -Movement_40: ; 522a +Movement_step_sleep_3: ; 522a ld a, $3 jr Function5247 -Movement_41: ; 522e +Movement_step_sleep_4: ; 522e ld a, $4 jr Function5247 -Movement_42: ; 5232 +Movement_step_sleep_5: ; 5232 ld a, $5 jr Function5247 -Movement_43: ; 5236 +Movement_step_sleep_6: ; 5236 ld a, $6 jr Function5247 -Movement_44: ; 523a +Movement_step_sleep_7: ; 523a ld a, $7 jr Function5247 -Movement_accelerate_last: ; 523e +Movement_step_sleep_8: ; 523e ld a, $8 jr Function5247 @@ -309,15 +318,18 @@ Function5247: ; 5247 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a + ld hl, OBJECT_09 add hl, bc ld [hl], $3 + ld hl, OBJECT_11 add hl, bc ld [hl], $1 + ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 525f @@ -334,7 +346,7 @@ Movement_50: ; 525f ld [hl], $3 ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 5279 @@ -351,7 +363,7 @@ Movement_56: ; 5279 ld [hl], $b ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 5293 @@ -359,52 +371,52 @@ Movement_38: ; 5293 ld hl, OBJECT_FLAGS1 add hl, bc res 3, [hl] - jp Function5065 + jp ContinueReadingMovement ; 529c Movement_39: ; 529c ld hl, OBJECT_FLAGS1 add hl, bc set 3, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52a5 Movement_remove_fixed_facing: ; 52a5 ld hl, OBJECT_FLAGS1 add hl, bc res 2, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52ae Movement_fix_facing: ; 52ae ld hl, OBJECT_FLAGS1 add hl, bc set 2, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52b7 Movement_3c: ; 52b7 ld hl, OBJECT_FLAGS1 add hl, bc res 0, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52c0 Movement_hide_person: ; 52c0 ld hl, OBJECT_FLAGS1 add hl, bc set 0, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52c9 Movement_hide_emote: ; 52c9 call Function5579 - jp Function5065 + jp ContinueReadingMovement ; 52cf Movement_show_emote: ; 52cf call Function5547 - jp Function5065 + jp ContinueReadingMovement ; 52d5 Movement_step_shake: ; 52d5 @@ -413,7 +425,7 @@ Movement_step_shake: ; 52d5 call GetMovementByte call Function5565 - jp Function5065 + jp ContinueReadingMovement ; 52de Movement_turn_head_down: ; 52de @@ -441,7 +453,7 @@ TurnHead: ; 52ee ld [hl], $1 ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 5300 diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm index 4618f4e20..21ec969b4 100755 --- a/engine/namingscreen.asm +++ b/engine/namingscreen.asm @@ -40,7 +40,7 @@ NamingScreen: ; 116c1 ; 116f8 Function116f8: ; 116f8 - call WhiteBGMap + call ClearBGPalettes ld b, $8 call GetSGBLayout call DisableLCD diff --git a/engine/pack.asm b/engine/pack.asm index aa20184b9..2ba9c9d3a 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -594,7 +594,7 @@ Function103fd: ; 103fd ld [Options], a ld a, $8 ld [PartyMenuActionText], a - call WhiteBGMap + call ClearBGPalettes callba Function5004f callba Function50405 callba Function503e0 @@ -922,7 +922,7 @@ Function105dc: ; 105dc (4:45dc) ret .asm_1066c: ; 1066c (4:466c) - call WhiteBGMap + call ClearBGPalettes jr .asm_1067e .BattleOnly: ; 10671 (4:4671) @@ -1401,7 +1401,7 @@ Function108d4: ; 108d4 (4:48d4) Function10955: ; 10955 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD diff --git a/engine/party_menu.asm b/engine/party_menu.asm index 6c27cb73e..4d50ee8e4 100644 --- a/engine/party_menu.asm +++ b/engine/party_menu.asm @@ -2,10 +2,10 @@ SelectMonFromParty: ; 50000 call DisableSpriteUpdates xor a ld [PartyMenuActionText], a - call WhiteBGMap + call ClearBGPalettes call Function5003f call WaitBGMap - call Function32f9 + call SetPalettes call DelayFrame call PartyMenuSelect call Function2b74 @@ -17,12 +17,12 @@ Function5001d: ; 5001d ld a, b ld [PartyMenuActionText], a call DisableSpriteUpdates - call WhiteBGMap + call ClearBGPalettes call Function5003f call WaitBGMap ld b, $a call GetSGBLayout - call Function32f9 + call SetPalettes call DelayFrame call PartyMenuSelect call Function2b74 @@ -57,43 +57,42 @@ WritePartyMenuTilemap: ; 0x5005f ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, " " call ByteFill ; blank the tilemap - call Function50396 ; This reads from a pointer table??? + call GetPartyMenuTilemapPointers ; This reads from a pointer table??? .loop ld a, [hli] - cp -1 - jr z, .asm_50084 ; 0x5007a $8 + cp $ff + jr z, .end ; 0x5007a $8 push hl - ld hl, .jumptable + ld hl, .Jumptable rst JumpTable pop hl jr .loop ; 0x50082 $f3 - -.asm_50084 +.end pop af ld [Options], a ret ; 0x50089 -.jumptable: ; 50089 - dw .displaynicks ; 0 - dw .drawhpbars ; 1 - dw Function50138 ; 2 - dw Function50176 ; 3 - dw Function501b2 ; 4 - dw Function501e0 ; 5 - dw Function5022f ; 6 - dw Function502b1 ; 7 - dw Function50307 ; 8 +.Jumptable: ; 50089 + dw PlacePartyNicknames + dw PlacePartyHPBar + dw PlacePartyMenuHPDigits + dw PlacePartyMonLevel + dw PlacePartyMonStatus + dw PlacePartyMonTMHMCompatibility + dw PlacePartyMonEvoStoneCompatibility + dw PlacePartyMonGender + dw PlacePartyMonMobileBattleSelection ; 5009b -.displaynicks: ; 5009b +PlacePartyNicknames: ; 5009b hlcoord 3, 1 ld a, [PartyCount] and a - jr z, .done + jr z, .end ld c, a ld b, $0 -.loop2 +.loop push bc push hl push hl @@ -103,28 +102,28 @@ WritePartyMenuTilemap: ; 0x5005f pop hl call PlaceString pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .loop2 + jr nz, .loop -.done +.end rept 2 dec hl endr - ld de, .cancelstring + ld de, .CANCEL call PlaceString ret ; 500c8 -.cancelstring: ; 500c8 +.CANCEL: ; 500c8 db "CANCEL@" ; 500cf -.drawhpbars: ; 500cf +PlacePartyHPBar: ; 500cf xor a ld [wcda9], a ld a, [PartyCount] @@ -133,17 +132,17 @@ endr ld c, a ld b, $0 hlcoord 11, 2 -.loop3 +.loop push bc push hl - call Function50389 + call PartyMenuCheckEgg jr z, .skip push hl - call _fillhpbar + call PlacePartymonHPBar pop hl - ld d, 6 - ld b, 0 - call DrawHPBar + ld d, $6 + ld b, $0 + call DrawBattleHPBar ld hl, wcd9b ld a, [wcda9] ld c, a @@ -157,31 +156,31 @@ endr ld hl, wcda9 inc [hl] pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .loop3 + jr nz, .loop ld b, $a call GetSGBLayout ret ; 50117 -_fillhpbar: ; 50117 +PlacePartymonHPBar: ; 50117 ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1HP call AddNTimes ld a, [hli] or [hl] - jr nz, .notfainted + jr nz, .not_fainted xor a ld e, a ld c, a ret -.notfainted +.not_fainted dec hl ld a, [hli] ld b, a @@ -191,25 +190,25 @@ _fillhpbar: ; 50117 ld d, a ld a, [hli] ld e, a - predef ComputeHPBarLength + predef DrawPartyMenuHPBar ret ; 50138 -Function50138: ; 50138 +PlacePartyMenuHPDigits: ; 50138 ld a, [PartyCount] and a ret z ld c, a ld b, $0 hlcoord 13, 1 -.asm_50143 +.loop push bc push hl - call Function50389 - jr z, .asm_5016b + call PartyMenuCheckEgg + jr z, .next push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1HP call AddNTimes ld e, l @@ -219,7 +218,7 @@ Function50138: ; 50138 lb bc, 2, 3 call PrintNum pop de - ld a, $f3 + ld a, "/" ld [hli], a rept 2 inc de @@ -227,32 +226,32 @@ endr lb bc, 2, 3 call PrintNum -.asm_5016b +.next pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_50143 + jr nz, .loop ret ; 50176 -Function50176: ; 50176 +PlacePartyMonLevel: ; 50176 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 8, 2 -.asm_50181 +.loop push bc push hl - call Function50389 - jr z, .asm_501a7 + call PartyMenuCheckEgg + jr z, .next push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Level call AddNTimes ld e, l @@ -260,70 +259,72 @@ Function50176: ; 50176 pop hl ld a, [de] cp 100 ; This is distinct from MAX_LEVEL. - jr nc, .asm_501a1 + jr nc, .ThreeDigits ld a, "<LV>" ld [hli], a - ld bc, $4102 -.asm_501a1 + lb bc, PRINTNUM_RIGHTALIGN | 1, 2 + ; jr .okay +.ThreeDigits lb bc, PRINTNUM_RIGHTALIGN | 1, 3 +; .okay call PrintNum -.asm_501a7 +.next pop hl ld de, SCREEN_WIDTH * 2 add hl, de pop bc inc b dec c - jr nz, .asm_50181 + jr nz, .loop ret ; 501b2 -Function501b2: ; 501b2 +PlacePartyMonStatus: ; 501b2 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 5, 2 -.asm_501bd +.loop push bc push hl - call Function50389 - jr z, .asm_501d5 + call PartyMenuCheckEgg + jr z, .next push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Status call AddNTimes ld e, l ld d, h pop hl - call Function50d0a + call PlaceStatusString -.asm_501d5 +.next pop hl ld de, SCREEN_WIDTH * 2 add hl, de pop bc inc b dec c - jr nz, .asm_501bd + jr nz, .loop ret ; 501e0 -Function501e0: ; 501e0 +PlacePartyMonTMHMCompatibility: ; 501e0 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 2 -.asm_501eb +.loop push bc push hl - call Function50389 - jr z, .asm_5020a + call PartyMenuCheckEgg + jr z, .next push hl ld hl, PartySpecies ld e, b @@ -333,56 +334,56 @@ Function501e0: ; 501e0 ld [CurPartySpecies], a predef CanLearnTMHMMove pop hl - call Function50215 + call .PlaceAbleNotAble call PlaceString -.asm_5020a +.next pop hl ld de, SCREEN_WIDTH * 2 add hl, de pop bc inc b dec c - jr nz, .asm_501eb + jr nz, .loop ret ; 50215 -Function50215: ; 50215 +.PlaceAbleNotAble: ; 50215 ld a, c and a - jr nz, .asm_5021d - ld de, String_50226 + jr nz, .able + ld de, .string_not_able ret -.asm_5021d - ld de, String_50221 +.able + ld de, .string_able ret ; 50221 -String_50221: ; 50221 +.string_able: ; 50221 db "ABLE@" ; 50226 -String_50226: ; 50226 +.string_not_able: ; 50226 db "NOT ABLE@" ; 5022f -Function5022f: ; 5022f +PlacePartyMonEvoStoneCompatibility: ; 5022f ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 2 -.asm_5023a +.loop push bc push hl - call Function50389 - jr z, .asm_5025d + call PartyMenuCheckEgg + jr z, .next push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Species call AddNTimes ld a, [hl] @@ -393,22 +394,22 @@ Function5022f: ; 5022f rept 2 add hl, de endr - call Function50268 + call .DetermineCompatibility pop hl call PlaceString -.asm_5025d +.next pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_5023a + jr nz, .loop ret ; 50268 -Function50268: ; 50268 +.DetermineCompatibility: ; 50268 ld de, StringBuffer1 ld a, BANK(EvosAttacksPointers) ld bc, 2 @@ -422,15 +423,15 @@ Function50268: ; 50268 ld bc, $a call FarCopyBytes ld hl, StringBuffer1 -.asm_50287 +.loop2 ld a, [hli] and a - jr z, .asm_5029f + jr z, .nope rept 2 inc hl endr cp EVOLVE_ITEM - jr nz, .asm_50287 + jr nz, .loop2 rept 2 dec hl endr @@ -439,35 +440,35 @@ endr rept 2 inc hl endr - jr nz, .asm_50287 - ld de, String_502a3 + jr nz, .loop2 + ld de, .string_able ret -.asm_5029f - ld de, String_502a8 +.nope + ld de, .string_not_able ret ; 502a3 -String_502a3: ; 502a3 +.string_able: ; 502a3 db "ABLE@" ; 502a8 -String_502a8: ; 502a8 +.string_not_able: ; 502a8 db "NOT ABLE@" ; 502b1 -Function502b1: ; 502b1 +PlacePartyMonGender: ; 502b1 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 2 -.asm_502bc +.loop push bc push hl - call Function50389 - jr z, .asm_502e3 + call PartyMenuCheckEgg + jr z, .next ld [CurPartySpecies], a push hl ld a, b @@ -475,86 +476,86 @@ Function502b1: ; 502b1 xor a ld [MonType], a call GetGender - ld de, String_502fe - jr c, .asm_502df - ld de, String_502ee - jr nz, .asm_502df - ld de, String_502f5 + ld de, .unknown + jr c, .got_gender + ld de, .male + jr nz, .got_gender + ld de, .female -.asm_502df +.got_gender pop hl call PlaceString -.asm_502e3 +.next pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_502bc + jr nz, .loop ret ; 502ee -String_502ee: ; 502ee +.male: ; 502ee db "♂…MALE@" ; 502f5 -String_502f5: ; 502f5 +.female: ; 502f5 db "♀…FEMALE@" ; 502fe -String_502fe: ; 502fe +.unknown: ; 502fe db "…UNKNOWN@" ; 50307 -Function50307: ; 50307 +PlacePartyMonMobileBattleSelection: ; 50307 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 1 -.asm_50312 +.loop push bc push hl - ld de, String_50372 + ld de, .String_Sanka_Shinai call PlaceString pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_50312 + jr nz, .loop ld a, l - ld e, $b + ld e, PKMN_NAME_LENGTH sub e ld l, a ld a, h sbc $0 ld h, a - ld de, String_50379 + ld de, .String_Kettei_Yameru call PlaceString ld b, $3 ld c, $0 ld hl, wd002 ld a, [hl] -.asm_5033b +.loop2 push hl push bc hlcoord 12, 1 -.asm_50340 +.loop3 and a - jr z, .asm_5034a - ld de, $0028 + jr z, .done + ld de, 2 * SCREEN_WIDTH add hl, de dec a - jr .asm_50340 + jr .loop3 -.asm_5034a - ld de, String_5036b +.done + ld de, .String_Banme push hl call PlaceString pop hl @@ -562,7 +563,7 @@ Function50307: ; 50307 push bc push hl ld a, c - ld hl, Strings_50383 + ld hl, .Strings_1_2_3 call GetNthString ld d, h ld e, l @@ -575,24 +576,24 @@ Function50307: ; 50307 inc c dec b ret z - jr .asm_5033b + jr .loop2 ; 5036b -String_5036b: ; 5036b +.String_Banme: ; 5036b db " ばんめ @" ; Place ; 50372 -String_50372: ; 50372 +.String_Sanka_Shinai: ; 50372 db "さんかしない@" ; Cancel ; 50379 -String_50379: ; 50379 +.String_Kettei_Yameru: ; 50379 db "けってい やめる@" ; Quit ; 50383 -Strings_50383: ; 50383 +.Strings_1_2_3: ; 50383 db "1@", "2@", "3@" ; 1st, 2nd, 3rd ; 50389 -Function50389: ; 50389 +PartyMenuCheckEgg: ; 50389 ld a, PartySpecies % $100 add b ld e, a @@ -604,15 +605,15 @@ Function50389: ; 50389 ret ; 50396 -Function50396: ; 50396 +GetPartyMenuTilemapPointers: ; 50396 ld a, [PartyMenuActionText] and $f0 - jr nz, .override + jr nz, .skip ld a, [PartyMenuActionText] and $f ld e, a ld d, 0 - ld hl, .selectmonmenuoptions + ld hl, .Pointers rept 2 add hl, de endr @@ -621,31 +622,32 @@ endr ld l, a ret -.override - ld hl, .default +.skip + ld hl, .Default ret ; 503b2 -.selectmonmenuoptions: ; 503b2 - dw .default - dw .default - dw .default - dw .unknown1 - dw .default - dw .unknown2 - dw .trade - dw .trade - dw .default - dw .unknown3 +.Pointers: ; 503b2 + dw .Default + dw .Default + dw .Default + dw .TMHM + dw .Default + dw .EvoStone + dw .Gender + dw .Gender + dw .Default + dw .Mobile ; 503c6 -.default: db 0, 1, 2, 3, 4, -1 -.unknown1: db 0, 5, 3, 4, -1 -.unknown2: db 0, 6, 3, 4, -1 -.trade: db 0, 7, 3, 4, -1 -.unknown3: db 0, 8, 3, 4, -1 +.Default: db 0, 1, 2, 3, 4, $ff +.TMHM: db 0, 5, 3, 4, $ff +.EvoStone: db 0, 6, 3, 4, $ff +.Gender: db 0, 7, 3, 4, $ff +.Mobile: db 0, 8, 3, 4, $ff ; 503e0 + Function503e0: ; 503e0 ld hl, PartyCount ld a, [hli] @@ -653,7 +655,7 @@ Function503e0: ; 503e0 ret z ld c, a xor a - ld [hConnectedMapWidth], a + ld [hObjectStructIndexBuffer], a .asm_503ea push bc push hl @@ -661,9 +663,9 @@ Function503e0: ; 503e0 ld a, BANK(Function8e83f) ld e, $0 rst FarCall - ld a, [hConnectedMapWidth] + ld a, [hObjectStructIndexBuffer] inc a - ld [hConnectedMapWidth], a + ld [hObjectStructIndexBuffer], a pop hl pop bc dec c @@ -671,6 +673,7 @@ Function503e0: ; 503e0 callab Function8cf69 ret ; 50405 + Function50405: ; 50405 xor a ld [wd0e3], a @@ -692,7 +695,7 @@ Function50405: ; 50405 ld a, $1 .asm_50424 - ld [wcfa9], a + ld [MenuSelection2], a ld a, $3 ld [wcfa8], a ret @@ -713,7 +716,7 @@ Function5042d: ; 0x5042d .asm_50444 ld a, $1 .asm_50446 - ld [wcfa9], a + ld [MenuSelection2], a ld a, $3 ld [wcfa8], a ret @@ -738,7 +741,7 @@ PartyMenuSelect: ; 0x50457 ld a, [PartyCount] inc a ld b, a - ld a, [wcfa9] ; menu selection? + ld a, [MenuSelection2] ; menu selection? cp b jr z, .exitmenu ; CANCEL ld [wd0d8], a @@ -746,7 +749,7 @@ PartyMenuSelect: ; 0x50457 ld b, a bit 1, b jr nz, .exitmenu ; B button? - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurPartyMon], a ld c, a @@ -773,7 +776,7 @@ PartyMenuSelect: ; 0x50457 PrintPartyMenuText: ; 5049a hlcoord 0, 14 - ld bc, $0212 + lb bc, 2, 18 call TextBox ld a, [PartyCount] and a @@ -920,6 +923,7 @@ UnknownText_0x505bc: ; 0x505bc db "@" ; 0x505c1 + Function505c1: ; 505c1 ld e, a ld d, 0 diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 9a9e01f8a..c331f4a2a 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -60,7 +60,7 @@ Pokedex: ; 40000 ; 40063 InitPokedex: ; 40063 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call Function414b7 @@ -487,7 +487,7 @@ Function4034f: ; 4034f ld [wcf64], a pop af ld [wcf65], a - call WhiteBGMap + call ClearBGPalettes call DisableLCD call Function414fb call Function4038d diff --git a/engine/scripting.asm b/engine/scripting.asm index f94436f67..cbc8c0028 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1079,9 +1079,11 @@ ApplyMovement: ; 971fa ld a, c callba SetFlagsForMovement_1 pop bc + push bc call SetFlagsForMovement_2 pop bc + call GetScriptByte ld l, a call GetScriptByte @@ -1090,6 +1092,7 @@ ApplyMovement: ; 971fa ld b, a call GetMovementData ret c + ld a, SCRIPT_WAIT_MOVEMENT ld [ScriptMode], a call StopScript @@ -1102,6 +1105,7 @@ SetFlagsForMovement_2: ; 0x97221 ; 0x97228 Script_applymovement2: ; 0x97228 +; apply movement to last talked ; script command 0x6a ; parameters: ; data (MovementPointerLabelParam) @@ -1426,12 +1430,12 @@ ShowEmoteScript: ; 973b6 .Show show_emote - show_person + step_sleep_1 step_end .Hide hide_emote - show_person + step_sleep_1 step_end ; 973c7 @@ -1460,8 +1464,8 @@ Script_earthquake: ; 0x973c7 ; 973eb EarthquakeMovement: ; 973eb - step_shake 16 - step_sleep 16 + step_shake 16 ; the 16 gets overwritten with the script byte + step_sleep 16 ; the 16 gets overwritten with the lower 6 bits of the script byte step_end EarthquakeMovementEnd ; 973f0 @@ -2847,6 +2851,7 @@ Script_warp: ; 0x97a1d call LoadMapStatus call StopScript ret + .not_ok call GetScriptByte call GetScriptByte @@ -3117,6 +3122,7 @@ Script_end: ; 0x97b74 call ExitScriptSubroutine jr c, .resume ret + .resume xor a ld [ScriptRunning], a diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm new file mode 100755 index 000000000..075b1ba78 --- /dev/null +++ b/engine/slot_machine.asm @@ -0,0 +1,2112 @@ +_SlotMachine: + ld hl, Options + set 4, [hl] + call Function926f7 + call DelayFrame +.asm_926d2 + call Function927af + jr nc, .asm_926d2 + call WaitSFX + ld de, SFX_QUIT_SLOTS + call PlaySFX + call WaitSFX + call ClearBGPalettes + callba MobileFn_105fd0 + ld hl, Options + res 4, [hl] + ld hl, rLCDC ; $ff40 + res 2, [hl] + ret + +Function926f7: ; 926f7 (24:66f7) + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld de, MUSIC_NONE + call PlayMusic + call DelayFrame + call DisableLCD + ld hl, VBGMap0 tile $00 + lb bc, 4, 0 + ld a, $7f + call ByteFill + ld b, $5 + call GetSGBLayout + callab Function8cf53 + ld hl, wc6d0 + ld bc, $48 + xor a + call ByteFill + ld hl, Slots2LZ + ld de, VTiles0 tile $00 + call Decompress + ld hl, Slots3LZ + ld de, VTiles0 tile $40 + call Decompress + ld hl, Slots1LZ + ld de, VTiles2 tile $00 + call Decompress + ld hl, Slots2LZ + ld de, VTiles2 tile $25 + call Decompress + ld hl, SlotsTilemap + decoord 0, 0 + ld bc, 20 * 12 + call CopyBytes + ld hl, rLCDC ; $ff40 + set 2, [hl] + call EnableLCD + ld hl, wc6d0 + ld bc, $64 + xor a + call ByteFill + call Function92a98 + call Function9279b + ld a, $7 + ld hl, wc300 + ld [hli], a + ld [hl], $40 + xor a + ld [wJumptableIndex], a + ld a, $ff + ld [wc709], a + ld de, MUSIC_GAME_CORNER + call PlayMusic + xor a + ld [wd002], a + call Random + and $2a + ret nz + ld a, $1 + ld [wd002], a + ret + +Function9279b: ; 9279b (24:679b) + ld a, $e4 + call DmgToCgbBGPals + lb de, $e4, $e4 + ld a, [hCGB] + and a + jr nz, .asm_927ab + lb de, $c0, $e4 +.asm_927ab + call DmgToCgbObjPals + ret + +Function927af: ; 927af (24:67af) + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_927d1 + call Function92844 + call Function92b0f + xor a + ld [wc3b5], a + callab Function8cfa8 + call Function927f8 + call Function927d3 + call DelayFrame + and a + ret +.asm_927d1 + scf + ret + +Function927d3: ; 927d3 (24:67d3) + ret +; 927d4 (24:67d4) + +Function927d4: ; 927d4 + ld a, [wc6d0] + and a + ret nz + ld a, [wc6e0] + and a + ret nz + ld a, [wc70c] + and a + jr nz, .asm_927ea + ld a, $e4 + call DmgToCgbBGPals + ret + +.asm_927ea + ld a, [TextDelayFrames] + and $7 + ret nz + ld a, [rBGP] + xor %1100 + call DmgToCgbBGPals + ret +; 927f8 + +Function927f8: ; 927f8 (24:67f8) + hlcoord 5, 1 + ld de, Coins + lb bc, PRINTNUM_LEADINGZEROS | 2, 4 + call PrintNum + hlcoord 11, 1 + ld de, wc711 + lb bc, PRINTNUM_LEADINGZEROS | 2, 4 + call PrintNum + ret +; 92811 (24:6811) + +Function92811: ; 92811 + ld a, [wc709] + add 0 + daa + ld e, a + and $f + add "0" + hlcoord 1, 0 + ld [hl], a + ld a, e + swap a + and $f + add "0" + hlcoord 0, 0 + ld [hl], a + ret +; 9282c + +Function9282c: ; 9282c + ld hl, wcf66 + ld a, [hl] + inc [hl] + and $7 + ret nz + ld hl, Sprites + $42 + ld c, $18 +.asm_92839 + ld a, [hl] + xor $20 + ld [hli], a +rept 3 + inc hl +endr + dec c + jr nz, .asm_92839 + ret +; 92844 + +Function92844: ; 92844 (24:6844) + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_92853 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 92853 (24:6853) + + +Jumptable_92853: ; 92853 (24:6853) + dw Function9287e + dw Function9288e + dw Function928c6 + dw Function928d6 + dw Function928e6 + dw Function92900 + dw Function92910 + dw Function9292a + dw Function9293a + dw Function92879 + dw Function92879 + dw Function92879 + dw Function92955 + dw Function9296b + dw Function92987 + dw Function9299e + dw Function929a4 + dw Function929d9 + dw Function929f0 + + +Function92879: ; 92879 (24:6879) + ld hl, wJumptableIndex + inc [hl] + ret + +Function9287e: ; 9287e (24:687e) + call Function92879 + xor a + ld [wc70b], a + ld [wc70c], a + ld a, $ff + ld [wc70d], a + ret + +Function9288e: ; 9288e (24:688e) + call Function9307c + jr nc, .asm_92899 + ld a, $12 + ld [wJumptableIndex], a + ret +.asm_92899 + call Function92879 + call Function9303f + call Function93002 + ld a, $20 + ld [wcf64], a + ld a, $4 + ld [wc6d0], a + ld [wc6e0], a + ld [wc6f0], a + ld a, $4 + ld [wc6d9], a + ld [wc6e9], a + ld [wc6f9], a + call WaitSFX + ld a, SFX_SLOT_MACHINE_START + call Function9331e + ret + +Function928c6: ; 928c6 (24:68c6) + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_928cf + dec [hl] + ret +.asm_928cf + call Function92879 + xor a + ld [hJoypadSum], a + ret + +Function928d6: ; 928d6 (24:68d6) + ld hl, hJoypadSum ; $ffa5 + ld a, [hl] + and A_BUTTON + ret z + call Function92879 + call Function92a2b + ld [wc6d0], a + +Function928e6: ; 928e6 (24:68e6) + ld a, [wc6d0] + cp $0 + ret nz + ld a, SFX_STOP_SLOT + call Function9331e + ld bc, wc6d0 + ld de, wc700 + call Function929f6 + call Function92879 + xor a + ld [hJoypadSum], a + +Function92900: ; 92900 (24:6900) + ld hl, hJoypadSum ; $ffa5 + ld a, [hl] + and A_BUTTON + ret z + call Function92879 + call Function92a2e + ld [wc6e0], a + +Function92910: ; 92910 (24:6910) + ld a, [wc6e0] + cp $0 + ret nz + ld a, SFX_STOP_SLOT + call Function9331e + ld bc, wc6e0 + ld de, wc703 + call Function929f6 + call Function92879 + xor a + ld [hJoypadSum], a + +Function9292a: ; 9292a (24:692a) + ld hl, hJoypadSum ; $ffa5 + ld a, [hl] + and A_BUTTON + ret z + call Function92879 + call Function92a60 + ld [wc6f0], a + +Function9293a: ; 9293a (24:693a) + ld a, [wc6f0] + cp $0 + ret nz + ld a, SFX_STOP_SLOT + call Function9331e + ld bc, wc6f0 + ld de, wc706 + call Function929f6 + call Function92879 + xor a + ld [hJoypadSum], a + ret + +Function92955: ; 92955 (24:6955) + ld a, [wc70d] + cp $ff + jr nz, .asm_92963 + call Function92879 + call Function92879 + ret +.asm_92963 + call Function92879 + ld a, $10 + ld [wcf64], a + +Function9296b: ; 9296b (24:696b) + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_92980 + dec [hl] + srl a + ret z + ld a, [rOBP0] + xor $ff + ld e, a + ld d, a + call DmgToCgbObjPals + ret +.asm_92980 + call Function9279b + call Function92879 + ret + +Function92987: ; 92987 (24:6987) + xor a + ld [wc70b], a + ld [wc70c], a + ld a, $e4 + call DmgToCgbBGPals + call Function93124 + xor a + ld [wcf64], a + call Function92879 + ret + +Function9299e: ; 9299e (24:699e) + call Function93158 + call Function92879 + +Function929a4: ; 929a4 (24:69a4) + ld hl, wcf64 + ld a, [hl] + inc [hl] + and $1 + ret z + ld hl, wc711 + ld a, [hli] + ld d, a + or [hl] + jr z, .asm_929d5 + ld e, [hl] + dec de + ld [hl], e + dec hl + ld [hl], d + ld hl, Coins + ld d, [hl] + inc hl + ld e, [hl] + call Function92a04 + jr c, .asm_929c5 + inc de +.asm_929c5 + ld [hl], e + dec hl + ld [hl], d + ld a, [wcf64] + and $7 + ret z + ld de, SFX_GET_COIN_FROM_SLOTS + call PlaySFX + ret +.asm_929d5 + call Function92879 + ret + +Function929d9: ; 929d9 (24:69d9) + call Function9304c + call WaitPressAorB_BlinkCursor + call Function930e9 + jr c, .asm_929ea + ld a, $0 + ld [wJumptableIndex], a + ret +.asm_929ea + ld a, $12 + ld [wJumptableIndex], a + ret + +Function929f0: ; 929f0 (24:69f0) + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function929f6: ; 929f6 (24:69f6) + push de + call Function92a12 + pop de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ret + +Function92a04: ; 92a04 (24:6a04) + ld a, d + cp 9999 / $100 + jr c, .asm_92a10 + ld a, e + cp 9999 % $100 + jr c, .asm_92a10 + scf + ret +.asm_92a10 + and a + ret + +Function92a12: ; 92a12 (24:6a12) + ld hl, $3 + add hl, bc + ld a, [hl] + and a + jr nz, .asm_92a1c + ld a, $f +.asm_92a1c + dec a + and $f + ld e, a + ld d, $0 + ld hl, $1 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ret + +Function92a2b: ; 92a2b (24:6a2b) + ld a, $7 + ret + +Function92a2e: ; 92a2e (24:6a2e) + ld a, [wc70a] + cp $2 + jr c, .asm_92a4e + ld a, [wc709] + and a + jr z, .asm_92a3f + cp $ff + jr nz, .asm_92a4e +.asm_92a3f + call Function92a51 + jr nz, .asm_92a4e + call Random + cp $50 + jr nc, .asm_92a4e + ld a, $a + ret +.asm_92a4e + ld a, $8 + ret + +Function92a51: ; 92a51 (24:6a51) + ld a, [wc700] + and a + ret z + ld a, [wc701] + and a + ret z + ld a, [wc702] + and a + ret + +Function92a60: ; 92a60 (24:6a60) + ld a, [wc70b] + and a + jr z, .asm_92a95 + ld a, [wc70c] + and a + jr z, .asm_92a95 + ld a, [wc709] + and a + jr nz, .asm_92a84 + call Random + cp 180 + jr nc, .asm_92a95 + cp 120 + jr nc, .asm_92a92 + cp 60 + jr nc, .asm_92a8f + ld a, $15 + ret +.asm_92a84 + call Random + cp $a0 + jr nc, .asm_92a95 + cp $50 + jr nc, .asm_92a92 +.asm_92a8f + ld a, $12 + ret +.asm_92a92 + ld a, $10 + ret +.asm_92a95 + ld a, $9 + ret + +Function92a98: ; 92a98 (24:6a98) + ld bc, wc6d0 + ld hl, $6 + add hl, bc + ld de, Sprites + $40 + ld [hl], e + inc hl + ld [hl], d + ld hl, $1 + add hl, bc + ld de, Unknown_93327 + ld [hl], e + inc hl + ld [hl], d + ld hl, $8 + add hl, bc + ld [hl], $30 + call Function92af9 + ld bc, wc6e0 + ld hl, $6 + add hl, bc + ld de, Sprites + $60 + ld [hl], e + inc hl + ld [hl], d + ld hl, $1 + add hl, bc + ld de, Unknown_93339 + ld [hl], e + inc hl + ld [hl], d + ld hl, $8 + add hl, bc + ld [hl], $50 + call Function92af9 + ld bc, wc6f0 + ld hl, $6 + add hl, bc + ld de, Sprites + $80 + ld [hl], e + inc hl + ld [hl], d + ld hl, $1 + add hl, bc + ld de, Unknown_9334b + ld [hl], e + inc hl + ld [hl], d + ld hl, $8 + add hl, bc + ld [hl], $70 + call Function92af9 + ret + +Function92af9: ; 92af9 (24:6af9) + ld hl, 0 + add hl, bc + ld [hl], $0 + ld hl, $3 + add hl, bc + ld [hl], $e + ld hl, $4 + add hl, bc + ld [hl], $0 + call Function92b53 + ret + +Function92b0f: ; 92b0f (24:6b0f) + ld bc, wc6d0 + call Function92b22 + ld bc, wc6e0 + call Function92b22 + ld bc, wc6f0 + call Function92b22 + ret + +Function92b22: ; 92b22 (24:6b22) + ld hl, $4 + add hl, bc + ld a, [hl] + and $f + jr nz, .asm_92b2e + call Function92bd4 +.asm_92b2e + ld hl, $5 + add hl, bc + ld a, [hl] + and a + ret z + ld d, a + ld hl, $4 + add hl, bc + add [hl] + ld [hl], a + and $f + jr z, Function92b53 + ld hl, $6 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld e, $8 +.asm_92b49 + ld a, [hl] + add d + ld [hli], a +rept 3 + inc hl +endr + dec e + jr nz, .asm_92b49 + ret + +Function92b53: ; 92b53 (24:6b53) + ld hl, $8 + add hl, bc + ld a, [hl] + ld [wc712 + 1], a + ld a, $50 + ld [wc712 + 2], a + ld hl, $3 + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, $1 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + call Function92b83 + ld hl, $3 + add hl, bc + ld a, [hl] + inc a + and $f + cp $f + jr nz, .asm_92b81 + xor a +.asm_92b81 + ld [hl], a + ret + +Function92b83: ; 92b83 (24:6b83) + ld hl, $6 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.asm_92b8a + ld a, [wc712 + 2] + ld [hli], a + ld a, [wc712 + 1] + ld [hli], a + ld a, [de] + ld [hli], a + srl a + srl a + set 7, a + ld [hli], a + ld a, [wc712 + 2] + ld [hli], a + ld a, [wc712 + 1] + add $8 + ld [hli], a + ld a, [de] +rept 2 + inc a +endr + ld [hli], a + srl a + srl a + set 7, a + ld [hli], a + inc de + ld a, [wc712 + 2] + sub $10 + ld [wc712 + 2], a + cp $10 + jr nz, .asm_92b8a + ret +; 92bbe (24:6bbe) + +Function92bbe: ; 92bbe + push hl + srl a + srl a + add Unknown_92bce % $100 + ld l, a + ld a, 0 + adc Unknown_92bce / $100 + ld h, a + ld a, [hl] + pop hl + ret +; 92bce + +Unknown_92bce: ; 92bce + db 0, 1, 2, 3, 4, 5 +; 92bd4 + +Function92bd4: ; 92bd4 (24:6bd4) + ld hl, 0 + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Jumptable_92be4 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 92be4 (24:6be4) + +Jumptable_92be4: ; 92be4 + dw Function92c16 + dw Function92c4c + dw Function92c17 + dw Function92c1e + dw Function92c25 + dw Function92c2c + dw Function92c33 + dw Function92c5e + dw Function92c86 + dw Function92ca9 + dw Function92cd2 + dw Function92cf8 + dw Function92d13 + dw Function92df7 + dw Function92e10 + dw Function92e31 + dw Function92e47 + dw Function92e64 + dw Function92d20 + dw Function92d4f + dw Function92d6e + dw Function92d7e + dw Function92da4 + dw Function92db3 + dw Function92dca +; 92c16 + +Function92c16: ; 92c16 + ret +; 92c17 + +Function92c17: ; 92c17 + ld hl, $5 + add hl, bc + ld [hl], $10 + ret +; 92c1e + +Function92c1e: ; 92c1e + ld hl, $5 + add hl, bc + ld [hl], $8 + ret +; 92c25 + +Function92c25: ; 92c25 + ld hl, $5 + add hl, bc + ld [hl], $4 + ret +; 92c2c + +Function92c2c: ; 92c2c + ld hl, $5 + add hl, bc + ld [hl], $2 + ret +; 92c33 + +Function92c33: ; 92c33 + ld hl, $5 + add hl, bc + ld [hl], $1 + ret +; 92c3a + +Function92c3a: ; 92c3a + ld hl, $5 + add hl, bc + ld [hl], $0 + ld hl, 0 + add hl, bc + ld [hl], $1 + ld hl, $f + add hl, bc + ld [hl], $3 + +Function92c4c: ; 92c4c + ld hl, $f + add hl, bc + ld a, [hl] + and a + jr z, .asm_92c56 + dec [hl] + ret + +.asm_92c56 + ld hl, 0 + add hl, bc + ld a, $0 + ld [hl], a + ret +; 92c5e + +Function92c5e: ; 92c5e + ld a, [wc709] + cp $ff + jr z, .asm_92c72 + ld hl, $9 + add hl, bc + ld a, [hl] + and a + jr z, .asm_92c72 + dec [hl] + call Function92c76 + ret nz + +.asm_92c72 + call Function92c3a + ret +; 92c76 + +Function92c76: ; 92c76 + call Function92a12 + ld a, [wc709] + ld e, a + ld a, [hli] + cp e + ret z + ld a, [hli] + cp e + ret z + ld a, [hl] + cp e + ret +; 92c86 + +Function92c86: ; 92c86 + call Function92e94 + jr nc, .asm_92c94 + ld a, [wc717] + ld hl, wc709 + cp [hl] + jr z, .asm_92ca5 + +.asm_92c94 + ld a, [wc709] + cp $ff + jr z, .asm_92ca5 + ld hl, $9 + add hl, bc + ld a, [hl] + and a + jr z, .asm_92ca5 + dec [hl] + ret + +.asm_92ca5 + call Function92c3a + ret +; 92ca9 + +Function92ca9: ; 92ca9 + call Function92f1d + jr nc, .asm_92cbd + ld hl, wc709 + cp [hl] + jr z, .asm_92cce + ld hl, $9 + add hl, bc + ld a, [hl] + and a + ret z + dec [hl] + ret + +.asm_92cbd + ld a, [wc709] + cp $ff + jr z, .asm_92cce + ld hl, $9 + add hl, bc + ld a, [hl] + and a + jr z, .asm_92cce + dec [hl] + ret + +.asm_92cce + call Function92c3a + ret +; 92cd2 + +Function92cd2: ; 92cd2 + call Function92e94 + jr nc, .asm_92ce1 + ld a, [wc70c] + and a + jr z, .asm_92ce1 + call Function92c3a + ret + +.asm_92ce1 + ld a, SFX_STOP_SLOT + call Function9331e + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $a + add hl, bc + ld [hl], $20 + ld hl, $5 + add hl, bc + ld [hl], $0 + ret +; 92cf8 + +Function92cf8: ; 92cf8 + ld hl, $a + add hl, bc + ld a, [hl] + and a + jr z, .asm_92d02 + dec [hl] + ret + +.asm_92d02 + ld a, SFX_THROW_BALL + call Function9331e + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $8 + ret +; 92d13 + +Function92d13: ; 92d13 + call Function92e94 + ret nc + ld a, [wc70c] + and a + ret z + call Function92c3a + ret +; 92d20 + +Function92d20: ; 92d20 + call Function92f1d + ret c + ld a, SFX_STOP_SLOT + call Function9331e + call Function93316 + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $0 + call Function92fc0 + push bc + push af + ld de, $6068 + ld a, $6 + call Function3b2a + ld hl, $e + add hl, bc + pop af + ld [hl], a + pop bc + xor a + ld [wcf64], a + +Function92d4f: ; 92d4f + ld a, [wcf64] + cp $2 + jr z, .asm_92d5b + cp $1 + jr z, .asm_92d62 + ret + +.asm_92d5b + call Function92f1d + call Function92c3a + ret + +.asm_92d62 + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $8 + ret +; 92d6e + +Function92d6e: ; 92d6e + xor a + ld [wcf64], a + ld hl, 0 + add hl, bc + dec [hl] + ld hl, $5 + add hl, bc + ld [hl], $0 + ret +; 92d7e + +Function92d7e: ; 92d7e + call Function92f1d + ret c + ld a, SFX_STOP_SLOT + call Function9331e + call Function93316 + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $0 + push bc + ld de, $6000 + ld a, $7 + call Function3b2a + pop bc + xor a + ld [wcf64], a + ret +; 92da4 + +Function92da4: ; 92da4 + ld a, [wcf64] + and a + ret z + ld hl, 0 + add hl, bc + inc [hl] + ld a, $2 + ld [wcf64], a + +Function92db3: ; 92db3 + ld a, [wcf64] + cp $4 + ret c + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $10 + ld hl, $a + add hl, bc + ld [hl], $11 + +Function92dca: ; 92dca + ld hl, $a + add hl, bc + ld a, [hl] + and a + jr z, .asm_92dd4 + dec [hl] + ret + +.asm_92dd4 + call Function92f1d + jr nc, .asm_92de5 + and a + jr nz, .asm_92de5 + ld a, $5 + ld [wcf64], a + call Function92c3a + ret + +.asm_92de5 + ld hl, $5 + add hl, bc + ld [hl], $0 + ld hl, 0 + add hl, bc +rept 2 + dec [hl] +endr + ld a, $1 + ld [wcf64], a + ret +; 92df7 + +Function92df7: ; 92df7 + call Function92f1d + ret c + ld a, SFX_STOP_SLOT + call Function9331e + call Function93316 + ld hl, 0 + add hl, bc + inc [hl] + call Function92fc0 + ld hl, $a + add hl, bc + ld [hl], a + +Function92e10: ; 92e10 + ld hl, $a + add hl, bc + ld a, [hl] + and a + jr nz, .asm_92e1f + call Function92f1d + call Function92c3a + ret + +.asm_92e1f + dec [hl] + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $b + add hl, bc + ld [hl], $20 + ld hl, $5 + add hl, bc + ld [hl], $0 + +Function92e31: ; 92e31 + ld hl, $b + add hl, bc + ld a, [hl] + and a + jr z, .asm_92e3b + dec [hl] + ret + +.asm_92e3b + ld hl, 0 + add hl, bc + dec [hl] + ld hl, $5 + add hl, bc + ld [hl], $8 + ret +; 92e47 + +Function92e47: ; 92e47 + call Function92f1d + ret c + ld a, SFX_STOP_SLOT + call Function9331e + call Function93316 + ld hl, $5 + add hl, bc + ld [hl], $1 + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $a + add hl, bc + ld [hl], $10 + +Function92e64: ; 92e64 + ld hl, $a + add hl, bc + ld a, [hl] + and a + jr z, .asm_92e73 + dec [hl] +.asm_92e6d + ld a, SFX_GOT_SAFARI_BALLS + call Function9331e + ret + +.asm_92e73 + ld a, [wc709] + and a + jr nz, .asm_92e88 + call Function92f1d + jr nc, .asm_92e6d + and a + jr nz, .asm_92e6d + call Function92c3a + call WaitSFX + ret + +.asm_92e88 + call Function92f1d + jr c, .asm_92e6d + call Function92c3a + call WaitSFX + ret +; 92e94 + +Function92e94: ; 92e94 + xor a + ld [wc70b], a + ld [wc70c], a + call Function92a12 + call Function92fb4 + ld a, [wc70a] + and 3 + ld e, a + ld d, 0 + ld hl, Jumptable_92ebd +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .asm_92eb6 + push de + jp [hl] + +.asm_92eb6 + ld a, [wc70b] + and a + ret z + scf + ret +; 92ebd + +Jumptable_92ebd: ; 92ebd + dw Function92ed4 + dw Function92ed1 + dw Function92ecb + dw Function92ec5 +; 92ec5 + +Function92ec5: ; 92ec5 + call Function92ee0 + call Function92ef6 + +Function92ecb: ; 92ecb + call Function92ed5 + call Function92f01 + +Function92ed1: ; 92ed1 + call Function92eeb + +Function92ed4: ; 92ed4 + ret +; 92ed5 + +Function92ed5: ; 92ed5 + ld hl, wc70e + ld a, [EnemyScreens] + cp [hl] + call z, Function92f0c + ret +; 92ee0 + +Function92ee0: ; 92ee0 + ld hl, wEnemyGoesFirst + ld a, [wc700] + cp [hl] + call z, Function92f0c + ret +; 92eeb + +Function92eeb: ; 92eeb + ld hl, wEnemyGoesFirst + ld a, [wc701] + cp [hl] + call z, Function92f0c + ret +; 92ef6 + +Function92ef6: ; 92ef6 + ld hl, wEnemyGoesFirst + ld a, [wc702] + cp [hl] + call z, Function92f0c + ret +; 92f01 + +Function92f01: ; 92f01 + ld hl, wc710 + ld a, [wc702] + cp [hl] + call z, Function92f0c + ret +; 92f0c + +Function92f0c: ; 92f0c + ld [wc717], a + and a + jr nz, .asm_92f17 + ld a, $1 + ld [wc70c], a + +.asm_92f17 + ld a, $1 + ld [wc70b], a + ret +; 92f1d + +Function92f1d: ; 92f1d + ld a, $ff + ld [EffectFailed], a + call Function92a12 + call Function92fb4 + ld a, [wc70a] + and 3 + ld e, a + ld d, 0 + ld hl, Jumptable_92f48 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .asm_92f3d + push de + jp [hl] + +.asm_92f3d + ld a, [wc70d] + cp $ff + jr nz, .asm_92f46 + and a + ret + +.asm_92f46 + scf + ret +; 92f48 + +Jumptable_92f48: ; 92f48 + dw Function92f5f + dw Function92f5c + dw Function92f56 + dw Function92f50 +; 92f50 + +Function92f50: ; 92f50 + call Function92f70 + call Function92f90 + +Function92f56: ; 92f56 + call Function92f60 + call Function92fa0 + +Function92f5c: ; 92f5c + call Function92f80 + +Function92f5f: ; 92f5f + ret +; 92f60 + +Function92f60: ; 92f60 + ld hl, wc70e + ld a, [wc700] + cp [hl] + ret nz + ld hl, wc703 + cp [hl] + call z, Function92fb0 + ret +; 92f70 + +Function92f70: ; 92f70 + ld hl, wc710 + ld a, [wc700] + cp [hl] + ret nz + ld hl, wc704 + cp [hl] + call z, Function92fb0 + ret +; 92f80 + +Function92f80: ; 92f80 + ld hl, wEnemyGoesFirst + ld a, [wc701] + cp [hl] + ret nz + ld hl, wc704 + cp [hl] + call z, Function92fb0 + ret +; 92f90 + +Function92f90: ; 92f90 + ld hl, wc70e + ld a, [wc702] + cp [hl] + ret nz + ld hl, wc704 + cp [hl] + call z, Function92fb0 + ret +; 92fa0 + +Function92fa0: ; 92fa0 + ld hl, wc710 + ld a, [wc702] + cp [hl] + ret nz + ld hl, wc705 + cp [hl] + call z, Function92fb0 + ret +; 92fb0 + +Function92fb0: ; 92fb0 + ld [wc70d], a + ret +; 92fb4 + +Function92fb4: ; 92fb4 + ld de, wc70e + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ret +; 92fc0 + +Function92fc0: ; 92fc0 + ld hl, $3 + add hl, bc + ld a, [hl] + push af + push hl + call Function92fcf + pop hl + pop af + ld [hl], a + ld a, e + ret +; 92fcf + +Function92fcf: ; 92fcf + ld a, [wc709] + and a + jr nz, .asm_92fe8 + ld e, $0 +.asm_92fd7 + ld hl, $3 + add hl, bc + inc [hl] + inc e + push de + call Function92f1d + pop de + jr nc, .asm_92fd7 + and a + jr nz, .asm_92fd7 + ret + +.asm_92fe8 + call Random + and $7 + cp $4 + jr c, .asm_92fe8 + ld e, a +.asm_92ff2 + ld a, e + inc e + ld hl, $3 + add hl, bc + add [hl] + ld [hl], a + push de + call Function92f1d + pop de + jr c, .asm_92ff2 + ret +; 93002 + +Function93002: ; 93002 (24:7002) + ld a, [wc709] + and a + ret z + ld hl, Unknown_93023 + ld a, [ScriptVar] + and a + jr z, .asm_93013 + ld hl, Unknown_93031 +.asm_93013 + call Random + ld c, a +.asm_93017 + ld a, [hli] + cp c + jr nc, .asm_9301e + inc hl + jr .asm_93017 +.asm_9301e + ld a, [hl] + ld [wc709], a + ret +; 93023 (24:7023) + +Unknown_93023: ; 93023 + db $01, $00 + db $03, $04 + db $0a, $14 + db $14, $10 + db $28, $0c + db $30, $08 + db $ff, $ff +; 93031 + +Unknown_93031: ; 93031 + db $02, $00 + db $03, $04 + db $08, $14 + db $10, $10 + db $1e, $0c + db $50, $08 + db $ff, $ff +; 9303f + +Function9303f: ; 9303f (24:703f) + ld b, $14 + ld a, [wc70a] + dec a + jr z, asm_93066 + dec a + jr z, asm_9305a + jr asm_9304e + +Function9304c: ; 9304c (24:704c) + ld b, $23 +asm_9304e: ; 9304e (24:704e) + hlcoord 3, 2 + call Function93069 + hlcoord 3, 10 + call Function93069 +asm_9305a: ; 9305a (24:705a) + hlcoord 3, 4 + call Function93069 + hlcoord 3, 8 + call Function93069 +asm_93066: ; 93066 (24:7066) + hlcoord 3, 6 + +Function93069: ; 93069 (24:7069) + ld a, b + ld [hl], a + ld de, $d + add hl, de + ld [hl], a + ld de, $7 + add hl, de + inc a + ld [hl], a + ld de, $d + add hl, de + ld [hl], a + ret + +Function9307c: ; 9307c (24:707c) + ld hl, UnknownText_0x930c7 + call PrintText + ld hl, MenuDataHeader_0x930d6 + call LoadMenuDataHeader + call InterpretMenu2 + call WriteBackup + ret c + ld a, [MenuSelection2] + ld b, a + ld a, $4 + sub b + ld [wc70a], a + ld hl, Coins + ld c, a + ld a, [hli] + and a + jr nz, .asm_930ad + ld a, [hl] + cp c + jr nc, .asm_930ad + ld hl, UnknownText_0x930d1 + call PrintText + jr Function9307c +.asm_930ad + ld hl, Coins + 1 + ld a, [hl] + sub c + ld [hld], a + jr nc, .asm_930b6 + dec [hl] +.asm_930b6 + call WaitSFX + ld de, SFX_PAY_DAY + call PlaySFX + ld hl, UnknownText_0x930cc + call PrintText + and a + ret +; 930c7 (24:70c7) + +UnknownText_0x930c7: ; 0x930c7 + ; Bet how many coins? + text_jump UnknownText_0x1c5049 + db "@" +; 0x930cc + +UnknownText_0x930cc: ; 0x930cc + ; Start! + text_jump UnknownText_0x1c505e + db "@" +; 0x930d1 + +UnknownText_0x930d1: ; 0x930d1 + ; Not enough coins. + text_jump UnknownText_0x1c5066 + db "@" +; 0x930d6 + +MenuDataHeader_0x930d6: ; 0x930d6 + db $40 ; flags + db 10, 14 ; start coords + db 17, 19 ; end coords + dw MenuData2_0x930de + db 1 ; default option +; 0x930de + +MenuData2_0x930de: ; 0x930de + db $80 ; flags + db 3 ; items + db " 3@" + db " 2@" + db " 1@" +; 0x930e9 + +Function930e9: ; 930e9 (24:70e9) + ld hl, Coins + ld a, [hli] + or [hl] + jr nz, .asm_930fd + ld hl, UnknownText_9311a + call PrintText + ld c, 60 + call DelayFrames + jr .asm_93118 +.asm_930fd + ld hl, UnknownText_9311f + call PrintText + call LoadMenuTextBox + lb bc, 14, 12 + call PlaceYesNoBox + ld a, [MenuSelection2] + dec a + call WriteBackup + and a + jr nz, .asm_93118 + and a + ret +.asm_93118 + scf + ret +; 9311a (24:711a) + +UnknownText_9311a: ; 9311a + text_jump UnknownText_0x1c5079 + db "@" + +UnknownText_9311f: ; 9311f + text_jump UnknownText_0x1c5092 + db "@" + +Function93124: ; 93124 (24:7124) + ld a, [EffectFailed] + cp $ff + jr z, .asm_93151 + srl a + ld e, a + ld d, 0 + ld hl, .data_93145 + add hl, de + ld a, [hli] + ld [PlayerUsedMoves], a + ld e, a + ld a, [hl] + ld [wc711], a + ld d, a + callba MobileFn_105fe3 + ret + +.data_93145 + db $2c, $01 + db $32, $00 + db $06, $00 + db $08, $00 + db $0a, $00 + db $0f, $00 + +.asm_93151 + ld hl, wc711 + xor a + ld [hli], a + ld [hl], a + ret + +Function93158: ; 93158 (24:7158) + ld a, [EffectFailed] + cp $ff + jr nz, .asm_9316c + ld hl, UnknownText_0x931e0 + call PrintText + callba MobileFn_105fd0 + ret +.asm_9316c + srl a + ld e, a + ld d, 0 + ld hl, Unknown_93195 +rept 3 + add hl, de +endr + ld de, StringBuffer2 + ld bc, $4 + call CopyBytes + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .asm_93188 + push de + jp [hl] +.asm_93188 + ld hl, UnknownText_0x931b9 + call PrintText + callba MobileFn_105f9f + ret +; 93195 (24:7195) + +Unknown_93195: ; 93195 + db "300@" + dw Function931e5 + db "50@@" + dw Function9320b + db "6@@@" + dw Function93214 + db "8@@@" + dw Function93214 + db "10@@" + dw Function93214 + db "15@@" + dw Function93214 +; 931b9 + +UnknownText_0x931b9: ; 0x931b9 + start_asm +; 0x931ba + +Function931ba: ; 931ba + ld a, [EffectFailed] + add $25 + ldcoord_a 2, 13 + inc a + ldcoord_a 2, 14 + inc a + ldcoord_a 3, 13 + inc a + ldcoord_a 3, 14 + hlcoord 18, 17 + ld [hl], $ee + ld hl, UnknownText_0x931db +rept 4 + inc bc +endr + ret +; 931db + +UnknownText_0x931db: ; 0x931db + ; lined up! Won @ coins! + text_jump UnknownText_0x1c509f + db "@" +; 0x931e0 + +UnknownText_0x931e0: ; 0x931e0 + ; Darn! + text_jump UnknownText_0x1c50bb + db "@" +; 0x931e5 + +Function931e5: ; 931e5 + ld a, SFX_2ND_PLACE + call Function9331e + call WaitSFX + ld a, [wd002] + and a + jr nz, .asm_931ff + call Random + and $14 + ret z + ld a, $ff + ld [wc709], a + ret + +.asm_931ff + call Random + and $1c + ret z + ld a, $ff + ld [wc709], a + ret +; 9320b + +Function9320b: ; 9320b + ld a, SFX_3RD_PLACE + call Function9331e + call WaitSFX + ret +; 93214 + +Function93214: ; 93214 + ld a, SFX_PRESENT + call Function9331e + call WaitSFX + ret +; 9321d + +Function9321d: ; 9321d (24:721d) + ld hl, $b + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Jumptable_9322d +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_9322d: ; 9322d (24:722d) + dw Function93233 + dw Function93259 + dw Function93289 + + +Function93233: ; 93233 (24:7233) + ld hl, $e + add hl, bc + ld a, [hl] + and a + jr nz, .asm_93247 + ld a, $2 + ld [wcf64], a + ld hl, 0 + add hl, bc + ld [hl], $0 + ret +.asm_93247 + dec [hl] + ld hl, $b + add hl, bc + inc [hl] + ld hl, $c + add hl, bc + ld [hl], $30 + ld hl, $6 + add hl, bc + ld [hl], $0 + +Function93259: ; 93259 (24:7259) + ld hl, $c + add hl, bc + ld a, [hl] + cp $20 + jr c, .asm_93273 + dec [hl] + ld e, a + ld d, $70 + callba Functionce765 + ld a, e + ld hl, $7 + add hl, bc + ld [hl], a + ret +.asm_93273 + ld hl, $b + add hl, bc + inc [hl] + ld hl, $d + add hl, bc + ld [hl], $2 + ld a, $1 + ld [wcf64], a + ld a, SFX_PLACE_PUZZLE_PIECE_DOWN + call Function9331e + ret + +Function93289: ; 93289 (24:7289) + ld hl, $6 + add hl, bc + ld a, [hl] +rept 2 + inc [hl] +endr + cp $48 + jr nc, .asm_932a3 + and $3 + ret nz + ld hl, $d + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + ld [hSCY], a + ret +.asm_932a3 + ld hl, $b + add hl, bc + xor a + ld [hl], a + ld [hSCY], a + ret + +Function932ac: ; 932ac (24:72ac) + ld hl, $b + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Jumptable_932bc +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_932bc: ; 932bc (24:72bc) + dw Function932c2 + dw Function932e0 + dw Function932fc + + +Function932c2: ; 932c2 (24:72c2) + ld hl, $4 + add hl, bc + ld a, [hl] + inc [hl] + cp $68 + jr z, .asm_932d6 + and $f + ret nz + ld de, SFX_JUMP_OVER_LEDGE + call PlaySFX + ret +.asm_932d6 + ld hl, $b + add hl, bc + inc [hl] + ld a, $1 + ld [wcf64], a + +Function932e0: ; 932e0 (24:72e0) + ld a, [wcf64] + cp $2 + jr z, .asm_932f1 + cp $5 + ret nz + ld hl, 0 + add hl, bc + ld [hl], $0 + ret +.asm_932f1 + ld hl, $b + add hl, bc + inc [hl] + ld hl, $c + add hl, bc + ld [hl], $8 + +Function932fc: ; 932fc (24:72fc) + ld hl, $c + add hl, bc + ld a, [hl] + and a + jr z, .asm_93306 + dec [hl] + ret +.asm_93306 + ld hl, $b + add hl, bc + dec [hl] + push bc + ld de, $606c + ld a, $8 + call Function3b2a + pop bc + ret +; 93316 (24:7316) + +Function93316: ; 93316 + push bc + ld c, 16 + call DelayFrames + pop bc + ret +; 9331e + +Function9331e: ; 9331e (24:731e) + push de + ld e, a + ld d, 0 + call PlaySFX + pop de + ret +; 93327 (24:7327) + +Unknown_93327: ; 93327 + db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14 +Unknown_93339: ; 93339 + db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08 +Unknown_9334b: ; 9334b + db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08 +; 9335d + +SlotsTilemap: ; 9335d +INCBIN "gfx/slots.tilemap" +; 9344d + +Slots1LZ: ; 9344d +INCBIN "gfx/slots_1.2bpp.lz" +; 935cd + +Slots2LZ: ; 935cd +INCBIN "gfx/slots_2.2bpp.lz" +; 9382d + +Slots3LZ: ; 9382d +INCBIN "gfx/slots_3.2bpp.lz" +; 93a3d diff --git a/engine/specials.asm b/engine/specials.asm index c1e9ff95b..21d391faa 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -65,14 +65,14 @@ SpecialsPointers:: ; c029 add_special Special_SlotMachine add_special Special_CardFlip add_special Special_DummyNonfunctionalGameCornerGame - add_special Special_WhiteBGMapBufferScreen - add_special FadeBlackBGMap + add_special Special_ClearBGPalettesBufferScreen + add_special FadeOutPalettes add_special Special_BattleTowerFade add_special Special_FadeBlackQuickly - add_special FadeInBGMap + add_special FadeInPalettes add_special Special_FadeInQuickly add_special Special_ReloadSpritesNoPalettes - add_special WhiteBGMap + add_special ClearBGPalettes add_special UpdateTimePals add_special ClearTileMap add_special UpdateSprites @@ -465,8 +465,8 @@ UnknownText_0xc3d6: ; 0xc3d6 db "@" ; 0xc3db -Special_WhiteBGMapBufferScreen: ; c3db - call WhiteBGMap +Special_ClearBGPalettesBufferScreen: ; c3db + call ClearBGPalettes call BufferScreen ret ; c3e2 diff --git a/engine/startmenu.asm b/engine/startmenu.asm index b7287be83..1c7768850 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -139,7 +139,7 @@ endr ; 126b7 .Clear ; 126b7 - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call Function2bae call .DrawMenuAccount_ @@ -529,7 +529,7 @@ StartMenu_Pokemon: ; 12976 .choosemenu xor a ld [PartyMenuActionText], a ; Choose a POKéMON. - call WhiteBGMap + call ClearBGPalettes .menu callba Function5004f @@ -1449,7 +1449,7 @@ MonMenu_RockSmash: ; 12f3b ; 12f50 MonMenu_SweetScent: ; 12f50 - callba DoMovementFunctionc + callba SweetScentFromMenu ld b, $4 ld a, $2 ret @@ -1466,7 +1466,7 @@ Function12f5b: ; 12f5b ld a, b ld [Options], a push af - call WhiteBGMap + call ClearBGPalettes pop af ret ; 12f73 @@ -1527,7 +1527,7 @@ ManagePokemonMoves: ; 12fba call MoveScreenLoop pop af ld [Options], a - call WhiteBGMap + call ClearBGPalettes .egg ld a, $0 @@ -1753,7 +1753,7 @@ String_1316b: ; 1316b ; 13172 SetUpMoveScreenBG: ; 13172 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm index c898eae14..a886dbbf3 100644 --- a/engine/std_scripts.asm +++ b/engine/std_scripts.asm @@ -302,7 +302,7 @@ RadioTowerRocketsScript: end BugContestResultsWarpScript: - special WhiteBGMap + special ClearBGPalettes scall BugContestResults_CopyContestantsToResults setevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY clearevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm index bdfcc8b05..1dbd9b2ee 100644 --- a/engine/timeofdaypals.asm +++ b/engine/timeofdaypals.asm @@ -116,7 +116,7 @@ _UpdateTimePals:: ; 8c070 ret ; 8c079 -FadeInBGMap:: ; 8c079 +FadeInPalettes:: ; 8c079 ld c, $12 call GetTimePalFade ld b, $4 @@ -124,7 +124,7 @@ FadeInBGMap:: ; 8c079 ret ; 8c084 -FadeBlackBGMap:: ; 8c084 +FadeOutPalettes:: ; 8c084 call Function8c0c1 ld c, $9 call GetTimePalFade diff --git a/engine/title.asm b/engine/title.asm index d29c90a23..a9b991e6b 100644 --- a/engine/title.asm +++ b/engine/title.asm @@ -1,6 +1,6 @@ _TitleScreen: ; 10ed67 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap diff --git a/event/basement_key.asm b/event/basement_key.asm new file mode 100755 index 000000000..605b2af88 --- /dev/null +++ b/event/basement_key.asm @@ -0,0 +1,34 @@ +_BasementKey: ; 507b4 +; Are we even in the right map to use this? + ld a, [MapGroup] + cp GROUP_WAREHOUSE_ENTRANCE + jr nz, .nope + + ld a, [MapNumber] + cp MAP_WAREHOUSE_ENTRANCE + jr nz, .nope +; Are we on the tile in front of the door? + call GetFacingTileCoord + ld a, d + cp 22 + jr nz, .nope + ld a, e + cp 10 + jr nz, .nope +; Let's use the Basement Key + ld hl, .BasementKeyScript + call QueueScript + ld a, 1 + ld [wd0ec], a + ret + +.nope + ld a, $0 + ld [wd0ec], a + ret +; 507e1 + +.BasementKeyScript: ; 0x507e1 + loadmovesprites + farjump BasementDoorScript +; 0x507e6 diff --git a/event/card_key.asm b/event/card_key.asm new file mode 100755 index 000000000..b442ba184 --- /dev/null +++ b/event/card_key.asm @@ -0,0 +1,39 @@ +_CardKey: ; 50779 +; Are we even in the right map to use this? + ld a, [MapGroup] + cp GROUP_RADIO_TOWER_3F + jr nz, .nope + + ld a, [MapNumber] + cp MAP_RADIO_TOWER_3F + jr nz, .nope +; Are we facing the slot? + ld a, [PlayerDirection] + and $c + cp OW_UP + jr nz, .nope + + call GetFacingTileCoord + ld a, d + cp 18 + jr nz, .nope + ld a, e + cp 6 + jr nz, .nope +; Let's use the Card Key. + ld hl, .CardKeyScript + call QueueScript + ld a, $1 + ld [wd0ec], a + ret + +.nope + ld a, $0 + ld [wd0ec], a + ret +; 507af + +.CardKeyScript: ; 0x507af + loadmovesprites + farjump MapRadioTower3FSignpost2Script +; 0x507b4 diff --git a/event/poisonstep.asm b/event/poisonstep.asm new file mode 100755 index 000000000..1fafd63a5 --- /dev/null +++ b/event/poisonstep.asm @@ -0,0 +1,162 @@ +DoPoisonStep:: ; 505da + ld a, [PartyCount] + and a + jr z, .no_faint + + xor a + ld c, 7 + ld hl, EngineBuffer1 +.loop_clearEngineBuffer1 + ld [hli], a + dec c + jr nz, .loop_clearEngineBuffer1 + + xor a + ld [CurPartyMon], a +.loop_check_poison + call .DamageMonIfPoisoned + jr nc, .not_poisoned +; the output flag is stored in c, copy it to the ([CurPartyMon] + 2)nd EngineBuffer +; and set the corresponding flag in EngineBuffer1 + ld a, [CurPartyMon] + ld e, a + ld d, 0 + ld hl, EngineBuffer2 + add hl, de + ld [hl], c + ld a, [EngineBuffer1] + or c + ld [EngineBuffer1], a + +.not_poisoned + ld a, [PartyCount] + ld hl, CurPartyMon + inc [hl] + cp [hl] + jr nz, .loop_check_poison + + ld a, [EngineBuffer1] + and %10 + jr nz, .someone_has_fainted + ld a, [EngineBuffer1] + and %01 + jr z, .no_faint + call .PlayPoisonSFX + xor a + ret + +.someone_has_fainted + ld a, BANK(.Script_MonFaintedToPoison) + ld hl, .Script_MonFaintedToPoison + call CallScript + scf + ret + +.no_faint + xor a + ret +; 5062e + +.DamageMonIfPoisoned: ; 5062e +; check if mon is poisoned, return if not + ld a, MON_STATUS + call GetPartyParamLocation + ld a, [hl] + and 1 << PSN + ret z + +; check if mon is already fainted, return if so + ld a, MON_HP + call GetPartyParamLocation + ld a, [hli] + ld b, a + ld c, [hl] + or c + ret z + +; do 1 HP damage + dec bc + ld [hl], c + dec hl + ld [hl], b + +; check if mon has fainted as a result of poison damage + ld a, b + or c + jr nz, .not_fainted + +; the mon has fainted, reset its status, set carry, and return %10 + ld a, MON_STATUS + call GetPartyParamLocation + ld [hl], 0 + ld c, %10 + scf + ret + +.not_fainted +; set carry and return %01 + ld c, %01 + scf + ret +; 50658 + +.PlayPoisonSFX: ; 50658 + ld de, SFX_POISON + call PlaySFX + ld b, $2 + predef Functioncbcdd + call DelayFrame + ret +; 50669 + +.Script_MonFaintedToPoison: ; 50669 + callasm .PlayPoisonSFX + loadfont + callasm .CheckWhitedOut + iffalse .whiteout + loadmovesprites + end +; 50677 + +.whiteout: ; 50677 + farjump Script_OverworldWhiteout +; 5067b + +.CheckWhitedOut: ; 5067b + xor a + ld [CurPartyMon], a + ld de, EngineBuffer2 +.party_loop + push de + ld a, [de] + and %10 + jr z, .mon_not_fainted + ld c, HAPPINESS_POISONFAINT + callba ChangeHappiness + callba GetPartyNick + ld hl, .PoisonFaintText + call PrintText + +.mon_not_fainted + pop de + inc de + ld hl, CurPartyMon + inc [hl] + ld a, [PartyCount] + cp [hl] + jr nz, .party_loop + predef CheckPlayerPartyForFitPkmn + ld a, d + ld [ScriptVar], a + ret +; 506b2 + +.PoisonFaintText: ; 506b2 + text_jump UnknownText_0x1c0acc + db "@" +; 506b7 + +.PoisonWhiteOutText: ; 506b7 + text_jump UnknownText_0x1c0ada + db "@" +; 506bc diff --git a/event/sacred_ash.asm b/event/sacred_ash.asm new file mode 100755 index 000000000..00b80bb46 --- /dev/null +++ b/event/sacred_ash.asm @@ -0,0 +1,74 @@ + +_SacredAsh: ; 507e6 + ld a, $0 + ld [wd0ec], a + call CheckAnyFaintedMon + ret nc + + ld hl, SacredAshScript + call QueueScript + ld a, $1 + ld [wd0ec], a + ret +; 507fb + +CheckAnyFaintedMon: ; 507fb + ld de, PARTYMON_STRUCT_LENGTH + ld bc, PartySpecies + ld hl, PartyMon1HP + ld a, [PartyCount] + and a + ret z + +.loop + push af + push hl + ld a, [bc] + inc bc + cp EGG + jr z, .next + + ld a, [hli] + or [hl] + jr z, .done + +.next + pop hl + add hl, de + pop af + dec a + jr nz, .loop + xor a + ret + +.done + pop hl + pop af + scf + ret +; 50821 + +SacredAshScript: ; 0x50821 + special HealParty + reloadmappart + playsound SFX_WARP_TO + special FadeOutPalettes + special FadeInPalettes + special FadeOutPalettes + special FadeInPalettes + special FadeOutPalettes + special FadeInPalettes + waitbutton + writetext UnknownText_0x50845 + playsound SFX_CAUGHT_MON + waitbutton + closetext + loadmovesprites + end +; 0x50845 + +UnknownText_0x50845: ; 0x50845 + ; 's #MON were all healed! + text_jump UnknownText_0x1c0b65 + db "@" +; 0x5084a diff --git a/event/squirtbottle.asm b/event/squirtbottle.asm new file mode 100755 index 000000000..b59cdc3f1 --- /dev/null +++ b/event/squirtbottle.asm @@ -0,0 +1,51 @@ +_Squirtbottle: ; 50730 + ld hl, UnknownScript_0x5073c + call QueueScript + ld a, $1 + ld [wd0ec], a + ret +; 5073c + +UnknownScript_0x5073c: ; 0x5073c + reloadmappart + special UpdateTimePals + callasm Function50753 + iffalse UnknownScript_0x5074b + farjump WateredWeirdTreeScript +; 0x5074b + +UnknownScript_0x5074b: ; 0x5074b + jumptext UnknownText_0x5074e +; 0x5074e + +UnknownText_0x5074e: ; 0x5074e + ; sprinkled water. But nothing happened… + text_jump UnknownText_0x1c0b3b + db "@" +; 0x50753 + +Function50753: ; 50753 + ld a, [MapGroup] + cp GROUP_ROUTE_36 + jr nz, .asm_50774 + + ld a, [MapNumber] + cp MAP_ROUTE_36 + jr nz, .asm_50774 + + callba GetFacingObject + jr c, .asm_50774 + + ld a, d + cp $17 + jr nz, .asm_50774 + + ld a, $1 + ld [ScriptVar], a + ret + +.asm_50774 + xor a + ld [ScriptVar], a + ret +; 50779 diff --git a/event/sweet_scent.asm b/event/sweet_scent.asm new file mode 100755 index 000000000..ebe0d4266 --- /dev/null +++ b/event/sweet_scent.asm @@ -0,0 +1,75 @@ +SweetScentFromMenu: ; 506bc + ld hl, UnknownScript_0x506c8 + call QueueScript + ld a, $1 + ld [wd0ec], a + ret +; 506c8 + +UnknownScript_0x506c8: ; 0x506c8 + reloadmappart + special UpdateTimePals + callasm GetPartyNick + writetext UnknownText_0x50726 + closetext + callasm SweetScentEncounter + iffalse UnknownScript_0x506e9 + checkflag ENGINE_BUG_CONTEST_TIMER + iftrue UnknownScript_0x506e5 + battlecheck + startbattle + returnafterbattle + end +; 0x506e5 + +UnknownScript_0x506e5: ; 0x506e5 + farjump BugCatchingContestBattleScript +; 0x506e9 + +UnknownScript_0x506e9: ; 0x506e9 + writetext UnknownText_0x5072b + closetext + loadmovesprites + end +; 0x506ef + +SweetScentEncounter: ; 506ef + callba CanUseSweetScent + jr nc, .no_battle + ld hl, StatusFlags2 + bit 2, [hl] + jr nz, .not_in_bug_contest + callba GetMapEncounterRate + ld a, b + and a + jr z, .no_battle + callba ChooseWildEncounter + jr nz, .no_battle + jr .start_battle + +.not_in_bug_contest + callba ChooseWildEncounter_BugContest + +.start_battle + ld a, $1 + ld [ScriptVar], a + ret + +.no_battle + xor a + ld [ScriptVar], a + ld [BattleType], a + ret +; 50726 + +UnknownText_0x50726: ; 0x50726 + ; used SWEET SCENT! + text_jump UnknownText_0x1c0b03 + db "@" +; 0x5072b + +UnknownText_0x5072b: ; 0x5072b + ; Looks like there's nothing here… + text_jump UnknownText_0x1c0b1a + db "@" +; 0x50730 diff --git a/event/whiteout.asm b/event/whiteout.asm index 6cf6976cf..5cc0a07f9 100755 --- a/event/whiteout.asm +++ b/event/whiteout.asm @@ -10,7 +10,7 @@ Script_OverworldWhiteout:: ; 0x124c8 Script_Whiteout: ; 0x124ce writetext .WhitedOutText closetext - special FadeBlackBGMap + special FadeOutPalettes pause 40 special HealParty checkflag ENGINE_BUG_CONTEST_TIMER diff --git a/gfx/unknown/0b84f2.2bpp b/gfx/overworld/chris_fish.2bpp Binary files differindex c3609ab54..c3609ab54 100644 --- a/gfx/unknown/0b84f2.2bpp +++ b/gfx/overworld/chris_fish.2bpp diff --git a/gfx/unknown/0b8582.2bpp b/gfx/overworld/kris_fish.2bpp Binary files differindex 9d47dc140..9d47dc140 100644 --- a/gfx/unknown/0b8582.2bpp +++ b/gfx/overworld/kris_fish.2bpp @@ -530,7 +530,7 @@ CompareLong:: ; 31e4 ; 31f3 -WhiteBGMap:: ; 31f3 +ClearBGPalettes:: ; 31f3 call ClearPalettes WaitBGMap:: ; 31f6 ; Tell VBlank to update BG Map diff --git a/home/audio.asm b/home/audio.asm index a41fdbf00..9756d0460 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -1,6 +1,6 @@ ; Audio interfaces. -SoundRestart:: ; 3b4e +MapSetup_Sound_Off:: ; 3b4e push hl push de @@ -9,11 +9,11 @@ SoundRestart:: ; 3b4e ld a, [hROMBank] push af - ld a, BANK(_SoundRestart) + ld a, BANK(_MapSetup_Sound_Off) ld [hROMBank], a ld [MBC3RomBank], a - call _SoundRestart + call _MapSetup_Sound_Off pop af ld [hROMBank], a @@ -81,7 +81,7 @@ PlayMusic:: ; 3b97 ld a, [hROMBank] push af - ld a, BANK(_PlayMusic) ; and BANK(_SoundRestart) + ld a, BANK(_PlayMusic) ; and BANK(_MapSetup_Sound_Off) ld [hROMBank], a ld [MBC3RomBank], a @@ -93,7 +93,7 @@ PlayMusic:: ; 3b97 jr .end .nomusic - call _SoundRestart + call _MapSetup_Sound_Off .end pop af diff --git a/home/init.asm b/home/init.asm index ee3e8e4c1..753138748 100644 --- a/home/init.asm +++ b/home/init.asm @@ -1,6 +1,6 @@ Reset:: ; 150 di - call SoundRestart + call MapSetup_Sound_Off xor a ld [hMapAnims], a call ClearPalettes @@ -168,7 +168,7 @@ Init:: ; 17d predef Function9853 - call SoundRestart + call MapSetup_Sound_Off xor a ld [wMapMusic], a jp GameInit diff --git a/home/map.asm b/home/map.asm index bb73f4e03..2e80fb3f6 100644 --- a/home/map.asm +++ b/home/map.asm @@ -209,8 +209,8 @@ endr ret ; 222a -Function222a:: ; 222a - ld a, MAPSETUP_10 +ReturnToMapFromSubmenu:: ; 222a + ld a, MAPSETUP_SUBMENU ld [hMapEntryMethod], a callba RunMapSetupScript xor a @@ -1099,13 +1099,14 @@ Call_a_de:: ; 26b7 ; 26c7 GetMovementData:: ; 26c7 +; Initialize the movement data for person c at b:hl ld a, [hROMBank] push af ld a, b rst Bankswitch ld a, c - call Function19e9 + call LoadMovementDataPointer pop hl ld a, h @@ -1964,7 +1965,7 @@ FadeToMenu:: ; 2b29 xor a ld [hBGMapMode], a call LoadStandardMenuDataHeader - callba FadeBlackBGMap + callba FadeOutPalettes call ClearSprites call DisableSpriteUpdates ret @@ -1972,7 +1973,7 @@ FadeToMenu:: ; 2b29 Function2b3c:: ; 2b3c - call WhiteBGMap + call ClearBGPalettes call Function2bae call UpdateSprites call Call_ExitMenu @@ -1981,7 +1982,7 @@ Function2b3c:: ; 2b3c ; 2b4d Function2b4d:: ; 2b4d - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call Function2bae call UpdateSprites @@ -1993,7 +1994,7 @@ Function2b5c:: ; 2b5c call GetSGBLayout callba Function49409 call Function3200 - callba FadeInBGMap + callba FadeInPalettes call EnableSpriteUpdates ret ; 2b74 @@ -2003,7 +2004,7 @@ Function2b74:: ; 0x2b74 push af ld a, $1 ld [wc2ce], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call Function2bae hlcoord 0, 12 diff --git a/home/map_objects.asm b/home/map_objects.asm index d52530af1..e5d6dab01 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -428,7 +428,8 @@ Function19b8:: ; 19b8 -Function19e9:: ; 19e9 +LoadMovementDataPointer:: ; 19e9 +; Load the movement data pointer for person a. ld [wMovementPerson], a ld a, [hROMBank] ld [wMovementDataPointer], a @@ -439,12 +440,15 @@ Function19e9:: ; 19e9 ld a, [wMovementPerson] call CheckObjectVisibility ret c + ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], SPRITEMOVEDATA_SCRIPTED + ld hl, OBJECT_09 add hl, bc ld [hl], 0 + ld hl, VramState set 7, [hl] and a @@ -589,14 +593,15 @@ endr ; 1aae Function1aae:: ; 1aae +; Switch to the movement data bank ld a, [hROMBank] push af ld a, [hli] rst Bankswitch - +; Load the current script byte as given by OBJECT_MOVEMENT_BYTE_INDEX, and increment OBJECT_MOVEMENT_BYTE_INDEX ld a, [hli] ld d, [hl] - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc add [hl] ld e, a diff --git a/home/serial.asm b/home/serial.asm index 8b9656262..fdaba6cc5 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -6,7 +6,7 @@ Serial:: ; 6ef push de push hl - ld a, [$ffc9] + ld a, [hFFC9] and a jr nz, .asm_71c @@ -77,7 +77,7 @@ Serial:: ; 6ef .asm_752 ld a, $1 - ld [$ffca], a + ld [hFFCA], a ld a, $fe ld [hSerialSend], a @@ -91,7 +91,7 @@ Serial:: ; 6ef Function75f:: ; 75f ld a, $1 - ld [$ffcc], a + ld [hFFCC], a .asm_763 ld a, [hl] ld [hSerialSend], a @@ -103,7 +103,7 @@ Function75f:: ; 75f .asm_76e dec a jr nz, .asm_76e - ld a, [$ffcc] + ld a, [hFFCC] and a ld a, b pop bc @@ -112,7 +112,7 @@ Function75f:: ; 75f cp $fd jr nz, .asm_763 xor a - ld [$ffcc], a + ld [hFFCC], a jr .asm_763 .asm_782 @@ -127,7 +127,7 @@ Function75f:: ; 75f Function78a:: ; 78a xor a - ld [$ffca], a + ld [hFFCA], a ld a, [hLinkPlayerNumber] cp $2 jr nz, .asm_79b @@ -137,7 +137,7 @@ Function78a:: ; 78a ld [rSC], a .asm_79b - ld a, [$ffca] + ld a, [hFFCA] and a jr nz, .asm_7e5 ld a, [hLinkPlayerNumber] @@ -182,7 +182,7 @@ Function78a:: ; 78a .asm_7e5 xor a - ld [$ffca], a + ld [hFFCA], a ld a, [rIE] and $f sub $8 @@ -251,7 +251,7 @@ Function83b:: ; 83b ld de, wcf51 ld c, $2 ld a, $1 - ld [$ffcc], a + ld [hFFCC], a .asm_847 call DelayFrame ld a, [hl] @@ -259,10 +259,10 @@ Function83b:: ; 83b call Function78a ld b, a inc hl - ld a, [$ffcc] + ld a, [hFFCC] and a ld a, $0 - ld [$ffcc], a + ld [hFFCC], a jr nz, .asm_847 ld a, b ld [de], a @@ -68,14 +68,18 @@ hPrintNum10 EQU $ffbc hUsedSpriteIndex EQU $ffbd hUsedSpriteTile EQU $ffbe +hFFBF EQU $ffbf +hFFC0 EQU $ffc0 +hFFC1 EQU $ffc1 +hFFC2 EQU $ffc2 hMoneyTemp EQU $ffc3 hLCDStatCustom EQU $ffc6 hFFC9 EQU $ffc9 - +hFFCA EQU $ffca hLinkPlayerNumber EQU $ffcb - +hFFCC EQU $ffcc hSerialSend EQU $ffcd hSerialReceive EQU $ffce diff --git a/items/item_effects.asm b/items/item_effects.asm index f47e2669e..2b12b587e 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -714,7 +714,7 @@ endr and a jr z, .toss - call WhiteBGMap + call ClearBGPalettes call ClearTileMap .toss @@ -1866,7 +1866,7 @@ UseItem_SelectMon: ; f1f9 (3:71f9) push hl push de push bc - call WhiteBGMap + call ClearBGPalettes call Functionf21c pop bc pop de diff --git a/macros/movement.asm b/macros/movement.asm index d0b97fb8c..2b5720832 100644 --- a/macros/movement.asm +++ b/macros/movement.asm @@ -303,16 +303,44 @@ hide_person: macro db movement_hide_person ; $3d endm - enum movement_show_person -show_person: macro - db movement_show_person ; $3e + enum movement_step_sleep_1 +step_sleep_1: macro + db movement_step_sleep_1 ; $3e endm -__enum__ = $45 + enum movement_step_sleep_2 +step_sleep_2: macro + db movement_step_sleep_2 ; $3f + endm + + enum movement_step_sleep_3 +step_sleep_3: macro + db movement_step_sleep_3 ; $40 + endm + + enum movement_step_sleep_4 +step_sleep_4: macro + db movement_step_sleep_4 ; $41 + endm + + enum movement_step_sleep_5 +step_sleep_5: macro + db movement_step_sleep_5 ; $42 + endm - enum movement_accelerate_last -accelerate_last: macro - db movement_accelerate_last ; $45 + enum movement_step_sleep_6 +step_sleep_6: macro + db movement_step_sleep_6 ; $43 + endm + + enum movement_step_sleep_7 +step_sleep_7: macro + db movement_step_sleep_7 ; $44 + endm + + enum movement_step_sleep_8 +step_sleep_8: macro + db movement_step_sleep_8 ; $45 endm enum movement_step_sleep @@ -333,6 +361,11 @@ remove_person: macro db movement_remove_person ; $49 endm + enum movement_step_loop +step_loop: macro + db movement_step_loop ; $4a + endm + __enum__ = $4c enum movement_teleport_from @@ -362,9 +395,9 @@ fish_got_bite: macro db movement_fish_got_bite ; $51 endm - enum movement_fish_got_bite_2 -fish_got_bite_2: macro - db movement_fish_got_bite_2 ; $52 + enum movement_fish_cast_rod +fish_cast_rod: macro + db movement_fish_cast_rod ; $52 endm enum movement_hide_emote @@ -439,7 +439,7 @@ Continue: ; 5d65 ld [MusicFadeIDLo], a ld a, MUSIC_NONE / $100 ld [MusicFadeIDHi], a - call WhiteBGMap + call ClearBGPalettes call Function5df0 call WriteBackup call ClearTileMap @@ -451,7 +451,7 @@ Continue: ; 5d65 ld a, [wSpawnAfterChampion] cp SPAWN_LANCE jr z, .SpawnAfterE4 - ld a, MAPSETUP_02 + ld a, MAPSETUP_CONTINUE ld [hMapEntryMethod], a jp FinishContinueFunction @@ -1085,7 +1085,7 @@ Function6219: ; 6219 jr nc, .loop call ClearSprites - call WhiteBGMap + call ClearBGPalettes pop af ld [rSVBK], a @@ -1467,7 +1467,7 @@ CopyrightString: ; 63fd GameInit:: ; 642e callba Function14f1c call ResetTextRelatedRAM - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a @@ -3186,7 +3186,7 @@ Function8000: ; 8000 call DisableSpriteUpdates xor a ld [hBGMapMode], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites hlcoord 0, 0 ld bc, TileMapEnd - TileMap @@ -3603,6 +3603,7 @@ Function8286: ; 8286 ld hl, OBJECT_MAP_OBJECT_INDEX add hl, de ld [hl], a + ld a, [wc2f4] call Function1a61 ld a, [wc2f3] @@ -3610,30 +3611,39 @@ Function8286: ; 8286 add hl, de or [hl] ld [hl], a + ld a, [wc2f7] call Function82d5 + ld a, [wc2f6] call Function82f1 + ld a, [wc2f1] ld hl, OBJECT_SPRITE add hl, de ld [hl], a + ld a, [wc2f2] ld hl, OBJECT_SPRITE_TILE add hl, de ld [hl], a + ld hl, OBJECT_09 add hl, de ld [hl], $0 + ld hl, OBJECT_FACING_STEP add hl, de ld [hl], $ff + ld a, [wc2f8] call Function830d + ld a, [wc2f5] ld hl, OBJECT_32 add hl, de ld [hl], a + and a ret ; 82d5 @@ -3694,7 +3704,7 @@ Function830d: ; 830d TrainerWalkToPlayer: ; 831e ld a, [hLastTalked] call InitMovementBuffer - ld a, movement_show_person + ld a, movement_step_sleep_1 call AppendToMovementBuffer ld a, [wd03f] dec a @@ -5269,7 +5279,7 @@ FlyFunction: ; ca3b special WarpToSpawnPoint callasm DelayLoadingNewSprites writecode VAR_MOVEMENT, $0 - newloadmap MAPSETUP_12 + newloadmap MAPSETUP_FLY callasm Function8cb33 special WaitSFX callasm Functioncacb @@ -5537,7 +5547,7 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap MAPSETUP_05 + newloadmap MAPSETUP_DOOR playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcc5d end @@ -5635,7 +5645,7 @@ Script_UsedTeleport: ; 0xccbb farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap MAPSETUP_04 + newloadmap MAPSETUP_TELEPORT playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcce3 end @@ -6333,14 +6343,14 @@ MovementData_0xd062: ; d062 fish_got_bite fish_got_bite fish_got_bite - show_person + step_sleep_1 show_emote step_end ; d069 MovementData_0xd069: ; d069 hide_emote - fish_got_bite_2 + fish_cast_rod step_end ; d06c @@ -6362,7 +6372,7 @@ Script_FishCastRod: ; 0xd07c loadvar hBGMapMode, $0 special UpdateTimePals loademote EMOTE_09 - callasm Functionb84b3 + callasm LoadFishingGFX loademote EMOTE_SHOCK applymovement PLAYER, MovementData_0xd093 pause 40 @@ -6370,7 +6380,7 @@ Script_FishCastRod: ; 0xd07c ; 0xd093 MovementData_0xd093: ; d093 - fish_got_bite_2 + fish_cast_rod step_end ; d095 @@ -9801,7 +9811,7 @@ Functione43f: ; e43f (3:643f) ret Functione443: ; e443 (3:6443) - ld hl, MenuDataHeader_0xe46f + ld hl, .MenuDataHeader call LoadMenuDataHeader ld a, $1 .loop @@ -9815,7 +9825,7 @@ Functione443: ; e443 (3:6443) ld a, [wMenuCursorBuffer] push af ld a, [MenuSelection] - ld hl, Jumptable_e4ba + ld hl, .Jumptable rst JumpTable pop bc ld a, b @@ -9825,38 +9835,38 @@ Functione443: ; e443 (3:6443) ret ; e46f (3:646f) -MenuDataHeader_0xe46f: ; 0xe46f +.MenuDataHeader: ; 0xe46f db $40 ; flags db 00, 00 ; start coords db 17, 19 ; end coords - dw MenuData2_0xe477 + dw .MenuData2 db 1 ; default option ; 0xe477 -MenuData2_0xe477: ; 0xe477 +.MenuData2: ; 0xe477 db $80 ; flags db 0 ; items - dw MenuItems_e4c4 + dw .items dw Function1f79 - dw Strings_e47f + dw .strings ; 0xe47f -Strings_e47f: ; e47f +.strings: ; e47f db "WITHDRAW <PK><MN>@" db "DEPOSIT <PK><MN>@" db "CHANGE BOX@" db "MOVE <PK><MN> W/O MAIL@" db "SEE YA!@" -Jumptable_e4ba: ; e4ba (3:64ba) - dw Functione559 - dw Functione4fe - dw Functione583 - dw Functione4cd - dw Functione4cb +.Jumptable: ; e4ba (3:64ba) + dw BillsPC_WithdrawMenu + dw BillsPC_DepositMenu + dw BillsPC_ChangeBoxMenu + dw BillsPC_MovePKMNMenu + dw BillsPC_SeeYa ; e4c4 -MenuItems_e4c4: ; e4c4 +.items: ; e4c4 db 5 db 0 ; WITHDRAW db 1; DEPOSIT @@ -9866,27 +9876,27 @@ MenuItems_e4c4: ; e4c4 db -1 ; e4cb -Functione4cb: ; e4cb +BillsPC_SeeYa: ; e4cb scf ret ; e4cd -Functione4cd: ; e4cd +BillsPC_MovePKMNMenu: ; e4cd call LoadStandardMenuDataHeader callba Function44781 - jr nc, .asm_e4e0 + jr nc, .no_mail ld hl, UnknownText_0xe4f9 call PrintText - jr .asm_e4f4 + jr .quit -.asm_e4e0 +.no_mail callba Function14b34 - jr c, .asm_e4f4 - callba Functione2759 - call Function222a + jr c, .quit + callba _MovePKMNWithoutMail + call ReturnToMapFromSubmenu call ClearPCItemScreen -.asm_e4f4 +.quit call WriteBackup and a ret @@ -9898,10 +9908,10 @@ UnknownText_0xe4f9: ; 0xe4f9 db "@" ; 0xe4fe -Functione4fe: ; e4fe (3:64fe) +BillsPC_DepositMenu: ; e4fe (3:64fe) call LoadStandardMenuDataHeader - callba Functione2391 - call Function222a + callba _DepositPKMN + call ReturnToMapFromSubmenu call ClearPCItemScreen call WriteBackup and a @@ -9974,10 +9984,10 @@ CheckCurPartyMonFainted: ; e538 ; e559 -Functione559: ; e559 (3:6559) +BillsPC_WithdrawMenu: ; e559 (3:6559) call LoadStandardMenuDataHeader - callba Functione2583 - call Function222a + callba _WithdrawPKMN + call ReturnToMapFromSubmenu call ClearPCItemScreen call WriteBackup and a @@ -10004,8 +10014,8 @@ UnknownText_0xe57e: ; 0xe57e db "@" ; 0xe583 -Functione583: ; e583 (3:6583) - callba Functione35aa +BillsPC_ChangeBoxMenu: ; e583 (3:6583) + callba _ChangeBox and a ret @@ -10013,7 +10023,7 @@ ClearPCItemScreen: ; e58b call DisableSpriteUpdates xor a ld [hBGMapMode], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites hlcoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH @@ -10395,7 +10405,7 @@ Function11e75: ; 11e75 (4:5e75) ret Function11e9a: ; 11e9a (4:5e9a) - call WhiteBGMap + call ClearBGPalettes call DisableLCD call Function11c51 ld de, VTiles0 tile $00 @@ -11635,7 +11645,7 @@ Function156d9: ; 156d9 ret .asm_156f9 - call WhiteBGMap + call ClearBGPalettes ld c, $1 ret ; 156ff @@ -13144,7 +13154,7 @@ Function16be4: ; 16be4 push af set NO_TEXT_SCROLL, a ld [Options], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld de, UnownDexATile @@ -13225,7 +13235,7 @@ Function16be4: ; 16be4 ld [Options], a pop af ld [hInMenu], a - call Function222a + call ReturnToMapFromSubmenu ret ; 16ca0 @@ -15710,7 +15720,7 @@ Function25105: ; 25105 ret Function2513b: ; 2513b (9:513b) - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -17997,7 +18007,7 @@ LevelUpHappinessMod: ; 2709e INCLUDE "trainers/dvs.asm" Function2715c: ; 2715c - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, [BattleType] cp BATTLETYPE_TUTORIAL @@ -19614,7 +19624,7 @@ INCBIN "gfx/battle/balls.2bpp" ; 2c1b2 _ShowLinkBattleParticipants: ; 2c1b2 - call WhiteBGMap + call ClearBGPalettes call LoadFontsExtra hlcoord 2, 3 ld b, 9 @@ -20222,7 +20232,7 @@ Function2c7fb: ; 2c7fb ld de, wd066 ld bc, $c call CopyBytes - call WhiteBGMap + call ClearBGPalettes Function2c80a: ; 2c80a callba Function5004f @@ -23442,7 +23452,7 @@ Function4484a: ; 0x4484a call FadeToMenu xor a ld [PartyMenuActionText], a - call WhiteBGMap + call ClearBGPalettes .asm_448dc callba Function5004f callba Function50405 @@ -23564,7 +23574,7 @@ Function4802f: ; 4802f (12:402f) ld a, c and a call z, Function48000 - call WhiteBGMap + call ClearBGPalettes call Function48d3d ld a, [wd479] bit 1, a @@ -23587,7 +23597,7 @@ Function4802f: ; 4802f (12:402f) lb bc, BANK(GFX_488cb), 1 call Request1bpp call Function4a3a7 - call WhiteBGMap + call ClearBGPalettes ld a, [wd002] bit 6, a jr z, .asm_4808a @@ -23604,7 +23614,7 @@ Function4802f: ; 4802f (12:402f) call DelayFrames ld b, $1 call Function4930f - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $2 ld c, $14 @@ -23698,7 +23708,7 @@ asm_4815f: ; 4815f (12:415f) .asm_48177 jp Function48272 .asm_4817a - call WhiteBGMap + call ClearBGPalettes call Function48d30 pop bc call ClearTileMap @@ -23811,7 +23821,7 @@ Function4820d: ; 4820d (12:420d) call DelayFrames .asm_4825c - call WhiteBGMap + call ClearBGPalettes call Function48d30 pop bc call ClearTileMap @@ -24223,7 +24233,7 @@ Function48689: ; 48689 (12:4689) call DelayFrames ld b, $1 call Function4930f - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $4 ld c, $14 @@ -25436,7 +25446,7 @@ Function48e14: ; 48e14 (12:4e14) ld [MusicFadeIDHi], a ld c, 8 call DelayFrames - call WhiteBGMap + call ClearBGPalettes call Function48000 call LoadFontsExtra hlcoord 0, 0 @@ -25505,7 +25515,7 @@ INCBIN "gfx/misc/pack_f.2bpp" Function4925b: ; 4925b call FadeToMenu - call WhiteBGMap + call ClearBGPalettes call ClearScreen call DelayFrame ld b, $14 @@ -26955,16 +26965,16 @@ MainMenu_MysteryGift: ; 49ef5 ; 49efc MainMenu_Mobile: ; 49efc - call WhiteBGMap + call ClearBGPalettes ld a, MUSIC_MOBILE_ADAPTER_MENU ld [wMapMusic], a ld de, MUSIC_MOBILE_ADAPTER_MENU call Function4a6c5 Function49f0a: ; 49f0a - call WhiteBGMap + call ClearBGPalettes call Function4a3a7 call Function4a492 - call WhiteBGMap + call ClearBGPalettes Function49f16: ; 49f16 call Function4a071 ld c, 12 @@ -27021,7 +27031,7 @@ Function49f16: ; 49f16 .asm_49f84 pop bc - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, MUSIC_MAIN_MENU ld [wMapMusic], a @@ -27160,7 +27170,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) ld c, $1 call Function4802f push af - call WhiteBGMap + call ClearBGPalettes pop af and a jr nz, .asm_4a0f9 @@ -27173,9 +27183,9 @@ Function4a0c2: ; 4a0c2 (12:60c2) Function4a100: ; 4a100 (12:6100) ld a, $2 call Function1ff8 - call WhiteBGMap + call ClearBGPalettes call Function4a13b - call WhiteBGMap + call ClearBGPalettes call ClearTileMap asm_4a111: ; 4a111 (12:6111) @@ -27308,7 +27318,7 @@ Function4a20e: ; 4a20e (12:620e) ld a, $1 call Function1ff8 callba Function1719c8 - call WhiteBGMap + call ClearBGPalettes call DelayFrame jr Function4a239 @@ -27378,7 +27388,7 @@ Function4a28a: ; 4a28a (12:628a) jr z, .asm_4a33b .asm_4a2df callba Function11765d - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call LoadFontsExtra scf @@ -27610,7 +27620,7 @@ MainMenu_MobileStudium: ; 4a496 push bc push de callba MobileStudium - call WhiteBGMap + call ClearBGPalettes pop de pop bc ld a, b @@ -27626,11 +27636,11 @@ MainMenu_MobileStudium: ; 4a496 Function4a4c4: ; 4a4c4 (12:64c4) - call WhiteBGMap + call ClearBGPalettes call Function4a3a7 call Function4a492 call Function4a680 - call WhiteBGMap + call ClearBGPalettes ld c, 20 call DelayFrames hlcoord 2, 0 @@ -27704,7 +27714,7 @@ asm_4a54d: ; 4a54d (12:654d) call Function1ff8 .asm_4a574 pop bc - call WhiteBGMap + call ClearBGPalettes call ClearTileMap jp Function49f0a .asm_4a57e @@ -27805,7 +27815,7 @@ endr Function4a6ab: ; 4a6ab (12:66ab) ld a, $2 call Function1ff8 - call WhiteBGMap + call ClearBGPalettes ld b, $8 call GetSGBLayout callba Function11c1ab @@ -28429,7 +28439,7 @@ UnknownText_0x4aa1d: ; 0x4aa1d ; 0x4aa22 Function4aa22: ; 4aa22 - call WhiteBGMap + call ClearBGPalettes Function4aa25: ; 4aa25 callba Function5004f @@ -29524,7 +29534,7 @@ Function4d319: ; 4d319 inc a ld [MenuSelection2], a call ClearScreen - call WhiteBGMap + call ClearBGPalettes call MaxVolume callba Function28ef8 callba Function4d354 @@ -30745,13 +30755,13 @@ StatsScreenInit_gotaddress: ; 4dc94 push bc push hl - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call UpdateSprites callba Functionfb53e pop hl call _hl_ - call WhiteBGMap + call ClearBGPalettes call ClearTileMap pop bc @@ -30860,7 +30870,7 @@ Function4dd6c: ; 4dd6c (13:5d6c) MonStatsInit: ; 4dd72 (13:5d72) ld hl, wcf64 res 6, [hl] - call WhiteBGMap + call ClearBGPalettes call ClearTileMap callba Function10402d call Function4ddf2 @@ -32140,1385 +32150,13 @@ INCLUDE "event/poke_seer.asm" SECTION "bank14", ROMX, BANK[$14] -SelectMonFromParty: ; 50000 - call DisableSpriteUpdates - xor a - ld [PartyMenuActionText], a - call WhiteBGMap - call Function5003f - call WaitBGMap - call SetPalettes - call DelayFrame - call PartyMenuSelect - call Function2b74 - ret -; 5001d - - -Function5001d: ; 5001d - ld a, b - ld [PartyMenuActionText], a - call DisableSpriteUpdates - call WhiteBGMap - call Function5003f - call WaitBGMap - ld b, $a - call GetSGBLayout - call SetPalettes - call DelayFrame - call PartyMenuSelect - call Function2b74 - ret -; 5003f - -Function5003f: ; 5003f - call Function5004f - call Function50405 - call Function503e0 - call WritePartyMenuTilemap - call PrintPartyMenuText - ret -; 5004f - -Function5004f: ; 5004f - call LoadFontsBattleExtra - callab Function8ad1 ; engine/color.asm - callab InefficientlyClear121BytesAtwc300 - ret -; 5005f - - -WritePartyMenuTilemap: ; 0x5005f - ld hl, Options - ld a, [hl] - push af - set 4, [hl] ; Disable text delay - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill ; blank the tilemap - call GetPartyMenuTilemapPointers ; This reads from a pointer table??? -.loop - ld a, [hli] - cp $ff - jr z, .end ; 0x5007a $8 - push hl - ld hl, .Jumptable - rst JumpTable - pop hl - jr .loop ; 0x50082 $f3 -.end - pop af - ld [Options], a - ret -; 0x50089 - -.Jumptable: ; 50089 - dw PlacePartyNicknames - dw PlacePartyHPBar - dw PlacePartyMenuHPDigits - dw PlacePartyMonLevel - dw PlacePartyMonStatus - dw PlacePartyMonTMHMCompatibility - dw PlacePartyMonEvoStoneCompatibility - dw PlacePartyMonGender - dw PlacePartyMonMobileBattleSelection -; 5009b - -PlacePartyNicknames: ; 5009b - hlcoord 3, 1 - ld a, [PartyCount] - and a - jr z, .end - ld c, a - ld b, $0 -.loop - push bc - push hl - push hl - ld hl, PartyMonNicknames - ld a, b - call GetNick - pop hl - call PlaceString - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - -.end -rept 2 - dec hl -endr - ld de, .CANCEL - call PlaceString - ret -; 500c8 - -.CANCEL: ; 500c8 - db "CANCEL@" -; 500cf - - -PlacePartyHPBar: ; 500cf - xor a - ld [wcda9], a - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, $0 - hlcoord 11, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .skip - push hl - call PlacePartymonHPBar - pop hl - ld d, $6 - ld b, $0 - call DrawBattleHPBar - ld hl, wcd9b - ld a, [wcda9] - ld c, a - ld b, $0 - add hl, bc - call SetHPPal - ld b, $fc - call GetSGBLayout - -.skip - ld hl, wcda9 - inc [hl] - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ld b, $a - call GetSGBLayout - ret -; 50117 - -PlacePartymonHPBar: ; 50117 - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1HP - call AddNTimes - ld a, [hli] - or [hl] - jr nz, .not_fainted - xor a - ld e, a - ld c, a - ret - -.not_fainted - dec hl - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - ld a, [hli] - ld d, a - ld a, [hli] - ld e, a - predef DrawPartyMenuHPBar - ret -; 50138 - -PlacePartyMenuHPDigits: ; 50138 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, $0 - hlcoord 13, 1 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1HP - call AddNTimes - ld e, l - ld d, h - pop hl - push de - lb bc, 2, 3 - call PrintNum - pop de - ld a, "/" - ld [hli], a -rept 2 - inc de -endr - lb bc, 2, 3 - call PrintNum - -.next - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 50176 - -PlacePartyMonLevel: ; 50176 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 8, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Level - call AddNTimes - ld e, l - ld d, h - pop hl - ld a, [de] - cp 100 ; This is distinct from MAX_LEVEL. - jr nc, .ThreeDigits - ld a, "<LV>" - ld [hli], a - lb bc, PRINTNUM_RIGHTALIGN | 1, 2 - ; jr .okay -.ThreeDigits - lb bc, PRINTNUM_RIGHTALIGN | 1, 3 -; .okay - call PrintNum - -.next - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 501b2 - -PlacePartyMonStatus: ; 501b2 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 5, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Status - call AddNTimes - ld e, l - ld d, h - pop hl - call PlaceStatusString - -.next - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 501e0 - -PlacePartyMonTMHMCompatibility: ; 501e0 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld hl, PartySpecies - ld e, b - ld d, 0 - add hl, de - ld a, [hl] - ld [CurPartySpecies], a - predef CanLearnTMHMMove - pop hl - call .PlaceAbleNotAble - call PlaceString - -.next - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 50215 - -.PlaceAbleNotAble: ; 50215 - ld a, c - and a - jr nz, .able - ld de, .string_not_able - ret - -.able - ld de, .string_able - ret -; 50221 - -.string_able: ; 50221 - db "ABLE@" -; 50226 - -.string_not_able: ; 50226 - db "NOT ABLE@" -; 5022f - - -PlacePartyMonEvoStoneCompatibility: ; 5022f - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Species - call AddNTimes - ld a, [hl] - dec a - ld e, a - ld d, 0 - ld hl, EvosAttacksPointers -rept 2 - add hl, de -endr - call .DetermineCompatibility - pop hl - call PlaceString - -.next - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 50268 - -.DetermineCompatibility: ; 50268 - ld de, StringBuffer1 - ld a, BANK(EvosAttacksPointers) - ld bc, 2 - call FarCopyBytes - ld hl, StringBuffer1 - ld a, [hli] - ld h, [hl] - ld l, a - ld de, StringBuffer1 - ld a, BANK(EvosAttacks) - ld bc, $a - call FarCopyBytes - ld hl, StringBuffer1 -.loop2 - ld a, [hli] - and a - jr z, .nope -rept 2 - inc hl -endr - cp EVOLVE_ITEM - jr nz, .loop2 -rept 2 - dec hl -endr - ld a, [CurItem] - cp [hl] -rept 2 - inc hl -endr - jr nz, .loop2 - ld de, .string_able - ret - -.nope - ld de, .string_not_able - ret -; 502a3 - -.string_able: ; 502a3 - db "ABLE@" -; 502a8 -.string_not_able: ; 502a8 - db "NOT ABLE@" -; 502b1 - - -PlacePartyMonGender: ; 502b1 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - ld [CurPartySpecies], a - push hl - ld a, b - ld [CurPartyMon], a - xor a - ld [MonType], a - call GetGender - ld de, .unknown - jr c, .got_gender - ld de, .male - jr nz, .got_gender - ld de, .female - -.got_gender - pop hl - call PlaceString - -.next - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 502ee - -.male: ; 502ee - db "♂…MALE@" -; 502f5 - -.female: ; 502f5 - db "♀…FEMALE@" -; 502fe - -.unknown: ; 502fe - db "…UNKNOWN@" -; 50307 - - -PlacePartyMonMobileBattleSelection: ; 50307 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 1 -.loop - push bc - push hl - ld de, .String_Sanka_Shinai - call PlaceString - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ld a, l - ld e, PKMN_NAME_LENGTH - sub e - ld l, a - ld a, h - sbc $0 - ld h, a - ld de, .String_Kettei_Yameru - call PlaceString - ld b, $3 - ld c, $0 - ld hl, wd002 - ld a, [hl] -.loop2 - push hl - push bc - hlcoord 12, 1 -.loop3 - and a - jr z, .done - ld de, 2 * SCREEN_WIDTH - add hl, de - dec a - jr .loop3 - -.done - ld de, .String_Banme - push hl - call PlaceString - pop hl - pop bc - push bc - push hl - ld a, c - ld hl, .Strings_1_2_3 - call GetNthString - ld d, h - ld e, l - pop hl - call PlaceString - pop bc - pop hl - inc hl - ld a, [hl] - inc c - dec b - ret z - jr .loop2 -; 5036b - -.String_Banme: ; 5036b - db " ばんめ @" ; Place -; 50372 -.String_Sanka_Shinai: ; 50372 - db "さんかしない@" ; Cancel -; 50379 -.String_Kettei_Yameru: ; 50379 - db "けってい やめる@" ; Quit -; 50383 -.Strings_1_2_3: ; 50383 - db "1@", "2@", "3@" ; 1st, 2nd, 3rd -; 50389 - - -PartyMenuCheckEgg: ; 50389 - ld a, PartySpecies % $100 - add b - ld e, a - ld a, PartySpecies / $100 - adc 0 - ld d, a - ld a, [de] - cp EGG - ret -; 50396 - -GetPartyMenuTilemapPointers: ; 50396 - ld a, [PartyMenuActionText] - and $f0 - jr nz, .skip - ld a, [PartyMenuActionText] - and $f - ld e, a - ld d, 0 - ld hl, .Pointers -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ret - -.skip - ld hl, .Default - ret -; 503b2 - -.Pointers: ; 503b2 - dw .Default - dw .Default - dw .Default - dw .TMHM - dw .Default - dw .EvoStone - dw .Gender - dw .Gender - dw .Default - dw .Mobile -; 503c6 - -.Default: db 0, 1, 2, 3, 4, $ff -.TMHM: db 0, 5, 3, 4, $ff -.EvoStone: db 0, 6, 3, 4, $ff -.Gender: db 0, 7, 3, 4, $ff -.Mobile: db 0, 8, 3, 4, $ff -; 503e0 - - -Function503e0: ; 503e0 - ld hl, PartyCount - ld a, [hli] - and a - ret z - ld c, a - xor a - ld [hObjectStructIndexBuffer], a -.asm_503ea - push bc - push hl - ld hl, Function8e83f - ld a, BANK(Function8e83f) - ld e, $0 - rst FarCall - ld a, [hObjectStructIndexBuffer] - inc a - ld [hObjectStructIndexBuffer], a - pop hl - pop bc - dec c - jr nz, .asm_503ea - callab Function8cf69 - ret -; 50405 - -Function50405: ; 50405 - xor a - ld [wd0e3], a - ld de, Unknown_5044f - call Function1bb1 - ld a, [PartyCount] - inc a - ld [wcfa3], a - dec a - ld b, a - ld a, [wd0d8] - and a - jr z, .asm_50422 - inc b - cp b - jr c, .asm_50424 - -.asm_50422 - ld a, $1 - -.asm_50424 - ld [MenuSelection2], a - ld a, $3 - ld [wcfa8], a - ret -; 5042d - -Function5042d: ; 0x5042d - ld de, Unknown_5044f - call Function1bb1 - ld a, [PartyCount] - ld [wcfa3], a - ld b, a - ld a, [wd0d8] - and a - jr z, .asm_50444 - inc b - cp b - jr c, .asm_50446 -.asm_50444 - ld a, $1 -.asm_50446 - ld [MenuSelection2], a - ld a, $3 - ld [wcfa8], a - ret -; 5044f (14:444f) - -Unknown_5044f: ; 5044f -; cursor y -; cursor x -; list length -; ? -; bit 6: animate sprites bit 5: wrap around -; ? -; distance between items (hi: y, lo: x) -; allowed buttons (mask) - db $01, $00, $00, $01, $60, $00, $20, $00 -; 50457 - -PartyMenuSelect: ; 0x50457 -; sets carry if exitted menu. - call Function1bc9 - call Function1bee - ld a, [PartyCount] - inc a - ld b, a - ld a, [MenuSelection2] ; menu selection? - cp b - jr z, .exitmenu ; CANCEL - ld [wd0d8], a - ld a, [hJoyLast] - ld b, a - bit 1, b - jr nz, .exitmenu ; B button? - ld a, [MenuSelection2] - dec a - ld [CurPartyMon], a - ld c, a - ld b, $0 - ld hl, PartySpecies - add hl, bc - ld a, [hl] - ld [CurPartySpecies], a - - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX - and a - ret - -.exitmenu - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX - scf - ret -; 0x5049a - - -PrintPartyMenuText: ; 5049a - hlcoord 0, 14 - lb bc, 2, 18 - call TextBox - ld a, [PartyCount] - and a - jr nz, .haspokemon - ld de, YouHaveNoPKMNString - jr .gotstring -.haspokemon ; 504ae - ld a, [PartyMenuActionText] - and $f ; drop high nibble - ld hl, PartyMenuStrings - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld d, [hl] - ld e, a -.gotstring ; 504be - ld a, [Options] - push af - set 4, a ; disable text delay - ld [Options], a - hlcoord 1, 16 ; Coord - call PlaceString - pop af - ld [Options], a - ret -; 0x504d2 - -PartyMenuStrings: ; 0x504d2 - dw ChooseAMonString - dw UseOnWhichPKMNString - dw WhichPKMNString - dw TeachWhichPKMNString - dw MoveToWhereString - dw UseOnWhichPKMNString - dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString - dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString - dw ToWhichPKMNString - -ChooseAMonString: ; 0x504e4 - db "Choose a #MON.@" -UseOnWhichPKMNString: ; 0x504f3 - db "Use on which <PK><MN>?@" -WhichPKMNString: ; 0x50504 - db "Which <PK><MN>?@" -TeachWhichPKMNString: ; 0x5050e - db "Teach which <PK><MN>?@" -MoveToWhereString: ; 0x5051e - db "Move to where?@" -ChooseAFemalePKMNString: ; 0x5052d ; UNUSED - db "Choose a ♀<PK><MN>.@" -ChooseAMalePKMNString: ; 0x5053b ; UNUSED - db "Choose a ♂<PK><MN>.@" -ToWhichPKMNString: ; 0x50549 - db "To which <PK><MN>?@" - -YouHaveNoPKMNString: ; 0x50556 - db "You have no <PK><MN>!@" - - -Function50566: ; 50566 - ld a, [CurPartyMon] - ld hl, PartyMonNicknames - call GetNick - ld a, [PartyMenuActionText] - and $f - ld hl, Unknown_5057b - call Function505c1 - ret -; 5057b - -Unknown_5057b: ; 5057b - dw UnknownText_0x50594 - dw UnknownText_0x5059e - dw UnknownText_0x505a3 - dw UnknownText_0x505a8 - dw UnknownText_0x50599 - dw UnknownText_0x5058f - dw UnknownText_0x505ad - dw UnknownText_0x505b2 - dw UnknownText_0x505b7 - dw UnknownText_0x505bc -; 5058f - -UnknownText_0x5058f: ; 0x5058f - ; recovered @ HP! - text_jump UnknownText_0x1bc0a2 - db "@" -; 0x50594 - -UnknownText_0x50594: ; 0x50594 - ; 's cured of poison. - text_jump UnknownText_0x1bc0bb - db "@" -; 0x50599 - -UnknownText_0x50599: ; 0x50599 - ; 's rid of paralysis. - text_jump UnknownText_0x1bc0d2 - db "@" -; 0x5059e - -UnknownText_0x5059e: ; 0x5059e - ; 's burn was healed. - text_jump UnknownText_0x1bc0ea - db "@" -; 0x505a3 - -UnknownText_0x505a3: ; 0x505a3 - ; was defrosted. - text_jump UnknownText_0x1bc101 - db "@" -; 0x505a8 - -UnknownText_0x505a8: ; 0x505a8 - ; woke up. - text_jump UnknownText_0x1bc115 - db "@" -; 0x505ad - -UnknownText_0x505ad: ; 0x505ad - ; 's health returned. - text_jump UnknownText_0x1bc123 - db "@" -; 0x505b2 - -UnknownText_0x505b2: ; 0x505b2 - ; is revitalized. - text_jump UnknownText_0x1bc13a - db "@" -; 0x505b7 - -UnknownText_0x505b7: ; 0x505b7 - ; grew to level @ !@ @ - text_jump UnknownText_0x1bc14f - db "@" -; 0x505bc - -UnknownText_0x505bc: ; 0x505bc - ; came to its senses. - text_jump UnknownText_0x1bc16e - db "@" -; 0x505c1 - - -Function505c1: ; 505c1 - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [Options] - push af - set 4, a - ld [Options], a - call PrintText - pop af - ld [Options], a - ret -; 505da - -DoPoisonStep:: ; 505da - ld a, [PartyCount] - and a - jr z, .asm_5062c - xor a - ld c, 7 - ld hl, EngineBuffer1 -.asm_505e6 - ld [hli], a - dec c - jr nz, .asm_505e6 - xor a - ld [CurPartyMon], a -.asm_505ee - call Function5062e - jr nc, .asm_50605 - ld a, [CurPartyMon] - ld e, a - ld d, 0 - ld hl, wd03f - add hl, de - ld [hl], c - ld a, [EngineBuffer1] - or c - ld [EngineBuffer1], a - -.asm_50605 - ld a, [PartyCount] - ld hl, CurPartyMon - inc [hl] - cp [hl] - jr nz, .asm_505ee - ld a, [EngineBuffer1] - and $2 - jr nz, .asm_50622 - ld a, [EngineBuffer1] - and $1 - jr z, .asm_5062c - call Function50658 - xor a - ret - -.asm_50622 - ld a, BANK(UnknownScript_0x50669) - ld hl, UnknownScript_0x50669 - call CallScript - scf - ret - -.asm_5062c - xor a - ret -; 5062e - -Function5062e: ; 5062e - ld a, MON_STATUS - call GetPartyParamLocation - ld a, [hl] - and 1 << PSN - ret z - - ld a, MON_HP - call GetPartyParamLocation - ld a, [hli] - ld b, a - ld c, [hl] - - or c - ret z - - dec bc - ld [hl], c - dec hl - ld [hl], b - - ld a, b - or c - jr nz, .not_fainted - - ld a, MON_STATUS - call GetPartyParamLocation - ld [hl], 0 - ld c, 2 - scf - ret - -.not_fainted - ld c, 1 - scf - ret -; 50658 - -Function50658: ; 50658 - ld de, SFX_POISON - call PlaySFX - ld b, $2 - predef Functioncbcdd - call DelayFrame - ret -; 50669 - -UnknownScript_0x50669: ; 50669 - callasm Function50658 - loadfont - callasm Function5067b - iffalse UnknownScript_0x50677 - loadmovesprites - end -; 50677 - -UnknownScript_0x50677: ; 50677 - farjump Script_OverworldWhiteout -; 5067b - -Function5067b: ; 5067b - xor a - ld [CurPartyMon], a - ld de, wd03f -.asm_50682 - push de - ld a, [de] - and 2 - jr z, .asm_5069c - ld c, HAPPINESS_POISONFAINT - callba ChangeHappiness - callba GetPartyNick - ld hl, PoisonFaintText - call PrintText - -.asm_5069c - pop de - inc de - ld hl, CurPartyMon - inc [hl] - ld a, [PartyCount] - cp [hl] - jr nz, .asm_50682 - predef CheckPlayerPartyForFitPkmn - ld a, d - ld [ScriptVar], a - ret -; 506b2 - -PoisonFaintText: ; 506b2 - text_jump UnknownText_0x1c0acc - db "@" -; 506b7 - -PoisonWhiteOutText: ; 506b7 - text_jump UnknownText_0x1c0ada - db "@" -; 506bc - - -DoMovementFunctionc: ; 506bc - ld hl, UnknownScript_0x506c8 - call QueueScript - ld a, $1 - ld [wd0ec], a - ret -; 506c8 - -UnknownScript_0x506c8: ; 0x506c8 - reloadmappart - special UpdateTimePals - callasm GetPartyNick - writetext UnknownText_0x50726 - closetext - callasm SweetScentEncounter - iffalse UnknownScript_0x506e9 - checkflag ENGINE_BUG_CONTEST_TIMER - iftrue UnknownScript_0x506e5 - battlecheck - startbattle - returnafterbattle - end -; 0x506e5 - -UnknownScript_0x506e5: ; 0x506e5 - farjump BugCatchingContestBattleScript -; 0x506e9 - -UnknownScript_0x506e9: ; 0x506e9 - writetext UnknownText_0x5072b - closetext - loadmovesprites - end -; 0x506ef - -SweetScentEncounter: ; 506ef - callba CanUseSweetScent - jr nc, .no_battle - ld hl, StatusFlags2 - bit 2, [hl] - jr nz, .not_in_bug_contest - callba GetMapEncounterRate - ld a, b - and a - jr z, .no_battle - callba ChooseWildEncounter - jr nz, .no_battle - jr .start_battle - -.not_in_bug_contest - callba ChooseWildEncounter_BugContest - -.start_battle - ld a, $1 - ld [ScriptVar], a - ret - -.no_battle - xor a - ld [ScriptVar], a - ld [BattleType], a - ret -; 50726 - -UnknownText_0x50726: ; 0x50726 - ; used SWEET SCENT! - text_jump UnknownText_0x1c0b03 - db "@" -; 0x5072b - -UnknownText_0x5072b: ; 0x5072b - ; Looks like there's nothing here… - text_jump UnknownText_0x1c0b1a - db "@" -; 0x50730 - - -_Squirtbottle: ; 50730 - ld hl, UnknownScript_0x5073c - call QueueScript - ld a, $1 - ld [wd0ec], a - ret -; 5073c - -UnknownScript_0x5073c: ; 0x5073c - reloadmappart - special UpdateTimePals - callasm Function50753 - iffalse UnknownScript_0x5074b - farjump WateredWeirdTreeScript -; 0x5074b - -UnknownScript_0x5074b: ; 0x5074b - jumptext UnknownText_0x5074e -; 0x5074e - -UnknownText_0x5074e: ; 0x5074e - ; sprinkled water. But nothing happened… - text_jump UnknownText_0x1c0b3b - db "@" -; 0x50753 - -Function50753: ; 50753 - ld a, [MapGroup] - cp GROUP_ROUTE_36 - jr nz, .asm_50774 - - ld a, [MapNumber] - cp MAP_ROUTE_36 - jr nz, .asm_50774 - - callba GetFacingObject - jr c, .asm_50774 - - ld a, d - cp $17 - jr nz, .asm_50774 - - ld a, $1 - ld [ScriptVar], a - ret - -.asm_50774 - xor a - ld [ScriptVar], a - ret -; 50779 - - -_CardKey: ; 50779 -; Are we even in the right map to use this? - ld a, [MapGroup] - cp GROUP_RADIO_TOWER_3F - jr nz, .nope - - ld a, [MapNumber] - cp MAP_RADIO_TOWER_3F - jr nz, .nope -; Are we facing the slot? - ld a, [PlayerDirection] - and $c - cp OW_UP - jr nz, .nope - - call GetFacingTileCoord - ld a, d - cp 18 - jr nz, .nope - ld a, e - cp 6 - jr nz, .nope -; Let's use the Card Key. - ld hl, .CardKeyScript - call QueueScript - ld a, $1 - ld [wd0ec], a - ret - -.nope - ld a, $0 - ld [wd0ec], a - ret -; 507af - -.CardKeyScript: ; 0x507af - loadmovesprites - farjump MapRadioTower3FSignpost2Script -; 0x507b4 - - -_BasementKey: ; 507b4 -; Are we even in the right map to use this? - ld a, [MapGroup] - cp GROUP_WAREHOUSE_ENTRANCE - jr nz, .nope - - ld a, [MapNumber] - cp MAP_WAREHOUSE_ENTRANCE - jr nz, .nope -; Are we on the tile in front of the door? - call GetFacingTileCoord - ld a, d - cp 22 - jr nz, .nope - ld a, e - cp 10 - jr nz, .nope -; Let's use the Basement Key - ld hl, .BasementKeyScript - call QueueScript - ld a, 1 - ld [wd0ec], a - ret - -.nope - ld a, $0 - ld [wd0ec], a - ret -; 507e1 - -.BasementKeyScript: ; 0x507e1 - loadmovesprites - farjump BasementDoorScript -; 0x507e6 - - -_SacredAsh: ; 507e6 - ld a, $0 - ld [wd0ec], a - call CheckAnyFaintedMon - ret nc - - ld hl, SacredAshScript - call QueueScript - ld a, $1 - ld [wd0ec], a - ret -; 507fb - -CheckAnyFaintedMon: ; 507fb - ld de, PARTYMON_STRUCT_LENGTH - ld bc, PartySpecies - ld hl, PartyMon1HP - ld a, [PartyCount] - and a - ret z - -.loop - push af - push hl - ld a, [bc] - inc bc - cp EGG - jr z, .next - - ld a, [hli] - or [hl] - jr z, .done - -.next - pop hl - add hl, de - pop af - dec a - jr nz, .loop - xor a - ret - -.done - pop hl - pop af - scf - ret -; 50821 - -SacredAshScript: ; 0x50821 - special HealParty - reloadmappart - playsound SFX_WARP_TO - special FadeBlackBGMap - special FadeInBGMap - special FadeBlackBGMap - special FadeInBGMap - special FadeBlackBGMap - special FadeInBGMap - waitbutton - writetext UnknownText_0x50845 - playsound SFX_CAUGHT_MON - waitbutton - closetext - loadmovesprites - end -; 0x50845 - -UnknownText_0x50845: ; 0x50845 - ; 's #MON were all healed! - text_jump UnknownText_0x1c0b65 - db "@" -; 0x5084a +INCLUDE "engine/party_menu.asm" +INCLUDE "event/poisonstep.asm" +INCLUDE "event/sweet_scent.asm" +INCLUDE "event/squirtbottle.asm" +INCLUDE "event/card_key.asm" +INCLUDE "event/basement_key.asm" +INCLUDE "event/sacred_ash.asm" CopyPkmnToTempMon: ; 5084a ; gets the BaseData of a Pkmn @@ -33567,21 +32205,21 @@ Function50890: ; 50890 ; 50893 Function50893: ; 50893 - ld hl, TempMonLevel - TempMon + ld hl, MON_LEVEL add hl, bc ld a, [hl] ld [CurPartyLevel], a - ld hl, TempMonMaxHP - TempMon + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l - ld hl, TempMonExp + 2 - TempMon + ld hl, MON_EXP + 2 add hl, bc push bc ld b, $1 predef CalcPkmnStats pop bc - ld hl, TempMonHP - TempMon + ld hl, MON_HP add hl, bc ld d, h ld e, l @@ -33596,14 +32234,14 @@ Function50893: ; 50893 .asm_508c1 push bc - ld hl, TempMonMaxHP - TempMon + ld hl, MON_MAXHP add hl, bc ld bc, 2 call CopyBytes pop bc .asm_508cd - ld hl, TempMonStatus - TempMon + ld hl, MON_STATUS add hl, bc xor a ld [hli], a @@ -38609,7 +37247,7 @@ Function84419: ; 84419 ; 84425 Function84425: ; 84425 - call Function222a + call ReturnToMapFromSubmenu call Function84753 ret ; 8442c @@ -39499,7 +38137,7 @@ RedCredits:: ; 86455 ld [MusicFadeIDHi], a ld a, $a ld [MusicFade], a - callba FadeBlackBGMap + callba FadeOutPalettes xor a ld [VramState], a ld [hMapAnims], a @@ -39522,7 +38160,7 @@ Function8648e: ; 8648e ld [MusicFadeIDHi], a ld a, 10 ld [MusicFade], a - callba FadeBlackBGMap + callba FadeOutPalettes xor a ld [VramState], a ld [hMapAnims], a @@ -39688,7 +38326,7 @@ GetHallOfFameParty: ; 8653f Function865b5: ; 865b5 push hl - call WhiteBGMap + call ClearBGPalettes callba Function4e906 pop hl ld a, [hli] @@ -39833,7 +38471,7 @@ Function86692: ; 86692 .asm_866a9 push hl - call WhiteBGMap + call ClearBGPalettes pop hl call Function86748 ld a, [wc608] @@ -39997,7 +38635,7 @@ Function86748: ; 86748 ; 86810 Function86810: ; 86810 - call WhiteBGMap + call ClearBGPalettes ld hl, VTiles2 tile $63 ld de, FontExtra + $d0 lb bc, BANK(FontExtra), 1 @@ -40420,7 +39058,7 @@ PlayWhirlpoolSound: ; 8c7d4 ; 8c7e1 BlindingFlash: ; 8c7e1 - callba FadeBlackBGMap + callba FadeOutPalettes ld hl, StatusFlags set 2, [hl] callba Function8c0e5 @@ -40428,7 +39066,7 @@ BlindingFlash: ; 8c7e1 ld b, $9 call GetSGBLayout callba Function49409 - callba FadeInBGMap + callba FadeInPalettes ret ; 8c80a @@ -40929,7 +39567,7 @@ Special_MagnetTrain: ; 8cc04 .done pop af ld [hVBlank], a - call WhiteBGMap + call ClearBGPalettes xor a ld [hLCDStatCustom], a ld [hLCDStatCustom + 1], a @@ -40986,7 +39624,7 @@ Function8ccc4: ; 8ccc4 ; 8ccc9 Function8ccc9: ; 8ccc9 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call DisableLCD callab Function8cf53 @@ -45602,7 +44240,7 @@ Function90b8d: ; 90b8d (24:4b8d) ld [hInMenu], a pop af ld [Options], a - call WhiteBGMap + call ClearBGPalettes xor a ld [hBGMapAddress], a ld a, VBGMap0 / $100 @@ -45613,7 +44251,7 @@ Function90b8d: ; 90b8d (24:4b8d) ret Function90bea: ; 90bea (24:4bea) - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -47002,7 +45640,7 @@ Function9191c: ; 9191c push af xor a ld [VramState], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -47057,7 +45695,7 @@ Function9191c: ; 9191c ld [hInMenu], a pop af ld [Options], a - call WhiteBGMap + call ClearBGPalettes ret ; 919b0 @@ -47263,927 +45901,12 @@ Function91ae1: ; 91ae1 ; 91af3 -_FlyMap: ; 91af3 - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld hl, hInMenu - ld a, [hl] - push af - ld [hl], $1 - xor a - ld [hBGMapMode], a - callba Function8cf53 - call Function91ff2 - ld de, GFX_922e1 - ld hl, VTiles2 tile $30 - lb bc, BANK(GFX_922e1), 6 - call Request1bpp - call FlyMap - call Function91c8f - ld b, $2 - call GetSGBLayout - call SetPalettes -.loop - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .pressedB - ld a, [hl] - and A_BUTTON - jr nz, .pressedA - call FlyMapScroll - call GetMapCursorCoordinates - callba Function8cf69 - call DelayFrame - jr .loop - -.pressedB - ld a, -1 - jr .exit - -.pressedA - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld a, [hl] +INCLUDE "engine/flypoints.asm" -.exit - ld [wd002], a - pop af - ld [hInMenu], a - call WhiteBGMap - ld a, $90 - ld [hWY], a +Function92311: ; unreferenced xor a - ld [hBGMapAddress], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ld a, [wd002] - ld e, a - ret -; 91b73 - -FlyMapScroll: ; 91b73 - ld a, [StartFlypoint] - ld e, a - ld a, [EndFlypoint] - ld d, a - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .ScrollNext - ld a, [hl] - and D_DOWN - jr nz, .ScrollPrev - ret - -.ScrollNext - ld hl, wd002 - ld a, [hl] - cp d - jr nz, .NotAtEndYet - ld a, e - dec a - ld [hl], a - -.NotAtEndYet - inc [hl] - call CheckIfVisitedFlypoint - jr z, .ScrollNext - jr .Finally - -.ScrollPrev - ld hl, wd002 - ld a, [hl] - cp e - jr nz, .NotAtStartYet - ld a, d - inc a - ld [hl], a - -.NotAtStartYet - dec [hl] - call CheckIfVisitedFlypoint - jr z, .ScrollPrev - -.Finally - call TownMapBubble - call WaitBGMap - xor a - ld [hBGMapMode], a - ret -; 91bb5 - -TownMapBubble: ; 91bb5 -; Draw the bubble containing the location text in the town map HUD - -; Top-left corner - hlcoord 1, 0 - ld a, $30 - ld [hli], a - -; Top row - ld bc, 16 - ld a, " " - call ByteFill - -; Top-right corner - ld a, $31 - ld [hl], a - hlcoord 1, 1 - - -; Middle row - ld bc, 18 - ld a, " " - call ByteFill - - -; Bottom-left corner - hlcoord 1, 2 - ld a, $32 - ld [hli], a - -; Bottom row - ld bc, 16 - ld a, " " - call ByteFill - -; Bottom-right corner - ld a, $33 - ld [hl], a - - -; Print "Where?" - hlcoord 2, 0 - ld de, .Where - call PlaceString - -; Print the name of the default flypoint - call .Name - -; Up/down arrows - hlcoord 18, 1 - ld [hl], $34 - ret - -.Where - db "Where?@" - -.Name -; We need the map location of the default flypoint - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl ; two bytes per flypoint - ld de, Flypoints - add hl, de - ld e, [hl] - - callba GetLandmarkName - - hlcoord 2, 1 - ld de, StringBuffer1 - call PlaceString - ret -; 91c17 - -GetMapCursorCoordinates: ; 91c17 - ld a, [wd002] - ld l, a - ld h, $0 - add hl, hl - ld de, Flypoints - add hl, de - ld e, [hl] - callba GetLandmarkCoords - ld a, [wd003] - ld c, a - ld a, [wd004] - ld b, a - ld hl, $4 - add hl, bc - ld [hl], e - ld hl, $5 - add hl, bc - ld [hl], d - ret -; 91c3c - -CheckIfVisitedFlypoint: ; 91c3c -; Check if the flypoint loaded in [hl] has been visited yet. - push bc - push de - push hl - ld l, [hl] - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld c, [hl] - call HasVisitedSpawn - pop hl - pop de - pop bc - and a - ret -; 91c50 - -HasVisitedSpawn: ; 91c50 -; Check if spawn point c has been visited. - ld hl, VisitedSpawns - ld b, CHECK_FLAG - ld d, 0 - predef FlagPredef - ld a, c - ret -; 91c5e - -Flypoints: ; 91c5e -; landmark, spawn point - - const_def - -flypoint: MACRO -; \1\@FLY EQUS "FLY_\1" -; \1\@SPAWN EQUS "SPAWN_\1" - ; const \1\@FLY - ; db \2, \1\@SPAWN - const FLY_\1 - db \2, SPAWN_\1 -ENDM - -; Johto - flypoint NEW_BARK, NEW_BARK_TOWN - flypoint CHERRYGROVE, CHERRYGROVE_CITY - flypoint VIOLET, VIOLET_CITY - flypoint AZALEA, AZALEA_TOWN - flypoint GOLDENROD, GOLDENROD_CITY - flypoint ECRUTEAK, ECRUTEAK_CITY - flypoint OLIVINE, OLIVINE_CITY - flypoint CIANWOOD, CIANWOOD_CITY - flypoint MAHOGANY, MAHOGANY_TOWN - flypoint LAKE, LAKE_OF_RAGE - flypoint BLACKTHORN, BLACKTHORN_CITY - flypoint MT_SILVER, SILVER_CAVE - -; Kanto -KANTO_FLYPOINT EQU const_value - - flypoint PALLET, PALLET_TOWN - flypoint VIRIDIAN, VIRIDIAN_CITY - flypoint PEWTER, PEWTER_CITY - flypoint CERULEAN, CERULEAN_CITY - flypoint VERMILION, VERMILION_CITY - flypoint ROCK_TUNNEL, ROCK_TUNNEL - flypoint LAVENDER, LAVENDER_TOWN - flypoint CELADON, CELADON_CITY - flypoint SAFFRON, SAFFRON_CITY - flypoint FUCHSIA, FUCHSIA_CITY - flypoint CINNABAR, CINNABAR_ISLAND - flypoint INDIGO, INDIGO_PLATEAU - - db -1 -; 91c8f - -Function91c8f: ; 91c8f - ret -; 91c90 - -FlyMap: ; 91c90 - - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - -; If we're not in a valid location, i.e. Pokecenter floor 2F, -; the backup map information is used - - cp SPECIAL_MAP - jr nz, .CheckRegion - - ld a, [BackupMapGroup] - ld b, a - ld a, [BackupMapNumber] - ld c, a - call GetWorldMapLocation - -.CheckRegion -; The first 46 locations are part of Johto. The rest are in Kanto - cp KANTO_LANDMARK - jr nc, .KantoFlyMap - -.JohtoFlyMap -; Note that .NoKanto should be modified in tandem with this branch - - push af - -; Start from New Bark Town - ld a, FLY_NEW_BARK - ld [wd002], a - -; Flypoints begin at New Bark Town... - ld [StartFlypoint], a -; ..and end at Silver Cave - ld a, FLY_MT_SILVER - ld [EndFlypoint], a - -; Fill out the map - call FillJohtoMap - call .MapHud - pop af - call TownMapPlayerIcon - ret - -.KantoFlyMap - -; The event that there are no flypoints enabled in a map is not -; accounted for. As a result, if you attempt to select a flypoint -; when there are none enabled, the game will crash. Additionally, -; the flypoint selection has a default starting point that -; can be flown to even if none are enabled - -; To prevent both of these things from happening when the player -; enters Kanto, fly access is restricted until Indigo Plateau is -; visited and its flypoint enabled - - push af - ld c, SPAWN_INDIGO - call HasVisitedSpawn - and a - jr z, .NoKanto - -; Kanto's map is only loaded if we've visited Indigo Plateau - -; Flypoints begin at Pallet Town... - ld a, FLY_PALLET - ld [StartFlypoint], a -; ...and end at Indigo Plateau - ld a, FLY_INDIGO - ld [EndFlypoint], a - -; Because Indigo Plateau is the first flypoint the player -; visits, it's made the default flypoint - ld [wd002], a - -; Fill out the map - call FillKantoMap - call .MapHud - pop af - call TownMapPlayerIcon - ret - -.NoKanto -; If Indigo Plateau hasn't been visited, we use Johto's map instead - -; Start from New Bark Town - ld a, FLY_NEW_BARK ld [wd002], a - -; Flypoints begin at New Bark Town... - ld [StartFlypoint], a -; ..and end at Silver Cave - ld a, FLY_MT_SILVER - ld [EndFlypoint], a - - call FillJohtoMap - - pop af - -.MapHud - call TownMapBubble - call TownMapPals - - ld hl, VBGMap0 ; BG Map 0 - call TownMapBGUpdate - - call TownMapMon - ld a, c - ld [wd003], a - ld a, b - ld [wd004], a - ret -; 91d11 - -Function91d11: ; 91d11 - ld a, [wd002] - push af - ld a, [wd003] - push af - ld a, e - ld [wd002], a - call ClearSprites - xor a - ld [hBGMapMode], a - ld a, $1 - ld [hInMenu], a - ld de, GFX_922d1 - ld hl, VTiles0 tile $7f - lb bc, BANK(GFX_922d1), 1 - call Request2bpp ; actually 1bpp - call Function91ed0 - ld hl, VTiles0 tile $78 - ld c, $4 - call Request2bpp - call Function91ff2 - call FillKantoMap - call Function91de9 - call TownMapPals - ld hl, VBGMap1 - call TownMapBGUpdate - call FillJohtoMap - call Function91de9 - call TownMapPals - ld hl, VBGMap0 - call TownMapBGUpdate - ld b, $2 - call GetSGBLayout - call SetPalettes - xor a - ld [hBGMapMode], a - xor a - call Function91e1e -.asm_91d6e - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and A_BUTTON | B_BUTTON - jr nz, .asm_91d8f - ld a, [hJoypadDown] - and SELECT - jr nz, .asm_91d87 - call Function91d9b - call Function91dcd - jr .asm_91d8a - -.asm_91d87 - call Function91e5a - -.asm_91d8a - call DelayFrame - jr .asm_91d6e - -.asm_91d8f - call ClearSprites - pop af - ld [wd003], a - pop af - ld [wd002], a - ret -; 91d9b - -Function91d9b: ; 91d9b - ld a, [hl] - and $20 - jr nz, .asm_91da6 - ld a, [hl] - and $10 - jr nz, .asm_91db7 - ret - -.asm_91da6 - ld a, [hWY] - cp $90 - ret z - call ClearSprites - ld a, $90 - ld [hWY], a - xor a - call Function91e1e - ret - -.asm_91db7 - ld a, [StatusFlags] - bit 6, a - ret z - ld a, [hWY] - and a - ret z - call ClearSprites - xor a - ld [hWY], a - ld a, $1 - call Function91e1e - ret -; 91dcd - -Function91dcd: ; 91dcd - ld a, [hVBlankCounter] - ld e, a - and $f - ret nz - ld a, e - and $10 - jr nz, .asm_91ddc - call ClearSprites - ret - -.asm_91ddc - hlcoord 0, 0 - ld de, Sprites - ld bc, $a0 - call CopyBytes - ret -; 91de9 - -Function91de9: ; 91de9 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, $7f - call ByteFill - hlcoord 0, 1 - ld a, $6 - ld [hli], a - ld bc, SCREEN_HEIGHT - ld a, $7 - call ByteFill - ld [hl], $17 - call GetPokemonName - hlcoord 2, 0 - call PlaceString - ld h, b - ld l, c - ld de, String_91e16 - call PlaceString - ret -; 91e16 - -String_91e16: - db "'S NEST@" -; 91e1e - -Function91e1e: ; 91e1e - ld [wd003], a - ld e, a - callba Function2a01f - decoord 0, 0 - ld hl, Sprites -.asm_91e2e - ld a, [de] - and a - jr z, .asm_91e4d - push de - ld e, a - push hl - callba GetLandmarkCoords - pop hl - ld a, d - sub $4 - ld [hli], a - ld a, e - sub $4 - ld [hli], a - ld a, $7f - ld [hli], a - xor a - ld [hli], a - pop de - inc de - jr .asm_91e2e - -.asm_91e4d - ld hl, Sprites - decoord 0, 0 - ld bc, $a0 - call CopyBytes - ret -; 91e5a - -Function91e5a: ; 91e5a - call Function91ea9 - ret c - - ld a, [wd002] - ld e, a - callba GetLandmarkCoords - ld c, e - ld b, d - ld de, Unknown_91e9c - ld hl, Sprites -.asm_91e70 - ld a, [de] - cp $80 - jr z, .asm_91e91 - - add b - ld [hli], a - inc de - - ld a, [de] - add c - ld [hli], a - inc de - - ld a, [de] - add $78 - ld [hli], a - inc de - - push bc - ld c, 0 - ld a, [PlayerGender] - bit 0, a - jr z, .asm_91e8c - inc c -.asm_91e8c - ld a, c - ld [hli], a - pop bc - - jr .asm_91e70 - -.asm_91e91 - ld hl, Sprites + $10 - ld bc, SpritesEnd - (Sprites + $10) - xor a - call ByteFill - ret -; 91e9c - -Unknown_91e9c: ; 91e9c - db -8, -8, 0 - db -8, 0, 1 - db 0, -8, 2 - db 0, 0, 3 - db $80 ; terminator -; 91ea9 - -Function91ea9: ; 91ea9 - ld a, [wd002] - cp FAST_SHIP - jr z, .johto - cp KANTO_LANDMARK - jr c, .johto - -.kanto - ld a, [wd003] - and a - jr z, .clear - jr .ok - -.johto - ld a, [wd003] - and a - jr nz, .clear - -.ok - and a - ret - -.clear - ld hl, Sprites - ld bc, SpritesEnd - Sprites - xor a - call ByteFill - scf - ret -; 91ed0 - -Function91ed0: ; 91ed0 - ld a, [wd002] - cp FAST_SHIP - jr z, .asm_91ede - callba GetPlayerIcon - ret - -.asm_91ede - ld de, FastShipGFX - ld b, BANK(FastShipGFX) - ret -; 91ee4 - -TownMapBGUpdate: ; 91ee4 -; Update BG Map tiles and attributes - -; BG Map address - ld a, l - ld [hBGMapAddress], a - ld a, h - ld [hBGMapAddress + 1], a - -; Only update palettes on CGB - ld a, [hCGB] - and a - jr z, .tiles - -; BG Map mode 2 (palettes) - ld a, 2 - ld [hBGMapMode], a - -; The BG Map is updated in thirds, so we wait -; 3 frames to update the whole screen's palettes. - ld c, 3 - call DelayFrames - -.tiles -; Update BG Map tiles - call WaitBGMap - -; Turn off BG Map update - xor a - ld [hBGMapMode], a - ret -; 91eff - -FillJohtoMap: ; 91eff - ld de, JohtoMap - jr FillTownMap - -FillKantoMap: ; 91f04 - ld de, KantoMap - -FillTownMap: ; 91f07 - hlcoord 0, 0 -.loop - ld a, [de] - cp $ff - ret z - ld a, [de] - ld [hli], a - inc de - jr .loop -; 91f13 - -TownMapPals: ; 91f13 -; Assign palettes based on tile ids - - hlcoord 0, 0 - decoord 0, 0, AttrMap - ld bc, 360 -.loop -; Current tile - ld a, [hli] - push hl - -; HP/borders use palette 0 - cp $60 - jr nc, .pal0 - -; The palette data is condensed to nybbles, -; least-significant first. - ld hl, TownMapPalMap - srl a - jr c, .odd - -; Even-numbered tile ids take the bottom nybble... - add l - ld l, a - ld a, h - adc 0 - ld h, a - ld a, [hl] - and %111 - jr .update - -.odd -; ...and odd ids take the top. - add l - ld l, a - ld a, h - adc 0 - ld h, a - ld a, [hl] - swap a - and %111 - jr .update - -.pal0 - xor a - -.update - pop hl - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .loop - ret - -TownMapPalMap: - db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00 - db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00 - db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33 - db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00 -; 91f7b - -TownMapMon: ; 91f7b -; Draw the FlyMon icon at town map location in - -; Get FlyMon species - ld a, [CurPartyMon] - ld hl, PartySpecies - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - ld [wd265], a - -; Get FlyMon icon - ld e, 8 ; starting tile in VRAM - callba GetSpeciesIcon - -; Animation/palette - ld de, 0 - ld a, $0 - call Function3b2a - - ld hl, 3 - add hl, bc - ld [hl], 8 - ld hl, 2 - add hl, bc - ld [hl], 0 - ret -; 91fa6 - -TownMapPlayerIcon: ; 91fa6 -; Draw the player icon at town map location in a - push af - - callba GetPlayerIcon - -; Standing icon - ld hl, VTiles0 tile $10 - ld c, 4 ; # tiles - call Request2bpp - -; Walking icon - ld hl, $c0 - add hl, de - ld d, h - ld e, l - ld hl, VTiles0 tile $14 - ld c, 4 ; # tiles - ld a, BANK(ChrisSpriteGFX) ; does nothing - call Request2bpp - -; Animation/palette - ld de, 0 - ld b, $0a ; Male - ld a, [PlayerGender] - bit 0, a - jr z, .asm_91fd3 - ld b, $1e ; Female -.asm_91fd3 - ld a, b - call Function3b2a - - ld hl, $3 - add hl, bc - ld [hl], $10 - - pop af - ld e, a - push bc - callba GetLandmarkCoords - pop bc - - ld hl, 4 - add hl, bc - ld [hl], e - ld hl, 5 - add hl, bc - ld [hl], d - ret -; 0x91ff2 - -Function91ff2: ; 91ff2 - ld hl, TownMapGFX - ld de, VTiles2 - lb bc, BANK(TownMapGFX), $30 - call DecompressRequest2bpp - ret -; 91fff - - -JohtoMap: ; 91fff -INCBIN "gfx/misc/johto.bin" -; 92168 - -KantoMap: ; 92168 -INCBIN "gfx/misc/kanto.bin" -; 922d1 - - -GFX_922d1: ; 922d1 -INCBIN "gfx/unknown/0922d1.2bpp" -GFX_922e1: ; 922e1 -INCBIN "gfx/unknown/0922e1.2bpp" -GFX_92301: ; 92301 -INCBIN "gfx/unknown/092301.2bpp" - -Function92311: ; 92311 - xor a - ld [wd002], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites ld hl, hInMenu @@ -48248,7 +45971,7 @@ Function92311: ; 92311 ld [wd002], a pop af ld [hInMenu], a - call WhiteBGMap + call ClearBGPalettes ld a, $90 ld [hWY], a xor a @@ -48317,2121 +46040,7 @@ Function923b8: ; 923b8 INCLUDE "data/wild/fish.asm" - - -_SlotMachine: - ld hl, Options - set 4, [hl] - call Function926f7 - call DelayFrame -.asm_926d2 - call Function927af - jr nc, .asm_926d2 - call WaitSFX - ld de, SFX_QUIT_SLOTS - call PlaySFX - call WaitSFX - call WhiteBGMap - callba MobileFn_105fd0 - ld hl, Options - res 4, [hl] - ld hl, rLCDC ; $ff40 - res 2, [hl] - ret - -Function926f7: ; 926f7 (24:66f7) - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - call DisableLCD - ld hl, VBGMap0 tile $00 - lb bc, 4, 0 - ld a, $7f - call ByteFill - ld b, $5 - call GetSGBLayout - callab Function8cf53 - ld hl, wc6d0 - ld bc, $48 - xor a - call ByteFill - ld hl, Slots2LZ - ld de, VTiles0 tile $00 - call Decompress - ld hl, Slots3LZ - ld de, VTiles0 tile $40 - call Decompress - ld hl, Slots1LZ - ld de, VTiles2 tile $00 - call Decompress - ld hl, Slots2LZ - ld de, VTiles2 tile $25 - call Decompress - ld hl, SlotsTilemap - decoord 0, 0 - ld bc, 20 * 12 - call CopyBytes - ld hl, rLCDC ; $ff40 - set 2, [hl] - call EnableLCD - ld hl, wc6d0 - ld bc, $64 - xor a - call ByteFill - call Function92a98 - call Function9279b - ld a, $7 - ld hl, wc300 - ld [hli], a - ld [hl], $40 - xor a - ld [wJumptableIndex], a - ld a, $ff - ld [wc709], a - ld de, MUSIC_GAME_CORNER - call PlayMusic - xor a - ld [wd002], a - call Random - and $2a - ret nz - ld a, $1 - ld [wd002], a - ret - -Function9279b: ; 9279b (24:679b) - ld a, $e4 - call DmgToCgbBGPals - lb de, $e4, $e4 - ld a, [hCGB] - and a - jr nz, .asm_927ab - lb de, $c0, $e4 -.asm_927ab - call DmgToCgbObjPals - ret - -Function927af: ; 927af (24:67af) - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_927d1 - call Function92844 - call Function92b0f - xor a - ld [wc3b5], a - callab Function8cfa8 - call Function927f8 - call Function927d3 - call DelayFrame - and a - ret -.asm_927d1 - scf - ret - -Function927d3: ; 927d3 (24:67d3) - ret -; 927d4 (24:67d4) - -Function927d4: ; 927d4 - ld a, [wc6d0] - and a - ret nz - ld a, [wc6e0] - and a - ret nz - ld a, [wc70c] - and a - jr nz, .asm_927ea - ld a, $e4 - call DmgToCgbBGPals - ret - -.asm_927ea - ld a, [TextDelayFrames] - and $7 - ret nz - ld a, [rBGP] - xor %1100 - call DmgToCgbBGPals - ret -; 927f8 - -Function927f8: ; 927f8 (24:67f8) - hlcoord 5, 1 - ld de, Coins - lb bc, PRINTNUM_LEADINGZEROS | 2, 4 - call PrintNum - hlcoord 11, 1 - ld de, wc711 - lb bc, PRINTNUM_LEADINGZEROS | 2, 4 - call PrintNum - ret -; 92811 (24:6811) - -Function92811: ; 92811 - ld a, [wc709] - add 0 - daa - ld e, a - and $f - add "0" - hlcoord 1, 0 - ld [hl], a - ld a, e - swap a - and $f - add "0" - hlcoord 0, 0 - ld [hl], a - ret -; 9282c - -Function9282c: ; 9282c - ld hl, wcf66 - ld a, [hl] - inc [hl] - and $7 - ret nz - ld hl, Sprites + $42 - ld c, $18 -.asm_92839 - ld a, [hl] - xor $20 - ld [hli], a -rept 3 - inc hl -endr - dec c - jr nz, .asm_92839 - ret -; 92844 - -Function92844: ; 92844 (24:6844) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_92853 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 92853 (24:6853) - - -Jumptable_92853: ; 92853 (24:6853) - dw Function9287e - dw Function9288e - dw Function928c6 - dw Function928d6 - dw Function928e6 - dw Function92900 - dw Function92910 - dw Function9292a - dw Function9293a - dw Function92879 - dw Function92879 - dw Function92879 - dw Function92955 - dw Function9296b - dw Function92987 - dw Function9299e - dw Function929a4 - dw Function929d9 - dw Function929f0 - - -Function92879: ; 92879 (24:6879) - ld hl, wJumptableIndex - inc [hl] - ret - -Function9287e: ; 9287e (24:687e) - call Function92879 - xor a - ld [wc70b], a - ld [wc70c], a - ld a, $ff - ld [wc70d], a - ret - -Function9288e: ; 9288e (24:688e) - call Function9307c - jr nc, .asm_92899 - ld a, $12 - ld [wJumptableIndex], a - ret -.asm_92899 - call Function92879 - call Function9303f - call Function93002 - ld a, $20 - ld [wcf64], a - ld a, $4 - ld [wc6d0], a - ld [wc6e0], a - ld [wc6f0], a - ld a, $4 - ld [wc6d9], a - ld [wc6e9], a - ld [wc6f9], a - call WaitSFX - ld a, SFX_SLOT_MACHINE_START - call Function9331e - ret - -Function928c6: ; 928c6 (24:68c6) - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_928cf - dec [hl] - ret -.asm_928cf - call Function92879 - xor a - ld [hJoypadSum], a - ret - -Function928d6: ; 928d6 (24:68d6) - ld hl, hJoypadSum ; $ffa5 - ld a, [hl] - and A_BUTTON - ret z - call Function92879 - call Function92a2b - ld [wc6d0], a - -Function928e6: ; 928e6 (24:68e6) - ld a, [wc6d0] - cp $0 - ret nz - ld a, SFX_STOP_SLOT - call Function9331e - ld bc, wc6d0 - ld de, wc700 - call Function929f6 - call Function92879 - xor a - ld [hJoypadSum], a - -Function92900: ; 92900 (24:6900) - ld hl, hJoypadSum ; $ffa5 - ld a, [hl] - and A_BUTTON - ret z - call Function92879 - call Function92a2e - ld [wc6e0], a - -Function92910: ; 92910 (24:6910) - ld a, [wc6e0] - cp $0 - ret nz - ld a, SFX_STOP_SLOT - call Function9331e - ld bc, wc6e0 - ld de, wc703 - call Function929f6 - call Function92879 - xor a - ld [hJoypadSum], a - -Function9292a: ; 9292a (24:692a) - ld hl, hJoypadSum ; $ffa5 - ld a, [hl] - and A_BUTTON - ret z - call Function92879 - call Function92a60 - ld [wc6f0], a - -Function9293a: ; 9293a (24:693a) - ld a, [wc6f0] - cp $0 - ret nz - ld a, SFX_STOP_SLOT - call Function9331e - ld bc, wc6f0 - ld de, wc706 - call Function929f6 - call Function92879 - xor a - ld [hJoypadSum], a - ret - -Function92955: ; 92955 (24:6955) - ld a, [wc70d] - cp $ff - jr nz, .asm_92963 - call Function92879 - call Function92879 - ret -.asm_92963 - call Function92879 - ld a, $10 - ld [wcf64], a - -Function9296b: ; 9296b (24:696b) - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_92980 - dec [hl] - srl a - ret z - ld a, [rOBP0] - xor $ff - ld e, a - ld d, a - call DmgToCgbObjPals - ret -.asm_92980 - call Function9279b - call Function92879 - ret - -Function92987: ; 92987 (24:6987) - xor a - ld [wc70b], a - ld [wc70c], a - ld a, $e4 - call DmgToCgbBGPals - call Function93124 - xor a - ld [wcf64], a - call Function92879 - ret - -Function9299e: ; 9299e (24:699e) - call Function93158 - call Function92879 - -Function929a4: ; 929a4 (24:69a4) - ld hl, wcf64 - ld a, [hl] - inc [hl] - and $1 - ret z - ld hl, wc711 - ld a, [hli] - ld d, a - or [hl] - jr z, .asm_929d5 - ld e, [hl] - dec de - ld [hl], e - dec hl - ld [hl], d - ld hl, Coins - ld d, [hl] - inc hl - ld e, [hl] - call Function92a04 - jr c, .asm_929c5 - inc de -.asm_929c5 - ld [hl], e - dec hl - ld [hl], d - ld a, [wcf64] - and $7 - ret z - ld de, SFX_GET_COIN_FROM_SLOTS - call PlaySFX - ret -.asm_929d5 - call Function92879 - ret - -Function929d9: ; 929d9 (24:69d9) - call Function9304c - call WaitPressAorB_BlinkCursor - call Function930e9 - jr c, .asm_929ea - ld a, $0 - ld [wJumptableIndex], a - ret -.asm_929ea - ld a, $12 - ld [wJumptableIndex], a - ret - -Function929f0: ; 929f0 (24:69f0) - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function929f6: ; 929f6 (24:69f6) - push de - call Function92a12 - pop de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ret - -Function92a04: ; 92a04 (24:6a04) - ld a, d - cp 9999 / $100 - jr c, .asm_92a10 - ld a, e - cp 9999 % $100 - jr c, .asm_92a10 - scf - ret -.asm_92a10 - and a - ret - -Function92a12: ; 92a12 (24:6a12) - ld hl, $3 - add hl, bc - ld a, [hl] - and a - jr nz, .asm_92a1c - ld a, $f -.asm_92a1c - dec a - and $f - ld e, a - ld d, $0 - ld hl, $1 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ret - -Function92a2b: ; 92a2b (24:6a2b) - ld a, $7 - ret - -Function92a2e: ; 92a2e (24:6a2e) - ld a, [wc70a] - cp $2 - jr c, .asm_92a4e - ld a, [wc709] - and a - jr z, .asm_92a3f - cp $ff - jr nz, .asm_92a4e -.asm_92a3f - call Function92a51 - jr nz, .asm_92a4e - call Random - cp $50 - jr nc, .asm_92a4e - ld a, $a - ret -.asm_92a4e - ld a, $8 - ret - -Function92a51: ; 92a51 (24:6a51) - ld a, [wc700] - and a - ret z - ld a, [wc701] - and a - ret z - ld a, [wc702] - and a - ret - -Function92a60: ; 92a60 (24:6a60) - ld a, [wc70b] - and a - jr z, .asm_92a95 - ld a, [wc70c] - and a - jr z, .asm_92a95 - ld a, [wc709] - and a - jr nz, .asm_92a84 - call Random - cp 180 - jr nc, .asm_92a95 - cp 120 - jr nc, .asm_92a92 - cp 60 - jr nc, .asm_92a8f - ld a, $15 - ret -.asm_92a84 - call Random - cp $a0 - jr nc, .asm_92a95 - cp $50 - jr nc, .asm_92a92 -.asm_92a8f - ld a, $12 - ret -.asm_92a92 - ld a, $10 - ret -.asm_92a95 - ld a, $9 - ret - -Function92a98: ; 92a98 (24:6a98) - ld bc, wc6d0 - ld hl, $6 - add hl, bc - ld de, Sprites + $40 - ld [hl], e - inc hl - ld [hl], d - ld hl, $1 - add hl, bc - ld de, Unknown_93327 - ld [hl], e - inc hl - ld [hl], d - ld hl, $8 - add hl, bc - ld [hl], $30 - call Function92af9 - ld bc, wc6e0 - ld hl, $6 - add hl, bc - ld de, Sprites + $60 - ld [hl], e - inc hl - ld [hl], d - ld hl, $1 - add hl, bc - ld de, Unknown_93339 - ld [hl], e - inc hl - ld [hl], d - ld hl, $8 - add hl, bc - ld [hl], $50 - call Function92af9 - ld bc, wc6f0 - ld hl, $6 - add hl, bc - ld de, Sprites + $80 - ld [hl], e - inc hl - ld [hl], d - ld hl, $1 - add hl, bc - ld de, Unknown_9334b - ld [hl], e - inc hl - ld [hl], d - ld hl, $8 - add hl, bc - ld [hl], $70 - call Function92af9 - ret - -Function92af9: ; 92af9 (24:6af9) - ld hl, 0 - add hl, bc - ld [hl], $0 - ld hl, $3 - add hl, bc - ld [hl], $e - ld hl, $4 - add hl, bc - ld [hl], $0 - call Function92b53 - ret - -Function92b0f: ; 92b0f (24:6b0f) - ld bc, wc6d0 - call Function92b22 - ld bc, wc6e0 - call Function92b22 - ld bc, wc6f0 - call Function92b22 - ret - -Function92b22: ; 92b22 (24:6b22) - ld hl, $4 - add hl, bc - ld a, [hl] - and $f - jr nz, .asm_92b2e - call Function92bd4 -.asm_92b2e - ld hl, $5 - add hl, bc - ld a, [hl] - and a - ret z - ld d, a - ld hl, $4 - add hl, bc - add [hl] - ld [hl], a - and $f - jr z, Function92b53 - ld hl, $6 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld e, $8 -.asm_92b49 - ld a, [hl] - add d - ld [hli], a -rept 3 - inc hl -endr - dec e - jr nz, .asm_92b49 - ret - -Function92b53: ; 92b53 (24:6b53) - ld hl, $8 - add hl, bc - ld a, [hl] - ld [wc712 + 1], a - ld a, $50 - ld [wc712 + 2], a - ld hl, $3 - add hl, bc - ld e, [hl] - ld d, $0 - ld hl, $1 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - call Function92b83 - ld hl, $3 - add hl, bc - ld a, [hl] - inc a - and $f - cp $f - jr nz, .asm_92b81 - xor a -.asm_92b81 - ld [hl], a - ret - -Function92b83: ; 92b83 (24:6b83) - ld hl, $6 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a -.asm_92b8a - ld a, [wc712 + 2] - ld [hli], a - ld a, [wc712 + 1] - ld [hli], a - ld a, [de] - ld [hli], a - srl a - srl a - set 7, a - ld [hli], a - ld a, [wc712 + 2] - ld [hli], a - ld a, [wc712 + 1] - add $8 - ld [hli], a - ld a, [de] -rept 2 - inc a -endr - ld [hli], a - srl a - srl a - set 7, a - ld [hli], a - inc de - ld a, [wc712 + 2] - sub $10 - ld [wc712 + 2], a - cp $10 - jr nz, .asm_92b8a - ret -; 92bbe (24:6bbe) - -Function92bbe: ; 92bbe - push hl - srl a - srl a - add Unknown_92bce % $100 - ld l, a - ld a, 0 - adc Unknown_92bce / $100 - ld h, a - ld a, [hl] - pop hl - ret -; 92bce - -Unknown_92bce: ; 92bce - db 0, 1, 2, 3, 4, 5 -; 92bd4 - -Function92bd4: ; 92bd4 (24:6bd4) - ld hl, 0 - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_92be4 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 92be4 (24:6be4) - -Jumptable_92be4: ; 92be4 - dw Function92c16 - dw Function92c4c - dw Function92c17 - dw Function92c1e - dw Function92c25 - dw Function92c2c - dw Function92c33 - dw Function92c5e - dw Function92c86 - dw Function92ca9 - dw Function92cd2 - dw Function92cf8 - dw Function92d13 - dw Function92df7 - dw Function92e10 - dw Function92e31 - dw Function92e47 - dw Function92e64 - dw Function92d20 - dw Function92d4f - dw Function92d6e - dw Function92d7e - dw Function92da4 - dw Function92db3 - dw Function92dca -; 92c16 - -Function92c16: ; 92c16 - ret -; 92c17 - -Function92c17: ; 92c17 - ld hl, $5 - add hl, bc - ld [hl], $10 - ret -; 92c1e - -Function92c1e: ; 92c1e - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92c25 - -Function92c25: ; 92c25 - ld hl, $5 - add hl, bc - ld [hl], $4 - ret -; 92c2c - -Function92c2c: ; 92c2c - ld hl, $5 - add hl, bc - ld [hl], $2 - ret -; 92c33 - -Function92c33: ; 92c33 - ld hl, $5 - add hl, bc - ld [hl], $1 - ret -; 92c3a - -Function92c3a: ; 92c3a - ld hl, $5 - add hl, bc - ld [hl], $0 - ld hl, 0 - add hl, bc - ld [hl], $1 - ld hl, $f - add hl, bc - ld [hl], $3 - -Function92c4c: ; 92c4c - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_92c56 - dec [hl] - ret - -.asm_92c56 - ld hl, 0 - add hl, bc - ld a, $0 - ld [hl], a - ret -; 92c5e - -Function92c5e: ; 92c5e - ld a, [wc709] - cp $ff - jr z, .asm_92c72 - ld hl, $9 - add hl, bc - ld a, [hl] - and a - jr z, .asm_92c72 - dec [hl] - call Function92c76 - ret nz - -.asm_92c72 - call Function92c3a - ret -; 92c76 - -Function92c76: ; 92c76 - call Function92a12 - ld a, [wc709] - ld e, a - ld a, [hli] - cp e - ret z - ld a, [hli] - cp e - ret z - ld a, [hl] - cp e - ret -; 92c86 - -Function92c86: ; 92c86 - call Function92e94 - jr nc, .asm_92c94 - ld a, [wc717] - ld hl, wc709 - cp [hl] - jr z, .asm_92ca5 - -.asm_92c94 - ld a, [wc709] - cp $ff - jr z, .asm_92ca5 - ld hl, $9 - add hl, bc - ld a, [hl] - and a - jr z, .asm_92ca5 - dec [hl] - ret - -.asm_92ca5 - call Function92c3a - ret -; 92ca9 - -Function92ca9: ; 92ca9 - call Function92f1d - jr nc, .asm_92cbd - ld hl, wc709 - cp [hl] - jr z, .asm_92cce - ld hl, $9 - add hl, bc - ld a, [hl] - and a - ret z - dec [hl] - ret - -.asm_92cbd - ld a, [wc709] - cp $ff - jr z, .asm_92cce - ld hl, $9 - add hl, bc - ld a, [hl] - and a - jr z, .asm_92cce - dec [hl] - ret - -.asm_92cce - call Function92c3a - ret -; 92cd2 - -Function92cd2: ; 92cd2 - call Function92e94 - jr nc, .asm_92ce1 - ld a, [wc70c] - and a - jr z, .asm_92ce1 - call Function92c3a - ret - -.asm_92ce1 - ld a, SFX_STOP_SLOT - call Function9331e - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $a - add hl, bc - ld [hl], $20 - ld hl, $5 - add hl, bc - ld [hl], $0 - ret -; 92cf8 - -Function92cf8: ; 92cf8 - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_92d02 - dec [hl] - ret - -.asm_92d02 - ld a, SFX_THROW_BALL - call Function9331e - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92d13 - -Function92d13: ; 92d13 - call Function92e94 - ret nc - ld a, [wc70c] - and a - ret z - call Function92c3a - ret -; 92d20 - -Function92d20: ; 92d20 - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $0 - call Function92fc0 - push bc - push af - ld de, $6068 - ld a, $6 - call Function3b2a - ld hl, $e - add hl, bc - pop af - ld [hl], a - pop bc - xor a - ld [wcf64], a - -Function92d4f: ; 92d4f - ld a, [wcf64] - cp $2 - jr z, .asm_92d5b - cp $1 - jr z, .asm_92d62 - ret - -.asm_92d5b - call Function92f1d - call Function92c3a - ret - -.asm_92d62 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92d6e - -Function92d6e: ; 92d6e - xor a - ld [wcf64], a - ld hl, 0 - add hl, bc - dec [hl] - ld hl, $5 - add hl, bc - ld [hl], $0 - ret -; 92d7e - -Function92d7e: ; 92d7e - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $0 - push bc - ld de, $6000 - ld a, $7 - call Function3b2a - pop bc - xor a - ld [wcf64], a - ret -; 92da4 - -Function92da4: ; 92da4 - ld a, [wcf64] - and a - ret z - ld hl, 0 - add hl, bc - inc [hl] - ld a, $2 - ld [wcf64], a - -Function92db3: ; 92db3 - ld a, [wcf64] - cp $4 - ret c - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $10 - ld hl, $a - add hl, bc - ld [hl], $11 - -Function92dca: ; 92dca - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_92dd4 - dec [hl] - ret - -.asm_92dd4 - call Function92f1d - jr nc, .asm_92de5 - and a - jr nz, .asm_92de5 - ld a, $5 - ld [wcf64], a - call Function92c3a - ret - -.asm_92de5 - ld hl, $5 - add hl, bc - ld [hl], $0 - ld hl, 0 - add hl, bc -rept 2 - dec [hl] -endr - ld a, $1 - ld [wcf64], a - ret -; 92df7 - -Function92df7: ; 92df7 - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, 0 - add hl, bc - inc [hl] - call Function92fc0 - ld hl, $a - add hl, bc - ld [hl], a - -Function92e10: ; 92e10 - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr nz, .asm_92e1f - call Function92f1d - call Function92c3a - ret - -.asm_92e1f - dec [hl] - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $b - add hl, bc - ld [hl], $20 - ld hl, $5 - add hl, bc - ld [hl], $0 - -Function92e31: ; 92e31 - ld hl, $b - add hl, bc - ld a, [hl] - and a - jr z, .asm_92e3b - dec [hl] - ret - -.asm_92e3b - ld hl, 0 - add hl, bc - dec [hl] - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92e47 - -Function92e47: ; 92e47 - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, $5 - add hl, bc - ld [hl], $1 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $a - add hl, bc - ld [hl], $10 - -Function92e64: ; 92e64 - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_92e73 - dec [hl] -.asm_92e6d - ld a, SFX_GOT_SAFARI_BALLS - call Function9331e - ret - -.asm_92e73 - ld a, [wc709] - and a - jr nz, .asm_92e88 - call Function92f1d - jr nc, .asm_92e6d - and a - jr nz, .asm_92e6d - call Function92c3a - call WaitSFX - ret - -.asm_92e88 - call Function92f1d - jr c, .asm_92e6d - call Function92c3a - call WaitSFX - ret -; 92e94 - -Function92e94: ; 92e94 - xor a - ld [wc70b], a - ld [wc70c], a - call Function92a12 - call Function92fb4 - ld a, [wc70a] - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_92ebd -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_92eb6 - push de - jp [hl] - -.asm_92eb6 - ld a, [wc70b] - and a - ret z - scf - ret -; 92ebd - -Jumptable_92ebd: ; 92ebd - dw Function92ed4 - dw Function92ed1 - dw Function92ecb - dw Function92ec5 -; 92ec5 - -Function92ec5: ; 92ec5 - call Function92ee0 - call Function92ef6 - -Function92ecb: ; 92ecb - call Function92ed5 - call Function92f01 - -Function92ed1: ; 92ed1 - call Function92eeb - -Function92ed4: ; 92ed4 - ret -; 92ed5 - -Function92ed5: ; 92ed5 - ld hl, wc70e - ld a, [EnemyScreens] - cp [hl] - call z, Function92f0c - ret -; 92ee0 - -Function92ee0: ; 92ee0 - ld hl, wEnemyGoesFirst - ld a, [wc700] - cp [hl] - call z, Function92f0c - ret -; 92eeb - -Function92eeb: ; 92eeb - ld hl, wEnemyGoesFirst - ld a, [wc701] - cp [hl] - call z, Function92f0c - ret -; 92ef6 - -Function92ef6: ; 92ef6 - ld hl, wEnemyGoesFirst - ld a, [wc702] - cp [hl] - call z, Function92f0c - ret -; 92f01 - -Function92f01: ; 92f01 - ld hl, wc710 - ld a, [wc702] - cp [hl] - call z, Function92f0c - ret -; 92f0c - -Function92f0c: ; 92f0c - ld [wc717], a - and a - jr nz, .asm_92f17 - ld a, $1 - ld [wc70c], a - -.asm_92f17 - ld a, $1 - ld [wc70b], a - ret -; 92f1d - -Function92f1d: ; 92f1d - ld a, $ff - ld [EffectFailed], a - call Function92a12 - call Function92fb4 - ld a, [wc70a] - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_92f48 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_92f3d - push de - jp [hl] - -.asm_92f3d - ld a, [wc70d] - cp $ff - jr nz, .asm_92f46 - and a - ret - -.asm_92f46 - scf - ret -; 92f48 - -Jumptable_92f48: ; 92f48 - dw Function92f5f - dw Function92f5c - dw Function92f56 - dw Function92f50 -; 92f50 - -Function92f50: ; 92f50 - call Function92f70 - call Function92f90 - -Function92f56: ; 92f56 - call Function92f60 - call Function92fa0 - -Function92f5c: ; 92f5c - call Function92f80 - -Function92f5f: ; 92f5f - ret -; 92f60 - -Function92f60: ; 92f60 - ld hl, wc70e - ld a, [wc700] - cp [hl] - ret nz - ld hl, wc703 - cp [hl] - call z, Function92fb0 - ret -; 92f70 - -Function92f70: ; 92f70 - ld hl, wc710 - ld a, [wc700] - cp [hl] - ret nz - ld hl, wc704 - cp [hl] - call z, Function92fb0 - ret -; 92f80 - -Function92f80: ; 92f80 - ld hl, wEnemyGoesFirst - ld a, [wc701] - cp [hl] - ret nz - ld hl, wc704 - cp [hl] - call z, Function92fb0 - ret -; 92f90 - -Function92f90: ; 92f90 - ld hl, wc70e - ld a, [wc702] - cp [hl] - ret nz - ld hl, wc704 - cp [hl] - call z, Function92fb0 - ret -; 92fa0 - -Function92fa0: ; 92fa0 - ld hl, wc710 - ld a, [wc702] - cp [hl] - ret nz - ld hl, wc705 - cp [hl] - call z, Function92fb0 - ret -; 92fb0 - -Function92fb0: ; 92fb0 - ld [wc70d], a - ret -; 92fb4 - -Function92fb4: ; 92fb4 - ld de, wc70e - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - ret -; 92fc0 - -Function92fc0: ; 92fc0 - ld hl, $3 - add hl, bc - ld a, [hl] - push af - push hl - call Function92fcf - pop hl - pop af - ld [hl], a - ld a, e - ret -; 92fcf - -Function92fcf: ; 92fcf - ld a, [wc709] - and a - jr nz, .asm_92fe8 - ld e, $0 -.asm_92fd7 - ld hl, $3 - add hl, bc - inc [hl] - inc e - push de - call Function92f1d - pop de - jr nc, .asm_92fd7 - and a - jr nz, .asm_92fd7 - ret - -.asm_92fe8 - call Random - and $7 - cp $4 - jr c, .asm_92fe8 - ld e, a -.asm_92ff2 - ld a, e - inc e - ld hl, $3 - add hl, bc - add [hl] - ld [hl], a - push de - call Function92f1d - pop de - jr c, .asm_92ff2 - ret -; 93002 - -Function93002: ; 93002 (24:7002) - ld a, [wc709] - and a - ret z - ld hl, Unknown_93023 - ld a, [ScriptVar] - and a - jr z, .asm_93013 - ld hl, Unknown_93031 -.asm_93013 - call Random - ld c, a -.asm_93017 - ld a, [hli] - cp c - jr nc, .asm_9301e - inc hl - jr .asm_93017 -.asm_9301e - ld a, [hl] - ld [wc709], a - ret -; 93023 (24:7023) - -Unknown_93023: ; 93023 - db $01, $00 - db $03, $04 - db $0a, $14 - db $14, $10 - db $28, $0c - db $30, $08 - db $ff, $ff -; 93031 - -Unknown_93031: ; 93031 - db $02, $00 - db $03, $04 - db $08, $14 - db $10, $10 - db $1e, $0c - db $50, $08 - db $ff, $ff -; 9303f - -Function9303f: ; 9303f (24:703f) - ld b, $14 - ld a, [wc70a] - dec a - jr z, asm_93066 - dec a - jr z, asm_9305a - jr asm_9304e - -Function9304c: ; 9304c (24:704c) - ld b, $23 -asm_9304e: ; 9304e (24:704e) - hlcoord 3, 2 - call Function93069 - hlcoord 3, 10 - call Function93069 -asm_9305a: ; 9305a (24:705a) - hlcoord 3, 4 - call Function93069 - hlcoord 3, 8 - call Function93069 -asm_93066: ; 93066 (24:7066) - hlcoord 3, 6 - -Function93069: ; 93069 (24:7069) - ld a, b - ld [hl], a - ld de, $d - add hl, de - ld [hl], a - ld de, $7 - add hl, de - inc a - ld [hl], a - ld de, $d - add hl, de - ld [hl], a - ret - -Function9307c: ; 9307c (24:707c) - ld hl, UnknownText_0x930c7 - call PrintText - ld hl, MenuDataHeader_0x930d6 - call LoadMenuDataHeader - call InterpretMenu2 - call WriteBackup - ret c - ld a, [MenuSelection2] - ld b, a - ld a, $4 - sub b - ld [wc70a], a - ld hl, Coins - ld c, a - ld a, [hli] - and a - jr nz, .asm_930ad - ld a, [hl] - cp c - jr nc, .asm_930ad - ld hl, UnknownText_0x930d1 - call PrintText - jr Function9307c -.asm_930ad - ld hl, Coins + 1 - ld a, [hl] - sub c - ld [hld], a - jr nc, .asm_930b6 - dec [hl] -.asm_930b6 - call WaitSFX - ld de, SFX_PAY_DAY - call PlaySFX - ld hl, UnknownText_0x930cc - call PrintText - and a - ret -; 930c7 (24:70c7) - -UnknownText_0x930c7: ; 0x930c7 - ; Bet how many coins? - text_jump UnknownText_0x1c5049 - db "@" -; 0x930cc - -UnknownText_0x930cc: ; 0x930cc - ; Start! - text_jump UnknownText_0x1c505e - db "@" -; 0x930d1 - -UnknownText_0x930d1: ; 0x930d1 - ; Not enough coins. - text_jump UnknownText_0x1c5066 - db "@" -; 0x930d6 - -MenuDataHeader_0x930d6: ; 0x930d6 - db $40 ; flags - db 10, 14 ; start coords - db 17, 19 ; end coords - dw MenuData2_0x930de - db 1 ; default option -; 0x930de - -MenuData2_0x930de: ; 0x930de - db $80 ; flags - db 3 ; items - db " 3@" - db " 2@" - db " 1@" -; 0x930e9 - -Function930e9: ; 930e9 (24:70e9) - ld hl, Coins - ld a, [hli] - or [hl] - jr nz, .asm_930fd - ld hl, UnknownText_9311a - call PrintText - ld c, 60 - call DelayFrames - jr .asm_93118 -.asm_930fd - ld hl, UnknownText_9311f - call PrintText - call LoadMenuTextBox - lb bc, 14, 12 - call PlaceYesNoBox - ld a, [MenuSelection2] - dec a - call WriteBackup - and a - jr nz, .asm_93118 - and a - ret -.asm_93118 - scf - ret -; 9311a (24:711a) - -UnknownText_9311a: ; 9311a - text_jump UnknownText_0x1c5079 - db "@" - -UnknownText_9311f: ; 9311f - text_jump UnknownText_0x1c5092 - db "@" - -Function93124: ; 93124 (24:7124) - ld a, [EffectFailed] - cp $ff - jr z, .asm_93151 - srl a - ld e, a - ld d, 0 - ld hl, .data_93145 - add hl, de - ld a, [hli] - ld [PlayerUsedMoves], a - ld e, a - ld a, [hl] - ld [wc711], a - ld d, a - callba MobileFn_105fe3 - ret - -.data_93145 - db $2c, $01 - db $32, $00 - db $06, $00 - db $08, $00 - db $0a, $00 - db $0f, $00 - -.asm_93151 - ld hl, wc711 - xor a - ld [hli], a - ld [hl], a - ret - -Function93158: ; 93158 (24:7158) - ld a, [EffectFailed] - cp $ff - jr nz, .asm_9316c - ld hl, UnknownText_0x931e0 - call PrintText - callba MobileFn_105fd0 - ret -.asm_9316c - srl a - ld e, a - ld d, 0 - ld hl, Unknown_93195 -rept 3 - add hl, de -endr - ld de, StringBuffer2 - ld bc, $4 - call CopyBytes - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_93188 - push de - jp [hl] -.asm_93188 - ld hl, UnknownText_0x931b9 - call PrintText - callba MobileFn_105f9f - ret -; 93195 (24:7195) - -Unknown_93195: ; 93195 - db "300@" - dw Function931e5 - db "50@@" - dw Function9320b - db "6@@@" - dw Function93214 - db "8@@@" - dw Function93214 - db "10@@" - dw Function93214 - db "15@@" - dw Function93214 -; 931b9 - -UnknownText_0x931b9: ; 0x931b9 - start_asm -; 0x931ba - -Function931ba: ; 931ba - ld a, [EffectFailed] - add $25 - ldcoord_a 2, 13 - inc a - ldcoord_a 2, 14 - inc a - ldcoord_a 3, 13 - inc a - ldcoord_a 3, 14 - hlcoord 18, 17 - ld [hl], $ee - ld hl, UnknownText_0x931db -rept 4 - inc bc -endr - ret -; 931db - -UnknownText_0x931db: ; 0x931db - ; lined up! Won @ coins! - text_jump UnknownText_0x1c509f - db "@" -; 0x931e0 - -UnknownText_0x931e0: ; 0x931e0 - ; Darn! - text_jump UnknownText_0x1c50bb - db "@" -; 0x931e5 - -Function931e5: ; 931e5 - ld a, SFX_2ND_PLACE - call Function9331e - call WaitSFX - ld a, [wd002] - and a - jr nz, .asm_931ff - call Random - and $14 - ret z - ld a, $ff - ld [wc709], a - ret - -.asm_931ff - call Random - and $1c - ret z - ld a, $ff - ld [wc709], a - ret -; 9320b - -Function9320b: ; 9320b - ld a, SFX_3RD_PLACE - call Function9331e - call WaitSFX - ret -; 93214 - -Function93214: ; 93214 - ld a, SFX_PRESENT - call Function9331e - call WaitSFX - ret -; 9321d - -Function9321d: ; 9321d (24:721d) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_9322d -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_9322d: ; 9322d (24:722d) - dw Function93233 - dw Function93259 - dw Function93289 - - -Function93233: ; 93233 (24:7233) - ld hl, $e - add hl, bc - ld a, [hl] - and a - jr nz, .asm_93247 - ld a, $2 - ld [wcf64], a - ld hl, 0 - add hl, bc - ld [hl], $0 - ret -.asm_93247 - dec [hl] - ld hl, $b - add hl, bc - inc [hl] - ld hl, $c - add hl, bc - ld [hl], $30 - ld hl, $6 - add hl, bc - ld [hl], $0 - -Function93259: ; 93259 (24:7259) - ld hl, $c - add hl, bc - ld a, [hl] - cp $20 - jr c, .asm_93273 - dec [hl] - ld e, a - ld d, $70 - callba Functionce765 - ld a, e - ld hl, $7 - add hl, bc - ld [hl], a - ret -.asm_93273 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $d - add hl, bc - ld [hl], $2 - ld a, $1 - ld [wcf64], a - ld a, SFX_PLACE_PUZZLE_PIECE_DOWN - call Function9331e - ret - -Function93289: ; 93289 (24:7289) - ld hl, $6 - add hl, bc - ld a, [hl] -rept 2 - inc [hl] -endr - cp $48 - jr nc, .asm_932a3 - and $3 - ret nz - ld hl, $d - add hl, bc - ld a, [hl] - xor $ff - inc a - ld [hl], a - ld [hSCY], a - ret -.asm_932a3 - ld hl, $b - add hl, bc - xor a - ld [hl], a - ld [hSCY], a - ret - -Function932ac: ; 932ac (24:72ac) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_932bc -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_932bc: ; 932bc (24:72bc) - dw Function932c2 - dw Function932e0 - dw Function932fc - - -Function932c2: ; 932c2 (24:72c2) - ld hl, $4 - add hl, bc - ld a, [hl] - inc [hl] - cp $68 - jr z, .asm_932d6 - and $f - ret nz - ld de, SFX_JUMP_OVER_LEDGE - call PlaySFX - ret -.asm_932d6 - ld hl, $b - add hl, bc - inc [hl] - ld a, $1 - ld [wcf64], a - -Function932e0: ; 932e0 (24:72e0) - ld a, [wcf64] - cp $2 - jr z, .asm_932f1 - cp $5 - ret nz - ld hl, 0 - add hl, bc - ld [hl], $0 - ret -.asm_932f1 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $c - add hl, bc - ld [hl], $8 - -Function932fc: ; 932fc (24:72fc) - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_93306 - dec [hl] - ret -.asm_93306 - ld hl, $b - add hl, bc - dec [hl] - push bc - ld de, $606c - ld a, $8 - call Function3b2a - pop bc - ret -; 93316 (24:7316) - -Function93316: ; 93316 - push bc - ld c, 16 - call DelayFrames - pop bc - ret -; 9331e - -Function9331e: ; 9331e (24:731e) - push de - ld e, a - ld d, 0 - call PlaySFX - pop de - ret -; 93327 (24:7327) - -Unknown_93327: ; 93327 - db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14 -Unknown_93339: ; 93339 - db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08 -Unknown_9334b: ; 9334b - db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08 -; 9335d - -SlotsTilemap: ; 9335d -INCBIN "gfx/slots.tilemap" -; 9344d - -Slots1LZ: ; 9344d -INCBIN "gfx/slots_1.2bpp.lz" -; 935cd - -Slots2LZ: ; 935cd -INCBIN "gfx/slots_2.2bpp.lz" -; 9382d - -Slots3LZ: ; 9382d -INCBIN "gfx/slots_3.2bpp.lz" -; 93a3d - +INCLUDE "engine/slot_machine.asm" SECTION "bank28", ROMX, BANK[$28] @@ -50468,870 +46077,7 @@ INCLUDE "tilesets/data_5.asm" SECTION "bank2E", ROMX, BANK[$2E] -ReturnFromMapSetupScript:: ; b8000 - xor a - ld [hBGMapMode], a - ; For some reson, GameFreak chose to use a callba here instead of just falling through. - ; No other function in the game references the function at 2E:400A, here labeled - ; ReturnFromMapSetupScript.inefficientcallba. - callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes - ret -; b800a - -.inefficientcallba: ; b800a - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - ld [wCurrentLandmark], a - call .CheckNationalParkGate - jr z, .nationalparkgate - - call GetMapPermission - cp GATE - jr nz, .not_gate - -.nationalparkgate - ld a, -1 - ld [wCurrentLandmark], a - -.not_gate - ld hl, wEnteredMapFromContinue - bit 1, [hl] - res 1, [hl] - jr nz, .dont_do_map_sign - - call .CheckMovingWithinLandmark - jr z, .dont_do_map_sign - ld a, [wCurrentLandmark] - ld [wPreviousLandmark], a - - call .CheckSpecialMap - jr z, .dont_do_map_sign - -; Display for 60 frames - ld a, 60 - ld [wLandmarkSignTimer], a - call LoadMapNameSignGFX - call InitMapNameFrame - callba Function104303 - ret - -.dont_do_map_sign - ld a, [wCurrentLandmark] - ld [wPreviousLandmark], a - ld a, $90 - ld [rWY], a - ld [hWY], a - xor a - ld [hLCDStatCustom], a - ret -; b8064 - -.CheckMovingWithinLandmark: ; b8064 - ld a, [wCurrentLandmark] - ld c, a - ld a, [wPreviousLandmark] - cp c - ret z - cp $0 - ret -; b8070 - -.CheckSpecialMap: ; b8070 - cp -1 - ret z - cp SPECIAL_MAP - ret z - cp RADIO_TOWER - ret z - cp LAV_RADIO_TOWER - ret z - cp UNDERGROUND - ret z - cp INDIGO_PLATEAU - ret z - cp POWER_PLANT - ret z - ld a, $1 - and a - ret -; b8089 - -.CheckNationalParkGate: ; b8089 - ld a, [MapGroup] - cp GROUP_ROUTE_35_NATIONAL_PARK_GATE - ret nz - ld a, [MapNumber] - cp MAP_ROUTE_35_NATIONAL_PARK_GATE - ret z - cp MAP_ROUTE_36_NATIONAL_PARK_GATE - ret -; b8098 - - -PlaceMapNameSign:: ; b8098 (2e:4098) - ld hl, wLandmarkSignTimer - ld a, [hl] - and a - jr z, .disappear - dec [hl] - cp 60 - ret z - cp 59 - jr nz, .skip2 - call InitMapNameFrame - call PlaceMapNameCenterAlign - callba Function104303 -.skip2 - ld a, $80 - ld a, $70 - ld [rWY], a - ld [hWY], a - ret - -.disappear - ld a, $90 - ld [rWY], a - ld [hWY], a - xor a - ld [hLCDStatCustom], a - ret - - -LoadMapNameSignGFX: ; b80c6 - ld de, MapEntryFrameGFX - ld hl, VTiles2 tile $60 - lb bc, BANK(MapEntryFrameGFX), $e - call Get2bpp - ret -; b80d3 - -InitMapNameFrame: ; b80d3 - hlcoord 0, 0 - ld b, 2 - ld c, 18 - call InitMapSignAttrMap - call PlaceMapNameFrame - ret -; b80e1 - - -PlaceMapNameCenterAlign: ; b80e1 (2e:40e1) - ld a, [wCurrentLandmark] - ld e, a - callba GetLandmarkName - call .GetNameLength - ld a, SCREEN_WIDTH - sub c - srl a - ld b, $0 - ld c, a - hlcoord 0, 2 - add hl, bc - ld de, StringBuffer1 - call PlaceString - ret - -.GetNameLength: ; b8101 (2e:4101) - ld c, 0 - push hl - ld hl, StringBuffer1 -.loop - ld a, [hli] - cp "@" - jr z, .stop - cp "%" - jr z, .loop - inc c - jr .loop -.stop - pop hl - ret - - -InitMapSignAttrMap: ; b8115 - ld de, AttrMap - TileMap - add hl, de -rept 2 - inc b -endr -rept 2 - inc c -endr - ld a, $87 -.loop - push bc - push hl -.inner_loop - ld [hli], a - dec c - jr nz, .inner_loop - pop hl - ld de, SCREEN_WIDTH - add hl, de - pop bc - dec b - jr nz, .loop - ret -; b812f - -PlaceMapNameFrame: ; b812f - hlcoord 0, 0 - ; top left - ld a, $61 - ld [hli], a - ; top row - ld a, $62 - call .FillTopBottom - ; top right - ld a, $64 - ld [hli], a - ; left, first line - ld a, $65 - ld [hli], a - ; first line - call .FillMiddle - ; right, first line - ld a, $6b - ld [hli], a - ; left, second line - ld a, $66 - ld [hli], a - ; second line - call .FillMiddle - ; right, second line - ld a, $6c - ld [hli], a - ; bottom left - ld a, $67 - ld [hli], a - ; bottom - ld a, $68 - call .FillTopBottom - ; bottom right - ld a, $6a - ld [hl], a - ret -; b815b - -.FillMiddle: ; b815b - ld c, 18 - ld a, $6d -.loop - ld [hli], a - dec c - jr nz, .loop - ret -; b8164 - -.FillTopBottom: ; b8164 - ld c, 5 - jr .enterloop - -.continueloop -rept 2 - ld [hli], a -endr - -.enterloop - inc a -rept 2 - ld [hli], a -endr - dec a - dec c - jr nz, .continueloop - ret -; b8172 - -CheckForSignpostItems: ; b8172 -; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry. - call GetMapScriptHeaderBank - ld [Buffer1], a -; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed. - ld a, [XCoord] - add SCREEN_WIDTH / 4 - ld [wd1ed], a - ld a, [YCoord] - add SCREEN_HEIGHT / 4 - ld [wd1ec], a -; Get the pointer for the first signpost header in the map... - ld hl, wdc02 - ld a, [hli] - ld h, [hl] - ld l, a -; ... before even checking to see if there are any signposts on this map. - ld a, [wCurrentMapSignpostCount] - and a - jr z, .nosignpostitems -; For i = 1:wCurrentMapSignpostCount... -.loop -; Store the counter in Buffer2, and store the signpost header pointer in the stack. - ld [Buffer2], a - push hl -; Get the Y coordinate of the signpost. - call .GetFarByte - ld e, a -; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost. - ld a, [wd1ec] - sub e - jr c, .next - cp SCREEN_HEIGHT / 2 - jr nc, .next -; Is the X coordinate of the signpost on the screen? If not, go to the next signpost. - call .GetFarByte - ld d, a - ld a, [wd1ed] - sub d - jr c, .next - cp SCREEN_WIDTH / 2 - jr nc, .next -; Is this signpost a hidden item? If not, go to the next signpost. - call .GetFarByte - cp SIGNPOST_ITEM - jr nz, .next -; Has this item already been found? If not, set off the Itemfinder. - ld a, [Buffer1] - call GetFarHalfword - ld a, [Buffer1] - call GetFarHalfword - ld d, h - ld e, l - ld b, CHECK_FLAG - call EventFlagAction - ld a, c - and a - jr z, .itemnearby - -.next -; Restore the signpost header pointer and increment it by the length of a signpost header. - pop hl - ld bc, 5 - add hl, bc -; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range. - ld a, [Buffer2] - dec a - jr nz, .loop - -.nosignpostitems - xor a - ret - -.itemnearby - pop hl - scf - ret -; b81e2 - -.GetFarByte: ; b81e2 - ld a, [Buffer1] - call GetFarByte - inc hl - ret -; b81ea - - -TreeMonEncounter: ; b81ea - callba MobileFn_1060ef - - xor a - ld [TempWildMonSpecies], a - ld [CurPartyLevel], a - - ld hl, TreeMonMaps - call GetTreeMonSet - jr nc, .no_battle - - call GetTreeMons - jr nc, .no_battle - - call GetTreeMon - jr nc, .no_battle - - ld a, BATTLETYPE_TREE - ld [BattleType], a - ld a, 1 - ld [ScriptVar], a - ret - -.no_battle - xor a - ld [ScriptVar], a - ret -; b8219 - -RockMonEncounter: ; b8219 - - xor a - ld [TempWildMonSpecies], a - ld [CurPartyLevel], a - - ld hl, RockMonMaps - call GetTreeMonSet - jr nc, .no_battle - - call GetTreeMons - jr nc, .no_battle - - ld a, 10 - call RandomRange - cp 4 - jr nc, .no_battle - - call SelectTreeMon - jr nc, .no_battle - - ret - -.no_battle - xor a - ret -; b823e - - db $05 ; ???? - -GetTreeMonSet: ; b823f -; Return carry and treemon set in a -; if the current map is in table hl. - ld a, [MapNumber] - ld e, a - ld a, [MapGroup] - ld d, a -.loop - ld a, [hli] - cp -1 - jr z, .not_in_table - - cp d - jr nz, .skip2 - - ld a, [hli] - cp e - jr nz, .skip1 - - jr .in_table - -.skip2 - inc hl -.skip1 - inc hl - jr .loop - -.not_in_table - xor a - ret - -.in_table - ld a, [hl] - scf - ret -; b825e - -TreeMonMaps: ; b825e -treemon_map: macro - map \1 - db \2 ; treemon set -endm - treemon_map ROUTE_26, 4 - treemon_map ROUTE_27, 4 - treemon_map ROUTE_28, 0 - treemon_map ROUTE_29, 3 - treemon_map ROUTE_30, 3 - treemon_map ROUTE_31, 3 - treemon_map ROUTE_32, 4 - treemon_map ROUTE_33, 2 - treemon_map ROUTE_34, 3 - treemon_map ROUTE_35, 3 - treemon_map ROUTE_36, 3 - treemon_map ROUTE_37, 3 - treemon_map ROUTE_38, 3 - treemon_map ROUTE_39, 3 - treemon_map ROUTE_40, 0 - treemon_map ROUTE_41, 0 - treemon_map ROUTE_42, 2 - treemon_map ROUTE_43, 5 - treemon_map ROUTE_44, 1 - treemon_map ROUTE_45, 1 - treemon_map ROUTE_46, 1 - treemon_map NEW_BARK_TOWN, 0 - treemon_map CHERRYGROVE_CITY, 0 - treemon_map VIOLET_CITY, 0 - treemon_map AZALEA_TOWN, 2 - treemon_map CIANWOOD_CITY, 0 - treemon_map GOLDENROD_CITY, 0 - treemon_map OLIVINE_CITY, 0 - treemon_map ECRUTEAK_CITY, 0 - treemon_map MAHOGANY_TOWN, 0 - treemon_map LAKE_OF_RAGE, 5 - treemon_map BLACKTHORN_CITY, 0 - treemon_map SILVER_CAVE_OUTSIDE, 0 - treemon_map ILEX_FOREST, 6 - db -1 -; b82c5 - -RockMonMaps: ; b82c5 - treemon_map CIANWOOD_CITY, 7 - treemon_map ROUTE_40, 7 - treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7 - treemon_map SLOWPOKE_WELL_B1F, 7 - db -1 -; b82d2 - -GetTreeMons: ; b82d2 -; Return the address of TreeMon table a in hl. -; Return nc if table a doesn't exist. - - cp 8 - jr nc, .quit - - and a - jr z, .quit - - ld e, a - ld d, 0 - ld hl, TreeMons -rept 2 - add hl, de -endr - - ld a, [hli] - ld h, [hl] - ld l, a - - scf - ret - -.quit - xor a - ret -; b82e8 - -TreeMons: ; b82e8 - dw TreeMons1 - dw TreeMons1 - dw TreeMons2 - dw TreeMons3 - dw TreeMons4 - dw TreeMons5 - dw TreeMons6 - dw RockMons - dw TreeMons1 - -; Two tables each (normal, rare). -; Structure: -; db %, species, level - -TreeMons1: ; b82fa - db 50, SPEAROW, 10 - db 15, SPEAROW, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons2: ; b8320 - db 50, SPEAROW, 10 - db 15, EKANS, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons3: ; b8346 - db 50, HOOTHOOT, 10 - db 15, SPINARAK, 10 - db 15, LEDYBA, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons4: ; b836c - db 50, HOOTHOOT, 10 - db 15, EKANS, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons5: ; b8392 - db 50, HOOTHOOT, 10 - db 15, VENONAT, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons6: ; b83b8 - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, NOCTOWL, 10 - db 5, BUTTERFREE, 10 - db 5, BEEDRILL, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, CATERPIE, 10 - db 15, WEEDLE, 10 - db 10, HOOTHOOT, 10 - db 5, METAPOD, 10 - db 5, KAKUNA, 10 - db -1 - -RockMons: ; b83de - db 90, KRABBY, 15 - db 10, SHUCKLE, 15 - db -1 -; b83e5 - -GetTreeMon: ; b83e5 - push hl - call GetTreeScore - pop hl - and a - jr z, .bad - cp 1 - jr z, .good - cp 2 - jr z, .rare - ret - -.bad - ld a, 10 - call RandomRange - and a - jr nz, NoTreeMon - jr SelectTreeMon - -.good - ld a, 10 - call RandomRange - cp 5 - jr nc, NoTreeMon - jr SelectTreeMon - -.rare - ld a, 10 - call RandomRange - cp 8 - jr nc, NoTreeMon - jr .skip -.skip - ld a, [hli] - cp -1 - jr nz, .skip - call SelectTreeMon - ret -; b841f - -SelectTreeMon: ; b841f -; Read a TreeMons table and pick one monster at random. - - ld a, 100 - call RandomRange -.loop - sub [hl] - jr c, .ok -rept 3 - inc hl -endr - jr .loop - -.ok - ld a, [hli] - cp $ff - jr z, NoTreeMon - - ld a, [hli] - ld [TempWildMonSpecies], a - ld a, [hl] - ld [CurPartyLevel], a - scf - ret - -NoTreeMon: ; b843b - xor a - ld [TempWildMonSpecies], a - ld [CurPartyLevel], a - ret -; b8443 - -GetTreeScore: ; b8443 - call .CoordScore - ld [Buffer1], a - call .OTIDScore - ld [Buffer2], a - ld c, a - ld a, [Buffer1] - sub c - jr z, .rare - jr nc, .ok - add 10 -.ok - cp 5 - jr c, .good - -.bad - xor a - ret - -.good - ld a, 1 - ret - -.rare - ld a, 2 - ret -; b8466 - -.CoordScore: ; b8466 - call GetFacingTileCoord - ld hl, 0 - ld c, e - ld b, 0 - ld a, d - - and a - jr z, .next -.loop - add hl, bc - dec a - jr nz, .loop -.next - - add hl, bc - ld c, d - add hl, bc - - ld a, h - ld [hDividend], a - ld a, l - ld [hDividend + 1], a - ld a, 5 - ld [hDivisor], a - ld b, 2 - call Divide - - ld a, [hQuotient + 1] - ld [hDividend], a - ld a, [hQuotient + 2] - ld [hDividend + 1], a - ld a, 10 - ld [hDivisor], a - ld b, 2 - call Divide - - ld a, [hQuotient + 3] - ret -; b849d - -.OTIDScore: ; b849d - ld a, [PlayerID] - ld [hDividend], a - ld a, [PlayerID + 1] - ld [hDividend + 1], a - ld a, 10 - ld [hDivisor], a - ld b, 2 - call Divide - ld a, [hQuotient + 3] - ret -; b84b3 - - -Functionb84b3: ; b84b3 - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - - ld de, FishingGFX - ld a, [PlayerGender] - bit 0, a - jr z, .asm_b84c7 - ld de, KrisFishingGFX -.asm_b84c7 - - ld hl, VTiles0 tile $02 - call Functionb84e3 - ld hl, VTiles0 tile $06 - call Functionb84e3 - ld hl, VTiles0 tile $0a - call Functionb84e3 - ld hl, VTiles2 tile $00 - $40 - call Functionb84e3 - - pop af - ld [rVBK], a - ret -; b84e3 - -Functionb84e3: ; b84e3 - lb bc, BANK(FishingGFX), 2 - push de - call Get2bpp - pop de - ld hl, $20 - add hl, de - ld d, h - ld e, l - ret -; b84f2 - -FishingGFX: ; b84f2 -INCBIN "gfx/unknown/0b84f2.2bpp" -; b8582 - -KrisFishingGFX: ; b8582 -INCBIN "gfx/unknown/0b8582.2bpp" -; b8612 +INCLUDE "engine/events_3.asm" INCLUDE "engine/radio.asm" @@ -51344,7 +46090,7 @@ ReadPartyMonMail: ; b9229 ld e, l ReadAnyMail: ; b9237 push de - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -51379,7 +46125,7 @@ ReadAnyMail: ; b9237 xor a ld [hJoyPressed], a call Functionb929a - call WhiteBGMap + call ClearBGPalettes call DisableLCD call LoadStandardFont jp EnableLCD @@ -52543,7 +47289,7 @@ SECTION "bank33", ROMX, BANK[$33] DisplayCaughtContestMonStats: ; cc000 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call LoadFontsBattleExtra @@ -52845,5846 +47591,9 @@ Functione00ed: ; e00ed (38:40ed) ret ; e00ee (38:40ee) -_CardFlip: ; e00ee (38:40ee) - ld hl, Options - set 4, [hl] - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - call DisableLCD - call LoadStandardFont - call LoadFontsExtra - ld hl, LZ_e0d16 - ld de, VTiles2 tile $00 - call Decompress - ld hl, LZ_e0ea8 - ld de, VTiles2 tile $3e - call Decompress - ld hl, LZ_e0cdb - ld de, VTiles0 tile $00 - call Decompress - ld hl, GFX_e0cf6 - ld de, VTiles1 tile $6f - ld bc, $10 - call CopyBytes - ld hl, GFX_e0d06 - ld de, VTiles1 tile $75 - ld bc, $10 - call CopyBytes - call Functione0521 - call Functione04c1 - call Functione0c37 - call EnableLCD - call Function3200 - ld a, $e4 - call DmgToCgbBGPals - ld de, $e4e4 - call DmgToCgbObjPals - call DelayFrame - xor a - ld [wJumptableIndex], a - ld a, $2 - ld [wcf64], a - ld [wcf65], a - ld de, MUSIC_GAME_CORNER - call PlayMusic -.MasterLoop - ld a, [wJumptableIndex] - bit 7, a - jr nz, .leavethegame - call .CardFlip - jr .MasterLoop -.leavethegame - call WaitSFX - ld de, SFX_QUIT_SLOTS - call PlaySFX - call WaitSFX - call WhiteBGMap - ld hl, Options - res 4, [hl] - ret - -.CardFlip: ; e0191 (38:4191) - 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] -; e01a0 (38:41a0) - -.Jumptable: ; e01a0 - dw .AskPlayWithThree - dw .DeductCoins - dw .ChooseACard - dw .PlaceYourBet - dw .CheckTheCard - dw .TabulateTheResult - dw .PlayAgain - dw .Quit -; e01b0 - -.Increment: ; e01b0 - ld hl, wJumptableIndex - inc [hl] - ret -; e01b5 - -.AskPlayWithThree: ; e01b5 - ld hl, .PlayWithThreeCoinsText - call Functione0489 - call YesNoBox - jr c, .SaidNo - call Functione0366 - call .Increment - ret - -.SaidNo - ld a, $7 - ld [wJumptableIndex], a - ret -; e01cd - -.PlayWithThreeCoinsText: ; 0xe01cd - ; Play with three coins? - text_jump UnknownText_0x1c5793 - db "@" -; 0xe01d2 - -.DeductCoins: ; e01d2 - ld a, [Coins] - ld h, a - ld a, [Coins + 1] - ld l, a - ld a, h - and a - jr nz, .deduct ; You have at least 256 coins. - ld a, l - cp 3 - jr nc, .deduct ; You have at least 3 coins. - ld hl, .NotEnoughCoinsText - call Functione0489 - ld a, $7 - ld [wJumptableIndex], a - ret - -.deduct - ld de, -3 - add hl, de - ld a, h - ld [Coins], a - ld a, l - ld [Coins + 1], a - ld de, SFX_TRANSACTION - call PlaySFX - xor a - ld [hBGMapMode], a - call Functione049c - ld a, $1 - ld [hBGMapMode], a - call WaitSFX - call .Increment - ret -; e0212 - -.NotEnoughCoinsText: ; 0xe0212 - ; Not enough coins… - text_jump UnknownText_0x1c57ab - db "@" -; 0xe0217 - -.ChooseACard: ; e0217 - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - lb bc, 12, 9 - call Functione04e5 - hlcoord 9, 0 - ld bc, SCREEN_WIDTH - ld a, [wc6e8] - call AddNTimes - ld [hl], $f5 - ld a, $1 - ld [hBGMapMode], a - ld c, 20 - call DelayFrames - hlcoord 2, 0 - call Functione03c1 - ld a, $1 - ld [hBGMapMode], a - ld c, 20 - call DelayFrames - hlcoord 2, 6 - call Functione03c1 - call WaitBGMap - ld hl, .ChooseACardText - call Functione0489 - xor a - ld [wcf66], a -.loop - call JoyTextDelay - ld a, [hJoyLast] - and A_BUTTON - jr nz, .next - ld de, SFX_KINESIS - call PlaySFX - call Functione0849 - ld c, 4 - call DelayFrames - ld hl, wcf66 - ld a, [hl] - xor $1 - ld [hl], a - jr .loop - -.next - ld de, SFX_SLOT_MACHINE_START - call PlaySFX - ld a, $3 -.loop2 - push af - call Functione0849 - ld c, 4 - call DelayFrames - call ClearSprites - ld c, 4 - call DelayFrames - pop af - dec a - jr nz, .loop2 - ld hl, wcf66 - ld a, [hl] - push af - xor $1 - ld [hl], a - call Functione03ac - lb bc, 6, 5 - call Functione04e5 - pop af - ld [wcf66], a - call .Increment - ret -; e02b2 - -.ChooseACardText: ; 0xe02b2 - ; Choose a card. - text_jump UnknownText_0x1c57be - db "@" -; 0xe02b7 - -.PlaceYourBet: ; e02b7 - ld hl, .PlaceYourBetText - call Functione0489 -.betloop - call JoyTextDelay - ld a, [hJoyLast] - and A_BUTTON - jr nz, .betdone - call Functione089c - call Functione0960 - call DelayFrame - jr .betloop - -.betdone - call .Increment - ret -; e02d5 - -.PlaceYourBetText: ; 0xe02d5 - ; Place your bet. - text_jump UnknownText_0x1c57ce - db "@" -; 0xe02da - -.CheckTheCard: ; e02da - xor a - ld [hVBlankCounter], a - call Functione0960 - call WaitSFX - ld de, SFX_CHOOSE_A_CARD - call PlaySFX - call WaitSFX - ld a, [wc6e8] - ld e, a - ld d, 0 - ld hl, wc6d0 -rept 2 - add hl, de -endr - ld a, [wcf66] - ld e, a - add hl, de - ld a, [hl] - ld [CurEnemyMoveNum], a - ld e, a - ld hl, wc6ea - add hl, de - ld [hl], $1 - call Functione03ac - call Functione03ec - call Function3200 - call .Increment - ret -; e0314 - -.TabulateTheResult: ; e0314 - call Functione0637 - call WaitPressAorB_BlinkCursor - call .Increment - ret -; e031e - -.PlayAgain: ; e031e - call ClearSprites - ld hl, .PlayAgainText - call Functione0489 - call YesNoBox - jr nc, .Continue - call .Increment - ret - -.Continue - ld a, [wc6e8] - inc a - ld [wc6e8], a - cp $c - jr c, .KeepTheCurrentDeck - call Functione04c1 - ld a, $1 - ld [hBGMapMode], a - call Functione0366 - ld hl, .CardsShuffledText - call PrintText - jr .LoopAround - -.KeepTheCurrentDeck - call Functione0534 - -.LoopAround - ld a, $1 - ld [wJumptableIndex], a - ret -; e0356 - -.PlayAgainText: ; 0xe0356 - ; Want to play again? - text_jump UnknownText_0x1c57df - db "@" -; 0xe035b - -.CardsShuffledText: ; 0xe035b - ; The cards have been shuffled. - text_jump UnknownText_0x1c57f4 - db "@" -; 0xe0360 - -.Quit: ; e0360 - ld hl, wJumptableIndex - set 7, [hl] - ret -; e0366 - -Functione0366: ; e0366 - ld hl, wc6d0 - ld bc, $18 - xor a - call ByteFill - ld de, wc6d0 - ld c, $17 -.asm_e0375 - call Random - and $1f - cp $18 - jr nc, .asm_e0375 - ld l, a - ld h, $0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0375 - ld [hl], c - dec c - jr nz, .asm_e0375 - xor a - ld [wc6e8], a - ld hl, wc6ea - ld bc, $18 - call ByteFill - ret -; e0398 - -Functione0398: ; e0398 - ld hl, 0 - ld bc, 6 - ld a, [wcf64] - call AddNTimes - ld b, $0 - ld a, [wcf65] - ld c, a - add hl, bc - ret -; e03ac - -Functione03ac: ; e03ac - ld a, [wcf66] - and a - jr nz, .asm_e03ba - hlcoord 2, 0 - ld bc, $1018 - jr .asm_e03c0 - -.asm_e03ba - hlcoord 2, 6 - ld bc, $4018 - -.asm_e03c0 - ret -; e03c1 - -Functione03c1: ; e03c1 - xor a - ld [hBGMapMode], a - ld de, Unknown_e03ce - lb bc, 6, 5 - call Functione04f7 - ret -; e03ce - -Unknown_e03ce: ; e03ce - db $08, $09, $09, $09, $0a - db $0b, $28, $2b, $28, $0c - db $0b, $2c, $2d, $2e, $0c - db $0b, $2f, $30, $31, $0c - db $0b, $32, $33, $34, $0c - db $0d, $0e, $0e, $0e, $0f -; e03ec - -Functione03ec: ; e03ec - xor a - ld [hBGMapMode], a - push hl - push hl - ld de, Unknown_e043b - lb bc, 6, 5 - call Functione04f7 - ld a, [CurEnemyMoveNum] - ld e, a - ld d, 0 - ld hl, Unknown_e0459 -rept 2 - add hl, de -endr - ld a, [hli] - ld e, a - ld d, [hl] - pop hl - ld bc, $17 - add hl, bc - ld [hl], e - ld bc, SCREEN_HEIGHT - add hl, bc - ld a, d - ld de, SCREEN_WIDTH - ld b, $3 -.asm_e0418 - push hl - ld c, $3 -.asm_e041b - ld [hli], a - inc a - dec c - jr nz, .asm_e041b - pop hl - add hl, de - dec b - jr nz, .asm_e0418 - pop hl - ld a, [hCGB] - and a - ret z - ld de, AttrMap - TileMap - add hl, de - ld a, [CurEnemyMoveNum] - and 3 - inc a - lb bc, 6, 5 - call Functione04e7 - ret -; e043b - -Unknown_e043b: ; e043b - db $18, $19, $19, $19, $1a - db $1b, $35, $7f, $7f, $1c - db $0b, $28, $28, $28, $0c - db $0b, $28, $28, $28, $0c - db $0b, $28, $28, $28, $0c - db $1d, $1e, $1e, $1e, $1f -; e0459 - -Unknown_e0459: ; e0459 - db $f7,$4e, $f7,$57, $f7,$69, $f7,$60 - db $f8,$4e, $f8,$57, $f8,$69, $f8,$60 - db $f9,$4e, $f9,$57, $f9,$69, $f9,$60 - db $fa,$4e, $fa,$57, $fa,$69, $fa,$60 - db $fb,$4e, $fb,$57, $fb,$69, $fb,$60 - db $fc,$4e, $fc,$57, $fc,$69, $fc,$60 -; e0489 - -Functione0489: ; e0489 - push hl - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - pop hl - call PrintTextBoxText - call Functione049c - ret -; e049c - -Functione049c: ; e049c - hlcoord 9, 15 - ld b, $1 - ld c, $9 - call TextBox - hlcoord 10, 16 - ld de, String_e04bc - call PlaceString - hlcoord 15, 16 - ld de, Coins - lb bc, PRINTNUM_LEADINGZEROS | 2, 4 - call PrintNum - ret -; e04bc - -String_e04bc: - db "COIN@" -; e04c1 - -Functione04c1: ; e04c1 (38:44c1) - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, $29 - call ByteFill - hlcoord 9, 0 - ld de, Unknown_e110c - lb bc, 12, 11 - call Functione04f7 - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - ret -; e04e5 (38:44e5) - -Functione04e5: ; e04e5 - ld a, $29 - -Functione04e7: ; e04e7 (38:44e7) - push bc - push hl -.asm_e04e9 - ld [hli], a - dec c - jr nz, .asm_e04e9 - pop hl - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, Functione04e7 - ret - -Functione04f7: ; e04f7 (38:44f7) - push bc - push hl -.asm_e04f9 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_e04f9 - pop hl - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, Functione04f7 - ret -; e0509 (38:4509) - -Functione0509: ; e0509 - ld de, Sprites - ld a, [hli] -.asm_e050d - push af - ld a, [hli] - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop af - dec a - jr nz, .asm_e050d - ret -; e0521 - -Functione0521: ; e0521 (38:4521) - ld de, VTiles1 tile $76 - ld hl, $8f62 - ld bc, $9e - call CopyBytes - ld hl, $8ffe - xor a - ld [hli], a - ld [hl], a - ret -; e0534 (38:4534) - -Functione0534: ; e0534 - xor a - ld [hBGMapMode], a - ld a, [CurEnemyMoveNum] - ld e, a - ld d, 0 - and 3 - ld c, a - ld b, 0 - ld a, e - and $1c - srl a - add Jumptable_e0553 % $100 - ld l, a - ld a, 0 - adc Jumptable_e0553 / $100 - ld h, a - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e0553 - -Jumptable_e0553: ; e0553 - dw Functione055f - dw Functione0583 - dw Functione05a7 - dw Functione05cb - dw Functione05ef - dw Functione0613 -; e055f - -Functione055f: ; e055f - ld hl, wc6e6 + 8 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0575 - hlcoord 13, 3 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $37 - ret - -.asm_e0575 - hlcoord 13, 3 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3d - ret -; e0583 - -Functione0583: ; e0583 - ld hl, wc6e6 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0599 - hlcoord 13, 4 -rept 2 - add hl, bc -endr - ld [hl], $3b - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret - -.asm_e0599 - hlcoord 13, 4 -rept 2 - add hl, bc -endr - ld [hl], $3d - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret -; e05a7 - -Functione05a7: ; e05a7 - ld hl, wc6e6 + 8 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e05bd - hlcoord 13, 6 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $38 - ret - -.asm_e05bd - hlcoord 13, 6 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3d - ret -; e05cb - -Functione05cb: ; e05cb - ld hl, wc6e6 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e05e1 - hlcoord 13, 7 -rept 2 - add hl, bc -endr - ld [hl], $3c - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret - -.asm_e05e1 - hlcoord 13, 7 -rept 2 - add hl, bc -endr - ld [hl], $3d - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret -; e05ef - -Functione05ef: ; e05ef - ld hl, wc6e6 + 8 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0605 - hlcoord 13, 9 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $39 - ret - -.asm_e0605 - hlcoord 13, 9 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3d - ret -; e0613 - -Functione0613: ; e0613 - ld hl, wc6e6 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0629 - hlcoord 13, 10 -rept 2 - add hl, bc -endr - ld [hl], $3c - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret - -.asm_e0629 - hlcoord 13, 10 -rept 2 - add hl, bc -endr - ld [hl], $3d - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret -; e0637 - -Functione0637: ; e0637 - call Functione0398 - add hl, hl - ld de, Jumptable_e0643 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e0643 - -Jumptable_e0643: ; e0643 - dw Functione06a3 - dw Functione06a3 - dw Functione06a6 - dw Functione06a6 - dw Functione06b0 - dw Functione06b0 - dw Functione06a3 - dw Functione06a3 - dw Functione06ec - dw Functione06f6 - dw Functione0702 - dw Functione070e - dw Functione06c2 - dw Functione0722 - dw Functione0770 - dw Functione0774 - dw Functione0778 - dw Functione077c - dw Functione06c2 - dw Functione072c - dw Functione0780 - dw Functione0784 - dw Functione0788 - dw Functione078c - dw Functione06cc - dw Functione0738 - dw Functione0790 - dw Functione0794 - dw Functione0798 - dw Functione079c - dw Functione06cc - dw Functione0744 - dw Functione07a0 - dw Functione07a4 - dw Functione07a8 - dw Functione07ac - dw Functione06d8 - dw Functione0750 - dw Functione07b0 - dw Functione07b4 - dw Functione07b8 - dw Functione07bc - dw Functione06d8 - dw Functione075c - dw Functione07c0 - dw Functione07c4 - dw Functione07c8 - dw Functione07cc -; e06a3 - -Functione06a3: ; e06a3 - jp Functione07db -; e06a6 - -Functione06a6: ; e06a6 - ld a, [CurEnemyMoveNum] - and $2 - jp nz, Functione07db - jr Functione06ba - -Functione06b0: ; e06b0 - ld a, [CurEnemyMoveNum] - and $2 - jr nz, Functione06ba - jp Functione07db - -Functione06ba: ; e06ba - ld c, $6 - ld de, SFX_2ND_PLACE - jp Functione07eb -; e06c2 - -Functione06c2: ; e06c2 - ld a, [CurEnemyMoveNum] - and $18 - jr z, Functione06e4 - jp Functione07db - -Functione06cc: ; e06cc - ld a, [CurEnemyMoveNum] - and $18 - cp $8 - jr z, Functione06e4 - jp Functione07db - -Functione06d8: ; e06d8 - ld a, [CurEnemyMoveNum] - and $18 - cp $10 - jr z, Functione06e4 - jp Functione07db - -Functione06e4: ; e06e4 - ld c, $9 - ld de, SFX_2ND_PLACE - jp Functione07eb -; e06ec - -Functione06ec: ; e06ec - ld a, [CurEnemyMoveNum] - and $3 - jr z, Functione071a - jp Functione07db - -Functione06f6: ; e06f6 - ld a, [CurEnemyMoveNum] - and $3 - cp $1 - jr z, Functione071a - jp Functione07db - -Functione0702: ; e0702 - ld a, [CurEnemyMoveNum] - and $3 - cp $2 - jr z, Functione071a - jp Functione07db - -Functione070e: ; e070e - ld a, [CurEnemyMoveNum] - and $3 - cp $3 - jr z, Functione071a - jp Functione07db - -Functione071a: ; e071a - ld c, $c - ld de, SFX_2ND_PLACE - jp Functione07eb -; e0722 - -Functione0722: ; e0722 - ld a, [CurEnemyMoveNum] - and $1c - jr z, Functione0768 - jp Functione07db - -Functione072c: ; e072c - ld a, [CurEnemyMoveNum] - and $1c - cp $4 - jr z, Functione0768 - jp Functione07db - -Functione0738: ; e0738 - ld a, [CurEnemyMoveNum] - and $1c - cp $8 - jr z, Functione0768 - jp Functione07db - -Functione0744: ; e0744 - ld a, [CurEnemyMoveNum] - and $1c - cp $c - jr z, Functione0768 - jp Functione07db - -Functione0750: ; e0750 - ld a, [CurEnemyMoveNum] - and $1c - cp $10 - jr z, Functione0768 - jp Functione07db - -Functione075c: ; e075c - ld a, [CurEnemyMoveNum] - and $1c - cp $14 - jr z, Functione0768 - jp Functione07db - -Functione0768: ; e0768 - ld c, $12 - ld de, SFX_2ND_PLACE - jp Functione07eb -; e0770 - - -Functione0770: ; e0770 - ld e, $0 - jr Functione07ce - -Functione0774: ; e0774 - ld e, $1 - jr Functione07ce - -Functione0778: ; e0778 - ld e, $2 - jr Functione07ce - -Functione077c: ; e077c - ld e, $3 - jr Functione07ce - -Functione0780: ; e0780 - ld e, $4 - jr Functione07ce - -Functione0784: ; e0784 - ld e, $5 - jr Functione07ce - -Functione0788: ; e0788 - ld e, $6 - jr Functione07ce - -Functione078c: ; e078c - ld e, $7 - jr Functione07ce - -Functione0790: ; e0790 - ld e, $8 - jr Functione07ce - -Functione0794: ; e0794 - ld e, $9 - jr Functione07ce - -Functione0798: ; e0798 - ld e, $a - jr Functione07ce - -Functione079c: ; e079c - ld e, $b - jr Functione07ce - -Functione07a0: ; e07a0 - ld e, $c - jr Functione07ce - -Functione07a4: ; e07a4 - ld e, $d - jr Functione07ce - -Functione07a8: ; e07a8 - ld e, $e - jr Functione07ce - -Functione07ac: ; e07ac - ld e, $f - jr Functione07ce - -Functione07b0: ; e07b0 - ld e, $10 - jr Functione07ce - -Functione07b4: ; e07b4 - ld e, $11 - jr Functione07ce - -Functione07b8: ; e07b8 - ld e, $12 - jr Functione07ce - -Functione07bc: ; e07bc - ld e, $13 - jr Functione07ce - -Functione07c0: ; e07c0 - ld e, $14 - jr Functione07ce - -Functione07c4: ; e07c4 - ld e, $15 - jr Functione07ce - -Functione07c8: ; e07c8 - ld e, $16 - jr Functione07ce - -Functione07cc: ; e07cc - ld e, $17 - -Functione07ce: ; e07ce - ld a, [CurEnemyMoveNum] - cp e - jr nz, Functione07db - ld c, $48 - ld de, SFX_2ND_PLACE - jr Functione07eb - -Functione07db: ; e07db - ld de, SFX_WRONG - call PlaySFX - ld hl, UnknownText_0xe0816 - call Functione0489 - call WaitSFX - ret - -Functione07eb: ; e07eb - push bc - push de - ld hl, UnknownText_0xe0811 - call Functione0489 - pop de - call PlaySFX - call WaitSFX - pop bc -.asm_e07fb - push bc - call Functione0833 - jr c, .asm_e0804 - call Functione081b - -.asm_e0804 - call Functione049c - ld c, 2 - call DelayFrames - pop bc - dec c - jr nz, .asm_e07fb - ret -; e0811 - -UnknownText_0xe0811: ; 0xe0811 - ; Yeah! - text_jump UnknownText_0x1c5813 - db "@" -; 0xe0816 - -UnknownText_0xe0816: ; 0xe0816 - ; Darn… - text_jump UnknownText_0x1c581a - db "@" -; 0xe081b - -Functione081b: ; e081b - ld a, [Coins] - ld h, a - ld a, [Coins + 1] - ld l, a - inc hl - ld a, h - ld [Coins], a - ld a, l - ld [Coins + 1], a - ld de, SFX_PAY_DAY - call PlaySFX - ret -; e0833 - -Functione0833: ; e0833 - ld a, [Coins] - cp 9999 / $100 - jr c, .asm_e0847 - jr z, .asm_e083e - jr .asm_e0845 - -.asm_e083e - ld a, [Coins + 1] - cp 9999 % $100 - jr c, .asm_e0847 - -.asm_e0845 - scf - ret - -.asm_e0847 - and a - ret -; e0849 - -Functione0849: ; e0849 - call Functione03ac - ld hl, Unknown_e0853 - call Functione0509 - ret -; e0853 - -Unknown_e0853: ; e0853 - db 18 - db $00, $00, $04, $00 - db $00, $08, $06, $00 - db $00, $10, $06, $00 - db $00, $18, $06, $00 - db $00, $20, $04, $20 - db $08, $00, $05, $00 - db $08, $20, $05, $20 - db $10, $00, $05, $00 - db $10, $20, $05, $20 - db $18, $00, $05, $00 - db $18, $20, $05, $20 - db $20, $00, $05, $00 - db $20, $20, $05, $20 - db $28, $00, $04, $40 - db $28, $08, $06, $40 - db $28, $10, $06, $40 - db $28, $18, $06, $40 - db $28, $20, $04, $60 -; e089c - -Functione089c: ; e089c - ld hl, hJoyLast - ld a, [hl] - and D_LEFT - jp nz, Functione08b8 - ld a, [hl] - and D_RIGHT - jp nz, Functione08ef - ld a, [hl] - and D_UP - jp nz, Functione090a - ld a, [hl] - and D_DOWN - jp nz, Functione093d - ret -; e08b8 - -Functione08b8: ; e08b8 - ld hl, wcf65 - ld a, [wcf64] - and a - jr z, .asm_e08d5 - cp $1 - jr z, .asm_e08cc - ld a, [hl] - and a - ret z - dec [hl] - jp Functione0959 - -.asm_e08cc - ld a, [hl] - cp $3 - jr c, .asm_e08e2 - dec [hl] - jp Functione0959 - -.asm_e08d5 - ld a, [hl] - and $e - ld [hl], a - cp $3 - jr c, .asm_e08e2 -rept 2 - dec [hl] -endr - jp Functione0959 - -.asm_e08e2 - ld a, $2 - ld [wcf64], a - ld a, $1 - ld [wcf65], a - jp Functione0959 -; e08ef - -Functione08ef: ; e08ef - ld hl, wcf65 - ld a, [wcf64] - and a - jr z, .asm_e08ff - ld a, [hl] - cp $5 - ret nc - inc [hl] - jr Functione0959 - -.asm_e08ff - ld a, [hl] - and $e - ld [hl], a - cp $4 - ret nc -rept 2 - inc [hl] -endr - jr Functione0959 - -Functione090a: ; e090a - ld hl, wcf64 - ld a, [wcf65] - and a - jr z, .asm_e0925 - cp $1 - jr z, .asm_e091d - ld a, [hl] - and a - ret z - dec [hl] - jr Functione0959 - -.asm_e091d - ld a, [hl] - cp $3 - jr c, .asm_e0931 - dec [hl] - jr Functione0959 - -.asm_e0925 - ld a, [hl] - and $e - ld [hl], a - cp $3 - jr c, .asm_e0931 -rept 2 - dec [hl] -endr - jr Functione0959 - -.asm_e0931 - ld a, $1 - ld [wcf64], a - ld a, $2 - ld [wcf65], a - jr Functione0959 - -Functione093d: ; e093d - ld hl, wcf64 - ld a, [wcf65] - and a - jr z, .asm_e0950 - ld hl, wcf64 - ld a, [hl] - cp $7 - ret nc - inc [hl] - jr Functione0959 - -.asm_e0950 - ld a, [hl] - and $e - ld [hl], a - cp $6 - ret nc -rept 2 - inc [hl] -endr - -Functione0959: ; e0959 - ld de, SFX_POKEBALLS_PLACED_ON_TABLE - call PlaySFX - ret -; e0960 - -Functione0960: ; e0960 - call ClearSprites - ld a, [hCGB] - and a - jr nz, .asm_e096d - ld a, [hVBlankCounter] - and $4 - ret nz - -.asm_e096d - call Functione0398 -rept 2 - add hl, hl -endr - ld de, Unknown_e0981 - add hl, de - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld h, [hl] - ld l, a - call Functione0509 - ret -; e0981 - -Unknown_e0981: ; e0981 - dbbw $58, $10, Unknown_e0c26 - dbbw $60, $10, Unknown_e0c26 - dbbw $68, $10, Unknown_e0b8d - dbbw $68, $10, Unknown_e0b8d - dbbw $88, $10, Unknown_e0b8d - dbbw $88, $10, Unknown_e0b8d - - dbbw $58, $18, Unknown_e0c26 - dbbw $60, $18, Unknown_e0c26 - dbbw $68, $18, Unknown_e0a5a - dbbw $78, $18, Unknown_e0a5a - dbbw $88, $18, Unknown_e0a5a - dbbw $98, $18, Unknown_e0a5a - - dbbw $58, $28, Unknown_e0b14 - dbbw $60, $28, Unknown_e0ac3 - dbbw $68, $28, Unknown_e0a41 - dbbw $78, $28, Unknown_e0a41 - dbbw $88, $28, Unknown_e0a41 - dbbw $98, $28, Unknown_e0a41 - dbbw $58, $28, Unknown_e0b14 - - dbbw $60, $34, Unknown_e0ac3 - dbbw $68, $34, Unknown_e0a41 - dbbw $78, $34, Unknown_e0a41 - dbbw $88, $34, Unknown_e0a41 - dbbw $98, $34, Unknown_e0a41 - - dbbw $58, $40, Unknown_e0b14 - dbbw $60, $40, Unknown_e0ac3 - dbbw $68, $40, Unknown_e0a41 - dbbw $78, $40, Unknown_e0a41 - dbbw $88, $40, Unknown_e0a41 - dbbw $98, $40, Unknown_e0a41 - dbbw $58, $40, Unknown_e0b14 - - dbbw $60, $4c, Unknown_e0ac3 - dbbw $68, $4c, Unknown_e0a41 - dbbw $78, $4c, Unknown_e0a41 - dbbw $88, $4c, Unknown_e0a41 - dbbw $98, $4c, Unknown_e0a41 - - dbbw $58, $58, Unknown_e0b14 - dbbw $60, $58, Unknown_e0ac3 - dbbw $68, $58, Unknown_e0a41 - dbbw $78, $58, Unknown_e0a41 - dbbw $88, $58, Unknown_e0a41 - dbbw $98, $58, Unknown_e0a41 - dbbw $58, $58, Unknown_e0b14 - - dbbw $60, $64, Unknown_e0ac3 - dbbw $68, $64, Unknown_e0a41 - dbbw $78, $64, Unknown_e0a41 - dbbw $88, $64, Unknown_e0a41 - dbbw $98, $64, Unknown_e0a41 -; e0a41 - -Unknown_e0a41: ; e0a41 - db 6 - db $00, $ff, $00, $80 - db $00, $00, $02, $80 - db $00, $08, $03, $80 - db $05, $ff, $00, $c0 - db $05, $00, $02, $c0 - db $05, $08, $03, $80 - -Unknown_e0a5a: ; e0a5a - db 26 - db $00, $ff, $00, $80 - db $00, $00, $02, $80 - db $00, $08, $00, $a0 - db $08, $ff, $01, $80 - db $08, $08, $01, $a0 - db $10, $ff, $01, $80 - db $10, $08, $03, $80 - db $18, $ff, $01, $80 - db $18, $08, $03, $80 - db $20, $ff, $01, $80 - db $20, $08, $03, $80 - db $28, $ff, $01, $80 - db $28, $08, $03, $80 - db $30, $ff, $01, $80 - db $30, $08, $03, $80 - db $38, $ff, $01, $80 - db $38, $08, $03, $80 - db $40, $ff, $01, $80 - db $40, $08, $03, $80 - db $48, $ff, $01, $80 - db $48, $08, $03, $80 - db $50, $ff, $01, $80 - db $50, $08, $03, $80 - db $51, $ff, $00, $c0 - db $51, $00, $02, $c0 - db $51, $08, $03, $80 - -Unknown_e0ac3: ; e0ac3 - db 20 - db $00, $ff, $00, $80 - db $00, $00, $02, $80 - db $00, $08, $02, $80 - db $00, $10, $03, $80 - db $00, $18, $02, $80 - db $00, $20, $03, $80 - db $00, $28, $02, $80 - db $00, $30, $03, $80 - db $00, $38, $02, $80 - db $00, $40, $03, $80 - db $05, $ff, $00, $c0 - db $05, $00, $02, $c0 - db $05, $08, $02, $c0 - db $05, $10, $03, $80 - db $05, $18, $02, $c0 - db $05, $20, $03, $80 - db $05, $28, $02, $c0 - db $05, $30, $03, $80 - db $05, $38, $02, $c0 - db $05, $40, $03, $80 - -Unknown_e0b14: ; e0b14 - db 30 - db $00, $00, $00, $80 - db $00, $08, $02, $80 - db $00, $10, $02, $80 - db $00, $18, $03, $80 - db $00, $20, $02, $80 - db $00, $28, $03, $80 - db $00, $30, $02, $80 - db $00, $38, $03, $80 - db $00, $40, $02, $80 - db $00, $48, $03, $80 - db $08, $00, $01, $80 - db $08, $18, $03, $80 - db $08, $28, $03, $80 - db $08, $38, $03, $80 - db $08, $48, $03, $80 - db $10, $00, $01, $80 - db $10, $18, $03, $80 - db $10, $28, $03, $80 - db $10, $38, $03, $80 - db $10, $48, $03, $80 - db $11, $00, $00, $c0 - db $11, $08, $02, $c0 - db $11, $10, $02, $c0 - db $11, $18, $03, $80 - db $11, $20, $03, $80 - db $11, $28, $03, $80 - db $11, $30, $03, $80 - db $11, $38, $03, $80 - db $11, $40, $03, $80 - db $11, $48, $03, $80 - -Unknown_e0b8d: ; e0b8d - db 38 - db $00, $ff, $00, $80 - db $00, $18, $00, $a0 - db $08, $ff, $01, $80 - db $08, $18, $01, $a0 - db $10, $ff, $01, $80 - db $10, $18, $01, $a0 - db $18, $ff, $01, $80 - db $18, $08, $03, $80 - db $18, $18, $03, $80 - db $20, $ff, $01, $80 - db $20, $08, $03, $80 - db $20, $18, $03, $80 - db $28, $ff, $01, $80 - db $28, $08, $03, $80 - db $28, $18, $03, $80 - db $30, $ff, $01, $80 - db $30, $08, $03, $80 - db $30, $18, $03, $80 - db $38, $ff, $01, $80 - db $38, $08, $03, $80 - db $38, $18, $03, $80 - db $40, $ff, $01, $80 - db $40, $08, $03, $80 - db $40, $18, $03, $80 - db $48, $ff, $01, $80 - db $48, $08, $03, $80 - db $48, $18, $03, $80 - db $50, $ff, $01, $80 - db $50, $08, $03, $80 - db $50, $18, $03, $80 - db $58, $ff, $01, $80 - db $58, $08, $03, $80 - db $58, $18, $03, $80 - db $59, $ff, $00, $c0 - db $59, $00, $02, $c0 - db $59, $08, $03, $c0 - db $59, $10, $02, $c0 - db $59, $18, $03, $e0 - -Unknown_e0c26: ; e0c26 - db 4 - db $00, $00, $00, $80 - db $00, $08, $00, $a0 - db $08, $00, $00, $c0 - db $08, $08, $00, $e0 -; e0c37 - -Functione0c37: ; e0c37 (38:4c37) - ld a, [hCGB] - and a - ret z - hlcoord 0, 0, AttrMap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - hlcoord 12, 1, AttrMap - lb bc, 2, 2 - ld a, $1 - call Functione04e7 - hlcoord 14, 1, AttrMap - lb bc, 2, 2 - ld a, $2 - call Functione04e7 - hlcoord 16, 1, AttrMap - lb bc, 2, 2 - ld a, $3 - call Functione04e7 - hlcoord 18, 1, AttrMap - lb bc, 2, 2 - ld a, $4 - call Functione04e7 - hlcoord 9, 0, AttrMap - lb bc, 12, 1 - ld a, $1 - call Functione04e7 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e0c93 - ld de, Unkn1Pals - ld bc, $48 - call CopyBytes - pop af - ld [rSVBK], a - ret -; e0c93 (38:4c93) - -Palette_e0c93: ; e0c93 - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 29, 25, 00 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 13, 30 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 08, 17, 30 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 08, 31, 08 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 00, 00 - RGB 31, 00, 00 -; e0cdb - -LZ_e0cdb: ; e0cdb -INCBIN "gfx/unknown/0e0cdb.2bpp.lz" - -GFX_e0cf6: ; e0cf6 -INCBIN "gfx/unknown/0e0cf6.2bpp" - -GFX_e0d06: ; e0d06 -INCBIN "gfx/unknown/0e0d06.2bpp" - -LZ_e0d16: ; e0d16 -INCBIN "gfx/unknown/0e0d16.2bpp.lz" - -LZ_e0ea8: ; e0ea8 -INCBIN "gfx/unknown/0e0ea8.2bpp.lz" - -Unknown_e110c: ; e110c - db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27 - db $ef, $07, $27, $3e, $3f, $42, $43, $46, $47, $4a, $4b - db $ef, $17, $26, $40, $41, $44, $45, $48, $49, $4c, $4d - db $ef, $25, $04, $00, $01, $00, $01, $00, $01, $00, $01 - db $ef, $05, $14, $10, $11, $10, $11, $10, $11, $10, $11 - db $ef, $16, $24, $20, $21, $20, $21, $20, $21, $20, $21 - db $ef, $25, $04, $00, $02, $00, $02, $00, $02, $00, $02 - db $ef, $05, $14, $10, $12, $10, $12, $10, $12, $10, $12 - db $ef, $16, $24, $20, $22, $20, $22, $20, $22, $20, $22 - db $ef, $25, $04, $00, $03, $00, $03, $00, $03, $00, $03 - db $ef, $05, $14, $10, $13, $10, $13, $10, $13, $10, $13 - db $ef, $16, $24, $20, $23, $20, $23, $20, $23, $20, $23 -; e1190 - -Functione1190: ; e1190 - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call WhiteBGMap - call ClearTileMap - call ClearSprites - xor a - ld [hBGMapMode], a - call DisableLCD - ld hl, wc608 - ld bc, $1e0 - xor a - call ByteFill - ld hl, GFX_e17c5 - ld de, VTiles1 tile $60 - ld bc, $40 - call CopyBytes - ld hl, LZ_e1805 - ld de, VTiles1 tile $6d - call Decompress - call Functione17a3 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $ee - call ByteFill - hlcoord 4, 3 - lb bc, 12, 12 - ld a, $ef - call Functione13ee - call Functione124e - call Functione13fe - call Functione127d - xor a - ld [hSCY], a - ld [hSCX], a - ld [rWY], a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld a, $93 - ld [rLCDC], a - call WaitBGMap - ld b, $18 - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $24 - call Functioncf8 - xor a - ld [wd0ec], a - call DelayFrame -.asm_e1217 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e123d - call Functione12ca - ld a, [wcf64] - and a - jr nz, .asm_e1230 - ld a, [hVBlankCounter] - and $10 - jr z, .asm_e1235 - -.asm_e1230 - call Functione14d9 - jr .asm_e1238 - -.asm_e1235 - call ClearSprites - -.asm_e1238 - call DelayFrame - jr .asm_e1217 - -.asm_e123d - pop af - ld [hInMenu], a - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld a, $e3 - ld [rLCDC], a - ret -; e124e - -Functione124e: ; e124e - ld c, $1 - ld b, $10 -.asm_e1252 - call Random - and $f - ld hl, Unknown_e126d - ld e, a - ld d, $0 - add hl, de - ld e, [hl] - ld hl, wc6d0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e1252 - ld [hl], c - inc c - dec b - jr nz, .asm_e1252 - ret -; e126d - -Unknown_e126d: ; e126d - db $00, $01, $02, $03 - db $04, $05, $06, $0b - db $0c, $11, $12, $17 - db $18, $1d, $1e, $23 -; e127d - -Functione127d: ; e127d - call Functione128d - hlcoord 5, 16 - ld a, $f6 - ld c, $a -.asm_e1287 - ld [hli], a - inc a - dec c - jr nz, .asm_e1287 - ret -; e128d - -Functione128d: ; e128d - hlcoord 4, 15 - ld a, $f0 - ld [hli], a - ld bc, $a - ld a, $f1 - call ByteFill - hlcoord 15, 15 - ld a, $f2 - ld [hli], a - hlcoord 4, 16 - ld a, $f3 - ld [hli], a - ld bc, $a - ld a, $ef - call ByteFill - hlcoord 15, 16 - ld a, $f3 - ld [hli], a - hlcoord 4, 17 - ld a, $f4 - ld [hli], a - ld bc, $a - ld a, $f1 - call ByteFill - hlcoord 15, 17 - ld a, $f5 - ld [hl], a - ret -; e12ca - -Functione12ca: ; e12ca - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_e12d9 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e12d9 - -Jumptable_e12d9: ; e12d9 - dw Functione12db -; e12db - -Functione12db: ; e12db - ld a, [hJoyPressed] - and START - jp nz, Functione13de - ld a, [hJoyPressed] - and A_BUTTON - jp nz, Functione1376 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_e1301 - ld a, [hl] - and D_DOWN - jr nz, .asm_e130d - ld a, [hl] - and D_LEFT - jr nz, .asm_e1325 - ld a, [hl] - and D_RIGHT - jr nz, .asm_e1345 - ret - -.asm_e1301 - ld hl, wcf65 - ld a, [hl] - cp $6 - ret c - sub $6 - ld [hl], a - jr .asm_e1364 - -.asm_e130d - ld hl, wcf65 - ld a, [hl] - cp $19 - ret z - cp $1a - ret z - cp $1b - ret z - cp $1c - ret z - cp $1e - ret nc - add $6 - ld [hl], a - jr .asm_e1364 - -.asm_e1325 - ld hl, wcf65 - ld a, [hl] - and a - ret z - cp $6 - ret z - cp $c - ret z - cp $12 - ret z - cp $18 - ret z - cp $1e - ret z - cp $23 - jr z, .asm_e1341 - dec [hl] - jr .asm_e1364 - -.asm_e1341 - ld [hl], $1e - jr .asm_e1364 - -.asm_e1345 - ld hl, wcf65 - ld a, [hl] - cp $5 - ret z - cp $b - ret z - cp $11 - ret z - cp $17 - ret z - cp $1d - ret z - cp $23 - ret z - cp $1e - jr z, .asm_e1362 - inc [hl] - jr .asm_e1364 - -.asm_e1362 - ld [hl], $23 - -.asm_e1364 - ld a, [wcf64] - and a - jr nz, .asm_e136f - ld de, SFX_POUND - jr .asm_e1372 - -.asm_e136f - ld de, SFX_MOVE_PUZZLE_PIECE - -.asm_e1372 - call PlaySFX - ret -; e1376 - -Functione1376: ; e1376 - ld a, [wcf64] - and a - jr nz, .asm_e139f - call Functione1475 - and a - jr z, Functione13e4 - ld de, SFX_MEGA_KICK - call PlaySFX - ld [hl], $0 - ld [wcf66], a - call Functione14d9 - call Functione1441 - call WaitBGMap - call WaitSFX - ld a, $1 - ld [wcf64], a - ret - -.asm_e139f - call Functione1475 - and a - jr nz, Functione13e4 - ld de, SFX_PLACE_PUZZLE_PIECE_DOWN - call PlaySFX - ld a, [wcf66] - ld [hl], a - call Functione141f - call WaitBGMap - xor a - ld [wcf66], a - call Functione14d9 - xor a - ld [wcf64], a - call WaitSFX - call Functione14a0 - ret nc - call Functione128d - call ClearSprites - ld de, SFX_1ST_PLACE - call PlaySFX - call WaitSFX - call SimpleWaitPressAorB - ld a, $1 - ld [wd0ec], a - -Functione13de: ; e13de - ld hl, wJumptableIndex - set 7, [hl] - ret - -Functione13e4: ; e13e4 - ld de, SFX_WRONG - call PlaySFX - call WaitSFX - ret -; e13ee - -Functione13ee: ; e13ee - ld de, SCREEN_WIDTH -.asm_e13f1 - push bc - push hl -.asm_e13f3 - ld [hli], a - dec c - jr nz, .asm_e13f3 - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_e13f1 - ret -; e13fe - -Functione13fe: ; e13fe - xor a - ld [wcf65], a - ld c, $24 -.asm_e1404 - push bc - call Functione1475 - ld [wcf66], a - and a - jr z, .asm_e1413 - call Functione141f - jr .asm_e1416 - -.asm_e1413 - call Functione1441 - -.asm_e1416 - ld hl, wcf65 - inc [hl] - pop bc - dec c - jr nz, .asm_e1404 - ret -; e141f - -Functione141f: ; e141f - ld a, $2 - call Functione1463 - ld a, [hli] - ld h, [hl] - ld l, a - push hl - call Functione1481 - pop hl - ld de, SCREEN_WIDTH - ld b, $3 -.asm_e1431 - ld c, $3 - push hl -.asm_e1434 - ld [hli], a - inc a - dec c - jr nz, .asm_e1434 - add $9 - pop hl - add hl, de - dec b - jr nz, .asm_e1431 - ret -; e1441 - -Functione1441: ; e1441 - ld a, $2 - call Functione1463 - ld a, [hli] - ld h, [hl] - ld l, a - push hl - ld a, $4 - call Functione1463 - ld a, [hl] - pop hl - ld de, SCREEN_WIDTH - ld b, $3 -.asm_e1456 - ld c, $3 - push hl -.asm_e1459 - ld [hli], a - dec c - jr nz, .asm_e1459 - pop hl - add hl, de - dec b - jr nz, .asm_e1456 - ret -; e1463 - -Functione1463: ; e1463 - ld e, a - ld d, 0 - ld hl, Unknown_e1559 - add hl, de - ld a, [wcf65] - ld e, a -rept 4 - add hl, de -endr -rept 2 - add hl, de -endr - ret -; e1475 - -Functione1475: ; e1475 - ld hl, wc6d0 - ld a, [wcf65] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - ret -; e1481 - -Functione1481: ; e1481 - ld a, [wcf66] - ld hl, Unknown_e148f - add l - ld l, a - ld a, $0 - adc h - ld h, a - ld a, [hl] - ret -; e148f - -Unknown_e148f: ; e148f - db $e0 - db $00, $03, $06, $09 - db $24, $27, $2a, $2d - db $48, $4b, $4e, $51 - db $6c, $6f, $72, $75 -; e14a0 - -Functione14a0: ; e14a0 - ld hl, Unknown_e14b5 - ld de, wc6d0 - ld c, $24 -.asm_e14a8 - ld a, [de] - cp [hl] - jr nz, .asm_e14b3 - inc de - inc hl - dec c - jr nz, .asm_e14a8 - scf - ret - -.asm_e14b3 - and a - ret -; e14b5 - -Unknown_e14b5: ; e14b5 - db $00, $00, $00, $00, $00, $00 - db $00, $01, $02, $03, $04, $00 - db $00, $05, $06, $07, $08, $00 - db $00, $09, $0a, $0b, $0c, $00 - db $00, $0d, $0e, $0f, $10, $00 - db $00, $00, $00, $00, $00, $00 -; e14d9 - -Functione14d9: ; e14d9 - call Functione1481 - ld [wd002], a - xor a - call Functione1463 - ld a, [hli] - ld b, [hl] - ld c, a - ld a, [wd002] - cp $e0 - jr z, .asm_e14f2 - ld hl, Unknown_e150f - jr .asm_e14f5 - -.asm_e14f2 - ld hl, Unknown_e1534 - -.asm_e14f5 - ld de, Sprites -.asm_e14f8 - ld a, [hli] - cp $ff - ret z - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [wd002] - add [hl] - ld [de], a - inc hl - inc de - ld a, [hli] - ld [de], a - inc de - jr .asm_e14f8 -; e150f - -Unknown_e150f: ; e150f - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $02, $00 - db $fc, $f4, $0c, $00 - db $fc, $fc, $0d, $00 - db $fc, $04, $0e, $00 - db $04, $f4, $18, $00 - db $04, $fc, $19, $00 - db $04, $04, $1a, $00 - db $ff - -Unknown_e1534: ; e1534 - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $00, $20 - db $fc, $f4, $02, $00 - db $fc, $fc, $03, $00 - db $fc, $04, $02, $20 - db $04, $f4, $00, $40 - db $04, $fc, $01, $40 - db $04, $04, $00, $60 - db $ff - -Unknown_e1559: ; e1559 - -macro_e1559: macro - db \1, \2 - dwcoord \3, \4 - db \5, \6 -endm - - macro_e1559 $1c, $1c, 1, 0, $ee, $00 - macro_e1559 $34, $1c, 4, 0, $ee, $00 - macro_e1559 $4c, $1c, 7, 0, $ee, $00 - macro_e1559 $64, $1c, 10, 0, $ee, $00 - macro_e1559 $7c, $1c, 13, 0, $ee, $00 - macro_e1559 $94, $1c, 16, 0, $ee, $00 - macro_e1559 $1c, $34, 1, 3, $ee, $00 - macro_e1559 $34, $34, 4, 3, $ef, $00 - macro_e1559 $4c, $34, 7, 3, $ef, $00 - macro_e1559 $64, $34, 10, 3, $ef, $00 - macro_e1559 $7c, $34, 13, 3, $ef, $00 - macro_e1559 $94, $34, 16, 3, $ee, $00 - macro_e1559 $1c, $4c, 1, 6, $ee, $00 - macro_e1559 $34, $4c, 4, 6, $ef, $00 - macro_e1559 $4c, $4c, 7, 6, $ef, $00 - macro_e1559 $64, $4c, 10, 6, $ef, $00 - macro_e1559 $7c, $4c, 13, 6, $ef, $00 - macro_e1559 $94, $4c, 16, 6, $ee, $00 - macro_e1559 $1c, $64, 1, 9, $ee, $00 - macro_e1559 $34, $64, 4, 9, $ef, $00 - macro_e1559 $4c, $64, 7, 9, $ef, $00 - macro_e1559 $64, $64, 10, 9, $ef, $00 - macro_e1559 $7c, $64, 13, 9, $ef, $00 - macro_e1559 $94, $64, 16, 9, $ee, $00 - macro_e1559 $1c, $7c, 1, 12, $ee, $00 - macro_e1559 $34, $7c, 4, 12, $ef, $00 - macro_e1559 $4c, $7c, 7, 12, $ef, $00 - macro_e1559 $64, $7c, 10, 12, $ef, $00 - macro_e1559 $7c, $7c, 13, 12, $ef, $00 - macro_e1559 $94, $7c, 16, 12, $ee, $00 - macro_e1559 $1c, $94, 1, 15, $ee, $00 - macro_e1559 $34, $94, 4, 15, $ee, $00 - macro_e1559 $4c, $94, 7, 15, $ee, $00 - macro_e1559 $64, $94, 10, 15, $ee, $00 - macro_e1559 $7c, $94, 13, 15, $ee, $00 - macro_e1559 $94, $94, 16, 15, $ee, $00 - -Functione1631: ; e1631 - ld hl, VTiles2 - ld de, VTiles0 - ld b, $6 -.asm_e1639 - push bc - push hl - push hl - call Functione1654 - pop hl - ld bc, 8 - add hl, bc - call Functione1654 - pop hl - ld bc, $60 - add hl, bc - pop bc - dec b - jr nz, .asm_e1639 - call Functione16c7 - ret -; e1654 - -Functione1654: ; e1654 - ld c, $6 -.asm_e1656 - push bc - push hl - push hl - ld c, $4 -.asm_e165b - push bc - ld a, [hli] - and $f0 - swap a - call Functione16aa - ld c, a - ld a, [hli] - and $f0 - swap a - call Functione16aa - ld b, a - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - pop bc - dec c - jr nz, .asm_e165b - pop hl - ld c, $4 -.asm_e1681 - push bc - ld a, [hli] - and $f - call Functione16aa - ld c, a - ld a, [hli] - and $f - call Functione16aa - ld b, a - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - pop bc - dec c - jr nz, .asm_e1681 - pop hl - ld bc, $10 - add hl, bc - pop bc - dec c - jr nz, .asm_e1656 - ret -; e16aa - -Functione16aa: ; e16aa - push hl - ld hl, Unknown_e16b7 - add l - ld l, a - ld a, 0 - adc h - ld h, a - ld a, [hl] - pop hl - ret -; e16b7 - -Unknown_e16b7: ; e16b7 - db $00, $03, $0c, $0f - db $30, $33, $3c, $3f - db $c0, $c3, $cc, $cf - db $f0, $f3, $fc, $ff -; e16c7 - -Functione16c7: ; e16c7 - ld hl, Unknown_e1703 - ld a, $8 -.asm_e16cc - push af - push hl - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a - call Functione16e2 - pop hl -rept 4 - inc hl -endr - pop af - dec a - jr nz, .asm_e16cc - ret -; e16e2 - -Functione16e2: ; e16e2 - lb bc, 4, 4 -.asm_e16e5 - push bc -.asm_e16e6 - push de - push hl - ld b, $10 -.asm_e16ea - ld a, [de] - or [hl] - ld [hli], a - inc de - dec b - jr nz, .asm_e16ea - pop hl - ld de, $30 - add hl, de - pop de - dec c - jr nz, .asm_e16e6 - ld bc, $180 - add hl, bc - pop bc - dec b - jr nz, .asm_e16e5 - ret -; e1703 - -Unknown_e1703: ; e1703 - dw GFX_e1723 + $00, $8000 - dw GFX_e1723 + $10, $8010 - dw GFX_e1723 + $20, $8020 - dw GFX_e1723 + $30, $80c0 - dw GFX_e1723 + $40, $80e0 - dw GFX_e1723 + $50, $8180 - dw GFX_e1723 + $60, $8190 - dw GFX_e1723 + $70, $81a0 -; e1723 - -GFX_e1723: ; e1723 -INCBIN "gfx/unknown/0e1723.2bpp" - -Functione17a3: ; e17a3 - ld a, [ScriptVar] - and 3 - ld e, a - ld d, 0 - ld hl, Unknown_e17bd -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, VTiles2 - call Decompress - call Functione1631 - ret -; e17bd - -Unknown_e17bd: ; e17bd - dw LZ_e1bab - dw LZ_e1c9b - dw LZ_e19fb - dw LZ_e18ab -; e17c5 - -GFX_e17c5: ; e17c5 -INCBIN "gfx/unknown/0e17c5.2bpp" - -LZ_e1805: ; e1805 -INCBIN "gfx/unknown/0e1805.2bpp.lz" - -LZ_e18ab: ; e18ab -INCBIN "gfx/unknown/0e18ab.2bpp.lz" - -LZ_e19fb: ; e19fb -INCBIN "gfx/unknown/0e19fb.2bpp.lz" - -LZ_e1bab: ; e1bab -INCBIN "gfx/unknown/0e1bab.2bpp.lz" - -LZ_e1c9b: ; e1c9b -INCBIN "gfx/unknown/0e1c9b.2bpp.lz" - -_DummyGame: ; e1e5b (38:5e5b) - call Functione1e67 - call DelayFrame -.asm_e1e61 - call Functione1ebb - jr nc, .asm_e1e61 - ret - -Functione1e67: ; e1e67 (38:5e67) - call DisableLCD - ld b, $8 - call GetSGBLayout - callab Function8cf53 - ld hl, LZ_e2221 - ld de, VTiles2 tile $00 - call Decompress - ld hl, Unknown_e00ed - ld de, VTiles0 tile $00 - ld bc, $40 - ld a, BANK(Unknown_e00ed) - call FarCopyBytes - ld a, $8 - ld hl, wc300 - ld [hli], a - ld [hl], $0 - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - xor a - ld [hSCY], a - ld [hSCX], a - ld [rWY], a - ld [wJumptableIndex], a - ld a, $1 - ld [hBGMapMode], a - ld a, $e3 - ld [rLCDC], a - ld a, $e4 - call DmgToCgbBGPals - ld a, $e0 - call Functioncf8 - ret - -Functione1ebb: ; e1ebb (38:5ebb) - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e1ed0 - call Functione1ed2 - callab Function8cf69 - call DelayFrame - and a - ret -.asm_e1ed0 - scf - ret - -Functione1ed2: ; e1ed2 (38:5ed2) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_e1ee1 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e1ee1 (38:5ee1) - -Jumptable_e1ee1: ; e1ee1 - dw Functione1ef3 - dw Functione1efb - dw Functione1f1c - dw Functione1f42 - dw Functione1f61 - dw Functione1f8b - dw Functione1fba - dw Functione1fcc - dw Functione2000 -; e1ef3 - -Functione1ef3: ; e1ef3 - call Functione2152 - ld hl, wJumptableIndex - inc [hl] - ret -; e1efb - -Functione1efb: ; e1efb - call Functione00ed - jr nc, .asm_e1f06 - ld hl, wJumptableIndex - set 7, [hl] - ret - -.asm_e1f06 - call Functione209d - ld hl, wJumptableIndex - inc [hl] - xor a - ld [wc708], a - ld hl, wc703 -rept 4 - ld [hli], a -endr - ld [hl], a - ld [wc709], a - -Functione1f1c: ; e1f1c - ld hl, wc708 - ld a, [hl] - cp $2d - jr nc, .asm_e1f30 - inc [hl] - call Functione2183 - xor a - ld [wc6fd], a - call Functione2128 - ret - -.asm_e1f30 - ld de, $341c - ld a, $c - call Function3b2a - ld a, $5 - ld [wc702], a - ld hl, wJumptableIndex - inc [hl] - ret -; e1f42 - -Functione1f42: ; e1f42 - ld a, [wc702] - hlcoord 17, 0 - add $f6 - ld [hl], a - ld hl, wc702 - ld a, [hl] - and a - jr nz, .asm_e1f58 - ld a, $7 - ld [wJumptableIndex], a - ret - -.asm_e1f58 - dec [hl] - xor a - ld [wcf64], a - ld hl, wJumptableIndex - inc [hl] - -Functione1f61: ; e1f61 - ld a, [wcf64] - and a - ret z - dec a - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld a, [hl] - cp $ff - ret z - ld [wc6fd], a - ld [wPlayerMinimized], a - ld a, e - ld [EnemyScreens], a - call Functione2183 - call Functione2128 - xor a - ld [wcf64], a - ld hl, wJumptableIndex - inc [hl] - ret -; e1f8b - -Functione1f8b: ; e1f8b - ld a, [wcf64] - and a - ret z - dec a - ld hl, EnemyScreens - cp [hl] - ret z - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld a, [hl] - cp $ff - ret z - ld [wc6fd], a - ld [PlayerScreens], a - ld a, e - ld [wc701], a - call Functione2183 - call Functione2128 - ld a, $40 - ld [wc708], a - ld hl, wJumptableIndex - inc [hl] - -Functione1fba: ; e1fba - ld hl, wc708 - ld a, [hl] - and a - jr z, .asm_e1fc3 - dec [hl] - ret - -.asm_e1fc3 - call Functione2010 - ld a, $3 - ld [wJumptableIndex], a - ret -; e1fcc - -Functione1fcc: ; e1fcc - ld a, [hJoypadPressed] - and A_BUTTON - ret z - xor a - ld [wc708], a -.asm_e1fd5 - ld hl, wc708 - ld a, [hl] - cp $2d - jr nc, .asm_e1ff9 - inc [hl] - push af - call Functione2183 - pop af - push hl - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld a, [hl] - pop hl - cp $ff - jr z, .asm_e1fd5 - ld [wc6fd], a - call Functione2128 - jr .asm_e1fd5 - -.asm_e1ff9 - call WaitPressAorB_BlinkCursor - ld hl, wJumptableIndex - inc [hl] - -Functione2000: ; e2000 - call Functione00ed - jr nc, .asm_e200b - ld hl, wJumptableIndex - set 7, [hl] - ret - -.asm_e200b - xor a - ld [wJumptableIndex], a - ret -; e2010 - -Functione2010: ; e2010 - ld hl, wPlayerMinimized - ld a, [hli] - cp [hl] - jr nz, .asm_e2066 - ld a, [EnemyScreens] - call Functione2183 - call Functione2142 - ld a, [wc701] - call Functione2183 - call Functione2142 - ld a, [EnemyScreens] - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld [hl], $ff - ld a, [wc701] - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld [hl], $ff - ld hl, wc703 -.asm_e2044 - ld a, [hli] - and a - jr nz, .asm_e2044 - dec hl - ld a, [wPlayerMinimized] - ld [hl], a - ld [wc6fd], a - ld hl, wc709 - ld e, [hl] -rept 2 - inc [hl] -endr - ld d, $0 - hlcoord 5, 0 - add hl, de - call Functione2128 - ld hl, UnknownText_0xe2083 - call PrintText - ret - -.asm_e2066 - xor a - ld [wc6fd], a - ld a, [EnemyScreens] - call Functione2183 - call Functione2128 - ld a, [wc701] - call Functione2183 - call Functione2128 - ld hl, UnknownText_0xe2098 - call PrintText - ret -; e2083 - -UnknownText_0xe2083: ; 0xe2083 - start_asm -; 0xe2084 - -Functione2084: ; e2084 - push bc - hlcoord 2, 13 - call Functione2128 - ld hl, UnknownText_0xe2093 - pop bc -rept 3 - inc bc -endr - ret -; e2093 - -UnknownText_0xe2093: ; 0xe2093 - ; , yeah! - text_jump UnknownText_0x1c1a5b - db "@" -; 0xe2098 - -UnknownText_0xe2098: ; 0xe2098 - ; Darn… - text_jump UnknownText_0x1c1a65 - db "@" -; 0xe209d - -Functione209d: ; e209d - ld hl, wc6d0 - ld bc, $2d - xor a - call ByteFill - call Functione2101 - ld c, $2 - ld b, [hl] - call Functione20e5 - ld c, $8 - ld b, [hl] - call Functione20e5 - ld c, $4 - ld b, [hl] - call Functione20e5 - ld c, $7 - ld b, [hl] - call Functione20e5 - ld c, $3 - ld b, [hl] - call Functione20e5 - ld c, $6 - ld b, [hl] - call Functione20e5 - ld c, $1 - ld b, [hl] - call Functione20e5 - ld c, $5 - ld hl, wc6d0 - ld b, $2d -.asm_e20db - ld a, [hl] - and a - jr nz, .asm_e20e0 - ld [hl], c - -.asm_e20e0 - inc hl - dec b - jr nz, .asm_e20db - ret -; e20e5 - -Functione20e5: ; e20e5 - push hl - ld de, wc6d0 -.asm_e20e9 - call Random - and $3f - cp $2d - jr nc, .asm_e20e9 - ld l, a - ld h, $0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e20e9 - ld [hl], c - dec b - jr nz, .asm_e20e9 - pop hl - inc hl - ret -; e2101 - -Functione2101: ; e2101 - ld a, [MenuSelection2] - dec a - ld l, a - ld h, 0 -rept 3 - add hl, hl -endr - ld de, Unknown_e2110 - add hl, de - ret -; e2110 - -Unknown_e2110: ; e2110 - db $02, $03, $06, $06, $06, $08, $08, $06 - db $02, $02, $04, $06, $06, $08, $08, $09 - db $02, $02, $02, $04, $07, $08, $08, $0c -; e2128 - -Functione2128: ; e2128 - ld a, [wc6fd] - sla a - sla a - add $4 - ld [hli], a - inc a - ld [hld], a - inc a - ld bc, SCREEN_WIDTH - add hl, bc - ld [hli], a - inc a - ld [hl], a - ld c, 3 - call DelayFrames - ret -; e2142 - -Functione2142: ; e2142 - ld a, $1 - ld [hli], a - ld [hld], a - ld bc, SCREEN_WIDTH - add hl, bc - ld [hli], a - ld [hl], a - ld c, 3 - call DelayFrames - ret -; e2152 - -Functione2152: ; e2152 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $1 - call ByteFill - hlcoord 0, 0 - ld de, String_e2177 - call PlaceString - hlcoord 15, 0 - ld de, String_e217d - call PlaceString - ld hl, UnknownText_0xe2176 - call PrintText - ret -; e2176 - -UnknownText_0xe2176: ; 0xe2176 - db "@" -; 0xe2177 - -String_e2177: db "とったもの@" -String_e217d: db "あと かい@" -; e2183 - -Functione2183: ; e2183 - ld d, $0 -.asm_e2185 - sub $9 - jr c, .asm_e218c - inc d - jr .asm_e2185 - -.asm_e218c - add $9 - ld e, a - hlcoord 1, 2 - ld bc, $28 -.asm_e2195 - ld a, d - and a - jr z, .asm_e219d - add hl, bc - dec d - jr .asm_e2195 - -.asm_e219d - sla e - add hl, de - ret -; e21a1 - -Functione21a1: ; e21a1 (38:61a1) - ld a, [wJumptableIndex] - cp $7 - jr nc, .quit - call JoyTextDelay - ld hl, hJoypadPressed ; $ffa3 - ld a, [hl] - and A_BUTTON - jr nz, .pressed_a - ld a, [hl] - and D_LEFT - jr nz, .pressed_left - ld a, [hl] - and D_RIGHT - jr nz, .pressed_right - ld a, [hl] - and D_UP - jr nz, .pressed_up - ld a, [hl] - and D_DOWN - jr nz, .pressed_down - ret - -.quit - ld hl, 0 - add hl, bc - ld [hl], $0 - ret - -.pressed_a - ld hl, $c - add hl, bc - ld a, [hl] - inc a - ld [wcf64], a - ret - -.pressed_left - ld hl, $6 - add hl, bc - ld a, [hl] - and a - ret z - sub $10 - ld [hl], a - ld hl, $c - add hl, bc - dec [hl] - ret - -.pressed_right - ld hl, $6 - add hl, bc - ld a, [hl] - cp $80 - ret z - add $10 - ld [hl], a - ld hl, $c - add hl, bc - inc [hl] - ret - -.pressed_up - ld hl, $7 - add hl, bc - ld a, [hl] - and a - ret z - sub $10 - ld [hl], a - ld hl, $c - add hl, bc - ld a, [hl] - sub $9 - ld [hl], a - ret - -.pressed_down - ld hl, $7 - add hl, bc - ld a, [hl] - cp $40 - ret z - add $10 - ld [hl], a - ld hl, $c - add hl, bc - ld a, [hl] - add $9 - ld [hl], a - ret -; e2221 (38:6221) - -LZ_e2221: ; e2221 -INCBIN "gfx/unknown/0e2221.2bpp.lz" - -Functione2391: ; e2391 (38:6391) - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] - push af - xor a - ld [VramState], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - call Functione2963 - xor a - ld [wcb2e], a - call DelayFrame -.asm_e23b4 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e23c6 - call Functione23d5 - call DelayFrame - jr .asm_e23b4 -.asm_e23c6 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a - pop af - ld [Options], a - ret - -Functione23d5: ; e23d5 (38:63d5) - ld a, [wJumptableIndex] - ld hl, Jumptable_e23df - call Functione33df - jp [hl] - -Jumptable_e23df: ; e23df (38:63df) - dw Functione23e9 - dw Functione241a - dw Functione245d - dw Functione247d - dw Functione2992 - - -Functione23e9: ; e23e9 (38:63e9) - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2d30 - call Functione2a8e - ld de, PCString_ChooseaPKMN - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call PCMonInfo - ld a, $ff - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - call WaitBGMap - call Functione2e01 - call Functione298d - ret - -Functione241a: ; e241a (38:641a) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and B_BUTTON - jr nz, .asm_e2457 - ld a, [hl] - and A_BUTTON - jr nz, .asm_e2443 - call Functione29b5 - and a - ret z - call Functione2e01 - xor a - ld [hBGMapMode], a - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret -.asm_e2443 - call Functione2def - and a - ret z - cp $ff - jr z, .asm_e2457 - ld a, $2 - ld [wJumptableIndex], a - ret -; e2452 (38:6452) - -.asm_e2452 - ld hl, wJumptableIndex - dec [hl] - ret - -.asm_e2457 - ld a, $4 - ld [wJumptableIndex], a - ret - -Functione245d: ; e245d (38:645d) - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [MenuSelection2], a - call Functione298d - ret - -Functione247d: ; e247d (38:647d) - ld hl, BillsPCDepositMenuDataHeader - call CopyMenuDataHeader - ld a, [MenuSelection2] - call Function1d4b - call InterpretMenu2 - jp c, BillsPCDepositFuncCancel - ld a, [MenuSelection2] - dec a - and $3 - ld e, a - ld d, 0 - ld hl, BillsPCDepositJumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -BillsPCDepositJumptable: ; e24a1 (38:64a1) - dw BillsPCDepositFuncDeposit ; Deposit Pokemon - dw BillsPCDepositFuncStats ; Pokemon Stats - dw BillsPCDepositFuncRelease ; Release Pokemon - dw BillsPCDepositFuncCancel ; Cancel - - -BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) - call Functione2f18 - jp c, BillsPCDepositFuncCancel - call Functione307c - jr c, .no_overflow_31 - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - ret -.no_overflow_31 - ld de, PCString_WhatsUp - call Functione2a6e - ret - -BillsPCDepositFuncStats: ; e24c8 (38:64c8) - call LoadStandardMenuDataHeader - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ret - -BillsPCDepositFuncRelease: ; e24e0 (38:64e0) - call Functione2f18 - jr c, BillsPCDepositFuncCancel - call Functione2f5f - jr c, BillsPCDepositFuncCancel - ld a, [MenuSelection2] - push af - ld de, PCString_ReleasePKMN - call Functione2a6e - call LoadStandardMenuDataHeader - lb bc, 14, 11 - call PlaceYesNoBox - ld a, [MenuSelection2] - dec a - call ExitMenu - and a - jr nz, .asm_e252c - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - call Functione3180 - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - pop af - ret -.asm_e252c - ld de, PCString_WhatsUp - call Functione2a6e - pop af - ld [MenuSelection2], a - ret - -BillsPCDepositFuncCancel: ; e2537 (38:6537) - ld a, $0 - ld [wJumptableIndex], a - ret -; e253d (38:653d) - -BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d) - db $40 ; flags - db 04, 09 ; start coords - db 13, 19 ; end coords - dw BillsPCDepositMenuData - db 1 ; default option -; 0xe2545 - -BillsPCDepositMenuData: ; 0xe2545 (38:6545) - db $80 ; flags - db 4 ; items - db "DEPOSIT@" - db "STATS@" - db "RELEASE@" - db "CANCEL@" -; 0xe2564 (38:6564) - -Functione2564: ; e2564 - hlcoord 0, 0 - ld b, $4 - ld c, $8 - call ClearBox - hlcoord 0, 4 - ld b, $a - ld c, $9 - call ClearBox - hlcoord 0, 14 - ld b, $2 - ld c, $8 - call ClearBox - ret -; e2583 - -Functione2583: ; e2583 (38:6583) - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] - push af - xor a - ld [VramState], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - call Functione2963 - ld a, $f - ld [wcb2e], a - call DelayFrame -.asm_e25a7 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .no_overflow_49 - call Functione25c8 - call DelayFrame - jr .asm_e25a7 -.no_overflow_49 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a - pop af - ld [Options], a - ret - -Functione25c8: ; e25c8 (38:65c8) - ld a, [wJumptableIndex] - ld hl, .jumptable - call Functione33df - jp [hl] - -.jumptable: ; e25d2 (38:65d2) - dw Functione25dc - dw Functione2612 - dw Functione2655 - dw BillsPC_Withdraw - dw Functione2992 - - -Functione25dc: ; e25dc (38:65dc) - ld a, $f - ld [wcb2e], a - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2d30 - call Functione2a8e - ld de, PCString_ChooseaPKMN - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call PCMonInfo - ld a, $ff - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - call WaitBGMap - call Functione2e01 - call Functione298d - ret - -Functione2612: ; e2612 (38:6612) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and B_BUTTON - jr nz, .asm_e264f - ld a, [hl] - and A_BUTTON - jr nz, .asm_e263b - call Functione29b5 - and a - ret z - call Functione2e01 - xor a - ld [hBGMapMode], a - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret -.asm_e263b - call Functione2def - and a - ret z - cp $ff - jr z, .asm_e264f - ld a, $2 - ld [wJumptableIndex], a - ret -; e264a (38:664a) - -.asm_e264a - ld hl, wJumptableIndex - dec [hl] - ret - -.asm_e264f - ld a, $4 - ld [wJumptableIndex], a - ret -; e2655 - -Functione2655: ; e2655 (38:6655) - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [MenuSelection2], a - call Functione298d - ret - -BillsPC_Withdraw: ; e2675 (38:6675) - ld hl, .MenuDataHeader - call CopyMenuDataHeader - ld a, [MenuSelection2] - call Function1d4b - call InterpretMenu2 - jp c, .cancel - ld a, [MenuSelection2] - dec a - 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] - -.jumptable: ; e2699 (38:6699) #mark - dw .withdraw ; Withdraw - dw .stats ; Stats - dw .release ; Release - dw .cancel ; Cancel - - -.withdraw: ; e26a1 (38:66a1) - call Functione2f18 - jp c, .cancel - call TryWithdrawPokemon - jr c, .FailedWithdraw - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - ret -.FailedWithdraw - ld de, PCString_WhatsUp - call Functione2a6e - ret - -.stats: ; e26c0 (38:66c0) - call LoadStandardMenuDataHeader - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ret - -.release: ; e26d8 (38:66d8) - ld a, [MenuSelection2] - push af - call Functione2f5f - jr c, .FailedRelease - ld de, PCString_ReleasePKMN - call Functione2a6e - call LoadStandardMenuDataHeader - lb bc, 14, 11 - call PlaceYesNoBox - ld a, [MenuSelection2] - dec a - call ExitMenu - and a - jr nz, .FailedRelease - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - call Functione3180 - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - pop af - ret -.FailedRelease - ld de, PCString_WhatsUp - call Functione2a6e - pop af - ld [MenuSelection2], a - ret - -.cancel: ; e272b (38:672b) - ld a, $0 - ld [wJumptableIndex], a - ret -; e2731 (38:6731) - -.MenuDataHeader: ; 0xe2731 - db $40 ; flags - db 04, 09 ; start coords - db 13, 19 ; end coords - dw .MenuData - db 1 ; default option -; 0xe2739 - -.MenuData: ; 0xe2739 - db $80 ; flags - db 4 ; items - db "WITHDRAW@" - db "STATS@" - db "RELEASE@" - db "CANCEL@" -; 0xe2759 - -Functione2759: ; e2759 - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] - push af - xor a - ld [VramState], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - call Functione2963 - ld a, [wCurBox] - and $f - inc a - ld [wcb2e], a - call DelayFrame -.asm_e2781 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e2793 - call Functione27a2 - call DelayFrame - jr .asm_e2781 - -.asm_e2793 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a - pop af - ld [Options], a - ret -; e27a2 - -Functione27a2: ; e27a2 - ld a, [wJumptableIndex] - ld hl, Jumptable_e27ac - call Functione33df - jp [hl] -; e27ac - -Jumptable_e27ac: ; e27ac - dw Functione27ba - dw Functione27eb - dw Functione283d - dw Functione285d - dw Functione28df - dw Functione2903 - dw Functione2992 -; e27ba - -Functione27ba: ; e27ba - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2d30 - ld de, PCString_ChooseaPKMN - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call Functione2a80 - call PCMonInfo - ld a, $ff - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - call WaitBGMap - call Functione2e01 - call Functione298d - ret -; e27eb - -Functione27eb: ; e27eb - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .asm_e2837 - ld a, [hl] - and A_BUTTON - jr nz, .asm_e2823 - call Functione29d0 - jr c, .asm_e2816 - and a - ret z - call Functione2e01 - xor a - ld [hBGMapMode], a - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret - -.asm_e2816 - xor a - ld [wcb2b], a - ld [wcb2a], a - ld a, $0 - ld [wJumptableIndex], a - ret - -.asm_e2823 - call Functione2def - and a - ret z - cp $ff - jr z, .asm_e2837 - ld a, $2 - ld [wJumptableIndex], a - ret - - ld hl, wJumptableIndex - dec [hl] - ret - -.asm_e2837 - ld a, $6 - ld [wJumptableIndex], a - ret -; e283d - -Functione283d: ; e283d - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [MenuSelection2], a - call Functione298d - ret -; e285d - -Functione285d: ; e285d - ld hl, MenuDataHeader_0xe28c3 - call CopyMenuDataHeader - ld a, [MenuSelection2] - call Function1d4b - call InterpretMenu2 - jp c, Functione28bd - ld a, [MenuSelection2] - dec a - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_e2881 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e2881 - -Jumptable_e2881: ; e2881 - dw Functione2887 - dw Functione28a5 - dw Functione28bd -; e2887 - -Functione2887: ; e2887 - call Functione2f18 - jp c, Functione28bd - ld a, [wcb2a] - ld [wcb2f], a - ld a, [wcb2b] - ld [wcb30], a - ld a, [wcb2e] - ld [wcb31], a - ld a, $4 - ld [wJumptableIndex], a - ret -; e28a5 - -Functione28a5: ; e28a5 - call LoadStandardMenuDataHeader - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ret -; e28bd - -Functione28bd: ; e28bd - ld a, $0 - ld [wJumptableIndex], a - ret -; e28c3 - -MenuDataHeader_0xe28c3: ; 0xe28c3 - db $40 ; flags - db 04, 09 ; start coords - db 13, 19 ; end coords - dw MenuData2_0xe28cb - db 1 ; default option -; 0xe28cb - -MenuData2_0xe28cb: ; 0xe28cb - db $80 ; flags - db 3 ; items - db "MOVE@" - db "STATS@" - db "CANCEL@" -; 0xe28df - -Functione28df: ; e28df - xor a - ld [hBGMapMode], a - call Functione2d30 - ld de, PCString_MoveToWhere - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call Functione2a80 - call ClearSprites - call Functione2e8c - call WaitBGMap - call Functione298d - ret -; e2903 - -Functione2903: ; e2903 - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .asm_e294b - ld a, [hl] - and A_BUTTON - jr nz, .asm_e2938 - call Functione29f4 - jr c, .asm_e292b - and a - ret z - call Functione2e8c - xor a - ld [hBGMapMode], a - call Functione2c2c - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret - -.asm_e292b - xor a - ld [wcb2b], a - ld [wcb2a], a - ld a, $4 - ld [wJumptableIndex], a - ret - -.asm_e2938 - call Functione2ee5 - jr c, .asm_e2946 - call Functione31e7 - ld a, $0 - ld [wJumptableIndex], a - ret - -.asm_e2946 - ld hl, wJumptableIndex - dec [hl] - ret - -.asm_e294b - ld a, [wcb2f] - ld [wcb2a], a - ld a, [wcb30] - ld [wcb2b], a - ld a, [wcb31] - ld [wcb2e], a - ld a, $0 - ld [wJumptableIndex], a - ret -; e2963 - -Functione2963: ; e2963 (38:6963) - call WhiteBGMap - call ClearSprites - call ClearTileMap - call Functione33e8 - ld hl, OverworldMap - ld bc, $338 - xor a - call ByteFill - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [wcb2b], a - ld [wcb2a], a - ret - -Functione298d: ; e298d (38:698d) - ld hl, wJumptableIndex - inc [hl] - ret - -Functione2992: ; e2992 (38:6992) - ld hl, wJumptableIndex - set 7, [hl] - ret - -Functione2998: ; e2998 (38:6998) - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - and a - jr z, .asm_e29b2 - dec a - cp $1 - jr z, .asm_e29b2 - ld e, a - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c -.asm_e29b2 - jp Functione2a65 - -Functione29b5: ; e29b5 (38:69b5) - ld hl, hJoyLast - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - ld e, a - and a - jr z, .asm_e29cd - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c -.asm_e29cd - jp Functione2a65 -; e29d0 (38:69d0) - -Functione29d0: ; e29d0 - ld hl, hJoyLast - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - ld e, a - and a - jr z, .asm_e29e8 - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c - -.asm_e29e8 - ld a, [hl] - and D_LEFT - jr nz, Functione2a48 - ld a, [hl] - and D_RIGHT - jr nz, Functione2a56 - jr Functione2a65 - -Functione29f4: ; e29f4 - ld hl, hJoyLast - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - ld e, a - and a - jr z, .asm_e2a0c - - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c - -.asm_e2a0c - ld a, [hl] - and D_LEFT - jr nz, Functione2a48 - ld a, [hl] - and D_RIGHT - jr nz, Functione2a56 - jr Functione2a65 - -Functione2a18: ; e2a18 (38:6a18) - ld hl, wcb2b - ld a, [hl] - and a - jr z, .asm_e2a22 - dec [hl] - jr Functione2a68 - -.asm_e2a22 - ld hl, wcb2a - ld a, [hl] - and a - jr z, Functione2a65 - dec [hl] - jr Functione2a68 - -Functione2a2c: ; e2a2c (38:6a2c) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - inc a - cp e - jr nc, Functione2a65 - - ld hl, wcb2b - ld a, [hl] - inc a - cp d - jr nc, .asm_e2a42 - inc [hl] - jr Functione2a68 - -.asm_e2a42 - ld hl, wcb2a - inc [hl] - jr Functione2a68 -; e2a48 (38:6a48) - -Functione2a48: ; e2a48 - ld hl, wcb2e - ld a, [hl] - and a - jr z, .asm_e2a52 - dec [hl] - jr Functione2a6c - -.asm_e2a52 - ld [hl], $e - jr Functione2a6c - -Functione2a56: ; e2a56 - ld hl, wcb2e - ld a, [hl] - cp $e - jr z, .asm_e2a61 - inc [hl] - jr Functione2a6c - -.asm_e2a61 - ld [hl], $0 - jr Functione2a6c - -Functione2a65: ; e2a65 (38:6a65) - xor a - and a - ret - -Functione2a68: ; e2a68 (38:6a68) - ld a, $1 - and a - ret -; e2a6c (38:6a6c) - -Functione2a6c: ; e2a6c - scf - ret -; e2a6e - -Functione2a6e: ; e2a6e (38:6a6e) - push de - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - pop de - hlcoord 1, 16 - call PlaceString - ret -; e2a80 (38:6a80) - -Functione2a80: ; e2a80 - call Functione2a8e - hlcoord 8, 1 - ld [hl], $5f - hlcoord 19, 1 - ld [hl], $5e - ret -; e2a8e - -Functione2a8e: ; e2a8e (38:6a8e) - hlcoord 8, 0 - lb bc, 1, 10 - call TextBox - - ld a, [wcb2e] - and a - jr z, .party - - cp NUM_BOXES + 1 - jr nz, .gotbox - - ld a, [wCurBox] - inc a -.gotbox - dec a - ld hl, wBoxNames - ld bc, BOX_NAME_LENGTH - call AddNTimes - ld e, l - ld d, h - jr .print - -.party - ld de, String_e2abd -.print - hlcoord 10, 1 - call PlaceString - ret -; e2abd (38:6abd) - -String_e2abd: - db "PARTY <PK><MN>@" -; e2ac6 - -PCMonInfo: ; e2ac6 (38:6ac6) -; Display a monster's pic and -; attributes when highlighting -; it in a PC menu. - -; Includes the neat cascading -; effect when showing the pic. - -; Example: Species, level, gender, -; whether it's holding an item. - - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - - call Functione2def - and a - ret z - cp $ff - ret z - - ld [wd265], a - hlcoord 1, 4 - xor a - ld b, 7 -.asm_e2ae9 - ld c, 7 - push af - push hl -.asm_e2aed - ld [hli], a - add 7 - dec c - jr nz, .asm_e2aed - pop hl - ld de, 20 - add hl, de - pop af - inc a - dec b - jr nz, .asm_e2ae9 - - call Functione2b6d - ld a, [wd265] - ld [CurPartySpecies], a - ld [CurSpecies], a - ld hl, TempMonDVs - predef GetUnownLetter - call GetBaseData - ld de, VTiles2 tile $00 - predef GetFrontpic - xor a - ld [wcb32], a - ld a, [CurPartySpecies] - ld [wd265], a - - cp EGG - ret z - - call GetBasePokemonName - hlcoord 1, 14 - call PlaceString - - hlcoord 1, 12 - call PrintLevel - - ld a, $3 - ld [MonType], a - callba GetGender - jr c, .asm_e2b4f - ld a, "♂" - jr nz, .printgender - ld a, "♀" -.printgender - hlcoord 5, 12 - ld [hl], a -.asm_e2b4f - - ld a, [TempMonItem] - and a - ret z - - ld d, a - callab ItemIsMail - jr c, .mail - ld a, $5d ; item icon - jr .printitem -.mail - ld a, $1 - ld [wcb32], a - ld a, $5c ; mail icon -.printitem - hlcoord 7, 12 - ld [hl], a - ret - -Functione2b6d: ; e2b6d (38:6b6d) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld e, a - ld d, $0 - ld hl, wc801 -rept 3 - add hl, de -endr - ld a, [hl] - and a - jr z, .asm_e2bc6 - cp $f - jr z, .asm_e2bf5 - ld b, a - call Functione3396 - ld a, b - call GetSRAMBank - push hl - ld bc, $35 - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonLevel], a - pop hl - push hl - ld bc, $17 - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonItem], a - pop hl - ld bc, $2b - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - call CloseSRAM - ret -.asm_e2bc6 - ld hl, PartyMon1Level - ld bc, $30 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonLevel], a - ld hl, PartyMon1Item - ld bc, $30 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonItem], a - ld hl, PartyMon1DVs - ld bc, $30 - ld a, e - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - ret - -.asm_e2bf5 - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxMon1Level - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonLevel], a - - ld hl, sBoxMon1Item - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonItem], a - - ld hl, sBoxMon1DVs - ld bc, $20 - ld a, e - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - - call CloseSRAM - ret - -Functione2c2c: ; e2c2c (38:6c2c) - hlcoord 8, 2 - lb bc, 10, 10 - call TextBox - - hlcoord 8, 2 - ld [hl], "└" - hlcoord 19, 2 - ld [hl], "┘" - - ld a, [wcb2a] - ld e, a - ld d, 0 - ld hl, OverworldMap -rept 3 - add hl, de -endr - ld e, l - ld d, h - hlcoord 9, 4 - ld a, [wcb2d] -.asm_e2c53 - push af - push de - push hl - call Functione2c6e - pop hl - ld de, $28 - add hl, de - pop de -rept 3 - inc de -endr - pop af - dec a - jr nz, .asm_e2c53 - ret -; e2c67 (38:6c67) - -String_e2c67: - db "CANCEL@" -; e2c6e - -Functione2c6e: ; e2c6e (38:6c6e) - ld a, [de] - and a - ret z - cp $ff - jr nz, .asm_e2c7c - ld de, String_e2c67 - call PlaceString - ret -.asm_e2c7c - inc de - ld a, [de] - ld b, a - inc de - ld a, [de] - ld e, a - ld a, b - and a - jr z, .asm_e2cc8 - cp $f - jr z, .asm_e2cf1 - push hl - call Functione3396 - ld a, b - call GetSRAMBank - push hl - ld bc, $16 - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - pop hl - and a - jr z, .asm_e2cc2 - ld bc, $372 - add hl, bc - ld bc, $b - ld a, e - call AddNTimes - ld de, StringBuffer1 - ld bc, $b - call CopyBytes - call CloseSRAM - pop hl - ld de, StringBuffer1 - call PlaceString - ret -.asm_e2cc2 - call CloseSRAM - pop hl - jr .asm_e2d23 -.asm_e2cc8 - push hl - ld hl, PartySpecies - ld d, $0 - add hl, de - ld a, [hl] - and a - jr z, .asm_e2cee - ld hl, PartyMonNicknames - ld bc, $b - ld a, e - call AddNTimes - ld de, StringBuffer1 - ld bc, $b - call CopyBytes - pop hl - ld de, StringBuffer1 - call PlaceString - ret -.asm_e2cee - pop hl - jr .asm_e2d23 -.asm_e2cf1 - push hl - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxSpecies - ld d, $0 - add hl, de - ld a, [hl] - and a - jr z, .asm_e2d1f - ld hl, sBoxMonNicknames - ld bc, PKMN_NAME_LENGTH - ld a, e - call AddNTimes - ld de, StringBuffer1 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - call CloseSRAM - pop hl - ld de, StringBuffer1 - call PlaceString - ret -.asm_e2d1f - call CloseSRAM - pop hl -.asm_e2d23 - ld de, String_e2d2a - call PlaceString - ret -; e2d2a (38:6d2a) - -String_e2d2a: - db "-----@" -; e2d30 - -Functione2d30: ; e2d30 (38:6d30) - xor a - ld hl, OverworldMap - ld bc, $5a - call ByteFill - ld de, OverworldMap - xor a - ld [wd003], a - ld [wd004], a - ld a, [wcb2e] - and a - jr z, .asm_e2d87 - cp $f - jr z, .asm_e2db7 - ld b, a - call Functione3396 - ld a, b - call GetSRAMBank - inc hl -.asm_e2d57 - ld a, [hl] - cp $ff - jr z, .asm_e2d79 - and a - jr z, .asm_e2d79 - ld [de], a - inc de - ld a, [wcb2e] - ld [de], a - inc de - ld a, [wd003] - ld [de], a - inc a - ld [wd003], a - inc de - inc hl - ld a, [wd004] - inc a - ld [wd004], a - jr .asm_e2d57 -.asm_e2d79 - call CloseSRAM - ld a, $ff - ld [de], a - ld a, [wd004] - inc a - ld [wcb2c], a - ret -.asm_e2d87 - ld hl, PartySpecies -.asm_e2d8a - ld a, [hl] - cp $ff - jr z, .asm_e2dac - and a - jr z, .asm_e2dac - ld [de], a - inc de - ld a, [wcb2e] - ld [de], a - inc de - ld a, [wd003] - ld [de], a - inc a - ld [wd003], a - inc de - inc hl - ld a, [wd004] - inc a - ld [wd004], a - jr .asm_e2d8a -.asm_e2dac - ld a, $ff - ld [de], a - ld a, [wd004] - inc a - ld [wcb2c], a - ret -.asm_e2db7 - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxSpecies -.asm_e2dbf - ld a, [hl] - cp $ff - jr z, .asm_e2de1 - and a - jr z, .asm_e2de1 - ld [de], a - inc de - ld a, [wcb2e] - ld [de], a - inc de - ld a, [wd003] - ld [de], a - inc a - ld [wd003], a - inc de - inc hl - ld a, [wd004] - inc a - ld [wd004], a - jr .asm_e2dbf -.asm_e2de1 - call CloseSRAM - ld a, $ff - ld [de], a - ld a, [wd004] - inc a - ld [wcb2c], a - ret - -Functione2def: ; e2def (38:6def) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld e, a - ld d, $0 - ld hl, OverworldMap -rept 3 - add hl, de -endr - ld a, [hl] - ret - -Functione2e01: ; e2e01 (38:6e01) - ld a, [wcb2c] - and a - jr nz, .asm_e2e0b - call ClearSprites - ret -.asm_e2e0b - ld hl, Unknown_e2e2b - ld de, Sprites -.done1 - ld a, [hl] - cp $ff - ret z - ld a, [wcb2b] - and $7 - swap a - add [hl] - inc hl - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - jr .done1 -; e2e2b (38:6e2b) - -Unknown_e2e2b: ; e2e2b - db $26, $50, $00, $00 - db $26, $58, $00, $00 - db $26, $60, $00, $00 - db $26, $68, $00, $00 - db $26, $70, $00, $00 - db $26, $78, $00, $00 - db $26, $80, $00, $00 - db $26, $88, $00, $00 - db $26, $90, $00, $00 - db $26, $97, $00, $00 - db $39, $50, $00, $40 - db $39, $58, $00, $40 - db $39, $60, $00, $40 - db $39, $68, $00, $40 - db $39, $70, $00, $40 - db $39, $78, $00, $40 - db $39, $80, $00, $40 - db $39, $88, $00, $40 - db $39, $90, $00, $40 - db $39, $97, $00, $40 - db $2e, $4e, $01, $00 - db $31, $4e, $01, $40 - db $2e, $99, $01, $20 - db $31, $99, $01, $60 - db $ff -; e2e8c - -Functione2e8c: ; e2e8c - ld hl, Unknown_e2eac - ld de, Sprites -.asm_e2e92 - ld a, [hl] - cp $ff - ret z - ld a, [wcb2b] - and $7 - swap a - add [hl] - inc hl - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - jr .asm_e2e92 -; e2eac - -Unknown_e2eac: ; e2eac - db $27, $50, $06, $00 - db $2b, $58, $00, $40 - db $2b, $60, $00, $40 - db $2b, $68, $00, $40 - db $2b, $70, $00, $40 - db $2b, $78, $00, $40 - db $2b, $80, $00, $40 - db $2b, $88, $00, $40 - db $2b, $90, $00, $40 - db $27, $98, $07, $00 - db $ff -; e2ed5 - -Functione2ed5: ; e2ed5 -.asm_e2ed5 - push bc - push hl -.asm_e2ed7 - ld [hli], a - dec c - jr nz, .asm_e2ed7 - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_e2ed5 - ret -; e2ee5 - -Functione2ee5: ; e2ee5 - ld hl, wcb2e - ld a, [wcb31] - cp [hl] - jr z, .asm_e2f00 - ld a, [wcb2e] - and a - jr z, .asm_e2ef8 - ld e, $15 - jr .asm_e2efa - -.asm_e2ef8 - ld e, $7 - -.asm_e2efa - ld a, [wcb2c] - cp e - jr nc, .asm_e2f02 - -.asm_e2f00 - and a - ret - -.asm_e2f02 - ld de, PCString_TheresNoRoom - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret -; e2f18 - -Functione2f18: ; e2f18 (38:6f18) - ld a, [wcb2e] - and a - jr nz, .Okay - ld a, [wcb2c] - cp $3 - jr c, .ItsYourLastPokemon - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - callba CheckCurPartyMonFainted - jr c, .AllOthersFainted - ld a, [wcb32] - and a - jr nz, .HasMail -.Okay - and a - ret -.HasMail - ld de, PCString_RemoveMail - jr .NotOkay -.AllOthersFainted - ld de, PCString_NoMoreUsablePKMN - jr .NotOkay -.ItsYourLastPokemon - ld de, PCString_ItsYourLastPKMN -.NotOkay - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret - -Functione2f5f: ; e2f5f (38:6f5f) - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_e2f68 - and a - ret -.asm_e2f68 - ld de, PCString_NoReleasingEGGS - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret - -Functione2f7e: ; e2f7e (38:6f7e) - call LowVolume - call Functione2fd6 - ld a, $3 - ld [MonType], a - predef StatsScreenInit - call Functione33e8 - call MaxVolume - ret - -Functione2f95: ; e2f95 (38:6f95) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and A_BUTTON | B_BUTTON | D_RIGHT + D_LEFT - ld [wcf73], a - jr nz, .asm_e2fd0 - ld a, [hl] - and D_DOWN | D_UP - ld [wcf73], a - jr nz, .asm_e2faa - jr .asm_e2fd0 -.asm_e2faa - call Functione2998 - and a - jr z, .asm_e2fd1 - call Functione2def - ld [wd265], a - call Functione2b6d - ld a, [wd265] - ld [CurPartySpecies], a - ld [CurSpecies], a - ld hl, TempMonDVs - predef GetUnownLetter - call GetBaseData - call Functione2fd6 -.asm_e2fd0 - ret -.asm_e2fd1 - xor a - ld [wcf73], a - ret - -Functione2fd6: ; e2fd6 (38:6fd6) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, [wcb2e] - and a - jr z, .asm_e3020 - cp $f - jr nz, .asm_e3048 - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxSpecies - call Functione3357 - ld hl, sBoxMonNicknames - call Functione3363 - ld hl, sBoxMonOT - call Functione3376 - ld hl, sBoxMons - ld bc, BOXMON_STRUCT_LENGTH - ld a, [CurPartyMon] - call AddNTimes - ld de, wd018 - ld bc, $30 - call CopyBytes - call CloseSRAM - callba Function5088b - ret -.asm_e3020 - ld hl, PartySpecies - call Functione3357 - ld hl, PartyMonNicknames - call Functione3363 - ld hl, PartyMonOT - call Functione3376 - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, $30 - ld a, [CurPartyMon] - call AddNTimes - ld de, wd018 - ld bc, $30 - call CopyBytes - ret -.asm_e3048 - ld b, a - call Functione3396 - ld a, b - call GetSRAMBank - push hl - inc hl - call Functione3357 - pop hl - push hl - ld bc, $372 - add hl, bc - call Functione3363 - pop hl - push hl - ld bc, $296 - add hl, bc - call Functione3376 - pop hl - ld bc, $16 - add hl, bc - ld bc, $20 - call Functione3389 - call CloseSRAM - callba Function5088b - ret - -Functione307c: ; e307c (38:707c) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld hl, PartyMonNicknames - ld a, [CurPartyMon] - call GetNick - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - predef SentGetPkmnIntoFromBox - jr c, .asm_boxisfull - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ld a, [CurPartySpecies] - call PlayCry - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - call WaitBGMap - hlcoord 1, 16 - ld de, PCString_Stored - call PlaceString - ld l, c - ld h, b - ld de, StringBuffer1 - call PlaceString - ld a, "!" - ld [bc], a - ld c, 50 - call DelayFrames - and a - ret - -.asm_boxisfull - ld de, PCString_BoxFull - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret - -TryWithdrawPokemon: ; e30fa (38:70fa) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, BANK(sBoxMonNicknames) - call GetSRAMBank - ld a, [CurPartyMon] - ld hl, sBoxMonNicknames - call GetNick - call CloseSRAM - xor a - ld [wPokemonWithdrawDepositParameter], a - predef SentGetPkmnIntoFromBox - jr c, .PartyFull - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ld a, [CurPartySpecies] - call PlayCry - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - call WaitBGMap - hlcoord 1, 16 - ld de, PCString_Got - call PlaceString - ld l, c - ld h, b - ld de, StringBuffer1 - call PlaceString - ld a, $e7 - ld [bc], a - ld c, 50 - call DelayFrames - and a - ret - -.PartyFull - ld de, PCString_PartyFull - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret - - -Functione3180: ; e3180 (38:7180) - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - - call WaitBGMap - ld a, [CurPartySpecies] - call GetCryIndex - jr c, .asm_e31ab - ld e, c - ld d, b - call PlayCryHeader -.asm_e31ab - - ld a, [CurPartySpecies] - ld [wd265], a - call GetPokemonName - hlcoord 1, 16 - ld de, PCString_ReleasedPKMN - call PlaceString - ld c, 80 - call DelayFrames - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - hlcoord 1, 16 - ld de, PCString_Bye - call PlaceString - ld l, c - ld h, b - inc hl - ld de, StringBuffer1 - call PlaceString - ld l, c - ld h, b - ld [hl], $e7 - ld c, 50 - call DelayFrames - ret -; e31e7 (38:71e7) - -Functione31e7: ; e31e7 - push hl - push de - push bc - push af - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - hlcoord 1, 16 - ld de, String_e3233 - call PlaceString - ld c, 20 - call DelayFrames - pop af - pop bc - pop de - pop hl - ld a, [wCurBox] - push af - ld bc, 0 - ld a, [wcb31] - and a - jr nz, .asm_e3215 - set 0, c - -.asm_e3215 - ld a, [wcb2e] - and a - jr nz, .asm_e321d - set 1, c - -.asm_e321d - ld hl, Jumptable_e3245 -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, Functione322a - push de - jp [hl] -; e322a - -Functione322a: ; e322a - pop af - ld e, a - callba Function14ad5 - ret -; e3233 - -String_e3233: - db "Saving… Leave ON!@" -; e3245 - -Jumptable_e3245: ; e3245 - dw Functione324d - dw Functione3267 - dw Functione327d - dw Functione3284 -; e324d - -Functione324d: ; e324d - ld hl, wcb31 - ld a, [wcb2e] - cp [hl] - jr z, .asm_e325d - call Functione32b0 - call Functione32fa - ret - -.asm_e325d - call Functione32b0 - call Functione328e - call Functione32fa - ret -; e3267 - -Functione3267: ; e3267 - call Functione3316 - ld a, $1 - ld [wc2cd], a - callba SaveGameData - xor a - ld [wc2cd], a - call Functione32fa - ret -; e327d - -Functione327d: ; e327d - call Functione32b0 - call Functione3346 - ret -; e3284 - -Functione3284: ; e3284 - call Functione3316 - call Functione328e - call Functione3346 - ret -; e328e - -Functione328e: ; e328e - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld e, a - ld a, [wcb30] - ld hl, wcb2f - add [hl] - cp e - ret nc - ld hl, wcb2b - ld a, [hl] - and a - jr z, .asm_e32a8 - dec [hl] - ret - -.asm_e32a8 - ld hl, wcb2a - ld a, [hl] - and a - ret z - dec [hl] - ret -; e32b0 - -Functione32b0: ; e32b0 - ld a, [wcb31] - dec a - ld e, a - callba Function14ac2 - ld a, [wcb30] - ld hl, wcb2f - add [hl] - ld [CurPartyMon], a - ld a, $1 - call GetSRAMBank - ld hl, sBoxSpecies - call Functione3357 - ld hl, sBoxMonNicknames - call Functione3363 - ld hl, sBoxMonOT - call Functione3376 - ld hl, sBoxMons - ld bc, BOXMON_STRUCT_LENGTH - call Functione3389 - call CloseSRAM - callba Function5088b - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ret -; e32fa - -Functione32fa: ; e32fa - ld a, [wcb2e] - dec a - ld e, a - callba Function14ac2 - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - callba Function51322 - ret -; e3316 - -Functione3316: ; e3316 - ld a, [wcb30] - ld hl, wcb2f - add [hl] - ld [CurPartyMon], a - ld hl, PartySpecies - call Functione3357 - ld hl, PartyMonNicknames - call Functione3363 - ld hl, PartyMonOT - call Functione3376 - ld hl, PartyMon1Species - ld bc, PARTYMON_STRUCT_LENGTH - call Functione3389 - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ret -; e3346 - -Functione3346: ; e3346 - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - callba Function5138b - ret -; e3357 - -Functione3357: ; e3357 (38:7357) - ld a, [CurPartyMon] - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [CurPartySpecies], a - ret - -Functione3363: ; e3363 (38:7363) - ld bc, $b - ld a, [CurPartyMon] - call AddNTimes - ld de, wd002 - ld bc, $b - call CopyBytes - ret - -Functione3376: ; e3376 (38:7376) - ld bc, $b - ld a, [CurPartyMon] - call AddNTimes - ld de, wd00d - ld bc, $b - call CopyBytes - ret - -Functione3389: ; e3389 (38:7389) - ld a, [CurPartyMon] - call AddNTimes - ld de, wd018 - call CopyBytes - ret - -Functione3396: ; e3396 (38:7396) - dec b - ld c, b - ld b, 0 - ld hl, Unknown_e33a6 -rept 3 - add hl, bc -endr - ld a, [hli] - ld b, a - ld a, [hli] - ld h, [hl] - ld l, a - ret -; e33a6 (38:73a6) - -Unknown_e33a6: ; e33a6 - ; bank, address - dba sBox1 - dba sBox2 - dba sBox3 - dba sBox4 - dba sBox5 - dba sBox6 - dba sBox7 - dba sBox8 - dba sBox9 - dba sBox10 - dba sBox11 - dba sBox12 - dba sBox13 - dba sBox14 -; e33d0 - -Functione33d0: ; e33d0 (38:73d0) - ld b, a - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $fc - call Functioncf8 - ret - -Functione33df: ; e33df (38:73df) - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ret - -Functione33e8: ; e33e8 (38:73e8) - call DisableLCD - ld hl, VTiles2 tile $00 - ld bc, $310 - xor a - call ByteFill - call LoadStandardFont - call LoadFontsBattleExtra - ld hl, PCMailGFX - ld de, VTiles2 tile $5c - ld bc, $40 - call CopyBytes - ld hl, PCSelectLZ - ld de, VTiles0 tile $00 - call Decompress - ld a, 6 - call SkipMusic - call EnableLCD - ret -; e3419 (38:7419) - -PCSelectLZ: INCBIN "gfx/pc.2bpp.lz" -PCMailGFX: INCBIN "gfx/pc_mail.2bpp" -; e34dd - -PCString_ChooseaPKMN: db "Choose a <PK><MN>.@" -PCString_WhatsUp: db "What's up?@" -PCString_ReleasePKMN: db "Release <PK><MN>?@" -PCString_MoveToWhere: db "Move to where?@" -PCString_ItsYourLastPKMN: db "It's your last <PK><MN>!@" -PCString_TheresNoRoom: db "There's no room!@" -PCString_NoMoreUsablePKMN: db "No more usable <PK><MN>!@" -PCString_RemoveMail: db "Remove MAIL.@" -PCString_ReleasedPKMN: db "Released <PK><MN>.@" -PCString_Bye: db "Bye,@" -PCString_Stored: db "Stored @" -PCString_Got: db "Got @" -PCString_Non: db "Non.@" -PCString_BoxFull: db "The BOX is full.@" -PCString_PartyFull: db "The party's full!@" -PCString_NoReleasingEGGS: db "No releasing EGGS!@" -; e35aa - -Functione35aa: ; e35aa (38:75aa) - call LoadStandardMenuDataHeader - call Functione35e2 -.loop - xor a - ld [hBGMapMode], a - call Functione36cf - call Functione379c - ld hl, Functione35aa_menudataheader - call CopyMenuDataHeader - xor a - ld [wd0e4], a - hlcoord 0, 4 - lb bc, 8, 9 - call TextBox - call HandleScrollingMenu - ld a, [wcf73] - cp $2 - jr z, .done - call Functione37af - call Functione36f9 - jr .loop -.done - call WriteBackup - ret - -Functione35e2: ; e35e2 (38:75e2) - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ret -; e35f1 (38:75f1) - -Functione35aa_menudataheader: ; 0xe35f1 - db $40 ; flags - db 05, 01 ; start coords - db 12, 09 ; end coords - dw .menudata2 - db 1 ; default option -; 0xe35f9 - -.menudata2: ; 0xe35f9 - db $22 ; flags - db 4, 0 - db 1 - dba .boxes - dba .boxnames - dba NULL - dba Functione3632 -; e3609 - -.boxes: ; e3609 - db NUM_BOXES -x = 1 -rept NUM_BOXES - db x -x = x + 1 -endr - db -1 -; e3619 - -.boxnames: ; e3619 - push de - ld a, [MenuSelection] - dec a - call GetBoxName - pop hl - call PlaceString - ret -; e3626 - -GetBoxName: ; e3626 (38:7626) - ld bc, BOX_NAME_LENGTH - ld hl, wBoxNames - call AddNTimes - ld d, h - ld e, l - ret -; e3632 (38:7632) - -Functione3632: ; e3632 - hlcoord 11, 7 - lb bc, 5, 7 - call TextBox - ld a, [MenuSelection] - cp -1 - ret z - hlcoord 12, 9 - ld de, String_e3663 - call PlaceString - call GetBoxCount - ld [wd265], a - hlcoord 13, 11 - ld de, wd265 - lb bc, 1, 2 - call PrintNum - ld de, String_e3668 - call PlaceString - ret -; e3663 - -String_e3663: ; e3663 - db "#MON@" -; e3668 - -String_e3668: ; e3668 - ; db "/20@" - db "/" - db "0" + MONS_PER_BOX / 10 ; "2" - db "0" + MONS_PER_BOX % 10 ; "0" - db "@" -; e366c - -GetBoxCount: ; e366c (38:766c) - ld a, [wCurBox] - ld c, a - ld a, [MenuSelection] - dec a - cp c - jr z, .activebox - ld c, a - ld b, 0 - ld hl, .boxbanks -rept 3 - add hl, bc -endr - ld a, [hli] - ld b, a - call GetSRAMBank - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - call CloseSRAM - ld c, a - ld a, [wSavedAtLeastOnce] - and a - jr z, .newfile - ld a, c - ret - -.newfile - xor a - ret - -.activebox - ld a, BANK(sBoxCount) - ld b, a - call GetSRAMBank - ld hl, sBoxCount - ld a, [hl] - call CloseSRAM - ret -; e36a5 (38:76a5) - -.boxbanks: ; e36a5 - dba sBox1 - dba sBox2 - dba sBox3 - dba sBox4 - dba sBox5 - dba sBox6 - dba sBox7 - dba sBox8 - dba sBox9 - dba sBox10 - dba sBox11 - dba sBox12 - dba sBox13 - dba sBox14 -; e36cf - -Functione36cf: ; e36cf (38:76cf) - hlcoord 0, 0 - ld b, 2 - ld c, 18 - call TextBox - hlcoord 1, 2 - ld de, String_e36f1 - call PlaceString - ld a, [wCurBox] - and $f - call GetBoxName - hlcoord 11, 2 - call PlaceString - ret -; e36f1 (38:76f1) - -String_e36f1: ; e36f1 - db "CURRENT@" -; e36f9 - -Functione36f9: ; e36f9 (38:76f9) - ld hl, MenuDataHeader_0xe377b - call LoadMenuDataHeader - call InterpretMenu2 - call ExitMenu - ret c - ld a, [MenuSelection2] - cp $1 - jr z, .asm_e3734 - cp $2 - jr z, .asm_e3745 - cp $3 - jr z, .asm_e3717 - and a - ret - -.asm_e3717 - call GetBoxCount - and a - jr z, .asm_e372f - ld e, l - ld d, h - ld a, [MenuSelection] - dec a - ld c, a - callba Function844bc - call Functione35e2 - and a - ret - -.asm_e372f - call Functione37be - and a - ret - -.asm_e3734 - ld a, [MenuSelection] - dec a - ld e, a - ld a, [wCurBox] - cp e - ret z - callba Function14a83 - ret - -.asm_e3745 - ld b, $4 - ld de, wd002 - callba NamingScreen - call ClearTileMap - call LoadStandardFont - call LoadFontsBattleExtra - ld a, [MenuSelection] - dec a - call GetBoxName - ld e, l - ld d, h - ld hl, wd002 - ld c, $8 - call InitString - ld a, [MenuSelection] - dec a - call GetBoxName - ld de, wd002 - call CopyName2 - ret -; e3778 (38:7778) - - hlcoord 11, 7 ; XXX - -MenuDataHeader_0xe377b: ; 0xe377b - db $40 ; flags - db 04, 11 ; start coords - db 13, 19 ; end coords - dw MenuData2_0xe3783 - db 1 ; default option -; 0xe3783 - -MenuData2_0xe3783: ; 0xe3783 - db $80 ; flags - db 4 ; items - db "SWITCH@" - db "NAME@" - db "PRINT@" - db "QUIT@" -; 0xe379c - -Functione379c: ; e379c (38:779c) - ld de, String_e37a1 - jr Functione37e3 -; e37a1 (38:77a1) - -String_e37a1: ; e37a1 - db "Choose a BOX.@" -; e37af - -Functione37af: ; e37af (38:77af) - ld de, String_e37b4 - jr Functione37e3 -; e37b4 (38:77b4) - -String_e37b4: ; e37b4 - db "What's up?@" -; e37be - -Functione37be: ; e37be (38:77be) - ld de, String_e37d3 - call Functione37e3 - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - ret -; e37d3 (38:77d3) - -String_e37d3: ; e37d3 - db "There's no #MON.@" -; e37e3 - -Functione37e3: ; e37e3 (38:77e3) - push de - hlcoord 0, 14 - lb bc, 2, 18 - call TextBox - pop de - hlcoord 1, 16 - call PlaceString - ld a, $1 - ld [hBGMapMode], a - ret - +INCLUDE "engine/card_flip.asm" +INCLUDE "engine/dummy_game.asm" +INCLUDE "engine/billspc.asm" SECTION "bank39", ROMX, BANK[$39] @@ -58697,7 +47606,7 @@ _OptionsMenu: ; e41d0 ld a, [hl] push af ld [hl], $1 - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $10 ld c, $12 @@ -59279,7 +48188,7 @@ Functione455c: ; e455c Functione4579: ; e4579 ld de, MUSIC_NONE call PlayMusic - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a @@ -59669,7 +48578,7 @@ CrystalIntro: ; e48ac call PlayMusic .done - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -60690,7 +49599,7 @@ IntroScene25: ; e50ad (39:50ad) IntroScene26: ; e50bb (39:50bb) ; Load the final scene. - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -60779,7 +49688,7 @@ IntroScene28: ; e5152 (39:5152) ret .clear - call WhiteBGMap + call ClearBGPalettes ret .done @@ -62369,7 +51278,7 @@ Functionfb877: ; fb877 xor a ld [hMapAnims], a call LowVolume - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call UpdateSprites call ClearSprites @@ -66036,7 +54945,7 @@ Function10510b: ; 10510b (41:510b) jp CloseSRAM Function105153: ; 105153 (41:5153) - call WhiteBGMap + call ClearBGPalettes call DisableLCD ld hl, MysteryGiftGFX ld de, VTiles2 tile $00 @@ -66335,7 +55244,7 @@ Function10578c: ; 10578c (41:578c) ret Function1057d7: ; 1057d7 (41:57d7) - call WhiteBGMap + call ClearBGPalettes call DisableLCD ld hl, MysteryGiftJP_GFX ld de, VTiles2 tile $00 @@ -67101,7 +56010,7 @@ String_1dc34c: ; 1dc381 Function1dc381: ; 1dc381 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a @@ -67201,7 +56110,7 @@ Function1dc381: ; 1dc381 ; 1dc47b Function1dc47b: ; 1dc47b - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm index 349a61e56..e22057abf 100644 --- a/maps/BattleTowerBattleRoom.asm +++ b/maps/BattleTowerBattleRoom.asm @@ -31,7 +31,7 @@ Script_BattleRoomLoop: ; 0x9f425 keeptextopen loadmovesprites special BattleTowerBattle ; calls predef startbattle - special FadeBlackBGMap + special FadeOutPalettes reloadmap if_not_equal $0, Script_FailedBattleTowerChallenge copybytetovar wNrOfBeatenBattleTowerTrainers ; wcf64 @@ -46,10 +46,10 @@ Script_BattleRoomLoop: ; 0x9f425 closetext loadmovesprites playmusic MUSIC_HEAL - special FadeBlackBGMap + special FadeOutPalettes special LoadMapPalettes pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic loadfont writetext Text_NextUpOpponentNo @@ -73,7 +73,7 @@ Script_DontBattleNextOpponent: ; 0x9f483 special BattleTowerAction playsound SFX_SAVE waitbutton - special FadeBlackBGMap + special FadeOutPalettes special Reset Script_DontSaveAndEndTheSession: ; 0x9f4a3 writetext Text_CancelYourBattleRoomChallenge @@ -84,7 +84,7 @@ Script_DontSaveAndEndTheSession: ; 0x9f4a3 writebyte BATTLE_TOWER_ACTION_06 special BattleTowerAction loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes warpfacing UP, BATTLE_TOWER_1F, $7, $7 loadfont jump UnknownScript_0x9e4b0 diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm index de5bc1ca6..1540239bc 100644 --- a/maps/BluesHouse.asm +++ b/maps/BluesHouse.asm @@ -30,10 +30,10 @@ UnknownScript_0x19b0de: writetext UnknownText_0x19b266 closetext loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes playmusic MUSIC_HEAL pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic loadfont writetext UnknownText_0x19b296 diff --git a/maps/CeruleanGym.asm b/maps/CeruleanGym.asm index a272b6472..10c00d18a 100644 --- a/maps/CeruleanGym.asm +++ b/maps/CeruleanGym.asm @@ -176,8 +176,8 @@ MovementData_0x1884eb: jump_step_up db $38 ; movement remove_fixed_facing - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 step_down step_down step_end diff --git a/maps/Colosseum.asm b/maps/Colosseum.asm index 7b9c5272a..4e9db3be0 100644 --- a/maps/Colosseum.asm +++ b/maps/Colosseum.asm @@ -49,7 +49,7 @@ ColosseumScript_Initialize: MapColosseumSignpost1Script: special Special_Colosseum - newloadmap MAPSETUP_08 + newloadmap MAPSETUP_LINKRETURN end ChrisScript_0x193499: diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm index af89cbb90..caf60826f 100644 --- a/maps/EcruteakGym.asm +++ b/maps/EcruteakGym.asm @@ -84,7 +84,7 @@ UnknownScript_0x99dc6: follow PLAYER, $8 applymovement PLAYER, MovementData_0x99e5f stopfollow - special FadeBlackBGMap + special FadeOutPalettes playsound SFX_ENTER_DOOR waitbutton warp ECRUTEAK_CITY, $6, $1b diff --git a/maps/FastShip1F.asm b/maps/FastShip1F.asm index 832ab3d1d..bf7ff442b 100644 --- a/maps/FastShip1F.asm +++ b/maps/FastShip1F.asm @@ -64,7 +64,7 @@ SailorScript_0x75160: loadmovesprites scall .LetThePlayerOut playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY domaptrigger VERMILION_PORT, $1 @@ -77,7 +77,7 @@ SailorScript_0x75160: loadmovesprites scall .LetThePlayerOut playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton setevent EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY domaptrigger OLIVINE_PORT, $1 diff --git a/maps/GoldenrodMagnetTrainStation.asm b/maps/GoldenrodMagnetTrainStation.asm index b92de272c..d95cfb934 100644 --- a/maps/GoldenrodMagnetTrainStation.asm +++ b/maps/GoldenrodMagnetTrainStation.asm @@ -35,7 +35,7 @@ OfficerScript_0x550ec: writebyte $0 special Special_MagnetTrain warpcheck - newloadmap MAPSETUP_09 + newloadmap MAPSETUP_TRAIN applymovement PLAYER, .MovementBoardTheTrain wait $14 end diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index 570500dee..e1aaa43da 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -572,8 +572,8 @@ MovementData_0x6eed2: big_step_down fix_facing jump_step_up - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 remove_fixed_facing big_step_up big_step_up @@ -664,8 +664,8 @@ MovementData_0x6ef23: big_step_left fix_facing jump_step_right - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 remove_fixed_facing big_step_left big_step_left @@ -694,8 +694,8 @@ MovementData_0x6ef3d: big_step_left fix_facing jump_step_right - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 remove_fixed_facing big_step_right big_step_right diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm index 5d1a94345..e0e56981c 100644 --- a/maps/IndigoPlateauPokeCenter1F.asm +++ b/maps/IndigoPlateauPokeCenter1F.asm @@ -154,7 +154,7 @@ TeleportGuyScript: closetext loadmovesprites playsound SFX_WARP_TO - special FadeBlackBGMap + special FadeOutPalettes waitbutton warp NEW_BARK_TOWN, $d, $6 end diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index 91bb5a8ad..3929e6f35 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -125,7 +125,7 @@ LanceScript_0x180e7b: pause 30 loadmovesprites applymovement $3, MovementData_0x180f5b - special FadeBlackBGMap + special FadeOutPalettes pause 15 warpfacing UP, HALL_OF_FAME, $4, $d end diff --git a/maps/MobileBattleRoom.asm b/maps/MobileBattleRoom.asm index ba54d2a5d..c672c3b69 100644 --- a/maps/MobileBattleRoom.asm +++ b/maps/MobileBattleRoom.asm @@ -35,11 +35,11 @@ MapMobileBattleRoomSignpost0Script: writetext MobileBattleRoom_HealText pause 20 loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes playmusic MUSIC_HEAL special LoadMapPalettes pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic refreshscreen $0 .two_: diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm index f5e2426b0..c9bb683e7 100644 --- a/maps/OlivineLighthouse6F.asm +++ b/maps/OlivineLighthouse6F.asm @@ -42,9 +42,9 @@ UnknownScript_0x60bab: loadmovesprites special RestartMapMusic cry AMPHAROS - special FadeBlackBGMap + special FadeOutPalettes pause 10 - special FadeInBGMap + special FadeInPalettes loadfont writetext UnknownText_0x60f3d closetext @@ -116,10 +116,10 @@ UnknownScript_0x60c51: cry AMPHAROS closetext loadmovesprites - special FadeBlackBGMap - special FadeInBGMap - special FadeBlackBGMap - special FadeInBGMap + special FadeOutPalettes + special FadeInPalettes + special FadeOutPalettes + special FadeInPalettes end ItemFragment_0x60c66: @@ -131,8 +131,8 @@ MovementData_0x60c68: slow_step_right slow_step_up slow_step_up - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 step_end MovementData_0x60c70: @@ -153,7 +153,7 @@ MovementData_0x60c79: slow_step_up slow_step_up slow_step_up - accelerate_last + step_sleep_8 step_end UnknownText_0x60c81: diff --git a/maps/OlivinePort.asm b/maps/OlivinePort.asm index 35343fa91..51af0670d 100644 --- a/maps/OlivinePort.asm +++ b/maps/OlivinePort.asm @@ -39,7 +39,7 @@ SailorScript_0x748c0: waitbutton applymovement PLAYER, MovementData_0x74a30 playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton checkevent EVENT_FAST_SHIP_FIRST_TIME iffalse UnknownScript_0x7490a diff --git a/maps/Route35NationalParkgate.asm b/maps/Route35NationalParkgate.asm index be2ddf686..c95707c78 100644 --- a/maps/Route35NationalParkgate.asm +++ b/maps/Route35NationalParkgate.asm @@ -75,7 +75,7 @@ Route35NationalParkgate_GoBackIn: loadmovesprites scall Route35NationalParkgate_EnterContest playsound SFX_ENTER_DOOR - special FadeBlackBGMap + special FadeOutPalettes waitbutton warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f end @@ -112,7 +112,7 @@ Route35NationalParkgate_OkayToProceed: special Special_GiveParkBalls scall Route35NationalParkgate_EnterContest playsound SFX_ENTER_DOOR - special FadeBlackBGMap + special FadeOutPalettes waitbutton special Special_SelectRandomBugContestContestants warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f diff --git a/maps/Route36NationalParkgate.asm b/maps/Route36NationalParkgate.asm index 703670d7c..4ae506977 100644 --- a/maps/Route36NationalParkgate.asm +++ b/maps/Route36NationalParkgate.asm @@ -83,7 +83,7 @@ Route36NationalParkgate_MapScriptHeader: loadmovesprites spriteface PLAYER, LEFT playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 end @@ -166,7 +166,7 @@ Route36OfficerScriptContest: special Special_GiveParkBalls spriteface PLAYER, LEFT playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton special Special_SelectRandomBugContestContestants warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 diff --git a/maps/SaffronTrainStation.asm b/maps/SaffronTrainStation.asm index 329d3d6c7..72bc19056 100644 --- a/maps/SaffronTrainStation.asm +++ b/maps/SaffronTrainStation.asm @@ -35,7 +35,7 @@ OfficerScript_0x18a81e: writebyte $1 special Special_MagnetTrain warpcheck - newloadmap MAPSETUP_09 + newloadmap MAPSETUP_TRAIN applymovement PLAYER, .MovementBoardTheTrain wait $14 end diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm index 47661ee39..95ec72694 100644 --- a/maps/SlowpokeWellB1F.asm +++ b/maps/SlowpokeWellB1F.asm @@ -56,7 +56,7 @@ GruntM1Script: clearevent EVENT_AZALEA_TOWN_SLOWPOKES clearevent EVENT_KURTS_HOUSE_SLOWPOKE clearevent EVENT_KURTS_HOUSE_KURT_1 - special FadeBlackBGMap + special FadeOutPalettes special HealParty pause 15 warp KURTS_HOUSE, $3, $3 @@ -121,15 +121,15 @@ KurtSlowpokeWellVictoryMovementData: step_left step_left step_up - accelerate_last - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 + step_sleep_8 step_left step_up step_up - accelerate_last - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 + step_sleep_8 turn_head_left step_end diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm index 3a03b67a2..29ca078b8 100644 --- a/maps/TeamRocketBaseB1F.asm +++ b/maps/TeamRocketBaseB1F.asm @@ -445,9 +445,9 @@ ExplodingTrap22: end VoltorbExplodingTrap: - special FadeBlackBGMap + special FadeOutPalettes cry VOLTORB - special FadeInBGMap + special FadeInPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata VOLTORB, 23 @@ -455,9 +455,9 @@ VoltorbExplodingTrap: end GeodudeExplodingTrap: - special FadeBlackBGMap + special FadeOutPalettes cry GEODUDE - special FadeInBGMap + special FadeInPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata GEODUDE, 21 @@ -465,9 +465,9 @@ GeodudeExplodingTrap: end KoffingExplodingTrap: - special FadeBlackBGMap + special FadeOutPalettes cry KOFFING - special FadeInBGMap + special FadeInPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata KOFFING, 21 diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm index 920db3621..7774ef97f 100644 --- a/maps/TeamRocketBaseB2F.asm +++ b/maps/TeamRocketBaseB2F.asm @@ -155,11 +155,11 @@ UnknownScript_0x6d091: writetext UnknownText_0x6da97 closetext loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes special Mobile_HealParty playsound SFX_FULL_HEAL special HealParty - special FadeInBGMap + special FadeInPalettes loadfont writetext UnknownText_0x6daf7 closetext @@ -449,17 +449,17 @@ MovementData_0x6d254: step_end MovementData_0x6d258: - accelerate_last + step_sleep_8 step_left step_left turn_head_up - accelerate_last + step_sleep_8 step_right step_right step_right step_right turn_head_up - accelerate_last + step_sleep_8 step_left step_left turn_head_down diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm index 2939c1691..2672e2410 100644 --- a/maps/TeamRocketBaseB3F.asm +++ b/maps/TeamRocketBaseB3F.asm @@ -254,8 +254,8 @@ MovementData_0x6e147: fix_facing fast_jump_step_left remove_fixed_facing - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 slow_step_right big_step_down big_step_down diff --git a/maps/TimeCapsule.asm b/maps/TimeCapsule.asm index 59f9c36b4..9795265b6 100644 --- a/maps/TimeCapsule.asm +++ b/maps/TimeCapsule.asm @@ -39,7 +39,7 @@ TimeCapsule_Initialize: MapTimeCapsuleSignpost1Script: special Special_TimeCapsule - newloadmap MAPSETUP_08 + newloadmap MAPSETUP_LINKRETURN end ChrisScript_0x19351a: diff --git a/maps/TradeCenter.asm b/maps/TradeCenter.asm index a53f6a319..982650b4e 100644 --- a/maps/TradeCenter.asm +++ b/maps/TradeCenter.asm @@ -39,7 +39,7 @@ TradeCenter_Initialize: MapTradeCenterSignpost1Script: special Special_TradeCenter - newloadmap MAPSETUP_08 + newloadmap MAPSETUP_LINKRETURN end ChrisScript_0x19340b: diff --git a/maps/VermilionPort.asm b/maps/VermilionPort.asm index de184c02a..de943b3e4 100644 --- a/maps/VermilionPort.asm +++ b/maps/VermilionPort.asm @@ -51,7 +51,7 @@ SailorScript_0x74dc4: waitbutton applymovement PLAYER, MovementData_0x74ef1 playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND clearevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm index 015692811..7199599d7 100644 --- a/maps/WarehouseEntrance.asm +++ b/maps/WarehouseEntrance.asm @@ -226,10 +226,10 @@ OlderHaircutBrotherScript: writetext UnknownText_0x7c6b8 closetext loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes playmusic MUSIC_HEAL pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic loadfont writetext UnknownText_0x7c6d8 @@ -309,10 +309,10 @@ YoungerHaircutBrotherScript: writetext UnknownText_0x7c80e closetext loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes playmusic MUSIC_HEAL pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic loadfont writetext UnknownText_0x7c82a diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index bc6eec83d..d5c9693b6 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -371,7 +371,7 @@ Function11c1ca: ; 11c1ca ld a, [MenuSelection2] dec a call Function11c254 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearScreen call Function11d323 diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index eee9223f0..d73776be6 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -1801,7 +1801,7 @@ Function89b07: ; 89b07 ; 89b14 Function89b14: ; 89b14 - call WhiteBGMap + call ClearBGPalettes call Function89b07 call Function89b00 ret @@ -1814,7 +1814,7 @@ Function89b1e: ; 89b1e (22:5b1e) Function89b28: ; 89b28 (22:5b28) call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893e2 call Call_ExitMenu call Function891ab @@ -2414,7 +2414,7 @@ Function89eb9: ; 89eb9 (22:5eb9) jp Function89e36 Function89ee1: ; 89ee1 (22:5ee1) - call WhiteBGMap + call ClearBGPalettes call Function893e2 call Function8923c callba Function4a3a7 @@ -2602,7 +2602,7 @@ Function89fed: ; 89fed (22:5fed) Function89ff6: ; 89ff6 (22:5ff6) call Function891fe - call WhiteBGMap + call ClearBGPalettes call Function893cc call Function89807 call Function89492 @@ -2937,14 +2937,14 @@ Function8a241: ; 8a241 (22:6241) ret .asm_8a254 call Function891de - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call Function891de and a ret Function8a262: ; 8a262 (22:6262) - call WhiteBGMap + call ClearBGPalettes call Function893e2 call Function8923c callba Function4a3a7 @@ -3501,7 +3501,7 @@ Jumptable_8a671: ; 8a671 (22:6671) Function8a679: ; 8a679 (22:6679) call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -3546,7 +3546,7 @@ Function8a6c5: ; 8a6c5 (22:66c5) Function8a6cd: ; 8a6cd (22:66cd) call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -3594,7 +3594,7 @@ Function8a6cd: ; 8a6cd (22:66cd) .asm_8a73f call CloseSRAM .asm_8a742 - call WhiteBGMap + call ClearBGPalettes call Function89448 call Function891d3 call Function8b677 @@ -3657,7 +3657,7 @@ Function8a78c: ; 8a78c (22:678c) call DelayFrame call JoyTextDelay call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 pop bc @@ -3687,7 +3687,7 @@ Function8a7cb: ; 8a7cb (22:67cb) pop af ld [MenuSelection], a call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -3781,7 +3781,7 @@ Function8a8a1: ; 8a8a1 (22:68a1) Function8a8c3: ; 8a8c3 (22:68c3) call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -3969,7 +3969,7 @@ Function8aa0a: ; 8aa0a (22:6a0a) call Function89381 call CloseSRAM call Function891fe - call WhiteBGMap + call ClearBGPalettes call Function893cc call Function89807 call Function89492 @@ -4027,7 +4027,7 @@ Function8aa73: ; 8aa73 (22:6a73) call Function89193 .asm_8aa9d call Function891fe - call WhiteBGMap + call ClearBGPalettes call Function893cc call Function89807 call Function89492 @@ -4101,7 +4101,7 @@ Function8ab11: ; 8ab11 (22:6b11) Function8ab3b: ; 8ab3b (22:6b3b) call Function891fe - call WhiteBGMap + call ClearBGPalettes call Function893cc call Function89807 call Function89492 @@ -4140,7 +4140,7 @@ Function8ab77: ; 8ab77 (22:6b77) ret Function8ab93: ; 8ab93 (22:6b93) - call WhiteBGMap + call ClearBGPalettes call LoadStandardMenuDataHeader callba Function105688 call ClearSprites @@ -4183,7 +4183,7 @@ Function8aba9: ; 8aba9 call PlayClickSFX .asm_8abe5 call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -4228,7 +4228,7 @@ Function8ac4e: ; 8ac4e ld [MenuSelection], a push de call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc pop bc call Function89844 @@ -4337,7 +4337,7 @@ Function8ad0b: ; 8ad0b ld a, [MenuSelection] ld [wd02f], a call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index c04f933fe..cb5fc0628 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -574,7 +574,7 @@ Function8b664: ; 8b664 (22:7664) ret Function8b677: ; 8b677 - call WhiteBGMap + call ClearBGPalettes call DisableLCD call Function8b690 call Function8b6bb diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index dab86875d..4743f2c27 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -48,7 +48,7 @@ Function100022: ; 100022 Function100057: ; 100057 call Function1000a4 - call Function222a + call ReturnToMapFromSubmenu ld hl, VramState res 1, [hl] ret @@ -74,7 +74,7 @@ Function100063: ; 100063 Function100082: ; 100082 xor a ld hl, OverworldMap - ld bc, 1300 + ld bc, OverworldMapEnd - OverworldMap call ByteFill di call DoubleSpeed @@ -312,7 +312,7 @@ Function10016f: ; 10016f Function10020b: ; 10020b xor a ld [wc303], a - callba FadeBlackBGMap + callba FadeOutPalettes callba Function106464 call HideSprites call DelayFrame @@ -412,7 +412,7 @@ Function1002c9: ; 1002c9 ; 1002dc Function1002dc: ; 1002dc - ld a, MAPSETUP_08 + ld a, MAPSETUP_LINKRETURN ld [hMapEntryMethod], a callba RunMapSetupScript xor a @@ -3048,7 +3048,7 @@ Function10138b: ; 10138b ; 1013aa Function1013aa: ; 1013aa - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call Function2bae callba Function106464 diff --git a/misc/mobile_41.asm b/misc/mobile_41.asm index 825ee9497..9b2664e6b 100755 --- a/misc/mobile_41.asm +++ b/misc/mobile_41.asm @@ -951,7 +951,7 @@ Function106442: ; 106442 call Function3e32 xor a ld [hMobile], a - ld [$ffc9], a + ld [hFFC9], a ld a, [wcd25] inc a ld [wcd25], a diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index 591a26e1f..5e48eb6c1 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -125,7 +125,7 @@ Function108089: ; 108089 Function1080b7: ; 1080b7 xor a ld [wJumptableIndex], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -188,7 +188,7 @@ Function1080b7: ; 1080b7 Function108157: ; 108157 xor a ld [wJumptableIndex], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -508,7 +508,7 @@ Function10830e: ; 10830e ; 10839b Function10839b: ; 10839b - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -643,7 +643,7 @@ Function10842c: ; 10842c ; 1084d7 Function1084d7: ; 1084d7 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -712,7 +712,7 @@ Function1084d7: ; 1084d7 ; 108589 Function108589: ; 108589 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -781,7 +781,7 @@ Function108589: ; 108589 Function108638: ; 108638 callba Function8d03d - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -817,7 +817,7 @@ Function108638: ; 108638 Function108689: ; 108689 callba Function8d03d - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -862,7 +862,7 @@ Function108689: ; 108689 ; 1086f4 Function1086f4: ; 1086f4 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -1162,7 +1162,7 @@ Function108919: ; 108919 ld c, $28 call Function1082cc callba Function8d03d - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 3055ca988..5bb2b4a0c 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -7708,7 +7708,7 @@ Function117699: ; 117699 (45:7699) ld hl, wc708 ld bc, $11 call ByteFill - call WhiteBGMap + call ClearBGPalettes call ClearSprites callba Function171c87 callba Function104061 @@ -7726,7 +7726,7 @@ Function1176ee: ; 1176ee (45:76ee) jr Function1176ee .asm_117709 callba Function8cf53 - call WhiteBGMap + call ClearBGPalettes call ClearScreen call ClearSprites ret @@ -8172,7 +8172,7 @@ Function117a94: ; 0x117a94 ld [wcf64], a ld [wcf65], a ld [wcf66], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites callba Function172e78 callba Function104000 @@ -8180,7 +8180,7 @@ Function117a94: ; 0x117a94 ; 0x117ab4 Function117ab4: ; 0x117ab4 - call WhiteBGMap + call ClearBGPalettes call ClearSprites callba Function172e78 callba Function172eb9 @@ -8197,7 +8197,7 @@ Function117acd: ; 0x117acd callba Function104000 jr Function117acd .asm_117ae2 - call WhiteBGMap + call ClearBGPalettes call ClearSprites ret diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index b869e2f8f..1bcccbfe5 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -43,7 +43,7 @@ asm_11800b pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu Function11805e: ; 11805e (46:405e) ret ; 11805f @@ -84,7 +84,7 @@ Function11805f: ; 11805f pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu ret ; 1180b8 @@ -130,7 +130,7 @@ Function1180b8: ; 1180b8 pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu ret ; 11811a @@ -180,7 +180,7 @@ Function118125: ; 118125 ld [rSVBK], a call Function118452 call Function118180 - call Function222a + call ReturnToMapFromSubmenu ret ; 118180 @@ -262,7 +262,7 @@ Function1181da: ; 1181da pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu ret ; 118233 @@ -374,7 +374,7 @@ Function1182d5: ; 1182d5 pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu ret ; 118329 @@ -482,7 +482,7 @@ Function1183cb: ; 1183cb ld a, $f ld [rIE], a ld a, $1 - ld [$ffc9], a + ld [hFFC9], a ld [hMobile], a ei callba Function106462 @@ -512,7 +512,7 @@ Function118440: ; 118440 Function118452: ; 118452 di xor a - ld [$ffc9], a + ld [hFFC9], a ld [hMobile], a ld [hVBlank], a call NormalSpeed @@ -5682,7 +5682,7 @@ Function11a9c0: ; 11a9c0 ; 11a9ce Function11a9ce: ; 11a9ce - call WhiteBGMap + call ClearBGPalettes call Function2bae call Call_ExitMenu callba Function106462 @@ -5950,7 +5950,7 @@ Function11acb7: ; 11acb7 ; 11ad1b Function11ad1b: ; 11ad1b - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap callba Function17c000 diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index 759d5f586..6fb42b16f 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -140,7 +140,7 @@ Function16c0dc: ; 16c0dc ; 16c0ec Function16c0ec: ; 16c0ec - call WhiteBGMap + call ClearBGPalettes call ClearScreen push af ld a, $ff @@ -885,7 +885,7 @@ Function16d42e: ; 16d42e Function16d43b: ; 16d43b call LoadStandardMenuDataHeader - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites callba Function16d421 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 85681221a..0b4b18b4f 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -283,7 +283,7 @@ Function1704e1: ; 1704e1 ; 1704f1 Function1704f1: ; 1704f1 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearScreen .asm_1704fa @@ -1590,7 +1590,7 @@ Function1719ed: ; 1719ed (5c:59ed) ld [wcd4a], a dec a ld [wcd4b], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites callba Function171d2b callba Function104061 @@ -1883,7 +1883,7 @@ Function171c2c: ; 171c2c (5c:5c2c) dec [hl] ret nz call ExitMenu - call WhiteBGMap + call ClearBGPalettes jr asm_171c60 Function171c39: ; 171c39 (5c:5c39) @@ -1895,7 +1895,7 @@ Function171c41: ; 171c41 (5c:5c41) ld hl, wcd4c dec [hl] ret nz - call WhiteBGMap + call ClearBGPalettes callba Function106462 callba Function106464 ld a, $2 diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 8e89a648b..ab6dd07e7 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -561,7 +561,7 @@ Function17d2ce: ; 17d2ce ld a, d ld [MusicFadeIDHi], a call PlayMusic - call Function222a + call ReturnToMapFromSubmenu call Function2b3c ret ; 17d314 @@ -626,7 +626,7 @@ Function17d370: ; 17d370 ld [wcd79], a dec a ld [wcd6c], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearScreen callba Function104061 @@ -672,7 +672,7 @@ Function17d370: ; 17d370 ; 17d3f6 Function17d3f6: ; 17d3f6 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearScreen callba Function104061 @@ -1245,7 +1245,7 @@ Function17d78d: ; 17d78d call CloseSRAM xor a ld [wcd77], a - call WhiteBGMap + call ClearBGPalettes ret ; 17d7b4 diff --git a/misc/unused_title.asm b/misc/unused_title.asm index e151deb14..7a9c2556f 100644 --- a/misc/unused_title.asm +++ b/misc/unused_title.asm @@ -3,7 +3,7 @@ SECTION "bank43", ROMX, BANK[$43] UnusedTitleScreen: ; 10c000 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call DisableLCD xor a @@ -321,10 +321,10 @@ ScriptVar:: ; c2dd wc2de:: ds 1 wc2df:: ds 3 wMovementPerson:: ds 1 -wMovementDataPointer:: ds 3 +wMovementDataPointer:: ds 3 ; dba wc2e6:: ds 4 wc2ea:: ds 1 -wMovementPointer:: ds 2 +wMovementPointer:: ds 2 ; c2eb ds 3 wc2f0:: ds 1 wc2f1:: ds 1 @@ -334,7 +334,8 @@ wc2f4:: ds 1 wc2f5:: ds 1 wc2f6:: ds 1 wc2f7:: ds 1 -wc2f8:: ds 2 +wc2f8:: ds 1 + ds 1 TileDown:: ; c2fa ds 1 @@ -1478,6 +1479,10 @@ wd014:: ds 2 wd016:: ds 1 wMartItem8BCD:: wd017:: ds 1 + +wd018_Mon:: party_struct wd018_Mon + ds wd018_Mon - @ + wd018:: ds 1 wd019:: ds 1 wMartItem9BCD:: @@ -1506,6 +1511,7 @@ CurFruitTree:: CurInput:: EngineBuffer1:: ; d03e ds 1 + wd03f:: wJumpStdScriptBuffer:: CurFruit:: ; d03f @@ -2153,7 +2159,7 @@ object_struct: MACRO \1Palette:: ds 1 \1Walking:: ds 1 \1Direction:: ds 1 - ds 1 +\1Object09:: ds 1 \1StepDuration:: ds 1 \1Action:: ds 1 \1Object12:: ds 1 |