Synced from pmdsky-debug

This commit is contained in:
AnonymousRandomPerson 2025-08-26 19:17:51 -04:00
parent c133dba50c
commit e6cfeaa6bc
17 changed files with 826 additions and 828 deletions

View File

@ -1,36 +1,4 @@
#pragma once
.public ArrayCopy16
.public ArrayCopy32
.public ArrayCopy32Fast
.public ArrayFill16
.public ArrayFill32
.public ArrayFill32Fast
.public CRYPTO_RC4Init
.public Debug_GetDebugFlag
.public EnableIrqFlag
.public FileInit
.public G3X_Reset
.public GetDsFirmwareUserSettings
.public GetFadeStatus
.public GetLanguage
.public GetProcessorMode
.public HardwareInterrupt
.public LoadOverlay
.public MemAlloc
.public MemFree
.public MemZero
.public MemcpyFast
.public MemcpySimple
.public MemsetFast
.public OSi_ReferSymbol
.public PlayBgmByIdVeneer
.public RandInt
.public SVC_WaitByLoop
.public SetIrqFlag
.public StartThread
.public ThreadExit
.public UnloadOverlay
.public WaitForever2
.public _02000BDC
.public _02000BF4
.public _02000C1C
@ -52,10 +20,34 @@
.public _start_AutoloadDoneCallback
.public _u32_div_f
.public abs
.public ArrayCopy16
.public ArrayCopy32
.public ArrayCopy32Fast
.public ArrayFill16
.public ArrayFill32
.public ArrayFill32Fast
.public CRYPTO_RC4Init
.public Debug_GetDebugFlag
.public EnableIrqFlag
.public FileInit
.public G3X_Reset
.public GetDsFirmwareUserSettings
.public GetFadeStatus
.public GetLanguage
.public GetProcessorMode
.public HardwareInterrupt
.public LoadOverlay
.public MemAlloc
.public memcmp
.public memcpy
.public MemcpyFast
.public MemcpySimple
.public MemFree
.public memmove
.public memset
.public MemsetFast
.public MemZero
.public OSi_ReferSymbol
.public ov00_0230E074
.public ov00_0230E098
.public ov00_0230E0B0
@ -1023,8 +1015,12 @@
.public ov01_02337914
.public ov01_0233AE64
.public ov02_02329520
.public PlayBgmByIdVeneer
.public RandInt
.public SetIrqFlag
.public snprintf
.public sprintf
.public StartThread
.public strcat
.public strchr
.public strcmp
@ -1177,4 +1173,8 @@
.public sub_0208B200
.public sub_0208B298
.public sub_0208B360
.public SVC_WaitByLoop
.public ThreadExit
.public UnloadOverlay
.public WaitForever2
.public wcslen

View File

@ -1,4 +1,10 @@
#pragma once
.public _020A1870
.public _020A548A
.public _020A5490
.public _fdiv
.public _ffix
.public _fflt
.public AddBulkItemToStorage
.public AddMissionToJobList
.public AllocAndInitPartnerFollowDataAndLiveActorList
@ -34,7 +40,6 @@
.public FileRom_Veneer_FileInit
.public FreeTeamStats
.public G3X_Reset
.public GROUND_MEMORY_ARENA_1
.public GenerateCroagunkItems
.public GenerateDailyMissions
.public GenerateKecleonItems1
@ -70,6 +75,7 @@
.public GetTalkLine
.public GetTeamMember
.public GetType
.public GROUND_MEMORY_ARENA_1
.public IncrementNbBigTreasureWins
.public IncrementNbDungeonsCleared
.public IncrementNbSkyGiftsSent
@ -90,72 +96,17 @@
.public IsStorageFull
.public ItemAtTableIdx
.public KeyWaitInit
.public LOCK_NOTIFY_ARRAY
.public LoadFileFromRom
.public LoadOverlay
.public LoadScriptVariableValue
.public LoadScriptVariableValueAtIndex
.public LoadScriptVariableValueSum
.public LOCK_NOTIFY_ARRAY
.public MemAlloc
.public MemArenaAlloc
.public MemFree
.public MemZero
.public MemsetSimple
.public OVERLAY11_DEBUG_STRINGS
.public PlayBgmByIdVeneer
.public PlayBgmByIdVolumeVeneer
.public PlaySeByIdVolumeWrapper
.public PreprocessString
.public PreprocessStringFromId
.public RECRUITMENT_TABLE_LEVELS
.public RECRUITMENT_TABLE_LOCATIONS
.public RECRUITMENT_TABLE_SPECIES
.public RandInt
.public RandRange
.public RandomizeDemoActors
.public RemoveBulkItemInStorage
.public RemoveItemNoHole
.public SCRIPT_COMMAND_PARSING_DATA
.public SCRIPT_OP_CODES
.public SaveScriptVariableValue
.public SaveScriptVariableValueAtIndex
.public SetActorTalkMain
.public SetActorTalkSub
.public SetAdventureLogCompleted
.public SetBaseStatsMovesGroundMonster
.public SetDungeonConquest
.public SetEnterDungeon
.public SetMemAllocatorParams
.public SetPortraitEmotion
.public SetPortraitLayout
.public SetPortraitOffset
.public SetScenarioScriptVar
.public SetTeamSetupHeroAndPartnerOnly
.public SetTeamSetupHeroOnly
.public SetupAndShowKeyboard
.public ShowPortraitInPortraitBox
.public ShowStringIdInDialogueBox
.public SpecialProcAddItemToBag
.public StatusUpdate
.public StrcpyName
.public StrncpyName
.public UNIONALL_RAM_ADDRESS
.public UnloadFile
.public UnloadOverlay
.public UnlockActorRoutines
.public UnlockMainRoutine
.public UnlockObjectRoutines
.public UnlockPerformerRoutines
.public UpdateTeamStats
.public WorldMapSetCamera
.public WorldMapSetMode
.public ZinitScriptVariable
.public _020A1870
.public _020A548A
.public _020A5490
.public _fdiv
.public _ffix
.public _fflt
.public MemZero
.public ov10_022BDB54
.public ov10_022BDB60
.public ov10_022BDBA4
@ -510,7 +461,45 @@
.public ov11_023891F8
.public ov28_0238A140
.public ov28_0238A468
.public OVERLAY11_DEBUG_STRINGS
.public PlayBgmByIdVeneer
.public PlayBgmByIdVolumeVeneer
.public PlaySeByIdVolumeWrapper
.public PreprocessString
.public PreprocessStringFromId
.public RandInt
.public RandomizeDemoActors
.public RandRange
.public RECRUITMENT_TABLE_LEVELS
.public RECRUITMENT_TABLE_LOCATIONS
.public RECRUITMENT_TABLE_SPECIES
.public RemoveBulkItemInStorage
.public RemoveItemNoHole
.public SaveScriptVariableValue
.public SaveScriptVariableValueAtIndex
.public SCRIPT_COMMAND_PARSING_DATA
.public SCRIPT_OP_CODES
.public SetActorTalkMain
.public SetActorTalkSub
.public SetAdventureLogCompleted
.public SetBaseStatsMovesGroundMonster
.public SetDungeonConquest
.public SetEnterDungeon
.public SetMemAllocatorParams
.public SetPortraitEmotion
.public SetPortraitLayout
.public SetPortraitOffset
.public SetScenarioScriptVar
.public SetTeamSetupHeroAndPartnerOnly
.public SetTeamSetupHeroOnly
.public SetupAndShowKeyboard
.public ShowPortraitInPortraitBox
.public ShowStringIdInDialogueBox
.public SpecialProcAddItemToBag
.public sprintf
.public StatusUpdate
.public StrcpyName
.public StrncpyName
.public sub_020012D8
.public sub_020017B4
.public sub_0200238C
@ -715,4 +704,15 @@
.public sub_0206C120
.public sub_0206C134
.public sub_0206C144
.public sub_0206C164
.public sub_0206C164
.public UNIONALL_RAM_ADDRESS
.public UnloadFile
.public UnloadOverlay
.public UnlockActorRoutines
.public UnlockMainRoutine
.public UnlockObjectRoutines
.public UnlockPerformerRoutines
.public UpdateTeamStats
.public WorldMapSetCamera
.public WorldMapSetMode
.public ZinitScriptVariable

View File

@ -2,16 +2,13 @@
.public BmaLayerNrlDecompressor
.public DecompressAtNormalVeneer
.public GetAtSize
.public GroundBg_CloseOpenedFiles
.public GroundBg_Init
.public LoadBackgroundAttributes
.public LoadFileFromRom
.public MemAlloc
.public MemFree
.public Memcpy16
.public PointsToZero
.public UnloadFile
.public ZInit8
.public GroundBg_Init
.public GroundBg_CloseOpenedFiles
.public MemFree
.public ov11_022EC08C
.public ov11_022EE620
.public ov11_022EE8CC
@ -23,6 +20,7 @@
.public ov11_02320C28
.public ov11_02320C80
.public ov11_02324CBC
.public PointsToZero
.public sprintf
.public sub_0200A504
.public sub_0200A590
@ -33,3 +31,5 @@
.public sub_020163E4
.public sub_0201641C
.public sub_02016468
.public UnloadFile
.public ZInit8

View File

