diff options
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 13581 |
1 files changed, 2234 insertions, 11347 deletions
@@ -9,7 +9,7 @@ Function4000:: ; 4000 ld b, 1 ld c, 11 - ld a, [IsInBattle] + ld a, [wBattleMode] and a jr z, .notinbattle @@ -111,13 +111,13 @@ Function5b44: ; 5b44 call ClearTileMap call Functione5f call Functione51 - call Function1fbf + call ResetTextRelatedRAM ret ; 5b54 MysteryGift: ; 5b54 call UpdateTime - callba Function11548 + callba DoMysteryGiftIfDayHasPassed callba DoMysteryGift ret ; 5b64 @@ -149,7 +149,7 @@ NewGame: ; 5b6b AreYouABoyOrAreYouAGirl: ; 5b8f callba Function10632f ; some mobile stuff jr c, .ok - callba AreYouABoyOrAreYouAGirl_Menu + callba InitGender ret .ok @@ -183,29 +183,29 @@ _ResetWRAM: ; 5bae call ByteFill ld a, [rLY] - ld [$ffe3], a + ld [hSecondsBackup], a call DelayFrame ld a, [hRandomSub] ld [PlayerID], a ld a, [rLY] - ld [$ffe3], a + ld [hSecondsBackup], a call DelayFrame ld a, [hRandomAdd] ld [PlayerID + 1], a call Random - ld [wd84a], a + ld [wSecretID], a call DelayFrame call Random - ld [wd84b], a + ld [wSecretID + 1], a ld hl, PartyCount call InitList xor a ld [wCurBox], a - ld [wd4b4], a + ld [wSavedAtLeastOnce], a call SetDefaultBoxNames @@ -380,7 +380,7 @@ InitializeNPCNames: ; 5ce9 InitializeWorld: ; 5d23 call ShrinkPlayer callba GetSpawnCoord - callba Function113d6 + callba _InitializeStartDay ret ; 5d33 @@ -542,7 +542,7 @@ FinishContinueFunction: ; 5e5d .loop xor a ld [wc2c1], a - ld [InLinkBattle], a + ld [wLinkMode], a ld hl, GameTimerPause set 0, [hl] res 7, [hl] @@ -648,7 +648,7 @@ MenuData2_0x5f03: ; 5f03 Function5f1c: ; 5f1c - call Function1cfd + call GetMemTileCoord push hl ld de, $005d add hl, de @@ -727,7 +727,7 @@ DisplayGameTime: ; 5f84 OakSpeech: ; 0x5f99 - callba Function90672 + callba InitClock call Function4dd call ClearTileMap @@ -947,7 +947,7 @@ ShrinkPlayer: ; 610f ld c, 3 call DelayFrames - call Function61cd + call Intro_PlacePlayerSprite call Functione5f ld c, 50 @@ -1020,7 +1020,7 @@ ShrinkFrame: ; 61b4 ret ; 61cd -Function61cd: ; 61cd +Intro_PlacePlayerSprite: ; 61cd callba GetPlayerIcon ld c, $c @@ -1028,7 +1028,7 @@ Function61cd: ; 61cd call Request2bpp ld hl, Sprites - ld de, .data_61fe + ld de, .sprites ld a, [de] inc de @@ -1058,12 +1058,12 @@ Function61cd: ; 61cd ret ; 61fe -.data_61fe ; 61fe +.sprites ; 61fe db 4 - db $4c, $48, $00 - db $4c, $50, $01 - db $54, $48, $02 - db $54, $50, $03 + db $4c, $48, 0 + db $4c, $50, 1 + db $54, $48, 2 + db $54, $50, 3 ; 620b @@ -1082,6 +1082,7 @@ Function6219: ; 6219 .loop call Function627b jr nc, .loop + call ClearSprites call WhiteBGMap pop af @@ -1123,7 +1124,7 @@ endr dw Function6389 dw Function620b dw Function620b - dw Function6392 + dw ResetClock ; 6274 @@ -1133,16 +1134,16 @@ TitleScreen: ; 6274 ; 627b Function627b: ; 627b - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a - jr nz, .true + jr nz, .done_title call TitleScreenScene - callba Function10eea7 + callba SuicuneFrameIterator call DelayFrame and a ret -.true +.done_title scf ret ; 6292 @@ -1154,7 +1155,7 @@ Function6292: ; 6292 ; unreferenced ld hl, LYOverrides + $5f ld a, [hl] dec a - ld bc, $0028 + ld bc, 2 * SCREEN_WIDTH call ByteFill ret ; 62a3 @@ -1180,7 +1181,7 @@ endr ; 62b7 Function62b7: ; 62b7 - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret ; 62bc @@ -1221,7 +1222,7 @@ TitleScreenEntrance: ; 62bc .done ; Next scene - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] xor a ld [hLCDStatCustom], a @@ -1239,7 +1240,7 @@ TitleScreenEntrance: ; 62bc TitleScreenTimer: ; 62f6 ; Next scene - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ; Start a timer @@ -1323,13 +1324,13 @@ TitleScreenMain: ; 6304 ld [wcf64], a ; Return to the intro sequence. - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret .end ; Next scene - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ; Fade out the title screen music @@ -1348,7 +1349,7 @@ TitleScreenMain: ; 6304 ld [wcf64], a ; Return to the intro sequence. - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret ; 6375 @@ -1368,7 +1369,7 @@ TitleScreenEnd: ; 6375 ld [wcf64], a ; Back to the intro. - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret ; 6389 @@ -1378,18 +1379,19 @@ Function6389: ; 6389 jp Init ; 6392 -Function6392: ; 6392 - callba Function4d3b1 +ResetClock: ; 6392 + callba _ResetClock jp Init ; 639b Function639b: ; 639b + ; If bit 0 or 1 of [wcf65] is set, we don't need to be here. ld a, [wcf65] and $3 ret nz ld bc, wc3a4 ld hl, $000a - add hl, bc + add hl, bc ; over-the-top compicated way to load wc3ae into hl ld l, [hl] ld h, 0 rept 2 @@ -1397,8 +1399,9 @@ rept 2 endr ld de, Data63ca add hl, de + ; If bit 2 of [wcf65] is set, get the second dw; else, get the first dw ld a, [wcf65] - and $4 + and %00000100 srl a srl a ld e, a @@ -1417,19 +1420,19 @@ endr ; 63ca Data63ca: ; 63ca - db $5c, $50, $00, $00 - db $5c, $68, $5c, $58 - db $5c, $68, $5c, $78 - db $5c, $88, $5c, $78 - db $00, $00, $5c, $78 - db $00, $00, $5c, $58 + dw $505c, $0000 + dw $685c, $585c + dw $685c, $785c + dw $885c, $785c + dw $0000, $785c + dw $0000, $585c ; 63e2 Copyright: ; 63e2 call ClearTileMap call Functione5f ld de, CopyrightGFX - ld hl, VTiles2 + $600 ; tile $60 + ld hl, VTiles2 tile $60 lb bc, BANK(CopyrightGFX), $1d call Request2bpp hlcoord 2, 7 @@ -1459,11 +1462,11 @@ CopyrightString: ; 63fd GameInit:: ; 642e callba Function14f1c - call Function1fbf + call ResetTextRelatedRAM call WhiteBGMap call ClearTileMap - ld a, $98 - ld [$ffd7], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a xor a ld [hBGMapAddress], a ld [hJoyDown], a @@ -1479,6 +1482,7 @@ Function6454:: ; 6454 call DelayFrame ld a, [hOAMUpdate] push af + ld a, $1 ld [hOAMUpdate], a ld a, [hBGMapMode] @@ -1486,6 +1490,7 @@ Function6454:: ; 6454 xor a ld [hBGMapMode], a call Function6473 + pop af ld [hBGMapMode], a pop af @@ -1502,7 +1507,7 @@ Function6473: ; 6473 ld a, $90 ld [hWY], a call Function2173 - ld a, $9c + ld a, VBGMap1 / $100 call Function64b9 call Function2e20 callba Function49409 @@ -1512,8 +1517,8 @@ Function6473: ; 6473 xor a ld [hBGMapMode], a ld [hWY], a - callba Function64db - ld a, $98 + callba Function64db ; no need to callba + ld a, VBGMap0 / $100 call Function64b9 xor a ld [wd152], a @@ -1527,7 +1532,7 @@ Function6473: ; 6473 ; 64b9 Function64b9: ; 64b9 - ld [$ffd7], a + ld [hBGMapAddress + 1], a xor a ld [hBGMapAddress], a ret @@ -1538,7 +1543,9 @@ Function64bf:: ; 64bf push af ld a, $1 ld [hOAMUpdate], a + call Function64cd + pop af ld [hOAMUpdate], a ret @@ -1566,9 +1573,9 @@ Function64db: ; 64db ld [rHDMA1], a ld a, w6_d000 % $100 ld [rHDMA2], a - ld a, ($9800 % $8000) / $100 + ld a, (VBGMap0 % $8000) / $100 ld [rHDMA3], a - ld a, ($9800 % $8000) % $100 + ld a, (VBGMap0 % $8000) % $100 ld [rHDMA4], a ld a, $3f ld [hDMATransfer], a @@ -1614,7 +1621,7 @@ LearnMove: ; 6508 ld [wd265], a ld b, a - ld a, [IsInBattle] + ld a, [wBattleMode] and a jr z, .not_disabled ld a, [DisabledMove] @@ -1650,7 +1657,7 @@ LearnMove: ; 6508 ld [hl], a - ld a, [IsInBattle] + ld a, [wBattleMode] and a jp z, .learned @@ -1704,7 +1711,7 @@ ForgetMove: ; 65d3 ld bc, -NUM_MOVES add hl, bc push hl - ld de, wd25e + ld de, wListMoves_MoveIndicesBuffer ld bc, NUM_MOVES call CopyBytes pop hl @@ -2422,7 +2429,7 @@ Function7041: ; 7041 ld bc, ObjectStructs xor a .loop - ld [$ffb0], a + ld [hConnectedMapWidth], a call GetObjectSprite jr z, .nope ld hl, OBJECT_04 @@ -2452,7 +2459,7 @@ Function7041: ; 7041 .ok2 ld a, [hConnectionStripLength] ld l, a - ld a, [$ffb0] + ld a, [hConnectedMapWidth] cp l jr nz, .setcarry @@ -2469,7 +2476,7 @@ Function7041: ; 7041 jr nz, .nope ld a, [hConnectionStripLength] ld l, a - ld a, [$ffb0] + ld a, [hConnectedMapWidth] cp l jr nz, .setcarry @@ -2478,7 +2485,7 @@ Function7041: ; 7041 add hl, bc ld b, h ld c, l - ld a, [$ffb0] + ld a, [hConnectedMapWidth] inc a cp NUM_OBJECT_STRUCTS jr nz, .loop @@ -2589,7 +2596,7 @@ Function7113: ; 7113 ld bc, ObjectStructs xor a .loop - ld [$ffb0], a + ld [hConnectedMapWidth], a call GetObjectSprite jr z, .asm_7160 ld hl, OBJECT_03 @@ -2612,7 +2619,7 @@ Function7113: ; 7113 ld a, [hl] cp d jr nz, .asm_714e - ld a, [$ffb0] + ld a, [hConnectedMapWidth] cp $0 jr z, .asm_7160 jr .asm_716f @@ -2635,7 +2642,7 @@ Function7113: ; 7113 add hl, bc ld b, h ld c, l - ld a, [$ffb0] + ld a, [hConnectedMapWidth] inc a cp NUM_OBJECT_STRUCTS jr nz, .loop @@ -2766,7 +2773,7 @@ endr .done ld [de], a - ld a, [IsInBattle] + ld a, [wBattleMode] and a ret z ld a, [CurPartyMon] @@ -3066,16 +3073,16 @@ SpecialReturnShuckle: ; 737e ret ; 73f7 -Function73f7: ; 73f7 +Special_BillsGrandfather: ; 73f7 callba SelectMonFromParty - jr c, .asm_740e + jr c, .cancel ld a, [CurPartySpecies] ld [ScriptVar], a - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetPokemonName jp CopyPokemonName_Buffer1_Buffer3 -.asm_740e +.cancel xor a ld [ScriptVar], a ret @@ -3169,7 +3176,7 @@ Predef1: ; 747a SECTION "bank2", ROMX, BANK[$2] Function8000: ; 8000 - call Function2ed3 + call DisableSpriteUpdates xor a ld [hBGMapMode], a call WhiteBGMap @@ -3188,26 +3195,26 @@ Function8000: ; 8000 ; 8029 GetSpawnCoord: ; 8029 - ld a, $ff + ld a, -1 ld [wd4cd], a ld [wd4ce], a ld a, $0 ld hl, PlayerObjectTemplate call Function19a6 ld b, $0 - call Function808f + call PlayerSpawn_ConvertCoords ld a, $0 call GetMapObject ld hl, MAPOBJECT_COLOR add hl, bc - ld e, $80 - ld a, [wd45b] + ln e, (1 << 3) | PAL_OW_RED, $0 + ld a, [wPlayerSpriteSetupFlags] bit 2, a jr nz, .ok ld a, [PlayerGender] bit 0, a jr z, .ok - ld e, (PAL_OW_BLUE << 4) | $80 + ln e, (1 << 3) | PAL_OW_BLUE, $0 .ok ld [hl], e @@ -3215,7 +3222,7 @@ GetSpawnCoord: ; 8029 ld [hConnectionStripLength], a ld bc, MapObjects ld a, $0 - ld [$ffb0], a + ld [hConnectedMapWidth], a ld de, ObjectStructs call Function8116 ld a, $0 @@ -3227,11 +3234,10 @@ 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, 0, 0, $0b, 15, 15, -1, -1, 0, 0, 0, $0000, -1 - ; db $01, $00, $00, $0b, $ff, $ff, $ff, $00, $00, $00, $00, $ff, $ff + person_event SPRITE_CHRIS, -4, -4, $0b, 15, 15, -1, -1, 0, 0, 0, $0000, -1 ; 807e -Function807e:: ; 807e +CopyDECoordsToMapObject:: ; 807e push de ld a, b call GetMapObject @@ -3245,7 +3251,7 @@ Function807e:: ; 807e ret ; 808f -Function808f: ; 808f +PlayerSpawn_ConvertCoords: ; 808f push bc ld a, [XCoord] add 4 @@ -3254,7 +3260,7 @@ Function808f: ; 808f add 4 ld e, a pop bc - call Function807e + call CopyDECoordsToMapObject ret ; 80a1 @@ -3271,7 +3277,7 @@ Function80a1:: ; 80a1 ld e, [hl] ld a, [hConnectionStripLength] ld b, a - call Function807e + call CopyDECoordsToMapObject and a ret ; 80b8 @@ -3314,12 +3320,12 @@ CopyObjectStruct:: ; 80e7 ld a, 1 ld de, OBJECT_STRUCT_LENGTH .loop - ld [$ffb0], a + ld [hConnectedMapWidth], a ld a, [hl] and a jr z, .done add hl, de - ld a, [$ffb0] + ld a, [hConnectedMapWidth] inc a cp NUM_OBJECT_STRUCTS jr nz, .loop @@ -3346,7 +3352,7 @@ Function8116: ; 8116 ; 811d Function811d: ; 811d - ld a, [$ffb0] + ld a, [hConnectedMapWidth] ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld [hl], a @@ -3833,7 +3839,7 @@ Function839e:: ; 839e ld hl, OBJECT_SPRITE_Y add hl, de ld [hl], a - ld a, [$ffb0] + ld a, [hConnectedMapWidth] ld hl, OBJECT_32 add hl, de ld [hl], a @@ -4094,10 +4100,10 @@ CheckTime:: ; c000 ; c012 TimeOfDayTable: ; c012 - db MORN, 1 - db DAY, 2 - db NITE, 4 - db NITE, 4 + db MORN, 1 << MORN + db DAY, 1 << DAY + db NITE, 1 << NITE + db NITE, 1 << NITE db -1 ; c01b @@ -5024,7 +5030,7 @@ UsedSurfScript: ; c986 ; c9a2 Functionc9a2: ; c9a2 - callba Function1060bb ; empty + callba MobileFn_1060bb ; empty ret ; c9a9 @@ -5323,7 +5329,7 @@ CheckContinueWaterfall: ; cb38 ld a, [StandingTile] call CheckWaterfallTile ret z - callba Function1060c1 + callba MobileFn_1060c1 ld a, $1 ld [ScriptVar], a ret @@ -6062,7 +6068,7 @@ GetFacingObject: ; cf0d callba CheckFacingObject jr nc, .fail - ld a, [$ffb0] + ld a, [hConnectedMapWidth] call GetObjectStruct ld hl, OBJECT_MAP_OBJECT_INDEX add hl, bc @@ -6594,12 +6600,12 @@ UnknownText_0xd1d0: ; 0xd1d0 _ReceiveItem:: ; d1d5 - call CheckHLequTMsHMsEnd + call DoesHLEqualNumItems jp nz, PutItemInPocket push hl call CheckItemPocket pop de - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] dec a ld hl, .Pockets rst JumpTable @@ -6641,12 +6647,12 @@ _ReceiveItem:: ; d1d5 _TossItem:: ; d20d - call CheckHLequTMsHMsEnd - jr nz, .asm_d241 + call DoesHLEqualNumItems + jr nz, .remove push hl call CheckItemPocket pop de - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] dec a ld hl, .Pockets rst JumpTable @@ -6684,17 +6690,17 @@ _TossItem:: ; d20d ld l, e ; d241 -.asm_d241 +.remove jp RemoveItemFromPocket ; d244 _CheckItem:: ; d244 - call CheckHLequTMsHMsEnd - jr nz, .asm_d278 + call DoesHLEqualNumItems + jr nz, .nope push hl call CheckItemPocket pop de - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] dec a ld hl, .Pockets rst JumpTable @@ -6732,16 +6738,16 @@ _CheckItem:: ; d244 ld l, e ; d278 -.asm_d278 +.nope jp CheckTheItem ; d27b -CheckHLequTMsHMsEnd: ; d27b +DoesHLEqualNumItems: ; d27b ld a, l - cp TMsHMsEnd % $100 + cp NumItems % $100 ret nz ld a, h - cp TMsHMsEnd / $100 + cp NumItems / $100 ret ; d283 @@ -6749,21 +6755,21 @@ GetPocketCapacity: ; d283 ld c, MAX_ITEMS ld a, e cp NumItems % $100 - jr nz, .asm_d28e + jr nz, .not_bag ld a, d cp NumItems / $100 ret z -.asm_d28e +.not_bag ld c, MAX_PC_ITEMS ld a, e cp PCItems % $100 - jr nz, .asm_d299 + jr nz, .not_pc ld a, d cp PCItems / $100 ret z -.asm_d299 +.not_pc ld c, MAX_BALLS ret ; d29c @@ -7131,50 +7137,50 @@ GetNumberedTMHM: ; d417 _CheckTossableItem:: ; d427 -; Return 1 in wd142 and carry if CurItem can't be removed from the bag. +; Return 1 in wItemAttributeParamBuffer and carry if CurItem can't be removed from the bag. ld a, ITEMATTR_PERMISSIONS call GetItemAttr bit 7, a - jr nz, Functiond47f + jr nz, ItemAttr_ReturnCarry and a ret ; d432 CheckSelectableItem: ; d432 -; Return 1 in wd142 and carry if CurItem can't be selected. +; Return 1 in wItemAttributeParamBuffer and carry if CurItem can't be selected. ld a, ITEMATTR_PERMISSIONS call GetItemAttr bit 6, a - jr nz, Functiond47f + jr nz, ItemAttr_ReturnCarry and a ret ; d43d CheckItemPocket:: ; d43d -; Return the pocket for CurItem in wd142. +; Return the pocket for CurItem in wItemAttributeParamBuffer. ld a, ITEMATTR_POCKET call GetItemAttr and $f - ld [wd142], a + ld [wItemAttributeParamBuffer], a ret ; d448 CheckItemContext: ; d448 -; Return the context for CurItem in wd142. +; Return the context for CurItem in wItemAttributeParamBuffer. ld a, ITEMATTR_HELP call GetItemAttr and $f - ld [wd142], a + ld [wItemAttributeParamBuffer], a ret ; d453 CheckItemMenu: ; d453 -; Return the menu for CurItem in wd142. +; Return the menu for CurItem in wItemAttributeParamBuffer. ld a, ITEMATTR_HELP call GetItemAttr swap a and $f - ld [wd142], a + ld [wItemAttributeParamBuffer], a ret ; d460 @@ -7190,7 +7196,7 @@ GetItemAttr: ; d460 add hl, bc xor a - ld [wd142], a + ld [wItemAttributeParamBuffer], a ld a, [CurItem] dec a @@ -7205,9 +7211,9 @@ GetItemAttr: ; d460 ret ; d47f -Functiond47f: ; d47f +ItemAttr_ReturnCarry: ; d47f ld a, 1 - ld [wd142], a + ld [wItemAttributeParamBuffer], a scf ret ; d486 @@ -7304,7 +7310,7 @@ Functiond508: ; d508 (3:5508) ret Functiond509: ; d509 (3:5509) - callba Function10602e + callba MobileFn_10602e ret Functiond510: ; d510 (3:5510) @@ -8012,7 +8018,7 @@ GeneratePartyMonStats: ; d906 ld a, [BaseDexNo] ld [de], a inc de - ld a, [IsInBattle] + ld a, [wBattleMode] and a ld a, $0 jr z, .skipitem @@ -8024,7 +8030,7 @@ GeneratePartyMonStats: ; d906 push de ld h, d ld l, e - ld a, [IsInBattle] + ld a, [wBattleMode] and a jr z, .randomlygeneratemoves ld a, [MonType] @@ -8103,7 +8109,7 @@ endr pop de pop hl push hl - ld a, [IsInBattle] + ld a, [wBattleMode] and a jr nz, .copywildmonstats call Random @@ -8211,7 +8217,7 @@ endr inc de .next2 - ld a, [IsInBattle] + ld a, [wBattleMode] dec a jr nz, .generatestats ld hl, EnemyMonMaxHP @@ -9217,7 +9223,7 @@ Functione039: ; e039 ld a, [wd10b] and a jp nz, CloseSRAM - ld a, [InLinkBattle] + ld a, [wLinkMode] and a ret nz ld a, BANK(s0_a600) @@ -9520,14 +9526,14 @@ GivePoke:: ; e277 push af ld a, [CurItem] and a - jr z, .asm_e2e1 + jr z, .done ld a, [CurPartyMon] ld hl, PartyMon1Item ld bc, PartyMon2 - PartyMon1 call AddNTimes ld a, [CurItem] ld [hl], a - jr .asm_e2e1 + jr .done .failed ld a, [CurPartySpecies] @@ -9548,11 +9554,11 @@ GivePoke:: ; e277 push af ld a, [CurItem] and a - jr z, .asm_e2e1 + jr z, .done ld a, [CurItem] ld [sBoxMon1Item], a -.asm_e2e1 +.done ld a, [CurPartySpecies] ld [wd265], a ld [TempEnemyMonSpecies], a @@ -9586,6 +9592,7 @@ endr push de push bc jr nz, .asm_e35e + push hl ld a, [CurPartyMon] ld hl, PartyMonOT @@ -9593,14 +9600,14 @@ endr ld d, h ld e, l pop hl -.asm_e32f +.otnameloop ld a, [ScriptBank] call GetFarByte ld [de], a inc hl inc de cp "@" - jr nz, .asm_e32f + jr nz, .otnameloop ld a, [ScriptBank] call GetFarByte ld b, a @@ -9609,9 +9616,9 @@ endr ld hl, PartyMon1ID ld bc, PartyMon2 - PartyMon1 call AddNTimes - ld a, $3 + ld a, 01001 / $100 ld [hli], a - ld [hl], $e9 + ld [hl], 01001 % $100 pop bc callba SetPkmnCaughtData jr .asm_e3b2 @@ -9626,7 +9633,7 @@ endr ld [de], a inc hl inc de - cp $50 + cp "@" jr nz, .asm_e366 ld a, [ScriptBank] call GetFarByte @@ -9672,7 +9679,7 @@ endr call GetSRAMBank ld hl, wd050 ld de, sBoxMonNicknames - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes call CloseSRAM ld b, $1 @@ -9696,7 +9703,7 @@ TextJump_WasSentToBillsPC: ; 0xe3d9 Functione3de: ; e3de push de call LoadMenuDataHeader_0x1d75 - call Function2ed3 + call DisableSpriteUpdates pop de push de ld b, $0 @@ -9746,7 +9753,7 @@ Functione41c: ; e41c (3:641c) call PrintText pop af ld [Options], a - call Functione58 + call LoadFontsBattleExtra ret ; e43a (3:643a) @@ -9765,14 +9772,14 @@ Functione443: ; e443 (3:6443) call LoadMenuDataHeader ld a, $1 .asm_e44b - ld [wcf88], a + ld [wPocketCursorBuffer], a call SetPalettes xor a ld [wcf76], a ld [hBGMapMode], a ; $ff00+$d4 call Function1e5d jr c, .asm_e46b - ld a, [wcf88] + ld a, [wPocketCursorBuffer] push af ld a, [MenuSelection] ld hl, Jumptable_e4ba @@ -9970,7 +9977,7 @@ Functione583: ; e583 (3:6583) ret ClearPCItemScreen: ; e58b - call Function2ed3 + call DisableSpriteUpdates xor a ld [hBGMapMode], a call WhiteBGMap @@ -10116,11 +10123,11 @@ Unknown_e66e: ; e66e dbw BANK(sBox7), sBox7 dbw BANK(sBox8), sBox8 dbw BANK(sBox9), sBox9 - dbw BANK(sBox10), sBox10 - dbw BANK(sBox11), sBox11 - dbw BANK(sBox12), sBox12 - dbw BANK(sBox13), sBox13 - dbw BANK(sBox14), sBox14 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 ; e698 Functione698: ; e698 @@ -10442,7 +10449,7 @@ TMHMMoves: ; 1167a ; 116b7 _NamingScreen: ; 0x116b7 - call Function2ed3 + call DisableSpriteUpdates call Function116c1 call Function2b74 ret @@ -10463,17 +10470,17 @@ Function116c1: ; 116c1 push af xor a ld [$ffde], a - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a call Function116f8 call DelayFrame .asm_116e5 call Function11915 jr nc, .asm_116e5 pop af - ld [$ffaa], a + ld [hInMenu], a pop af ld [$ffde], a pop af @@ -10609,7 +10616,7 @@ String_117e6: ; 117e6 Function117f5: ; 117f5 (4:57f5) ld de, PokeBallSpriteGFX - ld hl, $8000 + ld hl, VTiles0 tile $00 lb bc, BANK(PokeBallSpriteGFX), $4 call Request2bpp xor a @@ -10647,7 +10654,7 @@ String_11839: ; 11839 Function11847: ; 11847 (4:5847) push de - ld hl, $8000 + ld hl, VTiles0 tile $00 ld c, $4 push bc call Request2bpp @@ -10656,7 +10663,7 @@ Function11847: ; 11847 (4:5847) add hl, de ld e, l ld d, h - ld hl, $8040 + ld hl, VTiles0 tile $04 call Request2bpp xor a ld hl, wc300 @@ -10776,8 +10783,8 @@ Function118ca: ; 118ca ; 11915 Function11915: ; 11915 - call Functiona57 - ld a, [wcf63] + call JoyTextDelay + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_11930 call Function11968 @@ -10823,7 +10830,7 @@ Function11940: ; 11940 ; 11968 Function11968: ; 11968 - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, $0 ld hl, Jumptable_11977 @@ -10860,7 +10867,7 @@ Function1197b: ; 1197b (4:597b) ld hl, $e add hl, bc ld [hl], a - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret @@ -10914,7 +10921,7 @@ Function119a1: ; 119a1 (4:59a1) .asm_119eb call Function11bf7 - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -11018,7 +11025,7 @@ Unknown_11a82: ; 11a82 ; 11a8b Function11a8b: ; 11a8b (4:5a8b) - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .up @@ -11223,21 +11230,22 @@ Function11bd0: ; 11bd0 (4:5bd0) ; 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], $f2 + ld [hl], "·" inc hl ld a, [wc6d3] dec a ld c, a - ld a, $eb -.asm_11bf0 + ld a, "→" +.loop ld [hli], a dec c - jr nz, .asm_11bf0 - ld [hl], $50 + jr nz, .loop + ld [hl], "@" ret ; 11bf7 @@ -11313,22 +11321,22 @@ Function11c51: ; 11c51 call Functione5f ld de, GFX_11e65 - ld hl, $8eb0 + ld hl, VTiles1 tile $6b lb bc, BANK(GFX_11e65), 1 call Get1bpp ld de, GFX_11e6d - ld hl, $8f20 + ld hl, VTiles1 tile $72 lb bc, BANK(GFX_11e6d), 1 call Get1bpp - ld de, $9600 + ld de, VTiles2 tile $60 ld hl, GFX_11cb7 ld bc, $10 ld a, BANK(GFX_11cb7) call FarCopyBytes - ld de, $87e0 + ld de, VTiles0 tile $7e ld hl, GFX_11cc7 ld bc, $20 ld a, BANK(GFX_11cc7) @@ -11343,7 +11351,7 @@ Function11c51: ; 11c51 ld [wc3bf], a ld [hSCX], a ld [wc3c0], a - ld [wcf63], a + ld [wJumptableIndex], a ld [wcf64], a ld [hBGMapMode], a ld [wc6d2], a @@ -11409,17 +11417,17 @@ Function11e75: ; 11e75 (4:5e75) push af xor a ld [$ffde], a - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a call Function11e9a call DelayFrame .asm_11e8e call Function11fc0 jr nc, .asm_11e8e pop af - ld [$ffaa], a + ld [hInMenu], a pop af ld [$ffde], a ret @@ -11428,7 +11436,7 @@ Function11e9a: ; 11e9a (4:5e9a) call WhiteBGMap call DisableLCD call Function11c51 - ld de, $8000 + ld de, VTiles0 tile $00 ld hl, GFX_11ef4 ld bc, $80 ld a, BANK(GFX_11ef4) @@ -11451,9 +11459,9 @@ Function11e9a: ; 11e9a (4:5e9a) call GetSGBLayout call WaitBGMap call WaitTop - ld a, $e4 + ld a, %11100100 call DmgToCgbBGPals - ld a, $e4 + ld a, %11100100 call Functioncf8 call Function11be0 ld hl, wc6d0 @@ -11483,15 +11491,15 @@ String_11f7a: ; 11f7a Function11f84: ; 11f84 (4:5f84) call WaitTop hlcoord 0, 0 - ld bc, $78 + ld bc, 6 * SCREEN_WIDTH ld a, $60 call ByteFill hlcoord 0, 6 - ld bc, $f0 + ld bc, 12 * SCREEN_WIDTH ld a, " " call ByteFill hlcoord 1, 1 - ld bc, $412 + lb bc, 4, SCREEN_WIDTH - 2 call ClearBox ld de, String_121dd @@ -11515,8 +11523,8 @@ Function11fa9: ; 11fa9 (4:5fa9) ret Function11fc0: ; 11fc0 (4:5fc0) - call Functiona57 - ld a, [wcf63] + call JoyTextDelay + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_11fdb call Function12008 @@ -11551,7 +11559,7 @@ Function11feb: ; 11feb (4:5feb) ret Function12008: ; 12008 (4:6008) - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_12017 @@ -11582,7 +11590,7 @@ Function1201b: ; 1201b (4:601b) ld hl, $e add hl, bc ld [hl], a - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret @@ -11652,7 +11660,7 @@ Function1203a: ; 1203a (4:603a) .asm_120a1 call Function11bf7 - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -11712,7 +11720,7 @@ Unknown_12102: ; 12102 ; 1210c Function1210c: ; 1210c (4:610c) - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .up @@ -12033,7 +12041,7 @@ Jumptable_12377: ; 12377 Function12383: ; 12383 call Function12434 ld de, GFX_123fc - ld hl, $87c0 + ld hl, VTiles0 tile $7c lb bc, BANK(GFX_123fc), $2 call Request2bpp ret @@ -12276,7 +12284,7 @@ Function1250a: ; 1250a HalveMoney: ; 12513 ; Empty function... - callba Function1060c7 + callba MobileFn_1060c7 ; Halve the player's money. ld hl, Money @@ -12440,7 +12448,7 @@ UnknownText_0x125c8: ; 0x125c8 StartMenu:: ; 125cd - call Function1fbf + call ResetTextRelatedRAM ld de, SFX_MENU call PlaySFX @@ -12457,7 +12465,7 @@ StartMenu:: ; 125cd call LoadMenuDataHeader call .SetUpMenuItems ld a, [wd0d2] - ld [wcf88], a + ld [wPocketCursorBuffer], a call .DrawMenuAccount_ call MenuFunc_1e7f call .DrawBugContestStatusBox @@ -12473,13 +12481,13 @@ StartMenu:: ; 125cd call UpdateTimePals call .SetUpMenuItems ld a, [wd0d2] - ld [wcf88], a + ld [wPocketCursorBuffer], a .Select call .GetInput jr c, .Exit call .DrawMenuAccount - ld a, [wcf88] + ld a, [wPocketCursorBuffer] ld [wd0d2], a call PlayClickSFX call Function1bee @@ -12518,7 +12526,7 @@ endr .ReturnEnd call ExitMenu .ReturnEnd2 - call Function2dcf + call LoadMoveSprites call UpdateTimePals ret @@ -12550,15 +12558,15 @@ endr .ReturnFour ; 12691 call ExitMenu - ld a, $80 - ld [$ffa0], a + ld a, HMENURETURN_SCRIPT + ld [hMenuReturn], a ret ; 12699 .ReturnThree ; 12699 call ExitMenu - ld a, $80 - ld [$ffa0], a + ld a, HMENURETURN_SCRIPT + ld [hMenuReturn], a jr .ReturnEnd2 ; 126a2 @@ -12740,7 +12748,7 @@ endr call .AppendMenuList .no_pokemon - ld a, [InLinkBattle] + ld a, [wLinkMode] and a jr nz, .no_pack ld hl, StatusFlags2 @@ -12760,7 +12768,7 @@ endr ld a, 3 ; status call .AppendMenuList - ld a, [InLinkBattle] + ld a, [wLinkMode] and a jr nz, .no_save ld hl, StatusFlags2 @@ -12786,8 +12794,8 @@ endr xor a ld hl, MenuItemsList ld [hli], a - ld a, $ff - ld bc, $000f + ld a, -1 + ld bc, MenuItemsListEnd - (MenuItemsList + 1) call ByteFill ld de, MenuItemsList + 1 ld c, 0 @@ -13035,7 +13043,7 @@ Function129f4: ; 129f4 push de call PartyMonItemName callba _CheckTossableItem - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] and a jr nz, .asm_12a3f ld hl, UnknownText_0x12a45 @@ -13171,7 +13179,7 @@ PokemonActionSubmenu: ; 12a88 dbw 17, GiveTakePartyMonItem dbw 18, CancelPokemonAction dbw 19, Function12fba ; move - dbw 20, Function12d45 ; mail + dbw 20, MonMailAction ; mail ; 12aec @@ -13254,7 +13262,7 @@ GiveTakePartyMonItem: ; 12b60 call ClearPalettes call Function12ba9 call ClearPalettes - call Functione58 + call LoadFontsBattleExtra call ExitMenu ld a, 0 ret @@ -13286,7 +13294,7 @@ Function12ba9: ; 12ba9 jr z, .next call CheckTossableItem - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] and a jr nz, .next @@ -13534,82 +13542,89 @@ Function12cfe: ; 12cfe (4:6cfe) call CloseSRAM ret -Function12d45: ; 12d45 - ld a, [InLinkBattle] - cp $1 - jr z, .asm_12d6d - cp $2 - jr z, .asm_12d6d - ld hl, MenuDataHeader_0x12dc9 +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 - jp c, .asm_12dc6 + +; Interpret the menu. + jp c, .done ld a, [wcfa9] cp $1 - jr z, .asm_12d6d + jr z, .read cp $2 - jr z, .asm_12d76 - jp .asm_12dc6 + jr z, .take + jp .done -.asm_12d6d - callba Functionb9229 +.read + callba ReadPartyMonMail ld a, $0 ret -.asm_12d76 - ld hl, UnknownText_0x12df1 +.take + ld hl, .sendmailtopctext call Function12cf5 - jr c, .asm_12d9a + jr c, .RemoveMailToBag ld a, [CurPartyMon] ld b, a callba Function4456e - jr c, .asm_12d92 - ld hl, UnknownText_0x12dfb + jr c, .MailboxFull + ld hl, .sentmailtopctext call MenuTextBoxBackup - jr .asm_12dc6 + jr .done -.asm_12d92 - ld hl, UnknownText_0x12df6 +.MailboxFull + ld hl, .mailboxfulltext call MenuTextBoxBackup - jr .asm_12dc6 + jr .done -.asm_12d9a - ld hl, UnknownText_0x12de2 +.RemoveMailToBag + ld hl, .mailwilllosemessagetext call Function12cf5 - jr c, .asm_12dc6 + jr c, .done call GetPartyItemLocation ld a, [hl] ld [CurItem], a call Function12cdf - jr nc, .asm_12dbe + jr nc, .BagIsFull call GetPartyItemLocation ld [hl], $0 call GetCurNick - ld hl, UnknownText_0x12de7 + ld hl, .tookmailfrommontext call MenuTextBoxBackup - jr .asm_12dc6 + jr .done -.asm_12dbe - ld hl, UnknownText_0x12dec +.BagIsFull + ld hl, .bagfulltext call MenuTextBoxBackup - jr .asm_12dc6 + jr .done -.asm_12dc6 +.done ld a, $3 ret ; 12dc9 -MenuDataHeader_0x12dc9: ; 0x12dc9 +.MenuDataHeader: ; 0x12dc9 db $40 ; flags db 10, 12 ; start coords db 17, 19 ; end coords - dw MenuData2_0x12dd1 + dw .MenuData2 db 1 ; default option ; 0x12dd1 -MenuData2_0x12dd1: ; 0x12dd1 +.MenuData2: ; 0x12dd1 db $80 ; flags db 3 ; items db "READ@" @@ -13618,32 +13633,38 @@ MenuData2_0x12dd1: ; 0x12dd1 ; 0x12de2 -UnknownText_0x12de2: ; 0x12de2 +.mailwilllosemessagetext: ; 0x12de2 +; The MAIL will lose its message. OK? text_jump UnknownText_0x1c1c22 db "@" ; 0x12de7 -UnknownText_0x12de7: ; 0x12de7 +.tookmailfrommontext: ; 0x12de7 +; MAIL detached from <POKEMON>. text_jump UnknownText_0x1c1c47 db "@" ; 0x12dec -UnknownText_0x12dec: ; 0x12dec +.bagfulltext: ; 0x12dec +; There's no space for removing MAIL. text_jump UnknownText_0x1c1c62 db "@" ; 0x12df1 -UnknownText_0x12df1: ; 0x12df1 +.sendmailtopctext: ; 0x12df1 +; Send the removed MAIL to your PC? text_jump UnknownText_0x1c1c86 db "@" ; 0x12df6 -UnknownText_0x12df6: ; 0x12df6 +.mailboxfulltext: ; 0x12df6 +; Your PC's MAILBOX is full. text_jump UnknownText_0x1c1ca9 db "@" ; 0x12dfb -UnknownText_0x12dfb: ; 0x12dfb +.sentmailtopctext: ; 0x12dfb +; The MAIL was sent to your PC. text_jump UnknownText_0x1c1cc4 db "@" ; 0x12e00 @@ -13686,7 +13707,7 @@ Function12e30: ; 12e30 jr z, .asm_12e4c cp $0 jr z, .asm_12e4f - callba Function1060b5 + callba MobileFn_1060b5 ld b, $4 ld a, $2 ret @@ -13886,7 +13907,7 @@ Function12f5b: ; 12f5b ld a, [hl] push af set 4, [hl] - call Functione58 + call LoadFontsBattleExtra call Function12f73 pop bc ld a, b @@ -13994,12 +14015,12 @@ Function12fd5: ; 12fd5 jp .asm_12ff2 .asm_13018 - ld a, $7f + ld a, " " hlcoord 1, 11 - ld bc, $0005 + ld bc, 5 call ByteFill hlcoord 1, 12 - ld bc, $0512 + lb bc, 5, SCREEN_WIDTH - 2 call ClearBox hlcoord 1, 12 ld de, String_1316b @@ -14016,7 +14037,7 @@ Function12fd5: ; 12fd5 xor a ld [wd0e3], a hlcoord 1, 2 - ld bc, $0812 + lb bc, 8, SCREEN_WIDTH - 2 call ClearBox jp .asm_12fe8 ; 1305b @@ -14107,7 +14128,7 @@ Function12fd5: ; 12fd5 ld bc, $0015 add hl, bc call Function1313a - ld a, [IsInBattle] + ld a, [wBattleMode] jr z, .asm_13113 ld hl, BattleMonMoves ld bc, $0020 @@ -14183,7 +14204,7 @@ Function13172: ; 13172 xor a ld [hBGMapMode], a callba Functionfb571 - callba Function8e814 + callba InefficientlyClear121BytesAtwc300 ld a, [CurPartyMon] ld e, a ld d, $0 @@ -14231,7 +14252,7 @@ Function131ef: ; 131ef ld [MonType], a predef CopyPkmnToTempMon ld hl, TempMonMoves - ld de, wd25e + ld de, wListMoves_MoveIndicesBuffer ld bc, NUM_MOVES call CopyBytes ld a, SCREEN_WIDTH * 2 @@ -14401,12 +14422,12 @@ SelectMenu:: ; 13327 jp UseRegisteredItem .NotRegistered - call Function2e08 + call LoadFont ld b, BANK(ItemMayBeRegisteredText) ld hl, ItemMayBeRegisteredText call MapTextbox call CloseText - jp Function2dcf + jp LoadMoveSprites ; 13340 @@ -14519,7 +14540,7 @@ endr UseRegisteredItem: ; 133c3 callba CheckItemMenu - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] ld hl, .SwitchTo rst JumpTable ret @@ -14535,17 +14556,17 @@ UseRegisteredItem: ; 133c3 ; 133df .NoFunction ; 133df - call Function2e08 + call LoadFont call CantUseItem - call Function2dcf + call LoadMoveSprites and a ret ; 133ea .Current ; 133ea - call Function2e08 + call LoadFont call DoItemEffect - call Function2dcf + call LoadMoveSprites and a ret ; 133f5 @@ -14555,7 +14576,7 @@ UseRegisteredItem: ; 133c3 call FadeToMenu call DoItemEffect call Function2b3c - call Function2dcf + call LoadMoveSprites and a ret ; 13406 @@ -14569,19 +14590,19 @@ UseRegisteredItem: ; 133c3 ld [wd0ef], a ld a, [wd0ec] cp 1 - jr nz, .asm_13425 + jr nz, ._cantuse scf - ld a, $80 - ld [$ffa0], a + ld a, HMENURETURN_SCRIPT + ld [hMenuReturn], a ret ; 13422 .CantUse ; 13422 call ResetWindow -.asm_13425 +._cantuse call CantUseItem - call Function2dcf + call LoadMoveSprites and a ret ; 1342d @@ -14791,9 +14812,9 @@ Elevator_MenuData2: ; 0x13558 db 4, 0 ; rows, columns db 1 ; horizontal spacing dbw 0, OBPals + 8 * 6 - dbw BANK(GetElevatorFlorStrings), GetElevatorFlorStrings - dbw BANK(NULL), NULL - dbw BANK(NULL), NULL + dba GetElevatorFlorStrings + dba NULL + dba NULL ; 13568 GetElevatorFlorStrings: ; 13568 @@ -14881,7 +14902,7 @@ Special_GiveParkBalls: ; 135db ld [wContestMon], a ld a, 20 ld [wdc79], a - callba Function11490 + callba StartBugContestTimer ret ; 135eb @@ -15030,7 +15051,7 @@ Script_JumpStdFromRAM: ; 0x1369a _BugContestJudging: ; 1369d call ContestScore - callba Function105f79 + callba MobileFn_105f79 call Function13819 ld a, [wd00a] call LoadContestantName @@ -16075,11 +16096,13 @@ Function1409b: ; 1409b Function140ae: ; 140ae call Function6e3 ld c, a - and $c0 + and %11000000 jr nz, .asm_140c8 + ld a, c - and $20 + and %00100000 jr z, .asm_140eb + call UpdateTime ld a, [wRTC + 0] ld b, a @@ -16088,7 +16111,7 @@ Function140ae: ; 140ae jr c, .asm_140eb .asm_140c8 - callba Function113da + callba ClearDailyTimers callba Function170923 ld a, $5 call GetSRAMBank @@ -16221,7 +16244,7 @@ GetPlayerSprite: ; 14183 ; Get Chris or Kris's sprite. ld hl, .Chris - ld a, [wd45b] + ld a, [wPlayerSpriteSetupFlags] bit 2, a jr nz, .go ld a, [PlayerGender] @@ -16870,51 +16893,51 @@ EmotesPointers: ; 144d dw ShockEmote db $40, BANK(ShockEmote) - dwtile $78, VTiles1 + dw VTiles1 tile $78 dw QuestionEmote db $40, BANK(QuestionEmote) - dwtile $78, VTiles1 + dw VTiles1 tile $78 dw HappyEmote db $40, BANK(HappyEmote) - dwtile $78, VTiles1 + dw VTiles1 tile $78 dw SadEmote db $40, BANK(SadEmote) - dwtile $78, VTiles1 + dw VTiles1 tile $78 dw HeartEmote db $40, BANK(HeartEmote) - dwtile $78, VTiles1 + dw VTiles1 tile $78 dw BoltEmote db $40, BANK(BoltEmote) - dwtile $78, VTiles1 + dw VTiles1 tile $78 dw SleepEmote db $40, BANK(SleepEmote) - dwtile $78, VTiles1 + dw VTiles1 tile $78 dw FishEmote db $40, BANK(FishEmote) - dwtile $78, VTiles1 + dw VTiles1 tile $78 dw FishingRodGFX + $00 db $10, BANK(FishingRodGFX) - dwtile $7c, VTiles1 + dw VTiles1 tile $7c dw FishingRodGFX + $10 db $20, BANK(FishingRodGFX) - dwtile $7c, VTiles1 + dw VTiles1 tile $7c dw FishingRodGFX + $30 db $20, BANK(FishingRodGFX) - dwtile $7e, VTiles1 + dw VTiles1 tile $7e dw FishingRodGFX + $50 db $10, BANK(FishingRodGFX) - dwtile $7e, VTiles1 + dw VTiles1 tile $7e ; 14495 @@ -18107,7 +18130,7 @@ KrisWithdrawItemMenu: ; 0x157d1 Function157e9: ; 0x157e9 ; check if the item has a quantity callba _CheckTossableItem - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] and a jr z, .askquantity @@ -18205,7 +18228,7 @@ KrisLogOffMenu: ; 0x15888 KrisDepositItemMenu: ; 0x1588b call Function158b8 jr c, .asm_158b6 - call Function2ed3 + call DisableSpriteUpdates call LoadMenuDataHeader_0x1d75 callba Function106a5 .asm_1589c @@ -18247,26 +18270,27 @@ Function158cc: ; 0x158cc ld a, $0 ld [wc2ce], a callba CheckItemMenu - ld a, [wd142] - ld hl, Jumptable_158e7 + ld a, [wItemAttributeParamBuffer] + ld hl, .jumptable rst JumpTable pop af ld [wc2ce], a ret ; 0x158e7 -Jumptable_158e7: ; 0x158e7 - dw .jump2 - dw .jump1 - dw .jump1 - dw .jump1 - dw .jump2 - dw .jump2 - dw .jump2 +.jumptable: ; 0x158e7 + dw .maybe_use + dw .no_use + dw .no_use + dw .no_use + dw .maybe_use + dw .maybe_use + dw .maybe_use -.jump1: +.no_use: ret -.jump2: + +.maybe_use: ld a, [Buffer1] push af ld a, [Buffer2] @@ -18281,7 +18305,7 @@ Jumptable_158e7: ; 0x158e7 Function1590a: ; 0x1590a callba _CheckTossableItem - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] and a jr z, .asm_1591d ld a, $1 @@ -18363,7 +18387,7 @@ Function15985: ; 0x15985 ld c, $12 call TextBox ld a, [wd0d7] - ld [wcf88], a + ld [wPocketCursorBuffer], a ld a, [wd0dd] ld [wd0e4], a call Function350c @@ -18432,9 +18456,9 @@ MenuData15a08: ; 0x15a08 db 4, 8 ; rows/cols? db 2 ; horizontal spacing? dbw 0, PCItems - dbw BANK(Function24ab4), Function24ab4 - dbw BANK(Function24ac3), Function24ac3 - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 PC_DisplayText: ; 15a20 call MenuTextBox @@ -18939,7 +18963,7 @@ Function15cef: ; 15cef ld hl, MenuDataHeader_0x15e18 call CopyMenuDataHeader ld a, [WalkingX] - ld [wcf88], a + ld [wPocketCursorBuffer], a ld a, [WalkingY] ld [wd0e4], a call Function350c @@ -18979,7 +19003,7 @@ Function15cef: ; 15cef call TakeMoney ld a, $4 call Function15c7d - call Functiona36 + call JoyWaitAorB .asm_15d68 call SpeechTextBox @@ -18993,14 +19017,14 @@ Function15cef: ; 15cef .asm_15d6f ld a, $3 call Function15c7d - call Functiona36 + call JoyWaitAorB and a ret .asm_15d79 ld a, $2 call Function15c7d - call Functiona36 + call JoyWaitAorB and a ret ; 15d83 @@ -19059,7 +19083,7 @@ endr .asm_15dd8 ld a, $5 call Function15c7d - call Functiona36 + call JoyWaitAorB scf ret ; 15de2 @@ -19120,9 +19144,9 @@ MenuData2_0x15e20: ; 0x15e20 db 4, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, OBPals + 8 * 6 - dbw BANK(Function24ab4), Function24ab4 - dbw BANK(Function15e30), Function15e30 - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba Function15e30 + dba Function244c3 ; 15e30 Function15e30: ; 15e30 @@ -19272,7 +19296,7 @@ UnknownText_0x15eae: ; 0x15eae Function15eb3: ; 15eb3 - call Function2ed3 + call DisableSpriteUpdates callba Function106a5 .asm_15ebc callba Function106be @@ -19305,30 +19329,30 @@ UnknownText_0x15edb: ; 0x15edb Function15ee0: ; 15ee0 callba CheckItemMenu - ld a, [wd142] - ld hl, Jumptable_15eee + ld a, [wItemAttributeParamBuffer] + ld hl, .jumptable rst JumpTable ret ; 15eee -Jumptable_15eee: ; 15eee - dw Function15efd - dw Function15efc - dw Function15efc - dw Function15efc - dw Function15efd - dw Function15efd - dw Function15efd +.jumptable: ; 15eee + dw .maybe_use + dw .no_use + dw .no_use + dw .no_use + dw .maybe_use + dw .maybe_use + dw .maybe_use ; 15efc -Function15efc: ; 15efc +.no_use: ; 15efc ret ; 15efd -Function15efd: ; 15efd +.maybe_use: ; 15efd callba _CheckTossableItem - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] and a jr z, .asm_15f11 ld hl, UnknownText_0x15faf @@ -19364,7 +19388,7 @@ Function15efd: ; 15efd call PrintTextBoxText call Function15fc3 callba Function24af0 - call Functiona36 + call JoyWaitAorB .asm_15f6e call ExitMenu @@ -19458,7 +19482,7 @@ Function15fc3: ; 15fc3 Function15fcd: ; 15fcd call MenuTextBox - call Functiona36 + call JoyWaitAorB call ExitMenu ret ; 15fd7 @@ -20452,10 +20476,10 @@ Function16be4: ; 16be4 and a ret z - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a ld a, [Options] push af set 4, a @@ -20464,12 +20488,12 @@ Function16be4: ; 16be4 call ClearTileMap ld de, UnownDexATile - ld hl, $8ef0 + ld hl, VTiles1 tile $6f lb bc, BANK(UnownDexBTile), 1 call Request1bpp ld de, UnownDexBTile - ld hl, $8f50 + ld hl, VTiles1 tile $75 lb bc, BANK(UnownDexBTile), 1 call Request1bpp @@ -20498,7 +20522,7 @@ Function16be4: ; 16be4 call PlaceString xor a - ld [wcf63], a + ld [wJumptableIndex], a call Function16cc8 call WaitBGMap @@ -20513,7 +20537,7 @@ Function16be4: ; 16be4 call SetPalettes .asm_16c6b - call Functiona57 + call JoyTextDelay ld a, [hJoyPressed] and B_BUTTON @@ -20528,34 +20552,34 @@ Function16be4: ; 16be4 jr .asm_16c6b .asm_16c82 - ld a, [wcf63] + ld a, [wJumptableIndex] push af callba Function84560 call RestartMapMusic pop af - ld [wcf63], a + ld [wJumptableIndex], a jr .asm_16c6b .asm_16c95 pop af ld [Options], a pop af - ld [$ffaa], a + ld [hInMenu], a call Function222a ret ; 16ca0 Function16ca0: ; 16ca0 - ld a, [$ffa9] - and $10 + ld a, [hJoyLast] + and D_RIGHT jr nz, .asm_16cb9 - ld a, [$ffa9] - and $20 + ld a, [hJoyLast] + and D_LEFT jr nz, .asm_16cad ret .asm_16cad - ld hl, wcf63 + ld hl, wJumptableIndex ld a, [hl] and a jr nz, .asm_16cb6 @@ -20566,7 +20590,7 @@ Function16ca0: ; 16ca0 jr .asm_16cc4 .asm_16cb9 - ld hl, wcf63 + ld hl, wJumptableIndex ld a, [hl] cp $1a jr c, .asm_16cc3 @@ -20581,7 +20605,7 @@ Function16ca0: ; 16ca0 ; 16cc8 Function16cc8: ; 16cc8 - ld a, [wcf63] + ld a, [wJumptableIndex] cp 26 jr z, Function16d20 inc a @@ -20598,7 +20622,7 @@ Function16cc8: ; 16cc8 ld [$ffad], a lb bc, 7, 7 predef FillBox - ld de, $9310 + ld de, VTiles2 tile $31 callba Functione0000 ret ; 16cff @@ -20632,17 +20656,17 @@ Function16d20: ; 16d20 xor a call GetSRAMBank ld hl, sScratch - ld bc, $0310 + ld bc, $0310 ; 784 xor a call ByteFill - ld hl, $9310 + ld hl, VTiles2 tile $31 ld de, sScratch ld c, $31 ld a, [hROMBank] ld b, a call Get2bpp call CloseSRAM - ld c, $14 + ld c, 20 call DelayFrames ret ; 16d57 @@ -20673,7 +20697,7 @@ INCBIN "gfx/unknown/016da4.1bpp" Function16dac: ; 16dac hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $7f + ld a, " " call ByteFill hlcoord 7, 11 ld a, $31 @@ -20693,7 +20717,7 @@ Function16dc7: ; 16dc7 jr z, .asm_16dfd ld hl, UnknownText_0x16e09 call PrintText - call Function2ed3 + call DisableSpriteUpdates callba Function8461a call Function2b74 ld a, [$ffac] @@ -20910,7 +20934,7 @@ Function16ed6: ; 16ed6 ret ; 16f3e -Function16f3e:: ; 16f3e +DoEggStep:: ; 16f3e ld de, PartySpecies ld hl, PartyMon1Happiness ld c, 0 @@ -20941,7 +20965,7 @@ OverworldHatchEgg:: ; 16f5e call Function16f70 call Function2b4d call RestartMapMusic - jp Function2dcf + jp LoadMoveSprites ; 16f70 Function16f70: ; 16f70 (5:6f70) @@ -20967,7 +20991,7 @@ Function16f7a: ; 16f7a (5:6f7a) push de callba Function4dbb8 - callba Function10608d + callba MobileFn_10608d ld a, [CurPartyMon] ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) ld bc, PartyMon2 - PartyMon1 @@ -21405,13 +21429,13 @@ Function17254: ; 17254 (5:7254) push hl push bc hlcoord 0, 0 - ld bc, $168 - ld a, $7f + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " call ByteFill pop bc pop hl ld a, b - ld [$ffd7], a + ld [hBGMapAddress + 1], a ld a, c ld [$ffad], a ld bc, $707 @@ -21434,7 +21458,7 @@ Function1727f: ; 1727f (5:727f) Function1728f: ; 1728f (5:728f) ld a, [wd265] - ld [wcf63], a + ld [wJumptableIndex], a ld a, [CurSpecies] push af ld de, MUSIC_NONE @@ -21442,15 +21466,15 @@ Function1728f: ; 1728f (5:728f) callba Function8000 call DisableLCD ld hl, EggHatchGFX - ld de, $8000 + ld de, VTiles0 tile $00 ld bc, $20 ld a, BANK(EggHatchGFX) call FarCopyBytes callba Function8cf53 - ld de, $9000 - ld a, [wcf63] + ld de, VTiles2 tile $00 + ld a, [wJumptableIndex] call Function1723c - ld de, $9310 + ld de, VTiles2 tile $31 ld a, EGG call Function17224 ld de, MUSIC_EVOLUTION @@ -21506,11 +21530,11 @@ Function1728f: ; 1728f (5:728f) hlcoord 6, 3 ld b, $98 ld c, $0 - ld a, [wcf63] + ld a, [wJumptableIndex] call Function17254 call Function17418 call WaitSFX - ld a, [wcf63] + ld a, [wJumptableIndex] ld [CurPartySpecies], a hlcoord 6, 3 ld d, $0 @@ -21614,7 +21638,7 @@ Function17418: ; 17418 (5:7418) jr nz, .asm_1741a ret -Function17421: ; 17421 +Special_DayCareMon1: ; 17421 ld hl, UnknownText_0x17467 call PrintText ld a, [wBreedMon1Species] @@ -21627,7 +21651,7 @@ Function17421: ; 17421 call Function1746c jp PrintText -Function17440: ; 17440 +Special_DayCareMon2: ; 17440 ld hl, UnknownText_0x17462 call PrintText ld a, [wBreedMon2Species] @@ -22052,7 +22076,7 @@ Function2403c:: ; 2403c ld c, a ld a, [wcfa3] call SimpleMultiply - ld [wcf88], a + ld [wPocketCursorBuffer], a and a ret ; 24085 @@ -22097,7 +22121,7 @@ Function24098: ; 24098 ld c, a ld a, [wcfaa] add c - ld [wcf88], a + ld [wPocketCursorBuffer], a and a ret @@ -22183,7 +22207,7 @@ Function2411a: ; 2411a (9:411a) call Function24193 ld a, [wcfa4] ld e, a - ld a, [wcf88] + ld a, [wPocketCursorBuffer] ld b, a xor a ld d, $0 @@ -22387,7 +22411,7 @@ Function24259: ; 24259 callab Function8cf62 .asm_24266 - call Functiona57 + call JoyTextDelay call Function1bdd and a ret z @@ -22586,53 +22610,59 @@ Function24329: ; 24329 ret ; 24374 -Function24374:: ; 24374 +_BackUpTiles:: ; 24374 ld a, [rSVBK] push af ld a, $7 ld [rSVBK], a + ld hl, wcf71 ld e, [hl] inc hl ld d, [hl] push de + ld b, $10 ld hl, wcf81 -.asm_24387 +.loop ld a, [hli] ld [de], a dec de dec b - jr nz, .asm_24387 + jr nz, .loop + +; 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] bit 6, a - jr nz, .asm_24398 + jr nz, .bit_6 bit 7, a - jr z, .asm_243ae + jr z, .not_bit_7 -.asm_24398 +.bit_6 ld hl, wcf71 ld a, [hli] ld h, [hl] ld l, a set 0, [hl] - call Function1cfd - call Function243cd - call Function1d19 - call Function243cd - jr .asm_243b5 + call GetMemTileCoord + call .copy + call GetMemAttrCoord + call .copy + jr .done -.asm_243ae - pop hl +.not_bit_7 + pop hl ; last-pushed register was de push hl ld a, [hld] ld l, [hl] ld h, a res 0, [hl] -.asm_243b5 +.done pop hl - call Function243e7 + call .ret ; empty function ld a, h ld [de], a dec de @@ -22643,6 +22673,7 @@ Function24374:: ; 24374 ld [hl], e inc hl ld [hl], d + pop af ld [rSVBK], a ld hl, wcf78 @@ -22650,30 +22681,34 @@ Function24374:: ; 24374 ret ; 243cd -Function243cd: ; 243cd - call Function1c53 +.copy: ; 243cd + call GetMenuBoxDims inc b inc c - call Function243e7 -.asm_243d5 + call .ret ; empty function + +.row push bc push hl -.asm_243d7 + +.col ld a, [hli] ld [de], a dec de dec c - jr nz, .asm_243d7 + jr nz, .col + pop hl ld bc, SCREEN_WIDTH add hl, bc pop bc dec b - jr nz, .asm_243d5 + jr nz, .row + ret ; 243e7 -Function243e7: ; 243e7 +.ret: ; 243e7 ret ; 243e8 @@ -22698,7 +22733,7 @@ Function243e8:: ; 243e8 jr z, .next ld d, h ld e, l - call Function1c23 + call RestoreTileBackup .next call Function1c7e @@ -22767,7 +22802,7 @@ Function2446d:: ; 2446d ld a, [wcf91] ld b, a ld hl, wcfa1 - ld a, [wcf82] + ld a, [wMenuBorderTopCoord] inc a bit 6, b jr nz, .asm_2447d @@ -22775,7 +22810,7 @@ Function2446d:: ; 2446d .asm_2447d ld [hli], a - ld a, [wcf83] + ld a, [wMenuBorderLeftCoord] inc a ld [hli], a ld a, [wcf92] @@ -22806,7 +22841,7 @@ Function2446d:: ; 2446d .asm_244a9 ld [hli], a - ld a, [wcf88] + ld a, [wPocketCursorBuffer] and a jr z, .asm_244b7 ld c, a @@ -22834,11 +22869,11 @@ Function244c3: ; 0x244c3 ld a, [MenuSelection] ld [CurSpecies], a hlcoord 0, 12 - ld b, $4 - ld c, $12 + ld b, 4 + ld c, SCREEN_WIDTH - 2 call TextBox ld a, [MenuSelection] - cp $ff + cp -1 ret z decoord 1, 14 callba PrintItemDescription @@ -22860,10 +22895,10 @@ Pokepic:: ; 244e3 call GetBaseData ld de, VTiles1 predef GetFrontpic - ld a, [wcf82] + ld a, [wMenuBorderTopCoord] inc a ld b, a - ld a, [wcf83] + ld a, [wMenuBorderLeftCoord] inc a ld c, a call GetTileCoord @@ -22974,7 +23009,7 @@ Function245af:: ; 245af ld [wcf73], a ld [hBGMapMode], a inc a - ld [$ffaa], a + ld [hInMenu], a call Function2471a call Function24764 call Function247dd @@ -22987,21 +23022,21 @@ Function245af:: ; 245af Function245cb:: ; 245cb .loop - call Function24609 - jp c, Function245d6 - call z, Function245e1 + call MenuJoyAction + jp c, .exit + call z, .zero jr .loop ; 245d6 -Function245d6: ; 245d6 +.exit: ; 245d6 call Function1ff8 ld [wcf73], a ld a, 0 - ld [$ffaa], a + ld [hInMenu], a ret ; 245e1 -Function245e1: ; 245e1 +.zero: ; 245e1 call Function245f1 ld a, 1 ld [hBGMapMode], a @@ -23027,42 +23062,42 @@ Function245f1: ; 245f1 ret ; 24609 -Function24609: ; 24609 -.asm_24609 +MenuJoyAction: ; 24609 +.loop call Function1bd3 - ld a, [$ffa9] - and $f0 + ld a, [hJoyLast] + and D_PAD ld b, a ld a, [hJoyPressed] - and $f + and BUTTONS or b - bit 0, a - jp nz, Function24644 - bit 1, a - jp nz, Function2466f - bit 2, a - jp nz, Function24673 - bit 3, a - jp nz, Function24695 - bit 4, a - jp nz, Function246b5 - bit 5, a - jp nz, Function246a1 - bit 6, a - jp nz, Function246c9 - bit 7, a - jp nz, Function246df - jr .asm_24609 + bit 0, a ; A + jp nz, .a_button + bit 1, a ; B + jp nz, .b_button + bit 2, a ; Select + jp nz, .select + bit 3, a ; Start + jp nz, .start + bit 4, a ; Right + jp nz, .d_right + bit 5, a ; Left + jp nz, .d_left + bit 6, a ; Up + jp nz, .d_up + bit 7, a ; Down + jp nz, .d_down + jr .loop ; 24640 -Function24640: ; 24640 - ld a, $ff +.unreferenced: ; unreferenced + ld a, -1 and a ret ; 24644 -Function24644: ; 24644 +.a_button: ; 24644 call Function1bee ld a, [wcfa9] dec a @@ -23076,20 +23111,20 @@ Function24644: ; 24644 ld [wcf77], a ld [wd107], a ld a, [MenuSelection] - cp $ff - jr z, Function2466f - ld a, $1 + cp -1 + jr z, .b_button + ld a, A_BUTTON scf ret ; 2466f -Function2466f: ; 2466f - ld a, $2 +.b_button: ; 2466f + ld a, B_BUTTON scf ret ; 24673 -Function24673: ; 24673 +.select: ; 24673 ld a, [wcf91] bit 7, a jp z, xor_a_dec_a @@ -23097,65 +23132,65 @@ Function24673: ; 24673 dec a call Function248d5 ld a, [MenuSelection] - cp $ff + cp -1 jp z, xor_a_dec_a call Function246fc dec a ld [wcf77], a - ld a, $4 + ld a, SELECT scf ret ; 24695 -Function24695: ; 24695 +.start: ; 24695 ld a, [wcf91] bit 6, a jp z, xor_a_dec_a - ld a, $8 + ld a, START scf ret ; 246a1 -Function246a1: ; 246a1 +.d_left: ; 246a1 ld hl, wcfa6 bit 7, [hl] jp z, xor_a_dec_a ld a, [wcf91] bit 3, a jp z, xor_a_dec_a - ld a, $20 + ld a, D_LEFT scf ret ; 246b5 -Function246b5: ; 246b5 +.d_right: ; 246b5 ld hl, wcfa6 bit 7, [hl] jp z, xor_a_dec_a ld a, [wcf91] bit 2, a jp z, xor_a_dec_a - ld a, $10 + ld a, D_RIGHT scf ret ; 246c9 -Function246c9: ; 246c9 +.d_up: ; 246c9 ld hl, wcfa6 bit 7, [hl] jp z, xor_a ld hl, wd0e4 ld a, [hl] and a - jr z, .asm_246dc + jr z, .xor_dec_up dec [hl] jp xor_a -.asm_246dc +.xor_dec_up jp xor_a_dec_a ; 246df -Function246df: ; 246df +.d_down: ; 246df ld hl, wcfa6 bit 7, [hl] jp z, xor_a @@ -23165,11 +23200,11 @@ Function246df: ; 246df ld b, a ld a, [wd144] cp b - jr c, .asm_246f9 + jr c, .xor_dec_down inc [hl] jp xor_a -.asm_246f9 +.xor_dec_down jp xor_a_dec_a ; 246fc @@ -23183,19 +23218,20 @@ Function246fc: ; 246fc ; 24706 Function24706: ; 24706 (9:4706) - call Function1cfd - ld de, $14 + call GetMemTileCoord + ld de, SCREEN_WIDTH add hl, de - ld de, $28 + ld de, 2 * SCREEN_WIDTH ld a, [wcf92] .asm_24713 - ld [hl], $7f + ld [hl], " " add hl, de dec a jr nz, .asm_24713 ret Function2471a: ; 2471a +; Get the value of (wcf95):(wcf96,wcf97) and store it in wd144. ld hl, wcf96 ld a, [hli] ld h, [hl] @@ -23203,30 +23239,33 @@ Function2471a: ; 2471a ld a, [wcf95] call GetFarByte ld [wd144], a +; Store [wcf92] + [wd0e4] in c ld a, [wcf92] ld c, a ld a, [wd0e4] add c ld c, a +; If [wd144] > c, skip this next part. ld a, [wd144] inc a cp c - jr nc, .asm_24748 + jr nc, .skip +; If [wd144] > [wcf92], store ([wd144] - [wcf92]) in [wd0e4]. Else, store 0 in [wd0e4]. ld a, [wcf92] ld c, a ld a, [wd144] inc a sub c - jr nc, .asm_24745 + jr nc, .store xor a -.asm_24745 +.store ld [wd0e4], a -.asm_24748 +.skip ld a, [wd0e4] ld c, a - ld a, [wcf88] + ld a, [wPocketCursorBuffer] add c ld b, a ld a, [wd144] @@ -23239,7 +23278,7 @@ Function2471a: ; 2471a xor a ld [wd0e4], a ld a, $1 - ld [wcf88], a + ld [wPocketCursorBuffer], a .asm_24763 ret @@ -23250,10 +23289,10 @@ Function24764: ; 24764 ld c, a ld a, [wd144] ld b, a - ld a, [wcf82] + ld a, [wMenuBorderTopCoord] add $1 ld [wcfa1], a - ld a, [wcf83] + ld a, [wMenuBorderLeftCoord] add $0 ld [wcfa2], a ld a, [wcf92] @@ -23297,7 +23336,7 @@ Function24764: ; 24764 ld [wcfa8], a ld a, [wcfa3] ld b, a - ld a, [wcf88] + ld a, [wPocketCursorBuffer] and a jr z, .asm_247c8 cp b @@ -23342,15 +23381,15 @@ Function247f0: ; 247f0 ld a, [wd0e4] and a jr z, .asm_2480d - ld a, [wcf82] + ld a, [wMenuBorderTopCoord] ld b, a - ld a, [wcf85] + ld a, [wMenuBorderRightCoord] ld c, a call GetTileCoord ld [hl], $61 .asm_2480d - call Function1cfd + call GetMemTileCoord ld bc, $0015 add hl, bc ld a, [wcf92] @@ -23379,9 +23418,9 @@ Function247f0: ; 247f0 ld a, [wcf91] bit 4, a jr z, .asm_24850 - ld a, [wcf84] + ld a, [wMenuBorderBottomCoord] ld b, a - ld a, [wcf85] + ld a, [wMenuBorderRightCoord] ld c, a call GetTileCoord ld [hl], $ee @@ -23448,10 +23487,10 @@ Function2488b: ; 2488b add a add $1 ld c, a - ld a, [wcf82] + ld a, [wMenuBorderTopCoord] add c ld b, a - ld a, [wcf83] + ld a, [wMenuBorderLeftCoord] add $0 ld c, a call GetTileCoord @@ -23783,28 +23822,28 @@ Function24aab: ; 24aab (9:4aab) jr nz, Function24aab ret -Function24ab4: ; 0x24ab4 +PlaceMenuItemName: ; 0x24ab4 push de ld a, [MenuSelection] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetItemName pop hl call PlaceString ret ; 0x24ac3 -Function24ac3: ; 0x24ac3 +PlaceMenuItemQuantity: ; 0x24ac3 push de ld a, [MenuSelection] ld [CurItem], a callba _CheckTossableItem - ld a, [wd142] + ld a, [wItemAttributeParamBuffer] pop hl and a jr nz, .done ld de, $0015 add hl, de - ld [hl], $f1 + ld [hl], "×" inc hl ld de, wcf75 lb bc, 1, 2 @@ -23831,7 +23870,7 @@ Function24af8: ; 24af8 Function24b01: ; 24b01 call Function1cbb - call Function1cfd + call GetMemTileCoord ld de, $0015 add hl, de ld de, Money @@ -23856,7 +23895,8 @@ MenuDataHeader_0x24b1d: ; 0x24b1d db 1 ; default option ; 0x24b25 -Function24b25: ; 24b25 +Special_DisplayCoinCaseBalance: ; 24b25 + ; Place a text box of size 1x7 at 11, 0. hlcoord 11, 0 ld b, 1 ld c, 7 @@ -23865,7 +23905,7 @@ Function24b25: ; 24b25 ld de, CoinString call PlaceString hlcoord 17, 1 - ld de, String24b8e + ld de, ShowMoney_TerminatorString call PlaceString ld de, Coins lb bc, 2, 4 @@ -23874,10 +23914,10 @@ Function24b25: ; 24b25 ret ; 24b4e -Function24b4e: ; 24b4e +Special_DisplayMoneyAndCoinBalance: ; 24b4e hlcoord 5, 0 - ld b, $3 - ld c, $d + ld b, 3 + ld c, 13 call TextBox hlcoord 6, 1 ld de, MoneyString @@ -23900,7 +23940,7 @@ MoneyString: ; 24b83 db "MONEY@" CoinString: ; 24b89 db "COIN@" -String24b8e: ; 24b8e +ShowMoney_TerminatorString: ; 24b8e db "@" ; 24b8f @@ -24004,34 +24044,35 @@ String24c5e: ; 24c5e ; 24c64 -Function24c64: ; 24c64 +FindApricornsInBag: ; 24c64 +; Checks the bag for Apricorns. ld hl, Buffer1 xor a ld [hli], a dec a - ld bc, $000a + ld bc, 10 call ByteFill - ld hl, ApricornBalls -.asm_24c73 + ld hl, .ApricornBalls +.loop ld a, [hl] - cp $ff - jr z, .asm_24c8d + cp -1 + jr z, .done push hl ld [CurItem], a ld hl, NumItems call CheckItem pop hl - jr nc, .asm_24c89 + jr nc, .nope ld a, [hl] - call Function24c94 -.asm_24c89 + call .addtobuffer +.nope rept 2 inc hl endr - jr .asm_24c73 + jr .loop -.asm_24c8d +.done ld a, [Buffer1] and a ret nz @@ -24039,7 +24080,7 @@ endr ret ; 24c94 -Function24c94: ; 24c94 +.addtobuffer: ; 24c94 push hl ld hl, Buffer1 inc [hl] @@ -24051,7 +24092,7 @@ Function24c94: ; 24c94 ret ; 24ca0 -ApricornBalls: ; 24ca0 +.ApricornBalls: ; 24ca0 db RED_APRICORN, LEVEL_BALL db BLU_APRICORN, LURE_BALL db YLW_APRICORN, MOON_BALL @@ -24059,7 +24100,7 @@ ApricornBalls: ; 24ca0 db WHT_APRICORN, FAST_BALL db BLK_APRICORN, HEAVY_BALL db PNK_APRICORN, LOVE_BALL - db $ff + db -1 ; 24caf @@ -24135,10 +24176,10 @@ Function24d47: ; 24d47 inc a add a ld b, a - ld a, [wcf84] + ld a, [wMenuBorderBottomCoord] sub b inc a - ld [wcf82], a + ld [wMenuBorderTopCoord], a call Function1cbb ret ; 24d59 @@ -24178,7 +24219,7 @@ MonMenuLoop: ; 24d59 ; 24d91 PopulateMonMenu: ; 24d91 - call Function1cfd + call GetMemTileCoord ld bc, $002a ; 42 add hl, bc ld de, Buffer2 @@ -24228,7 +24269,7 @@ Function24dd4: ; 24dd4 ld a, [CurPartySpecies] cp EGG jr z, .egg - ld a, [InLinkBattle] + ld a, [wLinkMode] and a jr nz, .skip ld a, PartyMon1Moves - PartyMon1 @@ -24262,7 +24303,7 @@ Function24dd4: ; 24dd4 call Function24e83 ld a, $13 call Function24e83 - ld a, [InLinkBattle] + ld a, [wLinkMode] and a jr nz, .skip2 push hl @@ -24325,7 +24366,7 @@ Function24e68: ; 24e68 xor a ld [Buffer1], a ld hl, Buffer2 - ld bc, $0009 + ld bc, 9 call ByteFill ret ; 24e76 @@ -24336,7 +24377,7 @@ Function24e76: ; 24e76 ld d, $0 ld hl, Buffer2 add hl, de - ld [hl], $ff + ld [hl], -1 ret ; 24e83 @@ -24413,9 +24454,9 @@ LoadBattleMenu: ; 24ef2 ld hl, BattleMenuDataHeader call LoadMenuDataHeader ld a, [wd0d2] - ld [wcf88], a + ld [wPocketCursorBuffer], a call Function2039 - ld a, [wcf88] + ld a, [wPocketCursorBuffer] ld [wd0d2], a call ExitMenu ret @@ -24436,9 +24477,9 @@ ContestBattleMenu: ; 24f13 Function24f19: ; 24f19 ld a, [wd0d2] - ld [wcf88], a + ld [wPocketCursorBuffer], a call InterpretMenu - ld a, [wcf88] + ld a, [wPocketCursorBuffer] ld [wd0d2], a call ExitMenu ret @@ -24457,7 +24498,7 @@ MenuData_0x24f34: ; 0x24f34 db $81 ; flags dn 2, 2 ; rows, columns db 6 ; spacing - dbw BANK(Strings24f3d), Strings24f3d + dba Strings24f3d dbw $09, $0000 ; 0x24f3d @@ -24481,8 +24522,8 @@ MenuData_0x24f56: ; 24f56 db $81 ; flags dn 2, 2 ; rows, columns db 11 ; spacing - dbw BANK(Strings24f5f), Strings24f5f - dbw BANK(Function24f7c), Function24f7c + dba Strings24f5f + dba Function24f7c ; 24f5f Strings24f5f: ; 24f5f @@ -24513,8 +24554,8 @@ MenuData_0x24f91: ; 24f91 db $81 ; flags dn 2, 2 ; rows, columns db 12 ; spacing - dbw BANK(Strings24f9a), Strings24f9a - dbw BANK(Function24fb2), Function24fb2 + dba Strings24f9a + dba Function24fb2 ; 24f9a Strings24f9a: ; 24f9a @@ -24666,7 +24707,7 @@ Function2500e: ; 2500e Function25072: ; 25072 call Function1cbb - call Function1cfd + call GetMemTileCoord ld de, $0015 add hl, de ld [hl], $f1 @@ -24786,12 +24827,12 @@ Function25105: ; 25105 call Function2513b .asm_25117 call UpdateTime - call Functiona57 - ld a, [wcf63] + call JoyTextDelay + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_25132 - ld a, [$ffa9] - and $2 + ld a, [hJoyLast] + and B_BUTTON jr nz, .asm_25132 call Function2518e call DelayFrame @@ -24810,12 +24851,12 @@ Function2513b: ; 2513b (9:513b) call DisableLCD callba Function8833e ld hl, CardRightCornerGFX - ld de, $91c0 + ld de, VTiles2 tile $1c ld bc, $10 ld a, BANK(CardRightCornerGFX) call FarCopyBytes ld hl, CardStatusGFX - ld de, $9290 + ld de, VTiles2 tile $29 ld bc, $60 + $500 ld a, BANK(CardStatusGFX) call FarCopyBytes @@ -24829,7 +24870,7 @@ Function2513b: ; 2513b (9:513b) call GetSGBLayout call SetPalettes call WaitBGMap - ld hl, wcf63 + ld hl, wJumptableIndex xor a rept 3 ld [hli], a @@ -24838,7 +24879,7 @@ endr ret Function2518e: ; 2518e (9:518e) - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, $0 ld hl, Jumptable_2519d @@ -24861,12 +24902,12 @@ Jumptable_2519d: ; 2519d (9:519d) Function251ab: ; 251ab (9:51ab) - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret Function251b0: ; 251b0 (9:51b0) - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -24877,7 +24918,7 @@ Function251b6: ; 251b6 (9:51b6) call Function253b0 call WaitBGMap ld de, CardStatusGFX - ld hl, $9290 + ld hl, VTiles2 tile $29 lb bc, BANK(CardStatusGFX), $6 + $50 call Request2bpp call Function2530a @@ -24886,14 +24927,14 @@ Function251b6: ; 251b6 (9:51b6) Function251d7: ; 251d7 (9:51d7) call Function25415 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $11 + and D_RIGHT | A_BUTTON jr nz, .asm_251e3 ret .asm_251e3 ld a, $2 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 251e9 (9:51e9) @@ -24902,7 +24943,7 @@ Function251e9: ; 251e9 and a ret z ld a, $4 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 251f4 @@ -24913,11 +24954,11 @@ Function251f4: ; 251f4 (9:51f4) call Function253b0 call WaitBGMap ld de, LeaderGFX - ld hl, $9290 + ld hl, VTiles2 tile $29 lb bc, BANK(LeaderGFX), $56 call Request2bpp ld de, BadgeGFX - ld hl, $8000 + ld hl, VTiles0 tile $00 lb bc, BANK(BadgeGFX), $2c call Request2bpp call Function2536c @@ -24927,17 +24968,17 @@ Function251f4: ; 251f4 (9:51f4) Function25221: ; 25221 (9:5221) ld hl, Unknown_254c9 call Function25438 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $1 + and A_BUTTON jr nz, Function25246 ld a, [hl] - and $20 + and D_LEFT jr nz, .asm_25235 ret .asm_25235 ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 2523b (9:523b) @@ -24946,13 +24987,13 @@ Function2523b: ; 2523b and a ret z ld a, $4 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 25246 Function25246: ; 25246 ld a, $6 - ld [wcf63], a + ld [wJumptableIndex], a ret Function2524c: ; 2524c (9:524c) @@ -24962,11 +25003,11 @@ Function2524c: ; 2524c (9:524c) call Function253b0 call WaitBGMap ld de, LeaderGFX2 - ld hl, $9290 + ld hl, VTiles2 tile $29 lb bc, BANK(LeaderGFX2), $56 call Request2bpp ld de, BadgeGFX2 - ld hl, $8000 + ld hl, VTiles0 tile $00 lb bc, BANK(BadgeGFX2), $2c call Request2bpp call Function2536c @@ -24976,21 +25017,21 @@ Function2524c: ; 2524c (9:524c) Function25279: ; 25279 (9:5279) ld hl, Unknown_254c9 call Function25438 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $20 + and D_LEFT jr nz, .asm_2528d ld a, [hl] - and $10 + and D_RIGHT jr nz, .asm_25293 ret .asm_2528d ld a, $2 - ld [wcf63], a + ld [wJumptableIndex], a ret .asm_25293 ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret Function25299: ; 25299 (9:5299) @@ -25388,7 +25429,7 @@ ProfOaksPC: ; 0x265d3 .shutdown ld hl, OakPCText4 call PrintText - call Functiona36 + call JoyWaitAorB call ExitMenu ret ; 0x265ee @@ -25398,7 +25439,7 @@ ProfOaksPCBoot ; 0x265ee call PrintText call Rate call PlaySFX ; sfx loaded by previous Rate function call - call Functiona36 + call JoyWaitAorB call WaitSFX ret ; 0x26601 @@ -25410,7 +25451,7 @@ Function26601: ; 0x26601 call PlayMusic pop de call PlaySFX - call Functiona36 + call JoyWaitAorB call WaitSFX ret ; 0x26616 @@ -25430,7 +25471,7 @@ Rate: ; 0x26616 call ClearOakRatingBuffers ld hl, OakPCText3 call PrintText - call Functiona36 + call JoyWaitAorB ld a, [wd003] ld hl, OakRatings call FindOakRating @@ -25453,7 +25494,7 @@ ClearOakRatingBuffers: ; 0x26647 ClearOakRatingBuffer: ; 0x2665a push hl ld a, "@" - ld bc, $000d + ld bc, ITEM_NAME_LENGTH call ByteFill pop hl lb bc, PRINTNUM_RIGHTALIGN | 1, 3 @@ -25678,7 +25719,7 @@ _KrisDecorationMenu: ; 0x2675c ld [wd1ef], a .asm_2676f ld a, [wd1ef] - ld [wcf88], a + ld [wPocketCursorBuffer], a call Function26806 call Function1e5d ld a, [wcfa9] @@ -25751,8 +25792,8 @@ Function26822: ; 26822 (9:6822) ld hl, StringBuffer2 xor a ld [hli], a - ld bc, $c - ld a, $ff + ld bc, ITEM_NAME_LENGTH - 1 + ld a, -1 call ByteFill ret @@ -26069,7 +26110,7 @@ MenuData2_0x269cd: ; 0x269cd db 8, 0 ; rows, columns db 1 ; horizontal spacing dbw 0, wd002 ; text pointer - dbw BANK(DecorationMenuFunction), DecorationMenuFunction + dba DecorationMenuFunction dbw 0, 0 dbw 0, 0 ; 269dd @@ -27155,7 +27196,7 @@ Function27192: ; 27192 ld a, [hBattleTurn] and a jr nz, .ourturn - ld a, [IsInBattle] + ld a, [wBattleMode] dec a jr z, .done @@ -27225,7 +27266,7 @@ LinkCommunications: ; 28000 call ClearScreen call UpdateSprites call Functione51 - call Functione58 + call LoadFontsBattleExtra callba Function16d69a call Function3200 hlcoord 3, 8 @@ -27243,8 +27284,8 @@ LinkCommunications: ; 28000 xor a ld [hli], a ld [hl], $50 - ld a, [InLinkBattle] - cp $1 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE jp nz, Function28177 Function2805d: ; 2805d @@ -27441,8 +27482,8 @@ Function28177: ; 28177 ld de, wc6d0 ld bc, $00c8 call Function75f - ld a, [InLinkBattle] - cp $2 + ld a, [wLinkMode] + cp LINK_TRADECENTER jr nz, .asm_281fd ld hl, wc9f4 ld de, wcb84 @@ -27492,8 +27533,8 @@ Function28177: ; 28177 ld hl, wc90f dec c jr nz, .asm_28224 - ld a, [InLinkBattle] - cp $2 + ld a, [wLinkMode] + cp LINK_TRADECENTER jp nz, .asm_282fe ld hl, wcb84 .asm_28254 @@ -27626,8 +27667,8 @@ Function28177: ; 28177 cp $2 ld c, 66 call z, DelayFrames - ld a, [InLinkBattle] - cp $3 + ld a, [wLinkMode] + cp LINK_COLOSSEUM jr nz, .asm_283a9 ld a, CAL ld [OtherTrainerClass], a @@ -27641,7 +27682,7 @@ Function28177: ; 28177 ld [hl], a ld hl, wd26b ld de, OTName - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes call Function222a ld a, [wc2d7] @@ -27809,8 +27850,8 @@ endr dec a jr nz, .asm_2847f push bc - ld a, [InLinkBattle] - cp $1 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE ld b, $d jr z, .asm_2847a ld b, $27 @@ -28040,8 +28081,8 @@ Function28595: ; 28595 ld hl, PartyMonNicknames ld bc, $0042 call CopyBytes - ld a, [InLinkBattle] - cp $2 + ld a, [wLinkMode] + cp LINK_TRADECENTER ret nz ld de, wc9f4 ld a, $20 @@ -28583,7 +28624,7 @@ Function28926: ; 28926 .asm_28946 ld a, $7f - ldcoord 11, 16 + ldcoord_a 11, 16 ld a, $13 ld [wcfa8], a ld a, $1 @@ -28615,7 +28656,7 @@ Function28926: ; 28926 .asm_2898d ld a, $7f - ldcoord 1, 16 + ldcoord_a 1, 16 ld a, $23 ld [wcfa8], a ld a, $1 @@ -28761,17 +28802,17 @@ Function28ac9: ; 28ac9 Function28ade: ; 28ade .asm_28ade ld a, $ed - ldcoord 9, 17 + ldcoord_a 9, 17 .asm_28ae3 - call Functiona57 - ld a, [$ffa9] + call JoyTextDelay + ld a, [hJoyLast] and a jr z, .asm_28ae3 bit 0, a jr nz, .asm_28b0b push af - ld a, $7f - ldcoord 9, 17 + ld a, " " + ldcoord_a 9, 17 pop af bit 6, a jr z, .asm_28b03 @@ -28786,7 +28827,7 @@ Function28ade: ; 28ade .asm_28b0b ld a, $ec - ldcoord 9, 17 + ldcoord_a 9, 17 ld a, $f ld [wcf56], a callba Function16d6ce @@ -28814,12 +28855,12 @@ Function28b22: ; 28b22 Function28b42: ; 28b42 hlcoord 0, 16 - ld a, $7e - ld bc, $0028 + ld a, "┘" + ld bc, 2 * SCREEN_WIDTH call ByteFill hlcoord 1, 16 - ld a, $7f - ld bc, SCREEN_HEIGHT + ld a, " " + ld bc, SCREEN_WIDTH - 2 call ByteFill hlcoord 2, 16 ld de, String_28b61 @@ -29100,7 +29141,7 @@ Function28b87: ; 28b87 ld c, $64 call DelayFrames call ClearTileMap - call Functione58 + call LoadFontsBattleExtra ld b, $8 call GetSGBLayout ld a, [$ffcb] @@ -29160,8 +29201,8 @@ Function28b87: ; 28b87 push bc call Function862 pop bc - ld a, [InLinkBattle] - cp $1 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE jr z, .asm_28e63 ld a, b and a @@ -29172,7 +29213,7 @@ Function28b87: ; 28b87 .asm_28e63 callba Function14a58 - callba Function1060af + callba MobileFn_1060af callba Function106187 ld c, $28 call DelayFrames @@ -29186,8 +29227,8 @@ Function28b87: ; 28b87 callba Function4d354 ld c, $32 call DelayFrames - ld a, [InLinkBattle] - cp $1 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE jp z, Function2805d jp Function28177 ; 28ea3 @@ -29383,12 +29424,12 @@ Function28fa1: ; 28fa1 Function28fdb: ; 28fdb xor a - ld [wcf63], a + ld [wJumptableIndex], a call WhiteBGMap call ClearSprites call ClearTileMap call DisableLCD - call Functione58 + call LoadFontsBattleExtra callab Function8cf53 ld a, [hCGB] and a @@ -29396,7 +29437,7 @@ Function28fdb: ; 28fdb ld a, $1 ld [rVBK], a ld hl, VTiles0 - ld bc, $2000 + ld bc, sScratch - VTiles0 xor a call ByteFill ld a, $0 @@ -29404,19 +29445,19 @@ Function28fdb: ; 28fdb .asm_2900b ld hl, VBGMap0 - ld bc, $0800 - ld a, $7f + ld bc, sScratch - VBGMap0 + ld a, " " call ByteFill ld hl, TradeGameBoyLZ - ld de, $9310 + ld de, VTiles2 tile $31 call Decompress ld hl, TradeArrowGFX - ld de, $8ed0 + ld de, VTiles1 tile $6d ld bc, $0010 ld a, BANK(TradeArrowGFX) call FarCopyBytes ld hl, TradeArrowGFX + $10 - ld de, $8ee0 + ld de, VTiles1 tile $6e ld bc, $0010 ld a, BANK(TradeArrowGFX) call FarCopyBytes @@ -29436,7 +29477,7 @@ Function28fdb: ; 28fdb call Function29491 ld a, [wc702] ld hl, wc72f - ld de, $8310 + ld de, VTiles0 tile $31 call Function29491 ld a, [wc6d0] ld de, wc6d1 @@ -29449,7 +29490,7 @@ Function28fdb: ; 28fdb ; 29082 Function29082: ; 29082 - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_2909b call Function290a0 @@ -29467,7 +29508,7 @@ Function29082: ; 29082 ; 290a0 Function290a0: ; 290a0 - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, JumpTable290af @@ -29532,7 +29573,7 @@ JumpTable290af: ; 290af ; 2910f Function2910f: ; 2910f - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret ; 29114 @@ -29543,7 +29584,7 @@ Function29114: ; 29114 inc hl ld d, [hl] ld a, [de] - ld [wcf63], a + ld [wJumptableIndex], a inc de ld [hl], d dec hl @@ -29552,7 +29593,7 @@ Function29114: ; 29114 ; 29123 Function29123: ; 29123 - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret ; 29129 @@ -29713,8 +29754,8 @@ Function29229: ; 29229 call DisableLCD callab Function8cf53 ld hl, VBGMap0 - ld bc, $0800 - ld a, $7f + ld bc, sScratch - VBGMap0 + ld a, " " call ByteFill xor a ld [hSCX], a @@ -29837,12 +29878,12 @@ Function292f6: ; 292f6 push af call WhiteBGMap call WaitTop - ld a, $9c - ld [$ffd7], a + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a call ClearTileMap hlcoord 0, 0 ld bc, SCREEN_WIDTH - ld a, $7a + ld a, "─" call ByteFill hlcoord 0, 1 ld de, wc736 @@ -29851,7 +29892,7 @@ Function292f6: ; 292f6 ld de, 0 .asm_2931e ld a, [hli] - cp $50 + cp "@" jr z, .asm_29326 dec de jr .asm_2931e @@ -29867,8 +29908,8 @@ Function292f6: ; 292f6 call ByteFill call WaitBGMap call WaitTop - ld a, $98 - ld [$ffd7], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a call ClearTileMap ret ; 29348 @@ -29978,8 +30019,8 @@ Function293de: ; 293de Function293ea: ; 293ea call WaitTop - ld a, $9c - ld [$ffd7], a + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a call WaitBGMap ld a, $7 ld [hWX], a @@ -29987,8 +30028,8 @@ Function293ea: ; 293ea ld [hWY], a call DelayFrame call WaitTop - ld a, $98 - ld [$ffd7], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a call ClearTileMap call Function2910f ret @@ -30003,15 +30044,15 @@ Function2940c: ; 2940c ret .asm_29417 - ld a, $9c - ld [$ffd7], a + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a call WaitBGMap ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a - ld a, $98 - ld [$ffd7], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a call Function29114 ret ; 2942e @@ -30094,7 +30135,7 @@ Function294bb: ; 294bb jr Function294c3 Function294c0: ; 294c0 - ld de, $8310 + ld de, VTiles0 tile $31 Function294c3: ; 294c3 call DelayFrame @@ -30197,8 +30238,8 @@ Function29549: ; 29549 Function29573: ; 29573 call WaitTop call Function297cf - ld a, $9c - ld [$ffd7], a + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a hlcoord 3, 0 ld b, $6 ld c, $d @@ -30219,8 +30260,8 @@ String29591: ; 29591 Function295a1: ; 295a1 call WaitTop call Function297cf - ld a, $9c - ld [$ffd7], a + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a hlcoord 3, 0 ld b, $6 ld c, $d @@ -30241,8 +30282,8 @@ String295c2: ; 295c2 Function295d8: ; 295d8 call WaitBGMap call WaitTop - ld a, $98 - ld [$ffd7], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a ret ; 295e3 @@ -30453,8 +30494,8 @@ Function296f2: ; 296f2 (a:56f2) ; 29701 (a:5701) Function29701: ; 29701 - ld a, [InLinkBattle] - cp $1 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE jr z, .asm_29725 ld hl, UnknownText_0x29737 call PrintText @@ -30514,8 +30555,8 @@ UnknownText_0x29757: ; 0x29757 Function2975c: ; 2975c call WaitTop hlcoord 0, 10 - ld bc, $00a0 - ld a, $7f + ld bc, 8 * SCREEN_WIDTH + ld a, " " call ByteFill call WaitBGMap ld hl, UnknownText_0x2977a @@ -30590,7 +30631,7 @@ Function297c9: ; 297c9 Function297cf: ; 297cf hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $7f + ld a, " " call ByteFill ret ; 297db @@ -30661,15 +30702,15 @@ Function2981d: ; 2981d Function2982b: ; 2982b call DelayFrame ld de, TradeBallGFX - ld hl, $8620 + ld hl, VTiles0 tile $62 lb bc, BANK(TradeBallGFX), $6 call Request2bpp ld de, TradePoofGFX - ld hl, $8680 + ld hl, VTiles0 tile $68 lb bc, BANK(TradePoofGFX), $c call Request2bpp ld de, TradeCableGFX - ld hl, $8740 + ld hl, VTiles0 tile $74 lb bc, BANK(TradeCableGFX), $4 call Request2bpp xor a @@ -30684,7 +30725,7 @@ Function2985a: ; 2985a ld e, $3 callab Function8e83f ld de, TradeBubbleGFX - ld hl, $8720 + ld hl, VTiles0 tile $72 lb bc, BANK(TradeBubbleGFX), $4 call Request2bpp xor a @@ -30889,14 +30930,14 @@ Special_EnterTimeCapsule: ; 29c7b xor a ld [hVBlank], a inc a - ld [InLinkBattle], a + ld [wLinkMode], a ret ; 29c92 Special_AbortLink: ; 29c92 ld c, $3 call DelayFrames - ld a, $ff + ld a, -1 ld [$ffcb], a xor a ld [rSB], a @@ -30922,7 +30963,7 @@ Special_AbortLink: ; 29c92 ld [rSC], a ld c, $3 call DelayFrames - ld a, $ff + ld a, -1 ld [$ffcb], a ld a, [rIF] push af @@ -30937,7 +30978,7 @@ Special_AbortLink: ; 29c92 ld [hli], a ld [hl], a ld [hVBlank], a - ld [InLinkBattle], a + ld [wLinkMode], a ret ; 29ce8 @@ -30997,7 +31038,7 @@ Special_WaitForLinkedFriend: ; 29d11 jr z, .asm_29d79 cp $1 jr z, .asm_29d79 - ld a, $ff + ld a, -1 ld [$ffcb], a ld a, $2 ld [rSB], a @@ -31209,7 +31250,7 @@ Special_CheckBothSelectedSameRoom: ; 29e82 jr nz, .asm_29eaa ld a, [wd265] inc a - ld [InLinkBattle], a + ld [wLinkMode], a xor a ld [hVBlank], a ld a, $1 @@ -31223,33 +31264,33 @@ Special_CheckBothSelectedSameRoom: ; 29e82 ; 29eaf Special_TimeCapsule: ; 29eaf - ld a, $1 - ld [InLinkBattle], a - call Function2ed3 + ld a, LINK_TIMECAPSULE + ld [wLinkMode], a + call DisableSpriteUpdates callab LinkCommunications - call Function2ee4 + call EnableSpriteUpdates xor a ld [hVBlank], a ret ; 29ec4 Special_TradeCenter: ; 29ec4 - ld a, $2 - ld [InLinkBattle], a - call Function2ed3 + ld a, LINK_TRADECENTER + ld [wLinkMode], a + call DisableSpriteUpdates callab LinkCommunications - call Function2ee4 + call EnableSpriteUpdates xor a ld [hVBlank], a ret ; 29ed9 Special_Colosseum: ; 29ed9 - ld a, $3 - ld [InLinkBattle], a - call Function2ed3 + ld a, LINK_COLOSSEUM + ld [wLinkMode], a + call DisableSpriteUpdates callab LinkCommunications - call Function2ee4 + call EnableSpriteUpdates xor a ld [hVBlank], a ret @@ -31257,7 +31298,7 @@ Special_Colosseum: ; 29ed9 Special_CloseLink: ; 29eee xor a - ld [InLinkBattle], a + ld [wLinkMode], a ld c, $3 call DelayFrames jp Function29f04 @@ -31273,7 +31314,7 @@ Special_FailedLinkToPast: ; 29efa Function29f04: ; 29f04 ld c, $3 call DelayFrames - ld a, $ff + ld a, -1 ld [$ffcb], a ld a, $2 ld [rSB], a @@ -31720,7 +31761,7 @@ endr CheckRepelEffect:: ; 2a1df ; If there is no active Repel, there's no need to be here. - ld a, [RepelStepsLeft] + ld a, [wRepelEffect] and a jr z, .encounter ; Get the first Pokemon in your party that isn't fainted. @@ -32443,23 +32484,23 @@ Function2b930: ; 2b930 jr nc, .asm_2b97f .asm_2b976 - ld a, [wd0ee] + ld a, [wBattleResult] and $f0 - ld [wd0ee], a + ld [wBattleResult], a ret .asm_2b97f - ld a, [wd0ee] + ld a, [wBattleResult] and $f0 add $1 - ld [wd0ee], a + ld [wBattleResult], a ret .asm_2b98a - ld a, [wd0ee] + ld a, [wBattleResult] and $f0 add $2 - ld [wd0ee], a + ld [wBattleResult], a ret ; 2b995 @@ -32587,7 +32628,7 @@ Function2c000: ; 2c000 ld [rOBP0], a call Function2c165 call Function2c01c - ld a, [IsInBattle] + ld a, [wBattleMode] dec a ret z jp Function2c03a @@ -32728,7 +32769,7 @@ Function2c0c5: ; 2c0c5 hlcoord 1, 2 ld de, 1 call Function2c0f1 - ld a, [IsInBattle] + ld a, [wBattleMode] dec a ret nz ld a, [TempEnemyMonSpecies] @@ -32784,7 +32825,7 @@ Function2c10d: ; 2c10d ld de, OTPartyCount call Function2c059 ld hl, wcfc4 - ld a, $50 + ld a, "@" ld [hli], a ld [hl], $68 ld hl, Sprites + $18 @@ -32794,7 +32835,7 @@ Function2c10d: ; 2c10d Function2c143: ; 2c143 ld de, Buffer1 ld c, $6 -.asm_2c148 +.loop ld a, [wcfc5] ld [hli], a ld a, [wcfc4] @@ -32810,13 +32851,13 @@ Function2c143: ; 2c143 ld [wcfc4], a inc de dec c - jr nz, .asm_2c148 + jr nz, .loop ret ; 2c165 Function2c165: ; 2c165 ld de, GFX_2c172 - ld hl, $8310 + ld hl, VTiles0 tile $31 lb bc, BANK(GFX_2c172), 4 call Functiondc9 ret @@ -32826,24 +32867,24 @@ GFX_2c172: ; 2c172 INCBIN "gfx/battle/balls.2bpp" ; 2c1b2 -Function2c1b2: ; 2c1b2 +_ShowLinkBattleParticipants: ; 2c1b2 call WhiteBGMap call Functione5f hlcoord 2, 3 - ld b, $9 - ld c, $e + ld b, 9 + ld c, 14 call TextBox hlcoord 4, 5 ld de, PlayerName call PlaceString hlcoord 4, 10 - ld de, wd26b + ld de, OTPlayerName call PlaceString hlcoord 9, 8 ld a, $69 ld [hli], a ld [hl], $6a - callba Function2c10d + callba Function2c10d ; no need to callba ld b, $8 call GetSGBLayout call SetPalettes @@ -33359,10 +33400,10 @@ Unknown_2c74a: ; 2c74a Function2c76f: ; 2c76f (b:476f) ld a, $1 - ld [$ffaa], a + ld [hInMenu], a call Function2c8d3 ld a, $0 - ld [$ffaa], a + ld [hInMenu], a ret nc call Function1bee call WaitBGMap @@ -33507,7 +33548,7 @@ Function2c867: ; 2c867 and a jr z, .nope - callba Function106049 + callba MobileFn_106049 ld a, [CurItem] call IsHM ret c @@ -33580,7 +33621,7 @@ Function2c8d3: ; 2c8d3 (b:48d3) ld [wcfa7], a ld a, $f3 ld [wcfa8], a - ld a, [wd0dc] + ld a, [wTMHMPocketCursor] inc a ld [wcfa9], a ld a, $1 @@ -33593,7 +33634,7 @@ Function2c915: ; 2c915 (b:4915) ld b, a ld a, [wcfa9] dec a - ld [wd0dc], a + ld [wTMHMPocketCursor], a xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, [wcfa6] @@ -34114,11 +34155,14 @@ ConvertBerriesToBerryJuice: ; 2ede6 ret ; 2ee18 -Function2ee18: ; 2ee18 - ld a, [InLinkBattle] +ShowLinkBattleParticipants: ; 2ee18 +; If we're not in a communications room, +; we don't need to be here. + ld a, [wLinkMode] and a ret z - callba Function2c1b2 + + callba _ShowLinkBattleParticipants ld c, 150 call DelayFrames call ClearTileMap @@ -34127,27 +34171,28 @@ Function2ee18: ; 2ee18 ; 2ee2f -Function2ee2f: ; 2ee2f +FindFirstAliveMon: ; 2ee2f xor a ld [$ffde], a call DelayFrame ld b, 6 ld hl, PartyMon1HP ld de, PartyMon2 - PartyMon1 - 1 -.asm_2ee3d + +.loop ld a, [hli] or [hl] - jr nz, .asm_2ee45 + jr nz, .okay add hl, de dec b - jr nz, .asm_2ee3d + jr nz, .loop -.asm_2ee45 +.okay ld de, PartyMon1Level - PartyMon1HP add hl, de ld a, [hl] ld [BattleMonLevel], a - predef Function8c20f + predef Predef_StartBattle callba Function3ed9f ld a, 1 ld [hBGMapMode], a @@ -34239,7 +34284,7 @@ PlayBattleMusic: ; 2ee6c jr .done .othertrainer - ld a, [InLinkBattle] + ld a, [wLinkMode] and a jr nz, .johtotrainer @@ -34268,7 +34313,7 @@ PlayBattleMusic: ; 2ee6c ClearBattleRAM: ; 2ef18 xor a ld [wd0ec], a - ld [wd0ee], a + ld [wBattleResult], a ld hl, wd0d8 rept 3 @@ -34307,7 +34352,7 @@ endr callab ResetEnemyStatLevels - call Function1fbf + call ResetTextRelatedRAM ld hl, hBGMapAddress xor a @@ -34402,7 +34447,7 @@ GetTrainerClassName: ; 3952d ld [CurSpecies], a ld a, TRAINER_NAME - ld [wcf61], a + ld [wNamedObjectTypeBuffer], a call GetName ld de, StringBuffer1 ret @@ -34418,7 +34463,7 @@ GetTrainerClassName: ; 3952d Function39550: ; 39550 ld hl, wd26b - ld a, [InLinkBattle] + ld a, [wLinkMode] and a jr nz, .ok @@ -34429,12 +34474,12 @@ Function39550: ; 39550 ld [CurSpecies], a ld a, TRAINER_NAME - ld [wcf61], a + ld [wNamedObjectTypeBuffer], a call GetName ld hl, StringBuffer1 .ok - ld bc, $000d + ld bc, TRAINER_CLASS_NAME_LENGTH ld de, OTName push de call CopyBytes @@ -34449,7 +34494,7 @@ Function3957b: ; 3957b ld a, [TrainerClass] dec a ld hl, TrainerClassAttributes - ld bc, 7 + ld bc, NUM_TRAINER_ATTRIBUTES call AddNTimes ld de, wc650 ld a, [hli] @@ -34470,7 +34515,7 @@ ReadTrainerParty: ; 39771 bit 0, a ret nz - ld a, [InLinkBattle] + ld a, [wLinkMode] and a ret nz @@ -34902,7 +34947,7 @@ Function41a7f: ; 41a7f ld [hl], $3b inc hl ld bc, $0013 - ld a, $7f + ld a, " " call ByteFill callba Function4424d call EnableLCD @@ -35024,7 +35069,7 @@ endr cp EVOLVE_TRADE jr z, .trade - ld a, [InLinkBattle] + ld a, [wLinkMode] and a jp nz, .asm_423f9 @@ -35101,7 +35146,7 @@ endr .trade - ld a, [InLinkBattle] + ld a, [wLinkMode] and a jp z, .asm_423f9 @@ -35113,8 +35158,8 @@ endr inc a jr z, .asm_422fd - ld a, [InLinkBattle] - cp $1 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE jp z, .asm_423fa ld a, [TempMonItem] @@ -35136,7 +35181,7 @@ endr ld a, [wd1e9] and a jp z, .asm_423fa - ld a, [InLinkBattle] + ld a, [wLinkMode] and a jp nz, .asm_423fa jr .asm_422fd @@ -35203,7 +35248,7 @@ endr push hl ld hl, UnknownText_0x42478 call PrintTextBoxText - callba Function106094 + callba MobileFn_106094 ld de, MUSIC_NONE call PlayMusic @@ -35297,10 +35342,10 @@ Function423ff: ; 423ff pop de pop bc pop hl - ld a, [InLinkBattle] + ld a, [wLinkMode] and a ret nz - ld a, [IsInBattle] + ld a, [wBattleMode] and a ret nz ld a, [wd268] @@ -35646,11 +35691,11 @@ AIChooseMove: ; 440ce ; Pick the move with the lowest score. ; Wildmons attack at random. - ld a, [IsInBattle] + ld a, [wBattleMode] dec a ret z - ld a, [InLinkBattle] + ld a, [wLinkMode] and a ret nz @@ -36000,7 +36045,7 @@ endr lb bc, 2, 36 call PrintNum hlcoord 14, 7 - ld [hl], $5e + ld [hl], "<ROCKET>" pop af pop hl @@ -36015,7 +36060,7 @@ endr ld e, h ld a, e or d - jr z, .asm_442cd + jr z, .skip push de ld hl, [sp+$0] ld d, h @@ -36025,8 +36070,8 @@ endr call PrintNum pop de -.asm_442cd - ld bc, $0512 +.skip + lb bc, 5, SCREEN_WIDTH - 2 hlcoord 2, 11 call ClearBox hlcoord 1, 10 @@ -36034,13 +36079,13 @@ endr ld a, $61 call ByteFill hlcoord 1, 9 - ld [hl], $55 + ld [hl], "<CONT>" inc hl - ld [hl], $55 + ld [hl], "<CONT>" hlcoord 1, 10 - ld [hl], $56 + ld [hl], "<......>" inc hl - ld [hl], $57 + ld [hl], "<DONE>" pop de inc de pop af @@ -36053,7 +36098,7 @@ endr ret z push bc push de - ld bc, $0512 + lb bc, 5, SCREEN_WIDTH - 2 hlcoord 2, 11 call ClearBox hlcoord 1, 10 @@ -36061,13 +36106,13 @@ endr ld a, $61 call ByteFill hlcoord 1, 9 - ld [hl], $55 + ld [hl], "<CONT>" inc hl - ld [hl], $55 + ld [hl], "<CONT>" hlcoord 1, 10 - ld [hl], $56 + ld [hl], "<......>" inc hl - ld [hl], $58 + ld [hl], "<PROMPT>" pop de inc de pop af @@ -36125,25 +36170,25 @@ Function44355: ; 44355 push hl ld h, d ld l, e -.asm_4435b +.loop1 ld a, b call GetFarByte inc hl - cp $50 - jr nz, .asm_4435b + cp "@" + jr nz, .loop1 rept 4 inc hl endr dec c - jr z, .asm_44374 -.asm_4436b + jr z, .done +.loop2 ld a, b call GetFarByte inc hl - cp $50 - jr nz, .asm_4436b + cp "@" + jr nz, .loop2 -.asm_44374 +.done ld d, h ld e, l pop hl @@ -36164,23 +36209,23 @@ Function4456e: ; 4456e call Function44648 cp $a jr nc, .asm_445be - ld bc, $002f - ld hl, s0_a834 + 1 + ld bc, PartyMon1StatsEnd - PartyMon1Item + ld hl, s0_a835 call AddNTimes ld d, h ld e, l ld a, [CurPartyMon] - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item ld hl, s0_a600 call AddNTimes push hl ld a, BANK(s0_a834) call GetSRAMBank - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call CopyBytes pop hl xor a - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call ByteFill ld a, PartyMon1Item - PartyMon1 call GetPartyParamLocation @@ -36201,42 +36246,42 @@ Function445c0: ; 445c0 (11:45c0) call GetSRAMBank ld a, b push bc - ld hl, s0_a834 + 1 - ld bc, $2f + ld hl, s0_a835 + ld bc, PartyMon1StatsEnd - PartyMon1Item call AddNTimes push hl add hl, bc pop de pop bc -.asm_445d4 +.loop ld a, b cp $9 - jr z, .asm_445e4 + jr z, .done push bc - ld bc, $2f + ld bc, PartyMon1StatsEnd - PartyMon1Item call CopyBytes pop bc inc b - jr .asm_445d4 -.asm_445e4 + jr .loop +.done ld h, d ld l, e xor a - ld bc, $2f + ld bc, PartyMon1StatsEnd - PartyMon1Item call ByteFill ld hl, s0_a834 dec [hl] jp CloseSRAM ; 445f4 (11:45f4) -Function445f4: ; 445f4 +ReadMailMessage: ; 445f4 ld a, b - ld hl, s0_a834 + 1 - ld bc, $2f + ld hl, s0_a835 + ld bc, PartyMon1StatsEnd - PartyMon1Item call AddNTimes ld d, h ld e, l - callba Functionb9237 + callba ReadAnyMail ret Function44607: ; 44607 @@ -36244,22 +36289,22 @@ Function44607: ; 44607 call GetSRAMBank push bc ld a, b - ld bc, $2f - ld hl, s0_a834 + 1 + ld bc, PartyMon1StatsEnd - PartyMon1Item + ld hl, s0_a835 call AddNTimes push hl ld a, [CurPartyMon] - ld bc, $2f + ld bc, PartyMon1StatsEnd - PartyMon1Item ld hl, s0_a600 call AddNTimes ld d, h ld e, l pop hl push hl - ld bc, $2f + ld bc, PartyMon1StatsEnd - PartyMon1Item call CopyBytes pop hl - ld de, $2e + ld de, PartyMon1StatsEnd - PartyMon1Moves add hl, de ld d, [hl] ld a, [CurPartyMon] @@ -36298,7 +36343,7 @@ Function44654:: ; 44654 call GetSRAMBank ld a, [CurPartyMon] ld hl, s0_a600 - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call AddNTimes ld d, h ld e, l @@ -36312,7 +36357,7 @@ Function44654:: ; 44654 ld c, a ld a, b call GetFarByte - cp $50 + cp "@" jr z, .asm_446ab cp c ld a, $0 @@ -36509,7 +36554,7 @@ InitMail: ; 0x447b9 Function447da: ; 0x447da dec a - ld hl, s0_a834 + 1 + $21 + ld hl, s0_a835 + $21 ld bc, $002f call AddNTimes ld a, BANK(s0_a834) @@ -36547,7 +36592,7 @@ Function44806: ; 0x44806 call Function352f call UpdateSprites ld a, [wd0f1] - ld [wcf88], a + ld [wPocketCursorBuffer], a ld a, [OBPals + 8 * 6] ld [wd0e4], a call Function350c @@ -36592,7 +36637,7 @@ Function4484a: ; 0x4484a ld a, [MenuSelection] dec a ld b, a - call Function445f4 + call ReadMailMessage jp Function2b3c ; 0x44877 @@ -36639,7 +36684,7 @@ Function4484a: ; 0x4484a ld a, BANK(s0_a834) call GetSRAMBank pop af - ld hl, s0_a834 + 1 + $2e + ld hl, s0_a835 + $2e ld bc, $002f call AddNTimes ld a, [hl] @@ -36719,7 +36764,7 @@ MenuData4494c: ; 0x4494c db 4, 0 ; rows/columns? db 1 ; horizontal spacing? dbw 0,wd0f2 ; text pointer - dbw BANK(Function447fb), Function447fb + dba Function447fb dbw 0,0 dbw 0,0 @@ -36753,6 +36798,7 @@ Function48000: ; 48000 ld [wd478], a ld [DefaultFlypoint], a ld [wd003], a + ; could have done "ld a, [wd479] \ and -4", saved four operations ld a, [wd479] res 0, a ld [wd479], a @@ -36787,11 +36833,11 @@ Function4802f: ; 4802f (12:402f) call Function486bf call Functione5f ld de, GFX_488c3 - ld hl, $9100 + ld hl, VTiles2 tile $10 lb bc, BANK(GFX_488c3), 1 call Request1bpp ld de, GFX_488cb - ld hl, $9110 + ld hl, VTiles2 tile $11 lb bc, BANK(GFX_488cb), 1 call Request1bpp call Function4a3a7 @@ -37065,7 +37111,7 @@ asm_4828d: ; 4828d (12:428d) call WaitBGMap ld a, [PlayerGender] inc a - ld [wcf88], a + ld [wPocketCursorBuffer], a call Function1bc9 call PlayClickSFX call ExitMenu @@ -37109,7 +37155,7 @@ Function48304: ; 48304 (12:4304) ld b, $c ld c, $8 call Function48cdc - ld a, [wcf88] + ld a, [wPocketCursorBuffer] ld b, a ld a, [wd0e4] ld c, a @@ -37120,7 +37166,7 @@ Function48304: ; 48304 (12:4304) jr c, .asm_4833f sub $29 inc a - ld [wcf88], a + ld [wPocketCursorBuffer], a ld a, $29 .asm_4833f ld [wd0e4], a @@ -37133,7 +37179,7 @@ Function48304: ; 48304 (12:4304) ld d, a pop bc ld a, b - ld [wcf88], a + ld [wPocketCursorBuffer], a ld a, c ld [wd0e4], a ld a, d @@ -37182,7 +37228,7 @@ Function48383: ; 48383 (12:4383) .asm_483af ld hl, wcfa9 ld a, [hl] - ld [wcf88], a + ld [wPocketCursorBuffer], a scf .asm_483b7 pop bc @@ -37580,10 +37626,10 @@ Function4876f: ; 4876f (12:476f) call PlaceString ld hl, MenuDataHeader_0x48509 call LoadMenuDataHeader - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a hlcoord 10, 5 ld b, $1 ld c, $8 @@ -37614,7 +37660,7 @@ Function4876f: ; 4876f (12:476f) ld a, [wd473] push af .asm_487c6 - call Functiona57 + call JoyTextDelay call Function4880e jr nc, .asm_487c6 ld a, $1 @@ -37629,7 +37675,7 @@ Function4876f: ; 4876f (12:476f) hlcoord 11, 6 call Function487ec pop af - ld [$ffaa], a + ld [hInMenu], a jp Function4840c Function487ec: ; 487ec (12:47ec) @@ -37667,7 +37713,7 @@ Function4880e: ; 4880e (12:480e) ld a, [hJoyPressed] ; $ff00+$a7 and B_BUTTON jp nz, Function488b4 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .asm_48843 @@ -37783,10 +37829,10 @@ Function488d3: ; 488d3 (12:48d3) jp c, Function4840c ld hl, MenuDataHeader_0x4850e call LoadMenuDataHeader - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a hlcoord 10, 9 ld b, $1 ld c, $8 @@ -37812,7 +37858,7 @@ Function488d3: ; 488d3 (12:48d3) asm_48922: ; 48922 (12:4922) push bc - call Functiona57 + call JoyTextDelay ld a, [hJoyDown] ; $ff00+$a8 and a jp z, Function4896e @@ -37821,7 +37867,7 @@ asm_48922: ; 48922 (12:4922) bit 1, a jp nz, Function4896e ld a, [DefaultFlypoint] - and $cf + and %11001111 res 7, a ld [DefaultFlypoint], a pop bc @@ -37854,7 +37900,7 @@ Function4895a: ; 4895a jr asm_48972 .asm_48965 - ld a, [$ffa9] + ld a, [hJoyLast] and a jr z, asm_48972 @@ -37931,7 +37977,7 @@ asm_48972: ; 48972 (12:4972) ld bc, $108 call ClearBox pop af - ld [$ffaa], a + ld [hInMenu], a jp Function4840c Function489ea: ; 489ea (12:49ea) @@ -38108,18 +38154,18 @@ Function48ab5: ; 48ab5 (12:4ab5) dec a jr .asm_48b25 .asm_48b2c - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $40 + and D_UP jr nz, .asm_48b8d ld a, [hl] - and $80 + and D_DOWN jr nz, .asm_48b55 ld a, [hl] - and $20 + and D_LEFT jp nz, Function48bd7 ld a, [hl] - and $10 + and D_RIGHT jr nz, .asm_48b9d hlcoord 11, 10 call Function489ea @@ -38593,7 +38639,7 @@ Function48d94: ; 48d94 (12:4d94) ld [hl], a ret -AreYouABoyOrAreYouAGirl_Menu: ; 48dcb (12:4dcb) +InitGender: ; 48dcb (12:4dcb) call Function48e14 call Function48e47 call Function48e64 @@ -38601,7 +38647,7 @@ AreYouABoyOrAreYouAGirl_Menu: ; 48dcb (12:4dcb) call SetPalettes ld hl, TextJump_AreYouABoyOrAreYouAGirl call PrintText - ld hl, MenuDataHeader_BoyGirl + ld hl, .MenuDataHeader call LoadMenuDataHeader call Function3200 call InterpretMenu2 @@ -38609,20 +38655,20 @@ AreYouABoyOrAreYouAGirl_Menu: ; 48dcb (12:4dcb) ld a, [wcfa9] dec a ld [PlayerGender], a - ld c, $a + ld c, 10 call DelayFrames ret ; 48dfc (12:4dfc) -MenuDataHeader_BoyGirl: ; 0x48dfc +.MenuDataHeader: ; 0x48dfc db $40 ; flags db 04, 06 ; start coords db 09, 12 ; end coords - dw MenuData2_BoyGirl + dw .MenuData2 db 1 ; default option ; 0x48e04 -MenuData2_BoyGirl: ; 0x48e04 +.MenuData2: ; 0x48e04 db $a1 ; flags db 2 ; items db "Boy@" @@ -38648,11 +38694,11 @@ Function48e14: ; 48e14 (12:4e14) call Function48000 call Functione5f hlcoord 0, 0 - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, $0 call ByteFill hlcoord 0, 0, AttrMap - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH xor a call ByteFill ret @@ -38676,7 +38722,7 @@ Palette_48e5c: ; 48e5c Function48e64: ; 48e64 (12:4e64) ld de, GFX_48e71 - ld hl, $9000 + ld hl, VTiles2 tile $00 lb bc, BANK(GFX_48e71), 1 call Get2bpp ret @@ -38686,7 +38732,7 @@ GFX_48e71: ; 48e71 INCBIN "gfx/unknown/048e71.2bpp" -Function48e81: ; 48e81 +DrawKrisPackGFX: ; 48e81 ld hl, PackFGFXPointers rept 2 add hl, de @@ -38694,7 +38740,7 @@ endr ld a, [hli] ld e, a ld d, [hl] - ld hl, $9500 + ld hl, VTiles2 tile $50 lb bc, BANK(PackFGFX), 15 call Request2bpp ret @@ -38719,7 +38765,7 @@ Function4925b: ; 4925b ld b, $14 call GetSGBLayout xor a - ld [wd142], a + ld [wItemAttributeParamBuffer], a call Function492a5 ld [wd265], a ld [wd262], a @@ -38871,7 +38917,7 @@ Function49336: ; 49336 Function49346: ; 49346 (12:5346) hlcoord 0, 0, AttrMap - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH xor a call ByteFill ret @@ -38929,7 +38975,7 @@ Function49384: ; 49384 (12:5384) ld a, $3 call Function49336 hlcoord 0, 12, AttrMap - ld bc, $78 + ld bc, 6 * SCREEN_WIDTH ld a, $7 call ByteFill ret @@ -39001,7 +39047,7 @@ Function4942f: ; 4942f xor a call ByteFill hlcoord 0, 14, AttrMap - ld bc, $0050 + ld bc, 4 * SCREEN_WIDTH ld a, $7 call ByteFill ld a, [DefaultFlypoint] @@ -39344,8 +39390,8 @@ Function49797: ; 49797 ld a, $4 call Function49336 ld a, $3 - ldcoord 0, 1, AttrMap - ldcoord 0, 14, AttrMap + ldcoord_a 0, 1, AttrMap + ldcoord_a 0, 14, AttrMap hlcoord 2, 0, AttrMap ld bc, $0812 ld a, $5 @@ -39385,7 +39431,7 @@ endr ld [hl], a hlcoord 2, 17, AttrMap ld a, $3 - ld bc, $0006 + ld bc, 6 call ByteFill ret ; 49811 @@ -39471,7 +39517,7 @@ Special_CelebiShrineEvent: ; 4989a ld [wcf64], a ld d, $0 .loop - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .done push bc @@ -39522,11 +39568,11 @@ LoadCelebiGFX: ; 49912 lb bc, BANK(SpecialCelebiLeafGFX), 4 call Request2bpp ld de, SpecialCelebiGFX - ld hl, $8840 + ld hl, VTiles1 tile $04 lb bc, BANK(SpecialCelebiGFX), $10 call Request2bpp xor a - ld [wcf63], a + ld [wJumptableIndex], a ret ; 49935 @@ -39539,7 +39585,7 @@ Function49935: ; 49935 ret .asm_4993e - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret ; 49944 @@ -39787,7 +39833,7 @@ Function49bf3: ; 49bf3 ; 49bf9 Function49bf9: ; 49bf9 - ld a, [wd0ee] + ld a, [wBattleResult] bit 6, a jr z, .asm_49c07 ld a, $1 @@ -40074,7 +40120,7 @@ Function49e3d: ; 49e3d decoord 4, 16 ld a, [hHours] ld c, a - callba Function90b3e + callba PrintHour ld [hl], ":" inc hl ld de, hMinutes @@ -40137,7 +40183,7 @@ Function49ed0: ; 49ed0 call ClearTileMap call Functione5f call Functione51 - call Function1fbf + call ResetTextRelatedRAM ret ; 49ee0 @@ -40617,7 +40663,7 @@ Function4a28a: ; 4a28a (12:628a) call CloseSRAM ld hl, UnknownText_0x4a35d call PrintText - call Functiona36 + call JoyWaitAorB .asm_4a338 call ExitMenu .asm_4a33b @@ -40769,17 +40815,17 @@ Function4a3aa: ; 4a3aa ; 4a449 (12:6449) Function4a449: ; 4a449 - ld bc, $003c + ld bc, 3 * SCREEN_WIDTH ld a, $0 hlcoord 0, 0 call ByteFill - ld bc, $0028 + ld bc, 2 * SCREEN_WIDTH ld a, $1 call ByteFill - ld bc, $0028 + ld bc, 2 * SCREEN_WIDTH ld a, $0 call ByteFill - ld bc, $0028 + ld bc, 2 * SCREEN_WIDTH ld a, $1 call ByteFill ld bc, SCREEN_WIDTH @@ -40789,14 +40835,14 @@ Function4a449: ; 4a449 ld a, $3 call ByteFill ld bc, SCREEN_WIDTH - ld a, $7f + ld a, " " call ByteFill ret ; 4a485 Function4a485: ; 4a485 (12:6485) ld de, GFX_49c0c - ld hl, $9000 + ld hl, VTiles2 tile $00 lb bc, BANK(GFX_49c0c), $d call Get2bpp ret @@ -41308,11 +41354,11 @@ BoxAddressTable1: ; 4a810 dbw BANK(sBox7), sBox7 dbw BANK(sBox8), sBox8 dbw BANK(sBox9), sBox9 - dbw BANK(sBox10), sBox10 - dbw BANK(sBox11), sBox11 - dbw BANK(sBox12), sBox12 - dbw BANK(sBox13), sBox13 - dbw BANK(sBox14), sBox14 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 ; 4a83a UpdateOTPointer: ; 0x4a83a @@ -41470,11 +41516,11 @@ BoxAddressTable2: ; 4a8f4 dbw BANK(sBox7), sBox7 dbw BANK(sBox8), sBox8 dbw BANK(sBox9), sBox9 - dbw BANK(sBox10), sBox10 - dbw BANK(sBox11), sBox11 - dbw BANK(sBox12), sBox12 - dbw BANK(sBox13), sBox13 - dbw BANK(sBox14), sBox14 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 ; 4a91e Function4a91e: ; 4a91e @@ -41513,9 +41559,9 @@ Function4a927: ; 4a927 Function4a94e: ; 4a94e call FadeToMenu - ld a, $ff + ld a, -1 ld hl, DefaultFlypoint - ld bc, $0003 + ld bc, 3 call ByteFill xor a ld [wd018], a @@ -41549,8 +41595,8 @@ Function4a94e: ; 4a94e .asm_4a990 call Function2b3c ld hl, DefaultFlypoint - ld a, $ff - ld bc, $0003 + ld a, -1 + ld bc, 3 call ByteFill scf jr .asm_4a9af @@ -41767,15 +41813,15 @@ Function4aad3: ; 4aad3 ld c, a xor a - ld [$ffb0], a + ld [hConnectedMapWidth], a .loop push bc push hl ld e, 0 callba Function8e83f - ld a, [$ffb0] + ld a, [hConnectedMapWidth] inc a - ld [$ffb0], a + ld [hConnectedMapWidth], a pop hl pop bc dec c @@ -42062,20 +42108,20 @@ Function4acaa: ; 4acaa ld a, $2 ld [wcf92], a ld a, $c - ld [wcf82], a + ld [wMenuBorderTopCoord], a jr .asm_4accc .asm_4acc2 ld a, $4 ld [wcf92], a ld a, $8 - ld [wcf82], a + ld [wMenuBorderTopCoord], a .asm_4accc ld a, $b - ld [wcf83], a + ld [wMenuBorderLeftCoord], a ld a, $1 - ld [wcf88], a + ld [wPocketCursorBuffer], a call Function1c10 ld hl, wcfa5 set 6, [hl] @@ -42283,14 +42329,14 @@ Function4ae1f: ; 4ae1f call CopyMenuDataHeader pop bc ld a, b - ld [wcf83], a + ld [wMenuBorderLeftCoord], a add $5 - ld [wcf85], a + ld [wMenuBorderRightCoord], a ld a, c - ld [wcf82], a + ld [wMenuBorderTopCoord], a add $4 - ld [wcf84], a - call Function1c00 + ld [wMenuBorderBottomCoord], a + call BackUpTiles call InterpretMenu2 push af ld c, $f @@ -42428,59 +42474,59 @@ TileCollisionTable:: ; 4ce1f ; 11 talkable water ; 1f talkable wall - db $00, $00, $00, $00, $00, $00, $00, $0f - db $00, $00, $00, $00, $00, $00, $00, $0f - db $00, $00, $1f, $00, $00, $1f, $00, $00 - db $00, $00, $1f, $00, $00, $1f, $00, $00 - db $01, $01, $11, $00, $11, $01, $01, $0f - db $01, $01, $11, $00, $11, $01, $01, $0f - db $01, $01, $01, $01, $01, $01, $01, $01 - db $01, $01, $01, $01, $01, $01, $01, $01 - - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $0f, $00, $00, $00, $00, $00 - db $00, $00, $0f, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - - db $0f, $0f, $0f, $0f, $0f, $00, $00, $00 - db $0f, $0f, $0f, $0f, $0f, $00, $00, $00 - db $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - - db $01, $01, $01, $01, $01, $01, $01, $01 - db $01, $01, $01, $01, $01, $01, $01, $01 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $0f + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE + db NULL + LANDTILE, NULL + LANDTILE, TALK + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, TALK + WATRTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, TALK + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, TALK + WATRTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + WALLTILE, NULL + WALLTILE, TALK + WALLTILE, NULL + LANDTILE, TALK + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WATRTILE + db NULL + WALLTILE, NULL + WALLTILE, TALK + WALLTILE, NULL + LANDTILE, TALK + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WATRTILE + db NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE + db NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE + + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + + db NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE + db NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE, NULL + WATRTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + + db NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE + db NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE, NULL + WALLTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE + db NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + LANDTILE, NULL + WATRTILE ; 4cf1f -Function4cf1f: ; 4cf1f +EmptyAllSRAMBanks: ; 4cf1f ld a, $0 - call Function4cf34 + call .EmptyBank ld a, $1 - call Function4cf34 + call .EmptyBank ld a, $2 - call Function4cf34 + call .EmptyBank ld a, $3 - call Function4cf34 + call .EmptyBank ret ; 4cf34 -Function4cf34: ; 4cf34 +.EmptyBank: ; 4cf34 call GetSRAMBank - ld hl, $a000 - ld bc, $2000 + ld hl, SRAM_Begin + ld bc, SRAM_End - SRAM_Begin xor a call ByteFill call CloseSRAM @@ -42492,6 +42538,8 @@ Function4cf45: ; 4cf45 (13:4f45) ld a, [hCGB] ; $ff00+$e6 and a jp z, WaitBGMap + +; The following is a modified version of Function3246. ld a, [hBGMapMode] ; $ff00+$d4 push af xor a @@ -42500,24 +42548,26 @@ Function4cf45: ; 4cf45 (13:4f45) push af xor a ld [$ffde], a -.asm_4cf57 +.WaitLY ld a, [rLY] ; $ff00+$44 cp $60 - jr c, .asm_4cf57 + jr c, .WaitLY + di - ld a, $1 + ld a, 1 ; BANK(VBGMap2) ld [rVBK], a ; $ff00+$4f hlcoord 0, 0, AttrMap call Function4cf80 - ld a, $0 + ld a, 0 ; BANK(VBGMap0) ld [rVBK], a ; $ff00+$4f hlcoord 0, 0 call Function4cf80 -.asm_4cf72 +.WaitLY2 ld a, [rLY] ; $ff00+$44 cp $60 - jr c, .asm_4cf72 + jr c, .WaitLY2 ei + pop af ld [$ffde], a pop af @@ -42527,113 +42577,37 @@ Function4cf45: ; 4cf45 (13:4f45) Function4cf80: ; 4cf80 (13:4f80) ld [hSPBuffer], sp ; $ffd9 ld sp, hl - ld a, [$ffd7] + ld a, [hBGMapAddress + 1] ld h, a - ld l, $0 - ld a, $12 + ld l, 0 + ld a, SCREEN_HEIGHT ld [$ffd3], a - ld b, $2 - ld c, $41 -.asm_4cf91 - pop de -.asm_4cf92 - ld a, [$ff00+c] - and b - jr nz, .asm_4cf92 - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4cf9b - ld a, [$ff00+c] - and b - jr nz, .asm_4cf9b - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4cfa4 - ld a, [$ff00+c] - and b - jr nz, .asm_4cfa4 - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4cfad - ld a, [$ff00+c] - and b - jr nz, .asm_4cfad - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4cfb6 - ld a, [$ff00+c] - and b - jr nz, .asm_4cfb6 - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4cfbf - ld a, [$ff00+c] - and b - jr nz, .asm_4cfbf - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4cfc8 - ld a, [$ff00+c] - and b - jr nz, .asm_4cfc8 - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4cfd1 - ld a, [$ff00+c] - and b - jr nz, .asm_4cfd1 - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4cfda - ld a, [$ff00+c] - and b - jr nz, .asm_4cfda - ld [hl], e - inc l - ld [hl], d - inc l + ld b, 1 << 1 + ld c, rSTAT % $100 + +.loop +rept SCREEN_WIDTH / 2 pop de -.asm_4cfe3 +.loop\@ ld a, [$ff00+c] and b - jr nz, .asm_4cfe3 + jr nz, .loop\@ ld [hl], e inc l ld [hl], d inc l - ld de, $c +endr + + ld de, $20 - SCREEN_WIDTH add hl, de ld a, [$ffd3] dec a ld [$ffd3], a - jr nz, .asm_4cf91 + jr nz, .loop + ld a, [hSPBuffer] ; $ff00+$d9 ld l, a - ld a, [$ffda] + ld a, [hSPBuffer + 1] ld h, a ld sp, hl ret @@ -42648,15 +42622,15 @@ Function4cffe:: ; 4cffe ld c, a call CloseSRAM ld a, b - cp $63 - jr nz, .asm_4d01b + cp 99 + jr nz, .ok ld a, c - cp $7f - jr nz, .asm_4d01b + cp " " + jr nz, .ok ld c, $1 ret -.asm_4d01b +.ok ld c, $0 ret ; 4d01e @@ -42711,6 +42685,8 @@ Function4d188: ; 4d188 ld a, [wc2ce] cp $0 jp z, WaitBGMap + +; What follows is a modified version of Function3246. ld a, [hBGMapMode] push af xor a @@ -42719,24 +42695,26 @@ Function4d188: ; 4d188 push af xor a ld [$ffde], a -.asm_4d1a2 +.wait ld a, [rLY] cp $8f - jr c, .asm_4d1a2 + jr c, .wait + di - ld a, $1 + ld a, 1 ; BANK(VBGMap2) ld [rVBK], a hlcoord 0, 0, AttrMap call Function4d1cb - ld a, $0 + ld a, 0 ; BANK(VBGMap0) ld [rVBK], a hlcoord 0, 0 call Function4d1cb -.asm_4d1bd +.wait2 ld a, [rLY] cp $8f - jr c, .asm_4d1bd + jr c, .wait2 ei + pop af ld [$ffde], a pop af @@ -42747,113 +42725,37 @@ Function4d188: ; 4d188 Function4d1cb: ; 4d1cb ld [hSPBuffer], sp ld sp, hl - ld a, [$ffd7] + ld a, [hBGMapAddress + 1] ld h, a - ld l, $0 - ld a, $12 + ld l, 0 + ld a, SCREEN_HEIGHT ld [$ffd3], a - ld b, $2 - ld c, $41 -.asm_4d1dc - pop de -.asm_4d1dd - ld a, [$ff00+c] - and b - jr nz, .asm_4d1dd - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4d1e6 - ld a, [$ff00+c] - and b - jr nz, .asm_4d1e6 - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4d1ef - ld a, [$ff00+c] - and b - jr nz, .asm_4d1ef - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4d1f8 - ld a, [$ff00+c] - and b - jr nz, .asm_4d1f8 - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4d201 - ld a, [$ff00+c] - and b - jr nz, .asm_4d201 - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4d20a - ld a, [$ff00+c] - and b - jr nz, .asm_4d20a - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4d213 - ld a, [$ff00+c] - and b - jr nz, .asm_4d213 - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4d21c - ld a, [$ff00+c] - and b - jr nz, .asm_4d21c - ld [hl], e - inc l - ld [hl], d - inc l - pop de -.asm_4d225 - ld a, [$ff00+c] - and b - jr nz, .asm_4d225 - ld [hl], e - inc l - ld [hl], d - inc l + ld b, 1 << 1 ; not in v/hblank + ld c, rSTAT % $100 + +.loop +rept SCREEN_WIDTH / 2 pop de -.asm_4d22e +.loop\@ ld a, [$ff00+c] and b - jr nz, .asm_4d22e + jr nz, .loop\@ ld [hl], e inc l ld [hl], d inc l - ld de, $000c +endr + + ld de, $20 - SCREEN_WIDTH add hl, de ld a, [$ffd3] dec a ld [$ffd3], a - jr nz, .asm_4d1dc + jr nz, .loop + ld a, [hSPBuffer] ld l, a - ld a, [$ffda] + ld a, [hSPBuffer + 1] ld h, a ld sp, hl ret @@ -42910,19 +42812,19 @@ rept 2 inc c endr ld a, $7 -.asm_4d36e +.row push bc push hl -.asm_4d370 +.col ld [hli], a dec c - jr nz, .asm_4d370 + jr nz, .col pop hl ld de, SCREEN_WIDTH add hl, de pop bc dec b - jr nz, .asm_4d36e + jr nz, .row ret ; 4d37e @@ -42937,36 +42839,36 @@ Function4d37e: ; 4d37e pop hl ld de, SCREEN_WIDTH add hl, de -.asm_4d38d +.loop push hl - ld a, $79 + ld a, "┌" ld [hli], a - ld a, $7f + ld a, " " call Function4d3ab - ld [hl], $7a + ld [hl], "─" pop hl ld de, SCREEN_WIDTH add hl, de dec b - jr nz, .asm_4d38d - ld a, $7b + jr nz, .loop + ld a, "┐" ld [hli], a - ld a, $7c + ld a, "│" call Function4d3ab - ld [hl], $7d + ld [hl], "└" ret ; 4d3ab Function4d3ab: ; 4d3ab ld d, c -.asm_4d3ac +.loop ld [hli], a dec d - jr nz, .asm_4d3ac + jr nz, .loop ret ; 4d3b1 -Function4d3b1: ; 4d3b1 +_ResetClock: ; 4d3b1 callba Function8000 ld b, $8 call GetSGBLayout @@ -42974,129 +42876,129 @@ Function4d3b1: ; 4d3b1 call Functione5f ld de, MUSIC_MAIN_MENU call PlayMusic - ld hl, UnknownText_0x4d408 + ld hl, .text_askreset call PrintText - ld hl, MenuDataHeader_0x4d40d + ld hl, .NoYes_MenuDataHeader call CopyMenuDataHeader call InterpretMenu2 ret c ld a, [wcfa9] cp $1 ret z - call Function4d41e - jr c, .asm_4d3f7 + call ClockResetPassword + jr c, .wrongpassword ld a, BANK(s0_ac60) call GetSRAMBank ld a, $80 ld [s0_ac60], a call CloseSRAM - ld hl, UnknownText_0x4d3fe + ld hl, .text_okay call PrintText ret -.asm_4d3f7 - ld hl, UnknownText_0x4d403 +.wrongpassword + ld hl, .text_wrong call PrintText ret ; 4d3fe -UnknownText_0x4d3fe: ; 0x4d3fe +.text_okay: ; 0x4d3fe ; Password OK. Select CONTINUE & reset settings. text_jump UnknownText_0x1c55db db "@" ; 0x4d403 -UnknownText_0x4d403: ; 0x4d403 +.text_wrong: ; 0x4d403 ; Wrong password! text_jump UnknownText_0x1c560b db "@" ; 0x4d408 -UnknownText_0x4d408: ; 0x4d408 +.text_askreset: ; 0x4d408 ; Reset the clock? text_jump UnknownText_0x1c561c db "@" ; 0x4d40d -MenuDataHeader_0x4d40d: ; 0x4d40d +.NoYes_MenuDataHeader: ; 0x4d40d db $00 ; flags db 07, 14 ; start coords db 11, 19 ; end coords - dw MenuData2_0x4d415 + dw .NoYes_MenuData2 db 1 ; default option ; 0x4d415 -MenuData2_0x4d415: ; 0x4d415 +.NoYes_MenuData2: ; 0x4d415 db $c0 ; flags db 2 ; items db "NO@" db "YES@" ; 0x4d41e -Function4d41e: ; 4d41e - call Function4d50f +ClockResetPassword: ; 4d41e + call .CalculatePassword push de ld hl, StringBuffer2 - ld bc, $0005 + ld bc, 5 xor a call ByteFill ld a, $4 ld [StringBuffer2 + 5], a - ld hl, UnknownText_0x4d463 + ld hl, .pleaseenterpasswordtext call PrintText -.asm_4d437 - call Function4d468 -.asm_4d43a - call Functiona57 - ld a, [$ffa9] +.loop + call .updateIDdisplay +.loop2 + call JoyTextDelay + ld a, [hJoyLast] ld b, a - and $1 - jr nz, .asm_4d453 + and A_BUTTON + jr nz, .confirm ld a, b - and $f0 - jr z, .asm_4d43a - call Function4d490 + and D_PAD + jr z, .loop2 + call .dpadinput ld c, $3 call DelayFrames - jr .asm_4d437 + jr .loop -.asm_4d453 - call Function4d4e0 +.confirm + call .ConvertDecIDToBytes pop de ld a, e cp l - jr nz, .asm_4d461 + jr nz, .nope ld a, d cp h - jr nz, .asm_4d461 + jr nz, .nope and a ret -.asm_4d461 +.nope scf ret ; 4d463 -UnknownText_0x4d463: ; 0x4d463 +.pleaseenterpasswordtext: ; 0x4d463 ; Please enter the password. text_jump UnknownText_0x1c562e db "@" ; 0x4d468 -Function4d468: ; 4d468 +.updateIDdisplay: ; 4d468 hlcoord 14, 15 ld de, StringBuffer2 - ld c, $5 -.asm_4d470 + ld c, 5 +.loop3 ld a, [de] - add $f6 + add "0" ld [hli], a inc de dec c - jr nz, .asm_4d470 + jr nz, .loop3 hlcoord 14, 16 - ld bc, $0005 - ld a, $7f + ld bc, 5 + ld a, " " call ByteFill hlcoord 14, 16 ld a, [StringBuffer2 + 5] @@ -43107,22 +43009,22 @@ Function4d468: ; 4d468 ret ; 4d490 -Function4d490: ; 4d490 +.dpadinput: ; 4d490 ld a, b - and $20 - jr nz, .asm_4d4a5 + and D_LEFT + jr nz, .left ld a, b - and $10 - jr nz, .asm_4d4af + and D_RIGHT + jr nz, .right ld a, b - and $40 - jr nz, .asm_4d4ba + and D_UP + jr nz, .up ld a, b - and $80 - jr nz, .asm_4d4c8 + and D_DOWN + jr nz, .down ret -.asm_4d4a5 +.left ld a, [StringBuffer2 + 5] and a ret z @@ -43130,7 +43032,7 @@ Function4d490: ; 4d490 ld [StringBuffer2 + 5], a ret -.asm_4d4af +.right ld a, [StringBuffer2 + 5] cp $4 ret z @@ -43138,34 +43040,34 @@ Function4d490: ; 4d490 ld [StringBuffer2 + 5], a ret -.asm_4d4ba - call Function4d4d5 +.up + call .getcurrentdigit ld a, [hl] - cp $9 - jr z, .asm_4d4c5 + cp 9 + jr z, .wraparound_up inc a ld [hl], a ret -.asm_4d4c5 +.wraparound_up ld [hl], $0 ret -.asm_4d4c8 - call Function4d4d5 +.down + call .getcurrentdigit ld a, [hl] and a - jr z, .asm_4d4d2 + jr z, .wraparound_down dec a ld [hl], a ret -.asm_4d4d2 - ld [hl], $9 +.wraparound_down + ld [hl], 9 ret ; 4d4d5 -Function4d4d5: ; 4d4d5 +.getcurrentdigit: ; 4d4d5 ld a, [StringBuffer2 + 5] ld e, a ld d, $0 @@ -43174,19 +43076,19 @@ Function4d4d5: ; 4d4d5 ret ; 4d4e0 -Function4d4e0: ; 4d4e0 +.ConvertDecIDToBytes: ; 4d4e0 ld hl, 0 ld de, StringBuffer2 + 4 ld bc, 1 - call Function4d501 + call .ConvertToBytes ld bc, 10 - call Function4d501 + call .ConvertToBytes ld bc, 100 - call Function4d501 + call .ConvertToBytes ld bc, 1000 - call Function4d501 + call .ConvertToBytes ld bc, 10000 -Function4d501: ; 4d501 +.ConvertToBytes: ; 4d501 ld a, [de] dec de push hl @@ -43199,25 +43101,24 @@ Function4d501: ; 4d501 ret ; 4d50f -Function4d50f: ; 4d50f +.CalculatePassword: ; 4d50f ld a, BANK(sPlayerData) call GetSRAMBank ld de, $0000 - ld hl, sPlayerData + PlayerID - wPlayerData + ld hl, sPlayerData + (PlayerID - wPlayerData) ld c, $2 - call Function4d533 - ld hl, sPlayerData + PlayerName - wPlayerData + call .ComponentFromNumber + ld hl, sPlayerData + (PlayerName - wPlayerData) ld c, $5 - call Function4d53e - ld hl, sPlayerData + Money - wPlayerData + call .ComponentFromString + ld hl, sPlayerData + (Money - wPlayerData) ld c, $3 - call Function4d533 + call .ComponentFromNumber call CloseSRAM ret ; 4d533 -Function4d533: ; 4d533 -.asm_4d533 +.ComponentFromNumber: ; 4d533 ld a, [hli] add e ld e, a @@ -43225,12 +43126,11 @@ Function4d533: ; 4d533 adc d ld d, a dec c - jr nz, .asm_4d533 + jr nz, .ComponentFromNumber ret ; 4d53e -Function4d53e: ; 4d53e -.asm_4d53e +.ComponentFromString: ; 4d53e ld a, [hli] cp "@" ret z @@ -43240,7 +43140,7 @@ Function4d53e: ; 4d53e adc d ld d, a dec c - jr nz, .asm_4d53e + jr nz, .ComponentFromString ret ; 4d54c @@ -43261,7 +43161,7 @@ Function4d54c: ; 4d54c ld a, [wcfa9] cp $1 ret z - callba Function4cf1f + callba EmptyAllSRAMBanks ret ; 4d580 @@ -43535,7 +43435,7 @@ endr ld a, [ScriptVar] and a ret z ; found nothing - callba Function1060cd + callba MobileFn_1060cd ld a, [wFoundMatchingIDInParty] and a push af @@ -43634,11 +43534,11 @@ endr dbw BANK(sBox7), sBox7 dbw BANK(sBox8), sBox8 dbw BANK(sBox9), sBox9 - dbw BANK(sBox10), sBox10 - dbw BANK(sBox11), sBox11 - dbw BANK(sBox12), sBox12 - dbw BANK(sBox13), sBox13 - dbw BANK(sBox14), sBox14 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 ; 4d9c9 .FoundPartymonText: ; 0x4d9c9 @@ -43653,7 +43553,7 @@ endr db "@" ; 0x4d9d3 -Function4d9d3: ; 4d9d3 +Special_PrintTodaysLuckyNumber: ; 4d9d3 ld hl, StringBuffer3 ld de, wLuckyIDNumber lb bc, PRINTNUM_LEADINGZEROS | 2, 5 @@ -44064,11 +43964,11 @@ RetroactivelyIgnoreEggs: ; 4dc67 Function4dc7b: ; 4dc7b (13:5c7b) - ld a, [InLinkBattle] - cp $4 + ld a, [wLinkMode] + cp LINK_MOBILE jr nz, StatsScreenInit - ld a, [IsInBattle] ; wd22d (aliases: EnemyMonEnd) + ld a, [wBattleMode] ; wd22d (aliases: EnemyMonEnd) and a jr z, StatsScreenInit jr Function4dc8f @@ -44088,7 +43988,7 @@ StatsScreenInit_gotaddress: ; 4dc94 ld [$ffde], a ; disable overworld tile animations ld a, [wc2c6] ; whether sprite is to be mirrorred push af - ld a, [wcf63] + ld a, [wJumptableIndex] ld b, a ld a, [wcf64] ld c, a @@ -44107,7 +44007,7 @@ StatsScreenInit_gotaddress: ; 4dc94 ; restore old values ld a, b - ld [wcf63], a + ld [wJumptableIndex], a ld a, c ld [wcf64], a pop af @@ -44119,19 +44019,19 @@ StatsScreenInit_gotaddress: ; 4dc94 StatsScreenMain: ; 0x4dcd2 xor a - ld [wcf63], a + ld [wJumptableIndex], a ld [wcf64], a ld a, [wcf64] and $fc or $1 ld [wcf64], a .loop ; 4dce3 - ld a, [wcf63] + ld a, [wJumptableIndex] and $7f ld hl, StatsScreenPointerTable rst JumpTable call Function4dd3a ; check for keys? - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr z, .loop ret @@ -44139,7 +44039,7 @@ StatsScreenMain: ; 0x4dcd2 StatsScreenBattle: ; 4dcf7 xor a - ld [wcf63], a + ld [wJumptableIndex], a ld [wcf64], a ld a, [wcf64] and $fc @@ -44147,14 +44047,14 @@ StatsScreenBattle: ; 4dcf7 ld [wcf64], a .asm_4dd08 callba Function100dd2 - ld a, [wcf63] + ld a, [wJumptableIndex] and $7f ld hl, StatsScreenPointerTable rst JumpTable call Function4dd3a callba Function100dfd jr c, .asm_4dd29 - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr z, .asm_4dd08 @@ -44194,14 +44094,14 @@ Function4dd3a: ; 4dd3a (13:5d3a) ret Function4dd62: ; 4dd62 (13:5d62) - ld a, [wcf63] + ld a, [wJumptableIndex] and $80 or h - ld [wcf63], a + ld [wJumptableIndex], a ret Function4dd6c: ; 4dd6c (13:5d6c) - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -44228,9 +44128,9 @@ Function4dd72: ; 4dd72 (13:5d72) EggStatsInit: ; 4dda1 call EggStatsScreen - ld a, [wcf63] + ld a, [wJumptableIndex] inc a - ld [wcf63], a + ld [wJumptableIndex], a ret ; 0x4ddac @@ -44255,9 +44155,9 @@ Function4ddc6: ; 4ddc6 (13:5dc6) call Function4dfb6 ld hl, wcf64 res 4, [hl] - ld a, [wcf63] + ld a, [wJumptableIndex] inc a - ld [wcf63], a + ld [wJumptableIndex], a ret Function4ddd6: ; 4ddd6 (13:5dd6) @@ -44273,9 +44173,9 @@ Function4ddd6: ; 4ddd6 (13:5dd6) Function4dde6: ; 4dde6 (13:5de6) call IsSFXPlaying ret nc - ld a, [wcf63] + ld a, [wJumptableIndex] inc a - ld [wcf63], a + ld [wJumptableIndex], a ret Function4ddf2: ; 4ddf2 (13:5df2) @@ -44746,7 +44646,7 @@ Function4e147: ; 4e147 (13:6147) hlcoord 0, 10 call PlaceString ld hl, TempMonMoves - ld de, wd25e + ld de, wListMoves_MoveIndicesBuffer ld bc, NUM_MOVES call CopyBytes hlcoord 8, 10 @@ -44906,7 +44806,7 @@ Function4e289: ; 4e289 (13:6289) call IsAPokemon ret c call Function4e307 - ld de, $9000 + ld de, VTiles2 tile $00 predef Function5108b hlcoord 0, 0 ld d, $0 @@ -44994,7 +44894,7 @@ Function4e307: ; 4e307 (13:6307) ld [rVBK], a ; $ff00+$4f ld de, GFX_f9204 lb bc, BANK(GFX_f9204), 1 - ld hl, $97f0 + ld hl, VTiles2 tile $7f call Get2bpp pop af ld [rVBK], a ; $ff00+$4f @@ -45109,7 +45009,7 @@ Function4e497: ; 4e497 (13:6497) ld a, $1 ld [wc2c6], a call Function4e307 - ld de, $9000 + ld de, VTiles2 tile $00 predef Function5108b pop de hlcoord 0, 0 @@ -45358,7 +45258,7 @@ _EvolutionAnimation: ; 4e607 call Function4e708 ld de, VTiles2 - ld hl, $9310 + ld hl, VTiles2 tile $31 ld bc, $0031 call Request2bpp @@ -45541,10 +45441,10 @@ Function4e779: ; 4e779 .asm_4e779 call DelayFrame push bc - call Functiona57 + call JoyTextDelay ld a, [hJoyDown] pop bc - and $2 + and B_BUTTON jr nz, .asm_4e78c .asm_4e787 dec c @@ -45576,7 +45476,7 @@ Function4e7a6: ; 4e7a6 ret nz ld de, SFX_EVOLVED call PlaySFX - ld hl, wcf63 + ld hl, wJumptableIndex ld a, [hl] push af ld [hl], $0 @@ -45593,12 +45493,12 @@ Function4e7a6: ; 4e7a6 dec c jr nz, .asm_4e7c4 pop af - ld [wcf63], a + ld [wJumptableIndex], a ret ; 4e7cf Function4e7cf: ; 4e7cf - ld hl, wcf63 + ld hl, wJumptableIndex ld a, [hl] cp $20 ret nc @@ -45623,7 +45523,7 @@ Function4e7e8: ; 4e7e8 call Function3b2a ld hl, $000b add hl, bc - ld a, [wcf63] + ld a, [wJumptableIndex] and $e sla a pop de @@ -45676,10 +45576,10 @@ Function4e881: ; 4e881 call ClearSprites call DisableLCD call Functione51 - call Functione58 + call LoadFontsBattleExtra ld hl, VBGMap0 - ld bc, $400 - ld a, $7f + ld bc, VBGMap1 - VBGMap0 + ld a, " " call ByteFill hlcoord 0, 0, AttrMap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT @@ -45709,10 +45609,10 @@ Function4e8c2: ; 4e8c2 call ClearSprites call DisableLCD call Functione51 - call Functione58 + call LoadFontsBattleExtra ld hl, VBGMap0 - ld bc, $400 - ld a, $7f + ld bc, VBGMap1 - VBGMap0 + ld a, " " call ByteFill hlcoord 0, 0, AttrMap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT @@ -45721,9 +45621,9 @@ Function4e8c2: ; 4e8c2 ld hl, wd000 ld c, $40 .asm_4e8ee - ld a, $ff + ld a, -1 ld [hli], a - ld a, $7f + ld a, " " ld [hli], a dec c jr nz, .asm_4e8ee @@ -45742,8 +45642,8 @@ Function4e906: ; 4e906 ld a, $6 ld [rSVBK], a ld hl, w6_d000 - ld bc, $400 - ld a, $7f + ld bc, w6_d400 - w6_d000 + ld a, " " call ByteFill ld hl, VBGMap0 ld de, w6_d000 @@ -45926,7 +45826,7 @@ endr Function4e9e5: ; 4e9e5 ld hl, LYOverrides ld a, $90 - ld bc, $0090 + ld bc, SCREEN_HEIGHT_PX call ByteFill ret ; 4e9f1 @@ -45990,9 +45890,9 @@ CheckBattleScene: ; 4ea44 ; Return carry if battle scene is turned off. ld a, 0 - ld hl, InLinkBattle + ld hl, wLinkMode call GetFarWRAMByte - cp 4 + cp LINK_MOBILE jr z, .mobile ld a, [Options] @@ -46044,7 +45944,7 @@ INCLUDE "event/poke_seer.asm" SECTION "bank14", ROMX, BANK[$14] SelectMonFromParty: ; 50000 - call Function2ed3 + call DisableSpriteUpdates xor a ld [PartyMenuActionText], a call WhiteBGMap @@ -46061,7 +45961,7 @@ SelectMonFromParty: ; 50000 Function5001d: ; 5001d ld a, b ld [PartyMenuActionText], a - call Function2ed3 + call DisableSpriteUpdates call WhiteBGMap call Function5003f call WaitBGMap @@ -46084,9 +45984,9 @@ Function5003f: ; 5003f ; 5004f Function5004f: ; 5004f - call Functione58 - callab Function8ad1 - callab Function8e814 + call LoadFontsBattleExtra + callab Function8ad1 ; engine/color.asm + callab InefficientlyClear121BytesAtwc300 ret ; 5005f @@ -46305,7 +46205,7 @@ Function50176: ; 50176 ld a, [de] cp 100 ; This is distinct from MAX_LEVEL. jr nc, .asm_501a1 - ld a, LV_CHAR + ld a, "<LV>" ld [hli], a ld bc, $4102 .asm_501a1 @@ -46698,7 +46598,7 @@ Function503e0: ; 503e0 ret z ld c, a xor a - ld [$ffb0], a + ld [hConnectedMapWidth], a .asm_503ea push bc push hl @@ -46706,9 +46606,9 @@ Function503e0: ; 503e0 ld a, BANK(Function8e83f) ld e, $0 rst FarCall - ld a, [$ffb0] + ld a, [hConnectedMapWidth] inc a - ld [$ffb0], a + ld [hConnectedMapWidth], a pop hl pop bc dec c @@ -46788,7 +46688,7 @@ PartyMenuSelect: ; 0x50457 cp b jr z, .exitmenu ; CANCEL ld [wd0d8], a - ld a, [$ffa9] + ld a, [hJoyLast] ld b, a bit 1, b jr nz, .exitmenu ; B button? @@ -46986,7 +46886,7 @@ endr ret ; 505da -Function505da:: ; 505da +DoPoisonStep:: ; 505da ld a, [PartyCount] and a jr z, .asm_5062c @@ -48115,19 +48015,19 @@ ParString: db "PAR@" ListMoves: ; 50d6f ; List moves at hl, spaced every [Buffer1] tiles. - ld de, wd25e + ld de, wListMoves_MoveIndicesBuffer ld b, $0 -.asm_50d74 +.moves_loop ld a, [de] inc de and a - jr z, .asm_50da7 + jr z, .no_more_moves push de push hl push hl ld [CurSpecies], a ld a, MOVE_NAME - ld [wcf61], a + ld [wNamedObjectTypeBuffer], a call GetName ld de, StringBuffer1 pop hl @@ -48147,12 +48047,12 @@ ListMoves: ; 50d6f pop de ld a, b cp NUM_MOVES - jr z, .asm_50db8 - jr .asm_50d74 + jr z, .done + jr .moves_loop -.asm_50da7 +.no_more_moves ld a, b -.asm_50da8 +.nonmove_loop push af ld [hl], "-" ld a, [Buffer1] @@ -48162,9 +48062,9 @@ ListMoves: ; 50d6f pop af inc a cp NUM_MOVES - jr nz, .asm_50da8 + jr nz, .nonmove_loop -.asm_50db8 +.done ret ; 50db9 @@ -48189,7 +48089,7 @@ Function50db9: ; 50db9 cp $5 jr nz, .check_item_name - ld hl, OBPals + 8 * 6 + ld hl, CurMart ld de, PokemonNames ld a, PKMN_NAME jr .done @@ -48203,12 +48103,12 @@ Function50db9: ; 50db9 jr .done .check_ob_item_name - ld hl, OBPals + 8 * 6 + ld hl, CurMart ld de, ItemNames ld a, ITEM_NAME .done - ld [wcf61], a + ld [wNamedObjectTypeBuffer], a ld a, l ld [wd100], a ld a, h @@ -48217,7 +48117,7 @@ Function50db9: ; 50db9 ld [wd102], a ld a, d ld [wd103], a - ld bc, $67c1 ; XXX ItemAttributes? + ld bc, ItemAttributes ld a, c ld [wd104], a ld a, b @@ -48431,10 +48331,10 @@ Function50f12: Function50f34: ; 50f34 (14:4f34) push af hlcoord 0, 1 - ld bc, $28 + ld bc, 2 * SCREEN_WIDTH call AddNTimes - ld bc, $28 - ld a, $7f + ld bc, 2 * SCREEN_WIDTH + ld a, " " call ByteFill pop af ld hl, Sprites @@ -49269,7 +49169,7 @@ GetMovementInput: ; 80017 ret z ld c, a - and $f0 + and D_PAD ret nz ld a, c @@ -49581,14 +49481,14 @@ TrySurfStep: ; 801c0 call CheckWaterPermissions ld [wd040], a - jr c, .asm_801f1 + jr c, .bump call IsNPCInFront ld [wd03f], a and a - jr z, .asm_801f1 + jr z, .bump cp 2 - jr z, .asm_801f1 + jr z, .bump ld a, [wd040] and a @@ -49608,7 +49508,7 @@ TrySurfStep: ; 801c0 scf ret -.asm_801f1 +.bump xor a ret ; 801f3 @@ -50182,12 +50082,12 @@ INCLUDE "engine/engine_flags.asm" _GetVarAction:: ; 80648 (20:4648) ld a, c cp NUM_VARS - jr c, .asm_8064e + jr c, .valid xor a -.asm_8064e +.valid ld c, a ld b, 0 - ld hl, VarActionTable + ld hl, .VarActionTable rept 3 add hl, bc endr @@ -50197,104 +50097,105 @@ endr inc hl ld b, [hl] ld a, b - and $80 - jr nz, .asm_80668 + and RETVAR_EXECUTE + jr nz, .call ld a, b - and $40 + and RETVAR_ADDR_DE ret nz ld a, [de] - jr Function8066c -.asm_80668 + jr .loadstringbuffer2 + +.call call _de_ ret -Function8066c: ; 8066c (20:466c) +.loadstringbuffer2: ; 8066c (20:466c) ld de, StringBuffer2 ld [de], a ret ; 80671 (20:4671) -VarActionTable: ; 80671 -; $00: return address -; $40: return at StringBuffer2 -; $80: return function result at StringBuffer2 - dwb StringBuffer2, $00 - dwb PartyCount, $00 - dwb Function80728, $80 - dwb BattleType, $40 - dwb TimeOfDay, $00 - dwb Function806c5, $80 - dwb Function806d3, $80 - dwb CountBadges, $80 - dwb PlayerState, $40 - dwb Function806ef, $80 - dwb hHours, $00 - dwb Function806f9, $80 - dwb MapGroup, $00 - dwb MapNumber, $00 - dwb Function806ff, $80 - dwb wPermission, $00 - dwb Function80715, $80 - dwb wd46c, $00 - dwb XCoord, $00 - dwb YCoord, $00 - dwb wSpecialPhoneCallID, $00 - dwb wcf64, $00 - dwb wdca4, $00 - dwb wCurrentCaller, $40 - dwb wdc4b, $40 - dwb wdc4a, $40 - dwb wdc58, $00 - dwb NULL, $00 +.VarActionTable: ; 80671 +; $00: copy [de] to StringBuffer2 +; $40: return address in de +; $80: call function + dwb StringBuffer2, RETVAR_STRBUF2 + dwb PartyCount, RETVAR_STRBUF2 + dwb .BattleResult, RETVAR_EXECUTE + dwb BattleType, RETVAR_ADDR_DE + dwb TimeOfDay, RETVAR_STRBUF2 + dwb .CountCaughtMons, RETVAR_EXECUTE + dwb .CountSeenMons, RETVAR_EXECUTE + dwb .CountBadges, RETVAR_EXECUTE + dwb PlayerState, RETVAR_ADDR_DE + dwb .PlayerFacing, RETVAR_EXECUTE + dwb hHours, RETVAR_STRBUF2 + dwb .DayOfWeek, RETVAR_EXECUTE + dwb MapGroup, RETVAR_STRBUF2 + dwb MapNumber, RETVAR_STRBUF2 + dwb .UnownCaught, RETVAR_EXECUTE + dwb wPermission, RETVAR_STRBUF2 + dwb .BoxFreeSpace, RETVAR_EXECUTE + dwb wBugContestMinsRemaining, RETVAR_STRBUF2 + dwb XCoord, RETVAR_STRBUF2 + dwb YCoord, RETVAR_STRBUF2 + dwb wSpecialPhoneCallID, RETVAR_STRBUF2 + dwb wcf64, RETVAR_STRBUF2 + dwb wKurtApricornQuantity, RETVAR_STRBUF2 + dwb wCurrentCaller, RETVAR_ADDR_DE + dwb wBlueCardBalance, RETVAR_ADDR_DE + dwb wBuenasPassword, RETVAR_ADDR_DE + dwb wdc58, RETVAR_STRBUF2 + dwb NULL, RETVAR_STRBUF2 ; 806c5 -Function806c5: ; 806c5 +.CountCaughtMons: ; 806c5 ; Caught mons. ld hl, PokedexCaught ld b, EndPokedexCaught - PokedexCaught call CountSetBits ld a, [wd265] - jp Function8066c + jp .loadstringbuffer2 ; 806d3 -Function806d3: ; 806d3 +.CountSeenMons: ; 806d3 ; Seen mons. ld hl, PokedexSeen ld b, EndPokedexSeen - PokedexSeen call CountSetBits ld a, [wd265] - jp Function8066c + jp .loadstringbuffer2 ; 806e1 -CountBadges: ; 806e1 +.CountBadges: ; 806e1 ; Number of owned badges. ld hl, Badges ld b, 2 call CountSetBits ld a, [wd265] - jp Function8066c + jp .loadstringbuffer2 ; 806ef -Function806ef: ; 806ef +.PlayerFacing: ; 806ef ; The direction the player is facing. ld a, [PlayerDirection] and $c rrca rrca - jp Function8066c + jp .loadstringbuffer2 ; 806f9 -Function806f9: ; 806f9 +.DayOfWeek: ; 806f9 ; The day of the week. call GetWeekday - jp Function8066c + jp .loadstringbuffer2 ; 806ff -Function806ff: ; 806ff +.UnownCaught: ; 806ff ; Number of unique Unown caught. call .count ld a, b - jp Function8066c + jp .loadstringbuffer2 .count ld hl, UnownDex @@ -50310,7 +50211,7 @@ Function806ff: ; 806ff ret ; 80715 -Function80715: ; 80715 +.BoxFreeSpace: ; 80715 ; Remaining slots in the current box. ld a, BANK(sBoxCount) call GetSRAMBank @@ -50320,13 +50221,13 @@ Function80715: ; 80715 ld b, a call CloseSRAM ld a, b - jp Function8066c + jp .loadstringbuffer2 ; 80728 -Function80728: ; 80728 - ld a, [wd0ee] +.BattleResult: ; 80728 + ld a, [wBattleResult] and $3f - jp Function8066c + jp .loadstringbuffer2 ; 80730 @@ -50345,10 +50246,10 @@ ColorTest: ; 818ac ret z .asm_818b5 - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a call DisableLCD call Function81948 call Function8197c @@ -50358,11 +50259,11 @@ ColorTest: ; 818ac ld de, MUSIC_NONE call PlayMusic xor a - ld [wcf63], a + ld [wJumptableIndex], a ld [wcf66], a ld [wd003], a .asm_818de - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_818f0 call Function81a74 @@ -50372,7 +50273,7 @@ ColorTest: ; 818ac .asm_818f0 pop af - ld [$ffaa], a + ld [hInMenu], a ret ; 818f4 @@ -50441,13 +50342,13 @@ Function81948: ; 81948 ld a, $1 ld [rVBK], a ld hl, VTiles0 - ld bc, $2000 + ld bc, sScratch - VTiles0 xor a call ByteFill ld a, $0 ld [rVBK], a ld hl, VTiles0 - ld bc, $2000 + ld bc, sScratch - VTiles0 xor a call ByteFill hlcoord 0, 0, AttrMap @@ -50464,7 +50365,7 @@ Function81948: ; 81948 Function8197c: ; 8197c ld hl, DebugColorTestGFX + $10 - ld de, $96a0 + ld de, VTiles2 tile $6a ld bc, $0160 call CopyBytes ld hl, DebugColorTestGFX @@ -50619,20 +50520,20 @@ Palette_81a34: ; 81a34 ; 81a74 Function81a74: ; 81a74 - call Functiona57 - ld a, [wcf63] + call JoyTextDelay + ld a, [wJumptableIndex] cp $4 jr nc, .asm_81a8b - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $4 + and SELECT jr nz, .asm_81a9a ld a, [hl] - and $8 + and START jr nz, .asm_81aab .asm_81a8b - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_81acf @@ -50667,7 +50568,7 @@ endr .asm_81aba ld [wcf66], a ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 81ac3 @@ -50701,17 +50602,17 @@ Function81adb: ; 81adb ld a, $6f call ByteFill hlcoord 1, 3 - ld bc, $0712 + lb bc, 7, 18 ld a, $6c - call Function81efc + call Bank20_FillBoxWithByte hlcoord 11, 0 - ld bc, $0203 + lb bc, 2, 3 ld a, $6d - call Function81efc + call Bank20_FillBoxWithByte hlcoord 16, 0 - ld bc, $0203 + lb bc, 2, 3 ld a, $6e - call Function81efc + call Bank20_FillBoxWithByte call Function81bc0 call Function81bf4 ld a, [wcf66] @@ -50734,7 +50635,7 @@ Function81adb: ; 81adb ld [wc2c6], a hlcoord 12, 3 call Function378b - ld de, $9310 + ld de, VTiles2 tile $31 predef GetBackpic ld a, $31 ld [$ffad], a @@ -50776,7 +50677,7 @@ Function81adb: ; 81adb .asm_81ba9 ld a, $1 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 81baf @@ -50847,7 +50748,7 @@ Function81c18: ; 81c18 .asm_81c2a call WaitBGMap ld a, $2 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 81c33 @@ -50872,7 +50773,7 @@ Function81c33: ; 81c33 ld a, $1 ld [hCGBPalUpdate], a ld a, $3 - ld [wcf63], a + ld [wJumptableIndex], a pop af ld [rSVBK], a ret @@ -50907,7 +50808,7 @@ endr ld de, wc608 + 2 call Function81ca7 ld a, $3 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 81ca7 @@ -50934,11 +50835,11 @@ Function81cbc: ; 81cbc ; 81cc2 Function81cc2: ; 81cc2 - ld a, [$ffa9] - and $2 + ld a, [hJoyLast] + and B_BUTTON jr nz, .asm_81cdf - ld a, [$ffa9] - and $1 + ld a, [hJoyLast] + and A_BUTTON jr nz, .asm_81ce5 ld a, [wcf64] and $3 @@ -50955,7 +50856,7 @@ endr .asm_81cdf ld a, $4 - ld [wcf63], a + ld [wJumptableIndex], a ret .asm_81ce5 @@ -50971,7 +50872,7 @@ endr add hl, bc call Function818fd ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 81d02 @@ -50983,15 +50884,15 @@ Jumptable_81d02: ; 81d02 ; 81d0a Function81d0a: ; 81d0a - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $80 + and D_DOWN jr nz, Function81d89 ld a, [hl] - and $20 + and D_LEFT jr nz, .asm_81d1d ld a, [hl] - and $10 + and D_RIGHT jr nz, .asm_81d28 ret @@ -51010,40 +50911,40 @@ Function81d0a: ; 81d0a ret Function81d34: ; 81d34 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $80 + and D_DOWN jr nz, Function81d89 ld a, [hl] - and $40 + and D_UP jr nz, Function81d84 ld hl, wc608 + 10 jr Function81d63 Function81d46: ; 81d46 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $80 + and D_DOWN jr nz, Function81d89 ld a, [hl] - and $40 + and D_UP jr nz, Function81d84 ld hl, wc608 + 11 jr Function81d63 Function81d58: ; 81d58 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $40 + and D_UP jr nz, Function81d84 ld hl, wc608 + 12 Function81d63: ; 81d63 - ld a, [$ffa9] - and $10 + ld a, [hJoyLast] + and D_RIGHT jr nz, Function81d70 - ld a, [$ffa9] - and $20 + ld a, [hJoyLast] + and D_LEFT jr nz, Function81d77 ret @@ -51063,7 +50964,7 @@ Function81d77: ; 81d77 Function81d7b: ; 81d7b call Function81e67 ld a, $2 - ld [wcf63], a + ld [wJumptableIndex], a ret Function81d84: ; 81d84 @@ -51089,37 +50990,37 @@ Function81d8e: ; 81d8e ld [wd004], a call Function81df4 ld a, $5 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 81daf Function81daf: ; 81daf ld hl, hJoyPressed ld a, [hl] - and $2 + and B_BUTTON jr nz, .asm_81dbb call Function81dc7 ret .asm_81dbb ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret ; 81dc1 Function81dc1: ; 81dc1 - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret ; 81dc7 Function81dc7: ; 81dc7 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $40 + and D_UP jr nz, .asm_81dd5 ld a, [hl] - and $80 + and D_DOWN jr nz, .asm_81de2 ret @@ -51314,20 +51215,21 @@ endr ret ; 81efc -Function81efc: ; 81efc -.asm_81efc +Bank20_FillBoxWithByte: ; 81efc +; For some reason, we have another copy of FillBoxWithByte here +.row push bc push hl -.asm_81efe +.col ld [hli], a dec c - jr nz, .asm_81efe + jr nz, .col pop hl ld bc, SCREEN_WIDTH add hl, bc pop bc dec b - jr nz, .asm_81efc + jr nz, .row ret ; 81f0c @@ -51404,7 +51306,7 @@ Function81f5e: ; 81f5e ld [hl], a hlcoord 1, 15 ld [hl], a - ld a, [wcf63] + ld a, [wJumptableIndex] cp $3 jr nz, .asm_81fc9 ld a, [wcf64] @@ -51412,7 +51314,7 @@ Function81f5e: ; 81f5e jr z, .asm_81f8d dec a hlcoord 1, 11 - ld bc, $0028 + ld bc, 2 * SCREEN_WIDTH call AddNTimes ld [hl], $ed @@ -51477,7 +51379,7 @@ INCBIN "gfx/debug/color_test.2bpp" TilesetColorTest: ret xor a - ld [wcf63], a + ld [wJumptableIndex], a ld [wcf64], a ld [wcf65], a ld [wcf66], a @@ -51488,15 +51390,15 @@ TilesetColorTest: xor a ld [hBGMapMode], a ld de, DebugColorTestGFX + $10 - ld hl, $96a0 + ld hl, VTiles2 tile $6a lb bc, BANK(DebugColorTestGFX), $16 call Request2bpp ld de, DebugColorTestGFX ld hl, VTiles1 lb bc, BANK(DebugColorTestGFX), 1 call Request2bpp - ld a, $9c - ld [$ffd7], a + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, $6f @@ -51520,7 +51422,7 @@ TilesetColorTest: call Function821f4 call Function8220f call Function3200 - ld [wcf63], a + ld [wJumptableIndex], a ld a, $40 ld [hWY], a ret @@ -51562,7 +51464,7 @@ Function821f4: ; 821f4 Function82203: ; 82203 ld a, $6a ld [hli], a - ld bc, $000f + ld bc, $10 - 1 ld a, $6b call ByteFill ret @@ -51593,12 +51495,12 @@ endr Function82236: ; 82236 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $4 + and SELECT jr nz, .loop7 ld a, [hl] - and $2 + and B_BUTTON jr nz, .asm_82299 call Function822f0 ret @@ -51690,7 +51592,7 @@ Function822f0: ; 822f0 and 3 ld e, a ld d, 0 - ld hl, Jumptable_82301 + ld hl, .jumptable rept 2 add hl, de endr @@ -51700,7 +51602,7 @@ endr jp [hl] ; 82301 -Jumptable_82301: ; 82301 +.jumptable: ; 82301 dw Function82309 dw Function82339 dw Function8234b @@ -51708,15 +51610,15 @@ Jumptable_82301: ; 82301 ; 82309 Function82309: ; 82309 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $80 + and D_DOWN jr nz, Function8238c ld a, [hl] - and $20 + and D_LEFT jr nz, .asm_8231c ld a, [hl] - and $10 + and D_RIGHT jr nz, .asm_82322 ret @@ -51744,40 +51646,40 @@ endr ret Function82339: ; 82338 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $80 + and D_DOWN jr nz, Function8238c ld a, [hl] - and $40 + and D_UP jr nz, Function82387 ld hl, wc608 + 10 jr Function82368 Function8234b: ; 8234b - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $80 + and D_DOWN jr nz, Function8238c ld a, [hl] - and $40 + and D_UP jr nz, Function82387 ld hl, wc608 + 11 jr Function82368 Function8235d: ; 8235d - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $40 + and D_UP jr nz, Function82387 ld hl, wc608 + 12 Function82368: ; 82368 - ld a, [$ffa9] - and $10 + ld a, [hJoyLast] + and D_RIGHT jr nz, .asm_82375 - ld a, [$ffa9] - and $20 + ld a, [hJoyLast] + and D_LEFT jr nz, .asm_8237c ret @@ -51868,12 +51770,12 @@ Function84000: ; 84000 ld a, [GBPrinter] ld [wcbfb], a xor a - ld [wcf63], a + ld [wJumptableIndex], a ret ; 84022 Function84022: ; 84022 - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_84031 @@ -51911,19 +51813,19 @@ Jumptable_84031: ; 84031 (21:4031) Function84059: ; 84059 (21:4059) - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret Function8405e: ; 8405e (21:405e) - ld hl, wcf63 + ld hl, wJumptableIndex dec [hl] ret Function84063: ; 84063 (21:4063) xor a ld [wca89], a - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -51933,7 +51835,7 @@ Function8406d: ; 8406d (21:406d) Function84071: ; 84071 (21:4071) ld a, $1 - ld [wcf63], a + ld [wJumptableIndex], a ret Function84077: ; 84077 (21:4077) @@ -51973,7 +51875,7 @@ Function84099: ; 84099 (21:4099) Function840c5: ; 840c5 (21:40c5) ld a, $6 - ld [wcf63], a + ld [wJumptableIndex], a ld hl, Unknown_842c9 call Function841e2 xor a @@ -52065,7 +51967,7 @@ Function84143: ; 84143 (21:4143) ld [wca88], a ld [wca89], a ld a, $e - ld [wcf63], a + ld [wJumptableIndex], a ret Function84180: ; 84180 (21:4180) @@ -52085,7 +51987,7 @@ Function84180: ; 84180 (21:4180) ret .asm_8419b ld a, $12 - ld [wcf63], a + ld [wJumptableIndex], a ret Function841a1: ; 841a1 (21:41a1) @@ -52109,7 +52011,7 @@ Function841b3: ; 841b3 (21:41b3) and $f0 ret nz xor a - ld [wcf63], a + ld [wJumptableIndex], a ret Function841c3: ; 841c3 (21:41c3) @@ -52464,10 +52366,10 @@ Function843e6: ; 843e6 (21:43e6) Function843f0: ; 843f0 .asm_843f0 - call Functiona57 + call JoyTextDelay call Function846f6 jr c, .asm_8440f - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_8440d call Function84022 @@ -52682,14 +52584,14 @@ Function84560: ; 84560 ld a, $9 ld [wcf65], a .asm_84597 - call Functiona57 + call JoyTextDelay call Function846f6 jr c, .asm_845c0 - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_845c0 call Function84022 - ld a, [wcf63] + ld a, [wJumptableIndex] cp $2 jr nc, .asm_845b5 ld a, $3 @@ -52866,7 +52768,7 @@ Function84688: ; 84688 Function846f6: ; 846f6 ld a, [hJoyDown] - and $2 + and B_BUTTON jr nz, .asm_846fe and a ret @@ -52920,7 +52822,7 @@ Function84742: ; 84742 ld [hJoyReleased], a ld [hJoyPressed], a ld [hJoyDown], a - ld [$ffa9], a + ld [hJoyLast], a ret ; 8474c @@ -53055,13 +52957,13 @@ Function84817: ; 84817 (21:4817) xor a ld [wd002], a hlcoord 0, 0 - ld bc, $168 - ld a, $7f + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " call ByteFill call Function84a0e hlcoord 0, 0 - ld bc, $b4 - ld a, $7f + ld bc, 9 * SCREEN_WIDTH + ld a, " " call ByteFill call Function849e9 call Function849d7 @@ -53090,8 +52992,8 @@ String_84865: Function8486f: ; 8486f (21:486f) hlcoord 0, 0 - ld bc, $168 - ld a, $7f + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " call ByteFill call Function84a0e call Function849e9 @@ -53107,8 +53009,8 @@ Function8486f: ; 8486f (21:486f) Function84893: ; 84893 (21:4893) hlcoord 0, 0 - ld bc, $168 - ld a, $7f + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " call ByteFill call Function84a0e call Function849e9 @@ -53124,8 +53026,8 @@ Function84893: ; 84893 (21:4893) Function848b7: ; 848b7 (21:48b7) hlcoord 0, 0 - ld bc, $168 - ld a, $7f + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " call ByteFill call Function84a0e hlcoord 1, 15 @@ -53162,7 +53064,7 @@ Function848ed: ; 848ed (21:48ed) push de push hl ld bc, $10 - ld a, $7f + ld a, " " call ByteFill pop hl push hl @@ -53183,7 +53085,7 @@ Function848ed: ; 848ed (21:48ed) ld [hli], a push hl ld bc, $e - ld a, $7f + ld a, " " call ByteFill pop hl push hl @@ -53355,7 +53257,7 @@ HallOfFame:: ; 0x8640e push af ld a, 1 ld [wc2cd], a - call Function2ed3 + call DisableSpriteUpdates ld a, SPAWN_LANCE ld [wSpawnAfterChampion], a @@ -53398,7 +53300,7 @@ RedCredits:: ; 86455 callba Function4e8c2 ld c, $8 call DelayFrames - call Function2ed3 + call DisableSpriteUpdates ld a, SPAWN_RED ld [wSpawnAfterChampion], a ld a, [StatusFlags] @@ -53435,7 +53337,7 @@ Function864b4: ; 864b4 Function864c3: ; 864c3 xor a - ld [wcf63], a + ld [wJumptableIndex], a call Function8671c jr c, .done ld de, SCREEN_WIDTH @@ -53504,7 +53406,7 @@ GetHallOfFameParty: ; 8653f ld c, 0 .next ld a, [hli] - cp $ff + cp -1 jr z, .done cp EGG jr nz, .mon @@ -53597,9 +53499,9 @@ endr predef GetUnownLetter hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $7f + ld a, " " call ByteFill - ld de, $9310 + ld de, VTiles2 tile $31 predef GetBackpic ld a, $31 ld [$ffad], a @@ -53621,7 +53523,7 @@ endr ld [wc2c6], a hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $7f + ld a, " " call ByteFill hlcoord 6, 5 call Function378b @@ -53658,15 +53560,15 @@ endr ; 86650 Function86650: ; 86650 - call Functione58 + call LoadFontsBattleExtra xor a - ld [wcf63], a + ld [wJumptableIndex], a .asm_86657 call Function8671c ret c call Function86665 ret c - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] jr .asm_86657 ; 86665 @@ -53678,16 +53580,16 @@ Function86665: ; 86665 call Function86692 jr c, .asm_86690 .asm_8666e - call Functiona57 - ld hl, $ffa9 + call JoyTextDelay + ld hl, hJoyLast ld a, [hl] - and $2 + and B_BUTTON jr nz, .asm_8668e ld a, [hl] - and $1 + and A_BUTTON jr nz, .asm_86688 ld a, [hl] - and $8 + and START jr nz, .asm_86690 call DelayFrame jr .asm_8666e @@ -53775,7 +53677,7 @@ String_8670c: Function8671c: ; 8671c - ld a, [wcf63] + ld a, [wJumptableIndex] cp NUM_HOF_TEAMS jr nc, .asm_86746 ld hl, sHallOfFame @@ -53817,19 +53719,19 @@ Function86748: ; 86748 ld a, [hli] ld [TempMonLevel], a ld de, StringBuffer2 - ld bc, $000a + ld bc, 10 call CopyBytes - ld a, $50 + ld a, "@" ld [StringBuffer2 + 10], a hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $7f + ld a, " " call ByteFill hlcoord 0, 0 - ld bc, $0312 + lb bc, 3, SCREEN_WIDTH - 2 call TextBox hlcoord 0, 12 - ld bc, $0412 + lb bc, 4, SCREEN_WIDTH - 2 call TextBox ld a, [TempMonSpecies] ld [CurPartySpecies], a @@ -53890,19 +53792,19 @@ Function86748: ; 86748 Function86810: ; 86810 call WhiteBGMap - ld hl, $9630 + ld hl, VTiles2 tile $63 ld de, FontExtra + $d0 lb bc, BANK(FontExtra), 1 call Request2bpp hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $7f + ld a, " " call ByteFill callba GetPlayerBackpic ld a, $31 ld [$ffad], a hlcoord 6, 6 - ld bc, $0606 + lb bc, 6, 6 predef FillBox ld a, $d0 ld [hSCY], a @@ -53920,7 +53822,7 @@ Function86810: ; 86810 ld [wc2c6], a hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $7f + ld a, " " call ByteFill callba Function88840 xor a @@ -53980,417 +53882,16 @@ Function86810: ; 86810 SECTION "bank22", ROMX, BANK[$22] -Function88000: ; 88000 - ld hl, UnknownText_0x88007 - call PrintText - ret -; 88007 - -UnknownText_0x88007: ; 0x88007 - ; Which APRICORN should I use? - text_jump UnknownText_0x1bc06b - db "@" -; 0x8800c - -Function8800c: ; 8800c - ld hl, UnknownText_0x88013 - call PrintText - ret -; 88013 - -UnknownText_0x88013: ; 0x88013 - ; How many should I make? - text_jump UnknownText_0x1bc089 - db "@" -; 0x88018 - -Function88018: ; 88018 - call LoadMenuDataHeader_0x1d75 - ld c, $1 - xor a - ld [wd0e4], a - ld [wdca4], a -.asm_88024 - push bc - call Function88000 - pop bc - ld a, c - ld [MenuSelection], a - call Function88055 - ld a, c - ld [ScriptVar], a - and a - jr z, .asm_88051 - ld [CurItem], a - ld a, [wcfa9] - ld c, a - push bc - call Function8800c - call Function880c2 - pop bc - jr nc, .asm_88024 - ld a, [wd10c] - ld [wdca4], a - call Function88161 - -.asm_88051 - call Call_ExitMenu - ret -; 88055 - -Function88055: ; 88055 - callba Function24c64 - jr c, .asm_88083 - ld hl, MenuDataHeader_0x88086 - call CopyMenuDataHeader - ld a, [MenuSelection] - ld [wcf88], a - xor a - ld [hBGMapMode], a - call Function352f - call UpdateSprites - call Function350c - ld a, [wcf73] - cp $2 - jr z, .asm_88083 - ld a, [MenuSelection] - cp $ff - jr nz, .asm_88084 - -.asm_88083 - xor a - -.asm_88084 - ld c, a - ret -; 88086 - -MenuDataHeader_0x88086: ; 0x88086 - db $40 ; flags - db 01, 01 ; start coords - db 10, 13 ; end coords - dw MenuData2_0x8808f - db 1 ; default option -; 0x8808e - - db 0 - -MenuData2_0x8808f: ; 0x8808f - db $10 ; flags - db 4, 7 - db 1 - dbw 0, wd1ea - dbw BANK(Function8809f), Function8809f - dbw BANK(Function880ab), Function880ab - dbw BANK(NULL), NULL - -Function8809f: ; 8809f - ld a, [MenuSelection] - and a - ret z - callba Function24ab4 - ret -; 880ab - -Function880ab: ; 880ab - ld a, [MenuSelection] - ld [CurItem], a - call Function88139 - ret z - ld a, [wd10c] - ld [wcf75], a - callba Function24ac3 - ret -; 880c2 - -Function880c2: ; 880c2 - ld a, [CurItem] - ld [MenuSelection], a - call Function88139 - jr z, .asm_88109 - ld a, [wd10c] - ld [wd10d], a - ld a, $1 - ld [wd10c], a - ld hl, MenuDataHeader_0x8810d - call LoadMenuDataHeader -.asm_880de - xor a - ld [hBGMapMode], a - call Function1cbb - call UpdateSprites - call Function88116 - call Function88126 - call Function321c - callba Function27a28 - jr nc, .asm_880de - push bc - call PlayClickSFX - pop bc - ld a, b - cp $ff - jr z, .asm_88109 - ld a, [wd10c] - ld [wd10c], a - scf - -.asm_88109 - call WriteBackup - ret -; 8810d - -MenuDataHeader_0x8810d: ; 0x8810d - db $40 ; flags - db 09, 06 ; start coords - db 12, 19 ; end coords - - db 0, 0, -1, 0 ; XXX - -Function88116: ; 88116 - call Function1cfd - ld de, $0015 - add hl, de - ld d, h - ld e, l - callba Function24ab4 - ret -; 88126 - -Function88126: ; 88126 - call Function1cfd - ld de, $0032 - add hl, de - ld [hl], $f1 - inc hl - ld de, wd10c - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - jp PrintNum -; 88139 - -Function88139: ; 88139 - push bc - ld hl, NumItems - ld a, [CurItem] - ld c, a - ld b, $0 -.asm_88143 - inc hl - ld a, [hli] - cp $ff - jr z, .asm_88153 - cp c - jr nz, .asm_88143 - ld a, [hl] - add b - ld b, a - jr nc, .asm_88143 - ld b, $ff - -.asm_88153 - ld a, b - sub $63 - jr c, .asm_8815a - ld b, $63 - -.asm_8815a - ld a, b - ld [wd10c], a - and a - pop bc - ret -; 88161 - -Function88161: ; 88161 - push de - push bc - ld hl, NumItems - ld a, [CurItem] - ld c, a - ld e, $0 - xor a - ld [wd107], a - ld a, $ff - ld [DefaultFlypoint], a -.asm_88175 - ld a, [wd107] - inc a - ld [wd107], a - inc hl - ld a, [hli] - cp $ff - jr z, .asm_88198 - cp c - jr nz, .asm_88175 - ld d, $0 - push hl - ld hl, DefaultFlypoint - add hl, de - inc e - ld a, [wd107] - dec a - ld [hli], a - ld a, $ff - ld [hl], a - pop hl - jr .asm_88175 - -.asm_88198 - ld a, e - and a - jr z, .asm_881fa - dec a - jr z, .asm_881d0 - ld hl, DefaultFlypoint -.asm_881a2 - ld a, [hl] - ld c, a - push hl -.asm_881a5 - inc hl - ld a, [hl] - cp $ff - jr z, .asm_881c9 - ld b, a - ld a, c - call Function88201 - ld e, a - ld a, b - call Function88201 - sub e - jr z, .asm_881bc - jr c, .asm_881c0 - jr .asm_881a5 - -.asm_881bc - ld a, c - sub b - jr nc, .asm_881a5 - -.asm_881c0 - ld a, c - ld c, b - ld [hl], a - ld a, c - pop hl - ld [hl], a - push hl - jr .asm_881a5 - -.asm_881c9 - pop hl - inc hl - ld a, [hl] - cp $ff - jr nz, .asm_881a2 - -.asm_881d0 - ld hl, DefaultFlypoint -.asm_881d3 - ld a, [hl] - cp $ff - jr z, .asm_881fa - push hl - ld [wd107], a - call Function88211 - pop hl - ld a, [wd10c] - and a - jr z, .asm_881fa - push hl - ld a, [hli] - ld c, a -.asm_881e9 - ld a, [hli] - cp $ff - jr z, .asm_881f6 - cp c - jr c, .asm_881e9 - dec a - dec hl - ld [hli], a - jr .asm_881e9 - -.asm_881f6 - pop hl - inc hl - jr .asm_881d3 - -.asm_881fa - ld a, [wd10c] - and a - pop bc - pop de - ret -; 88201 - -Function88201: ; 88201 - push hl - push bc - ld hl, NumItems - inc hl - ld c, a - ld b, $0 -rept 2 - add hl, bc -endr - inc hl - ld a, [hl] - pop bc - pop hl - ret -; 88211 - -Function88211: ; 88211 - push bc - ld hl, NumItems - ld a, [wd107] - ld c, a - ld b, $0 - inc hl -rept 2 - add hl, bc -endr - ld a, [CurItem] - ld c, a - ld a, [hli] - cp $ff - jr z, .asm_88243 - cp c - jr nz, .asm_88243 - ld a, [wd10c] - ld c, a - ld a, [hl] - sub c - ld b, c - jr nc, .asm_88235 - add c - ld b, a - -.asm_88235 - push bc - ld hl, NumItems - ld a, b - ld [wd10c], a - call TossItem - pop bc - ld a, c - sub b - -.asm_88243 - ld [wd10c], a - pop bc - ret -; 88248 - +INCLUDE "event/kurt.asm" Function88248: ; 88248 - ld c, $c + ld c, CAL ld a, [PlayerGender] bit 0, a - jr z, .asm_88253 - ld c, $e + jr z, .okay + ld c, KAREN -.asm_88253 +.okay ld a, c ld [TrainerClass], a ret @@ -54446,9 +53947,9 @@ ShowPlayerNamingChoices: ; 88297 ld hl, ChrisNameMenuHeader ld a, [PlayerGender] bit 0, a - jr z, .GotClass + jr z, .GotGender ld hl, KrisNameMenuHeader -.GotClass +.GotGender call LoadMenuDataHeader call InterpretMenu2 ld a, [wcfa9] @@ -54541,12 +54042,12 @@ Function8833e: ; 8833e jr z, .GotClass ld hl, KrisCardPic .GotClass - ld de, $9000 + ld de, VTiles2 tile $00 ld bc, $230 ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic) call FarCopyBytes ld hl, CardGFX - ld de, $9230 + ld de, VTiles2 tile $23 ld bc, $60 ld a, BANK(CardGFX) call FarCopyBytes @@ -54576,7 +54077,7 @@ GetPlayerBackpic: ; 88825 GetChrisBackpic: ; 88830 ld hl, ChrisBackpic ld b, BANK(ChrisBackpic) - ld de, $9310 + ld de, VTiles2 tile $31 ld c, 7 * 7 predef DecompressPredef ret @@ -54661,7 +54162,7 @@ INCBIN "gfx/misc/kris.7x7.2bpp" GetKrisBackpic: ; 88ec9 ; Kris's backpic is uncompressed. ld de, KrisBackpic - ld hl, $9310 + ld hl, VTiles2 tile $31 lb bc, BANK(KrisBackpic), 7 * 7 ; dimensions call Get2bpp ret @@ -54676,7822 +54177,26 @@ String_89116: db "-----@" ; 8911c -String_8911c: ; 8911c - db "でんわばんごうが ただしく" ; Phone number is not - next "はいって いません!@" ; entered correctly! -; 89135 - -String_89135: ; 89135 - db "データが かわって いますが" ; The data has changed. - next "かきかえないで やめますか?@" ; Quit anyway? -; 89153 - -String_89153: ; 89153 - db "メッセージは ありません@" ; No message -; 89160 - -Function89160: ; 89160 - push af - ld a, $4 - call GetSRAMBank - pop af - ret -; 89168 - - -Function89168: ; 89168 (22:5168) - ld hl, GameTimerPause - set 7, [hl] - ret - -Function8916e: ; 8916e (22:516e) - ld hl, GameTimerPause - res 7, [hl] - ret - -Function89174: ; 89174 (22:5174) - ld hl, GameTimerPause - bit 7, [hl] - ret - -Function8917a: ; 8917a (22:517a) - ld hl, DefaultFlypoint - ld bc, $32 - xor a - call ByteFill - ret - -Function89185: ; 89185 (22:5185) -; Compares c bytes starting at de and hl and incrementing together until a match is found. - push de - push hl -.loop - ld a, [de] - inc de - cp [hl] - jr nz, .done - inc hl - dec c - jr nz, .loop -.done - pop hl - pop de - ret - -Function89193: ; 89193 -; Copies c bytes from hl to de. - push de - push hl -.loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .loop - pop hl - pop de - ret -; 8919e - - -Function8919e: ; 8919e (22:519e) -; Searches for the c'th string starting at de. Returns the pointer in de. - ld a, c - and a - ret z -.loop - ld a, [de] - inc de - cp "@" - jr nz, .loop - dec c - jr nz, .loop - ret - -Function891ab: ; 891ab - call Function89240 - callba Function104061 - call Function8923c - ret -; 891b8 - -Function891b8: ; 891b8 - call Function8923c - hlcoord 0, 0 - ld a, $7f - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - call DelayFrame - ret -; 891ca - - -Function891ca: ; 891ca (22:51ca) - push bc - call Function891b8 - call WaitBGMap - pop bc - ret - -Function891d3: ; 891d3 (22:51d3) - push bc - call Function891ca - ld c, $10 - call DelayFrames - pop bc - ret - -Function891de: ; 891de - call Function8923c - call ClearPalettes - hlcoord 0, 0, AttrMap - ld a, $7 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - hlcoord 0, 0 - ld a, $7f - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - call Function891ab - ret -; 891fe - -Function891fe: ; 891fe - push bc - call Function891de - ld c, $10 - call DelayFrames - pop bc - ret -; 89209 - -Function89209: ; 89209 - ld a, 1 - ld [wc2ce], a - ret -; 8920f - -Function8920f: ; 8920f - ld a, 0 - ld [wc2ce], a - ret -; 89215 - -Function89215: ; 89215 - push hl - push bc - ld bc, AttrMap - TileMap - add hl, bc - ld [hl], a - pop bc - pop hl - ret -; 8921f - - -Function8921f: ; 8921f (22:521f) - push de - ld de, SCREEN_WIDTH - add hl, de - inc hl - ld a, $7f -.loop - push bc - push hl -.asm_89229 - ld [hli], a - dec c - jr nz, .asm_89229 - pop hl - add hl, de - pop bc - dec b - jr nz, .loop - pop de - ret - -Function89235: ; 89235 (22:5235) - call Functiona36 - call PlayClickSFX - ret - -Function8923c: ; 8923c - xor a - ld [hBGMapMode], a - ret -; 89240 - -Function89240: ; 89240 - ld a, $1 - ld [hBGMapMode], a - ret -; 89245 - - -Function89245: ; 89245 (22:5245) - callba TryLoadSaveFile - ret c - callba Function150b9 - and a - ret - -Function89254: ; 89254 (22:5254) - ld bc, $d07 - jr Function89261 - -Function89259: ; 89259 - ld bc, $0e07 - jr Function89261 - -Function8925e: ; 8925e - ld bc, $0e0c - -Function89261: ; 89261 - push af - push bc - ld hl, MenuDataHeader_0x892a3 - call CopyMenuDataHeader - pop bc - ld hl, wcf82 - ld a, c - ld [hli], a - ld a, b - ld [hli], a - ld a, c - add $4 - ld [hli], a - ld a, b - add $5 - ld [hl], a - pop af - ld [wcf88], a - call Function1c00 - call Function8923c - call Function89209 - call InterpretMenu2 - push af - ld c, $a - call DelayFrames - call WriteBackup - call Function8920f - pop af - jr c, .done - ld a, [wcfa9] - cp $2 - jr z, .done - and a - ret - -.done - scf - ret -; 892a3 - -MenuDataHeader_0x892a3: ; 0x892a3 - db $40 ; flags - db 05, 10 ; start coords - db 09, 15 ; end coords - dw MenuData2_0x892ab - db 1 ; default option -; 0x892ab - -MenuData2_0x892ab: ; 0x892ab - db $c0 ; flags - db 2 ; items - db "はい@" - db "いいえ@" -; 0x892b4 - -Function892b4: ; 892b4 (22:52b4) - call Function8931b - -Function892b7: ; 892b7 - ld d, b - ld e, c - ld hl, 0 - add hl, bc - ld a, "@" - ld bc, 6 - call ByteFill - ld b, d - ld c, e - ld hl, 6 - add hl, bc - ld a, "@" - ld bc, 6 - call ByteFill - ld b, d - ld c, e - ld hl, 12 - add hl, bc - xor a - ld [hli], a - ld [hl], a - ld hl, 14 - add hl, bc - ld [hli], a - ld [hl], a - ld hl, 16 - add hl, bc - ld [hl], a - ld hl, 17 - add hl, bc - ld a, -1 - ld bc, 8 - call ByteFill - ld b, d - ld c, e - ld e, 6 - ld hl, 25 - add hl, bc -.loop - ld a, -1 - ld [hli], a - ld a, -1 - ld [hli], a - dec e - jr nz, .loop - ret -; 89305 - - -Function89305: ; 89305 (22:5305) - xor a - ld [MenuSelection], a - ld c, 40 -.loop - ld a, [MenuSelection] - inc a - ld [MenuSelection], a - push bc - call Function892b4 - pop bc - dec c - jr nz, .loop - ret - -Function8931b: ; 8931b - push hl - ld hl, $a03b - ld a, [MenuSelection] - dec a - ld bc, $0025 - call AddNTimes - ld b, h - ld c, l - pop hl - ret -; 8932d - -Function8932d: ; 8932d - ld hl, 0 - add hl, bc - -Function89331: ; 89331 -; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl. - push bc - ld c, 5 -.loop - ld a, [hli] - cp "@" - jr z, .terminator - cp " " - jr nz, .nonspace - dec c - jr nz, .loop - -.terminator - scf - jr .done - -.nonspace - and a - -.done - pop bc - ret -; 89346 - - -Function89346: ; 89346 (22:5346) - ld h, b - ld l, c - jr _incave - -Function8934a: ; 8934a - ld hl, 6 - add hl, bc -_incave: -; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl. - push bc - ld c, 5 -.loop - ld a, [hli] - cp "@" - jr z, .terminator - cp " " - jr nz, .nonspace - dec c - jr nz, .loop - -.terminator - scf - jr .done - -.nonspace - and a - -.done - pop bc - ret -; 89363 - -Function89363: ; 89363 -; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl. - ld h, b - ld l, c - jr ._incave - - ld hl, 25 - add hl, bc - -._incave - push de - ld e, 6 -.loop - ld a, [hli] - cp -1 - jr nz, .ok - ld a, [hli] - cp -1 - jr nz, .ok - dec e - jr nz, .loop - scf - jr .done - -.ok - and a - -.done - pop de - ret -; 89381 - -Function89381: ; 89381 - push bc - push de - call Function89b45 - jr c, .ok - push hl - ld a, -1 - ld bc, 8 - call ByteFill - pop hl - -.ok - pop de - ld c, 8 - call Function89193 - pop bc - ret -; 8939a - -Function8939a: ; 8939a - push bc - ld hl, 0 - add hl, bc - ld de, DefaultFlypoint - ld c, 6 - call Function89193 - pop bc - ld hl, 17 - add hl, bc - ld de, wd008 - call Function89381 - ret -; 893b3 - - -Function893b3: ; 893b3 (22:53b3) - call DisableLCD - call ClearSprites - call Functione51 - call Functione5f - call Function893ef - call Function8942b - call Function89455 - call EnableLCD - ret - -Function893cc: ; 893cc - call DisableLCD - call ClearSprites - call Functione51 - call Functione5f - call Function893ef - call Function89464 - call EnableLCD - ret -; 893e2 - - -Function893e2: ; 893e2 (22:53e2) - call Function89b1e - call Function893b3 - call Function8a5b6 - call Function8949c - ret - -Function893ef: ; 893ef - ld de, VTiles0 - ld hl, GFX_8940b - ld bc, $20 - ld a, BANK(GFX_8940b) - call FarCopyBytes - ret -; 893fe - -Function893fe: ; 893fe - call DisableLCD - call Function893ef - call EnableLCD - call DelayFrame - ret -; 8940b - -GFX_8940b: ; 8940b -INCBIN "gfx/unknown/08940b.2bpp" -; 8942b - -Function8942b: ; 8942b (22:542b) - ld de, $8020 - ld hl, MobileAdapterGFX + $7d0 - ld bc, $80 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ld de, $80a0 - ld hl, MobileAdapterGFX + $c60 - ld bc, $40 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ret - -Function89448: ; 89448 (22:5448) -; Clears the Sprites array - push af - ld hl, Sprites - ld d, $10 * 6 - xor a -.loop - ld [hli], a - dec d - jr nz, .loop - pop af - ret - -Function89455: ; 89455 (22:5455) - ld hl, MobileAdapterGFX + $7d0 - ld de, $90c0 - ld bc, $490 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ret - -Function89464: ; 89464 - ld hl, MobileAdapterGFX - ld de, VTiles2 - ld bc, $200 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ld hl, MobileAdapterGFX + $660 - ld de, $9200 - ld bc, $170 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ret -; 89481 - -Function89481: ; 89481 - ld d, 2 - call Function8934a - ret c - ld d, 0 - ld hl, 16 - add hl, bc - bit 0, [hl] - ret z - inc d - ret -; 89492 - - -Function89492: ; 89492 (22:5492) - ld d, 0 - ld a, [PlayerGender] - bit 0, a - ret z - inc d - ret - -Function8949c: ; 8949c - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - ld hl, Palette_894b3 - ld de, Unkn1Pals + 8 * 7 - ld bc, 8 - call CopyBytes - pop af - ld [rSVBK], a - ret -; 894b3 - -Palette_894b3: ; 894b3 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 -; 894bb - -Function894bb: ; 894bb - call Function894dc - push bc - call Function8956f - call Function8949c - call Function8a60d - pop bc - ret -; 894ca - - -Function894ca: ; 894ca (22:54ca) - push bc - call Function894dc - call Function895c7 - call Function8949c - call Function8a60d - call SetPalettes - pop bc - ret - -Function894dc: ; 894dc - push bc - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - ld c, d - ld b, 0 - ld hl, Unknown_89509 -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, Unkn1Pals - ld bc, 24 - call CopyBytes - ld hl, Palette_89557 - ld de, wd018 - ld bc, 24 - call CopyBytes - pop af - ld [rSVBK], a - pop bc - ret -; 89509 - -Unknown_89509: ; 89509 - dw Palette_8950f - dw Palette_89527 - dw Palette_8953f -; 8950f - -Palette_8950f: ; 8950f - RGB 31, 31, 31 - RGB 10, 17, 13 - RGB 10, 08, 22 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 10, 08, 22 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 10, 17, 13 - RGB 00, 00, 00 - -Palette_89527: ; 89527 - RGB 31, 31, 31 - RGB 30, 22, 11 - RGB 31, 08, 15 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 31, 08, 15 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 30, 22, 11 - RGB 00, 00, 00 - -Palette_8953f: ; 8953f - RGB 31, 31, 31 - RGB 15, 20, 26 - RGB 25, 07, 20 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 25, 07, 20 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 15, 20, 26 - RGB 00, 00, 00 - -Palette_89557: ; 89557 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 13, 00 - RGB 14, 08, 00 - - RGB 31, 31, 31 - RGB 16, 16, 31 - RGB 00, 00, 31 - RGB 00, 00, 00 - - RGB 19, 31, 11 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 -; 8956f - -Function8956f: ; 8956f - push bc - ld hl, 16 - add hl, bc - ld d, h - ld e, l - ld hl, $000c - add hl, bc - ld b, h - ld c, l - callba Function4e929 - ld a, c - ld [TrainerClass], a - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - ld hl, wd030 - ld a, -1 - ld [hli], a - ld a, " " - ld [hl], a - pop af - ld [rSVBK], a - ld a, [TrainerClass] - ld h, 0 - ld l, a -rept 2 - add hl, hl -endr - ld de, TrainerPalettes - add hl, de - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld de, wd032 - ld c, 4 -.loop - ld a, BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - inc hl - dec c - jr nz, .loop - ld hl, wd036 - xor a - ld [hli], a - ld [hl], a - pop af - ld [rSVBK], a - pop bc - ret -; 895c7 - - -Function895c7: ; 895c7 (22:55c7) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, 5 - ld [rSVBK], a ; $ff00+$70 - ld hl, Palette_895de - ld de, wd030 - ld bc, 8 - call CopyBytes - pop af - ld [rSVBK], a ; $ff00+$70 - ret -; 895de (22:55de) - -Palette_895de: ; 895de - RGB 31, 31, 31 - RGB 07, 07, 06 - RGB 07, 07, 06 - RGB 00, 00, 00 -; 895e6 - -Function895e6: ; 895e6 - ld a, 7 - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - ret -; 895f2 - -Function895f2: ; 895f2 - push bc - xor a - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - call Function89605 - call Function89655 - pop bc - ret -; 89605 - -Function89605: ; 89605 - hlcoord 19, 2, AttrMap - ld a, 1 - ld de, SCREEN_WIDTH - ld c, 14 -.loop - ld [hl], a - dec c - jr z, .done - add hl, de - inc a - ld [hl], a - dec a - add hl, de - dec c - jr nz, .loop - -.done - hlcoord 0, 16, AttrMap - ld c, 10 - ld a, 2 -.loop2 - ld [hli], a - dec a - ld [hli], a - inc a - dec c - jr nz, .loop2 - hlcoord 1, 11, AttrMap - ld a, 4 - ld bc, 4 - call ByteFill - ld a, 5 - ld bc, 14 - call ByteFill - ret -; 8963d - -Function8963d: ; 8963d - hlcoord 12, 3, AttrMap - ld a, 6 - ld de, SCREEN_WIDTH - lb bc, 7, 7 -.loop - push hl - ld c, 7 -.next - ld [hli], a - dec c - jr nz, .next - pop hl - add hl, de - dec b - jr nz, .loop - ret -; 89655 - -Function89655: ; 89655 - hlcoord 1, 12, AttrMap - ld de, SCREEN_WIDTH - ld a, 5 - ld b, 4 -.loop - ld c, 18 - push hl -.next - ld [hli], a - dec c - jr nz, .next - pop hl - add hl, de - dec b - jr nz, .loop - ret -; 8966c - -Function8966c: ; 8966c - push bc - call Function89688 - hlcoord 4, 0 - ld c, 8 - call Function896f5 - pop bc - ret -; 8967a - - -Function8967a: ; 8967a (22:567a) - push bc - call Function89688 - hlcoord 2, 0 - ld c, 12 - call Function896f5 - pop bc - ret - -Function89688: ; 89688 - hlcoord 0, 0 - ld a, 1 - ld e, SCREEN_WIDTH - call Function896e1 - ld a, 2 - ld e, SCREEN_WIDTH - call Function896eb - ld a, 3 - ld [hli], a - ld a, 4 - ld e, SCREEN_HEIGHT - call Function896e1 - ld a, 6 - ld [hli], a - push bc - ld c, 13 -.loop - call Function896cb - dec c - jr z, .done - call Function896d6 - dec c - jr nz, .loop - -.done - pop bc - ld a, 25 - ld [hli], a - ld a, 26 - ld e, SCREEN_HEIGHT - call Function896e1 - ld a, 28 - ld [hli], a - ld a, 2 - ld e, SCREEN_WIDTH - call Function896eb - ret -; 896cb - -Function896cb: ; 896cb - ld de, SCREEN_WIDTH - 1 - ld a, 7 - ld [hl], a - add hl, de - ld a, 9 - ld [hli], a - ret -; 896d6 - -Function896d6: ; 896d6 - ld de, SCREEN_WIDTH - 1 - ld a, 10 - ld [hl], a - add hl, de - ld a, 11 - ld [hli], a - ret -; 896e1 - -Function896e1: ; 896e1 -.loop - ld [hli], a - inc a - dec e - ret z - ld [hli], a - dec a - dec e - jr nz, .loop - ret -; 896eb - -Function896eb: ; 896eb -.loop - ld [hli], a - dec a - dec e - ret z - ld [hli], a - inc a - dec e - jr nz, .loop - ret -; 896f5 - -Function896f5: ; 896f5 - call Function8971f - call Function89736 -rept 2 - inc hl -endr - ld b, 2 - -ClearScreenArea: ; 0x896ff -; clears an area of the screen -; INPUT: -; hl = address of upper left corner of the area -; b = height -; c = width - - ld a, " " ; blank tile - ld de, 20 ; screen width -.loop - push bc - push hl -.innerLoop - ld [hli], a - dec c - jr nz, .innerLoop - pop hl - pop bc - add hl, de - dec b - jr nz, .loop - - dec hl -rept 2 - inc c -endr -.asm_89713 - ld a, $36 - ld [hli], a - dec c - ret z - ld a, $18 - ld [hli], a - dec c - jr nz, .asm_89713 ; 0x8971c $f5 - ret -; 0x8971f - -Function8971f: ; 8971f - ld a, $2c - ld [hli], a - ld a, $2d - ld [hld], a - push hl - ld de, SCREEN_WIDTH - add hl, de - ld a, $31 - ld [hli], a - ld a, $32 - ld [hld], a - add hl, de - ld a, $35 - ld [hl], a - pop hl - ret -; 89736 - -Function89736: ; 89736 - push hl -rept 2 - inc hl -endr - ld e, c - ld d, $0 - add hl, de - ld a, $2f - ld [hli], a - ld a, $30 - ld [hld], a - ld de, SCREEN_WIDTH - add hl, de - ld a, $33 - ld [hli], a - ld a, $34 - ld [hl], a - add hl, de - ld a, $1f - ld [hl], a - pop hl - ret -; 89753 - -Function89753: ; 89753 - ld a, $c - ld [hl], a - xor a - call Function89215 - ret -; 8975b - -Function8975b: ; 8975b - ld a, $1d - ld [hli], a - inc a - ld [hli], a - ld a, $d - ld [hl], a -rept 2 - dec hl -endr - ld a, $4 - ld e, $3 -.asm_89769 - call Function89215 - inc hl - dec e - jr nz, .asm_89769 - ret -; 89771 - -Function89771: ; 89771 - ld a, $12 - ld [hl], a - ld a, $3 - call Function89215 - ret -; 8977a - -Function8977a: ; 8977a - ld e, $4 - ld d, $13 -.asm_8977e - ld a, d - ld [hl], a - ld a, $4 - call Function89215 - inc hl - inc d - dec e - jr nz, .asm_8977e - ld e, $e -.asm_8978c - ld a, d - ld [hl], a - xor a - call Function89215 - inc hl - dec e - jr nz, .asm_8978c - ret -; 89797 - -Function89797: ; 89797 - push bc - ld a, $e - ld [hl], a - ld bc, SCREEN_WIDTH - add hl, bc - ld a, $11 - ld [hli], a - ld a, $10 - ld c, $8 -.asm_897a6 - ld [hli], a - dec c - jr nz, .asm_897a6 - ld a, $f - ld [hl], a - pop bc - ret -; 897af - -Function897af: ; 897af - push bc - ld hl, $0010 - add hl, bc - ld d, h - ld e, l - ld hl, $000c - add hl, bc - ld b, h - ld c, l - callba Function4e929 - ld a, c - ld [TrainerClass], a - xor a - ld [CurPartySpecies], a - ld de, $9370 - callba GetTrainerPic - pop bc - ret -; 897d5 - -Function897d5: ; 897d5 - push bc - call Function8934a - jr nc, .asm_897f3 - hlcoord 12, 3, AttrMap - xor a - ld de, SCREEN_WIDTH - lb bc, 7, 7 -.asm_897e5 - push hl - ld c, $7 -.asm_897e8 - ld [hli], a - dec c - jr nz, .asm_897e8 - pop hl - add hl, de - dec b - jr nz, .asm_897e5 - pop bc - ret - -.asm_897f3 - ld a, $37 - ld [$ffad], a - hlcoord 12, 3 - lb bc, 7, 7 - predef FillBox - call Function8963d - pop bc - ret -; 89807 - - -Function89807: ; 89807 (22:5807) - ld hl, MobileAdapterGFX + $200 - ld a, [PlayerGender] - bit 0, a - jr z, .asm_89814 - ld hl, MobileAdapterGFX + $200 + $230 -.asm_89814 - call DisableLCD - ld de, $9370 - ld bc, $230 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - call EnableLCD - call DelayFrame - ret - -Function89829: ; 89829 (22:5829) - push bc - ld bc, $705 - ld de, $14 - ld a, $37 -.asm_89832 - push bc - push hl -.asm_89834 - ld [hli], a - inc a - dec c - jr nz, .asm_89834 - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_89832 - call Function8963d - pop bc - ret - -Function89844: ; 89844 - call Function89481 - call Function894bb - call Function897af - push bc - call Function3200 - call SetPalettes - pop bc - ret -; 89856 - -Function89856: ; 89856 - push bc - call Function891b8 - pop bc - call Function895f2 - call Function8966c - call Function899d3 - call Function898aa - call Function898be - call Function898dc - call Function898f3 - push bc - ld bc, wd008 - hlcoord 2, 10 - call Function89975 - pop bc - call Function897d5 - ret -; 8987f - - -Function8987f: ; 8987f (22:587f) - call Function891b8 - call Function895f2 - call Function8967a - call Function899d3 - hlcoord 5, 1 - call Function8999c - hlcoord 13, 3 - call Function89829 - call Function899b2 - hlcoord 5, 5 - call Function899c9 - ld bc, wd008 - hlcoord 2, 10 - call Function89975 - ret - -Function898aa: ; 898aa - ld a, [MenuSelection] - and a - ret z - push bc - hlcoord 6, 1 - ld de, MenuSelection - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - pop bc - ret -; 898be - -Function898be: ; 898be - push bc - ld de, DefaultFlypoint - ld hl, DefaultFlypoint - call Function89331 - jr nc, .asm_898cd - ld de, String_89116 - -.asm_898cd - hlcoord 9, 1 - ld a, [MenuSelection] - and a - jr nz, .asm_898d7 - dec hl - -.asm_898d7 - call PlaceString - pop bc - ret -; 898dc - -Function898dc: ; 898dc - ld hl, $0006 - add hl, bc - push bc - ld d, h - ld e, l - call Function8934a - jr nc, .asm_898eb - ld de, String_89116 - -.asm_898eb - hlcoord 6, 4 - call PlaceString - pop bc - ret -; 898f3 - -Function898f3: ; 898f3 - push bc - ld hl, $000c - add hl, bc - ld d, h - ld e, l - call Function8934a - jr c, .asm_8990a - hlcoord 5, 5 - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - jr .asm_89913 - -.asm_8990a - hlcoord 5, 5 - ld de, String_89116 - call PlaceString - -.asm_89913 - pop bc - ret -; 89915 - -Function89915: ; 89915 - push bc - push hl - ld de, Unknown_89942 - ld c, $8 -.asm_8991c - ld a, [de] - ld [hl], a - ld a, $4 - call Function89215 - inc hl - inc de - dec c - jr nz, .asm_8991c - pop hl - ld b, $4 - ld c, $2b - ld a, $8 - ld de, Unknown_8994a -.asm_89932 - push af - ld a, [de] - cp [hl] - jr nz, .asm_8993b - call Function8994e - inc de - -.asm_8993b - inc hl - pop af - dec a - jr nz, .asm_89932 - pop bc - ret -; 89942 - -Unknown_89942: ; 89942 - db $24, $25, $26, " ", $27, $28, $29, $2a -Unknown_8994a: ; 8994a - db $24, $27, $29, $ff -; 8994e - -Function8994e: ; 8994e - push hl - push de - ld de, SCREEN_WIDTH - ld a, l - sub e - ld l, a - ld a, h - sbc d - ld h, a - ld a, c - ld [hl], a - ld a, b - call Function89215 - pop de - pop hl - ret -; 89962 - -Function89962: ; 89962 - push bc - ld c, $4 - ld b, $20 -.asm_89967 - ld a, b - ld [hl], a - ld a, $4 - call Function89215 - inc hl - inc b - dec c - jr nz, .asm_89967 - pop bc - ret -; 89975 - -Function89975: ; 89975 - push bc - ld e, $8 -.asm_89978 - ld a, [bc] - ld d, a - call Function8998b - swap d - inc hl - ld a, d - call Function8998b - inc bc - inc hl - dec e - jr nz, .asm_89978 - pop bc - ret -; 8998b - -Function8998b: ; 8998b - push bc - and $f - cp $a - jr nc, .asm_89997 - ld c, $f6 - add c - jr .asm_89999 - -.asm_89997 - ld a, $7f - -.asm_89999 - ld [hl], a - pop bc - ret -; 8999c - - -Function8999c: ; 8999c (22:599c) - ld de, PlayerName - call PlaceString - inc bc - ld h, b - ld l, c - ld de, String_899ac - call PlaceString - ret -; 899ac (22:59ac) - -String_899ac: ; 899ac - db "の めいし@" -; 899b2 - -Function899b2: ; 899b2 (22:59b2) - ld bc, PlayerName - call Function89346 - jr c, .asm_899bf - ld de, PlayerName - jr .asm_899c2 -.asm_899bf - ld de, String_89116 -.asm_899c2 - hlcoord 6, 4 - call PlaceString - ret - -Function899c9: ; 899c9 (22:59c9) - ld de, PlayerID - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - ret - -Function899d3: ; 899d3 - hlcoord 1, 4 - call Function89753 - hlcoord 2, 5 - call Function8975b - hlcoord 1, 9 - call Function89771 - hlcoord 1, 11 - call Function8977a - hlcoord 1, 5 - call Function89797 - hlcoord 2, 4 - call Function89962 - hlcoord 2, 9 - call Function89915 - ret -; 899fe - -Function899fe: ; 899fe - push bc - push hl - ld hl, $0019 - add hl, bc - ld b, h - ld c, l - pop hl - call Function89a0c - pop bc - ret -; 89a0c - -Function89a0c: ; 89a0c - push hl - call Function89363 - pop hl - jr c, .asm_89a1c - ld d, h - ld e, l - callba Function11c08f - ret - -.asm_89a1c - ld de, String_89153 - call PlaceString - ret -; 89a23 - - -Function89a23: ; 89a23 (22:5a23) - hlcoord 0, 11 - ld b, $4 - ld c, $12 - call Function8921f - ret - -Function89a2e: ; 89a2e (22:5a2e) - hlcoord 11, 12 - ld b, $2 - ld c, $6 - call TextBox - hlcoord 13, 13 - ld de, String_89a4e - call PlaceString - hlcoord 13, 14 - ld de, String_89a53 - call PlaceString - call Function89655 - ret -; 89a4e (22:5a4e) - -String_89a4e: ; 89a4e - db "けってい@" -; 89a53 - -String_89a53: ; 89a53 - db "やめる@" -; 89a57 - -Function89a57: ; 89a57 - call Function354b - bit 6, c - jr nz, .asm_89a78 - bit 7, c - jr nz, .asm_89a81 - bit 0, c - jr nz, .asm_89a70 - bit 1, c - jr nz, .asm_89a70 - bit 3, c - jr nz, .asm_89a74 - scf - ret - -.asm_89a70 - ld a, $1 - and a - ret - -.asm_89a74 - ld a, $2 - and a - ret - -.asm_89a78 - call Function89a9b - call nc, Function89a8a - ld a, $0 - ret - -.asm_89a81 - call Function89a93 - call nc, Function89a8a - ld a, $0 - ret -; 89a8a - -Function89a8a: ; 89a8a - push af - ld de, SFX_UNKNOWN_62 - call PlaySFX - pop af - ret -; 89a93 - -Function89a93: ; 89a93 - ld d, $28 - ld e, $1 - call Function89aa3 - ret -; 89a9b - -Function89a9b: ; 89a9b - ld d, $1 - ld e, $ff - call Function89aa3 - ret -; 89aa3 - -Function89aa3: ; 89aa3 - ld a, [MenuSelection] - ld c, a - push bc -.asm_89aa8 - ld a, [MenuSelection] - cp d - jr z, .asm_89ac0 - add e - jr nz, .asm_89ab2 - inc a - -.asm_89ab2 - ld [MenuSelection], a - call Function89ac7 - jr nc, .asm_89aa8 - call Function89ae6 - pop bc - and a - ret - -.asm_89ac0 - pop bc - ld a, c - ld [MenuSelection], a - scf - ret -; 89ac7 - -Function89ac7: ; 89ac7 - call Function89160 - call Function8931b - call Function89ad4 - call CloseSRAM - ret -; 89ad4 - -Function89ad4: ; 89ad4 - push de - call Function8932d - jr c, .asm_89ae3 - ld hl, $0011 - add hl, bc - call Function89b45 - jr c, .asm_89ae4 - -.asm_89ae3 - and a - -.asm_89ae4 - pop de - ret -; 89ae6 - -Function89ae6: ; 89ae6 - ld hl, wd031 - xor a - ld [hl], a - ld a, [MenuSelection] -.asm_89aee - cp $6 - jr c, .asm_89afc - sub $5 - ld c, a - ld a, [hl] - add $5 - ld [hl], a - ld a, c - jr .asm_89aee - -.asm_89afc - ld [wd030], a - ret -; 89b00 - - -Function89b00: ; 89b00 (22:5b00) - callba Function49351 - ret -; 89b07 (22:5b07) - -Function89b07: ; 89b07 - call Function8923c - call DelayFrame - callba Function4a3a7 - ret -; 89b14 - -Function89b14: ; 89b14 - call WhiteBGMap - call Function89b07 - call Function89b00 - ret -; 89b1e - -Function89b1e: ; 89b1e (22:5b1e) - callba Function4a485 - call Function89b00 - ret - -Function89b28: ; 89b28 (22:5b28) - call Function891de - call WhiteBGMap - call Function893e2 - call Call_ExitMenu - call Function891ab - call SetPalettes - ret - -Function89b3b: ; 89b3b (22:5b3b) - call Function8923c - callba Function48cda - ret - -Function89b45: ; 89b45 - push hl - push bc - ld c, $10 - ld e, $0 -.asm_89b4b - ld a, [hli] - ld b, a - and $f - cp $a - jr c, .asm_89b5a - ld a, c - cp $b - jr nc, .asm_89b74 - jr .asm_89b71 - -.asm_89b5a - dec c - swap b - inc e - ld a, b - and $f - cp $a - jr c, .asm_89b6c - ld a, c - cp $b - jr nc, .asm_89b74 - jr .asm_89b71 - -.asm_89b6c - inc e - dec c - jr nz, .asm_89b4b - dec e - -.asm_89b71 - scf - jr .asm_89b75 - -.asm_89b74 - and a - -.asm_89b75 - pop bc - pop hl - ret -; 89b78 - - -Function89b78: ; 89b78 (22:5b78) - push bc - ld a, [wd010] - cp $10 - jr c, .asm_89b8c - ld a, e - and a - jr z, .asm_89b89 - ld c, e -.asm_89b85 - inc hl - dec c - jr nz, .asm_89b85 -.asm_89b89 - ld a, $7f - ld [hl], a -.asm_89b8c - ld a, [wd010] - inc a - and $1f - ld [wd010], a - pop bc - ret - -Function89b97: ; 89b97 (22:5b97) - call Function89c34 - jr c, .asm_89ba0 - call Function89448 - ret -.asm_89ba0 - ld a, [wd011] - ld hl, Unknown_89bd8 - and a - jr z, .asm_89bae -.asm_89ba9 -rept 2 - inc hl -endr - dec a - jr nz, .asm_89ba9 -.asm_89bae - ld a, [hli] - ld h, [hl] - ld l, a - ld de, Sprites -.asm_89bb4 - ld a, [hli] - cp $ff - ret z - ld c, a - ld b, $0 -.asm_89bbb - push hl - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - add b - ld [de], a - inc de - ld a, $8 - add b - ld b, a - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop hl - dec c - jr nz, .asm_89bbb - ld b, $0 - ld c, $4 - add hl, bc - jr .asm_89bb4 -; 89bd8 (22:5bd8) - -Unknown_89bd8: ; 89bd8 - dw Unknown_89be0 - dw Unknown_89bf5 - dw Unknown_89c0a - dw Unknown_89c1f -; 89be0 - -Unknown_89be0: ; 89be0 - db $01, $12, $4e, $01, $00 - db $01, $19, $4e, $01, $40 - db $01, $12, $72, $01, $20 - db $01, $19, $72, $01, $60 - db $ff - -Unknown_89bf5: ; 89bf5 - db $01, $60, $16, $01, $00 - db $01, $62, $16, $01, $40 - db $01, $60, $92, $01, $20 - db $01, $62, $92, $01, $60 - db $ff - -Unknown_89c0a: ; 89c0a - db $01, $78, $66, $01, $00 - db $01, $78, $66, $01, $40 - db $01, $78, $92, $01, $20 - db $01, $78, $92, $01, $60 - db $ff - -Unknown_89c1f: ; 89c1f - db $01, $80, $66, $01, $00 - db $01, $80, $66, $01, $40 - db $01, $80, $92, $01, $20 - db $01, $80, $92, $01, $60 - db $ff -; 89c34 - -Function89c34: ; 89c34 (22:5c34) - push bc - ld a, [wd012] - ld c, a - inc a - and $f - ld [wd012], a - ld a, c - cp $8 - pop bc - ret - -Function89c44: ; 89c44 (22:5c44) - call Function89c34 - jr c, .asm_89c4f - push de - call Function89448 - pop de - ret -.asm_89c4f - ld hl, Sprites - push de - ld a, b - ld [hli], a - ld d, $8 - ld a, e - and a - ld a, c - jr z, .asm_89c60 -.asm_89c5c - add d - dec e - jr nz, .asm_89c5c -.asm_89c60 - pop de - ld [hli], a - ld a, d - ld [hli], a - xor a - ld [hli], a - ret - -Function89c67: ; 89c67 (22:5c67) - call Function354b - ld b, $0 - bit 0, c - jr z, .asm_89c74 - ld b, $1 - and a - ret -.asm_89c74 - bit 1, c - jr z, .asm_89c7a - scf - ret -.asm_89c7a - xor a - bit 6, c - jr z, .asm_89c81 - ld a, $1 -.asm_89c81 - bit 7, c - jr z, .asm_89c87 - ld a, $2 -.asm_89c87 - bit 5, c - jr z, .asm_89c8d - ld a, $3 -.asm_89c8d - bit 4, c - jr z, .asm_89c93 - ld a, $4 -.asm_89c93 - and a - ret z - dec a - ld c, a - ld d, $0 - ld hl, Unknown_89cbf - ld a, [wd02f] - and a - jr z, .asm_89ca5 - ld hl, Unknown_89ccf -.asm_89ca5 - ld a, [wd011] - and a - jr z, .asm_89cb1 - ld e, $4 -.asm_89cad - add hl, de - dec a - jr nz, .asm_89cad -.asm_89cb1 - ld e, c - add hl, de - ld a, [hl] - and a - ret z - dec a - ld [wd011], a - xor a - ld [wd012], a - ret -; 89cbf (22:5cbf) - -Unknown_89cbf: ; 89cbf - db 0, 2, 0, 0 - db 1, 3, 0, 0 - db 2, 4, 0, 0 - db 3, 0, 0, 0 - -Unknown_89ccf: ; 89ccf - db 0, 0, 0, 0 - db 0, 3, 0, 0 - db 2, 4, 0, 0 - db 3, 0, 0, 0 -; 89cdf - -Function89cdf: ; 89cdf (22:5cdf) - ld a, $10 - add b - ld b, a - ld a, $8 - add c - ld c, a - ld e, $2 - ld a, $2 - ld hl, Sprites -.asm_89cee - push af - push bc - ld d, $4 -.asm_89cf2 - ld a, b - ld [hli], a - ld a, c - ld [hli], a - ld a, e - ld [hli], a - ld a, $1 - ld [hli], a - ld a, $8 - add c - ld c, a - inc e - dec d - jr nz, .asm_89cf2 - pop bc - ld a, $8 - add b - ld b, a - pop af - dec a - jr nz, .asm_89cee - ret - -Function89d0d: ; 89d0d (22:5d0d) - call Function8923c - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - ld c, $8 - ld de, Unkn1Pals -.asm_89d1c - push bc - ld hl, Palette_89d4e - ld bc, $8 - call CopyBytes - pop bc - dec c - jr nz, .asm_89d1c - ld hl, Palette_89d56 - ld de, wd010 - ld bc, $8 - call CopyBytes - pop af - ld [rSVBK], a ; $ff00+$70 - call SetPalettes - callba Function845db - call Function89240 - ld c, $18 - call DelayFrames - call RestartMapMusic - ret -; 89d4e (22:5d4e) - -Palette_89d4e: ; 89d4e - RGB 31, 31, 31 - RGB 19, 19, 19 - RGB 15, 15, 15 - RGB 00, 00, 00 -; 89d56 - -Palette_89d56: ; 89d56 - RGB 31, 31, 31 - RGB 19, 19, 19 - RGB 19, 19, 19 - RGB 00, 00, 00 -; 89d5e - -Function89d5e: ; 89d5e (22:5d5e) - push af - call CopyMenuDataHeader - pop af - ld [wcf88], a - call Function8923c - call Function1c89 - call Function1c10 - ld hl, wcfa5 - set 7, [hl] - ret - -Function89d75: ; 89d75 (22:5d75) - push hl - call Function8923c - call _hl_ - callba Function104148 - pop hl - jr asm_89d90 - -Function89d85: ; 89d85 (22:5d85) - push hl - call Function8923c - call _hl_ - call Function3238 - pop hl - -asm_89d90: ; 89d90 (22:5d90) - call Function8923c - push hl - call _hl_ - call Function89dab - ld a, [wcfa9] - push af - call Function891ab - pop af - pop hl - jr c, .asm_89da9 - jr z, asm_89d90 - scf - ret -.asm_89da9 - and a - ret - -Function89dab: ; 89dab (22:5dab) - call Function8923c - callba Function241ba - call Function8923c - ld a, c - ld hl, wcfa8 - and [hl] - ret z - bit 0, a - jr nz, .asm_89dc7 - bit 1, a - jr nz, .asm_89dd9 - xor a - ret -.asm_89dc7 - call PlayClickSFX - ld a, [wcfa3] - ld c, a - ld a, [wcfa9] - cp c - jr z, .asm_89dd9 - call Function1bee - scf - ret -.asm_89dd9 - call PlayClickSFX - ld a, $1 - and a - ret - -Function89de0: ; 89de0 (22:5de0) - call ClearSprites - call Function89e0a - jr c, .asm_89e00 - ld c, $1 -.asm_89dea - call Function8a31c - jr z, .asm_89dfd - ld a, [wcfa9] - ld c, a - push bc - ld hl, Jumptable_89e04 - ld a, e - dec a - rst JumpTable - pop bc - jr .asm_89dea -.asm_89dfd - call Function891fe -.asm_89e00 - call Function8917a - ret - -Jumptable_89e04: ; 89e04 (22:5e04) - dw Function8a62c - dw Function8a999 - dw Function8ab93 - - -Function89e0a: ; 89e0a (22:5e0a) - call Function89160 - call Function8b3b0 - call CloseSRAM - ld hl, Jumptable_89e18 - rst JumpTable - ret - -Jumptable_89e18: ; 89e18 (22:5e18) - dw Function89e1e - dw Function8a116 - dw Function8a2aa - - -Function89e1e: ; 89e1e (22:5e1e) - call Function89160 - ld bc, $a037 - call Function8b36c - call CloseSRAM - xor a - ld [wd02d], a - -asm_89e2e: ; 89e2e (22:5e2e) - ld a, [wd02d] - ld hl, Jumptable_89e3c - rst JumpTable - ret - -Function89e36: ; 89e36 (22:5e36) - ld hl, wd02d - inc [hl] - jr asm_89e2e - -Jumptable_89e3c: ; 89e3c (22:5e3c) - dw Function89e6f - dw Function89fed - dw Function89ff6 - dw Function8a03d - dw Function89eb9 - dw Function89efd - dw Function89fce - dw Function8a04c - dw Function8a055 - dw Function8a0e6 - dw Function8a0ec - dw Function8a0f5 - dw Function89e58 - dw Function89e68 - - -Function89e58: ; 89e58 (22:5e58) - ld a, $1 - call Function8a2fe - call Function891fe - call Function893e2 - call Function89168 - and a - ret - -Function89e68: ; 89e68 (22:5e68) - call Function891fe - ld a, $1 - scf - ret - -Function89e6f: ; 89e6f (22:5e6f) - call Function891de - call Function89245 - call Function89ee1 - call Function89e9a - hlcoord 7, 4 - call Function8a58d - ld a, $5 - hlcoord 7, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 10, 4, AttrMap - call Function8a5a3 - call Function891ab - call SetPalettes - jp Function89e36 - -Function89e9a: ; 89e9a (22:5e9a) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - ld hl, Palette_89eb1 - ld de, wd028 - ld bc, $8 - call CopyBytes - pop af - ld [rSVBK], a ; $ff00+$70 - ret -; 89eb1 (22:5eb1) - -Palette_89eb1: ; 89eb1 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 27, 19, 00 - RGB 00, 00, 00 -; 89eb9 - -Function89eb9: ; 89eb9 (22:5eb9) - call Function891fe - call Function89ee1 - call Function89e9a - hlcoord 7, 4 - call Function8a58d - ld a, $5 - hlcoord 7, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 10, 4, AttrMap - call Function8a5a3 - call Function891ab - call SetPalettes - jp Function89e36 - -Function89ee1: ; 89ee1 (22:5ee1) - call WhiteBGMap - call Function893e2 - call Function8923c - callba Function4a3a7 - callba Function49384 - hlcoord 1, 0 - call Function8a53d - ret - -Function89efd: ; 89efd (22:5efd) - ld hl, wd012 - ld a, $ff - ld [hli], a - xor a -rept 4 - ld [hli], a -endr - ld [hl], a -.asm_89f09 - ld hl, wd012 - inc [hl] - ld a, [hli] - and $3 - jr nz, .asm_89f2e - ld a, [hl] - cp $4 - jr nc, .asm_89f2e - ld b, $32 - inc [hl] - ld a, [hl] - dec a - jr z, .asm_89f26 - ld c, a -.asm_89f1f - ld a, $b - add b - ld b, a - dec c - jr nz, .asm_89f1f -.asm_89f26 - ld c, $e8 - ld a, [wd013] - call Function89fa5 -.asm_89f2e - ld a, [wd013] - and a - jr z, .asm_89f58 -.asm_89f34 - call Function89f6a - ld e, a - ld a, c - cp $a8 - jr nc, .asm_89f4d - cp $46 - jr c, .asm_89f4d - ld d, $0 - dec e - ld hl, wd014 - add hl, de - set 0, [hl] - inc e - jr .asm_89f51 -.asm_89f4d - ld a, $2 - add c - ld c, a -.asm_89f51 - ld a, e - call Function89f77 - dec a - jr nz, .asm_89f34 -.asm_89f58 - call DelayFrame - ld hl, wd014 - ld c, $4 -.asm_89f60 - ld a, [hli] - and a - jr z, .asm_89f09 - dec c - jr nz, .asm_89f60 - jp Function89e36 - -Function89f6a: ; 89f6a (22:5f6a) - push af - ld de, $10 - call Function89f9a - ld a, [hli] - ld b, a - ld a, [hl] - ld c, a - pop af - ret - -Function89f77: ; 89f77 (22:5f77) - push af - ld de, $10 - call Function89f9a - ld d, $2 -.asm_89f80 - push bc - ld e, $2 -.asm_89f83 - ld a, b - ld [hli], a - ld a, c - ld [hli], a -rept 2 - inc hl -endr - ld a, $8 - add c - ld c, a - dec e - jr nz, .asm_89f83 - pop bc - ld a, $8 - add b - ld b, a - dec d - jr nz, .asm_89f80 - pop af - ret - -Function89f9a: ; 89f9a (22:5f9a) - dec a - ld hl, Sprites - and a - ret z -.asm_89fa0 - add hl, de - dec a - jr nz, .asm_89fa0 - ret - -Function89fa5: ; 89fa5 (22:5fa5) - ld de, $10 - call Function89f9a - ld e, $2 - ld d, $a -.asm_89faf - push bc - ld a, $2 -.asm_89fb2 - push af - ld a, b - ld [hli], a - ld a, c - ld [hli], a - ld a, d - inc d - ld [hli], a - ld a, $1 - ld [hli], a - ld a, $8 - add c - ld c, a - pop af - dec a - jr nz, .asm_89fb2 - pop bc - ld a, $8 - add b - ld b, a - dec e - jr nz, .asm_89faf - ret - -Function89fce: ; 89fce (22:5fce) - call Function8a5b6 - ld a, $5 - hlcoord 7, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 10, 4, AttrMap - call Function8a5a3 - call Function89448 - call SetPalettes - call Function891ab - jp Function89e36 - -Function89fed: ; 89fed (22:5fed) - ld hl, UnknownText_0x8a102 - call PrintText - jp Function89e36 - -Function89ff6: ; 89ff6 (22:5ff6) - call Function891fe - call WhiteBGMap - call Function893cc - call Function89807 - call Function89492 - call Function894ca - call Function89160 - ld hl, $a603 - ld a, $ff - ld bc, $8 - call ByteFill - ld hl, $a603 - ld de, wd008 - call Function89381 - call CloseSRAM - call Function8987f - call Function89160 - hlcoord 1, 13 - ld bc, $a007 - call Function89a0c - call CloseSRAM - call Function891ab - call Function89235 - jp Function89e36 - -Function8a03d: ; 8a03d (22:603d) - ld hl, UnknownText_0x8a107 - call Function89209 - call PrintText - call Function8920f - jp Function89e36 - -Function8a04c: ; 8a04c (22:604c) - ld hl, UnknownText_0x8a10c - call PrintText - jp Function89e36 - -Function8a055: ; 8a055 (22:6055) - ld c, $7 - ld b, $4 -.asm_8a059 - call Function8a0a1 - inc c - call Function8a0c9 - push bc - call Function8a58d - pop bc - call Function8a0de - push bc - push hl - ld a, $5 - call Function8a5a3 - pop hl -rept 3 - inc hl -endr - ld a, $6 - call Function8a5a3 - call Function3238 - pop bc - ld a, c - cp $b - jr nz, .asm_8a059 - call Function8a0a1 - hlcoord 12, 4 - call Function8a58d - ld a, $5 - hlcoord 12, 4, AttrMap - call Function8a5a3 - pop hl - ld a, $6 - hlcoord 15, 4, AttrMap - call Function8a5a3 - call Function3238 - jp Function89e36 - -Function8a0a1: ; 8a0a1 (22:60a1) - call Function8923c - push bc - call Function8a0c9 - ld e, $6 -.asm_8a0aa - push hl - ld bc, $6 - add hl, bc - ld d, [hl] - call Function8a0c1 - pop hl - ld [hl], d - call Function89215 - ld bc, $14 - add hl, bc - dec e - jr nz, .asm_8a0aa - pop bc - ret - -Function8a0c1: ; 8a0c1 (22:60c1) - push hl - ld bc, AttrMap - TileMap - add hl, bc - ld a, [hl] - pop hl - ret - -Function8a0c9: ; 8a0c9 (22:60c9) - push bc - hlcoord 0, 0 - ld de, $14 - ld a, b - and a - jr z, .asm_8a0d8 -.asm_8a0d4 - add hl, de - dec b - jr nz, .asm_8a0d4 -.asm_8a0d8 - ld d, $0 - ld e, c - add hl, de - pop bc - ret - -Function8a0de: ; 8a0de (22:60de) - call Function8a0c9 - ld de, AttrMap - TileMap - add hl, de - ret - -Function8a0e6: ; 8a0e6 (22:60e6) - call Function8b539 - jp Function89e36 - -Function8a0ec: ; 8a0ec (22:60ec) - ld hl, UnknownText_0x8a111 - call PrintText - jp Function89e36 - -Function8a0f5: ; 8a0f5 (22:60f5) - call Function8b555 - jp nc, Function8a0ff - ld hl, wd02d - inc [hl] - -Function8a0ff: ; 8a0ff (22:60ff) - jp Function89e36 -; 8a102 (22:6102) - -UnknownText_0x8a102: ; 0x8a102 - ; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile. - text_jump UnknownText_0x1c5238 - db "@" -; 0x8a107 - -UnknownText_0x8a107: ; 0x8a107 - ; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends. - text_jump UnknownText_0x1c52bc - db "@" -; 0x8a10c - -UnknownText_0x8a10c: ; 0x8a10c - ; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER. - text_jump UnknownText_0x1c531e - db "@" -; 0x8a111 - -UnknownText_0x8a111: ; 0x8a111 - ; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER. - text_jump UnknownText_0x1c5394 - db "@" -; 0x8a116 - -Function8a116: ; 8a116 (22:6116) - ld a, $1 - ld [wd030], a - ld hl, MenuDataHeader_0x8a176 - call LoadMenuDataHeader -.asm_8a121 - call Function8923c - call Function8a17b - jr c, .asm_8a16b - ld a, [wcfa9] - ld [wd030], a - dec d - jr z, .asm_8a140 - call Function8a20d - jr c, .asm_8a121 - xor a - call Function8a2fe - call Function8916e - jr .asm_8a16b -.asm_8a140 - call Function89174 - jr nz, .asm_8a14c - call Function8a241 - jr c, .asm_8a121 - jr .asm_8a15a -.asm_8a14c - call WaitSFX - ld de, SFX_TWINKLE - call PlaySFX - ld c, $10 - call DelayFrames -.asm_8a15a - call ExitMenu - call Function891de - call Function893e2 - call Function89245 - call Function89168 - and a - ret -.asm_8a16b - call Function89209 - call WriteBackup - call Function8920f - scf - ret -; 8a176 (22:6176) - -MenuDataHeader_0x8a176: ; 0x8a176 - db $40 ; flags - db 00, 14 ; start coords - db 06, 19 ; end coords -; 8a17b - -Function8a17b: ; 8a17b (22:617b) - decoord 14, 0 - ld b, $5 - ld c, $4 - call Function89b3b - ld hl, MenuDataHeader_0x8a19a - ld a, [wd030] - call Function89d5e - ld hl, Function8a1b0 - call Function89d75 - jr nc, .asm_8a198 - ld a, $0 -.asm_8a198 - ld d, a - ret -; 8a19a (22:619a) - -MenuDataHeader_0x8a19a: ; 0x8a19a - db $40 ; flags - db 00, 14 ; start coords - db 06, 19 ; end coords - dw MenuData2_0x8a1a2 - db 1 ; default option -; 0x8a1a2 - -MenuData2_0x8a1a2: ; 0x8a1a2 - db $e0 ; flags - db 3 ; items - db "ひらく@" - db "すてる@" - db "もどる@" -; 0x8a1b0 - -Function8a1b0: ; 8a1b0 - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - hlcoord 1, 14 - ld a, [wcfa9] - ld de, Strings_8a1cc - dec a - ld c, a - call Function8919e - call PlaceString - ret -; 8a1cc - -Strings_8a1cc: ; 8a1cc - db "めいし", $25, "せいりと へんしゅうを" - next "おこないます" - db "@" - - db "めいしフ,ルダー", $25, "めいしと" - next "あんしょうばんごう", $1f, "けします" - db "@" - - db "まえ", $25, "がめん", $1d, "もどります" - db "@" -; 8a20d - - -Function8a20d: ; 8a20d (22:620d) - ld hl, UnknownText_0x8a232 - call PrintText - ld a, $2 - call Function89259 - ret c - ld hl, UnknownText_0x8a237 - call PrintText - ld a, $2 - call Function89259 - ret c - xor a - call Function8a2fe - ld hl, UnknownText_0x8a23c - call PrintText - xor a - and a - ret -; 8a232 (22:6232) - -UnknownText_0x8a232: ; 0x8a232 - ; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER? - text_jump UnknownText_0x1c53ee - db "@" -; 0x8a237 - -UnknownText_0x8a237: ; 0x8a237 - ; Are you sure you want to delete it? - text_jump UnknownText_0x1c5494 - db "@" -; 0x8a23c - -UnknownText_0x8a23c: ; 0x8a23c - ; The CARD FOLDER has been deleted. - text_jump UnknownText_0x1c54b9 - db "@" -; 0x8a241 - -Function8a241: ; 8a241 (22:6241) - call LoadMenuDataHeader_0x1d75 - call Function891fe - call Function8a262 - jr nc, .asm_8a254 - call Function891fe - call Function89b28 - scf - ret -.asm_8a254 - call Function891de - call WhiteBGMap - call Call_ExitMenu - call Function891de - and a - ret - -Function8a262: ; 8a262 (22:6262) - call WhiteBGMap - call Function893e2 - call Function8923c - callba Function4a3a7 - callba Function49384 - hlcoord 1, 0 - call Function8a53d - hlcoord 12, 4 - call Function8a58d - ld a, $5 - hlcoord 12, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 15, 4, AttrMap - call Function8a5a3 - xor a - ld [wd02e], a - ld bc, wd013 - call Function8b36c - call Function8b493 - call Function891ab - call SetPalettes - call Function8b5e7 - ret - -Function8a2aa: ; 8a2aa (22:62aa) - ld hl, MenuDataHeader_0x8a2ef - call LoadMenuDataHeader - ld hl, UnknownText_0x8a2f4 - call PrintText - ld a, $1 - call Function89259 - jr nc, .asm_8a2cf - ld hl, UnknownText_0x8a2f9 - call PrintText - ld a, $2 - call Function89259 - jr c, .asm_8a2ea - call Function8a20d - jr .asm_8a2ea -.asm_8a2cf - call ExitMenu - call Function8a241 - jr c, .asm_8a2ed - ld a, $1 - call Function8a313 - call CloseSRAM - call Function891de - call Function89245 - call Function89168 - and a - ret -.asm_8a2ea - call WriteBackup -.asm_8a2ed - scf - ret -; 8a2ef (22:62ef) - -MenuDataHeader_0x8a2ef: ; 0x8a2ef - db $40 ; flags - db 12, 00 ; start coords - db 17, 19 ; end coords -; 8a2f4 - -UnknownText_0x8a2f4: ; 0x8a2f4 - ; There is an older CARD FOLDER from a previous journey. Do you want to open it? - text_jump UnknownText_0x1c54dd - db "@" -; 0x8a2f9 - -UnknownText_0x8a2f9: ; 0x8a2f9 - ; Delete the old CARD FOLDER? - text_jump UnknownText_0x1c552d - db "@" -; 0x8a2fe - -Function8a2fe: ; 8a2fe (22:62fe) - call Function8a313 - call Function89305 - ld hl, $a603 - ld bc, $8 - ld a, $ff - call ByteFill - call CloseSRAM - ret - -Function8a313: ; 8a313 (22:6313) - ld c, a - call Function89160 - ld a, c - ld [$a60b], a - ret - -Function8a31c: ; 8a31c (22:631c) - push bc - call Function8923c - callba Function4a3a7 - callba Function49384 - hlcoord 1, 0 - call Function8a53d - hlcoord 12, 4 - call Function8a58d - call Function8a3b2 - pop bc - ld a, c - ld [wcf88], a - ld [MenuSelection], a - call Function1c89 - call Function1c10 - ld hl, wcfa5 - set 7, [hl] -.asm_8a34e - call Function8a3a2 - call Function8923c - call Function8a453 - call Function8a4d3 - call Function8a4fc - call Function891ab - call SetPalettes - call Function8a383 - jr c, .asm_8a370 - jr z, .asm_8a34e -.asm_8a36a - call Function89448 - xor a - ld e, a - ret -.asm_8a370 - call Function89448 - call Function1bee - call Function8a3a2 - ld a, [MenuSelection] - cp $ff - jr z, .asm_8a36a - ld e, a - and a - ret - -Function8a383: ; 8a383 (22:6383) - callba Function241ba - ld a, c - ld hl, wcfa8 - and [hl] - ret z - bit 0, a - jr nz, .asm_8a399 - bit 1, a - jr nz, .asm_8a39e - xor a - ret -.asm_8a399 - call PlayClickSFX - scf - ret -.asm_8a39e - call PlayClickSFX - ret - -Function8a3a2: ; 8a3a2 (22:63a2) - ld a, [wcfa9] - dec a - ld hl, DefaultFlypoint - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - ld [MenuSelection], a - ret - -Function8a3b2: ; 8a3b2 (22:63b2) - ld a, $1 - ld [MenuSelection], a - call Function8a4fc - call Function8a3df - jr nc, .asm_8a3ce - decoord 0, 2 - ld b, $6 - ld c, $9 - call Function89b3b - ld hl, MenuDataHeader_0x8a435 - jr .asm_8a3db -.asm_8a3ce - decoord 0, 2 - ld b, $8 - ld c, $9 - call Function89b3b - ld hl, MenuDataHeader_0x8a40f -.asm_8a3db - call CopyMenuDataHeader - ret - -Function8a3df: ; 8a3df (22:63df) - call Function89160 - ld hl, $a603 - call Function89b45 - call CloseSRAM - ld hl, DefaultFlypoint - jr c, .asm_8a3f8 - ld de, Unknown_8a408 - call Function8a400 - scf - ret -.asm_8a3f8 - ld de, Unknown_8a40b - call Function8a400 - and a - ret - -Function8a400: ; 8a400 (22:6400) - ld a, [de] - inc de - ld [hli], a - cp $ff - jr nz, Function8a400 - ret -; 8a408 (22:6408) - -Unknown_8a408: db 1, 2, -1 -Unknown_8a40b: db 1, 2, 3, -1 - -MenuDataHeader_0x8a40f: ; 0x8a40f - db $40 ; flags - db 02, 00 ; start coords - db 11, 10 ; end coords - dw MenuData2_0x8a417 - db 1 ; default option -; 0x8a417 - -MenuData2_0x8a417: ; 0x8a417 - db $a0 ; flags - db 4 ; items - db "めいしりスト@" - db "じぶんの めいし@" - db "めいしこうかん@" - db "やめる@" -; 0x8a435 - -MenuDataHeader_0x8a435: ; 0x8a435 - db $40 ; flags - db 02, 00 ; start coords - db 09, 10 ; end coords - dw MenuData2_0x8a43d - db 1 ; default option -; 0x8a43d - -MenuData2_0x8a43d: ; 0x8a43d - db $a0 ; flags - db 3 ; items - db "めいしりスト@" - db "じぶんの めいし@" - db "やめる@" -; 0x8a453 - -Function8a453: ; 8a453 (22:6453) - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - hlcoord 1, 14 - ld de, String_8a476 - ld a, [MenuSelection] - cp $ff - jr z, .asm_8a472 - ld de, Strings_8a483 - dec a - ld c, a - call Function8919e -.asm_8a472 - call PlaceString - ret -; 8a476 (22:6476) - -String_8a476: ; 8a476 - db "まえ", $25, "がめん", $1d, "もどります@" -; 8a483 - -Strings_8a483: ; 8a483 - db "おともだち", $25, "めいしは" - next "ここ", $1d, "いれておきます@" - - db "でんわばんごう", $1f, "いれると" - next "めいしこうかん", $4a, "できます@" - - db "ともだちと じぶん", $25, "めいしを" - next "せきがいせんで こうかん します@" -; 8a4d3 - -Function8a4d3: ; 8a4d3 (22:64d3) - ld a, [MenuSelection] - cp $1 - jr nz, .asm_8a4eb - ld a, $5 - hlcoord 12, 4, AttrMap - call Function8a5a3 - ld a, $7 - hlcoord 15, 4, AttrMap - call Function8a5a3 - ret -.asm_8a4eb - ld a, $7 - hlcoord 12, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 15, 4, AttrMap - call Function8a5a3 - ret - -Function8a4fc: ; 8a4fc (22:64fc) - ld a, [MenuSelection] - cp $3 - jr nz, asm_8a529 - ld hl, wd012 - ld a, [hli] - ld b, a - ld a, [hld] - add b - ld [hl], a - ld b, a - ld c, $80 - call Function89cdf - call Function8a515 - ret - -Function8a515: ; 8a515 (22:6515) - ld hl, wd012 - ld a, [hl] - cp $38 - jr c, .asm_8a520 - cp $3c - ret c -.asm_8a520 - ld a, [wd013] - cpl - inc a - ld [wd013], a - ret - -asm_8a529: ; 8a529 (22:6529) - ld hl, wd012 - ld a, $3c - ld [hli], a - ld a, $ff - ld [hli], a - ld hl, Sprites - xor a - ld bc, $20 - call ByteFill - ret - -Function8a53d: ; 8a53d (22:653d) - push hl - ld a, $15 - ld c, $8 - ld de, $14 - call Function8a573 - ld a, $1d - ld c, $9 - call Function8a57c - inc a - ld [hl], a - call Function8a584 - pop hl - add hl, de - ld a, $1f - ld c, $8 - call Function8a573 - dec hl - ld a, $51 - ld [hli], a - ld a, $26 - ld c, $1 - call Function8a57c - ld a, $52 - ld c, $3 - call Function8a573 - ld a, $27 - ld c, $6 - -Function8a573: ; 8a573 (22:6573) - ld [hl], a - call Function8a584 - inc a - dec c - jr nz, Function8a573 - ret - -Function8a57c: ; 8a57c (22:657c) - ld [hl], a - call Function8a584 - dec c - jr nz, Function8a57c - ret - -Function8a584: ; 8a584 (22:6584) - push af - ld a, $4 - call Function89215 - inc hl - pop af - ret - -Function8a58d: ; 8a58d (22:658d) - ld a, $2d - ld bc, $606 - ld de, $14 -.asm_8a595 - push bc - push hl -.asm_8a597 - ld [hli], a - inc a - dec c - jr nz, .asm_8a597 - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_8a595 - ret - -Function8a5a3: ; 8a5a3 (22:65a3) - ld bc, $603 - ld de, $14 -.asm_8a5a9 - push bc - push hl -.asm_8a5ab - ld [hli], a - dec c - jr nz, .asm_8a5ab - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_8a5a9 - ret - -Function8a5b6: ; 8a5b6 (22:65b6) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - ld hl, Palette_8a5e5 - ld de, wd020 - ld bc, $18 - call CopyBytes - ld hl, Palette_8a5fd - ld de, Unkn2Pals - ld bc, $8 - call CopyBytes - ld hl, Palette_8a605 - ld de, wd048 - ld bc, $8 - call CopyBytes - pop af - ld [rSVBK], a ; $ff00+$70 - ret -; 8a5e5 (22:65e5) - -Palette_8a5e5: ; 8a5e5 - RGB 31, 31, 31 - RGB 27, 19, 00 - RGB 07, 11, 22 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 16, 16, 31 - RGB 27, 19, 00 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 31, 00, 00 - RGB 27, 19, 00 - RGB 00, 00, 00 -; 8a5fd - -Palette_8a5fd: ; 8a5fd - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 31, 31, 31 -; 8a605 - -Palette_8a605: ; 8a605 - RGB 00, 00, 00 - RGB 14, 18, 31 - RGB 16, 16, 31 - RGB 31, 31, 31 -; 8a60d - -Function8a60d: ; 8a60d - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_8a624 - ld de, Unkn2Pals - ld bc, $0008 - call CopyBytes - pop af - ld [rSVBK], a - ret -; 8a624 - -Palette_8a624: ; 8a624 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 -; 8a62c - -Function8a62c: ; 8a62c (22:662c) - call LoadMenuDataHeader_0x1d75 - call Function891fe - xor a - call Function8b94a - call Function8b677 -.asm_8a639 - xor a - ld [wd033], a - ld [wd032], a - ld [wd0e3], a - call Function8b7bd - ld a, c - and a - jr z, .asm_8a66a - ld [MenuSelection], a - ld b, a - ld a, [wcf77] - inc a - ld [wd034], a - push bc - call Function8b960 - ld a, c - pop bc - jr z, .asm_8a639 - ld c, a - ld hl, Jumptable_8a671 - ld a, b - ld [MenuSelection], a - ld a, c - dec a - rst JumpTable - jr .asm_8a639 -.asm_8a66a - call Function891fe - call Function89b28 - ret - -Jumptable_8a671: ; 8a671 (22:6671) - dw Function8a679 - dw Function8a6cd - dw Function8a8c3 - dw Function8a930 - - -Function8a679: ; 8a679 (22:6679) - call Function891de - call WhiteBGMap - call Function893cc - call Function89160 - call Function8931b - call Function89844 - call CloseSRAM - call Function89160 - call Function8939a - call Function89856 - hlcoord 1, 13 - call Function899fe - call Function891ab - call CloseSRAM -.asm_8a6a3 - call Function89a57 - jr c, .asm_8a6a3 - and a - jr z, Function8a679 - ld hl, Jumptable_8a6bc - dec a - rst JumpTable - jr c, Function8a679 - call Function891fe - call Function8b677 - call Function89448 - ret - -Jumptable_8a6bc: ; 8a6bc (22:66bc) - dw Function8a6c0 - dw Function8a6c5 - - -Function8a6c0: ; 8a6c0 (22:66c0) - call PlayClickSFX - and a - ret - -Function8a6c5: ; 8a6c5 (22:66c5) - call PlayClickSFX - call Function89d0d - scf - ret - -Function8a6cd: ; 8a6cd (22:66cd) - call Function891de - call WhiteBGMap - call Function893cc - call Function89160 - call Function8931b - call Function89844 - call Function8a757 - call CloseSRAM -.asm_8a6e5 - call Function89160 - call Function8931b - call Function89856 - call Function89a2e - call Function891ab - xor a - ld [wd02f], a - call CloseSRAM -.asm_8a6fb - call Function89b97 - call Function89c67 - jr c, .asm_8a718 - ld a, b - and a - jr z, .asm_8a6fb - call PlayClickSFX - call Function89448 - ld a, [wd011] - ld hl, Jumptable_8a74f - rst JumpTable - jr nc, .asm_8a6e5 - jr .asm_8a742 -.asm_8a718 - call Function89160 - call Function8a765 - call CloseSRAM - jr nc, .asm_8a73f - call Function8923c - call Function89448 - call Function89a23 - hlcoord 1, 13 - ld de, String_89135 - call PlaceString - call WaitBGMap - ld a, $2 - call Function89254 - jr c, .asm_8a6e5 -.asm_8a73f - call CloseSRAM -.asm_8a742 - call WhiteBGMap - call Function89448 - call Function891d3 - call Function8b677 - ret - -Jumptable_8a74f: ; 8a74f (22:674f) - dw Function8a78c - dw Function8a7cb - dw Function8a818 - dw Function8a8a1 - - -Function8a757: ; 8a757 (22:6757) - call Function8939a - xor a - ld [wd010], a - ld [wd011], a - ld [wd012], a - ret - -Function8a765: ; 8a765 (22:6765) - call Function8931b - push bc - ld hl, $0 - add hl, bc - ld de, DefaultFlypoint - ld c, $6 - call Function89185 - pop bc - jr nz, .asm_8a78a - push bc - ld hl, $11 - add hl, bc - ld de, wd008 - ld c, $8 - call Function89185 - pop bc - jr nz, .asm_8a78a - and a - ret -.asm_8a78a - scf - ret - -Function8a78c: ; 8a78c (22:678c) - call Function891fe - ld de, DefaultFlypoint - ld b, $5 - callba Function116c1 - call Function89160 - call Function8931b - push bc - ld hl, $0 - add hl, bc - ld d, h - ld e, l - ld hl, DefaultFlypoint - call InitName - call CloseSRAM - call DelayFrame - call Functiona57 - call Function891de - call WhiteBGMap - call Function893cc - call Function89160 - pop bc - call Function89844 - call CloseSRAM - and a - ret - -Function8a7cb: ; 8a7cb (22:67cb) - ld a, [MenuSelection] - push af - call Function891de - ld de, wd008 - ld c, $0 - callba Function17a68f - jr c, .asm_8a7f4 - ld hl, wd008 - ld a, $ff - ld bc, $8 - call ByteFill - ld h, d - ld l, e - ld de, wd008 - ld c, $8 - call Function89193 -.asm_8a7f4 - pop af - ld [MenuSelection], a - call Function891de - call WhiteBGMap - call Function893cc - call Function89160 - call Function8931b - call Function89844 - call Function89856 - call Function89a2e - call Function891ab - call CloseSRAM - and a - ret - -Function8a818: ; 8a818 (22:6818) - call Function89a23 - ld hl, DefaultFlypoint - call Function89331 - jr c, .asm_8a875 - ld hl, wd008 - call Function89b45 - jr nc, .asm_8a87a - call Function89160 - call Function8a765 - jr nc, .asm_8a863 - call Function8931b - push bc - ld hl, $0 - add hl, bc - ld d, h - ld e, l - ld hl, DefaultFlypoint - ld c, $6 - call Function89193 - pop bc - ld hl, $11 - add hl, bc - ld d, h - ld e, l - ld hl, wd008 - ld c, $8 - call Function89193 - hlcoord 1, 13 - ld de, .string_8a868 - call PlaceString - call WaitBGMap - call Functiona36 -.asm_8a863 - call CloseSRAM - scf - ret -; 8a868 (22:6868) - -.string_8a868 - db "めいし", $1f, "かきかえ まし", $22, "@" - -.asm_8a875 - ld de, String_8a88b - jr .asm_8a87d -.asm_8a87a - ld de, String_8911c -.asm_8a87d - hlcoord 1, 13 - call PlaceString - call WaitBGMap - call Functiona36 - and a - ret -; 8a88b (22:688b) - -String_8a88b: ; 8a88b - db "おともだち", $25, "なまえが" - next "かかれて いません!@" -; 8a8a1 - -Function8a8a1: ; 8a8a1 (22:68a1) - call Function89160 - call Function8a765 - call CloseSRAM - jr nc, .asm_8a8bf - call Function89a23 - hlcoord 1, 13 - ld de, String_89135 - call PlaceString - ld a, $2 - call Function89254 - jr c, .asm_8a8c1 -.asm_8a8bf - scf - ret -.asm_8a8c1 - and a - ret - -Function8a8c3: ; 8a8c3 (22:68c3) - call Function891de - call WhiteBGMap - call Function893cc - call Function89160 - call Function8931b - call Function89844 - call Function8939a - call Function89856 - call CloseSRAM - call Function891ab - hlcoord 1, 13 - ld de, String_8a919 - call PlaceString - ld a, $2 - call Function89254 - jr c, .asm_8a90f - call Function89160 - call Function892b4 - call CloseSRAM - call Function89a23 - call Function8923c - hlcoord 1, 13 - ld de, String_8a926 - call PlaceString - call WaitBGMap - call Functiona36 -.asm_8a90f - call Function89448 - call Function891fe - call Function8b677 - ret -; 8a919 (22:6919) - -String_8a919: ; 8a919 - db "このデータ", $1f, "けしますか?@" -; 8a926 - -String_8a926: ; 8a926 - db "データ", $1f, "けしまし", $22, "@" -; 8a930 - -Function8a930: ; 8a930 (22:6930) - ld a, [MenuSelection] - push af - xor a - ld [wd032], a - ld a, $1 - ld [wd033], a - ld a, [wd034] - ld [wd0e3], a -.asm_8a943 - call Function8b7bd - ld a, [wcf73] - and $1 - jr nz, .asm_8a953 - ld a, c - and a - jr nz, .asm_8a943 - pop af - ret -.asm_8a953 - call Function89160 - pop af - cp c - jr z, .asm_8a995 - push bc - ld [MenuSelection], a - call Function8931b - push bc - ld h, b - ld l, c - ld de, DefaultFlypoint - ld bc, $25 - call CopyBytes - pop de - pop bc - ld a, c - ld [MenuSelection], a - call Function8931b - push bc - ld h, b - ld l, c - ld bc, $25 - call CopyBytes - pop de - ld hl, DefaultFlypoint - ld bc, $25 - call CopyBytes - ld de, SFX_SWITCH_POKEMON - call WaitPlaySFX - ld de, SFX_SWITCH_POKEMON - call WaitPlaySFX -.asm_8a995 - call CloseSRAM - ret - -Function8a999: ; 8a999 (22:6999) - ld hl, MenuDataHeader_0x8a9c9 - call LoadMenuDataHeader - ld c, $1 -.asm_8a9a1 - call Function8a9ce - jr c, .asm_8a9bb - push bc - push de - call LoadMenuDataHeader_0x1d75 - pop de - dec e - ld a, e - ld hl, Jumptable_8a9c5 - rst JumpTable - call Function891fe - call Function89b28 - pop bc - jr .asm_8a9a1 -.asm_8a9bb - call Function89209 - call WriteBackup - call Function8920f - ret - -Jumptable_8a9c5: ; 8a9c5 (22:69c5) - dw Function8aa0a - dw Function8ab3b -; 8a9c9 (22:69c9) - -MenuDataHeader_0x8a9c9: ; 0x8a9c9 - db $40 ; flags - db 04, 11 ; start coords - db 11, 18 ; end coords -; 8a9ce - -Function8a9ce: ; 8a9ce (22:69ce) - push bc - decoord 11, 4 - ld b, $6 - ld c, $6 - call Function89b3b - pop bc - ld a, c - ld hl, MenuDataHeader_0x8a9f2 - call Function89d5e - ld hl, Function8aa09 - call Function89d85 - jr c, .asm_8a9ed - ld c, a - ld e, a - and a - ret -.asm_8a9ed - ld c, a - ld e, $0 - scf - ret -; 8a9f2 (22:69f2) - -MenuDataHeader_0x8a9f2: ; 0x8a9f2 - db $40 ; flags - db 04, 11 ; start coords - db 11, 18 ; end coords - dw MenuData2_0x8a9fa - db 1 ; default option -; 0x8a9fa - -MenuData2_0x8a9fa: ; 0x8a9fa - db $a0 ; flags - db 3 ; items - db "へんしゅう@" - db "みる@" - db "やめる@" -; 0x8aa09 - -Function8aa09: ; 8aa09 - ret -; 8aa0a - -Function8aa0a: ; 8aa0a (22:6a0a) - ld a, $1 - ld [wd02f], a - ld [wd011], a - xor a - ld [wd010], a - ld [wd012], a - call Function89160 - ld hl, $a603 - ld de, wd008 - call Function89381 - call CloseSRAM - call Function891fe - call WhiteBGMap - call Function893cc - call Function89807 - call Function89492 - call Function894ca -.asm_8aa3a - call Function8987f - call Function89a2e - call Function891ab -.asm_8aa43 - call Function89b97 - call Function89c67 - jr c, .asm_8aa61 - ld a, b - and a - jr z, .asm_8aa43 - call PlayClickSFX - call Function89448 - ld a, [wd011] - dec a - ld hl, Jumptable_8aa6d - rst JumpTable - jr nc, .asm_8aa3a - jr .asm_8aa69 -.asm_8aa61 - call Function89448 - call Function8ab11 - jr nc, .asm_8aa3a -.asm_8aa69 - call Function89448 - ret - -Jumptable_8aa6d: ; 8aa6d (22:6a6d) - dw Function8aa73 - dw Function8aab6 - dw Function8ab11 - - -Function8aa73: ; 8aa73 (22:6a73) - ld a, [MenuSelection] - ld e, a - push de - call Function891de - ld de, wd008 - ld c, $0 - callba Function17a68f - jr c, .asm_8aa9d - ld hl, wd008 - ld a, $ff - ld bc, $8 - call ByteFill - ld h, d - ld l, e - ld de, wd008 - ld c, $8 - call Function89193 -.asm_8aa9d - call Function891fe - call WhiteBGMap - call Function893cc - call Function89807 - call Function89492 - call Function894ca - pop de - ld a, e - ld [MenuSelection], a - and a - ret - -Function8aab6: ; 8aab6 (22:6ab6) - call Function89a23 - ld hl, wd008 - call Function89b45 - jr nc, Function8ab00 - call Function89160 - ld de, wd008 - ld hl, $a603 - ld c, $8 - call Function89185 - jr z, .asm_8aaeb - ld hl, wd008 - ld de, $a603 - ld c, $8 - call Function89193 - hlcoord 1, 13 - ld de, String_8aaf0 - call PlaceString - call WaitBGMap - call Functiona36 -.asm_8aaeb - call CloseSRAM - scf - ret -; 8aaf0 (22:6af0) - -String_8aaf0: ; 8aaf0 - db "あたらしい めいし", $4a, "できまし", $22, "@" -; 8ab00 - -Function8ab00: ; 8ab00 - ld de, String_8911c - hlcoord 1, 13 - call PlaceString - call WaitBGMap - call Function89235 - and a - ret - -Function8ab11: ; 8ab11 (22:6b11) - call Function89160 - ld hl, $a603 - ld de, wd008 - ld c, $8 - call Function89185 - call CloseSRAM - jr z, .asm_8ab37 - call Function89a23 - hlcoord 1, 13 - ld de, String_89135 - call PlaceString - ld a, $2 - call Function89254 - jr c, .asm_8ab39 -.asm_8ab37 - scf - ret -.asm_8ab39 - and a - ret - -Function8ab3b: ; 8ab3b (22:6b3b) - call Function891fe - call WhiteBGMap - call Function893cc - call Function89807 - call Function89492 - call Function894ca - call Function89160 - ld hl, $a603 - ld de, wd008 - call Function89381 - call CloseSRAM - call Function8987f - call Function89160 - hlcoord 1, 13 - ld bc, $a007 - call Function89a0c - call CloseSRAM - call Function891ab - call Function8ab77 - jr c, Function8ab3b - ret - -Function8ab77: ; 8ab77 (22:6b77) - call Function354b - bit 0, c - jr nz, .asm_8ab8e - bit 1, c - jr nz, .asm_8ab8e - bit 3, c - jr z, Function8ab77 - call PlayClickSFX - call Function89d0d - scf - ret -.asm_8ab8e - call PlayClickSFX - and a - ret - -Function8ab93: ; 8ab93 (22:6b93) - call WhiteBGMap - call LoadMenuDataHeader_0x1d75 - callba Function105688 - call ClearSprites - call Function891fe - call Function89b28 - ret -; 8aba9 (22:6ba9) - -Function8aba9: ; 8aba9 - ld a, $2 - call Function8b94a - ld a, $1 - ld [wd032], a -.asm_8abb3 - call Function891fe - call Function8b677 -.asm_8abb9 - call Function8b7bd - jr z, .asm_8abdf - ld a, c - ld [MenuSelection], a - call Function89160 - call Function8931b - ld hl, $0011 - add hl, bc - call Function89b45 - call CloseSRAM - jr c, .asm_8abe2 - ld de, SFX_WRONG - call WaitPlaySFX - call CloseSRAM - jr .asm_8abb9 - -.asm_8abdf - xor a - ld c, a - ret - -.asm_8abe2 - call PlayClickSFX -.asm_8abe5 - call Function891de - call WhiteBGMap - call Function893cc - call Function89160 - call Function8931b - call Function89844 - call CloseSRAM - call Function89160 - call Function8939a - call Function89856 - hlcoord 1, 13 - call Function899fe - call CloseSRAM - call Function891ab -.asm_8ac0f - call Function89a57 - jr c, .asm_8ac0f - and a - jr z, .asm_8abe5 - cp $2 - jr z, .asm_8ac0f - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - hlcoord 1, 14 - ld de, String_8ac3b - call PlaceString - ld a, $1 - call Function8925e - jp c, .asm_8abb3 - ld a, [MenuSelection] - ld c, a - ret -; 8ac3b - -String_8ac3b: ; 8ac3b - db "こ", $25, "ともだち", $1d, "でんわを" - next "かけますか?@" -; 8ac4e - -Function8ac4e: ; 8ac4e - xor a - ld [MenuSelection], a - push de - call Function891de - call WhiteBGMap - call Function893cc - pop bc - call Function89844 - call Function8939a - call Function89856 - hlcoord 1, 13 - call Function899fe - call Function891ab - ret -; 8ac70 - -Function8ac70: ; 8ac70 - push de - ld a, $3 - call Function8b94a - -Function8ac76: ; 8ac76 - call Function891fe - call Function8b677 - -Function8ac7c: ; 8ac7c - call Function8b7bd - jr z, .asm_8acf0 - ld a, c - ld [wd02f], a - ld [MenuSelection], a - call Function89160 - call Function8931b - call Function8932d - call CloseSRAM - jr nc, .asm_8acb0 - call Function89160 - ld hl, $0011 - add hl, bc - call Function89b45 - call CloseSRAM - jr nc, .asm_8accc - call Function89160 - call Function892b7 - call CloseSRAM - jr .asm_8accc - -.asm_8acb0 - call Function8ad0b - jr c, Function8ac76 - and a - jr nz, .asm_8accc - call Function89160 - ld h, b - ld l, c - ld d, $0 - ld e, $6 - add hl, de - ld d, h - ld e, l - pop hl - ld c, $1f - call Function89193 - jr .asm_8ace4 - -.asm_8accc - pop hl - call Function89160 - ld d, b - ld e, c - ld c, $6 - call Function89193 - ld a, $6 - add e - ld e, a - ld a, $0 - adc d - ld d, a - ld c, $1f - call Function89193 - -.asm_8ace4 - call CloseSRAM - call Functione51 - ld a, [wd02f] - ld c, a - and a - ret - -.asm_8acf0 - ld hl, UnknownText_0x8ad06 - call PrintText - ld a, $2 - call Function89259 - jp c, Function8ac7c - call Functione51 - pop de - ld c, $0 - scf - ret -; 8ad06 - -UnknownText_0x8ad06: ; 0x8ad06 - ; Finish registering CARDS? - text_jump UnknownText_0x1c554a - db "@" -; 0x8ad0b - -Function8ad0b: ; 8ad0b -.asm_8ad0b - ld a, [MenuSelection] - ld [wd02f], a - call Function891de - call WhiteBGMap - call Function893cc - call Function89160 - call Function8931b - push bc - call Function89844 - call Function8939a - call Function89856 - hlcoord 1, 13 - call Function899fe - call CloseSRAM - call Function891ab - pop bc -.asm_8ad37 - push bc - call Function89a57 - pop bc - jr c, .asm_8ad37 - and a - jr z, .asm_8ad0b - cp $2 - jr z, .asm_8ad37 - call Function8923c - push bc - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - ld de, String_8ad89 - hlcoord 1, 14 - call PlaceString - ld a, $2 - call Function8925e - jr c, .asm_8ad87 - call Function8923c - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - ld de, String_8ad9c - hlcoord 1, 14 - call PlaceString - ld a, $1 - call Function8925e - jr c, .asm_8ad84 - ld a, $0 - jr .asm_8ad86 - -.asm_8ad84 - ld a, $1 - -.asm_8ad86 - and a - -.asm_8ad87 - pop bc - ret -; 8ad89 - -String_8ad89: ; 8ad89 - db "こ", $25, "めいし", $1f, "けして" - next "いれかえますか?@" -; 8ad9c - -String_8ad9c: ; 8ad9c - db "おともだち", $25, "なまえを" - next "のこして おきますか?@" -; 8adb3 - -Function8adb3: ; 8adb3 - call Function891de - call Function8a262 - push af - call Function891de - pop af - ret -; 8adbf - -Function8adbf: ; 8adbf - call Function89160 - ld hl, $a603 - call Function89b45 - call CloseSRAM - ret -; 8adcc - -Function8adcc: ; 8adcc - call Function89160 - call Function8b3b0 - call CloseSRAM - ret nc - cp $2 - ret z - scf - ret -; 8addb - - -SpecialHoOhChamber: ; 0x8addb - ld hl, PartySpecies - ld a, [hl] - cp HO_OH ; is Ho-oh the first Pokémon in the party? - jr nz, .done ; if not, we're done - call GetSecondaryMapHeaderPointer - ld de, EVENT_WALL_OPENED_IN_HO_OH_CHAMBER - ld b, SET_FLAG - call EventFlagAction -.done - ret -; 0x8adef - -SpecialOmanyteChamber: ; 8adef - call GetSecondaryMapHeaderPointer - ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER - ld b, CHECK_FLAG - call EventFlagAction - ld a, c - and a - jr nz, .nope - - ld a, WATER_STONE - ld [CurItem], a - ld hl, NumItems - call CheckItem - jr c, .open - - ld a, [PartyCount] - ld b, a - inc b -.loop - dec b - jr z, .nope - ld a, b - dec a - ld [CurPartyMon], a - push bc - ld a, PartyMon1Item - PartyMon1 - call GetPartyParamLocation - pop bc - ld a, [hl] - cp WATER_STONE - jr nz, .loop - -.open - call GetSecondaryMapHeaderPointer - ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER - ld b, SET_FLAG - call EventFlagAction - -.nope - ret -; 8ae30 - -SpecialAerodactylChamber: ; 8ae30 - push de - push bc - - call GetSecondaryMapHeaderPointer - ld a, h - cp RuinsofAlphAerodactylChamber_SecondMapHeader / $100 - jr nz, .nope - ld a, l - cp RuinsofAlphAerodactylChamber_SecondMapHeader % $100 - jr nz, .nope - - ld de, EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER - ld b, SET_FLAG - call EventFlagAction - - scf - jr .done - -.nope - and a - -.done - pop bc - pop de - ret -; 8ae4e - -SpecialKabutoChamber: ; 8ae4e - push hl - push de - - call GetSecondaryMapHeaderPointer - ld a, h - cp RuinsofAlphKabutoChamber_SecondMapHeader / $100 - jr nz, .done - ld a, l - cp RuinsofAlphKabutoChamber_SecondMapHeader % $100 - jr nz, .done - - ld de, EVENT_WALL_OPENED_IN_KABUTO_CHAMBER - ld b, SET_FLAG - call EventFlagAction - -.done - pop de - pop hl - ret -; 8ae68 - -Special_DisplayUnownWords: ; 8ae68 - ld a, [ScriptVar] - ld hl, MenuDataHeader_0x8aed5 - and a - jr z, .asm_8ae79 - - ld d, $0 - ld e, $5 -.asm_8ae75 - add hl, de - dec a - jr nz, .asm_8ae75 - -.asm_8ae79 - call LoadMenuDataHeader - xor a - ld [hBGMapMode], a - call Function1cbb - call UpdateSprites - call Function321c - call Function1cfd - inc hl - ld d, $0 - ld e, $14 -rept 2 - add hl, de -endr - ld a, [ScriptVar] - ld c, a - ld de, Unknown_8aebc - and a - jr z, .asm_8aea5 -.asm_8ae9c - ld a, [de] - inc de - cp $ff - jr nz, .asm_8ae9c - dec c - jr nz, .asm_8ae9c - -.asm_8aea5 - call Function8af09 - ld bc, AttrMap - TileMap - add hl, bc - call Function8aee9 - call Function3200 - call Functiona36 - call PlayClickSFX - call WriteBackup - ret -; 8aebc - -Unknown_8aebc: ; 8aebc - db $08, $44, $04, $00, $2e, $08, $ff - db $26, $20, $0c, $0e, $46, $ff - db $4c, $00, $46, $08, $42, $ff - db $0e, $2c, $64, $2c, $0e, $ff -; 8aed5 - -MenuDataHeader_0x8aed5: ; 0x8aed5 - db $40 ; flags - db 04, 03 ; start coords - db 09, 16 ; end coords - -MenuDataHeader_0x8aeda: ; 0x8aeda - db $40 ; flags - db 04, 04 ; start coords - db 09, 15 ; end coords - -MenuDataHeader_0x8aedf: ; 0x8aedf - db $40 ; flags - db 04, 04 ; start coords - db 09, 15 ; end coords - -MenuDataHeader_0x8aee4: ; 0x8aee4 - db $40 ; flags - db 04, 04 ; start coords - db 09, 15 ; end coords -; 8aee9 - -Function8aee9: ; 8aee9 -.asm_8aee9 - ld a, [de] - cp $ff - ret z - cp $60 - ld a, $d - jr c, .asm_8aef5 - ld a, $5 - -.asm_8aef5 - call Function8aefd -rept 2 - inc hl -endr - inc de - jr .asm_8aee9 -; 8aefd - -Function8aefd: ; 8aefd - push hl - ld [hli], a - ld [hld], a - ld b, $0 - ld c, $14 - add hl, bc - ld [hli], a - ld [hl], a - pop hl - ret -; 8af09 - -Function8af09: ; 8af09 - push hl - push de -.asm_8af0b - ld a, [de] - cp $ff - jr z, .asm_8af19 - ld c, a - call Function8af1c -rept 2 - inc hl -endr - inc de - jr .asm_8af0b - -.asm_8af19 - pop de - pop hl - ret -; 8af1c - -Function8af1c: ; 8af1c - push hl - ld a, c - cp $60 - jr z, .asm_8af3b - cp $62 - jr z, .asm_8af4b - cp $64 - jr z, .asm_8af5b - ld [hli], a - inc a - ld [hld], a - dec a - ld b, $0 - ld c, $14 - add hl, bc - ld c, $10 - add c - ld [hli], a - inc a - ld [hl], a - pop hl - ret - -.asm_8af3b - ld [hl], $5b - inc hl - ld [hl], $5c - ld bc, $0013 - add hl, bc - ld [hl], $4d - inc hl - ld [hl], $5d - pop hl - ret - -.asm_8af4b - ld [hl], $4e - inc hl - ld [hl], $4f - ld bc, $0013 - add hl, bc - ld [hl], $5e - inc hl - ld [hl], $5f - pop hl - ret - -.asm_8af5b - ld [hl], $2 - inc hl - ld [hl], $3 - ld bc, $0013 - add hl, bc - ld [hl], $3 - inc hl - ld [hl], $2 - pop hl - ret -; 8af6b - -SpecialBuenasPassword: ; 8af6b - xor a - ld [wcf76], a - ld hl, MenuDataHeader_0x8afa9 - call CopyMenuDataHeader - ld a, [wdc4a] - ld c, a - callba GetBuenasPassword - ld a, [wcf83] - add c - add $2 - ld [wcf85], a - call Function1c00 - call Function1e5d - callba Function4ae5e - ld b, $0 - ld a, [MenuSelection] - ld c, a - ld a, [wdc4a] - and $3 - cp c - jr nz, .asm_8afa4 - ld b, $1 - -.asm_8afa4 - ld a, b - ld [ScriptVar], a - ret -; 8afa9 - -MenuDataHeader_0x8afa9: ; 0x8afa9 - db $40 ; flags - db 00, 00 ; start coords - db 07, 10 ; end coords - dw MenuData2_0x8afb2 - db 1 ; default option -; 0x8afb1 - - db 0 - -MenuData2_0x8afb2: ; 0x8afb2 - db $81 ; flags - db 0 ; items - dw Unknown_8afb8 - dw Function8afbd -; 0x8afb4 - -Unknown_8afb8: ; 8afb8 - db 3 - db 0, 1, 2 - db -1 - -Function8afbd: ; 8afbd - push de - ld a, [wdc4a] - and $f0 - ld c, a - ld a, [MenuSelection] - add c - ld c, a - callba GetBuenasPassword - pop hl - call PlaceString - ret -; 8afd4 - -SpecialBuenaPrize: ; 8afd4 - xor a - ld [wd0e4], a - ld a, $1 - ld [MenuSelection], a - call Function8b0d6 - call Function8b090 - ld hl, UnknownText_0x8b072 - call PrintText - jr .asm_8aff1 - -.asm_8afeb - ld hl, UnknownText_0x8b072 - call Function105a - -.asm_8aff1 - call DelayFrame - call UpdateSprites - call Function8b097 - call Function8b0e2 - jr z, .asm_8b05f - ld [wcf75], a - call GetBuenaPrize - ld a, [hl] - ld [wd265], a - call GetItemName - ld hl, UnknownText_0x8b077 - call Function105a - call YesNoBox - jr c, .asm_8afeb - ld a, [wcf75] - call GetBuenaPrize - inc hl - ld a, [hld] - ld c, a - ld a, [wdc4b] - cp c - jr c, .asm_8b047 - ld a, [hli] - push hl - ld [CurItem], a - ld a, $1 - ld [wd10c], a - ld hl, NumItems - call ReceiveItem - pop hl - jr nc, .asm_8b04c - ld a, [hl] - ld c, a - ld a, [wdc4b] - sub c - ld [wdc4b], a - call Function8b097 - jr .asm_8b051 - -.asm_8b047 - ld hl, UnknownText_0x8b081 - jr .asm_8b05a - -.asm_8b04c - ld hl, UnknownText_0x8b086 - jr .asm_8b05a - -.asm_8b051 - ld de, SFX_TRANSACTION - call PlaySFX - ld hl, UnknownText_0x8b07c - -.asm_8b05a - call Function105a - jr .asm_8afeb - -.asm_8b05f - call WriteBackup - call WriteBackup - ld hl, UnknownText_0x8b08b - call PrintText - call Functiona36 - call PlayClickSFX - ret -; 8b072 - -UnknownText_0x8b072: ; 0x8b072 - ; Which prize would you like? - text_jump UnknownText_0x1c589f - db "@" -; 0x8b077 - -UnknownText_0x8b077: ; 0x8b077 - ; ? Is that right? - text_jump UnknownText_0x1c58bc - db "@" -; 0x8b07c - -UnknownText_0x8b07c: ; 0x8b07c - ; Here you go! - text_jump UnknownText_0x1c58d1 - db "@" -; 0x8b081 - -UnknownText_0x8b081: ; 0x8b081 - ; You don't have enough points. - text_jump UnknownText_0x1c58e0 - db "@" -; 0x8b086 - -UnknownText_0x8b086: ; 0x8b086 - ; You have no room for it. - text_jump UnknownText_0x1c58ff - db "@" -; 0x8b08b - -UnknownText_0x8b08b: ; 0x8b08b - ; Oh. Please come back again! - text_jump UnknownText_0x1c591a - db "@" -; 0x8b090 - -Function8b090: ; 8b090 - ld hl, MenuDataHeader_0x8b0d1 - call LoadMenuDataHeader - ret -; 8b097 - -Function8b097: ; 8b097 - ld de, wdc4b - call Function8b09e - ret -; 8b09e - -Function8b09e: ; 8b09e - push de - xor a - ld [hBGMapMode], a - ld hl, MenuDataHeader_0x8b0d1 - call CopyMenuDataHeader - call Function1cbb - call UpdateSprites - call Function1cfd - ld bc, $0015 - add hl, bc - ld de, String_8b0ca - call PlaceString - ld h, b - ld l, c - inc hl - ld a, $7f - ld [hli], a - ld [hld], a - pop de - lb bc, 1, 2 - call PrintNum - ret -; 8b0ca - -String_8b0ca: - db "Points@" -; 8b0d1 - -MenuDataHeader_0x8b0d1: ; 0x8b0d1 - db $40 ; flags - db 11, 00 ; start coords - db 13, 11 ; end coords -; 8b0d6 - -Function8b0d6: ; 8b0d6 - ld hl, MenuDataHeader_0x8b0dd - call LoadMenuDataHeader - ret -; 8b0dd - -MenuDataHeader_0x8b0dd: ; 0x8b0dd - db $40 ; flags - db 00, 00 ; start coords - db 11, 17 ; end coords -; 8b0e2 - -Function8b0e2: ; 8b0e2 - ld hl, MenuDataHeader_0x8b113 - call CopyMenuDataHeader - ld a, [MenuSelection] - ld [wcf88], a - xor a - ld [wcf76], a - ld [hBGMapMode], a - call Function352f - call UpdateSprites - call Function350c - ld a, [MenuSelection] - ld c, a - ld a, [wcfa9] - ld [MenuSelection], a - ld a, [wcf73] - cp $2 - jr z, .asm_8b111 - ld a, c - and a - ret nz - -.asm_8b111 - xor a - ret -; 8b113 - -MenuDataHeader_0x8b113: ; 0x8b113 - db $40 ; flags - db 01, 01 ; start coords - db 09, 16 ; end coords - dw MenuData2_0x8b11c - db 1 ; default option -; 0x8b11b - - db 0 - -MenuData2_0x8b11c: ; 0x8b11c - db $10 ; flags - db 4 ; items - db $d, $1 - dbw BANK(Unknown_8b129), Unknown_8b129 - dbw BANK(BuenaPrizeItem), BuenaPrizeItem - dbw BANK(BuenaPrizePoints), BuenaPrizePoints -; 8b129 - -Unknown_8b129: ; 8b129 - db 9 - db 1, 2, 3, 4, 5, 6, 7, 8, 9, $ff -; 8b134 - -BuenaPrizeItem: ; 8b134 - ld a, [MenuSelection] - call GetBuenaPrize - ld a, [hl] - push de - ld [wd265], a - call GetItemName - pop hl - call PlaceString - ret -; 8b147 - -BuenaPrizePoints: ; 8b147 - ld a, [MenuSelection] - call GetBuenaPrize - inc hl - ld a, [hl] - ld c, "0" - add c - ld [de], a - ret -; 8b154 - -GetBuenaPrize: ; 8b154 - dec a - ld hl, BuenaPrizes - ld b, 0 - ld c, a -rept 2 - add hl, bc -endr - ret -; 8b15e - -BuenaPrizes: ; 8b15e - db ULTRA_BALL, 2 - db FULL_RESTORE, 2 - db NUGGET, 3 - db RARE_CANDY, 3 - db PROTEIN, 5 - db IRON, 5 - db CARBOS, 5 - db CALCIUM, 5 - db HP_UP, 5 -; 8b170 - - +INCLUDE "misc/mobile_22.asm" +INCLUDE "event/unown.asm" +INCLUDE "event/buena.asm" INCLUDE "event/dratini.asm" - - -Function8b1e1: ; 8b1e1 - ld de, Unknown_8b1ed - call Function8b25b - ret z - call Function8b231 - scf - ret -; 8b1ed - -Unknown_8b1ed: ; 8b1ed - db 2 - dw Unknown_8b1f2 - dw Unknown_8b1f6 - -Unknown_8b1f2: ; 8b1f2 - dw Function8b2bb - dw Function8b2c1 -; 8b1f6 - -Unknown_8b1f6: ; 8b1f6 - dw UnknownText_0x8b1fc - dw UnknownText_0x8b23d - dw UnknownText_0x8b242 -; 8b1fc - -UnknownText_0x8b1fc: ; 0x8b1fc - ; Excuse me! - text_jump UnknownText_0x1c5937 - db "@" -; 0x8b201 - -CheckForBattleTowerRules: ; 8b201 - ld hl, StringBuffer2 - ld [hl], "3" - inc hl - ld [hl], "@" - ld de, CheckForBattleTowerRules_FunctionsText - call Function8b25b - ret z - call Function8b231 - scf - ret -; 8b215 - -CheckForBattleTowerRules_FunctionsText: ; 8b215 - db 4 - dw CheckForBattleTowerRules_Functions - dw CheckForBattleTowerRules_Text - -CheckForBattleTowerRules_Functions: ; 8b21a - dw Function_PartyCountEq3 - dw Function8b2e2 - dw Function8b32a - dw Function_HasPartyAnEgg -; 8b222 - -CheckForBattleTowerRules_Text: ; 8b222 - dw JumpText_ExcuseMeYoureNotReady - dw JumbText_OnlyThreePkmnMayBeEntered - dw JumpText_ThePkmnMustAllBeDifferentKinds - dw JumpText_ThePkmnMustNotHoldTheSameItems - dw JumpText_YouCantTakeAnEgg -; 8b22c - -JumpText_ExcuseMeYoureNotReady: ; 0x8b22c - ; Excuse me. You're not ready. - text_jump Text_ExcuseMeYoureNotReady - db "@" -; 0x8b231 - -Function8b231: ; 8b231 - ld hl, UnknownText_0x8b238 - call PrintText - ret -; 8b238 - -UnknownText_0x8b238: ; 0x8b238 - ; Please return when you're ready. - text_jump UnknownText_0x1c5962 - db "@" -; 0x8b23d - -UnknownText_0x8b23d: ; 0x8b23d - ; You need at least three #MON. - text_jump UnknownText_0x1c5983 - db "@" -; 0x8b242 - -UnknownText_0x8b242: ; 0x8b242 - ; Sorry, an EGG doesn't qualify. - text_jump UnknownText_0x1c59a3 - db "@" -; 0x8b247 - -JumbText_OnlyThreePkmnMayBeEntered: ; 0x8b247 - ; Only three #MON may be entered. - text_jump Text_OnlyThreePkmnMayBeEntered - db "@" -; 0x8b24c - -JumpText_ThePkmnMustAllBeDifferentKinds: ; 0x8b24c - ; The @ #MON must all be different kinds. - text_jump Text_ThePkmnMustAllBeDifferentKinds - db "@" -; 0x8b251 - -JumpText_ThePkmnMustNotHoldTheSameItems: ; 0x8b251 - ; The @ #MON must not hold the same items. - text_jump Text_ThePkmnMustNotHoldTheSameItems - db "@" -; 0x8b256 - -JumpText_YouCantTakeAnEgg: ; 0x8b256 - ; You can't take an EGG! - text_jump Text_YouCantTakeAnEgg - db "@" -; 0x8b25b - -Function8b25b: ; 8b25b - ld bc, $0000 -.asm_8b25e - call Function8b26c - call c, Function8b28e - call Function8b276 - jr nz, .asm_8b25e - ld a, b - and a - ret -; 8b26c - -Function8b26c: ; 8b26c - push de - push bc - call Function8b27a - ld a, c - rst JumpTable - pop bc - pop de - ret -; 8b276 - -Function8b276: ; 8b276 - inc c - ld a, [de] - cp c - ret -; 8b27a - -Function8b27a: ; 8b27a - inc de - ld a, [de] - ld l, a - inc de - ld a, [de] - ld h, a - ret -; 8b281 - -Function8b281: ; 8b281 -rept 3 - inc de -endr - ld a, [de] - ld l, a - inc de - ld a, [de] - ld h, a - ret -; 8b28a - -Function8b28a: ; 8b28a - ld a, [hli] - ld h, [hl] - ld l, a - ret -; 8b28e - -Function8b28e: ; 8b28e - push de - push bc - ld a, b - and a - call z, Function8b29d - pop bc - call Function8b2a9 - ld b, $1 - pop de - ret -; 8b29d - -Function8b29d: ; 8b29d - push de - call Function8b281 - call Function8b28a - call PrintText - pop de - ret -; 8b2a9 - -Function8b2a9: ; 8b2a9 - push bc - call Function8b281 -rept 2 - inc hl -endr - ld b, $0 -rept 2 - add hl, bc -endr - call Function8b28a - call PrintText - pop bc - ret -; 8b2bb - -Function8b2bb: ; 8b2bb - ld a, [PartyCount] - cp 3 - ret -; 8b2c1 - -Function8b2c1: ; 8b2c1 - ld hl, PartyCount - ld a, [hli] - ld b, $0 - ld c, a -.asm_8b2c8 - ld a, [hli] - cp EGG - jr z, .asm_8b2ce - inc b - -.asm_8b2ce - dec c - jr nz, .asm_8b2c8 - ld a, [PartyCount] - cp b - ret z - ld a, b - cp 3 - ret -; 8b2da - -Function_PartyCountEq3: ; 8b2da - ld a, [PartyCount] - cp 3 - ret z - scf - ret -; 8b2e2 - -Function8b2e2: ; 8b2e2 - ld hl, PartyMon1Species - call Function8b2e9 - ret -; 8b2e9 - -Function8b2e9: ; 8b2e9 - ld de, PartyCount - ld a, [de] - inc de - dec a - jr z, .asm_8b314 - ld b, a -.asm_8b2f2 - push hl - push de - ld c, b - call Function8b322 - jr z, .asm_8b30c - ld a, [hl] - and a - jr z, .asm_8b30c -.asm_8b2fe - call Function8b31a - call Function8b322 - jr z, .asm_8b309 - cp [hl] - jr z, .asm_8b316 - -.asm_8b309 - dec c - jr nz, .asm_8b2fe - -.asm_8b30c - pop de - pop hl - call Function8b31a - dec b - jr nz, .asm_8b2f2 - -.asm_8b314 - and a - ret - -.asm_8b316 - pop de - pop hl - scf - ret -; 8b31a - -Function8b31a: ; 8b31a - push bc - ld bc, PartyMon2 - PartyMon1 - add hl, bc - inc de - pop bc - ret -; 8b322 - -Function8b322: ; 8b322 - push bc - ld b, a - ld a, [de] - cp EGG - ld a, b - pop bc - ret -; 8b32a - -Function8b32a: ; 8b32a - ld hl, PartyMon1Item - call Function8b2e9 - ret -; 8b331 - -Function_HasPartyAnEgg: ; 8b331 - ld hl, PartyCount - ld a, [hli] - ld c, a -.asm_8b336 - ld a, [hli] - cp EGG - jr z, .asm_8b340 - dec c - jr nz, .asm_8b336 - and a - ret - -.asm_8b340 - scf - ret -; 8b342 - - -Function8b342:: ; 8b342 - call GetSecondaryMapHeaderPointer - ld d, h - ld e, l - xor a -.asm_8b348 - push af - ld hl, Jumptable_8b354 - rst JumpTable - pop af - inc a - cp 3 - jr nz, .asm_8b348 - ret -; 8b354 - -Jumptable_8b354: ; 8b354 - dw Function8b35a - dw Function8b35b - dw Function8b35c -; 8b35a - -Function8b35a: ; 8b35a - ret -; 8b35b - -Function8b35b: ; 8b35b - ret -; 8b35c - -Function8b35c: ; 8b35c - ret -; 8b35d - -Function8b35d: ; 8b35d - ld a, h - cp d - ret nz - ld a, l - cp e - ret -; 8b363 - -Function8b363: ; 8b363 - push bc - callba Function10632f - pop bc - ret -; 8b36c - -Function8b36c: ; 8b36c (22:736c) - push bc - ld h, b - ld l, c - ld bc, $4 - ld a, $ff - call ByteFill - pop bc - ret - -Function8b379: ; 8b379 (22:7379) - push bc - ld a, c - add e - ld c, a - ld a, $0 - adc b - ld b, a - ld a, [bc] - ld d, a - pop bc - ret - -Function8b385: ; 8b385 (22:7385) - push bc - ld a, c - add e - ld c, a - ld a, $0 - adc b - ld b, a - ld a, d - ld [bc], a - pop bc - ret - -Function8b391: ; 8b391 (22:7391) - push bc - ld e, $0 - ld d, $4 -.asm_8b396 - ld a, [bc] - inc bc - cp $ff - jr z, .asm_8b3a2 - inc e - dec d - jr nz, .asm_8b396 - dec e - scf -.asm_8b3a2 - pop bc - ret - -Function8b3a4: ; 8b3a4 (22:73a4) - push de - push bc - ld d, b - ld e, c - ld c, $4 - call Function89185 - pop bc - pop de - ret - -Function8b3b0: ; 8b3b0 (22:73b0) - ld bc, $a037 - ld a, [$a60b] - and a - jr z, .asm_8b3c2 - cp $3 - jr nc, .asm_8b3c2 - call Function8b391 - jr c, .asm_8b3c9 -.asm_8b3c2 - call Function8b36c - xor a - ld [$a60b], a -.asm_8b3c9 - ld a, [$a60b] - ret - -Function8b3cd: ; 8b3cd (22:73cd) - push de - push bc - ld e, $4 -.asm_8b3d1 - ld a, [bc] - inc bc - call Function8998b - inc hl - dec e - jr nz, .asm_8b3d1 - pop bc - pop de - ret - -Function8b3dd: ; 8b3dd (22:73dd) - push de - push bc - call Function354b - ld a, c - pop bc - pop de - bit 0, a - jr nz, .asm_8b3f7 - bit 1, a - jr nz, .asm_8b40e - bit 6, a - jr nz, .asm_8b429 - bit 7, a - jr nz, .asm_8b443 - and a - ret -.asm_8b3f7 - ld a, e - cp $3 - jr z, .asm_8b407 - inc e - ld d, $0 - call Function8b385 - xor a - ld [wd010], a - ret -.asm_8b407 - call PlayClickSFX - ld d, $0 - scf - ret -.asm_8b40e - ld a, e - and a - jr nz, .asm_8b41e - call PlayClickSFX - ld d, $ff - call Function8b385 - ld d, $1 - scf - ret -.asm_8b41e - ld d, $ff - call Function8b385 - dec e - xor a - ld [wd010], a - ret -.asm_8b429 - call Function8b379 - ld a, d - cp $a - jr c, .asm_8b433 - ld d, $9 -.asm_8b433 - inc d - ld a, d - cp $a - jr c, .asm_8b43b - ld d, $0 -.asm_8b43b - call Function8b385 - xor a - ld [wd010], a - ret -.asm_8b443 - call Function8b379 - ld a, d - cp $a - jr c, .asm_8b44d - ld d, $0 -.asm_8b44d - ld a, d - dec d - and a - jr nz, .asm_8b454 - ld d, $9 -.asm_8b454 - call Function8b385 - xor a - ld [wd010], a - ret - -Function8b45c: ; 8b45c (22:745c) - call Function8b36c - xor a - ld [wd010], a - ld [wd012], a - call Function8b391 - ld d, $0 - call Function8b385 -.asm_8b46e - call Function8923c - call Function8b493 - call Function8b4cc - call Function8b518 - call Function89b78 - push bc - call Function8b4fd - call Function89c44 - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - pop bc - call Function8b3dd - jr nc, .asm_8b46e - ld a, d - and a - ret z - scf - ret - -Function8b493: ; 8b493 (22:7493) - push bc - call Function8923c - call Function8b521 - ld hl, Jumptable_8b4a0 - pop bc - rst JumpTable - ret - -Jumptable_8b4a0: ; 8b4a0 (22:74a0) - dw Function8b4a4 - dw Function8b4b8 - - -Function8b4a4: ; 8b4a4 (22:74a4) - push bc - push de - call Function8b4d8 - call TextBox - pop de - pop bc - call Function8b4cc - call Function8b518 - call Function8b3cd - ret - -Function8b4b8: ; 8b4b8 (22:74b8) - push bc - push de - call Function8b4ea - call Function89b3b - pop de - pop bc - call Function8b4cc - call Function8b518 - call Function8b3cd - ret - -Function8b4cc: ; 8b4cc (22:74cc) - push bc - ld hl, Unknown_8b529 - call Function8b50a - ld a, [hli] - ld h, [hl] - ld l, a - pop bc - ret - -Function8b4d8: ; 8b4d8 (22:74d8) - ld hl, Unknown_8b529 - call Function8b50a - push hl -rept 2 - inc hl -endr - ld a, [hli] - ld b, a - ld a, [hl] - ld c, a - pop hl - ld a, [hli] - ld h, [hl] - ld l, a - ret - -Function8b4ea: ; 8b4ea (22:74ea) - ld hl, Unknown_8b529 - call Function8b50a - push hl -rept 2 - inc hl -endr - ld a, [hli] - ld b, a - ld a, [hl] - ld c, a - pop hl - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ret - -Function8b4fd: ; 8b4fd (22:74fd) - ld hl, Unknown_8b529 + 4 - call Function8b50a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld d, a - ret - -Function8b50a: ; 8b50a (22:750a) - ld a, [wd02e] - and a - ret z - ld b, $0 - ld c, $8 -.asm_8b513 - add hl, bc - dec a - jr nz, .asm_8b513 - ret - -Function8b518: ; 8b518 (22:7518) - push de - ld d, $0 - ld e, $14 - add hl, de - inc hl - pop de - ret - -Function8b521: ; 8b521 (22:7521) - ld hl, Unknown_8b529 + 7 - call Function8b50a - ld a, [hl] - ret -; 8b529 (22:7529) - -Unknown_8b529: ; 8b529 - dwcoord 2, 5 - db 1, 4, $20, $49, 0, 1 - dwcoord 7, 4 - db 1, 4, $48, $41, 0, 0 -; 8b539 - -Function8b539: ; 8b539 (22:7539) - ld bc, wd017 - call Function8b36c - xor a - ld [wd012], a - ld [wd02e], a - call Function8b493 - call Function8b4fd - ld e, $0 - call Function89c44 - call Function3238 - ret - -Function8b555: ; 8b555 (22:7555) - ld hl, UnknownText_0x8b5ce - call PrintText - ld bc, wd017 - call Function8b45c - jr c, .asm_8b5c8 - call Function89448 - ld bc, wd017 - call Function8b493 - ld bc, wd017 - call Function8b664 - jr nz, .asm_8b57c - ld hl, UnknownText_0x8b5e2 - call PrintText - jr Function8b555 -.asm_8b57c - ld hl, UnknownText_0x8b5d3 - call PrintText - ld bc, wd013 - call Function8b45c - jr c, Function8b555 - ld bc, wd017 - ld hl, wd013 - call Function8b3a4 - jr z, .asm_8b5a6 - call Function89448 - ld bc, wd013 - call Function8b493 - ld hl, UnknownText_0x8b5d8 - call PrintText - jr .asm_8b57c -.asm_8b5a6 - call Function89160 - ld hl, wd013 - ld de, $a037 - ld bc, $4 - call CopyBytes - call CloseSRAM - call Function89448 - ld bc, wd013 - call Function8b493 - ld hl, UnknownText_0x8b5dd - call PrintText - and a -.asm_8b5c8 - push af - call Function89448 - pop af - ret -; 8b5ce (22:75ce) - -UnknownText_0x8b5ce: ; 0x8b5ce - ; Please enter any four-digit number. - text_jump UnknownText_0x1bc187 - db "@" -; 0x8b5d3 - -UnknownText_0x8b5d3: ; 0x8b5d3 - ; Enter the same number to confirm. - text_jump UnknownText_0x1bc1ac - db "@" -; 0x8b5d8 - -UnknownText_0x8b5d8: ; 0x8b5d8 - ; That's not the same number. - text_jump UnknownText_0x1bc1cf - db "@" -; 0x8b5dd - -UnknownText_0x8b5dd: ; 0x8b5dd - ; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER. - text_jump UnknownText_0x1bc1eb - db "@" -; 0x8b5e2 - -UnknownText_0x8b5e2: ; 0x8b5e2 - ; 0000 is invalid! - text_jump UnknownText_0x1bc23e - db "@" -; 0x8b5e7 - -Function8b5e7: ; 8b5e7 (22:75e7) - ld bc, wd013 - call Function8b36c - xor a - ld [wd012], a - ld [wd02e], a - call Function8b493 - call Function891ab - call Function8b4fd - ld e, $0 - call Function89c44 -.asm_8b602 - ld hl, UnknownText_0x8b642 - call PrintText - ld bc, wd013 - call Function8b45c - jr c, .asm_8b63c - call Function89448 - ld bc, wd013 - call Function8b493 - call Function89160 - ld hl, $a037 - call Function8b3a4 - call CloseSRAM - jr z, .asm_8b635 - ld hl, UnknownText_0x8b647 - call PrintText - ld bc, wd013 - call Function8b36c - jr .asm_8b602 -.asm_8b635 - ld hl, UnknownText_0x8b64c - call PrintText - and a -.asm_8b63c - push af - call Function89448 - pop af - ret -; 8b642 (22:7642) - -UnknownText_0x8b642: ; 0x8b642 - ; Enter the CARD FOLDER PASSCODE. - text_jump UnknownText_0x1bc251 - db "@" -; 0x8b647 - -UnknownText_0x8b647: ; 0x8b647 - ; Incorrect PASSCODE! - text_jump UnknownText_0x1bc272 - db "@" -; 0x8b64c - -UnknownText_0x8b64c: ; 0x8b64c - ; CARD FOLDER open.@ @ - text_jump UnknownText_0x1bc288 - start_asm -; 0x8b651 - -Function8b651: ; 8b651 - ld de, SFX_TWINKLE - call PlaySFX - call WaitSFX - ld c, $8 - call DelayFrames - ld hl, .string_8b663 - ret -.string_8b663 - db "@" -; 8b664 - -Function8b664: ; 8b664 (22:7664) - push bc - ld de, $4 -.asm_8b668 - ld a, [bc] - cp $0 - jr nz, .asm_8b66e - inc d -.asm_8b66e - inc bc - dec e - jr nz, .asm_8b668 - pop bc - ld a, d - cp $4 - ret - -Function8b677: ; 8b677 - call WhiteBGMap - call DisableLCD - call Function8b690 - call Function8b6bb - call Function8b6ed - call EnableLCD - call Function891ab - call SetPalettes - ret -; 8b690 - -Function8b690: ; 8b690 - ld hl, GFX_17afa5 + $514 - ld de, VTiles2 - ld bc, $160 - ld a, BANK(GFX_17afa5) - call FarCopyBytes - ld hl, GFX_17afa5 + $514 + $160 - $10 - ld de, $9610 - ld bc, $10 - ld a, BANK(GFX_17afa5) - call FarCopyBytes - ld hl, GFX_17afa5 + $514 + $160 - ld de, $8ee0 - ld bc, $10 - ld a, BANK(GFX_17afa5) - call FarCopyBytes - ret -; 8b6bb - -Function8b6bb: ; 8b6bb - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_8b6d5 - ld de, Unkn1Pals - ld bc, $0018 - call CopyBytes - pop af - ld [rSVBK], a - call Function8949c - ret -; 8b6d5 - -Palette_8b6d5: ; 8b6d5 - RGB 31, 31, 31 - RGB 31, 21, 00 - RGB 14, 07, 03 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 31, 21, 00 - RGB 22, 09, 17 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 31, 21, 00 - RGB 06, 24, 08 - RGB 00, 00, 00 -; 8b6ed - -Function8b6ed: ; 8b6ed - hlcoord 0, 0, AttrMap - ld bc, $012c - xor a - call ByteFill - hlcoord 0, 14, AttrMap - ld bc, $0050 - ld a, $7 - call ByteFill - ret -; 8b703 - -Function8b703: ; 8b703 - call Function8923c - push hl - ld a, $c - ld [hli], a - inc a - call Function8b73e - inc a - ld [hl], a - pop hl - push hl - push bc - ld de, SCREEN_WIDTH - add hl, de -.asm_8b717 - push hl - ld a, $f - ld [hli], a - ld a, $7f - call Function8b73e - ld a, $11 - ld [hl], a - pop hl - ld de, SCREEN_WIDTH - add hl, de - dec b - jr nz, .asm_8b717 - call Function8b732 - pop bc - pop hl - jr Function8b744 -; 8b732 - -Function8b732: ; 8b732 - ld a, $12 - ld [hli], a - ld a, $13 - call Function8b73e - ld a, $14 - ld [hl], a - ret -; 8b73e - -Function8b73e: ; 8b73e - ld d, c -.asm_8b73f - ld [hli], a - dec d - jr nz, .asm_8b73f - ret -; 8b744 - -Function8b744: ; 8b744 - ld de, AttrMap - TileMap - add hl, de -rept 2 - inc b -endr -rept 2 - inc c -endr - xor a -.asm_8b74d - push bc - push hl -.asm_8b74f - ld [hli], a - dec c - jr nz, .asm_8b74f - pop hl - ld de, SCREEN_WIDTH - add hl, de - pop bc - dec b - jr nz, .asm_8b74d - ret -; 8b75d - -Function8b75d: ; 8b75d - call Function8923c - hlcoord 0, 0 - ld a, $1 - ld bc, SCREEN_WIDTH - call ByteFill - hlcoord 0, 1 - ld a, $2 - ld [hl], a - hlcoord 9, 1 - ld c, $b - call Function8b788 - hlcoord 1, 1 - ld a, $4 - ld e, $8 -.asm_8b780 - ld [hli], a - inc a - dec e - jr nz, .asm_8b780 - jr Function8b79e -; 8b787 - -Function8b787: ; 8b787 - ret -; 8b788 - -Function8b788: ; 8b788 -.asm_8b788 - ld a, $2 - ld [hli], a - dec c - ret z - ld a, $1 - ld [hli], a - dec c - ret z - ld a, $3 - ld [hli], a - dec c - ret z - ld a, $1 - ld [hli], a - dec c - jr nz, .asm_8b788 - ret -; 8b79e - -Function8b79e: ; 8b79e - hlcoord 0, 1, AttrMap - ld a, $1 - ld [hli], a - hlcoord 9, 1, AttrMap - ld e, $b -.asm_8b7a9 - ld a, $2 - ld [hli], a - dec e - ret z - xor a - ld [hli], a - dec e - ret z - ld a, $1 - ld [hli], a - dec e - ret z - xor a - ld [hli], a - dec e - jr nz, .asm_8b7a9 - ret -; 8b7bd - -Function8b7bd: ; 8b7bd - call Function8b855 - ld hl, MenuDataHeader_0x8b867 - call CopyMenuDataHeader - ld a, [wd030] - ld [wcf88], a - ld a, [wd031] - ld [wd0e4], a - ld a, [wd032] - and a - jr z, .asm_8b7e0 - ld a, [wcf81] - set 3, a - ld [wcf81], a - -.asm_8b7e0 - ld a, [wd0e3] - and a - jr z, .asm_8b7ea - dec a - ld [wcf77], a - -.asm_8b7ea - hlcoord 0, 2 - ld b, $b - ld c, $12 - call Function8b703 - call Function8b75d - call UpdateSprites - call Function89209 - call Function350c - call Function8920f - ld a, [wcf73] - cp $2 - jr z, .asm_8b823 - cp $20 - jr nz, .asm_8b813 - call Function8b832 - jr .asm_8b7ea - -.asm_8b813 - cp $10 - jr nz, .asm_8b81c - call Function8b83e - jr .asm_8b7ea - -.asm_8b81c - ld a, [MenuSelection] - cp $ff - jr nz, .asm_8b824 - -.asm_8b823 - xor a - -.asm_8b824 - ld c, a - ld a, [wcfa9] - ld [wd030], a - ld a, [wd0e4] - ld [wd031], a - ret -; 8b832 - -Function8b832: ; 8b832 - ld a, [wd0e4] - ld hl, wcf92 - sub [hl] - jr nc, Function8b84b - xor a - jr Function8b84b -; 8b83e - -Function8b83e: ; 8b83e - ld a, [wd0e4] - ld hl, wcf92 - add [hl] - cp $24 - jr c, Function8b84b - ld a, $24 - -Function8b84b: ; 8b84b - ld [wd0e4], a - ld a, [wcfa9] - ld [wcf88], a - ret -; 8b855 - -Function8b855: ; 8b855 - ld a, $28 - ld hl, DefaultFlypoint - ld [hli], a - ld c, $28 - xor a -.asm_8b85e - inc a - ld [hli], a - dec c - jr nz, .asm_8b85e - ld a, $ff - ld [hl], a - ret -; 8b867 - -MenuDataHeader_0x8b867: ; 0x8b867 - db $40 ; flags - db 03, 01 ; start coords - db 13, 18 ; end coords - dw MenuData2_0x8b870 - db 1 ; default option -; 0x8b86f - - db 0 - -MenuData2_0x8b870: ; 0x8b870 - db $3c ; flags - db 5 ; items - db 3, 1 - dbw 0, wd002 - dbw BANK(Function8b880), Function8b880 - dbw BANK(Function8b88c), Function8b88c - dbw BANK(Function8b8c8), Function8b8c8 -; 8b880 - -Function8b880: ; 8b880 - ld h, d - ld l, e - ld de, MenuSelection - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ret -; 8b88c - -Function8b88c: ; 8b88c - call Function89160 - ld h, d - ld l, e - push hl - ld de, String_89116 - call Function8931b - call Function8932d - jr c, .asm_8b8a3 - ld hl, $0000 - add hl, bc - ld d, h - ld e, l - -.asm_8b8a3 - pop hl - push hl - call PlaceString - pop hl - ld d, $0 - ld e, $6 - add hl, de - push hl - ld de, String_89116 - call Function8931b - call Function8934a - jr c, .asm_8b8c0 - ld hl, $0006 - add hl, bc - ld d, h - ld e, l - -.asm_8b8c0 - pop hl - call PlaceString - call CloseSRAM - ret -; 8b8c8 - -Function8b8c8: ; 8b8c8 - hlcoord 0, 14 - ld b, $2 - ld c, $12 - call TextBox - ld a, [wd033] - ld b, 0 - ld c, a - ld hl, Unknown_8b903 -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld d, h - ld e, l - hlcoord 1, 16 - call PlaceString - hlcoord 0, 13 - ld a, $f - ld [hl], a - hlcoord 19, 13 - ld a, $11 - ld [hl], a - ld a, [wd0e4] - cp $24 - ret c - hlcoord 0, 13 - ld c, $12 - call Function8b732 - ret -; 8b903 - -Unknown_8b903: ; 8b903 - dw String_8b90b - dw String_8b919 - dw String_8b92a - dw String_8b938 - -String_8b90b: db "めいしを えらんでください@" ; Please select a noun. -String_8b919: db "どの めいしと いれかえますか?@" ; OK to swap with any noun? -String_8b92a: db "あいてを えらんでください@" ; Please select an opponent. -String_8b938: db "いれる ところを えらんでください@" ; Please select a location. -; 8b94a - -Function8b94a: ; 8b94a - ld [wd033], a - xor a - ld [wd0e4], a - ld [wd032], a - ld [wd0e3], a - ld [wd031], a - ld a, $1 - ld [wd030], a - ret -; 8b960 - - -Function8b960: ; 8b960 (22:7960) - ld hl, MenuDataHeader_0x8b9ac - call LoadMenuDataHeader - call Function8b9e9 - jr c, .asm_8b97a - hlcoord 11, 0 - ld b, $6 - ld c, $7 - call Function8b703 - ld hl, MenuDataHeader_0x8b9b1 - jr .asm_8b987 -.asm_8b97a - hlcoord 11, 0 - ld b, $a - ld c, $7 - call Function8b703 - ld hl, MenuDataHeader_0x8b9ca -.asm_8b987 - ld a, $1 - call Function89d5e - ld hl, Function8b9ab - call Function89d85 - call ExitMenu - jr c, .asm_8b99c - call Function8b99f - jr nz, .asm_8b99d -.asm_8b99c - xor a -.asm_8b99d - ld c, a - ret - -Function8b99f: ; 8b99f (22:799f) - ld hl, DefaultFlypoint - dec a - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - cp $ff - ret -; 8b9ab (22:79ab) - -Function8b9ab: ; 8b9ab - ret -; 8b9ac - -MenuDataHeader_0x8b9ac: ; 0x8b9ac - db $40 ; flags - db 00, 11 ; start coords - db 11, 19 ; end coords - -MenuDataHeader_0x8b9b1: ; 0x8b9b1 - db $40 ; flags - db 00, 11 ; start coords - db 07, 19 ; end coords - dw MenuData2_0x8b9b9 - db 1 ; default option -; 0x8b9b9 - -MenuData2_0x8b9b9: ; 0x8b9b9 - db $a0 ; flags - db 3 ; items - db "へんしゅう@" ; EDIT - db "いれかえ@" ; REPLACE - db "やめる@" ; QUIT -; 0x8b9ca - -MenuDataHeader_0x8b9ca: ; 0x8b9ca - db $40 ; flags - db 00, 11 ; start coords - db 11, 19 ; end coords - dw MenuData2_0x8b9d2 - db 1 ; default option -; 0x8b9d2 - -MenuData2_0x8b9d2: ; 0x8b9d2 - db $a0 ; flags - db 5 ; items - db "みる@" ; VIEW - db "へんしゅう@" ; EDIT - db "いれかえ@" ; REPLACE - db "けす@" ; ERASE - db "やめる@" ; QUIT -; 0x8b9e9 - -Function8b9e9: ; 8b9e9 (22:79e9) - call Function89160 - call Function8931b - call Function8932d - jr nc, .asm_8b9f6 - jr .asm_8b9ff -.asm_8b9f6 - ld hl, $11 - add hl, bc - call Function89b45 - jr c, .asm_8ba08 -.asm_8b9ff - call Function892b4 - and a - ld de, Unknown_8ba1c - jr .asm_8ba0c -.asm_8ba08 - ld de, Unknown_8ba1f - scf -.asm_8ba0c - push af - ld hl, DefaultFlypoint -.asm_8ba10 - ld a, [de] - inc de - ld [hli], a - cp $ff - jr nz, .asm_8ba10 - call CloseSRAM - pop af - ret -; 8ba1c (22:7a1c) - -Unknown_8ba1c: ; 8b1ac - db 2, 4, -1 - -Unknown_8ba1f: ; 8ba1f - db 1, 2, 4, 3, -1 -; 8ba24 +INCLUDE "event/battle_tower.asm" +INCLUDE "misc/mobile_22_2.asm" SECTION "bank23", ROMX, BANK[$23] -Function8c000: ; 8c000 -Function8c000_2: +Predef35: ; 8c000 +Predef36: ret ; 8c001 -Function8c001:: ; 8c001 - call UpdateTime - ld a, [TimeOfDay] - ld [CurTimeOfDay], a - call GetTimePalette - ld [TimeOfDayPal], a - ret -; 8c011 - - -_TimeOfDayPals:: ; 8c011 -; return carry if pals are changed - -; forced pals? - ld hl, wd846 - bit 7, [hl] - jr nz, .dontchange - -; do we need to bother updating? - ld a, [TimeOfDay] - ld hl, CurTimeOfDay - cp [hl] - jr z, .dontchange - -; if so, the time of day has changed - ld a, [TimeOfDay] - ld [CurTimeOfDay], a - -; get palette id - call GetTimePalette - -; same palette as before? - ld hl, TimeOfDayPal - cp [hl] - jr z, .dontchange - -; update palette id - ld [TimeOfDayPal], a - - -; save bg palette 8 - ld hl, Unkn1Pals + 8 * 7 ; Unkn1Pals + 7 pals - -; save wram bank - ld a, [rSVBK] - ld b, a -; wram bank 5 - ld a, 5 - ld [rSVBK], a - -; push palette - ld c, 4 ; NUM_PAL_COLORS -.push - ld d, [hl] - inc hl - ld e, [hl] - inc hl - push de - dec c - jr nz, .push - -; restore wram bank - ld a, b - ld [rSVBK], a - - -; update sgb pals - ld b, $9 - call GetSGBLayout - - -; restore bg palette 8 - ld hl, wd03f ; last byte in Unkn1Pals - -; save wram bank - ld a, [rSVBK] - ld d, a -; wram bank 5 - ld a, 5 - ld [rSVBK], a - -; pop palette - ld e, 4 ; NUM_PAL_COLORS -.pop - pop bc - ld [hl], c - dec hl - ld [hl], b - dec hl - dec e - jr nz, .pop - -; restore wram bank - ld a, d - ld [rSVBK], a - -; update palettes - call _UpdateTimePals - call DelayFrame - -; successful change - scf - ret - -.dontchange -; no change occurred - and a - ret -; 8c070 - - -_UpdateTimePals:: ; 8c070 - ld c, $9 ; normal - call GetTimePalFade - call DmgToCgbTimePals - ret -; 8c079 - -FadeInBGMap:: ; 8c079 - ld c, $12 - call GetTimePalFade - ld b, $4 - call Function8c16d - ret -; 8c084 - -FadeBlackBGMap:: ; 8c084 - call Function8c0c1 - ld c, $9 - call GetTimePalFade - ld b, $4 - call Function8c15e - ret -; 8c092 - -Special_BattleTowerFade: ; 8c092 - call Function8c0c1 - ld c, $9 - call GetTimePalFade - ld b, $4 -.asm_8c09c - call DmgToCgbTimePals -rept 3 - inc hl -endr - ld c, $7 - call DelayFrames - dec b - jr nz, .asm_8c09c - ret -; 8c0ab - -Special_FadeInQuickly: ; 8c0ab - ld c, $0 - call GetTimePalFade - ld b, $4 - call Function8c15e - ret -; 8c0b6 - -Special_FadeBlackQuickly: ; 8c0b6 - ld c, $9 - call GetTimePalFade - ld b, $4 - call Function8c16d - ret -; 8c0c1 - - -Function8c0c1: ; 8c0c1 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Unkn1Pals - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld hl, Unkn1Pals + 8 - ld c, $6 -.asm_8c0d4 - ld a, e - ld [hli], a - ld a, d - ld [hli], a -rept 6 - inc hl -endr - dec c - jr nz, .asm_8c0d4 - pop af - ld [rSVBK], a - ret -; 8c0e5 - -brightlevel: MACRO - db (\1 << 6) | (\2 << 4) | (\3 << 2) | \4 -ENDM - -Function8c0e5: ; 8c0e5 - ld hl, .BrightnessLevels - ld a, [wc2d0] - cp $4 ; Dark cave, needs Flash - jr z, .DarkCave - and $7 - add l - ld l, a - ld a, $0 - adc h - ld h, a - ld a, [hl] - ld [wd847], a - ret -.DarkCave - ld a, [StatusFlags] - bit 2, a - jr nz, .UsedFlash - ld a, $ff ; 3, 3, 3, 3 - ld [wd847], a - ret -.UsedFlash - ld a, $aa ; 2, 2, 2, 2 - ld [wd847], a - ret -; 8c10f (23:410f) - -.BrightnessLevels: ; 8c10f - brightlevel 3, 2, 1, 0 - brightlevel 1, 1, 1, 1 - brightlevel 2, 2, 2, 2 - brightlevel 0, 0, 0, 0 - brightlevel 3, 3, 3, 3 - brightlevel 3, 2, 1, 0 - brightlevel 3, 2, 1, 0 - brightlevel 3, 2, 1, 0 -; 8c117 - -GetTimePalette: ; 8c117 - ld a, [TimeOfDay] - ld e, a - ld d, 0 - ld hl, .TimePalettes -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 8c126 - -.TimePalettes - dw .MorningPalette - dw .DayPalette - dw .NitePalette - dw .DarknessPalette - -.MorningPalette - ld a, [wd847] - and %00000011 ; 0 - ret - -.DayPalette - ld a, [wd847] - and %00001100 ; 1 - srl a - srl a - ret - -.NitePalette - ld a, [wd847] - and %00110000 ; 2 - swap a - ret - -.DarknessPalette - ld a, [wd847] - and %11000000 ; 3 - rlca - rlca - ret -; 8c14e - - -DmgToCgbTimePals: ; 8c14e - push hl - push de - ld a, [hli] - call DmgToCgbBGPals - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call DmgToCgbObjPals - pop de - pop hl - ret -; 8c15e - -Function8c15e: ; 8c15e -.asm_8c15e - call DmgToCgbTimePals -rept 3 - inc hl -endr - ld c, $2 - call DelayFrames - dec b - jr nz, .asm_8c15e - ret -; 8c16d - -Function8c16d: ; 8c16d -.asm_8c16d - call DmgToCgbTimePals -rept 3 - dec hl -endr - ld c, $2 - call DelayFrames - dec b - jr nz, .asm_8c16d - ret -; 8c17c - - -GetTimePalFade: ; 8c17c -; check cgb - ld a, [hCGB] - and a - jr nz, .cgb - -; else: dmg - -; index - ld a, [TimeOfDayPal] - and %11 - -; get fade table - push bc - ld c, a - ld b, $0 - ld hl, .dmgfades -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - pop bc - -; get place in fade table - ld b, $0 - add hl, bc - ret - -.cgb - ld hl, .cgbfade - ld b, $0 - add hl, bc - ret - -.dmgfades - dw .morn - dw .day - dw .nite - dw .darkness - -.morn - db %11111111, %11111111, %11111111 - db %11111110, %11111110, %11111110 - db %11111001, %11100100, %11100100 - db %11100100, %11010000, %11010000 - db %10010000, %10000000, %10000000 - db %01000000, %01000000, %01000000 - db %00000000, %00000000, %00000000 - -.day - db %11111111, %11111111, %11111111 - db %11111110, %11111110, %11111110 - db %11111001, %11100100, %11100100 - db %11100100, %11010000, %11010000 - db %10010000, %10000000, %10000000 - db %01000000, %01000000, %01000000 - db %00000000, %00000000, %00000000 - -.nite - db %11111111, %11111111, %11111111 - db %11111110, %11111110, %11111110 - db %11111001, %11100100, %11100100 - db %11101001, %11010000, %11010000 - db %10010000, %10000000, %10000000 - db %01000000, %01000000, %01000000 - db %00000000, %00000000, %00000000 - -.darkness - db %11111111, %11111111, %11111111 - db %11111110, %11111110, %11111111 - db %11111110, %11100100, %11111111 - db %11111101, %11010000, %11111111 - db %11111101, %10000000, %11111111 - db %00000000, %01000000, %00000000 - db %00000000, %00000000, %00000000 - -.cgbfade - db %11111111, %11111111, %11111111 - db %11111110, %11111110, %11111110 - db %11111001, %11111001, %11111001 - db %11100100, %11100100, %11100100 - db %10010000, %10010000, %10010000 - db %01000000, %01000000, %01000000 - db %00000000, %00000000, %00000000 -; 8c20f - - -Function8c20f: ; 8c20f - call Function8c26d - ld a, [rBGP] - ld [wcfc7], a - ld a, [rOBP0] - ld [wcfc8], a - ld a, [rOBP1] - ld [wcfc9], a - call DelayFrame - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $1 -.asm_8c22b - ld a, [wcf63] - bit 7, a - jr nz, .asm_8c23a - call Function8c314 - call DelayFrame - jr .asm_8c22b - -.asm_8c23a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Unkn1Pals - ld bc, $0040 - xor a - call ByteFill - pop af - ld [rSVBK], a - ld a, $ff - ld [wcfc7], a - call DmgToCgbBGPals - call DelayFrame - xor a - ld [hLCDStatCustom], a - ld [hLCDStatCustom + 1], a - ld [hLCDStatCustom + 2], a - ld [hSCY], a - ld a, $1 - ld [rSVBK], a - pop af - ld [hVBlank], a - call DelayFrame - ret -; 8c26d - -Function8c26d: ; 8c26d - ld a, [InLinkBattle] - cp $4 - jr z, .asm_8c288 - callba Function6454 - call UpdateSprites - call DelayFrame - call Function8c2a0 - call Function8cf4f - jr .asm_8c28b - -.asm_8c288 - call Function8c2aa - -.asm_8c28b - ld a, $90 - ld [hWY], a - call DelayFrame - xor a - ld [hBGMapMode], a - ld hl, wcf63 - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - call Function8c6d8 - ret -; 8c2a0 - -Function8c2a0: ; 8c2a0 - call Function8c2aa - ld hl, VBGMap0 - call Function8c2cf - ret -; 8c2aa - -Function8c2aa: ; 8c2aa - ld de, GFX_8c2f4 - ld hl, $8fe0 - ld b, BANK(GFX_8c2f4) - ld c, 2 - call Request2bpp - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - ld de, GFX_8c2f4 - ld hl, $8fe0 - ld b, BANK(GFX_8c2f4) - ld c, 2 - call Request2bpp - pop af - ld [rVBK], a - ret -; 8c2cf - -Function8c2cf: ; 8c2cf - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push hl - ld hl, w6_d000 - ld bc, $28 * $10 -.asm_8c2dd - ld [hl], $ff - inc hl - dec bc - ld a, c - or b - jr nz, .asm_8c2dd - pop hl - ld de, w6_d000 - ld b, BANK(Function8c2cf) ; BANK(@) - ld c, $28 - call Request2bpp - pop af - ld [rSVBK], a - ret -; 8c2f4 - -GFX_8c2f4: ; 8c2f4 -INCBIN "gfx/unknown/08c2f4.2bpp" - - -Function8c314: ; 8c314 - ld a, [wcf63] - ld e, a - ld d, 0 - ld hl, Jumptable_8c323 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 8c323 - -Jumptable_8c323: ; 8c323 (23:4323) - dw Function8c365 - dw Function8c5dc - dw Function8c3a1 - dw Function8c3ab - dw Function8c3ab - dw Function8c3ab - dw Function8c39c - dw Function8c3e8 - dw Function8c408 - dw Function8c5dc - dw Function8c3a1 - dw Function8c3ab - dw Function8c3ab - dw Function8c3ab - dw Function8c39c - dw Function8c768 - dw Function8c5dc - dw Function8c3a1 - dw Function8c3ab - dw Function8c3ab - dw Function8c3ab - dw Function8c39c - dw Function8c43d - dw Function8c44f - dw Function8c5dc - dw Function8c3a1 - dw Function8c3ab - dw Function8c3ab - dw Function8c3ab - dw Function8c39c - dw Function8c578 - dw Function8c58f - dw Function8c393 - - -Function8c365: ; 8c365 (23:4365) - ld de, 0 - ld a, [BattleMonLevel] - add 3 - ld hl, EnemyMonLevel - cp [hl] - jr nc, .asm_8c375 - set 0, e -.asm_8c375 - ld a, [wPermission] - cp $4 - jr z, .asm_8c386 - cp $5 - jr z, .asm_8c386 - cp $7 - jr z, .asm_8c386 - set 1, e -.asm_8c386 - ld hl, Unknown_8c38f - add hl, de - ld a, [hl] - ld [wcf63], a - ret -; 8c38f (23:438f) - -Unknown_8c38f: ; 8c38f - db 1, 9 - db 16, 24 -; 8c393 - -Function8c393: ; 8c393 (23:4393) - call ClearSprites - ld a, $80 - ld [wcf63], a - ret - -Function8c39c: ; 8c39c (23:439c) - ld hl, wcf63 - inc [hl] - ret - -Function8c3a1: ; 8c3a1 (23:43a1) - call Function8c39c - xor a - ld [wcf64], a - ld [hBGMapMode], a ; $ff00+$d4 - ret - -Function8c3ab: ; 8c3ab (23:43ab) - call Function8c3b3 - ret nc - call Function8c39c - ret - -Function8c3b3: ; 8c3b3 (23:43b3) - ld a, [wd847] - cp $ff - jr z, .asm_8c3d5 - ld hl, wcf64 - ld a, [hl] - inc [hl] - srl a - ld e, a - ld d, 0 - ld hl, Unknown_8c3db - add hl, de - ld a, [hl] - cp $1 - jr z, .asm_8c3d5 - ld [wcfc7], a - call DmgToCgbBGPals - and a - ret -.asm_8c3d5 - xor a - ld [wcf64], a - scf - ret -; 8c3db (23:43db) - -Unknown_8c3db: ; 8c3db - db $f9 ; 3321 - db $fe ; 3332 - db $ff ; 3333 - db $fe ; 3332 - db $f9 ; 3321 - db $e4 ; 3210 - db $90 ; 2100 - db $40 ; 1000 - db $00 ; 0000 - db $40 ; 1000 - db $90 ; 2100 - db $e4 ; 3210 - db $01 ; 0001 -; 8c3e8 - -Function8c3e8: ; 8c3e8 (23:43e8) - callba Function5602 - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - call Function8c39c - ld a, $43 - ld [hLCDStatCustom], a ; $ff00+$c6 - xor a - ld [hLCDStatCustom + 1], a - ld a, $90 - ld [hLCDStatCustom + 2], a - xor a - ld [wcf64], a - ld [wcf65], a - ret - -Function8c408: ; 8c408 (23:4408) - ld a, [wcf64] - cp $60 - jr nc, .asm_8c413 - call Function8c419 - ret -.asm_8c413 - ld a, $20 - ld [wcf63], a - ret - -Function8c419: ; 8c419 (23:4419) - ld hl, wcf65 - ld a, [hl] - inc [hl] - ld hl, wcf64 - ld d, [hl] - add [hl] - ld [hl], a - ld a, $90 - ld bc, wd100 - ld e, $0 -.asm_8c42b - push af - push de - ld a, e - call Function8c6f7 - ld [bc], a - inc bc - pop de - ld a, e - add $2 - ld e, a - pop af - dec a - jr nz, .asm_8c42b - ret - -Function8c43d: ; 8c43d (23:443d) - callba Function5602 - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - call Function8c39c - xor a - ld [wcf64], a - ret - -Function8c44f: ; 8c44f (23:444f) - xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld a, [wcf64] - ld e, a - ld d, 0 - ld hl, Unknown_8c490 -rept 5 - add hl, de -endr - ld a, [hli] - cp -1 - jr z, .asm_8c47a - ld [wcf65], a - call Function8c4f5 - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - call DelayFrame - call DelayFrame - ld hl, wcf64 - inc [hl] - ret -.asm_8c47a - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - call DelayFrame - call DelayFrame - call DelayFrame - xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld a, $20 - ld [wcf63], a - ret -; 8c490 (23:4490) - -Unknown_8c490: ; 8c490 -macro_8c490: MACRO - db \1 - dw \2 - dwcoord \3, \4 -ENDM - - macro_8c490 0, Unknown_8c538, 1, 6 - macro_8c490 0, Unknown_8c53e, 0, 3 - macro_8c490 0, Unknown_8c548, 1, 0 - macro_8c490 0, Unknown_8c55a, 5, 0 - macro_8c490 0, Unknown_8c568, 9, 0 - macro_8c490 1, Unknown_8c568, 10, 0 - macro_8c490 1, Unknown_8c55a, 14, 0 - macro_8c490 1, Unknown_8c548, 18, 0 - macro_8c490 1, Unknown_8c53e, 19, 3 - macro_8c490 1, Unknown_8c538, 18, 6 - macro_8c490 3, Unknown_8c538, 18, 11 - macro_8c490 3, Unknown_8c53e, 19, 14 - macro_8c490 3, Unknown_8c548, 18, 17 - macro_8c490 3, Unknown_8c55a, 14, 17 - macro_8c490 3, Unknown_8c568, 10, 17 - macro_8c490 2, Unknown_8c568, 9, 17 - macro_8c490 2, Unknown_8c55a, 5, 17 - macro_8c490 2, Unknown_8c548, 1, 17 - macro_8c490 2, Unknown_8c53e, 0, 14 - macro_8c490 2, Unknown_8c538, 1, 11 - db $ff -; 8c4f5 - -Function8c4f5: ; 8c4f5 (23:44f5) - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a -.asm_8c4fc - push hl - ld a, [de] - ld c, a - inc de -.asm_8c500 - ld [hl], $ff - ld a, [wcf65] - bit 0, a - jr z, .asm_8c50c - inc hl - jr .asm_8c50d -.asm_8c50c - dec hl -.asm_8c50d - dec c - jr nz, .asm_8c500 - pop hl - ld a, [wcf65] - bit 1, a - ld bc, $14 - jr z, .asm_8c51e - ld bc, $ffec -.asm_8c51e - add hl, bc - ld a, [de] - inc de - cp $ff - ret z - and a - jr z, .asm_8c4fc - ld c, a -.asm_8c528 - ld a, [wcf65] - bit 0, a - jr z, .asm_8c532 - dec hl - jr .asm_8c533 -.asm_8c532 - inc hl -.asm_8c533 - dec c - jr nz, .asm_8c528 - jr .asm_8c4fc -; 8c538 (23:4538) - -Unknown_8c538: db 2, 3, 5, 4, 9, $ff -Unknown_8c53e: db 1, 1, 2, 2, 4, 2, 4, 2, 3, $ff -Unknown_8c548: db 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 3, 1, 2, 1, 1, 1, 1, $ff -Unknown_8c55a: db 4, 1, 4, 0, 3, 1, 3, 0, 2, 1, 2, 0, 1, $ff -Unknown_8c568: db 4, 0, 3, 0, 3, 0, 2, 0, 2, 0, 1, 0, 1, 0, 1, $ff -; 8c578 - -Function8c578: ; 8c578 (23:4578) - callba Function5602 - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - call Function8c39c - ld a, $10 - ld [wcf64], a - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - ret - -Function8c58f: ; 8c58f (23:458f) - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_8c5a2 - dec [hl] - ld c, $c -.asm_8c599 - push bc - call Function8c5b8 - pop bc - dec c - jr nz, .asm_8c599 - ret -.asm_8c5a2 - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - call DelayFrame - call DelayFrame - call DelayFrame - xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld a, $20 - ld [wcf63], a - ret - -Function8c5b8: ; 8c5b8 (23:45b8) - call Random - cp $12 - jr nc, Function8c5b8 - ld b, a -.asm_8c5c0 - call Random - cp $14 - jr nc, .asm_8c5c0 - ld c, a - ld hl, Sprites + $8c - ld de, $14 - inc b -.asm_8c5cf - add hl, de - dec b - jr nz, .asm_8c5cf - add hl, bc - ld a, [hl] - cp $ff - jr z, Function8c5b8 - ld [hl], $ff - ret - -Function8c5dc: ; 8c5dc (23:45dc) - ld a, [OtherTrainerClass] - and a - jp z, Function8c673 - xor a - ld [hBGMapMode], a ; $ff00+$d4 - hlcoord 0, 0, AttrMap - ld bc, $168 - inc b - inc c - jr .asm_8c5f4 -.asm_8c5f0 - ld a, [hl] - or $7 - ld [hli], a -.asm_8c5f4 - dec c - jr nz, .asm_8c5f0 - dec b - jr nz, .asm_8c5f0 - call Function8c6b1 - hlcoord 2, 1 - ld b, $10 -.asm_8c602 - push hl - ld c, $2 -.asm_8c605 - push hl - ld a, [de] - inc de -.asm_8c608 - and a - jr z, .asm_8c614 - sla a - jr nc, .asm_8c611 - ld [hl], $fe -.asm_8c611 - inc hl - jr .asm_8c608 -.asm_8c614 - pop hl - push bc - ld bc, $8 - add hl, bc - pop bc - dec c - jr nz, .asm_8c605 - pop hl - push bc - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, .asm_8c602 - ld a, [hCGB] ; $ff00+$e6 - and a - jr nz, .asm_8c639 - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - call DelayFrame - call DelayFrame - jr Function8c673 -.asm_8c639 - ld hl, Unknown_8c6a1 - ld a, [TimeOfDayPal] - and 3 - cp 3 - jr nz, .asm_8c648 - ld hl, Unknown_8c6a9 -.asm_8c648 - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - call Function8c677 - push hl - ld de, Unkn1Pals + 8 * 7 - ld bc, $8 - call CopyBytes - pop hl - ld de, BGPals + 8 * 7 - ld bc, $8 - call CopyBytes - pop af - ld [rSVBK], a ; $ff00+$70 - ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 - call DelayFrame - call Function8cf4f - -Function8c673: ; 8c673 (23:4673) - call Function8c39c - ret - -Function8c677: ; 8c677 (23:4677) - ld de, Unkn1Pals + 8 * 7 - call Function8c698 - ld de, BGPals + 8 * 7 - call Function8c698 - ld de, Unkn2Pals + 8 * 6 - call Function8c698 - ld de, OBPals + 8 * 6 - call Function8c698 - ld de, Unkn2Pals + 8 * 7 - call Function8c698 - ld de, OBPals + 8 * 7 - -Function8c698: ; 8c698 (23:4698) - push hl - ld bc, $8 - call CopyBytes - pop hl - ret -; 8c6a1 (23:46a1) - -Unknown_8c6a1: ; 8c6a1 - RGB 31, 18, 29 - RGB 31, 11, 15 - RGB 31, 05, 05 - RGB 07, 07, 07 -; 8c6a9 - -Unknown_8c6a9: ; 8c6a9 - RGB 31, 18, 29 - RGB 31, 05, 05 - RGB 31, 05, 05 - RGB 31, 05, 05 - -Function8c6b1: - ld a, [OtherTrainerClass] - ld de, PokeBallTransition - ret - -PokeBallTransition: - db %00000011,%11000000 - db %00001111,%11110000 - db %00111100,%00111100 - db %00110000,%00001100 - db %01100000,%00000110 - db %01100011,%11000110 - db %11000110,%01100011 - db %11111100,%00111111 - db %11111100,%00111111 - db %11000110,%01100011 - db %01100011,%11000110 - db %01100000,%00000110 - db %00110000,%00001100 - db %00111100,%00111100 - db %00001111,%11110000 - db %00000011,%11000000 - -Function8c6d8: ; 8c6d8 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, LYOverrides - call Function8c6ef - ld hl, LYOverridesBackup - call Function8c6ef - pop af - ld [rSVBK], a - ret -; 8c6ef - -Function8c6ef: ; 8c6ef - xor a - ld c, $90 -.asm_8c6f2 - ld [hli], a - dec c - jr nz, .asm_8c6f2 - ret -; 8c6f7 - - -Function8c6f7: ; 8c6f7 (23:46f7) - and $3f - cp $20 - jr nc, .asm_8c702 - call Function8c70c - ld a, h - ret -.asm_8c702 - and $1f - call Function8c70c - ld a, h - xor $ff - inc a - ret - -Function8c70c: ; 8c70c (23:470c) - ld e, a - ld a, d - ld d, 0 - ld hl, Unknown_8c728 -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld hl, 0 -.asm_8c71b - srl a - jr nc, .asm_8c720 - add hl, de -.asm_8c720 - sla e - rl d - and a - jr nz, .asm_8c71b - ret -; 8c728 (23:4728) - -Unknown_8c728: ; 8c728 - sine_wave $100 -; 8c768 - -Function8c768: ; 8c768 (23:4768) - callba Function5602 - ld de, Unknown_8c792 -.asm_8c771 - ld a, [de] - cp $ff - jr z, .asm_8c78c - inc de - ld c, a - ld a, [de] - inc de - ld b, a - ld a, [de] - inc de - ld l, a - ld a, [de] - inc de - ld h, a - xor a - ld [hBGMapMode], a ; $ff00+$d4 - call Function8c7b7 - call WaitBGMap - jr .asm_8c771 -.asm_8c78c - ld a, $20 - ld [wcf63], a - ret -; 8c792 (23:4792) - -Unknown_8c792: ; 8c792 -macro_8c792: macro - db \1, \2 - dwcoord \3, \4 -endm - macro_8c792 4, 2, 8, 8 - macro_8c792 6, 4, 7, 7 - macro_8c792 8, 6, 6, 6 - macro_8c792 10, 8, 5, 5 - macro_8c792 12, 10, 4, 4 - macro_8c792 14, 12, 3, 3 - macro_8c792 16, 14, 2, 2 - macro_8c792 18, 16, 1, 1 - macro_8c792 20, 18, 0, 0 - db $ff -; 8c7b7 - -Function8c7b7: ; 8c7b7 (23:47b7) - ld a, $ff -.asm_8c7b9 - push bc - push hl -.asm_8c7bb - ld [hli], a - dec c - jr nz, .asm_8c7bb - pop hl - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, .asm_8c7b9 - ret -; 8c7c9 (23:47c9) +INCLUDE "engine/timeofdaypals.asm" +INCLUDE "engine/battle_start.asm" -Function8c7c9: ; 8c7c9 +Function8c7c9: ; unreferenced ld a, $1 ld [hBGMapMode], a call WaitBGMap @@ -62528,7 +54233,7 @@ ShakeHeadbuttTree: ; 8c80a lb bc, BANK(GFX_8c9cc), 4 call Request2bpp ld de, HeadbuttTreeGFX - ld hl, $8840 + ld hl, VTiles1 tile $04 lb bc, BANK(HeadbuttTreeGFX), 8 call Request2bpp call Function8cad3 @@ -62540,25 +54245,25 @@ ShakeHeadbuttTree: ; 8c80a ld a, $90 ld [wc3b5], a callba Function8cf7a - call Function8c913 + call GetHeadbuttTreeRelativeLocation ld a, $20 ld [wcf64], a call WaitSFX ld de, SFX_SANDSTORM call PlaySFX -.asm_8c852 +.loop ld hl, wcf64 ld a, [hl] and a - jr z, .asm_8c86a + jr z, .done dec [hl] ld a, $90 ld [wc3b5], a callba Function8cf7a call DelayFrame - jr .asm_8c852 + jr .loop -.asm_8c86a +.done call Function2173 call WaitBGMap xor a @@ -62580,19 +54285,20 @@ HeadbuttTreeGFX: ; 8c893 INCBIN "gfx/unknown/08c893.2bpp" ; 8c913 -Function8c913: ; 8c913 +GetHeadbuttTreeRelativeLocation: ; 8c913 xor a ld [hBGMapMode], a ld a, [PlayerDirection] - and $c + and %00001100 srl a ld e, a ld d, 0 - ld hl, Unknown_8c938 + ld hl, TreeRelativeLocationTable add hl, de ld a, [hli] ld h, [hl] ld l, a + ld a, $5 ld [hli], a ld [hld], a @@ -62606,23 +54312,24 @@ Function8c913: ; 8c913 ret ; 8c938 -Unknown_8c938: ; 8c938 - dwcoord 8, 10 - dwcoord 8, 6 - dwcoord 6, 8 - dwcoord 10, 8 +TreeRelativeLocationTable: ; 8c938 + dwcoord 8, 8 + 2 ; RIGHT + dwcoord 8, 8 - 2 ; LEFT + dwcoord 8 - 2, 8 ; DOWN + dwcoord 8 + 2, 8 ; UP +; 8c940 ; 8c940 Function8c940: ; 8c940 ld a, e and $1 - ld [wcf63], a + ld [wJumptableIndex], a call Function8c96d call WaitSFX ld de, SFX_PLACE_PUZZLE_PIECE_DOWN call PlaySFX .asm_8c952 - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_8c96c ld a, $90 @@ -62658,7 +54365,7 @@ INCBIN "gfx/unknown/08c9cc.2bpp" ; 8ca0c Function8ca0c: ; 8ca0c - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_8ca1b @@ -62688,7 +54395,7 @@ Function8ca23: ; 8ca23 (23:4a23) ld [hl], $84 ld a, $20 ld [wcf64], a - ld hl, wcf63 + ld hl, wJumptableIndex rept 2 inc [hl] endr @@ -62706,14 +54413,14 @@ Function8ca3c: ; 8ca3c (23:4a3c) call Function8ca73 ld a, $20 ld [wcf64], a - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret Function8ca5c: ; 8ca5c (23:4a5c) ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] Function8ca64: ; 8ca64 (23:4a64) @@ -62724,7 +54431,7 @@ Function8ca64: ; 8ca64 (23:4a64) dec [hl] ret .asm_8ca6d - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -62831,7 +54538,7 @@ Function8caed: ; 8caed ld a, $80 ld [wcf64], a .asm_8cb14 - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_8cb2e ld a, $0 @@ -62868,7 +54575,7 @@ Function8cb33: ; 8cb33 ld a, $40 ld [wcf64], a .asm_8cb60 - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_8cb7a ld a, $0 @@ -62904,7 +54611,7 @@ endr Function8cb9b: ; 8cb9b (23:4b9b) callab Function8cf53 ld de, GFX_8c9cc - ld hl, $8800 + ld hl, VTiles1 tile $00 lb bc, BANK(GFX_8c9cc), 4 call Request2bpp ld a, [CurPartyMon] @@ -62917,7 +54624,7 @@ Function8cb9b: ; 8cb9b (23:4b9b) ld e, $84 callba Function8e9bc xor a - ld [wcf63], a + ld [wJumptableIndex], a ret Function8cbc8: ; 8cbc8 (23:4bc8) @@ -62935,7 +54642,7 @@ Function8cbc8: ; 8cbc8 (23:4bc8) call PlaySFX ret .asm_8cbe0 - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -62998,7 +54705,7 @@ Special_MagnetTrain: ; 8cc04 push af ld [hl], $1 .loop - ld a, [wcf63] + ld a, [wJumptableIndex] and a jr z, .initialize bit 7, a @@ -63101,11 +54808,11 @@ Function8ccc9: ; 8ccc9 add hl, de ld d, h ld e, l - ld hl, $8040 + ld hl, VTiles0 tile $04 ld c, $4 call Request2bpp call Function8cda6 - ld hl, wcf63 + ld hl, wJumptableIndex xor a ld [hli], a ld a, [wd192] @@ -63127,19 +54834,19 @@ DrawMagnetTrain: ; 8cd27 inc a cp $12 jr c, .asm_8cd2b - ld hl, $98c0 + ld hl, VBGMap0 tile $0c ld de, MagnetTrainTilemap1 ld c, 20 call .FillLine - ld hl, $98e0 + ld hl, VBGMap0 tile $0e ld de, MagnetTrainTilemap2 ld c, 20 call .FillLine - ld hl, $9900 + ld hl, VBGMap0 tile $10 ld de, MagnetTrainTilemap3 ld c, 20 call .FillLine - ld hl, $9920 + ld hl, VBGMap0 tile $12 ld de, MagnetTrainTilemap4 ld c, 20 call .FillLine @@ -63228,13 +54935,13 @@ SetMagnetTrainPals: ; 8cdc3 call ByteFill ; train - ld hl, $9880 + ld hl, VBGMap0 tile $08 ld bc, $0140 xor a call ByteFill ; more bushes - ld hl, $99c0 + ld hl, VBGMap0 tile $1c ld bc, $0080 ld a, $2 call ByteFill @@ -63251,7 +54958,7 @@ SetMagnetTrainPals: ; 8cdc3 ; 8cdf7 Function8cdf7: ; 8cdf7 - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_8ce06 @@ -63275,7 +54982,7 @@ Jumptable_8ce06: ; 8ce06 ; 8ce14 Function8ce14: ; 8ce14 - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret ; 8ce19 @@ -63379,7 +55086,7 @@ endr Function8cea2: ; 8cea2 ld a, $80 - ld [wcf63], a + ld [wJumptableIndex], a ld de, SFX_TRAIN_ARRIVED call PlaySFX ret @@ -63474,9 +55181,11 @@ Function8cf69: ; 8cf69 push de push bc push af + ld a, $0 ld [wc3b5], a call Function8cf7a + pop af pop bc pop de @@ -63487,6 +55196,7 @@ Function8cf69: ; 8cf69 Function8cf7a: ; 8cf7a ld hl, wPartyMonMenuIconAnims ld e, 10 ; Do this first loop 10 times + .loop ld a, [hl] and a @@ -63509,6 +55219,7 @@ Function8cf7a: ; 8cf7a ld a, [wc3b5] ld l, a ld h, Sprites / $0100 + .loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd) ld a, l cp SpritesEnd % $0100 @@ -63523,7 +55234,8 @@ Function8cf7a: ; 8cf7a Function8cfa8: ; 8cfa8 (23:4fa8) ld hl, wPartyMonMenuIconAnims - ld e, $a + ld e, 10 + .loop ld a, [hl] and a @@ -63537,21 +55249,24 @@ Function8cfa8: ; 8cfa8 (23:4fa8) pop de pop hl jr c, .done + .next - ld bc, $10 + ld bc, $0010 add hl, bc dec e jr nz, .loop + ld a, [wc3b5] ld l, a - ld h, $c4 + ld h, Sprites / $100 .loop2 ld a, l - cp $40 + cp 4 * 16 jr nc, .done xor a ld [hli], a jr .loop2 + .done ret @@ -63597,6 +55312,7 @@ endr add hl, bc ld a, [wc3b4] ld [hli], a +; read from the table ld a, [de] ld [hli], a inc de @@ -63607,6 +55323,7 @@ endr call Function8d109 ld [hli], a pop de + ld hl, $0004 add hl, bc ld a, e @@ -63904,6 +55621,8 @@ endr ; 8d189 Function8d189: ; 8d189 + ; Get the [bc+10]th entry in the data table + ; indexed at [bc+1] in Unknown_8d6e6 ld hl, $0001 add hl, bc ld e, [hl] @@ -63958,51 +55677,51 @@ endr ; 8d1c4 Unknown_8d1c4: ; 8d1c4 - db $01, $01, $00 - db $07, $04, $00 - db $08, $05, $05 - db $0a, $06, $00 - db $0b, $07, $06 - db $0c, $08, $06 - db $0d, $09, $07 - db $0e, $0a, $07 - db $10, $0b, $07 - db $08, $0c, $05 - db $11, $00, $00 - db $12, $0d, $08 - db $12, $0e, $08 - db $12, $0f, $08 - db $13, $10, $00 - db $15, $00, $00 - db $16, $11, $00 - db $17, $12, $00 - db $18, $12, $00 - db $19, $13, $00 - db $1a, $14, $00 - db $1b, $00, $00 - db $1d, $15, $00 - db $1e, $00, $00 - db $1d, $17, $00 - db $1f, $00, $00 - db $24, $19, $00 - db $25, $00, $00 - db $20, $13, $00 - db $26, $1a, $00 - db $2d, $00, $00 - db $2e, $00, $00 - db $2f, $00, $00 - db $30, $00, $00 - db $31, $00, $00 - db $32, $1b, $00 - db $33, $1c, $00 - db $34, $00, $00 - db $35, $1d, $00 - db $37, $1e, $00 - db $38, $1e, $00 - db $39, $20, $00 - db $3f, $21, $00 - db $3e, $22, $00 - db $40, $00, $00 + 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 ; 8d24b @@ -64094,7 +55813,7 @@ endr ld hl, $7 add hl, bc ld a, d - and $10 + and $10 ; bit 4 jr z, .asm_8d2df ld a, e and a @@ -66249,19 +57968,16 @@ Unknown_8e6a5: ; 8e6a5 ; 8e706 -Unknown_8e706: ; 8e706 - dbbw $80, $01, Unknown_8e72a - dbbw $80, $01, Unknown_8e72a - dbbw $80, $01, Unknown_8e72a - dbbw $80, $01, Unknown_8e72a - dbbw $10, $37, Unknown_8e72a - dbbw $10, $11, Unknown_8e72a - dbbw $10, $39, Unknown_8e72a - dbbw $10, $24, Unknown_8e72a - dbbw $10, $21, Unknown_8e72a - -Unknown_8e72a: - ; nothing to see here +Unknown_8e706: ; Broken 2bpp pointers + dbbw $80, $01, $672a ; 128-tile 2bpp at 1:672a (inside Multiply) + dbbw $80, $01, $672a + dbbw $80, $01, $672a + dbbw $80, $01, $672a + dbbw $10, $37, $672a ; 16-tile 2bpp at 37:672a (within Tileset11GFX) + dbbw $10, $11, $672a ; 16-tile 2bpp at 11:672a (empty data) + dbbw $10, $39, $672a ; 16-tile 2bpp at 39:672a (empty data) + dbbw $10, $24, $672a ; 16-tile 2bpp at 24:672a (inside Function926f7) + dbbw $10, $21, $672a ; 16-tile 2bpp at 21:672a (inside Function8671c) Function8e72a: ; 8e72a add $10 @@ -66277,7 +57993,7 @@ Function8e72c: ; 8e72c and $1f call Function8e741 ld a, h - xor $ff + xor $ff ; cpl inc a ret ; 8e741 @@ -66378,20 +58094,20 @@ INCBIN "gfx/unknown/08e7f4.2bpp" GFX_8e804: ; 8e804 INCBIN "gfx/unknown/08e804.2bpp" -Function8e814: ; 8e814 +InefficientlyClear121BytesAtwc300: ; 8e814 push hl push de push bc push af ld hl, wc300 - ld bc, $00c1 -.asm_8e81e + ld bc, wc3c1 - wc300 +.loop ld [hl], $0 inc hl dec bc ld a, c or b - jr nz, .asm_8e81e + jr nz, .loop pop af pop bc pop de @@ -66457,7 +58173,7 @@ Function8e862: ; 8e862 (23:6862) Function8e86c: ; 8e86c (23:686c) push bc - ld a, [$ffb0] + ld a, [hConnectedMapWidth] ld hl, PartyMon1Item ld bc, PartyMon2 - PartyMon1 call AddNTimes @@ -66529,7 +58245,7 @@ Function8e8d5: ; 8e8d5 (23:68d5) Function8e8df: ; 8e8df (23:68df) push bc - ld a, [$ffb0] + ld a, [hConnectedMapWidth] ld hl, PartyMon1Item ld bc, $30 call AddNTimes @@ -66557,7 +58273,7 @@ Function8e8df: ; 8e8df (23:68df) Function8e908: ; 8e908 (23:6908) ld a, [wc3b7] push af - ld a, [$ffb0] + ld a, [hConnectedMapWidth] ld hl, PartySpecies ld e, a ld d, $0 @@ -66566,7 +58282,7 @@ Function8e908: ; 8e908 (23:6908) call ReadMonMenuIcon ld [CurIcon], a call Function8e9db - ld a, [$ffb0] + ld a, [hConnectedMapWidth] rept 4 add a endr @@ -66583,7 +58299,7 @@ endr Function8e936: ; 8e936 (23:6936) push bc - ld a, [$ffb0] + ld a, [hConnectedMapWidth] ld b, a call Function8e94c ld a, b @@ -66750,8 +58466,8 @@ endr ; 8ea3f GetGFXUnlessMobile: ; 8ea3f - ld a, [InLinkBattle] - cp 4 ; Mobile Link Battle + ld a, [wLinkMode] + cp LINK_MOBILE jp nz, Request2bpp jp Functiondc9 ; 8ea4a @@ -66848,877 +58564,15 @@ INCLUDE "menu/mon_icons.asm" SECTION "bank24", ROMX, BANK[$24] -AddPhoneNumber:: ; 90000 - call _CheckCellNum - jr c, .asm_9000d - call Function9002d - jr nc, .asm_9000d - ld [hl], c - xor a - ret - -.asm_9000d - scf - ret -; 9000f - - -DelCellNum:: ; 9000f - call _CheckCellNum - jr nc, .asm_90017 - xor a - ld [hl], a - ret - -.asm_90017 - scf - ret -; 90019 - -CheckCellNum:: ; 90019 - jp _CheckCellNum -; 9001c - -_CheckCellNum: ; 9001c - ld hl, wdc7c - ld b, $a -.asm_90021 - ld a, [hli] - cp c - jr z, .asm_9002a - dec b - jr nz, .asm_90021 - xor a - ret - -.asm_9002a - dec hl - scf - ret -; 9002d - -Function9002d: ; 9002d - call Function90040 - ld b, a - ld hl, wdc7c -.asm_90034 - ld a, [hli] - and a - jr z, .asm_9003d - dec b - jr nz, .asm_90034 - xor a - ret - -.asm_9003d - dec hl - scf - ret -; 90040 - -Function90040: ; 90040 - xor a - ld [Buffer1], a - ld hl, Unknown_90066 -.asm_90047 - ld a, [hli] - cp $ff - jr z, .asm_9005f - cp c - jr z, .asm_9005d - push bc - push hl - ld c, a - call _CheckCellNum - jr c, .asm_9005b - ld hl, Buffer1 - inc [hl] - -.asm_9005b - pop hl - pop bc - -.asm_9005d - jr .asm_90047 - -.asm_9005f - ld a, $a - ld hl, Buffer1 - sub [hl] - ret -; 90066 - -Unknown_90066: ; 90066 - db 1, 4, $ff -; 90069 - - -Function90069: ; 90069 - ld a, [hROMBank] - push af - ld a, b - rst Bankswitch - - call PlaceString - - pop af - rst Bankswitch - ret -; 90074 - - -CheckPhoneCall:: ; 90074 (24:4074) -; Check if the phone is ringing in the overworld. - - call CheckStandingOnEntrance - jr z, .no_call - - call Function900a6 - nop - jr nc, .no_call - - call Random - ld b, a - and $7f - cp b - jr nz, .no_call - - call GetMapHeaderPhoneServiceNybble - and a - jr nz, .no_call - - call Function900de - call Function900bf - jr nc, .no_call - - ld e, a - call Function9020d - ld a, BANK(UnknownScript_0x90241) - ld hl, UnknownScript_0x90241 - call CallScript - scf - ret - -.no_call - xor a - ret - -Function900a6: ; 900a6 (24:40a6) - callba Function11401 - ret - -Function900ad: ; 900ad (24:40ad) - push hl - push bc - push de - push af - callba CheckTime - pop af - and $7 - and c - pop de - pop bc - pop hl - ret - -Function900bf: ; 900bf (24:40bf) - ld a, [wd040] - and a - jr z, .asm_900dc - ld c, a - call Random - ld a, [hRandomAdd] ; $ff00+$e1 - swap a - and $1f - call SimpleDivide - ld c, a - ld b, $0 - ld hl, wd041 - add hl, bc - ld a, [hl] - scf - ret -.asm_900dc - xor a - ret - -Function900de: ; 900de (24:40de) - callba CheckTime - ld a, c - ld [EngineBuffer1], a ; wd03e (aliases: MenuItemsList, CurFruitTree, CurInput) - ld hl, wd040 - ld bc, $b - xor a - call ByteFill - ld de, wdc7c - ld a, $a -.asm_900f7 - ld [wd03f], a - ld a, [de] - and a - jr z, .asm_9012e - ld hl, PhoneContacts + 8 - ld bc, 12 - call AddNTimes - ld a, [EngineBuffer1] ; wd03e (aliases: MenuItemsList, CurFruitTree, CurInput) - and [hl] - jr z, .asm_9012e - ld bc, $fffa - add hl, bc - ld a, [MapGroup] - cp [hl] - jr nz, .asm_9011e - inc hl - ld a, [MapNumber] - cp [hl] - jr z, .asm_9012e -.asm_9011e - ld a, [wd040] - ld c, a - ld b, $0 - inc a - ld [wd040], a - ld hl, wd041 - add hl, bc - ld a, [de] - ld [hl], a -.asm_9012e - inc de - ld a, [wd03f] - dec a - jr nz, .asm_900f7 - ret - -Function90136:: ; 90136 (24:4136) - ld a, [wSpecialPhoneCallID] - and a - jr z, .asm_90171 - dec a - ld c, a - ld b, 0 - ld hl, SpecialPhoneCallList - ld a, 6 - call AddNTimes - ld a, [hli] - ld h, [hl] - ld l, a - call _hl_ - jr nc, .asm_90171 - call Function90178 -rept 2 - inc hl -endr - ld a, [hli] - ld e, a - push hl - call Function9020d - pop hl - ld de, wd048 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, BANK(UnknownScript_0x90173) - ld hl, UnknownScript_0x90173 - call CallScript - scf - ret -.asm_90171 - xor a - ret -; 90173 (24:4173) - -UnknownScript_0x90173: ; 0x90173 - pause 30 - jump UnknownScript_0x90241 -; 0x90178 - -Function90178: ; 90178 (24:4178) - ld a, [wSpecialPhoneCallID] - dec a - ld c, a - ld b, 0 - ld hl, SpecialPhoneCallList - ld a, 6 - call AddNTimes - ret - -Function90188: ; 90188 - ld a, [wPermission] - cp $1 - jr z, .asm_90195 - cp $2 - jr z, .asm_90195 - xor a - ret -.asm_90195 - scf - ret - -Function90197: ; 90197 - scf - ret - -Function90199: ; 90199 (24:4199) - ld a, [InLinkBattle] - and a - jr nz, .asm_901e7 - call GetMapHeaderPhoneServiceNybble - and a - jr nz, .asm_901e7 - ld a, b - ld [wCurrentCaller], a - ld hl, PhoneContacts - ld bc, 12 - call AddNTimes - ld d, h - ld e, l - ld hl, 4 - add hl, de - ld a, [hl] - call Function900ad - jr z, .asm_901e7 - ld hl, 2 - add hl, de - ld a, [MapGroup] - cp [hl] - jr nz, .asm_901d9 - ld hl, $3 - add hl, de - ld a, [MapNumber] - cp [hl] - jr nz, .asm_901d9 - ld b, BANK(UnknownScript_0x90660) - ld hl, UnknownScript_0x90660 - jr .asm_901f0 - -.asm_901d9 - ld hl, $5 - add hl, de - ld b, [hl] - ld hl, $6 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jr .asm_901f0 - -.asm_901e7 - ld b, BANK(UnknownScript_0x90209) - ld de, UnknownScript_0x90209 - call ExecuteCallbackScript - ret - -.asm_901f0 - ld a, b - ld [wd002], a - ld a, l - ld [wd003], a - ld a, h - ld [wd004], a - ld b, BANK(UnknownScript_0x90205) - ld de, UnknownScript_0x90205 - call ExecuteCallbackScript - ret -; 90205 (24:4205) - -UnknownScript_0x90205: ; 0x90205 - ptcall wd002 - return -; 0x90209 - -UnknownScript_0x90209: ; 0x90209 - scall UnknownScript_0x90657 - return -; 0x9020d - -Function9020d: ; 9020d (24:420d) - nop - nop - ld a, e - ld [wCurrentCaller], a - and a - jr nz, .asm_9021d - ld a, BANK(Unknown_90233) - ld hl, Unknown_90233 - jr .asm_90229 -.asm_9021d - ld hl, PhoneContacts - ld bc, 12 - ld a, e - call AddNTimes - ld a, BANK(PhoneContacts) -.asm_90229 - ld de, wd03f - ld bc, 12 - call FarCopyBytes - ret -; 90233 (24:4233) - -Unknown_90233: ; 90233 - db 0, 0 - dbw BANK(UnknownScript_0x90238), UnknownScript_0x90238 -UnknownScript_0x90238: - writetext UnknownText_0x9023c - end -UnknownText_0x9023c: - text_jump UnknownText_0x1c5565 - db "@" -; 90241 - -UnknownScript_0x90241: ; 0x90241 - refreshscreen $0 - callasm Function9026f - ptcall wd048 - closetext - callasm HangUp - loadmovesprites - callasm Function113e5 - end -; 0x90255 - -UnknownScript_0x90255:: ; 0x90255 - callasm Function9025c - jump UnknownScript_0x90241 -; 0x9025c - -Function9025c: ; 9025c - ld e, $3 - jp Function9020d -; 90261 - -UnknownScript_0x90261: ; 0x90261 - callasm Function9026a - pause 30 - jump UnknownScript_0x90241 -; 0x9026a - -Function9026a: ; 9026a - ld e, $4 - jp Function9020d -; 9026f - -Function9026f: ; 9026f - call Function9027c - call Function9027c - callba Function1060d3 - ret -; 9027c - -Function9027c: ; 9027c (24:427c) - call Phone_StartRinging - call Phone_Wait20Frames - call Phone_CallerTextboxWithName - call Phone_Wait20Frames - call Phone_CallerTextbox - call Phone_Wait20Frames - call Phone_CallerTextboxWithName - ret - -Phone_CallerTextboxWithName: ; 90292 (24:4292) - ld a, [wCurrentCaller] - ld b, a - call Function90363 - ret - - -PhoneCall:: ; 9029a - ld a, b - ld [PhoneScriptBank], a - ld a, e - ld [PhoneCallerLo], a - ld a, d - ld [PhoneCallerHi], a - call Phone_FirstOfTwoRings - call Phone_FirstOfTwoRings - callba Function1060d3 - ret -; 902b3 - -Phone_FirstOfTwoRings: ; 902b3 - call Phone_StartRinging - call Phone_Wait20Frames - call Phone_CallerTextboxWithName2 - call Phone_Wait20Frames - call Phone_CallerTextbox - call Phone_Wait20Frames - call Phone_CallerTextboxWithName2 - ret -; 902c9 - -Phone_CallerTextboxWithName2: ; 902c9 - call Phone_CallerTextbox - hlcoord 1, 2 - ld [hl], $62 -rept 2 - inc hl -endr - ld a, [PhoneScriptBank] - ld b, a - ld a, [PhoneCallerLo] - ld e, a - ld a, [PhoneCallerHi] - ld d, a - call Function90069 - ret -; 902e3 - - -Phone_NoSignal: ; 902e3 (24:42e3) - ld de, SFX_NO_SIGNAL - call PlaySFX - jr Phone_CallEnd - -HangUp:: ; 902eb - call HangUp_Beep - call HangUp_Wait20Frames -Phone_CallEnd: - call HangUp_BoopOn - call HangUp_Wait20Frames - call HangUp_BoopOff - call HangUp_Wait20Frames - call HangUp_BoopOn - call HangUp_Wait20Frames - call HangUp_BoopOff - call HangUp_Wait20Frames - call HangUp_BoopOn - call HangUp_Wait20Frames - call HangUp_BoopOff - call HangUp_Wait20Frames - ret -; 90316 - -Function90316: ; 90316 - ld de, SFX_SHUT_DOWN_PC - call PlaySFX - ret -; 9031d - -HangUp_Beep: ; 9031d - ld hl, UnknownText_0x9032a - call PrintText - ld de, SFX_HANG_UP - call PlaySFX - ret -; 9032a - -UnknownText_0x9032a: ; 9032a - text_jump UnknownText_0x1c5580 - db "@" -; 9032f - - -HangUp_BoopOn: ; 9032f - ld hl, UnknownText_0x90336 - call PrintText - ret -; 90336 - -UnknownText_0x90336: ; 0x90336 - text_jump UnknownText_0x1c5588 - db "@" -; 0x9033b - - -HangUp_BoopOff: ; 9033b - call SpeechTextBox - ret -; 9033f - -Phone_StartRinging: ; 9033f - call WaitSFX - ld de, SFX_CALL - call PlaySFX - call Phone_CallerTextbox - call UpdateSprites - callba Function4d188 - ret -; 90355 - -HangUp_Wait20Frames: ; 90355 - jr Phone_Wait20Frames - -Phone_Wait20Frames - ld c, 20 - call DelayFrames - callba Function4d188 - ret -; 90363 - - -Function90363: ; 90363 (24:4363) - push bc - call Phone_CallerTextbox - hlcoord 1, 1 - ld [hl], $62 -rept 2 - inc hl -endr - ld d, h - ld e, l - pop bc - call Function90380 - ret - - -Phone_CallerTextbox: ; 90375 - hlcoord 0, 0 - ld b, 2 - ld c, SCREEN_WIDTH - 2 - call TextBox - ret -; 90380 - - -Function90380: ; 90380 (24:4380) - ld h, d - ld l, e - ld a, b - call GetCallerTrainerClass - call GetCallerName - ret - -Function9038a: ; 9038a (24:438a) - ld a, c - call GetCallerTrainerClass - ld a, c - ret nz - ld a, b - cp $1 - ret z - cp $4 - ret z - ld c, $1 - ret - -GetCallerTrainerClass: ; 9039a - push hl - ld hl, PhoneContacts + 0 ; PHONE_CONTACT_TRAINER_CLASS - ld bc, 12 ; PHONE_TABLE_WIDTH - call AddNTimes - ld a, [hli] - ld b, [hl] - ld c, a - pop hl - ret -; 903a9 - - -GetCallerName: ; 903a9 (24:43a9) - ld a, c - and a - jr z, .NotTrainer - - call Phone_GetTrainerName - push hl - push bc - call PlaceString - ld a, ":" - ld [bc], a - pop bc - pop hl - ld de, SCREEN_WIDTH + 3 - add hl, de - call Phone_GetTrainerClassName - call PlaceString - ret - -.NotTrainer - push hl - ld c, b - ld b, 0 - ld hl, NonTrainerCallerNames -rept 2 - add hl, bc -endr - ld a, [hli] - ld e, a - ld d, [hl] - pop hl - call PlaceString - ret -; 903d6 (24:43d6) - -NonTrainerCallerNames: ; 903d6 - dw .none - dw .mom - dw .bikeshop - dw .bill - dw .elm - dw .buena - -.none: db "----------@" -.mom: db "MOM:@" -.bill: db "BILL:@" -.elm: db "PROF.ELM:@" -.bikeshop: db "BIKE SHOP:@" -.buena: db "BUENA:", $22, " DISC JOCKEY@" -; 90423 - -Phone_GetTrainerName: ; 90423 (24:4423) - push hl - push bc - callba GetTrainerName - pop bc - pop hl - ret - -Phone_GetTrainerClassName: ; 9042e (24:442e) - push hl - push bc - callba GetTrainerClassName - pop bc - pop hl - ret - -GetCallerLocation: ; 90439 - ld a, [wCurrentCaller] - call GetCallerTrainerClass - ld d, c - ld e, b - push de - ld a, [wCurrentCaller] - ld hl, PhoneContacts + 2 ; PHONE_CONTACT_MAP_GROUP - ld bc, 12 ; PHONE_TABLE_WIDTH - call AddNTimes - ld b, [hl] - inc hl - ld c, [hl] - push bc - call GetWorldMapLocation - ld e, a - callba GetLandmarkName - pop bc - pop de - ret -; 9045f - -PhoneContacts: ; 9045f -phone: MACRO - db \1, \2 ; trainer - map \3 ; map - db \4 - dbw BANK(\5), \5 ; script 1 - db \6 - dbw BANK(\7), \7 ; script 2 -ENDM - - phone 0, 0, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone 0, 1, KRISS_HOUSE_1F, 7, MomPhoneScript, 0, UnusedPhoneScript - phone 0, 2, OAKS_LAB, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone 0, 3, N_A, 7, BillPhoneScript1, 0, BillPhoneScript2 - phone 0, 4, ELMS_LAB, 7, ElmPhoneScript1, 0, ElmPhoneScript2 - phone SCHOOLBOY, JACK1, NATIONAL_PARK, 7, JackPhoneScript1, 7, JackPhoneScript2 - phone POKEFANF, BEVERLY1, NATIONAL_PARK, 7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2 - phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, HueyPhoneScript1, 7, HueyPhoneScript2 - phone 0, 0, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone 0, 0, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone 0, 0, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone COOLTRAINERM, GAVEN3, ROUTE_26, 7, GavenPhoneScript1, 7, GavenPhoneScript2 - phone COOLTRAINERF, BETH1, ROUTE_26, 7, BethPhoneScript1, 7, BethPhoneScript2 - phone BIRD_KEEPER, JOSE2, ROUTE_27, 7, JosePhoneScript1, 7, JosePhoneScript2 - phone COOLTRAINERF, REENA1, ROUTE_27, 7, ReenaPhoneScript1, 7, ReenaPhoneScript2 - phone YOUNGSTER, JOEY1, ROUTE_30, 7, JoeyPhoneScript1, 7, JoeyPhoneScript2 - phone BUG_CATCHER, WADE1, ROUTE_31, 7, WadePhoneScript1, 7, WadePhoneScript2 - phone FISHER, RALPH1, ROUTE_32, 7, RalphPhoneScript1, 7, RalphPhoneScript2 - phone PICNICKER, LIZ1, ROUTE_32, 7, LizPhoneScript1, 7, LizPhoneScript2 - phone HIKER, ANTHONY2, ROUTE_33, 7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2 - phone CAMPER, TODD1, ROUTE_34, 7, ToddPhoneScript1, 7, ToddPhoneScript2 - phone PICNICKER, GINA1, ROUTE_34, 7, GinaPhoneScript1, 7, GinaPhoneScript2 - phone JUGGLER, IRWIN1, ROUTE_35, 7, IrwinPhoneScript1, 7, IrwinPhoneScript2 - phone BUG_CATCHER, ARNIE1, ROUTE_35, 7, ArniePhoneScript1, 7, ArniePhoneScript2 - phone SCHOOLBOY, ALAN1, ROUTE_36, 7, AlanPhoneScript1, 7, AlanPhoneScript2 - phone 0, 0, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone LASS, DANA1, ROUTE_38, 7, DanaPhoneScript1, 7, DanaPhoneScript2 - phone SCHOOLBOY, CHAD1, ROUTE_38, 7, ChadPhoneScript1, 7, ChadPhoneScript2 - phone POKEFANM, DEREK1, ROUTE_39, 7, DerekPhoneScript1, 7, DerekPhoneScript2 - phone FISHER, TULLY1, ROUTE_42, 7, TullyPhoneScript1, 7, TullyPhoneScript2 - phone POKEMANIAC, BRENT1, ROUTE_43, 7, BrentPhoneScript1, 7, BrentPhoneScript2 - phone PICNICKER, TIFFANY3, ROUTE_43, 7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2 - phone BIRD_KEEPER, VANCE1, ROUTE_44, 7, VancePhoneScript1, 7, VancePhoneScript2 - phone FISHER, WILTON1, ROUTE_44, 7, WiltonPhoneScript1, 7, WiltonPhoneScript2 - phone BLACKBELT_T, KENJI3, ROUTE_45, 7, KenjiPhoneScript1, 7, KenjiPhoneScript2 - phone HIKER, PARRY1, ROUTE_45, 7, ParryPhoneScript1, 7, ParryPhoneScript2 - phone PICNICKER, ERIN1, ROUTE_46, 7, ErinPhoneScript1, 7, ErinPhoneScript2 - phone 0, 5, GOLDENROD_DEPT_STORE_ROOF, 7, BuenaPhoneScript1, 7, BuenaPhoneScript2 -; 90627 - -SpecialPhoneCallList: ; 90627 - dw Function90188 - db 4 - dbw BANK(ElmPhoneScript2), ElmPhoneScript2 - - dw Function90188 - db 4 - dbw BANK(ElmPhoneScript2), ElmPhoneScript2 - - dw Function90188 - db 4 - dbw BANK(ElmPhoneScript2), ElmPhoneScript2 - - dw Function90188 - db 4 - dbw BANK(ElmPhoneScript2), ElmPhoneScript2 - - dw Function90197 - db 4 - dbw BANK(ElmPhoneScript2), ElmPhoneScript2 - - dw Function90197 - db 2 - dbw BANK(BikeShopPhoneScript), BikeShopPhoneScript ; bike shop - - dw Function90197 - db 1 - dbw BANK(MomPhoneLectureScript), MomPhoneLectureScript - - dw Function90188 - db 4 - dbw BANK(ElmPhoneScript2), ElmPhoneScript2 -; 90657 - -UnknownScript_0x90657: ; 0x90657 - writetext UnknownText_0x9065b - end -; 0x9065b - -UnknownText_0x9065b: ; 0x9065b - ; That number is out of the area. - text_jump UnknownText_0x1c558b - db "@" -; 0x90660 - -UnknownScript_0x90660: ; 0x90660 - writetext UnknownText_0x90664 - end -; 0x90664 - -UnknownText_0x90664: ; 0x90664 - ; Just go talk to that person! - text_jump UnknownText_0x1c55ac - db "@" -; 0x90669 - -UnknownScript_0x90669: ; 0x90669 - writetext UnknownText_0x9066d - end -; 0x9066d - -UnknownText_0x9066d: ; 0x9066d - ; Thank you! - text_jump UnknownText_0x1c55ca - db "@" -; 0x90672 +INCLUDE "engine/phone.asm" -Function90672: ; 90672 (24:4672) - ld a, [$ffaa] +InitClock: ; 90672 (24:4672) +; Ask the player to set the time. + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a + ld a, $0 ld [wc2ce], a ld a, $10 @@ -67738,109 +58592,116 @@ Function90672: ; 90672 (24:4672) ld [hBGMapMode], a ; $ff00+$d4 call Functione51 ld de, GFX_908fb - ld hl, $9000 + ld hl, VTiles2 tile $00 lb bc, BANK(GFX_908fb), 1 call Request1bpp ld de, GFX_90903 - ld hl, $9010 + ld hl, VTiles2 tile $01 lb bc, BANK(GFX_90903), 1 call Request1bpp ld de, GFX_9090b - ld hl, $9020 + ld hl, VTiles2 tile $02 lb bc, BANK(GFX_9090b), 1 call Request1bpp - call Function90783 + call .ClearScreen call WaitBGMap call Function4a3 ld hl, UnknownText_0x90874 call PrintText ld hl, wc608 - ld bc, $32 + ld bc, 50 xor a call ByteFill ld a, $a - ld [wc608 + 20], a -.asm_906e8 + ld [wInitHourBuffer], a + +.loop ld hl, UnknownText_0x90879 call PrintText hlcoord 3, 7 - ld b, $2 - ld c, $f + ld b, 2 + ld c, 15 call TextBox hlcoord 11, 7 ld [hl], $1 hlcoord 11, 10 ld [hl], $2 hlcoord 4, 9 - call Function907de + call DisplayHourOClock ld c, $a call DelayFrames -.asm_9070d - call Functiona57 - call Function90795 - jr nc, .asm_9070d - ld a, [wc608 + 20] + +.SetHourLoop + call JoyTextDelay + call SetHour + jr nc, .SetHourLoop + + ld a, [wInitHourBuffer] ld [StringBuffer2 + 1], a - call Function90783 + call .ClearScreen ld hl, UnknownText_0x90886 call PrintText call YesNoBox - jr nc, .asm_9072e - call Function90783 - jr .asm_906e8 -.asm_9072e + jr nc, .HourIsSet + call .ClearScreen + jr .loop + +.HourIsSet ld hl, UnknownText_0x9089a call PrintText hlcoord 11, 7 - ld bc, $207 + lb bc, 2, 7 call TextBox hlcoord 15, 7 ld [hl], $1 hlcoord 15, 10 ld [hl], $2 hlcoord 12, 9 - call Function90859 + call DisplayMinutesWithMinString ld c, 10 call DelayFrames -.asm_90752 - call Functiona57 - call Function90810 - jr nc, .asm_90752 + +.SetMinutesLoop + call JoyTextDelay + call SetMinutes + jr nc, .SetMinutesLoop + ld a, [BattleMonNick + 5] ld [StringBuffer2 + 2], a - call Function90783 + call .ClearScreen ld hl, UnknownText_0x908a4 call PrintText call YesNoBox - jr nc, .asm_90773 - call Function90783 - jr .asm_9072e -.asm_90773 + jr nc, .MinutesAreSet + call .ClearScreen + jr .HourIsSet + +.MinutesAreSet call Function658 - ld hl, UnknownText_0x908b8 + ld hl, OakText_ResponseToSetTime call PrintText call Functiona80 pop af - ld [$ffaa], a + ld [hInMenu], a ret -Function90783: ; 90783 (24:4783) +.ClearScreen: ; 90783 (24:4783) xor a ld [hBGMapMode], a ; $ff00+$d4 hlcoord 0, 0 - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH xor a call ByteFill ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret -Function90795: ; 90795 (24:4795) +SetHour: ; 90795 (24:4795) ld a, [hJoyPressed] and A_BUTTON - jr nz, .asm_907dc + jr nz, .Confirm - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .up @@ -67852,50 +58713,50 @@ Function90795: ; 90795 (24:4795) ret .down - ld hl, wc608 + 20 + ld hl, wInitHourBuffer ld a, [hl] and a - jr nz, .asm_907b6 + jr nz, .DecreaseThroughMidnight ld a, 23 + 1 -.asm_907b6 +.DecreaseThroughMidnight dec a ld [hl], a - jr .asm_907c6 + jr .okay .up - ld hl, wc608 + 20 + ld hl, wInitHourBuffer ld a, [hl] cp 23 - jr c, .asm_907c4 + jr c, .AdvanceThroughMidnight ld a, -1 -.asm_907c4 +.AdvanceThroughMidnight inc a ld [hl], a -.asm_907c6 +.okay hlcoord 4, 9 ld a, " " ld bc, 15 call ByteFill hlcoord 4, 9 - call Function907de + call DisplayHourOClock call WaitBGMap and a ret -.asm_907dc +.Confirm scf ret -Function907de: ; 907de (24:47de) +DisplayHourOClock: ; 907de (24:47de) push hl - ld a, [wc608 + 20] + ld a, [wInitHourBuffer] ld c, a ld e, l ld d, h - call Function90b3e + call PrintHour inc hl - ld de, String_9087e + ld de, String_oclock call PlaceString pop hl ret @@ -67905,7 +58766,7 @@ Function907f1: ; 907f1 ld h, d ld l, e push hl - call Function907de + call DisplayHourOClock pop de rept 2 inc de @@ -67922,18 +58783,18 @@ endr ld a, [de] ld [hl], a pop hl - call Function90859 + call DisplayMinutesWithMinString rept 3 inc hl endr ret ; 90810 -Function90810: ; 90810 (24:4810) +SetMinutes: ; 90810 (24:4810) ld a, [hJoyPressed] ; $ff00+$a7 - and $1 + and A_BUTTON jr nz, .asm_90857 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .asm_90835 @@ -67968,7 +58829,7 @@ Function90810: ; 90810 (24:4810) ld bc, 7 call ByteFill hlcoord 12, 9 - call Function90859 + call DisplayMinutesWithMinString call WaitBGMap and a ret @@ -67976,15 +58837,15 @@ Function90810: ; 90810 (24:4810) scf ret -Function90859: ; 90859 (24:4859) +DisplayMinutesWithMinString: ; 90859 (24:4859) ld de, BattleMonNick + 5 - call Function90867 + call PrintTwoDigitNumberRightAlign inc hl - ld de, String_9089f + ld de, String_min call PlaceString ret -Function90867: ; 90867 (24:4867) +PrintTwoDigitNumberRightAlign: ; 90867 (24:4867) push hl ld a, " " ld [hli], a @@ -68007,7 +58868,7 @@ UnknownText_0x90879: ; 0x90879 db "@" ; 0x9087e -String_9087e: +String_oclock: db "o'clock@" ; 90886 @@ -68016,7 +58877,7 @@ UnknownText_0x90886: ; 0x90886 text_jump UnknownText_0x1bc2fd start_asm hlcoord 1, 16 - call Function907de + call DisplayHourOClock ld hl, UnknownText_0x90895 ret ; 90895 (24:4895) @@ -68033,7 +58894,7 @@ UnknownText_0x9089a: ; 0x9089a db "@" ; 0x9089f -String_9089f: +String_min: db "min.@" ; 908a4 @@ -68043,7 +58904,7 @@ UnknownText_0x908a4: ; 0x908a4 start_asm ; 0x908a9 hlcoord 7, 14 - call Function90859 + call DisplayMinutesWithMinString ld hl, UnknownText_0x908b3 ret ; 908b3 (24:48b3) @@ -68054,12 +58915,12 @@ UnknownText_0x908b3: ; 0x908b3 db "@" ; 0x908b8 -UnknownText_0x908b8: ; 0x908b8 +OakText_ResponseToSetTime: ; 0x908b8 start_asm decoord 1, 14 - ld a, [wc608 + 20] + ld a, [wInitHourBuffer] ld c, a - call Function90b3e + call PrintHour ld [hl], ":" inc hl ld de, BattleMonNick + 5 @@ -68067,37 +58928,37 @@ UnknownText_0x908b8: ; 0x908b8 call PrintNum ld b, h ld c, l - ld a, [wc608 + 20] + ld a, [wInitHourBuffer] cp 4 - jr c, .asm_908e0 + jr c, .NITE cp 11 - jr c, .asm_908e4 + jr c, .MORN cp 18 - jr c, .asm_908e8 -.asm_908e0 - ld hl, UnknownText_0x908f6 + jr c, .DAY +.NITE + ld hl, .sodark ret -.asm_908e4 - ld hl, UnknownText_0x908ec +.MORN + ld hl, .overslept ret -.asm_908e8 - ld hl, UnknownText_0x908f1 +.DAY + ld hl, .yikes ret ; 908ec (24:48ec) -UnknownText_0x908ec: ; 0x908ec +.overslept: ; 0x908ec ; ! I overslept! text_jump UnknownText_0x1bc326 db "@" ; 0x908f1 -UnknownText_0x908f1: ; 0x908f1 +.yikes: ; 0x908f1 ; ! Yikes! I over- slept! text_jump UnknownText_0x1bc336 db "@" ; 0x908f6 -UnknownText_0x908f6: ; 0x908f6 +.sodark: ; 0x908f6 ; ! No wonder it's so dark! text_jump UnknownText_0x1bc34f db "@" @@ -68112,30 +58973,30 @@ INCBIN "gfx/unknown/09090b.2bpp" ; 90913 Special_SetDayOfWeek: ; 90913 - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a ld de, GFX_90903 - ld hl, $8ef0 + ld hl, VTiles1 tile $6f lb bc, BANK(GFX_90903), 1 call Request1bpp ld de, GFX_9090b - ld hl, $8f50 + ld hl, VTiles1 tile $75 lb bc, BANK(GFX_9090b), 1 call Request1bpp xor a ld [DefaultFlypoint], a .asm_90936 hlcoord 0, 12 - ld bc, $0412 + lb bc, 4, 18 call TextBox call LoadMenuDataHeader_0x1d75 ld hl, UnknownText_0x90a3f call PrintText hlcoord 9, 3 - ld b, $2 - ld c, $9 + ld b, 2 + ld c, 9 call TextBox hlcoord 14, 3 ld [hl], $ef @@ -68147,7 +59008,7 @@ Special_SetDayOfWeek: ; 90913 ld c, $a call DelayFrames .asm_9096a - call Functiona57 + call JoyTextDelay call Function90993 jr nc, .asm_9096a call ExitMenu @@ -68161,7 +59022,7 @@ Special_SetDayOfWeek: ; 90913 call Function663 call Functione51 pop af - ld [$ffaa], a + ld [hInMenu], a ret ; 90993 @@ -68173,7 +59034,7 @@ Function90993: ; 90993 ret .asm_9099b - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .asm_909ba @@ -68341,7 +59202,7 @@ UnknownText_0x90ab7: ; 0x90ab7 Function90abc: ; 90abc hlcoord 1, 14 - ld bc, $0312 + lb bc, 3, SCREEN_WIDTH - 2 call ClearBox ld hl, UnknownText_0x90acc call PlaceWholeStringInBoxAtOnce @@ -68402,8 +59263,7 @@ UnknownText_0x90acc: ; 0x90acc ; 90b13 UnknownText_0x90b13: ; 0x90b13 - db $0 - para "Now on DEBUG…" + text "<PARA>Now on DEBUG…" prompt ; 0x90b23 @@ -68423,23 +59283,23 @@ Function90b23: ; 90b23 ret ; 90b3e -Function90b3e: ; 90b3e (24:4b3e) +PrintHour: ; 90b3e (24:4b3e) ld l, e ld h, d push bc - call Function90b58 + call GetTimeOfDayString call PlaceString ld l, c ld h, b inc hl pop bc - call Function90b7f + call AdjustHourForAMorPM ld [wd265], a ld de, wd265 - call Function90867 + call PrintTwoDigitNumberRightAlign ret -Function90b58: ; 90b58 (24:4b58) +GetTimeOfDayString: ; 90b58 (24:4b58) ld a, c cp 4 jr c, .nite @@ -68448,31 +59308,33 @@ Function90b58: ; 90b58 (24:4b58) cp 18 jr c, .day .nite - ld de, String_90b71 + ld de, .NITE ret .morn - ld de, String_90b76 + ld de, .MORN ret .day - ld de, String_90b7b + ld de, .DAY ret ; 90b71 (24:4b71) -String_90b71: db "NITE@" -String_90b76: db "MORN@" -String_90b7b: db "DAY@" +.NITE: db "NITE@" +.MORN: db "MORN@" +.DAY: db "DAY@" ; 90b7f -Function90b7f: ; 90b7f (24:4b7f) +AdjustHourForAMorPM: +; Convert the hour stored in c (0-23) to a 1-12 value ld a, c or a - jr z, .asm_90b8a + jr z, .midnight cp 12 ret c ret z sub 12 ret -.asm_90b8a + +.midnight ld a, 12 ret @@ -68481,10 +59343,10 @@ Function90b8d: ; 90b8d (24:4b8d) ld a, [hl] push af set NO_TEXT_SCROLL, [hl] - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a ld a, [VramState] push af xor a @@ -68494,8 +59356,8 @@ Function90b8d: ; 90b8d (24:4b8d) .loop call UpdateTime - call Functiona57 - ld a, [wcf63] + call JoyTextDelay + ld a, [wJumptableIndex] bit 7, a jr nz, .done call Function90f04 @@ -68510,13 +59372,13 @@ Function90b8d: ; 90b8d (24:4b8d) pop af ld [VramState], a pop af - ld [$ffaa], a + ld [hInMenu], a pop af ld [Options], a call WhiteBGMap xor a ld [hBGMapAddress], a - ld a, $98 + ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a ld a, $90 ld [hWY], a @@ -68542,7 +59404,7 @@ Function90bea: ; 90bea (24:4bea) ld [rLCDC], a call Function90d70 xor a - ld [wcf63], a + ld [wJumptableIndex], a ld [wcf64], a ld [wcf65], a ld [wcf66], a @@ -68597,7 +59459,7 @@ Function90c4e: ; 90c4e ld a, b push af - ld de, $8100 + ld de, VTiles0 tile $10 ld bc, $40 call FarCopyBytes pop af @@ -68606,14 +59468,14 @@ Function90c4e: ; 90c4e ld de, $c0 add hl, de - ld de, $8140 + ld de, VTiles0 tile $14 ld bc, $40 call FarCopyBytes ret .ssaqua ld hl, FastShipGFX - ld de, $8100 + ld de, VTiles0 tile $10 ld bc, $80 call CopyBytes ret @@ -68698,7 +59560,7 @@ Function90d70: ; 90d70 (24:4d70) Function90d9e: ; 90d9e (24:4d9e) ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a xor a ld [wcf64], a ret @@ -68733,7 +59595,7 @@ Function90da8: ; 90da8 (24:4da8) xor a ld [hBGMapAddress], a - ld a, $98 + ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a call Function90e00 ld a, $90 @@ -68742,7 +59604,7 @@ Function90da8: ; 90da8 (24:4da8) .asm_90de8 xor a ld [hBGMapAddress], a - ld a, $9c + ld a, VBGMap1 / $100 ld [hBGMapAddress + 1], a call Function90e00 xor a @@ -68906,7 +59768,7 @@ Function90ef7: ; 90ef7 (24:4ef7) ret Function90f04: ; 90f04 (24:4f04) - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_90f13 @@ -68938,14 +59800,14 @@ Function90f2d: ; 90f2d (24:4f2d) call Function90da8 ld hl, UnknownText_0x914d3 call PrintText - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] call Function91492 ret Function90f3e: ; 90f3e (24:4f3e) call Function90f7b - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and A_BUTTON + B_BUTTON + START + SELECT @@ -68983,7 +59845,7 @@ Function90f3e: ; 90f3e (24:4f3e) ret .asm_90f75 - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -69034,7 +59896,7 @@ Function90fb4: ; 90fb4 (24:4fb4) .kanto ld a, 5 .done - ld [wcf63], a + ld [wJumptableIndex], a call Function91492 ret @@ -69048,7 +59910,7 @@ Function90fcd: ; 90fcd (24:4fcd) ld [wc6d5], a ld a, b ld [wc6d6], a - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret @@ -69060,7 +59922,7 @@ Function90fee: ; 90fee (24:4fee) ld d, $2e ld e, $1 Function90ff2: ; 90ff2 (24:4ff2) - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and B_BUTTON jr nz, .cancel @@ -69096,12 +59958,12 @@ Function90ff2: ; 90ff2 (24:4ff2) call Function91480 ret .cancel - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret Function9102f: ; 9102f (24:502f) - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .up @@ -69244,12 +60106,12 @@ Function910f9: ; 910f9 (24:50f9) add hl, bc ld [hl], $8 call _UpdateRadioStation - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret Function91112: ; 91112 (24:5112) - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and B_BUTTON jr nz, .cancel @@ -69290,12 +60152,12 @@ Function91112: ; 91112 (24:5112) ret .cancel - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret Function91156: ; 91156 (24:5156) - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] xor a ld [wc6d2], a @@ -69315,7 +60177,7 @@ Function91171: ; 91171 (24:5171) ld a, [hl] and A_BUTTON jr nz, .a - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_LEFT jr nz, .left @@ -69348,12 +60210,12 @@ Function91171: ; 91171 (24:5171) ret .b - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret .a - ld hl, wdc7c + ld hl, wPhoneList ld a, [wc6d2] ld e, a ld d, 0 @@ -69375,13 +60237,13 @@ Function91171: ; 91171 (24:5171) call Function91342 jr c, .asm_911e5 - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret .asm_911e5 ld a, $8 - ld [wcf63], a + ld [wJumptableIndex], a ret Function911eb: ; 911eb (24:51eb) @@ -69391,7 +60253,7 @@ Function911eb: ; 911eb (24:51eb) ld hl, Options res NO_TEXT_SCROLL, [hl] xor a - ld [$ffaa], a + ld [hInMenu], a ld de, SFX_CALL call PlaySFX ld hl, UnknownText_0x9124c @@ -69410,9 +60272,9 @@ Function911eb: ; 911eb (24:51eb) ld hl, Options set NO_TEXT_SCROLL, [hl] ld a, $1 - ld [$ffaa], a + ld [hInMenu], a call Function912b7 - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret .asm_91234 @@ -69420,7 +60282,7 @@ Function911eb: ; 911eb (24:51eb) ld hl, OutOfServiceAreaText call PrintText ld a, $8 - ld [wcf63], a + ld [wJumptableIndex], a ld hl, UnknownText_0x914ce call PrintText ret @@ -69440,17 +60302,17 @@ OutOfServiceAreaText: ; 0x91251 Function91256: ; 91256 (24:5256) ld a, [hJoyPressed] ; $ff00+$a7 - and $3 + and A_BUTTON | B_BUTTON ret z callba HangUp ld a, $8 - ld [wcf63], a + ld [wJumptableIndex], a ld hl, UnknownText_0x914ce call PrintText ret Function9126d: ; 9126d (24:526d) - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .up @@ -69540,7 +60402,7 @@ endr ld a, [wc6d2] ld e, a ld d, $0 - ld hl, wdc7c + ld hl, wPhoneList add hl, de xor a ld [wc6d0], a @@ -69568,7 +60430,7 @@ endr ; 9131e (24:531e) Function9131e: ; 9131e - ld hl, wdc7c + ld hl, wPhoneList ld a, [wc6d2] ld e, a ld d, 0 @@ -69578,7 +60440,7 @@ Function9131e: ; 9131e ld d, 0 add hl, de ld [hl], 0 - ld hl, wdc7c + ld hl, wPhoneList ld c, $a .asm_91336 ld a, [hli] @@ -69594,7 +60456,7 @@ Function9131e: ; 9131e ; 91342 Function91342: ; 91342 (24:5342) - ld hl, wdc7c + ld hl, wPhoneList ld a, [wc6d2] ld e, a ld d, 0 @@ -69629,7 +60491,7 @@ Function91342: ; 91342 (24:5342) ld h, a inc de push hl - ld bc, $ffd7 + ld bc, hBGMapAddress + 1 add hl, bc ld a, [de] inc de @@ -69650,7 +60512,7 @@ Function91342: ; 91342 (24:5342) .asm_91398 push de - call Functiona57 + call JoyTextDelay pop de ld hl, hJoyPressed ld a, [hl] @@ -69813,7 +60675,7 @@ Function91480: ; 91480 (24:5480) ld de, SFX_READ_TEXT_2 call PlaySFX ld a, c - ld [wcf63], a + ld [wJumptableIndex], a ld a, b ld [wcf64], a call Function914ab @@ -69905,10 +60767,10 @@ Function9191c: ; 9191c ld a, [hl] push af set 4, [hl] - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a ld a, [VramState] push af xor a @@ -69965,7 +60827,7 @@ Function9191c: ; 9191c pop af ld [VramState], a pop af - ld [$ffaa], a + ld [hInMenu], a pop af ld [Options], a call WhiteBGMap @@ -69974,12 +60836,12 @@ Function9191c: ; 9191c Function919b0: ; 919b0 .asm_919b0 - call Functiona57 + call JoyTextDelay ld hl, hJoyPressed ld a, [hl] and B_BUTTON ret nz - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .asm_919d4 @@ -70077,7 +60939,7 @@ PlayRadio: ; 91a53 ld c, 100 call DelayFrames .loop - call Functiona57 + call JoyTextDelay ld a, [hJoyPressed] and A_BUTTON | B_BUTTON jr nz, .stop @@ -70178,7 +61040,7 @@ _FlyMap: ; 91af3 call WhiteBGMap call ClearTileMap call ClearSprites - ld hl, $ffaa + ld hl, hInMenu ld a, [hl] push af ld [hl], $1 @@ -70187,7 +61049,7 @@ _FlyMap: ; 91af3 callba Function8cf53 call Function91ff2 ld de, GFX_922e1 - ld hl, $9300 + ld hl, VTiles2 tile $30 lb bc, BANK(GFX_922e1), 6 call Request1bpp call FlyMap @@ -70196,7 +61058,7 @@ _FlyMap: ; 91af3 call GetSGBLayout call SetPalettes .loop - call Functiona57 + call JoyTextDelay ld hl, hJoyPressed ld a, [hl] and B_BUTTON @@ -70226,14 +61088,14 @@ _FlyMap: ; 91af3 .exit ld [DefaultFlypoint], a pop af - ld [$ffaa], a + ld [hInMenu], a call WhiteBGMap ld a, $90 ld [hWY], a xor a ld [hBGMapAddress], a - ld a, $98 - ld [$ffd7], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a ld a, [DefaultFlypoint] ld e, a ret @@ -70244,7 +61106,7 @@ FlyMapScroll: ; 91b73 ld e, a ld a, [EndFlypoint] ld d, a - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_UP jr nz, .ScrollNext @@ -70594,13 +61456,13 @@ Function91d11: ; 91d11 xor a ld [hBGMapMode], a ld a, $1 - ld [$ffaa], a + ld [hInMenu], a ld de, GFX_922d1 - ld hl, $87f0 + ld hl, VTiles0 tile $7f lb bc, BANK(GFX_922d1), 1 call Request2bpp ; actually 1bpp call Function91ed0 - ld hl, $8780 + ld hl, VTiles0 tile $78 ld c, $4 call Request2bpp call Function91ff2 @@ -70622,13 +61484,13 @@ Function91d11: ; 91d11 xor a call Function91e1e .asm_91d6e - call Functiona57 + call JoyTextDelay ld hl, hJoyPressed ld a, [hl] - and $3 + and A_BUTTON | B_BUTTON jr nz, .asm_91d8f ld a, [hJoypadDown] - and $4 + and SELECT jr nz, .asm_91d87 call Function91d9b call Function91dcd @@ -70877,7 +61739,7 @@ TownMapBGUpdate: ; 91ee4 ld a, l ld [hBGMapAddress], a ld a, h - ld [$ffd7], a + ld [hBGMapAddress + 1], a ; Only update palettes on CGB ld a, [hCGB] @@ -71022,7 +61884,7 @@ TownMapPlayerIcon: ; 91fa6 callba GetPlayerIcon ; Standing icon - ld hl, $8100 + ld hl, VTiles0 tile $10 ld c, 4 ; # tiles call Request2bpp @@ -71031,7 +61893,7 @@ TownMapPlayerIcon: ; 91fa6 add hl, de ld d, h ld e, l - ld hl, $8140 + ld hl, VTiles0 tile $14 ld c, 4 ; # tiles ld a, BANK(ChrisSpriteGFX) ; does nothing call Request2bpp @@ -71097,7 +61959,7 @@ Function92311: ; 92311 call WhiteBGMap call ClearTileMap call ClearSprites - ld hl, $ffaa + ld hl, hInMenu ld a, [hl] push af ld [hl], $1 @@ -71106,7 +61968,7 @@ Function92311: ; 92311 callba Function8cf53 call Function91ff2 ld de, GFX_922e1 - ld hl, $9300 + ld hl, VTiles2 tile $30 lb bc, BANK(GFX_922e1), 6 call Request1bpp call FillKantoMap @@ -71128,7 +61990,7 @@ Function92311: ; 92311 call GetSGBLayout call SetPalettes .loop - call Functiona57 + call JoyTextDelay ld hl, hJoyPressed ld a, [hl] and B_BUTTON @@ -71158,21 +62020,21 @@ Function92311: ; 92311 .asm_9239f ld [DefaultFlypoint], a pop af - ld [$ffaa], a + ld [hInMenu], a call WhiteBGMap ld a, $90 ld [hWY], a xor a ld [hBGMapAddress], a - ld a, $98 - ld [$ffd7], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a ld a, [DefaultFlypoint] ld e, a ret ; 923b8 Function923b8: ; 923b8 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_DOWN | D_RIGHT jr nz, .asm_923c6 @@ -71218,7 +62080,7 @@ Function923b8: ; 923b8 .asm_923f3 ld [hWY], a ld a, b - ld [$ffd7], a + ld [hBGMapAddress + 1], a call TownMapBubble call WaitBGMap xor a @@ -71243,7 +62105,7 @@ _SlotMachine: call PlaySFX call WaitSFX call WhiteBGMap - callba Function105fd0 + callba MobileFn_105fd0 ld hl, Options res 4, [hl] ld hl, rLCDC ; $ff40 @@ -71258,7 +62120,7 @@ Function926f7: ; 926f7 (24:66f7) call PlayMusic call DelayFrame call DisableLCD - ld hl, $9800 + ld hl, VBGMap0 tile $00 ld bc, $400 ld a, $7f call ByteFill @@ -71270,16 +62132,16 @@ Function926f7: ; 926f7 (24:66f7) xor a call ByteFill ld hl, Slots2LZ - ld de, $8000 + ld de, VTiles0 tile $00 call Decompress ld hl, Slots3LZ - ld de, $8400 + ld de, VTiles0 tile $40 call Decompress ld hl, Slots1LZ - ld de, $9000 + ld de, VTiles2 tile $00 call Decompress ld hl, Slots2LZ - ld de, $9250 + ld de, VTiles2 tile $25 call Decompress ld hl, SlotsTilemap decoord 0, 0 @@ -71299,7 +62161,7 @@ Function926f7: ; 926f7 (24:66f7) ld [hli], a ld [hl], $40 xor a - ld [wcf63], a + ld [wJumptableIndex], a ld a, $ff ld [wc709], a ld de, MUSIC_GAME_CORNER @@ -71326,7 +62188,7 @@ Function9279b: ; 9279b (24:679b) ret Function927af: ; 927af (24:67af) - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_927d1 call Function92844 @@ -71422,7 +62284,7 @@ endr ; 92844 Function92844: ; 92844 (24:6844) - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_92853 @@ -71459,7 +62321,7 @@ Jumptable_92853: ; 92853 (24:6853) Function92879: ; 92879 (24:6879) - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret @@ -71476,7 +62338,7 @@ Function9288e: ; 9288e (24:688e) call Function9307c jr nc, .asm_92899 ld a, $12 - ld [wcf63], a + ld [wJumptableIndex], a ret .asm_92899 call Function92879 @@ -71667,15 +62529,15 @@ Function929d9: ; 929d9 (24:69d9) call Function930e9 jr c, .asm_929ea ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret .asm_929ea ld a, $12 - ld [wcf63], a + ld [wJumptableIndex], a ret Function929f0: ; 929f0 (24:69f0) - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -72989,7 +63851,7 @@ Function93124: ; 93124 (24:7124) ld a, [hl] ld [wc711], a ld d, a - callba Function105fe3 + callba MobileFn_105fe3 ret .data_93145 @@ -73013,7 +63875,7 @@ Function93158: ; 93158 (24:7158) jr nz, .asm_9316c ld hl, UnknownText_0x931e0 call PrintText - callba Function105fd0 + callba MobileFn_105fd0 ret .asm_9316c srl a @@ -73035,7 +63897,7 @@ endr .asm_93188 ld hl, UnknownText_0x931b9 call PrintText - callba Function105f9f + callba MobileFn_105f9f ret ; 93195 (24:7195) @@ -73061,13 +63923,13 @@ UnknownText_0x931b9: ; 0x931b9 Function931ba: ; 931ba ld a, [EffectFailed] add $25 - ldcoord 2, 13 + ldcoord_a 2, 13 inc a - ldcoord 2, 14 + ldcoord_a 2, 14 inc a - ldcoord 3, 13 + ldcoord_a 3, 13 inc a - ldcoord 3, 14 + ldcoord_a 3, 14 hlcoord 18, 17 ld [hl], $ee ld hl, UnknownText_0x931db @@ -73511,7 +64373,7 @@ Functionb8098:: ; b8098 (2e:4098) Functionb80c6: ; b80c6 ld de, GFX_f9344 - ld hl, $9600 + ld hl, VTiles2 tile $60 lb bc, BANK(GFX_f9344), $e call Get2bpp ret @@ -73731,7 +64593,7 @@ CheckForSignpostItems: ; b8172 TreeMonEncounter: ; b81ea - callba Function1060ef + callba MobileFn_1060ef xor a ld [TempWildMonSpecies], a @@ -74196,13 +65058,13 @@ Functionb84b3: ; b84b3 ld de, KrisFishingGFX .asm_b84c7 - ld hl, $8020 + ld hl, VTiles0 tile $02 call Functionb84e3 - ld hl, $8060 + ld hl, VTiles0 tile $06 call Functionb84e3 - ld hl, $80a0 + ld hl, VTiles0 tile $0a call Functionb84e3 - ld hl, $9000 - $40 + ld hl, VTiles2 tile $00 - $40 call Functionb84e3 pop af @@ -74232,14 +65094,14 @@ INCBIN "gfx/unknown/0b8582.2bpp" INCLUDE "engine/radio.asm" -Functionb9229: ; b9229 +ReadPartyMonMail: ; b9229 ld a, [CurPartyMon] ld hl, s0_a600 - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call AddNTimes ld d, h ld e, l -Functionb9237: ; b9237 +ReadAnyMail: ; b9237 push de call WhiteBGMap call ClearSprites @@ -74293,11 +65155,11 @@ Functionb929a: ; b929a ret .asm_b92a8 - ld a, [wcf63] + ld a, [wJumptableIndex] push af callab Function845d4 pop af - ld [wcf63], a + ld [wJumptableIndex], a jr .asm_b929a ; b92b8 @@ -74365,7 +65227,7 @@ Unknown_b92f8: ; b92f8 Functionb9317: ; b9317 push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld de, Unknown_b9d46 ld c, $40 call Functionb9915 @@ -74379,7 +65241,7 @@ Functionb9317: ; b9317 Functionb9335: ; b9335 push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld de, Unknown_b9dc6 ld c, $40 call Functionb9915 @@ -74449,7 +65311,7 @@ Functionb9351: ; b9351 Functionb93d2: ; b93d2 push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld de, Unknown_b997e ld c, $8 call Functionb9915 @@ -74468,7 +65330,7 @@ Functionb93d2: ; b93d2 ld de, MailPikaGFX ld c, $30 call Functionb991e - ld hl, $93d0 + ld hl, VTiles2 tile $3d ld de, Unknown_b9c9e ld c, $20 call Functionb990c @@ -74498,7 +65360,7 @@ Functionb93d2: ; b93d2 Functionb944b: ; b944b push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld de, Unknown_b9e26 ld c, $28 call Functionb9915 @@ -74560,7 +65422,7 @@ Functionb9491: ; b9491 Functionb94d6: ; b94d6 push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld bc, $0028 call Functionb97f8 ld de, Unknown_b9c96 @@ -74636,7 +65498,7 @@ Functionb94d6: ; b94d6 Functionb9582: ; b9582 push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld de, Unknown_b997e ld c, $8 call Functionb9915 @@ -74723,7 +65585,7 @@ Functionb9636: ; b9636 Functionb963e: ; b963e push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld de, Unknown_b9d86 ld c, $40 call Functionb990c @@ -74777,14 +65639,14 @@ Functionb963e: ; b963e Functionb96ca: ; b96ca push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld de, Unknown_b9e4e ld c, $28 call Functionb9915 ld de, Unknown_b995e ld c, $8 call Functionb9915 - ld hl, $93d0 + ld hl, VTiles2 tile $3d ld de, Unknown_b9bfe ld c, $20 call Functionb990c @@ -74807,7 +65669,7 @@ Functionb96ca: ; b96ca Functionb9710: ; b9710 push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld de, Unknown_b9e06 ld c, $20 call Functionb9915 @@ -74849,7 +65711,7 @@ Functionb9710: ; b9710 Functionb9776: ; b9776 push bc - ld hl, $9310 + ld hl, VTiles2 tile $31 ld bc, $0028 call Functionb97f8 ld de, Unknown_b992e @@ -75406,7 +66268,7 @@ DisplayCaughtContestMonStats: ; cc000 call WhiteBGMap call ClearTileMap call ClearSprites - call Functione58 + call LoadFontsBattleExtra ld hl, Options ld a, [hl] @@ -75718,20 +66580,20 @@ _CardFlip: ; e00ee (38:40ee) call Functione51 call Functione5f ld hl, LZ_e0d16 - ld de, $9000 + ld de, VTiles2 tile $00 call Decompress ld hl, LZ_e0ea8 - ld de, $93e0 + ld de, VTiles2 tile $3e call Decompress ld hl, LZ_e0cdb - ld de, $8000 + ld de, VTiles0 tile $00 call Decompress ld hl, GFX_e0cf6 - ld de, $8ef0 + ld de, VTiles1 tile $6f ld bc, $10 call CopyBytes ld hl, GFX_e0d06 - ld de, $8f50 + ld de, VTiles1 tile $75 ld bc, $10 call CopyBytes call Functione0521 @@ -75745,14 +66607,14 @@ _CardFlip: ; e00ee (38:40ee) call DmgToCgbObjPals call DelayFrame xor a - ld [wcf63], a + ld [wJumptableIndex], a ld a, $2 ld [wcf64], a ld [wcf65], a ld de, MUSIC_GAME_CORNER call PlayMusic .MasterLoop - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .leavethegame call .CardFlip @@ -75768,7 +66630,7 @@ _CardFlip: ; e00ee (38:40ee) ret .CardFlip: ; e0191 (38:4191) - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, .Jumptable @@ -75793,7 +66655,7 @@ endr ; e01b0 .Increment: ; e01b0 - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret ; e01b5 @@ -75809,7 +66671,7 @@ endr .SaidNo ld a, $7 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e01cd @@ -75833,7 +66695,7 @@ endr ld hl, .NotEnoughCoinsText call Functione0489 ld a, $7 - ld [wcf63], a + ld [wJumptableIndex], a ret .deduct @@ -75890,9 +66752,9 @@ endr xor a ld [wcf66], a .loop - call Functiona57 - ld a, [$ffa9] - and $1 + call JoyTextDelay + ld a, [hJoyLast] + and A_BUTTON jr nz, .next ld de, SFX_KINESIS call PlaySFX @@ -75944,9 +66806,9 @@ endr ld hl, .PlaceYourBetText call Functione0489 .betloop - call Functiona57 - ld a, [$ffa9] - and $1 + call JoyTextDelay + ld a, [hJoyLast] + and A_BUTTON jr nz, .betdone call Functione089c call Functione0960 @@ -76030,7 +66892,7 @@ endr .LoopAround ld a, $1 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e0356 @@ -76047,7 +66909,7 @@ endr ; 0xe0360 .Quit: ; e0360 - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret ; e0366 @@ -76233,7 +67095,7 @@ Functione04c1: ; e04c1 (38:44c1) xor a ld [hBGMapMode], a ; $ff00+$d4 hlcoord 0, 0 - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, $29 call ByteFill hlcoord 9, 0 @@ -76308,7 +67170,7 @@ Functione0509: ; e0509 ; e0521 Functione0521: ; e0521 (38:4521) - ld de, $8f60 + ld de, VTiles1 tile $76 ld hl, $8f62 ld bc, $9e call CopyBytes @@ -76924,7 +67786,7 @@ Unknown_e0853: ; e0853 ; e089c Functione089c: ; e089c - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] and D_LEFT jp nz, Functione08b8 @@ -77300,7 +68162,7 @@ Functione0c37: ; e0c37 (38:4c37) and a ret z hlcoord 0, 0, AttrMap - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH xor a call ByteFill hlcoord 12, 1, AttrMap @@ -77414,10 +68276,10 @@ Unknown_e110c: ; e110c ; e1190 Functione1190: ; e1190 - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a call WhiteBGMap call ClearTileMap call ClearSprites @@ -77429,11 +68291,11 @@ Functione1190: ; e1190 xor a call ByteFill ld hl, GFX_e17c5 - ld de, $8e00 + ld de, VTiles1 tile $60 ld bc, $0040 call CopyBytes ld hl, LZ_e1805 - ld de, $8ed0 + ld de, VTiles1 tile $6d call Decompress call Functione17a3 hlcoord 0, 0 @@ -77451,7 +68313,7 @@ Functione1190: ; e1190 ld [hSCY], a ld [hSCX], a ld [rWY], a - ld [wcf63], a + ld [wJumptableIndex], a ld [wcf64], a ld [wcf65], a ld [wcf66], a @@ -77468,8 +68330,8 @@ Functione1190: ; e1190 ld [wd0ec], a call DelayFrame .asm_e1217 - call Functiona57 - ld a, [wcf63] + call JoyTextDelay + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_e123d call Functione12ca @@ -77493,7 +68355,7 @@ Functione1190: ; e1190 .asm_e123d pop af - ld [$ffaa], a + ld [hInMenu], a call WhiteBGMap call ClearTileMap call ClearSprites @@ -77577,7 +68439,7 @@ Functione128d: ; e128d ; e12ca Functione12ca: ; e12ca - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_e12d9 @@ -77596,23 +68458,23 @@ Jumptable_e12d9: ; e12d9 Functione12db: ; e12db ld a, [hJoyPressed] - and $8 + and START jp nz, Functione13de ld a, [hJoyPressed] and A_BUTTON jp nz, Functione1376 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [hl] - and $40 + and D_UP jr nz, .asm_e1301 ld a, [hl] - and $80 + and D_DOWN jr nz, .asm_e130d ld a, [hl] - and $20 + and D_LEFT jr nz, .asm_e1325 ld a, [hl] - and $10 + and D_RIGHT jr nz, .asm_e1345 ret @@ -77751,7 +68613,7 @@ Functione1376: ; e1376 ld [wd0ec], a Functione13de: ; e13de - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -78280,10 +69142,10 @@ Functione1e67: ; e1e67 (38:5e67) call GetSGBLayout callab Function8cf53 ld hl, LZ_e2221 - ld de, $9000 + ld de, VTiles2 tile $00 call Decompress ld hl, Unknown_e00ed - ld de, $8000 + ld de, VTiles0 tile $00 ld bc, $40 ld a, BANK(Unknown_e00ed) call FarCopyBytes @@ -78292,14 +69154,14 @@ Functione1e67: ; e1e67 (38:5e67) ld [hli], a ld [hl], $0 hlcoord 0, 0 - ld bc, $168 + 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 [wcf63], a + ld [wJumptableIndex], a ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ld a, $e3 @@ -78311,7 +69173,7 @@ Functione1e67: ; e1e67 (38:5e67) ret Functione1ebb: ; e1ebb (38:5ebb) - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_e1ed0 call Functione1ed2 @@ -78324,7 +69186,7 @@ Functione1ebb: ; e1ebb (38:5ebb) ret Functione1ed2: ; e1ed2 (38:5ed2) - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_e1ee1 @@ -78351,7 +69213,7 @@ Jumptable_e1ee1: ; e1ee1 Functione1ef3: ; e1ef3 call Functione2152 - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret ; e1efb @@ -78359,13 +69221,13 @@ Functione1ef3: ; e1ef3 Functione1efb: ; e1efb call Functione00ed jr nc, .asm_e1f06 - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret .asm_e1f06 call Functione209d - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] xor a ld [wc708], a @@ -78394,7 +69256,7 @@ Functione1f1c: ; e1f1c call Function3b2a ld a, $5 ld [wc702], a - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret ; e1f42 @@ -78409,14 +69271,14 @@ Functione1f42: ; e1f42 and a jr nz, .asm_e1f58 ld a, $7 - ld [wcf63], a + ld [wJumptableIndex], a ret .asm_e1f58 dec [hl] xor a ld [wcf64], a - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] Functione1f61: ; e1f61 @@ -78439,7 +69301,7 @@ Functione1f61: ; e1f61 call Functione2128 xor a ld [wcf64], a - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret ; e1f8b @@ -78467,7 +69329,7 @@ Functione1f8b: ; e1f8b call Functione2128 ld a, $40 ld [wc708], a - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] Functione1fba: ; e1fba @@ -78481,7 +69343,7 @@ Functione1fba: ; e1fba .asm_e1fc3 call Functione2010 ld a, $3 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e1fcc @@ -78515,19 +69377,19 @@ Functione1fcc: ; e1fcc .asm_e1ff9 call Functiona80 - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] Functione2000: ; e2000 call Functione00ed jr nc, .asm_e200b - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret .asm_e200b xor a - ld [wcf63], a + ld [wJumptableIndex], a ret ; e2010 @@ -78786,10 +69648,10 @@ Functione2183: ; e2183 ; e21a1 Functione21a1: ; e21a1 (38:61a1) - ld a, [wcf63] + ld a, [wJumptableIndex] cp $7 jr nc, .asm_e21c8 - call Functiona57 + call JoyTextDelay ld hl, hJoypadPressed ; $ffa3 ld a, [hl] and A_BUTTON @@ -78885,10 +69747,10 @@ Functione2391: ; e2391 (38:6391) push af xor a ld [VramState], a - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a xor a ld [$ffde], a call Functione2963 @@ -78896,8 +69758,8 @@ Functione2391: ; e2391 (38:6391) ld [wcb2e], a call DelayFrame .asm_e23b4 - call Functiona57 - ld a, [wcf63] + call JoyTextDelay + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_e23c6 call Functione23d5 @@ -78906,7 +69768,7 @@ Functione2391: ; e2391 (38:6391) .asm_e23c6 call ClearSprites pop af - ld [$ffaa], a + ld [hInMenu], a pop af ld [VramState], a pop af @@ -78914,7 +69776,7 @@ Functione2391: ; e2391 (38:6391) ret Functione23d5: ; e23d5 (38:63d5) - ld a, [wcf63] + ld a, [wJumptableIndex] ld hl, Jumptable_e23df call Functione33df jp [hl] @@ -78976,18 +69838,18 @@ Functione241a: ; e241a (38:641a) cp $ff jr z, .asm_e2457 ld a, $2 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e2452 (38:6452) .asm_e2452 - ld hl, wcf63 + ld hl, wJumptableIndex dec [hl] ret .asm_e2457 ld a, $4 - ld [wcf63], a + ld [wJumptableIndex], a ret Functione245d: ; e245d (38:645d) @@ -79039,7 +69901,7 @@ BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) call Functione307c jr c, .asm_e24c1 ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a xor a ld [wcb2b], a ld [wcb2a], a @@ -79086,7 +69948,7 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0) callba Functione039 call Functione3180 ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a xor a ld [wcb2b], a ld [wcb2a], a @@ -79101,7 +69963,7 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0) BillsPCDepositFuncCancel: ; e2537 (38:6537) ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e253d (38:653d) @@ -79147,10 +70009,10 @@ Functione2583: ; e2583 (38:6583) push af xor a ld [VramState], a - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a xor a ld [$ffde], a call Functione2963 @@ -79158,8 +70020,8 @@ Functione2583: ; e2583 (38:6583) ld [wcb2e], a call DelayFrame .asm_e25a7 - call Functiona57 - ld a, [wcf63] + call JoyTextDelay + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_e25b9 call Functione25c8 @@ -79168,7 +70030,7 @@ Functione2583: ; e2583 (38:6583) .asm_e25b9 call ClearSprites pop af - ld [$ffaa], a + ld [hInMenu], a pop af ld [VramState], a pop af @@ -79176,7 +70038,7 @@ Functione2583: ; e2583 (38:6583) ret Functione25c8: ; e25c8 (38:65c8) - ld a, [wcf63] + ld a, [wJumptableIndex] ld hl, .jumptable call Functione33df jp [hl] @@ -79240,18 +70102,18 @@ Functione2612: ; e2612 (38:6612) cp $ff jr z, .asm_e264f ld a, $2 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e264a (38:664a) .asm_e264a - ld hl, wcf63 + ld hl, wJumptableIndex dec [hl] ret .asm_e264f ld a, $4 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e2655 @@ -79304,7 +70166,7 @@ endr call TryWithdrawPokemon jr c, .FailedWithdraw ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a xor a ld [wcb2b], a ld [wcb2a], a @@ -79349,7 +70211,7 @@ endr callba Functione039 call Functione3180 ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a xor a ld [wcb2b], a ld [wcb2a], a @@ -79364,7 +70226,7 @@ endr .cancel: ; e272b (38:672b) ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e2731 (38:6731) @@ -79394,10 +70256,10 @@ Functione2759: ; e2759 push af xor a ld [VramState], a - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, $1 - ld [$ffaa], a + ld [hInMenu], a xor a ld [$ffde], a call Functione2963 @@ -79407,8 +70269,8 @@ Functione2759: ; e2759 ld [wcb2e], a call DelayFrame .asm_e2781 - call Functiona57 - ld a, [wcf63] + call JoyTextDelay + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_e2793 call Functione27a2 @@ -79418,7 +70280,7 @@ Functione2759: ; e2759 .asm_e2793 call ClearSprites pop af - ld [$ffaa], a + ld [hInMenu], a pop af ld [VramState], a pop af @@ -79427,7 +70289,7 @@ Functione2759: ; e2759 ; e27a2 Functione27a2: ; e27a2 - ld a, [wcf63] + ld a, [wJumptableIndex] ld hl, Jumptable_e27ac call Functione33df jp [hl] @@ -79493,7 +70355,7 @@ Functione27eb: ; e27eb ld [wcb2b], a ld [wcb2a], a ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret .asm_e2823 @@ -79503,16 +70365,16 @@ Functione27eb: ; e27eb cp $ff jr z, .asm_e2837 ld a, $2 - ld [wcf63], a + ld [wJumptableIndex], a ret - ld hl, wcf63 + ld hl, wJumptableIndex dec [hl] ret .asm_e2837 ld a, $6 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e283d @@ -79570,7 +70432,7 @@ Functione2887: ; e2887 ld a, [wcb2e] ld [wcb31], a ld a, $4 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e28a5 @@ -79588,7 +70450,7 @@ Functione28a5: ; e28a5 Functione28bd: ; e28bd ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e28c3 @@ -79652,7 +70514,7 @@ Functione2903: ; e2903 ld [wcb2b], a ld [wcb2a], a ld a, $4 - ld [wcf63], a + ld [wJumptableIndex], a ret .asm_e2938 @@ -79660,11 +70522,11 @@ Functione2903: ; e2903 jr c, .asm_e2946 call Functione31e7 ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret .asm_e2946 - ld hl, wcf63 + ld hl, wJumptableIndex dec [hl] ret @@ -79676,7 +70538,7 @@ Functione2903: ; e2903 ld a, [wcb31] ld [wcb2e], a ld a, $0 - ld [wcf63], a + ld [wJumptableIndex], a ret ; e2963 @@ -79690,7 +70552,7 @@ Functione2963: ; e2963 (38:6963) xor a call ByteFill xor a - ld [wcf63], a + ld [wJumptableIndex], a ld [wcf64], a ld [wcf65], a ld [wcf66], a @@ -79699,12 +70561,12 @@ Functione2963: ; e2963 (38:6963) ret Functione298d: ; e298d (38:698d) - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret Functione2992: ; e2992 (38:6992) - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -79728,7 +70590,7 @@ Functione2998: ; e2998 (38:6998) jp Functione2a65 Functione29b5: ; e29b5 (38:69b5) - ld hl, $ffa9 + ld hl, hJoyLast ld a, [wcb2d] ld d, a ld a, [wcb2c] @@ -79746,7 +70608,7 @@ Functione29b5: ; e29b5 (38:69b5) ; e29d0 (38:69d0) Functione29d0: ; e29d0 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [wcb2d] ld d, a ld a, [wcb2c] @@ -79770,7 +70632,7 @@ Functione29d0: ; e29d0 jr Functione2a65 Functione29f4: ; e29f4 - ld hl, $ffa9 + ld hl, hJoyLast ld a, [wcb2d] ld d, a ld a, [wcb2c] @@ -79980,7 +70842,7 @@ PCMonInfo: ; e2ac6 (38:6ac6) ld hl, TempMonDVs predef GetUnownLetter call GetBaseData - ld de, $9000 + ld de, VTiles2 tile $00 predef GetFrontpic xor a ld [wcb32], a @@ -80419,7 +71281,7 @@ Functione2e01: ; e2e01 (38:6e01) .asm_e2e0b ld hl, Unknown_e2e2b ld de, Sprites -.asm_e2e11 +.done1 ld a, [hl] cp $ff ret z @@ -80439,7 +71301,7 @@ Functione2e01: ; e2e01 (38:6e01) ld a, [hli] ld [de], a inc de - jr .asm_e2e11 + jr .done1 ; e2e2b (38:6e2b) Unknown_e2e2b: ; e2e2b @@ -81142,11 +72004,11 @@ Unknown_e33a6: ; e33a6 dbw BANK(sBox7), sBox7 dbw BANK(sBox8), sBox8 dbw BANK(sBox9), sBox9 - dbw BANK(sBox10), sBox10 - dbw BANK(sBox11), sBox11 - dbw BANK(sBox12), sBox12 - dbw BANK(sBox13), sBox13 - dbw BANK(sBox14), sBox14 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 ; e33d0 Functione33d0: ; e33d0 (38:73d0) @@ -81171,18 +72033,18 @@ endr Functione33e8: ; e33e8 (38:73e8) call DisableLCD - ld hl, $9000 + ld hl, VTiles2 tile $00 ld bc, $310 xor a call ByteFill call Functione51 - call Functione58 + call LoadFontsBattleExtra ld hl, PCMailGFX - ld de, $95c0 + ld de, VTiles2 tile $5c ld bc, $40 call CopyBytes ld hl, PCSelectLZ - ld de, $8000 + ld de, VTiles0 tile $00 call Decompress ld a, 6 call SkipMusic @@ -81215,26 +72077,26 @@ PCString_NoReleasingEGGS: db "No releasing EGGS!@" Functione35aa: ; e35aa (38:75aa) call LoadMenuDataHeader_0x1d75 call Functione35e2 -.asm_e35b0 +.loop xor a ld [hBGMapMode], a ; $ff00+$d4 call Functione36cf call Functione379c - ld hl, MenuDataHeader_0xe35f1 + ld hl, Functione35aa_menudataheader call CopyMenuDataHeader xor a ld [wd0e4], a hlcoord 0, 4 - ld bc, $809 + lb bc, 8, 9 call TextBox call Function350c ld a, [wcf73] cp $2 - jr z, .asm_e35de + jr z, .done call Functione37af call Functione36f9 - jr .asm_e35b0 -.asm_e35de + jr .loop +.done call WriteBackup ret @@ -81242,37 +72104,37 @@ Functione35e2: ; e35e2 (38:75e2) xor a ld [hBGMapMode], a ; $ff00+$d4 hlcoord 0, 0 - ld bc, $168 - ld a, $7f + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " call ByteFill ret ; e35f1 (38:75f1) -MenuDataHeader_0xe35f1: ; 0xe35f1 +Functione35aa_menudataheader: ; 0xe35f1 db $40 ; flags db 05, 01 ; start coords db 12, 09 ; end coords - dw MenuData2_0xe35f9 + dw .menudata2 db 1 ; default option ; 0xe35f9 -MenuData2_0xe35f9: ; 0xe35f9 +.menudata2: ; 0xe35f9 db $22 ; flags db 4, 0 db 1 - dbw BANK(Unknown_e3609), Unknown_e3609 - dbw BANK(Functione3619), Functione3619 - dbw BANK(NULL), NULL - dbw BANK(Functione3632), Functione3632 + dba .boxes + dba .boxnames + dba NULL + dba Functione3632 ; e3609 -Unknown_e3609: ; e3609 +.boxes: ; e3609 db 14 db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 db -1 ; e3619 -Functione3619: ; e3619 +.boxnames: ; e3619 push de ld a, [MenuSelection] dec a @@ -81293,15 +72155,15 @@ Functione3626: ; e3626 (38:7626) Functione3632: ; e3632 hlcoord 11, 7 - ld bc, $0507 + lb bc, 5, 7 call TextBox ld a, [MenuSelection] - cp $ff + cp -1 ret z hlcoord 12, 9 ld de, String_e3663 call PlaceString - call Functione366c + call GetBoxCount ld [wd265], a hlcoord 13, 11 ld de, wd265 @@ -81318,21 +72180,21 @@ String_e3663: ; e3663 String_e3668: ; e3668 db "/" - db "0" + MONS_PER_BOX / 10 - db "0" + MONS_PER_BOX % 10 + db "0" + MONS_PER_BOX / 10 ; "2" + db "0" + MONS_PER_BOX % 10 ; "0" db "@" ; e366c -Functione366c: ; e366c (38:766c) +GetBoxCount: ; e366c (38:766c) ld a, [wCurBox] ld c, a ld a, [MenuSelection] dec a cp c - jr z, .asm_e3697 + jr z, .activebox ld c, a ld b, 0 - ld hl, Unknown_e36a5 + ld hl, .boxbanks rept 3 add hl, bc endr @@ -81345,15 +72207,17 @@ endr ld a, [hl] call CloseSRAM ld c, a - ld a, [wd4b4] + ld a, [wSavedAtLeastOnce] and a - jr z, .asm_e3695 + jr z, .newfile ld a, c ret -.asm_e3695 + +.newfile xor a ret -.asm_e3697 + +.activebox ld a, BANK(sBoxCount) ld b, a call GetSRAMBank @@ -81363,7 +72227,7 @@ endr ret ; e36a5 (38:76a5) -Unknown_e36a5: ; e36a5 +.boxbanks: ; e36a5 dbw BANK(sBox1), sBox1 dbw BANK(sBox2), sBox2 dbw BANK(sBox3), sBox3 @@ -81373,11 +72237,11 @@ Unknown_e36a5: ; e36a5 dbw BANK(sBox7), sBox7 dbw BANK(sBox8), sBox8 dbw BANK(sBox9), sBox9 - dbw BANK(sBox10), sBox10 - dbw BANK(sBox11), sBox11 - dbw BANK(sBox12), sBox12 - dbw BANK(sBox13), sBox13 - dbw BANK(sBox14), sBox14 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 ; e36cf Functione36cf: ; e36cf (38:76cf) @@ -81417,7 +72281,7 @@ Functione36f9: ; e36f9 (38:76f9) ret .asm_e3717 - call Functione366c + call GetBoxCount and a jr z, .asm_e372f ld e, l @@ -81451,7 +72315,7 @@ Functione36f9: ; e36f9 (38:76f9) callba Function116c1 call ClearTileMap call Functione51 - call Functione58 + call LoadFontsBattleExtra ld a, [MenuSelection] dec a call Functione3626 @@ -81540,7 +72404,7 @@ INCBIN "gfx/misc/copyright.2bpp" ; e41d0 _OptionsMenu: ; e41d0 - ld hl, $ffaa + ld hl, hInMenu ld a, [hl] push af ld [hl], $1 @@ -81553,21 +72417,21 @@ _OptionsMenu: ; e41d0 ld de, StringOptions call PlaceString xor a - ld [wcf63], a + ld [wJumptableIndex], a ld c, $6 ;number of items on the menu minus 1 (for cancel) .asm_e41f3 ;this next will display the settings of each option when the menu is opened push bc xor a - ld [$ffa9], a + ld [hJoyLast], a call GetOptionPointer pop bc - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] dec c jr nz, .asm_e41f3 call Functione4512 xor a - ld [wcf63], a + ld [wJumptableIndex], a inc a ld [hBGMapMode], a call WaitBGMap @@ -81575,9 +72439,9 @@ _OptionsMenu: ; e41d0 call GetSGBLayout call SetPalettes .asm_e4217 - call Functiona57 + call JoyTextDelay ld a, [hJoyPressed] - and $a + and START | B_BUTTON jr nz, .ExitOptions call OptionsControl jr c, .asm_e422a @@ -81595,7 +72459,7 @@ _OptionsMenu: ; e41d0 call PlaySFX call WaitSFX pop af - ld [$ffaa], a + ld [hInMenu], a ret ; e4241 @@ -81619,7 +72483,7 @@ StringOptions: ; e4241 GetOptionPointer: ; e42d6 - ld a, [wcf63] ;load the cursor position to a + ld a, [wJumptableIndex] ;load the cursor position to a ld e, a ;copy it to de ld d, 0 ld hl, .Pointers @@ -82059,11 +72923,11 @@ Options_Cancel: ; e4520 ; e452a OptionsControl: ; e452a - ld hl, wcf63 - ld a, [$ffa9] - cp $80 + ld hl, wJumptableIndex + ld a, [hJoyLast] + cp D_DOWN jr z, .DownPressed - cp $40 + cp D_UP jr z, .UpPressed and a ret @@ -82116,7 +72980,7 @@ Functione455c: ; e455c jr nz, .asm_e4564 hlcoord 1, 2 ld bc, $0028 - ld a, [wcf63] + ld a, [wJumptableIndex] call AddNTimes ld [hl], $ed ret @@ -82128,8 +72992,8 @@ Functione4579: ; e4579 call PlayMusic call WhiteBGMap call ClearTileMap - ld a, $98 - ld [$ffd7], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a xor a ld [hBGMapAddress], a ld [hJoyDown], a @@ -82151,11 +73015,11 @@ Functione4579: ; e4579 callba GBCOnlyScreen call Functione45e8 .asm_e45c0 - call Functiona57 - ld a, [$ffa9] - and $f + call JoyTextDelay + ld a, [hJoyLast] + and BUTTONS jr nz, .asm_e45de - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .asm_e45e3 call Functione4670 @@ -82211,7 +73075,7 @@ Functione45e8: ; e45e8 add hl, bc ld [hl], $30 xor a - ld [wcf63], a + ld [wJumptableIndex], a ld [wcf64], a ld [wcf65], a ld [hSCX], a @@ -82235,7 +73099,7 @@ Functione465e: ; e465e ; e4670 Functione4670: ; e4670 - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_e467f @@ -82256,7 +73120,7 @@ Jumptable_e467f: ; e467f ; e4687 Functione4687: ; e4687 - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret ; e468c @@ -82325,7 +73189,7 @@ Functione46dd: ; e46dd ret .asm_e46e7 - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret ; e46ed @@ -82491,19 +73355,19 @@ INCBIN "gfx/splash/logo.1bpp" CrystalIntro: ; e48ac ld a, [rSVBK] push af - ld a, $5 + ld a, 5 ld [rSVBK], a - ld a, [$ffaa] + ld a, [hInMenu] push af ld a, [hVBlank] push af call Functione4901 .loop: ; e48bc - call Functiona57 - ld a, [$ffa9] - and $f + call JoyTextDelay + ld a, [hJoyLast] + and BUTTONS jr nz, .ShutOffMusic - ld a, [wcf63] + ld a, [wJumptableIndex] bit 7, a jr nz, .done call IntroSceneJumper @@ -82529,7 +73393,7 @@ CrystalIntro: ; e48ac pop af ld [hVBlank], a pop af - ld [$ffaa], a + ld [hInMenu], a pop af ld [rSVBK], a ret @@ -82539,15 +73403,15 @@ Functione4901: ; e4901 xor a ld [hVBlank], a ld a, $1 - ld [$ffaa], a + ld [hInMenu], a xor a ld [$ffde], a - ld [wcf63], a + ld [wJumptableIndex], a ret ; e490f IntroSceneJumper: ; e490f - ld a, [wcf63] + ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, IntroScenes @@ -82593,7 +73457,7 @@ IntroScenes: ; e491e (39:491e) NextIntroScene: ; e4956 (39:4956) - ld hl, wcf63 + ld hl, wJumptableIndex inc [hl] ret @@ -82607,18 +73471,18 @@ IntroScene1: ; e495b (39:495b) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap001 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroUnownsGFX - ld de, $9000 + ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroPulseGFX - ld de, $8000 + ld de, VTiles0 tile $00 call Functione54c2 ld hl, IntroTilemap002 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af @@ -82644,32 +73508,32 @@ IntroScene1: ; e495b (39:495b) callba Function8cf53 call Functione549e xor a - ld [wcf64], a + ld [wIntroSceneFrameCounter], a ld [wcf65], a call NextIntroScene ret IntroScene2: ; e49d6 (39:49d6) ; First Unown (A) fades in, pulses, then fades out. - ld hl, wcf64 + ld hl, wIntroSceneFrameCounter ld a, [hl] inc [hl] cp $80 - jr nc, .asm_e49f9 + jr nc, .endscene cp $60 - jr nz, .asm_e49f1 + jr nz, .DontPlaySound push af ld de, $5858 call Functione51dc ld de, SFX_INTRO_UNOWN_1 call PlaySFX pop af -.asm_e49f1 +.DontPlaySound ld [wcf65], a xor a call Functione5223 ret -.asm_e49f9 +.endscene call NextIntroScene ret @@ -82683,15 +73547,15 @@ IntroScene3: ; e49fd (39:49fd) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap003 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroBackgroundGFX - ld de, $9000 + ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap004 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af @@ -82717,20 +73581,20 @@ IntroScene3: ; e49fd (39:49fd) call Functione5516 call Functione549e xor a - ld [wcf64], a + ld [wIntroSceneFrameCounter], a call NextIntroScene ret IntroScene4: ; e4a69 (39:4a69) ; Scroll the outdoor panorama for a bit. call Functione552f - ld hl, wcf64 + ld hl, wIntroSceneFrameCounter ld a, [hl] cp $80 - jr z, .asm_e4a76 + jr z, .endscene inc [hl] ret -.asm_e4a76 +.endscene call NextIntroScene ret @@ -82745,18 +73609,18 @@ IntroScene5: ; e4a7a (39:4a7a) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap005 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroUnownsGFX - ld de, $9000 + ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroPulseGFX - ld de, $8000 + ld de, VTiles0 tile $00 call Functione54c2 ld hl, IntroTilemap006 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af @@ -82793,39 +73657,39 @@ IntroScene6: ; e4af7 (39:4af7) ld a, [hl] inc [hl] cp $80 - jr nc, .asm_e4b3b + jr nc, .endscene cp $60 - jr z, .asm_e4b24 + jr z, .SecondUnown cp $40 - jr nc, .asm_e4b32 + jr nc, .StopUnown cp $20 - jr z, .asm_e4b0e - jr .asm_e4b1c -.asm_e4b0e + jr z, .FirstUnown + jr .NoUnown +.FirstUnown push af ld de, $3878 call Functione51dc ld de, SFX_INTRO_UNOWN_2 call PlaySFX pop af -.asm_e4b1c +.NoUnown ld [wcf65], a xor a call Functione5223 ret -.asm_e4b24 +.SecondUnown push af ld de, $7030 call Functione51dc ld de, SFX_INTRO_UNOWN_1 call PlaySFX pop af -.asm_e4b32 +.StopUnown ld [wcf65], a ld a, $1 call Functione5223 ret -.asm_e4b3b +.endscene call NextIntroScene ret @@ -82839,21 +73703,21 @@ IntroScene7: ; e4b3f (39:4b3f) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap003 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld hl, IntroPichuWooperGFX - ld de, $8000 + ld de, VTiles0 tile $00 call Functione54c2 ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneRunGFX - ld de, $8000 + ld de, VTiles0 tile $00 call Functione54de ld hl, IntroBackgroundGFX - ld de, $9000 + ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap004 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af @@ -82885,14 +73749,14 @@ IntroScene7: ; e4b3f (39:4b3f) ld [wc3c0], a call Functione549e xor a - ld [wcf64], a + ld [wIntroSceneFrameCounter], a ld [wcf65], a call NextIntroScene ret IntroScene8: ; e4bd3 (39:4bd3) ; Scroll the scene, then show Suicune running across the screen. - ld hl, wcf64 + ld hl, wIntroSceneFrameCounter ld a, [hl] inc [hl] cp $40 @@ -82995,15 +73859,15 @@ IntroScene11: ; e4c86 (39:4c86) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap007 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroUnownsGFX - ld de, $9000 + ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap008 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af @@ -83029,7 +73893,7 @@ IntroScene11: ; e4c86 (39:4c86) callba Function8cf53 call Functione549e xor a - ld [wcf64], a + ld [wIntroSceneFrameCounter], a ld [wcf65], a call NextIntroScene ret @@ -83037,7 +73901,7 @@ IntroScene11: ; e4c86 (39:4c86) IntroScene12: ; e4cfa (39:4cfa) ; Even more Unown. call Functione4d36 - ld hl, wcf64 + ld hl, wIntroSceneFrameCounter ld a, [hl] inc [hl] cp $c0 @@ -83071,20 +73935,20 @@ IntroScene12: ; e4cfa (39:4cfa) ret Functione4d36: ; e4d36 (39:4d36) - ld a, [wcf64] + ld a, [wIntroSceneFrameCounter] ld c, a - ld hl, Unknown_e4d54 -.asm_e4d3d + ld hl, .UnownSounds +.loop ld a, [hli] - cp $ff + cp -1 ret z cp c - jr z, .asm_e4d48 + jr z, .playsound rept 2 inc hl endr - jr .asm_e4d3d -.asm_e4d48 + jr .loop +.playsound ld a, [hli] ld d, [hl] ld e, a @@ -83095,7 +73959,7 @@ endr ret ; e4d54 (39:4d54) -Unknown_e4d54: ; e4d54 +.UnownSounds: ; e4d54 dbw $00, SFX_INTRO_UNOWN_3 dbw $20, SFX_INTRO_UNOWN_2 dbw $40, SFX_INTRO_UNOWN_1 @@ -83117,18 +73981,18 @@ IntroScene13: ; e4d6d (39:4d6d) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap003 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneRunGFX - ld de, $8000 + ld de, VTiles0 tile $00 call Functione54de ld hl, IntroBackgroundGFX - ld de, $9000 + ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap004 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af @@ -83221,22 +74085,22 @@ IntroScene15: ; e4e40 (39:4e40) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap009 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneJumpGFX - ld de, $9000 + ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroUnownBackGFX - ld de, $8000 + ld de, VTiles0 tile $00 call Functione54c2 ld de, GFX_e7a5d - ld hl, $8800 + ld hl, VTiles1 tile $00 lb bc, BANK(GFX_e7a5d), 1 call Request2bpp ld hl, IntroTilemap010 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa call Functione541b ld a, [rSVBK] ; $ff00+$70 @@ -83303,15 +74167,15 @@ IntroScene17: ; e4ef5 (39:4ef5) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap011 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneCloseGFX - ld de, $8800 + ld de, VTiles1 tile $00 call Functione54de ld hl, IntroTilemap012 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af @@ -83369,22 +74233,22 @@ IntroScene19: ; e4f7e (39:4f7e) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap013 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroSuicuneBackGFX - ld de, $9000 + ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroUnownsGFX - ld de, $8800 + ld de, VTiles1 tile $00 call Functione54c2 ld de, GFX_e7a5d - ld hl, $8ff0 + ld hl, VTiles1 tile $7f lb bc, BANK(GFX_e7a5d), 1 call Request2bpp ld hl, IntroTilemap014 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa call Functione541b ld a, [rSVBK] ; $ff00+$70 @@ -83545,15 +74409,15 @@ IntroScene26: ; e50bb (39:50bb) ld a, $1 ld [rVBK], a ; $ff00+$4f ld hl, IntroTilemap015 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 ld [rVBK], a ; $ff00+$4f ld hl, IntroCrystalUnownsGFX - ld de, $9000 + ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap017 - ld de, $9800 + ld de, VBGMap0 tile $00 call Functione54fa ld a, [rSVBK] ; $ff00+$70 push af @@ -83630,7 +74494,7 @@ IntroScene28: ; e5152 (39:5152) ret .done - ld hl, wcf63 + ld hl, wJumptableIndex set 7, [hl] ret @@ -84024,7 +74888,7 @@ Functione5441: ; e5441 (39:5441) Functione5451: ; e5451 (39:5451) hlcoord 0, 0 - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH .asm_e5457 ld a, [hl] and a @@ -84763,15 +75627,15 @@ Functionfb449:: ; fb449 Functionfb48a:: ; fb48a ld de, GFX_f9214 - ld hl, $9600 + ld hl, VTiles2 tile $60 lb bc, BANK(GFX_f9214), 1 call Functionddc ld de, GFX_f8f24 - ld hl, $9620 + ld hl, VTiles2 tile $62 lb bc, BANK(GFX_f8f24), 1 call Functiondc9 ld de, FontExtra + $30 - ld hl, $9630 + ld hl, VTiles2 tile $63 lb bc, BANK(FontExtra), $16 call Functiondc9 jr Functionfb4cc @@ -84779,16 +75643,16 @@ Functionfb48a:: ; fb48a Functionfb4b0:: ; fb4b0 ld de, GFX_f9424 - ld hl, $9610 + ld hl, VTiles2 tile $61 ld b, BANK(GFX_f9424) ld c, 1 call Functiondc9 ret ; fb4be -Functionfb4be:: ; fb4be +_LoadFontsBattleExtra:: ; fb4be ld de, FontBattleExtra - ld hl, $9600 + ld hl, VTiles2 tile $60 lb bc, BANK(FontBattleExtra), $19 call Functiondc9 jr Functionfb4cc @@ -84802,10 +75666,10 @@ Functionfb4cc: ; fb4cc call AddNTimes ld d, h ld e, l - ld hl, $9790 + ld hl, VTiles2 tile $79 lb bc, BANK(Frames), 6 call Functionddc - ld hl, $97f0 + ld hl, VTiles2 tile $7f ld de, GFX_f9204 lb bc, BANK(GFX_f9204), 1 call Functionddc @@ -84814,10 +75678,10 @@ Functionfb4cc: ; fb4cc Functionfb4f2: ; fb4f2 ld de, FontBattleExtra - ld hl, $9600 + ld hl, VTiles2 tile $60 lb bc, BANK(FontBattleExtra), $c call Functiondc9 - ld hl, $9700 + ld hl, VTiles2 tile $70 ld de, FontBattleExtra + $100 lb bc, BANK(FontBattleExtra), 3 call Functiondc9 @@ -84825,46 +75689,46 @@ Functionfb4f2: ; fb4f2 Functionfb50d: ; fb50d ld de, GFX_f8ac0 - ld hl, $96c0 + ld hl, VTiles2 tile $6c lb bc, BANK(GFX_f8ac0), 4 call Functionddc ld de, GFX_f8ae0 - ld hl, $9730 + ld hl, VTiles2 tile $73 lb bc, BANK(GFX_f8ae0), 6 call Functionddc ld de, GFX_f8b10 - ld hl, $9550 + ld hl, VTiles2 tile $55 lb bc, BANK(GFX_f8b10), 9 call Functiondc9 ld de, GFX_f9214 + $90 - ld hl, $95e0 + ld hl, VTiles2 tile $5e lb bc, BANK(GFX_f9214), 2 call Functiondc9 ret ; fb53e Functionfb53e: ; fb53e - call Functionfb4be + call _LoadFontsBattleExtra ld de, GFX_f8ac0 - ld hl, $96c0 + ld hl, VTiles2 tile $6c lb bc, BANK(GFX_f8ac0), 4 call Functionddc ld de, GFX_f8ae0 - ld hl, $9780 + ld hl, VTiles2 tile $78 lb bc, BANK(GFX_f8ae0), 1 call Functionddc ld de, GFX_f8ae0 + $18 - ld hl, $9760 + ld hl, VTiles2 tile $76 lb bc, BANK(GFX_f8ae0), 2 call Functionddc ld de, GFX_f8b10 - ld hl, $9550 + ld hl, VTiles2 tile $55 lb bc, BANK(GFX_f8b10), 8 call Functiondc9 Functionfb571: ; fb571 ld de, GFX_f89b0 - ld hl, $9310 + ld hl, VTiles2 tile $31 lb bc, BANK(GFX_f89b0), $11 call Functiondc9 ret @@ -84896,8 +75760,8 @@ Functionfb57e: ; fb57e ld a, [hl] cp 101 jr nc, .asm_fb5db - ld a, [InLinkBattle] - cp $1 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE jr nz, .asm_fb5d9 ld hl, OTPartySpecies ld a, [wd003] @@ -85706,7 +76570,7 @@ TRADE_AFTER EQU 4 NPCTrade:: ; fcba8 ld a, e - ld [wcf63], a + ld [wJumptableIndex], a call Functionfcc59 ld b, CHECK_FLAG call TradeFlagAction @@ -85760,8 +76624,8 @@ NPCTrade:: ; fcba8 ; fcc07 Functionfcc07: ; fcc07 - call Function2ed3 - ld a, [wcf63] + call DisableSpriteUpdates + ld a, [wJumptableIndex] push af ld a, [wcf64] push af @@ -85769,7 +76633,7 @@ Functionfcc07: ; fcc07 pop af ld [wcf64], a pop af - ld [wcf63], a + ld [wJumptableIndex], a call Function2b74 ret ; fcc23 @@ -85805,7 +76669,7 @@ CheckTradeGender: ; fcc23 TradeFlagAction: ; fcc4a ld hl, wd960 - ld a, [wcf63] + ld a, [wJumptableIndex] ld c, a predef FlagPredef ld a, c @@ -85987,7 +76851,7 @@ Functionfcc63: ; fcc63 GetTradeAttribute: ; 0xfcdc2 ld d, 0 push de - ld a, [wcf63] + ld a, [wJumptableIndex] and $f swap a ld e, a @@ -86306,8 +77170,8 @@ TradeAfterText3: ; 0xfcfe7 ; 0xfcfec -Functionfcfec:: ; fcfec - ld a, [wd45c] +MomTriesToBuySomething:: ; fcfec + ld a, [wMapReentryScriptQueueFlag] and a ret nz call GetMapHeaderPhoneServiceNybble @@ -86321,14 +77185,14 @@ Functionfcfec:: ; fcfec ret nc ld b, BANK(UnknownScript_0xfd00f) ld de, UnknownScript_0xfd00f - callba Function97c4f + callba LoadScriptBDE scf ret ; fd00f UnknownScript_0xfd00f: ; 0xfd00f callasm Functionfd017 - farjump UnknownScript_0x90241 + farjump Script_ReceivePhoneCall ; 0xfd017 Functionfd017: ; fd017 @@ -86605,7 +77469,7 @@ Function104000:: ; 104000 Function104006: ; 104006 decoord 0, 0, AttrMap - ld hl, w6_d000 + $400 + ld hl, w6_d400 call Function104263 decoord 0, 0 ld hl, w6_d000 @@ -86616,7 +77480,7 @@ Function104006: ; 104006 call Function10419d ld a, $1 ld [rVBK], a - ld hl, w6_d000 + $400 + ld hl, w6_d400 call Function10419d ret ; 10402d @@ -86644,11 +77508,11 @@ Function104047: ; 104047 Function10404d: ; 10404d decoord 0, 0, AttrMap - ld hl, $d400 + ld hl, w6_d400 call Function104263 ld a, $1 ld [rVBK], a ; $ff00+$4f - ld hl, $d400 + ld hl, w6_d400 call Function10419d ret ; 104061 @@ -86660,7 +77524,7 @@ Function104061:: ; 104061 Function104067: ; 104067 decoord 0, 0, AttrMap - ld hl, $d400 + ld hl, w6_d400 call Function104263 decoord 0, 0 ld hl, w6_d000 @@ -86671,7 +77535,7 @@ Function104067: ; 104067 push af ld a, $1 ld [rVBK], a ; $ff00+$4f - ld hl, $d400 + ld hl, w6_d400 call Function1041ad ld a, $0 ld [rVBK], a ; $ff00+$4f @@ -86690,7 +77554,7 @@ Function104099: ; 104099 Function1040a2: ; 1040a2 decoord 0, 0, AttrMap - ld hl, $d400 + ld hl, w6_d400 call Function104263 decoord 0, 0 ld hl, w6_d000 @@ -86701,7 +77565,7 @@ Function1040a2: ; 1040a2 push af ld a, $1 ld [rVBK], a - ld hl, $d400 + ld hl, w6_d400 call Function1041c1 ld a, $0 ld [rVBK], a @@ -86724,7 +77588,7 @@ Function1040da: ; 1040da ld a, $3 ld [rSVBK], a ld de, $d800 - ld a, [$ffd7] + ld a, [hBGMapAddress + 1] ld [rHDMA1], a ld a, [hBGMapAddress] ld [rHDMA2], a @@ -86760,7 +77624,7 @@ Function104110:: ; 104110 Function104116: ; 104116 decoord 0, 0, AttrMap - ld hl, $d400 + ld hl, w6_d400 call Function104263 decoord 0, 0 ld hl, w6_d000 @@ -86771,7 +77635,7 @@ Function104116: ; 104116 push af ld a, $1 ld [rVBK], a ; $ff00+$4f - ld hl, $d400 + ld hl, w6_d400 call Function1041b7 ld a, $0 ld [rVBK], a ; $ff00+$4f @@ -86790,7 +77654,7 @@ Function104148: ; 104148 (41:4148) Function10414e: ; 10414e decoord 0, 0, AttrMap - ld hl, $d400 + ld hl, w6_d400 call Function104263 ld c, $ff decoord 0, 0 @@ -86798,7 +77662,7 @@ Function10414e: ; 10414e call Function104265 ld a, $1 ld [rVBK], a - ld hl, $d400 + ld hl, w6_d400 call Function1041ad ld a, $0 ld [rVBK], a @@ -86817,7 +77681,7 @@ Function104177: ; 104177 ld [$ffde], a ld a, [rSVBK] push af - ld a, $6 + ld a, 6 ld [rSVBK], a ld a, [rVBK] push af @@ -86852,7 +77716,7 @@ Function1041a4: ; 104a14 ret Function1041ad: ; 1041ad (41:41ad) - ld a, [$ffd7] + ld a, [hBGMapAddress + 1] ld d, a ld a, [hBGMapAddress] ; $ff00+$d6 ld e, a @@ -86860,7 +77724,7 @@ Function1041ad: ; 1041ad (41:41ad) jr Function104209 Function1041b7: ; 1041b7 (41:41b7) - ld a, [$ffd7] + ld a, [hBGMapAddress + 1] ld d, a ld a, [hBGMapAddress] ; $ff00+$d6 ld e, a @@ -86869,7 +77733,7 @@ Function1041b7: ; 1041b7 (41:41b7) ; 1041c1 (41:41c1) Function1041c1: ; 1041c1 - ld a, [$ffd7] + ld a, [hBGMapAddress + 1] ld d, a ld a, [hBGMapAddress] ld e, a @@ -86892,25 +77756,25 @@ Function1041c1: ; 1041c1 ld a, $7f sub c ld d, a -.asm_1041e4 +.loop1 ld a, [rLY] cp d - jr nc, .asm_1041e4 -.asm_1041e9 + jr nc, .loop1 +.loop2 ld a, [rSTAT] and $3 - jr z, .asm_1041e9 + jr z, .loop2 ld a, b ld [rHDMA5], a ld a, [rLY] inc c ld hl, rLY -.asm_1041f8 +.loop3 cp [hl] - jr z, .asm_1041f8 + jr z, .loop3 ld a, [hl] dec c - jr nz, .asm_1041f8 + jr nz, .loop3 ld hl, rHDMA5 res 7, [hl] ret @@ -86921,54 +77785,57 @@ asm_104205: jr asm_10420b -Function104209: ; 104209 +Function104209: +; LY magic ld b, $7f asm_10420b: ld a, h ld [rHDMA1], a ld a, l - and $f0 + and $f0 ; high nybble ld [rHDMA2], a ld a, d - and $1f + and $1f ; lower 5 bits ld [rHDMA3], a ld a, e - and $f0 + and $f0 ; high nybble ld [rHDMA4], a ld a, c dec c - or $80 + or $80 ; set 7, a ld e, a ld a, b sub c ld d, a -.asm_104225 +.ly_loop ld a, [rLY] cp d - jr nc, .asm_104225 + jr nc, .ly_loop + di -.asm_10422b +.rstat_loop_1 ld a, [rSTAT] and $3 - jr nz, .asm_10422b -.asm_104231 + jr nz, .rstat_loop_1 +.rstat_loop_2 ld a, [rSTAT] and $3 - jr z, .asm_104231 + jr z, .rstat_loop_2 ld a, e ld [rHDMA5], a ld a, [rLY] inc c ld hl, rLY -.asm_104240 +.final_ly_loop cp [hl] - jr z, .asm_104240 + jr z, .final_ly_loop ld a, [hl] dec c - jr nz, .asm_104240 + jr nz, .final_ly_loop ld hl, rHDMA5 res 7, [hl] ei + ret ; 10424e @@ -86978,7 +77845,7 @@ Function10424e: ; 10424e (41:424e) ld [rHDMA1], a ; $ff00+$51 ld a, l ld [rHDMA2], a ; $ff00+$52 - ld a, [$ffd7] + ld a, [hBGMapAddress + 1] and $1f ld [rHDMA3], a ; $ff00+$53 ld a, [hBGMapAddress] ; $ff00+$d6 @@ -86993,76 +77860,95 @@ Function104263: ; 104263 (41:4263) ld c, $0 Function104265: ; 104265 (41:4265) +; back up the value of c to hConnectionStripLength ld a, [hConnectionStripLength] push af ld a, c ld [hConnectionStripLength], a - ld c, $12 -.asm_10426d - ld b, $14 -.asm_10426f + +; for each row on the screen + ld c, SCREEN_HEIGHT +.loop1 +; for each tile in the row + ld b, SCREEN_WIDTH +.loop2 +; copy from de to hl ld a, [de] inc de ld [hli], a dec b - jr nz, .asm_10426f + jr nz, .loop2 + +; load the original value of c into hl 12 times ld a, [hConnectionStripLength] - ld b, $c -.asm_104279 + ld b, 12 +.loop3 ld [hli], a dec b - jr nz, .asm_104279 + jr nz, .loop3 + dec c - jr nz, .asm_10426d + jr nz, .loop1 + +; restore the original value of hConnectionStripLength pop af ld [hConnectionStripLength], a ret Function104284:: ; 104284 + ; switch to WRAM bank 6 ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a + push bc push hl - ld a, b - ld l, c + + ; Copy c tiles of the 2bpp from b:de to w6_d000 + ld a, b ; bank + ld l, c ; number of tiles ld h, $0 rept 4 - add hl, hl + add hl, hl ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile) endr ld b, h ld c, l - ld h, d + ld h, d ; address ld l, e ld de, w6_d000 call FarCopyBytes + pop hl pop bc + push bc call DelayFrame pop bc + ld d, h ld e, l ld hl, w6_d000 call Function104209 + + ; restore the previous bank pop af ld [rSVBK], a ret ; 1042b2 Function1042b2:: ; 1042b2 -.asm_1042b2 +.loop ld a, c cp $10 - jp c, Function1042d6 - jp z, Function1042d6 + jp c, .asm_1042d6 + jp z, .asm_1042d6 push bc push hl push de ld c, $10 - call Function1042d6 + call .asm_1042d6 pop de ld hl, $0080 add hl, de @@ -87075,10 +77961,10 @@ Function1042b2:: ; 1042b2 ld a, c sub $10 ld c, a - jr .asm_1042b2 + jr .loop ; 1042d6 -Function1042d6: ; 1042d6 +.asm_1042d6: ; 1042d6 ld a, [rSVBK] push af ld a, $6 @@ -87127,13 +78013,13 @@ Function104309: ld [rVBK], a ; $ff00+$4f ld c, $8 ld hl, w6_d000 + $80 - ld de, $9c00 + ld de, VBGMap1 tile $00 call Function104209 ld a, $0 ld [rVBK], a ; $ff00+$4f ld c, $8 ld hl, w6_d000 - ld de, $9c00 + ld de, VBGMap1 tile $00 call Function104209 ret @@ -87428,13 +78314,13 @@ Function104770: ; 104770 (41:4770) ld [rVBK], a ; $ff00+$4f xor a ld bc, $400 - ld hl, $9800 + ld hl, VBGMap0 tile $00 call ByteFill pop af ld [rVBK], a ; $ff00+$4f ld a, $60 ld bc, $400 - ld hl, $9800 + ld hl, VBGMap0 tile $00 call ByteFill ret @@ -87449,7 +78335,7 @@ Function1047a3: ; 1047a3 (41:47a3) ld [rVBK], a ; $ff00+$4f Function1047b4: ; 1047b4 (41:47b4) - ld hl, $9800 + ld hl, VBGMap0 tile $00 ld c, $14 ld b, $12 .asm_1047bb @@ -87492,23 +78378,23 @@ RefreshMapSprites: ; 1047f0 call Function2914 callba Function579d callba Function154f7 - ld hl, wd45b + ld hl, wPlayerSpriteSetupFlags bit 6, [hl] jr nz, .asm_104817 ld hl, VramState set 0, [hl] call Function2e31 .asm_104817 - ld a, [wd45b] + ld a, [wPlayerSpriteSetupFlags] and $1c - ld [wd45b], a + ld [wPlayerSpriteSetupFlags], a ret CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) ld a, [wd151] cp STANDING ret z - and a + and a ; DOWN jr z, .down cp UP jr z, .up @@ -87668,7 +78554,7 @@ DoMysteryGift: ; 1048ba (41:48ba) jr z, .asm_104963 call Function104a71 callba Function10619d - callba Function1060a9 + callba MobileFn_1060a9 callba Function106187 .asm_104963 ld a, [wc90f] @@ -87691,7 +78577,7 @@ DoMysteryGift: ; 1048ba (41:48ba) jr Function1049c5 .item - call Function105106 + call GetMysteryGiftBank ld a, [wc910] ld c, a callba MysteryGiftGetItem @@ -87775,13 +78661,13 @@ UnknownText_0x104a20: ; 104a20 ; 104a25 Function104a25: ; 104a25 (41:4a25) - call Function105106 + call GetMysteryGiftBank ld a, [s0_abe5] cp $5 jp CloseSRAM Function104a30: ; 104a30 (41:4a30) - call Function105106 + call GetMysteryGiftBank ld a, [wc901] ld b, a ld a, [wc902] @@ -87809,11 +78695,11 @@ Function104a30: ; 104a30 (41:4a30) jp CloseSRAM Function104a56: ; 104a56 (41:4a56) - call Function105106 + call GetMysteryGiftBank ld hl, s0_abe5 ld a, [hl] inc [hl] - ld hl, s0_abe6 + ld hl, s0_abe6 ; inc hl ld e, a ld d, $0 rept 2 @@ -87826,7 +78712,7 @@ endr jp CloseSRAM Function104a71: ; 104a71 (41:4a71) - call Function105106 + call GetMysteryGiftBank ld a, $1 ld [sMysteryGiftTrainerHouseFlag], a ld hl, wc903 @@ -88693,7 +79579,7 @@ endr ret Function105069: ; 105069 (41:5069) - call Function105106 + call GetMysteryGiftBank ld d, $0 ld b, $2 ld hl, s0_abf0 @@ -88707,7 +79593,7 @@ Function105069: ; 105069 (41:5069) pop bc pop hl ret nz - call Function105106 + call GetMysteryGiftBank ld b, $1 predef FlagPredef call CloseSRAM @@ -88715,7 +79601,7 @@ Function105069: ; 105069 (41:5069) ret Function105091: ; 105091 (41:5091) - call Function105106 + call GetMysteryGiftBank ld c, $0 .asm_105096 push bc @@ -88738,7 +79624,7 @@ Function105091: ; 105091 (41:5091) jp CloseSRAM Special_UnlockMysteryGift: ; 1050b9 - call Function105106 + call GetMysteryGiftBank ld hl, s0_abe3 ld a, [hl] inc a @@ -88750,19 +79636,19 @@ Special_UnlockMysteryGift: ; 1050b9 ; 1050c8 Function1050c8: ; 1050c8 - call Function105106 + call GetMysteryGiftBank ld a, [s0_abe5] cp $ff - jr z, .asm_1050d6 + jr z, .okay xor a ld [s0_abe5], a -.asm_1050d6 +.okay jp CloseSRAM ; 1050d9 Function1050d9: ; 1050d9 - call Function105106 + call GetMysteryGiftBank ld hl, sMysteryGiftItem ld de, s0_abe4 ld a, [hli] @@ -88775,7 +79661,7 @@ Function1050d9: ; 1050d9 Function1050ea: ; 1050ea (41:50ea) - call Function105106 + call GetMysteryGiftBank ld hl, s0_abe4 ld de, sMysteryGiftItem ld a, [hli] @@ -88796,7 +79682,7 @@ Function1050fb: ; 1050fb (41:50fb) ret -Function105106: ; 105106 +GetMysteryGiftBank: ; 105106 ld a, BANK(s0_abe4) jp GetSRAMBank ; 10510b @@ -88851,16 +79737,16 @@ Function105153: ; 105153 (41:5153) call WhiteBGMap call DisableLCD ld hl, MysteryGiftGFX - ld de, $9000 + ld de, VTiles2 tile $00 ld a, BANK(MysteryGiftGFX) - ld bc, $430 + ld bc, Function105688 - MysteryGiftGFX call FarCopyBytes hlcoord 0, 0 ld a, $42 - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH call ByteFill hlcoord 3, 7 - ld bc, $90f + lb bc, 9, 15 call ClearBox hlcoord 0, 0 ld a, $0 @@ -89126,7 +80012,7 @@ Function10578c: ; 10578c (41:578c) ld hl, sPlayerData + PlayerID - wPlayerData ld bc, 2 call CopyBytes - ld hl, sPlayerData + wd84a - wPlayerData + ld hl, sPlayerData + wSecretID - wPlayerData ld bc, 2 call CopyBytes call CloseSRAM @@ -89150,18 +80036,18 @@ Function1057d7: ; 1057d7 (41:57d7) call WhiteBGMap call DisableLCD ld hl, MysteryGiftJP_GFX - ld de, $9000 + ld de, VTiles2 tile $00 ld a, BANK(MysteryGiftJP_GFX) ld bc, $400 call FarCopyBytes ld hl, MysteryGiftJP_GFX + $400 - ld de, $8000 + ld de, VTiles0 tile $00 ld a, BANK(MysteryGiftJP_GFX) ld bc, $80 call FarCopyBytes hlcoord 0, 0 ld a, $3f - ld bc, $168 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH call ByteFill hlcoord 3, 7 ld bc, $90f @@ -89749,7 +80635,7 @@ MagikarpLength_Mobile: mobile ; 105f33 ret ; 105f79 -Function105f79: mobile ; 105f79 +MobileFn_105f79: mobile ; 105f79 ld a, $5 call GetSRAMBank ld a, [hProduct] @@ -89778,7 +80664,7 @@ Function105f79: mobile ; 105f79 ret ; 105f9f -Function105f9f: mobile ; 105f9f +MobileFn_105f9f: mobile ; 105f9f ld a, $5 call GetSRAMBank ld hl, $a070 @@ -89815,7 +80701,7 @@ Function105f9f: mobile ; 105f9f ret ; 105fd0 -Function105fd0: mobile ; 105fd0 +MobileFn_105fd0: mobile ; 105fd0 ld a, $5 call GetSRAMBank ld hl, $a06f @@ -89827,7 +80713,7 @@ Function105fd0: mobile ; 105fd0 ret ; 105fe3 -Function105fe3: mobile ; 105fe3 +MobileFn_105fe3: mobile ; 105fe3 ld a, $5 call GetSRAMBank ld hl, $a076 @@ -89855,7 +80741,7 @@ endr ret ; 106008 -Function106008: mobile ; 106008 +MobileFn_106008: mobile ; 106008 ld a, $5 call GetSRAMBank ld hl, $a07a @@ -89885,11 +80771,11 @@ endr ret ; 10602e -Function10602e: mobile ; 10602e (41:602e) +MobileFn_10602e: mobile ; 10602e (41:602e) ld hl, $a010 jp Function106117 -Function106035: mobile ; 106035 +MobileFn_106035: mobile ; 106035 ld a, $5 call GetSRAMBank ld a, [$aa8d] @@ -89899,29 +80785,29 @@ Function106035: mobile ; 106035 ld hl, $a014 jp Function106123 -Function106049: mobile ; 106049 +MobileFn_106049: mobile ; 106049 ld hl, $a018 jp Function10611d -Function106050: mobile ; 106050 +MobileFn_106050: mobile ; 106050 ld a, [BattleType] cp BATTLETYPE_TUTORIAL ret z ld hl, $a01b jp Function10611d -Function10605d: mobile ; 10605d +MobileFn_10605d: mobile ; 10605d ld a, [BattleType] cp BATTLETYPE_TUTORIAL ret z ld hl, $a01e jp Function10611d -Function10606a: mobile ; 10606a +MobileFn_10606a: mobile ; 10606a ld hl, $a021 jp Function10611d -Function106071: mobile ; 106071 +MobileFn_106071: mobile ; 106071 ld hl, $a024 jp Function10611d @@ -89929,23 +80815,23 @@ Mobile_HallOfFame:: mobile ; 0x106078 ld hl, $a027 jp Function10611d -Function10607f: mobile ; 10607f (41:607f) +MobileFn_10607f: mobile ; 10607f (41:607f) ld hl, $a02a jp Function10611d -Function106086: mobile ; 106086 +MobileFn_106086: mobile ; 106086 ld hl, $a02d jp Function10611d -Function10608d: mobile ; 10608d (41:608d) +MobileFn_10608d: mobile ; 10608d (41:608d) ld hl, $a030 jp Function10611d -Function106094: mobile ; 106094 +MobileFn_106094: mobile ; 106094 ld hl, $a033 jp Function10611d -Function10609b: mobile ; 10609b +MobileFn_10609b: mobile ; 10609b ld hl, $a036 jp Function10611d @@ -89953,76 +80839,76 @@ Mobile_HealParty: mobile ; 1060a2 ld hl, $a039 jp Function10611d -Function1060a9: mobile ; 1060a9 (41:60a9) +MobileFn_1060a9: mobile ; 1060a9 (41:60a9) ld hl, $a03c jr Function10611d -Function1060af: mobile ; 1060af +MobileFn_1060af: mobile ; 1060af ld hl, $a03f jr Function10611d -Function1060b5: mobile ; 1060b5 +MobileFn_1060b5: mobile ; 1060b5 ld hl, $a042 jr Function10611d -Function1060bb: mobile ; 1060bb +MobileFn_1060bb: mobile ; 1060bb ld hl, $a045 jr Function10611d -Function1060c1: mobile ; 1060c1 +MobileFn_1060c1: mobile ; 1060c1 ld hl, $a048 jr Function10611d -Function1060c7: mobile ; 1060c7 +MobileFn_1060c7: mobile ; 1060c7 ld hl, $a04b jr Function10611d -Function1060cd: mobile ; 1060cd +MobileFn_1060cd: mobile ; 1060cd ld hl, $a04e jr Function106123 -Function1060d3: mobile ; 1060d3 +MobileFn_1060d3: mobile ; 1060d3 ld hl, $a051 jr Function10611d -Function1060d9: mobile ; 1060df +MobileFn_1060d9: mobile ; 1060df ld hl, $a054 jr Function10611d -Function1060df: mobile ; 1060df +MobileFn_1060df: mobile ; 1060df ld hl, $a057 jr Function10611d -Function1060e5: mobile ; 1060e5 +MobileFn_1060e5: mobile ; 1060e5 ld a, [hBattleTurn] and a ret nz ld hl, $a05a jr Function10611d -Function1060ef: mobile ; 1060ef +MobileFn_1060ef: mobile ; 1060ef ld hl, $a05d jr Function10611d -Function1060f5: mobile ; 1060f5 +MobileFn_1060f5: mobile ; 1060f5 ld hl, $a060 jr Function10611d -Function1060fb: mobile ; 1060fb +MobileFn_1060fb: mobile ; 1060fb ld hl, $a063 jr Function10611d -Function106101: mobile ; 106101 +MobileFn_106101: mobile ; 106101 ld hl, $a066 jr Function10611d ; 106107 -Function106107: mobile ; 106107 +MobileFn_106107: mobile ; 106107 ld hl, $a069 jr Function10611d ; 10610d -Function10610d: mobile ; 10610d +MobileFn_10610d: mobile ; 10610d ld a, [hBattleTurn] and a ret nz @@ -90088,7 +80974,7 @@ Function10612d: ; 10612d ret ; 106155 -Function106155: mobile ; 106155 +MobileFn_106155: mobile ; 106155 ld a, $5 call GetSRAMBank call Function106162 @@ -90403,7 +81289,7 @@ Function10630f: ; 10630f ret ; 106314 -Function106314: mobile ; 106314 +MobileFn_106314: mobile ; 106314 ld a, $4 call GetSRAMBank ld a, c @@ -90575,7 +81461,7 @@ Function106403: ; 106403 or c inc a ld c, a - call Function106314 + call MobileFn_106314 ld a, [wcd25] inc a ld [wcd25], a @@ -90593,7 +81479,7 @@ Function106403: ; 106403 .asm_106435 ld c, $0 - call Function106314 + call MobileFn_106314 ld a, [wcd25] inc a ld [wcd25], a @@ -90604,7 +81490,7 @@ Function106442: ; 106442 ld a, $36 call Function3e32 xor a - ld [$ffe9], a + ld [hMobile], a ld [$ffc9], a ld a, [wcd25] inc a @@ -90630,20 +81516,20 @@ Function106463: ; 106463 Function106464:: ; 106464 ld de, GFX_f9214 - ld hl, $9600 + ld hl, VTiles2 tile $60 lb bc, BANK(GFX_f9214), 1 call Get2bpp ld de, GFX_f9424 - ld hl, $9610 + ld hl, VTiles2 tile $61 lb bc, BANK(GFX_f9424), 1 call Get2bpp ld de, GFX_106514 - ld hl, $9620 + ld hl, VTiles2 tile $62 ld c, 9 ld b, BANK(GFX_106514) call Get2bpp ld de, $40b0 - ld hl, $96b0 + ld hl, VTiles2 tile $6b ld b, $f ; XXX no graphics at 0f:40b0 call Get2bpp callba Functionfb4cc @@ -90658,11 +81544,11 @@ Function10649b: ; 10649b call AddNTimes ld d, h ld e, l - ld hl, $9790 + ld hl, VTiles2 tile $79 ld c, $6 ld b, BANK(Frames) call Function1064c3 - ld hl, $97f0 + ld hl, VTiles2 tile $7f ld de, GFX_f9204 ld c, $1 ld b, BANK(GFX_f9204) @@ -90738,7 +81624,7 @@ Function106594:: ; 106594 lb bc, BANK(GFX_1065ad), $80 call Get2bpp ld de, GFX_1065ad + $800 - ld hl, $97f0 + ld hl, VTiles2 tile $7f lb bc, BANK(GFX_1065ad), 1 call Get2bpp ret @@ -90993,20 +81879,20 @@ Function1dc381: ; 1dc381 call ClearSprites xor a ld [hBGMapMode], a - call Functione58 + call LoadFontsBattleExtra ld de, MobileHPIcon - ld hl, $9710 + ld hl, VTiles2 tile $71 lb bc, BANK(MobileHPIcon), 1 call Request1bpp ld de, MobileLvIcon - ld hl, $96e0 + ld hl, VTiles2 tile $6e lb bc, BANK(MobileLvIcon), 1 call Request1bpp ld de, ShinyIcon - ld hl, $93f0 + ld hl, VTiles2 tile $3f lb bc, BANK(ShinyIcon), 1 call Get2bpp @@ -91093,7 +81979,7 @@ Function1dc47b: ; 1dc47b call ClearSprites xor a ld [hBGMapMode], a - call Functione58 + call LoadFontsBattleExtra xor a ld [MonType], a callba CopyPkmnToTempMon @@ -91297,14 +82183,14 @@ INCLUDE "engine/diploma.asm" Function1ddf1c: ; 1ddf1c ld hl, LZ_1ddf33 - ld de, $9310 + ld de, VTiles2 tile $31 call Decompress ret ; 1ddf26 Function1ddf26: ; 1ddf26 (77:5f26) ld hl, LZ_1ddf33 - ld de, $9310 + ld de, VTiles2 tile $31 lb bc, BANK(LZ_1ddf33), $3a call Functione73 ret @@ -91422,14 +82308,14 @@ String_1de23c: ; 1de23c Function1de247: ; 1de247 ld a, [hBGMapAddress] ld l, a - ld a, [$ffd7] + ld a, [hBGMapAddress + 1] ld h, a push hl inc hl ld a, l ld [hBGMapAddress], a ld a, h - ld [$ffd7], a + ld [hBGMapAddress + 1], a hlcoord 19, 0 ld [hl], $66 hlcoord 19, 1 @@ -91448,7 +82334,7 @@ Function1de247: ; 1de247 ld a, l ld [hBGMapAddress], a ld a, h - ld [$ffd7], a + ld [hBGMapAddress + 1], a ret ; 1de27f @@ -91466,22 +82352,22 @@ Function1de27f: ; 1de27f -Start_DudeAutoInput_A:: ; 1de28a +_DudeAutoInput_A:: ; 1de28a ld hl, DudeAutoInput_A - jr CallStartAutoInput + jr _DudeAutoInput ; 1de28f -Start_DudeAutoInput_RightA: ; 1de28f +_DudeAutoInput_RightA: ; 1de28f ld hl, DudeAutoInput_RightA - jr CallStartAutoInput + jr _DudeAutoInput ; 1de294 -Start_DudeAutoInput_DownA: ; 1de294 +_DudeAutoInput_DownA: ; 1de294 ld hl, DudeAutoInput_DownA - jr CallStartAutoInput + jr _DudeAutoInput ; 1de299 -CallStartAutoInput: ; 1de299 +_DudeAutoInput: ; 1de299 ld a, BANK(DudeAutoInputs) call StartAutoInput ret @@ -91748,3 +82634,4 @@ ELSE INCBIN "misc/stadium2_1.bin" ENDC + |