;============================================================================ ; Faxanadu (U).nes ; ; RAM ($0100 - $07ff) ;============================================================================.segment "RAM" .reloc;============================================================================ ; The currently-loaded ROM bank used for logic. ; ; XREFS: ; Area_LoadBlockProperties ; Area_LoadScrollData ; Area_LoadTiles ; Area_SetBlocks ; Area_SetStateFromDoorDestination ; CurrentSprite_LoadTilesInfo ; Game_DrawScreenInFrozenState ; Game_InitMMCAndBank ; Game_InitScreenAndMusic ; Game_LoadAreaTable ; IScripts_DrawPortraitTileToPPU ; IScripts_LoadPortraitTilesAddress ; MMC1_EnsurePRG ; MMC1_LoadBankAndJump ; MMC1_SaveROMBankAndUpdateTo ; MMC1_UpdateROMBank ; Messages_Load ; OnInterrupt ; PPU_LoadGlyphsForStrings ; PPU_WriteTilesFromCHRRAM ; Player_LoadArmorSpriteTilesAddr ; Player_LoadArmorTile ; Player_LoadShieldSpriteTileAddrs ; Player_LoadShieldTile ; Player_LoadWeaponSpriteTileAddrs ; Player_LoadWeaponTile ; Screen_HandleScrollDown ; Screen_HandleScrollLeft ; Screen_HandleScrollRight ; Screen_HandleScrollUp ; Screen_LoadSpriteInfo ; Screen_LoadUIPalette ; Screen_SetFadeOutPalette ; Screen_SetPaletteData ; Sprite_DrawPortraitPartAppearance ; Sprite_SetAppearanceAddrFromOffset ; Sprite_SetPlayerAppearanceAddr ; Sprites_LoadCommon ; Sprites_LoadImageForCurrentSprite ; Sprites_LoadSpriteValue ; TextBox_GetBackingAttributeData ; TextBox_LoadAndShowMessage ; TextBox_LoadItemSourceTiles ; TextBox_ShowNextChar ; TextBox_WriteChar ; Textbox_Maybe_GetAreaBehindTextbox ; UI_DrawSelectedItem ;============================================================================; ; XREFS: ; Area_LoadBlockProperties ; Area_LoadScrollData ; Area_LoadTiles ; Area_SetBlocks ; Area_SetStateFromDoorDestination ; CurrentSprite_LoadTilesInfo ; Game_DrawScreenInFrozenState ; Game_InitMMCAndBank ; Game_InitScreenAndMusic ; Game_LoadAreaTable ; IScripts_DrawPortraitTileToPPU ; IScripts_LoadPortraitTilesAddress ; MMC1_EnsurePRG ; MMC1_LoadBankAndJump ; MMC1_SaveROMBankAndUpdateTo ; MMC1_UpdateROMBank ; Messages_Load ; OnInterrupt ; PPU_LoadGlyphsForStrings ; PPU_WriteTilesFromCHRRAM ; Player_LoadArmorSpriteTilesAddr ; Player_LoadArmorTile ; Player_LoadShieldSpriteTileAddrs ; Player_LoadShieldTile ; Player_LoadWeaponSpriteTileAddrs ; Player_LoadWeaponTile ; Screen_HandleScrollDown ; Screen_HandleScrollLeft ; Screen_HandleScrollRight ; Screen_HandleScrollUp ; Screen_LoadSpriteInfo ; Screen_LoadUIPalette ; Screen_SetFadeOutPalette ; Screen_SetPaletteData ; Sprite_DrawPortraitPartAppearance ; Sprite_SetAppearanceAddrFromOffset ; Sprite_SetPlayerAppearanceAddr ; Sprites_LoadCommon ; Sprites_LoadImageForCurrentSprite ; Sprites_LoadSpriteValue ; TextBox_GetBackingAttributeData ; TextBox_LoadAndShowMessage ; TextBox_LoadItemSourceTiles ; TextBox_ShowNextChar ; TextBox_WriteChar ; Textbox_Maybe_GetAreaBehindTextbox ; UI_DrawSelectedItem ;[0100]CurrentROMBank: [0100]00.byte $00; ROMBank;============================================================================ ; MOD NOTES: 31 unused bytes of RAM. ;============================================================================[0101]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [0109]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [0111]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [0119]00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00; undefined;============================================================================ ; Whether audio is playing or paused. ; ; If bit 0 is set, the game has been paused. ; If bit 7 is set, then audio has been paused. ; ; Audio will be paused following the game being paused, ; at the next hardware interrupt. ; ; XREFS: ; GameLoop_CheckPauseGame ; Game_InitScreenAndMusic ; Audio_HandlePaused ; Audio_InitPlayingState ; Music_HandleOnInterrupt ;============================================================================; ; XREFS: ; GameLoop_CheckPauseGame ; Game_InitScreenAndMusic ; Audio_HandlePaused ; Audio_InitPlayingState ; Music_HandleOnInterrupt ;[0120]Game_PausedState: [0120]00.byte $00; byte;============================================================================ ; The ID of the highest-priority sound being played. ; ; This is an index into SOUND_PRIORITIES, and ; helps ; manage which sound effect should be playing based on ; its priority level. ; ; XREFS: ; SoundEffect_SetCurrent ; Audio_InitPlayingState ; SoundEffects_Init ; Sound_ResetCurrentSound ;============================================================================; ; XREFS: ; SoundEffect_SetCurrent ; Audio_InitPlayingState ; SoundEffects_Init ; Sound_ResetCurrentSound ;[0121]SoundEffect_Unused_PriorityID: [0121]00.byte $00; byte [0122]SoundEffect_HandlerIndex: [0122]00.byte $00; byte;============================================================================ ; Number of ticks remaining for sound effect playback. ; ; Each index corresponds to a channel: ; ; 0: SQ1 ; 1: SQ2 ; 2: Triangle ; 3: Noise ; ; XREFS: ; Music_ApplySQPitchEffectToLO ; Music_PlayForChannel ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModeLinearTrailoff ; Music_PlaySQEnvelopeModePluck ; Music_SetupWave ; SoundEffect_PlayerDied_Setup ; SoundEffects_HandleOnInterrupt ; SoundEffects_Init ;============================================================================; ; XREFS: ; Music_ApplySQPitchEffectToLO ; Music_PlayForChannel ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModeLinearTrailoff ; Music_PlaySQEnvelopeModePluck ; Music_SetupWave ; SoundEffect_PlayerDied_Setup ; SoundEffects_HandleOnInterrupt ; SoundEffects_Init ;[0123]SoundEffect_TicksRemaining: [0123]00.byte $00; [0]:; ; XREFS: ; SoundEffect_0x48_OnTick ; SoundEffect_0x48_Setup ; SoundEffect_BreadTouched_Setup ; SoundEffect_CharacterInput_Setup ; SoundEffect_CoinDropped_Setup ; SoundEffect_CoinTouchedCommon_Setup ; SoundEffect_CursorMoved_Setup ; SoundEffect_FillHPOrMP_Setup ; SoundEffect_GoldAmountChanged_Setup ; SoundEffect_HitEnemy_Setup ; SoundEffect_HitPlayer_Setup ; SoundEffect_ItemPickedUp_Setup ; SoundEffect_Magic_Setup ; SoundEffect_Maybe_Typing_OnTick ; SoundEffect_Maybe_Typing_Setup ; SoundEffect_Maybe_UseSpecialItem2_Setup ; SoundEffect_OpenDoor_Setup ; SoundEffect_Pakukame_OnTick ; SoundEffect_Pakukame_Setup ; SoundEffect_PasswordCharInput_Setup ; SoundEffect_PlayerDied_Setup ; SoundEffect_ShieldHitByMagic_Setup ; SoundEffect_ShowPlayerMenu_Setup ; SoundEffect_Tilte_Setup ; SoundEffects_HandleOnInterrupt ; SoundEffects_Init ;[0124]SoundEffect_TicksRemaining_1_: [0124]00.byte $00; [1]:; ; XREFS: ; Audio_ResetIfNothingSet ; SoundEffect_PlayerDied_Setup ; SoundEffects_HandleOnInterrupt ; SoundEffects_Init ;[0125]SoundEffect_TicksRemaining_2_: [0125]00.byte $00; [2]:; ; XREFS: ; Audio_ResetIfNothingSet ; Music_PlayNoise ; SoundEffect_0x48_Setup ; SoundEffect_EnemyDied_Setup ; SoundEffect_HitEnemy_Setup ; SoundEffect_LadderDropped_Setup ; SoundEffect_MagicHitObstacle_Setup ; SoundEffect_Maybe_Step_Setup ; SoundEffect_Maybe_UseSpecialItem2_Setup ; SoundEffect_Message_Setup ; SoundEffect_OpenDoor_Setup ; SoundEffect_PlayerDied_Setup ; SoundEffect_PushBlock_Setup ; SoundEffect_Tilte_Setup ; SoundEffects_HandleOnInterrupt ; SoundEffects_Init ;[0126]SoundEffect_TicksRemaining_3_: [0126]00.byte $00; [3]:; ; XREFS: ; SoundEffect_0x48_OnTick ; SoundEffect_0x48_Setup ; SoundEffect_BreadTouched_OnTick ; SoundEffect_BreadTouched_Setup ; SoundEffect_CharacterInput_OnTick ; SoundEffect_CharacterInput_Setup ; SoundEffect_CoinDropped_OnTick ; SoundEffect_CoinDropped_Setup ; SoundEffect_CoinTouchedCommon_OnTick ; SoundEffect_CoinTouchedCommon_Setup ; SoundEffect_CursorMoved_OnTick ; SoundEffect_CursorMoved_Setup ; SoundEffect_EnemyDied_OnTick ; SoundEffect_EnemyDied_Setup ; SoundEffect_FillHPOrMP_OnTick ; SoundEffect_FillHPOrMP_Setup ; SoundEffect_GoldAmountChanged_Setup ; SoundEffect_HitEnemy_OnTick ; SoundEffect_HitEnemy_Setup ; SoundEffect_HitPlayer_OnTick ; SoundEffect_HitPlayer_Setup ; SoundEffect_ItemPickedUp_OnTick ; SoundEffect_ItemPickedUp_Setup ; SoundEffect_LadderDropped_OnTick ; SoundEffect_LadderDropped_Setup ; SoundEffect_MagicHitObstacle_OnTick ; SoundEffect_MagicHitObstacle_Setup ; SoundEffect_Magic_OnTick ; SoundEffect_Magic_Setup ; SoundEffect_Maybe_Step_OnTick ; SoundEffect_Maybe_Step_Setup ; SoundEffect_Maybe_Typing_OnTick ; SoundEffect_Maybe_Typing_Setup ; SoundEffect_Maybe_UseSpecialItem2_OnTick ; SoundEffect_Maybe_UseSpecialItem2_Setup ; SoundEffect_Message_OnTick ; SoundEffect_Message_Setup ; SoundEffect_OpenDoor_OnTick ; SoundEffect_OpenDoor_Setup ; SoundEffect_Pakukame_OnTick ; SoundEffect_Pakukame_Setup ; SoundEffect_PasswordCharInput_Setup ; SoundEffect_PlayerDied_OnTick ; SoundEffect_PlayerDied_Setup ; SoundEffect_PushBlock_OnTick ; SoundEffect_PushBlock_Setup ; SoundEffect_ShieldHitByMagic_OnTick ; SoundEffect_ShieldHitByMagic_Setup ; SoundEffect_ShowPlayerMenu_OnTick ; SoundEffect_ShowPlayerMenu_Setup ; SoundEffect_Tilte_OnTick ; SoundEffect_Tilte_Setup ; SoundEffects_DecrementCounter ;[0127]SoundEffect_State_Counter: [0127]00.byte $00; byte; ; XREFS: ; SoundEffect_0x48_OnTick ; SoundEffect_0x48_Setup ; SoundEffect_BreadTouched_OnTick ; SoundEffect_BreadTouched_Setup ; SoundEffect_CoinTouchedCommon_OnTick ; SoundEffect_CoinTouchedCommon_Setup ; SoundEffect_CursorMoved_OnTick ; SoundEffect_EnemyDied_OnTick ; SoundEffect_EnemyDied_Setup ; SoundEffect_FillHPOrMP_OnTick ; SoundEffect_FillHPOrMP_Setup ; SoundEffect_ItemPickedUp_OnTick ; SoundEffect_ItemPickedUp_Setup ; SoundEffect_MagicHitObstacle_Setup ; SoundEffect_Magic_OnTick ; SoundEffect_Magic_Setup ; SoundEffect_Maybe_UseSpecialItem2_OnTick ; SoundEffect_Maybe_UseSpecialItem2_Setup ; SoundEffect_OpenDoor_Setup ; SoundEffect_PlayerDied_OnTick ; SoundEffect_PlayerDied_Setup ; SoundEffect_ShowPlayerMenu_OnTick ; SoundEffect_ShowPlayerMenu_Setup ; SoundEffect_Tilte_OnTick ; SoundEffect_Tilte_Setup ;[0128]SoundEffect_State_0128: [0128]00.byte $00; byte; ; XREFS: ; SoundEffect_0x48_OnTick ; SoundEffect_0x48_Setup ; SoundEffect_BreadTouched_OnTick ; SoundEffect_BreadTouched_Setup ; SoundEffect_FillHPOrMP_OnTick ; SoundEffect_FillHPOrMP_Setup ; SoundEffect_Maybe_UseSpecialItem2_OnTick ; SoundEffect_Maybe_UseSpecialItem2_Setup ; SoundEffect_OpenDoor_OnTick ; SoundEffect_OpenDoor_Setup ; SoundEffect_ShowPlayerMenu_OnTick ; SoundEffect_ShowPlayerMenu_Setup ; SoundEffect_Tilte_OnTick ; SoundEffect_Tilte_Setup ;[0129]SoundEffect_State_0129: [0129]00.byte $00; byte; ; XREFS: ; SoundEffect_CharacterInput_OnTick ; SoundEffect_HitEnemy_OnTick ; SoundEffect_HitPlayer_OnTick ; SoundEffect_ItemPickedUp_OnTick ; SoundEffect_Maybe_Typing_OnTick ; SoundEffect_Maybe_UseSpecialItem2_OnTick ; SoundEffect_PlayerDied_OnTick ; SoundEffect_SetNote ; SoundEffect_ShowPlayerMenu_OnTick ;[012a]SoundEffect_Note_Low: [012a]00.byte $00; byte; ; XREFS: ; SoundEffect_CharacterInput_OnTick ; SoundEffect_HitEnemy_OnTick ; SoundEffect_HitPlayer_OnTick ; SoundEffect_ItemPickedUp_OnTick ; SoundEffect_Maybe_Typing_OnTick ; SoundEffect_Maybe_UseSpecialItem2_OnTick ; SoundEffect_PlayerDied_OnTick ; SoundEffect_SetNote ; SoundEffect_ShowPlayerMenu_OnTick ;[012b]SoundEffect_Note_High: [012b]00.byte $00; byte [012c]MScript_NoteDurations: [012c]00.byte $00; [0]:; ; XREFS: ; Music_Load ;[012d]MScript_NoteDurations_1_: [012d]00.byte $00; [1]:; ; XREFS: ; Music_Load ;[012e]MScript_NoteDurations_2_: [012e]00.byte $00; [2]:; ; XREFS: ; Music_Load ;[012f]MScript_NoteDurations_3_: [012f]00.byte $00; [3]: [0130]Music_ChannelTicksRemaining: [0130]00.byte $00; [0]:; ; XREFS: ; Music_Load ; Music_PlayNext ;[0131]Music_ChannelTicksRemaining_1_: [0131]00.byte $00; [1]:; ; XREFS: ; Music_Load ;[0132]Music_ChannelTicksRemaining_2_: [0132]00.byte $00; [2]:; ; XREFS: ; Music_Load ;[0133]Music_ChannelTicksRemaining_3_: [0133]00.byte $00; [3]: [0134]00 00 00 00.byte $00,$00,$00,$00; undefined; ; XREFS: ; MScript_Op_BeginLoop ; MScript_Op_EndLoop ;[0138]MScript_LoopStartAddrs: [0138]00 00.word $0000; [0]: [013a]00 00.word $0000; [1]: [013c]00 00.word $0000; [2]: [013e]00 00.word $0000; [3]:; ; XREFS: ; MScript_Op_EndLoop ; MScript_Op_NextLoopIfNCompleted ;[0140]MScript_LoopEndAddrs: [0140]00 00.word $0000; [0]: [0142]00 00.word $0000; [1]: [0144]00 00.word $0000; [2]: [0146]00 00.word $0000; [3]:; ; XREFS: ; MScript_Op_BeginLoop ; MScript_Op_EndLoop ;[0148]MScript_LoopLength: [0148]00.byte $00; [0]: [0149]00.byte $00; [1]: [014a]00.byte $00; [2]: [014b]00.byte $00; [3]: [014c]MScript_LoopCounter: [014c]00.byte $00; [0]: [014d]00.byte $00; [1]: [014e]00.byte $00; [2]: [014f]00.byte $00; [3]:;============================================================================ ; The saved MScript addresses that can be restored back to. ; ; There is 1 address per channel. ; ; XREFS: ; MScript_Op_RestoreAddr ; MScript_Op_SaveAddr_Store ; Music_Load ;============================================================================[0150]MScript_SavedAddr: [0150]00 00.word $0000; [0]: [0152]00 00.word $0000; [1]: [0154]00 00.word $0000; [2]: [0156]00 00.word $0000; [3]:;============================================================================ ; Pushed MScript addresses for jumping to/returning from subroutines. ; ; There's one per channel. ; ; XREFS: ; MScript_Op_JumpSubroutine ; MScript_Op_Return ;============================================================================; ; XREFS: ; MScript_Op_JumpSubroutine ; MScript_Op_Return ;[0158]MScript_PushedAddrs: [0158]00 00 00 00 00 00 00 00.word $0000,$0000,$0000,$0000; ushort [0160]Music_Global_Transpose: [0160]00.byte $00; byte [0161]Music_Channel_Transpose: [0161]00.byte $00; [0]:; ; XREFS: ; Music_Load ;[0162]Music_Channel_Transpose_1_: [0162]00.byte $00; [1]:; ; XREFS: ; Music_Load ;[0163]Music_Channel_Transpose_2_: [0163]00.byte $00; [2]: [0164]Music_SQ_Note_Lengths: [0164]00.byte $00; [0]:; ; XREFS: ; Music_Load ; Music_SetupWave ;[0165]Music_Note_Length_High: [0165]00.byte $00; [1]:; ; XREFS: ; Music_Load ;[0166]Music_Unused_0166: [0166]00.byte $00; [0]:; ; XREFS: ; Music_Load ;[0167]Music_Unused_0166_1_: [0167]00.byte $00; [1]:; ; XREFS: ; Music_PlayNoise ; Music_PlayWaveOrNoise ;[0168]Music_Noise_Index: [0168]00.byte $00; byte [0169]Music_Noise_Remaining: [0169]00.byte $00; byte;============================================================================ ; The index into the sound channel data. ; ; Sound channels are in the following order: ; ; 0 = Square wave 1 ; 1 = Square wave 2 ; 2 = Triangle wave ; 3 = Noise ; ; XREFS: ; MScript_Op_BeginLoop ; MScript_Op_End ; MScript_Op_EndLoop ; MScript_Op_JumpSubroutine ; MScript_Op_NextLoopIfNCompleted ; MScript_Op_RestoreAddr ; MScript_Op_Return ; MScript_Op_SaveAddr_Store ; MScript_Op_SetChannelTranspose ; MScript_Op_SetControlBits ; MScript_Op_SetSQEnvelopeMode ; MScript_Op_SetSQPitchEffectDepth ; MScript_Op_SetSQVol ; MScripts_GetNextValue ; MScripts_InvokeNext ; MScripts_SetNoteLengthFromValue ; Music_ApplySQPitchEffectToLO ; Music_PlayForChannel ; Music_PlayNext ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModeLinearTrailoff ; Music_PlaySQEnvelopeModePluck ; Music_PlayWaveOrNoise ; Music_ResetTicksRemaining ; Music_SetNote ; Music_SetupWave ; Music_UpdateSQVolRegister ;============================================================================; ; XREFS: ; MScript_Op_BeginLoop ; MScript_Op_End ; MScript_Op_EndLoop ; MScript_Op_JumpSubroutine ; MScript_Op_NextLoopIfNCompleted ; MScript_Op_RestoreAddr ; MScript_Op_Return ; MScript_Op_SaveAddr_Store ; MScript_Op_SetChannelTranspose ; MScript_Op_SetControlBits ; MScript_Op_SetSQEnvelopeMode ; MScript_Op_SetSQPitchEffectDepth ; MScript_Op_SetSQVol ; MScripts_GetNextValue ; MScripts_InvokeNext ; MScripts_SetNoteLengthFromValue ; Music_ApplySQPitchEffectToLO ; Music_PlayForChannel ; Music_PlayNext ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModeLinearTrailoff ; Music_PlaySQEnvelopeModePluck ; Music_PlayWaveOrNoise ; Music_ResetTicksRemaining ; Music_SetNote ; Music_SetupWave ; Music_UpdateSQVolRegister ;[016a]MScript_CurrentChannel: [016a]00.byte $00; SoundChannel;============================================================================ ; Number of channels completed for the current song. ; ; This starts at 0. Once it hits 4, playback finishes and ; Music_Current is cleared. ; ; XREFS: ; MScript_Op_End ; Music_PlayNext ;============================================================================; ; XREFS: ; MScript_Op_End ; Music_PlayNext ;[016b]Music_NumChannelsCompleted: [016b]00.byte $00; byte; ; XREFS: ; MScripts_InvokeNext ; MScripts_SetNoteLengthFromNext ; MScripts_SetNoteLengthFromValue ; Music_Load ; Music_PlayForChannel ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModeLinearTrailoff ; Music_PlaySQEnvelopeModePluck ; Music_SetNote ; Music_SetupTriangleWave ; Music_SetupWave ; Music_UpdateSQVolRegister ;[016c]Music_TempValue: [016c]00.byte $00; byte [016d]Music_Note_Period_Low: [016d]00.byte $00; byte [016e]Music_Note_Period_High: [016e]00.byte $00; byte; ; XREFS: ; Music_Load ; Music_SetNote ;[016f]MScript_Unused_RawValue: [016f]00.byte $00; byte;============================================================================ ; Value used for Square Wave envelope modes. ; ; This is used differently in the different modes: ; ; Mode 0: Fixed-point, with volume in the upper nibble. ; Mode 1: A volume value between 0-15 (in the lower nibble). ; Mode 2: A volume from the pre-built table (between 0-15). ; ; XREFS: ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModeLinearTrailoff ; Music_SetupWave ;============================================================================; ; XREFS: ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModeLinearTrailoff ; Music_SetupWave ;[0170]Music_SQEnvelope_Value: [0170]00.byte $00; [0]: [0171]00.byte $00; [1]: [0172]Music_SQ_ControlBits: [0172]00.byte $00; [0]:; ; XREFS: ; Music_Load ;[0173]Music_SQ_ControlBits_1_: [0173]00.byte $00; [1]: [0174]Music_SQ_Fades: [0174]00.byte $00; [0]:; ; XREFS: ; Music_Load ;[0175]Music_SQ_Fades_1_: [0175]00.byte $00; [1]:;============================================================================ ; The envelope mode for each Square Wave channel. ; ; This supports the following values: ; ; 0: Volume decay ; ; Ramps down the volume smoothly ; ; 1: Curve but held ; ; Clamps the envelope into a range 0..15 and then slows the decay ; ; 2: Pre-built attack/decay curve ; ; Pitches up and then down in a set pattern ; ; XREFS: ; MScript_Op_SetSQEnvelopeMode ; Music_Load ; Music_PlayForChannel ;============================================================================[0176]Music_SQEnvelope_Mode: [0176]00.byte $00; [0]:; ; XREFS: ; Music_Load ;[0177]Music_SQEnvelope_Mode_1_: [0177]00.byte $00; [1]: [0178]Music_SQEffect_Delta: [0178]00.byte $00; undefined1; ; XREFS: ; Music_ApplySQPitchEffectToLO ; Music_Load ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModePluck ; Music_SetupWave ;[0179]Music_SQEnvelope_Phase: [0179]00.byte $00; [0]:; ; XREFS: ; Music_Load ; Music_SetupWave ;[017a]Music_SQEnvelope_Phase_1_: [017a]00.byte $00; [1]: [017b]00.byte $00; undefined [017c]Music_Current_SQ_Low: [017c]00.byte $00; [0]:; ; XREFS: ; Music_Load ; Music_SetupWave ;[017d]Music_Current_SQ_Low_1_: [017d]00.byte $00; [1]: [017e]Music_Triangle_Remaining: [017e]00.byte $00; byte [017f]Music_SQPitchDelta_Mask: [017f]00.byte $00; [0]:; ; XREFS: ; Music_Load ;[0180]Music_SQPitchDelta_Mask_1_: [0180]00.byte $00; [1]: [0181]Music_SQ2_TimerLowBias: [0181]00.byte $00; undefined;============================================================================ ; MOD NOTES: 8 unused bytes of RAM. ;============================================================================[0182]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined;============================================================================ ; Data zero'd out during horizontal screen scroll. ; ; This is written to but never read or otherwise used. ; ; XREFS: ; Screen_LoadBlocksHoriz ;============================================================================; ; XREFS: ; Screen_LoadBlocksHoriz ;[018a]Screen_ScrollHoriz_ZeroData: [018a]00.byte $00; [0]: [018b]00.byte $00; [1]: [018c]00.byte $00; [2]: [018d]00.byte $00; [3]: [018e]00.byte $00; [4]: [018f]00.byte $00; [5]: [0190]00.byte $00; [6]: [0191]00.byte $00; [7]:; ; XREFS: ; Screen_LoadBlockDataVert ;[0192]Screen_ScrollVert_ZeroData: [0192]00.byte $00; [0]: [0193]00.byte $00; [1]: [0194]00.byte $00; [2]: [0195]00.byte $00; [3]: [0196]00.byte $00; [4]: [0197]00.byte $00; [5]: [0198]00.byte $00; [6]: [0199]00.byte $00; [7]: [019a]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01a2]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01aa]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01b2]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01ba]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01c2]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01ca]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01d2]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01da]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01e2]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01ea]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01f2]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [01fa]00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00; undefined; ; XREFS: ; IScripts_Begin ; Game_Init ; Screen_LoadBlocksHoriz ; Screen_WriteBlockTilesColumnToPPU ;[0200]Temp_0200: [0200]00.byte $00; byte; ; XREFS: ; IScriptAction_EndScript ; IScripts_Begin ; IScripts_UpdatePortraitAnimation ; TextBox_SetCoordsForNPC ; Screen_LoadBlocksHoriz ; Screen_WriteBlockTilesColumnToPPU ;[0201]Temp_0201: [0201]00.byte $00; byte; ; XREFS: ; IScriptAction_AddGold ; IScriptAction_OpenShop ; IScriptAction_ShowSellMenu ; IScriptAction_SpendGold ; IScripts_ProgressivelyAddGold ; IScripts_ProgressivelySubtractGold ; Screen_LoadBlocksHoriz ;[0202]Temp_0202: [0202]00.byte $00; byte; ; XREFS: ; IScriptAction_AddGold ; IScriptAction_OpenShop ; IScriptAction_ShowSellMenu ; IScriptAction_SpendGold ; IScripts_ProgressivelyAddGold ; IScripts_ProgressivelySubtractGold ; Screen_LoadBlocksHoriz ;[0203]Temp_0203: [0203]00.byte $00; byte [0204]00.byte $00; undefined; ; XREFS: ; IScriptAction_ShowSellMenu ;[0205]Maybe_Shop_InventoryBitmask: [0205]00.byte $00; byte; ; XREFS: ; IScriptAction_AddHP ; IScriptAction_AddMP ;[0206]IScript_HPOrMPValueToAdd: [0206]00.byte $00; byte; ; XREFS: ; IScriptAction_ShowPassword ;[0207]IScripts_Unused_207: [0207]00.byte $00; byte;============================================================================ ; X tile position of a displayed textbox. ; ; XREFS: ; IScriptAction_AddInventoryItem ; IScriptAction_AddInventoryItem_ClearTextBox ; IScripts_PositionAndFillPlaceholderText ; PlayerMenu_Close ; PlayerMenu_DrawInventoryItems ; PlayerMenu_DrawStringLines ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ; PlayerMenu_ShowSubmenu ; Shop_Draw ; TextBox_ClearForPortraitAndText ; TextBox_Close ; TextBox_DrawDownArrowTerminatorSymbol ; TextBox_DrawQuestionMarkTerminatorSymbol ; TextBox_DrawUpArrowTerminatorSymbol ; TextBox_FillBackground ; TextBox_GetXPixelCoord ; TextBox_Open ; TextBox_SetCoordsForNPC ; TextBox_SetCoordsForPortrait ; TextBox_ShowMessage_Fill4Lines ;============================================================================; ; XREFS: ; IScriptAction_AddInventoryItem ; IScriptAction_AddInventoryItem_ClearTextBox ; IScripts_PositionAndFillPlaceholderText ; PlayerMenu_Close ; PlayerMenu_DrawInventoryItems ; PlayerMenu_DrawStringLines ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ; PlayerMenu_ShowSubmenu ; Shop_Draw ; TextBox_ClearForPortraitAndText ; TextBox_Close ; TextBox_DrawDownArrowTerminatorSymbol ; TextBox_DrawQuestionMarkTerminatorSymbol ; TextBox_DrawUpArrowTerminatorSymbol ; TextBox_FillBackground ; TextBox_GetXPixelCoord ; TextBox_Open ; TextBox_SetCoordsForNPC ; TextBox_SetCoordsForPortrait ; TextBox_ShowMessage_Fill4Lines ;[0208]TextBox_X: [0208]00.byte $00; byte;============================================================================ ; Y tile position of a displayed textbox. ; ; XREFS: ; IScriptAction_AddInventoryItem ; IScriptAction_AddInventoryItem_ClearTextBox ; IScripts_PositionAndFillPlaceholderText ; PlayerMenu_Close ; PlayerMenu_DrawInventoryItems ; PlayerMenu_DrawStringLines ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ; PlayerMenu_ShowSubmenu ; Shop_Draw ; TextBox_ClearForPortraitAndText ; TextBox_Close ; TextBox_DrawDownArrowTerminatorSymbol ; TextBox_DrawQuestionMarkTerminatorSymbol ; TextBox_DrawUpArrowTerminatorSymbol ; TextBox_FillBackground ; TextBox_GetYPixelCoord ; TextBox_Open ; TextBox_SetCoordsForNPC ; TextBox_SetCoordsForPortrait ; TextBox_ShowMessage_Fill4Lines ;============================================================================; ; XREFS: ; IScriptAction_AddInventoryItem ; IScriptAction_AddInventoryItem_ClearTextBox ; IScripts_PositionAndFillPlaceholderText ; PlayerMenu_Close ; PlayerMenu_DrawInventoryItems ; PlayerMenu_DrawStringLines ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ; PlayerMenu_ShowSubmenu ; Shop_Draw ; TextBox_ClearForPortraitAndText ; TextBox_Close ; TextBox_DrawDownArrowTerminatorSymbol ; TextBox_DrawQuestionMarkTerminatorSymbol ; TextBox_DrawUpArrowTerminatorSymbol ; TextBox_FillBackground ; TextBox_GetYPixelCoord ; TextBox_Open ; TextBox_SetCoordsForNPC ; TextBox_SetCoordsForPortrait ; TextBox_ShowMessage_Fill4Lines ;[0209]TextBox_Y: [0209]00.byte $00; byte;============================================================================ ; Width of a displayed textbox. ; ; XREFS: ; IScriptAction_AddInventoryItem_ClearTextBox ; PlayerMenu_Close ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ; PlayerMenu_ShowSubmenu ; Shop_Draw ; TextBox_ClearForPortraitAndText ; TextBox_Close ; TextBox_FillBackground ; TextBox_SetCoordsForNPC ; TextBox_SetCoordsForPortrait ; TextBox_QueuePPUBufferTextBoxLength ;============================================================================; ; XREFS: ; IScriptAction_AddInventoryItem_ClearTextBox ; PlayerMenu_Close ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ; PlayerMenu_ShowSubmenu ; Shop_Draw ; TextBox_ClearForPortraitAndText ; TextBox_Close ; TextBox_FillBackground ; TextBox_SetCoordsForNPC ; TextBox_SetCoordsForPortrait ; TextBox_QueuePPUBufferTextBoxLength ;[020a]TextBox_Width: [020a]00.byte $00; byte;============================================================================ ; Height of a displayed textbox. ; ; XREFS: ; IScriptAction_AddInventoryItem_ClearTextBox ; PlayerMenu_Close ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ; PlayerMenu_ShowSubmenu ; Shop_Draw ; TextBox_ClearForPortraitAndText ; TextBox_Close ; TextBox_FillBackground ; TextBox_Open ; TextBox_SetCoordsForNPC ; TextBox_SetCoordsForPortrait ;============================================================================; ; XREFS: ; IScriptAction_AddInventoryItem_ClearTextBox ; PlayerMenu_Close ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ; PlayerMenu_ShowSubmenu ; Shop_Draw ; TextBox_ClearForPortraitAndText ; TextBox_Close ; TextBox_FillBackground ; TextBox_Open ; TextBox_SetCoordsForNPC ; TextBox_SetCoordsForPortrait ;[020b]TextBox_Height: [020b]00.byte $00; byte;============================================================================ ; Whether the textbox is closed. ; ; 0 = Open ; 1 = Closed ; ; Note that at game startup, this may be a garbage value. ; ; XREFS: ; TextBox_Close ; TextBox_GetBackgroundAttributeData ; TextBox_Open ;============================================================================[020c]TextBox_Closed: [020c]00.byte $00; bool [020d]00.byte $00; Unused;============================================================================ ; Inventory corresponding to the Player Menu selection. ; ; XREFS: ; PlayerMenu_DrawInventoryItems ; PlayerMenu_EquipItem ; PlayerMenu_HandleInventoryMenuInput ; PlayerMenu_ShowSubmenu ;============================================================================; ; XREFS: ; PlayerMenu_DrawInventoryItems ; PlayerMenu_EquipItem ; PlayerMenu_HandleInventoryMenuInput ; PlayerMenu_ShowSubmenu ;[020e]PlayerMenu_SelectedInventory: [020e]00.byte $00; byte [020f]00.byte $00; Unused;============================================================================ ; Temporary state for the new inventory item. ; ; This is used when equipping an item in Player_Equip ; to store the new item for the purpose of equipping it. ; ; XREFS: ; Player_Equip ;============================================================================; ; XREFS: ; Player_Equip ;[0210]Temp_EquipingItem: [0210]00.byte $00; byte;============================================================================ ; Temporary state for the previous inventory item. ; ; This is used when equipping an item in Player_Equip ; to store the previous item for the purpose of unequipping it. ; ; XREFS: ; Player_Equip ;============================================================================; ; XREFS: ; Player_Equip ;[0211]Temp_PrevInventoryItem: [0211]00.byte $00; byte [0212]TextBox_PlayTextSound: [0212]00.byte $00; bool;============================================================================ ; ID of the message to show in a textbox. ; ; This would be a 1-based index into MESSAGE_STRINGS. ; ; XREFS: ; IScripts_UpdatePortraitAnimation ; TextBox_CheckShouldContinue ; TextBox_CheckShouldContinueOrDismissMessage ; TextBox_CheckShouldContinueOrDismissQuestion ; IScripts_LoadAndShowMessage ; Messages_Load ; TextBox_ShowMessage_Pause ; TextBox_ShowNextChar_IfReady ;============================================================================; ; XREFS: ; IScripts_UpdatePortraitAnimation ; TextBox_CheckShouldContinue ; TextBox_CheckShouldContinueOrDismissMessage ; TextBox_CheckShouldContinueOrDismissQuestion ; IScripts_LoadAndShowMessage ; Messages_Load ; TextBox_ShowMessage_Pause ; TextBox_ShowNextChar_IfReady ;[0213]MessageID: [0213]00.byte $00; Message;============================================================================ ; The number of bytes processed in a message string. ; ; XREFS: ; Messages_Load ; TextBox_ShowMessage_HandleSpaceOrEndOfLine ; TextBox_ShowMessage_LoadMessage ; TextBox_ShowMessage_Pause ;============================================================================; ; XREFS: ; Messages_Load ; TextBox_ShowMessage_HandleSpaceOrEndOfLine ; TextBox_ShowMessage_LoadMessage ; TextBox_ShowMessage_Pause ;[0214]Message_ProcessedLength: [0214]00.byte $00; byte; ; Flag indicating if a message display is paused. ; ; 0x00 = Message is not paused. ; 0xFF = Message is paused. ; ; ; XREFS: ; IScripts_UpdatePortraitAnimation ; TextBox_CheckForDismiss ; TextBox_CheckShouldContinue ; TextBox_CheckShouldContinueOrDismissQuestion ; TextBox_PrepareContinueMessage ; TextBox_ClearPasswordSize ; TextBox_ShowMessage_Pause ; TextBox_ShowNextChar_IfReady ;[0215]TextBox_MessagePaused: [0215]00.byte $00; byte; ; XREFS: ; TextBox_ClearPasswordSize ; TextBox_ShowMessage_HandleSpaceOrEndOfLine ; TextBox_ShowMessage_IncLineAndReset ; TextBox_ShowMessage_Newline ; TextBox_ShowMessage_Prepare4Lines ; TextBox_WriteChar ;[0216]TextBox_CharPosForLine: [0216]00.byte $00; byte;============================================================================ ; Last drawn line number (0-based). ; ; XREFS: ; TextBox_ClearPasswordSize ; TextBox_ShowMessage_IncLineAndReset ; TextBox_WriteChar ;============================================================================[0217]TextBox_DrawnLineNum: [0217]00.byte $00; byte; ; XREFS: ; Messages_Load ; TextBox_ShowMessage_HandleSpaceOrEndOfLine ; TextBox_ShowMessage_LoadMessage ; TextBox_ShowMessage_Pause ;[0218]Message_StartAddr: [0218]00.byte $00; byte; ; XREFS: ; Messages_Load ; TextBox_ShowMessage_HandleSpaceOrEndOfLine ; TextBox_ShowMessage_LoadMessage ; TextBox_ShowMessage_Pause ;[0219]Message_StartAddr_U: [0219]00.byte $00; byte [021a]TextBox_LineScrollOffset: [021a]00.byte $00; byte; ; XREFS: ; TextBox_PrepareContinueMessage ; TextBox_ClearPasswordSize ;[021b]Unused_Arg_Text_NumLines: [021b]00.byte $00; byte; ; Offset into the process of writing a player title in a ; textbox. ; ; This is a value from 0x81 to 0x90 that is incremented with ; every character of the player title written in a textbox. It's ; used for IScripts that list the player title using code 0xFB ; (namely, Guru title rank scripts). ; ; The values are indexes 1 through 16 (length of the player ; title strings), with the MSB set. ; ; ; XREFS: ; TextBox_ClearPasswordSize ; TextBox_DisplayMessage ; TextBox_ShowMessage_ShowPlayerTitle ;[021c]Textbox_TitleCharOffset: [021c]00.byte $00; byte;============================================================================ ; Count-up timer used to control the rate at which ; characters are shown in textboxes. ; ; This will increment up by 1 every tick of the message box. ; TextBox_ShowNextChar_IfReady will AND this with ; 3 and only process/display the next character if the ; result is 0. ; ; XREFS: ; Messages_Load ; TextBox_ShowNextChar ; TextBox_ShowNextChar_IfReady ;============================================================================[021d]TextBox_Timer: [021d]00.byte $00; byte; ; XREFS: ; IScriptAction_OpenShop ; IScriptAction_ShowBuySellMenu ; IScriptAction_ShowSellMenu ; Menu_UpdateAndDraw ; PlayerMenu_EquipItem ; PlayerMenu_HandleInventoryMenuInput ; PlayerMenu_Show ; PlayerMenu_ShowInventoryMenu ; PlayerMenu_ShowSubmenu ; Shop_Draw ; Shop_GetPlayerHasSelectedItem ; Shop_Populate ;[021e]Menu_CursorPos: [021e]00.byte $00; byte; ; XREFS: ; IScriptAction_ShowBuySellMenu ; IScriptAction_ShowSellMenu ; Menu_UpdateAndDraw ; PlayerMenu_DrawInventoryItems ; PlayerMenu_DrawStringLines ; PlayerMenu_Show ; PlayerMenu_ShowInventoryMenu ; PlayerMenu_ShowStatusMenu ; Shop_Draw ; Shop_Populate ;[021f]Arg_StringsCount: [021f]00.byte $00; byte;============================================================================ ; Temporary data used for multiple purposes: ; ; 1. Shop items ; 2. Player menu items ; 3. Vertical screen scroll PPU tile data ; ; For #3, the data will overflow through $0240. ; ; XREFS: ; IScriptAction_OpenShop ; IScriptAction_ShowSellMenu ; PlayerMenu_DrawInventoryItems ; PlayerMenu_DrawStringLines ; PlayerMenu_EquipItem ; PlayerMenu_HandleInventoryMenuInput ; PlayerMenu_Show ; PlayerMenu_ShowInventoryMenu ; PlayerMenu_ShowStatusMenu ; Shop_Draw ; Shop_GetPlayerHasSelectedItem ; Shop_Populate ; Screen_LoadBlockDataVert ; Screen_WriteBlockTilesRowToPPU ;============================================================================; ; XREFS: ; IScriptAction_OpenShop ; IScriptAction_ShowSellMenu ; PlayerMenu_DrawInventoryItems ; PlayerMenu_DrawStringLines ; PlayerMenu_EquipItem ; PlayerMenu_HandleInventoryMenuInput ; PlayerMenu_Show ; PlayerMenu_ShowInventoryMenu ; PlayerMenu_ShowStatusMenu ; Shop_Draw ; Shop_GetPlayerHasSelectedItem ; Shop_Populate ; Screen_LoadBlockDataVert ; Screen_WriteBlockTilesRowToPPU ;[0220]DataArray: [0220]00.byte $00; [0]:; ; XREFS: ; PlayerMenu_Show ; PlayerMenu_ShowInventoryMenu ; PlayerMenu_ShowStatusMenu ; Screen_LoadBlockDataVert ; Screen_WriteBlockTilesRowToPPU ;[0221]DataArray_1_: [0221]00.byte $00; [1]: [0222]DataArray_2_: [0222]00.byte $00; [2]:; ; XREFS: ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ;[0223]DataArray_3_: [0223]00.byte $00; [3]:; ; XREFS: ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ;[0224]DataArray_4_: [0224]00.byte $00; [4]:; ; XREFS: ; PlayerMenu_Show ; PlayerMenu_ShowStatusMenu ;[0225]DataArray_5_: [0225]00.byte $00; [5]:; ; XREFS: ; PlayerMenu_ShowStatusMenu ;[0226]DataArray_6_: [0226]00.byte $00; [6]: [0227]00.byte $00; [7]:;============================================================================ ; Lower byte of costs of items currently shown in the shop. ; ; XREFS: ; IScriptAction_OpenShop ; IScriptAction_ShowSellMenu ; Shop_Draw ; Shop_Populate ;============================================================================[0228]ShopItemCostsL: [0228]00.byte $00; [0]: [0229]00.byte $00; [1]: [022a]00.byte $00; [2]: [022b]00.byte $00; [3]: [022c]00.byte $00; [4]: [022d]00.byte $00; [5]: [022e]00.byte $00; [6]: [022f]00.byte $00; [7]:;============================================================================ ; Upper byte of costs of items currently shown in the shop. ; ; XREFS: ; IScriptAction_OpenShop ; IScriptAction_ShowSellMenu ; Shop_Draw ; Shop_Populate ;============================================================================[0230]ShopItemCostsU: [0230]00.byte $00; [0]: [0231]00.byte $00; [1]: [0232]00.byte $00; [2]: [0233]00.byte $00; [3]: [0234]00.byte $00; [4]: [0235]00.byte $00; [5]: [0236]00.byte $00; [6]: [0237]00.byte $00; [7]:;============================================================================ ; ASCII digits to render in the Gold or Experience area. ; ; Each digit corresponds to a single digit, populating based ; on the gold or experience. ; ; XREFS: ; UI_DrawDigitsZeroPadded ; UI_PopulateDigitsNoLeadingZeroes ;============================================================================; ; XREFS: ; UI_DrawDigitsZeroPadded ; UI_PopulateDigitsNoLeadingZeroes ;[0238]UI_DigitsToRender: [0238]00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00; char; ; XREFS: ; UI_PopulateDigits ;[023e]CHAR_ARRAY_023e: [023e]00 00 00 00.byte $00,$00,$00,$00; char; ; PPU Attribute Data for a textbox. ; ; XREFS: ; DEADCODE_FUN_PRG12__9041 ; TextBox_FillBackground ; TextBox_SetNextAttributeData ;[0242]TextBox_AttributeData: [0242]00.byte $00; [0]: [0243]00.byte $00; [1]: [0244]00.byte $00; [2]: [0245]00.byte $00; [3]: [0246]00.byte $00; [4]: [0247]00.byte $00; [5]: [0248]00.byte $00; [6]: [0249]00.byte $00; [7]: [024a]ScreenBlocks: [024a]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0252]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [025a]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0262]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [026a]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0272]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [027a]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte; ; XREFS: ; Screen_LoadBlocksHoriz ; Screen_WriteBlockAttrsColumnToPPU ;[0282]Screen_ScrollHorizPPUAttrData: [0282]00.byte $00; [0]:; ; XREFS: ; Screen_LoadBlocksHoriz ; Screen_WriteBlockAttrsColumnToPPU ;[0283]Screen_ScrollHorizPPUAttrData_1_: [0283]00.byte $00; [1]: [0284]00.byte $00; [2]: [0285]00.byte $00; [3]: [0286]00.byte $00; [4]: [0287]00.byte $00; [5]: [0288]00.byte $00; [6]: [0289]00.byte $00; [7]:; ; XREFS: ; Screen_LoadBlockDataVert ; Screen_WriteBlockAttrsRowToPPU ;[028a]Screen_ScrollVertPPUAttrData: [028a]00.byte $00; [0]:; ; XREFS: ; Screen_LoadBlockDataVert ; Screen_WriteBlockAttrsRowToPPU ;[028b]Screen_ScrollVertPPUAttrData_1_: [028b]00.byte $00; [1]: [028c]00.byte $00; [2]: [028d]00.byte $00; [3]: [028e]00.byte $00; [4]: [028f]00.byte $00; [5]: [0290]00.byte $00; [6]: [0291]00.byte $00; [7]: [0292]00.byte $00; undefined; ; XREFS: ; PasswordScreen_Show ; SplashAnimation_DrawScenery ; PPUBuffer_DrawCommand_WritePalette ;[0293]Screen_PaletteData_Tiles: [0293]00.byte $00; [0]:; ; XREFS: ; PPUBuffer_DrawCommand_WritePalette ;[0294]Screen_PaletteData_Tiles_1_: [0294]00.byte $00; [1]: [0295]00.byte $00; [2]: [0296]00.byte $00; [3]: [0297]00.byte $00; [4]: [0298]00.byte $00; [5]: [0299]00.byte $00; [6]: [029a]00.byte $00; [7]: [029b]00.byte $00; [8]: [029c]00.byte $00; [9]: [029d]00.byte $00; [10]: [029e]00.byte $00; [11]: [029f]00.byte $00; [12]: [02a0]00.byte $00; [13]: [02a1]00.byte $00; [14]:; ; XREFS: ; Screen_SetFadeOutPalette ;[02a2]Screen_PaletteData_Tiles_15_: [02a2]00.byte $00; [15]:; ; XREFS: ; StartScreen_Draw ;[02a3]Screen_PaletteData_Sprites: [02a3]00.byte $00; [0]: [02a4]00.byte $00; [1]: [02a5]00.byte $00; [2]: [02a6]00.byte $00; [3]: [02a7]00.byte $00; [4]: [02a8]00.byte $00; [5]: [02a9]00.byte $00; [6]: [02aa]00.byte $00; [7]: [02ab]00.byte $00; [8]: [02ac]00.byte $00; [9]: [02ad]00.byte $00; [10]: [02ae]00.byte $00; [11]: [02af]00.byte $00; [12]: [02b0]00.byte $00; [13]:; ; XREFS: ; SplashAnimation_Intro_SomethingA708 ; Screen_SetPaletteData ;[02b1]Screen_PaletteData_Sprites_14_: [02b1]00.byte $00; [14]:; ; XREFS: ; SplashAnimation_Intro_SomethingA708 ; Screen_SetPaletteData ;[02b2]Screen_PaletteData_Sprites_15_: [02b2]00.byte $00; [15]:;============================================================================ ; Magic-related variables. ; ; XREFS: ; CastMagic_CheckDirection_CheckImpassable ; CastMagic_CheckDirection_Right ; CastMagic_Clear ; CastMagic_HitHandler_Death ; CastMagic_HitHandler_Deluge ; CastMagic_HitHandler_Fire ; CastMagic_HitHandler_Thunder ; CastMagic_HitHandler_Tilte ; CastMagic_RunSpellHandler ; CastMagic_Unused_UpdateDelugeAfterFirstHit ; CastMagic_Unused_UpdateHitWallEffect ; CastMagic_UpdateDeathAfterFirstHit ; CastMagic_UpdateDeluge ; CastMagic_UpdateFire ; CastMagic_UpdateFireAfterFirstHit ; CastMagic_UpdateThunderAfterFirstHit ; CastMagic_UpdateTilteAfterFirstHit ; CastMagic_UpdateXPosition ; Player_CastMagic ; Player_ClearVisibleMagic ; Sprite_CheckHitByCastMagic ; Area_ScrollTo ; CastMagic_RunUpdateSpellHandler ; CastMagic_SetAppearance ;============================================================================; ; The type of magic currently on screen. ; ; This may also contain results of a spell, including ; explosion effects. ; ; ; XREFS: ; CastMagic_CheckDirection_CheckImpassable ; CastMagic_CheckDirection_Right ; CastMagic_Clear ; CastMagic_HitHandler_Death ; CastMagic_HitHandler_Deluge ; CastMagic_HitHandler_Fire ; CastMagic_HitHandler_Thunder ; CastMagic_HitHandler_Tilte ; CastMagic_RunSpellHandler ; CastMagic_Unused_UpdateDelugeAfterFirstHit ; CastMagic_Unused_UpdateHitWallEffect ; CastMagic_UpdateDeathAfterFirstHit ; CastMagic_UpdateDeluge ; CastMagic_UpdateFire ; CastMagic_UpdateFireAfterFirstHit ; CastMagic_UpdateThunderAfterFirstHit ; CastMagic_UpdateTilteAfterFirstHit ; CastMagic_UpdateXPosition ; Player_CastMagic ; Player_ClearVisibleMagic ; Sprite_CheckHitByCastMagic ; Area_ScrollTo ; CastMagic_RunUpdateSpellHandler ; CastMagic_SetAppearance ;[02b3]CastMagic_Type: [02b3]00.byte $00; SelectedMagic; ; Flags dictating direction and movement for a cast magic spell. ; ; ; XREFS: ; CastMagic_UpdateFire ; CastMagic_UpdateTilte ; CastMagic_UpdateXPosition ; CastMagic_UpdateYPosition ; Player_CastMagic ; Sprite_CheckHitByCastMagic ; CastMagic_CalculateVisibility ; CastMagic_UpdateSpriteDirection ;[02b4]CastMagic_Flags: [02b4]00.byte $00; CastMagicFlags; ; The fractional (lower byte) X position of any visible magic. ; ; ; XREFS: ; CastMagic_UpdateXPosition ; Player_CastMagic ;[02b5]CastMagic_XPos_Frac: [02b5]00.byte $00; byte; ; The block (upper byte) X position of any visible magic. ; ; ; XREFS: ; CastMagic_CheckDirection_Left ; CastMagic_CheckDirection_Right ; CastMagic_HitHandler_Deluge ; CastMagic_UpdateFire ; CastMagic_UpdateXPosition ; Player_CastMagic ; Sprite_CheckHitByCastMagic ; CastMagic_CalculateVisibility ; CastMagic_FinishHandler_TilteAfterFirstHit ; CastMagic_RunUpdateSpellHandler ;[02b6]CastMagic_XPos_Full: [02b6]00.byte $00; byte; ; The fractional (lower byte) Y position of any visible magic. ; ; ; XREFS: ; CastMagic_UpdateYPosition ; Player_CastMagic ;[02b7]CastMagic_YPos_Frac: [02b7]00.byte $00; byte; ; The block (upper byte) Y position of any visible magic. ; ; ; XREFS: ; CastMagic_CheckDirection_CheckImpassable ; CastMagic_UpdateYPosition ; Player_CastMagic ; Sprite_CheckHitByCastMagic ; CastMagic_CalculateVisibility ; CastMagic_FinishHandler_HitWallEffect ; CastMagic_FinishHandler_TilteAfterFirstHit ; CastMagic_RunUpdateSpellHandler ;[02b8]CastMagic_YPos_Full: [02b8]00.byte $00; byte; ; XREFS: ; CastMagic_HitHandler_Deluge ; CastMagic_HitHandler_Fire ; CastMagic_HitHandler_Thunder ; CastMagic_HitHandler_Tilte ; CastMagic_Unused_UpdateDelugeAfterFirstHit ; CastMagic_UpdateFireAfterFirstHit ; CastMagic_UpdateThunderAfterFirstHit ; CastMagic_UpdateTilte ; CastMagic_UpdateTilteAfterFirstHit ; Player_CastMagic ; CastMagic_FinishHandler_TilteAfterFirstHit ;[02b9]CastMagic_Counter: [02b9]00.byte $00; byte; ; The phase of the current spell. ; ; This is spell-dependent. ; ; ; XREFS: ; CastMagic_UpdateTilte ; Player_CastMagic ; CastMagic_FinishHandler_Tilte ;[02ba]CastMagic_Phase: [02ba]00.byte $00; byte; ; Relative Y position used for the magic's Hit Wall effect. ; ; This is set but never actually used in Faxanadu. The game ; wired it off, but it was intended for the Deluge and Fire ; spells. It would be the center Y position of the explosion ; relative to the magic's Y position. ; ; It can be enabled via these Game Genie codes: ; ; ZAVLOUNN ; ZEUUSUNN ; ; ; XREFS: ; CastMagic_UpdateDeluge ; CastMagic_UpdateFire ; CastMagic_FinishHandler_HitWallEffect ;[02bb]CastMagic_Unused_HitWallDeltaPosY: [02bb]00.byte $00; byte; ; XREFS: ; Sprite_AddPosX ; Sprite_SubtractPosX ;[02bc]CurrentSprites_XPos_Frac: [02bc]00.byte $00; [0]: [02bd]00.byte $00; [1]: [02be]00.byte $00; [2]: [02bf]00.byte $00; [3]: [02c0]00.byte $00; [4]: [02c1]00.byte $00; [5]: [02c2]00.byte $00; [6]: [02c3]00.byte $00; [7]:; ; XREFS: ; Sprite_CalculateNewVertPos ;[02c4]CurrentSprites_YPos_Frac: [02c4]00.byte $00; [0]: [02c5]00.byte $00; [1]: [02c6]00.byte $00; [2]: [02c7]00.byte $00; [3]: [02c8]00.byte $00; [4]: [02c9]00.byte $00; [5]: [02ca]00.byte $00; [6]: [02cb]00.byte $00; [7]:;============================================================================ ; Sprite IDs of the 8 active sprites ; ; XREFS: ; BScript_Action_CastMagic ; CurrentSprite_CheckHitPlayer ; CurrentSprite_HandleFall ; CurrentSprite_UpdateState ; FUN_PRG14__a1cc ; Player_AddExperienceFromSprite ; Player_ApplyDamage ; Player_CheckShieldHitByMagic ; Player_HandleHitByMagic ; Player_HandleShieldHitByMagic ; Player_HandleTouchBreadOrCoin ; Player_HandleTouchEnemy ; Player_HandleTouchEnemyMagic ; Player_HandleTouchItem ; Player_HitEnemyWithMagic ; Player_HitSpriteWithWeapon ; SpriteBehavior_BossDeath ; SpriteBehavior_EnemyDeath ; SpriteBehavior_EnemyMagic ; SpriteBehavior_EnemyUnused18__9991 ; SpriteBehavior_ExecutionHood__a0ad ; SpriteBehavior_Garbled3 ; SpriteBehavior_MaybeFallingRocks__ClearEntity ; SpriteBehavior_Pakukame ; SpriteBehavior_ShadowEura__a12d ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Zorugeriru__9e13 ; SpriteBehavior_a25f_ClearEntity ; Sprite_CastMagic ; Sprite_CheckHitByCastMagic ; Sprite_EnterNextAppearancePhase ; Sprite_GetBounds ; Sprite_Maybe_ResetState ; Sprite_ReplaceWithDroppedItem ; Sprite_ReplaceWithMattock ; Sprite_SetDeathEntity ; Sprites_HasAnyEnemyOnScreen ; Sprites_IsSpriteOutOfWeaponRange ; Sprites_Remove ; Sprites_UpdateBehavior ;============================================================================; ; XREFS: ; BScript_Action_CastMagic ; CurrentSprite_CheckHitPlayer ; CurrentSprite_HandleFall ; CurrentSprite_UpdateState ; FUN_PRG14__a1cc ; Player_AddExperienceFromSprite ; Player_ApplyDamage ; Player_CheckShieldHitByMagic ; Player_HandleHitByMagic ; Player_HandleShieldHitByMagic ; Player_HandleTouchBreadOrCoin ; Player_HandleTouchEnemy ; Player_HandleTouchEnemyMagic ; Player_HandleTouchItem ; Player_HitEnemyWithMagic ; Player_HitSpriteWithWeapon ; SpriteBehavior_BossDeath ; SpriteBehavior_EnemyDeath ; SpriteBehavior_EnemyMagic ; SpriteBehavior_EnemyUnused18__9991 ; SpriteBehavior_ExecutionHood__a0ad ; SpriteBehavior_Garbled3 ; SpriteBehavior_MaybeFallingRocks__ClearEntity ; SpriteBehavior_Pakukame ; SpriteBehavior_ShadowEura__a12d ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Zorugeriru__9e13 ; SpriteBehavior_a25f_ClearEntity ; Sprite_CastMagic ; Sprite_CheckHitByCastMagic ; Sprite_EnterNextAppearancePhase ; Sprite_GetBounds ; Sprite_Maybe_ResetState ; Sprite_ReplaceWithDroppedItem ; Sprite_ReplaceWithMattock ; Sprite_SetDeathEntity ; Sprites_HasAnyEnemyOnScreen ; Sprites_IsSpriteOutOfWeaponRange ; Sprites_Remove ; Sprites_UpdateBehavior ;[02cc]CurrentSprites_Entities: [02cc]00.byte $00; [0]: [02cd]00.byte $00; [1]: [02ce]00.byte $00; [2]: [02cf]00.byte $00; [3]: [02d0]00.byte $00; [4]: [02d1]00.byte $00; [5]:; ; XREFS: ; SpriteBehavior_Pakukame__9d78 ; SpriteBehavior_Zorugeriru__9df7 ; Sprites_ClearAllEntities ; Sprites_HasAnyEnemyOnScreen ; Sprites_HasMaxOnScreen ; _Sprites_ReplaceWithMattock_HasMaxOnScreen ; GameLoop_LoadSpriteImages ; Maybe_IsSpriteEntityNotOnScreen ; Screen_ClearSprites ; Sprites_HasBoss ; Sprites_HasCurrentSprites ; Sprites_HasSpritesNotOfType ; Sprites_PopulateNextAvailableSprite ;[02d2]CurrentSprites_Entities_6_: [02d2]00.byte $00; [6]:; ; XREFS: ; SpriteBehavior_Pakukame__9d78 ; SpriteBehavior_Zorugeriru__9df7 ; Sprites_ClearAllEntities ; Sprites_HasAnyEnemyOnScreen ; Sprites_HasMaxOnScreen ; _Sprites_ReplaceWithMattock_HasMaxOnScreen ; GameLoop_LoadSpriteImages ; Maybe_IsSpriteEntityNotOnScreen ; Screen_ClearSprites ; Sprites_HasBoss ; Sprites_HasCurrentSprites ; Sprites_HasSpritesNotOfType ; Sprites_PopulateNextAvailableSprite ;[02d3]CurrentSprites_Entities_7_: [02d3]00.byte $00; [7]:;============================================================================ ; Subtype of the currently-active sprites ; ; XREFS: ; BScript_Op_GoTo ; BScript_Op_MaybeDisableAndGoTo ; BScript_Op_RunAction ; BScript_Op_SetPhase ; BScript_Op_SwitchBehavior ; BScripts_LoadNextOp ; SpriteOp_CheckDistanceToPlayer_X ; SpriteOp_CheckDistanceToPlayer_Y ; Sprite_FinishBehavior ; Sprite_Maybe_ResetState ; Sprite_ReplaceWithDroppedItem ; Sprite_ReplaceWithMattock ; Sprite_SetDeathEntity ; Sprites_UpdateBehavior ;============================================================================; ; XREFS: ; BScript_Op_GoTo ; BScript_Op_MaybeDisableAndGoTo ; BScript_Op_RunAction ; BScript_Op_SetPhase ; BScript_Op_SwitchBehavior ; BScripts_LoadNextOp ; SpriteOp_CheckDistanceToPlayer_X ; SpriteOp_CheckDistanceToPlayer_Y ; Sprite_FinishBehavior ; Sprite_Maybe_ResetState ; Sprite_ReplaceWithDroppedItem ; Sprite_ReplaceWithMattock ; Sprite_SetDeathEntity ; Sprites_UpdateBehavior ;[02d4]CurrentSprites_Behaviors: [02d4]00.byte $00; [0]: [02d5]00.byte $00; [1]: [02d6]00.byte $00; [2]: [02d7]00.byte $00; [3]: [02d8]00.byte $00; [4]: [02d9]00.byte $00; [5]:; ; XREFS: ; Screen_ClearSprites ;[02da]CurrentSprites_Behaviors_6_: [02da]00.byte $00; [6]:; ; XREFS: ; Screen_ClearSprites ; Sprites_PopulateNextAvailableSprite ;[02db]CurrentSprites_Behaviors_7_: [02db]00.byte $00; [7]:; ; XREFS: ; BScript_Action_CastMagic ; BScript_Action_FacePlayerX ; BScript_Action_FacePlayerY ; BScript_Action_FlipXDirection ; BScript_Action_FlipYDirection ; BScript_Action_RandomlyFlipXDirection ; BScript_Action_RandomlyFlipYDirection ; BScript_Action_RiseUp ; CurrentSpriteFlags_SetBit5 ; CurrentSprite_CalculateVisibility ; CurrentSprite_HandleFall ; CurrentSprite_UpdateFlipMask ; FUN_PRG14__844b ; FUN_PRG14__a1cc ; MoveSpriteHorizIfPossible ; MoveSpriteVerticalIfPossible ; Player_HitSpriteWithWeapon ; Player_SetDamagedBySprite ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_EnemyUnused43 ; SpriteBehavior_ExecutionHood__a0ad ; SpriteBehavior_Garbled3 ; SpriteBehavior_GiantBees ; SpriteBehavior_Hop ; SpriteBehavior_Ishiisu ; SpriteBehavior_KingGrieve ; SpriteBehavior_KingGrieve_9f65 ; SpriteBehavior_KingGrieve_MoveDown ; SpriteBehavior_Lilith ; SpriteBehavior_MoveTowardPlayer ; SpriteBehavior_Naga ; SpriteBehavior_NecronAides ; SpriteBehavior_Pakukame ; SpriteBehavior_Ripasheiku ; SpriteBehavior_Ripasheiku_CastMagicOrUpdatePos ; SpriteBehavior_ShadowEura__a077 ; SpriteBehavior_ShadowEura__a12d ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Something_850d ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Zorugeriru__9e13 ; SpriteBehavior__a8d7 ; SpriteBehavior__a91e ; Sprite_CalculateNewVertPos ; Sprite_CapToBlockOppositeFalling ; Sprite_CastMagic ; Sprite_CheckHitByCastMagic ; Sprite_ClearFlags ; Sprite_IsBehaviorNotReady ; Sprite_Maybe_AddFacingPosX ; Sprite_Maybe_ResetState ; Sprite_Maybe_TurnAroundIfAtScreenEdgeHoriz ; Sprite_Maybe_TurnAroundIfAtScreenEdgeVert ; Sprite_MoveForwardX ; Sprite_MoveHorizAndTurnAroundIfNeeded ; Sprite_MoveVertAndFlipIfNeeded ; Sprite_SetBehaviorNotReady ; Sprite_SetBehaviorReady ; Sprite_SetVisible ; Sprites_CheckPlacementInvalidAtY ; Sprites_HideSprite ; Sprites_IsSpriteHidden ; Sprites_SetCurrentSpriteCanMove ;[02dc]CurrentSprites_Flags: [02dc]00.byte $00; [0]: [02dd]00.byte $00; [1]: [02de]00.byte $00; [2]: [02df]00.byte $00; [3]: [02e0]00.byte $00; [4]: [02e1]00.byte $00; [5]: [02e2]00.byte $00; [6]:; ; XREFS: ; Sprites_PopulateNextAvailableSprite ;[02e3]CurrentSprites_Flags_7_: [02e3]00.byte $00; [7]:; ; XREFS: ; BScript_Op_GoTo ; BScript_Op_SetPhase ; BScript_Op_SwitchBehavior ; FUN_PRG14__9693 ; FUN_PRG14__9699 ; FUN_PRG14__9917 ; FUN_PRG14__9a3c ; FUN_PRG14__9a61 ; FUN_PRG14__9ac6 ; Player_HandleTouchEnemy ; Player_HitEnemyWithMagic ; Player_HitSpriteWithWeapon ; SpriteBehavior_BattleHelmetDroppedByZoradohna ; SpriteBehavior_BattleSuitDroppedByZoradohna ; SpriteBehavior_BlackOnyxDropFromZoradohna ; SpriteBehavior_Borabohra ; SpriteBehavior_BossDeath ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_BuzzAround ; SpriteBehavior_DragonSlayerDroppedByKingGrieve ; SpriteBehavior_EnemyUnused18 ; SpriteBehavior_EnemyUnused18__994a ; SpriteBehavior_EnemyUnused36 ; SpriteBehavior_EnemyUnused39 ; SpriteBehavior_EnemyUnused43 ; SpriteBehavior_ExecutionHood ; SpriteBehavior_Garbled3 ; SpriteBehavior_GiantBees ; SpriteBehavior_Ishiisu ; SpriteBehavior_KingGrieve ; SpriteBehavior_KingGrieve_9f86 ; SpriteBehavior_KingGrieve_MoveDown ; SpriteBehavior_Lilith ; SpriteBehavior_Magman ; SpriteBehavior_MattockDroppedFromRipasheiku ; SpriteBehavior_Naga ; SpriteBehavior_Nash ; SpriteBehavior_NecronAides ; SpriteBehavior_Pakukame ; SpriteBehavior_PendantDroppedFromRipasheiku ; SpriteBehavior_Ripasheiku ; SpriteBehavior_Ripasheiku_CastMagicOrUpdatePos ; SpriteBehavior_ShadowEura ; SpriteBehavior_SirGawaineWolfman ; SpriteBehavior_SpringOfFortress ; SpriteBehavior_SpringOfJoker ; SpriteBehavior_SpringOfSky ; SpriteBehavior_Springs_UpdateFlowing ; SpriteBehavior_Tamazutsu ; SpriteBehavior_WingBootsDroppedByZorugeriru ; SpriteBehavior_Yareeka ; SpriteBehavior_Zorugeriru ; SpriteBehavior_Zorugeriru__9e13 ; SpriteUpdateHandler_Boss_Borabohra ; SpriteUpdateHandler_Boss_KingGrieve ; SpriteUpdateHandler_Boss_Pakukame ; SpriteUpdateHandler_Boss_Ripasheiku ; SpriteUpdateHandler_Boss_Zorugeriru ; SpriteUpdateHandler_Effect_BossDeath ; SpriteUpdateHandler_Effect_Spring ; SpriteUpdateHandler_Enemy_Charron ; SpriteUpdateHandler_Enemy_ExecutionHood ; SpriteUpdateHandler_Enemy_FireGiant ; SpriteUpdateHandler_Enemy_Geributa ; SpriteUpdateHandler_Enemy_GiantStrider ; SpriteUpdateHandler_Enemy_Grimlock ; SpriteUpdateHandler_Enemy_Ishiisu ; SpriteUpdateHandler_Enemy_Magman ; SpriteUpdateHandler_Enemy_Maskman ; SpriteUpdateHandler_Enemy_Myconid ; SpriteUpdateHandler_Enemy_Nash ; SpriteUpdateHandler_Enemy_NecronAides ; SpriteUpdateHandler_Enemy_Raiden ; SpriteUpdateHandler_Enemy_SirGawaine_Wolfman ; SpriteUpdateHandler_Enemy_Snowman ; SpriteUpdateHandler_Enemy_Tamazutsu ; SpriteUpdateHandler_Enemy_Unused29 ; SpriteUpdateHandler_Enemy_Unused_CurlyTail ; SpriteUpdateHandler_Garbled03 ; SpriteUpdateHandler_NPC_King ; SpriteUpdateHandler_NPC_Walking ; Sprite_GetBounds ; Sprite_GetPreviousSpritePhase ; Sprite_Maybe_ResetState ; Sprite_SetPhase2 ; Sprites_MaybeResetPhaseAndEnable ;[02e4]CurrentSprites_Phases: [02e4]00.byte $00; [0]: [02e5]00.byte $00; [1]: [02e6]00.byte $00; [2]: [02e7]00.byte $00; [3]: [02e8]00.byte $00; [4]: [02e9]00.byte $00; [5]: [02ea]00.byte $00; [6]:; ; XREFS: ; Sprites_PopulateNextAvailableSprite ;[02eb]CurrentSprites_Phases_7_: [02eb]00.byte $00; [7]:; ; XREFS: ; FUN_PRG14__9593 ; FUN_PRG14__9699 ; FUN_PRG14__9917 ; FUN_PRG14__9a61 ; FUN_PRG14__9a87 ; FUN_PRG14__9aa1 ; FUN_PRG14__9ac6 ; LAB_PRG14__9735 [$PRG14::9735] ; Maybe_SpriteBody__99f3 ; SpriteBehavior_Bihoruda ; SpriteBehavior_Borabohra ; SpriteBehavior_BossDeath ; SpriteBehavior_BuzzAround ; SpriteBehavior_EnemyDeath ; SpriteBehavior_EnemyUnused18__994a ; SpriteBehavior_EnemyUnused18__9991 ; SpriteBehavior_EnemyUnused36 ; SpriteBehavior_EnemyUnused39 ; SpriteBehavior_ExecutionHood ; SpriteBehavior_FlashScreenHitPlayer ; SpriteBehavior_Garbled3 ; SpriteBehavior_GiantBees ; SpriteBehavior_Ishiisu ; SpriteBehavior_KingGrieve ; SpriteBehavior_KingGrieve_9f86 ; SpriteBehavior_KingGrieve_MoveDown ; SpriteBehavior_Lilith ; SpriteBehavior_Magman ; SpriteBehavior_MoveTowardPlayer ; SpriteBehavior_Nash ; SpriteBehavior_NecronAides ; SpriteBehavior_Pakukame ; SpriteBehavior_Ripasheiku ; SpriteBehavior_Ripasheiku_CastMagicOrUpdatePos ; SpriteBehavior_ShadowEura ; SpriteBehavior_Springs_UpdateFlowing ; SpriteBehavior_Tamazutsu ; SpriteBehavior_WalkForward ; SpriteBehavior_Yareeka ; SpriteBehavior_Yuinaru ; SpriteBehavior_Zorugeriru ; SpriteBehavior__8f9a [$PRG14::8f9a] ; SpriteBehavior__a8d7 ; SpriteBehavior__a91e ; SpriteUpdateHandler_Boss_Borabohra ; SpriteUpdateHandler_Effect_EnemyDeath ; SpriteUpdateHandler_Effect_LightningBall20 ; SpriteUpdateHandler_Effect_Spring ; SpriteUpdateHandler_Enemy_Bihoruda ; SpriteUpdateHandler_Enemy_Ishiisu ; SpriteUpdateHandler_Enemy_Nash ; SpriteUpdateHandler_Enemy_Tamazutsu ; SpriteUpdateHandler_Enemy_Yuinaru ; SpriteUpdateHandler_Garbled03 ; Sprite_SetDeathEntity ;[02ec]CurrentSprites_BehaviorData2: [02ec]00.byte $00; [0]: [02ed]00.byte $00; [1]: [02ee]00.byte $00; [2]: [02ef]00.byte $00; [3]: [02f0]00.byte $00; [4]: [02f1]00.byte $00; [5]: [02f2]00.byte $00; [6]: [02f3]00.byte $00; [7]:;============================================================================ ; Tick counter used for some behaviors. ; ; XREFS: ; FUN_PRG14__9917 ; FUN_PRG14__9aa1 ; FUN_PRG14__9ac6 ; LAB_PRG14__8fb7 [$PRG14::8fb7] ; SpriteBehavior_Bihoruda ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_EnemyUnused18 ; SpriteBehavior_EnemyUnused36 ; SpriteBehavior_EnemyUnused43 ; SpriteBehavior_ExecutionHood ; SpriteBehavior_Garbled3 ; SpriteBehavior_GiantBees ; SpriteBehavior_Hop ; SpriteBehavior_KingGrieve ; SpriteBehavior_KingGrieve_9f86 ; SpriteBehavior_Lilith ; SpriteBehavior_MoveTowardPlayer ; SpriteBehavior_Naga ; SpriteBehavior_NecronAides ; SpriteBehavior_Ripasheiku ; SpriteBehavior_Ripasheiku_CastMagicOrUpdatePos ; SpriteBehavior_ShadowEura ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Springs_UpdateFlowing ; SpriteBehavior_WalkForward ; SpriteBehavior_Yuinaru ; SpriteBehavior__a8d7 ; SpriteBehavior__a91e ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ;============================================================================; ; XREFS: ; FUN_PRG14__9917 ; FUN_PRG14__9aa1 ; FUN_PRG14__9ac6 ; LAB_PRG14__8fb7 [$PRG14::8fb7] ; SpriteBehavior_Bihoruda ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_EnemyUnused18 ; SpriteBehavior_EnemyUnused36 ; SpriteBehavior_EnemyUnused43 ; SpriteBehavior_ExecutionHood ; SpriteBehavior_Garbled3 ; SpriteBehavior_GiantBees ; SpriteBehavior_Hop ; SpriteBehavior_KingGrieve ; SpriteBehavior_KingGrieve_9f86 ; SpriteBehavior_Lilith ; SpriteBehavior_MoveTowardPlayer ; SpriteBehavior_Naga ; SpriteBehavior_NecronAides ; SpriteBehavior_Ripasheiku ; SpriteBehavior_Ripasheiku_CastMagicOrUpdatePos ; SpriteBehavior_ShadowEura ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Springs_UpdateFlowing ; SpriteBehavior_WalkForward ; SpriteBehavior_Yuinaru ; SpriteBehavior__a8d7 ; SpriteBehavior__a91e ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ;[02f4]CurrentSprites_BehaviorData3: [02f4]00.byte $00; [0]: [02f5]00.byte $00; [1]: [02f6]00.byte $00; [2]: [02f7]00.byte $00; [3]: [02f8]00.byte $00; [4]: [02f9]00.byte $00; [5]: [02fa]00.byte $00; [6]: [02fb]00.byte $00; [7]:;============================================================================ ; XXX Some lookup map. ; ; XREFS: ; FUN_PRG14__9aa1 ; Maybe_SpriteBody__99f3 ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_EnemyUnused18__994a ; SpriteBehavior_EnemyUnused18__9991 ; SpriteBehavior_Hop ; SpriteBehavior_Lilith ; SpriteBehavior_Ripasheiku ; SpriteBehavior_ShadowEura ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Unknown_29 ; SpriteUpdateHandler_Boss_ShadowEura ; SpriteUpdateHandler_Coin ; SpriteUpdateHandler_Magic_83 ; Sprite_RunDeathDropHandler ; Sprite_SetDeathEntity ;============================================================================; ; XREFS: ; FUN_PRG14__9aa1 ; Maybe_SpriteBody__99f3 ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_EnemyUnused18__994a ; SpriteBehavior_EnemyUnused18__9991 ; SpriteBehavior_Hop ; SpriteBehavior_Lilith ; SpriteBehavior_Ripasheiku ; SpriteBehavior_ShadowEura ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Unknown_29 ; SpriteUpdateHandler_Boss_ShadowEura ; SpriteUpdateHandler_Coin ; SpriteUpdateHandler_Magic_83 ; Sprite_RunDeathDropHandler ; Sprite_SetDeathEntity ;[02fc]CurrentSprites_InternalBehaviorStates: [02fc]00.byte $00; [0]: [02fd]00.byte $00; [1]: [02fe]00.byte $00; [2]: [02ff]00.byte $00; [3]:; ; XREFS: ; Game_Init ;[0300]CurrentSprites_InternalBehaviorStates_4_: [0300]00.byte $00; [4]: [0301]00.byte $00; [5]: [0302]00.byte $00; [6]: [0303]00.byte $00; [7]:; ; XREFS: ; CurrentSprite_CanMoveInDirection ; DEADCODE_Sprites_CanMoveDownBelowHitbox ; FUN_PRG14__9917 ; SpriteBehavior_Borabohra ; SpriteBehavior_Garbled3 ; SpriteBehavior_KingGrieve ; SpriteBehavior_Pakukame ; SpriteBehavior_Ripasheiku ; SpriteBehavior_ShadowEura ; SpriteBehavior_Zorugeriru ; Sprite_CalcDistanceXToPlayer ; Sprite_CheckHitByCastMagic ; Sprite_Maybe_ResetState ; Sprite_ReplaceWithDroppedItem ; Sprite_ReplaceWithMattock ; Sprites_CanMoveDownByHitbox ; Sprites_MoveRight ; Sprites_MoveRight__86c6 ;[0304]CurrentSprites_HitBoxTypes: [0304]00.byte $00; [0]: [0305]00.byte $00; [1]:; ; XREFS: ; Screen_LoadBlockDataVert ;[0306]CurrentSprites_HitBoxTypes_2_: [0306]00.byte $00; [2]:; ; XREFS: ; Screen_LoadBlockDataVert ;[0307]CurrentSprites_HitBoxTypes_3_: [0307]00.byte $00; [3]: [0308]00.byte $00; [4]: [0309]00.byte $00; [5]: [030a]00.byte $00; [6]:; ; XREFS: ; Sprites_PopulateNextAvailableSprite ;[030b]CurrentSprites_HitBoxTypes_7_: [030b]00.byte $00; [7]:;============================================================================ ; XXX Some lookup map. ; ; XREFS: ; FUN_PRG14__8398 ; FUN_PRG14__83a8 ; SpriteBehavior_Hop ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Unknown_29_SomeSetup ;============================================================================; ; XREFS: ; FUN_PRG14__8398 ; FUN_PRG14__83a8 ; SpriteBehavior_Hop ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Unknown_29_SomeSetup ;[030c]CurrentSprites_BehaviorState_XFull: [030c]00.byte $00; [0]: [030d]00.byte $00; [1]: [030e]00.byte $00; [2]: [030f]00.byte $00; [3]: [0310]00.byte $00; [4]: [0311]00.byte $00; [5]: [0312]00.byte $00; [6]: [0313]00.byte $00; [7]:;============================================================================ ; XXX Some lookup map. ; ; XREFS: ; FUN_PRG14__8398 ; FUN_PRG14__83a8 ; SpriteBehavior_MoveVertically ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Unknown_29_SomeSetup ;============================================================================; ; XREFS: ; FUN_PRG14__8398 ; FUN_PRG14__83a8 ; SpriteBehavior_MoveVertically ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Unknown_29_SomeSetup ;[0314]CurrentSprites_BehaviorState_YFull: [0314]00.byte $00; [0]: [0315]00.byte $00; [1]: [0316]00.byte $00; [2]: [0317]00.byte $00; [3]: [0318]00.byte $00; [4]: [0319]00.byte $00; [5]: [031a]00.byte $00; [6]: [031b]00.byte $00; [7]:;============================================================================ ; XXX Some sprites lookup map. ; ; XREFS: ; FUN_PRG14__8398 ; FUN_PRG14__83a8 ; SpriteBehavior_Hop ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Unknown_29_SomeSetup ;============================================================================; ; XREFS: ; FUN_PRG14__8398 ; FUN_PRG14__83a8 ; SpriteBehavior_Hop ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Unknown_29_SomeSetup ;[031c]CurrentSprites_BehaviorState_XFrac: [031c]00.byte $00; [0]: [031d]00.byte $00; [1]: [031e]00.byte $00; [2]: [031f]00.byte $00; [3]: [0320]00.byte $00; [4]: [0321]00.byte $00; [5]: [0322]00.byte $00; [6]: [0323]00.byte $00; [7]:;============================================================================ ; XXX Some lookup map. ; ; XREFS: ; FUN_PRG14__8398 ; FUN_PRG14__83a8 ; SpriteBehavior_MoveVertically ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Unknown_29_SomeSetup ;============================================================================; ; XREFS: ; FUN_PRG14__8398 ; FUN_PRG14__83a8 ; SpriteBehavior_MoveVertically ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Unknown_29_SomeSetup ;[0324]CurrentSprites_BehaviorState_YFrac: [0324]00.byte $00; [0]: [0325]00.byte $00; [1]: [0326]00.byte $00; [2]: [0327]00.byte $00; [3]: [0328]00.byte $00; [4]: [0329]00.byte $00; [5]: [032a]00.byte $00; [6]: [032b]00.byte $00; [7]:;============================================================================ ; Loaded PPU offsets where the first tile of the sprite is stored. ; ; XREFS: ; BScript_Action_CastMagic ; CurrentSprite_UpdateState ; FUN_PRG14__a1cc ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_ExecutionHood__a0ad ; SpriteBehavior_Pakukame ; SpriteBehavior_ShadowEura__a12d ; SpriteBehavior_Zorugeriru__9e13 ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ; Sprite_CastMagic ; Sprite_ReplaceWithMattock ;============================================================================; ; XREFS: ; BScript_Action_CastMagic ; CurrentSprite_UpdateState ; FUN_PRG14__a1cc ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_ExecutionHood__a0ad ; SpriteBehavior_Pakukame ; SpriteBehavior_ShadowEura__a12d ; SpriteBehavior_Zorugeriru__9e13 ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ; Sprite_CastMagic ; Sprite_ReplaceWithMattock ;[032c]CurrentSprites_PPUOffsets: [032c]00.byte $00; [0]: [032d]00.byte $00; [1]: [032e]00.byte $00; [2]: [032f]00.byte $00; [3]: [0330]00.byte $00; [4]: [0331]00.byte $00; [5]: [0332]00.byte $00; [6]:; ; XREFS: ; GameLoop_LoadSpriteImages ;[0333]CurrentSprites_PPUOffsets_7_: [0333]00.byte $00; [7]:;============================================================================ ; Magic type the sprite was hit by ; ; $FF = Not hit by magic ; ; XREFS: ; SpriteBehavior_Zorugeriru__9e13 ; Sprite_CheckHitByCastMagic ; Sprite_Maybe_ResetState ; Sprite_RunDeathDropHandler ; Sprite_SetDeathEntity ; Sprites_Maybe_UpdateHitByMagic ;============================================================================; ; XREFS: ; SpriteBehavior_Zorugeriru__9e13 ; Sprite_CheckHitByCastMagic ; Sprite_Maybe_ResetState ; Sprite_RunDeathDropHandler ; Sprite_SetDeathEntity ; Sprites_Maybe_UpdateHitByMagic ;[0334]CurrentSprites_HitByMagicBehavior: [0334]00.byte $00; [0]: [0335]00.byte $00; [1]: [0336]00.byte $00; [2]: [0337]00.byte $00; [3]: [0338]00.byte $00; [4]: [0339]00.byte $00; [5]: [033a]00.byte $00; [6]:; ; XREFS: ; Sprites_PopulateNextAvailableSprite ;[033b]CurrentSprites_HitByMagicBehavior_7_: [033b]00.byte $00; [7]:; ; XREFS: ; Sprite_CheckHitByCastMagic ; Sprites_Maybe_UpdateHitByMagic ;[033c]CurrentSprites_HitByMagicIFrames: [033c]00.byte $00; [0]: [033d]00.byte $00; [1]: [033e]00.byte $00; [2]: [033f]00.byte $00; [3]: [0340]00.byte $00; [4]: [0341]00.byte $00; [5]: [0342]00.byte $00; [6]: [0343]00.byte $00; [7]: [0344]CurrentSprites_HP: [0344]00.byte $00; [0]: [0345]00.byte $00; [1]: [0346]00.byte $00; [2]: [0347]00.byte $00; [3]: [0348]00.byte $00; [4]: [0349]00.byte $00; [5]:; ; XREFS: ; Screen_ClearSprites ;[034a]CurrentSprites_HP_6_: [034a]00.byte $00; [6]:; ; XREFS: ; Screen_ClearSprites ; Sprites_PopulateNextAvailableSprite ;[034b]CurrentSprites_HP_7_: [034b]00.byte $00; [7]:;============================================================================ ; Counter used after sprite was hit ; ; XREFS: ; CurrentSprite_UpdateState ; Player_HitSpriteWithWeapon ; Sprite_RunDeathDropHandler ; _handleHit [$PRG14::804e] ;============================================================================; ; XREFS: ; CurrentSprite_UpdateState ; Player_HitSpriteWithWeapon ; Sprite_RunDeathDropHandler ; _handleHit [$PRG14::804e] ;[034c]CurrentSprites_HitCounter: [034c]00.byte $00; [0]: [034d]00.byte $00; [1]: [034e]00.byte $00; [2]: [034f]00.byte $00; [3]: [0350]00.byte $00; [4]: [0351]00.byte $00; [5]:; ; XREFS: ; Screen_ClearSprites ;[0352]CurrentSprites_HitCounter_6_: [0352]00.byte $00; [6]:; ; XREFS: ; _handleHit [$PRG14::804e] ; Screen_ClearSprites ;[0353]CurrentSprites_HitCounter_7_: [0353]00.byte $00; [7]:; ; XREFS: ; Sprite_Maybe_ResetState ; Sprite_ReplaceWithDroppedItem ; Sprite_ReplaceWithMattock ; Sprite_SetDeathEntity ; Sprites_UpdateBehavior ;[0354]CurrentSprites_BehaviorAddrs_L: [0354]00.byte $00; [0]: [0355]00.byte $00; [1]: [0356]00.byte $00; [2]: [0357]00.byte $00; [3]: [0358]00.byte $00; [4]: [0359]00.byte $00; [5]: [035a]00.byte $00; [6]:; ; XREFS: ; Sprites_PopulateNextAvailableSprite ;[035b]CurrentSprites_BehaviorAddrs_L_7_: [035b]00.byte $00; [7]:; ; XREFS: ; Sprite_Maybe_ResetState ; Sprite_ReplaceWithDroppedItem ; Sprite_ReplaceWithMattock ; Sprite_SetDeathEntity ; Sprites_UpdateBehavior ;[035c]CurrentSprites_BehaviorAddrs_U: [035c]00.byte $00; [0]: [035d]00.byte $00; [1]: [035e]00.byte $00; [2]: [035f]00.byte $00; [3]: [0360]00.byte $00; [4]: [0361]00.byte $00; [5]: [0362]00.byte $00; [6]:; ; XREFS: ; Sprites_PopulateNextAvailableSprite ;[0363]CurrentSprites_BehaviorAddrs_U_7_: [0363]00.byte $00; [7]: [0364]CurrentSprites_BehaviorArg1: [0364]00.byte $00; [0]: [0365]00.byte $00; [1]: [0366]00.byte $00; [2]: [0367]00.byte $00; [3]: [0368]00.byte $00; [4]: [0369]00.byte $00; [5]: [036a]00.byte $00; [6]: [036b]00.byte $00; [7]:;============================================================================ ; Message IDs of the NPC messages ; ; XREFS: ; Player_CheckHandlePressUpOnNPC ; Player_HandleTouchBread ; Player_HandleTouchCoin ; Player_HandleTouchNPC ; Sprite_RunDeathDropHandler ; Sprites_LoadSpriteValue ;============================================================================; ; XREFS: ; Player_CheckHandlePressUpOnNPC ; Player_HandleTouchBread ; Player_HandleTouchCoin ; Player_HandleTouchNPC ; Sprite_RunDeathDropHandler ; Sprites_LoadSpriteValue ;[036c]CurrentSprites_Values: [036c]00.byte $00; [0]: [036d]00.byte $00; [1]: [036e]00.byte $00; [2]: [036f]00.byte $00; [3]: [0370]00.byte $00; [4]: [0371]00.byte $00; [5]: [0372]00.byte $00; [6]:; ; XREFS: ; Sprites_LoadSpriteValue ;[0373]CurrentSprites_Values_7_: [0373]00.byte $00; [7]:; ; XREFS: ; CastMagic_UpdateDeluge ; CastMagic_UpdateFire ; CastMagic_UpdateThunderOrDeath ; CastMagic_UpdateTilte ; CastMagic_UpdateXPosition ; FUN_PRG14__83a8 ; FUN_PRG14__848a ; SpriteBehavior_BuzzAround ; SpriteBehavior_EnemyMagic ; SpriteBehavior_EnemyUnused36 ; SpriteBehavior_EnemyUnused43 ; SpriteBehavior_ExecutionHood ; SpriteBehavior_GiantBees ; SpriteBehavior_Hop ; SpriteBehavior_Ishiisu ; SpriteBehavior_KingGrieve ; SpriteBehavior_Lilith ; SpriteBehavior_NecronAides ; SpriteBehavior_ShadowEura ; SpriteBehavior_SirGawaineWolfman ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_WalkForward ; SpriteBehavior_Yareeka ; SpriteBehavior__a91e ; Sprite_AddPosX ; Sprite_MoveHorizOneBlockOrTurnAround ; Sprite_SubtractPosX ; Sprites_CalcHorizSpriteMovement ; Sprites_Maybe_UpdateHitByMagic ;[0374]Arg_DeltaX_Frac: [0374]00.byte $00; byte; ; XREFS: ; CastMagic_UpdateDeluge ; CastMagic_UpdateFire ; CastMagic_UpdateThunderOrDeath ; CastMagic_UpdateTilte ; CastMagic_UpdateXPosition ; FUN_PRG14__83a8 ; FUN_PRG14__848a ; FUN_PRG14__9593 ; SpriteBehavior_Bihoruda ; SpriteBehavior_BuzzAround ; SpriteBehavior_EnemyMagic ; SpriteBehavior_EnemyUnused36 ; SpriteBehavior_EnemyUnused43 ; SpriteBehavior_ExecutionHood ; SpriteBehavior_GiantBees ; SpriteBehavior_Hop ; SpriteBehavior_Ishiisu ; SpriteBehavior_KingGrieve ; SpriteBehavior_Lilith ; SpriteBehavior_NecronAides ; SpriteBehavior_ShadowEura ; SpriteBehavior_SirGawaineWolfman ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_SomethingZoradohna_18 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_WalkForward ; SpriteBehavior_Yareeka ; SpriteBehavior_Yuinaru ; SpriteBehavior__a91e ; Sprite_AddPosX ; Sprite_MoveHorizOneBlockOrTurnAround ; Sprite_SubtractPosX ; Sprites_CalcHorizSpriteMovement ; Sprites_Maybe_UpdateHitByMagic ;[0375]Arg_DeltaX_Full: [0375]00.byte $00; byte; ; XREFS: ; CastMagic_UpdateTilte ; CastMagic_UpdateYPosition ; FUN_PRG14__83a8 ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_BuzzAround ; SpriteBehavior_EnemyUnused43 ; SpriteBehavior_GiantBees ; SpriteBehavior_KingGrieve_MoveDown ; SpriteBehavior_MoveVertically ; SpriteBehavior_Naga ; SpriteBehavior_NecronAides ; SpriteBehavior_Ripasheiku ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_Unknown_29 ; Sprite_CalculateNewVertPos ; Sprites_CalcVerticalSpriteMovement ;[0376]Arg_DeltaY_Frac: [0376]00.byte $00; byte; ; XREFS: ; CastMagic_UpdateTilte ; CastMagic_UpdateYPosition ; FUN_PRG14__83a8 ; SpriteBehavior_Bihoruda ; SpriteBehavior_BounceAndExpire ; SpriteBehavior_BuzzAround ; SpriteBehavior_EnemyUnused36 ; SpriteBehavior_EnemyUnused43 ; SpriteBehavior_ExecutionHood ; SpriteBehavior_GiantBees ; SpriteBehavior_KingGrieve_MoveDown ; SpriteBehavior_MoveVertically ; SpriteBehavior_Naga ; SpriteBehavior_NecronAides ; SpriteBehavior_Ripasheiku ; SpriteBehavior_SomethingEyeball_17 ; SpriteBehavior_Unknown_29 ; SpriteBehavior_Yuinaru ; Sprite_CalculateNewVertPos ; Sprites_CalcVerticalSpriteMovement ;[0377]Arg_DeltaY_Full: [0377]00.byte $00; byte;============================================================================ ; Currently-active sprite ; ; XREFS: ; BScript_Action_RandomlyFlipXDirection ; BScript_Action_RandomlyFlipYDirection ; CastMagic_HitHandler_Deluge ; CastMagic_HitHandler_Fire ; CurrentSprite_CalculateVisibility ; CurrentSprite_CanMoveInDirection ; CurrentSprite_CheckHitPlayer ; CurrentSprite_HandleFall ; CurrentSprite_UpdateState ; DEADCODE_FUN_PRG14__84f4 ; FUN_PRG14__9a61 ; LAB_PRG14__8043 [$PRG14::8043] ; MoveSpriteHorizIfPossible ; MoveSpriteVerticalIfPossible ; Player_AddExperienceFromSprite ; Player_CheckHandlePressUpOnNPC ; Player_CheckShieldHitByMagic ; Player_HandleHitByMagic ; Player_HandleShieldHitByMagic ; Player_HandleTouchBread ; Player_HandleTouchCoin ; Player_HandleTouchEnemyMagic ; Player_HandleTouchItem ; Player_HitSpriteWithWeapon ; SpriteBehavior_EnemyUnused18__9991 ; SpriteBehavior_FlashScreenHitPlayer ; SpriteBehavior_NecronAides ; SpriteBehavior_Pakukame ; SpriteBehavior_RestoreXRegister ; SpriteBehavior_Something_850d ; SpriteUpdateHandler_Effect_EnemyDeath ; SpriteUpdateHandler_Effect_LightningBall20 ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ; Sprite_CheckHitByCastMagic ; Sprite_HandleDeathDropIfPossible ; Sprites_HasAnyEnemyOnScreen ; Sprites_MoveRight__86c6 ; Sprites_SetBlockIsMovingResult ; Sprites_SetCurrentSpriteCanMove ; Sprites_UpdateAllStates ; Sprites_UpdateBehavior ; _afterFarJump [$PRG14::89ff] ; _updateSpriteLoop [$PRG14::8011] ; CastMagic_CalculateVisibility ; GameLoop_LoadSpriteImages ; Player_PickUpRedPotion ; Sprites_PopulateNextAvailableSprite ;============================================================================; ; XREFS: ; BScript_Action_RandomlyFlipXDirection ; BScript_Action_RandomlyFlipYDirection ; CastMagic_HitHandler_Deluge ; CastMagic_HitHandler_Fire ; CurrentSprite_CalculateVisibility ; CurrentSprite_CanMoveInDirection ; CurrentSprite_CheckHitPlayer ; CurrentSprite_HandleFall ; CurrentSprite_UpdateState ; DEADCODE_FUN_PRG14__84f4 ; FUN_PRG14__9a61 ; LAB_PRG14__8043 [$PRG14::8043] ; MoveSpriteHorizIfPossible ; MoveSpriteVerticalIfPossible ; Player_AddExperienceFromSprite ; Player_CheckHandlePressUpOnNPC ; Player_CheckShieldHitByMagic ; Player_HandleHitByMagic ; Player_HandleShieldHitByMagic ; Player_HandleTouchBread ; Player_HandleTouchCoin ; Player_HandleTouchEnemyMagic ; Player_HandleTouchItem ; Player_HitSpriteWithWeapon ; SpriteBehavior_EnemyUnused18__9991 ; SpriteBehavior_FlashScreenHitPlayer ; SpriteBehavior_NecronAides ; SpriteBehavior_Pakukame ; SpriteBehavior_RestoreXRegister ; SpriteBehavior_Something_850d ; SpriteUpdateHandler_Effect_EnemyDeath ; SpriteUpdateHandler_Effect_LightningBall20 ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ; Sprite_CheckHitByCastMagic ; Sprite_HandleDeathDropIfPossible ; Sprites_HasAnyEnemyOnScreen ; Sprites_MoveRight__86c6 ; Sprites_SetBlockIsMovingResult ; Sprites_SetCurrentSpriteCanMove ; Sprites_UpdateAllStates ; Sprites_UpdateBehavior ; _afterFarJump [$PRG14::89ff] ; _updateSpriteLoop [$PRG14::8011] ; CastMagic_CalculateVisibility ; GameLoop_LoadSpriteImages ; Player_PickUpRedPotion ; Sprites_PopulateNextAvailableSprite ;[0378]CurrentSpriteIndex: [0378]00.byte $00; byte; ; XREFS: ; FUN_PRG14__9917 ; Maybe_BodyHandler__9a57 ; Maybe_BodyHandler__9a7a ; Maybe_SpriteBody__99f3 ; SpriteBehavior_EnemyUnused18__9991 ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ;[0379]Sprite12BodyPartHandler: [0379]00.byte $00; [0]:; ; XREFS: ; FUN_PRG14__9917 ; Maybe_SpriteBody__99f3 ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ;[037a]Sprite12BodyPartHandler_1_: [037a]00.byte $00; [1]:; ; XREFS: ; FUN_PRG14__9917 ; Maybe_SpriteBody__99f3 ; SpriteBehavior_EnemyUnused18__994a ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ;[037b]Sprite12BodyPartHandler_2_: [037b]00.byte $00; [2]:; ; XREFS: ; FUN_PRG14__9917 ; SpriteBehavior_EnemyUnused18__9991 ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ;[037c]Sprite12BodyPartHandler_3_: [037c]00.byte $00; [3]:; ; XREFS: ; FUN_PRG14__9917 ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ;[037d]Sprite12BodyPartHandler_4_: [037d]00.byte $00; [4]:; ; XREFS: ; FUN_PRG14__9917 ; FUN_PRG14__9ac6 ; SpriteBehavior_EnemyUnused18__994a ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ;[037e]Sprite12BodyPartHandler_5_: [037e]00.byte $00; [5]:; ; XREFS: ; Player_HitSpriteWithWeapon ; Sprites_IsSpriteOutOfWeaponRange ;[037f]Something_Maybe_WeaponDistanceX: [037f]00.byte $00; byte; ; XREFS: ; Player_HitSpriteWithWeapon ; Sprites_IsSpriteOutOfWeaponRange ;[0380]Something_Maybe_WeaponDistanceY: [0380]00.byte $00; byte [0381]00 00.byte $00,$00; undefined; ; XREFS: ; FUN_PRG14__a2eb ; SpriteBehavior_KingGrieve_9f65 ; SpriteBehavior_NecronAides ; SpriteBehavior_Pakukame ; SpriteBehavior_Ripasheiku_CastMagicOrUpdatePos ; SpriteBehavior_SirGawaineWolfman ; SpriteBehavior_Unknown_29 ; SpriteUpdateHandler_Boss_Borabohra ; SpriteUpdateHandler_Boss_KingGrieve ; SpriteUpdateHandler_Boss_Ripasheiku ; SpriteUpdateHandler_Boss_Rokusutahn ; SpriteUpdateHandler_Boss_Zoradohna ; SpriteUpdateHandler_Boss_Zorugeriru ; SpriteUpdateHandler_Effect_EnemyDeath ; SpriteUpdateHandler_Effect_Fountain ; SpriteUpdateHandler_Effect_LightningBall20 ; SpriteUpdateHandler_EnemyMagic ; SpriteUpdateHandler_Enemy_Charron ; SpriteUpdateHandler_Enemy_ExecutionHood ; SpriteUpdateHandler_Enemy_FireGiant ; SpriteUpdateHandler_Enemy_Geributa ; SpriteUpdateHandler_Enemy_GiantBees ; SpriteUpdateHandler_Enemy_GiantStrider ; SpriteUpdateHandler_Enemy_Grimlock ; SpriteUpdateHandler_Enemy_Hornet ; SpriteUpdateHandler_Enemy_Ikeda ; SpriteUpdateHandler_Enemy_Ishiisu ; SpriteUpdateHandler_Enemy_Lamprey ; SpriteUpdateHandler_Enemy_Lilith ; SpriteUpdateHandler_Enemy_Magman ; SpriteUpdateHandler_Enemy_Maskman ; SpriteUpdateHandler_Enemy_MuppetGuy ; SpriteUpdateHandler_Enemy_Myconid ; SpriteUpdateHandler_Enemy_Naga ; SpriteUpdateHandler_Enemy_Nash ; SpriteUpdateHandler_Enemy_NecronAides ; SpriteUpdateHandler_Enemy_Raiden ; SpriteUpdateHandler_Enemy_Snowman ; SpriteUpdateHandler_Enemy_Sugata ; SpriteUpdateHandler_Enemy_Unused29 ; SpriteUpdateHandler_Enemy_Unused_CurlyTail ; SpriteUpdateHandler_Enemy_Unused_SnakeRoundPart ; SpriteUpdateHandler_Enemy_Unused_WingedSkeleton ; SpriteUpdateHandler_Enemy_Yareeka ; SpriteUpdateHandler_Enemy_Zombie ; SpriteUpdateHandler_Magic_81 ; SpriteUpdateHandler_NPC_ArmorSalesman ; SpriteUpdateHandler_NPC_King ; SpriteUpdateHandler_NPC_MagicTeacher ; SpriteUpdateHandler_NPC_MartialArts ; SpriteUpdateHandler_NPC_Priest ; SpriteUpdateHandler_NPC_Walking ; SpriteUpdateHandler_TODO_Garbled10 ; Sprites_UpdateAll ;[0383]SpriteUpdateCounter: [0383]00.byte $00; byte; ; XREFS: ; FUN_PRG14__a1cc ; SpriteBehavior_KingGrieve_9f65 ; SpriteBehavior_Ripasheiku_CastMagicOrUpdatePos ; SpriteBehavior_ShadowEura__a077 ; SpriteBehavior_ShadowEura__a12d ; Sprite_CastMagic ;[0384]CurrentSprite_Arg_CastMagicX: [0384]00.byte $00; byte; ; XREFS: ; FUN_PRG14__a1cc ; SpriteBehavior_KingGrieve_9f65 ; SpriteBehavior_Ripasheiku_CastMagicOrUpdatePos ; SpriteBehavior_ShadowEura__a077 ; SpriteBehavior_ShadowEura__a12d ; Sprite_CastMagic ;[0385]CurrentSprite_Arg_CastMagicY: [0385]00.byte $00; byte;============================================================================ ; ROM bank where images of the current sprite can be found. ; ; This is set based on the table in ; SPRITE_IMAGE_BANKS. ; ; XREFS: ; CurrentSprite_LoadTilesInfo ; Sprites_LoadImageForCurrentSprite ; Sprites_StoreBankForCurrentSprite ;============================================================================; ; XREFS: ; CurrentSprite_LoadTilesInfo ; Sprites_LoadImageForCurrentSprite ; Sprites_StoreBankForCurrentSprite ;[0386]CurrentSprite_TilesBank: [0386]00.byte $00; byte [0387]00 00.byte $00,$00; undefined;============================================================================ ; X coordinate of the sprite being processed. ; ; XREFS: ; Screen_LoadSpriteInfo ; Sprites_PopulateNextAvailableSprite ;============================================================================; ; XREFS: ; Screen_LoadSpriteInfo ; Sprites_PopulateNextAvailableSprite ;[0389]CurrentSprite_XPos: [0389]00.byte $00; byte;============================================================================ ; Y coordinate of the sprite being processed. ; ; XREFS: ; Screen_LoadSpriteInfo ; Sprites_PopulateNextAvailableSprite ;============================================================================; ; XREFS: ; Screen_LoadSpriteInfo ; Sprites_PopulateNextAvailableSprite ;[038a]CurrentSprite_YPos: [038a]00.byte $00; byte;============================================================================ ; Entity ID of the sprite being processed. ; ; XREFS: ; CurrentSprite_LoadTilesInfo ; GameLoop_LoadSpriteImages ; Screen_LoadSpriteInfo ; Sprites_PopulateNextAvailableSprite ; Sprites_StoreBankForCurrentSprite ;============================================================================; ; XREFS: ; CurrentSprite_LoadTilesInfo ; GameLoop_LoadSpriteImages ; Screen_LoadSpriteInfo ; Sprites_PopulateNextAvailableSprite ; Sprites_StoreBankForCurrentSprite ;[038b]CurrentSprite_Entity: [038b]00.byte $00; SpriteEntity;============================================================================ ; Numeric value of the sprite being processed. ; ; For items like coins and bread, this will contain the value ; to add to the player's gold and HP, respectively. ; ; For NPCs, this will be the IScript entrypoint index to ; activate upon interaction. ; ; XREFS: ; Player_CheckHandlePressUpOnNPC ; Player_HandleTouchNPC ;============================================================================; ; XREFS: ; Player_CheckHandlePressUpOnNPC ; Player_HandleTouchNPC ;[038c]CurrentSprite_Value: [038c]00.byte $00; byte;============================================================================ ; Index into HUD_ATTRIBUTE_DATA_BY_INDEX where the ; HUD palette can be found. ; ; XREFS: ; TextBox_GetBackgroundAttributeData ; Screen_LoadUIPalette ; UI_SetHUDPPUAttributes ;============================================================================[038d]UI_AttributeDataIndex: [038d]00.byte $00; byte [038e]00 00.byte $00,$00; undefined;============================================================================ ; The player's experience as a 16-bit value. ; ; This is in Lower, Upper byte order. ; ; XREFS: ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Game_Start ; Player_CheckReachedNextTitle ; Player_UpdateExperience ; UI_DrawPlayerExperience ;============================================================================; ; XREFS: ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Game_Start ; Player_CheckReachedNextTitle ; Player_UpdateExperience ; UI_DrawPlayerExperience ;[0390]Experience: [0390]00.byte $00; byte;============================================================================ ; Upper byte of player's experience ; ; XREFS: ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Game_Start ; Player_CheckReachedNextTitle ; Player_UpdateExperience ; UI_DrawPlayerExperience ;============================================================================; ; XREFS: ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Game_Start ; Player_CheckReachedNextTitle ; Player_UpdateExperience ; UI_DrawPlayerExperience ;[0391]Experience_U: [0391]00.byte $00; byte;============================================================================ ; The player's gold as a 24-bit value. ; ; This is in Lower, Middle, Upper byte order. ; ; XREFS: ; IScriptAction_IfPlayerHasGold ; IScripts_CheckEnoughMoney ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_HandleTouchCoin ; Player_AddGold ; Player_SubtractGold ; UI_DrawGoldValue ;============================================================================; ; XREFS: ; IScriptAction_IfPlayerHasGold ; IScripts_CheckEnoughMoney ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_HandleTouchCoin ; Player_AddGold ; Player_SubtractGold ; UI_DrawGoldValue ;[0392]Gold: [0392]00.byte $00; byte;============================================================================ ; Middle byte of player's gold ; ; XREFS: ; IScriptAction_IfPlayerHasGold ; IScripts_CheckEnoughMoney ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_HandleTouchCoin ; Player_AddGold ; Player_SubtractGold ; UI_DrawGoldValue ;============================================================================; ; XREFS: ; IScriptAction_IfPlayerHasGold ; IScripts_CheckEnoughMoney ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_HandleTouchCoin ; Player_AddGold ; Player_SubtractGold ; UI_DrawGoldValue ;[0393]Gold_M: [0393]00.byte $00; byte;============================================================================ ; Upper byte of player's gold ; ; XREFS: ; IScriptAction_IfPlayerHasGold ; IScripts_CheckEnoughMoney ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_HandleTouchCoin ; Player_AddGold ; Player_SubtractGold ; UI_DrawGoldValue ;============================================================================; ; XREFS: ; IScriptAction_IfPlayerHasGold ; IScripts_CheckEnoughMoney ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_HandleTouchCoin ; Player_AddGold ; Player_SubtractGold ; UI_DrawGoldValue ;[0394]Gold_U: [0394]00.byte $00; byte [0395]00 00 00 00.byte $00,$00,$00,$00; undefined;============================================================================ ; Temporary variable used when adding or showing player HP. ; ; XREFS: ; IScriptAction_AddHP ; UI_DrawPlayerHPValue ;============================================================================; ; XREFS: ; IScriptAction_AddHP ; UI_DrawPlayerHPValue ;[0399]Temp_AddedHPValue: [0399]00.byte $00; byte;============================================================================ ; The player's available MP. ; ; XREFS: ; IScriptAction_AddMP ; Game_Start ; Player_AddMP ; Player_FillHPAndMP ; Player_ReduceMP ; Player_SetMP ; Player_Spawn ; UI_DrawHUD ;============================================================================; ; XREFS: ; IScriptAction_AddMP ; Game_Start ; Player_AddMP ; Player_FillHPAndMP ; Player_ReduceMP ; Player_SetMP ; Player_Spawn ; UI_DrawHUD ;[039a]Player_MP: [039a]00.byte $00; byte; ; XREFS: ; Player_CheckShieldHitByMagic ; Player_DrawShield ;[039b]Player_ShieldPositionX: [039b]00.byte $00; byte; ; XREFS: ; Player_CheckShieldHitByMagic ; Player_DrawShield ;[039c]Player_ShieldPositionY: [039c]00.byte $00; byte;============================================================================ ; Inventory of the player's weapons. ; ; They can have up to 4 weapons in the inventory. ; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b29] ; SpriteBehavior_DragonSlayerDroppedByKingGrieve ; Player_PickUpDragonSlayer ;============================================================================; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b29] ; SpriteBehavior_DragonSlayerDroppedByKingGrieve ; Player_PickUpDragonSlayer ;[039d]WeaponInventory: [039d]00.byte $00; [0]: [039e]00.byte $00; [1]: [039f]00.byte $00; [2]:; ; XREFS: ; Player_PickUpDragonSlayer ;[03a0]WeaponInventory_3_: [03a0]00.byte $00; [3]:;============================================================================ ; Inventory of the player's armor. ; ; They can have up to 4 armors in the inventory. ; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b2a] ; SpriteBehavior_BattleSuitDroppedByZoradohna ; Player_PickUpBattleSuit ;============================================================================; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b2a] ; SpriteBehavior_BattleSuitDroppedByZoradohna ; Player_PickUpBattleSuit ;[03a1]ArmorInventory: [03a1]00.byte $00; [0]: [03a2]00.byte $00; [1]: [03a3]00.byte $00; [2]:; ; XREFS: ; Player_PickUpBattleSuit ;[03a4]ArmorInventory_3_: [03a4]00.byte $00; [3]:;============================================================================ ; Inventory of the player's shields. ; ; They can have up to 4 shields in the inventory. ; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b2b] ; SpriteBehavior_BattleHelmetDroppedByZoradohna ; Player_PickUpBattleHelmet ;============================================================================; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b2b] ; SpriteBehavior_BattleHelmetDroppedByZoradohna ; Player_PickUpBattleHelmet ;[03a5]ShieldInventory: [03a5]00.byte $00; [0]: [03a6]00.byte $00; [1]: [03a7]00.byte $00; [2]:; ; XREFS: ; Player_PickUpBattleHelmet ;[03a8]ShieldInventory_3_: [03a8]00.byte $00; [3]:;============================================================================ ; Inventory of the player's magic spells. ; ; They can have up to 5 magic spells in the inventory. ; ; XXX It seems there's only room for 4 though? Check on this. ; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b2c] ;============================================================================; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b2c] ;[03a9]MagicInventory: [03a9]00.byte $00; [0]: [03aa]00.byte $00; [1]: [03ab]00.byte $00; [2]: [03ac]00.byte $00; [3]:;============================================================================ ; Inventory of the player's items. ; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b2d] ; Player_PickUpItem ;============================================================================; ; XREFS: ; INVENTORY_CATEGORY_L [$PRG12::9b2d] ; Player_PickUpItem ;[03ad]ItemInventory: [03ad]00.byte $00; [0]: [0]: [03ae]00.byte $00; [0]: [1]: [03af]00.byte $00; [0]: [2]: [03b0]00.byte $00; [0]: [3]: [03b1]00.byte $00; [0]: [4]: [03b2]00.byte $00; [0]: [5]: [03b3]00.byte $00; [0]: [6]: [03b4]00.byte $00; [0]: [7]: [03b5]00.byte $00; [1]: [0]: [03b6]00.byte $00; [1]: [1]: [03b7]00.byte $00; [1]: [2]: [03b8]00.byte $00; [1]: [3]: [03b9]00.byte $00; [1]: [4]: [03ba]00.byte $00; [1]: [5]: [03bb]00.byte $00; [1]: [6]: [03bc]00.byte $00; [1]: [7]:;============================================================================ ; The currently-selected weapon: ; ; 0 = Hand Dagger ; 1 = Long Sword ; 2 = Giant Blade ; 3 = Dragon Slayer ; ; XREFS: ; Password_EncodeGameState ; Password_Load ; PlayerMenu_HandleInventoryMenuInput ; PlayerMenu_ShowStatusMenu ; Player_Equip ; Player_LacksItem ; Player_SetStartGameState ; Shop_GetPlayerHasSelectedItem ; PlayerDeath_ResetSelectedItemState ; Game_ExitBuilding ; Player_HandleDeath ; Player_SetWeapon ;============================================================================; ; XREFS: ; Password_EncodeGameState ; Password_Load ; PlayerMenu_HandleInventoryMenuInput ; PlayerMenu_ShowStatusMenu ; Player_Equip ; Player_LacksItem ; Player_SetStartGameState ; Shop_GetPlayerHasSelectedItem ; PlayerDeath_ResetSelectedItemState ; Game_ExitBuilding ; Player_HandleDeath ; Player_SetWeapon ;[03bd]Inventories: [03bd]SelectedWeapon: [03bd]00.byte $00; WeaponInventory;============================================================================ ; The currently-selected armor: ; ; 0 = Leather Armor ; 1 = Studded Mail ; 2 = Full Plate ; 3 = Battle Suit ; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; PlayerDeath_ResetSelectedItemState ; Player_ApplyDamage ; SpriteBehavior_BattleSuitDroppedByZoradohna ; FUN_PRG15_MIRROR__ec58 ; Player_DrawBody ; Player_HandleDeath ; Player_LoadArmorTilesToPPU ; Player_SetArmor ;============================================================================; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; PlayerDeath_ResetSelectedItemState ; Player_ApplyDamage ; SpriteBehavior_BattleSuitDroppedByZoradohna ; FUN_PRG15_MIRROR__ec58 ; Player_DrawBody ; Player_HandleDeath ; Player_LoadArmorTilesToPPU ; Player_SetArmor ;[03be]SelectedArmor: [03be]00.byte $00; ArmorInventory;============================================================================ ; The currently-selected shield. ; ; 0 = Small Shield ; 1 = Large Shield ; 2 = Magic Shield ; 3 = Battle Helmet ; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; PlayerDeath_ResetSelectedItemState ; Player_CheckShieldHitByMagic ; Player_DrawShield ; Player_HandleHitByMagic ; SpriteBehavior_BattleHelmetDroppedByZoradohna ; FUN_PRG15_MIRROR__ec58 ; Player_DrawBody ; Player_HandleDeath ; Player_LoadArmorTilesToPPU ; Player_LoadShieldTilesToPPU ; Player_SetShield ;============================================================================; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; PlayerDeath_ResetSelectedItemState ; Player_CheckShieldHitByMagic ; Player_DrawShield ; Player_HandleHitByMagic ; SpriteBehavior_BattleHelmetDroppedByZoradohna ; FUN_PRG15_MIRROR__ec58 ; Player_DrawBody ; Player_HandleDeath ; Player_LoadArmorTilesToPPU ; Player_LoadShieldTilesToPPU ; Player_SetShield ;[03bf]SelectedShield: [03bf]00.byte $00; ShieldInventory;============================================================================ ; The currently-selected magic spell. ; ; 0x00 = Deluge ; 0x01 = Thunder ; 0x02 = Fire ; 0x03 = Death ; 0x04 = Tilte ; 0xFF = None ; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetMagic ; Player_SetStartGameState ; PlayerDeath_ResetSelectedItemState ; Player_CastMagic ; Player_HandleDeath ; Player_ReduceMP ;============================================================================; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetMagic ; Player_SetStartGameState ; PlayerDeath_ResetSelectedItemState ; Player_CastMagic ; Player_HandleDeath ; Player_ReduceMP ;[03c0]SelectedMagic: [03c0]00.byte $00; SelectedMagic;============================================================================ ; The currently-selected item: ; ; 0x00 = Ring of Elf ; 0x01 = Ring of Ruby ; 0x02 = Ring of Dworf ; 0x03 = Demons Ring ; 0x04 = Key A ; 0x05 = Key K ; 0x06 = Key Q ; 0x07 = Key J ; 0x08 = Key Jo ; 0x09 = Mattock ; 0x0A = Magical Rod ; 0x0B = Crystal ; 0x0C = Lamp ; 0x0D = Hour Glass ; 0x0E = Book ; 0x0F = Wing Boots ; 0x10 = Red Potion ; 0x11 = Poison ; 0x12 = Elixir ; 0x13 = Pendant ; 0x14 = Black Onyx ; 0x15 = Fire Crystal ; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; PlayerDeath_ResetSelectedItemState ; GameLoop_CheckUseCurrentItem ; Game_OpenDoorWithAKey ; Game_OpenDoorWithJKey ; Game_OpenDoorWithJoKey ; Game_OpenDoorWithKKey ; Game_OpenDoorWithQKey ; Game_UnlockDoorWithUsableItem ; Player_ClearSelectedItem ; Player_HandleDeath ; Player_SetItem ; UI_DrawSelectedItem ;============================================================================; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; PlayerDeath_ResetSelectedItemState ; GameLoop_CheckUseCurrentItem ; Game_OpenDoorWithAKey ; Game_OpenDoorWithJKey ; Game_OpenDoorWithJoKey ; Game_OpenDoorWithKKey ; Game_OpenDoorWithQKey ; Game_UnlockDoorWithUsableItem ; Player_ClearSelectedItem ; Player_HandleDeath ; Player_SetItem ; UI_DrawSelectedItem ;[03c1]SelectedItem: [03c1]00.byte $00; ItemInventory;============================================================================ ; Number of weapons in the player's inventory ; ; XREFS: ; IScriptAction_OpenShop ; IScriptAction_ShowSellMenu ; Password_EncodeGameState ; Password_Load ; PlayerMenu_ShowSubmenu ; Player_AddToInventory ; Player_LacksItem ; Player_RemoveItem ; Player_SetStartGameState ; Shop_GetPlayerHasSelectedItem ; Player_InitInventoryState ; SpriteBehavior_DragonSlayerDroppedByKingGrieve ; Player_PickUpBattleSuit ; Player_PickUpDragonSlayer ;============================================================================; ; XREFS: ; IScriptAction_OpenShop ; IScriptAction_ShowSellMenu ; Password_EncodeGameState ; Password_Load ; PlayerMenu_ShowSubmenu ; Player_AddToInventory ; Player_LacksItem ; Player_RemoveItem ; Player_SetStartGameState ; Shop_GetPlayerHasSelectedItem ; Player_InitInventoryState ; SpriteBehavior_DragonSlayerDroppedByKingGrieve ; Player_PickUpBattleSuit ; Player_PickUpDragonSlayer ;[03c2]AllInventories: [03c2]NumberOfWeapons: [03c2]00.byte $00; byte;============================================================================ ; Number of armors in the player's inventory ; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Player_InitInventoryState ; SpriteBehavior_BattleSuitDroppedByZoradohna ; Player_PickUpBattleSuit ; Player_PickUpDragonSlayer ;============================================================================; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Player_InitInventoryState ; SpriteBehavior_BattleSuitDroppedByZoradohna ; Player_PickUpBattleSuit ; Player_PickUpDragonSlayer ;[03c3]NumberOfArmors: [03c3]00.byte $00; byte;============================================================================ ; Number of shields in the player's inventory ; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Player_InitInventoryState ; SpriteBehavior_BattleHelmetDroppedByZoradohna ; Player_PickUpBattleHelmet ;============================================================================; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Player_InitInventoryState ; SpriteBehavior_BattleHelmetDroppedByZoradohna ; Player_PickUpBattleHelmet ;[03c4]NumberOfShields: [03c4]00.byte $00; byte;============================================================================ ; Number of magic spells in the player's inventory ; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Player_InitInventoryState ;============================================================================; ; XREFS: ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Player_InitInventoryState ;[03c5]NumberOfMagicSpells: [03c5]00.byte $00; byte;============================================================================ ; Number of items in the player's inventory ; ; XREFS: ; IScriptAction_ShowSellMenu ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Player_InitInventoryState ; Player_PickUpItem ;============================================================================; ; XREFS: ; IScriptAction_ShowSellMenu ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Player_InitInventoryState ; Player_PickUpItem ;[03c6]NumberOfItems: [03c6]00.byte $00; byte;============================================================================ ; The loaded portrait ID from an IScript. ; ; This will be 0xFF if unset. ; ; If set, the player won't be drawn, and instead portrait ; data will be loaded, displayed, and animated. ; ; XREFS: ; IScriptAction_ShowSellMenu ; CurrentSprite_UpdateState ; Player_DrawShield ; Player_DrawWeapon ; IScripts_ClearPortraitImage ; IScripts_DrawPortraitAnimationFrame ; IScripts_GetPortraitOffset ; IScripts_LoadPortraitTiles ; IScripts_LoadPortraitTilesAddress ; Player_DrawBody ; Screen_ClearSprites ;============================================================================; ; XREFS: ; IScriptAction_ShowSellMenu ; CurrentSprite_UpdateState ; Player_DrawShield ; Player_DrawWeapon ; IScripts_ClearPortraitImage ; IScripts_DrawPortraitAnimationFrame ; IScripts_GetPortraitOffset ; IScripts_LoadPortraitTiles ; IScripts_LoadPortraitTilesAddress ; Player_DrawBody ; Screen_ClearSprites ;[03c7]IScript_PortraitID: [03c7]00.byte $00; byte; ; XREFS: ; PlayerDeath_ResetSelectedItemState ; Player_DrawWeapon ; Player_GetNormalizedWeaponID ; Player_HitSpriteWithWeapon ; SpriteBehavior_DragonSlayerDroppedByKingGrieve ; Game_EnterBuilding ; Game_ExitBuilding ; Player_LoadWeaponTilesToPPU ; Player_SetWeapon ;[03c8]Player_CurWeapon: [03c8]00.byte $00; WeaponInventory; ; XREFS: ; Area_HandleBreakableFloor ; Area_SetBlocks ; Area_SetBlocks_SetAttributes ; Area_SetBlocks_WriteBlockDataColumn1 ; Area_SetBlocks_WriteBlockDataColumn2 ; Player_UseMattock ;[03c9]Arg_BlockAttributesIndex: [03c9]00.byte $00; byte [03ca]00 00 00 00.byte $00,$00,$00,$00; undefined [03ce]Something_UnusedSprite_BlockOffset: [03ce]00.byte $00; byte [03cf]Something_UnusedSprite_ScreenBufferOffset: [03cf]00.byte $00; byte; ; XREFS: ; Fog_OnTick ; Game_EnterBuilding ; Game_SpawnInTemple ; Player_HandleDeath ; Screen_NextTransitionState ; Screen_SetupNew ; UNUSED_WriteCurrentBackgroundPalette ;[03d0]Screen_PaletteIndex: [03d0]00.byte $00; Palette; ; XREFS: ; Area_ScrollTo ; EndGame_MoveToKingsRoom ; Game_BeginExitBuilding ; Game_EnterAreaHandler ; Game_EnterBuilding ; Game_ExitBuilding ; Game_LoadCurrentArea ; Game_LoadFirstLevel ; Game_SpawnInTemple ; Player_CheckHandleEnterDoor ; Player_EnterDoorToInside ; ScreenEvents_HandleBoss ; _afterFarJump [$PRG15_MIRROR::c603] ;[03d1]Areas_DefaultMusic: [03d1]00.byte $00; Music [03d2]Area_Music_Outside: [03d2]00.byte $00; byte;============================================================================ ; Palette index data. ; ; XREFS: ; IScripts_ClearPortraitImage ; IScripts_LoadPortraitTiles ;============================================================================; ; The saved palette index, when temporarily switching to ; a new one. ; ; This is used in IScripts. ; ; ; XREFS: ; IScripts_ClearPortraitImage ; IScripts_LoadPortraitTiles ;[03d3]Palette_SavedIndex: [03d3]00.byte $00; byte; ; The current palette index. ; ; This is set when loading a new palette, and used ; exclusively for the process of restoring palette state ; after showing portraits in IScripts. ; ; ; XREFS: ; IScripts_LoadPortraitTiles ; Screen_LoadSpritePalette ;[03d4]Palette_SpritePaletteIndex: [03d4]00.byte $00; byte;============================================================================ ; Region and screen information. ; ; XREFS: ; Game_EnterBuilding ; Game_ExitBuilding ;============================================================================; ; XREFS: ; Game_EnterBuilding ; Game_ExitBuilding ;[03d5]Area_SavedArea: [03d5]00.byte $00; byte; ; XREFS: ; Game_EnterBuilding ; Game_ExitBuilding ;[03d6]Area_SavedScreen: [03d6]00.byte $00; byte; ; XREFS: ; Game_EnterBuilding ; Game_ExitBuilding ;[03d7]Screen_SavedPalette: [03d7]00.byte $00; byte; ; XREFS: ; Game_EnterBuilding ; Game_ExitBuilding ;[03d8]Player_SavedPosXY: [03d8]00.byte $00; byte; ; XREFS: ; EndGame_MoveToKingsRoom ; Game_EnterBuilding ; Game_SpawnInTemple ; Player_EnterDoorToInside ;[03d9]Building_TilesIndex: [03d9]00.byte $00; byte; ; XREFS: ; EndGame_MoveToKingsRoom ; Game_EnterBuilding ; Game_SpawnInTemple ; Player_EnterDoorToInside ;[03da]Area_DestScreen: [03da]00.byte $00; byte; ; XREFS: ; Player_HandleDeath ; Screen_NextTransitionState ;[03db]Screen_TransitionCounter: [03db]00.byte $00; byte; ; XREFS: ; Screen_NextTransitionState ;[03dc]Screen_FadeOutCounter: [03dc]00.byte $00; byte; ; XREFS: ; Player_DrawDeathAnimation ; Player_HandleDeath ;[03dd]Player_DeathAnimationPhase: [03dd]00.byte $00; byte; ; XREFS: ; Player_DrawDeathAnimation ; Player_HandleDeath ;[03de]Player_DeathAnimationCounter: [03de]00.byte $00; byte [03df]00 00 00.byte $00,$00,$00; undefined; ; XREFS: ; CurrentSprite_CheckHitPlayer ; Player_CheckShieldHitByMagic ;[03e2]SpriteBox_Left: [03e2]00.byte $00; byte; ; XREFS: ; CurrentSprite_CheckHitPlayer ; Player_CheckShieldHitByMagic ;[03e3]SpriteBox_Top: [03e3]00.byte $00; byte; ; XREFS: ; CurrentSprite_CheckHitPlayer ; Player_CheckShieldHitByMagic ;[03e4]SpriteBox_Width: [03e4]00.byte $00; byte; ; XREFS: ; CurrentSprite_CheckHitPlayer ; Player_CheckShieldHitByMagic ;[03e5]SpriteBox_Height: [03e5]00.byte $00; byte;============================================================================ ; IDs of blocks in the last column of screen to the left ; ; XREFS: ; Area_CanPlayerMoveLeft ; Area_LoadScrollData ;============================================================================; ; XREFS: ; Area_CanPlayerMoveLeft ; Area_LoadScrollData ;[03e6]LastColumnLeftScreen: [03e6]00.byte $00; [0]:; ; XREFS: ; Area_LoadScrollData ;[03e7]LastColumnLeftScreen_1_: [03e7]00.byte $00; [1]: [03e8]00.byte $00; [2]: [03e9]00.byte $00; [3]: [03ea]00.byte $00; [4]: [03eb]00.byte $00; [5]: [03ec]00.byte $00; [6]: [03ed]00.byte $00; [7]: [03ee]00.byte $00; [8]: [03ef]00.byte $00; [9]: [03f0]00.byte $00; [10]: [03f1]00.byte $00; [11]: [03f2]00.byte $00; [12]: [03f3]00.byte $00; [13]: [03f4]00.byte $00; [14]: [03f5]00.byte $00; [15]:;============================================================================ ; IDs of blocks in the first column of screen to the right ; ; XREFS: ; Area_CanMoveUp ; Area_LoadScrollData ;============================================================================; ; XREFS: ; Area_CanMoveUp ; Area_LoadScrollData ;[03f6]FirstColumnInRightScreen: [03f6]00.byte $00; [0]:; ; XREFS: ; Area_LoadScrollData ;[03f7]FirstColumnInRightScreen_1_: [03f7]00.byte $00; [1]: [03f8]00.byte $00; [2]: [03f9]00.byte $00; [3]: [03fa]00.byte $00; [4]: [03fb]00.byte $00; [5]: [03fc]00.byte $00; [6]: [03fd]00.byte $00; [7]: [03fe]00.byte $00; [8]: [03ff]00.byte $00; [9]:; ; XREFS: ; Game_Init ;[0400]FirstColumnInRightScreen_10_: [0400]00.byte $00; [10]: [0401]00.byte $00; [11]: [0402]00.byte $00; [12]: [0403]00.byte $00; [13]: [0404]00.byte $00; [14]: [0405]00.byte $00; [15]:;============================================================================ ; IDs of blocks in the last row of screen above ; ; XREFS: ; Area_CanPlayerMoveUp ; Area_LoadScrollData ;============================================================================; ; XREFS: ; Area_CanPlayerMoveUp ; Area_LoadScrollData ;[0406]LastRowAboveScreen: [0406]00.byte $00; [0]:; ; XREFS: ; Area_LoadScrollData ;[0407]LastRowAboveScreen_1_: [0407]00.byte $00; [1]: [0408]00.byte $00; [2]: [0409]00.byte $00; [3]: [040a]00.byte $00; [4]: [040b]00.byte $00; [5]: [040c]00.byte $00; [6]: [040d]00.byte $00; [7]: [040e]00.byte $00; [8]: [040f]00.byte $00; [9]: [0410]00.byte $00; [10]: [0411]00.byte $00; [11]: [0412]00.byte $00; [12]: [0413]00.byte $00; [13]: [0414]00.byte $00; [14]: [0415]00.byte $00; [15]:;============================================================================ ; IDs of blocks in the first row of screen below ; ; XREFS: ; Area_LoadScrollData ; Player_CheckIfPassable ;============================================================================; ; XREFS: ; Area_LoadScrollData ; Player_CheckIfPassable ;[0416]FirstRowBelowScreen: [0416]00.byte $00; [0]:; ; XREFS: ; Area_LoadScrollData ;[0417]FirstRowBelowScreen_1_: [0417]00.byte $00; [1]: [0418]00.byte $00; [2]: [0419]00.byte $00; [3]: [041a]00.byte $00; [4]: [041b]00.byte $00; [5]: [041c]00.byte $00; [6]: [041d]00.byte $00; [7]: [041e]00.byte $00; [8]: [041f]00.byte $00; [9]: [0420]00.byte $00; [10]: [0421]00.byte $00; [11]: [0422]00.byte $00; [12]: [0423]00.byte $00; [13]: [0424]00.byte $00; [14]: [0425]00.byte $00; [15]:;============================================================================ ; Flag indicating whether updates to sprites are paused. ; ; This prevents sprite movement or collision handling when ; set. ; ; XREFS: ; Sprites_UpdateAll ; Game_DrawScreenInFrozenState ;============================================================================; ; XREFS: ; Sprites_UpdateAll ; Game_DrawScreenInFrozenState ;[0426]Sprites_UpdatesPaused: [0426]00.byte $00; bool;============================================================================ ; Duration of the pointment ; ; XREFS: ; Player_HandleTouchEnemy ; Player_HandleTouchEnemyMagic ; SpriteBehavior_Ointment ; Game_ClearTimedItems ; Game_DecOintmentDuration ; LimitItemDurations ; Player_PickUpOintment ;============================================================================; ; XREFS: ; Player_HandleTouchEnemy ; Player_HandleTouchEnemyMagic ; SpriteBehavior_Ointment ; Game_ClearTimedItems ; Game_DecOintmentDuration ; LimitItemDurations ; Player_PickUpOintment ;[0427]DurationOintment: [0427]00.byte $00; byte;============================================================================ ; Duration of the gloves ; ; XREFS: ; Player_HitSpriteWithWeapon ; SpriteBehavior_Glove ; Game_ClearTimedItems ; Game_DecGloveDuration ; Player_PickUpGlove ;============================================================================; ; XREFS: ; Player_HitSpriteWithWeapon ; SpriteBehavior_Glove ; Game_ClearTimedItems ; Game_DecGloveDuration ; Player_PickUpGlove ;[0428]DurationGlove: [0428]00.byte $00; byte;============================================================================ ; Duration of the wing boots ; ; XREFS: ; Game_ClearTimedItems ; Game_DecWingBootsDuration ; Player_UseWingBoots ;============================================================================[0429]DurationWingBoots: [0429]00.byte $00; byte;============================================================================ ; Duration of the active hour glass ; ; XREFS: ; Sprites_UpdateAll ; Sprites_UpdateBehavior ; Game_ClearTimedItems ; Game_DecHourGlassDuration ; LimitItemDurations ; Player_UseHourGlass ;============================================================================; ; XREFS: ; Sprites_UpdateAll ; Sprites_UpdateBehavior ; Game_ClearTimedItems ; Game_DecHourGlassDuration ; LimitItemDurations ; Player_UseHourGlass ;[042a]DurationHourGlass: [042a]00.byte $00; byte;============================================================================ ; Key requirement for the current door ; ; XREFS: ; Game_RunDoorRequirementHandler ; Game_UnlockDoor ; Player_CheckHandleEnterDoor ; Player_EnterDoorToOutside ;============================================================================; ; XREFS: ; Game_RunDoorRequirementHandler ; Game_UnlockDoor ; Player_CheckHandleEnterDoor ; Player_EnterDoorToOutside ;[042b]CurrentDoor_KeyRequirement: [042b]00.byte $00; byte;============================================================================ ; 0x01 = Black Onyx ; 0x02 = Pendant ; 0x04 = Magical Rod ; 0x08 = Elixir ; 0x10 = Demons Ring ; 0x20 = Ring of Dworf ; 0x40 = Ring of Ruby ; 0x80 = Ring of Elf ; ; XREFS: ; Password_EncodeGameState ; Password_Load ; PlayerMenu_ShowStatusMenu ; Player_AddSpecialItem ; Player_LacksItem ; Player_RemoveItem ; Player_SetStartGameState ; Shop_GetPlayerHasSelectedItem ; Player_ApplyDamage ; Player_HitEnemyWithMagic ; Player_HitSpriteWithWeapon ; SpriteBehavior_BlackOnyxDropFromZoradohna ; SpriteBehavior_PendantDroppedFromRipasheiku ; SpriteBehavior_ShowMagicalRod ; Game_OpenDoorWithDemonsRing ; Game_OpenDoorWithRingOfDworf ; Game_OpenDoorWithRingOfElf ; Player_CheckPushingBlock ; Player_PickUpBlackOnyx ; Player_PickUpElixir ; Player_ReduceHP ; Player_UseElixir ;============================================================================; ; XREFS: ; Password_EncodeGameState ; Password_Load ; PlayerMenu_ShowStatusMenu ; Player_AddSpecialItem ; Player_LacksItem ; Player_RemoveItem ; Player_SetStartGameState ; Shop_GetPlayerHasSelectedItem ; Player_ApplyDamage ; Player_HitEnemyWithMagic ; Player_HitSpriteWithWeapon ; SpriteBehavior_BlackOnyxDropFromZoradohna ; SpriteBehavior_PendantDroppedFromRipasheiku ; SpriteBehavior_ShowMagicalRod ; Game_OpenDoorWithDemonsRing ; Game_OpenDoorWithRingOfDworf ; Game_OpenDoorWithRingOfElf ; Player_CheckPushingBlock ; Player_PickUpBlackOnyx ; Player_PickUpElixir ; Player_ReduceHP ; Player_UseElixir ;[042c]SpecialItems: [042c]00.byte $00; SpecialItemsBits;============================================================================ ; Special flags for objectives. ; ; 0x01 = Spring of Trunk has been completed (maybe?) ; 0x02 = Spring of Trunk quest has started (maybe?) ; 0x10 = Mattock collected ; 0x20 = Path to Mascon was opened ; ; XREFS: ; IScriptAction_IfQuestCompleted ; IScriptAction_SetQuestComplete ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; SpriteBehavior_Fountain ; SpriteBehavior_MattockDroppedFromRipasheiku ; SpriteBehavior_SpringOfFortress ; SpriteBehavior_SpringOfJoker ; SpriteBehavior_SpringOfSky ; SpriteBehavior_WingBootsDroppedByZorugeriru ; Game_DropLadderToMascon ; Game_OpenPathToMascon ; Player_CheckPushingBlock ; Player_PickUpMattockWithQuest ; Player_PickUpWingBootsWithQuest ; Player_Spawn ; ScreenEvents_HandlePathToMasconEvent ;============================================================================; ; XREFS: ; IScriptAction_IfQuestCompleted ; IScriptAction_SetQuestComplete ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; SpriteBehavior_Fountain ; SpriteBehavior_MattockDroppedFromRipasheiku ; SpriteBehavior_SpringOfFortress ; SpriteBehavior_SpringOfJoker ; SpriteBehavior_SpringOfSky ; SpriteBehavior_WingBootsDroppedByZorugeriru ; Game_DropLadderToMascon ; Game_OpenPathToMascon ; Player_CheckPushingBlock ; Player_PickUpMattockWithQuest ; Player_PickUpWingBootsWithQuest ; Player_Spawn ; ScreenEvents_HandlePathToMasconEvent ;[042d]Quests: [042d]00.byte $00; Quests;============================================================================ ; The loaded special event ID for the current screen. ; ; This controls which custom logic is run for a screen, ; and the state around that logic. ; ; Bits 0-2 define the handler in a lookup table (count of ; 0-2), but in theory could be extended for more handlers. ; ; Bit 7 is reserved for the handler's use. ; ; If 0xFF, this is unset. Handlers may set this after ; use. ; ; XREFS: ; Area_ScrollTo ; GameLoop_RunScreenEventHandlers ; ScreenEvents_HandleBoss ; ScreenEvents_HandlePathToMasconEvent ; Screen_LoadSpecialEventID ; Screen_SetNoSpecialEventID ; UNUSED_ClearScreenSpecialEventID ;============================================================================; ; XREFS: ; Area_ScrollTo ; GameLoop_RunScreenEventHandlers ; ScreenEvents_HandleBoss ; ScreenEvents_HandlePathToMasconEvent ; Screen_LoadSpecialEventID ; Screen_SetNoSpecialEventID ; UNUSED_ClearScreenSpecialEventID ;[042e]CurrentScreen_SpecialEventID: [042e]00.byte $00; byte [042f]Maybe_Game_Ready: [042f]00.byte $00; bool;============================================================================ ; The current phase of the screen fade-out. ; ; This is a value between 0 and 3 (inclusive) that indicates ; the phase when fading out the screen (used during screen ; transitions or death). This is used as a counter as an index ; into a palette delta table, ; FADE_OUT_DELTA_TABLE. ; ; XREFS: ; Player_HandleDeath ; Screen_FadeToBlack ; Screen_NextTransitionState ; Screen_SetFadeOutPalette ; UNUSED_Screen_ClearFadeOutStage ;============================================================================; ; XREFS: ; Player_HandleDeath ; Screen_FadeToBlack ; Screen_NextTransitionState ; Screen_SetFadeOutPalette ; UNUSED_Screen_ClearFadeOutStage ;[0430]Screen_FadeOutStage: [0430]00.byte $00; byte;============================================================================ ; Player's health (full) ; ; XREFS: ; Game_LoadFirstLevel ; Player_AddHP ; Player_FillHPAndMP ; Player_ReduceHP ; Player_Spawn ; Player_UseHourGlass ; Player_UseRedPotion ; UI_DrawPlayerHP ; UI_DrawPlayerHPValue ;============================================================================; ; XREFS: ; Game_LoadFirstLevel ; Player_AddHP ; Player_FillHPAndMP ; Player_ReduceHP ; Player_Spawn ; Player_UseHourGlass ; Player_UseRedPotion ; UI_DrawPlayerHP ; UI_DrawPlayerHPValue ;[0431]Player_HP_U: [0431]00.byte $00; byte;============================================================================ ; Player's health (fraction) ; ; XREFS: ; Player_ReduceHP ; Player_UseHourGlass ;============================================================================; ; XREFS: ; Player_ReduceHP ; Player_UseHourGlass ;[0432]Player_HP_L: [0432]00.byte $00; byte [0433]00 00.byte $00,$00; undefined; ; XREFS: ; Debug_ChooseArea ; EndGame_MoveToKingsRoom ; FUN_PRG15_MIRROR__daf6 ; Game_DropLadderToMascon ; Game_InitStateForStartScreen ; Game_SetupAndLoadOutsideArea ; Game_SpawnInTemple ; Player_EnterDoorToOutside ;[0435]Area_Region: [0435]00.byte $00; AreasRegion;============================================================================ ; Temporary storage for a sound ID. ; ; The sound ID to play (the A register) is stored here ; in PlaySound() while registers get pushed onto the ; stack. It's then loaded from here before calling ; PlaySoundInner(). ; ; This is not used outside of this. ; ; XREFS: ; Sound_PlayEffect ;============================================================================; ; XREFS: ; Sound_PlayEffect ;[0436]Temp_SoundIDToPlay: [0436]00.byte $00; SoundID;============================================================================ ; Player's current title ; ; XREFS: ; IScriptAction_CheckUpdatePlayerTitle ; IScriptAction_IfPlayerHasTitle ; Password_EncodeGameState ; Password_Load ; PlayerMenu_ShowStatusMenu ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_UpdateAcceleration ; Player_UseWingBoots ; TextBox_DisplayMessage ; TextBox_ShowMessage_ShowPlayerTitle ;============================================================================; ; XREFS: ; IScriptAction_CheckUpdatePlayerTitle ; IScriptAction_IfPlayerHasTitle ; Password_EncodeGameState ; Password_Load ; PlayerMenu_ShowStatusMenu ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_UpdateAcceleration ; Player_UseWingBoots ; TextBox_DisplayMessage ; TextBox_ShowMessage_ShowPlayerTitle ;[0437]PlayerTitle: [0437]00.byte $00; byte;============================================================================ ; 0x00 = Player is alive ; 0x01 = Player is dead ; ; XREFS: ; Game_InitStateForSpawn ; Game_MainLoop ; Player_HandleDeath ; Player_ReduceHP ;============================================================================[0438]PlayerIsDead: [0438]00.byte $00; bool;============================================================================ ; The temple in which the player will be spawned upon death. ; ; XREFS: ; IScriptAction_SetSpawnPoint ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Game_SpawnInTemple ;============================================================================; ; XREFS: ; IScriptAction_SetSpawnPoint ; Password_EncodeGameState ; Password_Load ; Player_SetStartGameState ; Game_SpawnInTemple ;[0439]TempleSpawnPoint: [0439]00.byte $00; Temple;============================================================================ ; A rotating counter tracking a visits to certain screens. ; ; This is used for screens that only show an item once out ; of every 4 visits. It's incremented and then checked by ; Screen_Is3Of4Visits, which is called by some ; item BScripts, to determine whether to hide or show items. ; ; XREFS: ; Screen_Is3Of4Visits ;============================================================================; ; XREFS: ; Screen_Is3Of4Visits ;[043a]Screen_TrackedVisitCount: [043a]00 00.byte $00,$00; undefined;============================================================================ ; Block properties of the currently-active screen ; ; XREFS: ; Area_GetBlockProperty ; Area_LoadBlockProperties ;============================================================================; ; XREFS: ; Area_GetBlockProperty ; Area_LoadBlockProperties ;[043c]BlockProperties: [043c]00.byte $00; [0]:; ; XREFS: ; Area_LoadBlockProperties ;[043d]BlockProperties_1_: [043d]00.byte $00; [1]: [043e]00.byte $00; [2]: [043f]00.byte $00; [3]: [0440]00.byte $00; [4]: [0441]00.byte $00; [5]: [0442]00.byte $00; [6]: [0443]00.byte $00; [7]: [0444]00.byte $00; [8]: [0445]00.byte $00; [9]: [0446]00.byte $00; [10]: [0447]00.byte $00; [11]: [0448]00.byte $00; [12]: [0449]00.byte $00; [13]: [044a]00.byte $00; [14]: [044b]00.byte $00; [15]: [044c]00.byte $00; [16]: [044d]00.byte $00; [17]: [044e]00.byte $00; [18]: [044f]00.byte $00; [19]: [0450]00.byte $00; [20]: [0451]00.byte $00; [21]: [0452]00.byte $00; [22]: [0453]00.byte $00; [23]: [0454]00.byte $00; [24]: [0455]00.byte $00; [25]: [0456]00.byte $00; [26]: [0457]00.byte $00; [27]: [0458]00.byte $00; [28]: [0459]00.byte $00; [29]: [045a]00.byte $00; [30]: [045b]00.byte $00; [31]: [045c]00.byte $00; [32]: [045d]00.byte $00; [33]: [045e]00.byte $00; [34]: [045f]00.byte $00; [35]: [0460]00.byte $00; [36]: [0461]00.byte $00; [37]: [0462]00.byte $00; [38]: [0463]00.byte $00; [39]: [0464]00.byte $00; [40]: [0465]00.byte $00; [41]: [0466]00.byte $00; [42]: [0467]00.byte $00; [43]: [0468]00.byte $00; [44]: [0469]00.byte $00; [45]: [046a]00.byte $00; [46]: [046b]00.byte $00; [47]: [046c]00.byte $00; [48]: [046d]00.byte $00; [49]: [046e]00.byte $00; [50]: [046f]00.byte $00; [51]: [0470]00.byte $00; [52]: [0471]00.byte $00; [53]: [0472]00.byte $00; [54]: [0473]00.byte $00; [55]: [0474]00.byte $00; [56]: [0475]00.byte $00; [57]: [0476]00.byte $00; [58]: [0477]00.byte $00; [59]: [0478]00.byte $00; [60]: [0479]00.byte $00; [61]: [047a]00.byte $00; [62]: [047b]00.byte $00; [63]: [047c]00.byte $00; [64]: [047d]00.byte $00; [65]: [047e]00.byte $00; [66]: [047f]00.byte $00; [67]: [0480]00.byte $00; [68]: [0481]00.byte $00; [69]: [0482]00.byte $00; [70]: [0483]00.byte $00; [71]: [0484]00.byte $00; [72]: [0485]00.byte $00; [73]: [0486]00.byte $00; [74]: [0487]00.byte $00; [75]: [0488]00.byte $00; [76]: [0489]00.byte $00; [77]: [048a]00.byte $00; [78]: [048b]00.byte $00; [79]: [048c]00.byte $00; [80]: [048d]00.byte $00; [81]: [048e]00.byte $00; [82]: [048f]00.byte $00; [83]: [0490]00.byte $00; [84]: [0491]00.byte $00; [85]: [0492]00.byte $00; [86]: [0493]00.byte $00; [87]: [0494]00.byte $00; [88]: [0495]00.byte $00; [89]: [0496]00.byte $00; [90]: [0497]00.byte $00; [91]: [0498]00.byte $00; [92]: [0499]00.byte $00; [93]: [049a]00.byte $00; [94]: [049b]00.byte $00; [95]: [049c]00.byte $00; [96]: [049d]00.byte $00; [97]: [049e]00.byte $00; [98]: [049f]00.byte $00; [99]: [04a0]00.byte $00; [100]: [04a1]00.byte $00; [101]: [04a2]00.byte $00; [102]: [04a3]00.byte $00; [103]: [04a4]00.byte $00; [104]: [04a5]00.byte $00; [105]: [04a6]00.byte $00; [106]: [04a7]00.byte $00; [107]: [04a8]00.byte $00; [108]: [04a9]00.byte $00; [109]: [04aa]00.byte $00; [110]: [04ab]00.byte $00; [111]: [04ac]00.byte $00; [112]: [04ad]00.byte $00; [113]: [04ae]00.byte $00; [114]: [04af]00.byte $00; [115]: [04b0]00.byte $00; [116]: [04b1]00.byte $00; [117]: [04b2]00.byte $00; [118]: [04b3]00.byte $00; [119]: [04b4]00.byte $00; [120]: [04b5]00.byte $00; [121]: [04b6]00.byte $00; [122]: [04b7]00.byte $00; [123]: [04b8]00.byte $00; [124]: [04b9]00.byte $00; [125]: [04ba]00.byte $00; [126]: [04bb]00.byte $00; [127]:; ; XREFS: ; Player_ApplyDamage ; Player_HandleHitByMagic ; SpriteBehavior_FlashScreenHitPlayer ; SpriteBehavior_Unknown_29_SomeSetup ; Player_ReduceHP ; Player_Something_ChangeHP ;[04bc]Arg_PlayerHealthDelta_L: [04bc]00.byte $00; byte; ; XREFS: ; Player_ApplyDamage ; Player_HandleHitByMagic ; SpriteBehavior_FlashScreenHitPlayer ; SpriteBehavior_Unknown_29_SomeSetup ; Player_ReduceHP ; Player_Something_ChangeHP ;[04bd]Arg_PlayerHealthDelta_U: [04bd]00.byte $00; byte; ; XREFS: ; SpriteBehavior_Unknown_29_SomeSetup ; Player_Something_ChangeHP ;[04be]SpriteBehaviorUnknown20_SomethingXOrY: [04be]00.byte $00; byte; ; XREFS: ; SpriteBehavior_Unknown_29_SomeSetup ; Player_Something_ChangeHP ;[04bf]BYTE_04bf: [04bf]00.byte $00; byte; ; XREFS: ; Player_Something_ChangeHP ;[04c0]Temp1_SomethingChangedHP: [04c0]00.byte $00; byte; ; XREFS: ; Player_Something_ChangeHP ;[04c1]Temp2_SomethingChangedHP: [04c1]00.byte $00; byte; ; XREFS: ; PasswordScreen_GetDPadBits ; PasswordScreen_Show ;[04c2]Password_DPadBits: [04c2]00.byte $00; ButtonBitmask;============================================================================ ; A counter used to wait after holding down a direction before auto-repeating ; the cursor movement. ; ; See PasswordScreen_GetDPadBits for usage. ; ; XREFS: ; PasswordScreen_GetDPadBits ; PasswordScreen_Show ;============================================================================; ; XREFS: ; PasswordScreen_GetDPadBits ; PasswordScreen_Show ;[04c3]Password_CounterBeforeAutoRepeatMove: [04c3]00 00 00.byte $00,$00,$00; byte; ; XREFS: ; Password_EncodeValueList ;[04c6]Password_TempY: [04c6]00.byte $00; byte; ; XREFS: ; Password_DecodeValueList ; Password_EncodeValueList ;[04c7]Password_TempX: [04c7]00.byte $00; byte; ; XREFS: ; Password_DecodeValueList ; Password_EncodeValueList ;[04c8]Password_TempA: [04c8]00.byte $00; byte; ; XREFS: ; Password_DecodeValue ; Password_EncodeValue ; Password_GenerateState ; Password_GenerateStateAndReset ; Password_Load ; Password_Maybe_CheckPasswordLength ;[04c9]Password_ByteCounter: [04c9]00.byte $00; byte; ; XREFS: ; Password_DecodeValue ; Password_EncodeValue ; Password_GenerateState ; Password_GenerateStateAndReset ; Password_Load ; Password_Maybe_CheckPasswordLength ;[04ca]Password_BitCounter: [04ca]00.byte $00; byte; ; XREFS: ; Password_GenerateState ; Password_GetNext6Bits ;[04cb]Password_6BitCount: [04cb]00.byte $00; byte [04cc]Password_Checksum: [04cc]00.byte $00; byte [04cd]Password_EncodedState: [04cd]00.byte $00; [0]:; ; XREFS: ; Password_Maybe_CheckPasswordLength ;[04ce]Password_EncodedState_1_: [04ce]00.byte $00; [1]: [04cf]00.byte $00; [2]: [04d0]00.byte $00; [3]: [04d1]00.byte $00; [4]: [04d2]00.byte $00; [5]: [04d3]00.byte $00; [6]: [04d4]00.byte $00; [7]: [04d5]00.byte $00; [8]: [04d6]00.byte $00; [9]: [04d7]00.byte $00; [10]: [04d8]00.byte $00; [11]: [04d9]00.byte $00; [12]: [04da]00.byte $00; [13]: [04db]00.byte $00; [14]: [04dc]00.byte $00; [15]: [04dd]00.byte $00; [16]: [04de]00.byte $00; [17]: [04df]00.byte $00; [18]: [04e0]00.byte $00; [19]: [04e1]00.byte $00; [20]: [04e2]00.byte $00; [21]: [04e3]00.byte $00; [22]: [04e4]00.byte $00; [23]: [04e5]00.byte $00; [24]: [04e6]00.byte $00; [25]: [04e7]00.byte $00; [26]: [04e8]00.byte $00; [27]: [04e9]00.byte $00; [28]: [04ea]00.byte $00; [29]: [04eb]00.byte $00; [30]: [04ec]00.byte $00; [31]:;============================================================================ ; Title the player will get in the next guru visit. ; ; XREFS: ; IScriptAction_CheckUpdatePlayerTitle ; PlayerMenu_ShowStatusMenu ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_CheckReachedNextTitle ;============================================================================; ; XREFS: ; IScriptAction_CheckUpdatePlayerTitle ; PlayerMenu_ShowStatusMenu ; Player_SetInitialExpAndGold ; Player_SetStartGameState ; Player_CheckReachedNextTitle ;[04ed]NextPlayerTitle: [04ed]00.byte $00; byte;============================================================================ ; Width of the HP/MP bar. ; ; This gets set when loading a screen, and is used to draw ; the screen width. ; ; It's possible that this was at one point meant to be ; updated based on progression or some other state. Pure ; speculation. ; ; XREFS: ; UI_DrawHUDSprites ; UI_SetHUDBarValue ;============================================================================; ; XREFS: ; UI_DrawHUDSprites ; UI_SetHUDBarValue ;[04ee]UI_MPAndHPBarWidth: [04ee]00.byte $00; byte [04ef]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [04f7]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [04ff]00.byte $00; undefined;============================================================================ ; Buffer of state to write to the PPU. ; ; Entries are in the order of: ; ; 1. Control + length byte ; ; Bit 7 controls whether to set PPUCTRL to ; VRAM_INC_ADD32_DOWN mode (if set). ; ; The rest controls how many bytes to write from the buffer (remaining ; bits). ; ; 2. Upper byte of PPUADDR to write. ; ; 3. Lower byte of PPUADDR to write. ; ; 4...N. Up to <length> bytes of PPUDATA to write. ; ; XREFS: ; Area_SetBlocks_SetAttributes ; Area_SetBlocks_WriteBlockDataColumn1 ; Area_SetBlocks_WriteBlockDataColumn2 ; DEADCODE_FUN_PRG15_MIRROR__c033 ; Fog_UpdateTiles ; Game_Init ; PPUBuffer_Draw ; PPUBuffer_DrawCommand_RemoveVerticalLines ; PPUBuffer_DrawCommand_RotateTilesRight1Pixel ; PPUBuffer_QueueCommandOrLength ; PPUBuffer_Set ; PPUBuffer_WritePalette ; Player_DrawDeathAnimation ; Sprites_LoadImageForCurrentSprite ;============================================================================; ; XREFS: ; Area_SetBlocks_SetAttributes ; Area_SetBlocks_WriteBlockDataColumn1 ; Area_SetBlocks_WriteBlockDataColumn2 ; DEADCODE_FUN_PRG15_MIRROR__c033 ; Fog_UpdateTiles ; Game_Init ; PPUBuffer_Draw ; PPUBuffer_DrawCommand_RemoveVerticalLines ; PPUBuffer_DrawCommand_RotateTilesRight1Pixel ; PPUBuffer_QueueCommandOrLength ; PPUBuffer_Set ; PPUBuffer_WritePalette ; Player_DrawDeathAnimation ; Sprites_LoadImageForCurrentSprite ;[0500]PPUBuffer: [0500]00.byte $00; [0]: [0501]00.byte $00; [1]: [0502]00.byte $00; [2]: [0503]00.byte $00; [3]:; ; XREFS: ; UI_ClearSelectedItemPic ;[0504]PPUBuffer_4_: [0504]00.byte $00; [4]:; ; XREFS: ; UI_ClearSelectedItemPic ;[0505]PPUBuffer_5_: [0505]00.byte $00; [5]: [0506]00.byte $00; [6]: [0507]00.byte $00; [7]:; ; XREFS: ; IScripts_DrawPortraitTileToPPU ; Player_LoadWeaponTile ;[0508]PPUBuffer_8_: [0508]00.byte $00; [8]:; ; XREFS: ; IScripts_DrawPortraitTileToPPU ; Player_LoadWeaponTile ;[0509]PPUBuffer_9_: [0509]00.byte $00; [9]: [050a]00.byte $00; [10]: [050b]00.byte $00; [11]: [050c]00.byte $00; [12]: [050d]00.byte $00; [13]: [050e]00.byte $00; [14]: [050f]00.byte $00; [15]: [0510]00.byte $00; [16]: [0511]00.byte $00; [17]: [0512]00.byte $00; [18]: [0513]00.byte $00; [19]: [0514]00.byte $00; [20]: [0515]00.byte $00; [21]: [0516]00.byte $00; [22]: [0517]00.byte $00; [23]: [0518]00.byte $00; [24]: [0519]00.byte $00; [25]: [051a]00.byte $00; [26]: [051b]00.byte $00; [27]: [051c]00.byte $00; [28]: [051d]00.byte $00; [29]: [051e]00.byte $00; [30]: [051f]00.byte $00; [31]: [0520]00.byte $00; [32]: [0521]00.byte $00; [33]: [0522]00.byte $00; [34]: [0523]00.byte $00; [35]: [0524]00.byte $00; [36]: [0525]00.byte $00; [37]: [0526]00.byte $00; [38]: [0527]00.byte $00; [39]: [0528]00.byte $00; [40]: [0529]00.byte $00; [41]: [052a]00.byte $00; [42]: [052b]00.byte $00; [43]: [052c]00.byte $00; [44]: [052d]00.byte $00; [45]: [052e]00.byte $00; [46]: [052f]00.byte $00; [47]: [0530]00.byte $00; [48]: [0531]00.byte $00; [49]: [0532]00.byte $00; [50]: [0533]00.byte $00; [51]: [0534]00.byte $00; [52]: [0535]00.byte $00; [53]: [0536]00.byte $00; [54]: [0537]00.byte $00; [55]: [0538]00.byte $00; [56]: [0539]00.byte $00; [57]: [053a]00.byte $00; [58]: [053b]00.byte $00; [59]: [053c]00.byte $00; [60]: [053d]00.byte $00; [61]: [053e]00.byte $00; [62]: [053f]00.byte $00; [63]: [0540]00.byte $00; [64]: [0541]00.byte $00; [65]: [0542]00.byte $00; [66]: [0543]00.byte $00; [67]: [0544]00.byte $00; [68]: [0545]00.byte $00; [69]: [0546]00.byte $00; [70]: [0547]00.byte $00; [71]: [0548]00.byte $00; [72]: [0549]00.byte $00; [73]: [054a]00.byte $00; [74]: [054b]00.byte $00; [75]: [054c]00.byte $00; [76]: [054d]00.byte $00; [77]: [054e]00.byte $00; [78]: [054f]00.byte $00; [79]: [0550]00.byte $00; [80]: [0551]00.byte $00; [81]: [0552]00.byte $00; [82]: [0553]00.byte $00; [83]: [0554]00.byte $00; [84]: [0555]00.byte $00; [85]: [0556]00.byte $00; [86]: [0557]00.byte $00; [87]: [0558]00.byte $00; [88]: [0559]00.byte $00; [89]: [055a]00.byte $00; [90]: [055b]00.byte $00; [91]: [055c]00.byte $00; [92]: [055d]00.byte $00; [93]: [055e]00.byte $00; [94]: [055f]00.byte $00; [95]: [0560]00.byte $00; [96]: [0561]00.byte $00; [97]: [0562]00.byte $00; [98]: [0563]00.byte $00; [99]: [0564]00.byte $00; [100]: [0565]00.byte $00; [101]: [0566]00.byte $00; [102]: [0567]00.byte $00; [103]: [0568]00.byte $00; [104]: [0569]00.byte $00; [105]: [056a]00.byte $00; [106]: [056b]00.byte $00; [107]: [056c]00.byte $00; [108]: [056d]00.byte $00; [109]: [056e]00.byte $00; [110]: [056f]00.byte $00; [111]: [0570]00.byte $00; [112]: [0571]00.byte $00; [113]: [0572]00.byte $00; [114]: [0573]00.byte $00; [115]: [0574]00.byte $00; [116]: [0575]00.byte $00; [117]: [0576]00.byte $00; [118]: [0577]00.byte $00; [119]: [0578]00.byte $00; [120]: [0579]00.byte $00; [121]: [057a]00.byte $00; [122]: [057b]00.byte $00; [123]: [057c]00.byte $00; [124]: [057d]00.byte $00; [125]: [057e]00.byte $00; [126]: [057f]00.byte $00; [127]: [0580]00.byte $00; [128]: [0581]00.byte $00; [129]: [0582]00.byte $00; [130]: [0583]00.byte $00; [131]: [0584]00.byte $00; [132]: [0585]00.byte $00; [133]: [0586]00.byte $00; [134]: [0587]00.byte $00; [135]: [0588]00.byte $00; [136]: [0589]00.byte $00; [137]: [058a]00.byte $00; [138]: [058b]00.byte $00; [139]: [058c]00.byte $00; [140]: [058d]00.byte $00; [141]: [058e]00.byte $00; [142]: [058f]00.byte $00; [143]: [0590]00.byte $00; [144]: [0591]00.byte $00; [145]: [0592]00.byte $00; [146]: [0593]00.byte $00; [147]: [0594]00.byte $00; [148]: [0595]00.byte $00; [149]: [0596]00.byte $00; [150]: [0597]00.byte $00; [151]: [0598]00.byte $00; [152]: [0599]00.byte $00; [153]: [059a]00.byte $00; [154]: [059b]00.byte $00; [155]: [059c]00.byte $00; [156]: [059d]00.byte $00; [157]: [059e]00.byte $00; [158]: [059f]00.byte $00; [159]: [05a0]00.byte $00; [160]: [05a1]00.byte $00; [161]: [05a2]00.byte $00; [162]: [05a3]00.byte $00; [163]: [05a4]00.byte $00; [164]: [05a5]00.byte $00; [165]: [05a6]00.byte $00; [166]: [05a7]00.byte $00; [167]: [05a8]00.byte $00; [168]: [05a9]00.byte $00; [169]: [05aa]00.byte $00; [170]: [05ab]00.byte $00; [171]: [05ac]00.byte $00; [172]: [05ad]00.byte $00; [173]: [05ae]00.byte $00; [174]: [05af]00.byte $00; [175]: [05b0]00.byte $00; [176]: [05b1]00.byte $00; [177]: [05b2]00.byte $00; [178]: [05b3]00.byte $00; [179]: [05b4]00.byte $00; [180]: [05b5]00.byte $00; [181]: [05b6]00.byte $00; [182]: [05b7]00.byte $00; [183]: [05b8]00.byte $00; [184]: [05b9]00.byte $00; [185]: [05ba]00.byte $00; [186]: [05bb]00.byte $00; [187]: [05bc]00.byte $00; [188]: [05bd]00.byte $00; [189]: [05be]00.byte $00; [190]: [05bf]00.byte $00; [191]: [05c0]00.byte $00; [192]: [05c1]00.byte $00; [193]: [05c2]00.byte $00; [194]: [05c3]00.byte $00; [195]: [05c4]00.byte $00; [196]: [05c5]00.byte $00; [197]: [05c6]00.byte $00; [198]: [05c7]00.byte $00; [199]: [05c8]00.byte $00; [200]: [05c9]00.byte $00; [201]: [05ca]00.byte $00; [202]: [05cb]00.byte $00; [203]: [05cc]00.byte $00; [204]: [05cd]00.byte $00; [205]: [05ce]00.byte $00; [206]: [05cf]00.byte $00; [207]: [05d0]00.byte $00; [208]: [05d1]00.byte $00; [209]: [05d2]00.byte $00; [210]: [05d3]00.byte $00; [211]: [05d4]00.byte $00; [212]: [05d5]00.byte $00; [213]: [05d6]00.byte $00; [214]: [05d7]00.byte $00; [215]: [05d8]00.byte $00; [216]: [05d9]00.byte $00; [217]: [05da]00.byte $00; [218]: [05db]00.byte $00; [219]: [05dc]00.byte $00; [220]: [05dd]00.byte $00; [221]: [05de]00.byte $00; [222]: [05df]00.byte $00; [223]: [05e0]00.byte $00; [224]: [05e1]00.byte $00; [225]: [05e2]00.byte $00; [226]: [05e3]00.byte $00; [227]: [05e4]00.byte $00; [228]: [05e5]00.byte $00; [229]: [05e6]00.byte $00; [230]: [05e7]00.byte $00; [231]: [05e8]00.byte $00; [232]: [05e9]00.byte $00; [233]: [05ea]00.byte $00; [234]: [05eb]00.byte $00; [235]: [05ec]00.byte $00; [236]: [05ed]00.byte $00; [237]: [05ee]00.byte $00; [238]: [05ef]00.byte $00; [239]: [05f0]00.byte $00; [240]: [05f1]00.byte $00; [241]: [05f2]00.byte $00; [242]: [05f3]00.byte $00; [243]: [05f4]00.byte $00; [244]: [05f5]00.byte $00; [245]: [05f6]00.byte $00; [246]: [05f7]00.byte $00; [247]: [05f8]00.byte $00; [248]: [05f9]00.byte $00; [249]: [05fa]00.byte $00; [250]: [05fb]00.byte $00; [251]: [05fc]00.byte $00; [252]: [05fd]00.byte $00; [253]: [05fe]00.byte $00; [254]: [05ff]00.byte $00; [255]:;============================================================================ ; Uncompressed block data of the current screen. ; ; The screen data can be up to 256 bytes. ; ; This section is also used for other places of the game, ; such as the password screen management and intro/outro ; animatinos. ; ; XREFS: ; PasswordScreen_DrawAtCursorPosition ; PasswordScreen_HandleDeleteAtCursor ; PasswordScreen_HandleDeleteLastChar ; PasswordScreen_HandleInputChar ; PasswordScreen_Show ; Password_Maybe_CheckPasswordLength ; Area_HandleBreakableFloor ; Area_IsBlockImpassableOrLadder ; Area_LoadBlocks ; Area_LoadScrollData ; Area_SetStateFromDoorDestination ; Area_StoreBlockIsAir ; Game_Init ; Game_OpenPathToMascon ; Player_CheckIfOnLadder ; Player_CheckOnBreakableBlock ; Player_CheckPushingBlock ; Player_UseMattock ; ScreenBuffer_Clear ; ScreenBuffer_IsBlockImpassable ; ScreenBuffer_LoadBlockProperty ; SpriteBehavior_EnemyUnused18_SomethingSetBlocks ; TextBox_GetBackingAttributeData ; Textbox_Maybe_GetAreaBehindTextbox ;============================================================================; ; XREFS: ; PasswordScreen_DrawAtCursorPosition ; PasswordScreen_HandleDeleteAtCursor ; PasswordScreen_HandleDeleteLastChar ; PasswordScreen_HandleInputChar ; PasswordScreen_Show ; Password_Maybe_CheckPasswordLength ; Area_HandleBreakableFloor ; Area_IsBlockImpassableOrLadder ; Area_LoadBlocks ; Area_LoadScrollData ; Area_SetStateFromDoorDestination ; Area_StoreBlockIsAir ; Game_Init ; Game_OpenPathToMascon ; Player_CheckIfOnLadder ; Player_CheckOnBreakableBlock ; Player_CheckPushingBlock ; Player_UseMattock ; ScreenBuffer_Clear ; ScreenBuffer_IsBlockImpassable ; ScreenBuffer_LoadBlockProperty ; SpriteBehavior_EnemyUnused18_SomethingSetBlocks ; TextBox_GetBackingAttributeData ; Textbox_Maybe_GetAreaBehindTextbox ;[0600]Password_EnteredChars: [0600]ScreenBuffer: [0600]00.byte $00; byte; ; XREFS: ; PasswordScreen_HandleDeleteAtCursor ; Password_Maybe_CheckPasswordLength ; Area_LoadScrollData ; ScreenBuffer_Clear ;[0601]DAT_0601: [0601]00.byte $00; undefined; ; XREFS: ; Password_Maybe_CheckPasswordLength ;[0602]DAT_0602: [0602]00.byte $00; undefined; ; XREFS: ; Password_Maybe_CheckPasswordLength ;[0603]DAT_0603: [0603]00.byte $00; undefined; ; XREFS: ; Password_Maybe_CheckPasswordLength ;[0604]DAT_0604: [0604]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [060c]00 00 00.byte $00,$00,$00; undefined; ; XREFS: ; Area_LoadScrollData ;[060f]DAT_060f: [060f]00.byte $00; undefined; ; XREFS: ; Area_LoadScrollData ;[0610]DAT_0610: [0610]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [0618]00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00; undefined; ; XREFS: ; Area_LoadScrollData ;[061f]DAT_061f: [061f]00 00 00.byte $00,$00,$00; undefined; ; XREFS: ; Game_DropLadderToMascon ;[0622]DAT_0622: [0622]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [062a]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [0632]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [063a]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [0642]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [064a]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [0652]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [065a]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined;============================================================================ ; Password screen state. ; ; XREFS: ; PasswordScreen_DrawSelectionCursor ; PasswordScreen_IsCursorSpotInvalid ; PasswordScreen_SetCursorCol ; PasswordScreen_Show ; PasswordScreen_UpdateCursorMovedFromLastRow ; PasswordScreen_UpdateCursorMovedToLastRow ; Password_HandleDPadInput ;============================================================================; ; The input cursor column in the password screen. ; ; ; XREFS: ; PasswordScreen_DrawSelectionCursor ; PasswordScreen_IsCursorSpotInvalid ; PasswordScreen_SetCursorCol ; PasswordScreen_Show ; PasswordScreen_UpdateCursorMovedFromLastRow ; PasswordScreen_UpdateCursorMovedToLastRow ; Password_HandleDPadInput ;[0662]Password_CursorCol: [0662]00.byte $00; byte; ; The input cursor row in the password screen. ; ; ; XREFS: ; PasswordScreen_DrawSelectionCursor ; PasswordScreen_IsCursorSpotInvalid ; PasswordScreen_Show ; Password_HandleDPadInput ;[0663]Password_CursorRow: [0663]00.byte $00; byte; ; The position of the selection cursor in the password field. ; ; ; XREFS: ; PasswordScreen_DrawAtCursorPosition ; PasswordScreen_HandleDeleteAtCursor ; PasswordScreen_HandleDeleteLastChar ; PasswordScreen_HandleInputChar ; PasswordScreen_HandleMoveCursorLeft ; PasswordScreen_HandleMoveCursorRight ; PasswordScreen_Show ; PasswordScreen_WriteCharTile ;[0664]Password_FieldCursorPos: [0664]00.byte $00; byte; ; Maximum number of characters allowed for the password. ; ; ; XREFS: ; PasswordScreen_HandleInputChar ; PasswordScreen_HandleMoveCursorLeft ; PasswordScreen_HandleMoveCursorRight ; PasswordScreen_Show ;[0665]Password_MaxChars: [0665]00.byte $00; byte; ; The number of password characters entered. ; ; ; XREFS: ; PasswordScreen_HandleDeleteAtCursor ; PasswordScreen_HandleDeleteLastChar ; PasswordScreen_HandleInputChar ; PasswordScreen_HandleMoveCursorLeft ; PasswordScreen_HandleMoveCursorRight ; PasswordScreen_Show ; PasswordScreen_WaitForInput ; Password_Maybe_CheckPasswordLength ;[0666]Password_EnteredCharsLength: [0666]00.byte $00; byte [0667]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [066f]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [0677]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [067f]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [0687]DAT_0687: [0687]00.byte $00; undefined; ; XREFS: ; SplashAnimation_FuncAA94 ; SplashAnimation_SomethingUpdateState ;[0688]SplashAnimation_Something_SpriteOffset: [0688]00.byte $00; undefined [0689]SplashAnimation_0689: [0689]00.byte $00; byte [068a]SplashAnimation_068a: [068a]00.byte $00; byte; ; XREFS: ; SplashAnimation_FuncAA94 ;[068b]DAT_068b: [068b]00.byte $00; undefined; ; XREFS: ; Maybe_SplashAnimation_InitIntroState ; Maybe_SplashAnimation_InitOutroState ; SplashAnimation_A90F ; SplashAnimation_Maybe_AnimPlayerStep ;[068c]SplashAnimation_068c: [068c]00.byte $00; undefined;============================================================================ ; Counter indicating the player size scale in the intro animation. ; ; This goes from 0 to 4. The larger the number, the smaller ; the player. ; ; XREFS: ; Maybe_SplashAnimation_InitIntroState ; Maybe_SplashAnimation_InitOutroState ; SplashAnimation_A90F ; SplashAnimation_Maybe_AnimPlayerStep ; SplashAnimation_Maybe_CalcPlayerAnimSize ; SplashAnimation_Maybe_CalcPlayerAnimState ; SplashAnimation_RunIntro ;============================================================================; ; XREFS: ; Maybe_SplashAnimation_InitIntroState ; Maybe_SplashAnimation_InitOutroState ; SplashAnimation_A90F ; SplashAnimation_Maybe_AnimPlayerStep ; SplashAnimation_Maybe_CalcPlayerAnimSize ; SplashAnimation_Maybe_CalcPlayerAnimState ; SplashAnimation_RunIntro ;[068d]IntroAnimation_PlayerSizeCounter: [068d]00.byte $00; byte; ; XREFS: ; Maybe_SplashAnimation_InitIntroState ; Maybe_SplashAnimation_InitOutroState ; SplashAnimation_A90F ; SplashAnimation_Maybe_NextAnimState1 ;[068e]SplashAnimation_068e: [068e]00.byte $00; byte; ; XREFS: ; Maybe_SplashAnimation_InitIntroState ; Maybe_SplashAnimation_InitOutroState ; SplashAnimation_A90F ; SplashAnimation_Maybe_NextAnimState2 ; SplashAnimation_RunOutro ;[068f]SplashAnimation_068f: [068f]00.byte $00; byte; ; XREFS: ; Maybe_SplashAnimation_InitIntroState ; Maybe_SplashAnimation_InitOutroState ; SplashAnimation_Maybe_NextAnimState1 ;[0690]SplashAnimation_0690: [0690]00.byte $00; byte; ; XREFS: ; Maybe_SplashAnimation_InitIntroState ; Maybe_SplashAnimation_InitOutroState ; SplashAnimation_Maybe_NextAnimState2 ;[0691]SplashAnimation_0691: [0691]00.byte $00; byte; ; XREFS: ; Maybe_SplashAnimation_InitIntroState ; Maybe_SplashAnimation_InitOutroState ; SplashAnimation_Maybe_CalcPlayerAnimSize ; SplashAnimation_Maybe_CalcPlayerAnimState ; SplashAnimation_Maybe_NextAnimState1 ;[0692]SplashAnimation_0692: [0692]00.byte $00; byte; ; XREFS: ; Maybe_SplashAnimation_InitIntroState ; Maybe_SplashAnimation_InitOutroState ; SplashAnimation_Maybe_CalcPlayerAnimSize ; SplashAnimation_Maybe_CalcPlayerAnimState ; SplashAnimation_Maybe_NextAnimState2 ;[0693]SplashAnimation_0693: [0693]00.byte $00; byte; ; XREFS: ; LAB_PRG12__a9f8 [$PRG12::a9f8] ; SpashAnimation_SomethingOutro_a9a2 ;[0694]SplashAnimation_0694: [0694]00.byte $00; [0]:; ; XREFS: ; LAB_PRG12__a9f8 [$PRG12::a9f8] ; SpashAnimation_SomethingOutro_a9a2 ;[0695]SplashAnimation_0695: [0695]00.byte $00; [1]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ;[0696]SplashAnimation_0696: [0696]00.byte $00; [0]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ;[0697]SplashAnimation_0697: [0697]00.byte $00; [1]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ; SpashAnimation_SomethingOutro_aa20 ;[0698]SplashAnimation_0698: [0698]00.byte $00; [0]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ;[0699]SplashAnimation_0698_1_: [0699]00.byte $00; [1]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ; SpashAnimation_SomethingOutro_aa46 ;[069a]SplashAnimation_069a: [069a]00.byte $00; [0]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ;[069b]SplashAnimation_069a_1_: [069b]00.byte $00; [1]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ; SpashAnimation_SomethingOutro_aa20 ;[069c]SplashAnimation_069c: [069c]00.byte $00; [0]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ;[069d]SplashAnimation_069c_1_: [069d]00.byte $00; [1]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ; SpashAnimation_SomethingOutro_aa46 ;[069e]SplashAnimation_069e: [069e]00.byte $00; [0]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ;[069f]SplashAnimation_069e_1_: [069f]00.byte $00; [1]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ; SpashAnimation_SomethingOutro_aa20 ;[06a0]SplashAnimation_06a0: [06a0]00.byte $00; [0]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ;[06a1]SplashAnimation_06a0_1_: [06a1]00.byte $00; [1]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ; SpashAnimation_SomethingOutro_aa46 ;[06a2]SplashAnimation_06a2: [06a2]00.byte $00; [0]:; ; XREFS: ; SpashAnimation_SomethingOutro_a9a2 ;[06a3]SplashAnimation_06a2_1_: [06a3]00.byte $00; [1]:; ; XREFS: ; SplashAnimation_Intro_SomethingA708 ; SplashAnimation_RunIntro ;[06a4]SplashAnimation_PaletteStage: [06a4]00.byte $00; byte; ; XREFS: ; SplashAnimation_DrawScenery ;[06a5]SplashAnimation_SceneIndex: [06a5]00.byte $00; byte [06a6]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [06ae]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [06b6]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [06be]00 00.byte $00,$00; undefined; ; XREFS: ; Area_LoadScrollData ;[06c0]DAT_06c0: [06c0]00.byte $00; undefined; ; XREFS: ; Area_LoadScrollData ;[06c1]DAT_06c1: [06c1]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [06c9]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [06d1]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [06d9]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [06e1]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [06e9]00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00; undefined; ; XREFS: ; Area_LoadBlocks ;[06f0]DAT_06f0: [06f0]00.byte $00; undefined; ; XREFS: ; Area_LoadBlocks ;[06f1]DAT_06f1: [06f1]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; undefined [06f9]00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00; undefined; ; XREFS: ; SplashAnimation_FuncAA94 ; SplashAnimation_SomethingUpdateState ; Game_Init ; Sprite_Draw_FlippedHoriz ; Sprite_Draw_Standard ; Sprites_Reset ;[0700]SPRITE0_Y: [0700]SPRITE_0_RANGE_1_START: [0700]00.byte $00; byte; ; XREFS: ; SplashAnimation_FuncAA94 ; Sprites_Reset ;[0701]SPRITE0_TILE: [0701]00.byte $00; byte; ; XREFS: ; SplashAnimation_FuncAA94 ; Sprites_Reset ;[0702]SPRITE0_ATTRS: [0702]00.byte $00; byte; ; XREFS: ; SplashAnimation_FuncAA94 ; Sprites_Reset ;[0703]SPRITE0_X: [0703]00.byte $00; byte; ; XREFS: ; SplashAnimation_SomethingUpdateState ; Sprites_FlipRanges ;[0704]SPRITE_1_RANGE_1_START: [0704]00.byte $00; byte; ; XREFS: ; Sprites_FlipRanges ;[0705]BYTE_0705: [0705]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [070d]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0715]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [071d]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0725]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [072d]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0735]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [073d]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0745]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [074d]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0755]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [075d]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0765]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [076d]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0775]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [077d]00 00 00.byte $00,$00,$00; byte [0780]SPRITE_0_RANGE_2_START: [0780]00 00 00 00.byte $00,$00,$00,$00; byte; ; XREFS: ; Sprites_FlipRanges ;[0784]SPRITE_1_RANGE_2_START: [0784]00.byte $00; byte; ; XREFS: ; Sprites_FlipRanges ;[0785]BYTE_0785: [0785]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [078d]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [0795]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [079d]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07a5]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07ad]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07b5]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07bd]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07c5]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07cd]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07d5]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07dd]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07e5]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07ed]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07f5]00 00 00 00 00 00 00 00.byte $00,$00,$00,$00,$00,$00,$00,$00; byte [07fd]00 00 00.byte $00,$00,$00; byte