diff options
author | dannye <33dannye@gmail.com> | 2021-02-13 10:40:32 -0600 |
---|---|---|
committer | dannye <33dannye@gmail.com> | 2021-02-13 10:40:32 -0600 |
commit | 105768597ccd732ca54b734c9e6cbc529ebfd49b (patch) | |
tree | fbb7db84c0a4603d7f68874290b55407af9efb60 /src | |
parent | 9a20f8c737b53b4a078ade02df95d1e3d6346f3f (diff) |
Document some overworld map stuff
and label some wram addresses used by script commands
Diffstat (limited to 'src')
-rw-r--r-- | src/constants/map_constants.asm | 14 | ||||
-rw-r--r-- | src/constants/music_constants.asm | 2 | ||||
-rw-r--r-- | src/constants/script_constants.asm | 2 | ||||
-rw-r--r-- | src/engine/bank01.asm | 12 | ||||
-rw-r--r-- | src/engine/bank03.asm | 168 | ||||
-rw-r--r-- | src/engine/bank04.asm | 262 | ||||
-rw-r--r-- | src/engine/bank07.asm | 12 | ||||
-rw-r--r-- | src/engine/home.asm | 51 | ||||
-rw-r--r-- | src/wram.asm | 39 |
9 files changed, 344 insertions, 218 deletions
diff --git a/src/constants/map_constants.asm b/src/constants/map_constants.asm index d8637d6..8aaa09d 100644 --- a/src/constants/map_constants.asm +++ b/src/constants/map_constants.asm @@ -34,6 +34,20 @@ const POKEMON_DOME ; $20 const HALL_OF_HONOR ; $21 +; overworld map selections + const_def 1 + const OWMAP_MASON_LABORATORY ; $01 + const OWMAP_ISHIHARAS_HOUSE ; $02 + const OWMAP_FIGHTING_CLUB ; $03 + const OWMAP_ROCK_CLUB ; $04 + const OWMAP_WATER_CLUB ; $05 + const OWMAP_LIGHTNING_CLUB ; $06 + const OWMAP_GRASS_CLUB ; $07 + const OWMAP_PSYCHIC_CLUB ; $08 + const OWMAP_SCIENCE_CLUB ; $09 + const OWMAP_FIRE_CLUB ; $0A + const OWMAP_CHALLENGE_HALL ; $0B + const OWMAP_POKEMON_DOME ; $0C ; Size of map data. See data/npc_map_data.asm and data/map_objects.asm ; for more info on what these represent diff --git a/src/constants/music_constants.asm b/src/constants/music_constants.asm index d9ebb2b..9acb87a 100644 --- a/src/constants/music_constants.asm +++ b/src/constants/music_constants.asm @@ -30,3 +30,5 @@ const MUSIC_BOOSTER_PACK ; $1c const MUSIC_MEDAL ; $1d const MUSIC_UNUSED_1E ; $1e + +NUM_SONGS = const_value diff --git a/src/constants/script_constants.asm b/src/constants/script_constants.asm index 056ee37..a6a05be 100644 --- a/src/constants/script_constants.asm +++ b/src/constants/script_constants.asm @@ -277,4 +277,4 @@ SOUTH EQU $02 WEST EQU $03 NO_MOVE EQU %10000000 ; For rotations without movement -VARIABLE_CARD EQU 0 ; use the card located in wd697 instead of using the script's argument +VARIABLE_CARD EQU 0 ; use the card located in wCardReceived instead of using the script's argument diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index 8bf9ab2..45fc576 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -90,7 +90,7 @@ StartDuel: ; 409f (1:409f) ldh [hWhoseTurn], a ld a, DUELIST_TYPE_PLAYER ld [wPlayerDuelistType], a - ld a, [wcc19] + ld a, [wNPCDuelDeckID] ld [wOpponentDeckID], a call LoadPlayerDeck call SwapTurn @@ -116,7 +116,7 @@ StartDuel: ; 409f (1:409f) xor a ld [wCurrentDuelMenuItem], a call SetupDuel - ld a, [wcc18] + ld a, [wNPCDuelPrizes] ld [wDuelInitialPrizes], a call InitVariablesToBeginDuel ld a, [wDuelTheme] @@ -233,7 +233,7 @@ MainDuelLoop: ; 40ee (1:40ee) ld a, [wDuelFinished] cp TURN_PLAYER_TIED jr z, .tied_duel - call Func_39fc + call PlayDefaultSong call WaitForWideTextBoxInput call Func_3b31 call ResetSerial @@ -8245,7 +8245,7 @@ Func_7364: ; 7364 (1:7364) ret .asm_73cd ld a, [wOpponentDeckID] - ld [wcc19], a + ld [wNPCDuelDeckID], a call Func_3ae8 or a ret @@ -8253,7 +8253,7 @@ Func_7364: ; 7364 (1:7364) Func_73d8: ; 73d8 (1:73d8) ld a, [wOpponentDeckID] - ld [wcc19], a + ld [wNPCDuelDeckID], a call Func_3ae8 jr c, .asm_73ec xor a @@ -8268,7 +8268,7 @@ Func_73d8: ; 73d8 (1:73d8) ld a, [wOpponentDeckID] lb bc, 5, 16 call WriteTwoByteNumberInTxSymbolFormat - ld a, [wcc18] + ld a, [wNPCDuelPrizes] lb bc, 15, 10 call WriteTwoByteNumberInTxSymbolFormat ret diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm index cf21046..55fa89c 100644 --- a/src/engine/bank03.asm +++ b/src/engine/bank03.asm @@ -43,11 +43,11 @@ LoadMap: ; c000 (3:4000) call Func_c943 call Func_c158 farcall Func_80480 - call Func_c199 + call SetOverworldDoFrameFunction xor a ld [wd0b4], a ld [wd0c1], a - call Func_39fc + call PlayDefaultSong farcall Func_10af9 call Func_c141 call Func_c17a @@ -175,7 +175,7 @@ Func_c158: ; c158 (3:4158) ld a, [wd0c2] cp $1 ret nz - ld a, [wd0c4] + ld a, [wNPCDuelist] ld [wTempNPC], a call FindLoadedNPC jr c, .asm_c179 @@ -209,8 +209,8 @@ Func_c184: ; c184 (3:4184) pop bc ret -Func_c199: ; c199 (3:4199) - ld hl, Func_380e +SetOverworldDoFrameFunction: ; c199 (3:4199) + ld hl, OverworldDoFrameFunction call SetDoFrameFunction ret @@ -228,8 +228,8 @@ WhiteOutDMGPals: ; c1a4 (3:41a4) ret Func_c1b1: ; c1b1 (3:41b1) - ld a, $c - ld [wd32e], a + ld a, OWMAP_POKEMON_DOME + ld [wOverworldMapSelection], a ld a, OVERWORLD_MAP ld [wTempMap], a ld a, $c @@ -264,7 +264,7 @@ Func_c1f8: ; c1f8 (3:41f8) ld [wd0ba], a ld [wd11b], a ld [wd0c2], a - ld [wd111], a + ld [wDefaultSong], a ld [wd112], a ld [wd3b8], a call EnableSRAM @@ -276,7 +276,7 @@ Func_c1f8: ; c1f8 (3:41f8) farcall Func_10756 ret -Func_c228: ; c228 (3:4228) +BackupPlayerPosition: ; c228 (3:4228) ld a, [wCurMap] ld [wTempMap], a ld a, [wPlayerXCoord] @@ -341,7 +341,7 @@ PauseMenuTextList: ; c27c (3:427c) dw NULL Func_c280: ; c280 (3:4280) - call Func_c228 + call BackupPlayerPosition call Func_3ca0 call ZeroObjectPositions ld hl, wVBlankOAMCopyToggle @@ -400,11 +400,11 @@ Func_c2db: ; c2db (3:42db) ldh [hWhoseTurn], a call Func_c241 call EmptyScreen - ld a, [wd111] + ld a, [wDefaultSong] push af farcall Func_80000 pop af - ld [wd111], a + ld [wDefaultSong], a ld hl, wd0c1 res 0, [hl] call Func_c34e @@ -584,10 +584,10 @@ Func_c3ff: ; c3ff (3:43ff) ret Func_c41c: ; c41c (3:441c) - ld a, [wd332] + ld a, [wPlayerXCoordPixels] sub $40 ld [wSCXBuffer], a - ld a, [wd333] + ld a, [wPlayerYCoordPixels] sub $40 ld [wSCYBuffer], a call Func_c430 @@ -668,14 +668,14 @@ Func_c49c: ; c49c (3:449c) rlca rlca rlca - ld [wd332], a + ld [wPlayerXCoordPixels], a ld a, [wPlayerYCoord] and $1f ld [wPlayerYCoord], a rlca rlca rlca - ld [wd333], a + ld [wPlayerYCoordPixels], a ret Func_c4b9: ; c4b9 (3:44b9) @@ -777,11 +777,11 @@ Func_c554: ; c554 (3:4554) ld e, a ld c, SPRITE_ANIM_COORD_X call GetSpriteAnimBufferProperty - ld a, [wd332] + ld a, [wPlayerXCoordPixels] sub d add $8 ld [hli], a - ld a, [wd333] + ld a, [wPlayerYCoordPixels] sub e add $10 ld [hli], a @@ -1007,7 +1007,7 @@ Func_c694: ; c694 (3:4694) Func_c6cc: ; c6cc (3:46cc) push hl - ld hl, wd332 + ld hl, wPlayerXCoordPixels add [hl] ld [hl], a pop hl @@ -1015,7 +1015,7 @@ Func_c6cc: ; c6cc (3:46cc) Func_c6d4: ; c6d4 (3:46d4) push hl - ld hl, wd333 + ld hl, wPlayerYCoordPixels add [hl] ld [hl], a pop hl @@ -1217,7 +1217,7 @@ PCMenu: ; c7ea (3:47ea) call CloseAdvancedDialogueBox xor a ld [wd112], a - call Func_39fc + call PlayDefaultSong ret PointerTable_c846: ; c846 (3:4846) @@ -1520,8 +1520,8 @@ ImakuniPossibleRooms: ; ca0a (3:4a04) db WATER_CLUB_LOBBY Func_ca0e: ; ca0e (3:4a0e) - ld a, [wd32e] - cp $b + ld a, [wOverworldMapSelection] + cp OWMAP_CHALLENGE_HALL jr z, .done get_event_value EVENT_RECEIVED_LEGENDARY_CARDS or a @@ -2062,13 +2062,13 @@ ScriptCommand_AskQuestionJump: ; cce9 (3:4ce9) ; args - prize cards, deck id, duel theme index ; sets a duel up, doesn't start until we break out of the script system. ScriptCommand_StartDuel: ; cd01 (3:4d01) - call Func_cd66 + call SetNPCDuelParams ld a, [wScriptNPC] ld l, LOADED_NPC_ID call GetItemInLoadedNPCIndex ld a, [hl] - farcall Func_118d3 - ld a, [wcc19] + farcall SetNPCMatchStartTheme + ld a, [wNPCDuelDeckID] cp $ff jr nz, .not_aaron_duel ld a, [wMultichoiceTextboxResult_ChooseDeckToDuelAgainst] @@ -2077,20 +2077,20 @@ ScriptCommand_StartDuel: ; cd01 (3:4d01) ld hl, AaronDeckIDs add hl, bc ld a, [hl] - ld [wcc19], a + ld [wNPCDuelDeckID], a .not_aaron_duel ld a, [wScriptNPC] ld l, LOADED_NPC_ID call GetItemInLoadedNPCIndex ld a, [hl] .start_duel - ld [wd0c4], a - ld [wcc14], a + ld [wNPCDuelist], a + ld [wNPCDuelistCopy], a push af farcall Func_1c557 ld [wd0c5], a pop af - farcall Func_118a7 + farcall SetNPCOpponentNameAndPortrait ld a, GAME_EVENT_DUEL ld [wGameEvent], a ld hl, wd0b4 @@ -2098,12 +2098,12 @@ ScriptCommand_StartDuel: ; cd01 (3:4d01) jp IncreaseScriptPointerBy4 ScriptCommand_StartChallengeHallDuel: ; cd4f (3:4d4f) - call Func_cd66 - ld a, [wd696] - farcall Func_118bf + call SetNPCDuelParams + ld a, [wChallengeHallNPC] + farcall SetNPCDeckIDAndDuelTheme ld a, MUSIC_MATCH_START_2 ld [wMatchStartTheme], a - ld a, [wd696] + ld a, [wChallengeHallNPC] jr ScriptCommand_StartDuel.start_duel AaronDeckIDs: ; cd63 (3:4d63) @@ -2111,11 +2111,11 @@ AaronDeckIDs: ; cd63 (3:4d63) db WATER_AND_FIGHTING_DECK_ID db GRASS_AND_PSYCHIC_DECK_ID -Func_cd66: ; cd66 (3:4d66) +SetNPCDuelParams: ; cd66 (3:4d66) ld a, c - ld [wcc18], a + ld [wNPCDuelPrizes], a ld a, b - ld [wcc19], a + ld [wNPCDuelDeckID], a call GetScriptArgs3AfterPointer ld a, c ld [wDuelTheme], a @@ -2187,7 +2187,7 @@ ScriptCommand_UnloadChallengeHallNPC: ; cdd8 (3:4dd8) push af ld a, [wTempNPC] push af - ld a, [wd696] + ld a, [wChallengeHallNPC] ld [wTempNPC], a call FindLoadedNPC call Func_cdd1 @@ -2202,7 +2202,7 @@ ScriptCommand_SetChallengeHallNPCCoords: ; cdf5 (3:4df5) push af ld a, [wTempNPC] push af - ld a, [wd696] + ld a, [wChallengeHallNPC] ld [wTempNPC], a ld a, c ld [wLoadNPCXPos], a @@ -2260,7 +2260,7 @@ ScriptCommand_MoveChallengeHallNPC: ; ce52 (3:4e52) push af ld a, [wTempNPC] push af - ld a, [wd696] + ld a, [wChallengeHallNPC] ; fallthrough ; Executes movement on an arbitrary NPC using values in a and on the stack @@ -2296,32 +2296,32 @@ ScriptCommand_CloseTextBox: ; ce84 (3:4e84) ; args: booster pack index, booster pack index, booster pack index ScriptCommand_GiveBoosterPacks: ; ce8a (3:4e8a) xor a - ld [wd117], a + ld [wAnotherBoosterPack], a push bc call Func_c2a3 pop bc push bc ld a, c - farcall BoosterPack_1031b - ld a, 1 - ld [wd117], a + farcall GiveBoosterPack + ld a, TRUE + ld [wAnotherBoosterPack], a pop bc ld a, b cp NO_BOOSTER jr z, .done - farcall BoosterPack_1031b + farcall GiveBoosterPack call GetScriptArgs3AfterPointer ld a, c cp NO_BOOSTER jr z, .done - farcall BoosterPack_1031b + farcall GiveBoosterPack .done call Func_c2d4 jp IncreaseScriptPointerBy4 ScriptCommand_GiveOneOfEachTrainerBooster: ; ceba (3:4eba) xor a - ld [wd117], a + ld [wAnotherBoosterPack], a call Func_c2a3 ld hl, .booster_type_table .loop @@ -2329,9 +2329,9 @@ ScriptCommand_GiveOneOfEachTrainerBooster: ; ceba (3:4eba) cp NO_BOOSTER jr z, .done push hl - farcall BoosterPack_1031b - ld a, $1 - ld [wd117], a + farcall GiveBoosterPack + ld a, TRUE + ld [wAnotherBoosterPack], a pop hl inc hl jr .loop @@ -2355,7 +2355,7 @@ ScriptCommand_ShowCardReceivedScreen: ; cee2 (3:4ee2) jr z, .legendary_card or a jr nz, .show_card - ld a, [wd697] + ld a, [wCardReceived] .show_card push af @@ -2413,12 +2413,12 @@ ScriptCommand_JumpIfEnoughCardsOwned: ; cf2d (3:4f2d) jr nc, ScriptCommand_JumpIfCardInCollection.pass_try_jump jr ScriptCommand_JumpIfCardInCollection.fail -; Gives the first arg as a card. If that's 0 pulls from wd697 +; Gives the first arg as a card. If that's 0 pulls from wCardReceived ScriptCommand_GiveCard: ; cf3f (3:4f3f) ld a, c or a jr nz, .give_card - ld a, [wd697] + ld a, [wCardReceived] .give_card call AddCardToCollection @@ -2734,7 +2734,7 @@ ScriptCommand_LoadCurrentMapNameIntoTxRamSlot: ; d135 (3:5135) ld hl, wTxRam2 add hl, bc push hl - ld a, [wd32e] + ld a, [wOverworldMapSelection] rlca ld c, a ld b, 0 @@ -2774,7 +2774,7 @@ ScriptCommand_LoadChallengeHallNPCIntoTxRamSlot: ; d16b (3:516b) ld hl, wTxRam2 add hl, bc push hl - ld a, [wd696] + ld a, [wChallengeHallNPC] farcall SetNPCDialogName pop hl ld a, [wCurrentNPCNameTx] @@ -2822,7 +2822,7 @@ ScriptCommand_PickChallengeCupPrizeCard: ; d1b3 (3:51b3) ld d, 0 add hl, de ld a, [hli] - ld [wd697], a + ld [wCardReceived], a ld a, [hli] ld [wTxRam2], a ld a, [hl] @@ -2964,7 +2964,7 @@ ScriptCommand_ChooseStarterDeckMultichoice: ; d271 (3:5271) tx SelectDeckToTakeText ; text for textbox under menu dw MultichoiceTextbox_ConfigTable_ChooseDeckStarterDeck ; location of table configuration in bank 4 db $00 ; the value to return when b is pressed - dw wd693 ; ram location to return result into + dw wStarterDeckChoice ; ram location to return result into dw .text_entries ; location of table containing text entries .text_entries @@ -3143,7 +3143,7 @@ ScriptCommand_FlashScreen: ; d38f (3:538f) jp IncreaseScriptPointerBy2 ScriptCommand_SaveGame: ; d396 (3:5396) - farcall Func_1157c + farcall _SaveGame jp IncreaseScriptPointerBy2 ScriptCommand_GiftCenter: ; d39d (3:539d) @@ -3181,7 +3181,7 @@ ScriptCommand_nop: ; d3d1 (3:53d1) jp IncreaseScriptPointerBy1 ScriptCommand_GiveStarterDeck: ; d3d4 (3:53d4) - ld a, [wd693] + ld a, [wStarterDeckChoice] bank1call Func_7576 jp IncreaseScriptPointerBy1 @@ -3189,8 +3189,8 @@ Unknown_d3dd: ; d3dd (3:53dd) db $03, $05, $07 ScriptCommand_WalkPlayerToMasonLaboratory: ; d3e0 (3:53e0) - ld a, $1 - ld [wd32e], a + ld a, OWMAP_MASON_LABORATORY + ld [wOverworldMapSelection], a farcall Func_11024 .asm_d3e9 call DoFrameIfLCDEnabled @@ -3198,7 +3198,7 @@ ScriptCommand_WalkPlayerToMasonLaboratory: ; d3e0 (3:53e0) ld a, [wd33e] cp $2 jr nz, .asm_d3e9 - farcall Func_10f2e + farcall PrintOverworldMapName jp IncreaseScriptPointerBy1 ScriptCommand_OverrideSong: ; d3fe (3:53fe) @@ -3209,7 +3209,7 @@ ScriptCommand_OverrideSong: ; d3fe (3:53fe) ScriptCommand_SetDefaultSong: ; d408 (3:5408) ld a, c - ld [wd111], a + ld [wDefaultSong], a jp IncreaseScriptPointerBy2 ScriptCommand_PlaySong: ; d40f (3:540f) @@ -3223,7 +3223,7 @@ ScriptCommand_PlaySFX: ; d416 (3:5416) jp IncreaseScriptPointerBy2 ScriptCommand_PlayDefaultSong: ; d41d (3:541d) - call Func_39fc + call PlayDefaultSong jp IncreaseScriptPointerBy1 ScriptCommand_PauseSong: ; d423 (3:5423) @@ -4589,7 +4589,7 @@ Preload_ImakuniInFightingClubLobby: ; dceb (3:5ceb) .load_imakuni ld a, MUSIC_IMAKUNI - ld [wd111], a + ld [wDefaultSong], a scf ret @@ -5184,7 +5184,7 @@ Preload_ImakuniInWaterClubLobby: ; e0b0 (3:60b0) .load_imakuni ld a, MUSIC_IMAKUNI - ld [wd111], a + ld [wDefaultSong], a scf ret @@ -5603,7 +5603,7 @@ Preload_ImakuniInLightningClubLobby: ; e37b (3:637b) .load_imakuni ld a, MUSIC_IMAKUNI - ld [wd111], a + ld [wDefaultSong], a scf ret @@ -5847,7 +5847,7 @@ FindEndOfDuelScript: ; e52c (3:652c) ld c, 2 .player_won - ld a, [wd0c4] + ld a, [wNPCDuelist] ld b, a ld de, 5 .check_enemy_byte_loop @@ -6786,7 +6786,7 @@ Preload_ImakuniInScienceClubLobby: ; eb65 (3:6b65) .load_imakuni ld a, MUSIC_IMAKUNI - ld [wd111], a + ld [wDefaultSong], a scf ret @@ -7516,7 +7516,7 @@ Preload_Clerk9: ; ef96 (3:6f96) set_event_value EVENT_CHALLENGE_CUP_NUMBER max_event_value EVENT_CHALLENGE_CUP_STARTING ld a, MUSIC_CHALLENGE_HALL - ld [wd111], a + ld [wDefaultSong], a .no_challenge_cup scf ret @@ -7561,7 +7561,7 @@ Preload_ChallengeHallNPCs1: ; f07a (3:707a) or a jr z, .quit ld a, MUSIC_CHALLENGE_HALL - ld [wd111], a + ld [wDefaultSong], a scf .quit ret @@ -8237,7 +8237,7 @@ Preload_ChallengeHallOpponent: ; f559 (3:7559) get_event_value EVENT_CHALLENGE_CUP_OPPONENT_CHOSEN or a jr z, .asm_f56e - ld a, [wd696] + ld a, [wChallengeHallNPC] ld [wTempNPC], a scf ret @@ -8279,7 +8279,7 @@ Func_f580: ; f580 (3:7580) .force_ronald ld [wTempNPC], a - ld [wd696], a + ld [wChallengeHallNPC], a ret ChallengeHallNPCs: ; f5b3 (3:75b3) @@ -8327,10 +8327,10 @@ Func_f5d4: ; f5d4 (3:75d4) Func_f5db: ; f5db (3:75db) xor a - ld [wd698], a - ld [wd699], a - ld [wd69a], a - ld [wd69b], a + ld [wd698 + 0], a + ld [wd698 + 1], a + ld [wd698 + 2], a + ld [wd698 + 3], a ret Func_f5e9: ; f5e9 (3:75e9) @@ -8555,7 +8555,7 @@ Script_Rod: ; f740 (3:7740) Preload_Courtney: ; f74b (3:774b) get_event_value EVENT_COURTNEY_STATE cp COURTNEY_CHALLENGED - jr z, Func_f76c + jr z, PlacePokemonDomeOpponentAtDuelTable lb bc, $16, $0c cp COURTNEY_DEFEATED jr z, Func_f77d @@ -8571,7 +8571,7 @@ Func_f762: ; f762 (3:7762) scf ret -Func_f76c: ; f76c (3:776c) +PlacePokemonDomeOpponentAtDuelTable: ; f76c (3:776c) ld a, $12 ld [wLoadNPCXPos], a ld a, $0e @@ -8595,7 +8595,7 @@ Func_f782: ; f782 (3:7782) Preload_Steve: ; f78c (3:778c) get_event_value EVENT_STEVE_STATE cp STEVE_CHALLENGED - jr z, Func_f76c + jr z, PlacePokemonDomeOpponentAtDuelTable lb bc, $16, $0e cp STEVE_DEFEATED jr z, Func_f77d @@ -8607,7 +8607,7 @@ Preload_Steve: ; f78c (3:778c) Preload_Jack: ; f7a3 (3:77a3) get_event_value EVENT_JACK_STATE cp JACK_CHALLENGED - jr z, Func_f76c + jr z, PlacePokemonDomeOpponentAtDuelTable lb bc, $14, $0a cp JACK_DEFEATED jr z, Func_f77d @@ -8619,7 +8619,7 @@ Preload_Jack: ; f7a3 (3:77a3) Preload_Rod: ; f7ba (3:77ba) get_event_value EVENT_ROD_STATE cp ROD_CHALLENGED - jr z, Func_f76c + jr z, PlacePokemonDomeOpponentAtDuelTable get_event_value EVENT_POKEMON_DOME_STATE lb bc, $10, $0a cp POKEMON_DOME_DEFEATED @@ -8638,8 +8638,8 @@ Preload_Ronald1InPokemonDome: ; f7d6 (3:77d6) or a jr z, .not_challenged ld a, MUSIC_RONALD - ld [wd111], a - jr Func_f76c + ld [wDefaultSong], a + jr PlacePokemonDomeOpponentAtDuelTable .not_challenged scf ret diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index 5e150bb..19d60f1 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -114,7 +114,7 @@ MasterMedalNames: ; 1030b (4:430b) tx RockClubMapNameText tx FightingClubMapNameText -BoosterPack_1031b: ; 1031b (4:431b) +GiveBoosterPack: ; 1031b (4:431b) ld c, a ld a, [wd291] push af @@ -156,7 +156,7 @@ BoosterPack_1031b: ; 1031b (4:431b) ld a, c farcall GenerateBoosterPack ldtx hl, ReceivedBoosterPackText - ld a, [wd117] + ld a, [wAnotherBoosterPack] cp $1 jr nz, .asm_10373 ldtx hl, AndAnotherBoosterPackText @@ -199,7 +199,7 @@ Duel_Init: ; 103d3 (4:43d3) lb de, 0, 12 lb bc, 20, 6 call DrawRegularTextBox - ld a, [wcc19] + ld a, [wNPCDuelDeckID] add a add a ld c, a @@ -385,7 +385,29 @@ Unknown_10e17: ; 10e17 (4:4e17) INCROM $10e17, $10e28 Func_10e28: ; 10e28 (4:4e28) - INCROM $10e28, $10e55 + push hl + push bc + push de + ld a, [wd33b] + ld [wWhichSprite], a + ld a, [wOverworldMapSelection] + ld d, $00 + ld e, $f4 + call Func_10ef0 + ld a, [wd33e] + or a + jr nz, .asm_10e51 + ld a, [wPlayerSpriteIndex] + ld [wWhichSprite], a + ld a, [wd33d] + ld d, $00 + ld e, $00 + call Func_10ef0 +.asm_10e51 + pop de + pop bc + pop hl + ret Func_10e55: ; 10e55 (4:4e55) ld a, [wPlayerSpriteIndex] @@ -393,7 +415,7 @@ Func_10e55: ; 10e55 (4:4e55) ld a, [wd33e] or a jr nz, .asm_10e65 - call Func_10e71 + call OverworldMap_HandleKeyPress ret .asm_10e65 cp $2 @@ -404,53 +426,139 @@ Func_10e55: ; 10e55 (4:4e55) call LoadOverworldMapSelection ret -Func_10e71: ; 10e71 (4:4e71) +OverworldMap_HandleKeyPress: ; 10e71 (4:4e71) ldh a, [hKeysPressed] and D_PAD - jr z, .asm_10e83 + jr z, .no_d_pad farcall GetDirectionFromDPad ld [wPlayerDirection], a - call Func_10e97 - jr .asm_10e96 -.asm_10e83 + call OverworldMap_HandleDPad + jr .done +.no_d_pad ldh a, [hKeysPressed] and A_BUTTON - jr z, .asm_10e96 + jr z, .done ld a, SFX_02 call PlaySFX - call Func_11016 + call Func_11016 ; load map? call Func_11024 - jr .asm_10e96 -.asm_10e96 + jr .done +.done ret -Func_10e97: ; 10e97 (4:4e97) +OverworldMap_HandleDPad: ; 10e97 (4:4e97) push hl pop hl - ld a, [wd32e] + ld a, [wOverworldMapSelection] rlca rlca ld c, a ld a, [wPlayerDirection] add c ld c, a - ld b, $0 - ld hl, Unknown_10ebc + ld b, 0 + ld hl, OverworldMap_CursorTransitions add hl, bc ld a, [hl] or a - jr z, .asm_10eb9 - ld [wd32e], a - call Func_10f2e + jr z, .no_transition + ld [wOverworldMapSelection], a + call PrintOverworldMapName ; update cursor oam? ld a, SFX_01 call PlaySFX -.asm_10eb9 +.no_transition pop bc pop hl ret -Unknown_10ebc: ; 10ebc (4:4ebc) - INCROM $10ebc, $10efd +OverworldMap_CursorTransitions: ; 10ebc (4:4ebc) + ; unused + db OWMAP_SCIENCE_CLUB ; NORTH + db OWMAP_SCIENCE_CLUB ; EAST + db OWMAP_SCIENCE_CLUB ; SOUTH + db OWMAP_SCIENCE_CLUB ; WEST + + ; OWMAP_MASON_LABORATORY + db OWMAP_LIGHTNING_CLUB ; NORTH + db OWMAP_FIGHTING_CLUB ; EAST + db $00 ; SOUTH + db $00 ; WEST + + ; OWMAP_ISHIHARAS_HOUSE + db $00 ; NORTH + db OWMAP_CHALLENGE_HALL ; EAST + db OWMAP_ROCK_CLUB ; SOUTH + db $00 ; WEST + + ; OWMAP_FIGHTING_CLUB + db OWMAP_LIGHTNING_CLUB ; NORTH + db OWMAP_WATER_CLUB ; EAST + db $00 ; SOUTH + db OWMAP_MASON_LABORATORY ; WEST + + ; OWMAP_ROCK_CLUB + db OWMAP_ISHIHARAS_HOUSE ; NORTH + db OWMAP_POKEMON_DOME ; EAST + db OWMAP_LIGHTNING_CLUB ; SOUTH + db $00 ; WEST + + ; OWMAP_WATER_CLUB + db OWMAP_GRASS_CLUB ; NORTH + db $00 ; EAST + db $00 ; SOUTH + db OWMAP_FIGHTING_CLUB ; WEST + + ; OWMAP_LIGHTNING_CLUB + db OWMAP_ROCK_CLUB ; NORTH + db OWMAP_POKEMON_DOME ; EAST + db OWMAP_FIGHTING_CLUB ; SOUTH + db OWMAP_MASON_LABORATORY ; WEST + + ; OWMAP_GRASS_CLUB + db OWMAP_SCIENCE_CLUB ; NORTH + db $00 ; EAST + db OWMAP_WATER_CLUB ; SOUTH + db OWMAP_PSYCHIC_CLUB ; WEST + + ; OWMAP_PSYCHIC_CLUB + db OWMAP_FIRE_CLUB ; NORTH + db OWMAP_SCIENCE_CLUB ; EAST + db OWMAP_GRASS_CLUB ; SOUTH + db OWMAP_POKEMON_DOME ; WEST + + ; OWMAP_SCIENCE_CLUB + db OWMAP_FIRE_CLUB ; NORTH + db $00 ; EAST + db OWMAP_GRASS_CLUB ; SOUTH + db OWMAP_PSYCHIC_CLUB ; WEST + + ; OWMAP_FIRE_CLUB + db $00 ; NORTH + db OWMAP_SCIENCE_CLUB ; EAST + db OWMAP_SCIENCE_CLUB ; SOUTH + db OWMAP_PSYCHIC_CLUB ; WEST + + ; OWMAP_CHALLENGE_HALL + db $00 ; NORTH + db OWMAP_PSYCHIC_CLUB ; EAST + db OWMAP_POKEMON_DOME ; SOUTH + db OWMAP_ISHIHARAS_HOUSE ; WEST + + ; OWMAP_POKEMON_DOME + db OWMAP_CHALLENGE_HALL ; NORTH + db OWMAP_PSYCHIC_CLUB ; EAST + db OWMAP_FIGHTING_CLUB ; SOUTH + db OWMAP_ROCK_CLUB ; WEST + +Func_10ef0: ; 10ef0 (4:4ef0) + call Func_10efd + ld c, $02 + call GetSpriteAnimBufferProperty + ld a, d + ld [hli], a + ld a, e + ld [hl], a + ret Func_10efd: ; 10efd (4:4efd) push hl @@ -475,12 +583,12 @@ Func_10efd: ; 10efd (4:4efd) Unknown_10f14: ; 10f14 (4:4f14) INCROM $10f14, $10f2e -Func_10f2e: ; 10f2e (4:4f2e) +PrintOverworldMapName: ; 10f2e (4:4f2e) push hl push de lb de, 1, 1 call InitTextPrinting - call Func_10f4a + call GetOverworldMapName rlca ld e, a ld d, $0 @@ -494,10 +602,10 @@ Func_10f2e: ; 10f2e (4:4f2e) pop hl ret -Func_10f4a: ; 10f4a (4:4f4a) +GetOverworldMapName: ; 10f4a (4:4f4a) push bc - ld a, [wd32e] - cp $2 + ld a, [wOverworldMapSelection] + cp OWMAP_ISHIHARAS_HOUSE jr nz, .asm_10f5f ld c, a ld a, EVENT_ISHIHARAS_HOUSE_MENTIONED @@ -513,11 +621,11 @@ Func_10f4a: ; 10f4a (4:4f4a) LoadOverworldMapSelection: ; 10f61 (4:4f61) push hl push bc - ld a, [wd32e] + ld a, [wOverworldMapSelection] rlca rlca ld c, a - ld b, $0 + ld b, 0 ld hl, OverworldMapIndexes add hl, bc ld a, [hli] @@ -526,7 +634,7 @@ LoadOverworldMapSelection: ; 10f61 (4:4f61) ld [wTempPlayerXCoord], a ld a, [hli] ld [wTempPlayerYCoord], a - ld a, $0 + ld a, NORTH ld [wTempPlayerDirection], a ld hl, wd0b4 set 4, [hl] @@ -545,18 +653,18 @@ Func_10fbc: ; 10fbc (4:4fbc) ld [hli], a ld a, $10 ld [hl], a - ld b, $34 + ld b, $34 ; non-cgb volcano smoke ld a, [wConsole] cp CONSOLE_CGB - jr nz, .asm_10fd8 - ld b, $37 -.asm_10fd8 + jr nz, .not_cgb + ld b, $37 ; cgb volcano smoke +.not_cgb ld a, b farcall StartNewSpriteAnimation ret Func_10fde: ; 10fde (4:4fde) - ld a, [wd32e] + ld a, [wOverworldMapSelection] ld [wd33d], a xor a ld [wd33e], a @@ -564,12 +672,12 @@ Func_10fde: ; 10fde (4:4fde) call CreateSpriteAndAnimBufferEntry ld a, [wWhichSprite] ld [wd33b], a - ld b, $35 + ld b, $35 ; blue overworld map cursor ld a, [wConsole] - cp $2 - jr nz, .asm_10ffe - ld b, $38 -.asm_10ffe + cp CONSOLE_CGB + jr nz, .not_cgb + ld b, $38 ; red overworld map cursor +.not_cgb ld a, b ld [wd33c], a call StartNewSpriteAnimation @@ -609,7 +717,7 @@ Func_11024: ; 11024 (4:5024) ld a, [hli] ld h, [hl] ld l, a - ld a, [wd32e] + ld a, [wOverworldMapSelection] dec a add a ld c, a @@ -625,6 +733,7 @@ Func_11024: ; 11024 (4:5024) ld [wd341], a ret +; used while animating the player across the overworld map Func_11060: ; 11060 (4:5060) ld a, [wPlayerSpriteIndex] ld [wWhichSprite], a @@ -647,7 +756,7 @@ Func_11060: ; 11060 (4:5060) jr nz, .asm_11094 ld a, [wd33d] ld e, a - ld a, [wd32e] + ld a, [wOverworldMapSelection] cp e jr z, .asm_110a0 ld de, $0000 @@ -856,26 +965,29 @@ Func_11416: ; 11416 (4:5416) Func_11430: ; 11430 (4:5430) INCROM $11430, $1157c -Func_1157c: ; 1157c (4:557c) +; save the game +; if c is 0, save the player at their current position +; otherwise, save the player in Mason's lab +_SaveGame: ; 1157c (4:557c) ld a, c or a - jr nz, .asm_11586 - farcall Func_c228 - jr .asm_1159f + jr nz, .force_mason_lab + farcall BackupPlayerPosition + jr .save -.asm_11586 +.force_mason_lab ld a, $2 ld [wTempPlayerXCoord], a ld a, $4 ld [wTempPlayerYCoord], a - ld a, $2 + ld a, SOUTH ld [wTempPlayerDirection], a - ld a, $1 + ld a, MASON_LABORATORY ld [wTempMap], a - ld a, $1 - ld [wd32e], a + ld a, OWMAP_MASON_LABORATORY + ld [wOverworldMapSelection], a -.asm_1159f +.save call Func_11238 ret @@ -886,12 +998,11 @@ INCLUDE "data/map_scripts.asm" ; loads a pointer into hl found on NPCHeaderPointers GetNPCHeaderPointer: ; 1184a (4:584a) - ; this may have been a macro rlca add LOW(NPCHeaderPointers) ld l, a ld a, HIGH(NPCHeaderPointers) - adc $00 + adc 0 ld h, a ld a, [hli] ld h, [hl] @@ -915,10 +1026,10 @@ LoadNPCSpriteData: ; 11857 (4:5857) pop bc ld a, [wConsole] cp CONSOLE_CGB - jr nz, .asm_1187a + jr nz, .not_cgb ld a, b ld [wd3b1], a -.asm_1187a +.not_cgb pop bc pop hl ret @@ -936,7 +1047,7 @@ GetNPCNameAndScript: ; 1187d (4:587d) ld a, [hli] ld [wCurrentNPCNameTx], a ld a, [hli] - ld [wCurrentNPCNameTx+1], a + ld [wCurrentNPCNameTx + 1], a pop hl ret @@ -950,16 +1061,17 @@ SetNPCDialogName: ; 11893 (4:5893) ld a, [hli] ld [wCurrentNPCNameTx], a ld a, [hli] - ld [wCurrentNPCNameTx+1], a + ld [wCurrentNPCNameTx + 1], a pop bc pop hl ret -Func_118a7: ; 118a7 (4:58a7) +; set the opponent name and portrait for the NPC id in register a +SetNPCOpponentNameAndPortrait: ; 118a7 (4:58a7) push hl push bc call GetNPCHeaderPointer - ld bc, $0007 + ld bc, NPC_DATA_NAME_TEXT add hl, bc ld a, [hli] ld [wOpponentName], a @@ -971,39 +1083,41 @@ Func_118a7: ; 118a7 (4:58a7) pop hl ret -Func_118bf: ; 118bf (4:58bf) +; set the deck id and duel theme for the NPC id in register a +SetNPCDeckIDAndDuelTheme: ; 118bf (4:58bf) push hl push bc call GetNPCHeaderPointer - ld bc, $000a + ld bc, NPC_DATA_DECK_ID add hl, bc ld a, [hli] - ld [wcc19], a + ld [wNPCDuelDeckID], a ld a, [hli] ld [wDuelTheme], a pop bc pop hl ret -Func_118d3: ; 118d3 (4:58d3) +; set the start theme for the NPC id in register a +SetNPCMatchStartTheme: ; 118d3 (4:58d3) push hl push bc push af call GetNPCHeaderPointer - ld bc, $000c + ld bc, NPC_DATA_MATCH_START_ID add hl, bc ld a, [hli] ld [wMatchStartTheme], a pop af - cp $2 - jr nz, .asm_118f2 + cp NPC_RONALD1 + jr nz, .not_ronald_final_duel ld a, [wCurMap] cp POKEMON_DOME - jr nz, .asm_118f2 + jr nz, .not_ronald_final_duel ld a, MUSIC_MATCH_START_3 ld [wMatchStartTheme], a -.asm_118f2 +.not_ronald_final_duel pop bc pop hl ret @@ -1229,9 +1343,9 @@ MainMenu_NewGame: ; 12704 (4:6704) ld a, MUSIC_STOP call PlaySong farcall Func_70000 - ld a, $9 - ld [wd111], a - call Func_39fc + ld a, MUSIC_OVERWORLD + ld [wDefaultSong], a + call PlayDefaultSong farcall Func_1d306 ld a, GAME_EVENT_OVERWORLD ld [wGameEvent], a diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 7da632b..6d2f353 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -50,7 +50,7 @@ Func_1c056: ; 1c056 (7:4056) INCLUDE "data/warps.asm" -Func_1c33b: ; 1c33b (7:433b) +LoadMapHeader: ; 1c33b (7:433b) push hl push bc push de @@ -60,7 +60,7 @@ Func_1c33b: ; 1c33b (7:433b) add a add c ld c, a - ld b, $0 + ld b, 0 ld hl, MapHeaders add hl, bc ld a, [hli] @@ -74,9 +74,9 @@ Func_1c33b: ; 1c33b (7:433b) ld a, [hli] ld [wd290], a ld a, [hli] - ld [wd111], a + ld [wDefaultSong], a ld a, [wConsole] - cp $2 + cp CONSOLE_CGB jr nz, .asm_1c370 ld a, c or a @@ -474,7 +474,7 @@ Func_1c78d: ; 1c78d (7:478d) inc hl ld [hl], b dec hl - call Func_39ea + call GetNextNPCMovementByte cp $f0 jr nc, .asm_1c7bb push af @@ -490,7 +490,7 @@ Func_1c78d: ; 1c78d (7:478d) cp $ff jr z, .asm_1c7d2 inc bc - call Func_39ea + call GetNextNPCMovementByte push hl ld l, a ld h, $0 diff --git a/src/engine/home.asm b/src/engine/home.asm index 22babd1..567b3d0 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -10533,7 +10533,7 @@ Func_37c5: ; 37c5 (0:37c5) jr nz, .asm_37c7 ret -Func_380e: ; 380e (0:380e) +OverworldDoFrameFunction: ; 380e (0:380e) ld a, [wd0c1] bit 7, a ret nz @@ -10647,18 +10647,18 @@ GameEvent_Duel: ; 38c0 (0:38c0) ret GameEvent_ChallengeMachine: ; 38db (0:38db) - ld a, $6 - ld [wd111], a - call Func_39fc + ld a, MUSIC_PC_MAIN_MENU + ld [wDefaultSong], a + call PlayDefaultSong call EnableSRAM xor a ld [sba44], a call DisableSRAM .asm_38ed farcall Func_131d3 - ld a, $9 - ld [wd111], a - call Func_39fc + ld a, MUSIC_OVERWORLD + ld [wDefaultSong], a + call PlayDefaultSong scf ret @@ -10850,11 +10850,11 @@ FindLoadedNPC: ; 39c3 (0:39c3) pop hl ret -Func_39ea: ; 39ea (0:39ea) +GetNextNPCMovementByte: ; 39ea (0:39ea) push bc ldh a, [hBankROM] push af - ld a, $03 + ld a, BANK(ExecuteNPCMovement) call BankswitchROM ld a, [bc] ld c, a @@ -10864,13 +10864,13 @@ Func_39ea: ; 39ea (0:39ea) pop bc ret -Func_39fc: ; 39fc (0:39fc) +PlayDefaultSong: ; 39fc (0:39fc) push hl push bc call AssertSongFinished or a push af - call Func_3a1f + call GetDefaultSong ld c, a pop af jr z, .asm_3a11 @@ -10880,7 +10880,7 @@ Func_39fc: ; 39fc (0:39fc) jr z, .asm_3a1c .asm_3a11 ld a, c - cp $1f + cp NUM_SONGS jr nc, .asm_3a1c ld [wd112], a call PlaySong @@ -10889,21 +10889,22 @@ Func_39fc: ; 39fc (0:39fc) pop hl ret -Func_3a1f: ; 3a1f (0:3a1f) +; returns [wDefaultSong] or MUSIC_RONALD in a +GetDefaultSong: ; 3a1f (0:3a1f) ld a, [wd3b8] or a - jr z, .asm_3a37 - ld a, [wd32e] - cp $2 - jr z, .asm_3a37 - cp $b - jr z, .asm_3a37 - cp $c - jr z, .asm_3a37 + jr z, .default_song + ld a, [wOverworldMapSelection] + cp OWMAP_ISHIHARAS_HOUSE + jr z, .default_song + cp OWMAP_CHALLENGE_HALL + jr z, .default_song + cp OWMAP_POKEMON_DOME + jr z, .default_song ld a, MUSIC_RONALD ret -.asm_3a37 - ld a, [wd111] +.default_song + ld a, [wDefaultSong] ret Func_3a3b: ; 3a3b (0:3a3b) @@ -10922,13 +10923,13 @@ Func_3a4a: ; 3a4a (0:3a4a) farcall Func_115a3 ret -Func_3a4f: ; 3a4f (0:3a4f) +SaveGame: ; 3a4f (0:3a4f) push af push bc push de push hl ld c, $00 - farcall Func_1157c + farcall _SaveGame pop hl pop de pop bc diff --git a/src/wram.asm b/src/wram.asm index c20900f..83c260b 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -913,7 +913,7 @@ wPlayerAttackingCardID:: ; cc12 wIsPracticeDuel:: ; cc13 ds $1 -wcc14:: ; cc14 +wNPCDuelistCopy:: ; cc14 ds $1 wOpponentPortrait:: ; cc15 @@ -924,11 +924,11 @@ wOpponentName:: ; cc16 ds $2 ; an overworld script starting a duel sets this address to the value to be written into wDuelInitialPrizes -wcc18:: ; cc18 +wNPCDuelPrizes:: ; cc18 ds $1 ; an overworld script starting a duel sets this address to the value to be written into wOpponentDeckID -wcc19:: ; cc19 +wNPCDuelDeckID:: ; cc19 ds $1 ; song played during a duel @@ -2002,7 +2002,7 @@ wd0c2:: ; d0c2 wDuelResult:: ; d0c3 ds $1 -wd0c4:: ; d0c4 +wNPCDuelist:: ; d0c4 ds $1 wd0c5:: ; d0c5 @@ -2036,7 +2036,7 @@ wd10f:: ; d10f wd110:: ; d110 ds $1 -wd111:: ; d111 +wDefaultSong:: ; d111 ds $1 wd112:: ; d112 @@ -2054,7 +2054,10 @@ wd115:: ; d115 wd116:: ; d116 ds $1 -wd117:: ; d117 +; if FALSE, first booster being given +; if TRUE, additional booster being given +; used to control the text that is displayed when booster is opened +wAnotherBoosterPack:: ; d117 ds $1 ds $3 @@ -2174,7 +2177,8 @@ wd324:: ; d324 ds $9 -wd32e:: ; d32e +; the OWMAP_* value for the current overworld map selection +wOverworldMapSelection:: ; d32e ds $1 wCurMap:: ; d32f @@ -2186,10 +2190,10 @@ wPlayerXCoord:: ; d330 wPlayerYCoord:: ; d331 ds $1 -wd332:: ; d332 +wPlayerXCoordPixels:: ; d332 ds $1 -wd333:: ; d333 +wPlayerYCoordPixels:: ; d333 ds $1 wPlayerDirection:: ; d334 @@ -2697,7 +2701,7 @@ wBoosterData_TypeChances:: ; d689 ds $1 -wd693:: ; d693 +wStarterDeckChoice:: ; d693 ds $1 wMultichoiceTextboxResult_Sam:: ; d694 @@ -2706,23 +2710,14 @@ wMultichoiceTextboxResult_Sam:: ; d694 wMultichoiceTextboxResult_ChooseDeckToDuelAgainst:: ; d695 ds $1 -wd696:: ; d696 +wChallengeHallNPC:: ; d696 ds $1 -wd697:: ; d697 +wCardReceived:: ; d697 ds $1 wd698:: ; d698 - ds $1 - -wd699:: ; d699 - ds $1 - -wd69a:: ; d69a - ds $1 - -wd69b:: ; d69b - ds $1 + ds $4 ds $6e4 |