diff --git a/config/SOUE01/config.yml b/config/SOUE01/config.yml index c36e2e6f..57c8b289 100644 --- a/config/SOUE01/config.yml +++ b/config/SOUE01/config.yml @@ -1,4 +1,5 @@ object: orig/SOUE01/main.dol +hash: 450a6806f46d59dcf8278db08e06f94865a4b18a splits: config/SOUE01/splits.txt symbols: config/SOUE01/symbols.txt -auto_force_files: false +quick_analysis: true diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 31ad024d..e54ae8b7 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -18,9 +18,12 @@ d/d_base.cpp: .text start:0x80050800 end:0x80050A14 .data start:0x80503380 end:0x805033CC -unk_flag_stuff.cpp: +toBeSorted/unk_flag_stuff.cpp: .text start:0x800BEF90 end:0x800BF200 +toBeSorted/bitwise_flag_helper.cpp: + .text start:0x800BF200 end:0x800BF264 + Runtime/__init_cpp_exceptions.cpp: .text start:0x804C71A8 end:0x804C7218 .ctors start:0x804DB640 end:0x804DB644 rename:.ctors$10 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 8a2710af..18284d3e 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -11,7 +11,7 @@ memcpy = .init:0x800043C4; // type:function size:0x29C scope:global __fill_mem = .init:0x80004660; // type:function size:0xB4 scope:global memset = .init:0x80004714; // type:function size:0x30 scope:global gTRKInterruptVectorTable = .init:0x80004744; // type:label scope:global -_rom_copy_info = .init:0x80006678; // type:object size:0x84 scope:global +_rom_copy_info = .init:0x80006678; // type:object size:0x84 scope:global data:4byte gTRKInterruptVectorTableEnd = .init:0x80006678; // type:label scope:global data:4byte _bss_init_info = .init:0x800066FC; // type:object size:0x20 scope:global data:4byte @etb_80006720 = extab:0x80006720; // type:object size:0x8 scope:local hidden @@ -4143,10 +4143,10 @@ prepareIndexShiftMask__12UnkFlagStuffFUsUiPUsPUcPUs = .text:0x800BEFD0; // type: maskForIdx__12UnkFlagStuffFUs = .text:0x800BF050; // type:function size:0x50 getCounterOrFlag__12UnkFlagStuffFUsPUsUi = .text:0x800BF0A0; // type:function size:0x68 setCounterOrFlag__12UnkFlagStuffFUsPUsUiUi = .text:0x800BF110; // type:function size:0x9C -unk__12UnkFlagStuffFUsUi = .text:0x800BF1B0; // type:function size:0x50 -fn_800BF200 = .text:0x800BF200; // type:function size:0x14 -fn_800BF220 = .text:0x800BF220; // type:function size:0x20 -fn_800BF240 = .text:0x800BF240; // type:function size:0x24 +checkFlagValid__12UnkFlagStuffFUsUi = .text:0x800BF1B0; // type:function size:0x50 +checkFlag__17BitwiseFlagHelperFUsUsPUs = .text:0x800BF200; // type:function size:0x14 +setFlag__17BitwiseFlagHelperFUsUsPUs = .text:0x800BF220; // type:function size:0x20 +unsetFlag__17BitwiseFlagHelperFUsUsPUs = .text:0x800BF240; // type:function size:0x24 fn_800BF270 = .text:0x800BF270; // type:function size:0x28 fn_800BF2A0 = .text:0x800BF2A0; // type:function size:0x70 fn_800BF310 = .text:0x800BF310; // type:function size:0xC @@ -25058,7 +25058,7 @@ ShutdownEffect__Q44nw4r3snd6detail9AxManagerFQ34nw4r3snd6AuxBus = .text:0x804641 AuxCallbackFunc__Q44nw4r3snd6detail9AxManagerFPvPv = .text:0x80464260; // type:function size:0x3DC PrepareReset__Q44nw4r3snd6detail9AxManagerFv = .text:0x80464640; // type:function size:0xC8 AiDmaCallbackFunc__Q44nw4r3snd6detail9AxManagerFv = .text:0x80464710; // type:function size:0x128 -__sinit_\snd_AxManager_cpp = .text:0x80464840; // type:function size:0x40 +__sinit_snd_AxManager_cpp = .text:0x80464840; // type:function size:0x40 __ct__Q44nw4r3snd6detail7AxVoiceFv = .text:0x80464880; // type:function size:0x44 __dt__Q44nw4r3snd6detail7AxVoiceFv = .text:0x804648D0; // type:function size:0x40 Setup__Q44nw4r3snd6detail7AxVoiceFPCvQ34nw4r3snd12SampleFormati = .text:0x80464910; // type:function size:0x80 @@ -25171,7 +25171,7 @@ DetachTempGeneralHandle__Q44nw4r3snd6detail10BasicSoundFv = .text:0x8046A2C0; // SetId__Q44nw4r3snd6detail10BasicSoundFUl = .text:0x8046A2D0; // type:function size:0x40 __dt__Q44nw4r3snd6detail10BasicSoundFv = .text:0x8046A310; // type:function size:0x40 GetRuntimeTypeInfo__Q44nw4r3snd6detail10BasicSoundCFv = .text:0x8046A350; // type:function size:0x8 -__sinit_\snd_BasicSound_cpp = .text:0x8046A360; // type:function size:0xC +__sinit_snd_BasicSound_cpp = .text:0x8046A360; // type:function size:0xC GetCoef__Q44nw4r3snd6detail15BiquadFilterLpfCFifPQ44nw4r3snd20BiquadFilterCallback10BiquadCoef = .text:0x8046A370; // type:function size:0x88 GetCoef__Q44nw4r3snd6detail15BiquadFilterHpfCFifPQ44nw4r3snd20BiquadFilterCallback10BiquadCoef = .text:0x8046A400; // type:function size:0x88 GetCoef__Q44nw4r3snd6detail18BiquadFilterBpf512CFifPQ44nw4r3snd20BiquadFilterCallback10BiquadCoef = .text:0x8046A490; // type:function size:0x94 @@ -25420,7 +25420,7 @@ GetBasicPlayer__Q44nw4r3snd6detail8SeqSoundFv = .text:0x80473120; // type:functi GetBasicPlayer__Q44nw4r3snd6detail8SeqSoundCFv = .text:0x80473130; // type:function size:0x8 IsPrepared__Q44nw4r3snd6detail8SeqSoundCFv = .text:0x80473140; // type:function size:0x8 GetRuntimeTypeInfo__Q44nw4r3snd6detail8SeqSoundCFv = .text:0x80473150; // type:function size:0x8 -__sinit_\snd_SeqSound_cpp = .text:0x80473160; // type:function size:0xC +__sinit_snd_SeqSound_cpp = .text:0x80473160; // type:function size:0xC __ct__Q34nw4r3snd14SeqSoundHandleFPQ34nw4r3snd11SoundHandle = .text:0x80473170; // type:function size:0xF4 DetachSound__Q34nw4r3snd14SeqSoundHandleFv = .text:0x80473270; // type:function size:0x38 SetPlayerTrackNo__Q44nw4r3snd6detail8SeqTrackFi = .text:0x804732B0; // type:function size:0x8 @@ -25479,7 +25479,7 @@ detail_AllocAmbientArg__Q34nw4r3snd14Sound3DManagerFUl = .text:0x80475E70; // ty detail_FreeAmbientArg__Q34nw4r3snd14Sound3DManagerFPvPCQ44nw4r3snd6detail10BasicSound = .text:0x80475EE0; // type:function size:0x14 SetBiquadFilterType__Q34nw4r3snd14Sound3DManagerFi = .text:0x80475F00; // type:function size:0x8 __ct__Q34nw4r3snd12Sound3DParamFv = .text:0x80475F10; // type:function size:0x28 -__sinit_\snd_Sound3DManager_cpp = .text:0x80475F40; // type:function size:0xC +__sinit_snd_Sound3DManager_cpp = .text:0x80475F40; // type:function size:0xC @4@detail_FreeAmbientArg__Q34nw4r3snd14Sound3DManagerFPvPCQ44nw4r3snd6detail10BasicSound = .text:0x80475F50; // type:function size:0x8 @4@detail_AllocAmbientArg__Q34nw4r3snd14Sound3DManagerFUl = .text:0x80475F60; // type:function size:0x8 @4@__dt__Q34nw4r3snd14Sound3DManagerFv = .text:0x80475F70; // type:function size:0x8 @@ -25635,7 +25635,7 @@ GetRequiredMemSize__Q34nw4r3snd11SoundSystemFRCQ44nw4r3snd11SoundSystem16SoundSy InitSoundSystem__Q34nw4r3snd11SoundSystemFRCQ44nw4r3snd11SoundSystem16SoundSystemParamPvUl = .text:0x8047C480; // type:function size:0x1AC IsInitializedSoundSystem__Q34nw4r3snd11SoundSystemFv = .text:0x8047C630; // type:function size:0x8 WaitForResetReady__Q34nw4r3snd11SoundSystemFv = .text:0x8047C640; // type:function size:0x74 -__sinit_\snd_SoundSystem_cpp = .text:0x8047C6C0; // type:function size:0x48 +__sinit_snd_SoundSystem_cpp = .text:0x8047C6C0; // type:function size:0x48 GetInstance__Q44nw4r3snd6detail11SoundThreadFv = .text:0x8047C710; // type:function size:0xB8 __dt__Q44nw4r3snd6detail11SoundThreadFv = .text:0x8047C7D0; // type:function size:0x70 Create__Q44nw4r3snd6detail11SoundThreadFlPvUl = .text:0x8047C840; // type:function size:0x12C @@ -25720,7 +25720,7 @@ GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundFv = .text:0x80480D40; // type:funct GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundCFv = .text:0x80480D50; // type:function size:0x8 IsPrepared__Q44nw4r3snd6detail9StrmSoundCFv = .text:0x80480D60; // type:function size:0x8 GetRuntimeTypeInfo__Q44nw4r3snd6detail9StrmSoundCFv = .text:0x80480D70; // type:function size:0x8 -__sinit_\snd_StrmSound_cpp = .text:0x80480D80; // type:function size:0xC +__sinit_snd_StrmSound_cpp = .text:0x80480D80; // type:function size:0xC __ct__Q34nw4r3snd15StrmSoundHandleFPQ34nw4r3snd11SoundHandle = .text:0x80480D90; // type:function size:0xF4 DetachSound__Q34nw4r3snd15StrmSoundHandleFv = .text:0x80480E90; // type:function size:0x38 __dt__Q44nw4r3snd6detail4TaskFv = .text:0x80480ED0; // type:function size:0x40 @@ -25823,7 +25823,7 @@ GetBasicPlayer__Q44nw4r3snd6detail9WaveSoundFv = .text:0x804852D0; // type:funct GetBasicPlayer__Q44nw4r3snd6detail9WaveSoundCFv = .text:0x804852E0; // type:function size:0x8 IsPrepared__Q44nw4r3snd6detail9WaveSoundCFv = .text:0x804852F0; // type:function size:0x8 GetRuntimeTypeInfo__Q44nw4r3snd6detail9WaveSoundCFv = .text:0x80485300; // type:function size:0x8 -__sinit_\snd_WaveSound_cpp = .text:0x80485310; // type:function size:0xC +__sinit_snd_WaveSound_cpp = .text:0x80485310; // type:function size:0xC detail_AttachSoundAsTempHandle__Q34nw4r3snd15WaveSoundHandleFPQ44nw4r3snd6detail9WaveSound = .text:0x80485320; // type:function size:0xF4 DetachSound__Q34nw4r3snd15WaveSoundHandleFv = .text:0x80485420; // type:function size:0x38 __ct__Q44nw4r3snd6detail13WsdFileReaderFPCv = .text:0x80485460; // type:function size:0x90 @@ -25897,7 +25897,7 @@ GetMaterial__Q34nw4r3lyt4PaneCFUl = .text:0x80487D80; // type:function size:0x20 GetExtUserData__Q34nw4r3lyt4PaneCFv = .text:0x80487DA0; // type:function size:0x1C GetExtUserDataNum__Q34nw4r3lyt4PaneCFv = .text:0x80487DC0; // type:function size:0x1C FindExtUserDataByName__Q34nw4r3lyt4PaneFPCc = .text:0x80487DE0; // type:function size:0xBC -__sinit_\lyt_pane_cpp = .text:0x80487EA0; // type:function size:0xC +__sinit_lyt_pane_cpp = .text:0x80487EA0; // type:function size:0xC __ct__Q34nw4r3lyt5GroupFPCQ44nw4r3lyt3res5GroupPQ34nw4r3lyt4Pane = .text:0x80487EB0; // type:function size:0x114 __dt__Q34nw4r3lyt5GroupFv = .text:0x80487FD0; // type:function size:0xAC __dt__Q34nw4r3lyt14GroupContainerFv = .text:0x80488080; // type:function size:0xCC @@ -25932,7 +25932,7 @@ GetVtxColorElement__Q34nw4r3lyt7PictureCFUl = .text:0x804896C0; // type:function SetVtxColorElement__Q34nw4r3lyt7PictureFUlUc = .text:0x804896E0; // type:function size:0x18 DrawSelf__Q34nw4r3lyt7PictureFRCQ34nw4r3lyt8DrawInfo = .text:0x80489700; // type:function size:0xDC GetRuntimeTypeInfo__Q34nw4r3lyt7PictureCFv = .text:0x804897E0; // type:function size:0x8 -__sinit_\lyt_picture_cpp = .text:0x804897F0; // type:function size:0xC +__sinit_lyt_picture_cpp = .text:0x804897F0; // type:function size:0xC __ct__Q34nw4r3lyt7TextBoxFPCQ44nw4r3lyt3res7TextBoxRCQ34nw4r3lyt11ResBlockSet = .text:0x80489800; // type:function size:0x2EC __dt__Q34nw4r3lyt7TextBoxFv = .text:0x80489AF0; // type:function size:0x1A0 GetVtxColor__Q34nw4r3lyt7TextBoxCFUl = .text:0x80489C90; // type:function size:0x14 @@ -25954,7 +25954,7 @@ CalcStringRectImpl__Q34nw4r3lyt25@unnamed@lyt_textBox_cpp@FPQ34nw4r2ut4RectPQ FUN_8048b030 = .text:0x8048B030; // type:function size:0x4C FUN_8048b080 = .text:0x8048B080; // type:function size:0x44 FUN_8048b0d0 = .text:0x8048B0D0; // type:function size:0x84 -__sinit_\lyt_textBox_cpp = .text:0x8048B160; // type:function size:0xC +__sinit_lyt_textBox_cpp = .text:0x8048B160; // type:function size:0xC __ct__Q34nw4r3lyt6WindowFPCQ44nw4r3lyt3res6WindowRCQ34nw4r3lyt11ResBlockSet = .text:0x8048B170; // type:function size:0x284 __dt__Q34nw4r3lyt6WindowFv = .text:0x8048B400; // type:function size:0x144 FindMaterialByName__Q34nw4r3lyt6WindowFPCcb = .text:0x8048B550; // type:function size:0xFC @@ -25973,12 +25973,12 @@ GetMaterialNum__Q34nw4r3lyt6WindowCFv = .text:0x8048D670; // type:function size: GetMaterial__Q34nw4r3lyt6WindowCFUl = .text:0x8048D680; // type:function size:0x2C GetFrameMaterial__Q34nw4r3lyt6WindowCFUl = .text:0x8048D6B0; // type:function size:0x28 GetContentMaterial__Q34nw4r3lyt6WindowCFv = .text:0x8048D6E0; // type:function size:0x10 -__sinit_\lyt_window_cpp = .text:0x8048D6F0; // type:function size:0xC +__sinit_lyt_window_cpp = .text:0x8048D6F0; // type:function size:0xC __ct__Q34nw4r3lyt8BoundingFPCQ44nw4r3lyt3res8BoundingRCQ34nw4r3lyt11ResBlockSet = .text:0x8048D700; // type:function size:0x3C __dt__Q34nw4r3lyt8BoundingFv = .text:0x8048D740; // type:function size:0x58 DrawSelf__Q34nw4r3lyt8BoundingFRCQ34nw4r3lyt8DrawInfo = .text:0x8048D7A0; // type:function size:0x4 GetRuntimeTypeInfo__Q34nw4r3lyt8BoundingCFv = .text:0x8048D7B0; // type:function size:0x8 -__sinit_\lyt_bounding_cpp = .text:0x8048D7C0; // type:function size:0xC +__sinit_lyt_bounding_cpp = .text:0x8048D7C0; // type:function size:0xC CalcTextureMtx__Q34nw4r3lyt26@unnamed@lyt_material_cpp@FPQ34nw4r4math5MTX34RCQ34nw4r3lyt6TexSRT = .text:0x8048D7D0; // type:function size:0x108 SetIndTexMtx__Q34nw4r3lyt26@unnamed@lyt_material_cpp@F14_GXIndTexMtxIDPA3_Cf = .text:0x8048D8E0; // type:function size:0x200 __as__Q34nw4r4math4VEC2FRCQ34nw4r4math4VEC2 = .text:0x8048DAE0; // type:function size:0x14 @@ -26287,7 +26287,7 @@ endFrame__Q23EGG7DisplayFv = .text:0x804976E0; // type:function size:0x4 preVRetrace__Q23EGG7DisplayFv = .text:0x804976F0; // type:function size:0xDC copyEFBtoXFB__Q23EGG7DisplayFv = .text:0x804977D0; // type:function size:0x9C calcFrequency__Q23EGG7DisplayFv = .text:0x80497870; // type:function size:0x84 -__sinit_\eggDisplay_cpp = .text:0x80497900; // type:function size:0x2C +__sinit_eggDisplay_cpp = .text:0x80497900; // type:function size:0x2C __ct__Q23EGG10ColorFaderFffffQ34nw4r2ut5ColorQ33EGG5Fader7EStatus = .text:0x80497930; // type:function size:0xAC setFrame__Q23EGG10ColorFaderFUs = .text:0x804979E0; // type:function size:0x8 setColor__Q23EGG10ColorFaderFQ34nw4r2ut5Color = .text:0x804979F0; // type:function size:0x1C @@ -26370,7 +26370,7 @@ onAllocate__Q23EGG29TBufferFPQ23EGG4Heap = .text:0x8049AA2 allocate__Q23EGG32TBufferFii = .text:0x8049AA30; // type:function size:0x50 allocate__Q23EGG32TBufferFiPQ23EGG4Heapi = .text:0x8049AA80; // type:function size:0x74 onAllocate__Q23EGG32TBufferFPQ23EGG4Heap = .text:0x8049AB00; // type:function size:0x4 -__sinit_\eggController_cpp = .text:0x8049AB10; // type:function size:0x48 +__sinit_eggController_cpp = .text:0x8049AB10; // type:function size:0x48 frsqrt__Q23EGG7MathFf = .text:0x8049AB60; // type:function size:0x50 sin__Q23EGG7MathFf = .text:0x8049ABB0; // type:function size:0x24 cos__Q23EGG7MathFf = .text:0x8049ABE0; // type:function size:0x24 @@ -26388,7 +26388,7 @@ egg_matrix_slerpTo = .text:0x8049B250; // type:function size:0x78 egg_matrix_setAxisRotation = .text:0x8049B2D0; // type:function size:0x3C loadPosMtx__Q23EGG9Matrix34fFUl = .text:0x8049B310; // type:function size:0x4 egg_matrix_multiplyTo = .text:0x8049B320; // type:function size:0x4 -__sinit_\eggMatrix_cpp = .text:0x8049B330; // type:function size:0x58 +__sinit_eggMatrix_cpp = .text:0x8049B330; // type:function size:0x58 egg_quatf_Quatf = .text:0x8049B390; // type:function size:0x14 egg_quatf_setAxisRotation = .text:0x8049B3B0; // type:function size:0x98 egg_quatf_squareNorm = .text:0x8049B450; // type:function size:0x30 @@ -26401,7 +26401,7 @@ egg_quatf_makeVectorRotation = .text:0x8049BBB0; // type:function size:0x104 normalise__Q23EGG8Vector3fFv = .text:0x8049BCC0; // type:function size:0x84 setLength__Q23EGG8Vector3fFPQ23EGG8Vector3ff = .text:0x8049BD50; // type:function size:0xB8 setLength__Q23EGG8Vector3fFf = .text:0x8049BE10; // type:function size:0xA0 -__sinit_\eggVector_cpp = .text:0x8049BEB0; // type:function size:0xE0 +__sinit_eggVector_cpp = .text:0x8049BEB0; // type:function size:0xE0 egg_assert_waittime = .text:0x8049BF90; // type:function size:0x78 egg_assert_vreport = .text:0x8049C010; // type:function size:0x4 egg_assert_report = .text:0x8049C020; // type:function size:0x80 @@ -26486,7 +26486,7 @@ DrawDL__Q23EGG6DrawGXFQ33EGG6DrawGX2DLRCQ34nw4r4math5MTX348_GXColor = .text:0x80 SetZMode__Q23EGG6DrawGXFQ33EGG6DrawGX5ZMode = .text:0x804A0B70; // type:function size:0x20 SetBlendMode__Q23EGG6DrawGXFQ33EGG6DrawGX5Blend = .text:0x804A0B90; // type:function size:0x24 CreateDisplayList__Q23EGG6DrawGXFPQ23EGG4Heap = .text:0x804A0BC0; // type:function size:0x5C -__sinit_\eggDrawGX_cpp = .text:0x804A0C20; // type:function size:0x4 +__sinit_eggDrawGX_cpp = .text:0x804A0C20; // type:function size:0x4 __ct__Q23EGG12DrawPathBaseFv = .text:0x804A0C30; // type:function size:0x58 createScnProc__Q23EGG12DrawPathBaseFP12MEMAllocator = .text:0x804A0C90; // type:function size:0x1B0 internalResetForDraw__Q23EGG12DrawPathBaseFv = .text:0x804A0E40; // type:function size:0x20 @@ -26569,7 +26569,7 @@ CalcMtxPerspective___Q23EGG7FrustumCFPQ34nw4r4math5MTX44 = .text:0x804A6490; // GetPerspectiveParam___Q23EGG7FrustumCFPf = .text:0x804A6520; // type:function size:0xBC GetOrthographicParam___Q23EGG7FrustumCFPf = .text:0x804A65E0; // type:function size:0xE0 GetOrthographicParam___Q23EGG7FrustumCFPfPfPfPf = .text:0x804A66C0; // type:function size:0x164 -__sinit_\eggFrustum_cpp = .text:0x804A6830; // type:function size:0x24 +__sinit_eggFrustum_cpp = .text:0x804A6830; // type:function size:0x24 FUN_804a6860 = .text:0x804A6860; // type:function size:0x104 FUN_804a6970 = .text:0x804A6970; // type:function size:0x34 FUN_804a69b0 = .text:0x804A69B0; // type:function size:0x1E8 @@ -26583,7 +26583,7 @@ __dt__Q33EGG9GfxEngine13ConfigurationFv = .text:0x804A75B0; // type:function siz __ct__Q33EGG9GfxEngine13ConfigurationFv = .text:0x804A75F0; // type:function size:0x154 beginDrawView__Q23EGG15GlobalDrawStateFUsRCQ34nw4r4math5MTX34RCQ23EGG6Screen = .text:0x804A7750; // type:function size:0x3C setDrawSettingGX__Q23EGG15GlobalDrawStateFbb = .text:0x804A7790; // type:function size:0x7C -__sinit_\eggGlobalDrawState_cpp = .text:0x804A7810; // type:function size:0x4 +__sinit_eggGlobalDrawState_cpp = .text:0x804A7810; // type:function size:0x4 getTexMtxID__Q23EGG9GXUtilityFi = .text:0x804A7820; // type:function size:0xC setScaleOffsetPerspective__Q23EGG9GXUtilityFPfffff = .text:0x804A7830; // type:function size:0x40 getTexObj__Q23EGG9GXUtilityFP9_GXTexObjRCQ23EGG7ResTIMG = .text:0x804A7870; // type:function size:0x100 @@ -26666,7 +26666,7 @@ SetBinaryInner__Q23EGG12LightTextureFRCQ33EGG29IBinary3Bin GetBinaryInner__Q23EGG12LightTextureCFPQ33EGG29IBinary3Bin = .text:0x804AD270; // type:function size:0x118 GetBinarySize__Q23EGG12LightTextureCFv = .text:0x804AD390; // type:function size:0x14 SetBinaryInner__Q23EGG29IBinaryFRCQ33EGG29IBinary3BinRCQ33EGG29IBinary3Binf = .text:0x804AD3B0; // type:function size:0x4 -__sinit_\eggLightTexture_cpp = .text:0x804AD3C0; // type:function size:0x44 +__sinit_eggLightTexture_cpp = .text:0x804AD3C0; // type:function size:0x44 @52@SetBinaryInner__Q23EGG12LightTextureFRCQ33EGG29IBinary3Bin = .text:0x804AD410; // type:function size:0x8 @52@GetBinaryInner__Q23EGG12LightTextureCFPQ33EGG29IBinary3Bin = .text:0x804AD420; // type:function size:0x8 @52@GetBinarySize__Q23EGG12LightTextureCFv = .text:0x804AD430; // type:function size:0x8 @@ -26750,9 +26750,9 @@ GetGlobalPos__Q23EGG6ScreenCFPfPf = .text:0x804B2D40; // type:function size:0xB0 SetTVMode__Q23EGG6ScreenFQ33EGG6Screen6TVMode = .text:0x804B2DF0; // type:function size:0xB0 SetTVModeDefault__Q23EGG6ScreenFv = .text:0x804B2EA0; // type:function size:0x34 FUN_804b2ee0 = .text:0x804B2EE0; // type:function size:0x14C -__sinit_\eggScreen_cpp = .text:0x804B3030; // type:function size:0x84 +__sinit_eggScreen_cpp = .text:0x804B3030; // type:function size:0x84 __ct__Q23EGG16ScreenEffectBaseFv = .text:0x804B30C0; // type:function size:0x18 -__sinit_\eggScreenEffectBase_cpp = .text:0x804B30E0; // type:function size:0xC +__sinit_eggScreenEffectBase_cpp = .text:0x804B30E0; // type:function size:0xC FUN_804b30f0 = .text:0x804B30F0; // type:function size:0x104 FUN_804b3200 = .text:0x804B3200; // type:function size:0xA8 FUN_804b32b0 = .text:0x804B32B0; // type:function size:0x454 @@ -26864,7 +26864,7 @@ init__Q33EGG12AudioUtility12MoveParamMgrFv = .text:0x804B6F90; // type:function init__EGG__AudioUtility_HBM = .text:0x804B6FA0; // type:function size:0x10 enter__Q33EGG12AudioUtility3HBMFv = .text:0x804B6FB0; // type:function size:0x130 exit__Q33EGG12AudioUtility3HBMFb = .text:0x804B70E0; // type:function size:0x120 -__sinit_\eggAudioUtility_cpp = .text:0x804B7200; // type:function size:0xC +__sinit_eggAudioUtility_cpp = .text:0x804B7200; // type:function size:0xC fn_804B7210 = .text:0x804B7210; // type:function size:0x1C fn_804B7230 = .text:0x804B7230; // type:function size:0x40 fn_804B7270 = .text:0x804B7270; // type:function size:0xF8 @@ -42706,7 +42706,8 @@ lbl_8057942C = .sdata2:0x8057942C; // type:object size:0x4 data:float lbl_80579430 = .sdata2:0x80579430; // type:object size:0x4 data:float lbl_80579434 = .sdata2:0x80579434; // type:object size:0x4 data:float lbl_80579438 = .sdata2:0x80579438; // type:object size:0x4 data:float -lbl_8057943C = .sdata2:0x8057943C; // type:object size:0x8 data:float +lbl_8057943C = .sdata2:0x8057943C; // type:object size:0x4 data:float +lbl_80579440 = .sdata2:0x80579440; // type:object size:0x4 data:float lbl_80579444 = .sdata2:0x80579444; // type:object size:0x4 data:float lbl_80579448 = .sdata2:0x80579448; // type:object size:0x4 data:float lbl_8057944C = .sdata2:0x8057944C; // type:object size:0x4 data:float diff --git a/configure.py b/configure.py index 1fcfcec4..580db76a 100644 --- a/configure.py +++ b/configure.py @@ -2,15 +2,16 @@ LIBS = [ { "lib": "SS", - "mw_version": "1.7", + "mw_version": "Wii/1.7", "cflags": "-proc gekko -Cpp_exceptions off -RTTI off -O4,p -fp hard, -inline noauto, -enum int, -str reuse -I- -i include", "host": False, "objects": [ ["Runtime/__init_cpp_exceptions.cpp", False], - ["unk_flag_stuff.cpp", True], - ["d/d_base.cpp", True], - ["d/a/d_a_base.cpp", True], - ["toBeSorted/save_file.cpp", True], + ["toBeSorted/unk_flag_stuff.cpp", True], + ["toBeSorted/bitwise_flag_helper.cpp", True], + ["d/d_base.cpp", False], + ["d/a/d_a_base.cpp", False], + ["toBeSorted/save_file.cpp", False], ["toBeSorted/file_manager.cpp", False], ["toBeSorted/save_manager.cpp", False], ], @@ -145,7 +146,7 @@ if args.map: if args.debug: ldflags += " -g" n.variable("ldflags", ldflags) -mw_link_version = "1.7" +mw_link_version = "GC/3.0" n.variable("mw_version", mw_link_version) if os.name == "nt": exe = ".exe" diff --git a/include/toBeSorted/unk_flag_stuff.h b/include/toBeSorted/unk_flag_stuff.h index 30ba69f9..38d73fbd 100644 --- a/include/toBeSorted/unk_flag_stuff.h +++ b/include/toBeSorted/unk_flag_stuff.h @@ -3,12 +3,20 @@ #include "types.h" struct UnkFlagDefinition { - u8 shift; - u8 mask; + u8 mIndex; + u8 mShiftMask; }; -struct UnkFlagStuff { - u16 definitionsCount; - UnkFlagDefinition* definitions; +class UnkFlagStuff { + u16 mDefinitionsCount; + UnkFlagDefinition* mpDefinitions; +public: + u16 calculateMask(s32 shift); + void doNothing(u32 unused); + UnkFlagStuff(u16 count, UnkFlagDefinition* definitions); + void prepareIndexShiftMask(u16 counterIdx, u32 flagCount, u16* pIndex, u8* pShift, u16* pMask); + u16 maskForIdx(u16 index); + u32 getCounterOrFlag(u16 counterIdx, u16* pData, u32 flagCount); + void setCounterOrFlag(u16 counterIdx, u16* pData, u32 flagCount, u32 value); + u32 checkFlagValid(u16 counterIdx, u32 flagCount); }; - diff --git a/src/toBeSorted/bitwise_flag_helper.cpp b/src/toBeSorted/bitwise_flag_helper.cpp new file mode 100644 index 00000000..a2e2794b --- /dev/null +++ b/src/toBeSorted/bitwise_flag_helper.cpp @@ -0,0 +1,18 @@ +#include + +class BitwiseFlagHelper { + public: + bool checkFlag(u16 slot, u16 shift, u16 *pData); + void setFlag(u16 slot, u16 shift, u16 *pData); + void unsetFlag(u16 slot, u16 shift, u16 *pData); +}; + +bool BitwiseFlagHelper::checkFlag(u16 slot, u16 shift, u16 *pData) { + return (pData[slot] >> shift) & 1; +} +void BitwiseFlagHelper::setFlag(u16 slot, u16 shift, u16 *pData) { + pData[slot] |= (1 << shift); +} +void BitwiseFlagHelper::unsetFlag(u16 slot, u16 shift, u16 *pData) { + pData[slot] &= ~(1 << shift); +} \ No newline at end of file diff --git a/src/unk_flag_stuff.cpp b/src/toBeSorted/unk_flag_stuff.cpp similarity index 50% rename from src/unk_flag_stuff.cpp rename to src/toBeSorted/unk_flag_stuff.cpp index b68696dd..e755a7a5 100644 --- a/src/unk_flag_stuff.cpp +++ b/src/toBeSorted/unk_flag_stuff.cpp @@ -1,25 +1,6 @@ #pragma once -#include - -struct UnkFlagDefinition { - u8 index; - u8 shiftMask; -}; - -class UnkFlagStuff { -u16 definitionsCount; -UnkFlagDefinition* definitions; -public: - u16 calculateMask(s32 shift); - void doNothing(u32 unused); - UnkFlagStuff(u16 count, UnkFlagDefinition* definitions); - void prepareIndexShiftMask(u16 counterIdx, u32 unused, u16* indexPtr, u8* shiftPtr, u16* maskPtr); - u16 maskForIdx(u16 index); - u32 getCounterOrFlag(u16 counterIdx, u16* dataPtr, u32 param4); - void setCounterOrFlag(u16 counterIdx, u16* dataPtr, u32 flagCount, u32 value); - u32 unk(u16 param1, u32 param2); -}; +#include u16 UnkFlagStuff::calculateMask(s32 shift) { return (2 << (shift & 0xF)) - 1; @@ -28,21 +9,21 @@ u16 UnkFlagStuff::calculateMask(s32 shift) { void UnkFlagStuff::doNothing(u32 unused) {} UnkFlagStuff::UnkFlagStuff(u16 count, UnkFlagDefinition* definitions) { - this->definitionsCount = count; - this->definitions = definitions; + this->mDefinitionsCount = count; + this->mpDefinitions = definitions; } void UnkFlagStuff::prepareIndexShiftMask(u16 counterIdx, u32 unused, u16* indexPtr, u8* shiftPtr, u16* maskPtr) { doNothing(counterIdx); - *indexPtr = definitions[counterIdx].index; - *shiftPtr = definitions[counterIdx].shiftMask >> 4; - *maskPtr = calculateMask(definitions[counterIdx].shiftMask); + *indexPtr = mpDefinitions[counterIdx].mIndex; + *shiftPtr = mpDefinitions[counterIdx].mShiftMask >> 4; + *maskPtr = calculateMask(mpDefinitions[counterIdx].mShiftMask); } u16 UnkFlagStuff::maskForIdx(u16 index) { doNothing(index); - return calculateMask(definitions[index].shiftMask); + return calculateMask(mpDefinitions[index].mShiftMask); } u32 UnkFlagStuff::getCounterOrFlag(u16 counterIdx, u16* dataPtr, u32 param4) { @@ -62,21 +43,21 @@ void UnkFlagStuff::setCounterOrFlag(u16 counterIdx, u16* dataPtr, u32 flagCount, dataPtr[index] = (u16)(value << shift) | dataPtr[index]; } -inline bool check(int a, int b) { +inline bool isLessThan(int a, int b) { return a <= b; } -u32 UnkFlagStuff::unk(u16 param1, u32 param2) { - if (definitions == nullptr) { +u32 UnkFlagStuff::checkFlagValid(u16 counterIdx, u32 flagCount) { + if (mpDefinitions == nullptr) { return 0; } - if (definitionsCount <= param1 || definitions[param1].index == 0xFF) { + if (mDefinitionsCount <= counterIdx || mpDefinitions[counterIdx].mIndex == 0xFF) { return 0; } else { - if (!check(param2, definitions[param1].index)) { - return 1; - } else { + if (isLessThan(flagCount, mpDefinitions[counterIdx].mIndex)) { return 0; + } else { + return 1; } } } diff --git a/tools/dtk_version b/tools/dtk_version index 6da69f36..18d2649b 100644 --- a/tools/dtk_version +++ b/tools/dtk_version @@ -1 +1 @@ -v0.3.4 \ No newline at end of file +v0.3.5 \ No newline at end of file