Merge pull request #138 from AnonymousRandomPerson/main

Decomped some dungeon init functions
This commit is contained in:
AnonymousRandomPerson
2025-06-15 20:09:43 -04:00
committed by GitHub
27 changed files with 13251 additions and 13188 deletions

View File

@@ -1,4 +1,241 @@
#pragma once
.public AddItemToStorage
.public AddMoneyCarried
.public ApplyLevelUpBoostsToGroundMonster
.public Arm9LoadUnkFieldNa0x2029EC8
.public Arm9StoreUnkFieldNa0x2029ED8
.public BAG_ITEMS_PTR_MIRROR
.public CanMonsterUseMove
.public CardBackupError
.public CardPullOutWithStatus
.public CheckDebugMenuField0x1A4
.public CheckOptionsMenuField0x1A4
.public CheckParentMenuField0x1A0
.public ClearAdventureLogStruct
.public ClearWindow
.public CloseAdvancedMenu
.public CloseAdvancedTextBox
.public CloseAdvancedTextBox2
.public CloseCollectionMenu
.public CloseDebugMenu
.public CloseDialogueBox
.public CloseOptionsMenu
.public CloseParentMenu
.public ClosePortraitBox
.public CloseScrollBox
.public CloseSimpleMenu
.public CloseTeamSelectionMenu
.public CloseTextBox
.public CloseTextBox2
.public ConvertStorageItemAtIdxToItem
.public CopyBitsFrom
.public CopyBitsTo
.public CopyNStringFromId
.public CopyProgressInfoFromScratchFrom
.public CopyProgressInfoFromScratchTo
.public CountNbOfItemsInStorage
.public CountNbOfValidItemsInStorage
.public CountNbOfValidItemsInTimeDarknessInStorage
.public CreateAdvancedMenu
.public CreateAdvancedTextBox
.public CreateAdvancedTextBoxWithArg
.public CreateCollectionMenu
.public CreateDebugMenu
.public CreateDialogueBox
.public CreateOptionsMenu
.public CreateParentMenu
.public CreateParentMenuFromStringIds
.public CreatePortraitBox
.public CreateScrollBoxMulti
.public CreateScrollBoxSingle
.public CreateSimpleMenu
.public CreateSimpleMenuFromStringIds
.public CreateTeamSelectionMenu
.public CreateTextBox
.public CreateTextBoxWithArg
.public DEFAULT_HERO_ID
.public DUNGEON_PTR
.public Debug_GetDebugFlag
.public Debug_GetLogFlag
.public Debug_Print0
.public Debug_SetDebugFlag
.public Debug_SetLogFlag
.public DisableIqSkill
.public DrawTextInWindow
.public DrawTileGrid
.public DumpScriptVariableValues
.public EnableAllLearnableIqSkills
.public EventFlagBackup
.public EventFlagResume
.public FORBIDDEN_FORGOT_MOVE_LIST
.public FemaleToMaleForm
.public FormatMoveStringMore
.public GAME_MODE
.public GetActiveRosterIndex
.public GetActiveTeamMember
.public GetActualSellPrice
.public GetAdvancedMenuCurrentOption
.public GetAdvancedMenuResult
.public GetAdvancedTextBoxFlags2
.public GetAdventureLogDungeonFloor
.public GetCurrentBagCapacity
.public GetDexNumber
.public GetDungeonResultString
.public GetEvolutionPossibilities
.public GetExecuteSpecialEpisodeType
.public GetHeldButtons
.public GetHero
.public GetHeroMemberIdx
.public GetInfoGroundMoveset
.public GetIqSkillStringId
.public GetItemAtIdx
.public GetItemCategory
.public GetItemCategoryVeneer
.public GetItemMoveId16
.public GetKeyM2NSwitch
.public GetLanguageType
.public GetLearnableIqSkills
.public GetMainCharacter1MemberIdx
.public GetMainCharacter2MemberIdx
.public GetMainCharacter3MemberIdx
.public GetMaxPp
.public GetMoneyCarried
.public GetMonsterGenderVeneer
.public GetMonsterName
.public GetMoveRangeId
.public GetMoveType
.public GetNameRaw
.public GetNameString
.public GetNameWithGender
.public GetNbItemsInBag
.public GetNextIqSkill
.public GetOptionsMenuResult
.public GetOptionsMenuStates
.public GetPartner
.public GetPartnerMemberIdx
.public GetPerformanceFlagWithChecks
.public GetPpIncrease
.public GetPressedButtons
.public GetRank
.public GetRankUpEntry
.public GetReleasedStylus
.public GetRngSeed
.public GetSimpleMenuResult
.public GetSpecialEpisodeType
.public GetSpeciesString
.public GetStringFromFileVeneer
.public GetTeamMember
.public GetTime
.public GetType
.public GetTypeStringId
.public GetWindow
.public HidePortraitBox
.public InitMove
.public InitPortraitParams
.public InitPortraitParamsWithMonsterId
.public InitPreprocessorArgs
.public InitScriptVariableValues
.public IqSkillFlagTest
.public Is2TurnsMove
.public IsAdvancedMenuActive2
.public IsAdvancedTextBoxActive
.public IsCollectionMenuActive
.public IsCollectionMenuState3
.public IsDebugMenuActive
.public IsDeoxys
.public IsDialogueBoxActive
.public IsExclusiveItemIdForMonster
.public IsExperienceLocked
.public IsGummi
.public IsItemInTimeDarkness
.public IsItemValidVeneer
.public IsMainCharacter
.public IsMonsterIllegalForMissions
.public IsMovesetValidInTimeDarkness
.public IsNot2TurnsMoveOrSketch
.public IsOptionsMenuActive
.public IsParentMenuActive
.public IsScrollBoxActive
.public IsShaymin
.public IsShoppableItem
.public IsSimpleMenuActive
.public IsStorableItem
.public IsStorageFull
.public IsTeamSelectionMenuActive
.public IsTeamSelectionMenuState3
.public IsThrownItem
.public IsTreasureBox
.public IsValidPortrait
.public IsValidTeamMember
.public KEYBOARD_STRING_IDS
.public LAST_NEW_MOVE
.public LearnMoves
.public LoadOverlay
.public LoadScriptVariableValue
.public MemAlloc
.public MemFree
.public MemZero
.public MemcpySimple
.public MemsetSimple
.public NOTIFY_NOTE
.public OS_GetLockID
.public OverlayIsLoaded
.public PARTNER_TALK_KIND_TABLE
.public PlayAdvancedTextBoxInputSound
.public PlayBgmByIdVeneer
.public PlaySeVolumeWrapper
.public PreprocessString
.public PreprocessStringFromId
.public Rand32Bit
.public RandInt
.public RandIntSafe
.public ReadItemsFromSave
.public ReadMonsterInfoFromSave
.public ReadStringFromDialogueBox
.public RemoveEmptyItemsInBag
.public ResetGlobalProgress
.public RestoreScriptVariableValues
.public ResumeAdvancedMenu
.public SPECIAL_EPISODE_MAIN_CHARACTERS
.public STATUSES_FULL_DESCRIPTION_STRING_IDS
.public SaveScriptVariableValue
.public SaveScriptVariableValueBytes
.public SetActiveInventory
.public SetActiveKecleonShop
.public SetActiveTeam
.public SetAdvancedTextBoxField0x1C2
.public SetAdvancedTextBoxPartialMenu
.public SetAdvancedTextBoxState5
.public SetBothScreensWindowsColor
.public SetCollectionMenuField0x1BC
.public SetCollectionMenuVoidFn
.public SetCollectionMenuWidth
.public SetMainTeamName
.public SetPortraitEmotion
.public SetPortraitLayout
.public SetPortraitOffset
.public SetRngSeed
.public SetSimpleMenuField0x1AC
.public SetTeamSetupHeroAndPartnerOnly
.public SetUnkAdvancedTextBoxFn
.public SetUnkAdvancedTextBoxWindowFn
.public ShowDialogueBox
.public ShowPortraitInPortraitBox
.public ShowStringIdInDialogueBox
.public ShowStringInDialogueBox
.public SortItemsInBag
.public SortItemsInStorage
.public StoreDefaultTeamData
.public StrcpySimple
.public StringFromId
.public StrncpyName
.public StrncpySimple
.public StrncpySimpleNoPadSafe
.public TEAM_MEMBER_TABLE_PTR
.public TryPointCameraToMonster
.public UpdateWindow
.public WriteItemsToSave
.public WriteMonsterInfoToSave
.public _0209B08C
.public _0209B09C
.public _0209B0EC
@@ -158,26 +395,7 @@
.public _0209CE78
.public _0209CE88
.public _0209CE89
.public _0209CEAC
.public _0209CF0C
.public _0209CF28
.public _0209CF48
.public _0209CF64
.public _0209CF84
.public _0209DF70
.public _0209DFA0
.public _0209DFC8
.public _0209DFE8
.public _0209E008
.public _0209E010
.public _0209E011
.public _0209E264
.public _0209E3A1
.public _0209E3A2
.public _0209E3A3
.public _0209E6BD
.public _0209E912
.public _020A192C
.public _020A2808
.public _020A281C
.public _020A2830
@@ -187,23 +405,6 @@
.public _020A2880
.public _020A2894
.public _020A28A8
.public _020A28E0
.public _020A2904
.public _020A2928
.public _020A294C
.public _020A2970
.public _020A2994
.public _020A29B8
.public _020A29DC
.public _020A2A00
.public _020A2A24
.public _020A2A48
.public _020A2A6C
.public _020A2A90
.public _020A2AB4
.public _020A2AD8
.public _020A2AFC
.public _020A2B20
.public _020AFDB8
.public _020AFDBC
.public _020AFDD0
@@ -264,221 +465,10 @@
.public _022AB0A1
.public _022AB0A2
.public _022AB0A9
.public _022AB4F8
.public _022AB510
.public _022AB518
.public _022AB5A8
.public _022AB5AC
.public _022AB69C
.public _022AB924
.public _f2d
.public _fsub
.public _s32_div_f
.public AddItemToStorage
.public AddMoneyCarried
.public ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS
.public ADVENTURE_LOG_PTR
.public ApplyLevelUpBoostsToGroundMonster
.public ARM9_UNKNOWN_DATA__NA_209E6BC
.public ARM9_UNKNOWN_TABLE__NA_209E12C
.public ARM9_UNKNOWN_TABLE__NA_209E164
.public ARM9_UNKNOWN_TABLE__NA_209E280
.public Arm9LoadUnkFieldNa0x2029EC8
.public Arm9StoreUnkFieldNa0x2029ED8
.public BAG_ITEMS_PTR_MIRROR
.public CanMonsterUseMove
.public CardBackupError
.public CardPullOutWithStatus
.public CheckDebugMenuField0x1A4
.public CheckOptionsMenuField0x1A4
.public CheckParentMenuField0x1A0
.public ClearWindow
.public CLIENT_LEVEL_TABLE
.public CloseAdvancedMenu
.public CloseAdvancedTextBox
.public CloseAdvancedTextBox2
.public CloseCollectionMenu
.public CloseDebugMenu
.public CloseDialogueBox
.public CloseOptionsMenu
.public CloseParentMenu
.public ClosePortraitBox
.public CloseScrollBox
.public CloseSimpleMenu
.public CloseTeamSelectionMenu
.public CloseTextBox
.public CloseTextBox2
.public ConvertStorageItemAtIdxToItem
.public Copy16BitsFrom
.public CopyNStringFromId
.public CountNbOfItemsInStorage
.public CountNbOfValidItemsInStorage
.public CountNbOfValidItemsInTimeDarknessInStorage
.public CreateAdvancedMenu
.public CreateAdvancedTextBox
.public CreateAdvancedTextBoxWithArg
.public CreateCollectionMenu
.public CreateDebugMenu
.public CreateDialogueBox
.public CreateOptionsMenu
.public CreateParentMenu
.public CreateParentMenuFromStringIds
.public CreatePortraitBox
.public CreateScrollBoxMulti
.public CreateScrollBoxSingle
.public CreateSimpleMenu
.public CreateSimpleMenuFromStringIds
.public CreateTeamSelectionMenu
.public CreateTextBox
.public CreateTextBoxWithArg
.public Debug_FatalError
.public Debug_GetDebugFlag
.public Debug_GetLogFlag
.public Debug_Print
.public Debug_Print0
.public Debug_SetDebugFlag
.public Debug_SetLogFlag
.public DEBUG_SPECIAL_EPISODE_NUMBER
.public DEFAULT_HERO_ID
.public DisableIqSkill
.public DrawTextInWindow
.public DrawTileGrid
.public DUNGEON_DATA_LIST
.public DUNGEON_PTR
.public DungeonSwapIdToIdx
.public DungeonSwapIdxToId
.public EnableAllLearnableIqSkills
.public FemaleToMaleForm
.public FileClose
.public FileRom_HandleOpen
.public FileRom_HandleRead
.public FileRom_HandleSeek
.public FileRom_InitDataTransfer
.public FileRom_StopDataTransfer
.public FileRom_Veneer_FileInit
.public FORBIDDEN_FORGOT_MOVE_LIST
.public FormatMoveStringMore
.public GAME_MODE
.public GetActiveRosterIndex
.public GetActiveTeamMember
.public GetActualSellPrice
.public GetAdvancedMenuCurrentOption
.public GetAdvancedMenuResult
.public GetAdvancedTextBoxFlags2
.public GetBaseFormCastformCherrimDeoxys
.public GetBodySize
.public GetCurrentBagCapacity
.public GetDexNumber
.public GetDexNumberVeneer
.public GetDungeonModeSpecial
.public GetDungeonResultString
.public GetEvolutionPossibilities
.public GetHeldButtons
.public GetHero
.public GetHeroMemberIdx
.public GetInfoGroundMoveset
.public GetIqSkillStringId
.public GetItemAtIdx
.public GetItemCategory
.public GetItemCategoryVeneer
.public GetItemMoveId16
.public GetKeyM2NSwitch
.public GetLanguageType
.public GetLearnableIqSkills
.public GetMainCharacter1MemberIdx
.public GetMainCharacter2MemberIdx
.public GetMainCharacter3MemberIdx
.public GetMaxItemsAllowed
.public GetMaxMembersAllowed
.public GetMaxPp
.public GetMoneyCarried
.public GetMoneyStored
.public GetMonsterGenderVeneer
.public GetMonsterName
.public GetMoveRangeId
.public GetMoveType
.public GetNameRaw
.public GetNameString
.public GetNameWithGender
.public GetNbItemsInBag
.public GetNextIqSkill
.public GetOptionsMenuResult
.public GetOptionsMenuStates
.public GetPartner
.public GetPartnerMemberIdx
.public GetPartyMembers
.public GetPpIncrease
.public GetPressedButtons
.public GetRankUpEntry
.public GetReleasedStylus
.public GetRngSeed
.public GetSimpleMenuResult
.public GetSosMailCount
.public GetSpeciesString
.public GetStringFromFileVeneer
.public GetTeamMember
.public GetTime
.public GetType
.public GetWindow
.public GLOBAL_PROGRESS_PTR
.public GUEST_MONSTER_DATA
.public GuestMonsterToGroundMonster
.public HidePortraitBox
.public InitMove
.public InitPreprocessorArgs
.public IqSkillFlagTest
.public Is2TurnsMove
.public IsAdvancedMenuActive2
.public IsAdvancedTextBoxActive
.public IsCollectionMenuActive
.public IsCollectionMenuState3
.public IsDebugMenuActive
.public IsDeoxys
.public IsDialogueBoxActive
.public IsExclusiveItemIdForMonster
.public IsExperienceLocked
.public IsGummi
.public IsItemInTimeDarkness
.public IsItemValidVeneer
.public IsLevelResetDungeon
.public IsMainCharacter
.public IsMoneyAllowed
.public IsMonsterIllegalForMissions
.public IsMovesetValidInTimeDarkness
.public IsNot2TurnsMoveOrSketch
.public IsOptionsMenuActive
.public IsParentMenuActive
.public IsRealMove
.public IsRecruitingAllowed
.public IsScrollBoxActive
.public IsShaymin
.public IsShoppableItem
.public IsSimpleMenuActive
.public IsStorableItem
.public IsStorageFull
.public IsTeamSelectionMenuActive
.public IsTeamSelectionMenuState3
.public IsThrownItem
.public IsTreasureBox
.public IsValidTeamMember
.public KAOMADO_FILEPATH
.public KAOMADO_STREAM
.public KEYBOARD_STRING_IDS
.public LAST_NEW_MOVE
.public LearnMoves
.public LoadOverlay
.public MemAlloc
.public memcpy
.public MemcpySimple
.public MemFree
.public MemsetSimple
.public MemZero
.public MISSION_FLOOR_RANKS_PTRS
.public NormalizeTreasureBox
.public NOTIFY_NOTE
.public OS_GetLockID
.public OUTLAW_LEVEL_TABLE
.public OUTLAW_MINION_LEVEL_TABLE
.public ov11_022E6E68
.public ov11_023061CC
.public ov11_023061E4
@@ -494,76 +484,21 @@
.public ov29_022EA62C
.public ov29_023002F0
.public ov29_02347100
.public OverlayIsLoaded
.public PARTNER_TALK_KIND_TABLE
.public PENDING_DUNGEON_ID
.public PLAY_TIME_SECONDS
.public PlayAdvancedTextBoxInputSound
.public PlayBgmByIdVeneer
.public PlaySeVolumeWrapper
.public PORTRAIT_LAYOUTS
.public PreprocessString
.public PreprocessStringFromId
.public Rand32Bit
.public RandInt
.public RandIntSafe
.public ReadItemsFromSave
.public ReadMonsterInfoFromSave
.public ReadStringFromDialogueBox
.public RemoveEmptyItemsInBag
.public ResumeAdvancedMenu
.public SCRIPT_VARS
.public SCRIPT_VARS_LOCALS
.public SCRIPT_VARS_VALUES
.public SECONDARY_TERRAIN_TYPES
.public SetActiveInventory
.public SetActiveKecleonShop
.public SetActiveTeam
.public SetAdvancedTextBoxField0x1C2
.public SetAdvancedTextBoxPartialMenu
.public SetAdvancedTextBoxState5
.public SetBothScreensWindowsColor
.public SetCollectionMenuField0x1BC
.public SetCollectionMenuVoidFn
.public SetCollectionMenuWidth
.public SetMoneyCarried
.public SetMoneyStored
.public SetRngSeed
.public SetSimpleMenuField0x1AC
.public SetTeamSetupHeroAndPartnerOnly
.public SetUnkAdvancedTextBoxFn
.public SetUnkAdvancedTextBoxWindowFn
.public ShowDialogueBox
.public ShowPortraitInPortraitBox
.public ShowStringIdInDialogueBox
.public ShowStringInDialogueBox
.public SortItemsInBag
.public SortItemsInStorage
.public SPECIAL_EPISODE_MAIN_CHARACTERS
.public sprintf
.public STATUSES_FULL_DESCRIPTION_STRING_IDS
.public strcat
.public strcpy
.public StrcpySimple
.public StringFromId
.public strlen
.public strncmp
.public strncpy
.public StrncpyName
.public StrncpySimple
.public StrncpySimpleNoPad
.public StrncpySimpleNoPadSafe
.public sub_02001808
.public sub_02002580
.public sub_020027F8
.public sub_02003B94
.public sub_02003BC8
.public sub_02004F80
.public sub_020063F4
.public sub_02006498
.public sub_02006BFC
.public sub_02006C8C
.public sub_0200C4CC
.public sub_0200C5DC
.public sub_0200CABC
.public sub_0200CAD4
@@ -667,7 +602,21 @@
.public sub_020347F0
.public sub_02034840
.public sub_020348E4
.public sub_020515C4
.public sub_0204B028
.public sub_0204C9F4
.public sub_0204CDB8
.public sub_0204DA1C
.public sub_0204E154
.public sub_0204E19C
.public sub_0204E210
.public sub_0204E3C8
.public sub_0204F9B8
.public sub_02050974
.public sub_02050990
.public sub_020509BC
.public sub_02050C10
.public sub_02050CF8
.public sub_02050D84
.public sub_02052C74
.public sub_02052CD8
.public sub_02052CE8
@@ -685,8 +634,6 @@
.public sub_02055B78
.public sub_02055D4C
.public sub_02056228
.public sub_0205633C
.public sub_02056360
.public sub_02056410
.public sub_02056460
.public sub_020564B0
@@ -705,20 +652,11 @@
.public sub_0205B0A0
.public sub_0205B0B8
.public sub_0205B478
.public sub_0205B77C
.public sub_0205BB7C
.public sub_0205BD14
.public sub_0205BD9C
.public sub_0205BFB0
.public sub_0205C2A4
.public sub_0205C548
.public sub_0205C75C
.public sub_0205EE40
.public sub_0205F00C
.public sub_0205FAB0
.public sub_0205FC20
.public sub_0205FD88
.public sub_0205FE80
.public sub_0206637C
.public sub_02079094
.public sub_0207B9EC
@@ -729,14 +667,4 @@
.public sub_02083B14
.public sub_02083B3C
.public sub_02084304
.public TEAM_MEMBER_TABLE_PTR
.public TEAM_NAME
.public TryPointCameraToMonster
.public UpdateWindow
.public VERSION_EXCLUSIVE_MONSTERS
.public vsprintf
.public WONDER_MAIL_BITS_MAP
.public WONDER_MAIL_BITS_SWAP
.public WONDER_MAIL_ENCRYPTION_TABLE
.public WriteItemsToSave
.public WriteMonsterInfoToSave

