diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index e9fe6acbd..781f27d21 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -63,7 +63,7 @@ MOVE_LENGTH EQU const_value const STAT_SATK NUM_EXP_STATS EQU const_value + -1 const STAT_SDEF -NUM_STATS EQU const_value +NUM_STATS EQU const_value +- 1 STAT_SPC EQU STAT_SATK ; stat formula constants diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm index 41a67a648..70b243447 100644 --- a/constants/gfx_constants.asm +++ b/constants/gfx_constants.asm @@ -49,6 +49,6 @@ NUM_SPRITE_OAM_STRUCTS EQU 40 ; see wVirtualOAM const ANIM_MON_TRADE const ANIM_MON_EVOLVE const ANIM_MON_HATCH - const ANIM_MON_UNUSED + const ANIM_MON_HOF const ANIM_MON_EGG1 const ANIM_MON_EGG2 diff --git a/data/events/odd_eggs.asm b/data/events/odd_eggs.asm index dd3dc3bbf..a3c942ff7 100644 --- a/data/events/odd_eggs.asm +++ b/data/events/odd_eggs.asm @@ -94,7 +94,7 @@ OddEgg1End: bigdw 0 bigdw 0 bigdw 0 - db $0, $0 ; DVs + dn 0, 0, 0, 0 ; DVs db 35, 20, 10, 0 ; PP db 20 ; Happiness db 0, 0, 0 ; Pokerus, Caught data @@ -146,7 +146,7 @@ OddEgg1End: bigdw 0 bigdw 0 bigdw 0 - db $0, $0 ; DVs + dn 0, 0, 0, 0 ; DVs db 15, 20, 10, 0 ; PP db 20 ; Happiness db 0, 0, 0 ; Pokerus, Caught data @@ -198,7 +198,7 @@ OddEgg1End: bigdw 0 bigdw 0 bigdw 0 - db $0, $0 ; DVs + dn 0, 0, 0, 0 ; DVs db 35, 30, 10, 0 ; PP db 20 ; Happiness db 0, 0, 0 ; Pokerus, Caught data @@ -250,7 +250,7 @@ OddEgg1End: bigdw 0 bigdw 0 bigdw 0 - db $0, $0 ; DVs + dn 0, 0, 0, 0 ; DVs db 25, 10, 0, 0 ; PP db 20 ; Happiness db 0, 0, 0 ; Pokerus, Caught data @@ -302,7 +302,7 @@ OddEgg1End: bigdw 0 bigdw 0 bigdw 0 - db $0, $0 ; DVs + dn 0, 0, 0, 0 ; DVs db 30, 30, 10, 0 ; PP db 20 ; Happiness db 0, 0, 0 ; Pokerus, Caught data @@ -354,7 +354,7 @@ OddEgg1End: bigdw 0 bigdw 0 bigdw 0 - db $0, $0 ; DVs + dn 0, 0, 0, 0 ; DVs db 35, 10, 0, 0 ; PP db 20 ; Happiness db 0, 0, 0 ; Pokerus, Caught data diff --git a/engine/battle/core.asm b/engine/battle/core.asm index d1bd41b84..8a0ca3289 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -530,7 +530,7 @@ DetermineMoveOrder: ld de, wBattleMonSpeed ld hl, wEnemyMonSpeed ld c, 2 - call StringCmp + call CompareBytes jr z, .speed_tie jp nc, .player_first jp .enemy_first @@ -3715,19 +3715,19 @@ TryToRunAwayFromBattle: inc a ld [wNumFleeAttempts], a ld a, [hli] - ld [hStringCmpString2 + 0], a + ld [hPartyMon1Speed + 0], a ld a, [hl] - ld [hStringCmpString2 + 1], a + ld [hPartyMon1Speed + 1], a ld a, [de] inc de - ld [hStringCmpString1 + 0], a + ld [hEnemyMonSpeed + 0], a ld a, [de] - ld [hStringCmpString1 + 1], a + ld [hEnemyMonSpeed + 1], a call Call_LoadTempTileMapToTileMap - ld de, hStringCmpString2 - ld hl, hStringCmpString1 - ld c, $2 - call StringCmp + ld de, hPartyMon1Speed + ld hl, hEnemyMonSpeed + ld c, 2 + call CompareBytes jr nc, .can_escape xor a @@ -3739,9 +3739,9 @@ TryToRunAwayFromBattle: ld [hDividend + 0], a ld a, [hProduct + 3] ld [hDividend + 1], a - ld a, [hStringCmpString1 + 0] + ld a, [hEnemyMonSpeed + 0] ld b, a - ld a, [hStringCmpString1 + 1] + ld a, [hEnemyMonSpeed + 1] srl b rr a srl b @@ -7113,7 +7113,7 @@ GiveExperiencePoints: push bc call LoadTileMapToTempTileMap pop bc - ld hl, MON_STAT_EXP - 1 + ld hl, MON_EXP + 2 add hl, bc ld d, [hl] ld a, [hQuotient + 2] @@ -7145,7 +7145,7 @@ GiveExperiencePoints: ld d, MAX_LEVEL callfar CalcExpAtLevel pop bc - ld hl, MON_STAT_EXP - 1 + ld hl, MON_EXP + 2 add hl, bc push bc ld a, [hQuotient] @@ -8712,7 +8712,7 @@ AddLastMobileBattleToLinkRecord: push de ld bc, 12 ld de, wStringBuffer1 - call CompareLong + call CompareBytesLong pop de pop hl jr c, .done @@ -8821,7 +8821,7 @@ AddLastMobileBattleToLinkRecord: pop hl push bc ld c, 3 - call StringCmp + call CompareBytes pop bc jr z, .equal jr nc, .done2 @@ -9094,7 +9094,7 @@ BattleStartMessage: jr .skip_cry ; cry is played during the animation .cry_no_anim - ld a, $0f + ld a, $f ld [wCryTracks], a ld a, [wTempEnemyMonSpecies] call PlayStereoCry diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm index 1b80be18e..bc578ea6f 100644 --- a/engine/battle/effect_commands.asm +++ b/engine/battle/effect_commands.asm @@ -6154,7 +6154,7 @@ BattleCommand_Heal: push de push bc ld c, 2 - call StringCmp + call CompareBytes pop bc pop de pop hl @@ -6573,7 +6573,7 @@ BattleCommand_TimeBasedHealContinue: ; Don't bother healing if HP is already full. push bc - call StringCmp + call CompareBytes pop bc jr z, .Full diff --git a/engine/battle/move_effects/false_swipe.asm b/engine/battle/move_effects/false_swipe.asm index 4f4eb329c..0d3f7d47c 100644 --- a/engine/battle/move_effects/false_swipe.asm +++ b/engine/battle/move_effects/false_swipe.asm @@ -13,7 +13,7 @@ BattleCommand_FalseSwipe: ld c, 2 push hl push de - call StringCmp + call CompareBytes pop de pop hl jr c, .done diff --git a/engine/events/bug_contest/judging.asm b/engine/events/bug_contest/judging.asm index d8f9d7657..a6ec3baf6 100644 --- a/engine/events/bug_contest/judging.asm +++ b/engine/events/bug_contest/judging.asm @@ -171,7 +171,7 @@ DetermineContestWinners: ld de, wBugContestTempScore ld hl, wBugContestFirstPlaceScore ld c, 2 - call StringCmp + call CompareBytes jr c, .not_first_place ld hl, wBugContestSecondPlaceWinnerID ld de, wBugContestThirdPlaceWinnerID @@ -189,7 +189,7 @@ DetermineContestWinners: ld de, wBugContestTempScore ld hl, wBugContestSecondPlaceScore ld c, 2 - call StringCmp + call CompareBytes jr c, .not_second_place ld hl, wBugContestSecondPlaceWinnerID ld de, wBugContestThirdPlaceWinnerID @@ -203,7 +203,7 @@ DetermineContestWinners: ld de, wBugContestTempScore ld hl, wBugContestThirdPlaceScore ld c, 2 - call StringCmp + call CompareBytes jr c, .done ld hl, wBugContestThirdPlaceWinnerID call CopyTempContestant diff --git a/engine/events/halloffame.asm b/engine/events/halloffame.asm index 6cbc749d5..fcbcc1593 100644 --- a/engine/events/halloffame.asm +++ b/engine/events/halloffame.asm @@ -124,7 +124,7 @@ AnimateHallOfFame: call PlaceString call WaitBGMap decoord 6, 5 - ld c, $6 + ld c, ANIM_MON_HOF predef HOF_AnimateFrontpic ld c, 60 call DelayFrames @@ -390,7 +390,7 @@ _HallOfFamePC: call GetSGBLayout call SetPalettes decoord 6, 5 - ld c, $6 + ld c, ANIM_MON_HOF predef HOF_AnimateFrontpic and a ret diff --git a/engine/events/magikarp.asm b/engine/events/magikarp.asm index 7fe8adba7..cf8ad80ba 100644 --- a/engine/events/magikarp.asm +++ b/engine/events/magikarp.asm @@ -36,7 +36,7 @@ CheckMagikarpLength: ld hl, wMagikarpLength ld de, wBestMagikarpLengthFeet ld c, 2 - call StringCmp + call CompareBytes jr nc, .not_long_enough ; NEW RECORD!!! Let's save that. diff --git a/engine/events/pokecenter_pc.asm b/engine/events/pokecenter_pc.asm index f1a593b5a..8f73fc41e 100644 --- a/engine/events/pokecenter_pc.asm +++ b/engine/events/pokecenter_pc.asm @@ -478,21 +478,21 @@ PlayerDepositItemMenu: push af ld a, [wBuffer2] push af - call .DepositItem_ + call .DepositItem pop af ld [wBuffer2], a pop af ld [wBuffer1], a ret -.DepositItem_: +.DepositItem: farcall _CheckTossableItem ld a, [wItemAttributeParamBuffer] and a jr z, .AskQuantity ld a, $1 ld [wItemQuantityChangeBuffer], a - jr .DepositItem + jr .ContinueDeposit .AskQuantity: ld hl, .HowManyText @@ -504,7 +504,7 @@ PlayerDepositItemMenu: pop af jr c, .DeclinedToDeposit -.DepositItem: +.ContinueDeposit: ld a, [wItemQuantityChangeBuffer] ld [wBuffer1], a ld a, [wCurItemQuantity] diff --git a/engine/gfx/cgb_layouts.asm b/engine/gfx/cgb_layouts.asm index d8f53d7fc..ffd4d4c48 100644 --- a/engine/gfx/cgb_layouts.asm +++ b/engine/gfx/cgb_layouts.asm @@ -266,7 +266,7 @@ _CGB_Pokedex: jr .got_palette .is_pokemon - call GetMonPalettePointer_ + call GetMonPalettePointer call LoadPalette_White_Col1_Col2_Black ; mon palette .got_palette call WipeAttrMap @@ -352,7 +352,7 @@ _CGB_PokedexUnownMode: call GetPredefPal call LoadHLPaletteIntoDE ld a, [wCurPartySpecies] - call GetMonPalettePointer_ + call GetMonPalettePointer call LoadPalette_White_Col1_Col2_Black call WipeAttrMap hlcoord 7, 5, wAttrMap @@ -914,7 +914,7 @@ _CGB_PlayerOrMonFrontpicPals: _CGB1e: ld de, wBGPals1 ld a, [wCurPartySpecies] - call GetMonPalettePointer_ + call GetMonPalettePointer call LoadPalette_White_Col1_Col2_Black call WipeAttrMap call ApplyAttrMap diff --git a/engine/gfx/color.asm b/engine/gfx/color.asm index 9a3b4f8ef..397db9751 100644 --- a/engine/gfx/color.asm +++ b/engine/gfx/color.asm @@ -94,9 +94,9 @@ Unreferenced_Function8aa4: ld a, d ld [wSGBPals + 6], a ld hl, wSGBPals - call PushSGBPals_ + call PushSGBPals ld hl, BlkPacket_9a86 - call PushSGBPals_ + call PushSGBPals ret InitPartyMenuPalettes: @@ -173,7 +173,7 @@ Unreferenced_Function8b3f: and a ret z ld hl, BlkPacket_9a86 - jp PushSGBPals_ + jp PushSGBPals Unreferenced_Function8b4d: call CheckCGB @@ -182,7 +182,7 @@ Unreferenced_Function8b4d: and a ret z ld hl, PalPacket_BetaIntroVenusaur - jp PushSGBPals_ + jp PushSGBPals .cgb ld de, wOBPals1 @@ -197,7 +197,7 @@ Unreferenced_Function8b67: and a ret z ld hl, PalPacket_Pack - jp PushSGBPals_ + jp PushSGBPals .cgb ld de, wOBPals1 @@ -218,7 +218,7 @@ Unreferenced_Function8b81: ld bc, PALPACKET_LENGTH call CopyBytes pop af - call GetMonPalettePointer_ + call GetMonPalettePointer ld a, [hli] ld [wSGBPals + 3], a ld a, [hli] @@ -228,12 +228,12 @@ Unreferenced_Function8b81: ld a, [hl] ld [wSGBPals + 6], a ld hl, wSGBPals - jp PushSGBPals_ + jp PushSGBPals .cgb ld de, wOBPals1 ld a, c - call GetMonPalettePointer_ + call GetMonPalettePointer call LoadPalette_White_Col1_Col2_Black ret @@ -245,7 +245,7 @@ LoadTrainerClassPaletteAsNthBGPal: LoadMonPaletteAsNthBGPal: ld a, [wCurPartySpecies] - call GetMonPalettePointer + call _GetMonPalettePointer ld a, e bit 7, a jr z, got_palette_pointer_8bd7 @@ -278,7 +278,7 @@ Unreferenced_Function8bec: and a jr nz, .cgb ld hl, wPlayerLightScreenCount - jp PushSGBPals_ + jp PushSGBPals .cgb ld a, [wEnemyLightScreenCount] ; col @@ -310,7 +310,7 @@ ApplyMonOrTrainerPals: and a jr z, .get_trainer ld a, [wCurPartySpecies] - call GetMonPalettePointer_ + call GetMonPalettePointer jr .load_palettes .get_trainer @@ -426,9 +426,9 @@ LoadMailPalettes: ld a, [hli] ld [wSGBPals + 6], a ld hl, wSGBPals - call PushSGBPals_ + call PushSGBPals ld hl, BlkPacket_9a86 - call PushSGBPals_ + call PushSGBPals ret .cgb @@ -732,8 +732,8 @@ GetTrainerPalettePointer: add hl, bc ret -GetMonPalettePointer_: - call GetMonPalettePointer +GetMonPalettePointer: + call _GetMonPalettePointer ret Unreferenced_Function9779: @@ -781,7 +781,7 @@ Unreferenced_Function97cc: jr nz, .loop ret -GetMonPalettePointer: +_GetMonPalettePointer: ld l, a ld h, $0 add hl, hl @@ -793,7 +793,7 @@ GetMonPalettePointer: GetMonNormalOrShinyPalettePointer: push bc - call GetMonPalettePointer + call _GetMonPalettePointer pop bc push hl call CheckShininess @@ -804,17 +804,17 @@ rept 4 endr ret -PushSGBPals_: +PushSGBPals: ld a, [wcfbe] push af set 7, a ld [wcfbe], a - call PushSGBPals + call _PushSGBPals pop af ld [wcfbe], a ret -PushSGBPals: +_PushSGBPals: ld a, [hl] and $7 ret z @@ -878,7 +878,7 @@ InitSGBBorder: call SGBDelayCycles call SGB_ClearVRAM ld hl, MaskEnCancelPacket - call PushSGBPals + call _PushSGBPals .skip pop af @@ -950,7 +950,7 @@ _InitSGBBorderPals: push hl ld h, [hl] ld l, a - call PushSGBPals + call _PushSGBPals pop hl inc hl pop bc @@ -974,12 +974,12 @@ Unreferenced_Function9911: xor a ld [rJOYP], a ld hl, MaskEnFreezePacket - call PushSGBPals + call _PushSGBPals call PushSGBBorder call SGBDelayCycles call SGB_ClearVRAM ld hl, MaskEnCancelPacket - call PushSGBPals + call _PushSGBPals ei ret @@ -1005,7 +1005,7 @@ SGB_ClearVRAM: PushSGBBorderPalsAndWait: ld hl, MltReq2Packet - call PushSGBPals + call _PushSGBPals call SGBDelayCycles ld a, [rJOYP] and $3 @@ -1050,7 +1050,7 @@ endr .FinalPush: ld hl, MltReq1Packet - call PushSGBPals + call _PushSGBPals jp SGBDelayCycles SGBBorder_PushBGPals: @@ -1065,7 +1065,7 @@ SGBBorder_PushBGPals: ld a, LCDC_DEFAULT ld [rLCDC], a ld hl, PalTrnPacket - call PushSGBPals + call _PushSGBPals xor a ld [rBGP], a ret @@ -1099,7 +1099,7 @@ SGBBorder_MorePalPushing: ld a, LCDC_DEFAULT ld [rLCDC], a ld hl, PctTrnPacket - call PushSGBPals + call _PushSGBPals xor a ld [rBGP], a ret @@ -1123,7 +1123,7 @@ SGBBorder_YetMorePalPushing: ld a, LCDC_DEFAULT ld [rLCDC], a ld hl, ChrTrnPacket - call PushSGBPals + call _PushSGBPals xor a ld [rBGP], a ret diff --git a/engine/gfx/crystal_layouts.asm b/engine/gfx/crystal_layouts.asm index b9686701c..bdbf91118 100644 --- a/engine/gfx/crystal_layouts.asm +++ b/engine/gfx/crystal_layouts.asm @@ -284,7 +284,7 @@ _InitMG_Mobile_LinkTradePalMap: call ByteFill ret -LoadTradeRoomBGPals: +_LoadTradeRoomBGPals: ld hl, TradeRoomPalette ld de, wBGPals1 palette PAL_BG_GREEN ld bc, 6 palettes diff --git a/engine/gfx/pic_animation.asm b/engine/gfx/pic_animation.asm index 843e5cba4..af0227a2a 100644 --- a/engine/gfx/pic_animation.asm +++ b/engine/gfx/pic_animation.asm @@ -40,8 +40,8 @@ AnimateMon_Hatch: call AnimateFrontpic ret -AnimateMon_Unused: - ld e, ANIM_MON_UNUSED +AnimateMon_HOF: + ld e, ANIM_MON_HOF ld d, $0 call AnimateFrontpic ret @@ -59,13 +59,14 @@ endr ENDM PokeAnims: +; entries correspond to ANIM_MON_* constants dw .Slow dw .Normal dw .Menu dw .Trade dw .Evolve dw .Hatch - dw .Unused ; same as .Menu + dw .HOF dw .Egg1 dw .Egg2 @@ -75,7 +76,7 @@ PokeAnims: .Trade: pokeanim Idle, Play2, Idle, Play, SetWait, Wait, Cry, Setup, Play .Evolve: pokeanim Idle, Play, SetWait, Wait, CryNoWait, Setup, Play .Hatch: pokeanim Idle, Play, CryNoWait, Setup, Play, SetWait, Wait, Idle, Play -.Unused: pokeanim CryNoWait, Setup, Play, SetWait, Wait, Idle, Play +.HOF: pokeanim CryNoWait, Setup, Play, SetWait, Wait, Idle, Play .Egg1: pokeanim Setup, Play .Egg2: pokeanim Idle, Play @@ -108,7 +109,7 @@ LoadMonAnimation: SetUpPokeAnim: ld a, [rSVBK] push af - ld a, BANK(wPokeAnimSceneIndex) + ld a, BANK(wPokeAnimStruct) ld [rSVBK], a ld a, [wPokeAnimSceneIndex] ld c, a @@ -283,14 +284,14 @@ AnimateMon_CheckIfPokemon: PokeAnim_InitPicAttributes: ld a, [rSVBK] push af - ld a, BANK(wPokeAnimSceneIndex) + ld a, BANK(wPokeAnimStruct) ld [rSVBK], a push bc push de push hl - ld hl, wPokeAnimSceneIndex - ld bc, wPokeAnimStructEnd - wPokeAnimSceneIndex + ld hl, wPokeAnimStruct + ld bc, wPokeAnimStructEnd - wPokeAnimStruct xor a call ByteFill pop hl diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm index 538132ce2..7279f9a32 100644 --- a/engine/gfx/sgb_layouts.asm +++ b/engine/gfx/sgb_layouts.asm @@ -61,7 +61,7 @@ LoadSGBLayout: .SGB_BattleColors: ld hl, BlkPacket_Battle - call PushSGBPals_ + call PushSGBPals ld hl, PalPacket_9ce6 ld de, wSGBPals @@ -210,7 +210,7 @@ LoadSGBLayout: inc hl ld [hl], HIGH(palred 26 + palgreen 10 + palblue 6) ld a, [wCurPartySpecies] - call GetMonPalettePointer_ + call GetMonPalettePointer ld a, [hli] ld [wSGBPals + 9], a ld a, [hli] @@ -566,6 +566,6 @@ INCLUDE "data/maps/sgb_roof_pal_inds.asm" _LoadSGBLayout_ReturnFromJumpTable: push de - call PushSGBPals_ + call PushSGBPals pop hl - jp PushSGBPals_ + jp PushSGBPals diff --git a/engine/link/link.asm b/engine/link/link.asm index e5f354f57..5be738b23 100644 --- a/engine/link/link.asm +++ b/engine/link/link.asm @@ -1971,7 +1971,7 @@ LoadTradeScreenBorder: ret SetTradeRoomBGPals: - farcall LoadTradeRoomBGPals_ ; just a nested farcall; so wasteful + farcall LoadTradeRoomBGPals ; just a nested farcall; so wasteful call SetPalettes ret diff --git a/engine/link/link_trade.asm b/engine/link/link_trade.asm index a3c596bfe..a250e84fa 100644 --- a/engine/link/link_trade.asm +++ b/engine/link/link_trade.asm @@ -133,8 +133,8 @@ LinkComms_LoadPleaseWaitTextboxBorderGFX: call Get2bpp ret -LoadTradeRoomBGPals_: - farcall LoadTradeRoomBGPals +LoadTradeRoomBGPals: + farcall _LoadTradeRoomBGPals ret Function16d6ae: diff --git a/engine/menus/save.asm b/engine/menus/save.asm index 190f5f887..3813cd55a 100644 --- a/engine/menus/save.asm +++ b/engine/menus/save.asm @@ -164,7 +164,7 @@ AddHallOfFameEntry: ret SaveGameData: - call SaveGameData_ + call _SaveGameData ret AskOverwriteSaveFile: @@ -228,7 +228,7 @@ CompareLoadedAndSavedPlayerID: _SavingDontTurnOffThePower: call SavingDontTurnOffThePower SavedTheGame: - call SaveGameData_ + call _SaveGameData ; wait 32 frames ld c, $20 call DelayFrames @@ -252,7 +252,7 @@ SavedTheGame: call DelayFrames ret -SaveGameData_: +_SaveGameData: ld a, TRUE ld [wSaveFileExists], a farcall StageRTCTimeForSave diff --git a/engine/menus/start_menu.asm b/engine/menus/start_menu.asm index 108a4edf6..54f468497 100644 --- a/engine/menus/start_menu.asm +++ b/engine/menus/start_menu.asm @@ -29,7 +29,7 @@ StartMenu:: call .SetUpMenuItems ld a, [wBattleMenuCursorBuffer] ld [wMenuCursorBuffer], a - call .DrawMenuAccount_ + call .DrawMenuAccount call DrawVariableLengthMenuBox call .DrawBugContestStatusBox call SafeUpdateSprites @@ -49,7 +49,7 @@ StartMenu:: .Select: call .GetInput jr c, .Exit - call .DrawMenuAccount + call ._DrawMenuAccount ld a, [wMenuCursorBuffer] ld [wBattleMenuCursorBuffer], a call PlayClickSFX @@ -96,7 +96,7 @@ StartMenu:: ; Return carry on exit, and no-carry on selection. xor a ld [hBGMapMode], a - call .DrawMenuAccount + call ._DrawMenuAccount call SetUpMenu ld a, $ff ld [wMenuSelection], a @@ -147,7 +147,7 @@ StartMenu:: call ClearBGPalettes call Call_ExitMenu call ReloadTilesetAndPalettes - call .DrawMenuAccount_ + call .DrawMenuAccount call DrawVariableLengthMenuBox call .DrawBugContestStatus call UpdateSprites @@ -360,17 +360,17 @@ endr inc c ret -.DrawMenuAccount_: - jp .DrawMenuAccount +.DrawMenuAccount: + jp ._DrawMenuAccount .PrintMenuAccount: call .IsMenuAccountOn ret z - call .DrawMenuAccount + call ._DrawMenuAccount decoord 0, 14 jp .MenuDesc -.DrawMenuAccount: +._DrawMenuAccount: call .IsMenuAccountOn ret z hlcoord 0, 13 diff --git a/engine/pokemon/evolve.asm b/engine/pokemon/evolve.asm index 571cff0b8..f2006bcf6 100644 --- a/engine/pokemon/evolve.asm +++ b/engine/pokemon/evolve.asm @@ -99,7 +99,7 @@ EvolveAfterBattle_MasterLoop: ld de, wTempMonAttack ld hl, wTempMonDefense ld c, 2 - call StringCmp + call CompareBytes ld a, ATK_EQ_DEF jr z, .got_tyrogue_evo ld a, ATK_LT_DEF diff --git a/engine/pokemon/mail_2.asm b/engine/pokemon/mail_2.asm index 1cc776706..b5154187a 100644 --- a/engine/pokemon/mail_2.asm +++ b/engine/pokemon/mail_2.asm @@ -59,7 +59,7 @@ ReadAnyMail: .pressed_start ld a, [wJumptableIndex] push af - callfar PrintMail ; printer + callfar PrintMailAndExit ; printer pop af ld [wJumptableIndex], a jr .loop diff --git a/engine/printer/printer.asm b/engine/printer/printer.asm index 4dc74c6d2..06325407c 100644 --- a/engine/printer/printer.asm +++ b/engine/printer/printer.asm @@ -268,12 +268,12 @@ PrintUnownStamp: ld [wPrinterQueueLength], a ret -PrintMail: - call PrintMail_ +PrintMailAndExit: + call PrintMail call Printer_ExitPrinter ret -PrintMail_: +PrintMail: ld a, [wPrinterQueueLength] push af xor a diff --git a/engine/printer/printer_serial.asm b/engine/printer/printer_serial.asm index e8f106ac4..e8d056bf9 100644 --- a/engine/printer/printer_serial.asm +++ b/engine/printer/printer_serial.asm @@ -44,14 +44,14 @@ PrinterJumptableIteration: dw Printer_WaitUntilFinished ; 0c dw Printer_Quit ; 0d - dw Printer_NextSection_ ; 0e + dw Printer_NextSection ; 0e dw Printer_WaitSerial ; 0f dw Printer_SignalLoopBack ; 10 dw Printer_SectionOne ; 11 - dw Printer_WaitLoopBack ; 12 - dw Printer_WaitLoopBack_ ; 13 + dw Printer_NextSectionWaitLoopBack ; 12 + dw Printer_WaitLoopBack ; 13 -Printer_NextSection: +_Printer_NextSection: ld hl, wJumptableIndex inc [hl] ret @@ -68,8 +68,8 @@ Printer_Quit: set 7, [hl] ret -Printer_NextSection_: - call Printer_NextSection +Printer_NextSection: + call _Printer_NextSection ret Printer_SectionOne: @@ -86,7 +86,7 @@ Print_InitPrinterHandshake: ld [wPrinterSendByteCounter + 1], a ld a, [wPrinterQueueLength] ld [wPrinterRowIndex], a - call Printer_NextSection + call _Printer_NextSection call Printer_WaitHandshake ld a, PRINTER_STATUS_CHECKING ld [wPrinterStatus], a @@ -110,7 +110,7 @@ Printer_StartTransmittingTilemap: ld [wPrinterSendByteCounter + 1], a ; compute the checksum call Printer_ComputeChecksum - call Printer_NextSection + call _Printer_NextSection call Printer_WaitHandshake ld a, PRINTER_STATUS_TRANSMITTING ld [wPrinterStatus], a @@ -127,7 +127,7 @@ Printer_EndTilemapTransmission: xor a ld [wPrinterSendByteCounter], a ld [wPrinterSendByteCounter + 1], a - call Printer_NextSection + call _Printer_NextSection call Printer_WaitHandshake ret @@ -143,7 +143,7 @@ Printer_SignalSendHeader: ld [wPrinterSendByteCounter + 1], a ; compute the checksum call Printer_ComputeChecksum - call Printer_NextSection + call _Printer_NextSection call Printer_WaitHandshake ld a, PRINTER_STATUS_PRINTING ld [wPrinterStatus], a @@ -160,7 +160,7 @@ Printer_SignalLoopBack: ld [wPrinterSendByteCounter + 1], a ld a, [wPrinterQueueLength] ld [wPrinterRowIndex], a - call Printer_NextSection + call _Printer_NextSection call Printer_WaitHandshake ret @@ -172,7 +172,7 @@ Printer_WaitSerial: ret c xor a ld [hl], a - call Printer_NextSection + call _Printer_NextSection ret Printer_WaitSerialAndLoopBack2: @@ -211,7 +211,7 @@ Printer_CheckConnectionStatus: set 1, [hl] ld a, $5 ld [wHandshakeFrameDelay], a - call Printer_NextSection + call _Printer_NextSection ret .printer_error @@ -232,7 +232,7 @@ Printer_TransmissionLoop: ld a, [wPrinterStatusFlags] and $1 jr nz, .cycle_back - call Printer_NextSection + call _Printer_NextSection ret .cycle_back @@ -240,7 +240,7 @@ Printer_TransmissionLoop: ret .enter_wait_loop - ld a, $12 ; Printer_WaitLoopBack + ld a, $12 ; Printer_NextSectionWaitLoopBack ld [wJumptableIndex], a ret @@ -251,12 +251,12 @@ Printer_WaitUntilFinished: ld a, [wPrinterStatusFlags] and $f3 ret nz - call Printer_NextSection + call _Printer_NextSection ret +Printer_NextSectionWaitLoopBack: + call _Printer_NextSection Printer_WaitLoopBack: - call Printer_NextSection -Printer_WaitLoopBack_: ld a, [wPrinterOpcode] and a ret nz @@ -474,31 +474,31 @@ _PrinterReceive:: dw Printer_SendNextByte ; 06 dw Printer_SendwPrinterChecksumLo ; 07 dw Printer_SendwPrinterChecksumHi ; 08 - dw Printer_Send0x00 ; 09 - dw Printer_ReceiveTowPrinterHandshakeAndSend0x00 ; 0a - dw Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop ; 0b + dw Printer_Send0x00_2 ; 09 + dw Printer_ReceiveTwoPrinterHandshakeAndSend0x00 ; 0a + dw Printer_ReceiveTwoPrinterStatusFlagsAndExitSendLoop ; 0b dw Printer_Send0x33 ; 0c triggered by AskSerial dw Printer_Send0x0f ; 0d - dw Printer_Send0x00_ ; 0e - dw Printer_Send0x00_ ; 0f - dw Printer_Send0x00_ ; 10 + dw Printer_Send0x00 ; 0e + dw Printer_Send0x00 ; 0f + dw Printer_Send0x00 ; 10 dw Printer_Send0x0f ; 11 - dw Printer_Send0x00_ ; 12 - dw Printer_Send0x00 ; 13 - dw Printer_ReceiveTowPrinterHandshakeAndSend0x00 ; 14 - dw Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop_ ; 15 + dw Printer_Send0x00 ; 12 + dw Printer_Send0x00_2 ; 13 + dw Printer_ReceiveTwoPrinterHandshakeAndSend0x00 ; 14 + dw Printer_ReceiveTwoPrinterStatusFlagsAndExitSendLoop_2 ; 15 dw Printer_Send0x33 ; 16 triggered by pressing B dw Printer_Send0x08 ; 17 - dw Printer_Send0x00_ ; 18 - dw Printer_Send0x00_ ; 19 - dw Printer_Send0x00_ ; 1a + dw Printer_Send0x00 ; 18 + dw Printer_Send0x00 ; 19 + dw Printer_Send0x00 ; 1a dw Printer_Send0x08 ; 1b - dw Printer_Send0x00_ ; 1c - dw Printer_Send0x00 ; 1d - dw Printer_ReceiveTowPrinterHandshakeAndSend0x00 ; 1e - dw Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop ; 1f + dw Printer_Send0x00 ; 1c + dw Printer_Send0x00_2 ; 1d + dw Printer_ReceiveTwoPrinterHandshakeAndSend0x00 ; 1e + dw Printer_ReceiveTwoPrinterStatusFlagsAndExitSendLoop ; 1f Printer_NextInstruction: ld hl, wPrinterOpcode @@ -580,13 +580,14 @@ Printer_SendwPrinterChecksumHi: call Printer_NextInstruction ret -Printer_Send0x00: +Printer_Send0x00_2: +; identical to Printer_Send0x00, but referenced less ld a, $0 call Printer_SerialSend call Printer_NextInstruction ret -Printer_ReceiveTowPrinterHandshakeAndSend0x00: +Printer_ReceiveTwoPrinterHandshakeAndSend0x00: ld a, [rSB] ld [wPrinterHandshake], a ld a, $0 @@ -594,7 +595,7 @@ Printer_ReceiveTowPrinterHandshakeAndSend0x00: call Printer_NextInstruction ret -Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop: +Printer_ReceiveTwoPrinterStatusFlagsAndExitSendLoop: ld a, [rSB] ld [wPrinterStatusFlags], a xor a @@ -607,7 +608,7 @@ Printer_Send0x0f: call Printer_NextInstruction ret -Printer_Send0x00_: +Printer_Send0x00: ld a, $0 call Printer_SerialSend call Printer_NextInstruction @@ -627,7 +628,8 @@ Printer_SerialSend: ld [rSC], a ret -Printer_ReceiveTowPrinterStatusFlagsAndExitSendLoop_: +Printer_ReceiveTwoPrinterStatusFlagsAndExitSendLoop_2: +; identical to Printer_ReceiveTwoPrinterStatusFlagsAndExitSendLoop, but referenced less ld a, [rSB] ld [wPrinterStatusFlags], a xor a diff --git a/home.asm b/home.asm index 8f68511b4..27587d511 100644 --- a/home.asm +++ b/home.asm @@ -162,55 +162,8 @@ CallPointerAt:: rst Bankswitch ret -QueueScript:: -; Push pointer hl in the current bank to wQueuedScriptBank. - ld a, [hROMBank] - -FarQueueScript:: -; Push pointer a:hl to wQueuedScriptBank. - ld [wQueuedScriptBank], a - ld a, l - ld [wQueuedScriptAddr], a - ld a, h - ld [wQueuedScriptAddr + 1], a - ret - -StringCmp:: -; Compare c bytes at de and hl. -; Return z if they all match. -.loop - ld a, [de] - cp [hl] - ret nz - inc de - inc hl - dec c - jr nz, .loop - ret - -CompareLong:: -; Compare bc bytes at de and hl. -; Return carry if they all match. - - ld a, [de] - cp [hl] - jr nz, .Diff - - inc de - inc hl - dec bc - - ld a, b - or c - jr nz, CompareLong - - scf - ret - -.Diff: - and a - ret - +INCLUDE "home/queue_script.asm" +INCLUDE "home/compare.asm" INCLUDE "home/tilemap.asm" INCLUDE "home/hp_pals.asm" diff --git a/home/compare.asm b/home/compare.asm new file mode 100644 index 000000000..26b7567fd --- /dev/null +++ b/home/compare.asm @@ -0,0 +1,35 @@ +CompareBytes:: +; Compare c bytes at de and hl. +; Return z if they all match. +.loop + ld a, [de] + cp [hl] + ret nz + inc de + inc hl + dec c + jr nz, .loop + ret + +CompareBytesLong:: +; Compare bc bytes at de and hl. +; Return carry if they all match. +.loop + ld a, [de] + cp [hl] + jr nz, .diff + + inc de + inc hl + dec bc + + ld a, b + or c + jr nz, .loop + + scf + ret + +.diff: + and a + ret diff --git a/home/queue_script.asm b/home/queue_script.asm new file mode 100644 index 000000000..40a971dc9 --- /dev/null +++ b/home/queue_script.asm @@ -0,0 +1,12 @@ +QueueScript:: +; Push pointer hl in the current bank to wQueuedScriptBank. + ld a, [hROMBank] + +FarQueueScript:: +; Push pointer a:hl to wQueuedScriptBank. + ld [wQueuedScriptBank], a + ld a, l + ld [wQueuedScriptAddr], a + ld a, h + ld [wQueuedScriptAddr + 1], a + ret diff --git a/hram.asm b/hram.asm index 47d6f954a..7b54988f6 100644 --- a/hram.asm +++ b/hram.asm @@ -48,8 +48,8 @@ hConnectedMapWidth EQU $ffb0 hPastLeadingZeroes EQU $ffb3 -hStringCmpString1 EQU $ffb1 -hStringCmpString2 EQU $ffb5 +hEnemyMonSpeed EQU $ffb1 +hPartyMon1Speed EQU $ffb5 hDividend EQU $ffb3 ; length in b register, before 'call Divide' (max 4 bytes) hDivisor EQU $ffb7 ; 1 byte long diff --git a/mobile/mobile_22.asm b/mobile/mobile_22.asm index 5f0f3e86e..d9aa43687 100644 --- a/mobile/mobile_22.asm +++ b/mobile/mobile_22.asm @@ -2063,7 +2063,7 @@ Function89d0d: ld [rSVBK], a call SetPalettes - farcall PrintMail_ + farcall PrintMail call Mobile22_SetBGMapMode1 ld c, 24 call DelayFrames diff --git a/mobile/mobile_5f.asm b/mobile/mobile_5f.asm index 0f32df536..8126a4c3b 100644 --- a/mobile/mobile_5f.asm +++ b/mobile/mobile_5f.asm @@ -2967,7 +2967,7 @@ endr ENDM IncCrashCheckPointer_SaveGameData: - inc_crash_check_pointer_farcall SaveGameData_ + inc_crash_check_pointer_farcall _SaveGameData IncCrashCheckPointer_SaveAfterLinkTrade: inc_crash_check_pointer_farcall SaveAfterLinkTrade diff --git a/wram.asm b/wram.asm index 0291f587a..edf291580 100644 --- a/wram.asm +++ b/wram.asm @@ -2893,6 +2893,7 @@ wTempTileMap:: ds SCREEN_WIDTH * SCREEN_HEIGHT ; $168 = 360 ; PokeAnim data +wPokeAnimStruct:: wPokeAnimSceneIndex:: db wPokeAnimPointer:: dw wPokeAnimSpecies:: db @@ -2901,7 +2902,6 @@ wPokeAnimSpeciesOrUnown:: db wPokeAnimGraphicStartTile:: db wPokeAnimCoord:: dw wPokeAnimFrontpicHeight:: db -; PokeAnim Data wPokeAnimIdleFlag:: db wPokeAnimSpeed:: db wPokeAnimPointerBank:: db