@ -1,4 +1,9 @@
#pragma once
.public _fdiv
.public _ffix
.public _fflt
.public _s32_div_f
.public abs
.public ACTOR_FUNCTION_TABLE
.public AddItemToBagNoHeld
.public AnimationControlGetAllocForMaxFrame
@ -52,17 +57,14 @@
.public DrawTextInWindow
.public DungeonMoveToGroundMove
.public DungeonSwapIdxToId
.public ENTITIES
.public EVENTS
.public EnableIqSkill
.public ENTITIES
.public EntryOverlay13
.public EuclideanNorm__020050B0
.public FX_Atan2Idx
.public EVENTS
.public FemaleToMaleForm
.public FuncThatCallsRunNextOpcode
.public GROUND_STATE_MAP
.public GROUND_STATE_PTRS
.public GROUND_WEATHER_TABLE
.public FX_Atan2Idx
.public GetAcceptedMission
.public GetActiveRosterIndex
.public GetActiveTeamMember
@ -103,6 +105,11 @@
.public GetStringFromFileVeneer
.public GetTeamMember
.public GetWindowContents
.public GROUND_STATE_MAP
.public GROUND_STATE_PTRS
.public GROUND_WEATHER_TABLE
.public GroundBg_FreeAll
.public GroundBg_Init
.public InitAnimationControlWithSet__0201C0B0
.public InitMove
.public InitPortraitParams
@ -139,74 +146,14 @@
.public LoadWanTableEntryFromPack
.public LoadWteFromRom
.public MemAlloc
.public MemFree
.public MemZero
.public memcpy
.public Memcpy32
.public MemcpySimple
.public MemFree
.public MemZero
.public NewWindowScreenCheck
.public OBJECTS
.public OBJECT_FUNCTION_TABLE
.public OVERLAY11_OVERLAY_LOAD_TABLE
.public OverlayIsLoaded
.public PERFORMER_FUNCTION_TABLE
.public PlaySeVolumeWrapper
.public PopInventoryMenuField0x1A3
.public PreprocessString
.public PreprocessStringFromId
.public PrintBadgeMark
.public PrintIqSkillsMenu
.public RandInt
.public RemoveItemNoHole
.public RemoveItemNoHoleCheck
.public Render3dElement64
.public ResumeAdvancedMenu
.public ResumeParentMenu
.public SETANIMATION_TABLE
.public SaveScriptVariableValue
.public SaveScriptVariableValueBytes
.public ScriptStationLoadTalk
.public SentryUpdateDisplay
.public SetActorTalkMain
.public SetActorTalkMainAndActorTalkSub
.public SetActorTalkSub
.public SetAnimationForAnimationControl
.public SetAreaNameBoxState3
.public SetCollectionMenuField0x1A4
.public SetCollectionMenuField0x1C8
.public SetInventoryMenuState0
.public SetInventoryMenuState6
.public SetItemAcquired
.public SetParentMenuState7
.public SetSpriteIdForAnimationControl
.public ShowDialogueBox
.public ShowKeyboard
.public ShowStringIdInDialogueBox
.public ShowStringInDialogueBox
.public SortItemsInBag
.public StrcmpMonsterName
.public StrcpyName
.public StrcpySimple
.public StringFromId
.public StrncpyName
.public StrncpySimple
.public StrncpySimpleNoPad
.public StrncpySimpleNoPadSafe
.public SwitchAnimationControlToNextFrame
.public TEAM_INFO_BOX_DEFAULT_WINDOW_PARAMS
.public TEAM_MEMBER_TABLE_PTR
.public TRIG_TABLE
.public UnloadFile
.public UnlockRoutine
.public UpdateWindow
.public VEC_Distance
.public WAN_TABLE
.public WORLD_MAP_MODE
.public _fdiv
.public _ffix
.public _fflt
.public _s32_div_f
.public abs
.public memcpy
.public OBJECTS
.public ov10_022BCC60
.public ov10_022BCC7C
.public ov10_022BCCB0
@ -312,8 +259,6 @@
.public ov11_022EB2F4
.public ov11_022EB3C8
.public ov11_022EBAA0
.public GroundBg_Init
.public ov11_022EBEAC
.public ov11_022EC240
.public ov11_022EC27C
.public ov11_022ED69C
@ -745,7 +690,6 @@
.public ov11_02324D94
.public ov11_02324D98
.public ov11_02324DA0
.public ov11_02324DA4
.public ov11_02324DAC
.public ov11_02324DB4
.public ov11_02324DBC
@ -790,9 +734,54 @@
.public ov16_0238CCBC
.public ov16_0238CCD8
.public ov16_0238CCF0
.public OVERLAY11_OVERLAY_LOAD_TABLE
.public OverlayIsLoaded
.public PERFORMER_FUNCTION_TABLE
.public PlaySeVolumeWrapper
.public PopInventoryMenuField0x1A3
.public PreprocessString
.public PreprocessStringFromId
.public PrintBadgeMark
.public PrintIqSkillsMenu
.public RandInt
.public RemoveItemNoHole
.public RemoveItemNoHoleCheck
.public Render3dElement64
.public ResumeAdvancedMenu
.public ResumeParentMenu
.public SaveScriptVariableValue
.public SaveScriptVariableValueBytes
.public ScriptStationLoadTalk
.public SentryUpdateDisplay
.public SetActorTalkMain
.public SetActorTalkMainAndActorTalkSub
.public SetActorTalkSub
.public SETANIMATION_TABLE
.public SetAnimationForAnimationControl
.public SetAreaNameBoxState3
.public SetCollectionMenuField0x1A4
.public SetCollectionMenuField0x1C8
.public SetInventoryMenuState0
.public SetInventoryMenuState6
.public SetItemAcquired
.public SetParentMenuState7
.public SetSpriteIdForAnimationControl
.public ShowDialogueBox
.public ShowKeyboard
.public ShowStringIdInDialogueBox
.public ShowStringInDialogueBox
.public SortItemsInBag
.public sprintf
.public strcat
.public StrcmpMonsterName
.public strcpy
.public StrcpyName
.public StrcpySimple
.public StringFromId
.public StrncpyName
.public StrncpySimple
.public StrncpySimpleNoPad
.public StrncpySimpleNoPadSafe
.public sub_020017EC
.public sub_0200302C
.public sub_020030FC
@ -1020,4 +1009,15 @@
.public sub_0206B9DC
.public sub_0206BA5C
.public sub_0206C110
.public SWAP_SHOP_INVENTORY_PTRS
.public SwitchAnimationControlToNextFrame
.public TEAM_INFO_BOX_DEFAULT_WINDOW_PARAMS
.public TEAM_MEMBER_TABLE_PTR
.public TRIG_TABLE
.public UnloadFile
.public UnlockRoutine
.public UpdateWindow
.public VEC_Distance
.public vsprintf
.public WAN_TABLE
.public WORLD_MAP_MODE

View File

@ -33,7 +33,6 @@
.public ov11_022E6E68
.public ov11_022E6E8C
.public ov11_022E6EC8
.public ov11_0230B20C
.public ov11_0230B694
.public ov11_0230B874
.public ov11_0230B8C0
@ -100,4 +99,5 @@
.public sub_020420F4
.public sub_020572EC
.public sub_0205B028
.public SwapShopInventoryManager
.public UpdateWindow

View File

@ -30,7 +30,6 @@
.public ov11_022E6E68
.public ov11_022E6E8C
.public ov11_022E6EC8
.public ov11_0230B20C
.public ov11_0230B724
.public ov11_0230B8C0
.public ov11_0230B9BC
@ -52,4 +51,5 @@
.public sub_02027B1C
.public sub_0202836C
.public sub_0202F2C4
.public SwapShopInventoryManager
.public UpdateWindow

View File

@ -262,9 +262,9 @@
.public ov20_0238A140
.public ov20_0238A160
.public ov20_0238A1B0
.public ov21_0238B848
.public ov21_0238B8FC
.public ov21_0238B928
.public SwapShopEntryPoint
.public SwapShopDestructor
.public SwapShopMainManager
.public ov22_0238D640
.public ov22_0238D7B0
.public ov22_0238D800
@ -1932,9 +1932,9 @@ ov11_023230EC:
.global ov11_023230FC
ov11_023230FC:
.byte 0x19, 0x00, 0x00, 0x00
.word ov21_0238B848
.word ov21_0238B8FC
.word ov21_0238B928
.word SwapShopEntryPoint
.word SwapShopDestructor
.word SwapShopMainManager
.global ov11_0232310C
ov11_0232310C:
.byte 0x1A, 0x00, 0x00, 0x00
@ -3085,8 +3085,8 @@ ov11_02324D98:
.global ov11_02324DA0
ov11_02324DA0:
.byte 0x00, 0x00, 0x00, 0x00
.global ov11_02324DA4
ov11_02324DA4:
.global SWAP_SHOP_INVENTORY_PTRS
SWAP_SHOP_INVENTORY_PTRS:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov11_02324DAC
ov11_02324DAC:

View File