View File

@@ -0,0 +1,146 @@
#pragma once
.public ADVENTURE_LOG_ENCOUNTERS_MONSTER_IDS
.public ADVENTURE_LOG_PTR
.public ARM9_UNKNOWN_DATA__NA_209E6BC
.public ARM9_UNKNOWN_TABLE__NA_209E12C
.public ARM9_UNKNOWN_TABLE__NA_209E164
.public ARM9_UNKNOWN_TABLE__NA_209E280
.public AddMoneyCarried
.public ApplyLevelUpBoostsToGroundMonster
.public CLIENT_LEVEL_TABLE
.public Copy16BitsFrom
.public CopyNStringFromId
.public DEBUG_SPECIAL_EPISODE_NUMBER
.public DUNGEON_DATA_LIST
.public Debug_FatalError
.public Debug_Print
.public Debug_Print0
.public DungeonSwapIdToIdx
.public DungeonSwapIdxToId
.public FemaleToMaleForm
.public FileClose
.public FileRom_HandleOpen
.public FileRom_HandleRead
.public FileRom_HandleSeek
.public FileRom_InitDataTransfer
.public FileRom_StopDataTransfer
.public FileRom_Veneer_FileInit
.public GAME_MODE
.public GLOBAL_PROGRESS_PTR
.public GUEST_MONSTER_DATA
.public GetBaseFormCastformCherrimDeoxys
.public GetBodySize
.public GetDexNumber
.public GetDexNumberVeneer
.public GetDungeonModeSpecial
.public GetGameMode
.public GetLanguageType
.public GetMaxItemsAllowed
.public GetMaxMembersAllowed
.public GetMoneyCarried
.public GetMoneyStored
.public GetNameString
.public GetNbItemsInBag
.public GetNotifyNote
.public GetPartyMembers
.public GetRankUpEntry
.public GetSosMailCount
.public GetStringFromFileVeneer
.public GuestMonsterToGroundMonster
.public IsItemValidVeneer
.public IsLevelResetDungeon
.public IsMoneyAllowed
.public IsRealMove
.public IsRecruitingAllowed
.public KAOMADO_FILEPATH
.public KAOMADO_STREAM
.public MISSION_FLOOR_RANKS_PTRS
.public MemAlloc
.public MemZero
.public MemcpySimple
.public NormalizeTreasureBox
.public OUTLAW_LEVEL_TABLE
.public OUTLAW_MINION_LEVEL_TABLE
.public PENDING_DUNGEON_ID
.public PLAY_TIME_SECONDS
.public PORTRAIT_LAYOUTS
.public RandInt
.public SCRIPT_VARS
.public SCRIPT_VARS_LOCALS
.public SCRIPT_VARS_VALUES
.public SECONDARY_TERRAIN_TYPES
.public SetMoneyCarried
.public SetMoneyStored
.public SetNotifyNote
.public StringFromId
.public StrncpyName
.public StrncpySimpleNoPad
.public StrncpySimpleNoPadSafe
.public TEAM_MEMBER_TABLE_PTR
.public TEAM_NAME
.public VERSION_EXCLUSIVE_MONSTERS
.public WONDER_MAIL_BITS_MAP
.public WONDER_MAIL_BITS_SWAP
.public WONDER_MAIL_ENCRYPTION_TABLE
.public _0209CEAC
.public _0209CF0C
.public _0209CF28
.public _0209CF48
.public _0209CF64
.public _0209CF84
.public _0209DF70
.public _0209DFA0
.public _0209DFC8
.public _0209DFE8
.public _0209E008
.public _0209E010
.public _0209E011
.public _0209E264
.public _0209E3A1
.public _0209E3A2
.public _0209E3A3
.public _0209E6BD
.public _020A192C
.public _020A28E0
.public _020A2904
.public _020A2928
.public _020A294C
.public _020A2970
.public _020A2994
.public _020A29B8
.public _020A29DC
.public _020A2A00
.public _020A2A24
.public _020A2A48
.public _020A2A6C
.public _020A2A90
.public _020A2AB4
.public _020A2AD8
.public _020A2AFC
.public _020A2B20
.public _022AB4F8
.public _022AB510
.public _022AB518
.public _022AB5A8
.public _022AB5AC
.public _022AB69C
.public _022AB924
.public _s32_div_f
.public sub_02004F80
.public sub_0200C4CC
.public sub_02048BFC
.public sub_02048CB8
.public sub_0204ABB8
.public sub_0204ACDC
.public sub_020515C4
.public sub_0205633C
.public sub_02056360
.public sub_0205B77C
.public sub_0205BB7C
.public sub_0205BD14
.public sub_0205C2A4
.public sub_0205C548
.public sub_0205EE40
.public sub_0205F00C
.public sub_0205FD88
.public sub_0205FE80

View File

