diff options
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 31571 |
1 files changed, 2853 insertions, 28718 deletions
@@ -75,7 +75,7 @@ Function5ae8: ; 5ae8 ret ; 5b05 -Function5b05: ; 5b05 +PrintDayOfWeek: ; 5b05 push de ld hl, .Days ld a, b @@ -105,12 +105,12 @@ Function5b05: ; 5b05 db "DAY@" ; 5b44 -Function5b44: ; 5b44 +NewGame_ClearTileMapEtc: ; 5b44 xor a - ld [$ffde], a + ld [hMapAnims], a call ClearTileMap - call Functione5f - call Functione51 + call LoadFontsExtra + call LoadStandardFont call ResetTextRelatedRAM ret ; 5b54 @@ -131,17 +131,17 @@ NewGame: ; 5b6b xor a ld [wc2cc], a call ResetWRAM - call Function5b44 + call NewGame_ClearTileMapEtc call AreYouABoyOrAreYouAGirl call OakSpeech call InitializeWorld ld a, 1 - ld [wc2d8], a + ld [wPreviousLandmark], a ld a, SPAWN_HOME - ld [wd001], a + ld [DefaultSpawnpoint], a - ld a, $f1 + ld a, MAPSETUP_WARP ld [hMapEntryMethod], a jp FinishContinueFunction ; 5b8f @@ -283,11 +283,11 @@ ENDC call InitializeNPCNames - callba Function26751 + callba InitDecorations - callba Function44765 + callba DeleteScratchmons - callba Function1061c0 + callba DeleteMobileEventIndex call ResetGameTime ret @@ -415,7 +415,7 @@ Continue: ; 5d65 callba TryLoadSaveFile jr c, .FailToLoad callba Function150b9 - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader call Function5e85 ld a, $1 ld [hBGMapMode], a @@ -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 @@ -447,11 +447,11 @@ Continue: ; 5d65 call DelayFrames callba JumpRoamMons callba Function105091 - callba Function140ae + callba Function140ae ; time-related ld a, [wSpawnAfterChampion] cp SPAWN_LANCE jr z, .SpawnAfterE4 - ld a, $f2 + ld a, MAPSETUP_CONTINUE ld [hMapEntryMethod], a jp FinishContinueFunction @@ -473,7 +473,7 @@ SpawnAfterRed: ; 5de2 PostCreditsSpawn: ; 5de7 xor a ld [wSpawnAfterChampion], a - ld a, $f1 + ld a, MAPSETUP_WARP ld [hMapEntryMethod], a ret ; 5df0 @@ -524,9 +524,9 @@ ConfirmContinue: ; 5e34 Function5e48: ; 5e48 call Function6e3 - and $80 + and %10000000 ; Day count exceeded 16383 jr z, .pass - callba Function20021 + callba RestartClock ld a, c and a jr z, .pass @@ -546,7 +546,7 @@ FinishContinueFunction: ; 5e5d ld hl, GameTimerPause set 0, [hl] res 7, [hl] - ld hl, wd83e + ld hl, wEnteredMapFromContinue set 1, [hl] callba OverworldLoop ld a, [wSpawnAfterChampion] @@ -563,7 +563,7 @@ Function5e85: ; 5e85 call Function6e3 and $80 jr z, .asm_5e93 - ld de, $0408 + lb de, 4, 8 call Function5eaf ret @@ -582,7 +582,7 @@ Function5e9f: ; 5e9f call Function5ebf call Function5f1c call Function5f40 - call Functione5f + call LoadFontsExtra call UpdateSprites ret ; 5eaf @@ -591,7 +591,7 @@ Function5eaf: ; 5eaf call Function5ebf call Function5f1c call Function5f48 - call Functione5f + call LoadFontsExtra call UpdateSprites ret ; 5ebf @@ -607,7 +607,7 @@ Function5ebf: ; 5ebf .asm_5ecf call Function1e35 - call Function1cbb + call MenuBox call Function1c89 ret ; 5ed9 @@ -648,19 +648,19 @@ MenuData2_0x5f03: ; 5f03 Function5f1c: ; 5f1c - call GetMemTileCoord + call MenuBoxCoord2Tile push hl - ld de, $005d + ld de, $5d add hl, de call DisplayBadgeCount pop hl push hl - ld de, $0084 + ld de, $84 add hl, de call DisplayPokedexNumCaught pop hl push hl - ld de, $0030 + ld de, $30 add hl, de ld de, .Player call PlaceString @@ -672,14 +672,14 @@ Function5f1c: ; 5f1c ; 5f40 Function5f40: ; 5f40 - ld de, $00a9 + ld de, $a9 add hl, de call DisplayGameTime ret ; 5f48 Function5f48: ; 5f48 - ld de, $00a9 + ld de, $a9 add hl, de ld de, .text_5f53 call PlaceString @@ -740,7 +740,7 @@ OakSpeech: ; 0x5f99 ld [CurPartySpecies], a ld a, POKEMON_PROF ld [TrainerClass], a - call Function619c + call Intro_PrepTrainerPic ld b, $1c call GetSGBLayout @@ -757,7 +757,7 @@ OakSpeech: ; 0x5f99 call GetBaseData hlcoord 6, 4 - call Function3786 + call PrepMonFrontpic xor a ld [TempMonDVs], a @@ -778,7 +778,7 @@ OakSpeech: ; 0x5f99 ld [CurPartySpecies], a ld a, POKEMON_PROF ld [TrainerClass], a - call Function619c + call Intro_PrepTrainerPic ld b, $1c call GetSGBLayout @@ -811,10 +811,10 @@ OakText1: ; 0x6045 OakText2: ; 0x604a text_jump _OakText2 start_asm - ld a,WOOPER + ld a, WOOPER call PlayCry call WaitSFX - ld hl,OakText3 + ld hl, OakText3 ret OakText3: ; 0x605b @@ -840,7 +840,7 @@ OakText7: ; 0x606f NamePlayer: ; 0x6074 callba MovePlayerPicRight callba ShowPlayerNamingChoices - ld a, [wcfa9] + ld a, [MenuSelection2] dec a jr z, .NewName call StorePlayerName @@ -851,12 +851,12 @@ NamePlayer: ; 0x6074 .NewName ld b, 1 ld de, PlayerName - callba Function116c1 + callba NamingScreen call FadeToWhite call ClearTileMap - call Functione5f + call LoadFontsExtra call WaitBGMap xor a @@ -886,9 +886,9 @@ NamePlayer: ; 0x6074 Function60e9: ; Unreferenced call LoadMenuDataHeader call InterpretMenu2 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a - call Function1db8 + call CopyNameFromMenu call WriteBackup ret ; 60fa @@ -948,7 +948,7 @@ ShrinkPlayer: ; 610f call DelayFrames call Intro_PlacePlayerSprite - call Functione5f + call LoadFontsExtra ld c, 50 call DelayFrames @@ -997,11 +997,11 @@ Intro_WipeInFrontpic: ; 6182 jr .loop ; 619c -Function619c: ; 619c +Intro_PrepTrainerPic: ; 619c ld de, VTiles2 callba GetTrainerPic xor a - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 4 lb bc, 7, 7 predef FillBox @@ -1013,7 +1013,7 @@ ShrinkFrame: ; 61b4 ld c, $31 predef DecompressPredef xor a - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 4 lb bc, 7, 7 predef FillBox @@ -1077,6 +1077,7 @@ Function6219: ; 6219 push af ld a, $5 ld [rSVBK], a + call TitleScreen call DelayFrame .loop @@ -1084,9 +1085,11 @@ Function6219: ; 6219 jr nc, .loop call ClearSprites - call WhiteBGMap + call ClearBGPalettes + pop af ld [rSVBK], a + ld hl, rLCDC res 2, [hl] call ClearScreen @@ -1149,7 +1152,7 @@ Function627b: ; 627b ; 6292 Function6292: ; 6292 ; unreferenced - ld a, [$ff9b] + ld a, [hVBlankCounter] and $7 ret nz ld hl, LYOverrides + $5f @@ -1390,7 +1393,7 @@ Function639b: ; unreferenced and $3 ret nz ld bc, wc3a4 - ld hl, $000a + ld hl, $a add hl, bc ; over-the-top compicated way to load wc3ae into hl ld l, [hl] ld h, 0 @@ -1431,7 +1434,7 @@ Data63ca: ; 63ca Copyright: ; 63e2 call ClearTileMap - call Functione5f + call LoadFontsExtra ld de, CopyrightGFX ld hl, VTiles2 tile $60 lb bc, BANK(CopyrightGFX), $1d @@ -1464,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 @@ -1507,7 +1510,7 @@ Function6473: ; 6473 ld [hBGMapMode], a ld a, $90 ld [hWY], a - call Function2173 + call OverworldTextModeSwitch ld a, VBGMap1 / $100 call Function64b9 call Function2e20 @@ -1553,11 +1556,11 @@ Function64bf:: ; 64bf ; 64cd Function64cd: ; 64cd - call Functione5f + call LoadFontsExtra ld a, $90 ld [hWY], a call Function2e31 - call Functione51 + call LoadStandardFont ret ; 64db @@ -1566,9 +1569,10 @@ Function64db: ; 64db push af ld a, $6 ld [rSVBK], a + ld a, $60 ld hl, w6_d000 - ld bc, $400 + lb bc, 4, 0 call ByteFill ld a, w6_d000 / $100 ld [rHDMA1], a @@ -1581,6 +1585,7 @@ Function64db: ; 64db ld a, $3f ld [hDMATransfer], a call DelayFrame + pop af ld [rSVBK], a ret @@ -1598,7 +1603,7 @@ LearnMove: ; 6508 .loop ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes ld d, h @@ -1642,7 +1647,7 @@ LearnMove: ; 6508 .learn ld a, [wd262] ld [hl], a - ld bc, PartyMon1PP - PartyMon1Moves + ld bc, MON_PP - MON_MOVES add hl, bc push hl @@ -1737,7 +1742,7 @@ ForgetMove: ; 65d3 ld [wcfa3], a ld a, $1 ld [wcfa4], a - ld [wcfa9], a + ld [MenuSelection2], a ld [wcfaa], a ld a, $3 ld [wcfa8], a @@ -1755,7 +1760,7 @@ ForgetMove: ; 65d3 bit 1, a jr nz, .cancel push hl - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, 0 @@ -2603,7 +2608,7 @@ Function7113: ; unreferenced ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld a, [hl] - cp SPRITEMOVEDATA_15 + cp SPRITEMOVEDATA_SNORLAX jr nz, .asm_7136 call Function7171 jr c, .asm_716f @@ -2681,7 +2686,7 @@ Function7171: ; 7171 GetFirstPokemonHappiness: ; 718d ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld de, PartySpecies .loop ld a, [de] @@ -2729,7 +2734,7 @@ ChangeHappiness: ; 71c2 push bc ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes pop bc @@ -2838,7 +2843,7 @@ StepHappiness:: ; 725a .next push de - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH add hl, de pop de dec c @@ -2945,10 +2950,10 @@ SpecialGiveShuckle: ; 7305 ; Caught data. ld b, 0 - callba SetPkmnCaughtData + callba SetPartymonCaughtData ; Holding a Berry. - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [PartyCount] dec a push af @@ -3012,7 +3017,7 @@ SpecialReturnShuckle: ; 737e ld a, [CurPartyMon] ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ; OT ID @@ -3044,14 +3049,14 @@ SpecialReturnShuckle: ; 737e jr c, .fainted ld a, [CurPartyMon] ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [hl] cp 150 ld a, $3 jr nc, .HappyToStayWithYou - xor a - ld [wd10b], a + xor a ; take from pc + ld [wPokemonWithdrawDepositParameter], a callab Functione039 ld a, $2 @@ -3181,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 @@ -3236,7 +3241,7 @@ PlayerObjectTemplate: ; 8071 ; A dummy map object used to initialize the player object. ; Shorter than the actual amount copied by two bytes. ; Said bytes seem to be unused. - person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_0B, 15, 15, -1, -1, 0, 0, 0, 0, -1 + person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, 0, 0, 0, -1 ; 807e CopyDECoordsToMapObject:: ; 807e @@ -3267,10 +3272,11 @@ PlayerSpawn_ConvertCoords: ; 808f ; 80a1 -Function80a1:: ; 80a1 +WritePersonXY:: ; 80a1 ld a, b call CheckObjectVisibility ret c + ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] @@ -3597,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] @@ -3604,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 @@ -3685,30 +3701,31 @@ Function830d: ; 830d ret ; 831e -Function831e: ; 831e +TrainerWalkToPlayer: ; 831e ld a, [hLastTalked] - call Function1b1e - ld a, $3e - call Function1b3f + call InitMovementBuffer + ld a, movement_step_sleep_1 + call AppendToMovementBuffer ld a, [wd03f] dec a - jr z, Function833b + jr z, .TerminateStep ld a, [hLastTalked] ld b, a - ld c, 0 + ld c, PLAYER ld d, 1 - call Function8341 - call Function1b35 + call .GetPathToPlayer + call DecrementMovementBufferCount -Function833b - ld a, $47 - call Function1b3f +.TerminateStep + ld a, movement_step_end + call AppendToMovementBuffer ret ; 8341 -Function8341: ; 8341 +.GetPathToPlayer: ; 8341 push de push bc +; get player object struct, load to de ld a, c call GetMapObject ld hl, MAPOBJECT_OBJECT_STRUCT_ID @@ -3717,6 +3734,8 @@ Function8341: ; 8341 call GetObjectStruct ld d, b ld e, c + +; get last talked object struct, load to bc pop bc ld a, b call GetMapObject @@ -3724,6 +3743,8 @@ Function8341: ; 8341 add hl, bc ld a, [hl] call GetObjectStruct + +; get last talked coords, load to bc ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] @@ -3731,6 +3752,8 @@ Function8341: ; 8341 add hl, bc ld c, [hl] ld b, a + +; get player coords, load to de ld hl, OBJECT_MAP_X add hl, de ld a, [hl] @@ -3738,39 +3761,43 @@ Function8341: ; 8341 add hl, de ld e, [hl] ld d, a + pop af - call Function1b5f + call ComputePathToWalkToPlayer ret ; 8379 Special_SurfStartStep: ; 8379 - call Function1b1e - call Function8388 - call Function1b3f - ld a, $47 - call Function1b3f + call InitMovementBuffer + call .GetMovementData + call AppendToMovementBuffer + ld a, movement_step_end + call AppendToMovementBuffer ret ; 8388 -Function8388: ; 8388 +.GetMovementData: ; 8388 ld a, [PlayerDirection] srl a srl a and 3 ld e, a ld d, 0 - ld hl, .data_839a + ld hl, .movement_data add hl, de ld a, [hl] ret ; 839a -.data_839a - db 8 + DOWN, 8 + UP, 8 + LEFT, 8 + RIGHT +.movement_data + slow_step_down + slow_step_up + slow_step_left + slow_step_right ; 839e -Function839e:: ; 839e +FollowNotExact:: ; 839e push bc ld a, c call CheckObjectVisibility @@ -3778,9 +3805,12 @@ Function839e:: ; 839e ld e, c pop bc ret c + ld a, b call CheckObjectVisibility ret c + +; Person 2 is now in bc, person 1 is now in de ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] @@ -3788,33 +3818,34 @@ Function839e:: ; 839e add hl, bc ld c, [hl] ld b, a + ld hl, OBJECT_MAP_X add hl, de ld a, [hl] cp b - jr z, .asm_83c7 - jr c, .asm_83c4 + jr z, .same_x + jr c, .to_the_left inc b - jr .asm_83d5 + jr .continue -.asm_83c4 +.to_the_left dec b - jr .asm_83d5 + jr .continue -.asm_83c7 +.same_x ld hl, OBJECT_MAP_Y add hl, de ld a, [hl] cp c - jr z, .asm_83d5 - jr c, .asm_83d4 + jr z, .continue + jr c, .below inc c - jr .asm_83d5 + jr .continue -.asm_83d4 +.below dec c -.asm_83d5 +.continue ld hl, OBJECT_MAP_X add hl, de ld [hl], b @@ -3847,7 +3878,7 @@ Function839e:: ; 839e ld [hl], a ld hl, OBJECT_MOVEMENTTYPE add hl, de - ld [hl], SPRITEMOVEDATA_1A + ld [hl], SPRITEMOVEDATA_FOLLOWNOTEXACT ld hl, OBJECT_09 add hl, de ld [hl], $0 @@ -4329,7 +4360,7 @@ _PrintNum:: ; c4c7 ld a, [hPrintNum6] ld b, a ld a, [hPrintNum3] - ld [$ffbb], a + ld [hPrintNum9], a cp b jr nc, .skip2 ld a, [hPrintNum2] @@ -4344,7 +4375,7 @@ _PrintNum:: ; c4c7 ld a, [hPrintNum7] ld b, a ld a, [hPrintNum4] - ld [$ffbc], a + ld [hPrintNum10], a cp b jr nc, .skip4 ld a, [hPrintNum3] @@ -4366,7 +4397,7 @@ _PrintNum:: ; c4c7 inc c jr .loop .skip6 - ld a, [$ffbb] + ld a, [hPrintNum9] ld [hPrintNum3], a .skip3 ld a, [$ffba] @@ -4444,21 +4475,21 @@ HealParty: ; c658 ; c677 HealPartyMon: ; c677 - ld a, PartyMon1Species - PartyMon1 + ld a, MON_SPECIES call GetPartyParamLocation ld d, h ld e, l - ld hl, PartyMon1Status - PartyMon1Species + ld hl, MON_STATUS add hl, de xor a ld [hli], a ld [hl], a - ld hl, PartyMon1MaxHP - PartyMon1Species + ld hl, MON_MAXHP add hl, de - ; bc = PartyMon1HP - PartyMon1Species + ; bc = MON_HP ld b, h ld c, l rept 2 @@ -4475,7 +4506,7 @@ endr ret ; c699 -Functionc699: ; c699 +DrawPartyMenuHPBar: ; c699 ld a, b or c jr z, .zero @@ -4525,9 +4556,9 @@ Functionc699: ; c699 ret ; c6e0 -Functionc6e0: ; c6e0 +AnimateHPBar: ; c6e0 call WaitBGMap - call Functiond627 + call _AnimateHPBar call WaitBGMap ret ; c6ea @@ -4626,7 +4657,7 @@ CheckPartyMove: ; c742 cp a, EGG jr z, .next - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Moves ld a, e call AddNTimes @@ -4773,23 +4804,23 @@ CutDownTreeOrGrass: ; c810 ld [hl], a xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch call UpdateSprites call DelayFrame ld a, [wd1ef] ld e, a - callba Function8c940 + callba OWCutAnimation call BufferScreen call Function2914 call UpdateSprites call DelayFrame - call Functione51 + call LoadStandardFont ret ; c840 CheckOverworldTileArrays: ; c840 push bc - ld a, [wd199] + ld a, [wTileset] ld de, 3 call IsInArray pop bc @@ -5020,7 +5051,7 @@ UsedSurfScript: ; c986 copybytetovar Buffer2 writevarcode VAR_MOVEMENT - special Special_ReplaceKrisSprite + special ReplaceKrisSprite special PlayMapMusic ; step into the water special Special_SurfStartStep ; (slow_step_x, step_end) @@ -5196,8 +5227,8 @@ FlyFunction: ; ca3b .outdoors xor a - ld [$ffde], a - call LoadMenuDataHeader_0x1d75 + ld [hMapAnims], a + call LoadStandardMenuDataHeader call ClearSprites callba _FlyMap ld a, e @@ -5244,11 +5275,11 @@ FlyFunction: ; ca3b callasm HideSprites special UpdateTimePals callasm Function8caed - farscall UnknownScript_0x122c1 + farscall Script_AbortBugContest special WarpToSpawnPoint callasm DelayLoadingNewSprites writecode VAR_MOVEMENT, $0 - newloadmap -4 + newloadmap MAPSETUP_FLY callasm Function8cb33 special WaitSFX callasm Functioncacb @@ -5258,7 +5289,7 @@ FlyFunction: ; ca3b Functioncacb: ; cacb callba Function561d call DelayFrame - call Special_ReplaceKrisSprite + call ReplaceKrisSprite callba Function106594 ret ; cade @@ -5470,7 +5501,7 @@ dig_incave jr nz, .failescaperope ld hl, UnknownText_0xcc26 call MenuTextBox - call Functiona80 + call WaitPressAorB_BlinkCursor call WriteBackup .failescaperope @@ -5513,10 +5544,10 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c loadmovesprites playsound SFX_WARP_TO applymovement PLAYER, MovementData_0xcc59 - farscall UnknownScript_0x122c1 + farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap -11 + newloadmap MAPSETUP_DOOR playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcc5d end @@ -5611,10 +5642,10 @@ Script_UsedTeleport: ; 0xccbb loadmovesprites playsound SFX_WARP_TO applymovement PLAYER, MovementData_0xcce1 - farscall UnknownScript_0x122c1 + farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap -12 + newloadmap MAPSETUP_TELEPORT playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcce3 end @@ -5889,10 +5920,10 @@ DisappearWhirlpool: ; ce1d ld [hl], a xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch ld a, [wd1ef] ld e, a - callba Function8c7d4 + callba PlayWhirlpoolSound call BufferScreen call Function2914 ret @@ -6199,7 +6230,7 @@ FishFunction: ; cf8e ret .facingwater - call Function2d19 + call GetFishingGroup and a jr nz, .goodtofish ld a, $4 @@ -6269,7 +6300,7 @@ Script_NotEvenANibble2: ; 0xd027 writetext UnknownText_0xd0a9 Script_NotEvenANibble_FallThrough: ; 0xd02d - loademote EMOTE_ROD + DOWN + loademote EMOTE_08 callasm PutTheRodAway loadmovesprites end @@ -6312,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 @@ -6340,8 +6371,8 @@ Script_FishCastRod: ; 0xd07c reloadmappart loadvar hBGMapMode, $0 special UpdateTimePals - loademote EMOTE_ROD + UP - callasm Functionb84b3 + loademote EMOTE_09 + callasm LoadFishingGFX loademote EMOTE_SHOCK applymovement PLAYER, MovementData_0xd093 pause 40 @@ -6349,7 +6380,7 @@ Script_FishCastRod: ; 0xd07c ; 0xd093 MovementData_0xd093: ; d093 - fish_got_bite_2 + fish_cast_rod step_end ; d095 @@ -6359,7 +6390,7 @@ PutTheRodAway: ; d095 ld a, $1 ld [PlayerAction], a call UpdateSprites - call Special_ReplaceKrisSprite + call ReplaceKrisSprite ret ; d0a4 @@ -6478,14 +6509,14 @@ Script_GetOnBike: ; 0xd13e writetext UnknownText_0xd17c closetext loadmovesprites - special Special_ReplaceKrisSprite + special ReplaceKrisSprite end ; 0xd14e Script_GetOnBike_Register: ; 0xd14e writecode VAR_MOVEMENT, $1 loadmovesprites - special Special_ReplaceKrisSprite + special ReplaceKrisSprite end ; 0xd156 @@ -6502,7 +6533,7 @@ Script_GetOffBike: ; 0xd158 UnknownScript_0xd163: loadmovesprites - special Special_ReplaceKrisSprite + special ReplaceKrisSprite special PlayMapMusic end ; 0xd16b @@ -7272,12 +7303,12 @@ Functiond4d2:: ; d4d2 (3:54d2) ld d, a ld a, [wd14f] ld e, a - ld a, [hSCX] ; $ff00+$cf + ld a, [hSCX] add d - ld [hSCX], a ; $ff00+$cf - ld a, [hSCY] ; $ff00+$d0 + ld [hSCX], a + ld a, [hSCY] add e - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ret Functiond4e5: ; d4e5 (3:54e5) @@ -7354,22 +7385,22 @@ Functiond536: ; d536 (3:5536) ret .asm_d549 call Functiond571 - call Function217a + call LoadMapPart call Function2748 ret .asm_d553 call Functiond5a2 - call Function217a + call LoadMapPart call Function272a ret .asm_d55d call Functiond5d5 - call Function217a + call LoadMapPart call Function2771 ret .asm_d567 call Functiond5fe - call Function217a + call LoadMapPart call Function278f ret @@ -7482,11 +7513,11 @@ Functiond5fe: ; d5fe (3:55fe) cp $2 jr nz, .asm_d61c ld [hl], $0 - call Functiond61d + call .Incrementwd194 .asm_d61c ret -Functiond61d: ; d61d (3:561d) +.Incrementwd194: ; d61d (3:561d) ld hl, wd194 ld a, [hl] add $1 @@ -7495,11 +7526,11 @@ Functiond61d: ; d61d (3:561d) inc [hl] ret -Functiond627: ; d627 +_AnimateHPBar: ; d627 call Functiond65f - jr c, .asm_d645 + jr c, .do_player call Functiond670 -.asm_d62f +.enemy_loop push bc push hl call Functiond6e2 @@ -7513,12 +7544,12 @@ Functiond627: ; d627 pop hl pop bc pop af - jr nc, .asm_d62f + jr nc, .enemy_loop ret -.asm_d645 +.do_player call Functiond670 -.asm_d648 +.player_loop push bc push hl call Functiond6f5 @@ -7533,21 +7564,21 @@ Functiond627: ; d627 pop hl pop bc pop af - jr nc, .asm_d648 + jr nc, .player_loop ret ; d65f Functiond65f: ; d65f ld a, [Buffer2] and a - jr nz, .asm_d66e + jr nz, .player ld a, [Buffer1] cp $30 - jr nc, .asm_d66e + jr nc, .player and a ret -.asm_d66e +.player scf ret ; d670 @@ -7564,7 +7595,7 @@ Functiond670: ; d670 ld a, [hli] ld b, a pop hl - call Functionc699 + call DrawPartyMenuHPBar ld a, e ld [wd1f1], a ld a, [wd1ee] @@ -7575,7 +7606,7 @@ Functiond670: ; d670 ld e, a ld a, [Buffer2] ld d, a - call Functionc699 + call DrawPartyMenuHPBar ld a, e ld [wd1f2], a push hl @@ -7600,7 +7631,7 @@ Functiond670: ; d670 ld [wd1f5], a ld a, [wd1ee] ld [wd1f6], a - ld bc, $0001 + ld bc, 1 jr .asm_d6d9 .asm_d6c1 @@ -7679,7 +7710,7 @@ Functiond6f5: ; d6f5 ld c, a ld a, [hli] ld b, a - call Functionc699 + call DrawPartyMenuHPBar pop bc pop de pop hl @@ -7718,7 +7749,7 @@ Functiond749: ; d749 ld e, a ld a, [Buffer2] ld d, a - call Functionc699 + call DrawPartyMenuHPBar ld c, e ld d, $6 ld a, [wd10a] @@ -7743,7 +7774,7 @@ Functiond771: ; d771 ld h, a .asm_d780 - call DrawHPBar + call DrawBattleHPBar ret ; d784 @@ -7752,14 +7783,14 @@ Functiond784: ; d784 and a ret z cp $1 - jr z, .asm_d792 - ld de, $0016 - jr .asm_d795 + jr z, .load_15 + ld de, $16 + jr .loaded_de -.asm_d792 - ld de, $0015 +.load_15 + ld de, $15 -.asm_d795 +.loaded_de push hl add hl, de ld a, " " @@ -7794,39 +7825,39 @@ Functiond7b4: ; d7b4 Functiond7c9: ; d7c9 ld a, [hCGB] and a - jr nz, .asm_d7d5 + jr nz, .cgb call DelayFrame call DelayFrame ret -.asm_d7d5 +.cgb ld a, [wd10a] and a - jr z, .asm_d829 + jr z, .load_0 cp $1 - jr z, .asm_d82d + jr z, .load_1 ld a, [CurPartyMon] cp $3 - jr nc, .asm_d7ea + jr nc, .c_is_1 ld c, $0 - jr .asm_d7ec + jr .c_is_0 -.asm_d7ea +.c_is_1 ld c, $1 -.asm_d7ec +.c_is_0 push af cp $2 - jr z, .asm_d7ff + jr z, .skip_delay cp $5 - jr z, .asm_d7ff + jr z, .skip_delay ld a, $2 ld [hBGMapMode], a ld a, c ld [hBGMapThird], a call DelayFrame -.asm_d7ff +.skip_delay ld a, $1 ld [hBGMapMode], a ld a, c @@ -7834,12 +7865,12 @@ Functiond7c9: ; d7c9 call DelayFrame pop af cp $2 - jr z, .asm_d813 + jr z, .two_frames cp $5 - jr z, .asm_d813 + jr z, .two_frames ret -.asm_d813 +.two_frames inc c ld a, $2 ld [hBGMapMode], a @@ -7853,14 +7884,14 @@ Functiond7c9: ; d7c9 call DelayFrame ret -.asm_d829 +.load_0 ld c, $0 - jr .asm_d82f + jr .finish -.asm_d82d +.load_1 ld c, $1 -.asm_d82f +.finish call DelayFrame ld a, c ld [hBGMapThird], a @@ -7875,25 +7906,25 @@ Functiond839: ; d839 ld hl, 0 ld a, [wd1f1] cp $30 - jr nc, .asm_d885 + jr nc, .coppy_buffer and a - jr z, .asm_d880 + jr z, .return_zero call AddNTimes ld b, $0 -.asm_d851 +.loop ld a, l sub $30 ld l, a ld a, h sbc $0 ld h, a - jr c, .asm_d85e + jr c, .done inc b - jr .asm_d851 + jr .loop -.asm_d85e +.done push bc - ld bc, $0080 + ld bc, $80 add hl, bc pop bc ld a, l @@ -7902,28 +7933,28 @@ Functiond839: ; d839 ld a, h sbc $0 ld h, a - jr c, .asm_d86f + jr c, .no_carry inc b -.asm_d86f +.no_carry ld a, [wd1f5] cp b - jr nc, .asm_d87c + jr nc, .finish ld a, [wd1f6] cp b - jr c, .asm_d87c + jr c, .finish ld a, b -.asm_d87c +.finish ld [wd1ec], a ret -.asm_d880 +.return_zero xor a ld [wd1ec], a ret -.asm_d885 +.coppy_buffer ld a, [Buffer1] ld [wd1ec], a ret @@ -8005,7 +8036,7 @@ TryAddMonToParty: ; d88c .initializeStats ld a, [$ffae] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes GeneratePartyMonStats: ; d906 ld e, l @@ -8068,7 +8099,7 @@ endr push de ld a, [CurPartyLevel] ld d, a - callab Function50e47 + callab CalcExpAtLevel pop de ld a, [hMultiplicand] ld [de], a @@ -8157,7 +8188,7 @@ endr ld a, $1 ld c, a ld b, $0 - call Functione17b + call CalcPkmnStatC ld a, [$ffb5] ld [de], a inc de @@ -8243,7 +8274,7 @@ endr ld hl, PartyMon1DVs ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes predef GetUnownLetter callab Functionfba18 @@ -8257,10 +8288,10 @@ endr FillPP: ; da6d push bc ld b, NUM_MOVES -.asm_da70 +.loop ld a, [hli] and a - jr z, .asm_da8f + jr z, .next dec a push hl push de @@ -8276,11 +8307,11 @@ FillPP: ; da6d pop hl ld a, [StringBuffer1 + MOVE_PP] -.asm_da8f +.next ld [de], a inc de dec b - jr nz, .asm_da70 + jr nz, .loop pop bc ret ; da96 @@ -8303,7 +8334,7 @@ Functionda96: ; da96 ld hl, PartyMon1Species ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld e, l ld d, h @@ -8333,7 +8364,7 @@ Functionda96: ; da96 call CopyBytes ld a, [CurPartySpecies] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a cp EGG jr z, .owned dec a @@ -8341,7 +8372,7 @@ Functionda96: ; da96 ld hl, PartyMon1Happiness ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld [hl], BASE_HAPPINESS .owned @@ -8352,7 +8383,7 @@ Functionda96: ; da96 ld hl, PartyMon1DVs ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes predef GetUnownLetter callab Functionfba18 @@ -8369,197 +8400,204 @@ Functionda96: ; da96 SentGetPkmnIntoFromBox: ; db3f ; Sents/Gets Pkmn into/from Box depending on Parameter -; wd10b == 0: get Pkmn into Party -; wd10b == 1: sent Pkmn into Box +; wPokemonWithdrawDepositParameter == 0: get Pkmn into Party +; wPokemonWithdrawDepositParameter == 1: sent Pkmn into Box +; wPokemonWithdrawDepositParameter == 2: get Pkmn from DayCare +; wPokemonWithdrawDepositParameter == 3: put Pkmn into DayCare ld a, BANK(sBoxCount) call GetSRAMBank - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .check_IfPartyIsFull - cp $2 + cp DAYCARE_WITHDRAW jr z, .check_IfPartyIsFull - cp $3 + cp DAYCARE_DEPOSIT ld hl, wBreedMon1Species - jr z, .asm_db9b + jr z, .breedmon ; we want to sent a Pkmn into the Box ; so check if there's enough space ld hl, sBoxCount ld a, [hl] cp MONS_PER_BOX - jr nz, .asm_db69 - jp CloseSRAM_And_SetCFlag + jr nz, .there_is_room + jp CloseSRAM_And_SetCarryFlag .check_IfPartyIsFull ld hl, PartyCount ld a, [hl] cp PARTY_LENGTH - jp z, CloseSRAM_And_SetCFlag + jp z, CloseSRAM_And_SetCarryFlag -.asm_db69 +.there_is_room inc a ld [hl], a ld c, a ld b, 0 add hl, bc - ld a, [wd10b] - cp $2 + ld a, [wPokemonWithdrawDepositParameter] + cp DAYCARE_WITHDRAW ld a, [wBreedMon1Species] - jr z, .asm_db7c + jr z, .okay1 ld a, [CurPartySpecies] -.asm_db7c +.okay1 ld [hli], a ld [hl], $ff - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] dec a ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [PartyCount] - jr nz, .asm_db97 + jr nz, .okay2 ld hl, sBoxMon1Species - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH ld a, [sBoxCount] -.asm_db97 +.okay2 dec a ; PartyCount - 1 call AddNTimes -.asm_db9b +.breedmon push hl ld e, l ld d, h - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a ld hl, sBoxMon1Species - ld bc, sBoxMon1End - sBoxMon1 - jr z, .asm_dbb7 - cp $2 + ld bc, BOXMON_STRUCT_LENGTH + jr z, .okay3 + cp DAYCARE_WITHDRAW ld hl, wBreedMon1Species - jr z, .asm_dbbd + jr z, .okay4 ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH -.asm_dbb7 +.okay3 ld a, [CurPartyMon] call AddNTimes -.asm_dbbd - ld bc, sBoxMon1End - sBoxMon1 +.okay4 + ld bc, BOXMON_STRUCT_LENGTH call CopyBytes - ld a, [wd10b] - cp $3 + ld a, [wPokemonWithdrawDepositParameter] + cp DAYCARE_DEPOSIT ld de, wBreedMon1OT - jr z, .asm_dbe2 + jr z, .okay5 dec a ld hl, PartyMonOT ld a, [PartyCount] - jr nz, .asm_dbdc + jr nz, .okay6 ld hl, sBoxMonOT ld a, [sBoxCount] -.asm_dbdc +.okay6 dec a call SkipNames ld d, h ld e, l -.asm_dbe2 +.okay5 ld hl, sBoxMonOT - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a - jr z, .asm_dbf5 + jr z, .okay7 ld hl, wBreedMon1OT - cp $2 - jr z, .asm_dbfb + cp DAYCARE_WITHDRAW + jr z, .okay8 ld hl, PartyMonOT -.asm_dbf5 +.okay7 ld a, [CurPartyMon] call SkipNames -.asm_dbfb +.okay8 ld bc, NAME_LENGTH call CopyBytes - ld a, [wd10b] - cp $3 + ld a, [wPokemonWithdrawDepositParameter] + cp DAYCARE_DEPOSIT ld de, wBreedMon1Nick - jr z, .asm_dc20 + jr z, .okay9 dec a ld hl, PartyMonNicknames ld a, [PartyCount] - jr nz, .asm_dc1a + jr nz, .okay10 ld hl, sBoxMonNicknames ld a, [sBoxCount] -.asm_dc1a +.okay10 dec a call SkipNames ld d, h ld e, l -.asm_dc20 +.okay9 ld hl, sBoxMonNicknames - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a - jr z, .asm_dc33 + jr z, .okay11 ld hl, wBreedMon1Nick - cp $2 - jr z, .asm_dc39 + cp DAYCARE_WITHDRAW + jr z, .okay12 ld hl, PartyMonNicknames -.asm_dc33 +.okay11 ld a, [CurPartyMon] call SkipNames -.asm_dc39 +.okay12 ld bc, PKMN_NAME_LENGTH call CopyBytes pop hl - ld a, [wd10b] - cp $1 - jr z, .asm_dca4 - cp $3 - jp z, .asm_dcac + + ld a, [wPokemonWithdrawDepositParameter] + cp PC_DEPOSIT + jr z, .took_out_of_box + cp DAYCARE_DEPOSIT + jp z, .CloseSRAM_And_ClearCarryFlag + push hl srl a add $2 ld [MonType], a predef CopyPkmnToTempMon - callab Function50e1b + callab CalcLevel ld a, d ld [CurPartyLevel], a pop hl + ld b, h ld c, l - ld hl, $001f + ld hl, MON_LEVEL add hl, bc ld [hl], a - ld hl, $0024 + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l - ld hl, $000a + ld hl, MON_EXP + 2 add hl, bc + push bc ld b, $1 call CalcPkmnStats pop bc - ld a, [wd10b] + + ld a, [wPokemonWithdrawDepositParameter] and a - jr nz, .asm_dcac - ld hl, $0020 + jr nz, .CloseSRAM_And_ClearCarryFlag + ld hl, MON_STATUS add hl, bc xor a ld [hl], a - ld hl, $0022 + ld hl, MON_HP add hl, bc ld d, h ld e, l ld a, [CurPartySpecies] cp EGG - jr z, .asm_dc9e + jr z, .egg rept 2 inc hl endr @@ -8568,28 +8606,28 @@ endr ld a, [hl] inc de ld [de], a - jr .asm_dcac + jr .CloseSRAM_And_ClearCarryFlag -.asm_dc9e +.egg xor a ld [de], a inc de ld [de], a - jr .asm_dcac + jr .CloseSRAM_And_ClearCarryFlag -.asm_dca4 +.took_out_of_box ld a, [sBoxCount] dec a ld b, a call Functiondcb6 -.asm_dcac +.CloseSRAM_And_ClearCarryFlag call CloseSRAM and a ret ; dcb1 -CloseSRAM_And_SetCFlag: ; dcb1 +CloseSRAM_And_SetCarryFlag: ; dcb1 call CloseSRAM scf ret @@ -8599,11 +8637,11 @@ CloseSRAM_And_SetCFlag: ; dcb1 Functiondcb6: ; dcb6 ld a, b ld hl, sBoxMons - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH call AddNTimes ld b, h ld c, l - ld hl, sBoxMon1PP - sBoxMon1 + ld hl, MON_PP add hl, bc push hl push bc @@ -8611,7 +8649,7 @@ Functiondcb6: ; dcb6 ld bc, NUM_MOVES call CopyBytes pop bc - ld hl, sBoxMon1Moves - sBoxMon1 + ld hl, MON_MOVES add hl, bc push hl ld de, TempMonMoves @@ -8620,7 +8658,7 @@ Functiondcb6: ; dcb6 pop hl pop de - ld a, [wcfa9] + ld a, [MenuSelection2] push af ld a, [MonType] push af @@ -8633,17 +8671,17 @@ Functiondcb6: ; dcb6 ld a, BOXMON ld [MonType], a ld a, b - ld [wcfa9], a + ld [MenuSelection2], a push bc push hl push de - callba Functionf8ec + callba GetMaxPPOfMove pop de pop hl ld a, [wd265] ld b, a ld a, [de] - and $c0 + and %11000000 add b ld [de], a pop bc @@ -8657,7 +8695,7 @@ Functiondcb6: ; dcb6 pop af ld [MonType], a pop af - ld [wcfa9], a + ld [MenuSelection2], a ret ; dd21 @@ -8670,11 +8708,11 @@ Functiondd21: ; dd21 call WaitSFX call Functione698 ld a, b - ld [DefaultFlypoint], a + ld [wd002], a ld a, e ld [CurPartyLevel], a xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a jp Functiondd64 ; dd42 @@ -8686,11 +8724,11 @@ Functiondd42: ; dd42 call WaitSFX call Functione6b3 ld a, b - ld [DefaultFlypoint], a + ld [wd002], a ld a, e ld [CurPartyLevel], a - ld a, $1 - ld [wd10b], a + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a jp Functiondd64 ; dd64 @@ -8698,25 +8736,25 @@ Functiondd64: ; dd64 ld hl, PartyCount ld a, [hl] cp PARTY_LENGTH - jr nz, .asm_dd6e + jr nz, .room_in_party scf ret -.asm_dd6e +.room_in_party inc a ld [hl], a ld c, a ld b, 0 add hl, bc - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a ld a, [wBreedMon1Species] ld de, wBreedMon1Nick - jr z, .asm_dd86 + jr z, .okay ld a, [wBreedMon2Species] ld de, wBreedMon2Nick -.asm_dd86 +.okay ld [hli], a ld [CurSpecies], a ld a, $ff @@ -8742,21 +8780,21 @@ Functiondd64: ; dd64 push hl call Functionde1a pop hl - ld bc, $0020 + ld bc, BOXMON_STRUCT_LENGTH call CopyBytes call GetBaseData call Functionde1a ld b, d ld c, e - ld hl, $001f + ld hl, MON_LEVEL add hl, bc ld a, [CurPartyLevel] ld [hl], a - ld hl, $0024 + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l - ld hl, $000a + ld hl, $a add hl, bc push bc ld b, $1 @@ -8764,7 +8802,7 @@ Functiondd64: ; dd64 ld hl, PartyMon1Moves ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -8777,15 +8815,15 @@ Functiondd64: ; dd64 callba HealPartyMon ld a, [CurPartyLevel] ld d, a - callab Function50e47 + callab CalcExpAtLevel pop bc - ld hl, $0008 + ld hl, $8 add hl, bc ld a, [hMultiplicand] ld [hli], a - ld a, [$ffb5] + ld a, [hMultiplicand + 1] ld [hli], a - ld a, [$ffb6] + ld a, [hMultiplicand + 2] ld [hl], a and a ret @@ -8795,7 +8833,7 @@ Functionde1a: ; de1a ld a, [PartyCount] dec a ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -8806,7 +8844,7 @@ Functionde2a: ; de2a ld de, wBreedMon1Nick call Functionde44 xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a jp Functione039 ; de37 @@ -8814,7 +8852,7 @@ Functionde37: ; de37 ld de, wBreedMon2Nick call Functionde44 xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a jp Functione039 ; de44 @@ -8829,9 +8867,9 @@ Functionde44: ; de44 call CopyBytes ld a, [CurPartyMon] ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH jp CopyBytes @@ -8892,7 +8930,7 @@ SentPkmnIntoBox: ; de6e push de ld a, [CurPartyLevel] ld d, a - callab Function50e47 + callab CalcExpAtLevel pop de ld a, [hMultiplicand] ld [de], a @@ -8980,7 +9018,7 @@ ShiftBoxMon: ; df47 call .asm_df5f ld hl, sBoxMons - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH .asm_df5f ld a, [sBoxCount] @@ -9062,7 +9100,7 @@ GiveEgg:: ; df8c ld [CurPartySpecies], a ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Species call AddNTimes ld a, [CurPartySpecies] @@ -9083,7 +9121,7 @@ GiveEgg:: ; df8c ld a, [PartyCount] dec a ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [wc2cc] bit 1, a @@ -9096,7 +9134,7 @@ GiveEgg:: ; df8c ld a, [PartyCount] dec a ld hl, PartyMon1HP - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes xor a ld [hli], a @@ -9112,15 +9150,15 @@ String_Egg: ; e035 Functione039: ; e039 ld hl, PartyCount - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a - jr z, .asm_e04a + jr z, .okay ld a, BANK(sBoxCount) call GetSRAMBank ld hl, sBoxCount -.asm_e04a +.okay ld a, [hl] dec a ld [hli], a @@ -9139,7 +9177,7 @@ Functione039: ; e039 jr nz, .asm_e057 ld hl, PartyMonOT ld d, PARTY_LENGTH - 1 - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e06d ld hl, sBoxMonOT @@ -9160,7 +9198,7 @@ Functione039: ; e039 ld bc, PKMN_NAME_LENGTH add hl, bc ld bc, PartyMonNicknames - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e090 ld bc, sBoxMonNicknames @@ -9168,35 +9206,35 @@ Functione039: ; e039 call CopyDataUntil ld hl, PartyMons - ld bc, PartyMon2 - PartyMon1 - ld a, [wd10b] + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e0a5 ld hl, sBoxMons - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH .asm_e0a5 ld a, [CurPartyMon] call AddNTimes ld d, h ld e, l - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e0bc - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc ld bc, sBoxMonOT jr .asm_e0c3 .asm_e0bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc ld bc, PartyMonOT .asm_e0c3 call CopyDataUntil ld hl, PartyMonNicknames - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e0d2 ld hl, sBoxMonNicknames @@ -9210,7 +9248,7 @@ Functione039: ; e039 ld bc, PKMN_NAME_LENGTH add hl, bc ld bc, PartyMonNicknamesEnd - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e0ed ld bc, sBoxMonNicknamesEnd @@ -9219,20 +9257,20 @@ Functione039: ; e039 call CopyDataUntil .asm_60f0 - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jp nz, CloseSRAM ld a, [wLinkMode] and a ret nz - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank ld hl, PartyCount ld a, [CurPartyMon] cp [hl] jr z, .asm_e131 - ld hl, s0_a600 - ld bc, $002f + ld hl, sPartyScratch1 + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes push hl add hl, bc @@ -9242,11 +9280,11 @@ Functione039: ; e039 .asm_e11a push bc push hl - ld bc, $002f + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop hl push hl - ld bc, $002f + ld bc, SCRATCHMON_STRUCT_LENGTH add hl, bc pop de pop bc @@ -9260,26 +9298,26 @@ Functione039: ; e039 ; e134 Functione134: ; e134 - ld a, PartyMon1Level - PartyMon1 + ld a, MON_LEVEL call GetPartyParamLocation ld a, [hl] - ld [PartyMon1Level - PartyMon1], a ; wow - ld a, PartyMon1Species - PartyMon1 + ld [MON_LEVEL], a ; wow + ld a, MON_SPECIES call GetPartyParamLocation ld a, [hl] ld [CurSpecies], a call GetBaseData - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld d, h ld e, l push de - ld a, PartyMon1Exp + 2 - PartyMon1 + ld a, MON_EXP + 2 call GetPartyParamLocation ld b, $1 call CalcPkmnStats pop de - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [de] inc de @@ -9296,24 +9334,29 @@ CalcPkmnStats: ; e167 ; results in $ffb5 and $ffb6 are saved in [de] ld c, $0 -.asm_e169 +.loop inc c - call Functione17b - ld a, [$ffb5] + call CalcPkmnStatC + ld a, [hMultiplicand + 1] ld [de], a inc de - ld a, [$ffb6] + ld a, [hMultiplicand + 2] ld [de], a inc de ld a, c - cp $6 - jr nz, .asm_e169 + cp STAT_SDEF + jr nz, .loop ret ; e17b -Functione17b: ; e17b +CalcPkmnStatC: ; e17b ; 'c' is 1-6 and points to the BaseStat - +; 1: HP +; 2: Attack +; 3: Defense +; 4: Speed +; 5: SpAtk +; 6: SpDef push hl push de push bc @@ -9329,17 +9372,17 @@ Functione17b: ; e17b pop hl push hl ld a, c - cp $6 - jr nz, .asm_e193 + cp STAT_SDEF + jr nz, .not_spdef rept 2 dec hl endr -.asm_e193 +.not_spdef sla c ld a, d and a - jr z, .asm_e1a5 + jr z, .SkipSqrt add hl, bc push de ld a, [hld] @@ -9348,24 +9391,25 @@ endr callba GetSquareRoot pop de -.asm_e1a5 +.SkipSqrt srl c pop hl push bc - ld bc, $000b + ld bc, MON_DVS - MON_HP_EXP + 1 add hl, bc pop bc ld a, c - cp $2 - jr z, .asm_e1e3 - cp $3 - jr z, .asm_e1ea - cp $4 - jr z, .asm_e1ef - cp $5 - jr z, .asm_e1f7 - cp $6 - jr z, .asm_e1f7 + cp STAT_ATK + jr z, .Attack + cp STAT_DEF + jr z, .Defense + cp STAT_SPD + jr z, .Speed + cp STAT_SATK + jr z, .Special + cp STAT_SDEF + jr z, .Special +; DV_HP = (DV_ATK & 1) << 3 + (DV_DEF & 1) << 2 + (DV_SPD & 1) << 1 + (DV_SPC & 1) push bc ld a, [hl] swap a @@ -9391,49 +9435,49 @@ endr and $1 add b pop bc - jr .asm_e1fb + jr .GotDV -.asm_e1e3 +.Attack ld a, [hl] swap a and $f - jr .asm_e1fb + jr .GotDV -.asm_e1ea +.Defense ld a, [hl] and $f - jr .asm_e1fb + jr .GotDV -.asm_e1ef +.Speed inc hl ld a, [hl] swap a and $f - jr .asm_e1fb + jr .GotDV -.asm_e1f7 +.Special inc hl ld a, [hl] and $f -.asm_e1fb - ld d, $0 +.GotDV + ld d, 0 add e ld e, a - jr nc, .asm_e202 + jr nc, .no_overflow_1 inc d -.asm_e202 +.no_overflow_1 sla e rl d srl b srl b ld a, b add e - jr nc, .asm_e20f + jr nc, .no_overflow_2 inc d -.asm_e20f +.no_overflow_2 ld [hMultiplicand + 2], a ld a, d ld [hMultiplicand + 1], a @@ -9448,55 +9492,55 @@ endr ld [hDividend + 1], a ld a, [hProduct + 3] ld [hDividend + 2], a - ld a, $64 + ld a, 100 ld [hDivisor], a - ld a, $3 + ld a, 3 ld b, a call Divide ld a, c - cp $1 - ld a, $5 - jr nz, .asm_e24e + cp STAT_HP + ld a, 5 + jr nz, .not_hp ld a, [CurPartyLevel] ld b, a ld a, [hQuotient + 2] add b - ld [$ffb6], a - jr nc, .asm_e24c + ld [hMultiplicand + 2], a + jr nc, .no_overflow_3 ld a, [hQuotient + 1] inc a - ld [$ffb5], a + ld [hMultiplicand + 1], a -.asm_e24c - ld a, $a +.no_overflow_3 + ld a, 10 -.asm_e24e +.not_hp ld b, a - ld a, [$ffb6] + ld a, [hQuotient + 2] add b - ld [$ffb6], a - jr nc, .asm_e25b - ld a, [$ffb5] + ld [hMultiplicand + 2], a + jr nc, .no_overflow_4 + ld a, [hQuotient + 1] inc a - ld [$ffb5], a + ld [hMultiplicand + 1], a -.asm_e25b - ld a, [$ffb5] - cp $4 - jr nc, .asm_e26b - cp $3 - jr c, .asm_e273 - ld a, [$ffb6] - cp $e8 - jr c, .asm_e273 +.no_overflow_4 + ld a, [hQuotient + 1] + cp (1000 / $100) + 1 + jr nc, .max_stat + cp 1000 / $100 + jr c, .stat_value_okay + ld a, [hQuotient + 2] + cp 1000 % $100 + jr c, .stat_value_okay -.asm_e26b - ld a, $3 - ld [$ffb5], a - ld a, $e7 - ld [$ffb6], a +.max_stat + ld a, 999 / $100 + ld [hMultiplicand + 1], a + ld a, 999 % $100 + ld [hMultiplicand + 2], a -.asm_e273 +.stat_value_okay pop bc pop de pop hl @@ -9528,7 +9572,7 @@ GivePoke:: ; e277 jr z, .done ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [CurItem] ld [hl], a @@ -9613,27 +9657,27 @@ endr push bc ld a, [CurPartyMon] ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, 01001 / $100 ld [hli], a ld [hl], 01001 % $100 pop bc - callba SetPkmnCaughtData - jr .asm_e3b2 + callba SetPartymonCaughtData + jr .skip_nickname .asm_e35e ld a, BANK(sBoxMonOT) call GetSRAMBank ld de, sBoxMonOT -.asm_e366 +.loop ld a, [ScriptBank] call GetFarByte ld [de], a inc hl inc de cp "@" - jr nz, .asm_e366 + jr nz, .loop ld a, [ScriptBank] call GetFarByte ld b, a @@ -9643,8 +9687,8 @@ endr call Random ld [hl], a call CloseSRAM - callba Function4db92 - jr .asm_e3b2 + callba SetBoxMonCaughtData + jr .skip_nickname .asm_e390 pop de @@ -9663,10 +9707,10 @@ endr .asm_e3a6 callba GiveANickname_YesNo pop de - jr c, .asm_e3b2 - call Functione3de + jr c, .skip_nickname + call InitNickname -.asm_e3b2 +.skip_nickname pop bc pop de ld a, b @@ -9699,14 +9743,14 @@ TextJump_WasSentToBillsPC: ; 0xe3d9 db "@" ; 0xe3de -Functione3de: ; e3de +InitNickname: ; e3de push de - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader call DisableSpriteUpdates pop de push de ld b, $0 - callba Function116c1 + callba NamingScreen pop hl ld de, StringBuffer1 call InitName @@ -9741,13 +9785,13 @@ UnknownText_0xe417: ; 0xe417 Functione41c: ; e41c (3:641c) xor a - ld [hBGMapMode], a ; $ff00+$d4 - call LoadMenuDataHeader_0x1d75 + ld [hBGMapMode], a + call LoadStandardMenuDataHeader call ClearPCItemScreen ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] ld hl, UnknownText_0xe43a call PrintText pop af @@ -9767,62 +9811,62 @@ Functione43f: ; e43f (3:643f) ret Functione443: ; e443 (3:6443) - ld hl, MenuDataHeader_0xe46f + ld hl, .MenuDataHeader call LoadMenuDataHeader ld a, $1 -.asm_e44b +.loop ld [wMenuCursorBuffer], a call SetPalettes xor a ld [wcf76], a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function1e5d - jr c, .asm_e46b + jr c, .cancel ld a, [wMenuCursorBuffer] push af ld a, [MenuSelection] - ld hl, Jumptable_e4ba + ld hl, .Jumptable rst JumpTable pop bc ld a, b - jr nc, .asm_e44b -.asm_e46b + jr nc, .loop +.cancel call WriteBackup 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 @@ -9832,27 +9876,27 @@ MenuItems_e4c4: ; e4c4 db -1 ; e4cb -Functione4cb: ; e4cb +BillsPC_SeeYa: ; e4cb scf ret ; e4cd -Functione4cd: ; e4cd - call LoadMenuDataHeader_0x1d75 +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 @@ -9864,10 +9908,10 @@ UnknownText_0xe4f9: ; 0xe4f9 db "@" ; 0xe4fe -Functione4fe: ; e4fe (3:64fe) - call LoadMenuDataHeader_0x1d75 - callba Functione2391 - call Function222a +BillsPC_DepositMenu: ; e4fe (3:64fe) + call LoadStandardMenuDataHeader + callba _DepositPKMN + call ReturnToMapFromSubmenu call ClearPCItemScreen call WriteBackup and a @@ -9911,7 +9955,7 @@ UnknownText_0xe533: ; 0xe533 CheckCurPartyMonFainted: ; e538 ld hl, PartyMon1HP - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH ld b, $0 .loop ld a, [CurPartyMon] @@ -9940,10 +9984,10 @@ CheckCurPartyMonFainted: ; e538 ; e559 -Functione559: ; e559 (3:6559) - call LoadMenuDataHeader_0x1d75 - callba Functione2583 - call Function222a +BillsPC_WithdrawMenu: ; e559 (3:6559) + call LoadStandardMenuDataHeader + callba _WithdrawPKMN + call ReturnToMapFromSubmenu call ClearPCItemScreen call WriteBackup and a @@ -9970,8 +10014,8 @@ UnknownText_0xe57e: ; 0xe57e db "@" ; 0xe583 -Functione583: ; e583 (3:6583) - callba Functione35aa +BillsPC_ChangeBoxMenu: ; e583 (3:6583) + callba _ChangeBox and a ret @@ -9979,17 +10023,17 @@ ClearPCItemScreen: ; e58b call DisableSpriteUpdates xor a ld [hBGMapMode], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites hlcoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, " " call ByteFill hlcoord 0,0 - ld bc, $0a12 + lb bc, 10, 18 call TextBox hlcoord 0,12 - ld bc, $0412 + lb bc, 4, 18 call TextBox call Function3200 call SetPalettes ; load regular palettes? @@ -9999,10 +10043,10 @@ ClearPCItemScreen: ; e58b Functione5bb: ; e5bb ld a, [CurPartyMon] ld hl, sBoxMon1Species - ld bc, $0020 + ld bc, $20 call AddNTimes ld de, TempMonSpecies - ld bc, $0020 + ld bc, $20 ld a, BANK(sBoxMon1Species) call GetSRAMBank call CopyBytes @@ -10016,7 +10060,7 @@ Functione5d9: ; unreferenced jr z, .asm_e5f1 ld a, b ld hl, Unknown_e66e - ld bc, $0003 + ld bc, 3 call AddNTimes ld a, [hli] push af @@ -10033,7 +10077,7 @@ Functione5d9: ; unreferenced .asm_e5f6 call GetSRAMBank ld a, [hl] - ld bc, $0016 + ld bc, $16 add hl, bc ld b, a ld c, $0 @@ -10047,7 +10091,7 @@ Functione5d9: ; unreferenced ld a, c ld bc, 0 add hl, bc - ld bc, $0020 + ld bc, $20 call AddNTimes ld a, [hl] ld [de], a @@ -10059,7 +10103,7 @@ Functione5d9: ; unreferenced push hl push bc ld a, c - ld bc, $035c + ld bc, $35c add hl, bc call SkipNames call CopyBytes @@ -10068,9 +10112,9 @@ Functione5d9: ; unreferenced push hl push bc ld a, c - ld bc, $001f + ld bc, $1f add hl, bc - ld bc, $0020 + ld bc, $20 call AddNTimes ld a, [hl] ld [de], a @@ -10080,9 +10124,9 @@ Functione5d9: ; unreferenced push hl push bc ld a, c - ld bc, $0015 + ld bc, $15 add hl, bc - ld bc, $0020 + ld bc, $20 call AddNTimes ld a, [hli] and $f0 @@ -10113,15 +10157,15 @@ Functione5d9: ; unreferenced ; e66e Unknown_e66e: ; e66e - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -10132,9 +10176,9 @@ Unknown_e66e: ; e66e Functione698: ; e698 ld hl, wBreedMon1Stats ld de, TempMon - ld bc, $0020 + ld bc, $20 call CopyBytes - callab Function50e1b + callab CalcLevel ld a, [wBreedMon1Level] ld b, a ld a, d @@ -10147,9 +10191,9 @@ Functione698: ; e698 Functione6b3: ; e6b3 ld hl, wBreedMon2Stats ld de, TempMon - ld bc, $0020 + ld bc, $20 call CopyBytes - callab Function50e1b + callab CalcLevel ld a, [wBreedMon2Level] ld b, a ld a, d @@ -10187,7 +10231,7 @@ BugContest_SetCaughtContestMon: ; e6ce ld [CurPartySpecies], a call GetBaseData xor a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, wContestMon call ByteFill xor a @@ -10298,7 +10342,7 @@ WobbleChances: ; f9ba KnowsMove: ; f9ea - ld a, PartyMon1Moves - PartyMon1 + ld a, MON_MOVES call GetPartyParamLocation ld a, [wd262] ld b, a @@ -10328,1094 +10372,23 @@ UnknownText_0xfa06: ; 0xfa06 SECTION "bank4", ROMX, BANK[$4] - INCLUDE "engine/pack.asm" INCLUDE "engine/time.asm" -CanLearnTMHMMove: ; 11639 - ld a, [CurPartySpecies] - ld [CurSpecies], a - call GetBaseData - ld hl, BaseTMHM - push hl - - ld a, [wd262] - ld b, a - ld c, 0 - ld hl, TMHMMoves -.loop - ld a, [hli] - and a - jr z, .end - cp b - jr z, .asm_11659 - inc c - jr .loop - -.asm_11659 - pop hl - ld b, CHECK_FLAG - push de - ld d, 0 - predef FlagPredef - pop de - ret - -.end - pop hl - ld c, 0 - ret -; 1166a - -GetTMHMMove: ; 1166a - ld a, [wd265] - dec a - ld hl, TMHMMoves - ld b, 0 - ld c, a - add hl, bc - ld a, [hl] - ld [wd265], a - ret -; 1167a - -TMHMMoves: ; 1167a - db DYNAMICPUNCH - db HEADBUTT - db CURSE - db ROLLOUT - db ROAR - db TOXIC - db ZAP_CANNON - db ROCK_SMASH - db PSYCH_UP - db HIDDEN_POWER - db SUNNY_DAY - db SWEET_SCENT - db SNORE - db BLIZZARD - db HYPER_BEAM - db ICY_WIND - db PROTECT - db RAIN_DANCE - db GIGA_DRAIN - db ENDURE - db FRUSTRATION - db SOLARBEAM - db IRON_TAIL - db DRAGONBREATH - db THUNDER - db EARTHQUAKE - db RETURN - db DIG - db PSYCHIC_M - db SHADOW_BALL - db MUD_SLAP - db DOUBLE_TEAM - db ICE_PUNCH - db SWAGGER - db SLEEP_TALK - db SLUDGE_BOMB - db SANDSTORM - db FIRE_BLAST - db SWIFT - db DEFENSE_CURL - db THUNDERPUNCH - db DREAM_EATER - db DETECT - db REST - db ATTRACT - db THIEF - db STEEL_WING - db FIRE_PUNCH - db FURY_CUTTER - db NIGHTMARE - db CUT - db FLY - db SURF - db STRENGTH - db FLASH - db WHIRLPOOL - db WATERFALL - -; Move tutor - db FLAMETHROWER - db THUNDERBOLT - db ICE_BEAM - - db 0 ; end -; 116b7 - -_NamingScreen: ; 0x116b7 - call DisableSpriteUpdates - call Function116c1 - call Function2b74 - ret -; 0x116c1 - -Function116c1: ; 116c1 - ld hl, wc6d0 - ld [hl], e - inc hl - ld [hl], d - ld hl, wc6d4 - ld [hl], b - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [$ffde] - push af - xor a - ld [$ffde], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call Function116f8 - call DelayFrame -.asm_116e5 - call Function11915 - jr nc, .asm_116e5 - pop af - ld [hInMenu], a - pop af - ld [$ffde], a - pop af - ld [Options], a - call ClearJoypad - ret -; 116f8 - -Function116f8: ; 116f8 - call WhiteBGMap - ld b, $8 - call GetSGBLayout - call DisableLCD - call Function11c51 - call Function118a8 - ld a, $e3 - ld [rLCDC], a - call Function1171d - call WaitBGMap - call WaitTop - call SetPalettes - call Function11be0 - ret -; 1171d - -Function1171d: ; 1171d - ld a, [wc6d4] - and 7 - ld e, a - ld d, 0 - ld hl, Jumptable_1172e -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 1172e - - -Jumptable_1172e: ; 1172e (4:572e) - dw Function1173e - dw Function1178d - dw Function117ae - dw Function117d1 - dw Function117f5 - dw Function1182c - dw Function1173e - dw Function1173e - - -Function1173e: ; 1173e (4:573e) - ld a, [CurPartySpecies] - ld [wd265], a - ld hl, Function8e83f - ld a, BANK(Function8e83f) - ld e, $1 - rst FarCall ; ; indirect jump to Function8e83f (8e83f (23:683f)) - ld a, [CurPartySpecies] - ld [wd265], a - call GetPokemonName - hlcoord 5, 2 - call PlaceString - ld l, c - ld h, b - ld de, Strings_11780 - call PlaceString - inc de - hlcoord 5, 4 - call PlaceString - callba GetGender - jr c, .asm_1177c - ld a, $ef - jr nz, .asm_11778 - ld a, $f5 -.asm_11778 - hlcoord 1, 2 - ld [hl], a -.asm_1177c - call Function1187b - ret -; 11780 (4:5780) - -Strings_11780: ; 11780 - db "'S@" - db "NICKNAME?@" -; 1178d - -Function1178d: ; 1178d (4:578d) - callba GetPlayerIcon - call Function11847 - hlcoord 5, 2 - ld de, String_117a3 - call PlaceString - call Function11882 - ret -; 117a3 (4:57a3) - -String_117a3: ; 117a3 - db "YOUR NAME?@" -; 117ae - -Function117ae: ; 117ae (4:57ae) - ld de, SilverSpriteGFX - ld b, BANK(SilverSpriteGFX) - call Function11847 - hlcoord 5, 2 - ld de, String_117c3 - call PlaceString - call Function11882 - ret -; 117c3 (4:57c3) - -String_117c3: ; 117c3 - db "RIVAL'S NAME?@" -; 117d1 - -Function117d1: ; 117d1 (4:57d1) - ld de, MomSpriteGFX - ld b, BANK(MomSpriteGFX) - call Function11847 - hlcoord 5, 2 - ld de, String_117e6 - call PlaceString - call Function11882 - ret -; 117e6 (4:57e6) - -String_117e6: ; 117e6 - db "MOTHER'S NAME?@" -; 117f5 - -Function117f5: ; 117f5 (4:57f5) - ld de, PokeBallSpriteGFX - ld hl, VTiles0 tile $00 - lb bc, BANK(PokeBallSpriteGFX), $4 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], a - ld de, $2420 - ld a, $a - call Function3b2a - ld hl, $1 - add hl, bc - ld [hl], $0 - hlcoord 5, 2 - ld de, String_11822 - call PlaceString - call Function11889 - ret -; 11822 (4:5822) - -String_11822: ; 11822 - db "BOX NAME?@" -; 1182c - -Function1182c: ; 1182c (4:582c) - hlcoord 3, 2 - ld de, String_11839 - call PlaceString - call Function11882 - ret -; 11839 (4:5839) - -String_11839: ; 11839 - db "おともだち の なまえは?@" -; 11847 - -Function11847: ; 11847 (4:5847) - push de - ld hl, VTiles0 tile $00 - ld c, $4 - push bc - call Request2bpp - pop bc - ld hl, $c0 - add hl, de - ld e, l - ld d, h - ld hl, VTiles0 tile $04 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], a - pop de - ld b, $a - ld a, d - cp $7a - jr nz, .asm_11873 - ld a, e - cp $40 - jr nz, .asm_11873 - ld b, $1e -.asm_11873 - ld a, b - ld de, $2420 - call Function3b2a - ret - -Function1187b: ; 1187b (4:587b) - ld a, $a - hlcoord 5, 6 - jr Function11890 - -Function11882: ; 11882 (4:5882) - ld a, $7 - hlcoord 5, 6 - jr Function11890 - -Function11889: ; 11889 (4:5889) - ld a, $8 - hlcoord 5, 4 - jr Function11890 - -Function11890: ; 11890 (4:5890) - ld [wc6d3], a - ld a, l - ld [wc6d8], a - ld a, h - ld [wc6d9], a - ret - - -Function1189c: ; 1189c - push bc - push af - ld a, [wc6d4] - sub $3 - ld b, a - pop af - dec b - pop bc - ret -; 118a8 - -Function118a8: ; 118a8 - call WaitTop - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $60 - call ByteFill - hlcoord 1, 1 - lb bc, 6, 18 - call Function1189c - jr nz, .asm_118c4 - lb bc, 4, 18 - -.asm_118c4 - call ClearBox - ld de, NameInputUpper -Function118ca: ; 118ca - call Function1189c - jr nz, .asm_118d5 - ld hl, BoxNameInputLower - NameInputLower - add hl, de - ld d, h - ld e, l - -.asm_118d5 - push de - hlcoord 1, 8 - lb bc, 7, 18 - call Function1189c - jr nz, .asm_118e7 - hlcoord 1, 6 - lb bc, 9, 18 - -.asm_118e7 - call ClearBox - hlcoord 1, 16 - lb bc, 1, 18 - call ClearBox - pop de - hlcoord 2, 8 - ld b, $5 - call Function1189c - jr nz, .asm_11903 - hlcoord 2, 6 - ld b, $6 - -.asm_11903 - ld c, $11 -.asm_11905 - ld a, [de] - ld [hli], a - inc de - dec c - jr nz, .asm_11905 - push de - ld de, $0017 - add hl, de - pop de - dec b - jr nz, .asm_11903 - ret -; 11915 - -Function11915: ; 11915 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_11930 - call Function11968 - callba Function8cf62 - call Function11940 - call DelayFrame - and a - ret - -.asm_11930 - callab Function8cf53 - call ClearSprites - xor a - ld [hSCX], a - ld [hSCY], a - scf - ret -; 11940 - -Function11940: ; 11940 - xor a - ld [hBGMapMode], a - hlcoord 1, 5 - call Function1189c - jr nz, .asm_1194e - hlcoord 1, 3 - -.asm_1194e - lb bc, 1, 18 - call ClearBox - ld hl, wc6d0 - ld e, [hl] - inc hl - ld d, [hl] - ld hl, wc6d8 - ld a, [hli] - ld h, [hl] - ld l, a - call PlaceString - ld a, $1 - ld [hBGMapMode], a - ret -; 11968 - -Function11968: ; 11968 - ld a, [wJumptableIndex] - ld e, a - ld d, $0 - ld hl, Jumptable_11977 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 11977 - - -Jumptable_11977: ; 11977 (4:5977) - dw Function1197b - dw Function119a1 - - -Function1197b: ; 1197b (4:597b) - lb de, $50, $18 - call Function1189c - jr nz, .asm_11985 - ld d, $40 -.asm_11985 - ld a, $2 - call Function3b2a - ld a, c - ld [wc6d5], a - ld a, b - ld [wc6d6], a - ld hl, $1 - add hl, bc - ld a, [hl] - ld hl, $e - add hl, bc - ld [hl], a - ld hl, wJumptableIndex - inc [hl] - ret - -Function119a1: ; 119a1 (4:59a1) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and A_BUTTON - jr nz, .a - ld a, [hl] - and B_BUTTON - jr nz, .b - ld a, [hl] - and START - jr nz, .start - ld a, [hl] - and SELECT - jr nz, .select - ret - -.a - call Function11a0b - cp $1 - jr z, .select - cp $2 - jr z, .b - cp $3 - jr z, .asm_119eb - call Function11c11 - call Function11b14 - ret nc - -.start - ld hl, wc6d5 - ld c, [hl] - inc hl - ld b, [hl] - ld hl, $c - add hl, bc - ld [hl], $8 - ld hl, $d - add hl, bc - ld [hl], $4 - call Function1189c - ret nz - inc [hl] - ret - -.b - call Function11bbc - ret - -.asm_119eb - call Function11bf7 - ld hl, wJumptableIndex - set 7, [hl] - ret - -.select - ld hl, wcf64 - ld a, [hl] - xor 1 - ld [hl], a - jr z, .asm_11a04 - ld de, NameInputLower - call Function118ca - ret - -.asm_11a04 - ld de, NameInputUpper - call Function118ca - ret - -Function11a0b: ; 11a0b (4:5a0b) - ld hl, wc6d5 - ld c, [hl] - inc hl - ld b, [hl] - -Function11a11: ; 11a11 (4:5a11) - ld hl, $d - add hl, bc - ld a, [hl] - push bc - ld b, $4 - call Function1189c - jr nz, .asm_11a1f - inc b -.asm_11a1f - cp b - pop bc - jr nz, .asm_11a39 - ld hl, $c - add hl, bc - ld a, [hl] - cp $3 - jr c, .asm_11a33 - cp $6 - jr c, .asm_11a36 - ld a, $3 - ret -.asm_11a33 - ld a, $1 - ret -.asm_11a36 - ld a, $2 - ret -.asm_11a39 - xor a - ret - -Function11a3b: ; 11a3b (4:5a3b) - call Function11a8b - ld hl, $d - add hl, bc - ld a, [hl] - ld e, a - swap e - ld hl, $7 - add hl, bc - ld [hl], e - ld d, $4 - call Function1189c - jr nz, .asm_11a53 - inc d -.asm_11a53 - cp d - ld de, Unknown_11a79 - ld a, $0 - jr nz, .asm_11a60 - ld de, Unknown_11a82 - ld a, $1 -.asm_11a60 - ld hl, $e - add hl, bc - add [hl] - ld hl, $1 - add hl, bc - ld [hl], a - ld hl, $c - add hl, bc - ld l, [hl] - ld h, $0 - add hl, de - ld a, [hl] - ld hl, $6 - add hl, bc - ld [hl], a - ret -; 11a79 (4:5a79) - -Unknown_11a79: ; 11a79 - db $00, $10, $20, $30, $40, $50, $60, $70, $80 -Unknown_11a82: ; 11a82 - db $00, $00, $00, $30, $30, $30, $60, $60, $60 -; 11a8b - -Function11a8b: ; 11a8b (4:5a8b) - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .up - ld a, [hl] - and D_DOWN - jr nz, .down - ld a, [hl] - and D_LEFT - jr nz, .left - ld a, [hl] - and D_RIGHT - jr nz, .right - ret -.right - call Function11a11 - and a - jr nz, .asm_11ab7 - ld hl, $c - add hl, bc - ld a, [hl] - cp $8 - jr nc, .asm_11ab4 - inc [hl] - ret -.asm_11ab4 - ld [hl], $0 - ret -.asm_11ab7 - cp $3 - jr nz, .asm_11abc - xor a -.asm_11abc - ld e, a - add a - add e - ld hl, $c - add hl, bc - ld [hl], a - ret -.left - call Function11a11 - and a - jr nz, .asm_11ad8 - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_11ad5 - dec [hl] - ret -.asm_11ad5 - ld [hl], $8 - ret -.asm_11ad8 - cp $1 - jr nz, .asm_11ade - ld a, $4 -.asm_11ade -rept 2 - dec a -endr - ld e, a - add a - add e - ld hl, $c - add hl, bc - ld [hl], a - ret -.down - ld hl, $d - add hl, bc - ld a, [hl] - call Function1189c - jr nz, .asm_11af9 - cp $5 - jr nc, .asm_11aff - inc [hl] - ret -.asm_11af9 - cp $4 - jr nc, .asm_11aff - inc [hl] - ret -.asm_11aff - ld [hl], $0 - ret -.up - ld hl, $d - add hl, bc - ld a, [hl] - and a - jr z, .asm_11b0c - dec [hl] - ret -.asm_11b0c - ld [hl], $4 - call Function1189c - ret nz - inc [hl] - ret - -Function11b14: ; 11b14 (4:5b14) - ld a, [wc6d7] - -Function11b17: ; 11b17 (4:5b17) - ld a, [wc6d3] - ld c, a - ld a, [wc6d2] - cp c - ret nc - - ld a, [wc6d7] - -Function11b23: ; 11b23 - call Function11bd0 - ld [hl], a - -Function11b27: ; 11b27 - ld hl, wc6d2 - inc [hl] - call Function11bd0 - ld a, [hl] - cp $50 - jr z, .asm_11b37 - ld [hl], $f2 - and a - ret -.asm_11b37 - scf - ret -; 11b39 (4:5b39) - -Function11b39: ; 11b39 - ld a, [wc6d2] - and a - ret z - push hl - ld hl, wc6d2 - dec [hl] - call Function11bd0 - ld c, [hl] - pop hl - -.asm_11b48 - ld a, [hli] - cp $ff - jr z, Function11b27 - cp c - jr z, .asm_11b53 - inc hl - jr .asm_11b48 - -.asm_11b53 - ld a, [hl] - jr Function11b23 -; 11b56 - -Dakutens: ; Dummied out - db "かが", "きぎ", "くぐ", "けげ", "こご" - db "さざ", "しじ", "すず", "せぜ", "そぞ" - db "ただ", "ちぢ", "つづ", "てで", "とど" - db "はば", "ひび", "ふぶ", "へべ", "ほぼ" - db "カガ", "キギ", "クグ", "ケゲ", "コゴ" - db "サザ", "シジ", "スズ", "セゼ", "ソゾ" - db "タダ", "チヂ", "ツヅ", "テデ", "トド" - db "ハバ", "ヒビ", "フブ", "へべ", "ホボ" - db $ff - -Handakutens: ; Dummied out - db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ" - db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ" - db $ff -; 11bbc - -Function11bbc: ; 11bbc (4:5bbc) - ld hl, wc6d2 - ld a, [hl] - and a - ret z - dec [hl] - call Function11bd0 - ld [hl], $f2 - inc hl - ld a, [hl] - cp $f2 - ret nz - ld [hl], $eb - ret - -Function11bd0: ; 11bd0 (4:5bd0) - push af - ld hl, wc6d0 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wc6d2] - ld e, a - ld d, 0 - add hl, de - pop af - ret -; 11be0 - -Function11be0: ; 11be0 -; load $f2, ($eb * [wc6d3]), $50 into the dw address at wc6d0 - ld hl, wc6d0 - ld a, [hli] - ld h, [hl] - ld l, a - ld [hl], "·" - inc hl - ld a, [wc6d3] - dec a - ld c, a - ld a, "→" -.loop - ld [hli], a - dec c - jr nz, .loop - ld [hl], "@" - ret -; 11bf7 +INCLUDE "engine/tmhm.asm" - -Function11bf7: ; 11bf7 (4:5bf7) - ld hl, wc6d0 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wc6d3] - ld c, a -.asm_11c01 - ld a, [hl] - cp $eb - jr z, .asm_11c0a - cp $f2 - jr nz, .asm_11c0c -.asm_11c0a - ld [hl], $50 -.asm_11c0c - inc hl - dec c - jr nz, .asm_11c01 - ret - -Function11c11: ; 11c11 (4:5c11) - ld hl, wc6d5 - ld c, [hl] - inc hl - ld b, [hl] - ld hl, $6 - add hl, bc - ld a, [hl] - ld hl, $4 - add hl, bc - add [hl] - sub $8 - srl a - srl a - srl a - ld e, a - ld hl, $7 - add hl, bc - ld a, [hl] - ld hl, $5 - add hl, bc - add [hl] - sub $10 - srl a - srl a - srl a - ld d, a - hlcoord 0, 0 - ld bc, $14 -.asm_11c43 - ld a, d - and a - jr z, .asm_11c4b - add hl, bc - dec d - jr .asm_11c43 -.asm_11c4b - add hl, de - ld a, [hl] - ld [wc6d7], a - ret - - -Function11c51: ; 11c51 - call ClearSprites - callab Function8cf53 - call Functione51 - call Functione5f - - ld de, GFX_11e65 - ld hl, VTiles1 tile $6b - lb bc, BANK(GFX_11e65), 1 - call Get1bpp - - ld de, GFX_11e6d - ld hl, VTiles1 tile $72 - lb bc, BANK(GFX_11e6d), 1 - call Get1bpp - - ld de, VTiles2 tile $60 - ld hl, GFX_11cb7 - ld bc, $10 - ld a, BANK(GFX_11cb7) - call FarCopyBytes - - ld de, VTiles0 tile $7e - ld hl, GFX_11cc7 - ld bc, $20 - ld a, BANK(GFX_11cc7) - call FarCopyBytes - - ld a, $5 - ld hl, wc312 - ld [hli], a - ld [hl], $7e - xor a - ld [hSCY], a - ld [wc3bf], a - ld [hSCX], a - ld [wc3c0], a - ld [wJumptableIndex], a - ld [wcf64], a - ld [hBGMapMode], a - ld [wc6d2], a - ld a, $7 - ld [hWX], a - ret -; 11cb7 - -GFX_11cb7: ; 11cb7 -INCBIN "gfx/unknown/011cb7.2bpp" -; 11cc7 - -GFX_11cc7: ; 11cc7 -INCBIN "gfx/unknown/011cc7.2bpp" -; 11ce7 - -NameInputLower: - db "a b c d e f g h i" - db "j k l m n o p q r" - db "s t u v w x y z " - db "× ( ) : ; [ ] <PK> <MN>" - db "UPPER DEL END " -BoxNameInputLower: - db "a b c d e f g h i" - db "j k l m n o p q r" - db "s t u v w x y z " - db "é 'd 'l 'm 'r 's 't 'v 0" - db "1 2 3 4 5 6 7 8 9" - db "UPPER DEL END " -NameInputUpper: ; Unreferenced? - db "A B C D E F G H I" - db "J K L M N O P Q R" - db "S T U V W X Y Z " - db "- ? ! / . , " - db "lower DEL END " -BoxNameInputUpper: - db "A B C D E F G H I" - db "J K L M N O P Q R" - db "S T U V W X Y Z " - db "× ( ) : ; [ ] <PK> <MN>" - db "- ? ! ♂ ♀ / . , &" - db "lower DEL END " -; 11e5d - -GFX_11e5d: ; ???? -INCBIN "gfx/unknown/011e5d.2bpp" -; 11e6d - -GFX_11e65: -INCBIN "gfx/unknown/011e65.2bpp" -; 11e6d - -GFX_11e6d: ; 11e6d -INCBIN "gfx/unknown/011e6d.2bpp" -; 11e75 +INCLUDE "engine/namingscreen.asm" Function11e75: ; 11e75 (4:5e75) ld hl, wc6d0 ld [hl], e inc hl ld [hl], d - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a ld a, [hInMenu] push af ld a, $1 @@ -11428,11 +10401,11 @@ Function11e75: ; 11e75 (4:5e75) pop af ld [hInMenu], a pop af - ld [$ffde], a + ld [hMapAnims], a ret Function11e9a: ; 11e9a (4:5e9a) - call WhiteBGMap + call ClearBGPalettes call DisableLCD call Function11c51 ld de, VTiles0 tile $00 @@ -11452,7 +10425,7 @@ Function11e9a: ; 11e9a (4:5e9a) ld [hl], $0 call Function11f84 ld a, $e3 - ld [rLCDC], a ; $ff00+$40 + ld [rLCDC], a call Function11f74 ld b, $8 call GetSGBLayout @@ -11536,14 +10509,14 @@ Function11fc0: ; 11fc0 (4:5fc0) callab Function8cf53 call ClearSprites xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a scf ret Function11feb: ; 11feb (4:5feb) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 1, 1 lb bc, 4, 18 call ClearBox @@ -11554,7 +10527,7 @@ Function11feb: ; 11feb (4:5feb) hlcoord 2, 2 call PlaceString ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Function12008: ; 12008 (4:6008) @@ -11888,7 +10861,7 @@ String_121dd: ; 122dd db "K L M N O P Q R S T" db "U V W X Y Z , ? !" db "1 2 3 4 5 6 7 8 9 0" - db "ゅ ょ ", $70, " ", $71, " é ♂ ♀ ¥ … ×" + db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×" db "lower DEL END " ; 1224f @@ -11897,3011 +10870,33 @@ String_1224f: ; 1224f db "k l m n o p q r s t" db "u v w x y z . - /" db "'d 'l 'm 'r 's 't 'v & ( )" - db $72, " ", $73, " [ ] ' : ; " + db "<``> <''> [ ] ' : ; " db "UPPER DEL END " ; 122c1 -UnknownScript_0x122c1: ; 0x122c1 +Script_AbortBugContest: ; 0x122c1 checkflag ENGINE_BUG_CONTEST_TIMER - iffalse .script_122cd + iffalse .finish setflag ENGINE_DAILY_BUG_CONTEST special ContestReturnMons -.script_122cd +.finish end ; 0x122ce -FindItemInBallScript:: ; 0x122ce - callasm Function122f8 - iffalse NoRoomForItemInBallScript - disappear LAST_TALKED - loadfont - writetext UnknownText_0x122ee - playsound SFX_ITEM - pause 60 - itemnotify - loadmovesprites - end -; 0x122e3 - -NoRoomForItemInBallScript: ; 0x122e3 - loadfont - writetext UnknownText_0x122ee - closetext - writetext UnknownText_0x122f3 - closetext - loadmovesprites - end -; 0x122ee - -UnknownText_0x122ee: ; 0x122ee - ; found @ ! - text_jump UnknownText_0x1c0a1c - db "@" -; 0x122f3 - -UnknownText_0x122f3: ; 0x122f3 - ; But can't carry any more items. - text_jump UnknownText_0x1c0a2c - db "@" -; 0x122f8 - -Function122f8: ; 122f8 - xor a - ld [ScriptVar], a - ld a, [EngineBuffer1] - ld [wd265], a - call GetItemName - ld hl, StringBuffer3 - call CopyName2 - ld a, [EngineBuffer1] - ld [CurItem], a - ld a, [CurFruit] - ld [wItemQuantityChangeBuffer], a - ld hl, NumItems - call ReceiveItem - ret nc - ld a, $1 - ld [ScriptVar], a - ret -; 12324 - -HealMachineAnim: ; 12324 - ; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon. - ld a, [PartyCount] - and a - ret z - ; The location of the healing machine relative to the player is stored in ScriptVar. - ; 0: Up and left (Pokemon Center) - ; 1: Left (Elm's Lab) - ; 2: Up (Hall of Fame) - ld a, [ScriptVar] - ld [Buffer1], a - ld a, [rOBP1] - ld [Buffer2], a - call Function1233e - ld a, [Buffer2] - call Functiond24 - ret -; 1233e - -Function1233e: ; 1233e - xor a - ld [wd1ec], a -.asm_12342 - ld a, [Buffer1] - ld e, a - ld d, 0 - ld hl, Unknown_12365 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wd1ec] - ld e, a - inc a - ld [wd1ec], a - add hl, de - ld a, [hl] - cp 5 - jr z, .asm_12364 - ld hl, Jumptable_12377 - rst JumpTable - jr .asm_12342 - -.asm_12364 - ret -; 12365 - -Unknown_12365: ; 12365 - dw Unknown_1236b - dw Unknown_1236f - dw Unknown_12373 -; 1236b - -Unknown_1236b: ; 1236b - db 0, 1, 3, 5 -Unknown_1236f: ; 1236f - db 0, 1, 3, 5 -Unknown_12373: ; 12373 - db 0, 2, 4, 5 -; 12377 - -Jumptable_12377: ; 12377 - dw Function12383 - dw Function12393 - dw Function123a1 - dw Function123bf - dw Function123c8 - dw Function123db -; 12383 - -Function12383: ; 12383 - call Function12434 - ld de, GFX_123fc - ld hl, VTiles0 tile $7c - lb bc, BANK(GFX_123fc), $2 - call Request2bpp - ret -; 12393 - -Function12393: ; 12393 - ld hl, Sprites + $80 - ld de, Unknown_123dc - call Function124a3 - call Function124a3 - jr Function123a7 - -Function123a1: ; 123a1 - ld hl, Sprites + $80 - ld de, Unknown_1241c - -Function123a7: ; 123a7 - ld a, [PartyCount] - ld b, a -.asm_123ab - call Function124a3 - push de - ld de, SFX_SECOND_PART_OF_ITEMFINDER - call PlaySFX - pop de - ld c, 30 - call DelayFrames - dec b - jr nz, .asm_123ab - ret -; 123bf - -Function123bf: ; 123bf - ld de, MUSIC_HEAL - call PlayMusic - jp Function12459 -; 123c8 - -Function123c8: ; 123c8 - ld de, SFX_GAME_FREAK_LOGO_GS - call PlaySFX - call Function12459 - call WaitSFX - ld de, SFX_BOOT_PC - call PlaySFX - ret -; 123db - -Function123db: ; 123db - ret -; 123dc - -Unknown_123dc: ; 123dc - db $20, $22, $7c, $16 - db $20, $26, $7c, $16 - db $26, $20, $7d, $16 - db $26, $28, $7d, $36 - db $2b, $20, $7d, $16 - db $2b, $28, $7d, $36 - db $30, $20, $7d, $16 - db $30, $28, $7d, $36 -; 123fc - -GFX_123fc: ; 123fc -INCBIN "gfx/unknown/0123fc.2bpp" -; 1241c - -Unknown_1241c: ; 1241c - db $3c, $51, $7d, $16 - db $3c, $56, $7d, $16 - db $3b, $4d, $7d, $16 - db $3b, $5a, $7d, $16 - db $39, $49, $7d, $16 - db $39, $5d, $7d, $16 -; 12434 - -Function12434: ; 12434 - call Function3218 - jr nz, .asm_1243e - ld a, $e0 - ld [rOBP1], a - ret - -.asm_1243e - ld hl, Palette_12451 - ld de, OBPals + 8 * 6 - ld bc, 8 - ld a, $5 - call FarCopyWRAM - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 12451 - -Palette_12451: ; 12451 - RGB 31, 31, 31 - RGB 31, 19, 10 - RGB 31, 07, 01 - RGB 00, 00, 00 -; 12459 - -Function12459: ; 12459 - ld c, $8 -.asm_1245b - push bc - call Function12469 - ld c, $a - call DelayFrames - pop bc - dec c - jr nz, .asm_1245b - ret -; 12469 - -Function12469: ; 12469 - call Function3218 - jr nz, .asm_12475 - ld a, [rOBP1] - xor $28 - ld [rOBP1], a - ret - -.asm_12475 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, OBPals + 8 * 6 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push de - ld c, $3 -.asm_12486 - ld a, [hli] - ld e, a - ld a, [hld] - ld d, a - dec hl - ld a, d - ld [hld], a - ld a, e - ld [hli], a -rept 3 - inc hl -endr - dec c - jr nz, .asm_12486 - pop de - dec hl - ld a, d - ld [hld], a - ld a, e - ld [hl], a - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 124a3 - -Function124a3: ; 124a3 - push bc - ld a, [Buffer1] - lb bc, $10, $20 - cp $1 - jr z, .asm_124b1 - lb bc, $00, $00 - -.asm_124b1 - ld a, [de] - add c - inc de - ld [hli], a - ld a, [de] - add b - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - pop bc - ret -; 124c1 - -UnknownScript_0x124c1:: ; 0x124c1 - callasm Function1250a - jump UnknownScript_0x124ce -; 0x124c8 - -UnknownScript_0x124c8:: ; 0x124c8 - refreshscreen $0 - callasm Function124fa - -UnknownScript_0x124ce: ; 0x124ce - writetext UnknownText_0x124f5 - closetext - special FadeBlackBGMap - pause 40 - special HealParty - checkflag ENGINE_BUG_CONTEST_TIMER - iftrue .script_64f2 - callasm HalveMoney - callasm Function12527 - farscall UnknownScript_0x122c1 - special WarpToSpawnPoint - newloadmap $f1 - resetfuncs - -.script_64f2 - jumpstd bugcontestresultswarp -; 0x124f5 - -UnknownText_0x124f5: ; 0x124f5 - ; is out of useable #MON! whited out! - text_jump UnknownText_0x1c0a4e - db "@" -; 0x124fa - -Function124fa: ; 124fa - call ClearPalettes - call ClearScreen - call Function3200 - call HideSprites - call Function4f0 - ret -; 1250a - -Function1250a: ; 1250a - ld b, $0 - call GetSGBLayout - call SetPalettes - ret -; 12513 - -HalveMoney: ; 12513 - -; Empty function... - callba MobileFn_1060c7 - -; Halve the player's money. - ld hl, Money - ld a, [hl] - srl a - ld [hli], a - ld a, [hl] - rra - ld [hli], a - ld a, [hl] - rra - ld [hl], a - ret -; 12527 - - -Function12527: ; 12527 - ld a, [wdcb2] - ld d, a - ld a, [wdcb3] - ld e, a - callba IsSpawnPoint - ld a, c - jr c, .yes - xor a - -.yes - ld [wd001], a - ret -; 1253d - -Script_ForcedMovement:: ; 0x1253d - checkcode VAR_FACING - if_equal DOWN, UnknownScript_0x12555 - if_equal UP, UnknownScript_0x12550 - if_equal LEFT, UnknownScript_0x1255f - if_equal RIGHT, UnknownScript_0x1255a - end -; 0x12550 - -UnknownScript_0x12550: ; 0x12550 - applymovement PLAYER, MovementData_0x12564 - end -; 0x12555 - -UnknownScript_0x12555: ; 0x12555 - applymovement PLAYER, MovementData_0x1256b - end -; 0x1255a - -UnknownScript_0x1255a: ; 0x1255a - applymovement PLAYER, MovementData_0x12572 - end -; 0x1255f - -UnknownScript_0x1255f: ; 0x1255f - applymovement PLAYER, MovementData_0x12579 - end -; 0x12564 - -MovementData_0x12564: ; 0x12564 - step_wait5 - big_step_down - turn_in_down - step_wait5 - big_step_down - turn_head_down - step_end -; 0x1256b - -MovementData_0x1256b: ; 0x1256b - step_wait5 - big_step_down - turn_in_up - step_wait5 - big_step_down - turn_head_up - step_end -; 0x12572 - -MovementData_0x12572: ; 0x12572 - step_wait5 - big_step_down - turn_in_left - step_wait5 - big_step_down - turn_head_left - step_end -; 0x12579 - -MovementData_0x12579: ; 0x12579 - step_wait5 - big_step_down - turn_in_right - step_wait5 - big_step_down - turn_head_right - step_end -; 0x12580 - - -ItemFinder: ; 12580 - callba CheckForSignpostItems - jr c, .asm_1258d - ld hl, UnknownScript_0x125ba - jr .asm_12590 - -.asm_1258d - ld hl, UnknownScript_0x125ad - -.asm_12590 - call QueueScript - ld a, $1 - ld [wd0ec], a - ret -; 12599 - -Function12599: ; 12599 - ld c, $4 -.asm_1259b - push bc - ld de, SFX_SECOND_PART_OF_ITEMFINDER - call WaitPlaySFX - ld de, SFX_TRANSACTION - call WaitPlaySFX - pop bc - dec c - jr nz, .asm_1259b - ret -; 125ad - -UnknownScript_0x125ad: ; 0x125ad - reloadmappart - special UpdateTimePals - callasm Function12599 - writetext UnknownText_0x125c3 - loadmovesprites - end -; 0x125ba - -UnknownScript_0x125ba: ; 0x125ba - reloadmappart - special UpdateTimePals - writetext UnknownText_0x125c8 - loadmovesprites - end -; 0x125c3 - -UnknownText_0x125c3: ; 0x125c3 - ; Yes! ITEMFINDER indicates there's an item nearby. - text_jump UnknownText_0x1c0a77 - db "@" -; 0x125c8 - -UnknownText_0x125c8: ; 0x125c8 - ; Nope! ITEMFINDER isn't responding. - text_jump UnknownText_0x1c0aa9 - db "@" -; 0x125cd - - -StartMenu:: ; 125cd - - call ResetTextRelatedRAM - - ld de, SFX_MENU - call PlaySFX - - callba Function6454 - - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - ld hl, .MenuDataHeader - jr z, .GotMenuData - ld hl, .ContestMenuDataHeader -.GotMenuData - - call LoadMenuDataHeader - call .SetUpMenuItems - ld a, [wd0d2] - ld [wMenuCursorBuffer], a - call .DrawMenuAccount_ - call MenuFunc_1e7f - call .DrawBugContestStatusBox - call Function2e31 - call Function2e20 - callba Function64bf - call .DrawBugContestStatus - call UpdateTimePals - jr .Select - -.Reopen - call UpdateSprites - call UpdateTimePals - call .SetUpMenuItems - ld a, [wd0d2] - ld [wMenuCursorBuffer], a - -.Select - call .GetInput - jr c, .Exit - call .DrawMenuAccount - ld a, [wMenuCursorBuffer] - ld [wd0d2], a - call PlayClickSFX - call Function1bee - call .OpenMenu - -; Menu items have different return functions. -; For example, saving exits the menu. - ld hl, .MenuReturns - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.MenuReturns - dw .Reopen - dw .Exit - dw .ExitMenuCallFuncLoadMoveSprites - dw .ExitMenuRunScriptLoadMoveSprites - dw .ExitMenuRunScript - dw .ReturnEnd - dw .ReturnRedraw - -.Exit - ld a, [hOAMUpdate] - push af - ld a, 1 - ld [hOAMUpdate], a - call Functione5f - pop af - ld [hOAMUpdate], a -.ReturnEnd - call ExitMenu -.ReturnEnd2 - call LoadMoveSprites - call UpdateTimePals - ret - -.GetInput -; Return carry on exit, and no-carry on selection. - xor a - ld [hBGMapMode], a - call .DrawMenuAccount - call SetUpMenu - ld a, $ff - ld [MenuSelection], a -.loop - call .PrintMenuAccount - call Function1f1a - ld a, [wcf73] - cp B_BUTTON - jr z, .b - cp A_BUTTON - jr z, .a - jr .loop -.a - call PlayClickSFX - and a - ret -.b - scf - ret -; 12691 - -.ExitMenuRunScript ; 12691 - call ExitMenu - ld a, HMENURETURN_SCRIPT - ld [hMenuReturn], a - ret -; 12699 - -.ExitMenuRunScriptLoadMoveSprites ; 12699 - call ExitMenu - ld a, HMENURETURN_SCRIPT - ld [hMenuReturn], a - jr .ReturnEnd2 -; 126a2 - -.ExitMenuCallFuncLoadMoveSprites ; 126a2 - call ExitMenu - ld hl, wQueuedScriptAddr - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wQueuedScriptBank] - rst FarCall - jr .ReturnEnd2 -; 126b1 - -.ReturnRedraw ; 126b1 - call .Clear - jp .Reopen -; 126b7 - -.Clear ; 126b7 - call WhiteBGMap - call Call_ExitMenu - call Function2bae - call .DrawMenuAccount_ - call MenuFunc_1e7f - call .DrawBugContestStatus - call UpdateSprites - call Functiond90 - call Function2b5c - ret -; 126d3 - - -.MenuDataHeader - db $40 ; tile backup - db 0, 10 ; start coords - db 17, 19 ; end coords - dw .MenuData - db 1 ; default selection - -.ContestMenuDataHeader - db $40 ; tile backup - db 2, 10 ; start coords - db 17, 19 ; end coords - dw .MenuData - db 1 ; default selection - -.MenuData - db %10101000 ; x padding, wrap around, start can close - dn 0, 0 ; rows, columns - dw MenuItemsList - dw .MenuString - dw .Items - -.Items - dw StartMenu_Pokedex, .PokedexString, .PokedexDesc - dw StartMenu_Pokemon, .PartyString, .PartyDesc - dw StartMenu_Pack, .PackString, .PackDesc - dw StartMenu_Status, .StatusString, .StatusDesc - dw StartMenu_Save, .SaveString, .SaveDesc - dw StartMenu_Option, .OptionString, .OptionDesc - dw StartMenu_Exit, .ExitString, .ExitDesc - dw StartMenu_Pokegear, .PokegearString, .PokegearDesc - dw StartMenu_Quit, .QuitString, .QuitDesc - -.PokedexString db "#DEX@" -.PartyString db "#MON@" -.PackString db "PACK@" -.StatusString db "<PLAYER>@" -.SaveString db "SAVE@" -.OptionString db "OPTION@" -.ExitString db "EXIT@" -.PokegearString db $24, "GEAR@" -.QuitString db "QUIT@" - -.PokedexDesc db "#MON" - next "database@" - -.PartyDesc db "Party ", $4a - next "status@" - -.PackDesc db "Contains" - next "items@" - -.PokegearDesc db "Trainer's" - next "key device@" - -.StatusDesc db "Your own" - next "status@" - -.SaveDesc db "Save your" - next "progress@" - -.OptionDesc db "Change" - next "settings@" - -.ExitDesc db "Close this" - next "menu@" - -.QuitDesc db "Quit and" - next "be judged.@" - - -.OpenMenu ; 127e5 - ld a, [MenuSelection] - call .GetMenuAccountTextPointer - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 127ef - -.MenuString ; 127ef - push de - ld a, [MenuSelection] - call .GetMenuAccountTextPointer -rept 2 - inc hl -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - call PlaceString - ret -; 12800 - -.MenuDesc ; 12800 - push de - ld a, [MenuSelection] - cp $ff - jr z, .none - call .GetMenuAccountTextPointer -rept 4 - inc hl -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - call PlaceString - ret -.none - pop de - ret -; 12819 - - -.GetMenuAccountTextPointer ; 12819 - ld e, a - ld d, 0 - ld hl, wcf97 - ld a, [hli] - ld h, [hl] - ld l, a -rept 6 - add hl, de -endr - ret -; 12829 - - -.SetUpMenuItems ; 12829 - xor a - ld [wcf76], a - call .FillMenuList - - ld hl, StatusFlags - bit 0, [hl] - jr z, .no_pokedex - ld a, 0 ; pokedex - call .AppendMenuList -.no_pokedex - - ld a, [PartyCount] - and a - jr z, .no_pokemon - ld a, 1 ; pokemon - call .AppendMenuList -.no_pokemon - - ld a, [wLinkMode] - and a - jr nz, .no_pack - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - jr nz, .no_pack - ld a, 2 ; pack - call .AppendMenuList -.no_pack - - ld hl, wPokegearFlags - bit 7, [hl] - jr z, .no_pokegear - ld a, 7 ; pokegear - call .AppendMenuList -.no_pokegear - - ld a, 3 ; status - call .AppendMenuList - - ld a, [wLinkMode] - and a - jr nz, .no_save - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - ld a, 8 ; quit - jr nz, .write - ld a, 4 ; save -.write - call .AppendMenuList -.no_save - - ld a, 5 ; option - call .AppendMenuList - ld a, 6 ; exit - call .AppendMenuList - ld a, c - ld [MenuItemsList], a - ret -; 1288d - - -.FillMenuList ; 1288d - xor a - ld hl, MenuItemsList - ld [hli], a - ld a, -1 - ld bc, MenuItemsListEnd - (MenuItemsList + 1) - call ByteFill - ld de, MenuItemsList + 1 - ld c, 0 - ret -; 128a0 - -.AppendMenuList ; 128a0 - ld [de], a - inc de - inc c - ret -; 128a4 - -.DrawMenuAccount_ ; 128a4 - jp .DrawMenuAccount -; 128a7 - -.PrintMenuAccount ; 128a7 - call .IsMenuAccountOn - ret z - call .DrawMenuAccount - decoord 0, 14 - jp .MenuDesc -; 128b4 - -.DrawMenuAccount ; 128b4 - call .IsMenuAccountOn - ret z - hlcoord 0, 13 - lb bc, 5, 10 - call ClearBox - hlcoord 0, 13 - ld b, 3 - ld c, 8 - jp TextBoxPalette -; 128cb - -.IsMenuAccountOn ; 128cb - ld a, [Options2] - and 1 - ret -; 128d1 - -.DrawBugContestStatusBox ; 128d1 - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - ret z - callba Function24bdc - ret -; 128de - -.DrawBugContestStatus ; 128de - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - jr nz, .contest - ret -.contest - callba Function24be7 - ret -; 128ed - - -StartMenu_Exit: ; 128ed -; Exit the menu. - - ld a, 1 - ret -; 128f0 - - -StartMenu_Quit: ; 128f0 -; Retire from the bug catching contest. - - ld hl, .EndTheContestText - call Function12cf5 - jr c, .DontEndContest - ld a, BANK(BugCatchingContestReturnToGateScript) - ld hl, BugCatchingContestReturnToGateScript - call FarQueueScript - ld a, 4 - ret - -.DontEndContest - ld a, 0 - ret - -.EndTheContestText - text_jump UnknownText_0x1c1a6c - db "@" -; 1290b - - -StartMenu_Save: ; 1290b -; Save the game. - - call BufferScreen - callba Function14a1a - jr nc, .asm_12919 - ld a, 0 - ret -.asm_12919 - ld a, 1 - ret -; 1291c - - -StartMenu_Option: ; 1291c -; Game options. - - call FadeToMenu - callba OptionsMenu - ld a, 6 - ret -; 12928 - - -StartMenu_Status: ; 12928 -; Player status. - - call FadeToMenu - callba Function25105 - call Function2b3c - ld a, 0 - ret -; 12937 - - -StartMenu_Pokedex: ; 12937 - - ld a, [PartyCount] - and a - jr z, .asm_12949 - - call FadeToMenu - callba Pokedex - call Function2b3c - -.asm_12949 - ld a, 0 - ret -; 1294c - - -StartMenu_Pokegear: ; 1294c - - call FadeToMenu - callba Function90b8d - call Function2b3c - ld a, 0 - ret -; 1295b - - -StartMenu_Pack: ; 1295b - - call FadeToMenu - callba Pack - ld a, [wcf66] - and a - jr nz, .asm_12970 - call Function2b3c - ld a, 0 - ret -.asm_12970 - call Function2b4d - ld a, 4 - ret -; 12976 - - -StartMenu_Pokemon: ; 12976 - - ld a, [PartyCount] - and a - jr z, .return - - call FadeToMenu - -.choosemenu - xor a - ld [PartyMenuActionText], a ; Choose a POKéMON. - call WhiteBGMap - -.menu - callba Function5004f - callba Function50405 - callba Function503e0 - -.menunoreload - callba WritePartyMenuTilemap - callba PrintPartyMenuText - call WaitBGMap - call SetPalettes ; load regular palettes? - call DelayFrame - callba PartyMenuSelect - jr c, .return ; if cancelled or pressed B - - call PokemonActionSubmenu - cp 3 - jr z, .menu - cp 0 - jr z, .choosemenu - cp 1 - jr z, .menunoreload - cp 2 - jr z, .quit - -.return - call Function2b3c - ld a, 0 - ret - -.quit - ld a, b - push af - call Function2b4d - pop af - ret -; 129d5 - -Function129d5: ; 129d5 - ld a, [NumItems] - and a - ret nz - ld a, [NumKeyItems] - and a - ret nz - ld a, [NumBalls] - and a - ret nz - ld hl, TMsHMs - ld b, NUM_TMS + NUM_HMS -.asm_129e9 - ld a, [hli] - and a - jr nz, .asm_129f2 - dec b - jr nz, .asm_129e9 - scf - ret -.asm_129f2 - and a - ret - -Function129f4: ; 129f4 - push de - call PartyMonItemName - callba _CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr nz, .asm_12a3f - ld hl, UnknownText_0x12a45 - call MenuTextBox - callba Function24fbf - push af - call WriteBackup - call ExitMenu - pop af - jr c, .asm_12a42 - ld hl, UnknownText_0x12a4a - call MenuTextBox - call YesNoBox - push af - call ExitMenu - pop af - jr c, .asm_12a42 - pop hl - ld a, [wd107] - call TossItem - call PartyMonItemName - ld hl, UnknownText_0x12a4f - call MenuTextBox - call ExitMenu - and a - ret -.asm_12a3f - call Function12a54 -.asm_12a42 - pop hl - scf - ret -; 12a45 (4:6a45) - -UnknownText_0x12a45: ; 0x12a45 - ; Toss out how many @ (S)? - text_jump UnknownText_0x1c1a90 - db "@" -; 0x12a4a - -UnknownText_0x12a4a: ; 0x12a4a - ; Throw away @ @ (S)? - text_jump UnknownText_0x1c1aad - db "@" -; 0x12a4f - -UnknownText_0x12a4f: ; 0x12a4f - ; Discarded @ (S). - text_jump UnknownText_0x1c1aca - db "@" -; 0x12a54 - -Function12a54: ; 12a54 (4:6a54) - ld hl, UnknownText_0x12a5b - call MenuTextBoxBackup - ret -; 12a5b (4:6a5b) - -UnknownText_0x12a5b: ; 0x12a5b - ; That's too impor- tant to toss out! - text_jump UnknownText_0x1c1adf - db "@" -; 0x12a60 - -CantUseItem: ; 12a60 - ld hl, CantUseItemText - call Function2012 - ret -; 12a67 - -CantUseItemText: ; 12a67 - text_jump UnknownText_0x1c1b03 - db "@" -; 12a6c - - -PartyMonItemName: ; 12a6c - ld a, [CurItem] - ld [wd265], a - call GetItemName - call CopyName1 - ret -; 12a79 - - -CancelPokemonAction: ; 12a79 - callba Function50405 - callba Function8ea71 - ld a, 1 - ret -; 12a88 - - -PokemonActionSubmenu: ; 12a88 - hlcoord 1, 15 - lb bc, 2, 18 - call ClearBox - callba Function24d19 - call GetCurNick - ld a, [MenuSelection] - ld hl, .Actions - ld de, 3 - call IsInArray - jr nc, .nothing - - inc hl - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.nothing - ld a, 0 - ret - -.Actions - dbw 1, Function12e1b ; Cut - dbw 2, Function12e30 ; Fly - dbw 3, Function12ebd ; Surf - dbw 4, Function12e6a ; Strength - dbw 6, Function12e55 ; Flash - dbw 7, Function12e7f ; Whirlpool - dbw 8, Function12ed1 ; Dig - dbw 9, Function12ea9 ; Teleport - dbw 10, Function12ee6 ; Softboiled - dbw 13, Function12ee6 ; MilkDrink - dbw 11, Function12f26 ; Headbutt - dbw 5, Function12e94 ; Waterfall - dbw 12, Function12f3b ; RockSmash - dbw 14, Function12f50 ; SweetScent - dbw 15, OpenPartyStats - dbw 16, SwitchPartyMons - dbw 17, GiveTakePartyMonItem - dbw 18, CancelPokemonAction - dbw 19, Function12fba ; move - dbw 20, MonMailAction ; mail -; 12aec - - -SwitchPartyMons: ; 12aec - -; Don't try if there's nothing to switch! - ld a, [PartyCount] - cp 2 - jr c, .DontSwitch - - ld a, [CurPartyMon] - inc a - ld [wd0e3], a - - callba Function8ea8c - callba Function5042d - - ld a, 4 - ld [PartyMenuActionText], a - callba WritePartyMenuTilemap - callba PrintPartyMenuText - - hlcoord 0, 1 - ld bc, 20 * 2 - ld a, [wd0e3] - dec a - call AddNTimes - ld [hl], "▷" - call WaitBGMap - call SetPalettes - call DelayFrame - - callba PartyMenuSelect - bit 1, b - jr c, .DontSwitch - - callba Function50f12 - - xor a - ld [PartyMenuActionText], a - - callba Function5004f - callba Function50405 - callba Function503e0 - - ld a, 1 - ret - -.DontSwitch - xor a - ld [PartyMenuActionText], a - call CancelPokemonAction - ret -; 12b60 - - -GiveTakePartyMonItem: ; 12b60 - -; Eggs can't hold items! - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_12ba6 - - ld hl, GiveTakeItemMenuData - call LoadMenuDataHeader - call InterpretMenu2 - call ExitMenu - jr c, .asm_12ba6 - - call GetCurNick - ld hl, StringBuffer1 - ld de, wd050 - ld bc, $b - call CopyBytes - ld a, [wcfa9] - cp 1 - jr nz, .asm_12ba0 - - call LoadMenuDataHeader_0x1d75 - call ClearPalettes - call Function12ba9 - call ClearPalettes - call LoadFontsBattleExtra - call ExitMenu - ld a, 0 - ret - -.asm_12ba0 - call TakePartyItem - ld a, 3 - ret - -.asm_12ba6 - ld a, 3 - ret -; 12ba9 - - -Function12ba9: ; 12ba9 - - callba Function106a5 - -.loop - callba Function106be - - ld a, [wcf66] - and a - jr z, .quit - - ld a, [wcf65] - cp 2 - jr z, .next - - call CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr nz, .next - - call Function12bd9 - jr .quit - -.next - ld hl, CantBeHeldText - call MenuTextBoxBackup - jr .loop - -.quit - ret -; 12bd9 - - -Function12bd9: ; 12bd9 - - call SpeechTextBox - call PartyMonItemName - call GetPartyItemLocation - ld a, [hl] - and a - jr z, .asm_12bf4 - - push hl - ld d, a - callba ItemIsMail - pop hl - jr c, .asm_12c01 - ld a, [hl] - jr .asm_12c08 - -.asm_12bf4 - call Function12cea - ld hl, MadeHoldText - call MenuTextBoxBackup - call GivePartyItem - ret - -.asm_12c01 - ld hl, PleaseRemoveMailText - call MenuTextBoxBackup - ret - -.asm_12c08 - ld [wd265], a - call GetItemName - ld hl, SwitchAlreadyHoldingText - call Function12cf5 - jr c, .asm_12c4b - - call Function12cea - ld a, [wd265] - push af - ld a, [CurItem] - ld [wd265], a - pop af - ld [CurItem], a - call Function12cdf - jr nc, .asm_12c3c - - ld hl, TookAndMadeHoldText - call MenuTextBoxBackup - ld a, [wd265] - ld [CurItem], a - call GivePartyItem - ret - -.asm_12c3c - ld a, [wd265] - ld [CurItem], a - call Function12cdf - ld hl, ItemStorageIsFullText - call MenuTextBoxBackup - -.asm_12c4b - ret -; 12c4c - - -GivePartyItem: ; 12c4c - - call GetPartyItemLocation - ld a, [CurItem] - ld [hl], a - ld d, a - callba ItemIsMail - jr nc, .asm_12c5f - call Function12cfe - -.asm_12c5f - ret -; 12c60 - - -TakePartyItem: ; 12c60 - - call SpeechTextBox - call GetPartyItemLocation - ld a, [hl] - and a - jr z, .asm_12c8c - - ld [CurItem], a - call Function12cdf - jr nc, .asm_12c94 - - callba ItemIsMail - call GetPartyItemLocation - ld a, [hl] - ld [wd265], a - ld [hl], NO_ITEM - call GetItemName - ld hl, TookFromText - call MenuTextBoxBackup - jr .asm_12c9a - -.asm_12c8c - ld hl, IsntHoldingAnythingText - call MenuTextBoxBackup - jr .asm_12c9a - -.asm_12c94 - ld hl, ItemStorageIsFullText - call MenuTextBoxBackup - -.asm_12c9a - ret -; 12c9b - - -GiveTakeItemMenuData: ; 12c9b - db %01010000 - db 12, 12 ; start coords - db 17, 19 ; end coords - dw .Items - db 1 ; default option - -.Items - db %10000000 ; x padding - db 2 ; # items - db "GIVE@" - db "TAKE@" -; 12caf - - -TookAndMadeHoldText: ; 12caf - text_jump UnknownText_0x1c1b2c - db "@" -; 12cb4 - -MadeHoldText: ; 12cb4 - text_jump UnknownText_0x1c1b57 - db "@" -; 12cb9 - -PleaseRemoveMailText: ; 12cb9 - text_jump UnknownText_0x1c1b6f - db "@" -; 12cbe - -IsntHoldingAnythingText: ; 12cbe - text_jump UnknownText_0x1c1b8e - db "@" -; 12cc3 - -ItemStorageIsFullText: ; 12cc3 - text_jump UnknownText_0x1c1baa - db "@" -; 12cc8 - -TookFromText: ; 12cc8 - text_jump UnknownText_0x1c1bc4 - db "@" -; 12ccd - -SwitchAlreadyHoldingText: ; 12ccd - text_jump UnknownText_0x1c1bdc - db "@" -; 12cd2 - -CantBeHeldText: ; 12cd2 - text_jump UnknownText_0x1c1c09 - db "@" -; 12cd7 - - -GetPartyItemLocation: ; 12cd7 - push af - ld a, PartyMon1Item - PartyMon1 - call GetPartyParamLocation - pop af - ret -; 12cdf - - -Function12cdf: ; 12cdf - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld hl, NumItems - jp ReceiveItem -; 12cea - - -Function12cea: ; 12cea (4:6cea) - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld hl, NumItems - jp TossItem - -Function12cf5: ; 12cf5 - call MenuTextBox - call YesNoBox - jp ExitMenu -; 12cfe - - -Function12cfe: ; 12cfe (4:6cfe) - ld de, DefaultFlypoint - callba Function11e75 - ld hl, PlayerName - ld de, wd023 - ld bc, $a - call CopyBytes - ld hl, PlayerID - ld bc, $2 - call CopyBytes - ld a, [CurPartySpecies] - ld [de], a - inc de - ld a, [CurItem] - ld [de], a - ld a, [CurPartyMon] - ld hl, s0_a600 - ld bc, $2f - call AddNTimes - ld d, h - ld e, l - ld hl, DefaultFlypoint - ld bc, $2f - ld a, BANK(s0_a600) - call GetSRAMBank - call CopyBytes - call CloseSRAM - ret - -MonMailAction: ; 12d45 -; If in the time capsule or trade center, -; selecting the mail only allows you to -; read the mail. - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr z, .read - cp LINK_TRADECENTER - jr z, .read - -; Show the READ/TAKE/QUIT menu. - ld hl, .MenuDataHeader - call LoadMenuDataHeader - call InterpretMenu2 - call ExitMenu - -; Interpret the menu. - jp c, .done - ld a, [wcfa9] - cp $1 - jr z, .read - cp $2 - jr z, .take - jp .done - -.read - callba ReadPartyMonMail - ld a, $0 - ret - -.take - ld hl, .sendmailtopctext - call Function12cf5 - jr c, .RemoveMailToBag - ld a, [CurPartyMon] - ld b, a - callba Function4456e - jr c, .MailboxFull - ld hl, .sentmailtopctext - call MenuTextBoxBackup - jr .done - -.MailboxFull - ld hl, .mailboxfulltext - call MenuTextBoxBackup - jr .done - -.RemoveMailToBag - ld hl, .mailwilllosemessagetext - call Function12cf5 - jr c, .done - call GetPartyItemLocation - ld a, [hl] - ld [CurItem], a - call Function12cdf - jr nc, .BagIsFull - call GetPartyItemLocation - ld [hl], $0 - call GetCurNick - ld hl, .tookmailfrommontext - call MenuTextBoxBackup - jr .done - -.BagIsFull - ld hl, .bagfulltext - call MenuTextBoxBackup - jr .done - -.done - ld a, $3 - ret -; 12dc9 - - -.MenuDataHeader: ; 0x12dc9 - db $40 ; flags - db 10, 12 ; start coords - db 17, 19 ; end coords - dw .MenuData2 - db 1 ; default option -; 0x12dd1 - -.MenuData2: ; 0x12dd1 - db $80 ; flags - db 3 ; items - db "READ@" - db "TAKE@" - db "QUIT@" -; 0x12de2 - - -.mailwilllosemessagetext: ; 0x12de2 -; The MAIL will lose its message. OK? - text_jump UnknownText_0x1c1c22 - db "@" -; 0x12de7 - -.tookmailfrommontext: ; 0x12de7 -; MAIL detached from <POKEMON>. - text_jump UnknownText_0x1c1c47 - db "@" -; 0x12dec - -.bagfulltext: ; 0x12dec -; There's no space for removing MAIL. - text_jump UnknownText_0x1c1c62 - db "@" -; 0x12df1 - -.sendmailtopctext: ; 0x12df1 -; Send the removed MAIL to your PC? - text_jump UnknownText_0x1c1c86 - db "@" -; 0x12df6 - -.mailboxfulltext: ; 0x12df6 -; Your PC's MAILBOX is full. - text_jump UnknownText_0x1c1ca9 - db "@" -; 0x12dfb - -.sentmailtopctext: ; 0x12dfb -; The MAIL was sent to your PC. - text_jump UnknownText_0x1c1cc4 - db "@" -; 0x12e00 - - -OpenPartyStats: ; 12e00 - call LoadMenuDataHeader_0x1d75 - call ClearSprites -; PartyMon - xor a - ld [MonType], a - call LowVolume - predef StatsScreenInit - call MaxVolume - call Call_ExitMenu - ld a, 0 - ret -; 12e1b - - -Function12e1b: ; 12e1b - callba CutFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12e2d - ld b, $4 - ld a, $2 - ret - -.asm_12e2d - ld a, $3 - ret -; 12e30 - - -Function12e30: ; 12e30 - callba FlyFunction - ld a, [wd0ec] - cp $2 - jr z, .asm_12e4c - cp $0 - jr z, .asm_12e4f - callba MobileFn_1060b5 - ld b, $4 - ld a, $2 - ret - -.asm_12e4c - ld a, $3 - ret - -.asm_12e4f - ld a, $0 - ret - -.asm_12e52 - ld a, $1 - ret -; 12e55 - -Function12e55: ; 12e55 - callba Functionc8ac - ld a, [wd0ec] - cp $1 - jr nz, .asm_12e67 - ld b, $4 - ld a, $2 - ret - -.asm_12e67 - ld a, $3 - ret -; 12e6a - -Function12e6a: ; 12e6a - callba StrengthFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12e7c - ld b, $4 - ld a, $2 - ret - -.asm_12e7c - ld a, $3 - ret -; 12e7f - -Function12e7f: ; 12e7f - callba WhirlpoolFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12e91 - ld b, $4 - ld a, $2 - ret - -.asm_12e91 - ld a, $3 - ret -; 12e94 - -Function12e94: ; 12e94 - callba Functioncade - ld a, [wd0ec] - cp $1 - jr nz, .asm_12ea6 - ld b, $4 - ld a, $2 - ret - -.asm_12ea6 - ld a, $3 - ret -; 12ea9 - -Function12ea9: ; 12ea9 - callba TeleportFunction - ld a, [wd0ec] - and a - jr z, .asm_12eba - ld b, $4 - ld a, $2 - ret - -.asm_12eba - ld a, $3 - ret -; 12ebd - -Function12ebd: ; 12ebd - callba SurfFunction - ld a, [wd0ec] - and a - jr z, .asm_12ece - ld b, $4 - ld a, $2 - ret - -.asm_12ece - ld a, $3 - ret -; 12ed1 - -Function12ed1: ; 12ed1 - callba DigFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12ee3 - ld b, $4 - ld a, $2 - ret - -.asm_12ee3 - ld a, $3 - ret -; 12ee6 - -Function12ee6: ; 12ee6 - call Function12f05 - jr nc, .asm_12ef3 - callba Functionf3df - jr .asm_12ef9 - -.asm_12ef3 - ld hl, UnknownText_0x12f00 - call PrintText - -.asm_12ef9 - xor a - ld [PartyMenuActionText], a - ld a, $3 - ret -; 12f00 - -UnknownText_0x12f00: ; 0x12f00 - ; Not enough HP! - text_jump UnknownText_0x1c1ce3 - db "@" -; 0x12f05 - -Function12f05: ; 12f05 - ld a, PartyMon1MaxHP - PartyMon1 - call GetPartyParamLocation - ld a, [hli] - ld [hDividend + 0], a - ld a, [hl] - ld [hDividend + 1], a - ld a, $5 - ld [hDivisor], a - ld b, $2 - call Divide - ld a, PartyMon1HP + 1 - PartyMon1 - call GetPartyParamLocation - ld a, [hQuotient + 2] - sub [hl] - dec hl - ld a, [hQuotient + 1] - sbc [hl] - ret -; 12f26 - -Function12f26: ; 12f26 - callba HeadbuttFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12f38 - ld b, $4 - ld a, $2 - ret - -.asm_12f38 - ld a, $3 - ret -; 12f3b - -Function12f3b: ; 12f3b - callba RockSmashFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12f4d - ld b, $4 - ld a, $2 - ret - -.asm_12f4d - ld a, $3 - ret -; 12f50 - -Function12f50: ; 12f50 - callba DoMovementFunctionc - ld b, $4 - ld a, $2 - ret -; 12f5b - -Function12f5b: ; 12f5b - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call LoadFontsBattleExtra - call Function12f73 - pop bc - ld a, b - ld [Options], a - push af - call WhiteBGMap - pop af - ret -; 12f73 - -Function12f73: ; 12f73 - call Function13172 - ld de, Unknown_12fb2 - call Function1bb1 - call Function131ef - ld hl, wcfa5 - set 6, [hl] - jr Function12f93 - -Function12f86: ; 12f86 - call Function1bd3 - bit 1, a - jp nz, Function12f9f - bit 0, a - jp nz, Function12f9c - -Function12f93: ; 12f93 - call Function13235 - call Function13256 - jp Function12f86 -; 12f9c - -Function12f9c: ; 12f9c - and a - jr Function12fa0 - -Function12f9f: ; 12f9f - scf - -Function12fa0: ; 12fa0 - push af - xor a - ld [wd0e3], a - ld hl, wcfa5 - res 6, [hl] - call ClearSprites - call ClearTileMap - pop af - ret -; 12fb2 - -Unknown_12fb2: ; 12fb2 - db $03, $01, $03, $01, $40, $00, $20, $c3 -; 12fba - -Function12fba: ; 12fba - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_12fd2 - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call Function12fd5 - pop af - ld [Options], a - call WhiteBGMap - -.asm_12fd2 - ld a, $0 - ret -; 12fd5 - -Function12fd5: ; 12fd5 - ld a, [CurPartyMon] - inc a - ld [wd0d8], a - call Function13172 - call Function132d3 - ld de, Unknown_13163 - call Function1bb1 -.asm_12fe8 - call Function131ef - ld hl, wcfa5 - set 6, [hl] - jr .asm_13009 - -.asm_12ff2 - call Function1bd3 - bit 1, a - jp nz, .asm_13038 - bit 0, a - jp nz, .asm_130c6 - bit 4, a - jp nz, .asm_1305b - bit 5, a - jp nz, .asm_13075 - -.asm_13009 - call Function13235 - ld a, [wd0e3] - and a - jr nz, .asm_13018 - call Function13256 - jp .asm_12ff2 - -.asm_13018 - ld a, " " - hlcoord 1, 11 - ld bc, 5 - call ByteFill - hlcoord 1, 12 - lb bc, 5, SCREEN_WIDTH - 2 - call ClearBox - hlcoord 1, 12 - ld de, String_1316b - call PlaceString - jp .asm_12ff2 -.asm_13038: ; 13038 - call PlayClickSFX - call WaitSFX - ld a, [wd0e3] - and a - jp z, Function13154 - ld a, [wd0e3] - ld [wcfa9], a - xor a - ld [wd0e3], a - hlcoord 1, 2 - lb bc, 8, SCREEN_WIDTH - 2 - call ClearBox - jp .asm_12fe8 -; 1305b - -.asm_1305b: ; 1305b - ld a, [wd0e3] - and a - jp nz, .asm_12ff2 - ld a, [CurPartyMon] - ld b, a - push bc - call .asm_1308f - pop bc - ld a, [CurPartyMon] - cp b - jp z, .asm_12ff2 - jp Function12fd5 - -.asm_13075: ; 13075 - ld a, [wd0e3] - and a - jp nz, .asm_12ff2 - ld a, [CurPartyMon] - ld b, a - push bc - call .asm_130a7 - pop bc - ld a, [CurPartyMon] - cp b - jp z, .asm_12ff2 - jp Function12fd5 - -.asm_1308f - ld a, [CurPartyMon] - inc a - ld [CurPartyMon], a - ld c, a - ld b, 0 - ld hl, PartySpecies - add hl, bc - ld a, [hl] - cp $ff - jr z, .asm_130a7 - cp EGG - ret nz - jr .asm_1308f - -.asm_130a7 - ld a, [CurPartyMon] - and a - ret z -.asm_130ac - ld a, [CurPartyMon] - dec a - ld [CurPartyMon], a - ld c, a - ld b, 0 - ld hl, PartySpecies - add hl, bc - ld a, [hl] - cp EGG - ret nz - ld a, [CurPartyMon] - and a - jr z, .asm_1308f - jr .asm_130ac -; 130c6 - -.asm_130c6: ; 130c6 - call PlayClickSFX - call WaitSFX - ld a, [wd0e3] - and a - jr nz, .asm_130de - ld a, [wcfa9] - ld [wd0e3], a - call Function1bee - jp .asm_13018 - -.asm_130de - ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 - ld a, [CurPartyMon] - call AddNTimes - push hl - call Function1313a - pop hl - ld bc, $0015 - add hl, bc - call Function1313a - ld a, [wBattleMode] - jr z, .asm_13113 - ld hl, BattleMonMoves - ld bc, $0020 - ld a, [CurPartyMon] - call AddNTimes - push hl - call Function1313a - pop hl - ld bc, $0006 - add hl, bc - call Function1313a - -.asm_13113 - ld de, SFX_SWITCH_POKEMON - call PlaySFX - call WaitSFX - ld de, SFX_SWITCH_POKEMON - call PlaySFX - call WaitSFX - hlcoord 1, 2 - lb bc, 8, 18 - call ClearBox - hlcoord 10, 10 - lb bc, 1, 9 - call ClearBox - jp .asm_12fe8 -; 1313a - -Function1313a: ; 1313a - push hl - ld a, [wcfa9] - dec a - ld c, a - ld b, $0 - add hl, bc - ld d, h - ld e, l - pop hl - ld a, [wd0e3] - dec a - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - ld b, [hl] - ld [hl], a - ld a, b - ld [de], a - ret -; 13154 - -Function13154: ; 13154 - xor a - ld [wd0e3], a - ld hl, wcfa5 - res 6, [hl] - call ClearSprites - jp ClearTileMap -; 13163 - -Unknown_13163: ; 13163 - db $03, $01, $03, $01, $40, $00, $20, $f3 -; 1316b - -String_1316b: ; 1316b - db "Where?@" -; 13172 - -Function13172: ; 13172 - call WhiteBGMap - call ClearTileMap - call ClearSprites - xor a - ld [hBGMapMode], a - callba Functionfb571 - callba InefficientlyClear121BytesAtwc300 - ld a, [CurPartyMon] - ld e, a - ld d, $0 - ld hl, PartySpecies - add hl, de - ld a, [hl] - ld [wd265], a - ld e, $2 - callba Function8e83f - hlcoord 0, 1 - ld b, $9 - ld c, $12 - call TextBox - hlcoord 0, 11 - ld b, $5 - ld c, $12 - call TextBox - hlcoord 2, 0 - lb bc, 2, 3 - call ClearBox - xor a - ld [MonType], a - ld hl, PartyMonNicknames - ld a, [CurPartyMon] - call GetNick - hlcoord 5, 1 - call PlaceString - push bc - callba CopyPkmnToTempMon - pop hl - call PrintLevel - ld hl, PlayerHPPal - call SetHPPal - ld b, $e - call GetSGBLayout - hlcoord 16, 0 - lb bc, 1, 3 - jp ClearBox -; 131ef - -Function131ef: ; 131ef - xor a - ld [hBGMapMode], a - ld [wd0e3], a - ld [MonType], a - predef CopyPkmnToTempMon - ld hl, TempMonMoves - ld de, wListMoves_MoveIndicesBuffer - ld bc, NUM_MOVES - call CopyBytes - ld a, SCREEN_WIDTH * 2 - ld [Buffer1], a - hlcoord 2, 3 - predef ListMoves - hlcoord 10, 4 - predef Function50c50 - call WaitBGMap - call SetPalettes - ld a, [wd0eb] - inc a - ld [wcfa3], a - hlcoord 0, 11 - ld b, 5 - ld c, 18 - jp TextBox -; 13235 - -Function13235: ; 13235 - ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 - ld a, [CurPartyMon] - call AddNTimes - ld a, [wcfa9] - dec a - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [CurSpecies], a - hlcoord 1, 12 - lb bc, 5, 18 - jp ClearBox -; 13256 - -Function13256: ; 13256 - xor a - ld [hBGMapMode], a - hlcoord 0, 10 - ld de, String_132ba - call PlaceString - hlcoord 0, 11 - ld de, String_132c2 - call PlaceString - hlcoord 12, 12 - ld de, String_132ca - call PlaceString - ld a, [CurSpecies] - ld b, a - hlcoord 2, 12 - predef PrintMoveType - ld a, [CurSpecies] - dec a - ld hl, Moves + MOVE_POWER - ld bc, MOVE_LENGTH - call AddNTimes - ld a, BANK(Moves) - call GetFarByte - hlcoord 16, 12 - cp $2 - jr c, .asm_132a7 - ld [wd265], a - ld de, wd265 - lb bc, 1, 3 - call PrintNum - jr .asm_132ad - -.asm_132a7 - ld de, String_132cf - call PlaceString - -.asm_132ad - hlcoord 1, 14 - predef PrintMoveDesc - ld a, $1 - ld [hBGMapMode], a - ret -; 132ba - -String_132ba: ; 132ba - db "┌─────┐@" -; 132c2 -String_132c2: ; 132c2 - db "│TYPE/└@" -; 132ca -String_132ca: ; 132ca - db "ATK/@" -; 132cf -String_132cf: ; 132cf - db "---@" -; 132d3 - -Function132d3: ; 132d3 - call Function132da - call Function132fe - ret -; 132da - -Function132da: ; 132da - ld a, [CurPartyMon] - and a - ret z - ld c, a - ld e, a - ld d, 0 - ld hl, PartyCount - add hl, de -.asm_132e7 - ld a, [hl] - and a - jr z, .asm_132f3 - cp EGG - jr z, .asm_132f3 - cp NUM_POKEMON + 1 - jr c, .asm_132f8 - -.asm_132f3 - dec hl - dec c - jr nz, .asm_132e7 - ret - -.asm_132f8 - hlcoord 16, 0 - ld [hl], $71 - ret -; 132fe - -Function132fe: ; 132fe - ld a, [CurPartyMon] - inc a - ld c, a - ld a, [PartyCount] - cp c - ret z - ld e, c - ld d, 0 - ld hl, PartySpecies - add hl, de -.asm_1330f - ld a, [hl] - cp $ff - ret z - and a - jr z, .asm_1331e - cp EGG - jr z, .asm_1331e - cp NUM_POKEMON + 1 - jr c, .asm_13321 - -.asm_1331e - inc hl - jr .asm_1330f - -.asm_13321 - hlcoord 18, 0 - ld [hl], "▶" - ret -; 13327 - - -SelectMenu:: ; 13327 - - call CheckRegisteredItem - jr c, .NotRegistered - jp UseRegisteredItem - -.NotRegistered - call LoadFont - ld b, BANK(ItemMayBeRegisteredText) - ld hl, ItemMayBeRegisteredText - call MapTextbox - call CloseText - jp LoadMoveSprites -; 13340 - - -ItemMayBeRegisteredText: ; 13340 - text_jump UnknownText_0x1c1cf3 - db "@" -; 13345 - - -CheckRegisteredItem: ; 13345 - - ld a, [WhichRegisteredItem] - and a - jr z, .NoRegisteredItem - and REGISTERED_POCKET - rlca - rlca - ld hl, .Pockets - rst JumpTable - ret - -.Pockets - dw .CheckItem - dw .CheckBall - dw .CheckKeyItem - dw .CheckTMHM - -.CheckItem - ld hl, NumItems - call .CheckRegisteredNo - jr c, .NoRegisteredItem - inc hl - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - call .IsSameItem - jr c, .NoRegisteredItem - and a - ret - -.CheckKeyItem - ld a, [RegisteredItem] - ld hl, KeyItems - ld de, 1 - call IsInArray - jr nc, .NoRegisteredItem - ld a, [RegisteredItem] - ld [CurItem], a - and a - ret - -.CheckBall - ld hl, NumBalls - call .CheckRegisteredNo - jr nc, .NoRegisteredItem - inc hl - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - call .IsSameItem - jr c, .NoRegisteredItem - ret - -.CheckTMHM - jr .NoRegisteredItem - -.NoRegisteredItem - xor a - ld [WhichRegisteredItem], a - ld [RegisteredItem], a - scf - ret -; 133a6 - - -.CheckRegisteredNo ; 133a6 - ld a, [WhichRegisteredItem] - and REGISTERED_NUMBER - dec a - cp [hl] - jr nc, .NotEnoughItems - ld [wd107], a - and a - ret - -.NotEnoughItems - scf - ret -; 133b6 - - -.IsSameItem ; 133b6 - ld a, [RegisteredItem] - cp [hl] - jr nz, .NotSameItem - ld [CurItem], a - and a - ret - -.NotSameItem - scf - ret -; 133c3 - - -UseRegisteredItem: ; 133c3 - - callba CheckItemMenu - ld a, [wItemAttributeParamBuffer] - ld hl, .SwitchTo - rst JumpTable - ret - -.SwitchTo - dw .CantUse - dw .NoFunction - dw .NoFunction - dw .NoFunction - dw .Current - dw .Party - dw .Overworld -; 133df - -.NoFunction ; 133df - call LoadFont - call CantUseItem - call LoadMoveSprites - and a - ret -; 133ea - -.Current ; 133ea - call LoadFont - call DoItemEffect - call LoadMoveSprites - and a - ret -; 133f5 - -.Party ; 133f5 - call ResetWindow - call FadeToMenu - call DoItemEffect - call Function2b3c - call LoadMoveSprites - and a - ret -; 13406 - -.Overworld ; 13406 - call ResetWindow - ld a, 1 - ld [wd0ef], a - call DoItemEffect - xor a - ld [wd0ef], a - ld a, [wd0ec] - cp 1 - jr nz, ._cantuse - scf - ld a, HMENURETURN_SCRIPT - ld [hMenuReturn], a - ret -; 13422 - -.CantUse ; 13422 - call ResetWindow - -._cantuse - call CantUseItem - call LoadMoveSprites - and a - ret -; 1342d - - -Elevator:: ; 1342d - call Function1344a - call Function1347d - jr c, .asm_13448 - ld [wd041], a - call Function134dd - jr c, .asm_13448 - ld hl, wd041 - cp [hl] - jr z, .asm_13448 - call Function134c0 - and a - ret - -.asm_13448 - scf - ret -; 1344a - -Function1344a: ; 1344a - ld a, b - ld [EngineBuffer1], a - ld a, e - ld [wd03f], a - ld a, d - ld [wd040], a - call Function1345a - ret -; 1345a - -Function1345a: ; 1345a - ld de, OBPals + 8 * 6 - ld bc, $0004 - ld hl, wd03f - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [EngineBuffer1] - call GetFarByte - inc hl - ld [de], a - inc de -.asm_1346f - ld a, [EngineBuffer1] - call GetFarByte - ld [de], a - inc de - add hl, bc - cp $ff - jr nz, .asm_1346f - ret -; 1347d - -Function1347d: ; 1347d - ld hl, wd03f - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [EngineBuffer1] - call GetFarByte - ld c, a - inc hl - ld a, [BackupMapGroup] - ld d, a - ld a, [BackupMapNumber] - ld e, a - ld b, $0 -.asm_13495 - ld a, [EngineBuffer1] - call GetFarByte - cp $ff - jr z, .asm_134be -rept 2 - inc hl -endr - ld a, [EngineBuffer1] - call GetFarByte - inc hl - cp d - jr nz, .asm_134b7 - ld a, [EngineBuffer1] - call GetFarByte - inc hl - cp e - jr nz, .asm_134b8 - jr .asm_134bb - -.asm_134b7 - inc hl - -.asm_134b8 - inc b - jr .asm_13495 - -.asm_134bb - xor a - ld a, b - ret - -.asm_134be - scf - ret -; 134c0 - -Function134c0: ; 134c0 - push af - ld hl, wd03f - ld a, [hli] - ld h, [hl] - ld l, a - inc hl - pop af - ld bc, $0004 - call AddNTimes - inc hl - ld de, wdcac - ld a, [EngineBuffer1] - ld bc, $0003 - call FarCopyBytes - ret -; 134dd - -Function134dd: ; 134dd - call LoadMenuDataHeader_0x1d75 - ld hl, Elevator_WhichFloorText - call PrintText - call Elevator_GetCurrentFloorText - ld hl, Elevator_MenuDataHeader - call CopyMenuDataHeader - call Function352f - call UpdateSprites - xor a - ld [wd0e4], a - call Function350c - call WriteBackup - ld a, [wcf73] - cp $2 - jr z, .asm_1350b - xor a - ld a, [wcf77] - ret - -.asm_1350b - scf - ret -; 1350d - -Elevator_WhichFloorText: ; 0x1350d - ; Which floor? - text_jump UnknownText_0x1bd2bc - db "@" -; 0x13512 - - -Elevator_GetCurrentFloorText: ; 13512 - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - hlcoord 0, 0 - ld b, $4 - ld c, $8 - call TextBox - hlcoord 1, 2 - ld de, Elevator_CurrentFloorText - call PlaceString - hlcoord 4, 4 - call Elevator_GetCurrentFloorString - pop af - ld [Options], a - ret -; 13537 - -Elevator_CurrentFloorText: ; 13537 - db "Now on:@" -; 1353f - - -Elevator_GetCurrentFloorString: ; 1353f - push hl - ld a, [wd041] - ld e, a - ld d, 0 - ld hl, wd0f1 - add hl, de - ld a, [hl] - pop de - call GetFloorString - ret -; 13550 - -Elevator_MenuDataHeader: ; 0x13550 - db $40 ; flags - db 01, 12 ; start coords - db 09, 18 ; end coords - dw Elevator_MenuData2 - db 1 ; default option -; 0x13558 - -Elevator_MenuData2: ; 0x13558 - db $10 ; flags - db 4, 0 ; rows, columns - db 1 ; horizontal spacing - dbw 0, OBPals + 8 * 6 - dba GetElevatorFlorStrings - dba NULL - dba NULL -; 13568 - -GetElevatorFlorStrings: ; 13568 - ld a, [MenuSelection] - -GetFloorString: ; 1356b - push de - call FloorToString - ld d, h - ld e, l - pop hl - jp PlaceString -; 13575 - -FloorToString: ; 13575 - push de - ld e, a - ld d, 0 - ld hl, .floors -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - pop de - ret -; 13583 - -.floors - dw .b4f - dw .b3f - dw .b2f - dw .b1f - dw ._1f - dw ._2f - dw ._3f - dw ._4f - dw ._5f - dw ._6f - dw ._7f - dw ._8f - dw ._9f - dw ._10f - dw ._11f - dw .roof - -.b4f - db "B4F@" -.b3f - db "B3F@" -.b2f - db "B2F@" -.b1f - db "B1F@" -._1f - db "1F@" -._2f - db "2F@" -._3f - db "3F@" -._4f - db "4F@" -._5f - db "5F@" -._6f - db "6F@" -._7f - db "7F@" -._8f - db "8F@" -._9f - db "9F@" -._10f - db "10F@" -._11f - db "11F@" -.roof - db "ROOF@" -; 135db - +INCLUDE "event/itemball.asm" +INCLUDE "engine/healmachineanim.asm" +INCLUDE "event/whiteout.asm" +INCLUDE "event/forced_movement.asm" +INCLUDE "event/itemfinder.asm" +INCLUDE "engine/startmenu.asm" +INCLUDE "engine/selectmenu.asm" +INCLUDE "event/elevator.asm" Special_GiveParkBalls: ; 135db xor a ld [wContestMon], a ld a, 20 - ld [wdc79], a + ld [wParkBallsRemaining], a callba StartBugContestTimer ret ; 135eb @@ -14911,7 +10906,7 @@ BugCatchingContestBattleScript:: ; 0x135eb battlecheck startbattle returnafterbattle - copybytetovar wdc79 + copybytetovar wParkBallsRemaining iffalse BugCatchingContestOutOfBallsScript end ; 0x135f8 @@ -14949,13 +10944,13 @@ UnknownText_0x13614: ; 0x13614 RepelWoreOffScript:: ; 0x13619 loadfont - writetext UnknownText_0x13620 + writetext .text closetext loadmovesprites end ; 0x13620 -UnknownText_0x13620: ; 0x13620 +.text: ; 0x13620 ; REPEL's effect wore off. text_jump UnknownText_0x1bd308 db "@" @@ -14963,34 +10958,34 @@ UnknownText_0x13620: ; 0x13620 SignpostItemScript:: ; 0x13625 loadfont - copybytetovar Unkn2Pals + copybytetovar EngineBuffer3 itemtotext 0, 0 - writetext UnknownText_0x13645 - giveitem -1, 1 - iffalse UnknownScript_0x1363e + writetext .found_text + giveitem ITEM_FROM_MEM + iffalse .bag_full callasm SetMemEvent specialsound itemnotify - jump UnknownScript_0x13643 + jump .finish ; 0x1363e -UnknownScript_0x1363e: ; 0x1363e +.bag_full: ; 0x1363e keeptextopen - writetext UnknownText_0x1364a + writetext .no_room_text closetext -UnknownScript_0x13643: ; 13643 +.finish: ; 13643 loadmovesprites end ; 0x13645 -UnknownText_0x13645: ; 0x13645 +.found_text: ; 0x13645 ; found @ ! text_jump UnknownText_0x1bd321 db "@" ; 0x1364a -UnknownText_0x1364a: ; 0x1364a +.no_room_text: ; 0x1364a ; But has no space left… text_jump UnknownText_0x1bd331 db "@" @@ -15015,12 +11010,12 @@ CheckFacingTileForStd:: ; 1365b jr nc, .notintable ld a, jumpstd_command - ld [wd03f], a + ld [wJumpStdScriptBuffer], a inc hl ld a, [hli] - ld [wd03f + 1], a + ld [wJumpStdScriptBuffer + 1], a ld a, [hli] - ld [wd03f + 2], a + ld [wJumpStdScriptBuffer + 2], a ld a, BANK(Script_JumpStdFromRAM) ld hl, Script_JumpStdFromRAM call CallScript @@ -15045,490 +11040,10 @@ CheckFacingTileForStd:: ; 1365b ; 1369a Script_JumpStdFromRAM: ; 0x1369a - jump wd03f + jump wJumpStdScriptBuffer ; 0x1369d - -_BugContestJudging: ; 1369d - call ContestScore - callba MobileFn_105f79 - call Function13819 - ld a, [wd00a] - call LoadContestantName - ld a, [wd00b] - ld [wd265], a - call GetPokemonName - ld hl, BugContest_ThirdPlaceText - call PrintText - ld a, [EndFlypoint] - call LoadContestantName - ld a, [MovementBuffer] - ld [wd265], a - call GetPokemonName - ld hl, BugContest_SecondPlaceText - call PrintText - ld a, [DefaultFlypoint] - call LoadContestantName - ld a, [wd003] - ld [wd265], a - call GetPokemonName - ld hl, BugContest_FirstPlaceText - call PrintText - jp Function13807 -; 136eb - -BugContest_FirstPlaceText: ; 0x136eb - text_jump ContestJudging_FirstPlaceText - start_asm -BugContest_FirstPlace: ; 136f0 - ld de, SFX_1ST_PLACE - call PlaySFX - call WaitSFX - ld hl, BugContest_FirstPlaceScoreText - ret -; 136fd - -BugContest_FirstPlaceScoreText: ; 0x136fd - ; The winning score was @ points! - text_jump ContestJudging_FirstPlaceScoreText - db "@" -; 0x13702 - -BugContest_SecondPlaceText: ; 0x13702 - ; Placing second was @ , who caught a @ !@ @ - text_jump ContestJudging_SecondPlaceText - start_asm -BugContest_SecondPlace: ; 13707 - ld de, SFX_2ND_PLACE - call PlaySFX - call WaitSFX - ld hl, BugContest_SecondPlaceScoreText - ret -; 13714 - -BugContest_SecondPlaceScoreText: ; 0x13714 - ; The score was @ points! - text_jump ContestJudging_SecondPlaceScoreText - db "@" -; 0x13719 - -BugContest_ThirdPlaceText: ; 0x13719 - ; Placing third was @ , who caught a @ !@ @ - text_jump ContestJudging_ThirdPlaceText - start_asm -; 0x1371e - -BugContest_ThirdPlace: ; 1371e - ld de, SFX_3RD_PLACE - call PlaySFX - call WaitSFX - ld hl, BugContest_ThirdPlaceScoreText - ret -; 1372b - -BugContest_ThirdPlaceScoreText: ; 0x1372b - ; The score was @ points! - text_jump ContestJudging_ThirdPlaceScoreText - db "@" -; 0x13730 - -LoadContestantName: ; 13730 - -; If a = 0, get your name. - dec a - jr z, .done -; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a. - ld c, a - ld b, 0 - ld hl, BugContestantPointers -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a -; Copy the Trainer Class to c. - ld a, [hli] - ld c, a -; Save hl and bc for later. - push hl - push bc -; Get the Trainer Class name and copy it into wd016. - callab GetTrainerClassName - ld hl, StringBuffer1 - ld de, wd016 - ld bc, TRAINER_CLASS_NAME_LENGTH - call CopyBytes - ld hl, wd016 -; Delete the trailing terminator and replace it with a space. -.next - ld a, [hli] - cp "@" - jr nz, .next - dec hl - ld [hl], " " - inc hl - ld d, h - ld e, l -; Restore the Trainer Class ID and Trainer ID pointer. Save de for later. - pop bc - pop hl - push de -; Get the name of the trainer with class c and ID b. - ld a, [hl] - ld b, a - callab GetTrainerName -; Append the name to wd016. - ld hl, StringBuffer1 - pop de - ld bc, NAME_LENGTH - 1 - jp CopyBytes - -.done - ld hl, PlayerName - ld de, wd016 - ld bc, NAME_LENGTH - jp CopyBytes -; 13783 - -BugContestantPointers: ; 13783 - dw BugContestant_BugCatcherDon ; This reverts back to the player - dw BugContestant_BugCatcherDon - dw BugContestant_BugCatcherEd - dw BugContestant_CooltrainerMNick - dw BugContestant_PokefanMWilliam - dw BugContestant_BugCatcherBenny - dw BugContestant_CamperBarry - dw BugContestant_PicnickerCindy - dw BugContestant_BugCatcherJosh - dw BugContestant_YoungsterSamuel - dw BugContestant_SchoolboyKipp -; 13799 - -BugContestant_BugCatcherDon: - db BUG_CATCHER, DON - dbw KAKUNA, 300 - dbw METAPOD, 285 - dbw CATERPIE, 226 - -BugContestant_BugCatcherEd: - db BUG_CATCHER, ED - dbw BUTTERFREE, 286 - dbw BUTTERFREE, 251 - dbw CATERPIE, 237 - -BugContestant_CooltrainerMNick: - db COOLTRAINERM, NICK - dbw SCYTHER, 357 - dbw BUTTERFREE, 349 - dbw PINSIR, 368 - -BugContestant_PokefanMWilliam: - db POKEFANM, WILLIAM - dbw PINSIR, 332 - dbw BUTTERFREE, 324 - dbw VENONAT, 321 - -BugContestant_BugCatcherBenny: - db BUG_CATCHER, BUG_CATCHER_BENNY - dbw BUTTERFREE, 318 - dbw WEEDLE, 295 - dbw CATERPIE, 285 - -BugContestant_CamperBarry: - db CAMPER, BARRY - dbw PINSIR, 366 - dbw VENONAT, 329 - dbw KAKUNA, 314 - -BugContestant_PicnickerCindy: - db PICNICKER, CINDY - dbw BUTTERFREE, 341 - dbw METAPOD, 301 - dbw CATERPIE, 264 - -BugContestant_BugCatcherJosh: - db BUG_CATCHER, JOSH - dbw SCYTHER, 326 - dbw BUTTERFREE, 292 - dbw METAPOD, 282 - -BugContestant_YoungsterSamuel: - db YOUNGSTER, SAMUEL - dbw WEEDLE, 270 - dbw PINSIR, 282 - dbw CATERPIE, 251 - -BugContestant_SchoolboyKipp: - db SCHOOLBOY, KIPP - dbw VENONAT, 267 - dbw PARAS, 254 - dbw KAKUNA, 259 -; 13807 - -Function13807: ; 13807 - ld hl, wd00a - ld de, -4 - ld b, 3 -.loop - ld a, [hl] - cp 1 - jr z, .done - add hl, de - dec b - jr nz, .loop - -.done - ret -; 13819 - -Function13819: ; 13819 - call Function13833 - call Function138b0 - ld hl, wd00e - ld a, 1 - ld [hli], a - ld a, [wContestMon] - ld [hli], a - ld a, [hProduct] - ld [hli], a - ld a, [hMultiplicand] - ld [hl], a - call Function1383e - ret -; 13833 - -Function13833: ; 13833 - ld hl, DefaultFlypoint - ld b, 12 - xor a -.loop - ld [hli], a - dec b - jr nz, .loop - ret -; 1383e - -Function1383e: ; 1383e - ld de, wd010 - ld hl, wd004 - ld c, 2 - call StringCmp - jr c, .next - ld hl, EndFlypoint - ld de, wd00a - ld bc, $0004 - call CopyBytes - ld hl, DefaultFlypoint - ld de, EndFlypoint - ld bc, 4 - call CopyBytes - ld hl, DefaultFlypoint - call Function138a0 - jr .done - -.next - ld de, wd010 - ld hl, wd008 - ld c, 2 - call StringCmp - jr c, .next2 - ld hl, EndFlypoint - ld de, wd00a - ld bc, 4 - call CopyBytes - ld hl, EndFlypoint - call Function138a0 - jr .done - -.next2 - ld de, wd010 - ld hl, wd00c - ld c, 2 - call StringCmp - jr c, .done - ld hl, wd00a - call Function138a0 - -.done - ret -; 138a0 - -Function138a0: ; 138a0 - ld de, wd00e - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hl], a - ret -; 138b0 - -Function138b0: ; 138b0 - ld e, 0 -.loop - push de - call Special_CheckBugContestContestantFlag - pop de - jr nz, .done - ld a, e -rept 2 - inc a -endr - ld [wd00e], a - dec a - ld c, a - ld b, 0 - ld hl, BugContestantPointers -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a -rept 2 - inc hl -endr -.loop2 - call Random - and 3 - cp 3 - jr z, .loop2 - ld c, a - ld b, 0 -rept 3 - add hl, bc -endr - ld a, [hli] - ld [wd00f], a - ld a, [hli] - ld h, [hl] - ld l, a - call Random - and 7 - ld c, a - ld b, 0 - add hl, bc - ld a, h - ld [wd010], a - ld a, l - ld [wd011], a - push de - call Function1383e - pop de - -.done - inc e - ld a, e - cp 10 - jr nz, .loop - ret -; 13900 - -ContestScore: ; 13900 -; Determine the player's score in the Bug Catching Contest. - - xor a - ld [hProduct], a - ld [hMultiplicand], a - - ld a, [wContestMonSpecies] ; Species - and a - jr z, .done - - ; Tally the following: - - ; Max HP * 4 - ld a, [wContestMonMaxHP + 1] - call .AddContestStat - ld a, [wContestMonMaxHP + 1] - call .AddContestStat - ld a, [wContestMonMaxHP + 1] - call .AddContestStat - ld a, [wContestMonMaxHP + 1] - call .AddContestStat - - ; Stats - ld a, [wContestMonAttack + 1] - call .AddContestStat - ld a, [wContestMonDefense + 1] - call .AddContestStat - ld a, [wContestMonSpeed + 1] - call .AddContestStat - ld a, [wContestMonSpclAtk + 1] - call .AddContestStat - ld a, [wContestMonSpclDef + 1] - call .AddContestStat - - ; DVs - ld a, [wContestMonDVs + 0] - ld b, a - and 2 -rept 2 - add a -endr - ld c, a - - swap b - ld a, b - and 2 - add a - add c - ld d, a - - ld a, [wContestMonDVs + 1] - ld b, a - and 2 - ld c, a - - swap b - ld a, b - and 2 - srl a -rept 2 - add c -endr -rept 2 - add d -endr - - call .AddContestStat - - ; Remaining HP / 8 - ld a, [wContestMonHP + 1] - srl a - srl a - srl a - call .AddContestStat - - ; Whether it's holding an item - ld a, [wContestMonItem] - and a - jr z, .done - - ld a, 1 - call .AddContestStat - -.done - ret -; 1397f - -.AddContestStat: ; 1397f - ld hl, hMultiplicand - add [hl] - ld [hl], a - ret nc - dec hl - inc [hl] - ret -; 13988 +INCLUDE "event/bug_contest_judging.asm" ; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured. ApplyPokerusTick: ; 13988 @@ -15553,376 +11068,16 @@ ApplyPokerusTick: ; 13988 ld [hl], a .does_not_have_pokerus - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH add hl, de dec c jr nz, .loop ret ; 139a8 -Special_SelectRandomBugContestContestants: ; 139a8 -; Select five random people to participate in the current contest. - -; First we have to make sure that any old data is cleared away. - ld c, 10 ; Number of people to choose from. - ld hl, BugCatchingContestantEventFlagTable -.loop1 - push bc - push hl - ld e, [hl] - inc hl - ld d, [hl] - ld b, RESET_FLAG - call EventFlagAction - pop hl -rept 2 - inc hl -endr - pop bc - dec c - jr nz, .loop1 - -; Now that that's out of the way, we can get on to the good stuff. - ld c, 5 -.loop2 - push bc -.next -; Choose a flag at uniform random to be set. - call Random - cp $fa ; 250 - jr nc, .next - ld c, $19 ; 25 - call SimpleDivide - ld e, b - ld d, 0 - ld hl, BugCatchingContestantEventFlagTable -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - push de -; If we've already set it, it doesn't count. - ld b, CHECK_FLAG - call EventFlagAction - pop de - ld a, c - and a - jr nz, .next -; Set the flag. This will cause that sprite to not be visible in the contest. - ld b, SET_FLAG - call EventFlagAction - pop bc -; Check if we're done. If so, return. Otherwise, choose the next victim. - dec c - jr nz, .loop2 - ret -; 139ed - -Special_CheckBugContestContestantFlag: ; 139ed -; Checks the flag of the Bug Catching Contestant whose index is loaded in a. - -; Bug: If a >= 10 when this is called, it will read beyond the table. - - ld hl, BugCatchingContestantEventFlagTable - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld b, CHECK_FLAG - call EventFlagAction - ret -; 139fe - -BugCatchingContestantEventFlagTable: ; 139fe - dw EVENT_BUG_CATCHING_CONTESTANT_1A - dw EVENT_BUG_CATCHING_CONTESTANT_2A - dw EVENT_BUG_CATCHING_CONTESTANT_3A - dw EVENT_BUG_CATCHING_CONTESTANT_4A - dw EVENT_BUG_CATCHING_CONTESTANT_5A - dw EVENT_BUG_CATCHING_CONTESTANT_6A - dw EVENT_BUG_CATCHING_CONTESTANT_7A - dw EVENT_BUG_CATCHING_CONTESTANT_8A - dw EVENT_BUG_CATCHING_CONTESTANT_9A - dw EVENT_BUG_CATCHING_CONTESTANT_10A -; 13a12 - -CheckFirstMonFainted: ; 13a12 - ld hl, PartyMon1HP - ld a, [hli] - or [hl] - jr z, .fainted - ld hl, PartyCount - ld a, 1 - ld [hli], a - inc hl - ld a, [hl] - ld [wdf9b], a - ld [hl], $ff - xor a - ld [ScriptVar], a - ret - -.fainted - ld a, $1 - ld [ScriptVar], a - ret -; 13a31 - -ContestReturnMons: ; 13a31 - ld hl, PartySpecies + 1 - ld a, [wdf9b] - ld [hl], a - ld b, $1 -.asm_13a3a - ld a, [hli] - cp $ff - jr z, .asm_13a42 - inc b - jr .asm_13a3a - -.asm_13a42 - ld a, b - ld [PartyCount], a - ret -; 13a47 - -Function13a47: ; unreferenced - ld hl, PartyCount - ld a, [hl] - and a - ret z - - cp PARTY_LENGTH + 1 - jr c, .asm_13a54 - ld a, PARTY_LENGTH - ld [hl], a -.asm_13a54 - inc hl - - ld b, a - ld c, 0 -.asm_13a58 - ld a, [hl] - and a - jr z, .asm_13a64 - cp $fc - jr z, .asm_13a64 - cp $fe - jr c, .asm_13a73 - -.asm_13a64 - ld [hl], SMEARGLE - push hl - push bc - ld a, c - ld hl, PartyMon1Species - call GetPartyLocation - ld [hl], SMEARGLE - pop bc - pop hl - -.asm_13a73 - inc hl - inc c - dec b - jr nz, .asm_13a58 - ld [hl], $ff - - ld hl, PartyMon1 - ld a, [PartyCount] - ld d, a - ld e, 0 -.asm_13a83 - push de - push hl - ld b, h - ld c, l - ld a, [hl] - and a - jr z, .asm_13a8f - cp NUM_POKEMON + 1 - jr c, .asm_13a9c - -.asm_13a8f - ld [hl], SMEARGLE - push de - ld d, 0 - ld hl, PartySpecies - add hl, de - pop de - ld a, SMEARGLE - ld [hl], a - -.asm_13a9c - ld [CurSpecies], a - call GetBaseData - ld hl, PartyMon1Level - PartyMon1 - add hl, bc - ld a, [hl] - cp MIN_LEVEL - ld a, MIN_LEVEL - jr c, .asm_13ab4 - ld a, [hl] - cp MAX_LEVEL - jr c, .asm_13ab5 - ld a, MAX_LEVEL -.asm_13ab4 - ld [hl], a -.asm_13ab5 - ld [CurPartyLevel], a - - ld hl, PartyMon1MaxHP - PartyMon1 - add hl, bc - ld d, h - ld e, l - ld hl, PartyMon1Exp + 2 - PartyMon1 - add hl, bc - ld b, $1 - predef CalcPkmnStats - pop hl - ld bc, PartyMon2 - PartyMon1 - add hl, bc - pop de - inc e - dec d - jr nz, .asm_13a83 - - ld de, PartyMonNicknames - ld a, [PartyCount] - ld b, a - ld c, 0 -.asm_13adc - push bc - call Function13b71 - push de - callba Function17d073 - pop hl - pop bc - jr nc, .asm_13b0e - - push bc - push hl - ld hl, PartySpecies - push bc - ld b, 0 - add hl, bc - pop bc - ld a, [hl] - cp EGG - ld hl, String_13b6b - jr z, .asm_13b06 - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 -.asm_13b06 - pop de - ld bc, PKMN_NAME_LENGTH - call CopyBytes - pop bc - -.asm_13b0e - inc c - dec b - jr nz, .asm_13adc - - ld de, PartyMonOT - ld a, [PartyCount] - ld b, a - ld c, 0 -.asm_13b1b - push bc - call Function13b71 - push de - callba Function17d073 - pop hl - jr nc, .asm_13b34 - ld d, h - ld e, l - ld hl, PlayerName - ld bc, $000b - call CopyBytes -.asm_13b34 - pop bc - inc c - dec b - jr nz, .asm_13b1b - - ld hl, PartyMon1Moves - ld a, [PartyCount] - ld b, a -.asm_13b40 - push hl - ld c, NUM_MOVES - ld a, [hl] - and a - jr z, .asm_13b4b - cp NUM_ATTACKS + 1 - jr c, .asm_13b4d -.asm_13b4b - ld [hl], POUND - -.asm_13b4d - ld a, [hl] - and a - jr z, .asm_13b55 - cp NUM_ATTACKS + 1 - jr c, .asm_13b5c - -.asm_13b55 - xor a - ld [hli], a - dec c - jr nz, .asm_13b55 - jr .asm_13b60 - -.asm_13b5c - inc hl - dec c - jr nz, .asm_13b4d - -.asm_13b60 - pop hl - push bc - ld bc, PartyMon2 - PartyMon1 - add hl, bc - pop bc - dec b - jr nz, .asm_13b40 - ret -; 13b6b - -String_13b6b: ; 13b6b - db "タマゴ@@@" -; 13b71 - -Function13b71: ; 13b71 - push de - ld c, 1 - ld b, 6 -.asm_13b76 - ld a, [de] - cp "@" - jr z, .asm_13b85 - inc de - inc c - dec b - jr nz, .asm_13b76 - dec c - dec de - ld a, "@" - ld [de], a - -.asm_13b85 - pop de - ret -; 13b87 +INCLUDE "event/bug_contest_2.asm" +INCLUDE "unknown/013a47.asm" GetSquareRoot: ; 13b87 ; Return the square root of de in b. @@ -16066,10 +11221,12 @@ StartClock:: ; 14089 call GetClock call Function1409b call FixDays - jr nc, .asm_14097 - call Function6d3 + jr nc, .skip_set + ; bit 5: Day count exceeds 139 + ; bit 6: Day count exceeds 255 + call Function6d3 ; set flag on s0_ac60 -.asm_14097 +.skip_set call StartRTC ret ; 1409b @@ -16077,38 +11234,40 @@ StartClock:: ; 14089 Function1409b: ; 1409b ld hl, hRTCDayHi bit 7, [hl] - jr nz, .asm_140a8 + jr nz, .set_bit_7 bit 6, [hl] - jr nz, .asm_140a8 + jr nz, .set_bit_7 xor a ret -.asm_140a8 - ld a, $80 - call Function6d3 +.set_bit_7 + ; Day count exceeds 16383 + ld a, %10000000 + call Function6d3 ; set bit 7 on s0_ac60 ret ; 140ae Function140ae: ; 140ae call Function6e3 ld c, a - and %11000000 - jr nz, .asm_140c8 + and %11000000 ; Day count exceeded 255 or 16383 + jr nz, .time_overflow ld a, c - and %00100000 - jr z, .asm_140eb + and %00100000 ; Day count exceeded 139 + jr z, .dont_update call UpdateTime ld a, [wRTC + 0] ld b, a ld a, [CurDay] cp b - jr c, .asm_140eb + jr c, .dont_update -.asm_140c8 +.time_overflow callba ClearDailyTimers callba Function170923 +; mobile ld a, $5 call GetSRAMBank ld a, [$aa8c] @@ -16120,7 +11279,7 @@ Function140ae: ; 140ae call CloseSRAM ret -.asm_140eb +.dont_update xor a ret ; 140ed @@ -16173,1518 +11332,7 @@ Function140ed:: ; 140ed ret ; 1412a -GetEmote2bpp: ; 1412a - ld a, $1 - ld [rVBK], a - call Get2bpp - xor a - ld [rVBK], a - ret -; 14135 - -Function14135:: ; 14135 - call GetPlayerSprite - ld a, [UsedSprites] - ld [hUsedSpriteIndex], a - ld a, [UsedSprites + 1] - ld [hUsedSpriteTile], a - call Function143c8 - ret -; 14146 - -Function14146: ; 14146 - ld hl, wd13e - ld a, [hl] - push af - res 7, [hl] - set 6, [hl] - call RunCallback_04 - pop af - ld [wd13e], a - ret -; 14157 - -Function14157: ; 14157 - ld hl, wd13e - ld a, [hl] - push af - set 7, [hl] - res 6, [hl] - call RunCallback_04 - pop af - ld [wd13e], a - ret -; 14168 - - -Function14168:: ; 14168 - call Function1416f - call RunCallback_04 - ret -; 1416f - -Function1416f: ; 1416f - xor a - ld bc, $0040 - ld hl, UsedSprites - call ByteFill - call GetPlayerSprite - call AddMapSprites - call Function142db - ret -; 14183 - - - -GetPlayerSprite: ; 14183 -; Get Chris or Kris's sprite. - - ld hl, .Chris - ld a, [wPlayerSpriteSetupFlags] - bit 2, a - jr nz, .go - ld a, [PlayerGender] - bit 0, a - jr z, .go - ld hl, .Kris - -.go - ld a, [PlayerState] - ld c, a -.loop - ld a, [hli] - cp c - jr z, .asm_141ac - inc hl - cp $ff - jr nz, .loop - -; Any player state not in the array defaults to Chris's sprite. - xor a ; ld a, PLAYER_NORMAL - ld [PlayerState], a - ld a, SPRITE_CHRIS - jr .asm_141ad - -.asm_141ac - ld a, [hl] - -.asm_141ad - ld [UsedSprites + 0], a - ld [PlayerStruct + 0], a - ld [MapObjects + OBJECT_LENGTH * 0 + 1], a - ret - -.Chris - db PLAYER_NORMAL, SPRITE_CHRIS - db PLAYER_BIKE, SPRITE_CHRIS_BIKE - db PLAYER_SURF, SPRITE_SURF - db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU - db $ff - -.Kris - db PLAYER_NORMAL, SPRITE_KRIS - db PLAYER_BIKE, SPRITE_KRIS_BIKE - db PLAYER_SURF, SPRITE_SURF - db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU - db $ff -; 141c9 - - -AddMapSprites: ; 141c9 - call GetMapPermission - call CheckOutdoorMap - jr z, .outdoor - call AddIndoorSprites - ret -.outdoor - call AddOutdoorSprites - ret -; 141d9 - - -AddIndoorSprites: ; 141d9 - ld hl, MapObjects + 1 * OBJECT_LENGTH + 1 ; sprite - ld a, 1 -.loop - push af - ld a, [hl] - call AddSpriteGFX - ld de, OBJECT_LENGTH - add hl, de - pop af - inc a - cp NUM_OBJECTS - jr nz, .loop - ret -; 141ee - - -AddOutdoorSprites: ; 141ee - ld a, [MapGroup] - dec a - ld c, a - ld b, 0 - ld hl, OutdoorSprites -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld c, $17 -.loop - push bc - ld a, [hli] - call AddSpriteGFX - pop bc - dec c - jr nz, .loop - ret -; 14209 - - -RunCallback_04: ; 14209 - ld a, $4 - call RunMapCallback - call Function1439b - call Function14215 - ret -; 14215 - -Function14215: ; 14215 - ld a, [wd13e] - bit 6, a - ret nz - ld c, $8 - callba LoadEmote - call GetMapPermission - call CheckOutdoorMap - ld c, $b - jr z, .asm_1422f - ld c, $a - -.asm_1422f - callba LoadEmote - ret -; 14236 - - - -SafeGetSprite: ; 14236 - push hl - call GetSprite - pop hl - ret -; 1423c - -GetSprite: ; 1423c - call GetMonSprite - ret c - - ld hl, SpriteHeaders ; address - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ; load the address into de - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ; load the length into c - ld a, [hli] - swap a - ld c, a - ; load the sprite bank into both b and h - ld b, [hl] - ld a, [hli] - ; load the sprite type into l - ld l, [hl] - ld h, a - ret -; 14259 - - -GetMonSprite: ; 14259 -; Return carry if a monster sprite was loaded. - - cp SPRITE_POKEMON - jr c, .Normal - cp SPRITE_DAYCARE_MON_1 - jr z, .wBreedMon1 - cp SPRITE_DAYCARE_MON_2 - jr z, .wBreedMon2 - cp SPRITE_VARS - jr nc, .Variable - jr .Icon - -.Normal - and a - ret - -.Icon - sub SPRITE_POKEMON - ld e, a - ld d, 0 - ld hl, SpriteMons - add hl, de - ld a, [hl] - jr .Mon - -.wBreedMon1 - ld a, [wBreedMon1Species] - jr .Mon - -.wBreedMon2 - ld a, [wBreedMon2Species] - -.Mon - ld e, a - and a - jr z, .NoBreedmon - - callba Function8e82b - - ld l, 1 - ld h, 0 - scf - ret - -.Variable - sub SPRITE_VARS - ld e, a - ld d, 0 - ld hl, VariableSprites - add hl, de - ld a, [hl] - and a - jp nz, GetMonSprite - -.NoBreedmon - ld a, 1 - ld l, 1 - ld h, 0 - and a - ret -; 142a7 - - -Function142a7:: ; 142a7 - cp SPRITE_POKEMON - jr nc, .is_pokemon - - push hl - push bc - ld hl, SpriteHeaders + 4 ; type - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ld a, [hl] - pop bc - pop hl - cp 3 - jr nz, .is_pokemon - scf - ret - -.is_pokemon - and a - ret -; 142c4 - - -_GetSpritePalette:: ; 142c4 - ld a, c - call GetMonSprite - jr c, .is_pokemon - - ld hl, SpriteHeaders + 5 ; palette - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ld c, [hl] - ret - -.is_pokemon - xor a - ld c, a - ret -; 142db - - -Function142db: ; 142db - call LoadSpriteGFX - call SortUsedSprites - call ArrangeUsedSprites - ret -; 142e5 - - -AddSpriteGFX: ; 142e5 -; Add any new sprite ids to a list of graphics to be loaded. -; Return carry if the list is full. - - push hl - push bc - ld b, a - ld hl, UsedSprites + 2 - ld c, SPRITE_GFX_LIST_CAPACITY - 1 -.loop - ld a, [hl] - cp b - jr z, .exists - and a - jr z, .new -rept 2 - inc hl -endr - dec c - jr nz, .loop - - pop bc - pop hl - scf - ret - -.exists - pop bc - pop hl - and a - ret - -.new - ld [hl], b - pop bc - pop hl - and a - ret -; 14306 - - -LoadSpriteGFX: ; 14306 -; Bug: b is not preserved, so -; it's useless as a next count. - - ld hl, UsedSprites - ld b, SPRITE_GFX_LIST_CAPACITY -.loop - ld a, [hli] - and a - jr z, .done - push hl - call .LoadSprite - pop hl - ld [hli], a - dec b - jr nz, .loop - -.done - ret - -.LoadSprite - call GetSprite - ld a, l - ret -; 1431e - - -SortUsedSprites: ; 1431e -; Bubble-sort sprites by type. - -; Run backwards through UsedSprites to find the last one. - - ld c, SPRITE_GFX_LIST_CAPACITY - ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2 -.FindLastSprite - ld a, [de] - and a - jr nz, .FoundLastSprite -rept 2 - dec de -endr - dec c - jr nz, .FindLastSprite -.FoundLastSprite - dec c - jr z, .quit - -; If the length of the current sprite is -; higher than a later one, swap them. - - inc de - ld hl, UsedSprites + 1 - -.CheckSprite - push bc - push de - push hl - -.CheckFollowing - ld a, [de] - cp [hl] - jr nc, .loop - -; Swap the two sprites. - - ld b, a - ld a, [hl] - ld [hl], b - ld [de], a - dec de - dec hl - ld a, [de] - ld b, a - ld a, [hl] - ld [hl], b - ld [de], a - inc de - inc hl - -; Keep doing this until everything's in order. - -.loop -rept 2 - dec de -endr - dec c - jr nz, .CheckFollowing - - pop hl -rept 2 - inc hl -endr - pop de - pop bc - dec c - jr nz, .CheckSprite - -.quit - ret -; 14355 - - -ArrangeUsedSprites: ; 14355 -; Get the length of each sprite and space them out in VRAM. -; Crystal introduces a second table in VRAM bank 0. - - ld hl, UsedSprites - ld c, SPRITE_GFX_LIST_CAPACITY - ld b, 0 -.FirstTableLength -; Keep going until the end of the list. - ld a, [hli] - and a - jr z, .quit - - ld a, [hl] - call GetSpriteLength - -; Spill over into the second table after $80 tiles. - add b - cp $80 - jr z, .loop - jr nc, .SecondTable - -.loop - ld [hl], b - inc hl - ld b, a - -; Assumes the next table will be reached before c hits 0. - dec c - jr nz, .FirstTableLength - -.SecondTable -; The second tile table starts at tile $80. - ld b, $80 - dec hl -.SecondTableLength -; Keep going until the end of the list. - ld a, [hli] - and a - jr z, .quit - - ld a, [hl] - call GetSpriteLength - -; There are only two tables, so don't go any further than that. - add b - jr c, .quit - - ld [hl], b - ld b, a - inc hl - - dec c - jr nz, .SecondTableLength - -.quit - ret -; 14386 - - -GetSpriteLength: ; 14386 -; Return the length of sprite type a in tiles. - - cp WALKING_SPRITE - jr z, .AnyDirection - cp STANDING_SPRITE - jr z, .AnyDirection - cp STILL_SPRITE - jr z, .OneDirection - - ld a, 12 - ret - -.AnyDirection - ld a, 12 - ret - -.OneDirection - ld a, 4 - ret -; 1439b - - -Function1439b: ; 1439b - ld hl, UsedSprites - ld c, SPRITE_GFX_LIST_CAPACITY -.loop - ld a, [wd13e] - res 5, a - ld [wd13e], a - ld a, [hli] - and a - jr z, .done - ld [hUsedSpriteIndex], a - ld a, [hli] - ld [hUsedSpriteTile], a - bit 7, a - jr z, .dont_set - ld a, [wd13e] - set 5, a - ld [wd13e], a - -.dont_set - push bc - push hl - call Function143c8 - pop hl - pop bc - dec c - jr nz, .loop - -.done - ret -; 143c8 - -Function143c8: ; 143c8 - ld a, [hUsedSpriteIndex] - call SafeGetSprite - ld a, [hUsedSpriteTile] - call GetTileAddr - push hl - push de - push bc - ld a, [wd13e] - bit 7, a - jr nz, .asm_143df - call Function14418 - -.asm_143df - pop bc - ld l, c - ld h, $0 -rept 4 - add hl, hl -endr - pop de - add hl, de - ld d, h - ld e, l - pop hl - ld a, [wd13e] - bit 5, a - jr nz, .asm_14405 - bit 6, a - jr nz, .asm_14405 - ld a, [hUsedSpriteIndex] - call Function142a7 - jr c, .asm_14405 - ld a, h - add $8 - ld h, a - call Function14418 - -.asm_14405 - ret -; 14406 - -GetTileAddr: ; 14406 -; Return the address of tile (a) in (hl). - and $7f - ld l, a - ld h, 0 -rept 4 - add hl, hl -endr - ld a, l - add VTiles0 % $100 - ld l, a - ld a, h - adc VTiles0 / $100 - ld h, a - ret -; 14418 - -Function14418: ; 14418 - ld a, [rVBK] - push af - ld a, [wd13e] - bit 5, a - ld a, $1 - jr z, .asm_14426 - ld a, $0 - -.asm_14426 - ld [rVBK], a - call Get2bpp - pop af - ld [rVBK], a - ret -; 1442f - -LoadEmote:: ; 1442f -; Get the address of the pointer to emote c. - ld a, c - ld bc, 6 - ld hl, EmotesPointers - call AddNTimes -; Load the emote address into de - ld e, [hl] - inc hl - ld d, [hl] -; load the length of the emote (in tiles) into c - inc hl - ld c, [hl] - swap c -; load the emote pointer bank into b - inc hl - ld b, [hl] -; load the VRAM destination into hl - inc hl - ld a, [hli] - ld h, [hl] - ld l, a -; if the emote has a length of 0, do not proceed (error handling) - ld a, c - and a - ret z - call GetEmote2bpp - ret -; 1444d - -EmotesPointers: ; 144d -; dw source address -; db length, bank -; dw dest address - - dw ShockEmote - db 4 * $10, BANK(ShockEmote) - dw VTiles1 tile $78 - - dw QuestionEmote - db 4 * $10, BANK(QuestionEmote) - dw VTiles1 tile $78 - - dw HappyEmote - db 4 * $10, BANK(HappyEmote) - dw VTiles1 tile $78 - - dw SadEmote - db 4 * $10, BANK(SadEmote) - dw VTiles1 tile $78 - - dw HeartEmote - db 4 * $10, BANK(HeartEmote) - dw VTiles1 tile $78 - - dw BoltEmote - db 4 * $10, BANK(BoltEmote) - dw VTiles1 tile $78 - - dw SleepEmote - db 4 * $10, BANK(SleepEmote) - dw VTiles1 tile $78 - - dw FishEmote - db 4 * $10, BANK(FishEmote) - dw VTiles1 tile $78 - - dw FishingRodGFX + $00 - db 1 * $10, BANK(FishingRodGFX) - dw VTiles1 tile $7c - - dw FishingRodGFX + $10 - db 2 * $10, BANK(FishingRodGFX) - dw VTiles1 tile $7c - - dw FishingRodGFX + $30 - db 2 * $10, BANK(FishingRodGFX) - dw VTiles1 tile $7e - - dw FishingRodGFX + $50 - db 1 * $10, BANK(FishingRodGFX) - dw VTiles1 tile $7e - -; 14495 - - -SpriteMons: ; 14495 - db UNOWN - db GEODUDE - db GROWLITHE - db WEEDLE - db SHELLDER - db ODDISH - db GENGAR - db ZUBAT - db MAGIKARP - db SQUIRTLE - db TOGEPI - db BUTTERFREE - db DIGLETT - db POLIWAG - db PIKACHU - db CLEFAIRY - db CHARMANDER - db JYNX - db STARMIE - db BULBASAUR - db JIGGLYPUFF - db GRIMER - db EKANS - db PARAS - db TENTACOOL - db TAUROS - db MACHOP - db VOLTORB - db LAPRAS - db RHYDON - db MOLTRES - db SNORLAX - db GYARADOS - db LUGIA - db HO_OH -; 144b8 - - -OutdoorSprites: ; 144b8 -; Valid sprite IDs for each map group. - - dw Group1Sprites - dw Group2Sprites - dw Group3Sprites - dw Group4Sprites - dw Group5Sprites - dw Group6Sprites - dw Group7Sprites - dw Group8Sprites - dw Group9Sprites - dw Group10Sprites - dw Group11Sprites - dw Group12Sprites - dw Group13Sprites - dw Group14Sprites - dw Group15Sprites - dw Group16Sprites - dw Group17Sprites - dw Group18Sprites - dw Group19Sprites - dw Group20Sprites - dw Group21Sprites - dw Group22Sprites - dw Group23Sprites - dw Group24Sprites - dw Group25Sprites - dw Group26Sprites -; 144ec - - -Group13Sprites: ; 144ec - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14503 - -Group23Sprites: ; 14503 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1451a - -Group14Sprites: ; 1451a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14531 - -Group6Sprites: ; 14531 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14548 - -Group7Sprites: ; 14548 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 1455f - -Group25Sprites: ; 1455f - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 14576 - -Group21Sprites: ; 14576 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_POLIWAG - db SPRITE_TEACHER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_BIKER - db SPRITE_SILVER - db SPRITE_BLUE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1458d - -Group18Sprites: ; 1458d - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145a4 - -Group12Sprites: ; 145a4 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145bb - -Group17Sprites: ; 145bb - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145d2 - -Group16Sprites: ; 145d2 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_BUENA - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_MACHOP - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 145e9 - -Group24Sprites: ; 145e9 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14600 - -Group26Sprites: ; 14600 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14617 - -Group19Sprites: ; 14617 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1462e - -Group10Sprites: ; 1462e - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14645 - -Group4Sprites: ; 14645 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1465c - -Group8Sprites: ; 1465c - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_KURT_OUTSIDE - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_TEACHER - db SPRITE_AZALEA_ROCKET - db SPRITE_LASS - db SPRITE_SILVER - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 14673 - -Group11Sprites: ; 14673 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_POKE_BALL - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_DAYCARE_MON_1 - db SPRITE_COOLTRAINER_F - db SPRITE_ROCKET - db SPRITE_LASS - db SPRITE_DAYCARE_MON_2 - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 1468a - -Group22Sprites: ; 1468a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146a1 - -Group1Sprites: ; 146a1 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146b8 - -Group9Sprites: ; 146b8 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LANCE - db SPRITE_GRAMPS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_LASS - db SPRITE_YOUNGSTER - db SPRITE_GYARADOS - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146cf - -Group2Sprites: ; 146cf - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146e6 - -Group5Sprites: ; 146e6 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146fd - -Group3Sprites: ; 146fd - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_GAMEBOY_KID - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LASS - db SPRITE_POKEFAN_F - db SPRITE_TEACHER - db SPRITE_YOUNGSTER - db SPRITE_GROWLITHE - db SPRITE_POKEFAN_M - db SPRITE_ROCKER - db SPRITE_FISHER - db SPRITE_SCIENTIST - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 14714 - -Group15Sprites: ; 14714 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SAILOR - db SPRITE_FISHING_GURU - db SPRITE_GENTLEMAN - db SPRITE_SUPER_NERD - db SPRITE_HO_OH - db SPRITE_TEACHER - db SPRITE_COOLTRAINER_F - db SPRITE_YOUNGSTER - db SPRITE_FAIRY - db SPRITE_POKE_BALL - db SPRITE_ROCK -; 1472b - -Group20Sprites: ; 1472b - db SPRITE_OAK - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_TWIN - db SPRITE_POKEFAN_M - db SPRITE_GRAMPS - db SPRITE_FAIRY - db SPRITE_SILVER - db SPRITE_FISHING_GURU - db SPRITE_POKE_BALL - db SPRITE_POKEDEX -; 14736 - - -SpriteHeaders: ; 14736 -INCLUDE "gfx/overworld/sprite_headers.asm" -; 1499a - +INCLUDE "engine/sprites.asm" Function1499a:: ; 1499a ld a, [PlayerStandingTile] @@ -17784,13 +11432,13 @@ CheckCutCollision: ; 149f5 Function14a07:: ; 14a07 ld a, [PlayerStandingTile] - ld de, $001f + ld de, $1f cp $71 ; door ret z - ld de, $0013 + ld de, $13 cp $7c ; warp pad ret z - ld de, $0023 + ld de, $23 ret ; 14a1a @@ -17878,7 +11526,7 @@ PokemonCenterPC: ; 1559a ; 1563e Function1563e: ; 1563e - call Function2ead + call CheckReceivedDex jr nz, .asm_15646 ld a, $0 ret @@ -17989,7 +11637,7 @@ Function156d9: ; 156d9 call Function15704 and a jr nz, .asm_156f9 - call Function2173 + call OverworldTextModeSwitch call Function321c call UpdateSprites call Function156b8 @@ -17997,7 +11645,7 @@ Function156d9: ; 156d9 ret .asm_156f9 - call WhiteBGMap + call ClearBGPalettes ld c, $1 ret ; 156ff @@ -18101,7 +11749,7 @@ LOG_OFF EQU 6 PC_DisplayTextWaitMenu: ; 157bb ld a, [Options] push af - set 4, a + set NO_TEXT_SCROLL, a ld [Options], a call MenuTextBox pop af @@ -18116,7 +11764,7 @@ UnknownText_0x157cc: ; 0x157cc ; 0x157d1 KrisWithdrawItemMenu: ; 0x157d1 - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader callba ClearPCItemScreen .asm_157da call Function15985 @@ -18195,7 +11843,7 @@ Function157e9: ; 0x157e9 KrisTossItemMenu: ; 0x1585f - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader callba ClearPCItemScreen .asm_15868 call Function15985 @@ -18232,7 +11880,7 @@ KrisDepositItemMenu: ; 0x1588b call Function158b8 jr c, .asm_158b6 call DisableSpriteUpdates - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader callba Function106a5 .asm_1589c callba Function106be @@ -18393,10 +12041,10 @@ Function15985: ; 0x15985 ld [wMenuCursorBuffer], a ld a, [wd0dd] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0dd], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0d7], a pop af ld [wc2ce], a @@ -18507,988 +12155,7 @@ UnknownText_0x15a40: ; 0x15a40 ; 0x15a45 -OpenMartDialog:: ; 15a45 - call GetMart - ld a, c - ld [EngineBuffer1], a - call LoadMartPointer - ld a, [EngineBuffer1] - ld hl, .dialogs - rst JumpTable - ret -; 15a57 - -.dialogs - dw MartDialog - dw HerbShop - dw BargainShop - dw Pharmacist - dw RooftopSale -; 15a61 - -MartDialog: ; 15a61 - ld a, 0 - ld [EngineBuffer1], a - xor a - ld [MovementAnimation], a - call StandardMart - ret -; 15a6e - -HerbShop: ; 15a6e - call ReadMart - call LoadMenuDataHeader_0x1d75 - ld hl, UnknownText_0x15e4a - call Function15fcd - call Function15c62 - ld hl, UnknownText_0x15e68 - call Function15fcd - ret -; 15a84 - -BargainShop: ; 15a84 - ld b, BANK(BargainShopData) - ld de, BargainShopData - call LoadMartPointer - call Function15c25 - call LoadMenuDataHeader_0x1d75 - ld hl, UnknownText_0x15e6d - call Function15fcd - call Function15c62 - ld hl, WalkingDirection - ld a, [hli] - or [hl] - jr z, .asm_15aa7 - ld hl, DailyFlags - set 6, [hl] - -.asm_15aa7 - ld hl, UnknownText_0x15e8b - call Function15fcd - ret -; 15aae - -Pharmacist: ; 15aae - call ReadMart - call LoadMenuDataHeader_0x1d75 - ld hl, UnknownText_0x15e90 - call Function15fcd - call Function15c62 - ld hl, UnknownText_0x15eae - call Function15fcd - ret -; 15ac4 - -RooftopSale: ; 15ac4 - ld b, BANK(RooftopSaleData1) - ld de, RooftopSaleData1 - ld hl, StatusFlags - bit 6, [hl] ; hall of fame - jr z, .ok - ld b, BANK(RooftopSaleData2) - ld de, RooftopSaleData2 - -.ok - call LoadMartPointer - call Function15c25 - call LoadMenuDataHeader_0x1d75 - ld hl, UnknownText_0x15f83 - call Function15fcd - call Function15c62 - ld hl, UnknownText_0x15fb4 - call Function15fcd - ret -; 15aee - -RooftopSaleData1: ; 15aee - db 5 - dbw POKE_BALL, 150 - dbw GREAT_BALL, 500 - dbw SUPER_POTION, 500 - dbw FULL_HEAL, 500 - dbw REVIVE, 1200 - db -1 -RooftopSaleData2: ; 15aff - db 5 - dbw HYPER_POTION, 1000 - dbw FULL_RESTORE, 2000 - dbw FULL_HEAL, 500 - dbw ULTRA_BALL, 1000 - dbw PROTEIN, 7800 - db -1 -; 15b10 - -LoadMartPointer: ; 15b10 - ld a, b - ld [MartPointerBank], a - ld a, e - ld [MartPointer], a - ld a, d - ld [MartPointer + 1], a - ld hl, CurMart - xor a - ld bc, 16 - call ByteFill - xor a - ld [MovementAnimation], a - ld [WalkingDirection], a - ld [FacingDirection], a - ret -; 15b31 - -GetMart: ; 15b31 - ld a, e - cp (MartsEnd - Marts) / 2 - jr c, .IsAMart - ld b, $5 - ld de, DefaultMart - ret - -.IsAMart - ld hl, Marts -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld b, $5 - ret -; 15b47 - -StandardMart: ; 15b47 -.loop - ld a, [MovementAnimation] - ld hl, .MartFunctions - rst JumpTable - ld [MovementAnimation], a - cp $ff - jr nz, .loop - ret - -.MartFunctions - dw .HowMayIHelpYou - dw .TopMenu - dw .Buy - dw .Sell - dw .Quit - dw .AnythingElse -; 15b62 - -.HowMayIHelpYou: ; 15b62 - call LoadMenuDataHeader_0x1d75 - ld hl, UnknownText_0x15f83 - call PrintText - ld a, $1 - ret -; 15b6e - -.TopMenu: ; 15b6e - ld hl, MenuDataHeader_0x15f88 - call CopyMenuDataHeader - call InterpretMenu2 - jr c, .quit - ld a, [wcfa9] - cp $1 - jr z, .buy - cp $2 - jr z, .sell -.quit - ld a, $4 - ret -.buy - ld a, $2 - ret -.sell - ld a, $3 - ret -; 15b8d - -.Buy: ; 15b8d - call ExitMenu - call ReadMart - call Function15c62 - and a - ld a, $5 - ret -; 15b9a - -.Sell: ; 15b9a - call ExitMenu - call Function15eb3 - ld a, $5 - ret -; 15ba3 - -.Quit: ; 15ba3 - call ExitMenu - ld hl, UnknownText_0x15fb4 - call Function15fcd - ld a, $ff - ret -; 15baf - -.AnythingElse: ; 15baf - call LoadMenuDataHeader_0x1d75 - ld hl, UnknownText_0x15fb9 - call PrintText - ld a, $1 - ret -; 15bbb - -ReadMart: ; 15bbb - ld hl, MartPointer - ld a, [hli] - ld h, [hl] - ld l, a - ld de, CurMart -.CopyMart - ld a, [MartPointerBank] - call GetFarByte - ld [de], a - inc hl - inc de - cp -1 - jr nz, .CopyMart - ld hl, DefaultFlypoint - ld de, CurMart + 1 -.ReadMartItem - ld a, [de] - inc de - cp -1 - jr z, .done - push de - call GetMartItemPrice - pop de - jr .ReadMartItem - -.done - ret -; 15be5 - -GetMartItemPrice: ; 15be5 -; Return the price of item a in BCD at hl and in tiles at StringBuffer1. - push hl - ld [CurItem], a - callba GetItemPrice - pop hl - -GetMartPrice: ; 15bf0 -; Return price de in BCD at hl and in tiles at StringBuffer1. - push hl - ld a, d - ld [StringBuffer2], a - ld a, e - ld [StringBuffer2 + 1], a - ld hl, StringBuffer1 - ld de, StringBuffer2 - lb bc, PRINTNUM_LEADINGZEROS | 2, 6 ; 6 digits - call PrintNum - pop hl - - ld de, StringBuffer1 - ld c, 6 / 2 ; 6 digits -.loop - call .TileToNum - swap a - ld b, a - call .TileToNum - or b - ld [hli], a - dec c - jr nz, .loop - ret -; 15c1a - -.TileToNum ; 15c1a - ld a, [de] - inc de - cp " " - jr nz, .asm_15c22 - ld a, "0" - -.asm_15c22 - sub "0" - ret -; 15c25 - -Function15c25: ; 15c25 - ld hl, MartPointer - ld a, [hli] - ld h, [hl] - ld l, a - push hl - inc hl - ld bc, wd002 - ld de, CurMart + 1 -.loop - ld a, [hli] - ld [de], a - inc de - cp -1 - jr z, .done - - push de - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld h, b - ld l, c - call GetMartPrice - ld b, h - ld c, l - pop hl - pop de - jr .loop - -.done - pop hl - ld a, [hl] - ld [CurMart], a - ret -; 15c51 - -BargainShopData: ; 15c51 - db 5 - dbw NUGGET, 4500 - dbw PEARL, 650 - dbw BIG_PEARL, 3500 - dbw STARDUST, 900 - dbw STAR_PIECE, 4600 - db -1 -; 15c62 - - -Function15c62: ; 15c62 - call FadeToMenu - callba Function8000 - xor a - ld [WalkingY], a - ld a, 1 - ld [WalkingX], a -.asm_15c74 - call Function15cef - jr nc, .asm_15c74 - call Function2b3c - ret -; 15c7d - -Function15c7d: ; 15c7d - push af - call Function15ca3 - ld a, [hli] - ld h, [hl] - ld l, a - pop af - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - ret -; 15c91 - -Function15c91: ; 15c91 - call Function15ca3 -rept 2 - inc hl -endr - ld a, [hl] - and a - jp z, Function15d83 - cp 1 - jp z, Function15da5 - jp Function15de2 -; 15ca3 - -Function15ca3: ; 15ca3 - ld a, [EngineBuffer1] - ld e, a - ld d, 0 - ld hl, .data_15cb0 -rept 3 - add hl, de -endr - ret -; 15cb0 - -.data_15cb0 ; 15cb0 - dwb Unknown_15cbf, 0 - dwb Unknown_15ccb, 0 - dwb Unknown_15cd7, 1 - dwb Unknown_15ce3, 0 - dwb Unknown_15cbf, 2 -; 15cbf - -Unknown_15cbf: ; 15cbf - dw UnknownText_0x15e0e - dw UnknownText_0x15e13 - dw UnknownText_0x15fa5 - dw UnknownText_0x15faa - dw UnknownText_0x15fa0 - dw Function15cef - -Unknown_15ccb: ; 15ccb - dw UnknownText_0x15e4f - dw UnknownText_0x15e54 - dw UnknownText_0x15e63 - dw UnknownText_0x15e5e - dw UnknownText_0x15e59 - dw Function15cef - -Unknown_15cd7: ; 15cd7 - dw Function15cef - dw UnknownText_0x15e72 - dw UnknownText_0x15e86 - dw UnknownText_0x15e7c - dw UnknownText_0x15e77 - dw UnknownText_0x15e81 - -Unknown_15ce3: ; 15ce3 - dw UnknownText_0x15e95 - dw UnknownText_0x15e9a - dw UnknownText_0x15ea9 - dw UnknownText_0x15ea4 - dw UnknownText_0x15e9f - dw Function15cef -; 15cef - - -Function15cef: ; 15cef - callba Function24ae8 - call UpdateSprites - ld hl, MenuDataHeader_0x15e18 - call CopyMenuDataHeader - ld a, [WalkingX] - ld [wMenuCursorBuffer], a - ld a, [WalkingY] - ld [wd0e4], a - call Function350c - ld a, [wd0e4] - ld [WalkingY], a - ld a, [wcfa9] - ld [WalkingX], a - call SpeechTextBox - ld a, [wcf73] - cp $2 - jr z, .asm_15d6d - cp $1 - jr z, .asm_15d27 - -.asm_15d27 - call Function15c91 - jr c, .asm_15d68 - call Function15d97 - jr c, .asm_15d68 - ld de, Money - ld bc, hMoneyTemp - ld a, $3 - call CompareMoney - jr c, .asm_15d79 - ld hl, NumItems - call ReceiveItem - jr nc, .asm_15d6f - ld a, [wd107] - ld e, a - ld d, $0 - ld b, $1 - ld hl, WalkingDirection - call FlagAction - call Function15fc3 - ld de, Money - ld bc, hMoneyTemp - call TakeMoney - ld a, $4 - call Function15c7d - call JoyWaitAorB - -.asm_15d68 - call SpeechTextBox - and a - ret - -.asm_15d6d - scf - ret - -.asm_15d6f - ld a, $3 - call Function15c7d - call JoyWaitAorB - and a - ret - -.asm_15d79 - ld a, $2 - call Function15c7d - call JoyWaitAorB - and a - ret -; 15d83 - -Function15d83: ; 15d83 - ld a, $63 - ld [wItemQuantityBuffer], a - ld a, $0 - call Function15c7d - callba Function24fc9 - call ExitMenu - ret -; 15d97 - -Function15d97: ; 15d97 - predef PartyMonItemName - ld a, $1 - call Function15c7d - call YesNoBox - ret -; 15da5 - -Function15da5: ; 15da5 - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld a, [wd107] - ld e, a - ld d, $0 - ld b, $2 - ld hl, WalkingDirection - call FlagAction - ld a, c - and a - jr nz, .asm_15dd8 - ld a, [wd107] - ld e, a - ld d, $0 - ld hl, wd040 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl -rept 3 - add hl, de -endr - inc hl - ld a, [hli] - ld [$ffc5], a - ld a, [hl] - ld [$ffc4], a - xor a - ld [hMoneyTemp], a - and a - ret - -.asm_15dd8 - ld a, $5 - call Function15c7d - call JoyWaitAorB - scf - ret -; 15de2 - -Function15de2: ; 15de2 - ld a, $0 - call Function15c7d - call Function15df9 - ld a, $63 - ld [wItemQuantityBuffer], a - callba Function24fcf - call ExitMenu - ret -; 15df9 - -Function15df9: ; 15df9 - ld a, [wd107] - ld e, a - ld d, 0 - ld hl, wd040 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl -rept 3 - add hl, de -endr - inc hl - ld e, [hl] - inc hl - ld d, [hl] - ret -; 15e0e - - -UnknownText_0x15e0e: ; 0x15e0e - ; How many? - text_jump UnknownText_0x1c4bfd - db "@" -; 0x15e13 - -UnknownText_0x15e13: ; 0x15e13 - ; @ (S) will be ¥@ . - text_jump UnknownText_0x1c4c08 - db "@" -; 0x15e18 - -MenuDataHeader_0x15e18: ; 0x15e18 - db $40 ; flags - db 03, 01 ; start coords - db 11, 19 ; end coords - dw MenuData2_0x15e20 - db 1 ; default option -; 0x15e20 - -MenuData2_0x15e20: ; 0x15e20 - db $30 ; flags - db 4, 8 ; rows, columns - db 1 ; horizontal spacing - dbw 0, OBPals + 8 * 6 - dba PlaceMenuItemName - dba Function15e30 - dba Function244c3 -; 15e30 - -Function15e30: ; 15e30 - ld a, [wcf77] - ld c, a - ld b, 0 - ld hl, DefaultFlypoint -rept 3 - add hl, bc -endr - push de - ld d, h - ld e, l - pop hl - ld bc, $14 - add hl, bc - ld c, $a3 - call PrintBCDNumber - ret -; 15e4a (5:5e4a) - -UnknownText_0x15e4a: ; 0x15e4a - ; Hello, dear. I sell inexpensive herbal medicine. They're good, but a trifle bitter. Your #MON may not like them. Hehehehe… - text_jump UnknownText_0x1c4c28 - db "@" -; 0x15e4f - -UnknownText_0x15e4f: ; 0x15e4f - ; How many? - text_jump UnknownText_0x1c4ca3 - db "@" -; 0x15e54 - -UnknownText_0x15e54: ; 0x15e54 - ; @ (S) will be ¥@ . - text_jump UnknownText_0x1c4cae - db "@" -; 0x15e59 - -UnknownText_0x15e59: ; 0x15e59 - ; Thank you, dear. Hehehehe… - text_jump UnknownText_0x1c4cce - db "@" -; 0x15e5e - -UnknownText_0x15e5e: ; 0x15e5e - ; Oh? Your PACK is full, dear. - text_jump UnknownText_0x1c4cea - db "@" -; 0x15e63 - -UnknownText_0x15e63: ; 0x15e63 - ; Hehehe… You don't have the money. - text_jump UnknownText_0x1c4d08 - db "@" -; 0x15e68 - -UnknownText_0x15e68: ; 0x15e68 - ; Come again, dear. Hehehehe… - text_jump UnknownText_0x1c4d2a - db "@" -; 0x15e6d - -UnknownText_0x15e6d: ; 0x15e6d - ; Hiya! Care to see some bargains? I sell rare items that nobody else carries--but only one of each item. - text_jump UnknownText_0x1c4d47 - db "@" -; 0x15e72 - -UnknownText_0x15e72: ; 0x15e72 - ; costs ¥@ . Want it? - text_jump UnknownText_0x1c4db0 - db "@" -; 0x15e77 - -UnknownText_0x15e77: ; 0x15e77 - ; Thanks. - text_jump UnknownText_0x1c4dcd - db "@" -; 0x15e7c - -UnknownText_0x15e7c: ; 0x15e7c - ; Uh-oh, your PACK is chock-full. - text_jump UnknownText_0x1c4dd6 - db "@" -; 0x15e81 - -UnknownText_0x15e81: ; 0x15e81 - ; You bought that already. I'm all sold out of it. - text_jump UnknownText_0x1c4df7 - db "@" -; 0x15e86 - -UnknownText_0x15e86: ; 0x15e86 - ; Uh-oh, you're short on funds. - text_jump UnknownText_0x1c4e28 - db "@" -; 0x15e8b - -UnknownText_0x15e8b: ; 0x15e8b - ; Come by again sometime. - text_jump UnknownText_0x1c4e46 - db "@" -; 0x15e90 - -UnknownText_0x15e90: ; 0x15e90 - ; What's up? Need some medicine? - text_jump UnknownText_0x1c4e5f - db "@" -; 0x15e95 - -UnknownText_0x15e95: ; 0x15e95 - ; How many? - text_jump UnknownText_0x1c4e7e - db "@" -; 0x15e9a - -UnknownText_0x15e9a: ; 0x15e9a - ; @ (S) will cost ¥@ . - text_jump UnknownText_0x1c4e89 - db "@" -; 0x15e9f - -UnknownText_0x15e9f: ; 0x15e9f - ; Thanks much! - text_jump UnknownText_0x1c4eab - db "@" -; 0x15ea4 - -UnknownText_0x15ea4: ; 0x15ea4 - ; You don't have any more space. - text_jump UnknownText_0x1c4eb9 - db "@" -; 0x15ea9 - -UnknownText_0x15ea9: ; 0x15ea9 - ; Huh? That's not enough money. - text_jump UnknownText_0x1c4ed8 - db "@" -; 0x15eae - -UnknownText_0x15eae: ; 0x15eae - ; All right. See you around. - text_jump UnknownText_0x1c4ef6 - db "@" -; 0x15eb3 - - -Function15eb3: ; 15eb3 - call DisableSpriteUpdates - callba Function106a5 -.asm_15ebc - callba Function106be - ld a, [wcf66] - and a - jp z, Function15ece - call Function15ee0 - jr .asm_15ebc -; 15ece - -Function15ece: ; 15ece - call Function2b74 - and a - ret -; 15ed3 - -Function15ed3: ; unreferenced - ld hl, UnknownText_0x15edb - call MenuTextBoxBackup - and a - ret -; 15edb - -UnknownText_0x15edb: ; 0x15edb - ; You don't have anything to sell. - text_jump UnknownText_0x1c4f12 - db "@" -; 0x15ee0 - - -Function15ee0: ; 15ee0 - callba CheckItemMenu - ld a, [wItemAttributeParamBuffer] - ld hl, .jumptable - rst JumpTable - ret -; 15eee - -.jumptable: ; 15eee - dw .maybe_use - dw .no_use - dw .no_use - dw .no_use - dw .maybe_use - dw .maybe_use - dw .maybe_use -; 15efc - -.no_use: ; 15efc - ret -; 15efd - - -.maybe_use: ; 15efd - callba _CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr z, .asm_15f11 - ld hl, UnknownText_0x15faf - call PrintText - and a - ret - -.asm_15f11 - ld hl, UnknownText_0x15f73 - call PrintText - callba Function24af8 - callba Function24fe1 - call ExitMenu - jr c, .asm_15f6e - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x15f78 - call PrintTextBoxText - call YesNoBox - jr c, .asm_15f6e - ld de, Money - ld bc, hMoneyTemp - call GiveMoney - ld a, [wd107] - ld hl, NumItems - call TossItem - predef PartyMonItemName - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x15fbe - call PrintTextBoxText - call Function15fc3 - callba Function24af0 - call JoyWaitAorB - -.asm_15f6e - call ExitMenu - and a - ret -; 15f73 - -UnknownText_0x15f73: ; 0x15f73 - ; How many? - text_jump UnknownText_0x1c4f33 - db "@" -; 0x15f78 - -UnknownText_0x15f78: ; 0x15f78 - ; I can pay you ¥@ . Is that OK? - text_jump UnknownText_0x1c4f3e - db "@" -; 0x15f7d - -String15f7d: ; 15f7d - db "!ダミー!@" - -UnknownText_0x15f83: ; 0x15f83 - ; Welcome! How may I help you? - text_jump UnknownText_0x1c4f62 - db "@" -; 0x15f88 - -MenuDataHeader_0x15f88: ; 0x15f88 - db $40 ; flags - db 00, 00 ; start coords - db 08, 07 ; end coords - dw MenuData2_0x15f90 - db 1 ; default option -; 0x15f90 - -MenuData2_0x15f90: ; 0x15f90 - db $80 ; flags - db 3 ; items - db "BUY@" - db "SELL@" - db "QUIT@" -; 0x15f96 - -UnknownText_0x15fa0: ; 0x15fa0 - ; Here you are. Thank you! - text_jump UnknownText_0x1c4f80 - db "@" -; 0x15fa5 - -UnknownText_0x15fa5: ; 0x15fa5 - ; You don't have enough money. - text_jump UnknownText_0x1c4f9a - db "@" -; 0x15faa - -UnknownText_0x15faa: ; 0x15faa - ; You can't carry any more items. - text_jump UnknownText_0x1c4fb7 - db "@" -; 0x15faf - -UnknownText_0x15faf: ; 0x15faf - ; Sorry, I can't buy that from you. - text_jump UnknownText_0x1c4fd7 - db "@" -; 0x15fb4 - -UnknownText_0x15fb4: ; 0x15fb4 - ; Please come again! - text_jump UnknownText_0x1c4ff9 - db "@" -; 0x15fb9 - -UnknownText_0x15fb9: ; 0x15fb9 - text_jump UnknownText_0x1c500d - db "@" -; 0x15fbe - -UnknownText_0x15fbe: ; 0x15fbe - text_jump UnknownText_0x1c502e - db "@" -; 0x15fc3 - -Function15fc3: ; 15fc3 - call WaitSFX - ld de, SFX_TRANSACTION - call PlaySFX - ret -; 15fcd - -Function15fcd: ; 15fcd - call MenuTextBox - call JoyWaitAorB - call ExitMenu - ret -; 15fd7 +INCLUDE "engine/mart.asm" GiveMoney:: ; 15fd7 ld a, $3 @@ -19818,7 +12485,7 @@ Function16798: ; 16798 callba CheckCurPartyMonFainted jr c, .asm_167e9 ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes ld d, [hl] @@ -19938,13 +12605,13 @@ Function1686d: ; 1686d ld a, d ld [StringBuffer2 + 1], a ld de, StringBuffer1 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld hl, 0 - ld bc, $0064 + ld bc, $64 ld a, [StringBuffer2 + 1] call AddNTimes - ld de, $0064 + ld de, $64 add hl, de xor a ld [StringBuffer2 + 2], a @@ -20142,7 +12809,7 @@ Function16949: ; 16949 call PrintText ld de, SFX_GET_EGG_FROM_DAYCARE_LADY call PlaySFX - ld c, $78 + ld c, 120 call DelayFrames ld hl, UnknownText_0x1699d jr .asm_1697f @@ -20219,12 +12886,12 @@ Function169ac: ; 169ac ld hl, wEggNick call CopyBytes ld hl, PartyMonOT - ld bc, $000b + ld bc, NAME_LENGTH call Function16a31 ld hl, wEggOT call CopyBytes ld hl, PartyMon1 - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Function16a31 ld hl, wEggMon ld bc, wEggMonEnd - wEggMon @@ -20233,14 +12900,14 @@ Function169ac: ; 169ac ld a, [PartyCount] dec a ld hl, PartyMon1 - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld b, h ld c, l - ld hl, PartyMon1ID + 1 - PartyMon1 + ld hl, MON_ID + 1 add hl, bc push hl - ld hl, PartyMon1MaxHP - PartyMon1 + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l @@ -20249,7 +12916,7 @@ Function169ac: ; 169ac ld b, $0 predef CalcPkmnStats pop bc - ld hl, PartyMon1HP - PartyMon1 + ld hl, MON_HP add hl, bc xor a ld [hli], a @@ -20375,7 +13042,7 @@ Function16a66: ; 16a66 ld [hl], a ld a, [CurPartyLevel] ld d, a - callab Function50e47 + callab CalcExpAtLevel ld hl, wEggMonExp ld a, [hMultiplicand] ld [hli], a @@ -20448,14 +13115,14 @@ Function16a66: ; 16a66 .asm_16bab ld hl, StringBuffer1 ld de, wd050 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld hl, wEggMonMoves ld de, wEggMonPP predef FillPP ld hl, wd050 ld de, StringBuffer1 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld a, [BaseEggSteps] ld hl, wEggMonHappiness @@ -20485,9 +13152,9 @@ Function16be4: ; 16be4 ld [hInMenu], a ld a, [Options] push af - set 4, a + set NO_TEXT_SCROLL, a ld [Options], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld de, UnownDexATile @@ -20501,7 +13168,7 @@ Function16be4: ; 16be4 call Request1bpp hlcoord 0, 0 - ld bc, $0312 + lb bc, 3, 18 call TextBox hlcoord 0, 5 @@ -20509,7 +13176,7 @@ Function16be4: ; 16be4 call TextBox hlcoord 0, 14 - ld bc, $0212 + lb bc, 2, 18 call TextBox hlcoord 1, 2 @@ -20539,70 +13206,70 @@ Function16be4: ; 16be4 call GetSGBLayout call SetPalettes -.asm_16c6b +.joy_loop call JoyTextDelay ld a, [hJoyPressed] and B_BUTTON - jr nz, .asm_16c95 + jr nz, .pressed_b ld a, [hJoyPressed] and A_BUTTON - jr nz, .asm_16c82 + jr nz, .pressed_a call Function16ca0 call DelayFrame - jr .asm_16c6b + jr .joy_loop -.asm_16c82 +.pressed_a ld a, [wJumptableIndex] push af callba Function84560 call RestartMapMusic pop af ld [wJumptableIndex], a - jr .asm_16c6b + jr .joy_loop -.asm_16c95 +.pressed_b pop af ld [Options], a pop af ld [hInMenu], a - call Function222a + call ReturnToMapFromSubmenu ret ; 16ca0 Function16ca0: ; 16ca0 ld a, [hJoyLast] and D_RIGHT - jr nz, .asm_16cb9 + jr nz, .press_right ld a, [hJoyLast] and D_LEFT - jr nz, .asm_16cad + jr nz, .press_left ret -.asm_16cad +.press_left ld hl, wJumptableIndex ld a, [hl] and a - jr nz, .asm_16cb6 + jr nz, .wrap_around_left ld [hl], $1b -.asm_16cb6 +.wrap_around_left dec [hl] - jr .asm_16cc4 + jr .return -.asm_16cb9 +.press_right ld hl, wJumptableIndex ld a, [hl] cp $1a - jr c, .asm_16cc3 + jr c, .wrap_around_right ld [hl], $ff -.asm_16cc3 +.wrap_around_right inc [hl] -.asm_16cc4 +.return call Function16cc8 ret ; 16cc8 @@ -20622,7 +13289,7 @@ Function16cc8: ; 16cc8 call Function16cff hlcoord 1, 6 xor a - ld [$ffad], a + ld [hFillBox], a lb bc, 7, 7 predef FillBox ld de, VTiles2 tile $31 @@ -20635,6 +13302,7 @@ Function16cff: ; 16cff push af ld a, $6 ld [rSVBK], a + ld a, BANK(sScratch) call GetSRAMBank ld de, w6_d000 @@ -20644,6 +13312,7 @@ Function16cff: ; 16cff ld c, $31 call Get2bpp call CloseSRAM + pop af ld [rSVBK], a ret @@ -20659,7 +13328,7 @@ Function16d20: ; 16d20 xor a call GetSRAMBank ld hl, sScratch - ld bc, $0310 ; 784 + ld bc, $31 tiles xor a call ByteFill ld hl, VTiles2 tile $31 @@ -20681,10 +13350,10 @@ UnownDexDoWhatString: db "Do what?@" UnownDexMenuString: - db $ef, " PRINT" - next $f5, " CANCEL" - next $df, " PREVIOUS" - next $eb, " NEXT" + db "♂ PRINT" + next "♀ CANCEL" + next "← PREVIOUS" + next "→ NEXT" db "@" UnownDexVacantString: @@ -20704,1050 +13373,75 @@ Function16dac: ; 16dac call ByteFill hlcoord 7, 11 ld a, $31 - ld [$ffad], a + ld [hFillBox], a lb bc, 7, 7 predef FillBox ret ; 16dc7 -Function16dc7: ; 16dc7 - ld hl, UnknownText_0x16e04 +PhotoStudio: ; 16dc7 + ld hl, .Text_AskWhichMon call PrintText callba SelectMonFromParty - jr c, .asm_16df8 + jr c, .cancel ld a, [CurPartySpecies] cp EGG - jr z, .asm_16dfd - ld hl, UnknownText_0x16e09 + jr z, .egg + + ld hl, .Text_HoldStill call PrintText call DisableSpriteUpdates callba Function8461a call Function2b74 ld a, [$ffac] and a - jr nz, .asm_16df8 - ld hl, UnknownText_0x16e0e - jr .asm_16e00 + jr nz, .cancel + ld hl, .Text_Presto + jr .print_text -.asm_16df8 - ld hl, UnknownText_0x16e13 - jr .asm_16e00 +.cancel + ld hl, .Text_NoPicture + jr .print_text -.asm_16dfd - ld hl, UnknownText_0x16e18 +.egg + ld hl, .Text_Egg -.asm_16e00 +.print_text call PrintText ret ; 16e04 -UnknownText_0x16e04: ; 0x16e04 +.Text_AskWhichMon: ; 0x16e04 ; Which #MON should I photo- graph? text_jump UnknownText_0x1be024 db "@" ; 0x16e09 -UnknownText_0x16e09: ; 0x16e09 +.Text_HoldStill: ; 0x16e09 ; All righty. Hold still for a bit. text_jump UnknownText_0x1be047 db "@" ; 0x16e0e -UnknownText_0x16e0e: ; 0x16e0e +.Text_Presto: ; 0x16e0e ; Presto! All done. Come again, OK? text_jump UnknownText_0x1be06a db "@" ; 0x16e13 -UnknownText_0x16e13: ; 0x16e13 +.Text_NoPicture: ; 0x16e13 ; Oh, no picture? Come again, OK? text_jump UnknownText_0x1c0000 db "@" ; 0x16e18 -UnknownText_0x16e18: ; 0x16e18 +.Text_Egg: ; 0x16e18 ; An EGG? My talent is worth more… text_jump UnknownText_0x1c0021 db "@" ; 0x16e1d - -Function16e1d: ; 16e1d - call Function16ed6 - ld c, $0 - jp nc, .asm_16eb7 - ld a, [wBreedMon1Species] - ld [CurPartySpecies], a - ld a, [wBreedMon1DVs] - ld [TempMonDVs], a - ld a, [wBreedMon1DVs + 1] - ld [TempMonDVs + 1], a - ld a, $3 - ld [MonType], a - predef GetGender - jr c, .asm_16e70 - ld b, $1 - jr nz, .asm_16e48 - inc b - -.asm_16e48 - push bc - ld a, [wBreedMon2Species] - ld [CurPartySpecies], a - ld a, [wBreedMon2DVs] - ld [TempMonDVs], a - ld a, [wBreedMon2DVs + 1] - ld [TempMonDVs + 1], a - ld a, $3 - ld [MonType], a - predef GetGender - pop bc - jr c, .asm_16e70 - ld a, $1 - jr nz, .asm_16e6d - inc a - -.asm_16e6d - cp b - jr nz, .asm_16e89 - -.asm_16e70 - ld c, $0 - ld a, [wBreedMon1Species] - cp DITTO - jr z, .asm_16e82 - ld a, [wBreedMon2Species] - cp DITTO - jr nz, .asm_16eb7 - jr .asm_16e89 - -.asm_16e82 - ld a, [wBreedMon2Species] - cp DITTO - jr z, .asm_16eb7 - -.asm_16e89 - call Function16ebc - ld c, $ff - jp z, .asm_16eb7 - ld a, [wBreedMon2Species] - ld b, a - ld a, [wBreedMon1Species] - cp b - ld c, $fe - jr z, .asm_16e9f - ld c, $80 -.asm_16e9f - ld a, [wBreedMon1ID] - ld b, a - ld a, [wBreedMon2ID] - cp b - jr nz, .asm_16eb7 - ld a, [wBreedMon1ID + 1] - ld b, a - ld a, [wBreedMon2ID + 1] - cp b - jr nz, .asm_16eb7 - ld a, c - sub $4d - ld c, a - -.asm_16eb7 - ld a, c - ld [wd265], a - ret -; 16ebc - - -Function16ebc: ; 16ebc (5:6ebc) - ld a, [wBreedMon1DVs] - and $f - ld b, a - ld a, [wBreedMon2DVs] - and $f - cp b - ret nz - ld a, [wBreedMon1DVs + 1] - and $7 - ld b, a - ld a, [wBreedMon2DVs + 1] - and $7 - cp b - ret -; 16ed6 - -Function16ed6: ; 16ed6 - ld a, [wBreedMon2Species] - ld [CurSpecies], a - call GetBaseData - ld a, [BaseEggGroups] - cp $ff - jr z, .asm_16f3a - ld a, [wBreedMon1Species] - ld [CurSpecies], a - call GetBaseData - ld a, [BaseEggGroups] - cp $ff - jr z, .asm_16f3a - ld a, [wBreedMon2Species] - cp DITTO - jr z, .asm_16f3c - ld [CurSpecies], a - call GetBaseData - ld a, [BaseEggGroups] - push af - and $f - ld b, a - pop af - and $f0 - swap a - ld c, a - ld a, [wBreedMon1Species] - cp DITTO - jr z, .asm_16f3c - ld [CurSpecies], a - push bc - call GetBaseData - pop bc - ld a, [BaseEggGroups] - push af - and $f - ld d, a - pop af - and $f0 - swap a - ld e, a - ld a, d - cp b - jr z, .asm_16f3c - cp c - jr z, .asm_16f3c - ld a, e - cp b - jr z, .asm_16f3c - cp c - jr z, .asm_16f3c - -.asm_16f3a - and a - ret - -.asm_16f3c - scf - ret -; 16f3e - -DoEggStep:: ; 16f3e - ld de, PartySpecies - ld hl, PartyMon1Happiness - ld c, 0 -.loop - ld a, [de] - inc de - cp -1 - ret z - cp EGG - jr nz, .next - dec [hl] - jr nz, .next - ld a, 1 - and a - ret - -.next - push de - ld de, PartyMon2 - PartyMon1 - add hl, de - pop de - jr .loop -; 16f5e - -OverworldHatchEgg:: ; 16f5e - call ResetWindow - call LoadMenuDataHeader_0x1d75 - call Function16f70 - call Function2b4d - call RestartMapMusic - jp LoadMoveSprites -; 16f70 - -Function16f70: ; 16f70 (5:6f70) - ld de, PartySpecies - ld hl, PartyMon1Happiness - xor a - ld [CurPartyMon], a - -Function16f7a: ; 16f7a (5:6f7a) - ld a, [de] - inc de - cp -1 - jp z, Function1708a - push de - push hl - cp EGG - jp nz, Function1707d - ld a, [hl] - and a - jp nz, Function1707d - ld [hl], $78 - - push de - - callba Function4dbb8 - callba MobileFn_10608d - ld a, [CurPartyMon] - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PartyMon2 - PartyMon1 - call AddNTimes - ld a, [hl] - ld [CurPartySpecies], a - dec a - call SetSeenAndCaughtMon - - ld a, [CurPartySpecies] - cp TOGEPI - jr nz, .nottogepi - ; set the event flag for hatching togepi - ld de, EVENT_TOGEPI_HATCHED - ld b, SET_FLAG - call EventFlagAction -.nottogepi - - pop de - - ld a, [CurPartySpecies] - dec de - ld [de], a - ld [wd265], a - ld [CurSpecies], a - call GetPokemonName - xor a - ld [wd26b], a - call GetBaseData - ld a, [CurPartyMon] - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PartyMon2 - PartyMon1 - call AddNTimes - push hl - ld bc, PartyMon1MaxHP - PartyMon1 - add hl, bc - ld d, h - ld e, l - pop hl - push hl - ld bc, PartyMon1Level - PartyMon1 - add hl, bc - ld a, [hl] - ld [CurPartyLevel], a - pop hl - push hl - ld bc, PartyMon1Status - PartyMon1 - add hl, bc - xor a - ld [hli], a - ld [hl], a - pop hl - push hl - ld bc, PartyMon1Exp + 2 - PartyMon1 - add hl, bc - ld b, $0 - predef CalcPkmnStats - pop bc - ld hl, PartyMon1MaxHP - PartyMon1 - add hl, bc - ld d, h - ld e, l - ld hl, PartyMon1HP - PartyMon1 - add hl, bc - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - ld hl, PartyMon1ID - PartyMon1 - add hl, bc - ld a, [PlayerID] - ld [hli], a - ld a, [PlayerID + 1] - ld [hl], a - ld a, [CurPartyMon] - ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) - ld bc, NAME_LENGTH - call AddNTimes - ld d, h - ld e, l - ld hl, PlayerName - call CopyBytes - ld hl, UnknownText_0x1708b - call PrintText - ld a, [CurPartyMon] - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - call AddNTimes - ld d, h - ld e, l - push de - ld hl, UnknownText_0x170ba - call PrintText - call YesNoBox - pop de - jr c, .nonickname - ld a, $1 - ld [wd26b], a - xor a - ld [MonType], a - push de - ld b, $0 - callba Function116c1 - pop hl - ld de, StringBuffer1 - call InitName - jr Function1707d -.nonickname - ld hl, StringBuffer1 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -Function1707d: ; 1707d (5:707d) - ld hl, CurPartyMon - inc [hl] - pop hl - ld de, PartyMon2 - PartyMon1 - add hl, de - pop de - jp Function16f7a - -Function1708a: ; 1708a (5:708a) - ret -; 1708b (5:708b) - -UnknownText_0x1708b: ; 0x1708b - ; Huh? @ @ - text_jump UnknownText_0x1c0db0 - start_asm -; 0x17090 - -Function17090: ; 17090 - ld hl, VramState - res 0, [hl] - push hl - push de - push bc - ld a, [CurPartySpecies] - push af - call Function1728f - ld hl, UnknownText_0x170b0 - call PrintText - pop af - ld [CurPartySpecies], a - pop bc - pop de - pop hl - ld hl, UnknownText_0x170b5 - ret -; 170b0 (5:70b0) - -UnknownText_0x170b0: ; 0x170b0 - ; - text_jump UnknownText_0x1c0db8 - db "@" -; 0x170b5 - -UnknownText_0x170b5: ; 0x170b5 - ; came out of its EGG!@ @ - text_jump UnknownText_0x1c0dba - db "@" -; 0x170ba - -UnknownText_0x170ba: ; 0x170ba - ; Give a nickname to @ ? - text_jump UnknownText_0x1c0dd8 - db "@" -; 0x170bf - -Function170bf: ; 170bf - call Function17197 - ld d, h - ld e, l - ld b, NUM_MOVES -.loop - ld a, [de] - and a - jr z, .done - ld hl, wEggMonMoves - ld c, NUM_MOVES -.next - ld a, [de] - cp [hl] - jr z, .skip - inc hl - dec c - jr nz, .next - call Function170e4 - jr nc, .skip - call Function17169 - -.skip - inc de - dec b - jr nz, .loop - -.done - ret -; 170e4 - -Function170e4: ; 170e4 -GLOBAL EggMoves - - push bc - ld a, [wEggMonSpecies] - dec a - ld c, a - ld b, 0 - ld hl, EggMovePointers -rept 2 - add hl, bc -endr - ld a, BANK(EggMovePointers) - call GetFarHalfword -.loop - ld a, BANK(EggMoves) - call GetFarByte - cp -1 - jr z, .found_mon - ld b, a - ld a, [de] - cp b - jr z, .done_carry - inc hl - jr .loop - -.found_mon - call Function1720b - ld b, NUM_MOVES -.loop2 - ld a, [de] - cp [hl] - jr z, .found_eggmove - inc hl - dec b - jr z, .inherit_tmhm - jr .loop2 - -.found_eggmove - ld a, [wEggMonSpecies] - dec a - ld c, a - ld b, 0 - ld hl, EvosAttacksPointers -rept 2 - add hl, bc -endr - ld a, BANK(EvosAttacksPointers) - call GetFarHalfword -.loop3 - ld a, BANK(EvosAttacks) - call GetFarByte - inc hl - and a - jr nz, .loop3 -.loop4 - ld a, BANK(EvosAttacks) - call GetFarByte - and a - jr z, .inherit_tmhm - inc hl - ld a, BANK(EvosAttacks) - call GetFarByte - ld b, a - ld a, [de] - cp b - jr z, .done_carry - inc hl - jr .loop4 - -.inherit_tmhm - ld hl, TMHMMoves -.loop5 - ld a, BANK(TMHMMoves) - call GetFarByte - inc hl - and a - jr z, .done - ld b, a - ld a, [de] - cp b - jr nz, .loop5 - ld [wd262], a - predef CanLearnTMHMMove - ld a, c - and a - jr z, .done - -.done_carry - pop bc - scf - ret - -.done - pop bc - and a - ret -; 17169 - -Function17169: ; 17169 - push de - push bc - ld a, [de] - ld b, a - ld hl, wEggMonMoves - ld c, NUM_MOVES -.loop - ld a, [hli] - and a - jr z, .done - dec c - jr nz, .loop - ld de, wEggMonMoves - ld hl, wEggMonMoves + 1 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - -.done - dec hl - ld [hl], b - ld hl, wEggMonMoves - ld de, wEggMonPP - predef FillPP - pop bc - pop de - ret -; 17197 - -Function17197: ; 17197 - ld hl, wBreedMon2Moves - ld a, [wBreedMon1Species] - cp DITTO - jr z, .ditto1 - ld a, [wBreedMon2Species] - cp DITTO - jr z, .ditto2 - ld a, [wDittoInDaycare] - and a - ret z - ld hl, wBreedMon1Moves - ret - -.ditto1 - ld a, [CurPartySpecies] - push af - ld a, [wBreedMon2Species] - ld [CurPartySpecies], a - ld a, [wBreedMon2DVs] - ld [TempMonDVs], a - ld a, [wBreedMon2DVs + 1] - ld [TempMonDVs + 1], a - ld a, $3 - ld [MonType], a - predef GetGender - jr c, .inherit_mon2_moves - jr nz, .inherit_mon2_moves - jr .inherit_mon1_moves - -.ditto2 - ld a, [CurPartySpecies] - push af - ld a, [wBreedMon1Species] - ld [CurPartySpecies], a - ld a, [wBreedMon1DVs] - ld [TempMonDVs], a - ld a, [wBreedMon1DVs + 1] - ld [TempMonDVs + 1], a - ld a, $3 - ld [MonType], a - predef GetGender - jr c, .inherit_mon1_moves - jr nz, .inherit_mon1_moves - -.inherit_mon2_moves - ld hl, wBreedMon2Moves - pop af - ld [CurPartySpecies], a - ret - -.inherit_mon1_moves - ld hl, wBreedMon1Moves - pop af - ld [CurPartySpecies], a - ret -; 1720b - -Function1720b: ; 1720b - ld hl, wBreedMon1Moves - ld a, [wBreedMon1Species] - cp DITTO - ret z - ld a, [wBreedMon2Species] - cp DITTO - jr z, .ditto - ld a, [wDittoInDaycare] - and a - ret z - -.ditto - ld hl, wBreedMon2Moves - ret -; 17224 - - -Function17224: ; 17224 (5:7224) - push de - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - ld hl, BattleMonDVs - predef GetUnownLetter - pop de - predef_jump GetFrontpic - -Function1723c: ; 1723c (5:723c) - push de - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - ld hl, BattleMonDVs - predef GetUnownLetter - pop de - predef_jump Function5108b - -Function17254: ; 17254 (5:7254) - push af - call WaitTop - push hl - push bc - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - pop bc - pop hl - ld a, b - ld [hBGMapAddress + 1], a - ld a, c - ld [$ffad], a - ld bc, $707 - predef FillBox - pop af - call Function17363 - call SetPalettes - jp WaitBGMap - -Function1727f: ; 1727f (5:727f) - push hl - push de - push bc - callab Function8cf69 - call DelayFrame - pop bc - pop de - pop hl - ret - -Function1728f: ; 1728f (5:728f) - ld a, [wd265] - ld [wJumptableIndex], a - ld a, [CurSpecies] - push af - ld de, MUSIC_NONE - call PlayMusic - callba Function8000 - call DisableLCD - ld hl, EggHatchGFX - ld de, VTiles0 tile $00 - ld bc, $20 - ld a, BANK(EggHatchGFX) - call FarCopyBytes - callba Function8cf53 - ld de, VTiles2 tile $00 - ld a, [wJumptableIndex] - call Function1723c - ld de, VTiles2 tile $31 - ld a, EGG - call Function17224 - ld de, MUSIC_EVOLUTION - call PlayMusic - call EnableLCD - hlcoord 7, 4 - ld b, $98 - ld c, $31 - ld a, EGG - call Function17254 - ld c, $50 - call DelayFrames - xor a - ld [wcf64], a - ld a, [hSCX] ; $ff00+$cf - ld b, a -.asm_172ee - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $8 - jr nc, .asm_17327 - ld e, [hl] -.asm_172f8 - ld a, $2 - ld [hSCX], a ; $ff00+$cf - ld a, $fe - ld [wc3c0], a - call Function1727f - ld c, $2 - call DelayFrames - ld a, $fe - ld [hSCX], a ; $ff00+$cf - ld a, $2 - ld [wc3c0], a - call Function1727f - ld c, $2 - call DelayFrames - dec e - jr nz, .asm_172f8 - ld c, $10 - call DelayFrames - call Function1736d - jr .asm_172ee -.asm_17327 - ld de, SFX_EGG_HATCH - call PlaySFX - xor a - ld [hSCX], a ; $ff00+$cf - ld [wc3c0], a - call ClearSprites - call Function173b3 - hlcoord 6, 3 - ld b, $98 - ld c, $0 - ld a, [wJumptableIndex] - call Function17254 - call Function17418 - call WaitSFX - ld a, [wJumptableIndex] - ld [CurPartySpecies], a - hlcoord 6, 3 - ld d, $0 - ld e, $5 - predef Functiond008e - pop af - ld [CurSpecies], a - ret - -Function17363: ; 17363 (5:7363) - ld [PlayerHPPal], a - ld b, $b - ld c, $0 - jp GetSGBLayout - -Function1736d: ; 1736d (5:736d) - ld a, [wcf64] - dec a - and $7 - cp $7 - ret z - srl a - ret nc - swap a - srl a - add $4c - ld d, a - ld e, $58 - ld a, $19 - call Function3b2a - ld hl, $3 - add hl, bc - ld [hl], $0 - ld de, SFX_EGG_CRACK - jp PlaySFX -; 17393 (5:7393) - -EggHatchGFX: ; 17393 -INCBIN "gfx/unknown/017393.2bpp" -; 173b3 - -Function173b3: ; 173b3 (5:73b3) - callba Function8cf53 - ld hl, Unknown_173ef -.loop - ld a, [hli] - cp $ff - jr z, .done - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - push hl - push bc - ld a, $1c - call Function3b2a - ld hl, $3 - add hl, bc - ld [hl], $0 - pop de - ld a, e - ld hl, $1 - add hl, bc - add [hl] - ld [hl], a - ld hl, $b - add hl, bc - ld [hl], d - pop hl - jr .loop -.done - ld de, SFX_EGG_HATCH - call PlaySFX - call Function1727f - ret -; 173ef (5:73ef) - -Unknown_173ef: ; 173ef -; Probably OAM. - db $54, $48, $00, $3c - db $5c, $48, $01, $04 - db $54, $50, $00, $30 - db $5c, $50, $01, $10 - db $54, $58, $02, $24 - db $5c, $58, $03, $1c - db $50, $4c, $00, $36 - db $60, $4c, $01, $0a - db $50, $54, $02, $2a - db $60, $54, $03, $16 - db $ff -; 17418 - -Function17418: ; 17418 (5:7418) - ld c, $81 -.asm_1741a - call Function1727f - dec c - jr nz, .asm_1741a - ret - -Special_DayCareMon1: ; 17421 - ld hl, UnknownText_0x17467 - call PrintText - ld a, [wBreedMon1Species] - call PlayCry - ld a, [wDaycareLady] - bit 0, a - jr z, Function1745f - call KeepTextOpen - ld hl, wBreedMon2Nick - call Function1746c - jp PrintText - -Special_DayCareMon2: ; 17440 - ld hl, UnknownText_0x17462 - call PrintText - ld a, [wBreedMon2Species] - call PlayCry - ld a, [wDaycareMan] - bit 0, a - jr z, Function1745f - call KeepTextOpen - ld hl, wBreedMon1Nick - call Function1746c - jp PrintText - -Function1745f: ; 1745f - jp Functiona80 -; 17462 - -UnknownText_0x17462: ; 0x17462 - ; It's @ that was left with the DAY-CARE LADY. - text_jump UnknownText_0x1c0df3 - db "@" -; 0x17467 - -UnknownText_0x17467: ; 0x17467 - ; It's @ that was left with the DAY-CARE MAN. - text_jump UnknownText_0x1c0e24 - db "@" -; 0x1746c - -Function1746c: ; 1746c - push bc - ld de, StringBuffer1 - ld bc, $000b - call CopyBytes - call Function16e1d - pop bc - ld a, [wd265] - ld hl, UnknownText_0x1749c - cp $ff - jr z, .asm_1749b - ld hl, UnknownText_0x174a1 - and a - jr z, .asm_1749b - ld hl, UnknownText_0x174a6 - cp 230 - jr nc, .asm_1749b - cp 70 - ld hl, UnknownText_0x174ab - jr nc, .asm_1749b - ld hl, UnknownText_0x174b0 - -.asm_1749b - ret -; 1749c - -UnknownText_0x1749c: ; 0x1749c - ; It's brimming with energy. - text_jump UnknownText_0x1c0e54 - db "@" -; 0x174a1 - -UnknownText_0x174a1: ; 0x174a1 - ; It has no interest in @ . - text_jump UnknownText_0x1c0e6f - db "@" -; 0x174a6 - -UnknownText_0x174a6: ; 0x174a6 - ; It appears to care for @ . - text_jump UnknownText_0x1c0e8d - db "@" -; 0x174ab - -UnknownText_0x174ab: ; 0x174ab - ; It's friendly with @ . - text_jump UnknownText_0x1c0eac - db "@" -; 0x174b0 - -UnknownText_0x174b0: ; 0x174b0 - ; It shows interest in @ . - text_jump UnknownText_0x1c0ec6 - db "@" -; 0x174b5 - -Function_174b5: ; 174b5 - ld hl, String_174b9 - ret -; 174b9 - -String_174b9: ; 174b9 - db "@" -; 174ba - +INCLUDE "engine/breeding/egg.asm" SECTION "Tileset Data 1", ROMX, BANK[TILESETS_1] @@ -21767,248 +13461,7 @@ INCLUDE "tilesets/data_2.asm" SECTION "bank8", ROMX, BANK[$8] - -Function20000: ; 20000 (8:4000) - push hl - dec a - ld e, a - ld d, 0 - ld hl, Unknown_20015 -rept 4 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld b, [hl] - inc hl - ld c, [hl] - pop hl - ret -; 20015 (8:4015) - -Unknown_20015: ; 20015 - dw wd1ed - db $07, $04 - - dw wd1ee - db $18, $0c - - dw wd1ef - db $3c, $0f -; 20021 - -Function20021: ; 20021 (8:4021) - ld hl, UnknownText_0x20047 - call PrintText - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call LoadMenuDataHeader_0x1d75 - call ClearTileMap - ld hl, UnknownText_0x2004c - call PrintText - call Function20051 - call ExitMenu - pop bc - ld hl, Options - ld [hl], b - ld c, a - ret -; 20047 (8:4047) - -UnknownText_0x20047: ; 0x20047 - ; The clock's time may be wrong. Please reset the time. - text_jump UnknownText_0x1c40e6 - db "@" -; 0x2004c - -UnknownText_0x2004c: ; 0x2004c - ; Set with the Control Pad. Confirm: A Button Cancel: B Button - text_jump UnknownText_0x1c411c - db "@" -; 0x20051 - -Function20051: ; 20051 (8:4051) - ld a, $1 - ld [Buffer1], a ; wd1ea (aliases: MagikarpLength) - ld [Buffer2], a ; wd1eb (aliases: MovementType) - ld a, $8 - ld [wd1ec], a - call UpdateTime - call GetWeekday - ld [wd1ed], a - ld a, [hHours] ; $ff00+$94 - ld [wd1ee], a - ld a, [hMinutes] ; $ff00+$96 - ld [wd1ef], a -.asm_20071 - call Function200ba - jr nc, .asm_20071 - and a - ret nz - call Function2011f - ld hl, UnknownText_0x200b0 - call PrintText - call YesNoBox - jr c, .asm_200ad - ld a, [wd1ed] - ld [StringBuffer2], a - ld a, [wd1ee] - ld [StringBuffer2 + 1], a - ld a, [wd1ef] - ld [StringBuffer2 + 2], a - xor a - ld [StringBuffer2 + 3], a - call Function677 - call Function2011f - ld hl, UnknownText_0x200b5 - call PrintText - call Functiona80 - xor a - ret -.asm_200ad - ld a, $1 - ret -; 200b0 (8:40b0) - -UnknownText_0x200b0: ; 0x200b0 - ; Is this OK? - text_jump UnknownText_0x1c415b - db "@" -; 0x200b5 - -UnknownText_0x200b5: ; 0x200b5 - ; The clock has been reset. - text_jump UnknownText_0x1c4168 - db "@" -; 0x200ba - -Function200ba: ; 200ba (8:40ba) - call Function354b - ld c, a - push af - call Function2011f - pop af - bit 0, a - jr nz, .asm_200dd - bit 1, a - jr nz, .asm_200e1 - bit 6, a - jr nz, .asm_200e5 - bit 7, a - jr nz, .asm_200f6 - bit 5, a - jr nz, .asm_20108 - bit 4, a - jr nz, .asm_20112 - jr Function200ba -.asm_200dd - ld a, $0 - scf - ret -.asm_200e1 - ld a, $1 - scf - ret -.asm_200e5 - ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) - call Function20000 - ld a, [de] - inc a - ld [de], a - cp b - jr c, .asm_2011d - ld a, $0 - ld [de], a - jr .asm_2011d -.asm_200f6 - ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) - call Function20000 - ld a, [de] - dec a - ld [de], a - cp $ff - jr nz, .asm_2011d - ld a, b - dec a - ld [de], a - jr .asm_2011d -.asm_20108 - ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) - dec [hl] - jr nz, .asm_2011d - ld [hl], $3 - jr .asm_2011d -.asm_20112 - ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) - inc [hl] - ld a, [hl] - cp $4 - jr c, .asm_2011d - ld [hl], $1 -.asm_2011d - xor a - ret - -Function2011f: ; 2011f (8:411f) - hlcoord 0, 5 - ld b, $5 - ld c, $12 - call TextBox - decoord 1, 8 - ld a, [wd1ed] - ld b, a - callba Function5b05 - ld a, [wd1ee] - ld b, a - ld a, [wd1ef] - ld c, a - decoord 11, 8 - callba Function1dd6bb - ld a, [Buffer2] ; wd1eb (aliases: MovementType) - lb de, $7f, $7f - call Function20168 - ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) - lb de, $61, $ee - call Function20168 - ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) - ld [Buffer2], a ; wd1eb (aliases: MovementType) - ret -; 20160 (8:4160) - -Function20160: ; 20160 - ld a, [wd1ec] - ld b, a - call GetTileCoord - ret -; 20168 - -Function20168: ; 20168 (8:4168) - push de - call Function20000 - ld a, [wd1ec] - dec a - ld b, a - call GetTileCoord - pop de - ld [hl], d - ld bc, $28 - add hl, bc - ld [hl], e - ret -; 2017c (8:417c) - -String_2017c: ; 2017c - db "じ@" ; HR -; 2017e - -String_2017e: ; 2017e - db "ふん@" ; MIN -; 20181 - +INCLUDE "engine/clock_reset.asm" SECTION "Tileset Data 3", ROMX, BANK[TILESETS_3] @@ -22027,591 +13480,7 @@ StringBufferPointers:: ; 24000 dw BattleMonNick ; 2400e -Function2400e:: ; 2400e - ld hl, Function1c66 - ld a, [wcf94] - rst FarCall - call Function24085 - call UpdateSprites - call Function321c - call Function2408f - ret -; 24022 - -Function24022:: ; 24022 - ld hl, Function1c66 - ld a, [wcf94] - rst FarCall - call Function24085 - callba MobileTextBorder - call UpdateSprites - call Function321c - call Function2408f - ret -; 2403c - -Function2403c:: ; 2403c - ld hl, Function1c66 - ld a, [wcf94] - rst FarCall - call Function24085 - callba MobileTextBorder - call UpdateSprites - call Function321c - call Function2411a - ld hl, wcfa5 - set 7, [hl] -.asm_2405a - call DelayFrame - callba Function10032e - ld a, [wcd2b] - and a - jr nz, .asm_24076 - call Function241ba - ld a, [wcfa8] - and c - jr z, .asm_2405a - call Function24098 - ret - -.asm_24076 - ld a, [wcfa4] - ld c, a - ld a, [wcfa3] - call SimpleMultiply - ld [wMenuCursorBuffer], a - and a - ret -; 24085 - - - -Function24085: ; 24085 - xor a - ld [hBGMapMode], a - call Function1cbb - call Function240db - ret -; 2408f - -Function2408f: ; 2408f - call Function2411a - call Function1bc9 - call Function1ff8 - -Function24098: ; 24098 - ld a, [wcf91] - bit 1, a - jr z, .asm_240a6 - call Function1bdd - bit 2, a - jr nz, .asm_240c9 - -.asm_240a6 - ld a, [wcf91] - bit 0, a - jr nz, .asm_240b4 - call Function1bdd - bit 1, a - jr nz, .asm_240cb - -.asm_240b4 - ld a, [wcfa4] - ld c, a - ld a, [wcfa9] - dec a - call SimpleMultiply - ld c, a - ld a, [wcfaa] - add c - ld [wMenuCursorBuffer], a - and a - ret - -.asm_240c9 - scf - ret - -.asm_240cb - scf - ret -; 240cd - -Function240cd: ; 240cd - ld a, [wcf92] - and $f - ret -; 240d3 - -Function240d3: ; 240d3 - ld a, [wcf92] - swap a - and $f - ret -; 240db - -Function240db: ; 240db - ld hl, wcf95 - ld e, [hl] - inc hl - ld d, [hl] - call Function1cc6 - call GetTileCoord - call Function240d3 - ld b, a -.asm_240eb - push bc - push hl - call Function240cd - ld c, a -.asm_240f1 - push bc - ld a, [wcf94] - call Function201c - inc de - ld a, [wcf93] - ld c, a - ld b, $0 - add hl, bc - pop bc - dec c - jr nz, .asm_240f1 - pop hl - ld bc, $0028 - add hl, bc - pop bc - dec b - jr nz, .asm_240eb - ld hl, wcf98 - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, [wcf97] - rst FarCall - ret -; 2411a - - -Function2411a: ; 2411a (9:411a) - call Function1cc6 - ld a, b - ld [wcfa1], a - dec c - ld a, c - ld [wcfa2], a - call Function240d3 - ld [wcfa3], a - call Function240cd - ld [wcfa4], a - call Function24179 - call Function2418a - call Function24193 - ld a, [wcfa4] - ld e, a - ld a, [wMenuCursorBuffer] - ld b, a - xor a - ld d, $0 -.asm_24146 - inc d - add e - cp b - jr c, .asm_24146 - sub e - ld c, a - ld a, b - sub c - and a - jr z, .asm_24157 - cp e - jr z, .asm_24159 - jr c, .asm_24159 -.asm_24157 - ld a, $1 -.asm_24159 - ld [wcfaa], a - ld a, [wcfa3] - ld e, a - ld a, d - and a - jr z, .asm_24169 - cp e - jr z, .asm_2416b - jr c, .asm_2416b -.asm_24169 - ld a, $1 -.asm_2416b - ld [wcfa9], a - xor a - ld [wcfab], a - ld [wcfac], a - ld [wcfad], a - ret -; 24179 - -Function24179: ; 24179 - xor a - ld hl, wcfa5 - ld [hli], a - ld [hld], a - ld a, [wcf91] - bit 5, a - ret z - set 5, [hl] - set 4, [hl] - ret -; 2418a - -Function2418a: ; 2418a - ld a, [wcf93] - or $20 - ld [wcfa7], a - ret -; 24193 - -Function24193: ; 24193 - ld hl, wcf91 - ld a, $1 - bit 0, [hl] - jr nz, .asm_2419e - or $2 - -.asm_2419e - bit 1, [hl] - jr z, .asm_241a4 - or $4 - -.asm_241a4 - ld [wcfa8], a - ret -; 241a8 - - -Function241a8:: ; 241a8 - call Function24329 -Function241ab:: ; 241ab - ld hl, wcfa6 - res 7, [hl] - ld a, [hBGMapMode] - push af - call Function24216 - pop af - ld [hBGMapMode], a - ret -; 241ba - -Function241ba: ; 241ba - ld hl, wcfa6 - res 7, [hl] - ld a, [hBGMapMode] - push af - call Function2431a - call Function24249 - jr nc, .asm_241cd - call Function24270 - -.asm_241cd - pop af - ld [hBGMapMode], a - call Function1bdd - ld c, a - ret -; 241d5 - - -Function241d5: ; 241d5 - call Function24329 -.asm_241d8 - call Function2431a - call Function10402d ; BUG: This function is in another bank. - call Function241fa - jr nc, .asm_241f9 - call Function24270 - jr c, .asm_241f9 - ld a, [wcfa5] - bit 7, a - jr nz, .asm_241f9 - call Function1bdd - ld c, a - ld a, [wcfa8] - and c - jr z, .asm_241d8 - -.asm_241f9 - ret -; 241fa - -Function241fa: ; 241fa -.asm_241fa - call Function24259 - ret c - ld c, $1 - ld b, $3 - call Function10062d ; BUG: This function is in another bank. - ret c - callba Function100337 - ret c - ld a, [wcfa5] - bit 7, a - jr z, .asm_241fa - and a - ret -; 24216 - - -Function24216: ; 24216 -.asm_24216 - call Function2431a - call Function24238 - call Function24249 - jr nc, .asm_24237 - call Function24270 - jr c, .asm_24237 - ld a, [wcfa5] - bit 7, a - jr nz, .asm_24237 - call Function1bdd - ld b, a - ld a, [wcfa8] - and b - jr z, .asm_24216 - -.asm_24237 - ret -; 24238 - -Function24238: ; 24238 - ld a, [hOAMUpdate] - push af - ld a, $1 - ld [hOAMUpdate], a - call WaitBGMap - pop af - ld [hOAMUpdate], a - xor a - ld [hBGMapMode], a - ret -; 24249 - -Function24249: ; 24249 -.asm_24249 - call RTC - call Function24259 - ret c - ld a, [wcfa5] - bit 7, a - jr z, .asm_24249 - and a - ret -; 24259 - -Function24259: ; 24259 - ld a, [wcfa5] - bit 6, a - jr z, .asm_24266 - callab Function8cf62 - -.asm_24266 - call JoyTextDelay - call Function1bdd - and a - ret z - scf - ret -; 24270 - -Function24270: ; 24270 - call Function1bdd - bit 0, a - jp nz, Function24318 - bit 1, a - jp nz, Function24318 - bit 2, a - jp nz, Function24318 - bit 3, a - jp nz, Function24318 - bit 4, a - jr nz, .asm_242fa - bit 5, a - jr nz, .asm_242dc - bit 6, a - jr nz, .asm_242be - bit 7, a - jr nz, .asm_242a0 - and a - ret - -.asm_24299: ; 24299 - ld hl, wcfa6 - set 7, [hl] - scf - ret - -.asm_242a0 - ld hl, wcfa9 - ld a, [wcfa3] - cp [hl] - jr z, .asm_242ac - inc [hl] - xor a - ret - -.asm_242ac - ld a, [wcfa5] - bit 5, a - jr nz, .asm_242ba - bit 3, a - jp nz, .asm_24299 - xor a - ret - -.asm_242ba - ld [hl], $1 - xor a - ret - -.asm_242be - ld hl, wcfa9 - ld a, [hl] - dec a - jr z, .asm_242c8 - ld [hl], a - xor a - ret - -.asm_242c8 - ld a, [wcfa5] - bit 5, a - jr nz, .asm_242d6 - bit 2, a - jp nz, .asm_24299 - xor a - ret - -.asm_242d6 - ld a, [wcfa3] - ld [hl], a - xor a - ret - -.asm_242dc - ld hl, wcfaa - ld a, [hl] - dec a - jr z, .asm_242e6 - ld [hl], a - xor a - ret - -.asm_242e6 - ld a, [wcfa5] - bit 4, a - jr nz, .asm_242f4 - bit 1, a - jp nz, .asm_24299 - xor a - ret - -.asm_242f4 - ld a, [wcfa4] - ld [hl], a - xor a - ret - -.asm_242fa - ld hl, wcfaa - ld a, [wcfa4] - cp [hl] - jr z, .asm_24306 - inc [hl] - xor a - ret - -.asm_24306 - ld a, [wcfa5] - bit 4, a - jr nz, .asm_24314 - bit 0, a - jp nz, .asm_24299 - xor a - ret - -.asm_24314 - ld [hl], $1 - xor a - ret -; 24318 - -Function24318: ; 24318 - xor a - ret -; 2431a - -Function2431a: ; 2431a - ld hl, wcfac - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - cp $ed - jr nz, Function24329 - ld a, [wcfab] - ld [hl], a - -Function24329: ; 24329 - ld a, [wcfa1] - ld b, a - ld a, [wcfa2] - ld c, a - call GetTileCoord - ld a, [wcfa7] - swap a - and $f - ld c, a - ld a, [wcfa9] - ld b, a - xor a - dec b - jr z, .asm_24348 -.asm_24344 - add c - dec b - jr nz, .asm_24344 - -.asm_24348 - ld c, $14 - call AddNTimes - ld a, [wcfa7] - and $f - ld c, a - ld a, [wcfaa] - ld b, a - xor a - dec b - jr z, .asm_2435f -.asm_2435b - add c - dec b - jr nz, .asm_2435b - -.asm_2435f - ld c, a - add hl, bc - ld a, [hl] - cp $ed - jr z, .asm_2436b - ld [wcfab], a - ld [hl], $ed - -.asm_2436b - ld a, l - ld [wcfac], a - ld a, h - ld [wcfad], a - ret -; 24374 +INCLUDE "engine/menu.asm" _BackUpTiles:: ; 24374 ld a, [rSVBK] @@ -22626,7 +13495,7 @@ _BackUpTiles:: ; 24374 push de ld b, $10 - ld hl, wcf81 + ld hl, wMenuFlags .loop ld a, [hli] ld [de], a @@ -22637,7 +13506,7 @@ _BackUpTiles:: ; 24374 ; If bit 6 or 7 of the menu flags is set, set bit 0 of the address ; at 7:[wcf71], and draw the menu using the coordinates from the header. ; Otherwise, reset bit 0 of 7:[wcf71]. - ld a, [wcf81] + ld a, [wMenuFlags] bit 6, a jr nz, .bit_6 bit 7, a @@ -22649,9 +13518,9 @@ _BackUpTiles:: ; 24374 ld h, [hl] ld l, a set 0, [hl] - call GetMemTileCoord + call MenuBoxCoord2Tile call .copy - call GetMemAttrCoord + call MenuBoxCoord2Attr call .copy jr .done @@ -22718,10 +13587,12 @@ _BackUpTiles:: ; 24374 Function243e8:: ; 243e8 xor a ld [hBGMapMode], a + ld a, [rSVBK] push af ld a, $7 ld [rSVBK], a + call Function1c7e ld a, l or h @@ -22731,7 +13602,7 @@ Function243e8:: ; 243e8 ld a, h ld [wcf72], a call Function1c47 - ld a, [wcf81] + ld a, [wMenuFlags] bit 0, a jr z, .next ld d, h @@ -22742,10 +13613,10 @@ Function243e8:: ; 243e8 call Function1c7e ld a, h or l - jr z, .next2 + jr z, .done call Function1c47 -.next2 +.done pop af ld [rSVBK], a ld hl, wcf78 @@ -22765,7 +13636,7 @@ Function24423: ; 24423 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call CopyBytes call CloseSRAM - call Function2173 + call OverworldTextModeSwitch xor a call GetSRAMBank ld hl, sScratch @@ -22802,7 +13673,7 @@ UnknownText_0x24468: ; 24468 ; 2446d Function2446d:: ; 2446d - ld a, [wcf91] + ld a, [wMenuData2Flags] ld b, a ld hl, wcfa1 ld a, [wMenuBorderTopCoord] @@ -22816,7 +13687,7 @@ Function2446d:: ; 2446d ld a, [wMenuBorderLeftCoord] inc a ld [hli], a - ld a, [wcf92] + ld a, [wMenuData2Items] ld [hli], a ld a, $1 ld [hli], a @@ -22826,7 +13697,7 @@ Function2446d:: ; 2446d set 5, [hl] .asm_24492 - ld a, [wcf81] + ld a, [wMenuFlags] bit 4, a jr z, .asm_2449b set 6, [hl] @@ -22848,7 +13719,7 @@ Function2446d:: ; 2446d and a jr z, .asm_244b7 ld c, a - ld a, [wcf92] + ld a, [wMenuData2Items] cp c jr nc, .asm_244b9 @@ -22886,7 +13757,7 @@ Function244c3: ; 0x244c3 Pokepic:: ; 244e3 ld hl, MenuDataHeader_0x24547 call CopyMenuDataHeader - call Function1cbb + call MenuBox call UpdateSprites call Function321c ld b, $12 @@ -22904,9 +13775,9 @@ Pokepic:: ; 244e3 ld a, [wMenuBorderLeftCoord] inc a ld c, a - call GetTileCoord + call Coord2Tile ld a, $80 - ld [$ffad], a + ld [hFillBox], a lb bc, 7, 7 predef FillBox call WaitBGMap @@ -22916,15 +13787,15 @@ Pokepic:: ; 244e3 PokepicYesOrNo:: ; 24528 ld hl, MenuDataHeader_0x24547 call CopyMenuDataHeader - call Function1ce1 + call ClearMenuBoxInterior call WaitBGMap call ClearSGB xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch call Function321c call UpdateSprites - call Functione51 + call LoadStandardFont ret ; 24547 @@ -23014,7 +13885,7 @@ Function245af:: ; 245af ld [hBGMapMode], a inc a ld [hInMenu], a - call Function2471a + call ClearObjectStructsa call Function24764 call Function247dd call Function245f1 @@ -23057,7 +13928,7 @@ Function245f1: ; 245f1 ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] call Function247f0 call Function2488b call Function248b8 @@ -23103,7 +13974,7 @@ MenuJoyAction: ; 24609 .a_button: ; 24644 call Function1bee - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function248d5 ld a, [MenuSelection] @@ -23129,10 +14000,10 @@ MenuJoyAction: ; 24609 ; 24673 .select: ; 24673 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 7, a jp z, xor_a_dec_a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function248d5 ld a, [MenuSelection] @@ -23147,7 +14018,7 @@ MenuJoyAction: ; 24609 ; 24695 .start: ; 24695 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 6, a jp z, xor_a_dec_a ld a, START @@ -23159,7 +14030,7 @@ MenuJoyAction: ; 24609 ld hl, wcfa6 bit 7, [hl] jp z, xor_a_dec_a - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 3, a jp z, xor_a_dec_a ld a, D_LEFT @@ -23171,7 +14042,7 @@ MenuJoyAction: ; 24609 ld hl, wcfa6 bit 7, [hl] jp z, xor_a_dec_a - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 2, a jp z, xor_a_dec_a ld a, D_RIGHT @@ -23199,7 +14070,7 @@ MenuJoyAction: ; 24609 bit 7, [hl] jp z, xor_a ld hl, wd0e4 - ld a, [wcf92] + ld a, [wMenuData2Items] add [hl] ld b, a ld a, [wd144] @@ -23215,18 +14086,18 @@ MenuJoyAction: ; 24609 Function246fc: ; 246fc ld a, [wd0e4] ld c, a - ld a, [wcfa9] + ld a, [MenuSelection2] add c ld c, a ret ; 24706 Function24706: ; 24706 (9:4706) - call GetMemTileCoord + call MenuBoxCoord2Tile ld de, SCREEN_WIDTH add hl, de ld de, 2 * SCREEN_WIDTH - ld a, [wcf92] + ld a, [wMenuData2Items] .asm_24713 ld [hl], " " add hl, de @@ -23234,7 +14105,7 @@ Function24706: ; 24706 (9:4706) jr nz, .asm_24713 ret -Function2471a: ; 2471a +ClearObjectStructsa: ; 2471a ; Get the value of (wcf95):(wcf96,wcf97) and store it in wd144. ld hl, wcf96 ld a, [hli] @@ -23243,8 +14114,8 @@ Function2471a: ; 2471a ld a, [wcf95] call GetFarByte ld [wd144], a -; if ([wd144] + 1) < [wcf92] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wcf92], 0) - ld a, [wcf92] +; if ([wd144] + 1) < [wMenuData2Items] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wMenuData2Items], 0) + ld a, [wMenuData2Items] ld c, a ld a, [wd0e4] add c @@ -23253,7 +14124,7 @@ Function2471a: ; 2471a inc a cp c jr nc, .skip - ld a, [wcf92] + ld a, [wMenuData2Items] ld c, a ld a, [wd144] inc a @@ -23287,7 +14158,7 @@ Function2471a: ; 2471a ; 24764 Function24764: ; 24764 - ld a, [wcf91] + ld a, [wMenuData2Flags] ld c, a ld a, [wd144] ld b, a @@ -23297,7 +14168,7 @@ Function24764: ; 24764 ld a, [wMenuBorderLeftCoord] add $0 ld [wcfa2], a - ld a, [wcf92] + ld a, [wMenuData2Items] cp b jr c, .asm_24786 jr z, .asm_24786 @@ -23349,7 +14220,7 @@ Function24764: ; 24764 ld a, $1 .asm_247ca - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1 ld [wcfaa], a xor a @@ -23376,8 +14247,8 @@ Function247dd: ; 247dd ; 247f0 Function247f0: ; 247f0 - call Function1cf1 - ld a, [wcf91] + call ClearWholeMenuBox + ld a, [wMenuData2Flags] bit 4, a jr z, .asm_2480d ld a, [wd0e4] @@ -23387,14 +14258,14 @@ Function247f0: ; 247f0 ld b, a ld a, [wMenuBorderRightCoord] ld c, a - call GetTileCoord + call Coord2Tile ld [hl], $61 .asm_2480d - call GetMemTileCoord - ld bc, $0015 + call MenuBoxCoord2Tile + ld bc, $15 add hl, bc - ld a, [wcf92] + ld a, [wMenuData2Items] ld b, a ld c, $0 .asm_2481a @@ -23410,28 +14281,28 @@ Function247f0: ; 247f0 push hl call Function2486e pop hl - ld bc, $0028 + ld bc, $28 add hl, bc pop bc inc c ld a, c cp b jr nz, .asm_2481a - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 4, a jr z, .asm_24850 ld a, [wMenuBorderBottomCoord] ld b, a ld a, [wMenuBorderRightCoord] ld c, a - call GetTileCoord + call Coord2Tile ld [hl], $ee .asm_24850 ret .asm_24851 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 0, a jr nz, .asm_24866 ld de, .string_2485f @@ -23479,7 +14350,7 @@ Function2488b: ; 2488b cp b jr nc, .asm_248b7 ld c, a - ld a, [wcf92] + ld a, [wMenuData2Items] add c cp b jr c, .asm_248b7 @@ -23495,7 +14366,7 @@ Function2488b: ; 2488b ld a, [wMenuBorderLeftCoord] add $0 ld c, a - call GetTileCoord + call Coord2Tile ld [hl], $ec .asm_248b7 @@ -23503,7 +14374,7 @@ Function2488b: ; 2488b ; 248b8 Function248b8: ; 248b8 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 5, a ret z bit 1, a @@ -23513,7 +14384,7 @@ Function248b8: ; 248b8 ret nz .asm_248c7 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function248d5 ld hl, wcf9e @@ -23736,7 +14607,7 @@ Function249d1: ; 249d1 (9:49d1) Function24a40: ; 24a40 (9:4a40) call Function24a5c - ld de, DefaultFlypoint + ld de, wd002 call Function24a80 call CopyBytes ret @@ -23745,7 +14616,7 @@ Function24a4d: ; 24a4d (9:4a4d) call Function24a5c ld d, h ld e, l - ld hl, DefaultFlypoint + ld hl, wd002 call Function24a80 call CopyBytes ret @@ -23771,7 +14642,7 @@ Function24a6c: ; 24a6c (9:4a6c) dec a cpl .asm_24a76 - ld hl, $0 + ld hl, 0 call AddNTimes ld b, h ld c, l @@ -23843,7 +14714,7 @@ PlaceMenuItemQuantity: ; 0x24ac3 pop hl and a jr nz, .done - ld de, $0015 + ld de, $15 add hl, de ld [hl], "×" inc hl @@ -23867,13 +14738,13 @@ Function24af0: ; 24af0 Function24af8: ; 24af8 ld hl, MenuDataHeader_0x24b15 - ld de, $000b + ld de, $b call Function1e2e Function24b01: ; 24b01 - call Function1cbb - call GetMemTileCoord - ld de, $0015 + call MenuBox + call MenuBoxCoord2Tile + ld de, $15 add hl, de ld de, Money lb bc, PRINTNUM_MONEY | 3, 6 @@ -23947,26 +14818,27 @@ ShowMoney_TerminatorString: ; 24b8e ; 24b8f Function24b8f: ; 24b8f +; unreferenced, related to safari? ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] hlcoord 0, 0 - ld b, $3 - ld c, $7 + ld b, 3 + ld c, 7 call TextBox hlcoord 1, 1 - ld de, wdc7a + ld de, wSafariTimeRemaining lb bc, 2, 3 call PrintNum hlcoord 4, 1 - ld de, String24bcf + ld de, .slash_500 call PlaceString hlcoord 1, 3 - ld de, String24bd4 + ld de, .booru_ko call PlaceString hlcoord 5, 3 - ld de, wdc79 + ld de, wSafariBallsRemaining lb bc, 1, 2 call PrintNum pop af @@ -23974,9 +14846,9 @@ Function24b8f: ; 24b8f ret ; 24bcf -String24bcf: ; 24bcf +.slash_500: ; 24bcf db "/500@" -String24bd4: ; 24bd4 +.booru_ko: ; 24bd4 db "ボール こ@" ; 24bdc @@ -23998,7 +14870,7 @@ Function24be7: ; 24be7 ld de, String24c52 call PlaceString hlcoord 8, 5 - ld de, wdc79 + ld de, wSafariBallsRemaining lb bc, PRINTNUM_RIGHTALIGN | 1, 2 call PrintNum hlcoord 1, 1 @@ -24119,41 +14991,41 @@ MonMenuOptionStrings: ; 24caf MonMenuOptions: ; 24cd9 ; Moves - db 0, 1, CUT - db 0, 2, FLY - db 0, 3, SURF - db 0, 4, STRENGTH - db 0, 6, FLASH - db 0, 5, WATERFALL - db 0, 7, WHIRLPOOL - db 0, 8, DIG - db 0, 9, TELEPORT - db 0, 10, SOFTBOILED - db 0, 11, HEADBUTT - db 0, 12, ROCK_SMASH - db 0, 13, MILK_DRINK - db 0, 14, SWEET_SCENT + db MONMENU_FIELD_MOVE, MONMENU_CUT, CUT + db MONMENU_FIELD_MOVE, MONMENU_FLY, FLY + db MONMENU_FIELD_MOVE, MONMENU_SURF, SURF + db MONMENU_FIELD_MOVE, MONMENU_STRENGTH, STRENGTH + db MONMENU_FIELD_MOVE, MONMENU_FLASH, FLASH + db MONMENU_FIELD_MOVE, MONMENU_WATERFALL, WATERFALL + db MONMENU_FIELD_MOVE, MONMENU_WHIRLPOOL, WHIRLPOOL + db MONMENU_FIELD_MOVE, MONMENU_DIG, DIG + db MONMENU_FIELD_MOVE, MONMENU_TELEPORT, TELEPORT + db MONMENU_FIELD_MOVE, MONMENU_SOFTBOILED, SOFTBOILED + db MONMENU_FIELD_MOVE, MONMENU_HEADBUTT, HEADBUTT + db MONMENU_FIELD_MOVE, MONMENU_ROCKSMASH, ROCK_SMASH + db MONMENU_FIELD_MOVE, MONMENU_MILKDRINK, MILK_DRINK + db MONMENU_FIELD_MOVE, MONMENU_SWEETSCENT, SWEET_SCENT ; Options - db 1, 15, 1 ; STATS - db 1, 16, 2 ; SWITCH - db 1, 17, 3 ; ITEM - db 1, 18, 4 ; CANCEL - db 1, 19, 5 ; MOVE - db 1, 20, 6 ; MAIL - db 1, 21, 7 ; ERROR! + db MONMENU_MENUOPTION, MONMENU_STATS, 1 ; STATS + db MONMENU_MENUOPTION, MONMENU_SWITCH, 2 ; SWITCH + db MONMENU_MENUOPTION, MONMENU_ITEM, 3 ; ITEM + db MONMENU_MENUOPTION, MONMENU_CANCEL, 4 ; CANCEL + db MONMENU_MENUOPTION, MONMENU_MOVE, 5 ; MOVE + db MONMENU_MENUOPTION, MONMENU_MAIL, 6 ; MAIL + db MONMENU_MENUOPTION, MONMENU_ERROR, 7 ; ERROR! - db $ff + db -1 ; 24d19 -Function24d19: ; 24d19 +MonSubmenu: ; 24d19 xor a ld [hBGMapMode], a - call Function24dd4 + call GetMonSubmenuItems callba Function8ea4a - ld hl, MenuDataHeader_0x24d3f + ld hl, .MenuDataHeader call LoadMenuDataHeader - call Function24d47 + call .GetTopCoord call PopulateMonMenu ld a, 1 @@ -24165,7 +15037,7 @@ Function24d19: ; 24d19 ret ; 24d3f -MenuDataHeader_0x24d3f: ; 24d3f +.MenuDataHeader: ; 24d3f db $40 ; tile backup db 00, 06 ; start coords db 17, 19 ; end coords @@ -24173,7 +15045,8 @@ MenuDataHeader_0x24d3f: ; 24d3f db 1 ; default option ; 24d47 -Function24d47: ; 24d47 +.GetTopCoord: ; 24d47 +; TopCoord = 1 + BottomCoord - 2 * (NumSubmenuItems + 1) ld a, [Buffer1] inc a add a @@ -24182,16 +15055,16 @@ Function24d47: ; 24d47 sub b inc a ld [wMenuBorderTopCoord], a - call Function1cbb + call MenuBox ret ; 24d59 MonMenuLoop: ; 24d59 .loop - ld a, $a0 - ld [wcf91], a - ld a, [Buffer1] - ld [wcf92], a + ld a, $a0 ; flags + ld [wMenuData2Flags], a + ld a, [Buffer1] ; items + ld [wMenuData2Items], a call Function1c10 ld hl, wcfa5 set 6, [hl] @@ -24206,11 +15079,11 @@ MonMenuLoop: ; 24d59 jr .loop .cancel - ld a, 18 ; CANCEL + ld a, MONMENU_CANCEL ; CANCEL ret .select - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, 0 @@ -24221,8 +15094,8 @@ MonMenuLoop: ; 24d59 ; 24d91 PopulateMonMenu: ; 24d91 - call GetMemTileCoord - ld bc, $002a ; 42 + call MenuBoxCoord2Tile + ld bc, $2a ; 42 add hl, bc ld de, Buffer2 .loop @@ -24235,7 +15108,7 @@ PopulateMonMenu: ; 24d91 call GetMonMenuString pop hl call PlaceString - ld bc, $0028 ; 40 + ld bc, $28 ; 40 add hl, bc pop de jr .loop @@ -24266,15 +15139,15 @@ GetMonMenuString: ; 24db0 ret ; 24dd4 -Function24dd4: ; 24dd4 - call Function24e68 +GetMonSubmenuItems: ; 24dd4 + call ResetMonSubmenu ld a, [CurPartySpecies] cp EGG jr z, .egg ld a, [wLinkMode] and a - jr nz, .skip - ld a, PartyMon1Moves - PartyMon1 + jr nz, .skip_moves + ld a, MON_MOVES call GetPartyParamLocation ld d, h ld e, l @@ -24286,10 +15159,10 @@ Function24dd4: ; 24dd4 and a jr z, .next push hl - call Function24e52 + call IsFieldMove pop hl jr nc, .next - call Function24e83 + call AddMonMenuItem .next pop de @@ -24298,82 +15171,82 @@ Function24dd4: ; 24dd4 dec c jr nz, .loop -.skip - ld a, $f - call Function24e83 - ld a, $10 - call Function24e83 - ld a, $13 - call Function24e83 +.skip_moves + ld a, MONMENU_STATS + call AddMonMenuItem + ld a, MONMENU_SWITCH + call AddMonMenuItem + ld a, MONMENU_MOVE + call AddMonMenuItem ld a, [wLinkMode] and a jr nz, .skip2 push hl - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld d, [hl] callba ItemIsMail pop hl - ld a, $14 + ld a, MONMENU_MAIL jr c, .ok - ld a, $11 + ld a, MONMENU_ITEM .ok - call Function24e83 + call AddMonMenuItem .skip2 ld a, [Buffer1] - cp $8 + cp NUM_MON_SUBMENU_ITEMS jr z, .ok2 - ld a, $12 - call Function24e83 + ld a, MONMENU_CANCEL + call AddMonMenuItem .ok2 - call Function24e76 + call TerminateMonSubmenu ret .egg - ld a, $f - call Function24e83 - ld a, $10 - call Function24e83 - ld a, $12 - call Function24e83 - call Function24e76 + ld a, MONMENU_STATS + call AddMonMenuItem + ld a, MONMENU_SWITCH + call AddMonMenuItem + ld a, MONMENU_CANCEL + call AddMonMenuItem + call TerminateMonSubmenu ret ; 24e52 -Function24e52: ; 24e52 +IsFieldMove: ; 24e52 ld b, a ld hl, MonMenuOptions -.asm_24e56 +.next ld a, [hli] - cp $ff - jr z, .asm_24e67 - cp $1 - jr z, .asm_24e67 + cp -1 + jr z, .nope + cp MONMENU_MENUOPTION + jr z, .nope ld d, [hl] inc hl ld a, [hli] cp b - jr nz, .asm_24e56 + jr nz, .next ld a, d scf -.asm_24e67 +.nope ret ; 24e68 -Function24e68: ; 24e68 +ResetMonSubmenu: ; 24e68 xor a ld [Buffer1], a ld hl, Buffer2 - ld bc, 9 + ld bc, NUM_MON_SUBMENU_ITEMS + 1 call ByteFill ret ; 24e76 -Function24e76: ; 24e76 +TerminateMonSubmenu: ; 24e76 ld a, [Buffer1] ld e, a ld d, $0 @@ -24383,7 +15256,7 @@ Function24e76: ; 24e76 ret ; 24e83 -Function24e83: ; 24e83 +AddMonMenuItem: ; 24e83 push hl push de push af @@ -24407,12 +15280,12 @@ Function24e99: ; 24e99 call CopyMenuDataHeader xor a ld [hBGMapMode], a - call Function1cbb + call MenuBox call UpdateSprites call Function1c89 call WaitBGMap - call Function1c66 - ld a, [wcf91] + call CopyMenuData2 + ld a, [wMenuData2Flags] bit 7, a jr z, .asm_24ed0 call Function1c10 @@ -24537,7 +15410,7 @@ Strings24f5f: ; 24f5f Function24f7c: ; 24f7c hlcoord 17, 13 - ld de, wdc79 + ld de, wSafariBallsRemaining lb bc, PRINTNUM_LEADINGZEROS | 1, 2 call PrintNum ret @@ -24562,14 +15435,14 @@ MenuData_0x24f91: ; 24f91 Strings24f9a: ; 24f9a db "FIGHT@" - db $4a, "@" + db "<PKMN>", "@" db "PARKBALL× @" db "RUN@" ; 24fb2 Function24fb2: ; 24fb2 hlcoord 13, 16 - ld de, wdc79 + ld de, wParkBallsRemaining lb bc, PRINTNUM_LEADINGZEROS | 1, 2 call PrintNum ret @@ -24708,20 +15581,20 @@ Function2500e: ; 2500e ; 25072 Function25072: ; 25072 - call Function1cbb - call GetMemTileCoord - ld de, $0015 + call MenuBox + call MenuBoxCoord2Tile + ld de, $15 add hl, de ld [hl], $f1 inc hl ld de, wItemQuantityChangeBuffer lb bc, PRINTNUM_LEADINGZEROS | 1, 2 call PrintNum - ld a, [wcf86] + ld a, [wMenuData2Pointer] ld e, a - ld a, [wcf87] + ld a, [wMenuData2Pointer + 1] ld d, a - ld a, [wcf8a] + ld a, [wMenuDataBank] call FarCall_de ret ; 25097 @@ -24847,7 +15720,7 @@ Function25105: ; 25105 ret Function2513b: ; 2513b (9:513b) - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -25063,7 +15936,7 @@ Function25299: ; 25299 (9:5299) hlcoord 14, 1 lb bc, 5, 7 xor a - ld [$ffad], a + ld [hFillBox], a predef FillBox ret ; 252ec (9:52ec) @@ -25257,7 +16130,7 @@ Function25415: ; 25415 (9:5415) ld de, GameTimeMinutes lb bc, PRINTNUM_LEADINGZEROS | 1, 2 call PrintNum - ld a, [$ff9b] + ld a, [hVBlankCounter] and $1f ret nz hlcoord 15, 12 @@ -25267,7 +16140,7 @@ Function25415: ; 25415 (9:5415) ret Function25438: ; 25438 (9:5438) - ld a, [$ff9b] + ld a, [hVBlankCounter] and $7 ret nz ld a, [wcf64] @@ -25463,7 +16336,7 @@ Rate: ; 0x26616 ld hl, PokedexSeen ld b, EndPokedexSeen - PokedexSeen call CountSetBits - ld [DefaultFlypoint], a + ld [wd002], a ld hl, PokedexCaught ld b, EndPokedexCaught - PokedexCaught call CountSetBits @@ -25485,7 +16358,7 @@ Rate: ; 0x26616 ClearOakRatingBuffers: ; 0x26647 ld hl, StringBuffer3 - ld de, DefaultFlypoint + ld de, wd002 call ClearOakRatingBuffer ld hl, StringBuffer4 ld de, wd003 @@ -25703,11 +16576,11 @@ OakPCText4: ; 0x2674c db "@" -Function26751: ; 26751 (9:6751) - ld a, $2 - ld [wdc0f], a - ld a, $10 - ld [wdc12], a +InitDecorations: ; 26751 (9:6751) + ld a, DECO_FEATHERY_BED + ld [Bed], a + ld a, DECO_TOWN_MAP + ld [Poster], a ret _KrisDecorationMenu: ; 0x2675c @@ -25724,7 +16597,7 @@ _KrisDecorationMenu: ; 0x2675c ld [wMenuCursorBuffer], a call Function26806 call Function1e5d - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd1ef], a jr c, .asm_2678e ld a, [MenuSelection] @@ -25785,7 +16658,7 @@ Function26806: ; 26806 ld a, $7 call Function26830 ld hl, StringBuffer2 - ld de, DefaultFlypoint + ld de, wd002 ld bc, $d call CopyBytes ret @@ -25845,10 +16718,10 @@ Jumptable_26855: ; 26855 Function2686c: ; 2686c xor a - ld hl, DefaultFlypoint + ld hl, wd002 ld [hli], a ld a, -1 - ld bc, $0010 + ld bc, $10 call ByteFill ret ; 2687a @@ -25875,7 +16748,7 @@ CheckAllDecorationFlags: ; 2687a ; 26891 Function26891: ; 26891 - ld hl, DefaultFlypoint + ld hl, wd002 inc [hl] ld e, [hl] ld d, $0 @@ -25891,7 +16764,7 @@ Function2689b: ; 2689b pop hl call CheckAllDecorationFlags pop bc - ld a, [DefaultFlypoint] + ld a, [wd002] and a ret z ld a, c @@ -26029,7 +16902,7 @@ Function26959: ; 26959 ; 2695b Function2695b: ; 2695b - ld a, [DefaultFlypoint] + ld a, [wd002] and a jr z, .empty cp 8 @@ -26047,13 +16920,13 @@ Function2695b: ; 2695b ret .beyond_eight - ld hl, DefaultFlypoint + ld hl, wd002 ld e, [hl] dec [hl] ld d, 0 add hl, de ld [hl], -1 - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader ld hl, MenuDataHeader_0x269c5 call CopyMenuDataHeader xor a @@ -26061,7 +16934,7 @@ Function2695b: ; 2695b call Function352f xor a ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wcf73] cp 2 jr z, .no_action_2 @@ -26668,9 +17541,9 @@ DecoAction_AskWhichSide: ; 26e70 ld hl, MenuDataHeader_0x26eab call GetMenu2 call ExitMenu - call Function1c66 + call CopyMenuData2 jr c, .nope - ld a, [wcfa9] + ld a, [MenuSelection2] cp 3 jr z, .nope ld [Buffer2], a @@ -27134,28 +18007,28 @@ LevelUpHappinessMod: ; 2709e INCLUDE "trainers/dvs.asm" Function2715c: ; 2715c - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, [BattleType] cp BATTLETYPE_TUTORIAL jr z, .gettutorialbackpic - callba Function3f43d + callba GetMonBackpic jr .continue .gettutorialbackpic - callba GetBattleBackpic + callba GetTrainerBackpic .continue - callba Function3f47c - callba Function3ed9f + callba GetMonFrontpic + callba _LoadBattleFontsHPBar call ClearSGB call WriteBackup - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader call WaitBGMap jp SetPalettes ; 27192 -Function27192: ; 27192 +ConsumeHeldItem: ; 27192 push hl push de push bc @@ -27174,8 +18047,8 @@ Function27192: ; 27192 push af ld a, [de] ld b, a - callba GetItem - ld hl, Unknown_271de + callba GetItemHeldEffect + ld hl, .ConsumableEffects .loop ld a, [hli] cp b @@ -27212,18 +18085,18 @@ Function27192: ; 27192 ret ; 271de -Unknown_271de: ; 271de +.ConsumableEffects: ; 271de ; Consumable items? db HELD_BERRY - db $02 - db $05 + db HELD_2 + db HELD_5 db HELD_HEAL_POISON db HELD_HEAL_FREEZE db HELD_HEAL_BURN db HELD_HEAL_SLEEP db HELD_HEAL_PARALYZE db HELD_HEAL_STATUS - db $1e + db HELD_30 db HELD_ATTACK_UP db HELD_DEFENSE_UP db HELD_SPEED_UP @@ -27231,8 +18104,8 @@ Unknown_271de: ; 271de db HELD_SP_DEFENSE_UP db HELD_ACCURACY_UP db HELD_EVASION_UP - db $26 - db $47 + db HELD_38 + db HELD_71 db HELD_ESCAPE db HELD_CRITICAL_UP db -1 @@ -27253,4125 +18126,9 @@ Function27a28: ; 27a28 SECTION "bankA", ROMX, BANK[$A] -LinkCommunications: ; 28000 - call WhiteBGMap - ld c, $50 - call DelayFrames - call ClearScreen - call ClearSprites - call UpdateSprites - xor a - ld [hSCX], a - ld [hSCY], a - ld c, $50 - call DelayFrames - call ClearScreen - call UpdateSprites - call Functione51 - call LoadFontsBattleExtra - callba Function16d69a - call Function3200 - hlcoord 3, 8 - ld b, $2 - ld c, $c - ld d, h - ld e, l - callba Function4d35b - hlcoord 4, 10 - ld de, String28419 - call PlaceString - call Function28eff - call Function3200 - ld hl, wcf5d - xor a - ld [hli], a - ld [hl], $50 - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jp nz, Function28177 - -Function2805d: ; 2805d - call Function28426 - call Function28499 - call Function28434 - xor a - ld [wcf56], a - call Function87d - ld a, [$ffcb] - cp $2 - jr nz, .asm_28091 - ld c, $3 - call DelayFrames - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - call DelayFrame - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - -.asm_28091 - ld de, MUSIC_NONE - call PlayMusic - ld c, $3 - call DelayFrames - xor a - ld [rIF], a - ld a, $8 - ld [rIE], a - ld hl, wd1f3 - ld de, EnemyMonSpecies - ld bc, $0011 - call Function75f - ld a, $fe - ld [de], a - ld hl, OverworldMap - ld de, wd26b - ld bc, $01a8 - call Function75f - ld a, $fe - ld [de], a - ld hl, wc608 - ld de, wc6d0 - ld bc, $00c8 - call Function75f - xor a - ld [rIF], a - ld a, $1d - ld [rIE], a - call Function287ab - ld hl, wd26b - call Function287ca - push hl - ld bc, $000b - add hl, bc - ld a, [hl] - pop hl - and a - jp z, Function28b22 - cp $7 - jp nc, Function28b22 - ld de, OverworldMap - ld bc, $01a2 - call Function2879e - ld de, wc6d0 - ld hl, wc813 - ld c, $2 -.asm_280fe - ld a, [de] - inc de - and a - jr z, .asm_280fe - cp $fd - jr z, .asm_280fe - cp $fe - jr z, .asm_280fe - cp $ff - jr z, .asm_2811d - push hl - push bc - ld b, $0 - dec a - ld c, a - add hl, bc - ld a, $fe - ld [hl], a - pop bc - pop hl - jr .asm_280fe - -.asm_2811d - ld hl, wc90f - dec c - jr nz, .asm_280fe - ld hl, OverworldMap - ld de, wd26b - ld bc, $000b - call CopyBytes - ld de, OTPartyCount - ld a, [hli] - ld [de], a - inc de -.asm_28135 - ld a, [hli] - cp $ff - jr z, .asm_2814e - ld [wd265], a - push hl - push de - callab ConvertMon_1to2 - pop de - pop hl - ld a, [wd265] - ld [de], a - inc de - jr .asm_28135 - -.asm_2814e - ld [de], a - ld hl, wc813 - call Function2868a - ld a, OTPartyMonOT % $100 - ld [wd102], a - ld a, OTPartyMonOT / $100 - ld [wd103], a - ld de, MUSIC_NONE - call PlayMusic - ld a, [$ffcb] - cp $2 - ld c, 66 - call z, DelayFrames - ld de, MUSIC_ROUTE_30 - call PlayMusic - jp Function287e3 -; 28177 - -Function28177: ; 28177 - call Function28426 - call Function28595 - call Function28434 - call Function29dba - ld a, [ScriptVar] - and a - jp z, Function283b2 - ld a, [$ffcb] - cp $2 - jr nz, .asm_281ae - ld c, $3 - call DelayFrames - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - call DelayFrame - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - -.asm_281ae - ld de, MUSIC_NONE - call PlayMusic - ld c, $3 - call DelayFrames - xor a - ld [rIF], a - ld a, $8 - ld [rIE], a - ld hl, wd1f3 - ld de, EnemyMonSpecies - ld bc, $0011 - call Function75f - ld a, $fe - ld [de], a - ld hl, OverworldMap - ld de, wd26b - ld bc, $01c2 - call Function75f - ld a, $fe - ld [de], a - ld hl, wc608 - ld de, wc6d0 - ld bc, $00c8 - call Function75f - ld a, [wLinkMode] - cp LINK_TRADECENTER - jr nz, .asm_281fd - ld hl, wc9f4 - ld de, wcb84 - ld bc, $0186 - call Function283f2 - -.asm_281fd - xor a - ld [rIF], a - ld a, $1d - ld [rIE], a - ld de, MUSIC_NONE - call PlayMusic - call Function287ab - ld hl, wd26b - call Function287ca - ld de, OverworldMap - ld bc, $01b9 - call Function2879e - ld de, wc6d0 - ld hl, wc813 - ld c, $2 -.asm_28224 - ld a, [de] - inc de - and a - jr z, .asm_28224 - cp $fd - jr z, .asm_28224 - cp $fe - jr z, .asm_28224 - cp $ff - jr z, .asm_28243 - push hl - push bc - ld b, $0 - dec a - ld c, a - add hl, bc - ld a, $fe - ld [hl], a - pop bc - pop hl - jr .asm_28224 - -.asm_28243 - ld hl, wc90f - dec c - jr nz, .asm_28224 - ld a, [wLinkMode] - cp LINK_TRADECENTER - jp nz, .asm_282fe - ld hl, wcb84 -.asm_28254 - ld a, [hli] - cp $20 - jr nz, .asm_28254 -.asm_28259 - ld a, [hli] - cp $fe - jr z, .asm_28259 - cp $20 - jr z, .asm_28259 - dec hl - ld de, wcb84 - ld bc, $0190 - call CopyBytes - ld hl, wcb84 - ld bc, $00c6 -.asm_28272 - ld a, [hl] - cp $21 - jr nz, .asm_28279 - ld [hl], $fe - -.asm_28279 - inc hl - dec bc - ld a, b - or c - jr nz, .asm_28272 - ld de, wcc9e -.asm_28282 - ld a, [de] - inc de - cp $ff - jr z, .asm_28294 - ld hl, wcc4a - dec a - ld b, $0 - ld c, a - add hl, bc - ld [hl], $fe - jr .asm_28282 - -.asm_28294 - ld hl, wcb84 - ld de, wc9f4 - ld b, $6 -.asm_2829c - push bc - ld bc, $0021 - call CopyBytes - ld a, $e - add e - ld e, a - ld a, $0 - adc d - ld d, a - pop bc - dec b - jr nz, .asm_2829c - ld de, wc9f4 - ld b, $6 -.asm_282b4 - push bc - ld a, $21 - add e - ld e, a - ld a, $0 - adc d - ld d, a - ld bc, $000e - call CopyBytes - pop bc - dec b - jr nz, .asm_282b4 - ld b, $6 - ld de, wc9f4 -.asm_282cc - push bc - push de - callba Function1de5c8 - ld a, c - or a - jr z, .asm_282ee - sub $3 - jr nc, .asm_282e4 - callba Function1df203 - jr .asm_282ee - -.asm_282e4 - cp $2 - jr nc, .asm_282ee - callba Function1df220 - -.asm_282ee - pop de - ld hl, $002f - add hl, de - ld d, h - ld e, l - pop bc - dec b - jr nz, .asm_282cc - ld de, wcb0e - xor a - ld [de], a - -.asm_282fe - ld hl, OverworldMap - ld de, wd26b - ld bc, $000b - call CopyBytes - ld de, OTPartyCount - ld bc, $0008 - call CopyBytes - ld de, wd276 - ld bc, $0002 - call CopyBytes - ld de, OTPartyMon1Species - ld bc, $01a4 - call CopyBytes - ld a, OTPartyMonOT % $100 - ld [wd102], a - ld a, OTPartyMonOT / $100 - ld [wd103], a - ld de, MUSIC_NONE - call PlayMusic - ld a, [$ffcb] - cp $2 - ld c, 66 - call z, DelayFrames - ld a, [wLinkMode] - cp LINK_COLOSSEUM - jr nz, .asm_283a9 - ld a, CAL - ld [OtherTrainerClass], a - call ClearScreen - callba Function4d354 - ld hl, Options - ld a, [hl] - push af - and $20 - or $3 - ld [hl], a - ld hl, wd26b - ld de, OTName - ld bc, NAME_LENGTH - call CopyBytes - call Function222a - ld a, [wc2d7] - push af - ld a, $1 - ld [wc2d7], a - ld a, [rIE] - push af - ld a, [rIF] - push af - xor a - ld [rIF], a - ld a, [rIE] - set 1, a - ld [rIE], a - pop af - ld [rIF], a - predef StartBattle - ld a, [rIF] - ld h, a - xor a - ld [rIF], a - pop af - ld [rIE], a - ld a, h - ld [rIF], a - pop af - ld [wc2d7], a - pop af - ld [Options], a - callba LoadPokemonData - jp Function28b22 - -.asm_283a9 - ld de, MUSIC_ROUTE_30 - call PlayMusic - jp Function287e3 -; 283b2 - -Function283b2: ; 283b2 - ld de, UnknownText_0x283ed - ld b, $a -.asm_283b7 - call DelayFrame - call Function908 - dec b - jr nz, .asm_283b7 - xor a - ld [hld], a - ld [hl], a - ld [hVBlank], a - push de - hlcoord 0, 12 - ld b, $4 - ld c, $12 - push de - ld d, h - ld e, l - callba Function4d35b - pop de - pop hl - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - call FadeToWhite - call ClearScreen - ld b, $8 - call GetSGBLayout - call Function3200 - ret -; 283ed - -UnknownText_0x283ed: ; 0x283ed - ; Too much time has elapsed. Please try again. - text_jump UnknownText_0x1c4183 - db "@" -; 0x283f2 - -Function283f2: ; 283f2 - ld a, $1 - ld [$ffcc], a -.asm_283f6 - ld a, [hl] - ld [hSerialSend], a - call Function78a - push bc - ld b, a - inc hl - ld a, $30 -.asm_28401 - dec a - jr nz, .asm_28401 - ld a, [$ffcc] - and a - ld a, b - pop bc - jr z, .asm_28411 - dec hl - xor a - ld [$ffcc], a - jr .asm_283f6 - -.asm_28411 - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_283f6 - ret -; 28419 - -String28419: ; 28419 - db "PLEASE WAIT!@" -; 28426 - -Function28426: ; 28426 - ld hl, OverworldMap - ld bc, $0514 -.asm_2842c - xor a - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_2842c - ret -; 28434 - -Function28434: ; 28434 - ld hl, wd1f3 - ld a, $fd - ld b, $7 -.asm_2843b - ld [hli], a - dec b - jr nz, .asm_2843b - ld b, $a -.asm_28441 - call Random - cp $fd - jr nc, .asm_28441 - ld [hli], a - dec b - jr nz, .asm_28441 - ld hl, wc608 - ld a, $fd -rept 3 - ld [hli], a -endr - ld b, $c8 - xor a -.asm_28457 - ld [hli], a - dec b - jr nz, .asm_28457 - ld hl, wc818 - ld de, wc608 + 10 - ld bc, 0 -.asm_28464 - inc c - ld a, c - cp $fd - jr z, .asm_2848c - ld a, b - dec a - jr nz, .asm_2847f - push bc - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - ld b, $d - jr z, .asm_2847a - ld b, $27 - -.asm_2847a - ld a, c - cp b - pop bc - jr z, .asm_28495 - -.asm_2847f - inc hl - ld a, [hl] - cp $fe - jr nz, .asm_28464 - ld a, c - ld [de], a - inc de - ld [hl], $ff - jr .asm_28464 - -.asm_2848c - ld a, $ff - ld [de], a - inc de - ld bc, $100 - jr .asm_28464 - -.asm_28495 - ld a, $ff - ld [de], a - ret -; 28499 - -Function28499: ; 28499 - ld de, OverworldMap - ld a, $fd - ld b, $6 -.asm_284a0 - ld [de], a - inc de - dec b - jr nz, .asm_284a0 - ld hl, PlayerName - ld bc, $000b - call CopyBytes - push de - ld hl, PartyCount - ld a, [hli] - ld [de], a - inc de -.asm_284b5 - ld a, [hli] - cp $ff - jr z, .asm_284ce - ld [wd265], a - push hl - push de - callab ConvertMon_2to1 - pop de - pop hl - ld a, [wd265] - ld [de], a - inc de - jr .asm_284b5 - -.asm_284ce - ld [de], a - pop de - ld hl, $0008 - add hl, de - ld d, h - ld e, l - ld hl, PartyMon1Species - ld c, $6 -.asm_284db - push bc - call Function284f6 - ld bc, PartyMon2 - PartyMon1 - add hl, bc - pop bc - dec c - jr nz, .asm_284db - ld hl, PartyMonOT - call .asm_284f0 - ld hl, PartyMonNicknames -.asm_284f0 - ld bc, $0042 - jp CopyBytes -; 284f6 - -Function284f6: ; 284f6 - ld b, h - ld c, l - push de - push bc - ld a, [hl] - ld [wd265], a - callab ConvertMon_2to1 - pop bc - pop de - ld a, [wd265] - ld [de], a - inc de - ld hl, $0022 - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - xor a - ld [de], a - inc de - ld hl, $0020 - add hl, bc - ld a, [hl] - ld [de], a - inc de - ld a, [bc] - cp $51 - jr z, .asm_28528 - cp $52 - jr nz, .asm_28530 - -.asm_28528 - ld a, $17 - ld [de], a - inc de - ld [de], a - inc de - jr .asm_28544 - -.asm_28530 - push bc - dec a - ld hl, BaseData + 7 ; type - ld bc, BaseData1 - BaseData0 - call AddNTimes - ld bc, 2 - ld a, BANK(BaseData) - call FarCopyBytes - pop bc - -.asm_28544 - push bc - ld hl, $0001 - add hl, bc - ld bc, $1a - call CopyBytes - pop bc - - ld hl, $001f - add hl, bc - ld a, [hl] - ld [de], a - ld [CurPartyLevel], a - inc de - - push bc - ld hl, $0024 - add hl, bc - ld bc, $0008 - call CopyBytes - pop bc - - push de - push bc - - ld a, [bc] - dec a - push bc - ld b, 0 - ld c, a - ld hl, KantoMonSpecials - add hl, bc - ld a, BANK(KantoMonSpecials) - call GetFarByte - ld [BaseSpecialAttack], a - pop bc - - ld hl, $000a - add hl, bc - ld c, $5 - ld b, $1 - predef Functione17b - - pop bc - pop de - - ld a, [$ffb5] - ld [de], a - inc de - ld a, [$ffb6] - ld [de], a - inc de - ld h, b - ld l, c - ret -; 28595 - -Function28595: ; 28595 - ld de, OverworldMap - ld a, $fd - ld b, $6 -.loop1 - ld [de], a - inc de - dec b - jr nz, .loop1 - ld hl, PlayerName - ld bc, $000b - call CopyBytes - ld hl, PartyCount - ld bc, $0008 - call CopyBytes - ld hl, PlayerID - ld bc, $0002 - call CopyBytes - ld hl, PartyMon1Species - ld bc, $0120 - call CopyBytes - ld hl, PartyMonOT - ld bc, $0042 - call CopyBytes - ld hl, PartyMonNicknames - ld bc, $0042 - call CopyBytes - ld a, [wLinkMode] - cp LINK_TRADECENTER - ret nz - ld de, wc9f4 - ld a, $20 - call Function28682 - ld a, BANK(s0_a600) - call GetSRAMBank - ld hl, s0_a600 - ld b, $6 -.loop2 - push bc - ld bc, $0021 - call CopyBytes - ld bc, $000e - add hl, bc - pop bc - dec b - jr nz, .loop2 - ld hl, s0_a600 - ld b, $6 -.loop3 - push bc - ld bc, $0021 - add hl, bc - ld bc, $000e - call CopyBytes - pop bc - dec b - jr nz, .loop3 - ld b, $6 - ld de, s0_a600 - ld hl, wc9f9 -.loop4 - push bc - push hl - push de - push hl - callba Function1de5c8 - pop de - ld a, c - or a - jr z, .next - sub $3 - jr nc, .skip - callba Function1df1e6 - jr .next - -.skip - cp $2 - jr nc, .next - callba Function1df220 - -.next - pop de - ld hl, $002f - add hl, de - ld d, h - ld e, l - pop hl - ld bc, $0021 - add hl, bc - pop bc - dec b - jr nz, .loop4 - call CloseSRAM - ld hl, wc9f9 - ld bc, $00c6 -.loop5 - ld a, [hl] - cp $fe - jr nz, .skip2 - ld [hl], $21 - -.skip2 - inc hl - dec bc - ld a, b - or c - jr nz, .loop5 - ld hl, wcabf - ld de, wcb13 - ld b, $54 - ld c, $0 -.loop6 - inc c - ld a, [hl] - cp $fe - jr nz, .skip3 - ld [hl], $ff - ld a, c - ld [de], a - inc de - -.skip3 - inc hl - dec b - jr nz, .loop6 - ld a, $ff - ld [de], a - ret -; 28682 - -Function28682: ; 28682 - ld c, $5 -.loop - ld [de], a - inc de - dec c - jr nz, .loop - ret -; 2868a - -Function2868a: ; 2868a - push hl - ld d, h - ld e, l - ld bc, wcbea - ld hl, wcbe8 - ld a, c - ld [hli], a - ld [hl], b - ld hl, OTPartyMon1Species - ld c, $6 -.loop - push bc - call Function286ba - pop bc - dec c - jr nz, .loop - pop hl - ld bc, $0108 - add hl, bc - ld de, OTPartyMonOT - ld bc, $0042 - call CopyBytes - ld de, OTPartyMonNicknames - ld bc, $0042 - jp CopyBytes -; 286ba - -Function286ba: ; 286ba - ld b, h - ld c, l - ld a, [de] - inc de - push bc - push de - ld [wd265], a - callab ConvertMon_1to2 - pop de - pop bc - ld a, [wd265] - ld [bc], a - ld [CurSpecies], a - ld hl, $0022 - add hl, bc - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hl], a - inc de - ld hl, $0020 - add hl, bc - ld a, [de] - inc de - ld [hl], a - ld hl, wcbe8 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, l - ld [wcbe8], a - ld a, h - ld [wcbe9], a - push bc - ld hl, $0001 - add hl, bc - push hl - ld h, d - ld l, e - pop de - push bc - ld a, [hli] - ld b, a - call Function28771 - ld a, b - ld [de], a - inc de - pop bc - ld bc, $0019 - call CopyBytes - pop bc - ld d, h - ld e, l - ld hl, $001f - add hl, bc - ld a, [de] - inc de - ld [hl], a - ld [CurPartyLevel], a - push bc - ld hl, $0024 - add hl, bc - push hl - ld h, d - ld l, e - pop de - ld bc, $0008 - call CopyBytes - pop bc - call GetBaseData - push de - push bc - ld d, h - ld e, l - ld hl, $000a - add hl, bc - ld c, $5 - ld b, $1 - predef Functione17b - pop bc - pop hl - ld a, [$ffb5] - ld [hli], a - ld a, [$ffb6] - ld [hli], a - push hl - push bc - ld hl, $000a - add hl, bc - ld c, $6 - ld b, $1 - predef Functione17b - pop bc - pop hl - ld a, [$ffb5] - ld [hli], a - ld a, [$ffb6] - ld [hli], a - push hl - ld hl, $001b - add hl, bc - ld a, $46 - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - pop hl -rept 2 - inc de -endr - ret -; 28771 - -Function28771: ; 28771 - ld a, b - and a - ret z - push hl - ld hl, .TimeCapsuleAlt -.loop - ld a, [hli] - and a - jr z, .end - cp b - jr z, .found - inc hl - jr .loop - -.found - ld b, [hl] - -.end - pop hl - ret - -.TimeCapsuleAlt ; 28785 -; Pokémon traded from RBY do not have held items, so GSC usually interprets the -; catch rate as an item. However, if the catch rate appears in this table, the -; item associated with the table entry is used instead. - db ITEM_19, LEFTOVERS - db ITEM_2D, BITTER_BERRY - db ITEM_32, GOLD_BERRY - db ITEM_5A, BERRY - db ITEM_64, BERRY - db ITEM_78, BERRY - db ITEM_87, BERRY - db ITEM_BE, BERRY - db ITEM_C3, BERRY - db ITEM_DC, BERRY - db HM_08, BERRY - db $ff, BERRY - db $00 -; 2879e - -Function2879e: ; 2879e -.asm_2879e - ld a, [hli] - cp $fe - jr z, .asm_2879e - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_2879e - ret -; 287ab - -Function287ab: ; 287ab - ld a, [$ffcb] - cp $2 - ret z - ld hl, EnemyMonSpecies - call Function287d8 - ld de, LinkBattleRNs - ld c, $a -.asm_287bb - ld a, [hli] - cp $fe - jr z, .asm_287bb - cp $fd - jr z, .asm_287bb - ld [de], a - inc de - dec c - jr nz, .asm_287bb - ret -; 287ca - -Function287ca: ; 287ca -.asm_287ca - ld a, [hli] - and a - jr z, .asm_287ca - cp $fd - jr z, .asm_287ca - cp $fe - jr z, .asm_287ca - dec hl - ret -; 287d8 - -Function287d8: ; 287d8 -.asm_287d8 - ld a, [hli] - cp $fd - jr z, .asm_287d8 - cp $fe - jr z, .asm_287d8 - dec hl - ret -; 287e3 - -Function287e3: ; 287e3 - call ClearScreen - call Function28ef8 - callba Function16d673 - xor a - ld hl, wcf51 -rept 3 - ld [hli], a -endr - ld [hl], a - ld a, $1 - ld [wcfa9], a - inc a - ld [wcf56], a - jp Function2888b -; 28803 - -Function28803: ; 28803 - ld a, $1 - ld [MonType], a - ld a, $c1 - ld [wcfa8], a - ld a, [OTPartyCount] - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $9 - ld [wcfa1], a - ld a, $6 - ld [wcfa2], a - ld a, $1 - ld [wcfaa], a - ld a, $10 - ld [wcfa7], a - ld a, $20 - ld [wcfa5], a - xor a - ld [wcfa6], a - -Function28835: ; 28835 - callba Function16d70c - ld a, d - and a - jp z, Function2891c - bit 0, a - jr z, .asm_2885b - ld a, $1 - ld [wd263], a - callab Function50db9 - ld hl, OTPartyMon1Species - callba Function4d319 - jp Function2891c - -.asm_2885b - bit 6, a - jr z, .asm_28883 - ld a, [wcfa9] - ld b, a - ld a, [OTPartyCount] - cp b - jp nz, Function2891c - xor a - ld [MonType], a - call Function1bf7 - push hl - push bc - ld bc, $000b - add hl, bc - ld [hl], $7f - pop bc - pop hl - ld a, [PartyCount] - ld [wcfa9], a - jr Function2888b - -.asm_28883 - bit 7, a - jp z, Function2891c - jp Function28ac9 -; 2888b - -Function2888b: ; 2888b - callba Function49856 - xor a - ld [MonType], a - ld a, $c1 - ld [wcfa8], a - ld a, [PartyCount] - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $1 - ld [wcfa1], a - ld a, $6 - ld [wcfa2], a - ld a, $1 - ld [wcfaa], a - ld a, $10 - ld [wcfa7], a - ld a, $20 - ld [wcfa5], a - xor a - ld [wcfa6], a - call Function3200 - -Function288c5: ; 288c5 - callba Function16d70c - ld a, d - and a - jr nz, .asm_288d2 - jp Function2891c - -.asm_288d2 - bit 0, a - jr z, .asm_288d9 - jp Function28926 - -.asm_288d9 - bit 7, a - jr z, .asm_288fe - ld a, [wcfa9] - dec a - jp nz, Function2891c - ld a, $1 - ld [MonType], a - call Function1bf7 - push hl - push bc - ld bc, $000b - add hl, bc - ld [hl], $7f - pop bc - pop hl - ld a, $1 - ld [wcfa9], a - jp Function28803 - -.asm_288fe - bit 6, a - jr z, Function2891c - ld a, [wcfa9] - ld b, a - ld a, [PartyCount] - cp b - jr nz, Function2891c - call Function1bf7 - push hl - push bc - ld bc, $000b - add hl, bc - ld [hl], $7f - pop bc - pop hl - jp Function28ade -; 2891c - -Function2891c: ; 2891c - ld a, [MonType] - and a - jp z, Function288c5 - jp Function28835 -; 28926 - -Function28926: ; 28926 - call LoadTileMapToTempTileMap - ld a, [wcfa9] - push af - hlcoord 0, 15 - ld b, $1 - ld c, $12 - call Function28eef - hlcoord 2, 16 - ld de, String28ab4 - call PlaceString - callba Function4d354 - -.asm_28946 - ld a, $7f - ldcoord_a 11, 16 - ld a, $13 - ld [wcfa8], a - ld a, $1 - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $10 - ld [wcfa1], a - ld a, $1 - ld [wcfa2], a - ld a, $1 - ld [wcfa9], a - ld [wcfaa], a - ld a, $20 - ld [wcfa7], a - xor a - ld [wcfa5], a - ld [wcfa6], a - call Function1bd3 - bit 4, a - jr nz, .asm_2898d - bit 1, a - jr z, .asm_289cd -.asm_28983 - pop af - ld [wcfa9], a - call Call_LoadTempTileMapToTileMap - jp Function2888b - -.asm_2898d - ld a, $7f - ldcoord_a 1, 16 - ld a, $23 - ld [wcfa8], a - ld a, $1 - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $10 - ld [wcfa1], a - ld a, $b - ld [wcfa2], a - ld a, $1 - ld [wcfa9], a - ld [wcfaa], a - ld a, $20 - ld [wcfa7], a - xor a - ld [wcfa5], a - ld [wcfa6], a - call Function1bd3 - bit 5, a - jp nz, .asm_28946 - bit 1, a - jr nz, .asm_28983 - jr .asm_289fe - -.asm_289cd - pop af - ld [wcfa9], a - ld a, $4 - ld [wd263], a - callab Function50db9 - callba Function4d319 - call Call_LoadTempTileMapToTileMap - hlcoord 6, 1 - ld bc, $0601 - ld a, $7f - call Function28b77 - hlcoord 17, 1 - ld bc, $0601 - ld a, $7f - call Function28b77 - jp Function2888b - -.asm_289fe - call Function1bee - pop af - ld [wcfa9], a - dec a - ld [DefaultFlypoint], a - ld [wcf56], a - callba Function16d6ce - ld a, [wcf51] - cp $f - jp z, Function287e3 - ld [wd003], a - call Function28b68 - ld c, $64 - call DelayFrames - callba Functionfb57e - jr c, .asm_28a58 - callba Functionfb5dd - jp nc, Function28b87 - xor a - ld [wcf57], a - ld [wcf52], a - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - callba Function4d354 - ld hl, UnknownText_0x28aaf - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - jr .asm_28a89 - -.asm_28a58 - xor a - ld [wcf57], a - ld [wcf52], a - ld a, [wd003] - ld hl, OTPartySpecies - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - callba Function4d354 - ld hl, UnknownText_0x28ac4 - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - -.asm_28a89 - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - hlcoord 1, 14 - ld de, String28ece - call PlaceString - ld a, $1 - ld [wcf56], a - callba Function16d6ce - ld c, $64 - call DelayFrames - jp Function287e3 -; 28aaf - - -UnknownText_0x28aaf: ; 0x28aaf - ; If you trade that #MON, you won't be able to battle. - text_jump UnknownText_0x1c41b1 - db "@" -; 0x28ab4 - -String28ab4: ; 28ab4 - db "STATS TRADE@" - -UnknownText_0x28ac4: ; 0x28ac4 - ; Your friend's @ appears to be abnormal! - text_jump UnknownText_0x1c41e6 - db "@" -; 0x28ac9 - - -Function28ac9: ; 28ac9 - ld a, [wcfa9] - cp $1 - jp nz, Function2891c - call Function1bf7 - push hl - push bc - ld bc, $000b - add hl, bc - ld [hl], $7f - pop bc - pop hl - -Function28ade: ; 28ade -.asm_28ade - ld a, $ed - ldcoord_a 9, 17 -.asm_28ae3 - call JoyTextDelay - ld a, [hJoyLast] - and a - jr z, .asm_28ae3 - bit 0, a - jr nz, .asm_28b0b - push af - ld a, " " - ldcoord_a 9, 17 - pop af - bit 6, a - jr z, .asm_28b03 - ld a, [OTPartyCount] - ld [wcfa9], a - jp Function28803 - -.asm_28b03 - ld a, $1 - ld [wcfa9], a - jp Function2888b - -.asm_28b0b - ld a, $ec - ldcoord_a 9, 17 - ld a, $f - ld [wcf56], a - callba Function16d6ce - ld a, [wcf51] - cp $f - jr nz, .asm_28ade - -Function28b22: ; 28b22 - call FadeToWhite - call ClearScreen - ld b, $8 - call GetSGBLayout - call Function3200 - xor a - ld [wcfbb], a - xor a - ld [rSB], a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret -; 28b42 - -Function28b42: ; 28b42 - hlcoord 0, 16 - ld a, "┘" - ld bc, 2 * SCREEN_WIDTH - call ByteFill - hlcoord 1, 16 - ld a, " " - ld bc, SCREEN_WIDTH - 2 - call ByteFill - hlcoord 2, 16 - ld de, String_28b61 - jp PlaceString -; 28b61 - -String_28b61: ; 28b61 - db "CANCEL@" -; 28b68 - -Function28b68: ; 28b68 - ld a, [wcf51] - hlcoord 6, 9 - ld bc, SCREEN_WIDTH - call AddNTimes - ld [hl], $ec - ret -; 28b77 - -Function28b77: ; 28b77 -.asm_28b77 - push bc - push hl -.asm_28b79 - ld [hli], a - dec c - jr nz, .asm_28b79 - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_28b77 - ret -; 28b87 - -Function28b87: ; 28b87 - xor a - ld [wcf57], a - ld [wcf52], a - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - callba Function4d354 - ld a, [DefaultFlypoint] - ld hl, PartySpecies - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld de, wd004 - ld bc, $000b - call CopyBytes - ld a, [wd003] - ld hl, OTPartySpecies - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ld hl, UnknownText_0x28eb8 - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - call LoadMenuDataHeader_0x1d75 - hlcoord 10, 7 - ld b, $3 - ld c, $7 - call Function28eef - ld de, String28eab - hlcoord 12, 8 - call PlaceString - ld a, $8 - ld [wcfa1], a - ld a, $b - ld [wcfa2], a - ld a, $1 - ld [wcfa4], a - ld a, $2 - ld [wcfa3], a - xor a - ld [wcfa5], a - ld [wcfa6], a - ld a, $20 - ld [wcfa7], a - ld a, $3 - ld [wcfa8], a - ld a, $1 - ld [wcfa9], a - ld [wcfaa], a - callba Function4d354 - call Function1bd3 - push af - call Call_ExitMenu - call Function3200 - pop af - bit 1, a - jr nz, .asm_28c33 - ld a, [wcfa9] - dec a - jr z, .asm_28c54 - -.asm_28c33 - ld a, $1 - ld [wcf56], a - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - hlcoord 1, 14 - ld de, String28ece - call PlaceString - callba Function16d6ce - jp Function28ea3 - -.asm_28c54 - ld a, $2 - ld [wcf56], a - callba Function16d6ce - ld a, [wcf51] - dec a - jr nz, .asm_28c7b - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - hlcoord 1, 14 - ld de, String28ece - call PlaceString - jp Function28ea3 - -.asm_28c7b - ld hl, s0_a600 - ld a, [DefaultFlypoint] - ld bc, $002f - call AddNTimes - ld a, BANK(s0_a600) - call GetSRAMBank - ld d, h - ld e, l - ld bc, $002f - add hl, bc - ld a, [DefaultFlypoint] - ld c, a -.asm_28c96 - inc c - ld a, c - cp $6 - jr z, .asm_28ca6 - push bc - ld bc, $002f - call CopyBytes - pop bc - jr .asm_28c96 - -.asm_28ca6 - ld hl, s0_a600 - ld a, [PartyCount] - dec a - ld bc, $002f - call AddNTimes - push hl - ld hl, wc9f4 - ld a, [wd003] - ld bc, $002f - call AddNTimes - pop de - ld bc, $002f - call CopyBytes - call CloseSRAM - ld hl, PlayerName - ld de, wc6e7 - ld bc, $000b - call CopyBytes - ld a, [DefaultFlypoint] - ld hl, PartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [wc6d0], a - push af - ld a, [DefaultFlypoint] - ld hl, PartyMonOT - call SkipNames - ld de, wc6f2 - ld bc, $000b - call CopyBytes - ld hl, PartyMon1ID - ld a, [DefaultFlypoint] - call GetPartyLocation - ld a, [hli] - ld [PlayerScreens], a - ld a, [hl] - ld [EnemyScreens], a - ld hl, PartyMon1DVs - ld a, [DefaultFlypoint] - call GetPartyLocation - ld a, [hli] - ld [wc6fd], a - ld a, [hl] - ld [wc6fe], a - ld a, [DefaultFlypoint] - ld hl, PartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wc701], a - ld hl, wd26b - ld de, wc719 - ld bc, $000b - call CopyBytes - ld a, [wd003] - ld hl, OTPartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [wc702], a - ld a, [wd003] - ld hl, OTPartyMonOT - call SkipNames - ld de, wc724 - ld bc, $000b - call CopyBytes - ld hl, OTPartyMon1ID - ld a, [wd003] - call GetPartyLocation - ld a, [hli] - ld [wc731], a - ld a, [hl] - ld [wc732], a - ld hl, OTPartyMon1DVs - ld a, [wd003] - call GetPartyLocation - ld a, [hli] - ld [wc72f], a - ld a, [hl] - ld [wc730], a - ld a, [wd003] - ld hl, OTPartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wc733], a - ld a, [DefaultFlypoint] - ld [CurPartyMon], a - ld hl, PartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [DefaultFlypoint], a - xor a - ld [wd10b], a - callab Functione039 - ld a, [PartyCount] - dec a - ld [CurPartyMon], a - ld a, $1 - ld [wd1e9], a - ld a, [wd003] - push af - ld hl, OTPartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [wd003], a - ld c, $64 - call DelayFrames - call ClearTileMap - call LoadFontsBattleExtra - ld b, $8 - call GetSGBLayout - ld a, [$ffcb] - cp $1 - jr z, .asm_28de4 - predef Function28f24 - jr .asm_28de9 - -.asm_28de4 - predef Function28f63 - -.asm_28de9 - pop af - ld c, a - ld [CurPartyMon], a - ld hl, OTPartySpecies - ld d, $0 - ld e, a - add hl, de - ld a, [hl] - ld [CurPartySpecies], a - ld hl, OTPartyMon1Species - ld a, c - call GetPartyLocation - ld de, TempMonSpecies - ld bc, PartyMon2 - PartyMon1 - call CopyBytes - predef Functionda96 - ld a, [PartyCount] - dec a - ld [CurPartyMon], a - callab Function421d8 - call ClearScreen - call Function28ef8 - call Function28eff - callba Function4d354 - ld b, $1 - pop af - ld c, a - cp MEW - jr z, .asm_28e49 - ld a, [CurPartySpecies] - cp MEW - jr z, .asm_28e49 - ld b, $2 - ld a, c - cp CELEBI - jr z, .asm_28e49 - ld a, [CurPartySpecies] - cp CELEBI - jr z, .asm_28e49 - ld b, $0 - -.asm_28e49 - ld a, b - ld [wcf56], a - push bc - call Function862 - pop bc - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr z, .asm_28e63 - ld a, b - and a - jr z, .asm_28e63 - ld a, [wcf52] - cp b - jr nz, .asm_28e49 - -.asm_28e63 - callba Function14a58 - callba MobileFn_1060af - callba Function106187 - ld c, $28 - call DelayFrames - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - hlcoord 1, 14 - ld de, String28ebd - call PlaceString - callba Function4d354 - ld c, $32 - call DelayFrames - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jp z, Function2805d - jp Function28177 -; 28ea3 - -Function28ea3: ; 28ea3 - ld c, 100 - call DelayFrames - jp Function287e3 -; 28eab - -String28eab: ; 28eab - db "TRADE" - next "CANCEL@" - -UnknownText_0x28eb8: ; 0x28eb8 - ; Trade @ for @ ? - text_jump UnknownText_0x1c4212 - db "@" -; 0x28ebd - -String28ebd: ; 28ebd - db "Trade completed!@" - -String28ece: ; 28ece - db "Too bad! The trade" - next "was canceled!@" - - -Function28eef: ; 28eef - ld d, h - ld e, l - callba Function16d6ca - ret -; 28ef8 - -Function28ef8: ; 28ef8 - callba Function16d696 - ret -; 28eff - -Function28eff: ; 28eff - callba Function16d6a7 - call SetPalettes - ret -; 28f09 - -Function28f09: ; 28f09 - hlcoord 0, 0 - ld b, 6 - ld c, 18 - call Function28eef - hlcoord 0, 8 - ld b, 6 - ld c, 18 - call Function28eef - callba Functionfb60d - ret -; 28f24 - -Function28f24: ; 28f24 - xor a - ld [wcf66], a - ld hl, wc6e7 - ld de, wc719 - call Function297ff - ld hl, wc6d0 - ld de, wc702 - call Function29814 - ld de, .data_28f3f - jr Function28fa1 - -.data_28f3f - db $1b - db $1 - db $1c - db $21 - db $2d - db $27 - db $23 - db $3 - db $25 - db $28 - db $25 - db $1e - db $29 - db $6 - db $16 - db $1f - db $19 - db $17 - db $22 - db $1f - db $2a - db $e - db $3 - db $24 - db $5 - db $25 - db $2 - db $27 - db $25 - db $1d - db $2c - db $2e - db $1e - db $18 - db $1f - db $2b - -Function28f63: ; 28f63 - xor a - ld [wcf66], a - ld hl, wc719 - ld de, wc6e7 - call Function297ff - ld hl, wc702 - ld de, wc6d0 - call Function29814 - ld de, .data_28f7e - jr Function28fa1 - -.data_28f7e - db $1a - db $17 - db $22 - db $1f - db $2a - db $6 - db $3 - db $24 - db $5 - db $25 - db $2 - db $27 - db $25 - db $1d - db $2c - db $2f - db $1e - db $18 - db $1f - db $1b - db $1 - db $1c - db $22 - db $27 - db $23 - db $3 - db $25 - db $28 - db $25 - db $1e - db $29 - db $e - db $16 - db $1f - db $2b - -Function28fa1: ; 28fa1 - ld hl, BattleEnded - ld [hl], e - inc hl - ld [hl], d - ld a, [$ffde] - push af - xor a - ld [$ffde], a - ld hl, VramState - ld a, [hl] - push af - res 0, [hl] - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call Function28fdb - ld a, [wcf66] - and a - jr nz, .asm_28fca - ld de, MUSIC_EVOLUTION - call PlayMusic2 -.asm_28fca - call Function29082 - jr nc, .asm_28fca - pop af - ld [Options], a - pop af - ld [VramState], a - pop af - ld [$ffde], a - ret -; 28fdb - -Function28fdb: ; 28fdb - xor a - ld [wJumptableIndex], a - call WhiteBGMap - call ClearSprites - call ClearTileMap - call DisableLCD - call LoadFontsBattleExtra - callab Function8cf53 - ld a, [hCGB] - and a - jr z, .asm_2900b - ld a, $1 - ld [rVBK], a - ld hl, VTiles0 - ld bc, sScratch - VTiles0 - xor a - call ByteFill - ld a, $0 - ld [rVBK], a - -.asm_2900b - ld hl, VBGMap0 - ld bc, sScratch - VBGMap0 - ld a, " " - call ByteFill - ld hl, TradeGameBoyLZ - ld de, VTiles2 tile $31 - call Decompress - ld hl, TradeArrowGFX - ld de, VTiles1 tile $6d - ld bc, $0010 - ld a, BANK(TradeArrowGFX) - call FarCopyBytes - ld hl, TradeArrowGFX + $10 - ld de, VTiles1 tile $6e - ld bc, $0010 - ld a, BANK(TradeArrowGFX) - call FarCopyBytes - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function4d7fd - call EnableLCD - call Function2982b - ld a, [wc6d0] - ld hl, wc6fd - ld de, VTiles0 - call Function29491 - ld a, [wc702] - ld hl, wc72f - ld de, VTiles0 tile $31 - call Function29491 - ld a, [wc6d0] - ld de, wc6d1 - call Function294a9 - ld a, [wc702] - ld de, wc703 - call Function294a9 - call Function297ed - ret -; 29082 - -Function29082: ; 29082 - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_2909b - call Function290a0 - callab Function8cf69 - ld hl, wcf65 - inc [hl] - call DelayFrame - and a - ret - -.asm_2909b - call Functione51 - scf - ret -; 290a0 - -Function290a0: ; 290a0 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, JumpTable290af -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 290af - -JumpTable290af: ; 290af - dw Function29114 - dw Function2942e - dw Function29461 - dw Function29348 - dw Function2937e - dw Function29391 - dw Function29129 - dw Function291af - dw Function291c4 - dw Function291d9 - dw Function2925d - dw Function29220 - dw Function2925d - dw Function29229 - dw Function2913c - dw Function2925d - dw Function291e8 - dw Function291fd - dw Function29211 - dw Function29220 - dw Function2925d - dw Function29229 - dw Function29701 - dw Function2973c - dw Function2975c - dw Function2977f - dw Function297a4 - dw Function293a6 - dw Function293b6 - dw Function293d2 - dw Function293de - dw Function293ea - dw Function2940c - dw Function294e7 - dw Function294f0 - dw Function2961b - dw Function2962c - dw Function29879 - dw Function29886 - dw Function29649 - dw Function29660 - dw Function2926d - dw Function29277 - dw Function29123 - dw Function29487 - dw Function294f9 - dw Function29502 - dw Function2950c -; 2910f - -Function2910f: ; 2910f - ld hl, wJumptableIndex - inc [hl] - ret -; 29114 - -Function29114: ; 29114 - ld hl, BattleEnded - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - ld [wJumptableIndex], a - inc de - ld [hl], d - dec hl - ld [hl], e - ret -; 29123 - -Function29123: ; 29123 - ld hl, wJumptableIndex - set 7, [hl] - ret -; 29129 - -Function29129: ; 29129 - ld a, $ed - call Function292f6 - ld a, [wc74c] - ld [wd265], a - xor a - ld de, $2c58 - ld b, $0 - jr Function2914e - -Function2913c: ; 2913c - ld a, $ee - call Function292f6 - ld a, [wc74d] - ld [wd265], a - ld a, $2 - lb de, $4c, $94 - ld b, $4 - -Function2914e: ; 2914e - push bc - push de - push bc - push de - push af - call DisableLCD - callab Function8cf53 - ld hl, $9874 - ld bc, $000c - ld a, $60 - call ByteFill - pop af - call Function29281 - xor a - ld [hSCX], a - ld a, $7 - ld [hWX], a - ld a, $70 - ld [hWY], a - call EnableLCD - call Function2985a - pop de - ld a, $11 - call Function3b2a - ld hl, $000b - add hl, bc - pop bc - ld [hl], b - pop de - ld a, $12 - call Function3b2a - ld hl, $000b - add hl, bc - pop bc - ld [hl], b - call WaitBGMap - ld b, $1b - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $d0 - call Functioncf8 - call Function2910f - ld a, $5c - ld [wcf64], a - ret -; 291af - -Function291af: ; 291af - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - cp $50 - ret nz - ld a, $1 - call Function29281 - call Function2910f - ret -; 291c4 - -Function291c4: ; 291c4 - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - cp $a0 - ret nz - ld a, $2 - call Function29281 - call Function2910f - ret -; 291d9 - -Function291d9: ; 291d9 - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - and a - ret nz - call Function2910f - ret -; 291e8 - -Function291e8: ; 291e8 - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - cp $b0 - ret nz - ld a, $1 - call Function29281 - call Function2910f - ret -; 291fd - -Function291fd: ; 291fd - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - cp $60 - ret nz - xor a - call Function29281 - call Function2910f - ret -; 29211 - -Function29211: ; 29211 - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - and a - ret nz - call Function2910f - ret -; 29220 - -Function29220: ; 29220 - ld a, $80 - ld [wcf64], a - call Function2910f - ret -; 29229 - -Function29229: ; 29229 - call WhiteBGMap - call ClearTileMap - call ClearSprites - call DisableLCD - callab Function8cf53 - ld hl, VBGMap0 - ld bc, sScratch - VBGMap0 - ld a, " " - call ByteFill - xor a - ld [hSCX], a - ld a, $90 - ld [hWY], a - call EnableLCD - call Function2982b - call WaitBGMap - call Function297ed - call Function29114 - ret -; 2925d - -Function2925d: ; 2925d - call Function2981d - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_29269 - dec [hl] - ret - -.asm_29269 - call Function2910f - ret -; 2926d - -Function2926d: ; 2926d - call Function29114 - ld de, SFX_GIVE_TRADEMON - call PlaySFX - ret -; 29277 - -Function29277: ; 29277 - call Function29114 - ld de, SFX_GET_TRADEMON - call PlaySFX - ret -; 29281 - -Function29281: ; 29281 - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_2928f -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 2928f - -Jumptable_2928f: ; 2928f - dw Function29297 - dw Function292af - dw Function292be - dw Function29297 -; 29297 - -Function29297: ; 29297 - call Function297cf - hlcoord 9, 3 - ld [hl], $5b - inc hl - ld bc, $000a - ld a, $60 - call ByteFill - hlcoord 3, 2 - call Function292ec - ret -; 292af - -Function292af: ; 292af - call Function297cf - hlcoord 0, 3 - ld bc, SCREEN_WIDTH - ld a, $60 - call ByteFill - ret -; 292be - -Function292be: ; 292be - call Function297cf - hlcoord 0, 3 - ld bc, $0011 - ld a, $60 - call ByteFill - hlcoord 17, 3 - ld a, $5d - ld [hl], a - ld a, $61 - ld de, SCREEN_WIDTH - ld c, $3 -.asm_292d9 - add hl, de - ld [hl], a - dec c - jr nz, .asm_292d9 - add hl, de - ld a, $5f - ld [hld], a - ld a, $5b - ld [hl], a - hlcoord 10, 6 - call Function292ec - ret -; 292ec - -Function292ec: ; 292ec - ld de, TradeGameBoyTilemap - lb bc, 8, 6 - call Function297db - ret -; 292f6 - -Function292f6: ; 292f6 - push af - call WhiteBGMap - call WaitTop - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, "─" - call ByteFill - hlcoord 0, 1 - ld de, wc736 - call PlaceString - ld hl, wc741 - ld de, 0 -.asm_2931e - ld a, [hli] - cp "@" - jr z, .asm_29326 - dec de - jr .asm_2931e - -.asm_29326 - hlcoord 0, 4 - add hl, de - ld de, wc741 - call PlaceString - hlcoord 7, 2 - ld bc, $0006 - pop af - call ByteFill - call WaitBGMap - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - ret -; 29348 - -Function29348: ; 29348 - call ClearTileMap - call WaitTop - ld a, $a0 - ld [hSCX], a - call DelayFrame - hlcoord 8, 2 - ld de, Tilemap_298f7 - lb bc, 3, 12 - call Function297db - call WaitBGMap - ld b, $1b - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld de, $e4e4 - call DmgToCgbObjPals - ld de, SFX_POTION - call PlaySFX - call Function2910f - ret -; 2937e - -Function2937e: ; 2937e - ld a, [hSCX] - and a - jr z, .asm_29388 - add $4 - ld [hSCX], a - ret - -.asm_29388 - ld c, $50 - call DelayFrames - call Function29114 - ret -; 29391 - -Function29391: ; 29391 - ld a, [hSCX] - cp $a0 - jr z, .asm_2939c - sub $4 - ld [hSCX], a - ret - -.asm_2939c - call ClearTileMap - xor a - ld [hSCX], a - call Function29114 - ret -; 293a6 - -Function293a6: ; 293a6 - ld a, $8f - ld [hWX], a - ld a, $88 - ld [hSCX], a - ld a, $50 - ld [hWY], a - call Function29114 - ret -; 293b6 - -Function293b6: ; 293b6 - ld a, [hWX] - cp $7 - jr z, .asm_293c7 - sub $4 - ld [hWX], a - ld a, [hSCX] - sub $4 - ld [hSCX], a - ret - -.asm_293c7 - ld a, $7 - ld [hWX], a - xor a - ld [hSCX], a - call Function29114 - ret -; 293d2 - -Function293d2: ; 293d2 - ld a, $7 - ld [hWX], a - ld a, $50 - ld [hWY], a - call Function29114 - ret -; 293de - -Function293de: ; 293de - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - call Function29114 - ret -; 293ea - -Function293ea: ; 293ea - call WaitTop - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call WaitBGMap - ld a, $7 - ld [hWX], a - xor a - ld [hWY], a - call DelayFrame - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - call Function2910f - ret -; 2940c - -Function2940c: ; 2940c - ld a, [hWX] - cp $a1 - jr nc, .asm_29417 - add $4 - ld [hWX], a - ret - -.asm_29417 - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call WaitBGMap - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call Function29114 - ret -; 2942e - -Function2942e: ; 2942e - call Function2951f - ld a, [wc6d0] - ld [CurPartySpecies], a - ld a, [wc6fd] - ld [TempMonDVs], a - ld a, [wc6fe] - ld [TempMonDVs + 1], a - ld b, $1a - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - call Function294bb - - ld a, [wc6d0] - call GetCryIndex - jr c, .asm_2945d - ld e, c - ld d, b - call PlayCryHeader -.asm_2945d - - call Function29114 - ret -; 29461 - -Function29461: ; 29461 - call Function29549 - ld a, [wc702] - ld [CurPartySpecies], a - ld a, [wc72f] - ld [TempMonDVs], a - ld a, [wc730] - ld [TempMonDVs + 1], a - ld b, $1a - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - call Function294c0 - call Function29114 - ret -; 29487 - -Function29487: ; 29487 - callba Function4d81e - call Function29114 - ret -; 29491 - -Function29491: ; 29491 - push de - push af - predef GetUnownLetter - pop af - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - pop de - predef GetFrontpic - ret -; 294a9 - -Function294a9: ; 294a9 - push de - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - pop de - ld bc, $000b - call CopyBytes - ret -; 294bb - -Function294bb: ; 294bb - ld de, VTiles0 - jr Function294c3 - -Function294c0: ; 294c0 - ld de, VTiles0 tile $31 - -Function294c3: ; 294c3 - call DelayFrame - ld hl, VTiles2 - ld bc, $0a31 - call Request2bpp - call WaitTop - call Function297cf - hlcoord 7, 2 - xor a - ld [$ffad], a - lb bc, 7, 7 - predef FillBox - call WaitBGMap - ret -; 294e7 - -Function294e7: ; 294e7 - ld c, $50 - call DelayFrames - call Function29114 - ret -; 294f0 - -Function294f0: ; 294f0 - ld c, $28 - call DelayFrames - call Function29114 - ret -; 294f9 - -Function294f9: ; 294f9 - ld c, $60 - call DelayFrames - call Function29114 - ret -; 29502 - -Function29502: ; 29502 - call Function29516 - ret nz - ld c, $50 - call DelayFrames - ret -; 2950c - -Function2950c: ; 2950c - call Function29516 - ret nz - ld c, $b4 - call DelayFrames - ret -; 29516 - -Function29516: ; 29516 - call Function29114 - ld a, [wc702] - cp $fd - ret -; 2951f - -Function2951f: ; 2951f - ld de, wc6d0 - ld a, [de] - cp $fd - jr z, Function295a1 - call Function29573 - ld de, wc6d0 - call Function295e3 - ld de, wc6d1 - call Function295ef - ld a, [wc701] - ld de, wc6f2 - call Function295f6 - ld de, PlayerScreens - call Function29611 - call Function295d8 - ret -; 29549 - -Function29549: ; 29549 - ld de, wc702 - ld a, [de] - cp $fd - jr z, Function295a1 - call Function29573 - ld de, wc702 - call Function295e3 - ld de, wc703 - call Function295ef - ld a, [wc733] - ld de, wc724 - call Function295f6 - ld de, wc731 - call Function29611 - call Function295d8 - ret -; 29573 - -Function29573: ; 29573 - call WaitTop - call Function297cf - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 3, 0 - ld b, $6 - ld c, $d - call TextBox - hlcoord 4, 0 - ld de, String29591 - call PlaceString - ret -; 29591 - -String29591: ; 29591 - db "─── №." - next "" - next "OT/" - next $73, "№.@" -; 295a1 - -Function295a1: ; 295a1 - call WaitTop - call Function297cf - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 3, 0 - ld b, $6 - ld c, $d - call TextBox - hlcoord 4, 2 - ld de, String295c2 - call PlaceString - call Function295d8 - ret -; 295c2 - -String295c2: ; 295c2 - db "EGG" - next "OT/?????" - next $73, "№.?????@" -; 295d8 - -Function295d8: ; 295d8 - call WaitBGMap - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ret -; 295e3 - -Function295e3: ; 295e3 - hlcoord 10, 0 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - ld [hl], $7f - ret -; 295ef - -Function295ef: ; 295ef - hlcoord 4, 2 - call PlaceString - ret -; 295f6 - -Function295f6: ; 295f6 - cp 3 - jr c, .asm_295fb - xor a - -.asm_295fb - push af - hlcoord 7, 4 - call PlaceString - inc bc - pop af - ld hl, Unknown_2960e - ld d, 0 - ld e, a - add hl, de - ld a, [hl] - ld [bc], a - ret -; 2960e - -Unknown_2960e: ; 2960e - db " ", "♂", "♀" -; 29611 - -Function29611: ; 29611 - hlcoord 7, 6 - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - ret -; 2961b - -Function2961b: ; 2961b - lb de, $54, $58 - ld a, $e - call Function3b2a - call Function29114 - ld a, $20 - ld [wcf64], a - ret -; 2962c - -Function2962c: ; 2962c - lb de, $54, $58 - ld a, $e - call Function3b2a - ld hl, $000b - add hl, bc - ld [hl], $1 - ld hl, $0007 - add hl, bc - ld [hl], $dc - call Function29114 - ld a, $38 - ld [wcf64], a - ret -; 29649 - -Function29649: ; 29649 - lb de, $54, $58 - ld a, $f - call Function3b2a - call Function29114 - ld a, $10 - ld [wcf64], a - ld de, SFX_BALL_POOF - call PlaySFX - ret -; 29660 - -Function29660: ; 29660 - ld a, $e4 - call Functioncf8 - lb de, $28, $58 - ld a, $10 - call Function3b2a - call Function29114 - ld a, $40 - ld [wcf64], a - ret -; 29676 - -Function29676: ; 29676 (a:5676) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_29686 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 29686 - -Jumptable_29686: ; 29686 (a:5686) - dw Function2969a - dw Function296a4 - dw Function296af - dw Function296bd - dw Function296cf - dw Function296dd - dw Function296f2 -; 2969a - -Function29694: ; 29694 (a:5694) - ld hl, $b - add hl, bc - inc [hl] - ret - -Function2969a: ; 2969a (a:569a) - call Function29694 - ld hl, $c - add hl, bc - ld [hl], $80 - ret - -Function296a4: ; 296a4 (a:56a4) - ld hl, $c - add hl, bc - ld a, [hl] - dec [hl] - and a - ret nz - call Function29694 - -Function296af: ; 296af (a:56af) - ld hl, $4 - add hl, bc - ld a, [hl] - cp $94 - jr nc, .asm_296ba - inc [hl] - ret -.asm_296ba - call Function29694 - -Function296bd: ; 296bd (a:56bd) - ld hl, $5 - add hl, bc - ld a, [hl] - cp $4c - jr nc, .asm_296c8 - inc [hl] - ret -.asm_296c8 - ld hl, $0 - add hl, bc - ld [hl], $0 - ret - -Function296cf: ; 296cf (a:56cf) - ld hl, $5 - add hl, bc - ld a, [hl] - cp $2c - jr z, .asm_296da - dec [hl] - ret -.asm_296da - call Function29694 - -Function296dd: ; 296dd (a:56dd) - ld hl, $4 - add hl, bc - ld a, [hl] - cp $58 - jr z, .asm_296e8 - dec [hl] - ret -.asm_296e8 - call Function29694 - ld hl, $c - add hl, bc - ld [hl], $80 - ret - -Function296f2: ; 296f2 (a:56f2) - ld hl, $c - add hl, bc - ld a, [hl] - dec [hl] - and a - ret nz - ld hl, $0 - add hl, bc - ld [hl], $0 - ret -; 29701 (a:5701) - -Function29701: ; 29701 - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr z, .asm_29725 - ld hl, UnknownText_0x29737 - call PrintText - ld c, $bd - call DelayFrames - ld hl, UnknownText_0x29732 - call PrintText - call Function297c9 - ld c, $80 - call DelayFrames - call Function29114 - ret - -.asm_29725 - ld hl, UnknownText_0x29732 - call PrintText - call Function297c9 - call Function29114 - ret -; 29732 - -UnknownText_0x29732: ; 0x29732 - ; was sent to @ . - text_jump UnknownText_0x1bc6e9 - db "@" -; 0x29737 - -UnknownText_0x29737: ; 0x29737 - ; - text_jump UnknownText_0x1bc701 - db "@" -; 0x2973c - -Function2973c: ; 2973c - ld hl, UnknownText_0x29752 - call PrintText - call Function297c9 - ld hl, UnknownText_0x29757 - call PrintText - call Function297c9 - call Function29114 - ret -; 29752 - -UnknownText_0x29752: ; 0x29752 - ; bids farewell to - text_jump UnknownText_0x1bc703 - db "@" -; 0x29757 - -UnknownText_0x29757: ; 0x29757 - ; . - text_jump UnknownText_0x1bc719 - db "@" -; 0x2975c - -Function2975c: ; 2975c - call WaitTop - hlcoord 0, 10 - ld bc, 8 * SCREEN_WIDTH - ld a, " " - call ByteFill - call WaitBGMap - ld hl, UnknownText_0x2977a - call PrintText - call Function297c9 - call Function29114 - ret -; 2977a - -UnknownText_0x2977a: ; 0x2977a - ; Take good care of @ . - text_jump UnknownText_0x1bc71f - db "@" -; 0x2977f - -Function2977f: ; 2977f - ld hl, UnknownText_0x2979a - call PrintText - call Function297c9 - ld hl, UnknownText_0x2979f - call PrintText - call Function297c9 - ld c, $e - call DelayFrames - call Function29114 - ret -; 2979a - -UnknownText_0x2979a: ; 0x2979a - ; For @ 's @ , - text_jump UnknownText_0x1bc739 - db "@" -; 0x2979f - -UnknownText_0x2979f: ; 0x2979f - ; sends @ . - text_jump UnknownText_0x1bc74c - db "@" -; 0x297a4 - -Function297a4: ; 297a4 - ld hl, UnknownText_0x297bf - call PrintText - call Function297c9 - ld hl, UnknownText_0x297c4 - call PrintText - call Function297c9 - ld c, $e - call DelayFrames - call Function29114 - ret -; 297bf - -UnknownText_0x297bf: ; 0x297bf - ; will trade @ @ - text_jump UnknownText_0x1bc75e - db "@" -; 0x297c4 - -UnknownText_0x297c4: ; 0x297c4 - ; for @ 's @ . - text_jump UnknownText_0x1bc774 - db "@" -; 0x297c9 - -Function297c9: ; 297c9 - ld c, $50 - call DelayFrames - ret -; 297cf - -Function297cf: ; 297cf - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ret -; 297db - -Function297db: ; 297db -.asm_297db - push bc - push hl -.asm_297dd - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_297dd - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_297db - ret -; 297ed - -Function297ed: ; 297ed - ld a, [hSGB] - and a - ld a, $e4 - jr z, .asm_297f6 - ld a, $f0 - -.asm_297f6 - call Functioncf8 - ld a, $e4 - call DmgToCgbBGPals - ret -; 297ff - -Function297ff: ; 297ff - push de - ld de, wc736 - ld bc, $000b - call CopyBytes - pop hl - ld de, wc741 - ld bc, $000b - call CopyBytes - ret -; 29814 - -Function29814: ; 29814 - ld a, [hl] - ld [wc74c], a - ld a, [de] - ld [wc74d], a - ret -; 2981d - -Function2981d: ; 2981d - ld a, [wcf65] - and $7 - ret nz - ld a, [rBGP] - xor $3c - call DmgToCgbBGPals - ret -; 2982b - -Function2982b: ; 2982b - call DelayFrame - ld de, TradeBallGFX - ld hl, VTiles0 tile $62 - lb bc, BANK(TradeBallGFX), $6 - call Request2bpp - ld de, TradePoofGFX - ld hl, VTiles0 tile $68 - lb bc, BANK(TradePoofGFX), $c - call Request2bpp - ld de, TradeCableGFX - ld hl, VTiles0 tile $74 - lb bc, BANK(TradeCableGFX), $4 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], $62 - ret -; 2985a - -Function2985a: ; 2985a - call DelayFrame - ld e, $3 - callab Function8e83f - ld de, TradeBubbleGFX - ld hl, VTiles0 tile $72 - lb bc, BANK(TradeBubbleGFX), $4 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], $62 - ret -; 29879 - -Function29879: ; 29879 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_29882 - dec [hl] - ret - -.asm_29882 - call Function29114 - ret -; 29886 - -Function29886: ; 29886 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_2988f - dec [hl] - ret - -.asm_2988f - call Function29114 - ret -; 29893 - - -Function29893: ; 29893 -; This function is unreferenced. -; It was meant for use in Japanese versions, so the -; constant used for copy length was changed by accident. - - ld hl, Unknown_298b5 - - ld a, [hli] - ld [wc6d0], a - ld de, wc6e7 - ld c, 13 ; jp: 8 -.asm_2989f - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_2989f - - ld a, [hli] - ld [wc702], a - ld de, wc719 - ld c, 13 ; jp: 8 -.asm_298ae - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_298ae - ret -; 298b5 - -Unknown_298b5: ; 298b5 - db $03, "ゲーフり@@", $23, $01 ; GAME FREAK - db $06, "クりーチャ@", $56, $04 ; Creatures Inc. -; 298c7 - - -TradeGameBoyTilemap: ; 298c7 -; 6x8 - db $31, $32, $32, $32, $32, $33 - db $34, $35, $36, $36, $37, $38 - db $34, $39, $3a, $3a, $3b, $38 - db $3c, $3d, $3e, $3e, $3f, $40 - db $41, $42, $43, $43, $44, $45 - db $46, $47, $43, $48, $49, $4a - db $41, $43, $4b, $4c, $4d, $4e - db $4f, $50, $50, $50, $51, $52 -; 297f7 - -Tilemap_298f7: ; 297f7 -; 12x3 - db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53 - db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54 - db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43 -; 2991b - -TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp" -TradeCableGFX: INCBIN "gfx/trade/cable.2bpp" -TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp" -TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz" -TradeBallGFX: INCBIN "gfx/trade/ball.2bpp" -TradePoofGFX: INCBIN "gfx/trade/poof.2bpp" - -Special_CheckTimeCapsuleCompatibility: ; 29bfb -; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar: -; 0: Party is okay -; 1: At least one Pokemon was introduced in GS -; 2: At least one Pokemon has a move that was introduced in GS -; 3: At least one Pokemon is holding mail - -; If any party Pokemon was introduced in the generation 2 games, don't let it in. - ld hl, PartySpecies - ld b, PARTY_LENGTH ; 6 -.loop - ld a, [hli] - cp $ff - jr z, .checkitem - cp CHIKORITA ; MEW + 1 ; 151 + 1 - jr nc, .mon_too_new - dec b - jr nz, .loop - -; If any party Pokemon is holding mail, don't let it in. -.checkitem - ld a, [PartyCount] - ld b, a - ld hl, PartyMon1Item -.itemloop - push hl - push bc - ld d, [hl] - callba ItemIsMail - pop bc - pop hl - jr c, .mon_has_mail - ld de, PartyMon2 - PartyMon1 - add hl, de - dec b - jr nz, .itemloop - -; If any party Pokemon has a move that was introduced in the generation 2 games, don't let it in. - ld hl, PartyMon1Moves - ld a, [PartyCount] - ld b, a -.move_loop - ld c, NUM_MOVES -.move_next - ld a, [hli] - cp STRUGGLE + 1 - jr nc, .move_too_new - dec c - jr nz, .move_next - ld de, PartyMon2 - (PartyMon1 + NUM_MOVES) - add hl, de - dec b - jr nz, .move_loop - xor a - jr .done - -.mon_too_new - ld [wd265], a - call GetPokemonName - ld a, $1 - jr .done - -.move_too_new - push bc - ld [wd265], a - call GetMoveName - call CopyName1 - pop bc - call Function29c67 - ld a, $2 - jr .done - -.mon_has_mail - call Function29c67 - ld a, $3 - -.done - ld [ScriptVar], a - ret -; 29c67 - -Function29c67: ; 29c67 - ld a, [PartyCount] - sub b - ld c, a - inc c - ld b, $0 - ld hl, PartyCount - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ret -; 29c7b - -Special_EnterTimeCapsule: ; 29c7b - ld c, $a - call DelayFrames - ld a, $4 - call Function29f17 - ld c, $28 - call DelayFrames - xor a - ld [hVBlank], a - inc a - ld [wLinkMode], a - ret -; 29c92 - -Special_AbortLink: ; 29c92 - ld c, $3 - call DelayFrames - ld a, -1 - ld [$ffcb], a - xor a - ld [rSB], a - ld [hSerialReceive], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ld c, $3 - call DelayFrames - xor a - ld [rSB], a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - ld c, $3 - call DelayFrames - xor a - ld [rSB], a - ld [hSerialReceive], a - ld [rSC], a - ld c, $3 - call DelayFrames - ld a, -1 - ld [$ffcb], a - ld a, [rIF] - push af - xor a - ld [rIF], a - ld a, $f - ld [rIE], a - pop af - ld [rIF], a - ld hl, wcf5b - xor a - ld [hli], a - ld [hl], a - ld [hVBlank], a - ld [wLinkMode], a - ret -; 29ce8 - -Special_SetBitsForLinkTradeRequest: ; 29ce8 - ld a, $1 - ld [wcf56], a - ld [wd265], a - ret -; 29cf1 - -Special_SetBitsForBattleRequest: ; 29cf1 - ld a, $2 - ld [wcf56], a - ld [wd265], a - ret -; 29cfa - -Special_SetBitsForTimeCapsuleRequest: ; 29cfa - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - xor a - ld [wcf56], a - ld [wd265], a - ret -; 29d11 - -Special_WaitForLinkedFriend: ; 29d11 - ld a, [wcf56] - and a - jr z, .asm_29d2f - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - call DelayFrame - call DelayFrame - call DelayFrame - -.asm_29d2f - ld a, $2 - ld [wcf5c], a - ld a, $ff - ld [wcf5b], a -.asm_29d39 - ld a, [$ffcb] - cp $2 - jr z, .asm_29d79 - cp $1 - jr z, .asm_29d79 - ld a, -1 - ld [$ffcb], a - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - ld a, [wcf5b] - dec a - ld [wcf5b], a - jr nz, .asm_29d68 - ld a, [wcf5c] - dec a - ld [wcf5c], a - jr z, .asm_29d8d - -.asm_29d68 - ld a, $1 - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - call DelayFrame - jr .asm_29d39 - -.asm_29d79 - call Function908 - call DelayFrame - call Function908 - ld c, $32 - call DelayFrames - ld a, $1 - ld [ScriptVar], a - ret - -.asm_29d8d - xor a - ld [ScriptVar], a - ret -; 29d92 - -Special_CheckLinkTimeout: ; 29d92 - ld a, $1 - ld [wcf56], a - ld hl, wcf5b - ld a, $3 - ld [hli], a - xor a - ld [hl], a - call WaitBGMap - ld a, $2 - ld [hVBlank], a - call DelayFrame - call DelayFrame - call Function29e0c - xor a - ld [hVBlank], a - ld a, [ScriptVar] - and a - ret nz - jp Function29f04 -; 29dba - -Function29dba: ; 29dba - ld a, $5 - ld [wcf56], a - ld hl, wcf5b - ld a, $3 - ld [hli], a - xor a - ld [hl], a - call WaitBGMap - ld a, $2 - ld [hVBlank], a - call DelayFrame - call DelayFrame - call Function29e0c - ld a, [ScriptVar] - and a - jr z, .asm_29e08 - ld bc, rIE -.asm_29de0 - dec bc - ld a, b - or c - jr nz, .asm_29de0 - ld a, [wcf51] - cp $5 - jr nz, .asm_29e03 - ld a, $6 - ld [wcf56], a - ld hl, wcf5b - ld a, $1 - ld [hli], a - ld [hl], $32 - call Function29e0c - ld a, [wcf51] - cp $6 - jr z, .asm_29e08 - -.asm_29e03 - xor a - ld [ScriptVar], a - ret - -.asm_29e08 - xor a - ld [hVBlank], a - ret -; 29e0c - -Function29e0c: ; 29e0c - xor a - ld [$ffca], a - ld a, [wcf5b] - ld h, a - ld a, [wcf5c] - ld l, a - push hl - call Function29e3b - pop hl - jr nz, .asm_29e2f - call Function29e47 - call Function29e53 - call Function29e3b - jr nz, .asm_29e2f - call Function29e47 - xor a - jr .asm_29e31 - -.asm_29e2f - ld a, $1 - -.asm_29e31 - ld [ScriptVar], a - ld hl, wcf5b - xor a - ld [hli], a - ld [hl], a - ret -; 29e3b - -Function29e3b: ; 29e3b - call Function87d - ld hl, wcf5b - ld a, [hli] - inc a - ret nz - ld a, [hl] - inc a - ret -; 29e47 - -Function29e47: ; 29e47 - ld b, $a -.asm_29e49 - call DelayFrame - call Function908 - dec b - jr nz, .asm_29e49 - ret -; 29e53 - -Function29e53: ; 29e53 - dec h - srl h - rr l - srl h - rr l - inc h - ld a, h - ld [wcf5b], a - ld a, l - ld [wcf5c], a - ret -; 29e66 - -Special_TryQuickSave: ; 29e66 - ld a, [wd265] - push af - callba Function14ab2 - ld a, $1 - jr nc, .asm_29e75 - xor a - -.asm_29e75 - ld [ScriptVar], a - ld c, $1e - call DelayFrames - pop af - ld [wd265], a - ret -; 29e82 +INCLUDE "engine/link.asm" -Special_CheckBothSelectedSameRoom: ; 29e82 - ld a, [wd265] - call Function29f17 - push af - call Function908 - call DelayFrame - call Function908 - pop af - ld b, a - ld a, [wd265] - cp b - jr nz, .asm_29eaa - ld a, [wd265] - inc a - ld [wLinkMode], a - xor a - ld [hVBlank], a - ld a, $1 - ld [ScriptVar], a - ret - -.asm_29eaa - xor a - ld [ScriptVar], a - ret -; 29eaf - -Special_TimeCapsule: ; 29eaf - ld a, LINK_TIMECAPSULE - ld [wLinkMode], a - call DisableSpriteUpdates - callab LinkCommunications - call EnableSpriteUpdates - xor a - ld [hVBlank], a - ret -; 29ec4 - -Special_TradeCenter: ; 29ec4 - ld a, LINK_TRADECENTER - ld [wLinkMode], a - call DisableSpriteUpdates - callab LinkCommunications - call EnableSpriteUpdates - xor a - ld [hVBlank], a - ret -; 29ed9 - -Special_Colosseum: ; 29ed9 - ld a, LINK_COLOSSEUM - ld [wLinkMode], a - call DisableSpriteUpdates - callab LinkCommunications - call EnableSpriteUpdates - xor a - ld [hVBlank], a - ret -; 29eee - -Special_CloseLink: ; 29eee - xor a - ld [wLinkMode], a - ld c, $3 - call DelayFrames - jp Function29f04 -; 29efa - -Special_FailedLinkToPast: ; 29efa - ld c, $28 - call DelayFrames - ld a, $e - jp Function29f17 -; 29f04 - -Function29f04: ; 29f04 - ld c, $3 - call DelayFrames - ld a, -1 - ld [$ffcb], a - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld [rSC], a - ret -; 29f17 - -Function29f17: ; 29f17 - add $d0 - ld [wcf56], a - ld [wcf57], a - ld a, $2 - ld [hVBlank], a - call DelayFrame - call DelayFrame -.asm_29f29 - call Function83b - ld a, [wcf51] - ld b, a - and $f0 - cp $d0 - jr z, .asm_29f40 - ld a, [wcf52] - ld b, a - and $f0 - cp $d0 - jr nz, .asm_29f29 - -.asm_29f40 - xor a - ld [hVBlank], a - ld a, b - and $f - ret -; 29f47 - -Special_CableClubCheckWhichChris: ; 29f47 - ld a, [$ffcb] - cp $1 - ld a, $1 - jr z, .yes - dec a - -.yes - ld [ScriptVar], a - ret -; 29f54 - -GFX_29f54: ; 29f54 -INCBIN "gfx/unknown/029f54.2bpp" -; 29fe4 - -Function29fe4: ; 29fe4 +Function29fe4: ; unreferenced ld a, $0 call GetSRAMBank ld d, $0 @@ -31385,30 +18142,27 @@ Function29fe4: ; 29fe4 LoadWildMonData: ; 29ff8 call _GrassWildmonLookup - jr c, .asm_2a006 + jr c, .copy ld hl, wd25a xor a -rept 2 ld [hli], a -endr + ld [hli], a ld [hl], a - jr .asm_2a011 -.asm_2a006 -rept 2 + jr .done_copy +.copy + inc hl inc hl -endr ld de, wd25a ld bc, $3 call CopyBytes -.asm_2a011 +.done_copy call _WaterWildmonLookup ld a, $0 - jr nc, .asm_2a01b -rept 2 + jr nc, .no_copy + inc hl inc hl -endr ld a, [hl] -.asm_2a01b +.no_copy ld [wd25d], a ret @@ -31419,7 +18173,7 @@ Function2a01f: ; 2a01f call ByteFill ld a, e and a - jr nz, .asm_2a043 + jr nz, .kanto decoord 0, 0 ld hl, JohtoGrassWildMons call Function2a052 @@ -31429,7 +18183,7 @@ Function2a01f: ; 2a01f call Function2a0cf ret -.asm_2a043 +.kanto decoord 0, 0 ld hl, KantoGrassWildMons call Function2a052 @@ -31438,7 +18192,7 @@ Function2a01f: ; 2a01f ; 2a052 Function2a052: ; 2a052 -.asm_2a052 +.loop ld a, [hl] cp $ff ret z @@ -31452,19 +18206,19 @@ rept 3 endr ld a, $15 call Function2a088 - jr nc, .asm_2a067 + jr nc, .next ld [de], a inc de -.asm_2a067 +.next pop hl - ld bc, $002f + ld bc, $2f add hl, bc - jr .asm_2a052 + jr .loop ; 2a06e Function2a06e: ; 2a06e -.asm_2a06e +.loop ld a, [hl] cp $ff ret z @@ -31476,34 +18230,34 @@ Function2a06e: ; 2a06e inc hl ld a, $3 call Function2a088 - jr nc, .asm_2a081 + jr nc, .next ld [de], a inc de -.asm_2a081 +.next pop hl - ld bc, $0009 + ld bc, 9 add hl, bc - jr .asm_2a06e + jr .loop ; 2a088 Function2a088: ; 2a088 inc hl -.asm_2a089 +.loop push af ld a, [wd265] cp [hl] - jr z, .asm_2a098 + jr z, .found rept 2 inc hl endr pop af dec a - jr nz, .asm_2a089 + jr nz, .loop and a ret -.asm_2a098 +.found pop af jp Function2a09c ; 2a09c @@ -31514,20 +18268,20 @@ Function2a09c: ; 2a09c ld c, a hlcoord 0, 0 ld de, SCREEN_WIDTH * SCREEN_HEIGHT -.asm_2a0a7 +.loop ld a, [hli] cp c - jr z, .asm_2a0b4 + jr z, .found dec de ld a, e or d - jr nz, .asm_2a0a7 + jr nz, .loop ld a, c pop de scf ret -.asm_2a0b4 +.found pop de and a ret @@ -31631,7 +18385,7 @@ ApplyMusicEffectOnEncounterRate:: ; 2a124 ApplyCleanseTagEffectOnEncounterRate:: ; 2a138 ; Cleanse Tag halves encounter rate. ld hl, PartyMon1Item - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH ld a, [PartyCount] ld c, a .loop @@ -31768,7 +18522,7 @@ CheckRepelEffect:: ; 2a1df jr z, .encounter ; Get the first Pokemon in your party that isn't fainted. ld hl, PartyMon1HP - ld bc, PartyMon2 - PartyMon1 - 1 + ld bc, PARTYMON_STRUCT_LENGTH - 1 .loop ld a, [hli] or [hl] @@ -32445,60 +19199,60 @@ SwarmWaterWildMons: ; 0x2b92f INCLUDE "data/wild/swarm_water.asm" -Function2b930: ; 2b930 +DetermineLinkBattleResult: ; 2b930 callba UpdateEnemyMonInParty ld hl, PartyMon1HP - call Function2b995 + call .CountMonsRemaining push bc ld hl, OTPartyMon1HP - call Function2b995 + call .CountMonsRemaining ld a, c pop bc cp c - jr z, .asm_2b94c - jr c, .asm_2b97f - jr .asm_2b976 + jr z, .even_number_of_mons_remaining + jr c, .defeat + jr .victory -.asm_2b94c - call Function2b9e1 - jr z, .asm_2b98a +.even_number_of_mons_remaining + call .BothSides_CheckNumberMonsAtFullHealth + jr z, .drawn ld a, e cp $1 - jr z, .asm_2b976 + jr z, .victory cp $2 - jr z, .asm_2b97f + jr z, .defeat ld hl, PartyMon1HP - call Function2b9a6 + call .CalcPercentHPRemaining push de ld hl, OTPartyMon1HP - call Function2b9a6 + call .CalcPercentHPRemaining pop hl ld a, d cp h - jr c, .asm_2b976 - jr z, .asm_2b970 - jr .asm_2b97f + jr c, .victory + jr z, .compare_lo + jr .defeat -.asm_2b970 +.compare_lo ld a, e cp l - jr z, .asm_2b98a - jr nc, .asm_2b97f + jr z, .drawn + jr nc, .defeat -.asm_2b976 +.victory ld a, [wBattleResult] and $f0 ld [wBattleResult], a ret -.asm_2b97f +.defeat ld a, [wBattleResult] and $f0 add $1 ld [wBattleResult], a ret -.asm_2b98a +.drawn ld a, [wBattleResult] and $f0 add $2 @@ -32506,30 +19260,30 @@ Function2b930: ; 2b930 ret ; 2b995 -Function2b995: ; 2b995 - ld c, $0 - ld b, $3 - ld de, $002f -.asm_2b99c +.CountMonsRemaining: ; 2b995 + ld c, 0 + ld b, 3 + ld de, PARTYMON_STRUCT_LENGTH - 1 +.loop ld a, [hli] or [hl] - jr nz, .asm_2b9a1 + jr nz, .not_fainted inc c -.asm_2b9a1 +.not_fainted add hl, de dec b - jr nz, .asm_2b99c + jr nz, .loop ret ; 2b9a6 -Function2b9a6: ; 2b9a6 +.CalcPercentHPRemaining: ; 2b9a6 ld de, 0 ld c, $3 -.asm_2b9ab +.loop2 ld a, [hli] or [hl] - jr z, .asm_2b9d7 + jr z, .next dec hl xor a ld [hDividend + 0], a @@ -32557,45 +19311,45 @@ Function2b9a6: ; 2b9a6 ld d, a dec hl -.asm_2b9d7 +.next push de - ld de, $002f + ld de, $2f add hl, de pop de dec c - jr nz, .asm_2b9ab + jr nz, .loop2 ret ; 2b9e1 -Function2b9e1: ; 2b9e1 +.BothSides_CheckNumberMonsAtFullHealth: ; 2b9e1 ld hl, PartyMon1HP - call Function2ba01 - jr nz, .asm_2b9f2 + call .CheckFaintedOrFullHealth + jr nz, .finish ; we have a pokemon that's neither fainted nor at full health ld hl, OTPartyMon1HP - call Function2ba01 + call .CheckFaintedOrFullHealth ld e, $1 ret -.asm_2b9f2 +.finish ld hl, OTPartyMon1HP - call Function2ba01 + call .CheckFaintedOrFullHealth ld e, $0 - ret nz + ret nz ; we both have pokemon that are neither fainted nor at full health ld e, $2 ld a, $1 and a ret ; 2ba01 -Function2ba01: ; 2ba01 - ld d, $3 -.asm_2ba03 +.CheckFaintedOrFullHealth: ; 2ba01 + ld d, 3 +.loop3 ld a, [hli] ld b, a ld a, [hli] ld c, a or b - jr z, .asm_2ba10 + jr z, .fainted_or_full_health ld a, [hli] cp b ret nz @@ -32603,13 +19357,13 @@ Function2ba01: ; 2ba01 cp c ret nz -.asm_2ba10 +.fainted_or_full_health push de - ld de, $002e + ld de, PARTYMON_STRUCT_LENGTH - 2 add hl, de pop de dec d - jr nz, .asm_2ba03 + jr nz, .loop3 ret ; 2ba1a @@ -32729,7 +19483,7 @@ endr .asm_2c08e ld a, b ld [de], a - ld bc, $0032 + ld bc, $32 add hl, bc ret ; 2c095 @@ -32861,7 +19615,7 @@ Function2c165: ; 2c165 ld de, GFX_2c172 ld hl, VTiles0 tile $31 lb bc, BANK(GFX_2c172), 4 - call Functiondc9 + call Get2bpp_2 ret ; 2c172 @@ -32870,8 +19624,8 @@ INCBIN "gfx/battle/balls.2bpp" ; 2c1b2 _ShowLinkBattleParticipants: ; 2c1b2 - call WhiteBGMap - call Functione5f + call ClearBGPalettes + call LoadFontsExtra hlcoord 2, 3 ld b, 9 ld c, 14 @@ -33110,7 +19864,7 @@ AI_Redundant: ; 2c41a jr .NotRedundant .Attract: ; 2c4fe - callba Function377f5 + callba CheckOppositeGender jr c, .Redundant ld a, [PlayerSubStatus1] bit SUBSTATUS_IN_LOVE, a @@ -33293,7 +20047,7 @@ Function2c6ac: ; 2c6ac (b:46ac) pop de ret -MysteryGiftGetItem: ; 2c708 (b:4708) +MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708) ld a, c cp $25 ; 37 jr nc, Function2c722 @@ -33478,7 +20232,7 @@ Function2c7fb: ; 2c7fb ld de, wd066 ld bc, $c call CopyBytes - call WhiteBGMap + call ClearBGPalettes Function2c80a: ; 2c80a callba Function5004f @@ -33599,7 +20353,7 @@ UnknownText_0x2c8ce: ; 0x2c8ce Function2c8d3: ; 2c8d3 (b:48d3) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function2c9e2 ld a, $2 ld [wcfa1], a @@ -33625,7 +20379,7 @@ Function2c8d3: ; 2c8d3 (b:48d3) ld [wcfa8], a ld a, [wTMHMPocketCursor] inc a - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1 ld [wcfaa], a jr Function2c946 @@ -33634,11 +20388,11 @@ Function2c915: ; 2c915 (b:4915) call Function2c9e2 call Function1bc9 ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [wTMHMPocketCursor], a xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, [wcfa6] bit 7, a jp nz, Function2c9b1 @@ -33674,7 +20428,7 @@ Function2c946: ; 2c946 (b:4946) Function2c974: ; 2c974 (b:4974) call Function2cad6 call Function2cb2a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld b, a ld a, [wd0e2] @@ -33686,7 +20440,7 @@ Function2c974: ; 2c974 (b:4974) Function2c98a: ; 2c98a (b:498a) call Function2cab5 - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a .asm_2c991 inc c @@ -34008,7 +20762,7 @@ Function2ed44: ; 2ed44 ld hl, PartyMon1PokerusStatus ld a, [PartyCount] ld b, a - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH .loopMons ld a, [hl] and $f @@ -34134,7 +20888,7 @@ ConvertBerriesToBerryJuice: ; 2ede6 ld a, [hl] cp SHUCKLE jr nz, .loopMon - ld bc, PartyMon1Item - PartyMon1Species + ld bc, MON_ITEM add hl, bc ld a, [hl] cp BERRY @@ -34142,7 +20896,7 @@ ConvertBerriesToBerryJuice: ; 2ede6 .loopMon pop hl - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop af dec a @@ -34175,11 +20929,11 @@ ShowLinkBattleParticipants: ; 2ee18 FindFirstAliveMon: ; 2ee2f xor a - ld [$ffde], a + ld [hMapAnims], a call DelayFrame ld b, 6 ld hl, PartyMon1HP - ld de, PartyMon2 - PartyMon1 - 1 + ld de, PARTYMON_STRUCT_LENGTH - 1 .loop ld a, [hli] @@ -34190,12 +20944,12 @@ FindFirstAliveMon: ; 2ee2f jr nz, .loop .okay - ld de, PartyMon1Level - PartyMon1HP + ld de, MON_LEVEL - MON_HP add hl, de ld a, [hl] ld [BattleMonLevel], a predef Predef_StartBattle - callba Function3ed9f + callba _LoadBattleFontsHPBar ld a, 1 ld [hBGMapMode], a call ClearSprites @@ -34204,7 +20958,7 @@ FindFirstAliveMon: ; 2ee2f ld [hBGMapMode], a ld [hWY], a ld [rWY], a - ld [$ffde], a + ld [hMapAnims], a ret ; 2ee6c @@ -34326,9 +21080,9 @@ endr ld [wd0e4], a ld [CriticalHit], a ld [BattleMonSpecies], a - ld [wc664], a + ld [wBattleParticipantsNotFainted], a ld [CurBattleMon], a - ld [wd232], a + ld [wForcedSwitch], a ld [TimeOfDayPal], a ld [PlayerTurnsTaken], a ld [EnemyTurnsTaken], a @@ -34366,7 +21120,7 @@ endr FillBox: ; 2ef6e ; Fill wc2c6-aligned box width b height c -; with iterating tile starting from $ffad at hl. +; with iterating tile starting from hFillBox at hl. ; Predef $13 ld de, 20 @@ -34375,7 +21129,7 @@ FillBox: ; 2ef6e and a jr nz, .left - ld a, [$ffad] + ld a, [hFillBox] .x1 push bc push hl @@ -34402,7 +21156,7 @@ FillBox: ; 2ef6e add hl, bc pop bc - ld a, [$ffad] + ld a, [hFillBox] .x2 push bc push hl @@ -34498,7 +21252,7 @@ Function3957b: ; 3957b ld hl, TrainerClassAttributes ld bc, NUM_TRAINER_ATTRIBUTES call AddNTimes - ld de, wc650 + ld de, wEnemyTrainerItem1 ld a, [hli] ld [de], a inc de @@ -34644,7 +21398,7 @@ TrainerType2: ; 39806 ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34663,14 +21417,14 @@ TrainerType2: ; 39806 ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l - ld hl, OTPartyMon1PP - OTPartyMon1 + ld hl, MON_PP add hl, de push hl - ld hl, OTPartyMon1Moves - OTPartyMon1 + ld hl, MON_MOVES add hl, de pop de @@ -34720,7 +21474,7 @@ TrainerType3: ; 39871 ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Item - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34751,7 +21505,7 @@ TrainerType4: ; 3989d ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Item - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34764,7 +21518,7 @@ TrainerType4: ; 3989d ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Moves - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34783,15 +21537,15 @@ TrainerType4: ; 3989d ld a, [OTPartyCount] dec a ld hl, OTPartyMon1 - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l - ld hl, OTPartyMon1PP - OTPartyMon1 + ld hl, MON_PP add hl, de push hl - ld hl, OTPartyMon1Moves - OTPartyMon1 + ld hl, MON_MOVES add hl, de pop de @@ -34937,8 +21691,8 @@ Function41a7f: ; 41a7f callba Function1de247 call Function41af7 call DisableLCD - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra call Function414b7 call Function4147b ld a, [wd265] @@ -34948,7 +21702,7 @@ Function41a7f: ; 41a7f hlcoord 0, 17 ld [hl], $3b inc hl - ld bc, $0013 + ld bc, $13 ld a, " " call ByteFill callba Function4424d @@ -34967,20 +21721,20 @@ Function41a7f: ; 41a7f Function41ad7: ; 41ad7 (10:5ad7) ld a, $3 - ld [hBGMapMode], a ; $ff00+$d4 - ld c, $4 + ld [hBGMapMode], a + ld c, 4 call DelayFrames ret Function41ae1: ; 41ae1 (10:5ae1) ld a, $4 - ld [hBGMapMode], a ; $ff00+$d4 - ld c, $4 + ld [hBGMapMode], a + ld c, 4 call DelayFrames ret Function41aeb: ; 41aeb (10:5aeb) - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jr z, .asm_41af3 call Function41ae1 @@ -35272,11 +22026,11 @@ endr ld a, [CurPartyMon] ld hl, PartyMons - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld e, l ld d, h - ld bc, PartyMon1MaxHP - PartyMon1 + ld bc, MON_MAXHP add hl, bc ld a, [hli] ld b, a @@ -35297,7 +22051,7 @@ endr ld [hl], a ld hl, TempMonSpecies - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes ld a, [CurSpecies] @@ -35400,7 +22154,7 @@ Function42461: ; 42461 push hl ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [hl] cp EVERSTONE @@ -35467,7 +22221,7 @@ endr ld d, a ld hl, PartyMon1Moves ld a, [CurPartyMon] - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld b, NUM_MOVES @@ -35538,7 +22292,7 @@ FillMoves: ; 424e1 ld a, [Buffer1] and a jr z, .CheckMove - ld a, [DefaultFlypoint] + ld a, [wd002] cp b jr nc, .GetMove @@ -35590,7 +22344,7 @@ FillMoves: ; 424e1 jr z, .NextMove push hl ld a, [hl] - ld hl, PartyMon1PP - PartyMon1Moves + ld hl, MON_PP - MON_MOVES add hl, de push hl dec a @@ -35613,12 +22367,12 @@ FillMoves: ; 424e1 ShiftMoves: ; 4256e ld c, NUM_MOVES - 1 -.asm_42570 +.loop inc de ld a, [de] ld [hli], a dec c - jr nz, .asm_42570 + jr nz, .loop ret ; 42577 @@ -35638,7 +22392,7 @@ GetPreEvolution: ; 42581 ; if a pre-evolution is found. ld c, 0 -.asm_42583 +.loop ; For each Pokemon... ld hl, EvosAttacksPointers ld b, 0 rept 2 @@ -35647,33 +22401,33 @@ endr ld a, [hli] ld h, [hl] ld l, a -.asm_4258d +.loop2 ; For each evolution... ld a, [hli] and a - jr z, .asm_425a2 - cp EVOLVE_STAT - jr nz, .asm_42596 + jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies. + cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison. + jr nz, .not_tyrogue inc hl -.asm_42596 +.not_tyrogue inc hl ld a, [CurPartySpecies] cp [hl] - jr z, .asm_425aa + jr z, .found_preevo inc hl ld a, [hl] and a - jr nz, .asm_4258d + jr nz, .loop2 -.asm_425a2 +.no_evolve inc c ld a, c cp NUM_POKEMON - jr c, .asm_42583 + jr c, .loop and a ret -.asm_425aa +.found_preevo inc c ld a, c ld [CurPartySpecies], a @@ -35760,14 +22514,14 @@ endr ; so we have always the same AI, regardless of the loaded class of trainer ld a, [InBattleTowerBattle] bit 0, a - jr nz, .asm_4412f + jr nz, .battle_tower_skip ld a, [TrainerClass] dec a ld bc, 7 ; Trainer2AI - Trainer1AI call AddNTimes -.asm_4412f +.battle_tower_skip lb bc, CHECK_FLAG, 0 push bc push hl @@ -35838,40 +22592,40 @@ endr .PickLowestScoreMoves ld a, c -.asm_44175 +.move_loop inc [hl] dec hl inc a cp NUM_MOVES + 1 - jr nz, .asm_44175 + jr nz, .move_loop ld hl, Buffer1 ld de, EnemyMonMoves ld c, NUM_MOVES ; Give a score of 0 to a blank move -.asm_44184 +.loop2 ld a, [de] and a - jr nz, .asm_44189 + jr nz, .skip_load ld [hl], a ; Disregard the move if its score is not 1 -.asm_44189 +.skip_load ld a, [hl] dec a - jr z, .asm_44191 + jr z, .keep xor a ld [hli], a - jr .asm_44193 + jr .after_toss -.asm_44191 +.keep ld a, [de] ld [hli], a -.asm_44193 +.after_toss inc de dec c - jr nz, .asm_44184 + jr nz, .loop2 ; Randomly choose one of the moves with a score of 1 .ChooseMove @@ -35939,7 +22693,7 @@ Function441cf: ; 441cf xor a ld [wc7db], a call Function44207 - ld c, $20 + ld c, 32 call DelayFrames ret ; 441fc @@ -36077,7 +22831,7 @@ endr hlcoord 2, 11 call ClearBox hlcoord 1, 10 - ld bc, $0013 + ld bc, $13 ld a, $61 call ByteFill hlcoord 1, 9 @@ -36104,7 +22858,7 @@ endr hlcoord 2, 11 call ClearBox hlcoord 1, 10 - ld bc, $0013 + ld bc, $13 ld a, $61 call ByteFill hlcoord 1, 9 @@ -36203,7 +22957,7 @@ INCLUDE "data/pokedex/entry_pointers.asm" Function4456e: ; 4456e - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld d, [hl] callba ItemIsMail @@ -36211,25 +22965,25 @@ Function4456e: ; 4456e call Function44648 cp $a jr nc, .asm_445be - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, SCRATCHMON_STRUCT_LENGTH ld hl, s0_a835 call AddNTimes ld d, h ld e, l ld a, [CurPartyMon] - ld bc, PartyMon1StatsEnd - PartyMon1Item - ld hl, s0_a600 + ld bc, SCRATCHMON_STRUCT_LENGTH + ld hl, sPartyScratch1 call AddNTimes push hl ld a, BANK(s0_a834) call GetSRAMBank - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop hl xor a - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, SCRATCHMON_STRUCT_LENGTH call ByteFill - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld [hl], $0 ld hl, s0_a834 @@ -36249,7 +23003,7 @@ Function445c0: ; 445c0 (11:45c0) ld a, b push bc ld hl, s0_a835 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes push hl add hl, bc @@ -36260,7 +23014,7 @@ Function445c0: ; 445c0 (11:45c0) cp $9 jr z, .done push bc - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop bc inc b @@ -36269,7 +23023,7 @@ Function445c0: ; 445c0 (11:45c0) ld h, d ld l, e xor a - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, SCRATCHMON_STRUCT_LENGTH call ByteFill ld hl, s0_a834 dec [hl] @@ -36279,7 +23033,7 @@ Function445c0: ; 445c0 (11:45c0) ReadMailMessage: ; 445f4 ld a, b ld hl, s0_a835 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -36291,27 +23045,27 @@ Function44607: ; 44607 call GetSRAMBank push bc ld a, b - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, SCRATCHMON_STRUCT_LENGTH ld hl, s0_a835 call AddNTimes push hl ld a, [CurPartyMon] - ld bc, PartyMon1StatsEnd - PartyMon1Item - ld hl, s0_a600 + ld bc, SCRATCHMON_STRUCT_LENGTH + ld hl, sPartyScratch1 call AddNTimes ld d, h ld e, l pop hl push hl - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop hl - ld de, PartyMon1StatsEnd - PartyMon1Moves + ld de, PARTYMON_STRUCT_LENGTH - MON_MOVES add hl, de ld d, [hl] ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld [hl], d call CloseSRAM @@ -36335,17 +23089,17 @@ Function44654:: ; 44654 jr c, .asm_446c6 ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, [hl] callba ItemIsMail ld a, $3 jr nc, .asm_446c6 - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank ld a, [CurPartyMon] - ld hl, s0_a600 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld hl, sPartyScratch1 + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -36376,7 +23130,7 @@ Function44654:: ; 44654 ld a, $4 jr c, .asm_446c1 xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a callba Functione039 ld a, $1 @@ -36399,33 +23153,33 @@ GivePokeItem:: ; 446cc push af push bc ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc ld [hl], b pop af push bc push af - ld hl, s0_a600 - ld bc, $002f + ld hl, sPartyScratch1 + ld bc, $2f call AddNTimes ld d, h ld e, l ld hl, wd002 - ld bc, $0021 - ld a, BANK(s0_a600) + ld bc, $21 + ld a, BANK(sPartyScratch1) call GetSRAMBank call CopyBytes pop af push af ld hl, PartyMonOT - ld bc, $000b + ld bc, NAME_LENGTH call AddNTimes - ld bc, $000a + ld bc, $a call CopyBytes pop af ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [hli] ld [de], a @@ -36443,43 +23197,43 @@ GivePokeItem:: ; 446cc ; 44725 -Function44725: ; 44725 - ld a, BANK(s0_a600) +BackupScratchmons: ; 44725 + ld a, BANK(sPartyScratch1) call GetSRAMBank - ld hl, s0_a600 - ld de, s0_a71a - ld bc, $11a + ld hl, sPartyScratch1 + ld de, sPartyScratch2 + ld bc, 6 * SCRATCHMON_STRUCT_LENGTH call CopyBytes ld hl, s0_a834 ld de, s0_aa0b - ld bc, $1d7 + ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH call CopyBytes jp CloseSRAM ; 44745 -Function44745: ; 44745 (11:4745) - ld a, BANK(s0_a600) +RestoreScratchmons: ; 44745 (11:4745) + ld a, BANK(sPartyScratch1) call GetSRAMBank - ld hl, s0_a71a - ld de, s0_a600 - ld bc, $11a + ld hl, sPartyScratch2 + ld de, sPartyScratch1 + ld bc, 6 * SCRATCHMON_STRUCT_LENGTH call CopyBytes ld hl, s0_aa0b ld de, s0_a834 - ld bc, $1d7 + ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH call CopyBytes jp CloseSRAM -Function44765: ; 44765 (11:4765) - ld a, BANK(s0_a600) +DeleteScratchmons: ; 44765 (11:4765) + ld a, BANK(sPartyScratch1) call GetSRAMBank xor a - ld hl, s0_a600 - ld bc, $11a + ld hl, sPartyScratch1 + ld bc, 6 * SCRATCHMON_STRUCT_LENGTH call ByteFill xor a ld hl, s0_a834 - ld bc, $1d7 + ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH call ByteFill jp CloseSRAM ; 44781 (11:4781) @@ -36499,7 +23253,7 @@ Function44781: ; 44781 pop de pop hl ret c - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc dec e jr nz, .asm_4478b @@ -36512,7 +23266,7 @@ Function44781: ; 44781 _KrisMailBoxMenu: ; 0x447a0 call InitMail jr z, .nomail - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader call Function44806 jp WriteBackup @@ -36556,16 +23310,16 @@ InitMail: ; 0x447b9 Function447da: ; 0x447da dec a - ld hl, s0_a835 + $21 - ld bc, $002f + ld hl, s0_a835 + MON_HP - 1 + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld a, BANK(s0_a834) call GetSRAMBank ld de, StringBuffer2 push de - ld bc, $a + ld bc, NAME_LENGTH - 1 call CopyBytes - ld a, $50 + ld a, "@" ld [de], a call CloseSRAM pop de @@ -36597,10 +23351,10 @@ Function44806: ; 0x44806 ld [wMenuCursorBuffer], a ld a, [OBPals + 8 * 6] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [OBPals + 8 * 6], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0f1], a ld a, [wcf73] cp $2 @@ -36619,7 +23373,7 @@ Function4484a: ; 0x4484a call InterpretMenu2 call ExitMenu jr c, .asm_44860 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld hl, .JumpTable rst JumpTable @@ -36687,7 +23441,7 @@ Function4484a: ; 0x4484a call GetSRAMBank pop af ld hl, s0_a835 + $2e - ld bc, $002f + ld bc, $2f call AddNTimes ld a, [hl] ld [CurItem], a @@ -36698,7 +23452,7 @@ Function4484a: ; 0x4484a call FadeToMenu xor a ld [PartyMenuActionText], a - call WhiteBGMap + call ClearBGPalettes .asm_448dc callba Function5004f callba Function50405 @@ -36713,7 +23467,7 @@ Function4484a: ; 0x4484a ld a, [CurPartySpecies] cp EGG jr z, .asm_44923 - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld a, [hl] and a @@ -36798,7 +23552,7 @@ Function48000: ; 48000 ld [wd476], a ld [wd477], a ld [wd478], a - ld [DefaultFlypoint], a + ld [wd002], a ld [wd003], a ; could have done "ld a, [wd479] \ and -4", saved four operations ld a, [wd479] @@ -36814,13 +23568,13 @@ Function48000: ; 48000 Function4802f: ; 4802f (12:402f) xor a set 6, a - ld [DefaultFlypoint], a + ld [wd002], a ld hl, wd003 set 0, [hl] ld a, c and a call z, Function48000 - call WhiteBGMap + call ClearBGPalettes call Function48d3d ld a, [wd479] bit 1, a @@ -36833,7 +23587,7 @@ Function4802f: ; 4802f (12:402f) ld [wd003], a .asm_4805a call Function486bf - call Functione5f + call LoadFontsExtra ld de, GFX_488c3 ld hl, VTiles2 tile $10 lb bc, BANK(GFX_488c3), 1 @@ -36843,8 +23597,8 @@ Function4802f: ; 4802f (12:402f) lb bc, BANK(GFX_488cb), 1 call Request1bpp call Function4a3a7 - call WhiteBGMap - ld a, [DefaultFlypoint] + call ClearBGPalettes + ld a, [wd002] bit 6, a jr z, .asm_4808a call Function48689 @@ -36856,11 +23610,11 @@ Function4802f: ; 4802f (12:402f) ld [MusicFadeIDLo], a ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 ld [MusicFadeIDHi], a - ld c, $14 + ld c, 20 call DelayFrames ld b, $1 call Function4930f - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $2 ld c, $14 @@ -36894,7 +23648,7 @@ Function4802f: ; 4802f (12:402f) hlcoord 2, 12 ld de, String_4849e call PlaceString - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_48113 ld a, [PlayerGender] @@ -36928,14 +23682,14 @@ Function4802f: ; 4802f (12:402f) call Function3200 call SetPalettes call Function1bc9 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc jr asm_4815f Function48157: ; 48157 (12:4157) call Function1bd3 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc @@ -36943,7 +23697,7 @@ asm_4815f: ; 4815f (12:415f) bit 0, a jp nz, Function4820d ld b, a - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_48177 ld hl, wd479 @@ -36954,7 +23708,7 @@ asm_4815f: ; 4815f (12:415f) .asm_48177 jp Function48272 .asm_4817a - call WhiteBGMap + call ClearBGPalettes call Function48d30 pop bc call ClearTileMap @@ -36980,7 +23734,7 @@ Function48187: ; 48187 (12:4187) call PlaceString pop de .asm_481ad - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_481c1 bit 0, d @@ -37028,10 +23782,10 @@ String_48202: ; 48202 Function4820d: ; 4820d (12:420d) call Function1bee - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] push af - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_4821f pop af @@ -37049,7 +23803,7 @@ Function4820d: ; 4820d (12:420d) jp z, Function488d3 ld a, $2 call Function1ff8 - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_4825c jr .asm_4825c @@ -37063,11 +23817,11 @@ Function4820d: ; 4820d (12:420d) hlcoord 1, 16 call PlaceString call WaitBGMap - ld c, $30 + ld c, 48 call DelayFrames .asm_4825c - call WhiteBGMap + call ClearBGPalettes call Function48d30 pop bc call ClearTileMap @@ -37119,7 +23873,7 @@ asm_4828d: ; 4828d (12:428d) call ExitMenu bit 0, a jp z, Function4840c - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] ld hl, Strings_484fb cp $1 @@ -37174,7 +23928,7 @@ Function48304: ; 48304 (12:4304) ld [wd0e4], a callba Function104148 .asm_48348 - call Function350c + call HandleScrollingMenu ld de, $629 call Function48383 jr c, .asm_48348 @@ -37189,7 +23943,7 @@ Function48304: ; 48304 (12:4304) call ExitMenu call ExitMenu pop af - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] bit 0, a jr z, .asm_48377 call Function483bb @@ -37228,7 +23982,7 @@ Function48383: ; 48383 (12:4383) ld [wd0e4], a jr .asm_483af .asm_483af - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] ld [wMenuCursorBuffer], a scf @@ -37306,9 +24060,9 @@ Function4840c: ; 4840c (12:440c) call PlaceString call Function486bf pop bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hl], b - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_48437 ld b, $9 @@ -37475,11 +24229,11 @@ Wakayama: db "わかやまけん@" ; Wakayama ; 48689 Function48689: ; 48689 (12:4689) - ld c, $7 + ld c, 7 call DelayFrames ld b, $1 call Function4930f - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $4 ld c, $14 @@ -37501,7 +24255,7 @@ Function48689: ; 48689 (12:4689) Function486bf: ; 486bf (12:46bf) ld hl, wcfa1 - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_486ce ld a, $4 @@ -37513,7 +24267,7 @@ Function486bf: ; 486bf (12:46bf) .asm_486d1 ld a, $1 ld [hli], a - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_486e7 call Function48725 @@ -37549,7 +24303,7 @@ Function486bf: ; 486bf (12:46bf) add $40 add $80 push af - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_4871a pop af @@ -37657,7 +24411,7 @@ Function4876f: ; 4876f (12:476f) .asm_487b7 hlcoord 11, 6 call Function487ec - ld c, $a + ld c, 10 call DelayFrames ld a, [wd473] push af @@ -37709,10 +24463,10 @@ String_4880d: ; 4880d ; 4880e Function4880e: ; 4880e (12:480e) - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and A_BUTTON jp nz, Function488b9 - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and B_BUTTON jp nz, Function488b4 ld hl, hJoyLast @@ -37861,17 +24615,17 @@ Function488d3: ; 488d3 (12:48d3) asm_48922: ; 48922 (12:4922) push bc call JoyTextDelay - ld a, [hJoyDown] ; $ff00+$a8 + ld a, [hJoyDown] and a jp z, Function4896e bit 0, a jp nz, Function4896e bit 1, a jp nz, Function4896e - ld a, [DefaultFlypoint] + ld a, [wd002] and %11001111 res 7, a - ld [DefaultFlypoint], a + ld [wd002], a pop bc inc b ld a, b @@ -37887,7 +24641,7 @@ asm_48922: ; 48922 (12:4922) ld a, b cp $4 jr nz, asm_48972 - ld c, $a + ld c, 10 call DelayFrames jr asm_48972 ; 4895a (12:495a) @@ -37922,10 +24676,10 @@ asm_48972: ; 48972 (12:4972) jr z, .asm_48994 cp $f jr nz, .asm_48988 - ld a, [DefaultFlypoint] + ld a, [wd002] set 7, a and $cf - ld [DefaultFlypoint], a + ld [wd002], a .asm_48988 hlcoord 11, 10 ld b, $0 @@ -38034,7 +24788,7 @@ Function48a3a: ; 48a3a (12:4a3a) ld a, $b ld [wcfa2], a ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a hlcoord 10, 8 ld b, $4 ld c, $8 @@ -38049,7 +24803,7 @@ Function48a3a: ; 48a3a (12:4a3a) pop af bit 1, a jp nz, Function48a9a - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .asm_48a98 ld a, [wd003] @@ -38084,10 +24838,10 @@ String_48aa1: ; 48aa1 Function48ab5: ; 48ab5 (12:4ab5) - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and A_BUTTON jp nz, Function48c0f - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and B_BUTTON jp nz, Function48c0d ld a, d @@ -38171,7 +24925,7 @@ Function48ab5: ; 48ab5 (12:4ab5) jr nz, .asm_48b9d hlcoord 11, 10 call Function489ea - ld a, [DefaultFlypoint] + ld a, [wd002] bit 7, a jr nz, .asm_48b51 .asm_48b51 @@ -38322,7 +25076,7 @@ Function48c0f: ; 48c0f (12:4c0f) ret Function48c11: ; 48c11 (12:4c11) - ld a, [DefaultFlypoint] + ld a, [wd002] bit 7, a jr z, .asm_48c20 ld a, d @@ -38332,30 +25086,30 @@ Function48c11: ; 48c11 (12:4c11) .asm_48c1e ld [hl], $7f .asm_48c20 - ld a, [DefaultFlypoint] + ld a, [wd002] swap a and $3 inc a cp b jr nz, .asm_48c40 - ld a, [DefaultFlypoint] + ld a, [wd002] bit 7, a jr z, .asm_48c3a res 7, a - ld [DefaultFlypoint], a + ld [wd002], a xor a jr .asm_48c40 .asm_48c3a set 7, a - ld [DefaultFlypoint], a + ld [wd002], a xor a .asm_48c40 swap a ld b, a - ld a, [DefaultFlypoint] + ld a, [wd002] and $cf or b - ld [DefaultFlypoint], a + ld [wd002], a ret Function48c4d: ; 48c4d (12:4c4d) @@ -38612,16 +25366,16 @@ Function48d4a: ; 48d4a (12:4d4a) Function48d94: ; 48d94 (12:4d94) xor a ld [hDividend + 0], a - ld [hDividend + 1], a ; $ff00+$b4 (aliases: hMultiplicand) + ld [hDividend + 1], a ld a, [hli] ld [hDividend + 0], a ld a, [hl] - ld [hDividend + 1], a ; $ff00+$b4 (aliases: hMultiplicand) + ld [hDividend + 1], a ld a, 100 - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) + ld [hDivisor], a ld b, 2 call Divide - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hDivisor] ld c, $a call SimpleDivide sla b @@ -38654,7 +25408,7 @@ InitGender: ; 48dcb (12:4dcb) call Function3200 call InterpretMenu2 call WriteBackup - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [PlayerGender], a ld c, 10 @@ -38690,11 +25444,11 @@ Function48e14: ; 48e14 (12:4e14) ld [MusicFadeIDLo], a ld a, $0 ld [MusicFadeIDHi], a - ld c, $8 + ld c, 8 call DelayFrames - call WhiteBGMap + call ClearBGPalettes call Function48000 - call Functione5f + call LoadFontsExtra hlcoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, $0 @@ -38707,7 +25461,7 @@ Function48e14: ; 48e14 (12:4e14) Function48e47: ; 48e47 (12:4e47) ld hl, Palette_48e5c - ld de, Unkn1Pals + ld de, wMapPals ld bc, $8 ld a, $5 call FarCopyWRAM @@ -38761,7 +25515,7 @@ INCBIN "gfx/misc/pack_f.2bpp" Function4925b: ; 4925b call FadeToMenu - call WhiteBGMap + call ClearBGPalettes call ClearScreen call DelayFrame ld b, $14 @@ -38869,7 +25623,7 @@ MenuDataHeader_0x4930a: ; 0x4930a db 17, 19 ; end coords ; 4930f -Function4930f: ; 4930f (12:530f) +Function4930f: ; 4930f (mobile) ld a, b cp $ff jr nz, .asm_49317 @@ -38925,15 +25679,15 @@ Function49346: ; 49346 (12:5346) ret Function49351: ; 49351 (12:5351) - ld de, Unkn1Pals + ld de, wMapPals ld hl, Palette_493e1 ld bc, $28 - ld a, $5 ; BANK(Unkn1Pals) + ld a, $5 ; BANK(wMapPals) call FarCopyWRAM - ld de, Unkn1Pals + $38 + ld de, wMapPals + $38 ld hl, Palette_49418 ld bc, $8 - ld a, $5 ; BANK(Unkn1Pals) + ld a, $5 ; BANK(wMapPals) call FarCopyWRAM ret @@ -38947,33 +25701,33 @@ Function4936e: ; 4936e (12:536e) Function49384: ; 49384 (12:5384) hlcoord 0, 0, AttrMap - ld bc, $401 + lb bc, 4, 1 ld a, $1 call Function49336 - ld bc, $201 + lb bc, 2, 1 ld a, $2 call Function49336 - ld bc, $601 + lb bc, 6, 1 ld a, $3 call Function49336 hlcoord 1, 0, AttrMap ld a, $1 - ld bc, $312 + lb bc, 3, 18 call Function49336 - ld bc, $212 + lb bc, 2, 18 ld a, $2 call Function49336 - ld bc, $c12 + lb bc, 12, 18 ld a, $3 call Function49336 hlcoord 19, 0, AttrMap - ld bc, $401 + lb bc, 4, 1 ld a, $1 call Function49336 - ld bc, $201 + lb bc, 2, 1 ld a, $2 call Function49336 - ld bc, $601 + lb bc, 6, 1 ld a, $3 call Function49336 hlcoord 0, 12, AttrMap @@ -39013,8 +25767,8 @@ Palette_493e1: ; 493e1 Function49409:: ; 49409 ld hl, Palette_49418 - ld de, Unkn1Pals + 8 * 7 - ld bc, $0008 + ld de, wMapPals + 8 * 7 + ld bc, 8 ld a, $5 call FarCopyWRAM ret @@ -39029,19 +25783,19 @@ Palette_49418: ; 49418 Function49420:: ; 49420 (12:5420) ld hl, MansionPalette4 - ld de, Unkn1Pals + $30 + ld de, wMapPals + $30 ld bc, $8 - ld a, $5 ; BANK(Unkn1Pals) + ld a, $5 ; BANK(wMapPals) call FarCopyWRAM ret ; 4942f (12:542f) Function4942f: ; 4942f call Function49351 - ld de, Unkn1Pals + $38 + ld de, wMapPals + $38 ld hl, Palette_49478 ld bc, $8 - ld a, $5 ; BANK(Unkn1Pals) + ld a, $5 ; BANK(wMapPals) call FarCopyWRAM call Function49346 hlcoord 0, 0, AttrMap @@ -39052,7 +25806,7 @@ Function4942f: ; 4942f ld bc, 4 * SCREEN_WIDTH ld a, $7 call ByteFill - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_49464 call Function49480 @@ -39078,7 +25832,7 @@ Palette_49478: ; 49478 Function49480: ; 49480 hlcoord 0, 0, AttrMap - ld bc, $0414 + lb bc, 4, SCREEN_WIDTH ld a, $7 call Function49336 hlcoord 0, 2, AttrMap @@ -39091,7 +25845,7 @@ Function49480: ; 49480 Function49496: ; 49496 hlcoord 0, 0, AttrMap - ld bc, $0214 + lb bc, 2, SCREEN_WIDTH ld a, $7 call Function49336 hlcoord 0, 1, AttrMap @@ -39102,19 +25856,19 @@ Function49496: ; 49496 ret ; 494ac -Function494ac: ; 494ac - ld a, [wd199] - cp $15 +LoadSpecialMapPalette: ; 494ac + ld a, [wTileset] + cp TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE jr z, .pokecom_2f - cp $16 + cp TILESET_BATTLE_TOWER jr z, .battle_tower - cp $1d + cp TILESET_ICE_PATH jr z, .ice_path - cp $5 + cp TILESET_HOUSE_1 jr z, .house - cp $1b + cp TILESET_RADIO_TOWER jr z, .radio_tower - cp $d + cp TILESET_CELADON_MANSION jr z, .mansion_mobile jr .do_nothing @@ -39159,9 +25913,9 @@ Function494ac: ; 494ac LoadPokeComPalette: ; 494f2 ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, PokeComPalette - ld bc, $0040 + ld bc, 8 palettes call FarCopyWRAM ret ; 49501 @@ -39172,9 +25926,9 @@ INCLUDE "tilesets/pokecom.pal" LoadBattleTowerPalette: ; 49541 ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, BattleTowerPalette - ld bc, $0040 + ld bc, 8 palettes call FarCopyWRAM ret ; 49550 @@ -39185,9 +25939,9 @@ INCLUDE "tilesets/battle_tower.pal" LoadIcePathPalette: ; 49590 ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, IcePathPalette - ld bc, $0040 + ld bc, 8 palettes call FarCopyWRAM ret ; 4959f @@ -39198,9 +25952,9 @@ INCLUDE "tilesets/ice_path.pal" LoadHousePalette: ; 495df ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, HousePalette - ld bc, $0040 + ld bc, 8 palettes call FarCopyWRAM ret ; 495ee @@ -39211,9 +25965,9 @@ INCLUDE "tilesets/house.pal" LoadRadioTowerPalette: ; 4962e ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, RadioTowerPalette - ld bc, $0040 + ld bc, 8 palettes call FarCopyWRAM ret ; 4963d @@ -39274,24 +26028,24 @@ MansionPalette4: ; 496bd LoadMansionPalette: ; 496c5 ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, MansionPalette1 - ld bc, $0040 + ld bc, 8 palettes call FarCopyWRAM ld a, $5 - ld de, Unkn1Pals + $20 + ld de, wMapPals + 4 palettes ld hl, MansionPalette2 - ld bc, $0008 + ld bc, 1 palettes call FarCopyWRAM ld a, $5 - ld de, Unkn1Pals + $18 + ld de, wMapPals + 3 palettes ld hl, MansionPalette3 - ld bc, $0008 + ld bc, 1 palettes call FarCopyWRAM ld a, $5 - ld de, Unkn1Pals + $30 + ld de, wMapPals + 6 palettes ld hl, MansionPalette4 - ld bc, $0008 + ld bc, 1 palettes call FarCopyWRAM ret ; 496fe @@ -39305,8 +26059,8 @@ MansionPalette2: ; 496fe Function49706: ; 49706 ld hl, Palette_49732 - ld de, Unkn1Pals - ld bc, $0008 + ld de, wMapPals + ld bc, 1 palettes ld a, $5 call FarCopyWRAM callba Function96a4 @@ -39314,7 +26068,7 @@ Function49706: ; 49706 callba Function96b3 ld hl, Palette_4973a ld de, Unkn2Pals - ld bc, $0008 + ld bc, 1 palettes ld a, $5 call FarCopyWRAM ret @@ -39336,8 +26090,8 @@ Palette_4973a: ; 4973a Function49742: ; 49742 ld hl, Palette_49757 - ld de, Unkn1Pals - ld bc, $0040 + ld de, wMapPals + ld bc, $40 ld a, $5 call FarCopyWRAM callba Function96a4 @@ -39388,38 +26142,38 @@ Palette_49757: ; 49757 Function49797: ; 49797 hlcoord 0, 0, AttrMap - ld bc, $1002 + lb bc, 16, 2 ld a, $4 call Function49336 ld a, $3 ldcoord_a 0, 1, AttrMap ldcoord_a 0, 14, AttrMap hlcoord 2, 0, AttrMap - ld bc, $0812 + lb bc, 8, 18 ld a, $5 call Function49336 hlcoord 2, 8, AttrMap - ld bc, $0812 + lb bc, 8, 18 ld a, $6 call Function49336 hlcoord 0, 16, AttrMap - ld bc, $0214 + lb bc, 2, SCREEN_WIDTH ld a, $4 call Function49336 ld a, $3 - ld bc, $0601 + lb bc, 6, 1 hlcoord 6, 1, AttrMap call Function49336 ld a, $3 - ld bc, $0601 + lb bc, 6, 1 hlcoord 17, 1, AttrMap call Function49336 ld a, $3 - ld bc, $0601 + lb bc, 6, 1 hlcoord 6, 9, AttrMap call Function49336 ld a, $3 - ld bc, $0601 + lb bc, 6, 1 hlcoord 17, 9, AttrMap call Function49336 ld a, $2 @@ -39440,8 +26194,8 @@ endr Function49811: ; 49811 ld hl, Palette_49826 - ld de, wd010 - ld bc, $0030 + ld de, wMapPals + $10 + ld bc, $30 ld a, $5 call FarCopyWRAM callba Function96a4 @@ -39502,16 +26256,16 @@ Special_CelebiShrineEvent: ; 4989a xor a ld [VramState], a call LoadCelebiGFX - ld de, $0750 + ld de, $750 ld a, $2c call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $84 - ld hl, $0002 + ld hl, $2 add hl, bc ld [hl], $1f - ld hl, $000f + ld hl, $f add hl, bc ld a, $80 ld [hl], a @@ -39530,7 +26284,7 @@ Special_CelebiShrineEvent: ; 4989a ld [wc3b5], a callba Function8cf7a call Function49935 - ld c, $2 + ld c, 2 call DelayFrames pop de pop bc @@ -39557,7 +26311,7 @@ endr dec c jr nz, .loop ld hl, Sprites + $10 - ld bc, $0090 + ld bc, $90 xor a call ByteFill ret @@ -39606,7 +26360,7 @@ Function49944: ; 49944 ld e, $0 ld a, $18 call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $80 ret @@ -39747,7 +26501,7 @@ endr ld e, [hl] inc hl ld d, [hl] - ld hl, $0 + ld hl, 0 .asm_49b61 srl a jr nc, .asm_49b66 @@ -39802,7 +26556,7 @@ Function49bae: ; 49bae ld a, $90 .asm_49bde - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], a jr .asm_49be9 @@ -40181,10 +26935,10 @@ Function49e91: ; 49e91 Function49ed0: ; 49ed0 xor a - ld [$ffde], a + ld [hMapAnims], a call ClearTileMap - call Functione5f - call Functione51 + call LoadFontsExtra + call LoadStandardFont call ResetTextRelatedRAM ret ; 49ee0 @@ -40211,19 +26965,19 @@ 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, $c + ld c, 12 call DelayFrames hlcoord 4, 0 ld b, $a @@ -40243,14 +26997,14 @@ Function49f16: ; 49f16 call Function3200 call SetPalettes call Function1bc9 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc jr .asm_49f5d .asm_49f55 call Function1bd3 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc @@ -40262,7 +27016,7 @@ Function49f16: ; 49f16 jr .asm_49f97 .asm_49f67 - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] cp $1 jp z, Function4a098 @@ -40277,7 +27031,7 @@ Function49f16: ; 49f16 .asm_49f84 pop bc - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, MUSIC_MAIN_MENU ld [wMapMusic], a @@ -40286,7 +27040,7 @@ Function49f16: ; 49f16 ret .asm_49f97 - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] dec a ld hl, MobileStrings2 @@ -40304,7 +27058,7 @@ Function49f16: ; 49f16 .asm_49fb7 call Function4a071 pop bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hl], b ld b, $a ld c, $1 @@ -40327,27 +27081,27 @@ MobileString1: ; 49fcc MobileStrings2: String_0x49fe9: ; 49fe9 - db "めいし", $1f, "つくったり" + db "めいし¯つくったり" next "ほぞんしておける フ,ルダーです@" ; 4a004 String_0x4a004: ; 4a004 db "モバイルたいせんや じぶんのめいしで" - next "つかう あいさつ", $1f, "つくります@" + next "つかう あいさつ¯つくります@" ; 4a026 String_0x4a026: ; 4a026 - db "あなた", $25, "じゅうしょや ねんれいの" - next "せ", $1e, "い", $1f, "かえられます@" + db "あなた%じゅうしょや ねんれいの" + next "せ", $1e, "い¯かえられます@" ; 4a042 String_0x4a042: ; 4a042 db "モバイルセンター", $1d, "せつぞくするとき" - next "ひつような こと", $1f, "きめます@" + next "ひつような こと¯きめます@" ; 4a062 String_0x4a062: ; 4a062 - db "まえ", $25, "がめん ", $1d, "もどります" + db "まえ%がめん ", $1d, "もどります" next "@" ; 4a071 @@ -40386,7 +27140,7 @@ Function4a098: ; 4a098 (12:6098) call Function1ff8 call Function1bee call WaitBGMap - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader callba Function89de0 call Call_ExitMenu call Function49351 @@ -40411,32 +27165,32 @@ Function4a0c2: ; 4a0c2 (12:60c2) call CopyBytes call CloseSRAM callba Function150b9 - ld c, $2 + ld c, 2 call DelayFrames ld c, $1 call Function4802f push af - call WhiteBGMap + call ClearBGPalettes pop af and a jr nz, .asm_4a0f9 callba Function1509a .asm_4a0f9 - ld c, $5 + ld c, 5 call DelayFrames jr asm_4a111 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) pop bc - call Functione5f + call LoadFontsExtra jp Function49f0a Function4a118: ; 4a118 (12:6118) @@ -40469,7 +27223,7 @@ Function4a13b: ; 4a13b (12:613b) call Function4a3a7 call Function4a492 call Function4a373 - ld c, $a + ld c, 10 call DelayFrames Function4a149: ; 4a149 (12:6149) @@ -40484,7 +27238,7 @@ Function4a149: ; 4a149 (12:6149) ld b, $4 ld c, $12 call TextBox - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld hl, Strings_4a23d call GetNthString @@ -40499,14 +27253,14 @@ Function4a149: ; 4a149 (12:6149) callba Function104148 call SetPalettes call Function1bc9 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc jr asm_4a19d Function4a195: ; 4a195 (12:6195) call Function1bd3 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc @@ -40517,7 +27271,7 @@ asm_4a19d: ; 4a19d (12:619d) jr nz, .asm_4a1ba jr .asm_4a1bc .asm_4a1a7 - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] cp $1 jp z, Function4a20e @@ -40529,7 +27283,7 @@ asm_4a19d: ; 4a19d (12:619d) pop bc ret .asm_4a1bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] dec a ld hl, Strings_4a23d @@ -40546,7 +27300,7 @@ asm_4a19d: ; 4a19d (12:619d) .asm_4a1db call Function4a373 pop bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hl], b lb bc, 6, 1 hlcoord 2, 3 @@ -40555,8 +27309,8 @@ asm_4a19d: ; 4a19d (12:619d) ; 4a1ef (12:61ef) String_4a1ef: ; 4a1ef - db "モバイルセンター", $1f, "えらぶ" - next "ログインパスワード", $1f, "いれる" + db "モバイルセンター¯えらぶ" + next "ログインパスワード¯いれる" next "もどる@" ; 4a20e @@ -40564,7 +27318,7 @@ Function4a20e: ; 4a20e (12:620e) ld a, $1 call Function1ff8 callba Function1719c8 - call WhiteBGMap + call ClearBGPalettes call DelayFrame jr Function4a239 @@ -40575,7 +27329,7 @@ Function4a221: ; 4a221 (12:6221) jr c, Function4a239 call Function4a373 ld a, $2 - ld [wcfa9], a + ld [MenuSelection2], a jr .asm_4a235 .asm_4a235 pop bc @@ -40587,25 +27341,25 @@ Function4a239: ; 4a239 (12:6239) ; 4a23d (12:623d) Strings_4a23d: ; 4a23d - db "いつも せつぞく", $1f, "する" - next "モバイルセンター", $1f, "えらびます@" + db "いつも せつぞく¯する" + next "モバイルセンター¯えらびます@" db "モバイルセンター", $1d, "せつぞくするとき" - next "つかうパスワード", $1f, "ほぞんできます@" + next "つかうパスワード¯ほぞんできます@" - db "まえ", $25, "がめん ", $1d, "もどります@" + db "まえ%がめん ", $1d, "もどります@" db "@" ; 4a28a Function4a28a: ; 4a28a (12:628a) hlcoord 2, 3 - ld bc, $601 - ld a, $7f + lb bc, 6, 1 + ld a, " " call Function4a6d8 call Function1bee call WaitBGMap - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader ld a, $5 call GetSRAMBank ld a, [$aa4b] @@ -40627,16 +27381,16 @@ Function4a28a: ; 4a28a (12:628a) pop af bit 1, a jr nz, .asm_4a33b - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .asm_4a2f0 cp $3 jr z, .asm_4a33b .asm_4a2df callba Function11765d - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu - call Functione5f + call LoadFontsExtra scf ret .asm_4a2f0 @@ -40653,7 +27407,7 @@ Function4a28a: ; 4a28a (12:628a) call InterpretMenu2 bit 1, a jr nz, .asm_4a338 - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .asm_4a338 ld a, $5 @@ -40754,64 +27508,64 @@ Function4a3a7: ; 4a3a7 (12:63a7) call Function4a485 Function4a3aa: ; 4a3aa hlcoord 0, 0 - ld bc, $301 + lb bc, 3, 1 xor a call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $1 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 xor a call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $1 call Function4a6d8 - ld bc, $401 + lb bc, 4, 1 ld a, $2 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $3 call Function4a6d8 - ld bc, $101 - ld a, $7f + lb bc, 1, 1 + ld a, " " call Function4a6d8 hlcoord 1, 0 ld a, $1 - ld bc, $312 + lb bc, 3, 18 call Function4a6d8 - ld bc, $112 + lb bc, 1, 18 ld a, $0 call Function4a6d8 - ld bc, $112 + lb bc, 1, 18 ld a, $1 call Function4a6d8 - ld bc, $112 + lb bc, 1, 18 ld a, $2 call Function4a6d8 - ld bc, $b12 - ld a, $7f + lb bc, 11, 18 + ld a, " " call Function4a6d8 hlcoord 19, 0 - ld bc, $301 + lb bc, 3, 1 ld a, $0 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $1 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 xor a call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $1 call Function4a6d8 - ld bc, $401 + lb bc, 4, 1 ld a, $2 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $3 call Function4a6d8 - ld bc, $101 - ld a, $7f + lb bc, 1, 1 + ld a, " " call Function4a6d8 ret ; 4a449 (12:6449) @@ -40866,7 +27620,7 @@ MainMenu_MobileStudium: ; 4a496 push bc push de callba MobileStudium - call WhiteBGMap + call ClearBGPalettes pop de pop bc ld a, b @@ -40882,12 +27636,12 @@ MainMenu_MobileStudium: ; 4a496 Function4a4c4: ; 4a4c4 (12:64c4) - call WhiteBGMap + call ClearBGPalettes call Function4a3a7 call Function4a492 call Function4a680 - call WhiteBGMap - ld c, $14 + call ClearBGPalettes + ld c, 20 call DelayFrames hlcoord 2, 0 ld b, $a @@ -40928,14 +27682,14 @@ Function4a4c4: ; 4a4c4 (12:64c4) call Function3200 call SetPalettes call Function1bc9 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc jr asm_4a54d Function4a545: ; 4a545 (12:6545) call Function1bd3 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc @@ -40946,7 +27700,7 @@ asm_4a54d: ; 4a54d (12:654d) jr nz, .asm_4a574 jr .asm_4a57e .asm_4a557 - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] cp $1 jp z, Function4a6ab @@ -40960,11 +27714,11 @@ asm_4a54d: ; 4a54d (12:654d) call Function1ff8 .asm_4a574 pop bc - call WhiteBGMap + call ClearBGPalettes call ClearTileMap jp Function49f0a .asm_4a57e - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] dec a add a @@ -40992,7 +27746,7 @@ asm_4a54d: ; 4a54d (12:654d) Function4a5b0: ; 4a5b0 (12:65b0) call Function4a680 pop bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hl], b ld b, $a ld c, $1 @@ -41015,14 +27769,14 @@ String_4a5f2: ; 4a5f2 Strings_4a5f6: ; 4a5f6 db "めいし や ニュース ", $1d, "のせる@" - db "あなた", $25, "あいさつです@" + db "あなた%あいさつです@" db "モバイル たいせん", $4a, "はじまるとき@" db "あいて", $1d, "みえる あいさつです@" db "モバイル たいせんで かったとき@" db "あいて", $1d, "みえる あいさつです@" db "モバイル たいせんで まけたとき@" db "あいて", $1d, "みえる あいさつです@" - db "まえ", $25, "がめん ", $1d, "もどります@" + db "まえ%がめん ", $1d, "もどります@" db "@" ; 4a680 @@ -41061,12 +27815,12 @@ endr Function4a6ab: ; 4a6ab (12:66ab) ld a, $2 call Function1ff8 - call WhiteBGMap + call ClearBGPalettes ld b, $8 call GetSGBLayout callba Function11c1ab pop bc - call Functione5f + call LoadFontsExtra jp Function4a4c4 Function4a6c5: ; 4a6c5 (12:66c5) @@ -41076,7 +27830,7 @@ Function4a6c5: ; 4a6c5 (12:66c5) ld [MusicFadeIDLo], a ld a, d ld [MusicFadeIDHi], a - ld c, $16 + ld c, 22 call DelayFrames ret @@ -41166,7 +27920,7 @@ CheckOwnMonAnywhere: ; 0x4a721 ret c ; found! push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc call UpdateOTPointer @@ -41193,7 +27947,7 @@ CheckOwnMonAnywhere: ; 0x4a721 .loop push bc - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc call UpdateOTPointer @@ -41257,7 +28011,7 @@ endr .loopboxmon push bc - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc call UpdateOTPointer @@ -41301,7 +28055,7 @@ CheckOwnMon: ; 0x4a7ba jr nz, .notfound ; species doesn't match ; check ID number - ld bc, PartyMon1ID - PartyMon1Species + ld bc, MON_ID add hl, bc ; now hl points to ID number ld a, [PlayerID] cp [hl] @@ -41347,15 +28101,15 @@ CheckOwnMon: ; 0x4a7ba ; 0x4a810 BoxAddressTable1: ; 4a810 - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -41390,7 +28144,7 @@ MobileCheckOwnMonAnywhere: ; 4a843 call Function4a8dc ret c push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc call Function4a91e @@ -41412,7 +28166,7 @@ MobileCheckOwnMonAnywhere: ; 4a843 .asm_4a87c push bc - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc call Function4a91e @@ -41463,7 +28217,7 @@ endr .asm_4a8c4 push bc - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc call Function4a91e @@ -41509,15 +28263,15 @@ Function4a8dc: ; 4a8dc ; 4a8f4 BoxAddressTable2: ; 4a8f4 - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -41562,7 +28316,7 @@ Function4a927: ; 4a927 Function4a94e: ; 4a94e call FadeToMenu ld a, -1 - ld hl, DefaultFlypoint + ld hl, wd002 ld bc, 3 call ByteFill xor a @@ -41596,7 +28350,7 @@ Function4a94e: ; 4a94e .asm_4a990 call Function2b3c - ld hl, DefaultFlypoint + ld hl, wd002 ld a, -1 ld bc, 3 call ByteFill @@ -41629,7 +28383,7 @@ UnknownText_0x4a9be: ; 0x4a9be ; 0x4a9c3 Function4a9c3: ; 4a9c3 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, $ff cp [hl] jr z, .asm_4a9d5 @@ -41648,13 +28402,13 @@ Function4a9c3: ; 4a9c3 ; 4a9d7 Function4a9d7: ; 4a9d7 - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, PartyMonNicknames call GetNick ld h, d ld l, e ld de, EndFlypoint - ld bc, $0006 + ld bc, 6 call CopyBytes ld a, [wd003] ld hl, PartyMonNicknames @@ -41662,7 +28416,7 @@ Function4a9d7: ; 4a9d7 ld h, d ld l, e ld de, wd00c - ld bc, $0006 + ld bc, 6 call CopyBytes ld a, [wd004] ld hl, PartyMonNicknames @@ -41670,7 +28424,7 @@ Function4a9d7: ; 4a9d7 ld h, d ld l, e ld de, wd012 - ld bc, $0006 + ld bc, 6 call CopyBytes ld hl, UnknownText_0x4aa1d call PrintText @@ -41685,7 +28439,7 @@ UnknownText_0x4aa1d: ; 0x4aa1d ; 0x4aa22 Function4aa22: ; 4aa22 - call WhiteBGMap + call ClearBGPalettes Function4aa25: ; 4aa25 callba Function5004f @@ -41731,7 +28485,7 @@ Function4aa6e: ; 4aa6e ; 4aa7a Function4aa7a: ; 4aa7a - ld hl, DefaultFlypoint + ld hl, wd002 ld d, $3 .loop ld e, PARTY_LENGTH @@ -41740,7 +28494,7 @@ Function4aa7a: ; 4aa7a push hl cp -1 jr z, .done - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 inc a ld d, a .inner_loop @@ -41761,13 +28515,13 @@ Function4aa7a: ; 4aa7a push hl ld c, l ld b, h - ld hl, $0002 + ld hl, $2 add hl, bc ld [hl], a pop hl .next - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .inner_loop @@ -41786,7 +28540,7 @@ Function4aa7a: ; 4aa7a ; 4aab6 Function4aab6: ; 4aab6 - ld hl, DefaultFlypoint + ld hl, wd002 ld d, $3 .loop ld a, [hli] @@ -41795,7 +28549,7 @@ Function4aab6: ; 4aab6 push de push hl hlcoord 0, 1 - ld bc, $0028 + ld bc, $28 call AddNTimes ld [hl], $ec pop hl @@ -41848,7 +28602,7 @@ Function4aafb: ; 4aafb Function4ab06: ; 4ab06 ld a, [CurPartyMon] - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1HP call AddNTimes ld a, [hli] @@ -41883,11 +28637,11 @@ Function4ab1a: ; 4ab1a ld a, [PartyCount] inc a ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0d8], a cp b jr z, .asm_4ab7e - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurPartyMon], a ld c, a @@ -41904,7 +28658,7 @@ Function4ab1a: ; 4ab1a ret .asm_4ab6d - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0d8], a .asm_4ab73 ld de, SFX_READ_TEXT_2 @@ -41931,7 +28685,7 @@ Function4ab1a: ; 4ab1a Function4ab99: ; 4ab99 bit 1, a jr z, .asm_4aba6 - ld a, [DefaultFlypoint] + ld a, [wd002] cp $ff jr z, .asm_4aba6 scf @@ -41970,7 +28724,7 @@ Function4abc3: ; 4abc3 jr z, .asm_4abd5 ld a, [PartyCount] inc a - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1 ld [wcfaa], a jr .asm_4ac29 @@ -41978,30 +28732,30 @@ Function4abc3: ; 4abc3 .asm_4abd5 bit 6, a jr z, .asm_4abeb - ld a, [wcfa9] - ld [wcfa9], a + ld a, [MenuSelection2] + ld [MenuSelection2], a and a jr nz, .asm_4ac29 ld a, [PartyCount] inc a - ld [wcfa9], a + ld [MenuSelection2], a jr .asm_4ac29 .asm_4abeb bit 7, a jr z, .asm_4ac08 - ld a, [wcfa9] - ld [wcfa9], a + ld a, [MenuSelection2] + ld [MenuSelection2], a ld a, [PartyCount] rept 2 inc a endr ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] cp b jr nz, .asm_4ac29 ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a jr .asm_4ac29 .asm_4ac08 @@ -42011,7 +28765,7 @@ endr jr z, .asm_4ac56 .asm_4ac10 - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [PartyCount] inc a @@ -42034,12 +28788,12 @@ endr ld a, [PartyCount] hlcoord 6, 1 .asm_4ac3b - ld bc, $0028 + ld bc, $28 add hl, bc dec a jr nz, .asm_4ac3b ld [hl], $7f - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [PartyCount] inc a @@ -42103,19 +28857,19 @@ MenuDataHeader_0x4aca2: ; 0x4aca2 Function4acaa: ; 4acaa .asm_4acaa ld a, $a0 - ld [wcf91], a + ld [wMenuData2Flags], a ld a, [wd019] bit 1, a jr z, .asm_4acc2 ld a, $2 - ld [wcf92], a + ld [wMenuData2Items], a ld a, $c ld [wMenuBorderTopCoord], a jr .asm_4accc .asm_4acc2 ld a, $4 - ld [wcf92], a + ld [wMenuData2Items], a ld a, $8 ld [wMenuBorderTopCoord], a @@ -42144,7 +28898,7 @@ Function4acaa: ; 4acaa ld a, [wd019] bit 1, a jr nz, .asm_4ad0e - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, Function4ad17 cp $2 @@ -42154,7 +28908,7 @@ Function4acaa: ; 4acaa jr .asm_4acf3 .asm_4ad0e - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, Function4ad56 jr .asm_4acf3 @@ -42162,7 +28916,7 @@ Function4acaa: ; 4acaa Function4ad17: ; 4ad17 call Function4adb2 jr z, .asm_4ad4a - ld hl, DefaultFlypoint + ld hl, wd002 ld a, $ff cp [hl] jr z, .asm_4ad39 @@ -42207,7 +28961,7 @@ Function4ad56: ; 4ad56 ; 4ad60 Function4ad60: ; 4ad60 - callba Function12fba + callba ManagePokemonMoves ret ; 4ad67 @@ -42254,7 +29008,7 @@ String_4ada7: ; 4ada7 ; 4adb2 Function4adb2: ; 4adb2 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [CurPartyMon] cp [hl] ret z @@ -42269,20 +29023,20 @@ Function4adb2: ; 4adb2 ; 4adc2 Function4adc2: ; 4adc2 - ld a, [DefaultFlypoint] + ld a, [wd002] cp $ff jr nz, .asm_4ade5 ld a, [wd003] cp $ff jr nz, .asm_4addd ld a, [wd004] - ld [DefaultFlypoint], a + ld [wd002], a ld a, $ff ld [wd004], a jr .asm_4ade5 .asm_4addd - ld [DefaultFlypoint], a + ld [wd002], a ld a, $ff ld [wd003], a @@ -42304,7 +29058,7 @@ Function4adf7: ; 4adf7 ret z ld a, [PartyCount] inc a - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1 ld [wcfaa], a ld a, [wd019] @@ -42325,7 +29079,7 @@ Function4ae12: ; 4ae12 ; 4ae1f Function4ae1f: ; 4ae1f - ld bc, $0e07 + lb bc, 14, 7 push bc ld hl, YesNoMenuDataHeader call CopyMenuDataHeader @@ -42341,12 +29095,12 @@ Function4ae1f: ; 4ae1f call BackUpTiles call InterpretMenu2 push af - ld c, $f + ld c, 15 call DelayFrames call Function4ae5e pop af jr c, .asm_4ae57 - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .asm_4ae57 and a @@ -42354,7 +29108,7 @@ Function4ae1f: ; 4ae1f .asm_4ae57 ld a, $2 - ld [wcfa9], a + ld [MenuSelection2], a scf ret ; 4ae5e @@ -42537,43 +29291,43 @@ EmptyAllSRAMBanks: ; 4cf1f Function4cf45: ; 4cf45 (13:4f45) - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jp z, WaitBGMap ; The following is a modified version of Function3246. - ld a, [hBGMapMode] ; $ff00+$d4 + ld a, [hBGMapMode] push af xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld a, [$ffde] + ld [hBGMapMode], a + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a .WaitLY - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $60 jr c, .WaitLY di ld a, 1 ; BANK(VBGMap2) - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a hlcoord 0, 0, AttrMap call Function4cf80 ld a, 0 ; BANK(VBGMap0) - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a hlcoord 0, 0 call Function4cf80 .WaitLY2 - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $60 jr c, .WaitLY2 ei pop af - ld [$ffde], a + ld [hMapAnims], a pop af - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Function4cf80: ; 4cf80 (13:4f80) @@ -42583,7 +29337,7 @@ Function4cf80: ; 4cf80 (13:4f80) ld h, a ld l, 0 ld a, SCREEN_HEIGHT - ld [$ffd3], a + ld [hTilesPerCycle], a ld b, 1 << 1 ld c, rSTAT % $100 @@ -42602,12 +29356,12 @@ endr ld de, $20 - SCREEN_WIDTH add hl, de - ld a, [$ffd3] + ld a, [hTilesPerCycle] dec a - ld [$ffd3], a + ld [hTilesPerCycle], a jr nz, .loop - ld a, [hSPBuffer] ; $ff00+$d9 + ld a, [hSPBuffer] ld l, a ld a, [hSPBuffer + 1] ld h, a @@ -42645,38 +29399,38 @@ Function4d15b:: ; 4d15b ld hl, wc608 ld a, [wd196] and a - jr z, .asm_4d168 - ld bc, $0030 + jr z, .skip + ld bc, $30 add hl, bc -.asm_4d168 +.skip ld a, [wd197] and a - jr z, .asm_4d170 + jr z, .next_dw rept 2 inc hl endr -.asm_4d170 +.next_dw decoord 0, 0 ld b, SCREEN_HEIGHT -.asm_4d175 +.loop ld c, SCREEN_WIDTH -.asm_4d177 +.loop2 ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_4d177 + jr nz, .loop2 ld a, l - add $4 + add 4 ld l, a - jr nc, .asm_4d184 + jr nc, .carry inc h -.asm_4d184 +.carry dec b - jr nz, .asm_4d175 + jr nz, .loop ret ; 4d188 @@ -42688,15 +29442,15 @@ Function4d188: ; 4d188 cp $0 jp z, WaitBGMap -; What follows is a modified version of Function3246. +; What follows is a modified version of Function3246 (LoadEDTile). ld a, [hBGMapMode] push af xor a ld [hBGMapMode], a - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a .wait ld a, [rLY] cp $8f @@ -42718,7 +29472,7 @@ Function4d188: ; 4d188 ei pop af - ld [$ffde], a + ld [hMapAnims], a pop af ld [hBGMapMode], a ret @@ -42731,7 +29485,7 @@ Function4d1cb: ; 4d1cb ld h, a ld l, 0 ld a, SCREEN_HEIGHT - ld [$ffd3], a + ld [hTilesPerCycle], a ld b, 1 << 1 ; not in v/hblank ld c, rSTAT % $100 @@ -42750,9 +29504,9 @@ endr ld de, $20 - SCREEN_WIDTH add hl, de - ld a, [$ffd3] + ld a, [hTilesPerCycle] dec a - ld [$ffd3], a + ld [hTilesPerCycle], a jr nz, .loop ld a, [hSPBuffer] @@ -42771,16 +29525,16 @@ INCBIN "gfx/shrink2.2bpp.lz" ; 4d319 Function4d319: ; 4d319 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurPartyMon], a call LowVolume predef StatsScreenInit ld a, [CurPartyMon] inc a - ld [wcfa9], a + ld [MenuSelection2], a call ClearScreen - call WhiteBGMap + call ClearBGPalettes call MaxVolume callba Function28ef8 callba Function4d354 @@ -42874,8 +29628,8 @@ _ResetClock: ; 4d3b1 callba Function8000 ld b, $8 call GetSGBLayout - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra ld de, MUSIC_MAIN_MENU call PlayMusic ld hl, .text_askreset @@ -42884,7 +29638,7 @@ _ResetClock: ; 4d3b1 call CopyMenuDataHeader call InterpretMenu2 ret c - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 ret z call ClockResetPassword @@ -42960,7 +29714,7 @@ ClockResetPassword: ; 4d41e and D_PAD jr z, .loop2 call .dpadinput - ld c, $3 + ld c, 3 call DelayFrames jr .loop @@ -43150,8 +29904,8 @@ Function4d54c: ; 4d54c callba Function8000 ld b, $8 call GetSGBLayout - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra ld de, MUSIC_MAIN_MENU call PlayMusic ld hl, UnknownText_0x4d580 @@ -43160,7 +29914,7 @@ Function4d54c: ; 4d54c call CopyMenuDataHeader call InterpretMenu2 ret c - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 ret z callba EmptyAllSRAMBanks @@ -43266,7 +30020,7 @@ FlagPredef: ; 4d7c1 Function4d7fd: ; 4d7fd ld a, [wc702] - ld hl, wc72f + ld hl, wEnemyTrappingMove ld de, VTiles2 push de push af @@ -43287,9 +30041,9 @@ Function4d81e: ; 4d81e callba Function29549 ld a, [wc702] ld [CurPartySpecies], a - ld a, [wc72f] + ld a, [wEnemyTrappingMove] ld [TempMonDVs], a - ld a, [wc730] + ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a ld b, $1a call GetSGBLayout @@ -43300,8 +30054,8 @@ Function4d81e: ; 4d81e ld [CurPartySpecies], a hlcoord 7, 2 ld d, $0 - ld e, $3 - predef Functiond008e + ld e, ANIM_MON_TRADE + predef AnimateFrontpic ret ; 4d860 @@ -43315,7 +30069,7 @@ CheckPokerus: ; 4d860 ld b, a ; Check each monster in the party for Pokerus ld hl, PartyMon1PokerusStatus - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH .Check ld a, [hl] and $0f ; only the bottom nybble is used @@ -43348,7 +30102,7 @@ Special_CheckForLuckyNumberWinners: ; 4d87a cp EGG call nz, .CompareLuckyNumberToMonID push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc dec d @@ -43373,7 +30127,7 @@ Special_CheckForLuckyNumberWinners: ; 4d87a .SkipOpenBoxMon push bc - ld bc, sBoxMon2 - sBoxMon1 ; box_struct_length + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc dec d @@ -43404,7 +30158,7 @@ endr ld b, h ld c, l inc bc - ld de, MONS_PER_BOX + NUM_MOVES + 4 + ld de, sBoxMon1ID - sBox add hl, de ld d, a .BoxNLoop @@ -43413,14 +30167,14 @@ endr cp EGG jr z, .SkipBoxMon - call .CompareLuckyNumberToMonID + call .CompareLuckyNumberToMonID ; sets ScriptVar and CurPartySpecies appropriately jr nc, .SkipBoxMon ld a, 1 ld [wFoundMatchingIDInParty], a .SkipBoxMon push bc - ld bc, sBoxMon2 - sBoxMon1 ; box_struct_length + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc dec d @@ -43504,11 +30258,11 @@ endr inc b ld a, [ScriptVar] and a - jr z, .foundmatch + jr z, .bettermatch cp b jr c, .nomatch -.foundmatch +.bettermatch dec b ld a, b ld [ScriptVar], a @@ -43527,15 +30281,15 @@ endr ; 4d99f .BoxBankAddresses: ; 4d99f - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -43568,14 +30322,14 @@ Special_PrintTodaysLuckyNumber: ; 4d9d3 CheckPartyFullAfterContest: ; 4d9e5 ld a, [wContestMon] and a - jp z, Function4db35 + jp z, .DidntCatchAnything ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData ld hl, PartyCount ld a, [hl] cp 6 - jp nc, Function4daa3 + jp nc, .TryAddToBox inc a ld [hl], a ld c, a @@ -43589,12 +30343,12 @@ CheckPartyFullAfterContest: ; 4d9e5 ld hl, PartyMon1Species ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l ld hl, wContestMon - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes ld a, [PartyCount] dec a @@ -43609,19 +30363,19 @@ CheckPartyFullAfterContest: ; 4d9e5 call GetPokemonName ld hl, StringBuffer1 ld de, wd050 - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes call GiveANickname_YesNo - jr c, .asm_4da66 + jr c, .Party_SkipNickname ld a, [PartyCount] dec a ld [CurPartyMon], a xor a ld [MonType], a ld de, wd050 - callab Functione3de + callab InitNickname -.asm_4da66 +.Party_SkipNickname ld a, [PartyCount] dec a ld hl, PartyMonNicknames @@ -43653,19 +30407,19 @@ CheckPartyFullAfterContest: ; 4d9e5 ret ; 4daa3 -Function4daa3: ; 4daa3 +.TryAddToBox: ; 4daa3 ld a, BANK(sBoxCount) call GetSRAMBank ld hl, sBoxCount ld a, [hl] cp MONS_PER_BOX call CloseSRAM - jr nc, .asm_4db08 + jr nc, .BoxFull xor a ld [CurPartyMon], a ld hl, wContestMon ld de, wd018 - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH call CopyBytes ld hl, PlayerName ld de, wd00d @@ -43677,14 +30431,14 @@ Function4daa3: ; 4daa3 call GetPokemonName call GiveANickname_YesNo ld hl, StringBuffer1 - jr c, .asm_4daf7 + jr c, .Box_SkipNickname ld a, BOXMON ld [MonType], a ld de, wd050 - callab Functione3de + callab InitNickname ld hl, wd050 -.asm_4daf7 +.Box_SkipNickname ld a, BANK(sBoxMonNicknames) call GetSRAMBank ld de, sBoxMonNicknames @@ -43692,7 +30446,7 @@ Function4daa3: ; 4daa3 call CopyBytes call CloseSRAM -.asm_4db08 +.BoxFull ld a, BANK(sBoxMon1Level) call GetSRAMBank ld a, [sBoxMon1Level] @@ -43715,7 +30469,7 @@ Function4daa3: ; 4daa3 ret ; 4db35 -Function4db35: ; 4db35 +.DidntCatchAnything: ; 4db35 ld a, $2 ld [ScriptVar], a ret @@ -43754,17 +30508,17 @@ Function4db53: ; 4db53 ld a, [MapNumber] ld c, a cp MAP_POKECENTER_2F - jr nz, .asm_4db78 + jr nz, .NotPokeCenter2F ld a, b cp GROUP_POKECENTER_2F - jr nz, .asm_4db78 + jr nz, .NotPokeCenter2F ld a, [BackupMapGroup] ld b, a ld a, [BackupMapNumber] ld c, a -.asm_4db78 +.NotPokeCenter2F call GetWorldMapLocation ld b, a ld a, [PlayerGender] @@ -43783,25 +30537,25 @@ Function4db83: ; 4db83 ret ; 4db92 -Function4db92: ; 4db92 +SetBoxMonCaughtData: ; 4db92 push bc ld a, BANK(sBoxMon1CaughtLevel) call GetSRAMBank ld hl, sBoxMon1CaughtLevel pop bc - call Function4dbaf + call SetPkmnCaughtData call CloseSRAM ret ; 4dba3 -SetPkmnCaughtData: ; 4dba3 +SetPartymonCaughtData: ; 4dba3 ld a, [PartyCount] dec a ld hl, PartyMon1CaughtLevel push bc call GetPartyLocation pop bc -Function4dbaf: ; 4dbaf +SetPkmnCaughtData: ; 4dbaf xor a ld [hli], a ld a, $7e @@ -43848,7 +30602,7 @@ _FindThatSpeciesYourTrainerID: ; 4dbe6 ret z ld a, c ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [PlayerID] cp [hl] @@ -43877,7 +30631,7 @@ FindAtLeastThatHappy: ; 4dc0a dec a push hl push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc ld a, b @@ -43910,7 +30664,7 @@ FindGreaterThanThatLevel: ; 4dc31 dec a push hl push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc ld a, b @@ -43988,10 +30742,10 @@ Function4dc8f: ; 4dc8f jr StatsScreenInit_gotaddress StatsScreenInit_gotaddress: ; 4dc94 - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a ; disable overworld tile animations + ld [hMapAnims], a ; disable overworld tile animations ld a, [wc2c6] ; whether sprite is to be mirrorred push af ld a, [wJumptableIndex] @@ -44001,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 @@ -44019,13 +30773,14 @@ StatsScreenInit_gotaddress: ; 4dc94 pop af ld [wc2c6], a pop af - ld [$ffde], a + ld [hMapAnims], a ret ; 0x4dcd2 StatsScreenMain: ; 0x4dcd2 xor a ld [wJumptableIndex], a + ; stupid interns ld [wcf64], a ld a, [wcf64] and $fc @@ -44046,12 +30801,13 @@ StatsScreenMain: ; 0x4dcd2 StatsScreenBattle: ; 4dcf7 xor a ld [wJumptableIndex], a + ; stupid interns ld [wcf64], a ld a, [wcf64] and $fc or $1 ld [wcf64], a -.asm_4dd08 +.loop callba Function100dd2 ld a, [wJumptableIndex] and $7f @@ -44059,22 +30815,22 @@ StatsScreenBattle: ; 4dcf7 rst JumpTable call Function4dd3a callba Function100dfd - jr c, .asm_4dd29 + jr c, .exit ld a, [wJumptableIndex] bit 7, a - jr z, .asm_4dd08 + jr z, .loop -.asm_4dd29 +.exit ret ; 4dd2a StatsScreenPointerTable: ; 4dd2a - dw Function4dd72 ; regular pokémon + dw MonStatsInit ; regular pokémon dw EggStatsInit ; egg - dw Function4dde6 + dw StatsScreenWaitCry dw Function4ddac dw Function4ddc6 - dw Function4dde6 + dw StatsScreenWaitCry dw Function4ddd6 dw Function4dd6c ; 4dd3a @@ -44111,10 +30867,10 @@ Function4dd6c: ; 4dd6c (13:5d6c) set 7, [hl] ret -Function4dd72: ; 4dd72 (13:5d72) +MonStatsInit: ; 4dd72 (13:5d72) ld hl, wcf64 res 6, [hl] - call WhiteBGMap + call ClearBGPalettes call ClearTileMap callba Function10402d call Function4ddf2 @@ -44172,11 +30928,12 @@ Function4ddd6: ; 4ddd6 (13:5dd6) ld h, $0 call Function4dd62 ret + .asm_4dde1 and $f3 jp Function4de54 -Function4dde6: ; 4dde6 (13:5de6) +StatsScreenWaitCry: ; 4dde6 (13:5de6) call IsSFXPlaying ret nc ld a, [wJumptableIndex] @@ -44186,14 +30943,14 @@ Function4dde6: ; 4dde6 (13:5de6) Function4ddf2: ; 4ddf2 (13:5df2) ld a, [MonType] - cp $3 + cp BREEDMON jr nz, .asm_4de10 ld a, [wd018] ld [CurSpecies], a call GetBaseData ld hl, wd018 ld de, TempMon - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes jr .asm_4de2a .asm_4de10 @@ -44202,7 +30959,7 @@ Function4ddf2: ; 4ddf2 (13:5df2) cp EGG jr z, .asm_4de2a ld a, [MonType] - cp $2 + cp BOXMON jr c, .asm_4de2a callba Function50890 .asm_4de2a @@ -44212,8 +30969,8 @@ Function4ddf2: ; 4ddf2 (13:5df2) Function4de2c: ; 4de2c (13:5e2c) call GetJoypad ld a, [MonType] - cp $3 - jr nz, .asm_4de4e + cp BREEDMON + jr nz, .notbreedmon push hl push de push bc @@ -44223,15 +30980,17 @@ Function4de2c: ; 4de2c (13:5e2c) pop hl ld a, [wcf73] and $c0 - jr nz, .asm_4de52 + jr nz, .set_carry ld a, [wcf73] - jr .asm_4de50 -.asm_4de4e - ld a, [hJoyPressed] ; $ff00+$a7 -.asm_4de50 + jr .clear_flags + +.notbreedmon + ld a, [hJoyPressed] +.clear_flags and a ret -.asm_4de52 + +.set_carry scf ret @@ -44256,7 +31015,7 @@ Function4de54: ; 4de54 (13:5e54) jr .asm_4dece .asm_4de77 ld a, [MonType] - cp $2 + cp BOXMON jr nc, .asm_4dece and a ld a, [PartyCount] @@ -44330,7 +31089,7 @@ Function4dee4: ; 4dee4 (13:5ee4) Function4deea: ; 4deea (13:5eea) call Function4df45 xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) ld [wd265], a ld [CurSpecies], a @@ -44353,7 +31112,7 @@ Function4deea: ; 4deea (13:5eea) hlcoord 18, 0 call Function4df66 hlcoord 9, 4 - ld a, $f3 + ld a, "/" ld [hli], a ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) ld [wd265], a @@ -44373,7 +31132,7 @@ Function4df45: ; 4df45 (13:5f45) ld a, [hli] ld d, a ld e, [hl] - callba Functionc699 + callba DrawPartyMenuHPBar ld hl, wcda1 call SetHPPal ld b, $3 @@ -44387,9 +31146,9 @@ Function4df66: ; 4df66 (13:5f66) pop hl ret c ld a, "♂" - jr nz, .asm_4df75 + jr nz, .got_gender ld a, "♀" -.asm_4df75 +.got_gender ld [hl], a ret ; 4df77 (13:5f77) @@ -44403,32 +31162,32 @@ Unknown_4df77: ; 4df77 Function4df7f: ; 4df7f hlcoord 7, 0 - ld bc, 20 - ld d, 18 -.asm_4df87 + ld bc, SCREEN_WIDTH + ld d, SCREEN_HEIGHT +.loop ld a, $31 ld [hl], a add hl, bc dec d - jr nz, .asm_4df87 + jr nz, .loop ret ; 4df8f Function4df8f: ; 4df8f (13:5f8f) hlcoord 0, 7 - ld b, 20 - ld a, $62 -.asm_4df96 + ld b, SCREEN_WIDTH + ld a, "_" +.loop ld [hli], a dec b - jr nz, .asm_4df96 + jr nz, .loop ret Function4df9b: ; 4df9b (13:5f9b) hlcoord 12, 6 - ld [hl], $71 + ld [hl], "◀" hlcoord 19, 6 - ld [hl], $ed + ld [hl], "▶" ret Function4dfa6: ; 4dfa6 (13:5fa6) @@ -44436,7 +31195,7 @@ Function4dfa6: ; 4dfa6 (13:5fa6) callba CheckShininess ret nc hlcoord 19, 0 - ld [hl], $3f + ld [hl], "<SHINY>" ret Function4dfb6: ; 4dfb6 (13:5fb6) @@ -44444,7 +31203,7 @@ Function4dfb6: ; 4dfb6 (13:5fb6) ld [wd265], a ld [CurSpecies], a xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function4dfda call Function4e002 call Function4dfed @@ -44453,6 +31212,7 @@ Function4dfb6: ; 4dfb6 (13:5fb6) jr nz, .asm_4dfd6 call SetPalettes ret + .asm_4dfd6 call Function4e226 ret @@ -44516,7 +31276,7 @@ Function4e013: ; 4e013 (13:6013) hlcoord 6, 13 push hl ld de, TempMonStatus - predef Function50d0a + predef PlaceStatusString pop hl jr nz, .asm_4e066 jr .asm_4e060 @@ -44590,7 +31350,7 @@ Function4e0e7: ; 4e0e7 (13:60e7) jr z, .asm_4e111 inc a ld d, a - callba Function50e47 + callba CalcExpAtLevel rept 2 ld hl, TempMonExp + 2 endr @@ -44602,7 +31362,7 @@ endr sbc [hl] dec hl ld [Buffer2], a ; wd1eb (aliases: MovementType) - ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) + ld a, [hQuotient] sbc [hl] ld [Buffer1], a ; wd1ea (aliases: MagikarpLength) ret @@ -44784,13 +31544,13 @@ Function4e253: ; 4e253 (13:6253) cp UNOWN jr z, .asm_4e266 hlcoord 0, 0 - call Function3786 + call PrepMonFrontpic ret .asm_4e266 xor a ld [wc2c6], a hlcoord 0, 0 - call Function378b + call _PrepMonFrontpic ret Function4e271: ; 4e271 (13:6271) @@ -44817,7 +31577,7 @@ Function4e289: ; 4e289 (13:6289) hlcoord 0, 0 ld d, $0 ld e, $2 - predef Functiond00a3 + predef LoadMonAnimation ld hl, wcf64 set 6, [hl] ret @@ -44839,7 +31599,7 @@ Jumptable_4e2b5: ; 4e2b5 (13:62b5) Function4e2bf: ; 4e2bf (13:62bf) ld a, [CurPartyMon] ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld b, h ld c, l @@ -44872,7 +31632,7 @@ Function4e2f2: ; 4e2f2 (13:62f2) ld a, [CurPartySpecies] cp EGG jr z, .asm_4e2fe - call Function4e53f + call CheckFaintedFrzSlp jr c, Function4e305 .asm_4e2fe xor a @@ -44894,16 +31654,16 @@ Function4e307: ; 4e307 (13:6307) push bc push af call DelayFrame - ld a, [rVBK] ; $ff00+$4f + ld a, [rVBK] push af ld a, $1 - ld [rVBK], a ; $ff00+$4f - ld de, GFX_f9204 - lb bc, BANK(GFX_f9204), 1 + ld [rVBK], a + ld de, TextBoxSpaceGFX + lb bc, BANK(TextBoxSpaceGFX), 1 ld hl, VTiles2 tile $7f call Get2bpp pop af - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a pop af pop bc pop de @@ -44958,7 +31718,7 @@ EggStatsScreen: ; 4e33a call SetPalettes ; pals call DelayFrame hlcoord 0, 0 - call Function3786 + call PrepMonFrontpic callba Function10402d call Function4e497 @@ -45020,7 +31780,7 @@ Function4e497: ; 4e497 (13:6497) pop de hlcoord 0, 0 ld d, $0 - predef Functiond00a3 + predef LoadMonAnimation ld hl, wcf64 set 6, [hl] ret @@ -45095,31 +31855,31 @@ Function4e528: ; 4e528 (13:6528) jp SkipNames -Function4e53f: ; 4e53f - ld hl, PartyMon1HP - PartyMon1 +CheckFaintedFrzSlp: ; 4e53f + ld hl, MON_HP add hl, bc ld a, [hli] or [hl] - jr z, .asm_4e552 - ld hl, PartyMon1Status - PartyMon1 + jr z, .fainted_frz_slp + ld hl, MON_STATUS add hl, bc ld a, [hl] and (1 << FRZ) | SLP - jr nz, .asm_4e552 + jr nz, .fainted_frz_slp and a ret -.asm_4e552 +.fainted_frz_slp scf ret ; 4e554 -Function4e554:: ; 4e554 +CatchTutorial:: ; 4e554 ld a, [BattleType] dec a ld c, a - ld hl, Jumptable_4e564 + ld hl, .jumptable ld b, 0 rept 2 add hl, bc @@ -45130,23 +31890,24 @@ endr jp [hl] ; 4e564 -Jumptable_4e564: ; 4e564 (13:6564) - dw Function4e56a - dw Function4e56a - dw Function4e56a +.jumptable: ; 4e564 (13:6564) + dw .DudeTutorial + dw .DudeTutorial + dw .DudeTutorial -Function4e56a: ; 4e56a (13:656a) +.DudeTutorial: ; 4e56a (13:656a) +; Back up your name to your Mom's name. ld hl, PlayerName ld de, MomsName ld bc, NAME_LENGTH call CopyBytes - - ld hl, DudeString +; Copy Dude's name to your name + ld hl, .Dude ld de, PlayerName ld bc, NAME_LENGTH call CopyBytes - call Function4e5b7 + call .LoadDudeData xor a ld [hJoyDown], a @@ -45156,8 +31917,8 @@ Function4e56a: ; 4e56a (13:656a) and $f8 add $3 ld [Options], a - ld hl, AutoInput_4e5df - ld a, BANK(AutoInput_4e5df) + ld hl, .AutoInput + ld a, BANK(.AutoInput) call StartAutoInput callab StartBattle call StopAutoInput @@ -45170,13 +31931,13 @@ Function4e56a: ; 4e56a (13:656a) call CopyBytes ret -Function4e5b7: ; 4e5b7 (13:65b7) +.LoadDudeData: ; 4e5b7 (13:65b7) ld hl, OTPartyMon1 - ld [hl], $1 + ld [hl], BULBASAUR inc hl - ld [hl], $12 + ld [hl], POTION inc hl - ld [hl], $1 + ld [hl], POUND inc hl ld [hl], $ff ld hl, OTPartyMon1Exp + 2 @@ -45194,474 +31955,17 @@ endr ret ; 4e5da (13:65da) -DudeString: ; 4e5da +.Dude: ; 4e5da db "DUDE@" ; 4e5df -AutoInput_4e5df: ; 4e5df +.AutoInput: ; 4e5df db NO_INPUT, $ff ; end ; 4e5e1 +INCLUDE "engine/evolution_animation.asm" -EvolutionAnimation: ; 4e5e1 - push hl - push de - push bc - ld a, [CurSpecies] - push af - ld a, [rOBP0] - push af - ld a, [BaseDexNo] - push af - - call _EvolutionAnimation - - pop af - ld [BaseDexNo], a - pop af - ld [rOBP0], a - pop af - ld [CurSpecies], a - pop bc - pop de - pop hl - - ld a, [wd1ed] - and a - ret z - - scf - ret -; 4e607 - -_EvolutionAnimation: ; 4e607 - ld a, $e4 - ld [rOBP0], a - - ld de, MUSIC_NONE - call PlayMusic - - callba Function8cf53 - - ld de, EvolutionGFX - ld hl, VTiles0 - lb bc, BANK(EvolutionGFX), 8 - call Request2bpp - - xor a - ld [Danger], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ld a, [Buffer1] - ld [PlayerHPPal], a - - ld c, $0 - call Function4e703 - ld a, [Buffer1] - ld [CurPartySpecies], a - ld [CurSpecies], a - call Function4e708 - - ld de, VTiles2 - ld hl, VTiles2 tile $31 - ld bc, $0031 - call Request2bpp - - ld a, $31 - ld [wd1ec], a - call Function4e755 - ld a, [Buffer2] - ld [CurPartySpecies], a - ld [CurSpecies], a - call Function4e711 - ld a, [Buffer1] - ld [CurPartySpecies], a - ld [CurSpecies], a - - ld a, $1 - ld [hBGMapMode], a - call Function4e794 - jr c, .asm_4e67c - - ld a, [Buffer1] - call PlayCry - -.asm_4e67c - ld de, MUSIC_EVOLUTION - call PlayMusic - - ld c, 80 - call DelayFrames - - ld c, $1 - call Function4e703 - call Function4e726 - jr c, .asm_4e6df - - ld a, $cf - ld [wd1ec], a - - call Function4e755 - xor a - ld [wd1ed], a - - ld a, [Buffer2] - ld [PlayerHPPal], a - - ld c, $0 - call Function4e703 - call Function4e7a6 - callba Function8cf53 - call Function4e794 - jr c, .asm_4e6de - - ld a, [wc2c6] - push af - ld a, $1 - ld [wc2c6], a - ld a, [CurPartySpecies] - push af - - ld a, [PlayerHPPal] - ld [CurPartySpecies], a - hlcoord 7, 2 - ld d, $0 - ld e, $4 - predef Functiond008e - - pop af - ld [CurPartySpecies], a - pop af - ld [wc2c6], a - ret - -.asm_4e6de - ret - -.asm_4e6df - ld a, $1 - ld [wd1ed], a - - ld a, [Buffer1] - ld [PlayerHPPal], a - - ld c, $0 - call Function4e703 - call Function4e7a6 - callba Function8cf53 - call Function4e794 - ret c - - ld a, [PlayerHPPal] - call PlayCry - ret -; 4e703 - -Function4e703: ; 4e703 - ld b, $b - jp GetSGBLayout -; 4e708 - -Function4e708: ; 4e708 - call GetBaseData - hlcoord 7, 2 - jp Function3786 -; 4e711 - -Function4e711: ; 4e711 - call GetBaseData - ld a, $1 - ld [wc2c6], a - ld de, VTiles2 - predef Function5108b - xor a - ld [wc2c6], a - ret -; 4e726 - -Function4e726: ; 4e726 - call ClearJoypad - ld bc, $010e -.asm_4e72c - push bc - call Function4e779 - pop bc - jr c, .asm_4e73f - push bc - call Function4e741 - pop bc - inc b -rept 2 - dec c -endr - jr nz, .asm_4e72c - and a - ret - -.asm_4e73f - scf - ret -; 4e741 - -Function4e741: ; 4e741 -.asm_4e741 - ld a, $cf - ld [wd1ec], a - call Function4e755 - ld a, $31 - ld [wd1ec], a - call Function4e755 - dec b - jr nz, .asm_4e741 - ret -; 4e755 - -Function4e755: ; 4e755 - push bc - xor a - ld [hBGMapMode], a - hlcoord 7, 2 - lb bc, 7, 7 - ld de, $000d -.asm_4e762 - push bc -.asm_4e763 - ld a, [wd1ec] - add [hl] - ld [hli], a - dec c - jr nz, .asm_4e763 - pop bc - add hl, de - dec b - jr nz, .asm_4e762 - ld a, $1 - ld [hBGMapMode], a - call WaitBGMap - pop bc - ret -; 4e779 - -Function4e779: ; 4e779 -.asm_4e779 - call DelayFrame - push bc - call JoyTextDelay - ld a, [hJoyDown] - pop bc - and B_BUTTON - jr nz, .asm_4e78c -.asm_4e787 - dec c - jr nz, .asm_4e779 - and a - ret - -.asm_4e78c - ld a, [wd1e9] - and a - jr nz, .asm_4e787 - scf - ret -; 4e794 - -Function4e794: ; 4e794 - ld a, [CurPartyMon] - ld hl, PartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba Function4e53f - ret -; 4e7a6 - -Function4e7a6: ; 4e7a6 - ld a, [wd1ed] - and a - ret nz - ld de, SFX_EVOLVED - call PlaySFX - ld hl, wJumptableIndex - ld a, [hl] - push af - ld [hl], $0 -.asm_4e7b8 - call Function4e7cf - jr nc, .asm_4e7c2 - call Function4e80c - jr .asm_4e7b8 - -.asm_4e7c2 - ld c, $20 -.asm_4e7c4 - call Function4e80c - dec c - jr nz, .asm_4e7c4 - pop af - ld [wJumptableIndex], a - ret -; 4e7cf - -Function4e7cf: ; 4e7cf - ld hl, wJumptableIndex - ld a, [hl] - cp $20 - ret nc - ld d, a - inc [hl] - and $1 - jr nz, .asm_4e7e6 - ld e, $0 - call Function4e7e8 - ld e, $10 - call Function4e7e8 - -.asm_4e7e6 - scf - ret -; 4e7e8 - -Function4e7e8: ; 4e7e8 - push de - ld de, $4858 - ld a, $13 - call Function3b2a - ld hl, $000b - add hl, bc - ld a, [wJumptableIndex] - and $e - sla a - pop de - add e - ld [hl], a - ld hl, $0003 - add hl, bc - ld [hl], $0 - ld hl, $000c - add hl, bc - ld [hl], $10 - ret -; 4e80c - -Function4e80c: ; 4e80c - push bc - callab Function8cf69 - ld a, [$ff9b] - and $e - srl a -rept 2 - inc a -endr - and $7 - ld b, a - ld hl, Sprites + 3 - ld c, $28 -.asm_4e823 - ld a, [hl] - or b - ld [hli], a -rept 3 - inc hl -endr - dec c - jr nz, .asm_4e823 - pop bc - call DelayFrame - ret -; 4e831 - - -EvolutionGFX: -INCBIN "gfx/evo/bubble_large.2bpp" -INCBIN "gfx/evo/bubble.2bpp" - -Function4e881: ; 4e881 - call WhiteBGMap - call ClearTileMap - call ClearSprites - call DisableLCD - call Functione51 - call LoadFontsBattleExtra - ld hl, VBGMap0 - ld bc, VBGMap1 - VBGMap0 - ld a, " " - call ByteFill - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - xor a - ld [hSCY], a - ld [hSCX], a - call EnableLCD - ld hl, UnknownText_0x4e8bd - call PrintText - call Function3200 - call SetPalettes - ret -; 4e8bd - -UnknownText_0x4e8bd: ; 0x4e8bd - ; SAVING RECORD… DON'T TURN OFF! - text_jump UnknownText_0x1bd39e - db "@" -; 0x4e8c2 - - -Function4e8c2: ; 4e8c2 - call WhiteBGMap - call ClearTileMap - call ClearSprites - call DisableLCD - call Functione51 - call LoadFontsBattleExtra - ld hl, VBGMap0 - ld bc, VBGMap1 - VBGMap0 - ld a, " " - call ByteFill - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - ld hl, wd000 - ld c, $40 -.asm_4e8ee - ld a, -1 - ld [hli], a - ld a, " " - ld [hli], a - dec c - jr nz, .asm_4e8ee - xor a - ld [hSCY], a - ld [hSCX], a - call EnableLCD - call Function3200 - call SetPalettes - ret -; 4e906 - -Function4e906: ; 4e906 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld hl, w6_d000 - ld bc, w6_d400 - w6_d000 - ld a, " " - call ByteFill - ld hl, VBGMap0 - ld de, w6_d000 - ld b, $0 - ld c, $40 - call Request2bpp - pop af - ld [rSVBK], a - ret -; 4e929 - -Function4e929: ; 4e929 +Function4e929: ; mobile function ld h, b ld l, c call Function4e930 @@ -45673,35 +31977,35 @@ Function4e930: ; 4e930 ld a, [hli] xor [hl] ld c, a - jr z, .asm_4e941 + jr z, .skip_male_trainers srl c srl c -.asm_4e939 +.male_trainer_loop srl c ld a, c cp MaleTrainersEnd - MaleTrainers - 1 - jr nc, .asm_4e939 + jr nc, .male_trainer_loop inc c -.asm_4e941 +.skip_male_trainers ld a, [de] cp $1 ld hl, MaleTrainers - jr nz, .asm_4e958 + jr nz, .finished ld hl, FemaleTrainers ld a, c and a - jr z, .asm_4e958 + jr z, .finished -.asm_4e950 +.female_trainer_loop srl c ld a, c cp FemaleTrainersEnd - FemaleTrainers - 1 - jr nc, .asm_4e950 + jr nc, .female_trainer_loop inc c -.asm_4e958 +.finished ld b, $0 add hl, bc ld a, [hl] @@ -45752,114 +32056,7 @@ FemaleTrainersEnd: ; 4e980 -Function4e980: ; 4e980 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - call Function4e998 - ld a, rSCX - $ff00 - ld [hLCDStatCustom], a - call Function4e9ab - xor a - ld [hLCDStatCustom], a - pop af - ld [rSVBK], a - ret -; 4e998 - -Function4e998: ; 4e998 - call Function4e9e5 - ld a, $90 - ld [hSCX], a - ld a, $e4 - call DmgToCgbBGPals - ld de, $e4e4 - call DmgToCgbObjPals - ret -; 4e9ab - -Function4e9ab: ; 4e9ab - ld d, $90 - ld e, $72 - ld a, $48 - inc a -.asm_4e9b2 - push af -.asm_4e9b3 - ld a, [rLY] - cp $60 - jr c, .asm_4e9b3 - ld a, d - ld [hSCX], a - call Function4e9f1 -rept 2 - inc e -endr -rept 2 - dec d -endr - pop af - push af - cp $1 - jr z, .asm_4e9ce - push de - call Function4e9d6 - pop de - -.asm_4e9ce - call DelayFrame - pop af - dec a - jr nz, .asm_4e9b2 - ret -; 4e9d6 - -Function4e9d6: ; 4e9d6 - ld hl, Sprites + 1 - ld c, $12 - ld de, $0004 -.asm_4e9de -rept 2 - dec [hl] -endr - add hl, de - dec c - jr nz, .asm_4e9de - ret -; 4e9e5 - -Function4e9e5: ; 4e9e5 - ld hl, LYOverrides - ld a, $90 - ld bc, SCREEN_HEIGHT_PX - call ByteFill - ret -; 4e9f1 - -Function4e9f1: ; 4e9f1 - ld hl, LYOverrides - ld a, d - ld c, $3e -.asm_4e9f7 - ld [hli], a - dec c - jr nz, .asm_4e9f7 - ld a, e - ld c, $22 -.asm_4e9fe - ld [hli], a - dec c - jr nz, .asm_4e9fe - xor a - ld c, $30 -.asm_4ea05 - ld [hli], a - dec c - jr nz, .asm_4ea05 - ret -; 4ea0a - +INCLUDE "battle/sliding_intro.asm" Function4ea0a: ; 4ea0a @@ -45869,23 +32066,27 @@ Function4ea0a: ; 4ea0a call MobileTextBorder pop af dec a - ld bc, $000c - ld hl, wdc1a + ld bc, $c + ld hl, w5_dc1a call AddNTimes ld de, wcd53 - ld bc, $000c - ld a, $5 + ld bc, $c + ld a, $5 ; BANK(w5_dc1a) call FarCopyWRAM + ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a + ld bc, wcd53 decoord 1, 14 callba Function11c0c6 + pop af ld [rSVBK], a - ld c, $b4 + + ld c, 180 call DelayFrames ret ; 4ea44 @@ -45949,1383 +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 Function50396 ; This reads from a pointer table??? -.asm_50077 - ld a, [hli] - cp $ff - jr z, .asm_50084 ; 0x5007a $8 - push hl - ld hl, Jumptable_50089 - rst JumpTable - pop hl - jr .asm_50077 ; 0x50082 $f3 -.asm_50084 - pop af - ld [Options], a - ret -; 0x50089 - -Jumptable_50089: ; 50089 - dw Function5009b - dw Function500cf - dw Function50138 - dw Function50176 - dw Function501b2 - dw Function501e0 - dw Function5022f - dw Function502b1 - dw Function50307 -; 5009b - -Function5009b: ; 5009b - hlcoord 3, 1 - ld a, [PartyCount] - and a - jr z, .asm_500bf - ld c, a - ld b, $0 -.asm_500a7 - push bc - push hl - push hl - ld hl, PartyMonNicknames - ld a, b - call GetNick - pop hl - call PlaceString - pop hl - ld de, $0028 - add hl, de - pop bc - inc b - dec c - jr nz, .asm_500a7 - -.asm_500bf -rept 2 - dec hl -endr - ld de, String_500c8 - call PlaceString - ret -; 500c8 - -String_500c8: ; 500c8 - db "CANCEL@" -; 500cf - - -Function500cf: ; 500cf - xor a - ld [wcda9], a - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, $0 - hlcoord 11, 2 -.asm_500de - push bc - push hl - call Function50389 - jr z, .asm_50103 - push hl - call Function50117 - pop hl - ld d, $6 - ld b, $0 - call DrawHPBar - ld hl, wcd9b - ld a, [wcda9] - ld c, a - ld b, $0 - add hl, bc - call SetHPPal - ld b, $fc - call GetSGBLayout - -.asm_50103 - ld hl, wcda9 - inc [hl] - pop hl - ld de, $0028 - add hl, de - pop bc - inc b - dec c - jr nz, .asm_500de - ld b, $a - call GetSGBLayout - ret -; 50117 - -Function50117: ; 50117 - ld a, b - ld bc, PartyMon2 - PartyMon1 - ld hl, PartyMon1HP - call AddNTimes - ld a, [hli] - or [hl] - jr nz, .asm_50129 - xor a - ld e, a - ld c, a - ret - -.asm_50129 - 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 Functionc699 - ret -; 50138 - -Function50138: ; 50138 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, $0 - hlcoord 13, 1 -.asm_50143 - push bc - push hl - call Function50389 - jr z, .asm_5016b - push hl - ld a, b - ld bc, PartyMon2 - PartyMon1 - 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, $f3 - ld [hli], a -rept 2 - inc de -endr - lb bc, 2, 3 - call PrintNum - -.asm_5016b - pop hl - ld de, $0028 - add hl, de - pop bc - inc b - dec c - jr nz, .asm_50143 - ret -; 50176 - -Function50176: ; 50176 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 8, 2 -.asm_50181 - push bc - push hl - call Function50389 - jr z, .asm_501a7 - push hl - ld a, b - ld bc, PartyMon2 - PartyMon1 - 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, .asm_501a1 - ld a, "<LV>" - ld [hli], a - ld bc, $4102 -.asm_501a1 - lb bc, PRINTNUM_RIGHTALIGN | 1, 3 - call PrintNum - -.asm_501a7 - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .asm_50181 - ret -; 501b2 - -Function501b2: ; 501b2 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 5, 2 -.asm_501bd - push bc - push hl - call Function50389 - jr z, .asm_501d5 - push hl - ld a, b - ld bc, PartyMon2 - PartyMon1 - ld hl, PartyMon1Status - call AddNTimes - ld e, l - ld d, h - pop hl - call Function50d0a - -.asm_501d5 - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .asm_501bd - ret -; 501e0 - -Function501e0: ; 501e0 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.asm_501eb - push bc - push hl - call Function50389 - jr z, .asm_5020a - 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 Function50215 - call PlaceString - -.asm_5020a - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .asm_501eb - ret -; 50215 - -Function50215: ; 50215 - ld a, c - and a - jr nz, .asm_5021d - ld de, String_50226 - ret - -.asm_5021d - ld de, String_50221 - ret -; 50221 - -String_50221: ; 50221 - db "ABLE@" -; 50226 - -String_50226: ; 50226 - db "NOT ABLE@" -; 5022f - - -Function5022f: ; 5022f - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.asm_5023a - push bc - push hl - call Function50389 - jr z, .asm_5025d - push hl - ld a, b - ld bc, PartyMon2 - PartyMon1 - 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 Function50268 - pop hl - call PlaceString - -.asm_5025d - pop hl - ld de, $0028 - add hl, de - pop bc - inc b - dec c - jr nz, .asm_5023a - ret -; 50268 - -Function50268: ; 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 -.asm_50287 - ld a, [hli] - and a - jr z, .asm_5029f -rept 2 - inc hl -endr - cp EVOLVE_ITEM - jr nz, .asm_50287 -rept 2 - dec hl -endr - ld a, [CurItem] - cp [hl] -rept 2 - inc hl -endr - jr nz, .asm_50287 - ld de, String_502a3 - ret - -.asm_5029f - ld de, String_502a8 - ret -; 502a3 - -String_502a3: ; 502a3 - db "ABLE@" -; 502a8 -String_502a8: ; 502a8 - db "NOT ABLE@" -; 502b1 - - -Function502b1: ; 502b1 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.asm_502bc - push bc - push hl - call Function50389 - jr z, .asm_502e3 - ld [CurPartySpecies], a - push hl - ld a, b - ld [CurPartyMon], a - 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 - -.asm_502df - pop hl - call PlaceString - -.asm_502e3 - pop hl - ld de, $0028 - add hl, de - pop bc - inc b - dec c - jr nz, .asm_502bc - ret -; 502ee - -String_502ee: ; 502ee - db "♂…MALE@" -; 502f5 - -String_502f5: ; 502f5 - db "♀…FEMALE@" -; 502fe - -String_502fe: ; 502fe - db "…UNKNOWN@" -; 50307 - - -Function50307: ; 50307 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 1 -.asm_50312 - push bc - push hl - ld de, String_50372 - call PlaceString - pop hl - ld de, $0028 - add hl, de - pop bc - inc b - dec c - jr nz, .asm_50312 - ld a, l - ld e, $b - sub e - ld l, a - ld a, h - sbc $0 - ld h, a - ld de, String_50379 - call PlaceString - ld b, $3 - ld c, $0 - ld hl, DefaultFlypoint - ld a, [hl] -.asm_5033b - push hl - push bc - hlcoord 12, 1 -.asm_50340 - and a - jr z, .asm_5034a - ld de, $0028 - add hl, de - dec a - jr .asm_50340 - -.asm_5034a - ld de, String_5036b - push hl - call PlaceString - pop hl - pop bc - push bc - push hl - ld a, c - ld hl, Strings_50383 - 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 .asm_5033b -; 5036b - -String_5036b: ; 5036b - db " ばんめ @" ; Place -; 50372 -String_50372: ; 50372 - db "さんかしない@" ; Cancel -; 50379 -String_50379: ; 50379 - db "けってい やめる@" ; Quit -; 50383 -Strings_50383: ; 50383 - db "1@", "2@", "3@" ; 1st, 2nd, 3rd -; 50389 - - -Function50389: ; 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 - -Function50396: ; 50396 - ld a, [PartyMenuActionText] - and $f0 - jr nz, .asm_503ae - ld a, [PartyMenuActionText] - and $f - ld e, a - ld d, 0 - ld hl, Unknown_503b2 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ret - -.asm_503ae - ld hl, Unknown_503c6 - ret -; 503b2 - -Unknown_503b2: ; 503b2 - dw Unknown_503c6 - dw Unknown_503c6 - dw Unknown_503c6 - dw Unknown_503cc - dw Unknown_503c6 - dw Unknown_503d1 - dw Unknown_503d6 - dw Unknown_503d6 - dw Unknown_503c6 - dw Unknown_503db -; 503c6 - -Unknown_503c6: db 0, 1, 2, 3, 4, $ff -Unknown_503cc: db 0, 5, 3, 4, $ff -Unknown_503d1: db 0, 6, 3, 4, $ff -Unknown_503d6: db 0, 7, 3, 4, $ff -Unknown_503db: 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 [wcfa9], 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 [wcfa9], 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, [wcfa9] ; 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, [wcfa9] - 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 - ld bc, $0212 - 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, PartyMon1Status - PartyMon1 - call GetPartyParamLocation - ld a, [hl] - and 1 << PSN - ret z - - ld a, PartyMon1HP - PartyMon1 - 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, PartyMon1Status - PartyMon1 - 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 UnknownScript_0x124c8 -; 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, PartyMon2 - PartyMon1 - 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 @@ -47340,11 +32171,11 @@ CopyPkmnToTempMon: ; 5084a ld a, [MonType] ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH and a jr z, .copywholestruct ld hl, OTPartyMon1Species - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH cp OTPARTYMON jr z, .copywholestruct ld bc, BOXMON_STRUCT_LENGTH @@ -47355,7 +32186,7 @@ CopyPkmnToTempMon: ; 5084a ld a, [CurPartyMon] call AddNTimes ld de, TempMon - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes .done @@ -47374,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 @@ -47403,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 @@ -47608,7 +32439,7 @@ DrawHP: ; 50b10 ld c, e .asm_50b41 - predef Functionc699 + predef DrawPartyMenuHPBar ld a, 6 ld d, a ld c, a @@ -47621,11 +32452,11 @@ DrawHP: ; 50b10 push de push hl push hl - call DrawHPBar + call DrawBattleHPBar pop hl ; Print HP - ld bc, $0015 ; move (1,1) + ld bc, $15 ; move (1,1) add hl, bc ld de, TempMonHP ld a, [MonType] @@ -47709,7 +32540,7 @@ GetGender: ; 50bdd ; 0: PartyMon ld hl, PartyMon1DVs - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [MonType] and a jr z, .PartyMon @@ -47721,7 +32552,7 @@ GetGender: ; 50bdd ; 2: sBoxMon ld hl, sBoxMon1DVs - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH dec a jr z, .sBoxMon @@ -47848,12 +32679,12 @@ endr push bc push hl push de - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] push af ld [hl], b push hl - callab Functionf8ec + callab GetMaxPPOfMove pop hl pop af ld [hl], a @@ -47916,7 +32747,7 @@ Function50cd0: ; 50cd0 ret ; 50cdb -Function50cdb: ; 50cdb +Function50cdb: ; unreferenced predef push hl push hl ld hl, PartyMonNicknames @@ -47930,12 +32761,12 @@ Function50cdb: ; 50cdb cp EGG jr z, .asm_50d09 push hl - ld bc, $fff4 + ld bc, -12 add hl, bc ld b, $0 call DrawEnemyHP pop hl - ld bc, $0005 + ld bc, 5 add hl, bc push de call PrintLevel @@ -47946,7 +32777,7 @@ Function50cdb: ; 50cdb ; 50d0a -Function50d0a: ; 50d0a +PlaceStatusString: ; 50d0a push de rept 2 inc de @@ -47957,10 +32788,10 @@ endr ld a, [de] or b pop de - jr nz, Function50d2e + jr nz, PlaceNonFaintStatus push de ld de, FntString - call Function50d25 + call CopyStatusString pop de ld a, $1 and a @@ -47971,7 +32802,7 @@ FntString: ; 50d22 db "FNT@" ; 50d25 -Function50d25: ; 50d25 +CopyStatusString: ; 50d25 ld a, [de] inc de ld [hli], a @@ -47983,31 +32814,31 @@ Function50d25: ; 50d25 ret ; 50d2e -Function50d2e: ; 50d2e +PlaceNonFaintStatus: ; 50d2e push de ld a, [de] ld de, PsnString bit PSN, a - jr nz, .asm_50d53 + jr nz, .place ld de, BrnString bit BRN, a - jr nz, .asm_50d53 + jr nz, .place ld de, FrzString bit FRZ, a - jr nz, .asm_50d53 + jr nz, .place ld de, ParString bit PAR, a - jr nz, .asm_50d53 + jr nz, .place ld de, SlpString and SLP - jr z, .asm_50d59 + jr z, .no_status -.asm_50d53 - call Function50d25 +.place + call CopyStatusString ld a, $1 and a -.asm_50d59 +.no_status pop de ret ; 50d5b @@ -48132,43 +32963,43 @@ Function50db9: ; 50db9 ; 50e1b -Function50e1b: ; 50e1b +CalcLevel: ; 50e1b ld a, [TempMonSpecies] ld [CurSpecies], a call GetBaseData ld d, 1 -.asm_50e26 +.next_level inc d ld a, d cp (MAX_LEVEL + 1) % $100 - jr z, .asm_50e45 - call Function50e47 + jr z, .got_level + call CalcExpAtLevel push hl ld hl, TempMonExp + 2 - ld a, [hMultiplicand + 2] + ld a, [hProduct + 3] ld c, a ld a, [hld] sub c - ld a, [hMultiplicand + 1] + ld a, [hProduct + 2] ld c, a ld a, [hld] sbc c - ld a, [hMultiplicand + 0] + ld a, [hProduct + 1] ld c, a ld a, [hl] sbc c pop hl - jr nc, .asm_50e26 + jr nc, .next_level -.asm_50e45 +.got_level dec d ret ; 50e47 -Function50e47: ; 50e47 - +CalcExpAtLevel: ; 50e47 +; (a/b)*n**3 + c*n**2 + d*n - e ld a, [BaseGrowthRate] rept 2 add a @@ -48177,36 +33008,38 @@ endr ld b, 0 ld hl, GrowthRates add hl, bc - call Function50eed +; Cube the level + call .LevelSquared ld a, d ld [hMultiplier], a call Multiply +; Multiply by a ld a, [hl] and $f0 swap a ld [hMultiplier], a call Multiply - +; Divide by b ld a, [hli] and $f ld [hDivisor], a - ld b, $4 + ld b, 4 call Divide - +; Push the cubic term to the stack ld a, [hQuotient + 0] push af ld a, [hQuotient + 1] push af ld a, [hQuotient + 2] push af - - call Function50eed +; Square the level and multiply by the lower 7 bits of c + call .LevelSquared ld a, [hl] and $7f ld [hMultiplier], a call Multiply - +; Push the absolute value of the quadratic term to the stack ld a, [hProduct + 1] push af ld a, [hProduct + 2] @@ -48215,7 +33048,7 @@ endr push af ld a, [hli] push af - +; Multiply the level by d xor a ld [hMultiplicand + 0], a ld [hMultiplicand + 1], a @@ -48224,68 +33057,70 @@ endr ld a, [hli] ld [hMultiplier], a call Multiply - +; Subtract e ld b, [hl] ld a, [hProduct + 3] sub b - ld [$ffb6], a + ld [hMultiplicand + 2], a ld b, $0 ld a, [hProduct + 2] sbc b - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, [hProduct + 1] sbc b ld [hMultiplicand], a - +; If bit 7 of c is set, c is negative; otherwise, it's positive pop af and $80 - jr nz, .asm_50ec8 - + jr nz, .subtract +; Add c*n**2 to (d*n - e) pop bc - ld a, [$ffb6] + ld a, [hProduct + 3] add b - ld [$ffb6], a + ld [hMultiplicand + 2], a pop bc - ld a, [$ffb5] + ld a, [hProduct + 2] adc b - ld [$ffb5], a + ld [hMultiplicand + 1], a pop bc - ld a, [hMultiplicand] + ld a, [hProduct + 1] adc b ld [hMultiplicand], a - jr .asm_50eda + jr .done_quadratic -.asm_50ec8 +.subtract +; Subtract c*n**2 from (d*n - e) pop bc - ld a, [$ffb6] + ld a, [hProduct + 3] sub b - ld [$ffb6], a + ld [hMultiplicand + 2], a pop bc - ld a, [$ffb5] + ld a, [hProduct + 2] sbc b - ld [$ffb5], a + ld [hMultiplicand + 1], a pop bc - ld a, [hMultiplicand] + ld a, [hProduct + 1] sbc b ld [hMultiplicand], a -.asm_50eda +.done_quadratic +; Add (a/b)*n**3 to (d*n - e +/- c*n**2) pop bc - ld a, [$ffb6] + ld a, [hProduct + 3] add b - ld [$ffb6], a + ld [hMultiplicand + 2], a pop bc - ld a, [$ffb5] + ld a, [hProduct + 2] adc b - ld [$ffb5], a + ld [hMultiplicand + 1], a pop bc - ld a, [hMultiplicand] + ld a, [hProduct + 1] adc b ld [hMultiplicand], a ret ; 50eed -Function50eed: ; 50eed +.LevelSquared: ; 50eed xor a ld [hMultiplicand + 0], a ld [hMultiplicand + 1], a @@ -48316,25 +33151,25 @@ ENDM growth_rate 5, 4, 0, 0, 0 ; Slow ; 50f12 -Function50f12: +_SwitchPartyMons: ld a, [wd0e3] dec a ld [wd1ec], a ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [Buffer2], a ; wd1eb (aliases: MovementType) cp b - jr z, .asm_50f33 - call Function50f62 + jr z, .skip + call .SwapPartymonViaSRAM ld a, [wd1ec] - call Function50f34 + call .ClearSprite ld a, [Buffer2] ; wd1eb (aliases: MovementType) - call Function50f34 -.asm_50f33 + call .ClearSprite +.skip ret -Function50f34: ; 50f34 (14:4f34) +.ClearSprite: ; 50f34 (14:4f34) push af hlcoord 0, 1 ld bc, 2 * SCREEN_WIDTH @@ -48348,16 +33183,16 @@ Function50f34: ; 50f34 (14:4f34) call AddNTimes ld de, $4 ld c, $4 -.asm_50f55 +.gfx_loop ld [hl], $a0 add hl, de dec c - jr nz, .asm_50f55 + jr nz, .gfx_loop ld de, SFX_SWITCH_POKEMON call WaitPlaySFX ret -Function50f62: ; 50f62 (14:4f62) +.SwapPartymonViaSRAM: ; 50f62 (14:4f62) push hl push de push bc @@ -48368,7 +33203,7 @@ Function50f62: ; 50f62 (14:4f62) add hl, bc ld d, h ld e, l - ld a, [wd1ec] + ld a, [Buffer3] ld l, a ld h, $0 add hl, bc @@ -48380,73 +33215,73 @@ Function50f62: ; 50f62 (14:4f62) ld [de], a ld a, [Buffer2] ; wd1eb (aliases: MovementType) ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes push hl - ld de, DefaultFlypoint - ld bc, $30 + ld de, wd002 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes - ld a, [wd1ec] + ld a, [Buffer3] ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop de push hl - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes pop de - ld hl, DefaultFlypoint - ld bc, $30 + ld hl, wd002 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes ld a, [Buffer2] ; wd1eb (aliases: MovementType) ld hl, PartyMonOT call SkipNames push hl - call Function51036 - ld a, [wd1ec] + call .CopyNameTowd002 + ld a, [Buffer3] ld hl, PartyMonOT call SkipNames pop de push hl - call Function51039 + call .CopyName pop de - ld hl, DefaultFlypoint - call Function51039 + ld hl, wd002 + call .CopyName ld hl, PartyMonNicknames ld a, [Buffer2] ; wd1eb (aliases: MovementType) call SkipNames push hl - call Function51036 + call .CopyNameTowd002 ld hl, PartyMonNicknames - ld a, [wd1ec] + ld a, [Buffer3] call SkipNames pop de push hl - call Function51039 + call .CopyName pop de - ld hl, DefaultFlypoint - call Function51039 - ld hl, s0_a600 + ld hl, wd002 + call .CopyName + ld hl, sPartyScratch1 ld a, [Buffer2] ; wd1eb (aliases: MovementType) - ld bc, $2f + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes push hl - ld de, DefaultFlypoint - ld bc, $2f - ld a, BANK(s0_a600) + ld de, wd002 + ld bc, SCRATCHMON_STRUCT_LENGTH + ld a, BANK(sPartyScratch1) call GetSRAMBank call CopyBytes - ld hl, s0_a600 - ld a, [wd1ec] - ld bc, $2f + ld hl, sPartyScratch1 + ld a, [Buffer3] + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes pop de push hl - ld bc, $2f + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop de - ld hl, DefaultFlypoint - ld bc, $2f + ld hl, wd002 + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes call CloseSRAM pop bc @@ -48454,11 +33289,11 @@ Function50f62: ; 50f62 (14:4f62) pop hl ret -Function51036: ; 51036 (14:5036) - ld de, DefaultFlypoint +.CopyNameTowd002: ; 51036 (14:5036) + ld de, wd002 -Function51039: ; 51039 (14:5039) - ld bc, $b +.CopyName: ; 51039 (14:5039) + ld bc, NAME_LENGTH call CopyBytes ret @@ -48503,7 +33338,7 @@ GetUnownLetter: ; 51040 ld [hDividend + 2], a ld a, 10 ld [hDivisor], a - ld b, $4 + ld b, 4 call Divide ; Increment to get 1-26 @@ -48997,7 +33832,7 @@ Function51322: ; 51322 dec a ld [wd265], a ld hl, sBoxMons - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH ld de, wd018 call Function513e0 ld hl, wd01a @@ -49035,7 +33870,7 @@ Function5138b: ; 5138b dec a ld [wd265], a ld hl, PartyMons - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld de, wd018 call Function513e0 ret @@ -49590,7 +34425,7 @@ CheckEdgeWarp: ; 80226 and 3 cp e jr nz, .asm_80259 - call Function224a ; CheckFallPit? + call WarpCheck ; CheckFallPit? jr nc, .asm_80259 call StandInPlace @@ -49809,24 +34644,24 @@ Function8036f: ; 8036f bit 0, [hl] jr z, .asm_8039c - ld hl, $0007 + ld hl, $7 add hl, bc ld a, [hl] cp $ff jr nz, .asm_8039c - ld hl, $0006 + ld hl, $6 add hl, bc bit 6, [hl] jr z, .asm_8039c - ld hl, $0005 + ld hl, $5 add hl, bc set 2, [hl] ld a, [WalkingDirection] ld d, a - ld hl, $0020 + ld hl, $20 add hl, bc ld a, [hl] and $fc @@ -49951,7 +34786,7 @@ WaterToLandSprite: ; 803f9 push bc ld a, PLAYER_NORMAL ld [PlayerState], a - call Special_ReplaceKrisSprite ; UpdateSprites + call ReplaceKrisSprite ; UpdateSprites pop bc ret ; 80404 @@ -50284,7 +35119,7 @@ ColorTest: ; 818ac ; 818f4 Function818f4: ; 818f4 - ld a, [DefaultFlypoint] + ld a, [wd002] and a jr nz, Function81911 ld hl, PokemonPalettes @@ -50297,7 +35132,7 @@ Function818fd: ; 818fd push hl call Function81928 pop hl - ld bc, $0008 + ld bc, 8 add hl, bc pop bc dec c @@ -50313,7 +35148,7 @@ Function81911: ; 81911 push hl call Function81928 pop hl - ld bc, $0004 + ld bc, 4 add hl, bc pop bc dec c @@ -50372,15 +35207,15 @@ Function81948: ; 81948 Function8197c: ; 8197c ld hl, DebugColorTestGFX + $10 ld de, VTiles2 tile $6a - ld bc, $0160 + ld bc, $160 call CopyBytes ld hl, DebugColorTestGFX ld de, VTiles0 - ld bc, $0010 + ld bc, $10 call CopyBytes - call Functione51 + call LoadStandardFont ld hl, VTiles1 - ld bc, $0800 + lb bc, 8, 0 .asm_8199d ld a, [hl] xor $ff @@ -50402,7 +35237,7 @@ Function819a7: ; 819a7 ld [rSVBK], a ld hl, Palette_819f4 ld de, BGPals - ld bc, $0080 + ld bc, $80 call CopyBytes ld a, $80 ld [rBGPI], a @@ -50580,7 +35415,7 @@ endr Function81ac3: ; 81ac3 ; Looping back around the pic set. - ld a, [DefaultFlypoint] + ld a, [wd002] and a jr nz, .asm_81acc ld a, NUM_POKEMON ; CELEBI @@ -50629,7 +35464,7 @@ Function81adb: ; 81adb ld de, wd265 lb bc, PRINTNUM_LEADINGZEROS | 1, 3 call PrintNum - ld a, [DefaultFlypoint] + ld a, [wd002] and a jr nz, .asm_81b7a ld a, $1 @@ -50640,13 +35475,13 @@ Function81adb: ; 81adb xor a ld [wc2c6], a hlcoord 12, 3 - call Function378b + call _PrepMonFrontpic ld de, VTiles2 tile $31 predef GetBackpic ld a, $31 - ld [$ffad], a + ld [hFillBox], a hlcoord 2, 4 - ld bc, $0606 + lb bc, 6, 6 predef FillBox ld a, [wd003] and a @@ -50676,7 +35511,7 @@ Function81adb: ; 81adb callab GetTrainerPic xor a ld [TempEnemyMonSpecies], a - ld [$ffad], a + ld [hFillBox], a hlcoord 2, 3 lb bc, 7, 7 predef FillBox @@ -50709,13 +35544,13 @@ Function81bde: ; 81bde push af ld a, $6a ld [hli], a - ld bc, $000f + ld bc, $f ld a, $6b call ByteFill ld l, e ld h, d pop af - ld bc, $0028 + ld bc, $28 call ByteFill ret ; 81bf4 @@ -50731,7 +35566,7 @@ endr ld de, OverworldMap add hl, de ld de, wc608 - ld bc, $0004 + ld bc, 4 call CopyBytes xor a ld [wcf64], a @@ -50866,7 +35701,7 @@ endr ret .asm_81ce5 - ld a, [DefaultFlypoint] + ld a, [wd002] and a ret nz ld a, [wd003] @@ -50986,7 +35821,7 @@ Function81d89: ; 81d89 Function81d8e: ; 81d8e hlcoord 0, 10 - ld bc, $00a0 + ld bc, $a0 ld a, $6f call ByteFill hlcoord 2, 12 @@ -51108,7 +35943,7 @@ endr ; 81e5e Function81e5e: ; 81e5e - ld bc, $000a + ld bc, $a ld a, $6f call ByteFill ret @@ -51189,7 +36024,7 @@ endr ld e, l ld d, h ld hl, wc608 - ld bc, $0004 + ld bc, 4 call CopyBytes ret ; 81ee3 @@ -51389,9 +36224,9 @@ TilesetColorTest: ld [wcf64], a ld [wcf65], a ld [wcf66], a - ld [$ffde], a + ld [hMapAnims], a call ClearSprites - call Function2173 + call OverworldTextModeSwitch call Function3200 xor a ld [hBGMapMode], a @@ -51413,16 +36248,16 @@ TilesetColorTest: ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, $7 call ByteFill - ld de, $0015 + ld de, $15 ld a, $6c call Function821d2 - ld de, $001a + ld de, $1a ld a, $6d call Function821d2 - ld de, $001f + ld de, $1f ld a, $6e call Function821d2 - ld de, $0024 + ld de, $24 ld a, $6f call Function821d2 call Function821f4 @@ -51447,12 +36282,12 @@ Function821de: ; 821de rept 4 ld [hli], a endr - ld bc, $0010 + ld bc, $10 add hl, bc rept 4 ld [hli], a endr - ld bc, $0010 + ld bc, $10 add hl, bc rept 4 ld [hli], a @@ -51487,10 +36322,10 @@ Function8220f: ; 8220f rept 3 add hl, hl endr - ld de, Unkn1Pals + ld de, wMapPals add hl, de ld de, wc608 - ld bc, $0008 + ld bc, 8 call CopyBytes ld de, wc608 call Function81ea5 @@ -51522,13 +36357,13 @@ Function82236: ; 82236 .asm_82253 ld [hl], a - ld de, $0015 + ld de, $15 call Function821d8 - ld de, $001a + ld de, $1a call Function821d8 - ld de, $001f + ld de, $1f call Function821d8 - ld de, $0024 + ld de, $24 call Function821d8 ld a, [rSVBK] push af @@ -51536,16 +36371,16 @@ Function82236: ; 82236 ld [rSVBK], a ld hl, BGPals ld a, [wcf64] - ld bc, $0008 + ld bc, 8 call AddNTimes ld de, wc608 - ld bc, $0008 + ld bc, 8 call CopyBytes pop af ld [rSVBK], a ld a, $2 ld [hBGMapMode], a - ld c, $3 + ld c, 3 call DelayFrames ld a, $1 ld [hBGMapMode], a @@ -51566,12 +36401,12 @@ Function822a3: ; 822a3 ld [rSVBK], a ld hl, BGPals ld a, [wcf64] - ld bc, $0008 + ld bc, 8 call AddNTimes ld e, l ld d, h ld hl, wc608 - ld bc, $0008 + ld bc, 8 call CopyBytes hlcoord 1, 0 ld de, wc608 @@ -51764,7 +36599,7 @@ SECTION "bank21", ROMX, BANK[$21] Function84000: ; 84000 ld hl, OverworldMap - ld bc, $040c + lb bc, 4, 12 xor a call Function842ab xor a @@ -51951,24 +36786,26 @@ Function84143: ; 84143 (21:4143) ret nz ld a, [wca88] cp $ff - jr nz, .asm_84156 + jr nz, .printer_connected ld a, [wca89] cp $ff - jr z, .asm_84172 -.asm_84156 + jr z, .printer_error + +.printer_connected ld a, [wca88] cp $81 - jr nz, .asm_84172 + jr nz, .printer_error ld a, [wca89] cp $0 - jr nz, .asm_84172 + jr nz, .printer_error ld hl, wc2d4 set 1, [hl] ld a, $5 ld [wca8a], a call Function84059 ret -.asm_84172 + +.printer_error ld a, $ff ld [wca88], a ld [wca89], a @@ -52030,11 +36867,11 @@ Function841c3: ; 841c3 (21:41c3) ld a, $1 ld [wc2d5], a ld a, $88 - ld [rSB], a ; $ff00+$1 + ld [rSB], a ld a, $1 - ld [rSC], a ; $ff00+$2 + ld [rSC], a ld a, $81 - ld [rSC], a ; $ff00+$2 + ld [rSC], a ret Function841e2: ; 841e2 (21:41e2) @@ -52071,7 +36908,7 @@ endr ret Function84219: ; 84219 (21:4219) - ld hl, $0 + ld hl, 0 ld bc, $4 ld de, wca82 call Function8423c @@ -52323,7 +37160,7 @@ Function8439f: ; 8439f (21:439f) ret Function843a8: ; 843a8 (21:43a8) - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld [wca88], a ld a, $0 call Function843db @@ -52331,7 +37168,7 @@ Function843a8: ; 843a8 (21:43a8) ret Function843b6: ; 843b6 (21:43b6) - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld [wca89], a xor a ld [wc2d5], a @@ -52356,15 +37193,15 @@ Function843d2: ; 843d2 (21:43d2) ret Function843db: ; 843db (21:43db) - ld [rSB], a ; $ff00+$1 + ld [rSB], a ld a, $1 - ld [rSC], a ; $ff00+$2 + ld [rSC], a ld a, $81 - ld [rSC], a ; $ff00+$2 + ld [rSC], a ret Function843e6: ; 843e6 (21:43e6) - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld [wca89], a xor a ld [wc2d5], a @@ -52410,7 +37247,7 @@ Function84419: ; 84419 ; 84425 Function84425: ; 84425 - call Function222a + call ReturnToMapFromSubmenu call Function84753 ret ; 8442c @@ -52449,7 +37286,7 @@ Function8442c: ; 8442c call Function843f0 jr c, .asm_8449d call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -52499,48 +37336,48 @@ Function844bc: ; 844bc (21:44bc) ld [$ffac], a ld [wd003], a call Function8474c - ld a, [rIE] ; $ff00+$ff + ld a, [rIE] push af xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a ld a, $9 - ld [rIE], a ; $ff00+$ff + ld [rIE], a ld hl, hVBlank ld a, [hl] push af ld [hl], $4 xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function84817 ld a, $10 call Function84419 call Function84559 jr c, .asm_84545 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function8486f ld a, $0 call Function84419 call Function84559 jr c, .asm_84545 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function84893 ld a, $0 call Function84419 call Function84559 jr c, .asm_84545 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function848b7 ld a, $3 call Function84419 @@ -52550,9 +37387,9 @@ Function844bc: ; 844bc (21:44bc) ld [hVBlank], a call Function84411 xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a pop af - ld [rIE], a ; $ff00+$ff + ld [rIE], a call Function84425 pop af ld [wcf65], a @@ -52692,7 +37529,7 @@ Function8461a: ; 8461a call Function843f0 jr c, .asm_84671 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -52744,7 +37581,7 @@ Function84688: ; 84688 call Function843f0 jr c, .asm_846e2 call Function84411 - ld c, $c + ld c, 12 call DelayFrames call LoadTileMapToTempTileMap xor a @@ -52846,34 +37683,35 @@ Function84753: ; 84753 Function84757: ; 84757 ld a, [wca88] cp -1 - jr nz, .c_directly_below_e5 + jr nz, .printer_connected ld a, [wca89] cp -1 - jr z, .asm_8477f + jr z, .error_2 -.c_directly_below_e5 +.printer_connected ld a, [wca89] - and $e0 - ret z + and %11100000 + ret z ; no error + bit 7, a - jr nz, .asm_8477b + jr nz, .error_1 bit 6, a - jr nz, .asm_84777 - ld a, $6 - jr .asm_84781 + jr nz, .error_4 + ld a, 6 ; error 3 + jr .load_text_index -.asm_84777 - ld a, $7 - jr .asm_84781 +.error_4 + ld a, 7 ; error 4 + jr .load_text_index -.asm_8477b - ld a, $4 - jr .asm_84781 +.error_1 + ld a, 4 ; error 1 + jr .load_text_index -.asm_8477f - ld a, $5 +.error_2 + ld a, 5 ; error 2 -.asm_84781 +.load_text_index ld [wcbf8], a ret ; 84785 @@ -52886,12 +37724,12 @@ Function84785: ; 84785 xor a ld [hBGMapMode], a hlcoord 0, 5 - ld bc, $0a12 + lb bc, 10, 18 call TextBox pop af ld e, a ld d, 0 - ld hl, Unknown_84807 + ld hl, PrinterStatusStringPointers rept 2 add hl, de endr @@ -52902,7 +37740,7 @@ endr ld a, BANK(GBPrinterStrings) call FarString hlcoord 2, 15 - ld de, String_847f5 + ld de, String_PressBToCancel call PlaceString ld a, $1 ld [hBGMapMode], a @@ -52924,7 +37762,7 @@ Function847bd: ; 847bd pop af ld e, a ld d, 0 - ld hl, Unknown_84807 + ld hl, PrinterStatusStringPointers rept 2 add hl, de endr @@ -52935,7 +37773,7 @@ endr ld a, BANK(GBPrinterStrings) call FarString hlcoord 4, 15 - ld de, String_847f5 + ld de, String_PressBToCancel call PlaceString ld a, $1 ld [hBGMapMode], a @@ -52944,19 +37782,19 @@ endr ret ; 847f5 -String_847f5: +String_PressBToCancel: db "Press B to Cancel@" ; 84807 -Unknown_84807: ; 84807 - dw String_1dc275 - dw String_1dc276 - dw String_1dc289 - dw String_1dc29c - dw String_1dc2ad - dw String_1dc2e2 - dw String_1dc317 - dw String_1dc34c +PrinterStatusStringPointers: ; 84807 + dw String_1dc275 ; @ + dw String_1dc276 ; CHECKING LINK + dw String_1dc289 ; TRANSMITTING + dw String_1dc29c ; PRINTING + dw String_1dc2ad ; error 1 + dw String_1dc2e2 ; error 2 + dw String_1dc317 ; error 3 + dw String_1dc34c ; error 4 ; 84817 Function84817: ; 84817 (21:4817) @@ -52977,7 +37815,7 @@ Function84817: ; 84817 (21:4817) ld de, String_84865 call PlaceString ld a, [wd007] - ld bc, 9 + ld bc, BOX_NAME_LENGTH ld hl, wBoxNames call AddNTimes ld d, h @@ -53102,7 +37940,7 @@ Function848ed: ; 848ed (21:48ed) ld bc, $372 add hl, bc ld bc, $b - ld a, [DefaultFlypoint] + ld a, [wd002] call AddNTimes ld e, l ld d, h @@ -53120,13 +37958,13 @@ Function848ed: ; 848ed (21:48ed) ld bc, $35 add hl, bc ld bc, $20 - ld a, [DefaultFlypoint] + ld a, [wd002] call AddNTimes ld a, [hl] pop hl call Function383d .ok2 - ld hl, DefaultFlypoint + ld hl, wd002 inc [hl] pop de pop hl @@ -53153,7 +37991,7 @@ Function8498a: ; 8498a (21:498a) ld bc, $2b add hl, bc ld bc, $20 - ld a, [DefaultFlypoint] + ld a, [wd002] call AddNTimes ld de, TempMonDVs ld a, [hli] @@ -53161,7 +37999,7 @@ Function8498a: ; 8498a (21:498a) inc de ld a, [hli] ld [de], a - ld a, [DefaultFlypoint] + ld a, [wd002] ld [CurPartyMon], a ld a, $3 ld [MonType], a @@ -53299,12 +38137,12 @@ RedCredits:: ; 86455 ld [MusicFadeIDHi], a ld a, $a ld [MusicFade], a - callba FadeBlackBGMap + callba FadeOutPalettes xor a ld [VramState], a - ld [$ffde], a + ld [hMapAnims], a callba Function4e8c2 - ld c, $8 + ld c, 8 call DelayFrames call DisableSpriteUpdates ld a, SPAWN_RED @@ -53322,10 +38160,10 @@ Function8648e: ; 8648e ld [MusicFadeIDHi], a ld a, 10 ld [MusicFade], a - callba FadeBlackBGMap + callba FadeOutPalettes xor a ld [VramState], a - ld [$ffde], a + ld [hMapAnims], a callba Function4e881 ld c, 100 jp DelayFrames @@ -53355,7 +38193,7 @@ Function864c3: ; 864c3 cp 6 jr nc, .done ld hl, wc608 + 1 - ld bc, $0010 + ld bc, $10 call AddNTimes ld a, [hl] cp -1 @@ -53374,7 +38212,7 @@ Function864c3: ; 864c3 ld a, $4 ld [MusicFade], a call FadeToWhite - ld c, $8 + ld c, 8 call DelayFrames ret ; 8650c @@ -53426,18 +38264,18 @@ GetHallOfFameParty: ; 8653f ld a, c ld hl, PartyMons - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld c, l ld b, h - ld hl, PartyMon1Species - PartyMon1 + ld hl, MON_SPECIES add hl, bc ld a, [hl] ld [de], a inc de - ld hl, PartyMon1ID - PartyMon1 + ld hl, MON_ID add hl, bc ld a, [hli] ld [de], a @@ -53446,7 +38284,7 @@ GetHallOfFameParty: ; 8653f ld [de], a inc de - ld hl, PartyMon1DVs - PartyMon1 + ld hl, MON_DVS add hl, bc ld a, [hli] ld [de], a @@ -53455,7 +38293,7 @@ GetHallOfFameParty: ; 8653f ld [de], a inc de - ld hl, PartyMon1Level - PartyMon1 + ld hl, MON_LEVEL add hl, bc ld a, [hl] ld [de], a @@ -53488,7 +38326,7 @@ GetHallOfFameParty: ; 8653f Function865b5: ; 865b5 push hl - call WhiteBGMap + call ClearBGPalettes callba Function4e906 pop hl ld a, [hli] @@ -53510,9 +38348,9 @@ endr ld de, VTiles2 tile $31 predef GetBackpic ld a, $31 - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 6 - ld bc, $0606 + lb bc, 6, 6 predef FillBox ld a, $d0 ld [hSCY], a @@ -53532,7 +38370,7 @@ endr ld a, " " call ByteFill hlcoord 6, 5 - call Function378b + call _PrepMonFrontpic call WaitBGMap xor a ld [hBGMapMode], a @@ -53621,7 +38459,7 @@ Function86692: ; 86692 cp $6 jr nc, .asm_866a7 ld hl, wc608 + 1 - ld bc, $0010 + ld bc, $10 call AddNTimes ld a, [hl] cp $ff @@ -53633,7 +38471,7 @@ Function86692: ; 86692 .asm_866a9 push hl - call WhiteBGMap + call ClearBGPalettes pop hl call Function86748 ld a, [wc608] @@ -53747,7 +38585,7 @@ Function86748: ; 86748 xor a ld [wc2c6], a hlcoord 6, 5 - call Function378b + call _PrepMonFrontpic ld a, [CurPartySpecies] cp EGG jr z, .asm_867f8 @@ -53797,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 @@ -53808,7 +38646,7 @@ Function86810: ; 86810 call ByteFill callba GetPlayerBackpic ld a, $31 - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 6 lb bc, 6, 6 predef FillBox @@ -53832,7 +38670,7 @@ Function86810: ; 86810 call ByteFill callba Function88840 xor a - ld [$ffad], a + ld [hFillBox], a hlcoord 12, 5 lb bc, 7, 7 predef FillBox @@ -53846,10 +38684,10 @@ Function86810: ; 86810 xor a ld [hBGMapMode], a hlcoord 0, 2 - ld bc, $0809 + lb bc, 8, 9 call TextBox hlcoord 0, 12 - ld bc, $0412 + lb bc, 4, 18 call TextBox hlcoord 2, 4 ld de, PlayerName @@ -53958,9 +38796,9 @@ ShowPlayerNamingChoices: ; 88297 .GotGender call LoadMenuDataHeader call InterpretMenu2 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a - call Function1db8 + call CopyNameFromMenu call WriteBackup ret ; 882b5 @@ -54148,7 +38986,7 @@ DrawIntroPlayerPic: ; 88874 ; Draw xor a - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 4 lb bc, 7, 7 predef FillBox @@ -54211,7 +39049,7 @@ Function8c7c9: ; unreferenced ret ; 8c7d4 -Function8c7d4: ; 8c7d4 +PlayWhirlpoolSound: ; 8c7d4 call WaitSFX ld de, SFX_SURF call PlaySFX @@ -54220,7 +39058,7 @@ Function8c7d4: ; 8c7d4 ; 8c7e1 BlindingFlash: ; 8c7e1 - callba FadeBlackBGMap + callba FadeOutPalettes ld hl, StatusFlags set 2, [hl] callba Function8c0e5 @@ -54228,15 +39066,15 @@ BlindingFlash: ; 8c7e1 ld b, $9 call GetSGBLayout callba Function49409 - callba FadeInBGMap + callba FadeInPalettes ret ; 8c80a ShakeHeadbuttTree: ; 8c80a callba Function8cf53 - ld de, GFX_8c9cc + ld de, CutGrassGFX ld hl, VTiles1 - lb bc, BANK(GFX_8c9cc), 4 + lb bc, BANK(CutGrassGFX), 4 call Request2bpp ld de, HeadbuttTreeGFX ld hl, VTiles1 tile $04 @@ -54245,7 +39083,7 @@ ShakeHeadbuttTree: ; 8c80a call Function8cad3 ld a, $1b call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $84 ld a, $90 @@ -54270,20 +39108,20 @@ ShakeHeadbuttTree: ; 8c80a jr .loop .done - call Function2173 + call OverworldTextModeSwitch call WaitBGMap xor a ld [hBGMapMode], a callba Function8cf53 ld hl, Sprites + $90 - ld bc, $0010 + ld bc, $10 xor a call ByteFill ld de, Font ld hl, VTiles1 lb bc, BANK(Font), $c call Get1bpp - call Special_ReplaceKrisSprite + call ReplaceKrisSprite ret ; 8c893 @@ -54324,57 +39162,56 @@ TreeRelativeLocationTable: ; 8c938 dwcoord 8 - 2, 8 ; DOWN dwcoord 8 + 2, 8 ; UP ; 8c940 -; 8c940 -Function8c940: ; 8c940 +OWCutAnimation: ; 8c940 ld a, e and $1 ld [wJumptableIndex], a - call Function8c96d + call .LoadCutGFX call WaitSFX ld de, SFX_PLACE_PUZZLE_PIECE_DOWN call PlaySFX -.asm_8c952 +.loop ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_8c96c + jr nz, .finish ld a, $90 ld [wc3b5], a callab Function8cf7a - call Function8ca0c + call OWCutJumptable call DelayFrame - jr .asm_8c952 + jr .loop -.asm_8c96c +.finish ret ; 8c96d -Function8c96d: ; 8c96d - callab Function8cf53 - ld de, GFX_8c9cc +.LoadCutGFX: ; 8c96d + callab Function8cf53 ; pointless to farcall + ld de, CutGrassGFX ld hl, VTiles1 - lb bc, BANK(GFX_8c9cc), 4 + lb bc, BANK(CutGrassGFX), 4 call Request2bpp ld de, CutTreeGFX - ld hl, VTiles1 + $40 + ld hl, VTiles1 tile $4 lb bc, BANK(CutTreeGFX), 4 call Request2bpp ret ; 8c98c CutTreeGFX: ; c898c -INCBIN "gfx/unknown/08c98c.2bpp" +INCBIN "gfx/misc/cut_tree.2bpp" ; c89cc -GFX_8c9cc: ; 8c9cc -INCBIN "gfx/unknown/08c9cc.2bpp" +CutGrassGFX: ; 8c9cc +INCBIN "gfx/misc/cut_grass.2bpp" ; 8ca0c -Function8ca0c: ; 8ca0c +OWCutJumptable: ; 8ca0c ld a, [wJumptableIndex] ld e, a ld d, 0 - ld hl, Jumptable_8ca1b + ld hl, .jumptable rept 2 add hl, de endr @@ -54385,7 +39222,7 @@ endr ; 8ca1b -Jumptable_8ca1b: ; 8ca1b (23:4a1b) +.jumptable: ; 8ca1b (23:4a1b) dw Function8ca23 dw Function8ca3c dw Function8ca5c @@ -54425,7 +39262,7 @@ Function8ca3c: ; 8ca3c (23:4a3c) Function8ca5c: ; 8ca5c (23:4a5c) ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld hl, wJumptableIndex inc [hl] @@ -54460,7 +39297,7 @@ Function8ca73: ; 8ca73 (23:4a73) ret Function8ca8e: ; 8ca8e (23:4a8e) - ld de, $0 + ld de, 0 ld a, [wd197] bit 0, a jr z, .asm_8ca9a @@ -54616,9 +39453,9 @@ endr Function8cb9b: ; 8cb9b (23:4b9b) callab Function8cf53 - ld de, GFX_8c9cc + ld de, CutGrassGFX ld hl, VTiles1 tile $00 - lb bc, BANK(GFX_8c9cc), 4 + lb bc, BANK(CutGrassGFX), 4 call Request2bpp ld a, [CurPartyMon] ld hl, PartySpecies @@ -54730,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 @@ -54787,7 +39624,7 @@ Function8ccc4: ; 8ccc4 ; 8ccc9 Function8ccc9: ; 8ccc9 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call DisableLCD callab Function8cf53 @@ -54810,7 +39647,7 @@ Function8ccc9: ; 8ccc9 ld hl, VTiles0 ld c, $4 call Request2bpp - ld hl, $00c0 + ld hl, $c0 add hl, de ld d, h ld e, l @@ -54918,11 +39755,11 @@ MagnetTrainBGTiles: ; 8cd82 Function8cda6: ; 8cda6 ld hl, LYOverrides - ld bc, $0090 + ld bc, $90 ld a, [wd192] call ByteFill ld hl, LYOverridesBackup - ld bc, $0090 + ld bc, $90 ld a, [wd192] call ByteFill ld a, $43 @@ -54936,25 +39773,25 @@ SetMagnetTrainPals: ; 8cdc3 ; bushes ld hl, VBGMap0 - ld bc, $0080 + ld bc, 8 tiles ld a, $2 call ByteFill ; train ld hl, VBGMap0 tile $08 - ld bc, $0140 + ld bc, 20 tiles xor a call ByteFill ; more bushes ld hl, VBGMap0 tile $1c - ld bc, $0080 + ld bc, 8 tiles ld a, $2 call ByteFill ; train window - ld hl, $9907 - ld bc, $0006 + ld hl, VBGMap0 tile $10 + 7 + ld bc, 6 ld a, $4 call ByteFill @@ -54995,7 +39832,7 @@ Function8ce14: ; 8ce14 Function8ce19: ; 8ce19 ld d, $55 - ld a, [wd195] + ld a, [wd194 + 1] ld e, a ld b, $15 ld a, [rSVBK] @@ -55012,7 +39849,7 @@ Function8ce19: ; 8ce19 ld [rSVBK], a ld a, b call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $0 call Function8ce14 @@ -55165,7 +40002,7 @@ Function8cf4f: ; 8cf4f Function8cf53: ; 8cf53 ld hl, wc300 - ld bc, $00c1 + ld bc, $c1 .asm_8cf59 ld [hl], $0 inc hl @@ -55200,35 +40037,36 @@ Function8cf69: ; 8cf69 ; 8cf7a Function8cf7a: ; 8cf7a - ld hl, wPartyMonMenuIconAnims - ld e, 10 ; Do this first loop 10 times + ld hl, wc314 + ld e, 10 ; There are 10 structs here. .loop ld a, [hl] and a - jr z, .next ; Done with this iteration + jr z, .next ; This struct is deinitialized. ld c, l ld b, h push hl push de - call Function8d24b + call Function8d24b ; Uses a massive jumptable call LoadBouncingMonIcon pop de pop hl jr c, .done .next - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .loop + ld a, [wc3b5] ld l, a ld h, Sprites / $0100 .loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd) ld a, l - cp SpritesEnd % $0100 + cp SpritesEnd % $100 jr nc, .done xor a ld [hli], a @@ -55239,7 +40077,7 @@ Function8cf7a: ; 8cf7a ; 8cfa8 Function8cfa8: ; 8cfa8 (23:4fa8) - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, 10 .loop @@ -55250,24 +40088,25 @@ Function8cfa8: ; 8cfa8 (23:4fa8) ld b, h push hl push de - call Function8d24b + call Function8d24b ; Uses a massive jumptable call LoadBouncingMonIcon pop de pop hl jr c, .done .next - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .loop ld a, [wc3b5] ld l, a - ld h, Sprites / $100 -.loop2 + ld h, (Sprites + $40) / $100 + +.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40) ld a, l - cp 4 * 16 + cp (Sprites + $40) % $100 jr nc, .done xor a ld [hli], a @@ -55277,26 +40116,32 @@ Function8cfa8: ; 8cfa8 (23:4fa8) ret Function8cfd6:: ; 8cfd6 +; Find if there's any room in the wc314 array, which is 10x16 push de push af - ld hl, wPartyMonMenuIconAnims - ld e, 2 * 4 + 2 ; 4 tiles for each frame, then one frame each for mail and item + ld hl, wc314 + ld e, 10 .loop ld a, [hl] and a jr z, .found - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .loop +; We've reached the end. There is no more room here. +; Return carry. pop af pop de scf ret .found +; Back up the structure address to bc. ld c, l ld b, h +; Value [wc3b4] is initially set to -1. Set it to +; the number of objects loaded into this array. ld hl, wc3b4 inc [hl] ld a, [hl] @@ -55305,6 +40150,7 @@ Function8cfd6:: ; 8cfd6 inc [hl] .initialized +; Get row a of Unknown_8d1c4, copy the pointer into de pop af ld e, a ld d, 0 @@ -55314,28 +40160,34 @@ rept 3 endr ld e, l ld d, h +; Set hl to the first field (field 0) in the current structure. ld hl, 0 add hl, bc +; Load the index. ld a, [wc3b4] ld [hli], a -; read from the table +; Copy the table entry to the next two fields. ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de +; Look up the third field from the table in the wc300 array (10x2). +; Take the value and load it in ld a, [de] - call Function8d109 + call LookUpInwDict_c300 ld [hli], a pop de - - ld hl, $0004 +; Set hl to field 4. Kinda pointless, because we're presumably already here. + ld hl, $4 add hl, bc +; Load the original value of de into here. ld a, e ld [hli], a ld a, d ld [hli], a +; load 0 into the next four fields xor a rept 2 ld [hli], a @@ -55344,21 +40196,25 @@ endr rept 2 ld [hli], a endr +; load -1 into the next field dec a ld [hli], a +; load 0 into the last five fields xor a rept 4 ld [hli], a endr ld [hl], a +; back up the address of the first field to wc3b8 ld a, c ld [wc3b8], a ld a, b - ld [wc3b9], a + ld [wc3b8 + 1], a ret ; 8d036 Function8d036: ; 8d036 +; Clear the index field of the struct in bc. ld hl, 0 add hl, bc ld [hl], $0 @@ -55367,9 +40223,10 @@ Function8d036: ; 8d036 Function8d03d: ; 8d03d (23:503d) - ld hl, wPartyMonMenuIconAnims +; Clear the index field of every struct in the wc314 array. + ld hl, wc314 ld bc, $10 - ld e, $a + ld e, 10 xor a .loop ld [hl], a @@ -55383,9 +40240,9 @@ LoadBouncingMonIcon: ; 8d04c ; Populate Sprites with the bouncing mon icons call Function8d0ec call Function8d132 - cp $fd + cp EGG jr z, .done - cp $fc + cp NUM_POKEMON + 1 jr z, .almost call Function8d1a2 ld a, [wc3ba] @@ -55505,7 +40362,7 @@ Function8d0de: ; 8d0de Function8d0ec: ; 8d0ec xor a ld [wc3b8], a - ld hl, $0003 + ld hl, $3 add hl, bc ld a, [hli] ld [wc3ba], a @@ -55520,12 +40377,13 @@ Function8d0ec: ; 8d0ec ret ; 8d109 -Function8d109: ; 8d109 +LookUpInwDict_c300: ; 8d109 +; a = wDict_c300[a] if a in wDict_c300 else 0 push hl push bc - ld hl, wc300 + ld hl, wDict_c300 ld b, a - ld c, $a + ld c, 10 .loop ld a, [hli] cp b @@ -55546,13 +40404,13 @@ Function8d109: ; 8d109 ; 8d120 Function8d120:: ; 8d120 - ld hl, $0001 + ld hl, $1 add hl, bc ld [hl], a - ld hl, $0008 + ld hl, $8 add hl, bc ld [hl], $0 - ld hl, $000a + ld hl, $a add hl, bc ld [hl], $ff ret @@ -55561,7 +40419,7 @@ Function8d120:: ; 8d120 Function8d132: ; 8d132 .loop - ld hl, $0008 + ld hl, $8 add hl, bc ld a, [hl] and a @@ -55573,7 +40431,7 @@ Function8d132: ; 8d132 jr .skip .ok - ld hl, $000a + ld hl, $a add hl, bc inc [hl] call Function8d189 @@ -55586,10 +40444,10 @@ Function8d132: ; 8d132 ld a, [hl] push hl and $3f - ld hl, $0009 + ld hl, $9 add hl, bc add [hl] - ld hl, $0008 + ld hl, $8 add hl, bc ld [hl], a pop hl @@ -55604,10 +40462,10 @@ Function8d132: ; 8d132 .minus_1 xor a - ld hl, $0008 + ld hl, $8 add hl, bc ld [hl], a - ld hl, $000a + ld hl, $a add hl, bc rept 2 dec [hl] @@ -55616,11 +40474,11 @@ endr .minus_2 xor a - ld hl, $0008 + ld hl, $8 add hl, bc ld [hl], a dec a - ld hl, $000a + ld hl, $a add hl, bc ld [hl], a jr .loop @@ -55629,7 +40487,7 @@ endr Function8d189: ; 8d189 ; Get the [bc+10]th entry in the data table ; indexed at [bc+1] in Unknown_8d6e6 - ld hl, $0001 + ld hl, $1 add hl, bc ld e, [hl] ld d, 0 @@ -55640,7 +40498,7 @@ endr ld e, [hl] inc hl ld d, [hl] - ld hl, $000a + ld hl, $a add hl, bc ld l, [hl] ld h, 0 @@ -55683,56 +40541,56 @@ endr ; 8d1c4 Unknown_8d1c4: ; 8d1c4 - db $01, $01, $00 ; 00 - db $07, $04, $00 ; 01 - db $08, $05, $05 ; 02 - db $0a, $06, $00 ; 03 - db $0b, $07, $06 ; 04 - db $0c, $08, $06 ; 05 - db $0d, $09, $07 ; 06 - db $0e, $0a, $07 ; 07 - db $10, $0b, $07 ; 08 - db $08, $0c, $05 ; 09 - db $11, $00, $00 ; 0a - db $12, $0d, $08 ; 0b - db $12, $0e, $08 ; 0c - db $12, $0f, $08 ; 0d - db $13, $10, $00 ; 0e - db $15, $00, $00 ; 0f - db $16, $11, $00 ; 10 - db $17, $12, $00 ; 11 - db $18, $12, $00 ; 12 - db $19, $13, $00 ; 13 - db $1a, $14, $00 ; 14 - db $1b, $00, $00 ; 15 - db $1d, $15, $00 ; 16 - db $1e, $00, $00 ; 17 - db $1d, $17, $00 ; 18 - db $1f, $00, $00 ; 19 - db $24, $19, $00 ; 1a - db $25, $00, $00 ; 1b - db $20, $13, $00 ; 1c - db $26, $1a, $00 ; 1d - db $2d, $00, $00 ; 1e - db $2e, $00, $00 ; 1f - db $2f, $00, $00 ; 20 - db $30, $00, $00 ; 21 - db $31, $00, $00 ; 22 - db $32, $1b, $00 ; 23 - db $33, $1c, $00 ; 24 - db $34, $00, $00 ; 25 - db $35, $1d, $00 ; 26 - db $37, $1e, $00 ; 27 - db $38, $1e, $00 ; 28 - db $39, $20, $00 ; 29 - db $3f, $21, $00 ; 2a - db $3e, $22, $00 ; 2b - db $40, $00, $00 ; 2c + db $01, JUMPTABLE_8D24B_FUNCTION_01, $00 ; 00 + db $07, JUMPTABLE_8D24B_FUNCTION_04, $00 ; 01 + db $08, JUMPTABLE_8D24B_FUNCTION_05, $05 ; 02 + db $0a, JUMPTABLE_8D24B_FUNCTION_06, $00 ; 03 + db $0b, JUMPTABLE_8D24B_FUNCTION_07, $06 ; 04 + db $0c, JUMPTABLE_8D24B_FUNCTION_08, $06 ; 05 + db $0d, JUMPTABLE_8D24B_FUNCTION_09, $07 ; 06 + db $0e, JUMPTABLE_8D24B_FUNCTION_0A, $07 ; 07 + db $10, JUMPTABLE_8D24B_FUNCTION_0B, $07 ; 08 + db $08, JUMPTABLE_8D24B_FUNCTION_0C, $05 ; 09 + db $11, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0a + db $12, JUMPTABLE_8D24B_FUNCTION_0D, $08 ; 0b + db $12, JUMPTABLE_8D24B_FUNCTION_0E, $08 ; 0c + db $12, JUMPTABLE_8D24B_FUNCTION_0F, $08 ; 0d + db $13, JUMPTABLE_8D24B_FUNCTION_10, $00 ; 0e + db $15, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0f + db $16, JUMPTABLE_8D24B_FUNCTION_11, $00 ; 10 + db $17, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 11 + db $18, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 12 + db $19, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 13 + db $1a, JUMPTABLE_8D24B_FUNCTION_14, $00 ; 14 + db $1b, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 15 + db $1d, JUMPTABLE_8D24B_FUNCTION_15, $00 ; 16 + db $1e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 17 + db $1d, JUMPTABLE_8D24B_FUNCTION_17, $00 ; 18 + db $1f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 19 + db $24, JUMPTABLE_8D24B_FUNCTION_19, $00 ; 1a + db $25, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1b + db $20, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 1c + db $26, JUMPTABLE_8D24B_FUNCTION_1A, $00 ; 1d + db $2d, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1e + db $2e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1f + db $2f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 20 + db $30, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 21 + db $31, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 22 + db $32, JUMPTABLE_8D24B_FUNCTION_1B, $00 ; 23 + db $33, JUMPTABLE_8D24B_FUNCTION_1C, $00 ; 24 + db $34, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 25 + db $35, JUMPTABLE_8D24B_FUNCTION_1D, $00 ; 26 + db $37, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 27 + db $38, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 28 + db $39, JUMPTABLE_8D24B_FUNCTION_20, $00 ; 29 + db $3f, JUMPTABLE_8D24B_FUNCTION_21, $00 ; 2a + db $3e, JUMPTABLE_8D24B_FUNCTION_22, $00 ; 2b + db $40, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 2c ; 8d24b Function8d24b: ; 8d24b - ld hl, $0002 + ld hl, $2 ; field 2, see the second column in the above table add hl, bc ld e, [hl] ld d, 0 @@ -55789,8 +40647,8 @@ endr ret .one: ; 8d2a2 (23:52a2) - ld a, [wcfa9] - ld hl, $0 + ld a, [MenuSelection2] + ld hl, 0 add hl, bc cp [hl] jr z, .two @@ -55840,8 +40698,8 @@ endr ret .three: ; 8d2ea (23:52ea) - ld a, [wcfa9] - ld hl, $0 + ld a, [MenuSelection2] + ld hl, 0 add hl, bc cp [hl] jr z, .asm_8d2fb @@ -55870,44 +40728,44 @@ endr ld hl, 0 add hl, bc ld a, [hl] - ld hl, $000d + ld hl, $d add hl, bc and $3 ld [hl], a inc [hl] swap a - ld hl, $000c + ld hl, $c add hl, bc ld [hl], a .four_one: ; 8d321 - ld hl, $0004 + ld hl, $4 add hl, bc ld a, [hl] cp $a4 jr nc, .asm_8d356 - ld hl, $000d + ld hl, $d add hl, bc add $4 - ld hl, $0004 + ld hl, $4 add hl, bc ld [hl], a - ld hl, $0005 + ld hl, $5 add hl, bc inc [hl] - ld hl, $000d + ld hl, $d add hl, bc ld a, [hl] sla a sla a ld d, $2 - ld hl, $000c + ld hl, $c add hl, bc ld a, [hl] add $3 ld [hl], a call Function8d6de - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], a ret @@ -56127,17 +40985,17 @@ endr .sixteen_zero: ; 8d493 ld a, $14 call Function8d120 - ld hl, $000b + ld hl, $b add hl, bc ld [hl], $2 - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $20 ret ; 8d4a5 .sixteen_two: ; 8d4a5 - ld hl, $000c + ld hl, $c add hl, bc ld a, [hl] and a @@ -56147,12 +41005,12 @@ endr .asm_8d4af call Function8d6d8 - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $40 .sixteen_three: ; 8d4b8 - ld hl, $000c + ld hl, $c add hl, bc ld a, [hl] cp $30 @@ -56160,7 +41018,7 @@ endr dec [hl] ld d, $28 call Function8d6de - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], a ret @@ -56172,42 +41030,42 @@ endr ; 8d4d5 .sixteen_one: ; 8d4d5 - ld hl, $000b + ld hl, $b add hl, bc ld [hl], $4 - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $30 - ld hl, $000d + ld hl, $d add hl, bc ld [hl], $24 ret ; 8d4e8 .sixteen_four: ; 8d4e8 - ld hl, $000d + ld hl, $d add hl, bc ld a, [hl] and a jr z, .asm_8d51c ld d, a - ld hl, $000c + ld hl, $c add hl, bc ld a, [hl] call Function8e72c - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], a - ld hl, $000c + ld hl, $c add hl, bc inc [hl] ld a, [hl] and $3f ret nz - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $20 - ld hl, $000d + ld hl, $d add hl, bc ld a, [hl] sub $c @@ -56218,7 +41076,7 @@ endr .asm_8d51c xor a - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], a call Function8d6d8 @@ -56531,7 +41389,7 @@ endr ; 8d6d8 (23:56d8) Function8d6d8: ; 8d6d8 - ld hl, $000b + ld hl, $b add hl, bc inc [hl] ret @@ -58181,7 +43039,7 @@ Function8e86c: ; 8e86c (23:686c) push bc ld a, [hObjectStructIndexBuffer] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc ld a, [hl] @@ -58289,6 +43147,7 @@ Function8e908: ; 8e908 (23:6908) ld [CurIcon], a call Function8e9db ld a, [hObjectStructIndexBuffer] +; and $f \ swap a rept 4 add a endr @@ -58321,7 +43180,7 @@ Function8e936: ; 8e936 (23:6936) ret Function8e94c: ; 8e94c (23:694c) - callba Function50117 + callba PlacePartymonHPBar call GetHPPal ld e, d ld d, 0 @@ -58475,13 +43334,13 @@ GetGFXUnlessMobile: ; 8ea3f ld a, [wLinkMode] cp LINK_MOBILE jp nz, Request2bpp - jp Functiondc9 + jp Get2bpp_2 ; 8ea4a Function8ea4a: ; 8ea4a - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, $6 - ld a, [wcfa9] + ld a, [MenuSelection2] ld d, a .loop ld a, [hl] @@ -58499,13 +43358,13 @@ Function8ea4a: ; 8ea4a push hl ld c, l ld b, h - ld hl, $0002 + ld hl, $2 add hl, bc ld [hl], a pop hl .next - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .loop @@ -58513,7 +43372,7 @@ Function8ea4a: ; 8ea4a ; 8ea71 Function8ea71: ; 8ea71 - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, $6 .loop ld a, [hl] @@ -58535,7 +43394,7 @@ Function8ea71: ; 8ea71 ; 8ea8c (23:6a8c) Function8ea8c: ; 8ea8c - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, $6 ld a, [wd0e3] ld d, a @@ -58595,8 +43454,8 @@ InitClock: ; 90672 (24:4672) ld b, $8 call GetSGBLayout xor a - ld [hBGMapMode], a ; $ff00+$d4 - call Functione51 + ld [hBGMapMode], a + call LoadStandardFont ld de, GFX_908fb ld hl, VTiles2 tile $00 lb bc, BANK(GFX_908fb), 1 @@ -58634,7 +43493,7 @@ InitClock: ; 90672 (24:4672) ld [hl], $2 hlcoord 4, 9 call DisplayHourOClock - ld c, $a + ld c, 10 call DelayFrames .SetHourLoop @@ -58686,20 +43545,20 @@ InitClock: ; 90672 (24:4672) call Function658 ld hl, OakText_ResponseToSetTime call PrintText - call Functiona80 + call WaitPressAorB_BlinkCursor pop af ld [hInMenu], a ret .ClearScreen: ; 90783 (24:4783) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH xor a call ByteFill ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret SetHour: ; 90795 (24:4795) @@ -58781,7 +43640,7 @@ endr ld [de], a inc de push de - ld hl, $0003 + ld hl, $3 add hl, de ld a, [de] inc de @@ -58797,7 +43656,7 @@ endr ; 90810 SetMinutes: ; 90810 (24:4810) - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and A_BUTTON jr nz, .asm_90857 ld hl, hJoyLast @@ -58992,12 +43851,12 @@ Special_SetDayOfWeek: ; 90913 lb bc, BANK(GFX_9090b), 1 call Request1bpp xor a - ld [DefaultFlypoint], a + ld [wd002], a .asm_90936 hlcoord 0, 12 lb bc, 4, 18 call TextBox - call LoadMenuDataHeader_0x1d75 + call LoadStandardMenuDataHeader ld hl, UnknownText_0x90a3f call PrintText hlcoord 9, 3 @@ -59011,7 +43870,7 @@ Special_SetDayOfWeek: ; 90913 hlcoord 10, 5 call Function909de call Function321c - ld c, $a + ld c, 10 call DelayFrames .asm_9096a call JoyTextDelay @@ -59023,10 +43882,10 @@ Special_SetDayOfWeek: ; 90913 call PrintText call YesNoBox jr c, .asm_90936 - ld a, [DefaultFlypoint] + ld a, [wd002] ld [StringBuffer2], a call Function663 - call Functione51 + call LoadStandardFont pop af ld [hInMenu], a ret @@ -59159,12 +44018,12 @@ Special_InitialSetDSTFlag: ; 90a54 UnknownText_0x90a6c: ; 90a6c start_asm call UpdateTime - ld a, [hHours] ; $ff00+$94 + ld a, [hHours] ld b, a - ld a, [hMinutes] ; $ff00+$96 + ld a, [hMinutes] ld c, a decoord 1, 14 - callba Function1dd6bb + callba PrintHoursMins ld hl, TextJump_DSTIsThatOK ret ; 90a83 (24:4a83) @@ -59195,7 +44054,7 @@ UnknownText_0x90aa0: ; 90aa0 ld a, [hMinutes] ld c, a decoord 1, 14 - callba Function1dd6bb + callba PrintHoursMins ld hl, UnknownText_0x90ab7 ret ; 90ab7 @@ -59381,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 @@ -59392,7 +44251,7 @@ Function90b8d: ; 90b8d (24:4b8d) ret Function90bea: ; 90bea (24:4bea) - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -59624,12 +44483,12 @@ Function90da8: ; 90da8 (24:4da8) ret Function90e00: ; 90e00 (24:4e00) - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jr z, .asm_90e0e ld a, $2 - ld [hBGMapMode], a ; $ff00+$d4 - ld c, $3 + ld [hBGMapMode], a + ld c, 3 call DelayFrames .asm_90e0e call WaitBGMap @@ -59691,7 +44550,7 @@ Function90e72: ; 90e72 ld de, RadioTilemapRLE call Function914bb hlcoord 0, 12 - ld bc, $412 + lb bc, 4, 18 call TextBox ret ; 90e82 @@ -59700,7 +44559,7 @@ Function90e82: ; 90e82 ld de, PhoneTilemapRLE call Function914bb hlcoord 0, 12 - ld bc, $412 + lb bc, 4, 18 call TextBox call Function90e98 call Function912d8 @@ -59857,22 +44716,22 @@ Function90f3e: ; 90f3e (24:4f3e) Function90f7b: ; 90f7b (24:4f7b) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function90f86 ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Function90f86: ; 90f86 (24:4f86) hlcoord 3, 5 lb bc, 5, 14 call ClearBox - ld a, [hHours] ; $ff00+$94 + ld a, [hHours] ld b, a - ld a, [hMinutes] ; $ff00+$96 + ld a, [hMinutes] ld c, a decoord 6, 8 - callba Function1dd6bb + callba PrintHoursMins ld hl, UnknownText_0x90faf bccoord 6, 6 call PlaceWholeStringInBoxAtOnce @@ -60023,7 +44882,7 @@ Function9106a: ; 9106a .asm_91079 ld a, b call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $10 pop af @@ -60031,10 +44890,10 @@ Function9106a: ; 9106a push bc callba GetLandmarkCoords pop bc - ld hl, $0004 + ld hl, $4 add hl, bc ld [hl], e - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], d ret @@ -60045,10 +44904,10 @@ Function91098: ; 91098 ld de, 0 ld a, $d call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $4 - ld hl, $0002 + ld hl, $2 add hl, bc ld [hl], $0 pop af @@ -60079,10 +44938,10 @@ Function910d4: ; 910d4 ld e, a callba GetLandmarkCoords pop bc - ld hl, $0004 + ld hl, $4 add hl, bc ld [hl], e - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], d ret @@ -60307,7 +45166,7 @@ OutOfServiceAreaText: ; 0x91251 ; 0x91256 Function91256: ; 91256 (24:5256) - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and A_BUTTON | B_BUTTON ret z callba HangUp @@ -60706,7 +45565,7 @@ Function91492: ; 91492 Function914ab: ; 914ab (24:54ab) - ld hl, wPartyMonMenuIconAnims + 16 + ld hl, wc314 + 16 ld bc, $90 xor a call ByteFill @@ -60781,7 +45640,7 @@ Function9191c: ; 9191c push af xor a ld [VramState], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -60836,7 +45695,7 @@ Function9191c: ; 9191c ld [hInMenu], a pop af ld [Options], a - call WhiteBGMap + call ClearBGPalettes ret ; 919b0 @@ -60913,7 +45772,7 @@ Function91a04: ; 91a04 .asm_91a11 callba Function91ae1 ld a, $7 - ld bc, $0006 + ld bc, 6 hlcoord 1, 0 call ByteFill hlcoord 0, 0 @@ -60925,7 +45784,7 @@ Function91a04: ; 91a04 hlcoord 7, 2 ld [hl], $26 ld a, $7 - ld bc, $000b + ld bc, NAME_LENGTH hlcoord 8, 2 call ByteFill hlcoord 19, 2 @@ -60987,7 +45846,7 @@ endr .jump_return push de hlcoord 0, 12 - ld bc, $0412 + lb bc, 4, 18 call TextBox hlcoord 1, 14 ld [hl], $72 @@ -61042,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, [DefaultFlypoint] - ld l, a - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld a, [hl] - -.exit - ld [DefaultFlypoint], a - pop af - ld [hInMenu], a - call WhiteBGMap - ld a, $90 - ld [hWY], a - xor a - ld [hBGMapAddress], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ld a, [DefaultFlypoint] - 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, DefaultFlypoint - 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, DefaultFlypoint - 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, [DefaultFlypoint] - 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, [DefaultFlypoint] - 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, $0004 - add hl, bc - ld [hl], e - ld hl, $0005 - 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 [DefaultFlypoint], 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 [DefaultFlypoint], 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 [DefaultFlypoint], 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, [DefaultFlypoint] - push af - ld a, [wd003] - push af - ld a, e - ld [DefaultFlypoint], 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 [DefaultFlypoint], 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, [$ff9b] - 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, $00a0 - 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, $00a0 - call CopyBytes - ret -; 91e5a - -Function91e5a: ; 91e5a - call Function91ea9 - ret c - - ld a, [DefaultFlypoint] - 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, [DefaultFlypoint] - 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, [DefaultFlypoint] - 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, $00c0 - 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, $0003 - 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 Functione73 - ret -; 91fff - +INCLUDE "engine/flypoints.asm" -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 +Function92311: ; unreferenced xor a - ld [DefaultFlypoint], a - call WhiteBGMap + ld [wd002], a + call ClearBGPalettes call ClearTileMap call ClearSprites ld hl, hInMenu @@ -62015,7 +45959,7 @@ Function92311: ; 92311 jr .asm_9239f .pressedA - ld a, [DefaultFlypoint] + ld a, [wd002] ld l, a ld h, 0 add hl, hl @@ -62024,17 +45968,17 @@ Function92311: ; 92311 ld a, [hl] .asm_9239f - ld [DefaultFlypoint], a + ld [wd002], a pop af ld [hInMenu], a - call WhiteBGMap + call ClearBGPalettes ld a, $90 ld [hWY], a xor a ld [hBGMapAddress], a ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a - ld a, [DefaultFlypoint] + ld a, [wd002] ld e, a ret ; 923b8 @@ -62050,7 +45994,7 @@ Function923b8: ; 923b8 ret .asm_923c6 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [hl] cp FLY_INDIGO jr c, .asm_923d0 @@ -62060,7 +46004,7 @@ Function923b8: ; 923b8 jr .asm_923dd .asm_923d3 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [hl] and a jr nz, .asm_923dc @@ -62069,7 +46013,7 @@ Function923b8: ; 923b8 dec [hl] .asm_923dd - ld a, [DefaultFlypoint] + ld a, [wd002] cp KANTO_FLYPOINT jr c, .johto @@ -62096,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 - ld bc, $400 - 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] ; $ff00+$e6 - 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 ; $ff00+$a5 - 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 ; $ff00+$a5 - -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 ; $ff00+$a5 - -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 ; $ff00+$a5 - 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] ; $ff00+$48 - 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 Functiona80 - 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, $0005 - add hl, bc - ld [hl], $10 - ret -; 92c1e - -Function92c1e: ; 92c1e - ld hl, $0005 - add hl, bc - ld [hl], $8 - ret -; 92c25 - -Function92c25: ; 92c25 - ld hl, $0005 - add hl, bc - ld [hl], $4 - ret -; 92c2c - -Function92c2c: ; 92c2c - ld hl, $0005 - add hl, bc - ld [hl], $2 - ret -; 92c33 - -Function92c33: ; 92c33 - ld hl, $0005 - add hl, bc - ld [hl], $1 - ret -; 92c3a - -Function92c3a: ; 92c3a - ld hl, $0005 - add hl, bc - ld [hl], $0 - ld hl, 0 - add hl, bc - ld [hl], $1 - ld hl, $000f - add hl, bc - ld [hl], $3 - -Function92c4c: ; 92c4c - ld hl, $000f - 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, $0009 - 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, $0009 - 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, $0009 - 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, $0009 - 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, $000a - add hl, bc - ld [hl], $20 - ld hl, $0005 - add hl, bc - ld [hl], $0 - ret -; 92cf8 - -Function92cf8: ; 92cf8 - ld hl, $000a - 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, $0005 - 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, $0005 - add hl, bc - ld [hl], $0 - call Function92fc0 - push bc - push af - ld de, $6068 - ld a, $6 - call Function3b2a - ld hl, $000e - 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, $0005 - 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, $0005 - 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, $0005 - 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, $0005 - add hl, bc - ld [hl], $10 - ld hl, $000a - add hl, bc - ld [hl], $11 - -Function92dca: ; 92dca - ld hl, $000a - 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, $0005 - 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, $000a - add hl, bc - ld [hl], a - -Function92e10: ; 92e10 - ld hl, $000a - 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, $000b - add hl, bc - ld [hl], $20 - ld hl, $0005 - add hl, bc - ld [hl], $0 - -Function92e31: ; 92e31 - ld hl, $000b - 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, $0005 - 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, $0005 - add hl, bc - ld [hl], $1 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $000a - add hl, bc - ld [hl], $10 - -Function92e64: ; 92e64 - ld hl, $000a - 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, wc70f - ld a, [wc700] - cp [hl] - call z, Function92f0c - ret -; 92eeb - -Function92eeb: ; 92eeb - ld hl, wc70f - ld a, [wc701] - cp [hl] - call z, Function92f0c - ret -; 92ef6 - -Function92ef6: ; 92ef6 - ld hl, wc70f - 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, wc70f - 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, $0003 - 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, $0003 - 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, $0003 - 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, [wcfa9] - 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, $3c - call DelayFrames - jr .asm_93118 -.asm_930fd - ld hl, UnknownText_9311f - call PrintText - call LoadMenuTextBox - lb bc, 14, 12 - call PlaceYesNoBox - ld a, [wcfa9] - 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 ; $ff00+$d0 - ret -.asm_932a3 - ld hl, $b - add hl, bc - xor a - ld [hl], a - ld [hSCY], a ; $ff00+$d0 - 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, $10 - 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] @@ -64247,876 +46077,27 @@ 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 [wc2d9], a - call Functionb8089 - jr z, .asm_b8024 - - call GetMapPermission - cp $6 - jr nz, .asm_b8029 - -.asm_b8024 - ld a, -1 - ld [wc2d9], a - -.asm_b8029 - ld hl, wd83e - bit 1, [hl] - res 1, [hl] - jr nz, .asm_b8054 - - call Functionb8064 - jr z, .asm_b8054 - - ld a, [wc2d9] - ld [wc2d8], a - call Functionb8070 - jr z, .asm_b8054 - - ld a, $3c - ld [wc2da], a - call Functionb80c6 - call Functionb80d3 - callba Function104303 - ret - -.asm_b8054 - ld a, [wc2d9] - ld [wc2d8], a - ld a, $90 - ld [rWY], a - ld [hWY], a - xor a - ld [hLCDStatCustom], a - ret -; b8064 - -Functionb8064: ; b8064 - ld a, [wc2d9] - ld c, a - ld a, [wc2d8] - cp c - ret z - cp $0 - ret -; b8070 - -Functionb8070: ; 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 - -Functionb8089: ; 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 - - -Functionb8098:: ; b8098 (2e:4098) - ld hl, wc2da - ld a, [hl] - and a - jr z, .asm_b80bc - dec [hl] - cp $3c - ret z - cp $3b - jr nz, .asm_b80b3 - call Functionb80d3 - call Functionb80e1 - callba Function104303 -.asm_b80b3 - ld a, $80 - ld a, $70 - ld [rWY], a ; $ff00+$4a - ld [hWY], a ; $ff00+$d2 - ret -.asm_b80bc - ld a, $90 - ld [rWY], a ; $ff00+$4a - ld [hWY], a ; $ff00+$d2 - xor a - ld [hLCDStatCustom], a ; $ff00+$c6 - ret - - -Functionb80c6: ; b80c6 - ld de, GFX_f9344 - ld hl, VTiles2 tile $60 - lb bc, BANK(GFX_f9344), $e - call Get2bpp - ret -; b80d3 - -Functionb80d3: ; b80d3 - hlcoord 0, 0 - ld b, $2 - ld c, $12 - call Functionb8115 - call Functionb812f - ret -; b80e1 - - -Functionb80e1: ; b80e1 (2e:40e1) - ld a, [wc2d9] - ld e, a - callba GetLandmarkName - call Functionb8101 - ld a, $14 - sub c - srl a - ld b, $0 - ld c, a - hlcoord 0, 2 - add hl, bc - ld de, StringBuffer1 - call PlaceString - ret - -Functionb8101: ; b8101 (2e:4101) - ld c, $0 - push hl - ld hl, StringBuffer1 -.loop - ld a, [hli] - cp $50 - jr z, .stop - cp $25 - jr z, .loop - inc c - jr .loop -.stop - pop hl - ret - - -Functionb8115: ; 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 - -Functionb812f: ; b812f - hlcoord 0, 0 - ld a, $61 - ld [hli], a - ld a, $62 - call .Fill5Words - ld a, $64 - ld [hli], a - ld a, $65 - ld [hli], a - call .Fill18Bytes - ld a, $6b - ld [hli], a - ld a, $66 - ld [hli], a - call .Fill18Bytes - ld a, $6c - ld [hli], a - ld a, $67 - ld [hli], a - ld a, $68 - call .Fill5Words - ld a, $6a - ld [hl], a - ret -; b815b - -.Fill18Bytes: ; b815b - ld c, 18 - ld a, $6d -.loop - ld [hli], a - dec c - jr nz, .loop - ret -; b8164 - -.Fill5Words: ; 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" ReadPartyMonMail: ; b9229 ld a, [CurPartyMon] - ld hl, s0_a600 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld hl, sPartyScratch1 + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l ReadAnyMail: ; b9237 push de - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD - call Functione5f + call LoadFontsExtra pop de push de - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank callba Function1de5c8 call CloseSRAM @@ -65144,9 +46125,9 @@ ReadAnyMail: ; b9237 xor a ld [hJoyPressed], a call Functionb929a - call WhiteBGMap + call ClearBGPalettes call DisableLCD - call Functione51 + call LoadStandardFont jp EnableLCD ; b929a @@ -65175,7 +46156,7 @@ Functionb92b8: ; b92b8 push hl ld a, $0 call GetSRAMBank - ld de, $002b + ld de, $2b add hl, de ld a, [hli] ld [Buffer1], a @@ -65429,7 +46410,7 @@ Functionb9491: ; b9491 Functionb94d6: ; b94d6 push bc ld hl, VTiles2 tile $31 - ld bc, $0028 + ld bc, $28 call Functionb97f8 ld de, Unknown_b9c96 ld c, 8 @@ -65509,7 +46490,7 @@ Functionb9582: ; b9582 ld c, $8 call Functionb9915 ld a, $ff - ld bc, $0010 + ld bc, $10 call ByteFill ld de, Unknown_b992e ld c, $8 @@ -65668,7 +46649,7 @@ Functionb96ca: ; b96ca ld a, $1 ld [UnownLetter], a hlcoord 1, 10 - call Function3786 + call PrepMonFrontpic pop hl jp Functionb9803 ; b9710 @@ -65686,7 +46667,7 @@ Functionb9710: ; b9710 ld c, $30 call Functionb991e xor a - ld bc, $0010 + ld bc, $10 call ByteFill ld de, Unknown_b9cfe ld c, $18 @@ -65718,7 +46699,7 @@ Functionb9710: ; b9710 Functionb9776: ; b9776 push bc ld hl, VTiles2 tile $31 - ld bc, $0028 + ld bc, $28 call Functionb97f8 ld de, Unknown_b992e ld c, $8 @@ -65789,7 +46770,7 @@ Functionb97f8: ; b97f8 ; b9803 Functionb9803: ; b9803 - ld bc, $002f + ld bc, $2f ld de, wd002 ld a, $0 call GetSRAMBank @@ -65797,7 +46778,7 @@ Functionb9803: ; b9803 call CloseSRAM ld hl, wd023 ld de, wd050 - ld bc, $000a + ld bc, $a call CopyBytes ld a, $50 ld [wd023], a @@ -65969,7 +46950,7 @@ Functionb98ee: ; b98ee ld [hli], a inc a ld [hl], a - ld bc, $0013 + ld bc, $13 add hl, bc inc a ld [hli], a @@ -66196,6 +47177,42 @@ INCLUDE "engine/std_scripts.asm" INCLUDE "engine/phone_scripts.asm" +TalkToTrainerScript:: ; 0xbe66a + faceplayer + trainerstatus CHECK_FLAG + iftrue AlreadyBeatenTrainerScript + loadtrainerdata + playrammusic + jump StartBattleWithMapTrainerScript +; 0xbe675 + +SeenByTrainerScript:: ; 0xbe675 + loadtrainerdata + playrammusic + showemote EMOTE_SHOCK, LAST_TALKED, 30 + callasm TrainerWalkToPlayer + applymovement2 MovementBuffer + writepersonxy LAST_TALKED + faceperson PLAYER, LAST_TALKED + jump StartBattleWithMapTrainerScript +; 0xbe68a + +StartBattleWithMapTrainerScript: ; 0xbe68a + loadfont + trainertext $0 + closetext + loadmovesprites + loadtrainerdata + startbattle + returnafterbattle + trainerstatus SET_FLAG + loadvar wd04d, -1 + +AlreadyBeatenTrainerScript: + scripttalkafter +; 0xbe699 + + SECTION "bank30", ROMX, BANK[$30] @@ -66233,7 +47250,7 @@ Functioncbce5: ; cbce5 .asm_cbcf7 call DmgToCgbBGPals - ld c, $4 + ld c, 4 call DelayFrames callba _UpdateTimePals ret @@ -66246,6 +47263,7 @@ Functioncbce5: ; cbce5 ld hl, BGPals ld c, $20 .asm_cbd12 +; RGB 31, 21, 28 ld a, $bc ld [hli], a ld a, $7e @@ -66256,7 +47274,7 @@ Functioncbce5: ; cbce5 ld [rSVBK], a ld a, $1 ld [hCGBPalUpdate], a - ld c, $4 + ld c, 4 call DelayFrames callba _UpdateTimePals ret @@ -66271,7 +47289,7 @@ SECTION "bank33", ROMX, BANK[$33] DisplayCaughtContestMonStats: ; cc000 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call LoadFontsBattleExtra @@ -66479,7 +47497,7 @@ endr ld hl, wd012 call Functione004e pop hl - ld bc, $0010 + ld bc, $10 add hl, bc pop bc inc c @@ -66488,7 +47506,7 @@ endr jr c, .asm_e000b ld hl, OverworldMap ld de, sScratch - ld bc, $0310 + ld bc, $310 call CopyBytes pop hl ld de, sScratch @@ -66573,5835 +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 Functione51 - call Functione5f - 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 - ld bc, $0c09 - 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, $14 - call DelayFrames - hlcoord 2, 0 - call Functione03c1 - ld a, $1 - ld [hBGMapMode], a - ld c, $14 - 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 - ld bc, $0605 - 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 [$ff9b], 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 Functiona80 - 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, $0018 - 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, $0018 - call ByteFill - ret -; e0398 - -Functione0398: ; e0398 - ld hl, 0 - ld bc, $0006 - 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, $0017 - 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 ; $ff00+$d4 - 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 - ld bc, $412 - 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, [$ff9b] - 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] ; $ff00+$e6 - and a - ret z - hlcoord 0, 0, AttrMap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - hlcoord 12, 1, AttrMap - ld bc, $202 - ld a, $1 - call Functione04e7 - hlcoord 14, 1, AttrMap - ld bc, $202 - ld a, $2 - call Functione04e7 - hlcoord 16, 1, AttrMap - ld bc, $202 - ld a, $3 - call Functione04e7 - hlcoord 18, 1, AttrMap - ld bc, $202 - ld a, $4 - call Functione04e7 - hlcoord 9, 0, AttrMap - ld bc, $c01 - ld a, $1 - call Functione04e7 - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - ld hl, Palette_e0c93 - ld de, Unkn1Pals - ld bc, $48 - call CopyBytes - pop af - ld [rSVBK], a ; $ff00+$70 - 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, $01e0 - xor a - call ByteFill - ld hl, GFX_e17c5 - ld de, VTiles1 tile $60 - ld bc, $0040 - 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 - ld bc, $0c0c - 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, [$ff9b] - 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, $000a - 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, $000a - 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, $000a - 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 Functionaa5 - 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 [DefaultFlypoint], a - xor a - call Functione1463 - ld a, [hli] - ld b, [hl] - ld c, a - ld a, [DefaultFlypoint] - 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, [DefaultFlypoint] - 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, $0008 - add hl, bc - call Functione1654 - pop hl - ld bc, $0060 - 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, $0010 - 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, $0030 - add hl, de - pop de - dec c - jr nz, .asm_e16e6 - ld bc, $0180 - 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 ; $ff00+$d0 - ld [hSCX], a ; $ff00+$cf - ld [rWY], a ; $ff00+$4a - ld [wJumptableIndex], a - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - ld a, $e3 - ld [rLCDC], a ; $ff00+$40 - 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 [wc6fe], 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 Functiona80 - 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, wc6fe - 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, [wc6fe] - 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, $002d - 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, [wcfa9] - 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, $0028 -.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, .asm_e21c8 - call JoyTextDelay - ld hl, hJoypadPressed ; $ffa3 - ld a, [hl] - and A_BUTTON - jr nz, .asm_e21cf - ld a, [hl] - and D_LEFT - jr nz, .asm_e21d9 - ld a, [hl] - and D_RIGHT - jr nz, .asm_e21e9 - ld a, [hl] - and D_UP - jr nz, .asm_e21fa - ld a, [hl] - and D_DOWN - jr nz, .asm_e220d - ret -.asm_e21c8 - ld hl, $0 - add hl, bc - ld [hl], $0 - ret -.asm_e21cf - ld hl, $c - add hl, bc - ld a, [hl] - inc a - ld [wcf64], a - ret -.asm_e21d9 - 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 -.asm_e21e9 - 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 -.asm_e21fa - 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 -.asm_e220d - 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 [$ffde], 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 ; $ff00+$d4 - 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 ; $ff00+$d4 - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - 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 ; $ff00+$d4 - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [wcfa9], a - call Functione298d - ret - -Functione247d: ; e247d (38:647d) - ld hl, BillsPCDepositMenuDataHeader - call CopyMenuDataHeader - ld a, [wcfa9] - call Function1d4b - call InterpretMenu2 - jp c, BillsPCDepositFuncCancel - ld a, [wcfa9] - 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, .asm_e24c1 - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - ret -.asm_e24c1 - ld de, PCString_WhatsUp - call Functione2a6e - ret - -BillsPCDepositFuncStats: ; e24c8 (38:64c8) - call LoadMenuDataHeader_0x1d75 - 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, [wcfa9] - push af - ld de, PCString_ReleasePKMN - call Functione2a6e - call LoadMenuDataHeader_0x1d75 - lb bc, 14, 11 - call PlaceYesNoBox - ld a, [wcfa9] - dec a - call ExitMenu - and a - jr nz, .asm_e252c - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - xor a - ld [wd10b], 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 [wcfa9], 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 [$ffde], a - call Functione2963 - ld a, $f - ld [wcb2e], a - call DelayFrame -.asm_e25a7 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e25b9 - call Functione25c8 - call DelayFrame - jr .asm_e25a7 -.asm_e25b9 - 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 ; $ff00+$d4 - 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 ; $ff00+$d4 - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - 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 ; $ff00+$d4 - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [wcfa9], a - call Functione298d - ret - -BillsPC_Withdraw: ; e2675 (38:6675) - ld hl, .MenuDataHeader - call CopyMenuDataHeader - ld a, [wcfa9] - call Function1d4b - call InterpretMenu2 - jp c, .cancel - ld a, [wcfa9] - 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 LoadMenuDataHeader_0x1d75 - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ret - -.release: ; e26d8 (38:66d8) - ld a, [wcfa9] - push af - call Functione2f5f - jr c, .FailedRelease - ld de, PCString_ReleasePKMN - call Functione2a6e - call LoadMenuDataHeader_0x1d75 - lb bc, 14, 11 - call PlaceYesNoBox - ld a, [wcfa9] - dec a - call ExitMenu - and a - jr nz, .FailedRelease - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, $1 - ld [wd10b], 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 [wcfa9], 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 [$ffde], 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 [wcfa9], a - call Functione298d - ret -; e285d - -Functione285d: ; e285d - ld hl, MenuDataHeader_0xe28c3 - call CopyMenuDataHeader - ld a, [wcfa9] - call Function1d4b - call InterpretMenu2 - jp c, Functione28bd - ld a, [wcfa9] - 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 LoadMenuDataHeader_0x1d75 - 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 - ld bc, $112 - 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, 9 - 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, sBoxMon2 - sBoxMon1 - 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, $1 - ld [wd10b], a - predef SentGetPkmnIntoFromBox - jr c, .asm_boxisfull - xor a - ld [wd10b], 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 - ld bc, $112 - 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 [wd10b], a - predef SentGetPkmnIntoFromBox - jr c, .PartyFull - ld a, $1 - ld [wd10b], 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 - ld bc, $112 - 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 - ld bc, $112 - 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 - ld bc, $112 - 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 - ld bc, $0112 - 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, sBoxMon1End - sBoxMon1 - call Functione3389 - call CloseSRAM - callba Function5088b - ld a, $1 - ld [wd10b], 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, PartyMon2 - PartyMon1 - call Functione3389 - xor a - ld [wd10b], 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, DefaultFlypoint - 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 - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), 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 Functione51 - 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 LoadMenuDataHeader_0x1d75 - call Functione35e2 -.loop - xor a - ld [hBGMapMode], a ; $ff00+$d4 - 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 Function350c - 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 ; $ff00+$d4 - 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 14 - db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 - db -1 -; e3619 - -.boxnames: ; e3619 - push de - ld a, [MenuSelection] - dec a - call Functione3626 - pop hl - call PlaceString - ret -; e3626 - -Functione3626: ; e3626 (38:7626) - ld bc, 9 - 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 "/" - 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 - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 - dba sBox10 - dba sBox11 - dba sBox12 - dba sBox13 - dba sBox14 -; e36cf - -Functione36cf: ; e36cf (38:76cf) - hlcoord 0, 0 - ld b, $2 - ld c, $12 - call TextBox - hlcoord 1, 2 - ld de, String_e36f1 - call PlaceString - ld a, [wCurBox] - and $f - call Functione3626 - 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, [wcfa9] - 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, DefaultFlypoint - callba Function116c1 - call ClearTileMap - call Functione51 - call LoadFontsBattleExtra - ld a, [MenuSelection] - dec a - call Functione3626 - ld e, l - ld d, h - ld hl, DefaultFlypoint - ld c, $8 - call InitString - ld a, [MenuSelection] - dec a - call Functione3626 - ld de, DefaultFlypoint - 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 - ld bc, $212 - call TextBox - pop de - hlcoord 1, 16 - call PlaceString - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - ret - +INCLUDE "engine/card_flip.asm" +INCLUDE "engine/dummy_game.asm" +INCLUDE "engine/billspc.asm" SECTION "bank39", ROMX, BANK[$39] @@ -72414,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 @@ -72456,7 +47648,7 @@ _OptionsMenu: ; e41d0 .asm_e422a call Functione455c - ld c, $3 + ld c, 3 call DelayFrames jr .asm_e4217 @@ -72824,7 +48016,7 @@ GetPrinterSetting: ; e4491 .IsLight ld c, $1 - ld de, $0040 ;the 2 values next to this setting + ld de, $40 ;the 2 values next to this setting ret .IsDark @@ -72911,7 +48103,7 @@ Functione4512: ; e4512 hlcoord 16, 15 ;where on the screen the number is drawn add "1" ld [hl], a - call Functione5f + call LoadFontsExtra and a ret ; e4520 @@ -72985,7 +48177,7 @@ Functione455c: ; e455c dec c jr nz, .asm_e4564 hlcoord 1, 2 - ld bc, $0028 + ld bc, $28 ld a, [wJumptableIndex] call AddNTimes ld [hl], $ed @@ -72996,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 @@ -73015,30 +48207,30 @@ Functione4579: ; e4579 call DelayFrames callab Copyright call WaitBGMap - ld c, $64 + ld c, 100 call DelayFrames call ClearTileMap callba GBCOnlyScreen call Functione45e8 -.asm_e45c0 +.joy_loop call JoyTextDelay ld a, [hJoyLast] and BUTTONS - jr nz, .asm_e45de + jr nz, .pressed_button ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_e45e3 - call Functione4670 + jr nz, .finish + call PlaceGameFreakPresents callba Function8cf69 call DelayFrame - jr .asm_e45c0 + jr .joy_loop -.asm_e45de +.pressed_button call Functione465e scf ret -.asm_e45e3 +.finish call Functione465e and a ret @@ -73059,11 +48251,11 @@ Functione45e8: ; e45e8 call FarDecompress ld hl, VTiles0 ld de, w6_d000 - ld bc, $0180 + ld bc, $180 call Request2bpp ld hl, VTiles1 ld de, w6_d000 + $800 - ld bc, $0180 + ld bc, $180 call Request2bpp pop af ld [rSVBK], a @@ -73071,13 +48263,13 @@ Functione45e8: ; e45e8 ld de, $5458 ld a, $3 call Function3b2a - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], $a0 - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $60 - ld hl, $000d + ld hl, $d add hl, bc ld [hl], $30 xor a @@ -73099,16 +48291,16 @@ Functione465e: ; e465e callba Function8cf53 call ClearTileMap call ClearSprites - ld c, $10 + ld c, 16 call DelayFrames ret ; e4670 -Functione4670: ; e4670 +PlaceGameFreakPresents: ; e4670 ld a, [wJumptableIndex] ld e, a ld d, 0 - ld hl, Jumptable_e467f + ld hl, .jumptable rept 2 add hl, de endr @@ -73118,38 +48310,38 @@ endr jp [hl] ; e467f -Jumptable_e467f: ; e467f - dw Functione468c - dw Functione468d - dw Functione46ba - dw Functione46dd +.jumptable: ; e467f + dw PlaceGameFreakPresents_0 + dw PlaceGameFreakPresents_1 + dw PlaceGameFreakPresents_2 + dw PlaceGameFreakPresents_3 ; e4687 -Functione4687: ; e4687 +PlaceGameFreakPresents_AdvanceIndex: ; e4687 ld hl, wJumptableIndex inc [hl] ret ; e468c -Functione468c: ; e468c +PlaceGameFreakPresents_0: ; e468c ret ; e468d -Functione468d: ; e468d +PlaceGameFreakPresents_1: ; e468d ld hl, wcf65 ld a, [hl] cp $20 - jr nc, .asm_e4697 + jr nc, .PlaceGameFreak inc [hl] ret -.asm_e4697 +.PlaceGameFreak ld [hl], 0 ld hl, .GAME_FREAK decoord 5, 10 ld bc, .end - .GAME_FREAK call CopyBytes - call Functione4687 + call PlaceGameFreakPresents_AdvanceIndex ld de, SFX_GAME_FREAK_PRESENTS call PlaySFX ret @@ -73162,21 +48354,21 @@ Functione468d: ; e468d db "@" ; e46ba -Functione46ba: ; e46ba +PlaceGameFreakPresents_2: ; e46ba ld hl, wcf65 ld a, [hl] cp $40 - jr nc, .asm_e46c4 + jr nc, .place_presents inc [hl] ret -.asm_e46c4 +.place_presents ld [hl], 0 ld hl, .presents decoord 7,11 ld bc, .end - .presents call CopyBytes - call Functione4687 + call PlaceGameFreakPresents_AdvanceIndex ret ; e46d6 @@ -73186,15 +48378,15 @@ Functione46ba: ; e46ba db "@" ; e46dd -Functione46dd: ; e46dd +PlaceGameFreakPresents_3: ; e46dd ld hl, wcf65 ld a, [hl] cp $80 - jr nc, .asm_e46e7 + jr nc, .finish inc [hl] ret -.asm_e46e7 +.finish ld hl, wJumptableIndex set 7, [hl] ret @@ -73309,24 +48501,24 @@ GameFreakLogoScene4: ; e4776 (39:4776) rept 2 add hl, de endr - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [hli] ld [OBPals + 12], a ld a, [hli] ld [OBPals + 13], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret .asm_e47a3 ld hl, $b add hl, bc inc [hl] - call Functione4687 + call PlaceGameFreakPresents_AdvanceIndex GameFreakLogoScene5: ; e47ab (39:47ab) ret @@ -73386,7 +48578,7 @@ CrystalIntro: ; e48ac call PlayMusic .done - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -73411,7 +48603,7 @@ Functione4901: ; e4901 ld a, $1 ld [hInMenu], a xor a - ld [$ffde], a + ld [hMapAnims], a ld [wJumptableIndex], a ret ; e490f @@ -73473,14 +48665,14 @@ IntroScene1: ; e495b (39:495b) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap001 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroUnownsGFX ld de, VTiles2 tile $00 call Functione54c2 @@ -73490,12 +48682,12 @@ IntroScene1: ; e495b (39:495b) ld hl, IntroTilemap002 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_365ad - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_365ad @@ -73503,14 +48695,14 @@ IntroScene1: ; e495b (39:495b) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -73549,26 +48741,26 @@ IntroScene3: ; e49fd (39:49fd) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap003 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroBackgroundGFX ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap004 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e5edd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e5edd @@ -73576,14 +48768,14 @@ IntroScene3: ; e49fd (39:49fd) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a call Functione5516 call Functione549e xor a @@ -73610,15 +48802,15 @@ IntroScene5: ; e4a7a (39:4a7a) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hBGMapMode], a + ld [hLCDStatCustom], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap005 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroUnownsGFX ld de, VTiles2 tile $00 call Functione54c2 @@ -73628,12 +48820,12 @@ IntroScene5: ; e4a7a (39:4a7a) ld hl, IntroTilemap006 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_365ad - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_365ad @@ -73641,14 +48833,14 @@ IntroScene5: ; e4a7a (39:4a7a) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -73705,9 +48897,9 @@ IntroScene7: ; e4b3f (39:4b3f) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap003 ld de, VBGMap0 tile $00 call Functione54fa @@ -73715,7 +48907,7 @@ IntroScene7: ; e4b3f (39:4b3f) ld de, VTiles0 tile $00 call Functione54c2 ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneRunGFX ld de, VTiles0 tile $00 call Functione54de @@ -73725,12 +48917,12 @@ IntroScene7: ; e4b3f (39:4b3f) ld hl, IntroTilemap004 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e5edd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e5edd @@ -73738,14 +48930,14 @@ IntroScene7: ; e4b3f (39:4b3f) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a call Functione5516 callba Function8cf53 ld de, $6cd8 @@ -73790,7 +48982,7 @@ IntroScene8: ; e4bd3 (39:4bd3) IntroScene9: ; e4c04 (39:4c04) ; Set up the next scene (same bg). xor a - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a call ClearSprites hlcoord 0, 0, AttrMap ld bc, $f0 @@ -73803,18 +48995,18 @@ IntroScene9: ; e4c04 (39:4c04) ld a, $3 call ByteFill ld a, $2 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call DelayFrame call DelayFrame call DelayFrame ld a, $c - ld [hBGMapAddress], a ; $ff00+$d6 + ld [hBGMapAddress], a call DelayFrame call DelayFrame call DelayFrame xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld [hBGMapAddress], a ; $ff00+$d6 + ld [hBGMapMode], a + ld [hBGMapAddress], a ld [wc3c0], a xor a ld [wcf64], a @@ -73860,27 +49052,27 @@ IntroScene11: ; e4c86 (39:4c86) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hBGMapMode], a + ld [hLCDStatCustom], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap007 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroUnownsGFX ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap008 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_365ad - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_365ad @@ -73888,14 +49080,14 @@ IntroScene11: ; e4c86 (39:4c86) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -73983,14 +49175,14 @@ IntroScene13: ; e4d6d (39:4d6d) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap003 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneRunGFX ld de, VTiles0 tile $00 call Functione54de @@ -74000,12 +49192,12 @@ IntroScene13: ; e4d6d (39:4d6d) ld hl, IntroTilemap004 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e5edd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e5edd @@ -74013,14 +49205,14 @@ IntroScene13: ; e4d6d (39:4d6d) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 lb de, $6c, $58 ld a, $26 @@ -74038,9 +49230,9 @@ IntroScene13: ; e4d6d (39:4d6d) IntroScene14: ; e4dfa (39:4dfa) ; Suicune runs then jumps. - ld a, [hSCX] ; $ff00+$cf + ld a, [hSCX] sub 10 - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld hl, wcf64 ld a, [hl] inc [hl] @@ -74087,14 +49279,14 @@ IntroScene15: ; e4e40 (39:4e40) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap009 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneJumpGFX ld de, VTiles2 tile $00 call Functione54c2 @@ -74109,12 +49301,12 @@ IntroScene15: ; e4e40 (39:4e40) ld de, VBGMap0 tile $00 call Functione54fa call Functione541b - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e77dd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e77dd @@ -74122,15 +49314,15 @@ IntroScene15: ; e4e40 (39:4e40) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld a, $90 - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e lb de, $40, $28 @@ -74153,11 +49345,11 @@ IntroScene16: ; e4edc (39:4edc) cp $80 jr nc, .done call Functione5441 - ld a, [hSCY] ; $ff00+$d0 + ld a, [hSCY] and a ret z add 8 - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ret .done call NextIntroScene @@ -74169,26 +49361,26 @@ IntroScene17: ; e4ef5 (39:4ef5) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap011 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneCloseGFX ld de, VTiles1 tile $00 call Functione54de ld hl, IntroTilemap012 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e6d6d - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e6d6d @@ -74196,14 +49388,14 @@ IntroScene17: ; e4ef5 (39:4ef5) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -74219,11 +49411,11 @@ IntroScene18: ; e4f67 (39:4f67) inc [hl] cp $60 jr nc, .done - ld a, [hSCX] ; $ff00+$cf + ld a, [hSCX] cp $60 ret z add 8 - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ret .done call NextIntroScene @@ -74235,14 +49427,14 @@ IntroScene19: ; e4f7e (39:4f7e) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap013 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneBackGFX ld de, VTiles2 tile $00 call Functione54c2 @@ -74257,12 +49449,12 @@ IntroScene19: ; e4f7e (39:4f7e) ld de, VBGMap0 tile $00 call Functione54fa call Functione541b - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e77dd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e77dd @@ -74270,15 +49462,15 @@ IntroScene19: ; e4f7e (39:4f7e) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld a, $d8 - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 ld hl, wc300 xor a @@ -74307,9 +49499,9 @@ IntroScene20: ; e5019 (39:5019) jr nc, .asm_e5032 cp $28 ret nc - ld a, [hSCY] ; $ff00+$d0 + ld a, [hSCY] inc a - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ret .asm_e5032 @@ -74344,10 +49536,10 @@ IntroScene20: ; e5019 (39:5019) IntroScene21: ; e505d (39:505d) ; Suicune gets more distant and turns black. call Functione5451 - ld c, $3 + ld c, 3 call DelayFrames xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld [wcf64], a ld [wcf65], a call NextIntroScene @@ -74407,30 +49599,30 @@ IntroScene25: ; e50ad (39:50ad) IntroScene26: ; e50bb (39:50bb) ; Load the final scene. - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap015 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroCrystalUnownsGFX ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap017 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e679d - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e679d @@ -74438,14 +49630,14 @@ IntroScene26: ; e50bb (39:50bb) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -74496,7 +49688,7 @@ IntroScene28: ; e5152 (39:5152) ret .clear - call WhiteBGMap + call ClearBGPalettes ret .done @@ -74512,10 +49704,10 @@ Functione5172: ; e5172 (39:5172) ld a, $0 adc h ld h, a - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld de, BGPals ld b, $8 .asm_e5187 @@ -74531,9 +49723,9 @@ Functione5172: ; e5172 (39:5172) dec b jr nz, .asm_e5187 pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret ; e519c (39:519c) @@ -74642,10 +49834,10 @@ endr .asm_e523e ld c, a ld b, $0 - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push hl push bc ld hl, BGPals @@ -74694,9 +49886,9 @@ endr ld a, d ld [hli], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret ; e5288 (39:5288) @@ -74741,10 +49933,10 @@ rept 3 add a endr ld c, a - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push bc ld de, BGPals ld a, c @@ -74756,7 +49948,7 @@ endr ld bc, $8 call CopyBytes pop bc - ld de, Unkn1Pals + ld de, wMapPals ld a, c add e ld e, a @@ -74766,9 +49958,9 @@ endr ld bc, $8 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret ; e538d (39:538d) @@ -74801,10 +49993,10 @@ endr add a ld c, a ld b, $0 - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push hl ld hl, Palette_e53db add hl, bc @@ -74828,9 +50020,9 @@ endr ld a, d ld [hli], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret ; e53db (39:53db) @@ -74853,15 +50045,15 @@ endr ; e541b Functione541b: ; e541b (39:541b) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $6 - ld [rSVBK], a ; $ff00+$70 - ld hl, Unkn1Pals + ld [rSVBK], a + ld hl, w6_d000 decoord 0, 0 - ld b, $12 + ld b, SCREEN_HEIGHT .asm_e542a - ld c, $14 + ld c, SCREEN_WIDTH .asm_e542c ld a, [hli] ld [de], a @@ -74877,7 +50069,7 @@ Functione541b: ; e541b (39:541b) dec b jr nz, .asm_e542a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Functione5441: ; e5441 (39:5441) @@ -74889,7 +50081,7 @@ Functione5441: ; e5441 (39:5441) ret .asm_e544d xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Functione5451: ; e5451 (39:5451) @@ -74910,7 +50102,7 @@ Functione5451: ; e5451 (39:5451) or b jr nz, .asm_e5457 ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Functione546d: ; e546d (39:546d) @@ -74927,9 +50119,9 @@ Functione546d: ; e546d (39:546d) ld [Requested2bppSource], a ld a, [hli] ld [Requested2bppSource + 1], a - ld a, $9090 % $100 + ld a, (VTiles2 tile $09) % $100 ld [Requested2bppDest], a - ld a, $9090 / $100 + ld a, (VTiles2 tile $09) / $100 ld [Requested2bppDest + 1], a ld a, $4 ld [Requested2bpp], a @@ -74945,94 +50137,94 @@ Unknown_e5496: ; e5496 Functione549e: ; e549e (39:549e) ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret Functione54a3: ; e54a3 (39:54a3) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, BGPals ld bc, $80 xor a call ByteFill pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a call DelayFrame call DelayFrame ret Functione54c2: ; e54c2 (39:54c2) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $6 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push de - ld de, Unkn1Pals + ld de, w6_d000 call Decompress pop hl - ld de, Unkn1Pals + ld de, w6_d000 ld bc, $180 call Request2bpp pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Functione54de: ; e54de (39:54de) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $6 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push de - ld de, Unkn1Pals + ld de, w6_d000 call Decompress pop hl - ld de, Unkn1Pals + ld de, w6_d000 ld bc, $1ff call Request2bpp pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Functione54fa: ; e54fa (39:54fa) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $6 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push de - ld de, Unkn1Pals + ld de, w6_d000 call Decompress pop hl - ld de, Unkn1Pals + ld de, w6_d000 ld bc, $140 call Request2bpp pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Functione5516: ; e5516 (39:5516) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, LYOverrides ld bc, $90 xor a call ByteFill pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $43 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a ret Functione552f: ; e552f (39:552f) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [wcf64] and $1 jr z, .asm_e5548 @@ -75050,9 +50242,9 @@ endr ld bc, $31 call ByteFill ld a, [LYOverrides + 0] - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret IntroSuicuneRunGFX: ; e555d @@ -75537,44 +50729,44 @@ GFX_f8aa0: ; f8aa0 INCBIN "gfx/unknown/0f8aa0.2bpp" ; f8ac0 -GFX_f8ac0: ; f8ac0 -INCBIN "gfx/unknown/0f8ac0.2bpp" +EnemyHPBarBorderGFX: ; f8ac0 +INCBIN "gfx/battle/enemy_hp_bar_border.1bpp" ; f8ae0 -GFX_f8ae0: ; f8ae0 -INCBIN "gfx/unknown/0f8ae0.2bpp" +HPExpBarBorderGFX: ; f8ae0 +INCBIN "gfx/battle/hp_exp_bar_border.1bpp" ; f8b10 -GFX_f8b10: ; f8b10 -INCBIN "gfx/unknown/0f8b10.2bpp" +ExpBarGFX: ; f8b10 +INCBIN "gfx/battle/expbar.2bpp" ; f8ba0 TownMapGFX: ; f8ba0 INCBIN "gfx/misc/town_map.2bpp.lz" ; f8ea4 -GFX_f8ea4: ; f8ea4 +GFX_f8ea4: ; unused INCBIN "gfx/unknown/0f8ea4.2bpp" ; f8f24 -GFX_f8f24: ; f8f24 -INCBIN "gfx/unknown/0f8f24.2bpp" +OverworldPhoneIconGFX: ; f8f24 +INCBIN "gfx/mobile/overworld_phone_icon.2bpp" ; f8f34 -GFX_f8f34: ; f8f34 +GFX_f8f34: ; unused INCBIN "gfx/unknown/0f8f34.2bpp" ; f9204 -GFX_f9204: ; f9204 -INCBIN "gfx/unknown/0f9204.2bpp" +TextBoxSpaceGFX: ; f9204 +INCBIN "gfx/frames/space.2bpp" ; f9214 -GFX_f9214: ; f9214 -INCBIN "gfx/unknown/0f9214.2bpp" +MobilePhoneTilesGFX: ; f9214 +INCBIN "gfx/mobile/phone_tiles.2bpp" ; f9344 -GFX_f9344: ; f9344 -INCBIN "gfx/unknown/0f9344.2bpp" +MapEntryFrameGFX: ; f9344 +INCBIN "gfx/frames/map_entry_sign.2bpp" ; f9424 GFX_f9424: ; f9424 @@ -75585,74 +50777,74 @@ Footprints: ; f9434 INCBIN "gfx/misc/footprints.1bpp" ; fb434 +; This and the following two functions are unreferenced. Unknown_fb434: db 0 Functionfb435: ; 4b435 ld a, [Unknown_fb434] and a - jp nz, Functionddc + jp nz, Get1bpp_2 jp Get1bpp ; fb43f Functionfb43f: ; fb43f ld a, [Unknown_fb434] and a - jp nz, Functiondc9 + jp nz, Get2bpp_2 jp Get2bpp +; End unreferenced block ; fb449 -Functionfb449:: ; fb449 +_LoadStandardFont:: ; fb449 ld de, Font ld hl, VTiles1 - lb bc, BANK(Font), $400 / 8 + lb bc, BANK(Font), $80 ld a, [rLCDC] bit 7, a jp z, Copy1bpp ld de, Font ld hl, VTiles1 - lb bc, BANK(Font), $100 / 8 - call Functionddc - ld de, Font + $100 - ld hl, VTiles1 + $200 - lb bc, BANK(Font), $100 / 8 - call Functionddc - ld de, Font + $200 - ld hl, VTiles1 + $400 - lb bc, BANK(Font), $100 / 8 - call Functionddc - ld de, Font + $300 - ld hl, VTiles1 + $600 - lb bc, BANK(Font), $100 / 8 - call Functionddc + lb bc, BANK(Font), $20 + call Get1bpp_2 + ld de, Font + $20 * LEN_1BPP_TILE + ld hl, VTiles1 tile $20 + lb bc, BANK(Font), $20 + call Get1bpp_2 + ld de, Font + $40 * LEN_1BPP_TILE + ld hl, VTiles1 tile $40 + lb bc, BANK(Font), $20 + call Get1bpp_2 + ld de, Font + $60 * LEN_1BPP_TILE + ld hl, VTiles1 tile $60 + lb bc, BANK(Font), $20 + call Get1bpp_2 ret ; fb48a - - -Functionfb48a:: ; fb48a - ld de, GFX_f9214 +_LoadFontsExtra1:: ; fb48a + ld de, MobilePhoneTilesGFX ld hl, VTiles2 tile $60 - lb bc, BANK(GFX_f9214), 1 - call Functionddc - ld de, GFX_f8f24 + lb bc, BANK(MobilePhoneTilesGFX), 1 + call Get1bpp_2 + ld de, OverworldPhoneIconGFX ld hl, VTiles2 tile $62 - lb bc, BANK(GFX_f8f24), 1 - call Functiondc9 - ld de, FontExtra + $30 + lb bc, BANK(OverworldPhoneIconGFX), 1 + call Get2bpp_2 + ld de, FontExtra + 3 * LEN_2BPP_TILE ld hl, VTiles2 tile $63 lb bc, BANK(FontExtra), $16 - call Functiondc9 - jr Functionfb4cc + call Get2bpp_2 + jr LoadFrame ; fb4b0 -Functionfb4b0:: ; fb4b0 +_LoadFontsExtra2:: ; fb4b0 ld de, GFX_f9424 ld hl, VTiles2 tile $61 ld b, BANK(GFX_f9424) ld c, 1 - call Functiondc9 + call Get2bpp_2 ret ; fb4be @@ -75660,86 +50852,88 @@ _LoadFontsBattleExtra:: ; fb4be ld de, FontBattleExtra ld hl, VTiles2 tile $60 lb bc, BANK(FontBattleExtra), $19 - call Functiondc9 - jr Functionfb4cc + call Get2bpp_2 + jr LoadFrame ; fb4cc -Functionfb4cc: ; fb4cc +LoadFrame: ; fb4cc ld a, [TextBoxFrame] and 7 - ld bc, $0030 + ld bc, TILES_PER_FRAME * LEN_1BPP_TILE ld hl, Frames call AddNTimes ld d, h ld e, l ld hl, VTiles2 tile $79 - lb bc, BANK(Frames), 6 - call Functionddc + lb bc, BANK(Frames), TILES_PER_FRAME + call Get1bpp_2 ld hl, VTiles2 tile $7f - ld de, GFX_f9204 - lb bc, BANK(GFX_f9204), 1 - call Functionddc + ld de, TextBoxSpaceGFX + lb bc, BANK(TextBoxSpaceGFX), 1 + call Get1bpp_2 ret ; fb4f2 -Functionfb4f2: ; fb4f2 +LoadBattleFontsHPBar: ; fb4f2 ld de, FontBattleExtra ld hl, VTiles2 tile $60 lb bc, BANK(FontBattleExtra), $c - call Functiondc9 + call Get2bpp_2 ld hl, VTiles2 tile $70 - ld de, FontBattleExtra + $100 + ld de, FontBattleExtra + $10 * LEN_2BPP_TILE lb bc, BANK(FontBattleExtra), 3 - call Functiondc9 - call Functionfb4cc + call Get2bpp_2 + call LoadFrame -Functionfb50d: ; fb50d - ld de, GFX_f8ac0 +LoadHPBar: ; fb50d + ld de, EnemyHPBarBorderGFX ld hl, VTiles2 tile $6c - lb bc, BANK(GFX_f8ac0), 4 - call Functionddc - ld de, GFX_f8ae0 + lb bc, BANK(EnemyHPBarBorderGFX), 4 + call Get1bpp_2 + ld de, HPExpBarBorderGFX ld hl, VTiles2 tile $73 - lb bc, BANK(GFX_f8ae0), 6 - call Functionddc - ld de, GFX_f8b10 + lb bc, BANK(HPExpBarBorderGFX), 6 + call Get1bpp_2 + ld de, ExpBarGFX ld hl, VTiles2 tile $55 - lb bc, BANK(GFX_f8b10), 9 - call Functiondc9 - ld de, GFX_f9214 + $90 + lb bc, BANK(ExpBarGFX), 9 + call Get2bpp_2 + ld de, MobilePhoneTilesGFX + 9 * LEN_2BPP_TILE ld hl, VTiles2 tile $5e - lb bc, BANK(GFX_f9214), 2 - call Functiondc9 + lb bc, BANK(MobilePhoneTilesGFX), 2 + call Get2bpp_2 ret ; fb53e Functionfb53e: ; fb53e call _LoadFontsBattleExtra - ld de, GFX_f8ac0 + ld de, EnemyHPBarBorderGFX ld hl, VTiles2 tile $6c - lb bc, BANK(GFX_f8ac0), 4 - call Functionddc - ld de, GFX_f8ae0 + lb bc, BANK(EnemyHPBarBorderGFX), 4 + call Get1bpp_2 + ld de, HPExpBarBorderGFX ld hl, VTiles2 tile $78 - lb bc, BANK(GFX_f8ae0), 1 - call Functionddc - ld de, GFX_f8ae0 + $18 + lb bc, BANK(HPExpBarBorderGFX), 1 + call Get1bpp_2 + ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE ld hl, VTiles2 tile $76 - lb bc, BANK(GFX_f8ae0), 2 - call Functionddc - ld de, GFX_f8b10 + lb bc, BANK(HPExpBarBorderGFX), 2 + call Get1bpp_2 + ld de, ExpBarGFX ld hl, VTiles2 tile $55 - lb bc, BANK(GFX_f8b10), 8 - call Functiondc9 + lb bc, BANK(ExpBarGFX), 8 + call Get2bpp_2 Functionfb571: ; fb571 ld de, GFX_f89b0 ld hl, VTiles2 tile $31 lb bc, BANK(GFX_f89b0), $11 - call Functiondc9 + call Get2bpp_2 ret ; fb57e +; These functions seem to be related to backwards compatibility + Functionfb57e: ; fb57e ld a, [wd003] ld hl, OTPartyMon1Species @@ -75761,7 +50955,7 @@ Functionfb57e: ; fb57e .asm_fb59c ld b, h ld c, l - ld hl, OTPartyMon1Level - OTPartyMon1 + ld hl, MON_LEVEL add hl, bc ld a, [hl] cp 101 @@ -75807,7 +51001,7 @@ endr ; fb5dd Functionfb5dd: ; fb5dd - ld a, [DefaultFlypoint] + ld a, [wd002] ld d, a ld a, [PartyCount] ld b, a @@ -76079,12 +51273,12 @@ PlaySlowCry: ; fb841 ; fb877 Functionfb877: ; fb877 - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a call LowVolume - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call UpdateSprites call ClearSprites @@ -76096,11 +51290,11 @@ Functionfb877: ; fb877 xor a ld [wPokedexStatus], a callba Function41a7f - call Functiona80 + call WaitPressAorB_BlinkCursor ld a, $1 ld [wPokedexStatus], a callba Function4424d - call Functiona80 + call WaitPressAorB_BlinkCursor pop af ld [wPokedexStatus], a call MaxVolume @@ -76110,17 +51304,17 @@ Functionfb877: ; fb877 ld [hSCX], a call Functionfb8c8 pop af - ld [$ffde], a + ld [hMapAnims], a ret ; fb8c8 Functionfb8c8: ; fb8c8 call ClearTileMap - call Functione5f - call Functione51 + call LoadFontsExtra + call LoadStandardFont callba Function40ab2 call Function3200 - callba Function3da97 + callba GetEnemyMonDVs ld a, [hli] ld [TempMonDVs], a ld a, [hl] @@ -76713,7 +51907,7 @@ Functionfcc63: ; fcc63 call Functionfcdf4 ld hl, PartyMonOT - ld bc, $000b + ld bc, NAME_LENGTH call Functionfcdd7 ld de, wc6f2 call Functionfcdf4 @@ -76723,19 +51917,19 @@ Functionfcc63: ; fcc63 call Functionfcdf4 ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdd7 ld de, wc6ff call Functionfce0f ld hl, PartyMon1DVs - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdd7 ld de, wc6fd call Functionfce0f ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdd7 ld b, h ld c, l @@ -76751,10 +51945,10 @@ Functionfcc63: ; fcc63 jr c, .asm_fcce6 ld a, 2 .asm_fcce6 - ld [wc733], a + ld [wEnemyCharging], a ld hl, PartyMon1Level - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdd7 ld a, [hl] ld [CurPartyLevel], a @@ -76762,7 +51956,7 @@ Functionfcc63: ; fcc63 ld [CurPartySpecies], a xor a ld [MonType], a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a callab Functione039 predef TryAddMonToParty @@ -76774,7 +51968,7 @@ Functionfcc63: ; fcc63 jr c, .asm_fcd1c ld b, 1 .asm_fcd1c - callba SetPkmnCaughtData + callba SetPartymonCaughtData ld e, TRADE_NICK call GetTradeAttribute @@ -76797,38 +51991,38 @@ Functionfcc63: ; fcc63 call Functionfcdf4 ld hl, PartyMonOT - ld bc, $000b + ld bc, NAME_LENGTH call Functionfcdde ld hl, wc724 call Functionfcdf4 ld e, TRADE_DVS call GetTradeAttribute - ld de, wc72f + ld de, wEnemyTrappingMove call Functionfce0f ld hl, PartyMon1DVs - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdde - ld hl, wc72f + ld hl, wEnemyTrappingMove call Functionfce0f ld e, TRADE_OT_ID call GetTradeAttribute - ld de, wc732 + ld de, wPlayerCharging call Functionfce15 ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdde - ld hl, wc731 + ld hl, wEnemyWrapCount call Functionfce0f ld e, TRADE_ITEM call GetTradeAttribute push hl ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdde pop hl ld a, [hl] @@ -76896,13 +52090,13 @@ Functionfcde8: ; fcde8 ; fcdf4 Functionfcdf4: ; fcdf4 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ret ; fcdfb Functionfcdfb: ; fcdfb - ld bc, $0004 + ld bc, 4 call CopyBytes ld a, $50 ld [de], a @@ -76910,7 +52104,7 @@ Functionfcdfb: ; fcdfb ; fce05 Functionfce05: ; fce05 - ld bc, $0003 + ld bc, 3 call CopyBytes ld a, $50 ld [de], a @@ -77240,7 +52434,7 @@ CheckBalance_MomItem2: ; fd044 ld [hMoneyTemp + 1], a ld a, [hli] ld [hMoneyTemp + 2], a - ld de, wd851 + ld de, wMomsMoney ld bc, hMoneyTemp callba CompareMoney jr nc, .have_enough_money @@ -77261,7 +52455,7 @@ CheckBalance_MomItem2: ; fd044 ld [hl], (2300 % $100) ; $fc .loop ld de, wdc19 - ld bc, wd851 + ld bc, wMomsMoney callba CompareMoney jr z, .exact jr nc, .less_than @@ -77297,10 +52491,10 @@ MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6) ld a, [hli] ld [hMoneyTemp], a ld a, [hli] - ld [$ffc4], a + ld [hMoneyTemp + 1], a ld a, [hli] - ld [$ffc5], a - ld de, wd851 + ld [hMoneyTemp + 2], a + ld de, wMomsMoney ld bc, hMoneyTemp callba TakeMoney ret @@ -77501,7 +52695,7 @@ Function104033: ; 104033 ld hl, w6_d000 call Function10425f ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d000 call Function10419d ret @@ -77517,7 +52711,7 @@ Function10404d: ; 10404d ld hl, w6_d400 call Function104263 ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d400 call Function10419d ret @@ -77537,18 +52731,18 @@ Function104067: ; 104067 call Function10425f call DelayFrame di - ld a, [rVBK] ; $ff00+$4f + ld a, [rVBK] push af ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d400 call Function1041ad ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d000 call Function1041ad pop af - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ei ret @@ -77593,7 +52787,7 @@ Function1040da: ; 1040da ld [rVBK], a ld a, $3 ld [rSVBK], a - ld de, $d800 + ld de, w3_d800 ld a, [hBGMapAddress + 1] ld [rHDMA1], a ld a, [hBGMapAddress] @@ -77618,7 +52812,7 @@ Function104101: ; 104101 ld [rVBK], a ld a, $3 ld [rSVBK], a - ld hl, $d800 + ld hl, w3_d800 call Function10419d ret ; 104110 @@ -77637,18 +52831,18 @@ Function104116: ; 104116 call Function10425f call DelayFrame di - ld a, [rVBK] ; $ff00+$4f + ld a, [rVBK] push af ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d400 call Function1041b7 ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d000 call Function1041b7 pop af - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ei ret ; 104148 @@ -77680,11 +52874,11 @@ Function10414e: ; 10414e Function104177: ; 104177 ld a, [hBGMapMode] push af - ld a, [$ffde] + ld a, [hMapAnims] push af xor a ld [hBGMapMode], a - ld [$ffde], a + ld [hMapAnims], a ld a, [rSVBK] push af ld a, 6 @@ -77697,7 +52891,7 @@ Function104177: ; 104177 pop af ld [rSVBK], a pop af - ld [$ffde], a + ld [hMapAnims], a pop af ld [hBGMapMode], a ret @@ -77711,12 +52905,12 @@ Function10419c: ; 10419c Function10419d: ; 10419d (41:419d) call Function10424e ld a, $23 - ld [hDMATransfer], a ; $ff00+$e8 + ld [hDMATransfer], a Function1041a4: ; 104a14 .asm_1041a4 call DelayFrame - ld a, [hDMATransfer] ; $ff00+$e8 + ld a, [hDMATransfer] and a jr nz, .asm_1041a4 ret @@ -77724,7 +52918,7 @@ Function1041a4: ; 104a14 Function1041ad: ; 1041ad (41:41ad) ld a, [hBGMapAddress + 1] ld d, a - ld a, [hBGMapAddress] ; $ff00+$d6 + ld a, [hBGMapAddress] ld e, a ld c, $24 jr Function104209 @@ -77732,7 +52926,7 @@ Function1041ad: ; 1041ad (41:41ad) Function1041b7: ; 1041b7 (41:41b7) ld a, [hBGMapAddress + 1] ld d, a - ld a, [hBGMapAddress] ; $ff00+$d6 + ld a, [hBGMapAddress] ld e, a ld c, $24 jr asm_104205 @@ -77848,14 +53042,14 @@ asm_10420b: Function10424e: ; 10424e (41:424e) ld a, h - ld [rHDMA1], a ; $ff00+$51 + ld [rHDMA1], a ld a, l - ld [rHDMA2], a ; $ff00+$52 + ld [rHDMA2], a ld a, [hBGMapAddress + 1] and $1f - ld [rHDMA3], a ; $ff00+$53 - ld a, [hBGMapAddress] ; $ff00+$d6 - ld [rHDMA4], a ; $ff00+$54 + ld [rHDMA3], a + ld a, [hBGMapAddress] + ld [rHDMA4], a ret Function10425f: ; 10425f (41:425f) @@ -77902,7 +53096,8 @@ Function104265: ; 104265 (41:4265) ret -Function104284:: ; 104284 +_Get2bpp:: ; 104284 + ; 2bpp when [rLCDC] & $80 ; switch to WRAM bank 6 ld a, [rSVBK] push af @@ -77944,24 +53139,25 @@ endr ret ; 1042b2 -Function1042b2:: ; 1042b2 +_Get1bpp:: ; 1042b2 + ; 1bpp when [rLCDC] & $80 .loop ld a, c cp $10 - jp c, .asm_1042d6 - jp z, .asm_1042d6 + jp c, .bankswitch + jp z, .bankswitch push bc push hl push de ld c, $10 - call .asm_1042d6 + call .bankswitch pop de - ld hl, $0080 + ld hl, $80 add hl, de ld d, h ld e, l pop hl - ld bc, $100 + lb bc, 1, 0 add hl, bc pop bc ld a, c @@ -77970,34 +53166,40 @@ Function1042b2:: ; 1042b2 jr .loop ; 1042d6 -.asm_1042d6: ; 1042d6 +.bankswitch: ; 1042d6 ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a + push bc push hl + ld a, b ld l, c ld h, $0 rept 3 - add hl, hl + add hl, hl ; multiply by 8 endr ld c, l ld b, h ld h, d ld l, e ld de, w6_d000 - call Functiondef + call FarCopyBytesDouble_DoubleBankSwitch + pop hl pop bc + push bc call DelayFrame pop bc + ld d, h ld e, l ld hl, w6_d000 call Function104209 + pop af ld [rSVBK], a ret @@ -78016,13 +53218,13 @@ Function104309: decoord 0, 0, AttrMap call Function10433a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld c, $8 ld hl, w6_d000 + $80 ld de, VBGMap1 tile $00 call Function104209 ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld c, $8 ld hl, w6_d000 ld de, VBGMap1 tile $00 @@ -78058,7 +53260,10 @@ HeartEmote: INCBIN "gfx/emotes/heart.2bpp" BoltEmote: INCBIN "gfx/emotes/bolt.2bpp" SleepEmote: INCBIN "gfx/emotes/sleep.2bpp" FishEmote: INCBIN "gfx/emotes/fish.2bpp" -FishingRodGFX: INCBIN "gfx/misc/fishing.2bpp" +FishingRodGFX1: INCBIN "gfx/misc/fishing1.2bpp" +FishingRodGFX2: INCBIN "gfx/misc/fishing2.2bpp" +FishingRodGFX3: INCBIN "gfx/misc/fishing3.2bpp" +FishingRodGFX4: INCBIN "gfx/misc/fishing4.2bpp" RunCallback_05_03: ; 1045b0 @@ -78111,22 +53316,22 @@ EnterWestConnection: ; 1045ed ld h, [hl] ld l, a srl c - jr z, .asm_10461e + jr z, .skip_to_load ld a, [WestConnectedMapWidth] add 6 ld e, a ld d, 0 -.asm_10461a +.loop add hl, de dec c - jr nz, .asm_10461a + jr nz, .loop -.asm_10461e +.skip_to_load ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a jp EnteredConnection ; 104629 @@ -78148,22 +53353,22 @@ EnterEastConnection: ; 104629 ld h, [hl] ld l, a srl c - jr z, .asm_10465a + jr z, .skip_to_load ld a, [EastConnectedMapWidth] add 6 ld e, a ld d, 0 -.asm_104656 +.loop add hl, de dec c - jr nz, .asm_104656 + jr nz, .loop -.asm_10465a +.skip_to_load ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a jp EnteredConnection ; 104665 @@ -78190,7 +53395,7 @@ EnterNorthConnection: ; 104665 ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a jp EnteredConnection ; 104696 @@ -78217,7 +53422,7 @@ EnterSouthConnection: ; 104696 ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a ; fallthrough ; 1046c4 @@ -78301,7 +53506,7 @@ LoadMapTimeOfDay: ; 104750 ld [wc2ce], a callba Function8c0e5 callba Function8c001 - call Function2173 + call OverworldTextModeSwitch call Function104770 call Function1047a3 ret @@ -78311,21 +53516,21 @@ Function104770: ; 104770 (41:4770) ld [wd153], a xor a ld [wd152], a - ld [hSCY], a ; $ff00+$d0 - ld [hSCX], a ; $ff00+$cf + ld [hSCY], a + ld [hSCX], a callba Function5958 - ld a, [rVBK] ; $ff00+$4f + ld a, [rVBK] push af ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a xor a - ld bc, $400 + lb bc, 4, 0 ld hl, VBGMap0 tile $00 call ByteFill pop af - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld a, $60 - ld bc, $400 + lb bc, 4, 0 ld hl, VBGMap0 tile $00 call ByteFill ret @@ -78333,12 +53538,12 @@ Function104770: ; 104770 (41:4770) Function1047a3: ; 1047a3 (41:47a3) decoord 0, 0 call Function1047b4 - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a ret z decoord 0, 0, AttrMap ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a Function1047b4: ; 1047b4 (41:47b4) ld hl, VBGMap0 tile $00 @@ -78358,18 +53563,18 @@ Function1047b4: ; 1047b4 (41:47b4) dec b jr nz, .asm_1047bb ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ret LoadGraphics: ; 1047cf call LoadTilesetHeader call Function2821 xor a - ld [$ffde], a + ld [hMapAnims], a xor a - ld [hTileAnimFrame], a ; $ff00+$df - callba Function14168 - call Functione5f + ld [hTileAnimFrame], a + callba RefreshSprites + call LoadFontsExtra callba Function106594 ret @@ -78383,14 +53588,14 @@ RefreshMapSprites: ; 1047f0 callba ReturnFromMapSetupScript call Function2914 callba Function579d - callba Function154f7 + callba CheckReplaceKrisSprite ld hl, wPlayerSpriteSetupFlags bit 6, [hl] - jr nz, .asm_104817 + jr nz, .skip ld hl, VramState set 0, [hl] call Function2e31 -.asm_104817 +.skip ld a, [wPlayerSpriteSetupFlags] and $1c ld [wPlayerSpriteSetupFlags], a @@ -78410,6 +53615,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .right and a ret + .down ld a, [PlayerMapY] sub 4 @@ -78420,6 +53626,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .ok and a ret + .up ld a, [PlayerMapY] sub 4 @@ -78427,6 +53634,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .ok and a ret + .left ld a, [PlayerMapX] sub $4 @@ -78434,6 +53642,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .ok and a ret + .right ld a, [PlayerMapX] sub 4 @@ -78444,6 +53653,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .ok and a ret + .ok scf ret @@ -78453,16 +53663,16 @@ GetCoordOfUpperLeftCorner:: ; 10486d ld hl, OverworldMap ld a, [XCoord] bit 0, a - jr nz, .asm_10487d + jr nz, .increment_then_halve1 srl a add $1 - jr .asm_104881 + jr .resume -.asm_10487d +.increment_then_halve1 add $1 srl a -.asm_104881 +.resume ld c, a ld b, $0 add hl, bc @@ -78472,21 +53682,21 @@ GetCoordOfUpperLeftCorner:: ; 10486d ld b, $0 ld a, [YCoord] bit 0, a - jr nz, .asm_10489a + jr nz, .increment_then_halve2 srl a add $1 - jr .asm_10489e + jr .resume2 -.asm_10489a +.increment_then_halve2 add $1 srl a -.asm_10489e +.resume2 call AddNTimes ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a ld a, [YCoord] and $1 ld [wd196], a @@ -78512,14 +53722,14 @@ DoMysteryGift: ; 1048ba (41:48ba) ld [wca01], a ld a, $14 ld [wca02], a - ld a, [rIE] ; $ff00+$ff + ld a, [rIE] push af call Function104a95 ld d, a xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a pop af - ld [rIE], a ; $ff00+$ff + ld [rIE], a push de call ClearTileMap call EnableLCD @@ -78559,9 +53769,9 @@ DoMysteryGift: ; 1048ba (41:48ba) cp $4 jr z, .asm_104963 call Function104a71 - callba Function10619d + callba RestoreMobileEventIndex callba MobileFn_1060a9 - callba Function106187 + callba BackupMobileEventIndex .asm_104963 ld a, [wc90f] and a @@ -78586,7 +53796,7 @@ DoMysteryGift: ; 1048ba (41:48ba) call GetMysteryGiftBank ld a, [wc910] ld c, a - callba MysteryGiftGetItem + callba MysteryGiftGetItemHeldEffect ld a, c ld [s0_abe4], a ld [wNamedObjectIndexBuffer], a @@ -78614,7 +53824,7 @@ Function1049c2: ; 1049c2 (41:49c2) Function1049c5: ; 1049c5 (41:49c5) call PrintText ld a, $e3 - ld [rLCDC], a ; $ff00+$40 + ld [rLCDC], a ret ; 1049cd (41:49cd) @@ -78740,12 +53950,12 @@ Function104a95: ; 104a95 (41:4a95) .asm_104a9f call Function104d96 call Function104ddd - ld a, [$ffbc] + ld a, [hPrintNum10] cp $10 jp z, Function104bd0 cp $6c jr nz, .asm_104a9f - ld a, [$ffbb] + ld a, [hPrintNum9] cp $2 jr z, Function104b22 ld hl, $ffb3 @@ -78756,10 +53966,10 @@ Function104a95: ; 104a95 (41:4a95) jp nz, Function104bd0 jr asm_104b0a .asm_104ac8 - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $90 jr c, .asm_104ac8 - ld c, $56 + ld c, rRP % $100 ld a, $c0 ld [$ff00+c], a ld b, $f0 @@ -78767,19 +53977,19 @@ Function104a95: ; 104a95 (41:4a95) push bc call Function105038 ld b, $2 - ld c, $56 + ld c, rRP % $100 .asm_104add ld a, [$ff00+c] and b ld b, a - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $90 jr nc, .asm_104add .asm_104ae6 ld a, [$ff00+c] and b ld b, a - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $90 jr c, .asm_104ae6 ld a, b @@ -78788,11 +53998,11 @@ Function104a95: ; 104a95 (41:4a95) jr z, .asm_104a9f or a jr nz, .asm_104a9f - ld a, [$ffc4] + ld a, [hMoneyTemp + 1] bit 1, a jr z, .asm_104ad5 ld a, $10 - ld [$ffbc], a + ld [hPrintNum10], a jp Function104bd0 Function104b04: ; 104b04 (41:4b04) @@ -78829,7 +54039,7 @@ Function104b40: ; 104b40 (41:4b40) Function104b49: ; 104b49 (41:4b49) call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz ld a, [$ffb3] @@ -78844,7 +54054,7 @@ Function104b49: ; 104b49 (41:4b49) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz call Function104d43 @@ -78855,7 +54065,7 @@ Function104b49: ; 104b49 (41:4b49) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret @@ -78867,7 +54077,7 @@ Function104b88: ; 104b88 (41:4b88) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz call Function104d43 @@ -78877,7 +54087,7 @@ Function104b88: ; 104b88 (41:4b88) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz ld a, [$ffb3] @@ -78891,13 +54101,13 @@ Function104b88: ; 104b88 (41:4b88) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104bd0: ; 104bd0 (41:4bd0) nop - ld a, [$ffbc] + ld a, [hPrintNum10] cp $10 jr z, .asm_104c18 cp $6c @@ -78916,7 +54126,7 @@ Function104bd0: ; 104bd0 (41:4bd0) call Function1050fb ld a, $26 ld [wca02], a - ld a, [$ffbb] + ld a, [hPrintNum9] cp $2 jr z, .asm_104c10 call Function104d43 @@ -78927,14 +54137,14 @@ Function104bd0: ; 104bd0 (41:4bd0) jr nz, Function104bd0 jp Function104b22 .asm_104c18 - ld a, [$ffbc] + ld a, [hPrintNum10] push af call Function104da0 xor a - ld [rIF], a ; $ff00+$f - ld a, [rIE] ; $ff00+$ff + ld [rIF], a + ld a, [rIE] or $1 - ld [rIE], a ; $ff00+$ff + ld [rIE], a ei call DelayFrame pop af @@ -78947,12 +54157,12 @@ Function104c2d: ; 104c2d (41:4c2d) .asm_104c37 call Function104d96 call Function104ddd - ld a, [$ffbc] + ld a, [hPrintNum10] cp $10 jp z, Function104d1c cp $6c jr nz, .asm_104c37 - ld a, [$ffbb] + ld a, [hPrintNum9] cp $2 jr z, .asm_104c6c call Function104c8a @@ -78983,7 +54193,7 @@ Function104c8a: ; 104c8a (41:4c8a) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz ld a, [$ffb3] @@ -78998,7 +54208,7 @@ Function104c8a: ; 104c8a (41:4c8a) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz call Function104d43 @@ -79009,7 +54219,7 @@ Function104c8a: ; 104c8a (41:4c8a) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret @@ -79021,7 +54231,7 @@ Function104cd2: ; 104cd2 (41:4cd2) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz call Function104d43 @@ -79031,7 +54241,7 @@ Function104cd2: ; 104cd2 (41:4cd2) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz ld a, [$ffb3] @@ -79046,20 +54256,20 @@ Function104cd2: ; 104cd2 (41:4cd2) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104d1c: ; 104d1c (41:4d1c) nop - ld a, [$ffbc] + ld a, [hPrintNum10] push af call Function104da0 xor a - ld [rIF], a ; $ff00+$f - ld a, [rIE] ; $ff00+$ff + ld [rIF], a + ld a, [rIE] or $1 - ld [rIE], a ; $ff00+$ff + ld [rIE], a ei call DelayFrame pop af @@ -79067,42 +54277,42 @@ Function104d1c: ; 104d1c (41:4d1c) Function104d32: ; 104d32 (41:4d32) ld a, $80 - ld [$ffbc], a + ld [hPrintNum10], a and a ret Function104d38: ; 104d38 (41:4d38) call Function104d96 call Function104e46 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104d43: ; 104d43 (41:4d43) call Function104d96 call Function104dfe - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104d4e: ; 104d4e (41:4d4e) call Function104e93 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104d56: ; 104d56 (41:4d56) call Function104f57 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104d5e: ; 104d5e (41:4d5e) call Function104d74 ld a, $4 - ld [rIE], a ; $ff00+$ff + ld [rIE], a xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a call Function104d96 xor a ld b, a @@ -79115,46 +54325,46 @@ Function104d5e: ; 104d5e (41:4d5e) Function104d74: ; 104d74 (41:4d74) xor a - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a ld a, $fe - ld [rTMA], a ; $ff00+$6 - ld [rTIMA], a ; $ff00+$5 + ld [rTMA], a + ld [rTIMA], a ld a, $2 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a or $4 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a ret Function104d86: ; 104d86 (41:4d86) xor a - ld [rTAC], a ; $ff00+$7 - ld [rTMA], a ; $ff00+$6 - ld [rTIMA], a ; $ff00+$5 + ld [rTAC], a + ld [rTMA], a + ld [rTIMA], a ld a, $2 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a or $4 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a ret Function104d96: ; 104d96 (41:4d96) ld a, $c0 call Function104e8c ld a, $1 - ld [$ffbb], a + ld [hPrintNum9], a ret Function104da0: ; 104da0 (41:4da0) xor a call Function104e8c ld a, $2 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a ret Function104da9: ; 104da9 (41:4da9) inc d ret z xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt ld a, [$ff00+c] bit 1, a @@ -79166,7 +54376,7 @@ Function104db7: ; 104db7 (41:4db7) inc d ret z xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt ld a, [$ff00+c] bit 1, a @@ -79181,7 +54391,7 @@ Function104dc5: ; 104dc5 (41:4dc5) dec d ret z xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt jr .asm_104dc8 @@ -79192,7 +54402,7 @@ Function104dd1: ; 104dd1 (41:4dd1) dec d ret z xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt jr .asm_104dd4 @@ -79200,16 +54410,16 @@ Function104ddd: ; 104ddd (41:4ddd) ld d, $0 ld e, d ld a, $1 - ld [$ffbb], a + ld [hPrintNum9], a .asm_104de4 call Function105038 ld b, $2 - ld c, $56 - ld a, [$ffc4] + ld c, rRP % $100 + ld a, [hMoneyTemp + 1] bit 1, a jr z, .asm_104df6 ld a, $10 - ld [$ffbc], a + ld [hPrintNum10], a ret .asm_104df6 bit 0, a @@ -79219,7 +54429,7 @@ Function104ddd: ; 104ddd (41:4ddd) jr nz, .asm_104de4 Function104dfe: ; 104dfe (41:4dfe) - ld c, $56 + ld c, rRP % $100 ld d, $0 ld e, d call Function104db7 @@ -79232,7 +54442,7 @@ Function104dfe: ; 104dfe (41:4dfe) call Function104da9 jp z, Function104f42 ld a, $6c - ld [$ffbc], a + ld [hPrintNum10], a ld d, $3d call Function104dd1 ld d, $5 @@ -79258,7 +54468,7 @@ asm_104e3a: ; 104e3a (41:4e3a) Function104e46: ; 104e46 (41:4e46) ld a, $2 - ld [$ffbb], a + ld [hPrintNum9], a ld c, $56 ld d, $0 ld e, d @@ -79285,19 +54495,19 @@ Function104e46: ; 104e46 (41:4e46) ld d, $3d call Function104dd1 ld a, $6c - ld [$ffbc], a + ld [hPrintNum10], a ret Function104e8c: ; 104e8c (41:4e8c) - ld [rRP], a ; $ff00+$56 + ld [rRP], a ld a, $ff - ld [$ffbc], a + ld [hPrintNum10], a ret Function104e93: ; 104e93 (41:4e93) xor a - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) - ld [hMathBuffer], a ; $ff00+$b8 + ld [hDivisor], a + ld [hMathBuffer], a push hl push bc ld c, $56 @@ -79313,21 +54523,21 @@ Function104e93: ; 104e93 (41:4e93) pop bc pop hl call Function104ed6 - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) - ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) - ld a, [hMathBuffer] ; $ff00+$b8 + ld a, [hDivisor] + ld [hQuotient], a + ld a, [hMathBuffer] ld [$ffb5], a push hl ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) ld b, $2 call Function104ed6 - ld hl, $ffbc + ld hl, hPrintNum10 ld b, $1 call Function104faf - ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hQuotient] + ld [hDivisor], a ld a, [$ffb5] - ld [hMathBuffer], a ; $ff00+$b8 + ld [hMathBuffer], a pop hl ret @@ -79343,7 +54553,7 @@ Function104ed6: ; 104ed6 (41:4ed6) cpl ld b, a ld a, $f4 - ld [rTMA], a ; $ff00+$6 + ld [rTMA], a .asm_104eee inc b jr z, .asm_104f2e @@ -79351,18 +54561,18 @@ Function104ed6: ; 104ed6 (41:4ed6) ld [$ffb6], a ld a, [hli] ld e, a - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hDivisor] add e - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) - ld a, [hMathBuffer] ; $ff00+$b8 + ld [hDivisor], a + ld a, [hMathBuffer] adc $0 - ld [hMathBuffer], a ; $ff00+$b8 + ld [hMathBuffer], a .asm_104f02 xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt ld a, $c1 - ld [rRP], a ; $ff00+$56 + ld [rRP], a ld d, $1 ld a, e rlca @@ -79370,15 +54580,15 @@ Function104ed6: ; 104ed6 (41:4ed6) jr nc, .asm_104f13 inc d .asm_104f13 - ld a, [rTIMA] ; $ff00+$5 + ld a, [rTIMA] cp $f8 jr c, .asm_104f13 ld a, $c0 - ld [rRP], a ; $ff00+$56 + ld [rRP], a dec d jr z, .asm_104f25 xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt .asm_104f25 ld a, [$ffb6] @@ -79388,9 +54598,9 @@ Function104ed6: ; 104ed6 (41:4ed6) jr .asm_104f02 .asm_104f2e ld a, $fe - ld [rTMA], a ; $ff00+$6 + ld [rTMA], a xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt ld d, $5 call Function104dc5 @@ -79399,27 +54609,27 @@ Function104ed6: ; 104ed6 (41:4ed6) ret Function104f42: ; 104f42 (41:4f42) - ld a, [$ffbc] + ld a, [hPrintNum10] or $2 - ld [$ffbc], a + ld [hPrintNum10], a ret Function104f49: ; 104f49 (41:4f49) - ld a, [$ffbc] + ld a, [hPrintNum10] or $1 - ld [$ffbc], a + ld [hPrintNum10], a ret Function104f50: ; 104f50 (41:4f50) - ld a, [$ffbc] + ld a, [hPrintNum10] or $80 - ld [$ffbc], a + ld [hPrintNum10], a ret Function104f57: ; 104f57 (41:4f57) xor a - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) - ld [hMathBuffer], a ; $ff00+$b8 + ld [hDivisor], a + ld [hMathBuffer], a push bc push hl ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) @@ -79432,13 +54642,13 @@ Function104f57: ; 104f57 (41:4f57) pop af cp b jp c, Function104f50 - ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) + ld a, [hQuotient] cp $5a jp nz, Function104f50 call Function104faf - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hDivisor] ld d, a - ld a, [hMathBuffer] ; $ff00+$b8 + ld a, [hMathBuffer] ld e, a push hl push de @@ -79457,19 +54667,19 @@ Function104f57: ; 104f57 (41:4f57) push de ld d, $3d call Function104dd1 - ld hl, $ffbc + ld hl, hPrintNum10 ld b, $1 call Function104ed6 pop de pop hl ld a, d - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) + ld [hDivisor], a ld a, e - ld [hMathBuffer], a ; $ff00+$b8 + ld [hMathBuffer], a ret Function104faf: ; 104faf (41:4faf) - ld c, $56 + ld c, rRP % $100 ld d, $0 call Function104db7 jp z, Function104f42 @@ -79483,7 +54693,7 @@ Function104faf: ; 104faf (41:4faf) cpl ld b, a xor a - ld [$ffc5], a + ld [hMoneyTemp + 2], a call Function104d86 .asm_104fd2 inc b @@ -79506,10 +54716,10 @@ Function104faf: ; 104faf (41:4faf) bit 1, a jr nz, .asm_104fe5 .asm_104fed - ld a, [$ffc5] + ld a, [hMoneyTemp + 2] ld d, a - ld a, [rTIMA] ; $ff00+$5 - ld [$ffc5], a + ld a, [rTIMA] + ld [hMoneyTemp + 2], a sub d cp $12 jr c, .asm_104ffd @@ -79529,17 +54739,17 @@ Function104faf: ; 104faf (41:4faf) .asm_10500b ld a, e ld [hli], a - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hDivisor] add e - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) - ld a, [hMathBuffer] ; $ff00+$b8 + ld [hDivisor], a + ld a, [hMathBuffer] adc $0 - ld [hMathBuffer], a ; $ff00+$b8 + ld [hMathBuffer], a jr .asm_104fd2 .asm_10501a call Function104d74 xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a ld d, $0 call Function104da9 jp z, Function104f42 @@ -79557,18 +54767,18 @@ Function105033: ; 105033 (41:5033) Function105038: ; 105038 (41:5038) ld a, $20 - ld [rJOYP], a ; $ff00+$0 + ld [rJOYP], a rept 2 - ld a, [rJOYP] ; $ff00+$0 + ld a, [rJOYP] endr cpl and $f swap a ld b, a ld a, $10 - ld [rJOYP], a ; $ff00+$0 + ld [rJOYP], a rept 6 - ld a, [rJOYP] ; $ff00+$0 + ld a, [rJOYP] endr cpl and $f @@ -79577,11 +54787,11 @@ endr ld a, [hMoneyTemp] xor c and c - ld [$ffc4], a + ld [hMoneyTemp + 1], a ld a, c ld [hMoneyTemp], a ld a, $30 - ld [rJOYP], a ; $ff00+$0 + ld [rJOYP], a ret Function105069: ; 105069 (41:5069) @@ -79707,17 +54917,17 @@ Function10510b: ; 10510b (41:510b) cp EGG jr z, .asm_10513e push hl - ld hl, PartyMon1Level - PartyMon1 + ld hl, MON_LEVEL add hl, bc ld a, [hl] ld [de], a inc de - ld hl, PartyMon1Species - PartyMon1 + ld hl, MON_SPECIES add hl, bc ld a, [hl] ld [de], a inc de - ld hl, PartyMon1Moves - PartyMon1 + ld hl, MON_MOVES add hl, bc push bc ld bc, NUM_MOVES @@ -79726,7 +54936,7 @@ Function10510b: ; 10510b (41:510b) pop hl .asm_10513e push hl - ld hl, PartyMon2 - PartyMon1 + ld hl, PARTYMON_STRUCT_LENGTH add hl, bc ld b, h ld c, l @@ -79740,7 +54950,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 @@ -79893,21 +55103,21 @@ Function105688: ; 105688 (41:5688) call Function1050fb ld a, $24 ld [wca02], a - ld a, [rIE] ; $ff00+$ff + ld a, [rIE] push af call Function104c2d ld d, a xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a pop af - ld [rIE], a ; $ff00+$ff + ld [rIE], a ld a, d cp $10 jp z, Function105712 cp $6c jp nz, Function10571a call Function1056eb - ld c, $3c + ld c, 60 call DelayFrames call Function105777 ld hl, Text_10575e @@ -79945,7 +55155,7 @@ endr dec c ret z push bc - ld c, $4 + ld c, 4 call DelayFrames pop bc jr .asm_1056ed @@ -79964,15 +55174,15 @@ Function10571a: ; 10571a (41:571a) asm_105726: ; 105726 (41:5726) call PrintText ld a, $e3 - ld [rLCDC], a ; $ff00+$40 + ld [rLCDC], a ret ; 10572e (41:572e) String_10572e: ; 10572e - db "エーボタン", $1f, "おすと" + db "エーボタン¯おすと" next "つうしん", $4a, "おこなわれるよ!" - next "ビーボタン", $1f, "おすと" - next "つうしん", $1f, "ちゅうし します" + next "ビーボタン¯おすと" + next "つうしん¯ちゅうし します" db "@" ; 10575e @@ -80039,12 +55249,12 @@ Function10578c: ; 10578c (41:578c) ret Function1057d7: ; 1057d7 (41:57d7) - call WhiteBGMap + call ClearBGPalettes call DisableLCD ld hl, MysteryGiftJP_GFX ld de, VTiles2 tile $00 ld a, BANK(MysteryGiftJP_GFX) - ld bc, $400 + lb bc, 4, 0 call FarCopyBytes ld hl, MysteryGiftJP_GFX + $400 ld de, VTiles0 tile $00 @@ -80236,7 +55446,7 @@ UsedMoveText: ; 105db9 ld [wd265], a push hl - callba Function34548 + callba CheckUserIsCharging pop hl jr nz, .grammar @@ -80551,1094 +55761,7 @@ UpdateUsedMoves: ; 105ed0 ret ; 105ef6 - - -SECTION "bank41_2", ROMX, BANK[$41] - -Mobile_HallOfFame2:: mobile ; 0x105ef6 - ld a, $5 - call GetSRAMBank - ld hl, GameTimeHours - ld de, $a001 - ld bc, $0004 - call CopyBytes - ld hl, $a010 - ld de, $a005 - ld bc, $0004 - call CopyBytes - ld hl, $a039 - ld de, $a009 - ld bc, $0004 - call CopyBytes - ld hl, $a01b - ld de, $a00d - ld bc, $0003 - call CopyBytes - call Function106162 - call CloseSRAM - ret -; 105f33 - -MagikarpLength_Mobile: mobile ; 105f33 - ld a, $5 - call GetSRAMBank - ld de, Buffer1 - ld hl, $a07b - ld a, [de] - cp [hl] - jr z, .asm_105f47 - jr nc, .asm_105f4f - jr .asm_105f55 - -.asm_105f47 - inc hl - inc de - ld a, [de] - cp [hl] - dec hl - dec de - jr c, .asm_105f55 - -.asm_105f4f - ld a, [de] - inc de - ld [hli], a - ld a, [de] - dec de - ld [hl], a - -.asm_105f55 - ld hl, $a07d - ld a, [hli] - or [hl] - dec hl - jr z, .asm_105f6d - ld a, [de] - cp [hl] - jr z, .asm_105f65 - jr c, .asm_105f6d - jr .asm_105f72 - -.asm_105f65 - inc hl - inc de - ld a, [de] - cp [hl] - jr nc, .asm_105f72 - dec hl - dec de - -.asm_105f6d - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - -.asm_105f72 - call Function106162 - call CloseSRAM - ret -; 105f79 - -MobileFn_105f79: mobile ; 105f79 - ld a, $5 - call GetSRAMBank - ld a, [hProduct] - ld hl, $a07f - cp [hl] - jr z, .asm_105f8b - jr nc, .asm_105f92 - jr .asm_105f98 - -.asm_105f8b - inc hl - ld a, [hMultiplicand] - cp [hl] - jr c, .asm_105f98 - dec hl - -.asm_105f92 - ld a, [hProduct] - ld [hli], a - ld a, [hMultiplicand] - ld [hl], a - -.asm_105f98 - call Function106162 - call CloseSRAM - ret -; 105f9f - -MobileFn_105f9f: mobile ; 105f9f - ld a, $5 - call GetSRAMBank - ld hl, $a070 - inc [hl] - jr nz, .asm_105fae - dec hl - inc [hl] - inc hl - -.asm_105fae - dec hl - ld a, [$a071] - cp [hl] - jr z, .asm_105fb9 - jr c, .asm_105fc1 - jr .asm_105fc9 - -.asm_105fb9 - inc hl - ld a, [$a072] - cp [hl] - jr nc, .asm_105fc9 - dec hl - -.asm_105fc1 - ld a, [hli] - ld [$a071], a - ld a, [hl] - ld [$a072], a - -.asm_105fc9 - call Function106162 - call CloseSRAM - ret -; 105fd0 - -MobileFn_105fd0: mobile ; 105fd0 - ld a, $5 - call GetSRAMBank - ld hl, $a06f - xor a - ld [hli], a - ld [hl], a - call Function106162 - call CloseSRAM - ret -; 105fe3 - -MobileFn_105fe3: mobile ; 105fe3 - ld a, $5 - call GetSRAMBank - ld hl, $a076 - ld a, e - add [hl] - ld [hld], a - ld a, d - adc [hl] - ld [hld], a - jr nc, .asm_106001 - inc [hl] - jr nz, .asm_106001 - dec hl - inc [hl] - jr nz, .asm_106001 - ld a, $ff -rept 3 - ld [hli], a -endr - ld [hl], a - -.asm_106001 - call Function106162 - call CloseSRAM - ret -; 106008 - -MobileFn_106008: mobile ; 106008 - ld a, $5 - call GetSRAMBank - ld hl, $a07a - ld a, [bc] - dec bc - add [hl] - ld [hld], a - ld a, [bc] - dec bc - adc [hl] - ld [hld], a - ld a, [bc] - adc [hl] - ld [hld], a - jr nc, .asm_106027 - inc [hl] - jr nz, .asm_106027 - ld a, $ff -rept 3 - ld [hli], a -endr - ld [hl], a - -.asm_106027 - call Function106162 - call CloseSRAM - ret -; 10602e - -MobileFn_10602e: mobile ; 10602e (41:602e) - ld hl, $a010 - jp Function106117 - -MobileFn_106035: mobile ; 106035 - ld a, $5 - call GetSRAMBank - ld a, [$aa8d] - and a - call CloseSRAM - ret nz - ld hl, $a014 - jp Function106123 - -MobileFn_106049: mobile ; 106049 - ld hl, $a018 - jp Function10611d - -MobileFn_106050: mobile ; 106050 - ld a, [BattleType] - cp BATTLETYPE_TUTORIAL - ret z - ld hl, $a01b - jp Function10611d - -MobileFn_10605d: mobile ; 10605d - ld a, [BattleType] - cp BATTLETYPE_TUTORIAL - ret z - ld hl, $a01e - jp Function10611d - -MobileFn_10606a: mobile ; 10606a - ld hl, $a021 - jp Function10611d - -MobileFn_106071: mobile ; 106071 - ld hl, $a024 - jp Function10611d - -Mobile_HallOfFame:: mobile ; 0x106078 - ld hl, $a027 - jp Function10611d - -MobileFn_10607f: mobile ; 10607f (41:607f) - ld hl, $a02a - jp Function10611d - -MobileFn_106086: mobile ; 106086 - ld hl, $a02d - jp Function10611d - -MobileFn_10608d: mobile ; 10608d (41:608d) - ld hl, $a030 - jp Function10611d - -MobileFn_106094: mobile ; 106094 - ld hl, $a033 - jp Function10611d - -MobileFn_10609b: mobile ; 10609b - ld hl, $a036 - jp Function10611d - -Mobile_HealParty: mobile ; 1060a2 - ld hl, $a039 - jp Function10611d - -MobileFn_1060a9: mobile ; 1060a9 (41:60a9) - ld hl, $a03c - jr Function10611d - -MobileFn_1060af: mobile ; 1060af - ld hl, $a03f - jr Function10611d - -MobileFn_1060b5: mobile ; 1060b5 - ld hl, $a042 - jr Function10611d - -MobileFn_1060bb: mobile ; 1060bb - ld hl, $a045 - jr Function10611d - -MobileFn_1060c1: mobile ; 1060c1 - ld hl, $a048 - jr Function10611d - -MobileFn_1060c7: mobile ; 1060c7 - ld hl, $a04b - jr Function10611d - -MobileFn_1060cd: mobile ; 1060cd - ld hl, $a04e - jr Function106123 - -MobileFn_1060d3: mobile ; 1060d3 - ld hl, $a051 - jr Function10611d - -MobileFn_1060d9: mobile ; 1060df - ld hl, $a054 - jr Function10611d - -MobileFn_1060df: mobile ; 1060df - ld hl, $a057 - jr Function10611d - -MobileFn_1060e5: mobile ; 1060e5 - ld a, [hBattleTurn] - and a - ret nz - ld hl, $a05a - jr Function10611d - -MobileFn_1060ef: mobile ; 1060ef - ld hl, $a05d - jr Function10611d - -MobileFn_1060f5: mobile ; 1060f5 - ld hl, $a060 - jr Function10611d - -MobileFn_1060fb: mobile ; 1060fb - ld hl, $a063 - jr Function10611d - -MobileFn_106101: mobile ; 106101 - ld hl, $a066 - jr Function10611d -; 106107 - -MobileFn_106107: mobile ; 106107 - ld hl, $a069 - jr Function10611d -; 10610d - -MobileFn_10610d: mobile ; 10610d - ld a, [hBattleTurn] - and a - ret nz - ld hl, $a06c - jr Function10611d -; 106117 - -Function106117: ; 106117 - push bc - ld bc, 3 - jr Function10612d -; 10611d - -Function10611d: ; 10611d - push bc - ld bc, 2 - jr Function10612d -; 106123 - -Function106123: ; 106123 - push bc - ld bc, 1 - jr Function10612d -; 106129 - -Function106129: ; 106129 - push bc - ld bc, 0 - -Function10612d: ; 10612d - ld a, $5 - call GetSRAMBank - push hl - push de - ld e, c - inc e -.asm_106136 - ld a, [hli] - inc a - jr nz, .asm_10613d - dec e - jr nz, .asm_106136 - -.asm_10613d - pop de - pop hl - jr z, .asm_10614d - add hl, bc -.asm_106142 - inc [hl] - jr nz, .asm_10614d - ld a, c - and a - jr z, .asm_10614d - dec hl - dec c - jr .asm_106142 - -.asm_10614d - call Function106162 - call CloseSRAM - pop bc - ret -; 106155 - -MobileFn_106155: mobile ; 106155 - ld a, $5 - call GetSRAMBank - call Function106162 - call CloseSRAM - ret -; 106162 - -Function106162: ; 106162 - push de - call Function10616e - ld hl, $a081 - ld [hl], d - inc hl - ld [hl], e - pop de - ret -; 10616e - -Function10616e: ; 10616e - push bc - ld hl, $a001 - ld bc, $0080 - xor a - ld de, 0 -.asm_106179 - ld a, e - add [hl] - ld e, a - jr nc, .asm_10617f - inc d - -.asm_10617f - inc hl - dec bc - ld a, b - or c - jr nz, .asm_106179 - pop bc - ret -; 106187 - - -Function106187: ; 106187 - ld a, BANK(s1_be3c) - call GetSRAMBank - ld a, [s1_be3c] - push af - ld a, BANK(s1_be44) - call GetSRAMBank - pop af - ld [s1_be44], a - call CloseSRAM - ret -; 10619d - - -Function10619d: ; 10619d (41:619d) - ld a, BANK(s1_be44) - call GetSRAMBank - ld a, [s1_be44] - push af - ld a, BANK(s1_be3c) - call GetSRAMBank - pop af - ld [s1_be3c], a - call CloseSRAM - ret -; 1061b3 (41:61b3) - -Function1061b3: ; 1061b3 - call Function10616e - ld hl, $a081 - ld a, d - cp [hl] - ret nz - inc hl - ld a, e - cp [hl] - ret -; 1061c0 - -Function1061c0: ; 1061c0 (41:61c0) - ld a, BANK(s1_be3c) - call GetSRAMBank - xor a - ld [s1_be3c], a - call CloseSRAM - ret -; 1061cd (41:61cd) - -Function1061cd: ; 1061cd - ld hl, $a001 - ld bc, $0082 - xor a - call ByteFill - ld hl, $a07d - ld a, $3 - ld [hli], a - ld [hl], $e8 - call Function106162 - ld hl, $a001 - ld de, $a084 - ld bc, $0082 - call CopyBytes - ret -; 1061ef - - -Function1061ef:: ; 1061ef - push bc - xor a - ld [hProduct], a - ld [hMultiplicand], a - ld [$ffb5], a - ld a, b - and $f - cp $1 - jr z, .asm_106212 - cp $2 - jr z, .asm_10620e - cp $3 - jr z, .asm_10620a - ld a, [de] - ld [hProduct], a - inc de - -.asm_10620a - ld a, [de] - ld [hMultiplicand], a - inc de - -.asm_10620e - ld a, [de] - ld [$ffb5], a - inc de - -.asm_106212 - ld a, [de] - ld [$ffb6], a - inc de - push de - xor a - ld [$ffbb], a - ld a, b - ld [$ffbc], a - ld a, c - cp 2 - jr z, .asm_10626a - ld de, ._2 - cp 3 - jr z, .asm_106256 - ld de, ._3 - cp 4 - jr z, .asm_106256 - ld de, ._4 - cp 5 - jr z, .asm_106256 - ld de, ._5 - cp 6 - jr z, .asm_106256 - ld de, ._6 - cp 7 - jr z, .asm_106256 - ld de, ._7 - cp 8 - jr z, .asm_106256 - ld de, ._8 - cp 9 - jr z, .asm_106256 - ld de, ._9 - -.asm_106256 -rept 3 - inc de -endr -rept 2 - dec a -endr -.asm_10625b - push af - call Function1062b2 - call Function1062ff -rept 4 - inc de -endr - pop af - dec a - jr nz, .asm_10625b - -.asm_10626a - ld c, 0 - ld a, [$ffb6] -.asm_10626e - cp 10 - jr c, .asm_106277 - sub 10 - inc c - jr .asm_10626e - -.asm_106277 - ld b, a - ld a, [$ffbb] - or c - ld [$ffbb], a - jr nz, .asm_106284 - call Function1062f7 - jr .asm_106288 - -.asm_106284 - ld a, "0" - add c - ld [hl], a - -.asm_106288 - call Function1062ff - ld a, "0" - add b - ld [hli], a - pop de - pop bc - ret -; 106292 - -._9 dd 1000000000 -._8 dd 100000000 -._7 dd 10000000 -._6 dd 1000000 -._5 dd 100000 -._4 dd 10000 -._3 dd 1000 -._2 dd 100 -; 1062b2 - -Function1062b2: ; 1062b2 - ld c, $0 -.asm_1062b4 - ld a, [de] - dec de - ld b, a - ld a, [$ffb6] - sub b - ld [$ffba], a - ld a, [de] - dec de - ld b, a - ld a, [$ffb5] - sbc b - ld [$ffb9], a - ld a, [de] - dec de - ld b, a - ld a, [hMultiplicand] - sbc b - ld [hMathBuffer], a - ld a, [de] -rept 3 - inc de -endr - ld b, a - ld a, [hProduct] - sbc b - ld [hMultiplier], a - jr c, .asm_1062eb - ld a, [hMultiplier] - ld [hProduct], a - ld a, [hMathBuffer] - ld [hMultiplicand], a - ld a, [$ffb9] - ld [$ffb5], a - ld a, [$ffba] - ld [$ffb6], a - inc c - jr .asm_1062b4 - -.asm_1062eb - ld a, [$ffbb] - or c - jr z, Function1062f7 - ld a, $f6 - add c - ld [hl], a - ld [$ffbb], a - ret - -Function1062f7: - ld a, [$ffbc] - bit 7, a - ret z - - ld [hl], $f6 - ret -; 1062ff - -Function1062ff: ; 1062ff - ld a, [$ffbc] - bit 7, a - jr nz, .asm_10630d - bit 6, a - jr z, .asm_10630d - ld a, [$ffbb] - and a - ret z - -.asm_10630d - inc hl - ret -; 10630f - -Function10630f: ; 10630f - xor a - ld [ScriptVar], a - ret -; 106314 - -MobileFn_106314: mobile ; 106314 - ld a, $4 - call GetSRAMBank - ld a, c - cpl - ld [$b000], a - call CloseSRAM - ld a, $7 - call GetSRAMBank - ld a, c - ld [$a800], a - call CloseSRAM - ret -; 10632f - -Function10632f: ; 10632f - or a - mobile - - ld a, $4 - call GetSRAMBank - ld a, [$b000] - cpl - ld b, a - call CloseSRAM - ld a, $7 - call GetSRAMBank - ld a, [$a800] - ld c, a - call CloseSRAM - ld a, c - cp b - jr nz, .asm_106359 - and a - jr z, .asm_106359 - and $8f - cp c - jr nz, .asm_106359 - ld c, a - scf - ret - -.asm_106359 - xor a - ld c, a - ret -; 10635c - -Function10635c: ; 10635c - ld a, [wcd25] - bit 7, a - ret nz - ld a, [wcd25] - ld hl, Jumptable_10636a - rst JumpTable - ret -; 10636a - -Jumptable_10636a: ; 10636a - dw Function10637c - dw Function106392 - dw Function1063cc - dw Function1063d8 - dw Function1063e5 - dw Function1063f3 - dw Function106403 - dw Function106442 - dw Function106453 -; 10637c - -Function10637c: ; 10637c - ld de, wcd30 - ld hl, $0041 - ld bc, $0041 - ld a, $40 - call Function3e32 - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 106392 - -Function106392: ; 106392 - xor a - ld [wcf64], a - ld a, [wc821] - bit 1, a - jr nz, .asm_1063a2 - bit 0, a - jr z, .asm_1063bf - ret - -.asm_1063a2 - call Function10632f - ld a, c - and a - jr nz, .asm_1063b4 - ld a, $b - ld [wcf64], a - ld a, $7 - ld [wcd25], a - ret - -.asm_1063b4 - ld a, $7 - ld [wcf64], a - ld a, $7 - ld [wcd25], a - ret - -.asm_1063bf - ld a, $1 - ld [wcf64], a - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 1063cc - -Function1063cc: ; 1063cc - ld a, $78 - ld [wcd42], a - ld a, [wcd25] - inc a - ld [wcd25], a - -Function1063d8: ; 1063d8 - ld hl, wcd42 - dec [hl] - ret nz - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 1063e5 - -Function1063e5: ; 1063e5 - ld a, [wcf64] - cp $3 - ret nz - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 1063f3 - -Function1063f3: ; 1063f3 - ld de, wcd31 - ld a, $32 - call Function3e32 - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 106403 - -Function106403: ; 106403 - ld a, [wc821] - bit 1, a - jr nz, .asm_106426 - bit 0, a - jr z, .asm_10640f - ret - -.asm_10640f - ld a, [wcd31] - and $80 - ld c, a - ld a, [wcd30] - or c - inc a - ld c, a - call MobileFn_106314 - ld a, [wcd25] - inc a - ld [wcd25], a - ret - -.asm_106426 - call Function10632f - ld a, c - and a - jr z, .asm_106435 - ld a, [wcd25] - inc a - ld [wcd25], a - ret - -.asm_106435 - ld c, $0 - call MobileFn_106314 - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 106442 - -Function106442: ; 106442 - ld a, $36 - call Function3e32 - xor a - ld [hMobile], a - ld [$ffc9], a - ld a, [wcd25] - inc a - ld [wcd25], a - -Function106453: ; 106453 - ld a, [wcd25] - set 7, a - ld [wcd25], a - nop - ld a, $4 - ld [wcf64], a - ret -; 106462 - -Function106462: ; 106462 - ret -; 106463 - -Function106463: ; 106463 - ret -; 106464 - -Function106464:: ; 106464 - ld de, GFX_f9214 - ld hl, VTiles2 tile $60 - lb bc, BANK(GFX_f9214), 1 - call Get2bpp - ld de, GFX_f9424 - ld hl, VTiles2 tile $61 - lb bc, BANK(GFX_f9424), 1 - call Get2bpp - ld de, GFX_106514 - ld hl, VTiles2 tile $62 - ld c, 9 - ld b, BANK(GFX_106514) - call Get2bpp - ld de, $40b0 - ld hl, VTiles2 tile $6b - ld b, $f ; XXX no graphics at 0f:40b0 - call Get2bpp - callba Functionfb4cc - ret -; 10649b - -Function10649b: ; 10649b - ld a, [TextBoxFrame] - and $7 - ld bc, $0030 - ld hl, Frames - call AddNTimes - ld d, h - ld e, l - ld hl, VTiles2 tile $79 - ld c, $6 - ld b, BANK(Frames) - call Function1064c3 - ld hl, VTiles2 tile $7f - ld de, GFX_f9204 - ld c, $1 - ld b, BANK(GFX_f9204) - call Function1064c3 - ret -; 1064c3 - -Function1064c3: ; 1064c3 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push bc - push hl - ld hl, Function3f88 - ld a, b - rst FarCall - pop hl - pop bc - pop af - ld [rSVBK], a - jr asm_1064ed - -Function1064d8: ; 1064d8 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push bc - push hl - ld hl, Function3f9f - ld a, b - rst FarCall - pop hl - pop bc - pop af - ld [rSVBK], a - jr asm_1064ed - -asm_1064ed - ld de, w6_d000 - ld b, $0 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - call Get2bpp - pop af - ld [rVBK], a - pop af - ld [rSVBK], a - ret -; 10650a - -Function10650a: ; 10650a - ld de, GFX_f9214 + $20 - lb bc, BANK(GFX_f9214), $11 - call Get2bpp - ret -; 106514 - -GFX_106514: -INCBIN "gfx/unknown/106514.2bpp" - - -Function106594:: ; 106594 - ld de, GFX_1065ad - ld hl, VTiles1 - lb bc, BANK(GFX_1065ad), $80 - call Get2bpp - ld de, GFX_1065ad + $800 - ld hl, VTiles2 tile $7f - lb bc, BANK(GFX_1065ad), 1 - call Get2bpp - ret -; 1065ad - -GFX_1065ad: -INCBIN "gfx/unknown/1065ad.2bpp" - +INCLUDE "misc/mobile_41.asm" INCLUDE "misc/mobile_42.asm" @@ -81657,7 +55780,19 @@ INCLUDE "engine/title.asm" INCLUDE "misc/mobile_45.asm" +INCLUDE "misc/mobile_46.asm" +SECTION "bank47", ROMX, BANK[$47] + +INCLUDE "misc/battle_tower_47.asm" + +SECTION "bank5B", ROMX, BANK[$5B] + +INCLUDE "misc/mobile_5b.asm" + +SECTION "bank5C", ROMX, BANK[$5C] + +INCLUDE "misc/mobile_5c.asm" SECTION "bank5D", ROMX, BANK[$5D] @@ -81666,14 +55801,14 @@ INCLUDE "text/phone/extra3.asm" SECTION "bank5E", ROMX, BANK[$5E] -Function178000: +_UpdateBattleHUDs: callba DrawPlayerHUD ld hl, PlayerHPPal call SetHPPal callba DrawEnemyHUD ld hl, EnemyHPPal call SetHPPal - callba Function3ee27 + callba FinishBattleAnim ret ; 17801f (5e:401f) @@ -81748,7 +55883,7 @@ INCBIN "gfx/misc/unown_font.2bpp" Function1dc1b0: ; 1dc1b0 hlcoord 0, 0 ld de, wca90 - ld bc, $0154 + ld bc, 17 * SCREEN_WIDTH call CopyBytes ld hl, wcab5 ld a, $62 @@ -81799,8 +55934,8 @@ Function1dc1b0: ; 1dc1b0 Function1dc213: ; 1dc213 ld hl, wca90 - ld bc, $00a0 - ld a, $7f + ld bc, $a0 + ld a, " " call ByteFill ld hl, wca90 ld a, $36 @@ -81880,7 +56015,7 @@ String_1dc34c: ; 1dc381 Function1dc381: ; 1dc381 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a @@ -81906,14 +56041,14 @@ Function1dc381: ; 1dc381 ld [MonType], a callba CopyPkmnToTempMon hlcoord 0, 7 - ld b, $9 - ld c, $12 + ld b, 9 + ld c, 18 call TextBox hlcoord 8, 2 ld a, [TempMonLevel] call Function383d hlcoord 12, 2 - ld [hl], $71 + ld [hl], "◀" ; Filled left triangle inc hl ld de, TempMonMaxHP lb bc, 2, 3 @@ -81926,14 +56061,14 @@ Function1dc381: ; 1dc381 hlcoord 8, 4 call PlaceString hlcoord 9, 6 - ld [hl], $f3 + ld [hl], "/" call GetPokemonName hlcoord 10, 6 call PlaceString hlcoord 8, 0 - ld [hl], $74 + ld [hl], "№" inc hl - ld [hl], $e8 + ld [hl], "." inc hl ld de, wd265 lb bc, PRINTNUM_LEADINGZEROS | 1, 3 @@ -81971,7 +56106,7 @@ Function1dc381: ; 1dc381 .asm_1dc469 hlcoord 0, 0 - call Function378b + call _PrepMonFrontpic call WaitBGMap ld b, $3 call GetSGBLayout @@ -81980,7 +56115,7 @@ Function1dc381: ; 1dc381 ; 1dc47b Function1dc47b: ; 1dc47b - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a @@ -82038,7 +56173,7 @@ Function1dc507: ; 1dc507 ; 1dc50e Function1dc50e: ; 1dc50e - ld bc, $000b + ld bc, NAME_LENGTH ld a, [CurPartyMon] call AddNTimes ld e, l @@ -82064,20 +56199,20 @@ Function1dc51a: ; 1dc51a Function1dc52c: ; 1dc52c callba GetGender - ld a, $7f - jr c, .asm_1dc53c - ld a, $ef - jr nz, .asm_1dc53c - ld a, $f5 + ld a, " " + jr c, .got_gender + ld a, "♂" + jr nz, .got_gender + ld a, "♀" -.asm_1dc53c +.got_gender hlcoord 17, 2 ld [hl], a ld bc, TempMonDVs callba CheckShininess ret nc hlcoord 18, 2 - ld [hl], $3f + ld [hl], "<SHINY>" ret ; 1dc550 @@ -82088,7 +56223,7 @@ String1dc554: ; 1dc554 db "MOVE@" String1dc559: ; 1dc559 - db $73, "№.@" + db "<ID>№.@" String1dc55d: ; 1dc55d db "ATTACK" @@ -82134,30 +56269,32 @@ Function1dd6a9: ; 1dd6a9 ret ; 1dd6bb -Function1dd6bb: ; 1dd6bb (77:56bb) +PrintHoursMins ; 1dd6bb (77:56bb) +; Hours in b, minutes in c ld a, b cp 12 push af - jr c, .asm_1dd6c7 - jr z, .asm_1dd6cc - sub $c - jr .asm_1dd6cc -.asm_1dd6c7 + jr c, .AM + jr z, .PM + sub 12 + jr .PM +.AM or a - jr nz, .asm_1dd6cc - ld a, $c -.asm_1dd6cc + jr nz, .PM + ld a, 12 +.PM ld b, a +; Crazy stuff happening with the stack push bc ld hl, [sp+$1] push de push hl pop de pop hl - ld [hl], $7f + ld [hl], " " lb bc, 1, 2 call PrintNum - ld [hl], $9c + ld [hl], ":" inc hl ld d, h ld e, l @@ -82171,9 +56308,9 @@ Function1dd6bb: ; 1dd6bb (77:56bb) pop bc ld de, String_AM pop af - jr c, .asm_1dd6f7 + jr c, .place_am_pm ld de, String_PM -.asm_1dd6f7 +.place_am_pm inc hl call PlaceString ret @@ -82198,7 +56335,7 @@ Function1ddf26: ; 1ddf26 (77:5f26) ld hl, LZ_1ddf33 ld de, VTiles2 tile $31 lb bc, BANK(LZ_1ddf33), $3a - call Functione73 + call DecompressRequest2bpp ret ; 1ddf33 (77:5f33) @@ -82220,7 +56357,7 @@ INCBIN "gfx/unknown/1de0e1.2bpp.lz" Function1de171: ; 1de171 (77:6171) ld a, $32 hlcoord 0, 17 - lb bc, 0, 12 + ld bc, 12 call ByteFill hlcoord 0, 1 lb bc, 15, 11 @@ -82440,7 +56577,7 @@ INCBIN "gfx/misc/pokegear.2bpp.lz" Function1de5c8: ; 1de5c8 ld c, $0 - ld hl, $0029 + ld hl, $29 add hl, de ld a, [hli] cp $84 @@ -82571,9 +56708,7 @@ INCLUDE "text/battle_tower.asm" SECTION "bank7C", ROMX, BANK[$7C] -BattleTowerTrainerData:: ; What exactly it is, I don't know -; Size is 70 (Nr of Trainers in BattleTower) * 0x24 (Nr of Bytes that are copied) -INCBIN "unknown/1f0000.bin" +INCLUDE "data/battle_tower_2.asm" SECTION "bank7D", ROMX, BANK[$7D] |