@ -3818,7 +3818,7 @@ _022F1268:
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _022F12BC ; =GROUND_STATE_MAP
ldr r0, [r0]
bl MemFree
@ -5157,7 +5157,7 @@ _022F2344:
ldr r0, [r0, #4]
cmp r0, #0
beq _022F239C
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _022F2598 ; =ov11_02324CC8
ldr r0, [r0, #4]
bl MemFree
@ -35213,11 +35213,11 @@ _0230B204: .word 0x000004B6 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET
_0230B208: .word 0x000004B7 + GET_EXCLUSIVE_ITEM_REQUIREMENTS_OFFSET
arm_func_end GetExclusiveItemRequirements
arm_func_start ov11_0230B20C
ov11_0230B20C: ; 0x0230B20C
arm_func_start SwapShopInventoryManager
SwapShopInventoryManager: ; 0x0230B20C
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x20
ldr r2, _0230B664 ; =ov11_02324DA4
ldr r2, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
mov r4, r0
ldr r0, [r2, #4]
mov r8, r1
@ -35229,15 +35229,15 @@ ov11_0230B20C: ; 0x0230B20C
ldr r0, _0230B670 ; =0x000046D4
mov r1, #8
bl MemAlloc
ldr r1, _0230B664 ; =ov11_02324DA4
ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
str r0, [r1, #4]
_0230B24C:
ldr r0, _0230B664 ; =ov11_02324DA4
ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
str r4, [r0]
bl ov11_0230BF98
bl LoadSynthBin
ldr sb, _0230B664 ; =ov11_02324DA4
ldr sb, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
mov r2, #0
ldr r3, [sb, #4]
mov r1, #0x10
@ -35345,13 +35345,13 @@ _0230B3D4:
ldr r2, [r0, #4]
cmp sl, r2
blt _0230B38C
ldr r1, _0230B664 ; =ov11_02324DA4
ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
add r0, sp, #0x14
ldr r1, [r1, #4]
add r1, r1, #0x4600
strh r2, [r1, #0x26]
bl sub_020114F8
ldr r1, _0230B664 ; =ov11_02324DA4
ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
mov r0, r8, lsl #0x10
ldr r2, [r1, #4]
mov r3, r0, asr #0x10
@ -35389,7 +35389,7 @@ _0230B428:
_0230B474:
cmp r4, #0
bne _0230B5A8
ldr r0, _0230B664 ; =ov11_02324DA4
ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
mov r1, #6
ldrsh r2, [r0]
ldr r0, [r0, #4]
@ -35399,7 +35399,7 @@ _0230B474:
ldrh r0, [sb, r8]
add sl, sb, r8
bl ov11_0230C9EC
ldr r1, _0230B664 ; =ov11_02324DA4
ldr r1, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
str r0, [sp, #0x18]
ldrh r0, [r1]
bl ov11_0230C970
@ -35409,7 +35409,7 @@ _0230B474:
movne r0, #0
strneh r0, [sp, #0x1e]
bne _0230B4E8
ldr r0, _0230B664 ; =ov11_02324DA4
ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
ldrh r1, [sl, #2]
ldr r0, [r0, #4]
add r0, r0, r1, lsl #3
@ -35419,7 +35419,7 @@ _0230B474:
_0230B4E8:
add r0, sp, #0x18
bl ov11_0230AE10
ldr r0, _0230B664 ; =ov11_02324DA4
ldr r0, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
add r1, sp, #0x12
ldr r2, [r0, #4]
ldrsh r8, [r0]
@ -35428,7 +35428,7 @@ _0230B4E8:
mov r0, #0
strh r8, [r3, #0xd0]
bl ov11_0230C1D0
ldr fp, _0230B664 ; =ov11_02324DA4
ldr fp, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
ldrh r2, [sp, #0x12]
ldr r0, [fp, #4]
ldrh r1, [sp, #0x10]
@ -35469,7 +35469,7 @@ _0230B5A0:
cmp sl, r8
blt _0230B538
_0230B5A8:
ldr r8, _0230B664 ; =ov11_02324DA4
ldr r8, _0230B664 ; =SWAP_SHOP_INVENTORY_PTRS
mov r1, r5
ldr sb, [r8, #4]
mov r3, r7
@ -35518,7 +35518,7 @@ _0230B65C:
add sp, sp, #0x20
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0230B664: .word ov11_02324DA4
_0230B664: .word SWAP_SHOP_INVENTORY_PTRS
_0230B668: .word 0x00401A33
_0230B66C: .word ov11_0230BD5C
_0230B670: .word 0x000046D4
@ -35537,19 +35537,19 @@ _0230B684: .word ov11_0230B78C
_0230B688: .word ov11_0230BE34
_0230B68C: .word ov11_02322FE4
_0230B690: .word ov11_0230BF38
arm_func_end ov11_0230B20C
arm_func_end SwapShopInventoryManager
arm_func_start ov11_0230B694
ov11_0230B694: ; 0x0230B694
stmdb sp!, {r4, lr}
ldr r0, _0230B71C ; =ov11_02324DA4
ldr r0, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
cmp r0, #0
bne _0230B6BC
ldr r0, _0230B720 ; =0x000046D4
mov r1, #8
bl MemAlloc
ldr r1, _0230B71C ; =ov11_02324DA4
ldr r1, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS
str r0, [r1, #4]
_0230B6BC:
bl LoadSynthBin
@ -35559,7 +35559,7 @@ _0230B6BC:
bl ov11_0230C61C
mov r0, #0
bl sub_020130B8
ldr r1, _0230B71C ; =ov11_02324DA4
ldr r1, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS
cmp r4, #0
ldr r1, [r1, #4]
add r1, r1, #0x4600
@ -35568,41 +35568,41 @@ _0230B6BC:
beq _0230B6F8
bl CloseSynthBin
_0230B6F8:
ldr r0, _0230B71C ; =ov11_02324DA4
ldr r0, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
bl MemFree
ldr r1, _0230B71C ; =ov11_02324DA4
ldr r1, _0230B71C ; =SWAP_SHOP_INVENTORY_PTRS
mov r0, #0
str r0, [r1, #4]
cmp r4, #0
movne r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
_0230B71C: .word ov11_02324DA4
_0230B71C: .word SWAP_SHOP_INVENTORY_PTRS
_0230B720: .word 0x000046D4
arm_func_end ov11_0230B694
arm_func_start ov11_0230B724
ov11_0230B724: ; 0x0230B724
stmdb sp!, {r4, lr}
ldr r0, _0230B784 ; =ov11_02324DA4
ldr r0, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
cmp r0, #0
bne _0230B74C
ldr r0, _0230B788 ; =0x000046D4
mov r1, #8
bl MemAlloc
ldr r1, _0230B784 ; =ov11_02324DA4
ldr r1, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS
str r0, [r1, #4]
_0230B74C:
bl ov11_0230BF98
bl ov11_0230C4D4
ldr r0, _0230B784 ; =ov11_02324DA4
ldr r0, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r1, r0, #0x4600
ldrh r4, [r1, #0x26]
bl MemFree
ldr r0, _0230B784 ; =ov11_02324DA4
ldr r0, _0230B784 ; =SWAP_SHOP_INVENTORY_PTRS
mov r1, #0
str r1, [r0, #4]
cmp r4, #0
@ -35610,14 +35610,14 @@ _0230B74C:
and r0, r1, #0xff
ldmia sp!, {r4, pc}
.align 2, 0
_0230B784: .word ov11_02324DA4
_0230B784: .word SWAP_SHOP_INVENTORY_PTRS
_0230B788: .word 0x000046D4
arm_func_end ov11_0230B724
arm_func_start ov11_0230B78C
ov11_0230B78C: ; 0x0230B78C
stmdb sp!, {r3, r4, r5, lr}
ldr r1, _0230B870 ; =ov11_02324DA4
ldr r1, _0230B870 ; =SWAP_SHOP_INVENTORY_PTRS
tst r0, #0x400
ldr r4, [r1, #4]
beq _0230B868
@ -35663,7 +35663,7 @@ _0230B834:
mov r0, #2
bl PlaySeVolumeWrapper
_0230B83C:
ldr r0, _0230B870 ; =ov11_02324DA4
ldr r0, _0230B870 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r1, [r0, #4]
add r0, r1, #0x4000
ldr r0, [r0, #0x6c8]
@ -35679,13 +35679,13 @@ _0230B868:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0230B870: .word ov11_02324DA4
_0230B870: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230B78C
arm_func_start ov11_0230B874
ov11_0230B874: ; 0x0230B874
stmdb sp!, {r3, lr}
ldr r1, _0230B8BC ; =ov11_02324DA4
ldr r1, _0230B8BC ; =SWAP_SHOP_INVENTORY_PTRS
mov r0, #0
ldr ip, [r1, #4]
mov r3, r0
@ -35705,13 +35705,13 @@ _0230B8B0:
blt _0230B898
ldmia sp!, {r3, pc}
.align 2, 0
_0230B8BC: .word ov11_02324DA4
_0230B8BC: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230B874
arm_func_start ov11_0230B8C0
ov11_0230B8C0: ; 0x0230B8C0
stmdb sp!, {r3, r4, r5, lr}
ldr r1, _0230B910 ; =ov11_02324DA4
ldr r1, _0230B910 ; =SWAP_SHOP_INVENTORY_PTRS
mov r4, r0
ldr r0, [r1, #4]
add r0, r0, #0x1400
@ -35721,7 +35721,7 @@ ov11_0230B8C0: ; 0x0230B8C0
mov r0, r5, lsl #0x10
mov r0, r0, lsr #0x10
bl ov11_0230C970
ldr r1, _0230B910 ; =ov11_02324DA4
ldr r1, _0230B910 ; =SWAP_SHOP_INVENTORY_PTRS
strh r0, [r4]
ldr r0, [r1, #4]
add r0, r0, r5, lsl #1
@ -35731,18 +35731,18 @@ ov11_0230B8C0: ; 0x0230B8C0
ldrsh r0, [r4]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0230B910: .word ov11_02324DA4
_0230B910: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230B8C0
arm_func_start ov11_0230B914
ov11_0230B914: ; 0x0230B914
stmdb sp!, {r3, lr}
ldr r0, _0230B954 ; =ov11_02324DA4
ldr r0, _0230B954 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0x1400
ldrsb r0, [r0, #0xe4]
bl sub_0202D0EC
ldr r1, _0230B954 ; =ov11_02324DA4
ldr r1, _0230B954 ; =SWAP_SHOP_INVENTORY_PTRS
mov r0, r0, lsl #0x10
ldr r2, [r1, #4]
mov r1, r0, lsr #0x10
@ -35753,18 +35753,18 @@ ov11_0230B914: ; 0x0230B914
bl ov11_0230C9EC
ldmia sp!, {r3, pc}
.align 2, 0
_0230B954: .word ov11_02324DA4
_0230B954: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230B914
arm_func_start ov11_0230B958
ov11_0230B958: ; 0x0230B958
stmdb sp!, {r3, lr}
ldr r0, _0230B9B8 ; =ov11_02324DA4
ldr r0, _0230B9B8 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0x1400
ldrsb r0, [r0, #0xe4]
bl sub_0202D0EC
ldr r2, _0230B9B8 ; =ov11_02324DA4
ldr r2, _0230B9B8 ; =SWAP_SHOP_INVENTORY_PTRS
mov r1, r0, lsl #0x10
mov r3, r1, lsr #0x10
ldr ip, [r2, #4]
@ -35783,20 +35783,20 @@ ov11_0230B958: ; 0x0230B958
ldrh r0, [r0, #0xea]
ldmia sp!, {r3, pc}
.align 2, 0
_0230B9B8: .word ov11_02324DA4
_0230B9B8: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230B958
arm_func_start ov11_0230B9BC
ov11_0230B9BC: ; 0x0230B9BC
stmdb sp!, {r3, lr}
ldr r0, _0230BA60 ; =ov11_02324DA4
ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl ov11_0230AED0
bl ov11_0230CAE4
bl ov11_0230CA38
ldr r0, _0230BA60 ; =ov11_02324DA4
ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0x4000
ldrb r0, [r0, #0x6c4]
@ -35804,7 +35804,7 @@ ov11_0230B9BC: ; 0x0230B9BC
beq _0230B9F8
bl CloseSynthBin
_0230B9F8:
ldr r0, _0230BA60 ; =ov11_02324DA4
ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS
mvn r1, #1
ldr r0, [r0, #4]
add r0, r0, #0x1400
@ -35812,34 +35812,34 @@ _0230B9F8:
cmp r0, r1
beq _0230BA44
bl sub_0202D0EC
ldr r1, _0230BA60 ; =ov11_02324DA4
ldr r1, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS
strh r0, [r1]
ldr r0, [r1, #4]
add r0, r0, #0x1400
ldrsb r0, [r0, #0xe4]
bl sub_0202836C
ldr r0, _0230BA60 ; =ov11_02324DA4
ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0x1400
ldrsb r0, [r0, #0xe4]
bl CloseCollectionMenu
_0230BA44:
ldr r0, _0230BA60 ; =ov11_02324DA4
ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
bl MemFree
ldr r0, _0230BA60 ; =ov11_02324DA4
ldr r0, _0230BA60 ; =SWAP_SHOP_INVENTORY_PTRS
mov r1, #0
str r1, [r0, #4]
ldmia sp!, {r3, pc}
.align 2, 0
_0230BA60: .word ov11_02324DA4
_0230BA60: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230B9BC
arm_func_start ov11_0230BA64
ov11_0230BA64: ; 0x0230BA64
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #8
ldr r0, _0230BB18 ; =ov11_02324DA4
ldr r0, _0230BB18 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r4, [r0, #4]
cmp r4, #0
moveq r0, #0
@ -35886,13 +35886,13 @@ _0230BB10:
add sp, sp, #8
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0230BB18: .word ov11_02324DA4
_0230BB18: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230BA64
arm_func_start ov11_0230BB1C
ov11_0230BB1C: ; 0x0230BB1C
stmdb sp!, {r3, lr}
ldr r0, _0230BB94 ; =ov11_02324DA4
ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
cmp r0, #0
addne r0, r0, #0x1400
@ -35901,35 +35901,35 @@ ov11_0230BB1C: ; 0x0230BB1C
cmpne r0, r1
ldmeqia sp!, {r3, pc}
bl sub_0202D0EC
ldr r1, _0230BB94 ; =ov11_02324DA4
ldr r1, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS
strh r0, [r1]
bl ov11_0230CA38
bl ov11_0230CAE4
ldr r0, _0230BB94 ; =ov11_02324DA4
ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0x1400
ldrsb r0, [r0, #0xe4]
bl sub_0202836C
ldr r0, _0230BB94 ; =ov11_02324DA4
ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0x1400
ldrsb r0, [r0, #0xe4]
bl CloseCollectionMenu
ldr r0, _0230BB94 ; =ov11_02324DA4
ldr r0, _0230BB94 ; =SWAP_SHOP_INVENTORY_PTRS
mvn r1, #1
ldr r0, [r0, #4]
add r0, r0, #0x1000
strb r1, [r0, #0x4e4]
ldmia sp!, {r3, pc}
.align 2, 0
_0230BB94: .word ov11_02324DA4
_0230BB94: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230BB1C
arm_func_start ov11_0230BB98
ov11_0230BB98: ; 0x0230BB98
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
ldr r0, _0230BCD8 ; =ov11_02324DA4
ldr r0, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r2, [r0, #4]
cmp r2, #0
beq _0230BCD0
@ -35956,7 +35956,7 @@ _0230BBF0:
ldr r3, _0230BCEC ; =ov11_0230BE34
orr r1, r1, r0
_0230BC00:
ldr ip, _0230BCD8 ; =ov11_02324DA4
ldr ip, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS
add r2, r2, #0x4000
ldrsh r4, [ip]
ldr r0, _0230BCF0 ; =ov11_02322FE4
@ -35969,7 +35969,7 @@ _0230BC00:
add r2, r2, #0x4400
stmib sp, {ip, lr}
bl CreateCollectionMenu
ldr r2, _0230BCD8 ; =ov11_02324DA4
ldr r2, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r1, [r2, #4]
add r1, r1, #0x1000
strb r0, [r1, #0x4e4]
@ -35981,7 +35981,7 @@ _0230BC00:
ldrsb r0, [r0, #0xe4]
mov r1, #1
bl SetCollectionMenuField0x1C8
ldr r0, _0230BCD8 ; =ov11_02324DA4
ldr r0, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r1, _0230BCF4 ; =ov11_0230BF38
ldr r0, [r0, #4]
add r0, r0, #0x1400
@ -35989,7 +35989,7 @@ _0230BC00:
bl SetCollectionMenuField0x1A4
bl ov11_0230CAA4
bl ov11_0230C9F8
ldr r0, _0230BCD8 ; =ov11_02324DA4
ldr r0, _0230BCD8 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r4, [r0, #4]
ldr r0, [r4]
cmp r0, #3
@ -36014,7 +36014,7 @@ _0230BCD0:
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
_0230BCD8: .word ov11_02324DA4
_0230BCD8: .word SWAP_SHOP_INVENTORY_PTRS
_0230BCDC: .word 0x00401833
_0230BCE0: .word ov11_0230BD5C
_0230BCE4: .word 0x80040004
@ -36027,7 +36027,7 @@ _0230BCF4: .word ov11_0230BF38
arm_func_start ov11_0230BCF8
ov11_0230BCF8: ; 0x0230BCF8
stmdb sp!, {r3, lr}
ldr r0, _0230BD24 ; =ov11_02324DA4
ldr r0, _0230BD24 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
cmp r0, #0
addne r0, r0, #0x1400
@ -36038,13 +36038,13 @@ ov11_0230BCF8: ; 0x0230BCF8
bl sub_0202C620
ldmia sp!, {r3, pc}
.align 2, 0
_0230BD24: .word ov11_02324DA4
_0230BD24: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230BCF8
arm_func_start ov11_0230BD28
ov11_0230BD28: ; 0x0230BD28
stmdb sp!, {r3, lr}
ldr r0, _0230BD58 ; =ov11_02324DA4
ldr r0, _0230BD58 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
cmp r0, #0
addne r0, r0, #0x1400
@ -36056,7 +36056,7 @@ ov11_0230BD28: ; 0x0230BD28
bl IsCollectionMenuState3
ldmia sp!, {r3, pc}
.align 2, 0
_0230BD58: .word ov11_02324DA4
_0230BD58: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230BD28
arm_func_start ov11_0230BD5C
@ -36069,7 +36069,7 @@ ov11_0230BD5C: ; 0x0230BD5C
mov r0, r1, lsr #0x10
mov r4, r2
bl ov11_0230C970
ldr r1, _0230BE28 ; =ov11_02324DA4
ldr r1, _0230BE28 ; =SWAP_SHOP_INVENTORY_PTRS
strh r0, [sp, #4]
ldr r3, [r1, #4]
mov r1, #1
@ -36101,7 +36101,7 @@ _0230BDEC:
mov r0, r6
bl sub_0200D670
_0230BDF4:
ldr r1, _0230BE28 ; =ov11_02324DA4
ldr r1, _0230BE28 ; =SWAP_SHOP_INVENTORY_PTRS
mov r0, #6
ldr r1, [r1, #4]
mla r0, r5, r0, r1
@ -36115,7 +36115,7 @@ _0230BDF4:
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_0230BE28: .word ov11_02324DA4
_0230BE28: .word SWAP_SHOP_INVENTORY_PTRS
_0230BE2C: .word ov11_02323004
_0230BE30: .word ov11_0232300C
arm_func_end ov11_0230BD5C
@ -36124,7 +36124,7 @@ _0230BE30: .word ov11_0232300C
ov11_0230BE34: ; 0x0230BE34
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
ldr r3, _0230BF28 ; =ov11_02324DA4
ldr r3, _0230BF28 ; =SWAP_SHOP_INVENTORY_PTRS
mov r5, r1
mov r1, r5, lsl #0x10
mov r6, r0
@ -36139,7 +36139,7 @@ ov11_0230BE34: ; 0x0230BE34
moveq r0, #0
beq _0230BF20
bl ov11_0230C970
ldr r1, _0230BF28 ; =ov11_02324DA4
ldr r1, _0230BF28 ; =SWAP_SHOP_INVENTORY_PTRS
strh r0, [sp, #4]
ldr r0, [r1, #4]
add r1, sp, #0
@ -36176,7 +36176,7 @@ _0230BEE8:
_0230BEEC:
mov r0, r6
bl strcat
ldr r1, _0230BF28 ; =ov11_02324DA4
ldr r1, _0230BF28 ; =SWAP_SHOP_INVENTORY_PTRS
mov r0, #6
ldr r1, [r1, #4]
mla r0, r5, r0, r1
@ -36191,7 +36191,7 @@ _0230BF20:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_0230BF28: .word ov11_02324DA4
_0230BF28: .word SWAP_SHOP_INVENTORY_PTRS
_0230BF2C: .word ov11_02323014
_0230BF30: .word ov11_0232302C
_0230BF34: .word ov11_02323048
@ -36200,7 +36200,7 @@ _0230BF34: .word ov11_02323048
arm_func_start ov11_0230BF38
ov11_0230BF38: ; 0x0230BF38
stmdb sp!, {r3, lr}
ldr r3, _0230BF8C ; =ov11_02324DA4
ldr r3, _0230BF8C ; =SWAP_SHOP_INVENTORY_PTRS
mov r2, r2, lsl #0x10
ldr ip, [r3, #4]
mov r3, r2, lsr #0x10
@ -36222,7 +36222,7 @@ _0230BF7C:
bl sub_0202A03C
ldmia sp!, {r3, pc}
.align 2, 0
_0230BF8C: .word ov11_02324DA4
_0230BF8C: .word SWAP_SHOP_INVENTORY_PTRS
#if defined(EUROPE)
_0230BF90: .word 0x0000032F
_0230BF94: .word 0x00004642
@ -36239,7 +36239,7 @@ _0230BF94: .word 0x00004623
ov11_0230BF98: ; 0x0230BF98
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, #0
ldr r3, _0230C048 ; =ov11_02324DA4
ldr r3, _0230C048 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r2, _0230C04C ; =0x0000042C
mov r0, r4
_0230BFAC:
@ -36253,7 +36253,7 @@ _0230BFAC:
strb r0, [r1, #0xb8]
cmp r4, r2
blt _0230BFAC
ldr r2, _0230C048 ; =ov11_02324DA4
ldr r2, _0230C048 ; =SWAP_SHOP_INVENTORY_PTRS
mov r5, #0
_0230BFDC:
ldr r1, [r2, #4]
@ -36267,7 +36267,7 @@ _0230BFDC:
strh r5, [r1, #0x46]
cmp r0, #0x3e8
blt _0230BFDC
ldr r7, _0230C048 ; =ov11_02324DA4
ldr r7, _0230C048 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r6, _0230C04C ; =0x0000042C
mov r4, #0
_0230C014:
@ -36285,7 +36285,7 @@ _0230C014:
blt _0230C014
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0230C048: .word ov11_02324DA4
_0230C048: .word SWAP_SHOP_INVENTORY_PTRS
_0230C04C: .word 0x0000042C
arm_func_end ov11_0230BF98
@ -36357,7 +36357,7 @@ _0230C114: .word 0xFFFFFE06
arm_func_start ov11_0230C118
ov11_0230C118: ; 0x0230C118
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
ldr r6, _0230C1CC ; =ov11_02324DA4
ldr r6, _0230C1CC ; =SWAP_SHOP_INVENTORY_PTRS
mov lr, #0
ldr r7, [r6, #4]
mov r4, lr
@ -36407,7 +36407,7 @@ _0230C1AC:
strneh r4, [r2]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_0230C1CC: .word ov11_02324DA4
_0230C1CC: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230C118
arm_func_start ov11_0230C1D0
@ -36626,7 +36626,7 @@ _0230C4AC:
cmp r4, r8
blt _0230C468
_0230C4B4:
ldr r0, _0230C4D0 ; =ov11_02324DA4
ldr r0, _0230C4D0 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0x4600
strh sb, [r0, #0x28]
@ -36634,7 +36634,7 @@ _0230C4B4:
.align 2, 0
_0230C4C8: .word BAG_ITEMS_PTR_MIRROR
_0230C4CC: .word 0x000003F5
_0230C4D0: .word ov11_02324DA4
_0230C4D0: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230C3CC
arm_func_start ov11_0230C4D4
@ -36646,7 +36646,7 @@ ov11_0230C4D4: ; 0x0230C4D4
mov sb, r8
mov r4, #6
ldr r6, _0230C594 ; =BAG_ITEMS_PTR_MIRROR
ldr r5, _0230C598 ; =ov11_02324DA4
ldr r5, _0230C598 ; =SWAP_SHOP_INVENTORY_PTRS
ldr fp, _0230C59C ; =0x0000018F
b _0230C578
_0230C4FC:
@ -36685,14 +36685,14 @@ _0230C574:
_0230C578:
cmp sb, r7
blt _0230C4FC
ldr r0, _0230C598 ; =ov11_02324DA4
ldr r0, _0230C598 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0x4600
strh r8, [r0, #0x26]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0230C594: .word BAG_ITEMS_PTR_MIRROR
_0230C598: .word ov11_02324DA4
_0230C598: .word SWAP_SHOP_INVENTORY_PTRS
_0230C59C: .word 0x0000018F
arm_func_end ov11_0230C4D4
@ -36701,7 +36701,7 @@ ov11_0230C5A0: ; 0x0230C5A0
stmdb sp!, {r4, lr}
cmp r2, #0
beq _0230C5EC
ldr r3, _0230C618 ; =ov11_02324DA4
ldr r3, _0230C618 ; =SWAP_SHOP_INVENTORY_PTRS
mov lr, #0
ldr r4, [r3, #4]
b _0230C5E4
@ -36720,7 +36720,7 @@ _0230C5E4:
cmp lr, r2
blt _0230C5BC
_0230C5EC:
ldr ip, _0230C618 ; =ov11_02324DA4
ldr ip, _0230C618 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r3, [ip, #4]
add r3, r3, r2, lsl #1
add r3, r3, #0x3600
@ -36732,7 +36732,7 @@ _0230C5EC:
strh r1, [r2, #0x16]
ldmia sp!, {r4, pc}
.align 2, 0
_0230C618: .word ov11_02324DA4
_0230C618: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230C5A0
arm_func_start ov11_0230C61C
@ -36741,7 +36741,7 @@ ov11_0230C61C: ; 0x0230C61C
ldr r4, _0230C8DC ; =0x000001FA
mov r5, #0
_0230C628:
ldr r0, _0230C8E0 ; =ov11_02324DA4
ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS
ldr lr, [r0, #4]
add r0, lr, #0x4600
ldrh ip, [r0, #0x28]
@ -36887,7 +36887,7 @@ _0230C834:
mov r2, r1, lsr #0x10
mov r1, #0
bl ov11_0230C924
ldr r0, _0230C8E0 ; =ov11_02324DA4
ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS
mov r1, #0
ldr r0, [r0, #4]
add r0, r0, r5, lsl #1
@ -36899,7 +36899,7 @@ _0230C86C:
add r4, r4, #4
cmp r4, r0
blt _0230C628
ldr r0, _0230C8E0 ; =ov11_02324DA4
ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0xe6
add r0, r0, #0x4500
@ -36920,14 +36920,14 @@ _0230C8A0:
_0230C8C0:
cmp r7, r6
blt _0230C8A0
ldr r0, _0230C8E0 ; =ov11_02324DA4
ldr r0, _0230C8E0 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r0, [r0, #4]
add r0, r0, #0x4600
strh r5, [r0, #0x26]
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_0230C8DC: .word 0x000001FA
_0230C8E0: .word ov11_02324DA4
_0230C8E0: .word SWAP_SHOP_INVENTORY_PTRS
_0230C8E4: .word 0x000002FE
_0230C8E8: .word 0x000001BD
_0230C8EC: .word 0x000001BE
@ -36943,12 +36943,12 @@ _0230C90C: .word 0x000003F6
arm_func_start ov11_0230C910
ov11_0230C910: ; 0x0230C910
ldr r0, _0230C920 ; =ov11_02324DA4
ldr r0, _0230C920 ; =SWAP_SHOP_INVENTORY_PTRS
mov r1, #0
strh r1, [r0]
bx lr
.align 2, 0
_0230C920: .word ov11_02324DA4
_0230C920: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230C910
arm_func_start ov11_0230C924
@ -36956,7 +36956,7 @@ ov11_0230C924: ; 0x0230C924
stmdb sp!, {r3, lr}
mov r3, #6
mul lr, r0, r3
ldr r3, _0230C96C ; =ov11_02324DA4
ldr r3, _0230C96C ; =SWAP_SHOP_INVENTORY_PTRS
mov ip, #0
ldr r0, [r3, #4]
add r0, r0, lr
@ -36972,14 +36972,14 @@ ov11_0230C924: ; 0x0230C924
strb ip, [r0, #0x4ea]
ldmia sp!, {r3, pc}
.align 2, 0
_0230C96C: .word ov11_02324DA4
_0230C96C: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230C924
arm_func_start ov11_0230C970
ov11_0230C970: ; 0x0230C970
stmdb sp!, {r3, lr}
mov r1, #6
ldr r2, _0230C9E8 ; =ov11_02324DA4
ldr r2, _0230C9E8 ; =SWAP_SHOP_INVENTORY_PTRS
mul r1, r0, r1
ldr r3, [r2, #4]
add r0, r3, #0xe6
@ -37012,7 +37012,7 @@ _0230C9E0:
ldrsh r0, [r1, #2]
ldmia sp!, {r3, pc}
.align 2, 0
_0230C9E8: .word ov11_02324DA4
_0230C9E8: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230C970
arm_func_start ov11_0230C9EC
@ -37025,7 +37025,7 @@ ov11_0230C9EC: ; 0x0230C9EC
arm_func_start ov11_0230C9F8
ov11_0230C9F8: ; 0x0230C9F8
stmdb sp!, {r3, lr}
ldr r0, _0230CA2C ; =ov11_02324DA4
ldr r0, _0230CA2C ; =SWAP_SHOP_INVENTORY_PTRS
ldr r1, [r0, #4]
add r0, r1, #0x4000
ldr r0, [r0, #0x6cc]
@ -37038,7 +37038,7 @@ ov11_0230C9F8: ; 0x0230C9F8
bl sub_0204707C
ldmia sp!, {r3, pc}
.align 2, 0
_0230CA2C: .word ov11_02324DA4
_0230CA2C: .word SWAP_SHOP_INVENTORY_PTRS
_0230CA30: .word ov11_02322FF4
_0230CA34: .word ov11_0230CA7C
arm_func_end ov11_0230C9F8
@ -37046,7 +37046,7 @@ _0230CA34: .word ov11_0230CA7C
arm_func_start ov11_0230CA38
ov11_0230CA38: ; 0x0230CA38
stmdb sp!, {r3, lr}
ldr r0, _0230CA78 ; =ov11_02324DA4
ldr r0, _0230CA78 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r1, [r0, #4]
add r0, r1, #0x4000
ldr r0, [r0, #0x6cc]
@ -37055,14 +37055,14 @@ ov11_0230CA38: ; 0x0230CA38
add r0, r1, #0x2cc
add r0, r0, #0x4400
bl sub_02047150
ldr r0, _0230CA78 ; =ov11_02324DA4
ldr r0, _0230CA78 ; =SWAP_SHOP_INVENTORY_PTRS
mov r1, #0
ldr r0, [r0, #4]
add r0, r0, #0x4000
str r1, [r0, #0x6cc]
ldmia sp!, {r3, pc}
.align 2, 0
_0230CA78: .word ov11_02324DA4
_0230CA78: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230CA38
arm_func_start ov11_0230CA7C
@ -37087,7 +37087,7 @@ _0230CAA0: .word 0x000003A9
arm_func_start ov11_0230CAA4
ov11_0230CAA4: ; 0x0230CAA4
stmdb sp!, {r3, lr}
ldr r0, _0230CAD8 ; =ov11_02324DA4
ldr r0, _0230CAD8 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r1, [r0, #4]
add r0, r1, #0x4000
ldr r0, [r0, #0x6c8]
@ -37100,7 +37100,7 @@ ov11_0230CAA4: ; 0x0230CAA4
bl sub_0204707C
ldmia sp!, {r3, pc}
.align 2, 0
_0230CAD8: .word ov11_02324DA4
_0230CAD8: .word SWAP_SHOP_INVENTORY_PTRS
_0230CADC: .word ov11_02322FD4
_0230CAE0: .word ov11_0230CB28
arm_func_end ov11_0230CAA4
@ -37108,7 +37108,7 @@ _0230CAE0: .word ov11_0230CB28
arm_func_start ov11_0230CAE4
ov11_0230CAE4: ; 0x0230CAE4
stmdb sp!, {r3, lr}
ldr r0, _0230CB24 ; =ov11_02324DA4
ldr r0, _0230CB24 ; =SWAP_SHOP_INVENTORY_PTRS
ldr r1, [r0, #4]
add r0, r1, #0x4000
ldr r0, [r0, #0x6c8]
@ -37117,14 +37117,14 @@ ov11_0230CAE4: ; 0x0230CAE4
add r0, r1, #0x2c8
add r0, r0, #0x4400
bl sub_02047150
ldr r0, _0230CB24 ; =ov11_02324DA4
ldr r0, _0230CB24 ; =SWAP_SHOP_INVENTORY_PTRS
mov r1, #0
ldr r0, [r0, #4]
add r0, r0, #0x4000
str r1, [r0, #0x6c8]
ldmia sp!, {r3, pc}
.align 2, 0
_0230CB24: .word ov11_02324DA4
_0230CB24: .word SWAP_SHOP_INVENTORY_PTRS
arm_func_end ov11_0230CAE4
arm_func_start ov11_0230CB28
@ -37135,7 +37135,7 @@ ov11_0230CB28: ; 0x0230CB28
add r0, sp, #4
bl InitPreprocessorArgs
bl ov11_0230B874
ldr r1, _0230CB84 ; =ov11_02324DA4
ldr r1, _0230CB84 ; =SWAP_SHOP_INVENTORY_PTRS
str r0, [sp, #0x28]
ldr r0, [r1, #4]
#ifdef JAPAN
@ -37165,7 +37165,7 @@ ov11_0230CB28: ; 0x0230CB28
add sp, sp, #0x54
ldmia sp!, {r3, r4, pc}
.align 2, 0
_0230CB84: .word ov11_02324DA4
_0230CB84: .word SWAP_SHOP_INVENTORY_PTRS
#ifdef JAPAN
_0230E130: .word 0x000032B4
#endif
@ -38622,7 +38622,7 @@ ov11_0230DC3C: ; 0x0230DC3C
ldr r0, [r0]
cmp r0, #0
beq _0230DCA0
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _0230DCB4 ; =ov11_02324DC8
ldr r0, [r0]
bl MemFree
@ -38982,7 +38982,7 @@ ov11_0230E0D8: ; 0x0230E0D8
ldr r0, [r0]
cmp r0, #0
beq _0230E13C
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _0230E150 ; =ov11_02324DD4
ldr r0, [r0]
bl MemFree
@ -39347,7 +39347,7 @@ ov11_0230E578: ; 0x0230E578
ldr r0, [r0]
cmp r0, #0
beq _0230E5DC
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _0230E5F0 ; =ov11_02324DDC
ldr r0, [r0]
bl MemFree
@ -39886,7 +39886,7 @@ _0230EC68:
ldr r0, [r0, #4]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _0230ED20 ; =WORLD_MAP_MODE
ldr r0, [r0, #4]
bl MemFree
@ -41853,7 +41853,7 @@ ov11_023107BC: ; 0x023107BC
ldr r0, [r0, #4]
cmp r0, #0
beq _02310820
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _02310834 ; =ov11_02324DF0
ldr r0, [r0, #4]
bl MemFree
@ -42269,7 +42269,7 @@ ov11_02310CD4: ; 0x02310CD4
ldr r0, [r0, #4]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _02310D40 ; =ov11_02324DF8
ldr r0, [r0, #4]
bl MemFree
@ -42822,7 +42822,7 @@ ov11_023113E8: ; 0x023113E8
ldr r0, [r0, #4]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _02311458 ; =ov11_02324E00
ldr r0, [r0, #4]
bl MemFree
@ -43222,7 +43222,7 @@ ov11_023118E8: ; 0x023118E8
ldr r0, [r0, #4]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _02311958 ; =ov11_02324E08
ldr r0, [r0, #4]
bl MemFree
@ -43670,7 +43670,7 @@ ov11_02311EA4: ; 0x02311EA4
ldr r0, [r0]
cmp r0, #0
beq _02311F08
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _02311F1C ; =ov11_02324E10
ldr r0, [r0]
bl MemFree
@ -44130,7 +44130,7 @@ ov11_02312398: ; 0x02312398
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _02312414 ; =ov11_02324E18
ldr r0, [r0]
bl MemFree
@ -44531,7 +44531,7 @@ ov11_023128C0: ; 0x023128C0
ldr r0, [r1]
cmp r0, #0
beq _0231291C
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _02312974 ; =ov11_02324E20
ldr r0, [r0]
bl MemFree
@ -48903,7 +48903,7 @@ ov11_02316528: ; 0x02316528
ldr r0, [r0, #4]
cmp r0, #0
beq _0231658C
bl ov11_022EBEAC
bl GroundBg_FreeAll
ldr r0, _023165A0 ; =ov11_02324E78
ldr r0, [r0, #4]
bl MemFree

File diff suppressed because it is too large Load Diff

View File

@ -850,7 +850,7 @@ _0238AD04:
bl HidePortraitBox
mov r0, #1
mov r1, #0
bl ov11_0230B20C
bl SwapShopInventoryManager
b _0238B0C8
_0238AD48:
add r0, r1, #0x100
@ -868,7 +868,7 @@ _0238AD48:
bl HidePortraitBox
mov r0, #1
mov r1, #0
bl ov11_0230B20C
bl SwapShopInventoryManager
b _0238B0C8
_0238AD8C:
mov r2, #0x96

View File

@ -40,19 +40,18 @@ struct bg_list_entry {
struct bg_list_entry_sub_struct others_bpa[BPA_MAX_ENTRIES];
};
#define UNK_0_ARR_COUNT 16 // Was 14 in Red
#define UNK_E0_ARR_COUNT 32
#define UNK_3E0_ARR_COUNT 4 // Was 2 in Red
#define UNK_4_ARR_COUNT 16 // Was 14 in Red
#define UNK_C4_ARR_COUNT 4 // Was 2 in Red
#define NUM_LAYERS 2
typedef struct SubStruct_0
typedef struct UnkGroundBg_4
{
s16 unk0;
s16 unk2;
const void *unk4;
const void *unk8;
//u8 fillC; // Filler byte removed in Sky, present in Red
} SubStruct_0;
} UnkGroundBg_4;
struct BpaHeader
{
@ -63,7 +62,7 @@ struct BpaHeader
};
// Was 0x24 in Red...
typedef struct SubStruct_3E0
typedef struct UnkGroundBg_C4
{
u8 unk0;
u8 unk1;
@ -77,10 +76,10 @@ typedef struct SubStruct_3E0
void *unk20;
void *unk24;
u32 unk28;
} SubStruct_3E0;
} UnkGroundBg_C4;
// size: 0x18?
typedef struct SubStruct_52C
typedef struct UnkGroundBg_2BC
{
u8 unk0; // 0x52C
s16 unk2; // 0x52E
@ -94,7 +93,7 @@ typedef struct SubStruct_52C
s16 unk14;
s16 unk16;
void (*unk18)(void *, const void *, void *, s32); // TODO: fix void * to proper ptr types 0x540
} SubStruct_52C;
} UnkGroundBg_2BC;
struct UnkGroundBg_1A0
{
@ -199,8 +198,8 @@ typedef struct AnimationSpecification
typedef struct GroundBg
{
s16 newUnk0; // Not present in Red
SubStruct_0 unk0[UNK_0_ARR_COUNT];
SubStruct_3E0 unk3E0[UNK_3E0_ARR_COUNT]; // 0xc4
UnkGroundBg_4 unk4[UNK_4_ARR_COUNT];
UnkGroundBg_C4 unkC4[UNK_C4_ARR_COUNT]; // 0xc4
struct iovec bplFile; // 0x174
struct iovec unk17C; // 0x17C
struct iovec bpcFile; // 0x184
@ -236,7 +235,7 @@ typedef struct GroundBg
u8 fillerForNow2[112];
s16 unk2B8;
u8 unk2BA;
SubStruct_52C unk52C; // 2bc
UnkGroundBg_2BC unk2BC; // 2bc
u16 *unk2D8;
u16 *unk2DC[2];
u16 *unk2E4[2];
@ -244,8 +243,8 @@ typedef struct GroundBg
} GroundBg;
void LoadBackgroundAttributes(struct bg_list_entry* entry, int bgId);
void GroundBg_Init(GroundBg *groundBg, const SubStruct_52C *a1);
void ov11_022EBEAC(GroundBg *groundBg);
void GroundBg_Init(GroundBg *groundBg, const UnkGroundBg_2BC *a1);
void GroundBg_FreeAll(GroundBg *groundBg);
void ov11_022EBF60(GroundBg *groundBg);
void GroundBg_CloseOpenedFiles(GroundBg *groundBg);
void ov11_022EC08C(GroundBg *groundBg);
@ -253,6 +252,6 @@ void ov11_022EC240(GroundBg *groundBg, s32 bgId);
void ov11_022EC27C(GroundBg *groundBg, s32 bgId);
void LoadMapType10(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc, s32 a3);
void LoadMapType11(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc, s32 a3);
const u8 *BmaLayerNrlDecompressor(u16 **dstArray, const void *bmaData, SubStruct_52C *a2, BmaHeader *bmaHeader);
const u8 *BmaLayerNrlDecompressor(u16 **dstArray, const void *bmaData, UnkGroundBg_2BC *a2, BmaHeader *bmaHeader);
#endif //PMDSKY_GROUND_BG_H

View File

@ -1,8 +1,10 @@
#ifndef PMDSKY_MAIN_0200330C_H
#define PMDSKY_MAIN_0200330C_H
void ZInit8(int* ptr);
u8 PointsToZero(int* ptr);
#include "ground_bg.h"
void ZInit8(struct iovec* ptr);
bool8 PointsToZero(struct iovec* ptr);
void MemZero(u8* ptr, s32 len);
void MemZero16(u16* ptr, s32 len);
void MemZero32(u32* ptr, s32 len);

View File

@ -201,7 +201,7 @@ Overlay OVY_11
After OVY_10
Object asm/overlay_11.o
Object src/ground_bg.o
Object asm/overlay_11_022ECD24_data.o
Object asm/overlay_11_022ECD24_data.o
Object asm/overlay_11_022ECD24.o
Object src/ground_bg_1.o
Object asm/overlay_11_022EE5E4.o

View File

@ -1,5 +1,6 @@
#include "ground_bg.h"
#include "file_rom.h"
#include "main_0200330C.h"
// TODO: Move these to headers
#define RGB_R 0
@ -39,10 +40,8 @@ struct UnkStruct_2324CBC
extern struct UnkStruct_2324CBC *ov11_02324CBC;
extern void FileClose(struct file_stream* file);
extern void ZInit8(struct iovec *dst);
extern void* MemAlloc(u32 len, u32 flags);
extern void MemFree(void* ptr);
extern BOOL PointsToZero(struct iovec* ptr);
extern void UnloadFile(struct iovec* ptr);
extern void sub_0200A590(struct UnkStruct_2324CBC_Sub98 *, s32 id, const RGB_Array *src);
extern void sub_0200A504(struct UnkStruct_2324CBC_Sub98 *);
@ -69,7 +68,7 @@ extern void *ov11_02320C18[][2]; // Vram ptrs
// Todo: make these static
const RGB_Array ov11_02320BF4 = {0, 0, 0, 0};
const RGB_Array ov11_02320BF0 = {0, 0, 0, 0};
const PixelPos sPositionZero = {0};
const PixelPos POSITION_ZERO = {0};
const RGB_Array ov11_02320BE8 = {0xFF, 0xFF, 0xFF, 0};
const RGB_Array ov11_02320BEC = {0, 0, 0, 0};
const RGB_Array ov11_02320BE4 = {0, 0, 0, 0};
@ -102,7 +101,6 @@ void LoadBackgroundAttributes(struct bg_list_entry* entry, int bgId)
FileRom_StopDataTransfer();
}
void ov11_022EBF60(GroundBg *groundBg);
void *sub_0200B500(void *unk);
void sub_02063600(struct UnkGroundBg_1A0 *);
void sub_0206367C(struct UnkGroundBg_1A0 *);
@ -110,20 +108,20 @@ void sub_020635C8(struct UnkGroundBg_194 *);
void sub_020635D8(struct UnkGroundBg_194 *);
void ov11_022EE620(GroundBg *groundBg, s32 a1);
void GroundBg_Init(GroundBg *groundBg, const SubStruct_52C *a1)
void GroundBg_Init(GroundBg *groundBg, const UnkGroundBg_2BC *a1)
{
SubStruct_0 *unk0Ptr;
s32 id, unk0Id, unk3E0Id;
UnkGroundBg_4 *unk4Ptr;
s32 id, unk4Id, unkC4Id;
s32 i;
s32 id2;
s32 memGroup;
groundBg->unk52C = *a1;
memGroup = (groundBg->unk52C.unk0 == 0) ? 6 : 15;
id2 = groundBg->unk52C.unk2;
for (id = 0; id < groundBg->unk52C.numLayers; id++, id2++) {
if (groundBg->unk52C.unkE[id] > 0) {
groundBg->unk2DC[id] = MemAlloc(groundBg->unk52C.unkE[id] * 18u, memGroup);
groundBg->unk2BC = *a1;
memGroup = (groundBg->unk2BC.unk0 == 0) ? 6 : 15;
id2 = groundBg->unk2BC.unk2;
for (id = 0; id < groundBg->unk2BC.numLayers; id++, id2++) {
if (groundBg->unk2BC.unkE[id] > 0) {
groundBg->unk2DC[id] = MemAlloc(groundBg->unk2BC.unkE[id] * 18u, memGroup);
}
else {
groundBg->unk2DC[id] = NULL;
@ -133,18 +131,18 @@ void GroundBg_Init(GroundBg *groundBg, const SubStruct_52C *a1)
groundBg->unk2DC[id] = NULL;
}
id = groundBg->unk52C.unk2;
for (id2 = 0; id2 < groundBg->unk52C.numLayers; id2++, id++) {
id = groundBg->unk2BC.unk2;
for (id2 = 0; id2 < groundBg->unk2BC.numLayers; id2++, id++) {
if (groundBg->unk52C.unk0 == 0) {
if (groundBg->unk2BC.unk0 == 0) {
groundBg->unk2EC[id2] = sub_0200B500(&ov11_02324CBC->unk0[0][id]);
}
else {
groundBg->unk2EC[id2] = sub_0200B500(&ov11_02324CBC->unk0[1][id]);
}
if (groundBg->unk52C.unkE[id2] > 0) {
groundBg->unk2E4[id2] = MemAlloc(groundBg->unk52C.unk14 * 128, memGroup);
if (groundBg->unk2BC.unkE[id2] > 0) {
groundBg->unk2E4[id2] = MemAlloc(groundBg->unk2BC.unk14 * 128, memGroup);
}
else {
groundBg->unk2E4[id2] = NULL;
@ -155,7 +153,7 @@ void GroundBg_Init(GroundBg *groundBg, const SubStruct_52C *a1)
groundBg->unk2E4[id2] = NULL;
}
groundBg->unk2D8 = (groundBg->unk52C.unk18 == 0) ? NULL : MemAlloc(groundBg->unk52C.unk12 * 256, memGroup);
groundBg->unk2D8 = (groundBg->unk2BC.unk18 == 0) ? NULL : MemAlloc(groundBg->unk2BC.unk12 * 256, memGroup);
ov11_022EBF60(groundBg);
groundBg->newUnk0 = 0;
groundBg->unk1C0 = 0;
@ -174,15 +172,15 @@ void GroundBg_Init(GroundBg *groundBg, const SubStruct_52C *a1)
groundBg->unk1FB = 0;
groundBg->unk1BC = 0;
unk0Ptr = &groundBg->unk0[0];
for (unk0Id = 0; unk0Id < UNK_0_ARR_COUNT; unk0Id++, unk0Ptr++) {
unk0Ptr->unk0 = 0;
unk0Ptr->unk2 = 0;
unk0Ptr->unk4 = unk0Ptr->unk8 = 0;
unk4Ptr = &groundBg->unk4[0];
for (unk4Id = 0; unk4Id < UNK_4_ARR_COUNT; unk4Id++, unk4Ptr++) {
unk4Ptr->unk0 = 0;
unk4Ptr->unk2 = 0;
unk4Ptr->unk4 = unk4Ptr->unk8 = 0;
}
for (unk3E0Id = 0; unk3E0Id < UNK_3E0_ARR_COUNT; unk3E0Id++) {
SubStruct_3E0 *unkPtr = &groundBg->unk3E0[unk3E0Id];
for (unkC4Id = 0; unkC4Id < UNK_C4_ARR_COUNT; unkC4Id++) {
UnkGroundBg_C4 *unkPtr = &groundBg->unkC4[unkC4Id];
unkPtr->unk0 = 0;
unkPtr->unk1 = 0;
unkPtr->unk2 = 0;
@ -196,11 +194,11 @@ void GroundBg_Init(GroundBg *groundBg, const SubStruct_52C *a1)
}
for (i = 0; i < NUM_LAYERS; i++) {
groundBg->cameraPixelPosition[i] = sPositionZero;
groundBg->cameraPixelPosition[i] = POSITION_ZERO;
}
}
void ov11_022EBEAC(GroundBg *groundBg)
void GroundBg_FreeAll(GroundBg *groundBg)
{
s32 i;
@ -209,7 +207,7 @@ void ov11_022EBEAC(GroundBg *groundBg)
for (i = 0; i < NUM_LAYERS; i++) {
if (groundBg->unk2DC[i] != NULL) {
if (groundBg->unk52C.unkE[i] > 0) {
if (groundBg->unk2BC.unkE[i] > 0) {
MemFree(groundBg->unk2DC[i]);
}
groundBg->unk2DC[i] = NULL;
@ -218,7 +216,7 @@ void ov11_022EBEAC(GroundBg *groundBg)
groundBg->unk2EC[i] = NULL;
}
if (groundBg->unk2E4[i] != NULL) {
if (groundBg->unk52C.unkE[i] > 0) {
if (groundBg->unk2BC.unkE[i] > 0) {
MemFree(groundBg->unk2E4[i]);
}
groundBg->unk2E4[i] = NULL;
@ -230,8 +228,8 @@ void ov11_022EBF60(GroundBg *groundBg)
{
s32 i;
for (i = 0; i < UNK_3E0_ARR_COUNT; i++) {
SubStruct_3E0 *unkPtr = &groundBg->unk3E0[i];
for (i = 0; i < UNK_C4_ARR_COUNT; i++) {
UnkGroundBg_C4 *unkPtr = &groundBg->unkC4[i];
ZInit8(&unkPtr->bpaFile);
}
@ -253,8 +251,8 @@ void GroundBg_CloseOpenedFiles(GroundBg *groundBg)
return;
}
for (i = 0; i < UNK_3E0_ARR_COUNT; i++) {
SubStruct_3E0 *unkPtr = &groundBg->unk3E0[i];
for (i = 0; i < UNK_C4_ARR_COUNT; i++) {
UnkGroundBg_C4 *unkPtr = &groundBg->unkC4[i];
TRY_CLOSE_FILE(unkPtr->bpaFile);
}
sub_0206367C(&groundBg->unk1A0);
@ -271,8 +269,8 @@ void ov11_022EC08C(GroundBg *groundBg)
u8 unkId;
u16 palId;
s32 i, j;
SubStruct_0 *unk0Ptr;
s32 unk0Id, unk3E0Id;
UnkGroundBg_4 *unk4Ptr;
s32 unk4Id, unkC4Id;
struct UnkStruct_2324CBC_Sub98 *unkSubPtr;
GroundBg_CloseOpenedFiles(groundBg);
@ -292,15 +290,15 @@ void ov11_022EC08C(GroundBg *groundBg)
groundBg->unk1FB = 0;
groundBg->unk1BC = 0;
unk0Ptr = &groundBg->unk0[0];
for (unk0Id = 0; unk0Id < UNK_0_ARR_COUNT; unk0Id++, unk0Ptr++) {
unk0Ptr->unk0 = 0;
unk0Ptr->unk2 = 0;
unk0Ptr->unk4 = unk0Ptr->unk8 = 0;
unk4Ptr = &groundBg->unk4[0];
for (unk4Id = 0; unk4Id < UNK_4_ARR_COUNT; unk4Id++, unk4Ptr++) {
unk4Ptr->unk0 = 0;
unk4Ptr->unk2 = 0;
unk4Ptr->unk4 = unk4Ptr->unk8 = 0;
}
for (unk3E0Id = 0; unk3E0Id < UNK_3E0_ARR_COUNT; unk3E0Id++) {
SubStruct_3E0 *unkPtr = &groundBg->unk3E0[unk3E0Id];
for (unkC4Id = 0; unkC4Id < UNK_C4_ARR_COUNT; unkC4Id++) {
UnkGroundBg_C4 *unkPtr = &groundBg->unkC4[unkC4Id];
unkPtr->unk0 = 0;
unkPtr->unk1 = 0;
unkPtr->unk2 = 0;
@ -314,10 +312,10 @@ void ov11_022EC08C(GroundBg *groundBg)
unkPtr->unk28 = 0;
}
unkId = groundBg->unk52C.unk0;
unkId = groundBg->unk2BC.unk0;
unkSubPtr = &ov11_02324CBC->unk98[unkId];
palId = groundBg->unk52C.unk6 * 16;
for (i = 0; i < groundBg->unk52C.unk8; i++) {
palId = groundBg->unk2BC.unk6 * 16;
for (i = 0; i < groundBg->unk2BC.unk8; i++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BF4);
for (j = 1; j < 16; j++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BE8);
@ -325,7 +323,7 @@ void ov11_022EC08C(GroundBg *groundBg)
}
sub_0200A504(unkSubPtr);
if (groundBg->unk52C.numLayers > 0) {
if (groundBg->unk2BC.numLayers > 0) {
ov11_022EE620(groundBg, 1);
}
else {
@ -361,16 +359,16 @@ void ov11_022EC27C(GroundBg *groundBg, s32 bgId)
s32 i, j;
struct UnkStruct_2324CBC_Sub98 *unkSubPtr;
const RGB_Array *rgbPal;
s32 unk0Id;
SubStruct_0 *sub0Ptr;
s32 unk3E0Id;
s32 unk4Id;
UnkGroundBg_4 *sub4Ptr;
s32 unkC4Id;
BmaHeader *bmaHeader;
BplHeader *bplHeader;
const void *bmaData;
u16 palId;
s32 r7;
flags = (groundBg->unk52C.unk0 == 0) ? 6 : 15;
flags = (groundBg->unk2BC.unk0 == 0) ? 6 : 15;
if (bgId == -1) {
ov11_022EC08C(groundBg);
return;
@ -447,15 +445,15 @@ void ov11_022EC27C(GroundBg *groundBg, s32 bgId)
bmaHeader->hasCollision = *(u8 *)(bmaData); bmaData += 2;
rgbPal = bplData;
unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk52C.unk0];
palId = groundBg->unk52C.unk6 * 16;
for (i = 0; i < bplHeader->numPalettes && i < groundBg->unk52C.unk8; i++) {
unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk2BC.unk0];
palId = groundBg->unk2BC.unk6 * 16;
for (i = 0; i < bplHeader->numPalettes && i < groundBg->unk2BC.unk8; i++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BF4);
sub_0200A5B0(unkSubPtr, palId, rgbPal, 15);
palId += 15;
rgbPal += 15;
}
for (; i < groundBg->unk52C.unk8; i++) {
for (; i < groundBg->unk2BC.unk8; i++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BF4);
for (j = 1; j < 16; j++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BE8);
@ -464,8 +462,8 @@ void ov11_022EC27C(GroundBg *groundBg, s32 bgId)
sub_0200A504(unkSubPtr);
// Bpc decompressor
sp20 = groundBg->unk52C.unk2;
for (i = 0; i < groundBg->unk52C.unk4; sp20++, i++) {
sp20 = groundBg->unk2BC.unk2;
for (i = 0; i < groundBg->unk2BC.unk4; sp20++, i++) {
const u8 *srcStart = sp44[i];
if (srcStart != NULL) {
s32 k; // r1
@ -473,8 +471,8 @@ void ov11_022EC27C(GroundBg *groundBg, s32 bgId)
s32 nbWordsToOutput;
u16 *tilemapR7, *tilemapR3, *tilemapR12;
LayerSpecs *layerSpecs = &groundBg->layerSpecs[i]; // r9
s32 r3 = groundBg->unk52C.unk0;
u16 *dstR11 = ov11_02320C18[r3][sp20] + groundBg->unk52C.unkA * 32; // r11 fp
s32 r3 = groundBg->unk2BC.unk0;
u16 *dstR11 = ov11_02320C18[r3][sp20] + groundBg->unk2BC.unkA * 32; // r11 fp
u16 *dstSP10 = ov11_02320C18[r3][sp20] + layerSpecs->numTiles * 32; // sp 10
const u8 *src = srcStart; // r6
u16 leftoverVal2 = 0; // r7
@ -574,13 +572,13 @@ void ov11_022EC27C(GroundBg *groundBg, s32 bgId)
}
// Copy tilemaps
for (r7 = layerSpecs->numTiles; r7 < groundBg->unk52C.unkC; r7++) {
for (r7 = layerSpecs->numTiles; r7 < groundBg->unk2BC.unkC; r7++) {
for (k = 0; k < 16; k++) {
*dstR11++ = 0xFFFF;
}
}
unkOrVal = (groundBg->unk52C.unk6 << 12) | groundBg->unk52C.unkA;
unkOrVal = (groundBg->unk2BC.unk6 << 12) | groundBg->unk2BC.unkA;
tilemapR12 = groundBg->unk2DC[i];
tilemapR3 = tilemapR12;
groundBg->unk2B8 = 1;
@ -649,15 +647,15 @@ void ov11_022EC27C(GroundBg *groundBg, s32 bgId)
}
}
bmaData = BmaLayerNrlDecompressor(groundBg->unk2E4, bmaData, &groundBg->unk52C, &groundBg->bmaHeader);
bmaData = BmaLayerNrlDecompressor(groundBg->unk2E4, bmaData, &groundBg->unk2BC, &groundBg->bmaHeader);
groundBg->unk1F0 = bmaData;
if (groundBg->unk2D8 != NULL) {
groundBg->unk52C.unk18(groundBg->unk2D8, bmaData, bmaHeader, groundBg->unk52C.unk12);
groundBg->unk2BC.unk18(groundBg->unk2D8, bmaData, bmaHeader, groundBg->unk2BC.unk12);
}
groundBg->unk1EE = 0;
sub0Ptr = groundBg->unk0;
unk0Id = 0;
sub4Ptr = groundBg->unk4;
unk4Id = 0;
if (bplHeader->hasPalAnimations) {
s32 numPals = bplHeader->numPalettes * 15;
@ -670,17 +668,17 @@ void ov11_022EC27C(GroundBg *groundBg, s32 bgId)
groundBg->unk1FA = 1;
groundBg->unk1FB = 1;
groundBg->unk1BC = 0;
for (; unk0Id < bplHeader->numPalettes && unk0Id < groundBg->unk52C.unk8; unk0Id++, sub0Ptr++, animSpecifications++) {
for (; unk4Id < bplHeader->numPalettes && unk4Id < groundBg->unk2BC.unk8; unk4Id++, sub4Ptr++, animSpecifications++) {
if (animSpecifications->numFrames > 0) {
sub0Ptr->unk4 = animationPalette;
sub4Ptr->unk4 = animationPalette;
animationPalette += animSpecifications->numFrames * 15;
}
else {
sub0Ptr->unk4 = NULL;
sub4Ptr->unk4 = NULL;
}
sub0Ptr->unk0 = 0;
sub0Ptr->unk2 = 0;
sub0Ptr->unk8 = 0;
sub4Ptr->unk0 = 0;
sub4Ptr->unk2 = 0;
sub4Ptr->unk8 = 0;
}
}
else {
@ -692,33 +690,33 @@ void ov11_022EC27C(GroundBg *groundBg, s32 bgId)
groundBg->unk1BC = 0;
}
for (; unk0Id < UNK_0_ARR_COUNT; unk0Id++, sub0Ptr++) {
sub0Ptr->unk0 = 0;
sub0Ptr->unk2 = 0;
sub0Ptr->unk4 = sub0Ptr->unk8 = 0;
for (; unk4Id < UNK_4_ARR_COUNT; unk4Id++, sub4Ptr++) {
sub4Ptr->unk0 = 0;
sub4Ptr->unk2 = 0;
sub4Ptr->unk4 = sub4Ptr->unk8 = 0;
}
for (unk3E0Id = 0; unk3E0Id < UNK_3E0_ARR_COUNT; unk3E0Id++) {
SubStruct_3E0 *sub3E0 = &groundBg->unk3E0[unk3E0Id];
sub3E0->unk0 = 0;
sub3E0->unk1 = 0;
sub3E0->unk4 = 0;
sub3E0->unk2 = 0;
ZInit8(&sub3E0->bpaFile);
sub3E0->unk10 = 0;
sub3E0->unk18 = 0;
sub3E0->unk14 = 0;
sub3E0->unk20 = 0;
sub3E0->unk24 = sub3E0->unk1C = 0;
sub3E0->unk28 = 0;
for (unkC4Id = 0; unkC4Id < UNK_C4_ARR_COUNT; unkC4Id++) {
UnkGroundBg_C4 *subC4 = &groundBg->unkC4[unkC4Id];
subC4->unk0 = 0;
subC4->unk1 = 0;
subC4->unk4 = 0;
subC4->unk2 = 0;
ZInit8(&subC4->bpaFile);
subC4->unk10 = 0;
subC4->unk18 = 0;
subC4->unk14 = 0;
subC4->unk20 = 0;
subC4->unk24 = subC4->unk1C = 0;
subC4->unk28 = 0;
}
r7 = groundBg->unk52C.unk2;
r7 = groundBg->unk2BC.unk2;
s32 r5;
for (r5 = 0; r5 < groundBg->unk52C.unk4; r5++, r7++) {
for (r5 = 0; r5 < groundBg->unk2BC.unk4; r5++, r7++) {
LayerSpecs *layerSpecs = &groundBg->layerSpecs[r5];
s32 vramId = (groundBg->unk52C.unkA + layerSpecs->numTiles);
void *vramPtr = ov11_02320C18[groundBg->unk52C.unk0][r7] + (vramId * 32);
s32 vramId = (groundBg->unk2BC.unkA + layerSpecs->numTiles);
void *vramPtr = ov11_02320C18[groundBg->unk2BC.unk0][r7] + (vramId * 32);
s32 r8 = (r5 == 0) ? 0 : 2;
s32 r9 = (r5 == 0) ? 0 : 4;
layerSpecs = &groundBg->layerSpecs[r5];
@ -726,32 +724,32 @@ void ov11_022EC27C(GroundBg *groundBg, s32 bgId)
for (r6 = 0; r6 < 2; r6++, r9++, r8++) {
SubStruct_3E0 *sub3E0 = &groundBg->unk3E0[r8];
if (entry.others_bpa[r9].name[0] != '\0' && groundBg->unk52C.unk0 == 0) {
UnkGroundBg_C4 *subC4 = &groundBg->unkC4[r8];
if (entry.others_bpa[r9].name[0] != '\0' && groundBg->unk2BC.unk0 == 0) {
const struct BpaHeader *bpaHeader;
const void *r1, *r0;
sprintf(textBuf, ov11_02320C94, entry.others_bpa[r9].name);
LoadFileFromRom(&sub3E0->bpaFile, textBuf, flags);
sub3E0->unk0 = 1;
sub3E0->unk1 = 1;
bpaHeader = sub3E0->bpaFile.iov_base;
sub3E0->unk10 = bpaHeader;
LoadFileFromRom(&subC4->bpaFile, textBuf, flags);
subC4->unk0 = 1;
subC4->unk1 = 1;
bpaHeader = subC4->bpaFile.iov_base;
subC4->unk10 = bpaHeader;
r1 = &bpaHeader->durationPerFrame;
r0 = r1 + bpaHeader->numFrames * 4;
sub3E0->unk14 = sub3E0->unk18 = r1;
sub3E0->unk1C = sub3E0->unk20 = r0;
sub3E0->unk2 = 0;
sub3E0->unk4 = *((u32 *)sub3E0->unk18); // hm...
sub3E0->unk24 = vramPtr;
sub3E0->unk28 = layerSpecs->bpaSlotNumTiles[r6] * 32;
subC4->unk14 = subC4->unk18 = r1;
subC4->unk1C = subC4->unk20 = r0;
subC4->unk2 = 0;
subC4->unk4 = *((u32 *)subC4->unk18); // hm...
subC4->unk24 = vramPtr;
subC4->unk28 = layerSpecs->bpaSlotNumTiles[r6] * 32;
vramPtr += layerSpecs->bpaSlotNumTiles[r6] * 32;
}
}
}
if (groundBg->unk52C.unk4 > 0) {
if (groundBg->unk2BC.unk4 > 0) {
ov11_022EE620(groundBg, 1);
}
else {
@ -1551,7 +1549,7 @@ void LoadMapType10(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
const void *bmaData;
const void *bplData;
struct Unk_022C3938 sp2C;
SubStruct_0 *sub0Ptr;
UnkGroundBg_4 *sub4Ptr;
if (bgId == -1 || dungLoc->id == 0xff) {
ov11_022EC08C(groundBg);
@ -1609,7 +1607,7 @@ void LoadMapType10(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
struct UnkTwoPtrs unkPtrArray = zeros;
unkPtrArray.ptrs[0] = groundBg->unk2D8;
bmaData = BmaLayerNrlDecompressor((void *) &unkPtrArray, bmaData, &groundBg->unk52C, &groundBg->bmaHeader);
bmaData = BmaLayerNrlDecompressor((void *) &unkPtrArray, bmaData, &groundBg->unk2BC, &groundBg->bmaHeader);
}
groundBg->unk1F0 = bmaData;
@ -1625,7 +1623,7 @@ void LoadMapType10(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
groundBg->unk2D8);
groundBg->unk17C = sp2C.unk0;
groundBg->unk1B8 = sp2C.unk8;
groundBg->unk52C.unk18(groundBg->unk2D8, bmaData, bmaHeader, groundBg->unk52C.unk12);
groundBg->unk2BC.unk18(groundBg->unk2D8, bmaData, bmaHeader, groundBg->unk2BC.unk12);
layerSpecs->numTiles = 512;
for (i = 0; i < MAX_BPA_SLOTS; i++) {
@ -1637,11 +1635,11 @@ void LoadMapType10(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
groundBg->bplHeader.hasPalAnimations = FALSE;
if (groundBg->unk1B8 != NULL) {
const RGB_Array *strPtr = groundBg->unk1B8;
struct UnkStruct_2324CBC_Sub98 *unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk52C.unk0];
struct UnkStruct_2324CBC_Sub98 *unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk2BC.unk0];
u16 palId = 0;
s32 i, j;
for (i = 0; i < 12 && i < groundBg->unk52C.unk8; i++) {
for (i = 0; i < 12 && i < groundBg->unk2BC.unk8; i++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BF4);
strPtr++;
for (j = 1; j < 16; j++) {
@ -1657,7 +1655,7 @@ void LoadMapType10(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
}
}
for (; i < groundBg->unk52C.unk8; i++) {
for (; i < groundBg->unk2BC.unk8; i++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BF4);
for (j = 1; j < 16; j++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BE8);
@ -1667,8 +1665,8 @@ void LoadMapType10(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
}
groundBg->unk1EE = 0;
sub0Ptr = groundBg->unk0;
struct UnkStruct_2324CBC_Sub98 *unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk52C.unk0];
sub4Ptr = groundBg->unk4;
struct UnkStruct_2324CBC_Sub98 *unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk2BC.unk0];
groundBg->unk1BC = 0;
if (groundBg->unk194.unk8 != 0) {
sub_02063628(&groundBg->unk1A0, unkSubPtr, 0x20);
@ -1681,24 +1679,24 @@ void LoadMapType10(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
groundBg->unk1FA = 0;
groundBg->unk1FB = 0;
for (s32 unk0Id = 0; unk0Id < UNK_0_ARR_COUNT; unk0Id++, sub0Ptr++) {
sub0Ptr->unk0 = 0;
sub0Ptr->unk2 = 0;
sub0Ptr->unk4 = sub0Ptr->unk8 = 0;
for (s32 unk4Id = 0; unk4Id < UNK_4_ARR_COUNT; unk4Id++, sub4Ptr++) {
sub4Ptr->unk0 = 0;
sub4Ptr->unk2 = 0;
sub4Ptr->unk4 = sub4Ptr->unk8 = 0;
}
for (s32 unk3E0Id = 0; unk3E0Id < UNK_3E0_ARR_COUNT; unk3E0Id++) {
SubStruct_3E0 *sub3E0 = &groundBg->unk3E0[unk3E0Id];
sub3E0->unk0 = 0;
sub3E0->unk1 = 0;
sub3E0->unk4 = 0;
sub3E0->unk2 = 0;
sub3E0->unk10 = 0;
sub3E0->unk18 = 0;
sub3E0->unk14 = 0;
sub3E0->unk20 = 0;
sub3E0->unk24 = sub3E0->unk1C = 0,
sub3E0->unk28 = 0;
for (s32 unkC4Id = 0; unkC4Id < UNK_C4_ARR_COUNT; unkC4Id++) {
UnkGroundBg_C4 *subC4 = &groundBg->unkC4[unkC4Id];
subC4->unk0 = 0;
subC4->unk1 = 0;
subC4->unk4 = 0;
subC4->unk2 = 0;
subC4->unk10 = 0;
subC4->unk18 = 0;
subC4->unk14 = 0;
subC4->unk20 = 0;
subC4->unk24 = subC4->unk1C = 0,
subC4->unk28 = 0;
}
ov11_022EE620(groundBg, 1);
@ -1716,7 +1714,7 @@ void LoadMapType11(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
s32 i;
s32 sp24, sp28;
struct Unk_022C3938 sp2C;
SubStruct_0 *sub0Ptr;
UnkGroundBg_4 *sub4Ptr;
if (bgId == -1 || dungLoc->id == 0xff) {
ov11_022EC08C(groundBg);
@ -1766,7 +1764,7 @@ void LoadMapType11(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
groundBg->unk2D8);
groundBg->unk17C = sp2C.unk0;
groundBg->unk1B8 = sp2C.unk8;
groundBg->unk52C.unk18(groundBg->unk2D8, NULL, bmaHeader, groundBg->unk52C.unk12);
groundBg->unk2BC.unk18(groundBg->unk2D8, NULL, bmaHeader, groundBg->unk2BC.unk12);
layerSpecs->numTiles = 512;
for (i = 0; i < MAX_BPA_SLOTS; i++) {
@ -1778,11 +1776,11 @@ void LoadMapType11(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
groundBg->bplHeader.hasPalAnimations = FALSE;
if (groundBg->unk1B8 != NULL) {
const RGB_Array *strPtr = groundBg->unk1B8;
struct UnkStruct_2324CBC_Sub98 *unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk52C.unk0];
struct UnkStruct_2324CBC_Sub98 *unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk2BC.unk0];
u16 palId = 0;
s32 i, j;
for (i = 0; i < 12 && i < groundBg->unk52C.unk8; i++) {
for (i = 0; i < 12 && i < groundBg->unk2BC.unk8; i++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BF4);
strPtr++;
for (j = 1; j < 16; j++) {
@ -1798,7 +1796,7 @@ void LoadMapType11(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
}
}
for (; i < groundBg->unk52C.unk8; i++) {
for (; i < groundBg->unk2BC.unk8; i++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BF4);
for (j = 1; j < 16; j++) {
sub_0200A590(unkSubPtr, palId++, &ov11_02320BE8);
@ -1808,8 +1806,8 @@ void LoadMapType11(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
}
groundBg->unk1EE = 0;
sub0Ptr = groundBg->unk0;
struct UnkStruct_2324CBC_Sub98 *unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk52C.unk0];
sub4Ptr = groundBg->unk4;
struct UnkStruct_2324CBC_Sub98 *unkSubPtr = &ov11_02324CBC->unk98[groundBg->unk2BC.unk0];
groundBg->unk1BC = 0;
if (groundBg->unk194.unk8 != 0) {
sub_02063628(&groundBg->unk1A0, unkSubPtr, 0x20);
@ -1822,24 +1820,24 @@ void LoadMapType11(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
groundBg->unk1FA = 0;
groundBg->unk1FB = 0;
for (s32 unk0Id = 0; unk0Id < UNK_0_ARR_COUNT; unk0Id++, sub0Ptr++) {
sub0Ptr->unk0 = 0;
sub0Ptr->unk2 = 0;
sub0Ptr->unk4 = sub0Ptr->unk8 = 0;
for (s32 unk4Id = 0; unk4Id < UNK_4_ARR_COUNT; unk4Id++, sub4Ptr++) {
sub4Ptr->unk0 = 0;
sub4Ptr->unk2 = 0;
sub4Ptr->unk4 = sub4Ptr->unk8 = 0;
}
for (s32 unk3E0Id = 0; unk3E0Id < UNK_3E0_ARR_COUNT; unk3E0Id++) {
SubStruct_3E0 *sub3E0 = &groundBg->unk3E0[unk3E0Id];
sub3E0->unk0 = 0;
sub3E0->unk1 = 0;
sub3E0->unk4 = 0;
sub3E0->unk2 = 0;
sub3E0->unk10 = 0;
sub3E0->unk18 = 0;
sub3E0->unk14 = 0;
sub3E0->unk20 = 0;
sub3E0->unk24 = sub3E0->unk1C = 0,
sub3E0->unk28 = 0;
for (s32 unkC4Id = 0; unkC4Id < UNK_C4_ARR_COUNT; unkC4Id++) {
UnkGroundBg_C4 *subC4 = &groundBg->unkC4[unkC4Id];
subC4->unk0 = 0;
subC4->unk1 = 0;
subC4->unk4 = 0;
subC4->unk2 = 0;
subC4->unk10 = 0;
subC4->unk18 = 0;
subC4->unk14 = 0;
subC4->unk20 = 0;
subC4->unk24 = subC4->unk1C = 0,
subC4->unk28 = 0;
}
groundBg->unk2B8 = 1;
@ -1849,5 +1847,3 @@ void LoadMapType11(GroundBg *groundBg, s32 bgId, const DungeonLocation *dungLoc,
TRY_CLOSE_FILE(groundBg->bpcFile);
TRY_CLOSE_FILE(groundBg->bmaFile);
}
//

View File

@ -2,7 +2,7 @@
// TODO: Merge with ground_bg.c once the functions in the middle are decompiled
const u8 * BmaLayerNrlDecompressor(u16 **dstArray, const void *bmaData, SubStruct_52C *a2, BmaHeader *bmaHeader)
const u8 * BmaLayerNrlDecompressor(u16 **dstArray, const void *bmaData, UnkGroundBg_2BC *a2, BmaHeader *bmaHeader)
{
s32 i, k, j, l;
const u8 *src = bmaData;

View File

@ -1,17 +1,17 @@
#include "main_0200330C.h"
void ZInit8(int* ptr)
void ZInit8(struct iovec* ptr)
{
ptr[0]=0;
ptr[1]=0;
ptr->iov_base = NULL;
ptr->iov_len = 0;
}
u8 PointsToZero(int* ptr)
bool8 PointsToZero(struct iovec* ptr)
{
if (*ptr == 0) {
return 1;
if (ptr->iov_base == NULL) {
return TRUE;
} else {
return 0;
return FALSE;
}
}

View File

@ -10,7 +10,8 @@ MAIN_LSF_PATH = 'main.lsf'
# Symbols with duplicate addresses that should be ignored.
XMAP_SYMBOL_BLACKLIST = set([
'AI_POTENTIAL_ATTACK_TARGET_WEIGHTS_2'
'AI_POTENTIAL_ATTACK_TARGET_WEIGHTS_2',
'zeros$498'
])
"""