@@ -1,99 +1,18 @@
#pragma once
.public _020AFC4C
.public _020AFC70
.public _s32_div_f
.public Debug_Print0
.public DirectoryFileMngr_OpenDirectoryFile
.public DrawTeamStats
.public DUNGEON_PTR
.public FreeMapAndTeam
.public FreeTeamStats
.public GetDefaultTileTextureId
.public HandleSir0Translation
.public IsBackgroundTileset
.public LoadFileFromRom
.public MemAlloc
.public MemFree
.public MemZero
.public ov10_022C0814
.public ov10_022C096C
.public ov10_022C0998
.public ov10_022C0F6C
.public ov10_022C11D8
.public ov10_022C14D0
.public ov10_022C159C
.public ov10_022C22A0
.public ov29_022DC240
.public ov29_022DC2B8
.public Render3dSetPaletteBase
.public Render3dSetTextureParams
.public Render3dTextureNoSetup
.public _020AFC70
.public ov29_0234FD04
.public ov29_0234FD14
.public ov29_0234FD48
.public ov29_0234FD4C
.public ov29_0234FD50
.public ov29_0234FD54
.public ov29_02350F88
.public ov29_02350F8C
.public ov29_02350F90
.public ov29_0235109C
.public ov29_023510B8
.public ov29_023510BC
.public ov29_023534E0
.public ov29_023534E8
.public ov29_02353518
.public ov29_0235351C
.public ov29_02353524
.public ov29_0235352C
.public ov29_02353530
.public ov29_02353534
.public ov29_02353880
.public ov29_023538B4
.public ov29_0236CEF0
.public ov29_0236D5EC
.public ov29_023735EC
.public ov29_023735F0
.public ov29_023735F4
.public ov29_023735F8
.public ov29_023735FC
.public ov29_0237360C
.public ov29_0237368C
.public ov29_02373690
.public ov29_0237C6D4
.public ov29_0237C714
.public Render3dSetPaletteBase
.public Render3dSetTextureParams
.public Render3dTextureNoSetup
.public sub_01FF9BA0
.public sub_01FF9E14
.public sub_01FF9F80
.public sub_02008BF4
.public sub_0200A2CC
.public sub_0200A2F4
.public sub_0200A544
.public sub_0200B330
.public sub_0200B3D4
.public sub_0201B43C
.public sub_0201B9F8
.public sub_0201BAC8
.public sub_0201BCCC
.public sub_0201BCF4
.public sub_0201BD1C
.public sub_0201E050
.public sub_0201E380
.public sub_0201F598
.public sub_020275C0
.public sub_020275DC
.public sub_020519D0
.public sub_02051B44
.public sub_02051C24
.public sub_02051D68
.public sub_02051DD0
.public sub_02051E60
.public sub_02051ED4
.public sub_02051EF0
.public sub_02063628
.public sub_0206367C
.public sub_02063734
.public sub_02063770
.public sub_02063830
.public UnloadFile
.public UpdateTeamStats

View File

@@ -0,0 +1,82 @@
#pragma once
.public DUNGEON_PTR
.public DirectoryFileMngr_OpenDirectoryFile
.public DrawTeamStats
.public FreeMapAndTeam
.public FreeTeamStats
.public GetDefaultTileTextureId
.public HandleSir0Translation
.public IsBackgroundTileset
.public MemAlloc
.public MemFree
.public MemZero
.public UnloadFile
.public UpdateTeamStats
.public _020AFC4C
.public _s32_div_f
.public ov10_022C0814
.public ov10_022C096C
.public ov10_022C0998
.public ov10_022C0F6C
.public ov10_022C11D8
.public ov10_022C14D0
.public ov10_022C159C
.public ov10_022C22A0
.public ov29_022DC2B8
.public ov29_022DC33C
.public ov29_02350F88
.public ov29_02350F8C
.public ov29_02350F90
.public ov29_0235109C
.public ov29_023510B8
.public ov29_023510BC
.public ov29_02353518
.public ov29_0235351C
.public ov29_02353524
.public ov29_0235352C
.public ov29_02353530
.public ov29_02353534
.public ov29_023538B4
.public ov29_0236CEF0
.public ov29_0236D5EC
.public ov29_023735EC
.public ov29_023735F0
.public ov29_023735F4
.public ov29_023735F8
.public ov29_023735FC
.public ov29_0237360C
.public ov29_0237368C
.public ov29_02373690
.public ov29_0237C6D4
.public ov29_0237C714
.public sub_01FF9BA0
.public sub_01FF9E14
.public sub_01FF9F80
.public sub_02008BF4
.public sub_0200A2CC
.public sub_0200A2F4
.public sub_0200A544
.public sub_0200B330
.public sub_0200B3D4
.public sub_0201B43C
.public sub_0201B9F8
.public sub_0201BAC8
.public sub_0201BCCC
.public sub_0201BCF4
.public sub_0201BD1C
.public sub_0201F598
.public sub_020275C0
.public sub_020275DC
.public sub_020519D0
.public sub_02051B44
.public sub_02051C24
.public sub_02051D68
.public sub_02051DD0
.public sub_02051E60
.public sub_02051ED4
.public sub_02051EF0
.public sub_02063628
.public sub_0206367C
.public sub_02063734
.public sub_02063770
.public sub_02063830

View File

@@ -4,24 +4,24 @@
.public ClearHiddenStairs
.public CloseFixedBin
.public CountItemsOnFloorForAcuteSniffer
.public DIRECTIONS_XY
.public DUNGEON_PTR
.public Debug_Print0
.public DeleteAllMonsterSpriteFiles
.public DetermineAllMonsterShadow
.public DetermineAllTilesWalkableNeighbors
.public DIRECTIONS_XY
.public DisplayFloorCard
.public DisplayFloorTip
.public DisplayMessage
.public DisplayMessage2
.public DUNGEON_PTR
.public DungeonGoesUp
.public DungeonRandInt
.public DungeonRngUnsetSecondary
.public EnemyEvolution
.public EntityIsValid__022E0354
.public FIXED_ROOM_REVISIT_OVERRIDES
.public FadeToBlack
.public FillMissionDestinationInfo
.public FIXED_ROOM_REVISIT_OVERRIDES
.public FreeLoadedAttackSpriteAndMore
.public FreeTopScreenStatus
.public GenerateDungeonRngSeed
@@ -54,6 +54,36 @@
.public LoadWeather3DFiles
.public MemZero
.public OpenFixedBin
.public Rand16Bit
.public ReevaluateSnatchMonster
.public RefillTeam
.public ResetGravity
.public RunFractionalTurn
.public SetBaseStatsMovesGroundMonster
.public SetBothScreensWindowColorToDefault
.public SetDungeonRngPreseed
.public SetDungeonRngPreseed23Bit
.public SetEntityPixelPosXY
.public SetForcedLossReason
.public SetHiddenFloorField
.public SetHiddenStairsField
.public SetMaxReachedFloor
.public SetMinimapDataE447
.public SpawnInitialMonsters
.public SpawnShopkeepers
.public SpawnTeam
.public StartFadeDungeonWrapper
.public TryActivateArtificialWeatherAbilities
.public TryActivateIqBooster
.public TryActivateSlowStart
.public TryActivateWeather
.public TryForcedLoss
.public TryInflictBurnStatusWholeTeam
.public TrySpawnDoughSeedPoke
.public UpdateMinimap
.public UpdateShouldBoostHiddenStairsSpawnChance
.public UpdateShouldBoostKecleonShopSpawnChance
.public UpdateTrapsVisibility
.public ov10_022BDAB0
.public ov10_022BDB54
.public ov10_022BDB60
@@ -70,6 +100,8 @@
.public ov29_022DE904
.public ov29_022DE930
.public ov29_022DEA34
.public ov29_022DEADC
.public ov29_022DEB40
.public ov29_022E0434
.public ov29_022E081C
.public ov29_022E0DFC
@@ -211,25 +243,6 @@
.public ov29_023510C0
.public ov29_023510C8
.public ov29_02353563
.public Rand16Bit
.public ReevaluateSnatchMonster
.public RefillTeam
.public ResetGravity
.public RunFractionalTurn
.public SetBaseStatsMovesGroundMonster
.public SetBothScreensWindowColorToDefault
.public SetDungeonRngPreseed
.public SetDungeonRngPreseed23Bit
.public SetEntityPixelPosXY
.public SetForcedLossReason
.public SetHiddenFloorField
.public SetHiddenStairsField
.public SetMaxReachedFloor
.public SetMinimapDataE447
.public SpawnInitialMonsters
.public SpawnShopkeepers
.public SpawnTeam
.public StartFadeDungeonWrapper
.public sub_02001808
.public sub_02009194
.public sub_020091B0
@@ -246,14 +259,3 @@
.public sub_0205B77C
.public sub_020634F4
.public sub_02063504
.public TryActivateArtificialWeatherAbilities
.public TryActivateIqBooster
.public TryActivateSlowStart
.public TryActivateWeather
.public TryForcedLoss
.public TryInflictBurnStatusWholeTeam
.public TrySpawnDoughSeedPoke
.public UpdateMinimap
.public UpdateShouldBoostHiddenStairsSpawnChance
.public UpdateShouldBoostKecleonShopSpawnChance
.public UpdateTrapsVisibility

View File

@@ -7,26 +7,16 @@
.public ChangeDungeonMusic
.public CloseAlertBox
.public CreateAlertBox
.public Debug_Print0
.public DisplayMessageInternal
.public DUNGEON_FADES_PTR
.public DUNGEON_PTR
.public DungeonAlloc
.public DungeonFree
.public DisplayMessage
.public DisplayMessage2
.public DungeonRandInt
.public DungeonZInit
.public EndNegativeStatusConditionWrapper
.public EntityIsValid__0234987C
.public FemaleToMaleForm
.public FixedRoomIsSubstituteRoom
.public G3X_Reset
.public GetAcceptedMission
.public GetDungeonPtrMaster
.public GetDungeonTipShown
.public GetEvoParameters
.public GetForcedLossReason
.public GetGameMode
.public GetItemCategoryVeneer
.public GetItemToDeliver
.public GetItemToRetrieve
.public GetLeader
@@ -35,9 +25,6 @@
.public GetMonsterGenderVeneer
.public GetMonsterPreEvolution
.public GetName
.public GetPerformanceFlagWithChecks
.public GetPlayerGender
.public GetRandomExplorerMazeMonster
.public GetRandomSpawnMonsterID
.public GetSecondFormIfValid
.public GetSpecialTargetItem
@@ -45,7 +32,6 @@
.public HandleFaint
.public InitPortraitParams
.public InitPreprocessorArgs
.public InitRender3dElement64
.public IsAlertBoxActive
.public IsCastform
.public IsCherrim
@@ -55,73 +41,42 @@
.public IsDestinationFloorWithFleeingOutlaw
.public IsDestinationFloorWithHiddenOutlaw
.public IsExperienceLocked
.public IsFullFloorFixedRoom
.public IsFutureDungeon
.public IsJirachiChallengeFloor
.public IsMonster__0234D460
.public IsSecretFloor
.public ItemZInit
.public LoadOverlay
.public LoadScriptVariableValue
.public MemAlloc
.public MemFree
.public MemZero
.public MusicTableIdxToMusicId
.public ov10_022BF764
.public ov10_022BF7D4
.public PositionIsOnStairs
.public PreprocessString
.public RemoveEmptyItemsInBagWrapper
.public RemoveGroundItem
.public SetPortraitLayout
.public ShouldDisplayEntityWrapper
.public ShouldMonsterHeadToStairs
.public StringFromId
.public SubstitutePlaceholderStringTags
.public YesNoMenu
.public ov10_022BFD20
.public ov29_022DC61C
.public ov29_022DC65C
.public ov29_022DC670
.public ov29_022DDC00
.public ov29_022DDCA0
.public ov29_022DDD50
.public ov29_022DDDA4
.public ov29_022DDE00
.public ov29_022DDE24
.public ov29_022DDEF8
.public ov29_022DDFF0
.public ov29_022DDFFC
.public ov29_022DE0A0
.public ov29_022DE0CC
.public ov29_022DE300
.public ov29_022DE418
.public ov29_022DE498
.public ov29_022DE868
.public ov29_022DEBA4
.public ov29_022DEBB0
.public ov29_022E09E8
.public ov29_022E0A64
.public ov29_022E0B60
.public ov29_022E0CFC
.public ov29_022E0E8C
.public ov29_022E0F14
.public ov29_022E2CA0
.public ov29_022E550C
.public ov29_022E68F0
.public ov29_022E6DD0
.public ov29_022E8244
.public ov29_022E9F9C
.public ov29_022E9FC0
.public ov29_022EA008
.public ov29_022EA428
.public ov29_022EAC8C
.public ov29_022EACBC
.public ov29_022EACE4
.public ov29_022EAEFC
.public ov29_022EAF34
.public ov29_022EAFB0
.public ov29_022F2FE4
.public ov29_022FA3D4
.public ov29_022FBA54
.public ov29_022FBBEC
.public ov29_023009CC
.public ov29_02300B04
.public ov29_0231ADA8
.public ov29_0231AF24
.public ov29_02337EE8
.public ov29_0233804C
.public ov29_0233992C
.public ov29_0233A248
.public ov29_02344B44
.public ov29_02344B9C
@@ -129,126 +84,23 @@
.public ov29_02348A18
.public ov29_023491B8
.public ov29_023496B0
.public ov29_0234D558
.public ov29_0234D5D0
.public ov29_0234D630
.public ov29_0234D70C
.public ov29_0234D838
.public ov29_0234D8A0
.public ov29_02353214
.public ov29_02353238
.public ov29_02353240
.public ov29_02353248
.public ov29_02353250
.public ov29_02353258
.public ov29_02353260
.public ov29_02353268
.public ov29_02353270
.public ov29_02353278
.public ov29_02353280
.public ov29_02353288
.public ov29_02353290
.public ov29_02353298
.public ov29_023532A0
.public ov29_023532A8
.public ov29_023532B0
.public ov29_023532B8
.public ov29_023532C0
.public ov29_023532C8
.public ov29_023532D8
.public ov29_023532E0
.public ov29_023532E8
.public ov29_023532F0
.public ov29_023532F8
.public ov29_02353300
.public ov29_02353308
.public ov29_02353310
.public ov29_02353368
.public ov29_02353380
.public ov29_0235352C
.public ov29_02353563
.public ov29_023537C8
.public ov29_023537CC
.public ov29_023537D8
.public ov29_023537E4
.public ov29_023537E8
.public ov29_0237C694
.public ov29_0237D000
.public ov30_02382820
.public ov30_02382874
.public ov30_0238298C
.public ov30_023829A0
.public ov30_023829CC
.public ov30_02382A34
.public ov30_02382C30
.public ov30_023842F4
.public OverlayIsLoaded
.public PositionIsOnStairs
.public PreprocessString
.public RemoveEmptyItemsInBagWrapper
.public RemoveGroundItem
.public RunDungeon
.public SetAdventureLogDungeonFloor
.public SetBothScreensWindowsColor
.public SetDungeonTipShown
.public SetPortraitLayout
.public ShouldDisplayEntityWrapper
.public ShouldMonsterHeadToStairs
.public StringFromId
.public strlen
.public strncmp
.public strncpy
.public sub_02001808
.public sub_0200383C
.public sub_020038D8
.public sub_020038E8
.public sub_02003990
.public sub_020039E4
.public sub_02003A40
.public sub_02006EC4
.public sub_02008ED0
.public sub_02008F3C
.public sub_02008F84
.public sub_02008F88
.public sub_02009120
.public sub_02009194
.public sub_020091B0
.public sub_020091CC
.public sub_020091F8
.public sub_020093BC
.public sub_02009514
.public sub_0200B330
.public sub_0200B3D4
.public sub_02017A68
.public sub_02017A80
.public sub_02017B70
.public sub_02017BEC
.public sub_02017C10
.public sub_0201BE28
.public sub_0201BE5C
.public sub_0201BE84
.public sub_0201BF4C
.public sub_0201BF64
.public sub_0201D7E0
.public sub_0201D804
.public sub_0201DDFC
.public sub_0201DE10
.public sub_0201F2A0
.public sub_0201F464
.public sub_02024FB8
.public sub_02025784
.public sub_02027148
.public sub_0202715C
.public sub_0202836C
.public sub_02028848
.public sub_02028A64
.public sub_02028E2C
.public sub_02028E40
.public sub_02028E88
.public sub_0203010C
.public sub_02030214
.public sub_02034710
.public sub_02034A80
.public sub_02047FFC
.public sub_0204804C
.public sub_020480CC
@@ -257,13 +109,3 @@
.public sub_02048240
.public sub_0204833C
.public sub_02048360
.public sub_02048DC4
.public sub_0204AFF8
.public sub_0204F9CC
.public sub_02051DD0
.public sub_02051E60
.public sub_0205BAB0
.public SubstitutePlaceholderStringTags
.public UnloadOverlay
.public WriteQuicksaveData
.public YesNoMenu

View File

@@ -0,0 +1,87 @@
#pragma once
.public AdvanceFrame
.public DUNGEON_FADES_PTR
.public DUNGEON_PTR
.public DungeonAlloc
.public DungeonFree
.public DungeonZInit
.public G3X_Reset
.public InitRender3dElement64
.public MemAlloc
.public MemFree
.public MemZero
.public OverlayIsLoaded
.public UnloadOverlay
.public ov10_022BF764
.public ov10_022BF7D4
.public ov29_022DC670
.public ov29_022DDC00
.public ov29_022DDCA0
.public ov29_022DDD50
.public ov29_022DDDA4
.public ov29_022DDE24
.public ov29_022DDFF0
.public ov29_022DDFFC
.public ov29_022DE0A0
.public ov29_022DE0CC
.public ov29_022DE300
.public ov29_022DE498
.public ov29_022DE868
.public ov29_022E0A64
.public ov29_022E0CFC
.public ov29_022E0E8C
.public ov29_022E0F14
.public ov29_022E6DD0
.public ov29_022E9F9C
.public ov29_022EA008
.public ov29_022EAFB0
.public ov29_0233992C
.public ov29_0234BBDC
.public ov29_0234BBE8
.public ov29_0235352C
.public ov29_023537D8
.public ov29_023537E4
.public ov30_02382A34
.public sub_0200383C
.public sub_020038D8
.public sub_020038E8
.public sub_02003990
.public sub_020039E4
.public sub_02003A40
.public sub_02006EC4
.public sub_02008ED0
.public sub_02008F3C
.public sub_02008F84
.public sub_02008F88
.public sub_02009120
.public sub_020091CC
.public sub_020091F8
.public sub_020093BC
.public sub_02009514
.public sub_0200B330
.public sub_0200B3D4
.public sub_02017A68
.public sub_02017A80
.public sub_02017B70
.public sub_02017BEC
.public sub_0201BE28
.public sub_0201BE5C
.public sub_0201BE84
.public sub_0201BF4C
.public sub_0201BF64
.public sub_0201D7E0
.public sub_0201D804
.public sub_0201DDFC
.public sub_0201DE10
.public sub_0201F2A0
.public sub_0201F464
.public sub_02027148
.public sub_0202715C
.public sub_02028848
.public sub_02028A64
.public sub_02028E2C
.public sub_02028E40
.public sub_02028E88
.public sub_02034710
.public sub_02034A80
.public sub_0204F9CC

View File

@@ -0,0 +1,69 @@
#pragma once
.public DUNGEON_PTR
.public Debug_Print0
.public DisplayMessageInternal
.public FixedRoomIsSubstituteRoom
.public GetDungeonTipShown
.public GetGameMode
.public GetItemCategoryVeneer
.public GetLeader
.public GetPerformanceFlagWithChecks
.public GetPlayerGender
.public GetRandomExplorerMazeMonster
.public IsFullFloorFixedRoom
.public IsFutureDungeon
.public IsMonster__0234D460
.public IsSecretFloor
.public LoadOverlay
.public LoadScriptVariableValue
.public LogMessageByIdQuiet
.public OverlayIsLoaded
.public SetBothScreensWindowsColor
.public SetDungeonTipShown
.public StringFromId
.public UnloadOverlay
.public WriteQuicksaveData
.public ov29_022EA428
.public ov29_022EACBC
.public ov29_0231ADA8
.public ov29_02337EE8
.public ov29_0233804C
.public ov29_0234B034
.public ov29_0234BA54
.public ov29_0234D558
.public ov29_0234D5D0
.public ov29_02353238
.public ov29_02353240
.public ov29_02353248
.public ov29_02353250
.public ov29_02353258
.public ov29_02353260
.public ov29_02353268
.public ov29_02353270
.public ov29_02353278
.public ov29_02353280
.public ov29_02353288
.public ov29_02353290
.public ov29_02353298
.public ov29_023532A0
.public ov29_023532A8
.public ov29_023532B0
.public ov29_023532B8
.public ov29_023532C0
.public ov29_023532C8
.public ov29_023532D8
.public ov29_023532E0
.public ov29_023532E8
.public ov29_023532F0
.public ov29_023532F8
.public ov29_02353300
.public ov29_02353308
.public ov29_02353310
.public ov29_02353368
.public ov29_02353380
.public ov29_02353563
.public ov29_023537E4
.public ov29_023537E8
.public ov29_0237D000
.public ov30_023842F4
.public sub_02025784

File diff suppressed because it is too large Load Diff

7846
asm/main_0204B018.s Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2756
asm/overlay_29_022DC65C.s Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,66 +1,8 @@
.include "asm/macros.inc"
.include "overlay_29_022DEADC.inc"
.include "overlay_29_022DEBA4.inc"
.text
arm_func_start ov29_022DEADC
ov29_022DEADC: ; 0x022DEADC
stmdb sp!, {r3, lr}
mov r0, #0x20
bl ov29_0234C654
mov r0, #0
mov r1, r0
bl sub_020091B0
mov r0, #1
mov r1, #0
bl sub_020091B0
mov r0, #2
mov r1, #0
bl sub_02009194
mov r0, #3
mov r1, #0
bl sub_02009194
mov r0, #4
mov r1, #0
bl sub_020091B0
mov r0, #1
mov r1, #0x4000
mov r2, #0
bl StartFadeDungeonWrapper
mov r0, #0
bl ov29_0234C738
ldmia sp!, {r3, pc}
arm_func_end ov29_022DEADC
arm_func_start ov29_022DEB40
ov29_022DEB40: ; 0x022DEB40
stmdb sp!, {r3, lr}
mov r0, #2
mov r1, #0x4000
mov r2, #0
bl StartFadeDungeonWrapper
mov r0, #0
bl ov29_0234C738
mov r0, #1
bl ov29_0234C654
mov r0, #0
mov r1, r0
bl sub_020091B0
mov r0, #1
mov r1, #0
bl sub_020091B0
mov r0, #2
mov r1, #0
bl sub_020091B0
mov r0, #3
mov r1, #0
bl sub_020091B0
mov r0, #4
mov r1, #0
bl sub_020091B0
ldmia sp!, {r3, pc}
arm_func_end ov29_022DEB40
arm_func_start ov29_022DEBA4
ov29_022DEBA4: ; 0x022DEBA4
ldr ip, _022DEBAC ; =ov29_022DEADC
@@ -316,6 +258,7 @@ _022DEF30: .word 0x000003E7
_022DEF34: .word FIXED_ROOM_REVISIT_OVERRIDES
arm_func_end ov29_022DEBBC
; https://decomp.me/scratch/7xQSQ
arm_func_start RunDungeon
RunDungeon: ; 0x022DEF38
#ifdef JAPAN

File diff suppressed because it is too large Load Diff

898
asm/overlay_29_0234BEE0.s Normal file
View File

@@ -0,0 +1,898 @@
.include "asm/macros.inc"
.include "overlay_29_0234BEE0.inc"
.text
arm_func_start ov29_0234BEE0
ov29_0234BEE0: ; 0x0234BEE0
ldr r2, _0234BEFC ; =ov29_0235352C
mov r1, #0xc
ldr r2, [r2]
ldr ip, _0234BF00 ; =sub_0200B3D4
mla r1, r0, r1, r2
ldr r0, [r1, #0x24]
bx ip
.align 2, 0
_0234BEFC: .word ov29_0235352C
_0234BF00: .word sub_0200B3D4
arm_func_end ov29_0234BEE0
arm_func_start ov29_0234BF04
ov29_0234BF04: ; 0x0234BF04
ldr r2, _0234BF20 ; =ov29_0235352C
mov r1, #0xc
ldr r2, [r2]
ldr ip, _0234BF24 ; =sub_0200B330
mla r1, r0, r1, r2
ldr r0, [r1, #0x24]
bx ip
.align 2, 0
_0234BF20: .word ov29_0235352C
_0234BF24: .word sub_0200B330
arm_func_end ov29_0234BF04
arm_func_start RunDungeonMode
RunDungeonMode: ; 0x0234BF28
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
mov r4, r1
bl sub_02017BEC
bl sub_02028E2C
mov r0, #0
mov r1, r0
mov r2, r0
mov r3, r0
bl sub_020091F8
mov r0, #0
mov r1, r0
mov r2, r0
mov r3, #1
bl sub_020091F8
bl ov29_022E0E8C
bl sub_02027148
mov r0, #0xf000
mov r1, #0
bl sub_0201D7E0
mov r0, #0x1c0
mov r1, #0
bl MemAlloc
ldr r2, _0234C1C8 ; =ov29_023537D8
mov r1, #0x1c0
str r0, [r2, #4]
bl MemZero
ldr r0, _0234C1C8 ; =ov29_023537D8
mov r2, #0
ldr r1, [r0, #4]
strb r2, [r1, #0x1bc]
ldr r1, [r0, #4]
str r4, [r1, #8]
ldr r0, [r0, #4]
str r4, [r0, #0xc]
bl DungeonAlloc
ldr r1, _0234C1C8 ; =ov29_023537D8
ldr r1, [r1, #4]
str r0, [r1, #4]
bl DungeonZInit
bl ov29_022DDFF0
bl ov29_022DDFFC
bl ov29_022DE300
ldr r0, _0234C1C8 ; =ov29_023537D8
mov ip, r5
ldr r0, [r0, #4]
mov r4, #0x1a
add r6, r0, #0x10
_0234BFE8:
ldmia ip!, {r0, r1, r2, r3}
stmia r6!, {r0, r1, r2, r3}
subs r4, r4, #1
bne _0234BFE8
ldmia ip, {r0, r1, r2}
stmia r6, {r0, r1, r2}
bl ov29_0234C9FC
ldr r0, _0234C1CC ; =ov29_0234BBDC
bl sub_02006EC4
bl sub_02017A68
bl ov29_022E0CFC
bl ov29_0234C4F8
cmp r5, #0
beq _0234C04C
ldrsb r0, [r5, #0xe]
cmp r0, #1
mov r0, #0
bne _0234C040
bl ov29_0234C5EC
mov r0, #1
bl ov29_0234C584
b _0234C04C
_0234C040:
bl ov29_0234C584
mov r0, #1
bl ov29_0234C584
_0234C04C:
bl ov29_022DDC00
ldr r1, _0234C1C8 ; =ov29_023537D8
mov r2, #1
ldr r0, _0234C1D0 ; =ov29_0234C1D8
strb r2, [r1]
bl sub_0200383C
mov r1, #0
ldr r0, _0234C1D4 ; =ov29_0234BBE8
mov r2, r1
bl ov29_022DDD50
ldr r4, _0234C1C8 ; =ov29_023537D8
mov r6, #0
_0234C07C:
bl sub_020038E8
ldr r0, [r4, #4]
ldrb r0, [r0, #0x1bd]
cmp r0, #0
bne _0234C0C0
bl sub_020039E4
ldr r0, [r4, #4]
ldrb r0, [r0, #0x1bc]
cmp r0, #0
beq _0234C07C
_0234C0A4:
bl ov30_02382A34
cmp r0, #2
cmpne r0, #3
bne _0234C0A4
ldr r0, [r4, #4]
strb r6, [r0, #0x1bc]
b _0234C07C
_0234C0C0:
ldr r0, _0234C1D4 ; =ov29_0234BBE8
bl ov29_022DDDA4
mov r0, #0
bl sub_0200383C
bl sub_02034710
bl ov29_0234CA2C
cmp r5, #0
beq _0234C108
ldr r0, _0234C1C8 ; =ov29_023537D8
mov r4, #0x1a
ldr r0, [r0, #4]
add ip, r0, #0x10
_0234C0F0:
ldmia ip!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
subs r4, r4, #1
bne _0234C0F0
ldmia ip, {r0, r1, r2}
stmia r5, {r0, r1, r2}
_0234C108:
bl ov29_022DE498
bl ov29_022DE0A0
bl ov29_0234C544
mov r0, #0
bl sub_02006EC4
ldr r0, _0234C1C8 ; =ov29_023537D8
ldr r0, [r0, #4]
cmp r0, #0
beq _0234C154
bl DungeonFree
ldr r0, _0234C1C8 ; =ov29_023537D8
mov r2, #0
ldr r1, [r0, #4]
str r2, [r1, #4]
ldr r0, [r0, #4]
bl MemFree
ldr r0, _0234C1C8 ; =ov29_023537D8
mov r1, #0
str r1, [r0, #4]
_0234C154:
bl sub_0201D804
bl sub_0202715C
bl ov29_022DDCA0
bl sub_02017B70
bl sub_02017BEC
mov r0, #0
sub r1, r0, #0x100
bl sub_02008F3C
mov r0, #1
mvn r1, #0xff
bl sub_02008F3C
mov r0, #0
bl sub_02009120
mov r0, #1
bl sub_02009120
mov r0, #0
bl sub_02009514
mov r0, #1
bl sub_02009514
mov r0, #0
bl sub_020091CC
mov r0, #1
bl sub_020091CC
mov r0, #0
bl sub_020093BC
mov r0, #1
bl sub_020093BC
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_0234C1C8: .word ov29_023537D8
_0234C1CC: .word ov29_0234BBDC
_0234C1D0: .word ov29_0234C1D8
_0234C1D4: .word ov29_0234BBE8
arm_func_end RunDungeonMode
arm_func_start ov29_0234C1D8
ov29_0234C1D8: ; 0x0234C1D8
stmdb sp!, {r4, lr}
bl sub_0201BF64
bl sub_02028E40
bl sub_020038D8
cmp r0, #0
beq _0234C1F4
bl sub_02003990
_0234C1F4:
bl ov29_022E0A64
bl ov29_022DDE24
bl ov29_022E9F9C
bl HandleFadesDungeonBothScreens
bl sub_02034A80
bl ov29_022EA008
ldr r0, _0234C2EC ; =DUNGEON_PTR
ldr r0, [r0]
cmp r0, #0
beq _0234C230
#ifdef JAPAN
add r0, r0, #0x2180
add r0, r0, #0x18000
#else
add r0, r0, #0x224
add r0, r0, #0x1a000
#endif
bl ov10_022BF764
bl ov29_022E6DD0
b _0234C238
_0234C230:
mov r0, #0
bl ov10_022BF764
_0234C238:
bl sub_02028848
bl ov29_022DE868
ldr r0, _0234C2F0 ; =ov29_023537D8
ldr r0, [r0, #4]
ldr r0, [r0]
cmp r0, #0
beq _0234C258
blx r0
_0234C258:
bl ov29_022DC670
bl sub_0201F464
ldr r0, _0234C2F0 ; =ov29_023537D8
ldrb r0, [r0]
cmp r0, #0
bne _0234C274
bl sub_0201DDFC
_0234C274:
bl sub_02008F84
bl ov29_022EAFB0
bl sub_02017A80
mov r0, #1
bl sub_02028A64
bl sub_0201BE28
bl sub_0201BE5C
bl sub_0201BE84
bl sub_0204F9CC
bl sub_02003A40
ldr r1, _0234C2F0 ; =ov29_023537D8
mov r4, r0
ldrb r0, [r1]
cmp r0, #0
beq _0234C2B8
mov r0, #0
bl sub_02008ED0
_0234C2B8:
bl G3X_Reset
bl sub_02008F88
bl sub_0201DE10
bl ov10_022BF7D4
bl ov29_0233992C
bl sub_02028E88
bl ov29_022DE0CC
bl sub_0201BF4C
ldr r1, _0234C2F0 ; =ov29_023537D8
mov r2, #0
mov r0, r4
strb r2, [r1]
ldmia sp!, {r4, pc}
.align 2, 0
_0234C2EC: .word DUNGEON_PTR
_0234C2F0: .word ov29_023537D8
arm_func_end ov29_0234C1D8
arm_func_start ov29_0234C2F4
ov29_0234C2F4: ; 0x0234C2F4
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r5, r0
mov r1, #0x9c
bl MemZero
add r0, r5, #0x48
strb r4, [r5, #0x88]
bl InitRender3dElement64
mov r0, #0x100
strh r0, [r5, #0x4c]
mov r0, #0xc0
strh r0, [r5, #0x4e]
mov r0, #1
strh r0, [r5, #0x72]
strb r0, [r5, #0x86]
mov r0, #2
strb r0, [r5, #0x84]
mov r0, #0
strb r0, [r5, #0x77]
strb r0, [r5, #0x74]
strb r0, [r5, #0x75]
strb r0, [r5, #0x76]
strb r0, [r5, #0x99]
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov29_0234C2F4
arm_func_start ov29_0234C354
ov29_0234C354: ; 0x0234C354
stmdb sp!, {r3, lr}
mov r3, #0
str r3, [r0, #0x90]
str r3, [r0, #0x8c]
str r3, [r0, #0x94]
strb r3, [r0, #0x98]
ldrb r1, [r0, #0x88]
cmp r1, #1
bne _0234C384
ldr r0, [r0, #0x90]
bl ov29_022E0F14
ldmia sp!, {r3, pc}
_0234C384:
ldrb r2, [r0, #0x99]
cmp r2, #0
strneb r3, [r0, #0x77]
ldmneia sp!, {r3, pc}
ldr r0, [r0, #0x90]
bl ov29_022E0F14
ldmia sp!, {r3, pc}
arm_func_end ov29_0234C354
arm_func_start ov29_0234C3A0
ov29_0234C3A0: ; 0x0234C3A0
stmdb sp!, {r4, lr}
mov r4, r0
ldrb r1, [r4, #0x88]
cmp r1, #1
bne _0234C3C8
ldr r0, [r4, #0x90]
mov r0, r0, asr #0xc
bl ov29_022E0F14
ldr r0, [r4, #0x90]
ldmia sp!, {r4, pc}
_0234C3C8:
ldrb r0, [r4, #0x99]
cmp r0, #0
ldr r0, [r4, #0x90]
beq _0234C3F8
cmp r0, #0
rsblt r0, r0, #0
mov r0, r0, asr #0xc
mov r0, r0, lsl #4
cmp r0, #0x100
moveq r0, #0xff
strb r0, [r4, #0x77]
ldmia sp!, {r4, pc}
_0234C3F8:
mov r0, r0, asr #0xc
bl ov29_022E0F14
ldr r0, [r4, #0x90]
ldmia sp!, {r4, pc}
arm_func_end ov29_0234C3A0
arm_func_start StartFadeDungeon
StartFadeDungeon: ; 0x0234C408
stmdb sp!, {r3, lr}
str r2, [r0, #0x8c]
str r1, [r0, #0x94]
mov r1, #1
strb r1, [r0, #0x98]
ldrb r1, [r0, #0x88]
cmp r1, #1
bne _0234C464
cmp r2, #5
cmpne r2, #3
moveq r1, #0
streq r1, [r0, #0x90]
beq _0234C45C
cmp r2, #4
moveq r1, #0x10000
streq r1, [r0, #0x90]
beq _0234C45C
cmp r2, #2
moveq r1, #0x10000
rsbeq r1, r1, #0
streq r1, [r0, #0x90]
_0234C45C:
bl ov29_0234C3A0
ldmia sp!, {r3, pc}
_0234C464:
cmp r2, #5
bne _0234C488
mov r1, #0
str r1, [r0, #0x90]
mov r1, #0xff
strb r1, [r0, #0x74]
strb r1, [r0, #0x75]
strb r1, [r0, #0x76]
b _0234C4F0
_0234C488:
cmp r2, #3
bne _0234C4A8
mov r1, #0
str r1, [r0, #0x90]
strb r1, [r0, #0x74]
strb r1, [r0, #0x75]
strb r1, [r0, #0x76]
b _0234C4F0
_0234C4A8:
cmp r2, #4
bne _0234C4CC
mov r1, #0x10000
str r1, [r0, #0x90]
mov r1, #0xff
strb r1, [r0, #0x74]
strb r1, [r0, #0x75]
strb r1, [r0, #0x76]
b _0234C4F0
_0234C4CC:
cmp r2, #2
bne _0234C4F0
mov r1, #0x10000
rsb r1, r1, #0
str r1, [r0, #0x90]
mov r1, #0
strb r1, [r0, #0x74]
strb r1, [r0, #0x75]
strb r1, [r0, #0x76]
_0234C4F0:
bl ov29_0234C3A0
ldmia sp!, {r3, pc}
arm_func_end StartFadeDungeon
arm_func_start ov29_0234C4F8
ov29_0234C4F8: ; 0x0234C4F8
stmdb sp!, {r3, lr}
mov r0, #0x144
mov r1, #0
bl MemAlloc
ldr r2, _0234C540 ; =DUNGEON_FADES_PTR
mov r1, #0x144
str r0, [r2]
bl MemZero
ldr r0, _0234C540 ; =DUNGEON_FADES_PTR
mov r1, #0
ldr r0, [r0]
bl ov29_0234C2F4
ldr r0, _0234C540 ; =DUNGEON_FADES_PTR
mov r1, #1
ldr r0, [r0]
add r0, r0, #0x9c
bl ov29_0234C2F4
ldmia sp!, {r3, pc}
.align 2, 0
_0234C540: .word DUNGEON_FADES_PTR
arm_func_end ov29_0234C4F8
arm_func_start ov29_0234C544
ov29_0234C544: ; 0x0234C544
stmdb sp!, {r3, lr}
ldr r0, _0234C580 ; =DUNGEON_FADES_PTR
ldr r0, [r0]
bl ov29_0234C354
ldr r0, _0234C580 ; =DUNGEON_FADES_PTR
ldr r0, [r0]
add r0, r0, #0x9c
bl ov29_0234C354
ldr r0, _0234C580 ; =DUNGEON_FADES_PTR
ldr r0, [r0]
bl MemFree
ldr r0, _0234C580 ; =DUNGEON_FADES_PTR
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0234C580: .word DUNGEON_FADES_PTR
arm_func_end ov29_0234C544
arm_func_start ov29_0234C584
ov29_0234C584: ; 0x0234C584
stmdb sp!, {r3, lr}
ldr r1, _0234C5E8 ; =DUNGEON_FADES_PTR
mov r2, #0x10000
ldr r3, [r1]
mov r1, #0x9c
mla r0, r1, r0, r3
rsb r2, r2, #0
str r2, [r0, #0x90]
mov r1, #1
str r1, [r0, #0x8c]
mov r2, #0
str r2, [r0, #0x94]
strb r1, [r0, #0x98]
ldrb r1, [r0, #0x88]
cmp r1, #1
bne _0234C5CC
bl ov29_0234C3A0
ldmia sp!, {r3, pc}
_0234C5CC:
ldrb r1, [r0, #0x99]
cmp r1, #0
strneb r2, [r0, #0x74]
strneb r2, [r0, #0x75]
strneb r2, [r0, #0x76]
bl ov29_0234C3A0
ldmia sp!, {r3, pc}
.align 2, 0
_0234C5E8: .word DUNGEON_FADES_PTR
arm_func_end ov29_0234C584
arm_func_start ov29_0234C5EC
ov29_0234C5EC: ; 0x0234C5EC
stmdb sp!, {r3, lr}
ldr r2, _0234C650 ; =DUNGEON_FADES_PTR
mov r1, #0x9c
ldr r3, [r2]
mov r2, #0x10000
mla r0, r1, r0, r3
str r2, [r0, #0x90]
mov r2, #1
str r2, [r0, #0x8c]
mov r1, #0
str r1, [r0, #0x94]
strb r2, [r0, #0x98]
ldrb r1, [r0, #0x88]
cmp r1, #1
bne _0234C630
bl ov29_0234C3A0
ldmia sp!, {r3, pc}
_0234C630:
ldrb r1, [r0, #0x99]
cmp r1, #0
movne r1, #0xff
strneb r1, [r0, #0x74]
strneb r1, [r0, #0x75]
strneb r1, [r0, #0x76]
bl ov29_0234C3A0
ldmia sp!, {r3, pc}
.align 2, 0
_0234C650: .word DUNGEON_FADES_PTR
arm_func_end ov29_0234C5EC
arm_func_start ov29_0234C654
ov29_0234C654: ; 0x0234C654
ldr r1, _0234C664 ; =DUNGEON_FADES_PTR
ldr r1, [r1]
strh r0, [r1, #0x72]
bx lr
.align 2, 0
_0234C664: .word DUNGEON_FADES_PTR
arm_func_end ov29_0234C654
arm_func_start StartFadeDungeonWrapper
StartFadeDungeonWrapper: ; 0x0234C668
stmdb sp!, {r3, lr}
ldr r3, _0234C708 ; =DUNGEON_FADES_PTR
mov ip, #0
ldr lr, [r3]
add lr, lr, r2, lsl #2
str r0, [lr, #0x138]
ldr r0, [r3]
add r0, r0, r2
strb ip, [r0, #0x140]
ldr ip, [r3]
add r0, ip, r2, lsl #2
ldr r0, [r0, #0x138]
cmp r0, #6
addls pc, pc, r0, lsl #2
b _0234C6E0
_0234C6A4: ; jump table
b _0234C6E0 ; case 0
b _0234C6C0 ; case 1
b _0234C6C8 ; case 2
b _0234C6C8 ; case 3
b _0234C6D0 ; case 4
b _0234C6D8 ; case 5
b _0234C6D8 ; case 6
_0234C6C0:
mov r3, #2
b _0234C6E4
_0234C6C8:
mov r3, #3
b _0234C6E4
_0234C6D0:
mov r3, #4
b _0234C6E4
_0234C6D8:
mov r3, #5
b _0234C6E4
_0234C6E0:
mov r3, #0
_0234C6E4:
mov r0, #0x9c
mla r0, r2, r0, ip
cmp r3, #0
bne _0234C6FC
bl ov29_0234C354
ldmia sp!, {r3, pc}
_0234C6FC:
mov r2, r3
bl StartFadeDungeon
ldmia sp!, {r3, pc}
.align 2, 0
_0234C708: .word DUNGEON_FADES_PTR
arm_func_end StartFadeDungeonWrapper
arm_func_start ov29_0234C70C
ov29_0234C70C: ; 0x0234C70C
ldr r2, _0234C734 ; =DUNGEON_FADES_PTR
mov r1, #0x9c
ldr r2, [r2]
mla r1, r0, r1, r2
ldr r0, [r1, #0x8c]
cmp r0, #1
cmpne r0, #0
moveq r0, #0
movne r0, #1
bx lr
.align 2, 0
_0234C734: .word DUNGEON_FADES_PTR
arm_func_end ov29_0234C70C
arm_func_start ov29_0234C738
ov29_0234C738: ; 0x0234C738
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r5, r0
mov r0, #0x9c
mul r4, r5, r0
ldr r6, _0234C7D0 ; =DUNGEON_FADES_PTR
mov r7, #5
_0234C750:
ldr r1, [r6]
add r0, r1, r5, lsl #2
ldr r0, [r0, #0x138]
cmp r0, #6
addls pc, pc, r0, lsl #2
b _0234C7C0
_0234C768: ; jump table
b _0234C7C0 ; case 0
b _0234C784 ; case 1
b _0234C784 ; case 2
b _0234C79C ; case 3
b _0234C784 ; case 4
b _0234C784 ; case 5
b _0234C79C ; case 6
_0234C784:
add r0, r4, r1
ldr r0, [r0, #0x8c]
cmp r0, #1
cmpne r0, #0
bne _0234C7C0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0234C79C:
add r0, r5, r1
ldrb r0, [r0, #0x140]
cmp r0, #1
bne _0234C7C0
add r0, r4, r1
ldr r0, [r0, #0x8c]
cmp r0, #1
cmpne r0, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
_0234C7C0:
mov r0, r7
bl AdvanceFrame
b _0234C750
_0234C7CC:
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0234C7D0: .word DUNGEON_FADES_PTR
arm_func_end ov29_0234C738
arm_func_start HandleFadesDungeon
HandleFadesDungeon: ; 0x0234C7D4
stmdb sp!, {r3, r4, r5, lr}
ldr r1, _0234C9E0 ; =DUNGEON_FADES_PTR
mov r5, r0
ldr r4, [r1]
add r0, r4, r5, lsl #2
ldr r2, [r0, #0x138]
cmp r2, #6
addls pc, pc, r2, lsl #2
b _0234C8B8
_0234C7F8: ; jump table
b _0234C8B8 ; case 0
b _0234C814 ; case 1
b _0234C8B8 ; case 2
b _0234C830 ; case 3
b _0234C814 ; case 4
b _0234C8B8 ; case 5
b _0234C830 ; case 6
_0234C814:
mov r0, #0x9c
mla r0, r5, r0, r4
ldr r1, [r0, #0x8c]
cmp r1, #1
bne _0234C8B8
bl ov29_0234C354
ldmia sp!, {r3, r4, r5, pc}
_0234C830:
adds r0, r4, #0x140
mov r0, #0x9c
bne _0234C888
mla r0, r5, r0, r4
ldr r1, [r0, #0x8c]
cmp r1, #1
bne _0234C8B8
cmp r2, #3
ldr r1, [r0, #0x94]
bne _0234C864
mov r2, #2
bl StartFadeDungeon
b _0234C86C
_0234C864:
mov r2, #4
bl StartFadeDungeon
_0234C86C:
ldr r0, _0234C9E0 ; =DUNGEON_FADES_PTR
ldr r0, [r0]
add r1, r0, #0x140
ldrb r0, [r1, r5]
add r0, r0, #1
strb r0, [r1, r5]
b _0234C8B8
_0234C888:
mul r3, r5, r0
add r0, r4, r3
ldr r0, [r0, #0x8c]
cmp r0, #1
bne _0234C8B8
add r0, r4, r5
mov r2, #0
strb r2, [r0, #0x140]
ldr r0, [r1]
add r0, r0, r3
bl ov29_0234C354
ldmia sp!, {r3, r4, r5, pc}
_0234C8B8:
ldr r1, _0234C9E0 ; =DUNGEON_FADES_PTR
mov r0, #0x9c
ldr r1, [r1]
mla r4, r5, r0, r1
ldrb r0, [r4, #0x98]
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldrb r0, [r4, #0x88]
cmp r0, #1
bne _0234C8EC
mov r0, r4
bl ov29_0234C3A0
b _0234C918
_0234C8EC:
ldrb r0, [r4, #0x99]
cmp r0, #0
mov r0, r4
beq _0234C914
bl ov29_0234C3A0
cmp r0, #0
beq _0234C918
add r0, r4, #0x48
bl sub_0201F2A0
b _0234C918
_0234C914:
bl ov29_0234C3A0
_0234C918:
ldr r0, [r4, #0x8c]
cmp r0, #5
addls pc, pc, r0, lsl #2
ldmia sp!, {r3, r4, r5, pc}
_0234C928: ; jump table
ldmia sp!, {r3, r4, r5, pc} ; case 0
ldmia sp!, {r3, r4, r5, pc} ; case 1
b _0234C9BC ; case 2
b _0234C968 ; case 3
b _0234C994 ; case 4
b _0234C940 ; case 5
_0234C940:
ldr r1, [r4, #0x90]
ldr r0, [r4, #0x94]
add r0, r1, r0
str r0, [r4, #0x90]
cmp r0, #0x10000
movge r0, #0x10000
strge r0, [r4, #0x90]
movge r0, #1
strge r0, [r4, #0x8c]
ldmia sp!, {r3, r4, r5, pc}
_0234C968:
ldr r2, [r4, #0x90]
ldr r1, [r4, #0x94]
mov r0, #0x10000
sub r1, r2, r1
rsb r0, r0, #0
str r1, [r4, #0x90]
cmp r1, r0
strle r0, [r4, #0x90]
movle r0, #1
strle r0, [r4, #0x8c]
ldmia sp!, {r3, r4, r5, pc}
_0234C994:
ldr r1, [r4, #0x90]
ldr r0, [r4, #0x94]
sub r0, r1, r0
str r0, [r4, #0x90]
cmp r0, #0
movle r0, #0
strle r0, [r4, #0x90]
movle r0, #1
strle r0, [r4, #0x8c]
ldmia sp!, {r3, r4, r5, pc}
_0234C9BC:
ldr r1, [r4, #0x90]
ldr r0, [r4, #0x94]
adds r0, r1, r0
str r0, [r4, #0x90]
movpl r0, #0
strpl r0, [r4, #0x90]
movpl r0, #1
strpl r0, [r4, #0x8c]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0234C9E0: .word DUNGEON_FADES_PTR
arm_func_end HandleFadesDungeon
arm_func_start HandleFadesDungeonBothScreens
HandleFadesDungeonBothScreens: ; 0x0234C9E4
stmdb sp!, {r3, lr}
mov r0, #0
bl HandleFadesDungeon
mov r0, #1
bl HandleFadesDungeon
ldmia sp!, {r3, pc}
arm_func_end HandleFadesDungeonBothScreens
arm_func_start ov29_0234C9FC
ov29_0234C9FC: ; 0x0234C9FC
stmdb sp!, {r3, lr}
mov r0, #8
mov r1, #0
bl MemAlloc
ldr r1, _0234CA28 ; =ov29_023537E4
mov r2, #0
str r0, [r1]
str r2, [r0, #4]
ldr r0, [r1]
str r2, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0234CA28: .word ov29_023537E4
arm_func_end ov29_0234C9FC
arm_func_start ov29_0234CA2C
ov29_0234CA2C: ; 0x0234CA2C
stmdb sp!, {r3, lr}
mov r0, #0x21
bl OverlayIsLoaded
cmp r0, #0
beq _0234CA48
mov r0, #0x21
bl UnloadOverlay
_0234CA48:
ldr r0, _0234CA64 ; =ov29_023537E4
ldr r0, [r0]
bl MemFree
ldr r0, _0234CA64 ; =ov29_023537E4
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0234CA64: .word ov29_023537E4
arm_func_end ov29_0234CA2C

771
asm/overlay_29_0234CA84.s Normal file
View File

@@ -0,0 +1,771 @@
.include "asm/macros.inc"
.include "overlay_29_0234CA84.inc"
.text
arm_func_start ov29_0234CA84
ov29_0234CA84: ; 0x0234CA84
stmdb sp!, {r3, lr}
ldr r0, _0234CAC4 ; =ov29_023537E4
mov r3, #1
ldr r1, [r0]
ldr r2, _0234CAC8 ; =ov29_0237D000
str r3, [r1]
ldr r1, [r0]
mov r0, #0x21
str r2, [r1, #4]
bl LoadOverlay
ldr r0, _0234CAC4 ; =ov29_023537E4
mov r1, #0x5800
ldr r0, [r0]
ldr r0, [r0, #4]
bl WriteQuicksaveData
ldmia sp!, {r3, pc}
.align 2, 0
_0234CAC4: .word ov29_023537E4
_0234CAC8: .word ov29_0237D000
arm_func_end ov29_0234CA84
arm_func_start ov29_0234CACC
ov29_0234CACC: ; 0x0234CACC
stmdb sp!, {r3, lr}
mov r0, #0x21
bl OverlayIsLoaded
cmp r0, #0
beq _0234CAE8
mov r0, #0x21
bl UnloadOverlay
_0234CAE8:
ldr r0, _0234CAFC ; =ov29_023537E4
mov r1, #0
ldr r0, [r0]
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0234CAFC: .word ov29_023537E4
arm_func_end ov29_0234CACC
arm_func_start ov29_0234CB00
ov29_0234CB00: ; 0x0234CB00
ldr r0, _0234CB28 ; =ov29_023537E4
mov r3, #2
ldr r1, [r0]
ldr r2, _0234CB2C ; =ov29_0237D000
str r3, [r1]
ldr r1, [r0]
ldr ip, _0234CB30 ; =LoadOverlay
mov r0, #0x21
str r2, [r1, #4]
bx ip
.align 2, 0
_0234CB28: .word ov29_023537E4
_0234CB2C: .word ov29_0237D000
_0234CB30: .word LoadOverlay
arm_func_end ov29_0234CB00
arm_func_start ov29_0234CB34
ov29_0234CB34: ; 0x0234CB34
ldr r0, _0234CB4C ; =ov29_023537E4
ldr ip, _0234CB50 ; =ov30_023842F4
ldr r0, [r0]
mov r1, #0x5800
ldr r0, [r0, #4]
bx ip
.align 2, 0
_0234CB4C: .word ov29_023537E4
_0234CB50: .word ov30_023842F4
arm_func_end ov29_0234CB34
arm_func_start ov29_0234CB54
ov29_0234CB54: ; 0x0234CB54
stmdb sp!, {r3, lr}
mov r0, #0x21
bl OverlayIsLoaded
cmp r0, #0
beq _0234CB70
mov r0, #0x21
bl UnloadOverlay
_0234CB70:
ldr r0, _0234CB84 ; =ov29_023537E4
mov r1, #0
ldr r0, [r0]
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0234CB84: .word ov29_023537E4
arm_func_end ov29_0234CB54
arm_func_start DisplayFloorTip
DisplayFloorTip: ; 0x0234CB88
stmdb sp!, {r3, lr}
bl GetLeader
ldr r2, _0234CC88 ; =DUNGEON_PTR
mvn r3, #0
ldr r1, [r2]
ldr r0, _0234CC8C ; =ov29_023532C0
add r1, r1, #0x100
strh r3, [r1, #0xd8]
ldr r2, [r2]
mov r1, #1
add r2, r2, #0x100
strh r3, [r2, #0xda]
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CC90 ; =ov29_023532B8
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CC94 ; =ov29_023532B0
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CC98 ; =ov29_02353240
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldreq r0, _0234CC88 ; =DUNGEON_PTR
ldreq r0, [r0]
ldreqb r0, [r0, #0x748]
cmpeq r0, #3
ldmneia sp!, {r3, pc}
ldr r0, _0234CC9C ; =ov29_023532A0
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCA0 ; =ov29_02353298
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCA4 ; =ov29_02353290
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCA8 ; =ov29_02353278
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCAC ; =ov29_02353238
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCB0 ; =ov29_023532E0
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_0234CC88: .word DUNGEON_PTR
_0234CC8C: .word ov29_023532C0
_0234CC90: .word ov29_023532B8
_0234CC94: .word ov29_023532B0
_0234CC98: .word ov29_02353240
_0234CC9C: .word ov29_023532A0
_0234CCA0: .word ov29_02353298
_0234CCA4: .word ov29_02353290
_0234CCA8: .word ov29_02353278
_0234CCAC: .word ov29_02353238
_0234CCB0: .word ov29_023532E0
arm_func_end DisplayFloorTip
arm_func_start DisplayItemTip
DisplayItemTip: ; 0x0234CCB4
stmdb sp!, {r4, lr}
ldr r2, _0234CEA4 ; =DUNGEON_PTR
mvn r3, #0
ldr r1, [r2]
mov r4, r0
add r1, r1, #0x100
strh r3, [r1, #0xd8]
ldr r1, [r2]
add r1, r1, #0x100
strh r3, [r1, #0xda]
bl GetItemCategoryVeneer
cmp r0, #3
bne _0234CCF8
ldr r0, _0234CEA8 ; =ov29_023532F0
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CCF8:
cmp r4, #0x46
bne _0234CD10
ldr r0, _0234CEAC ; =ov29_023532F8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD10:
cmp r4, #0x52
bne _0234CD28
ldr r0, _0234CEB0 ; =ov29_023532D8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD28:
cmp r4, #0x57
bne _0234CD40
ldr r0, _0234CEB4 ; =ov29_023532C8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD40:
cmp r4, #8
bne _0234CD58
ldr r0, _0234CEB8 ; =ov29_02353250
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD58:
cmp r4, #0x51
bne _0234CD70
ldr r0, _0234CEBC ; =ov29_02353248
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD70:
cmp r4, #0x54
bne _0234CD88
ldr r0, _0234CEC0 ; =ov29_02353270
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD88:
cmp r4, #0xb7
bne _0234CDA0
ldr r0, _0234CEC4 ; =ov29_02353280
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDA0:
cmp r4, #0x63
bne _0234CDB8
ldr r0, _0234CEC8 ; =ov29_023532A8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDB8:
cmp r4, #0x45
bne _0234CDD0
ldr r0, _0234CECC ; =ov29_02353300
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDD0:
cmp r4, #0x5b
bne _0234CDE8
ldr r0, _0234CED0 ; =ov29_02353258
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDE8:
cmp r4, #0x56
bne _0234CE00
ldr r0, _0234CED4 ; =ov29_02353268
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE00:
cmp r4, #0x5e
bne _0234CE18
ldr r0, _0234CED8 ; =ov29_02353288
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE18:
cmp r4, #0x4c
bne _0234CE30
ldr r0, _0234CEDC ; =ov29_023532E8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE30:
cmp r4, #0x60
bne _0234CE48
ldr r0, _0234CEE0 ; =ov29_02353260
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE48:
cmp r4, #0x75
bne _0234CE60
ldr r0, _0234CEE4 ; =ov29_02353308
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE60:
ldr r0, _0234CEA4 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
#ifdef JAPAN
cmp r0, #0x7a
#else
cmp r0, #0x7b
#endif
ldmneia sp!, {r4, pc}
ldr r0, _0234CEE8 ; =0xFFFFFED2
add r0, r4, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #1
ldmhiia sp!, {r4, pc}
ldr r0, _0234CEEC ; =ov29_02353310
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
.align 2, 0
_0234CEA4: .word DUNGEON_PTR
_0234CEA8: .word ov29_023532F0
_0234CEAC: .word ov29_023532F8
_0234CEB0: .word ov29_023532D8
_0234CEB4: .word ov29_023532C8
_0234CEB8: .word ov29_02353250
_0234CEBC: .word ov29_02353248
_0234CEC0: .word ov29_02353270
_0234CEC4: .word ov29_02353280
_0234CEC8: .word ov29_023532A8
_0234CECC: .word ov29_02353300
_0234CED0: .word ov29_02353258
_0234CED4: .word ov29_02353268
_0234CED8: .word ov29_02353288
_0234CEDC: .word ov29_023532E8
_0234CEE0: .word ov29_02353260
_0234CEE4: .word ov29_02353308
_0234CEE8: .word 0xFFFFFED2
_0234CEEC: .word ov29_02353310
arm_func_end DisplayItemTip
arm_func_start DisplayDungeonTip
DisplayDungeonTip: ; 0x0234CEF0
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r0, [r5]
mov r4, r1
bl GetDungeonTipShown
cmp r0, #0
bne _0234CF58
ldrh r0, [r5, #4]
bl StringFromId
ldrb r0, [r0]
cmp r0, #0
beq _0234CF58
ldr r0, [r5]
bl SetDungeonTipShown
bl ov29_022EACBC
ldrh r1, [r5, #4]
mov r0, #0
mov r2, #1
bl DisplayMessage2
cmp r4, #0
beq _0234CF50
bl GetLeader
ldrh r1, [r5, #4]
bl LogMessageByIdQuiet
_0234CF50:
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_0234CF58:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
arm_func_end DisplayDungeonTip
arm_func_start SetBothScreensWindowColorToDefault
SetBothScreensWindowColorToDefault: ; 0x0234CF60
stmdb sp!, {r3, lr}
bl GetGameMode
cmp r0, #3
bne _0234CF7C
mov r0, #2
bl SetBothScreensWindowsColor
ldmia sp!, {r3, pc}
_0234CF7C:
bl GetPlayerGender
cmp r0, #1
bne _0234CF94
mov r0, #0
bl SetBothScreensWindowsColor
ldmia sp!, {r3, pc}
_0234CF94:
mov r0, #1
bl SetBothScreensWindowsColor
ldmia sp!, {r3, pc}
arm_func_end SetBothScreensWindowColorToDefault
arm_func_start ov29_0234CFA0
ov29_0234CFA0: ; 0x0234CFA0
stmdb sp!, {r3, lr}
bl IsFullFloorFixedRoom
cmp r0, #0
movne r0, #2
ldmneia sp!, {r3, pc}
ldr r0, _0234CFE8 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
bl IsFutureDungeon
cmp r0, #0
bne _0234CFD8
bl IsSecretFloor
cmp r0, #0
beq _0234CFE0
_0234CFD8:
mov r0, #1
ldmia sp!, {r3, pc}
_0234CFE0:
mov r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_0234CFE8: .word DUNGEON_PTR
arm_func_end ov29_0234CFA0
arm_func_start GetPersonalityIndex
GetPersonalityIndex: ; 0x0234CFEC
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldrb r0, [r5, #0x48]
cmp r0, #0xd8
cmpne r0, #0xf9
cmpne r0, #0xf7
cmpne r0, #0xf8
beq _0234D1D4
cmp r0, #0xd6
blo _0234D1D4
cmp r0, #0xd7
bne _0234D04C
mov r0, #0
mov r1, #0x43
bl LoadScriptVariableValue
cmp r0, #1
moveq r4, #0x4b0
beq _0234D1E0
cmp r0, #2
ldreq r4, _0234D1E8 ; =0x000004B1
beq _0234D1E0
cmp r0, #3
ldreq r4, _0234D1EC ; =0x000004B2
b _0234D1E0
_0234D04C:
cmp r0, #0xd6
bne _0234D0A0
ldrsh r2, [r5, #2]
ldr r1, _0234D1F0 ; =0x000001B2
cmp r2, r1
ldreq r4, _0234D1F4 ; =0x000004CD
beq _0234D1E0
cmp r2, #0xae
addeq r4, r1, #0x31c
beq _0234D1E0
add r0, r1, #0x27c
cmp r2, r0
ldreq r4, _0234D1F8 ; =0x000004CF
beq _0234D1E0
sub r0, r1, #0x99
cmp r2, r0
moveq r4, #0x4d0
beq _0234D1E0
cmp r2, #0x318
ldreq r4, _0234D1FC ; =0x000004D1
b _0234D1E0
_0234D0A0:
cmp r0, #0xda
#ifdef JAPAN
bne _0234E334
ldr r0, _0234D204 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
bl IsFutureDungeon
cmp r0, #0
ldrne r0, _0234E48C ; =0x000004BC
ldreq r0, _0234D200 ; =0x000004B3
mov r0, r0, lsl #0x10
mov r4, r0, asr #0x10
b _0234D1E0
_0234E334:
#else
ldreq r4, _0234D200 ; =0x000004B3
beq _0234D1E0
#endif
cmp r0, #0xed
bne _0234D148
ldr r0, _0234D204 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r1, [r0, #0x748]
add r0, r1, #0x7b
and r0, r0, #0xff
cmp r0, #2
ldrls r4, _0234D208 ; =0x000004C4
bls _0234D1E0
cmp r1, #0x88
ldreq r4, _0234D20C ; =0x000004C6
beq _0234D1E0
add r0, r1, #0x77
and r0, r0, #0xff
cmp r0, #1
ldrls r4, _0234D210 ; =0x000004C7
bls _0234D1E0
add r0, r1, #0x75
and r0, r0, #0xff
cmp r0, #1
ldrls r4, _0234D214 ; =0x000004C8
bls _0234D1E0
cmp r1, #0x8d
ldreq r4, _0234D218 ; =0x000004C9
beq _0234D1E0
add r0, r1, #0x72
and r0, r0, #0xff
cmp r0, #2
ldrls r4, _0234D21C ; =0x000004CA
bls _0234D1E0
cmp r1, #0x91
ldreq r4, _0234D220 ; =0x000004CB
beq _0234D1E0
add r0, r1, #0x6e
and r0, r0, #0xff
cmp r0, #2
ldrls r4, _0234D224 ; =0x000004CC
b _0234D1E0
_0234D148:
cmp r0, #0xe2
bne _0234D170
mov r0, #0x1a
bl GetPerformanceFlagWithChecks
cmp r0, #0
beq _0234D170
ldrsh r0, [r5, #2]
bl sub_02025784
mov r4, r0
b _0234D1E0
_0234D170:
ldr r1, _0234D228 ; =ov29_023537E8
b _0234D1C4
_0234D178:
ldrb r0, [r5, #0x48]
cmp r0, r2
bne _0234D1C0
ldrsh r4, [r1, #2]
ldr r0, _0234D22C ; =0x000004B8
cmp r4, r0
bne _0234D1A8
ldrsh r0, [r5, #2]
cmp r0, #0x1f8
cmpne r0, #0x51
ldreq r4, _0234D230 ; =0x000004D3
beq _0234D1E0
_0234D1A8:
cmp r4, #0
bne _0234D1E0
ldrsh r0, [r5, #2]
bl sub_02025784
mov r4, r0
b _0234D1E0
_0234D1C0:
add r1, r1, #4
_0234D1C4:
ldrb r2, [r1]
cmp r2, #0xff
bne _0234D178
b _0234D1E0
_0234D1D4:
ldrsh r0, [r5, #4]
bl sub_02025784
mov r4, r0
_0234D1E0:
mov r0, r4
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0234D1E8: .word 0x000004B1
_0234D1EC: .word 0x000004B2
_0234D1F0: .word 0x000001B2
_0234D1F4: .word 0x000004CD
_0234D1F8: .word 0x000004CF
_0234D1FC: .word 0x000004D1
#ifdef JAPAN
_0234D204: .word DUNGEON_PTR
_0234E48C: .word 0x000004BC
_0234D200: .word 0x000004B3
#else
_0234D200: .word 0x000004B3
_0234D204: .word DUNGEON_PTR
#endif
_0234D208: .word 0x000004C4
_0234D20C: .word 0x000004C6
_0234D210: .word 0x000004C7
_0234D214: .word 0x000004C8
_0234D218: .word 0x000004C9
_0234D21C: .word 0x000004CA
_0234D220: .word 0x000004CB
_0234D224: .word 0x000004CC
_0234D228: .word ov29_023537E8
_0234D22C: .word 0x000004B8
_0234D230: .word 0x000004D3
arm_func_end GetPersonalityIndex
arm_func_start ov29_0234D234
ov29_0234D234: ; 0x0234D234
stmdb sp!, {r3, lr}
sub sp, sp, #8
ldr lr, [sp, #0x10]
ldrb ip, [sp, #0x14]
str lr, [sp]
str ip, [sp, #4]
bl ov29_0234D5D0
add sp, sp, #8
ldmia sp!, {r3, pc}
arm_func_end ov29_0234D234
arm_func_start DisplayMessage
DisplayMessage: ; 0x0234D258
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
mov r5, r1
mov r4, r2
mov r0, #0xa
bl ov29_0234BA54
bl ov29_0234D558
bl ov29_0234B034
mov r1, r4
mov r2, r6
str r0, [sp]
mov r0, r5
mov r3, #0
str r3, [sp, #4]
bl DisplayMessageInternal
mov r0, #0xb
mov r1, #0
bl ov29_022EA428
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
arm_func_end DisplayMessage
arm_func_start DisplayMessage2
DisplayMessage2: ; 0x0234D2AC
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
mov r5, r1
mov r4, r2
mov r0, #0xa
bl ov29_0234BA54
bl ov29_0234D558
bl ov29_0234B034
mov r1, r4
mov r2, r6
str r0, [sp]
mov r0, r5
mov r3, #1
str r3, [sp, #4]
mov r3, #0
bl DisplayMessageInternal
mov r0, #0
mov r1, r0
bl ov29_022EA428
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
arm_func_end DisplayMessage2
arm_func_start ov29_0234D304
ov29_0234D304: ; 0x0234D304
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x58
ldr r4, _0234D454 ; =ov29_02353563
mov r8, r0
ldrb r0, [r4]
mov r7, r1
mov r6, r2
mov r5, r3
cmp r0, #0
beq _0234D334
mov r0, #0xa
bl ov29_0234BA54
_0234D334:
bl ov29_0234D558
mov r0, r8
bl IsMonster__0234D460
cmp r0, #0
beq _0234D41C
mov r0, r8
bl IsMonster__0234D460
cmp r0, #0
beq _0234D3F8
ldr r4, [r8, #0xb4]
bl FixedRoomIsSubstituteRoom
cmp r0, #0
beq _0234D3BC
bl GetRandomExplorerMazeMonster
cmp r0, #0
moveq r1, #0
beq _0234D38C
ldr r1, [r0]
cmp r1, #0
movne r1, #1
moveq r1, #0
and r1, r1, #0xff
_0234D38C:
cmp r1, #0
moveq r0, #0
streq r0, [sp, #8]
beq _0234D3D0
ldr r1, [r0, #0xb4]
ldr r0, _0234D458 ; =ov29_02353368
ldrb r1, [r1, #0xbc]
sub r1, r1, #0xb
orr r1, r1, #0x90000
str r1, [sp, #8]
bl Debug_Print0
b _0234D3D0
_0234D3BC:
bl ov29_02337EE8
mov r1, r0
ldr r0, _0234D45C ; =ov29_02353380
str r1, [sp, #8]
bl Debug_Print0
_0234D3D0:
ldrsh r0, [r4, #4]
str r0, [sp, #0xc]
bl ov29_0233804C
str r0, [sp, #0x18]
mov r0, r8
bl ov29_0231ADA8
str r0, [sp, #0x1c]
ldrsh r0, [r4, #0xc]
orr r0, r0, #0x30000
str r0, [sp, #0x54]
_0234D3F8:
add r3, sp, #8
str r3, [sp]
mov r3, #1
mov r0, r6
mov r1, r5
mov r2, r7
str r3, [sp, #4]
bl ov29_0234D5D0
b _0234D440
_0234D41C:
bl ov29_0234B034
str r0, [sp]
mov r4, #1
mov r0, r6
mov r1, r5
mov r2, r7
mov r3, #0
str r4, [sp, #4]
bl ov29_0234D5D0
_0234D440:
mov r0, #0
mov r1, r0
bl ov29_022EA428
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_0234D454: .word ov29_02353563
_0234D458: .word ov29_02353368
_0234D45C: .word ov29_02353380
arm_func_end ov29_0234D304

20
include/main_0204AFF8.h Normal file
View File

@@ -0,0 +1,20 @@
#ifndef PMDSKY_MAIN_0204AFF8_H
#define PMDSKY_MAIN_0204AFF8_H
#include "util.h"
enum game_mode
{
GAME_MODE_MENU = 0, // top menu
GAME_MODE_1 = 1, // also related to special episodes? But 3 is the main one
GAME_MODE_NORMAL = 2, // normal play, including both overworld/dungeons
GAME_MODE_SPECIAL_EPISODE = 3, // during special episodes
// Pelipper Island (and likely also in the dungeon while rescuing, need to confirm)
GAME_MODE_RESCUE = 4,
GAME_MODE_5 = 5,
// Possibly more?
};
bool8 IsGameModeRescue();
#endif //PMDSKY_MAIN_0204AFF8_H

View File

@@ -0,0 +1,7 @@
#ifndef PMDSKY_OVERLAY_29_022DC61C_H
#define PMDSKY_OVERLAY_29_022DC61C_H
// mem init?
void ov29_022DC61C();
#endif //PMDSKY_OVERLAY_29_022DC61C_H

View File

@@ -12,5 +12,7 @@ struct dungeon* GetDungeonPtrMaster(void);
void DungeonZInit(void);
// Frees the dungeons struct pointer to by the master dungeon pointer, and nullifies the pointer.
void DungeonFree(void);
void ov29_022DEADC();
void ov29_022DEB40();
#endif //PMDSKY_OVERLAY_29_022DEAB0_H

View File

@@ -0,0 +1,6 @@
#ifndef PMDSKY_OVERLAY_29_0234BBE8_H
#define PMDSKY_OVERLAY_29_0234BBE8_H
void ov29_0234BBE8();
#endif //PMDSKY_OVERLAY_29_0234BBE8_H

View File

@@ -0,0 +1,7 @@
#ifndef PMDSKY_OVERLAY_29_0234CA68_H
#define PMDSKY_OVERLAY_29_0234CA68_H
s32 ov29_0234CA68();
s32 ov29_0234CA7C();
#endif //PMDSKY_OVERLAY_29_0234CA68_H

View File

@@ -43,6 +43,8 @@ Static main
Object asm/main_0202598C.o
Object src/main_020348E4.o
Object asm/main_02034974.o
Object src/main_0204AFF8.o
Object asm/main_0204B018.o
Object src/number_util.o
Object asm/main_02051098.o
Object src/main_02052874.o
@@ -261,8 +263,10 @@ Overlay OVY_29
Object asm/overlay_29_bss_02353860.o
Object src/poly_text.o
Object asm/overlay_29_022DC314.o
Object src/overlay_29_022DC61C.o
Object asm/overlay_29_022DC65C.o
Object src/overlay_29_022DEAB0.o
Object asm/overlay_29_022DEADC.o
Object asm/overlay_29_022DEBA4.o
Object src/dg.o
Object asm/overlay_29_022E0378.o
Object src/overlay_29_022E1610.o
@@ -479,6 +483,10 @@ Overlay OVY_29
Object asm/overlay_29_02347BC8.o
Object src/overlay_29_0234987C.o
Object asm/overlay_29_023498A0.o
Object src/overlay_29_0234BBE8.o
Object asm/overlay_29_0234BEE0.o
Object src/overlay_29_0234CA68.o
Object asm/overlay_29_0234CA84.o
Object src/overlay_29_0234D460.o
Object asm/overlay_29_0234D484.o
Object src/overlay_29_0234DDD0.o

8
src/main_0204AFF8.c Normal file
View File

@@ -0,0 +1,8 @@
#include "main_0204AFF8.h"
extern enum game_mode GAME_MODE;
bool8 IsGameModeRescue()
{
return GAME_MODE == GAME_MODE_RESCUE;
}

17
src/overlay_29_022DC61C.c Normal file
View File

@@ -0,0 +1,17 @@
#include "overlay_29_022DC61C.h"
#include "main_0200330C.h"
extern u8 ov29_023538B4[0x0001963C];
extern u8 *ov29_023534E0;
extern void ov29_022DC544(s32);
extern void ov29_022DC240(u8*);
extern void ov29_022DC314(u8*, u8*);
void ov29_022DC61C()
{
MemZero(ov29_023538B4, sizeof(ov29_023538B4));
ov29_022DC544(0);
ov29_022DC240(ov29_023538B4);
ov29_022DC314(ov29_023538B4, ov29_023534E0);
}

View File

@@ -5,6 +5,12 @@ extern struct dungeon* DUNGEON_PTR[];
void MemFree(void* ptr);
void MemZero(void* ptr, u32 len);
void* MemAlloc(u32 len, u32 flags);
void ov29_0234C654(s32);
void sub_020091B0(s32, s32);
void sub_02009194(s32, s32);
void sub_020091B0(s32, s32);
void StartFadeDungeonWrapper(s32, s32, s32);
void ov29_0234C738(s32);
struct dungeon* DungeonAlloc(void)
{
@@ -13,7 +19,7 @@ struct dungeon* DungeonAlloc(void)
#else
void* buf = MemAlloc(0x0002CB14,0);
#endif
DUNGEON_PTR[1]=buf;
}
@@ -39,3 +45,27 @@ void DungeonFree(void)
MemFree(DUNGEON_PTR[1]);
DUNGEON_PTR[1]=0;
}
void ov29_022DEADC()
{
ov29_0234C654(0x20);
sub_020091B0(0, 0);
sub_020091B0(1, 0);
sub_02009194(2, 0);
sub_02009194(3, 0);
sub_020091B0(4, 0);
StartFadeDungeonWrapper(1, 0x4000, 0);
ov29_0234C738(0);
}
void ov29_022DEB40()
{
StartFadeDungeonWrapper(2, 0x4000, 0);
ov29_0234C738(0);
ov29_0234C654(1);
sub_020091B0(0, 0);
sub_020091B0(1, 0);
sub_020091B0(2, 0);
sub_020091B0(3, 0);
sub_020091B0(4, 0);
}

171
src/overlay_29_0234BBE8.c Normal file
View File

@@ -0,0 +1,171 @@
#include "overlay_29_0234BBE8.h"
#include "main_0204AFF8.h"
#include "overlay_29_022DC61C.h"
#include "overlay_29_0234CA68.h"
#include "util.h"
struct unk_ov29_023537DC {
s32 v0;
u8 v4;
s32 v8;
u8 v0xc;
u8 v0xd;
};
typedef struct {
u8 v0;
struct unk_ov29_023537DC *v4;
} unk_ov29_023537D8_t;
extern unk_ov29_023537D8_t ov29_023537D8;
void ov29_022DEBA4(); // thunk_FUN_022deadc
void ov29_0234CB00();
void ov30_02382820(s32, s32, s32);
s32 ov30_02382874();
void ov29_022DDEF8();
s32 ov30_0238298C();
void ov30_023829A0();
void sub_02048DC4(s32);
void ov29_022DEBB0();
void sub_02051DD0(s32, s32);
void sub_02051E60(s32, s32);
void ov29_0234BEE0(s32);
void ov29_0234BF04(s32);
s32 GetDungeonPtrMaster();
void RunDungeon(void *, s32);
s32 sub_0205BAB0(void *);
void ov29_022DE418();
void sub_020091B0(s32, s32);
void sub_02009194(s32, s32);
void StartFadeDungeonWrapper(s32, s32, s32);
void ov29_0234C738(s32);
void SetAdventureLogDungeonFloor(void *);
void StopBgmCommand();
void ov30_023829CC(s32, s32, s32);
void ov29_022DDE00(s32);
void ov30_02382C30();
void ov29_0234CACC();
void ov29_022DC65C();
void sub_02017B70();
void ov29_0234BBE8(void)
{
s32 uVar3;
s32 uVar4;
s32 uVar5;
s32 iVar6;
bool8 bVar1 = FALSE;
struct unk_ov29_023537DC *iVar7 = ov29_023537D8.v4;
ov29_022DC61C(); // mem init?
if (iVar7[1].v4 != 0)
{
ov29_022DEBA4(); // thunk_FUN_022deadc/fade?
ov29_0234CB00(); // do something with overlays
uVar3 = ov29_0234CA68();
uVar4 = ov29_0234CA7C();
uVar5 = IsGameModeRescue(); // is GAME_MODE rescue?
ov30_02382820(uVar3,uVar4,uVar5); // alloc these values
while (iVar6 = ov30_02382874(), iVar6 != 0)
{
ov29_022DDEF8();
}
iVar6 = ov30_0238298C();
ov30_023829A0();
if (iVar6 != 0)
{
sub_02048DC4(0xF1208);
}
else
{
sub_02048DC4(0xF1209);
}
ov29_022DEBB0();
if (iVar6 == 0)
{
iVar7[12].v0 = 5;
bVar1 = TRUE;
ov29_022DDEF8();
}
}
while (!bVar1)
{
ov29_022DDEF8();
if (ov29_023537D8.v0 != 0) continue;
switch (ov29_023537D8.v4->v8)
{
case 1:
sub_02051DD0(0,0);
sub_02051DD0(1,0);
sub_02051DD0(0,1);
sub_02051DD0(1,1);
sub_02051E60(0,0);
sub_02051E60(1,0);
sub_02051E60(0,1);
sub_02051E60(1,1);
ov29_0234BEE0(0);
ov29_0234BEE0(1);
ov29_0234BF04(0);
ov29_0234BF04(1);
uVar3 = GetDungeonPtrMaster();
RunDungeon(&(ov29_023537D8.v4[1]), uVar3);
bVar1 = TRUE;
break;
case 2:
bVar1 = TRUE;
break;
}
}
if (&(ov29_023537D8.v4[1]) == (void *)0) goto _0234beb8;
iVar7 = &(ov29_023537D8.v4[1]);
iVar6 = -2;
if (iVar7[11].v0 == -2)
{
iVar6 = sub_0205BAB0(&(iVar7[11].v8));
}
if (iVar7[11].v0 != 3)
{
iVar6 = -2;
if (iVar7[11].v0 != iVar6) goto _0234beb8;
}
iVar7 = ov29_023537D8.v4;
ov29_022DE418();
sub_020091B0(0,0);
sub_020091B0(1,0);
sub_02009194(2,0);
sub_02009194(3,0);
sub_020091B0(4,0);
StartFadeDungeonWrapper(1,0x4000,0);
ov29_0234C738(0);
SetAdventureLogDungeonFloor(&(iVar7[12].v4));
sub_02017B70();
if (iVar7[12].v0 != -2 && IsGameModeRescue())
{
uVar3 = 1;
}
else
{
uVar3 = 0;
}
uVar4 = ov29_0234CA68();
uVar5 = ov29_0234CA7C();
ov30_023829CC(uVar4,uVar5,uVar3);
ov29_022DDE00(0x10);
iVar7 = ov29_023537D8.v4;
iVar7[0x1b].v0xc = 1;
while (ov29_023537D8.v4[0x1b].v0xc != 0)
{
ov29_022DDEF8();
}
ov30_02382C30();
ov29_0234CACC();
ov29_022DDE00(2);
StartFadeDungeonWrapper(2,0x4000,0);
ov29_0234C738(0);
_0234beb8:
ov29_022DC65C();
ov29_023537D8.v4[0x1b].v0xd = 1;
do
{
ov29_022DDEF8();
} while( TRUE );
}

13
src/overlay_29_0234CA68.c Normal file
View File

@@ -0,0 +1,13 @@
#include "overlay_29_0234CA68.h"
extern s32* ov29_023537E4;
s32 ov29_0234CA68()
{
return ov29_023537E4[1];
}
s32 ov29_0234CA7C()
{
return 0x5800;
}