From fb563beb9654b270230b833a75c4379c4eea7dc0 Mon Sep 17 00:00:00 2001 From: Swekka Date: Mon, 2 Jun 2025 20:30:38 +0200 Subject: [PATCH 01/36] d_a_obj_chest 93% --- .../SOUE01/rels/d_a_obj_chestNP/symbols.txt | 86 ++-- config/SOUE01/symbols.txt | 6 +- include/d/a/d_a_item.h | 3 +- include/d/a/obj/d_a_obj_chest.h | 64 ++- include/m/m_vec.h | 4 + include/toBeSorted/actor_event.h | 1 + src/REL/d/a/obj/d_a_obj_chest.cpp | 430 +++++++++++++++++- 7 files changed, 534 insertions(+), 60 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt b/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt index 10a99356..b88e98de 100644 --- a/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt @@ -8,21 +8,17 @@ __dt__24sFState_c<11dAcOChest_c>Fv = .text:0x000001F0; // type:function size:0x5 __dt__27sFStateFct_c<11dAcOChest_c>Fv = .text:0x00000250; // type:function size:0x6C __dt__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000002C0; // type:function size:0xA0 __dt__50sFStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000360; // type:function size:0xA4 -fn_326_410 = .text:0x00000410; // type:function size:0xC -fn_326_41C = .text:0x0000041C; // type:function size:0x4 -fn_326_420 = .text:0x00000420; // type:function size:0xC -fn_326_42C = .text:0x0000042C; // type:function size:0x4 -fn_326_430 = .text:0x00000430; // type:function size:0xC -fn_326_43C = .text:0x0000043C; // type:function size:0x4 -fn_326_440 = .text:0x00000440; // type:function size:0xC -fn_326_44C = .text:0x0000044C; // type:function size:0x4 -AcOChest__initModels = .text:0x00000450; // type:function size:0x1B0 -AcOChest__init = .text:0x00000600; // type:function size:0x26C +changeStateOpenCallback__11dAcOChest_cFP11dAcOChest_c = .text:0x00000410; // type:function size:0x10 +changeStateWaitCallback__11dAcOChest_cFP11dAcOChest_c = .text:0x00000420; // type:function size:0x10 +changeStateFailCallback__11dAcOChest_cFP11dAcOChest_c = .text:0x00000430; // type:function size:0x10 +changeStateWait2Callback__11dAcOChest_cFP11dAcOChest_c = .text:0x00000440; // type:function size:0x10 +createHeap__11dAcOChest_cFv = .text:0x00000450; // type:function size:0x1B0 +create__11dAcOChest_cFv = .text:0x00000600; // type:function size:0x26C changeState__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000870; // type:function size:0x10 -fn_326_880 = .text:0x00000880; // type:function size:0x8 -AcOChest__update = .text:0x00000890; // type:function size:0x98 +doDelete__11dAcOChest_cFv = .text:0x00000880; // type:function size:0x8 +actorExecute__11dAcOChest_cFv = .text:0x00000890; // type:function size:0x98 executeState__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000930; // type:function size:0x10 -AcOChest__draw = .text:0x00000940; // type:function size:0x50 +draw__11dAcOChest_cFv = .text:0x00000940; // type:function size:0x50 initializeState_Wait__11dAcOChest_cFv = .text:0x00000990; // type:function size:0x4 executeState_Wait__11dAcOChest_cFv = .text:0x000009A0; // type:function size:0x2C finalizeState_Wait__11dAcOChest_cFv = .text:0x000009D0; // type:function size:0x4 @@ -35,27 +31,25 @@ finalizeState_OrderOpenEventAfter__11dAcOChest_cFv = .text:0x00000B60; // type:f initializeState_FailEvent__11dAcOChest_cFv = .text:0x00000B70; // type:function size:0x4 executeState_FailEvent__11dAcOChest_cFv = .text:0x00000B80; // type:function size:0x4 finalizeState_FailEvent__11dAcOChest_cFv = .text:0x00000B90; // type:function size:0x4 -AcOChest__performInteraction = .text:0x00000BA0; // type:function size:0xE4 -fn_326_C90 = .text:0x00000C90; // type:function size:0x68 -fn_326_D00 = .text:0x00000D00; // type:function size:0x80 -fn_326_D80 = .text:0x00000D80; // type:function size:0x5C -fn_326_DE0 = .text:0x00000DE0; // type:function size:0x48 -fn_326_E30 = .text:0x00000E30; // type:function size:0x50 -AcOChest__getName = .text:0x00000E80; // type:function size:0xC -AcOChest__getSubtypeName = .text:0x00000E90; // type:function size:0x78 -AcOChest__getModelName = .text:0x00000F10; // type:function size:0xC -AcOChest__getOpenOrClose = .text:0x00000F20; // type:function size:0x34 -fn_326_F60 = .text:0x00000F60; // type:function size:0x78 -AcOChest__getSubtype = .text:0x00000FE0; // type:function size:0xC -AcOChest__hasBeenOpened = .text:0x00000FF0; // type:function size:0x8C -AcOChest__stateOpenUpdate2 = .text:0x00001080; // type:function size:0x39C -AcOChest__stateOpenEventEnter2 = .text:0x00001420; // type:function size:0x1C -fn_326_1440 = .text:0x00001440; // type:function size:0x1C -fn_326_1460 = .text:0x00001460; // type:function size:0x8 -fn_326_1470 = .text:0x00001470; // type:function size:0x28 -fn_326_1498 = .text:0x00001498; // type:function size:0x4 -fn_326_14A0 = .text:0x000014A0; // type:function size:0x28 -fn_326_14C8 = .text:0x000014C8; // type:function size:0x4 +doInteraction__11dAcOChest_cFl = .text:0x00000BA0; // type:function size:0xE4 +fn_326_C90__11dAcOChest_cFv = .text:0x00000C90; // type:function size:0x68 +changeStateOpen__11dAcOChest_cFv = .text:0x00000D00; // type:function size:0x80 +changeStateWait__11dAcOChest_cFv = .text:0x00000D80; // type:function size:0x5C +changeStateFail__11dAcOChest_cFv = .text:0x00000DE0; // type:function size:0x48 +changeStateWait2__11dAcOChest_cFv = .text:0x00000E30; // type:function size:0x50 +getName__11dAcOChest_cFv = .text:0x00000E80; // type:function size:0xC +getSubtypeName__11dAcOChest_cFv = .text:0x00000E90; // type:function size:0x78 +getModelName__11dAcOChest_cFv = .text:0x00000F10; // type:function size:0xC +getOpenOrClose__11dAcOChest_cFUc = .text:0x00000F20; // type:function size:0x34 +getDzbPlcName__11dAcOChest_cFv = .text:0x00000F60; // type:function size:0x78 +getSubtype__11dAcOChest_cFv = .text:0x00000FE0; // type:function size:0xC +hasBeenOpened__11dAcOChest_cFv = .text:0x00000FF0; // type:function size:0x8C +stateOpenUpdate2__11dAcOChest_cFv = .text:0x00001080; // type:function size:0x39C +stateOpenEventEnter2__11dAcOChest_cFv = .text:0x00001420; // type:function size:0x1C +fn_326_1440__11dAcOChest_cFv = .text:0x00001440; // type:function size:0x1C +hasInsideModel__11dAcOChest_cFv = .text:0x00001460; // type:function size:0x8 +fn_326_1470__11dAcOChest_cFv = .text:0x00001470; // type:function size:0x2C +fn_326_14A0__11dAcOChest_cFv = .text:0x000014A0; // type:function size:0x2C __dt__11dAcOChest_cFv = .text:0x000014D0; // type:function size:0xFC getStateID__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000015D0; // type:function size:0x10 build__27sFStateFct_c<11dAcOChest_c>FRC12sStateIDIf_c = .text:0x000015E0; // type:function size:0x60 @@ -86,28 +80,28 @@ lbl_326_data_10 = .data:0x00000010; // type:object size:0x10 lbl_326_data_20 = .data:0x00000020; // type:object size:0x4 data:4byte lbl_326_data_24 = .data:0x00000024; // type:object size:0xC lbl_326_data_30 = .data:0x00000030; // type:object size:0x8 data:4byte -AcOChest__OPEN_WARDROBE_INTERACTION = .data:0x00000038; // type:object size:0x30 align:4 data:float +OPEN_WARDROBE_INTERACTION__11dAcOChest_c = .data:0x00000038; // type:object size:0x30 align:4 data:float g_profile_OBJ_CHEST = .data:0x00000068; // type:object size:0x10 lbl_326_data_78 = .data:0x00000078; // type:object size:0x10 lbl_326_data_88 = .data:0x00000088; // type:object size:0x10 lbl_326_data_98 = .data:0x00000098; // type:object size:0x10 lbl_326_data_A8 = .data:0x000000A8; // type:object size:0x10 -AcOChest__INSIDE_MODEL_NAMES = .data:0x000000B8; // type:object size:0x10 +INSIDE_MODEL_NAMES__11dAcOChest_c = .data:0x000000B8; // type:object size:0x10 lbl_326_data_C8 = .data:0x000000C8; // type:object size:0xC data:string lbl_326_data_D4 = .data:0x000000D4; // type:object size:0x1C lbl_326_data_F0 = .data:0x000000F0; // type:object size:0x8 lbl_326_data_F8 = .data:0x000000F8; // type:object size:0x28 lbl_326_data_120 = .data:0x00000120; // type:object size:0xC lbl_326_data_12C = .data:0x0000012C; // type:object size:0xC -AcOChest__vtable = .data:0x00000138; // type:object size:0x80 -lbl_326_data_1B8 = .data:0x000001B8; // type:object size:0x30 -lbl_326_data_1E8 = .data:0x000001E8; // type:object size:0x30 -lbl_326_data_218 = .data:0x00000218; // type:object size:0x18 -lbl_326_data_230 = .data:0x00000230; // type:object size:0x130 -lbl_326_data_360 = .data:0x00000360; // type:object size:0x34 +__vt__11dAcOChest_c = .data:0x00000138; // type:object size:0x80 +__vt__50sFStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c> = .data:0x000001B8; // type:object size:0x30 +__vt__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000001E8; // type:object size:0x30 +__vt__27sFStateFct_c<11dAcOChest_c> = .data:0x00000218; // type:object size:0x18 +__vt__24sFState_c<11dAcOChest_c> = .data:0x00000230; // type:object size:0x130 +__vt__26sFStateID_c<11dAcOChest_c> = .data:0x00000360; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global lbl_326_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte -AcOChest__STATE_WAIT = .bss:0x00000018; // type:object size:0x40 data:4byte -AcOChest__STATE_OPEN_EVENT = .bss:0x00000058; // type:object size:0x40 data:4byte -AcOChest__STATE_FAIL_EVENT = .bss:0x00000098; // type:object size:0x40 data:4byte -AcOChest__STATE_ORDER_OPEN_EVENT_AFTER = .bss:0x000000D8; // type:object size:0x30 data:4byte +StateID_Wait__11dAcOChest_c = .bss:0x00000018; // type:object size:0x30 data:4byte +StateID_OpenEvent__11dAcOChest_c = .bss:0x00000058; // type:object size:0x30 data:4byte +StateID_FailEvent__11dAcOChest_c = .bss:0x00000098; // type:object size:0x30 data:4byte +StateID_OrderOpenEventAfter__11dAcOChest_c = .bss:0x000000D8; // type:object size:0x30 data:4byte diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index baf51582..9da56ed6 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -3526,7 +3526,7 @@ ActorEventRelated__getSomeEventRelatedNumber = .text:0x8009CFA0; // type:functio isAdvance__17ActorEventRelatedFv = .text:0x8009D020; // type:function size:0x34 advanceNext__17ActorEventRelatedFv = .text:0x8009D060; // type:function size:0x50 ActorEventRelated__getSingleIntData2 = .text:0x8009D0B0; // type:function size:0x8C -ActorEventRelated__getSingleIntData = .text:0x8009D140; // type:function size:0x8C +getSingleIntData__17ActorEventRelatedFPiUlUl = .text:0x8009D140; // type:function size:0x8C getSingleFloatData__17ActorEventRelatedFPfUlUl = .text:0x8009D1D0; // type:function size:0x8C getSingleVecData__17ActorEventRelatedFP7mVec3_cUlUl = .text:0x8009D260; // type:function size:0x9C ActorEventRelated__getIntDataWithDefault = .text:0x8009D300; // type:function size:0x98 @@ -13369,7 +13369,7 @@ giveItem22 = .text:0x802490F0; // type:function size:0x4 fn_80249100 = .text:0x80249100; // type:function size:0x44 giveItem3 = .text:0x80249150; // type:function size:0x60 fn_802491B0 = .text:0x802491B0; // type:function size:0x54 -AcItem__giveItem = .text:0x80249210; // type:function size:0x84 +giveItem__9dAcItem_cF7ITEM_IDii = .text:0x80249210; // type:function size:0x84 fn_802492A0 = .text:0x802492A0; // type:function size:0x78 fn_80249320 = .text:0x80249320; // type:function size:0x78 fn_802493A0 = .text:0x802493A0; // type:function size:0x3C8 @@ -17268,7 +17268,7 @@ ModuleUnresolved = .text:0x802DFCD0; // type:function size:0x4 ModuleConstructorsX = .text:0x802DFCE0; // type:function size:0x44 ModuleDestructorsX = .text:0x802DFD30; // type:function size:0x44 cLib__memSet = .text:0x802DFD80; // type:function size:0x4 -cLib__addCalcPos = .text:0x802DFD90; // type:function size:0x234 +addCalcPos__4cLibFP7mVec3_cRC7mVec3_cfff = .text:0x802DFD90; // type:function size:0x234 addCalcPosXZ__4cLibFP7mVec3_cRC7mVec3_cfff = .text:0x802DFFD0; // type:function size:0x1B8 cLib__addCalcPos2 = .text:0x802E0190; // type:function size:0x13C cLib__addCalcPosXZ2 = .text:0x802E02D0; // type:function size:0xF8 diff --git a/include/d/a/d_a_item.h b/include/d/a/d_a_item.h index 997683c8..f1653c64 100644 --- a/include/d/a/d_a_item.h +++ b/include/d/a/d_a_item.h @@ -16,8 +16,8 @@ #include "nw4r/ut/ut_Color.h" #include "s/s_State.hpp" #include "toBeSorted/actor_event.h" -#include "toBeSorted/dowsing_target.h" #include "toBeSorted/d_emitter.h" +#include "toBeSorted/dowsing_target.h" class dAcItem_0xB34 { public: @@ -46,6 +46,7 @@ public: static void spawnItem(u16 item, u32 room, const mVec3_c &pos, const mAng3_c &rot, u32 params, u32 arg); static void spawnDrop(u16 item, u32 room, const mVec3_c &pos, const mAng3_c &rot); + static void giveItem(ITEM_ID, int, int); static u32 checkFlag(u32 flag); static bool hasItem(u32 flag) { return checkFlag(flag); diff --git a/include/d/a/obj/d_a_obj_chest.h b/include/d/a/obj/d_a_obj_chest.h index 52752c20..bf169d5b 100644 --- a/include/d/a/obj/d_a_obj_chest.h +++ b/include/d/a/obj/d_a_obj_chest.h @@ -1,22 +1,80 @@ #ifndef D_A_OBJ_CHEST_H #define D_A_OBJ_CHEST_H +#include "common.h" #include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_w.h" +#include "m/m3d/m_smdl.h" +#include "nw4r/g3d/res/g3d_resfile.h" #include "s/s_State.hpp" -#include "s/s_StateMgr.hpp" +#include "toBeSorted/actor_event.h" +#include "toBeSorted/attention.h" +#include "toBeSorted/d_d3d.h" +#include "toBeSorted/dowsing_target.h" class dAcOChest_c : public dAcObjBase_c { public: - dAcOChest_c() : mStateMgr(*this, sStateID::null) {} + dAcOChest_c() + : mStateMgr(*this, sStateID::null), mEvent(*this, nullptr), mDowsingTarget(this, DowsingTarget::SLOT_NONE) {} virtual ~dAcOChest_c() {} + static void changeStateOpenCallback(dAcOChest_c *); + static void changeStateWaitCallback(dAcOChest_c *); + static void changeStateFailCallback(dAcOChest_c *); + static void changeStateWait2Callback(dAcOChest_c *); + + virtual bool createHeap() override; + virtual int create() override; + virtual int draw() override; + virtual int doDelete() override; + virtual int actorExecute() override; + STATE_FUNC_DECLARE(dAcOChest_c, Wait); STATE_FUNC_DECLARE(dAcOChest_c, OpenEvent); STATE_FUNC_DECLARE(dAcOChest_c, FailEvent); STATE_FUNC_DECLARE(dAcOChest_c, OrderOpenEventAfter); + virtual void doInteraction(s32) override; + + void fn_326_C90(); + void changeStateOpen(); + void changeStateWait(); + void changeStateFail(); + void changeStateWait2(); + char *getName(); + char *getSubtypeName(); + char *getModelName(); + char *getOpenOrClose(u8); + char *getDzbPlcName(); + s32 getSubtype(); + bool hasBeenOpened(); + void stateOpenUpdate2(); + void stateOpenEventEnter2(); + void fn_326_1440(); + bool hasInsideModel(); + void fn_326_1470(); + void fn_326_14A0(); + private: - /* 0x??? */ STATE_MGR_DECLARE(dAcOChest_c); + /* 0x330 */ nw4r::g3d::ResFile mResFile; + /* 0x334 */ d3d::AnmMdlWrapper mAnmMdl; + /* 0x3A4 */ m3d::smdl_c mMdl; + /* 0x3C0 */ dBgW mBgW; + /* 0x5D0 */ STATE_MGR_DECLARE(dAcOChest_c); + /* 0x60C */ ActorEventRelated mEvent; + /* 0x65C */ bool mGaveItem; + /* 0x65D */ bool mField_0x65D; + /* 0x65E */ bool mHasInsideModel; + /* 0x65F */ bool mIsLinksCloset; + /* 0x660 */ DowsingTarget mDowsingTarget; + + static const float OPEN_WARDROBE_INTERACTION_FIELD_0x24; + static const char *CHEST_OPEN; + static const char *CHEST_OPEN_AFTER; + static const char *CHEST_FAIL; + static InteractionTargetDef OPEN_WARDROBE_INTERACTION; + static char *INSIDE_MODEL_NAMES[4]; + static const u32 unused; }; #endif diff --git a/include/m/m_vec.h b/include/m/m_vec.h index 0fb52aea..1aafe812 100644 --- a/include/m/m_vec.h +++ b/include/m/m_vec.h @@ -235,6 +235,10 @@ public: f32 squareMagXZ() const { return x * x + z * z; } + f32 squareDistanceToXZ(const mVec3_c &other) const { + return (*this - other).squareMagXZ(); + } + void rotX(const mAng &angle); void rotY(const mAng &angle); void rotZ(const mAng &angle); diff --git a/include/toBeSorted/actor_event.h b/include/toBeSorted/actor_event.h index 5a691f53..afbc9ba1 100644 --- a/include/toBeSorted/actor_event.h +++ b/include/toBeSorted/actor_event.h @@ -17,6 +17,7 @@ public: void advanceNext(); bool isAdvance(); + int getSingleIntData(int *result, u32 code, u32); int getSingleFloatData(f32 *result, u32 code, u32); int getSingleVecData(mVec3_c *result, u32 code, u32); diff --git a/src/REL/d/a/obj/d_a_obj_chest.cpp b/src/REL/d/a/obj/d_a_obj_chest.cpp index 38ad9d16..d4b7060a 100644 --- a/src/REL/d/a/obj/d_a_obj_chest.cpp +++ b/src/REL/d/a/obj/d_a_obj_chest.cpp @@ -1,21 +1,437 @@ #include "d/a/obj/d_a_obj_chest.h" +#include "c/c_lib.h" +#include "common.h" +#include "d/a/d_a_item.h" +#include "d/a/d_a_itembase.h" +#include "d/a/d_a_player.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_s.h" +#include "d/d_message.h" +#include "d/d_sc_game.h" +#include "d/flag/sceneflag_manager.h" +#include "d/flag/storyflag_manager.h" +#include "f/f_base.h" +#include "m/m3d/m_fanm.h" +#include "m/m3d/m_mdl.h" +#include "m/m_angle.h" +#include "m/m_vec.h" +#include "nw4r/g3d/res/g3d_resfile.h" +#include "nw4r/g3d/res/g3d_resmdl.h" +#include "rvl/MTX/mtx.h" +#include "s/s_Math.h" +#include "toBeSorted/attention.h" +#include "toBeSorted/dowsing_target.h" +#include "toBeSorted/event.h" +#include "toBeSorted/event_manager.h" + +const char *dAcOChest_c::CHEST_OPEN = "ChestOpen"; +const char *dAcOChest_c::CHEST_OPEN_AFTER = "ChestOpenAfter"; +const char *dAcOChest_c::CHEST_FAIL = "ChestFail"; + +const float dAcOChest_c::OPEN_WARDROBE_INTERACTION_FIELD_0x24 = 10.0f; + +InteractionTargetDef dAcOChest_c::OPEN_WARDROBE_INTERACTION = {0, 3, 1, OPEN, 0, 140.0f, + 40.0f, 40.0f, -100.0f, 100.0f, 50.0f, 1.0f}; + SPECIAL_ACTOR_PROFILE(OBJ_CHEST, dAcOChest_c, fProfile::OBJ_CHEST, 0x13E, 0, 3); +char *dAcOChest_c::INSIDE_MODEL_NAMES[4] = { + "TansuInsideA", + "TansuInsideB", + "TansuInsideC", + "TansuInsideD", +}; + STATE_DEFINE(dAcOChest_c, Wait); STATE_DEFINE(dAcOChest_c, OpenEvent); STATE_DEFINE(dAcOChest_c, FailEvent); STATE_DEFINE(dAcOChest_c, OrderOpenEventAfter); +void dAcOChest_c::changeStateOpenCallback(dAcOChest_c *chest) { + if (chest == nullptr) { + return; + } + chest->changeStateOpen(); +} + +void dAcOChest_c::changeStateWaitCallback(dAcOChest_c *chest) { + if (chest == nullptr) { + return; + } + chest->changeStateWait(); +} + +void dAcOChest_c::changeStateFailCallback(dAcOChest_c *chest) { + if (chest == nullptr) { + return; + } + chest->changeStateFail(); +} + +void dAcOChest_c::changeStateWait2Callback(dAcOChest_c *chest) { + if (chest == nullptr) { + return; + } + chest->changeStateWait2(); +} + +bool dAcOChest_c::createHeap() { + char *name = getName(); + char *subtype = getSubtypeName(); + char *modelName = getModelName(); + char *openOrClose = getOpenOrClose(0); + + void *mdlData = getOarcResFile(name); + void *anmData = getOarcResFile(modelName); + + TRY_CREATE(mAnmMdl.create3(*this, mdlData, anmData, subtype, openOrClose, 0x120)); + if (!getFromParams(0x1C, 0xFF)) { + mAnmMdl.getModel().setPriorityDraw(0x1C, 0xFFFFFFFF); + } + if ((s32)getFromParams(0x10, 0xFF) != 0xFF) { + void *data2 = getOarcResFile("TansuInside"); + mResFile = nw4r::g3d::ResFile(data2); + + nw4r::g3d::ResMdl mdl = mResFile.GetResMdl(INSIDE_MODEL_NAMES[getFromParams(0x10, 0xFF)]); + if (!mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr)) { + return NOT_READY; + } + } + char *dzbPlcName = getDzbPlcName(); + void *dzb = getOarcDZB(name, dzbPlcName); + void *plc = getOarcPLC(name, dzbPlcName); + fn_326_C90(); + bool ok = !mBgW.Set((cBgD_t *)dzb, (PLC *)plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale); + if (!ok) { + return NOT_READY; + } + return mBgW.InitMapStuff(&heap_allocator); +} + +int dAcOChest_c::create() { + if (!initAllocatorWork1Heap(0x4000, "dAcOChest_c::m_allocator", 0x20)) { + return FAILED; + } + mBgW.Lock(); + dBgS::GetInstance()->Regist(&mBgW, this); + dBgS::GetInstance()->RegistBg(&mBgW, this); + + forwardAccel = 0.0f; + forwardMaxSpeed = 0.0f; + + mStateMgr.changeState(StateID_Wait); + + boundingBox.Set(mVec3_c(-200.0f, -0.0f, -100.0f), mVec3_c(200.0f, 500.0f, 100.0f)); + + mAnmMdl.setAnm(getOpenOrClose(0), m3d::PLAY_MODE_4); + mAnmMdl.setRate(0.0f); + + poscopy2.y = position.y + 150.0f; + poscopy3 = poscopy2; + if ((s32)getFromParams(0x10, 0xFF) != 0xFF) { + mMdl.setLocalMtx(mWorldMtx); + } + + if (dScGame_c::isCurrentStage("F001r") && roomid == 1 && 900.0f < position.x && position.x < 1000.0f && + -50.0f < position.y && position.y < 50.0f && -2730.0f < position.z && position.z < -2630.0f) { + mIsLinksCloset = true; + } + + mVec3_c dowsingPos(0.0f, 150.0f, 0.0f); + ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, /* ITEM_LANAYRU_SOTH | ITEM_EVIL_CRYSTAL */ 0xFF); + bool isTreasure = dAcItem_c::isTreasure(itemId); + if (isTreasure) { + mDowsingTarget.initialize(DowsingTarget::SLOT_TREASURE, 0, &dowsingPos, 0.0f); + } else if (dAcItem_c::isRupee(itemId)) { + mDowsingTarget.initialize(DowsingTarget::SLOT_RUPEE, 0, &dowsingPos, 0.0f); + } + + return SUCCEEDED; +} + +int dAcOChest_c::doDelete() { + return SUCCEEDED; +} +int dAcOChest_c::actorExecute() { + ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, /* ITEM_LANAYRU_SOTH | ITEM_EVIL_CRYSTAL */ 0xFF); + if (!hasBeenOpened() && (dAcItem_c::isTreasure(itemId) || dAcItem_c::isRupee(itemId))) { + mDowsingTarget.doRegister(); + } else { + mDowsingTarget.doUnregister(); + } + mStateMgr.executeState(); + fn_326_C90(); + return SUCCEEDED; +} + +int dAcOChest_c::draw() { + drawModelType1(&mAnmMdl.getModel()); + if (hasInsideModel()) { + drawModelType1(&mMdl); + } + return SUCCEEDED; +} + void dAcOChest_c::initializeState_Wait() {} -void dAcOChest_c::executeState_Wait() {} + +void dAcOChest_c::executeState_Wait() { + OPEN_WARDROBE_INTERACTION.field_0x24 = OPEN_WARDROBE_INTERACTION_FIELD_0x24; + AttentionManager::GetInstance()->addTarget(*this, OPEN_WARDROBE_INTERACTION, 0, (mVec3_c *)0); +} + void dAcOChest_c::finalizeState_Wait() {} -void dAcOChest_c::initializeState_OpenEvent() {} -void dAcOChest_c::executeState_OpenEvent() {} + +void dAcOChest_c::initializeState_OpenEvent() { + stateOpenEventEnter2(); +} + +void dAcOChest_c::executeState_OpenEvent() { + stateOpenUpdate2(); +} + void dAcOChest_c::finalizeState_OpenEvent() {} -void dAcOChest_c::initializeState_FailEvent() {} -void dAcOChest_c::executeState_FailEvent() {} -void dAcOChest_c::finalizeState_FailEvent() {} + void dAcOChest_c::initializeState_OrderOpenEventAfter() {} -void dAcOChest_c::executeState_OrderOpenEventAfter() {} + +void dAcOChest_c::executeState_OrderOpenEventAfter() { + if (mGaveItem && EventManager::sInstance->isInEvent0Or7()) { + char *name = getName(); + void *data = dAcObjBase_c::getOarcZev(name); + Event event(CHEST_OPEN_AFTER, data, 400, 0x100001, nullptr, (void *)changeStateWaitCallback); + mEvent.scheduleEvent(event, 0); + } else if (EventManager::sInstance->isInEvent(this, CHEST_OPEN_AFTER)) { + ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, /* ITEM_LANAYRU_SOTH | ITEM_EVIL_CRYSTAL */ 0xFF); + if (dAcItem_c::isRupee(itemId)) { + dMessage_c::getInstance()->setField_0x2FC(0xFFFFFFFF); + } + mField_0x65D = true; + stateOpenUpdate2(); + mStateMgr.changeState(StateID_OpenEvent); + } +} void dAcOChest_c::finalizeState_OrderOpenEventAfter() {} + +void dAcOChest_c::initializeState_FailEvent() { + stateOpenEventEnter2(); +} + +void dAcOChest_c::executeState_FailEvent() { + stateOpenUpdate2(); +} + +void dAcOChest_c::finalizeState_FailEvent() {} + +void dAcOChest_c::doInteraction(s32 _unused) { + char *name = getName(); + void *data = dAcObjBase_c::getOarcZev(name); + + if (hasBeenOpened()) { + Event event(CHEST_FAIL, data, 100, 0x100001, (void *)changeStateFailCallback, (void *)changeStateWait2Callback); + mEvent.scheduleEvent(event, 0); + } else { + Event event(CHEST_OPEN, data, 100, 0x100001, (void *)changeStateOpenCallback, nullptr); + mEvent.scheduleEvent(event, 0); + } +} + +void dAcOChest_c::fn_326_C90() { + PSMTXTrans(mWorldMtx.m, position.x, position.y, position.z); + mWorldMtx.ZXYrotM(rotation); + mAnmMdl.getModel().setLocalMtx(mWorldMtx); + mAnmMdl.getModel().calc(false); +} + +void dAcOChest_c::changeStateOpen() { + if (mField_0x65D) { + return; + } + u32 flag = getFromParams(0, 0xFF); + if (flag < 0xFF) { + SceneflagManager::sInstance->setFlag(roomid, flag); + } + fn_326_1470(); + mStateMgr.changeState(StateID_OpenEvent); +} + +void dAcOChest_c::changeStateWait() { + if (!mField_0x65D) { + return; + } + fn_326_1440(); + fn_326_14A0(); + mStateMgr.changeState(StateID_Wait); +} + +void dAcOChest_c::changeStateFail() { + fn_326_1470(); + mStateMgr.changeState(StateID_FailEvent); +} + +void dAcOChest_c::changeStateWait2() { + fn_326_1440(); + fn_326_14A0(); + mStateMgr.changeState(StateID_Wait); +} + +char *dAcOChest_c::getName() { + return "Tansu"; +} + +char *dAcOChest_c::getSubtypeName() { + switch (getSubtype()) { + case 0: return "TansuA"; + case 1: return "TansuB"; + case 2: return "TansuC"; + case 3: return "TansuD"; + } + return "TansuA"; +} + +char *dAcOChest_c::getModelName() { + return "Tansu"; +} + +char *dAcOChest_c::getOpenOrClose(u8 openOrClose) { + switch (openOrClose) { + case 0: return "TansuOpen"; + case 1: return "TansuClose"; + } + return nullptr; +} + +char *dAcOChest_c::getDzbPlcName() { + switch (getSubtype()) { + case 0: return "TansuA"; + case 1: return "TansuB"; + case 2: return "TansuC"; + case 3: return "TansuD"; + } + return "TansuA"; +} + +s32 dAcOChest_c::getSubtype() { + return getFromParams(0x1C, 0xFF); +} + +bool dAcOChest_c::hasBeenOpened() { + if ((s32)getFromParams(8, 0xFF) == 0xFF) { + return true; + } + u32 flag = getFromParams(0, 0xFF); + if (flag >= 0xFF) { + return true; + } + return (flag < 0xFF) && SceneflagManager::sInstance->checkBoolFlag(roomid, flag); +} + +void dAcOChest_c::stateOpenUpdate2() { + dAcPy_c *player = dAcPy_c::LINK; + switch (mEvent.getCurrentEventCommand()) { + case 'wait': { + mEvent.advanceNext(); + break; + } + case 'move': { + if (mEvent.isAdvance()) { + int i; + mEvent.getSingleIntData(&i, 'type', 0); + if (i == 1) { + char *openOrClose = getOpenOrClose(0); + mAnmMdl.setAnm(openOrClose, m3d::PLAY_MODE_4); + mAnmMdl.setFrame(0.0f); + mAnmMdl.setRate(1.0f); + mAnmMdl.getAnm().setPlayState(m3d::PLAY_MODE_1); + } else if (i == 2) { + char *openOrClose = getOpenOrClose(1); + mAnmMdl.setAnm(openOrClose, m3d::PLAY_MODE_4); + mAnmMdl.setFrame(0.0f); + mAnmMdl.setRate(1.0f); + mAnmMdl.getAnm().setPlayState(m3d::PLAY_MODE_1); + } + } else { + mAnmMdl.play(); + if (mAnmMdl.getAnm().isStop()) { + mEvent.advanceNext(); + } + } + break; + } + case 'comp': { + mVec3_c targetPosition; + mVec3_c playerPosition; + mVec3_c t(0.0f, 0.0f, 122.35f); + s32 targetAngle = 0x7FFF; + targetPosition = t; + targetAngle += rotation.y; + targetPosition.rotY(rotation.y); + targetPosition += position; + + if (player != nullptr) { + playerPosition = player->position; + cLib::addCalcPos(&playerPosition, targetPosition, 0.25f, 200.0f, 0.0f); + s16 YRot = rotation.y; + sLib::addCalcAngle(&YRot, targetAngle, 4, 0x7FFF, 0); + + if ((targetPosition.squareDistanceToXZ(playerPosition) < 25.0f) && + mAng::abs(YRot - mAng(targetAngle)) < 0xb6) { + playerPosition = targetPosition; + YRot = targetAngle; + mEvent.advanceNext(); + } + player->setPosYRot(playerPosition, YRot, 0, 0, 0); + } else { + mEvent.advanceNext(); + } + break; + } + case 'item': { + ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, /* ITEM_LANAYRU_SOTH | ITEM_EVIL_CRYSTAL */ 0xFF); + dAcItem_c::giveItem(itemId, 0, 0); + mGaveItem = true; + mStateMgr.changeState(StateID_OrderOpenEventAfter); + mEvent.advanceNext(); + break; + } + case '????': { + break; + } + default: { + mEvent.advanceNext(); + } + } +} + +void dAcOChest_c::stateOpenEventEnter2() { + if ((s32)getFromParams(0x10, 0xFF) == 0xFF) { + return; + } + mHasInsideModel = true; +} + +void dAcOChest_c::fn_326_1440() { + if ((s32)getFromParams(0x10, 0xFF) == 0xFF) { + return; + } + mHasInsideModel = false; +} + +bool dAcOChest_c::hasInsideModel() { + return mHasInsideModel; +} + +void dAcOChest_c::fn_326_1470() { + if (!mIsLinksCloset) { + return; + } + StoryflagManager::sInstance->setFlag(0x331); +} + +void dAcOChest_c::fn_326_14A0() { + if (!mIsLinksCloset) { + return; + } + StoryflagManager::sInstance->unsetFlag(0x331); +} + +const u32 dAcOChest_c::unused = 0; From de03dd77554cf8b42405c8686e404ad2c9d3fa51 Mon Sep 17 00:00:00 2001 From: Swekka Date: Wed, 4 Jun 2025 00:41:56 +0200 Subject: [PATCH 02/36] add scope:local where necessary --- .../SOUE01/rels/d_a_obj_chestNP/symbols.txt | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt b/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt index b88e98de..c58b0f9b 100644 --- a/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt @@ -72,27 +72,27 @@ isSameName__26sFStateID_c<11dAcOChest_c>CFPCc = .text:0x00001B40; // type:functi _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_326_rodata_0 = .rodata:0x00000000; // type:object size:0x3C data:float -lbl_326_rodata_3C = .rodata:0x0000003C; // type:object size:0x18 align:4 data:float -lbl_326_data_0 = .data:0x00000000; // type:object size:0xC data:4byte -lbl_326_data_C = .data:0x0000000C; // type:object size:0x4 data:4byte -lbl_326_data_10 = .data:0x00000010; // type:object size:0x10 -lbl_326_data_20 = .data:0x00000020; // type:object size:0x4 data:4byte -lbl_326_data_24 = .data:0x00000024; // type:object size:0xC -lbl_326_data_30 = .data:0x00000030; // type:object size:0x8 data:4byte +lbl_326_rodata_0 = .rodata:0x00000000; // type:object size:0x3C data:float scope:local +lbl_326_rodata_3C = .rodata:0x0000003C; // type:object size:0x18 align:4 data:float scope:local +lbl_326_data_0 = .data:0x00000000; // type:object size:0xC data:4byte scope:local +lbl_326_data_C = .data:0x0000000C; // type:object size:0x4 data:4byte scope:local +lbl_326_data_10 = .data:0x00000010; // type:object size:0x10 scope:local +lbl_326_data_20 = .data:0x00000020; // type:object size:0x4 data:4byte scope:local +lbl_326_data_24 = .data:0x00000024; // type:object size:0xC scope:local +lbl_326_data_30 = .data:0x00000030; // type:object size:0x8 data:4byte scope:local OPEN_WARDROBE_INTERACTION__11dAcOChest_c = .data:0x00000038; // type:object size:0x30 align:4 data:float g_profile_OBJ_CHEST = .data:0x00000068; // type:object size:0x10 -lbl_326_data_78 = .data:0x00000078; // type:object size:0x10 -lbl_326_data_88 = .data:0x00000088; // type:object size:0x10 -lbl_326_data_98 = .data:0x00000098; // type:object size:0x10 -lbl_326_data_A8 = .data:0x000000A8; // type:object size:0x10 +lbl_326_data_78 = .data:0x00000078; // type:object size:0x10 scope:local +lbl_326_data_88 = .data:0x00000088; // type:object size:0x10 scope:local +lbl_326_data_98 = .data:0x00000098; // type:object size:0x10 scope:local +lbl_326_data_A8 = .data:0x000000A8; // type:object size:0x10 scope:local INSIDE_MODEL_NAMES__11dAcOChest_c = .data:0x000000B8; // type:object size:0x10 -lbl_326_data_C8 = .data:0x000000C8; // type:object size:0xC data:string -lbl_326_data_D4 = .data:0x000000D4; // type:object size:0x1C -lbl_326_data_F0 = .data:0x000000F0; // type:object size:0x8 -lbl_326_data_F8 = .data:0x000000F8; // type:object size:0x28 -lbl_326_data_120 = .data:0x00000120; // type:object size:0xC -lbl_326_data_12C = .data:0x0000012C; // type:object size:0xC +lbl_326_data_C8 = .data:0x000000C8; // type:object size:0xC data:string scope:local +lbl_326_data_D4 = .data:0x000000D4; // type:object size:0x1C scope:local +lbl_326_data_F0 = .data:0x000000F0; // type:object size:0x8 scope:local +lbl_326_data_F8 = .data:0x000000F8; // type:object size:0x28 scope:local +lbl_326_data_120 = .data:0x00000120; // type:object size:0xC scope:local +lbl_326_data_12C = .data:0x0000012C; // type:object size:0xC scope:local __vt__11dAcOChest_c = .data:0x00000138; // type:object size:0x80 __vt__50sFStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c> = .data:0x000001B8; // type:object size:0x30 __vt__80sStateMgr_c<11dAcOChest_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000001E8; // type:object size:0x30 From 5d1e2ef75906021810307e52c7220262cbce5118 Mon Sep 17 00:00:00 2001 From: Swekka Date: Wed, 4 Jun 2025 14:55:48 +0200 Subject: [PATCH 03/36] remove unnecessary comments --- src/REL/d/a/obj/d_a_obj_chest.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/REL/d/a/obj/d_a_obj_chest.cpp b/src/REL/d/a/obj/d_a_obj_chest.cpp index d4b7060a..f22d22b5 100644 --- a/src/REL/d/a/obj/d_a_obj_chest.cpp +++ b/src/REL/d/a/obj/d_a_obj_chest.cpp @@ -139,7 +139,7 @@ int dAcOChest_c::create() { } mVec3_c dowsingPos(0.0f, 150.0f, 0.0f); - ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, /* ITEM_LANAYRU_SOTH | ITEM_EVIL_CRYSTAL */ 0xFF); + ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, 0xFF); bool isTreasure = dAcItem_c::isTreasure(itemId); if (isTreasure) { mDowsingTarget.initialize(DowsingTarget::SLOT_TREASURE, 0, &dowsingPos, 0.0f); @@ -154,7 +154,7 @@ int dAcOChest_c::doDelete() { return SUCCEEDED; } int dAcOChest_c::actorExecute() { - ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, /* ITEM_LANAYRU_SOTH | ITEM_EVIL_CRYSTAL */ 0xFF); + ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, 0xFF); if (!hasBeenOpened() && (dAcItem_c::isTreasure(itemId) || dAcItem_c::isRupee(itemId))) { mDowsingTarget.doRegister(); } else { @@ -201,7 +201,7 @@ void dAcOChest_c::executeState_OrderOpenEventAfter() { Event event(CHEST_OPEN_AFTER, data, 400, 0x100001, nullptr, (void *)changeStateWaitCallback); mEvent.scheduleEvent(event, 0); } else if (EventManager::sInstance->isInEvent(this, CHEST_OPEN_AFTER)) { - ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, /* ITEM_LANAYRU_SOTH | ITEM_EVIL_CRYSTAL */ 0xFF); + ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, 0xFF); if (dAcItem_c::isRupee(itemId)) { dMessage_c::getInstance()->setField_0x2FC(0xFFFFFFFF); } @@ -386,7 +386,7 @@ void dAcOChest_c::stateOpenUpdate2() { break; } case 'item': { - ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, /* ITEM_LANAYRU_SOTH | ITEM_EVIL_CRYSTAL */ 0xFF); + ITEM_ID itemId = (ITEM_ID)getFromParams(0x8, 0xFF); dAcItem_c::giveItem(itemId, 0, 0); mGaveItem = true; mStateMgr.changeState(StateID_OrderOpenEventAfter); From eb97bbfbc75ba61bf7af465a41eaed992ceebdb3 Mon Sep 17 00:00:00 2001 From: Swekka Date: Wed, 4 Jun 2025 15:10:48 +0200 Subject: [PATCH 04/36] variable naming and formatting --- src/REL/d/a/obj/d_a_obj_chest.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/REL/d/a/obj/d_a_obj_chest.cpp b/src/REL/d/a/obj/d_a_obj_chest.cpp index f22d22b5..5bc9d6c1 100644 --- a/src/REL/d/a/obj/d_a_obj_chest.cpp +++ b/src/REL/d/a/obj/d_a_obj_chest.cpp @@ -84,20 +84,20 @@ bool dAcOChest_c::createHeap() { void *mdlData = getOarcResFile(name); void *anmData = getOarcResFile(modelName); - TRY_CREATE(mAnmMdl.create3(*this, mdlData, anmData, subtype, openOrClose, 0x120)); + if (!getFromParams(0x1C, 0xFF)) { mAnmMdl.getModel().setPriorityDraw(0x1C, 0xFFFFFFFF); } if ((s32)getFromParams(0x10, 0xFF) != 0xFF) { - void *data2 = getOarcResFile("TansuInside"); - mResFile = nw4r::g3d::ResFile(data2); - + void *insideMdlData = getOarcResFile("TansuInside"); + mResFile = nw4r::g3d::ResFile(insideMdlData); nw4r::g3d::ResMdl mdl = mResFile.GetResMdl(INSIDE_MODEL_NAMES[getFromParams(0x10, 0xFF)]); if (!mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr)) { return NOT_READY; } } + char *dzbPlcName = getDzbPlcName(); void *dzb = getOarcDZB(name, dzbPlcName); void *plc = getOarcPLC(name, dzbPlcName); @@ -132,7 +132,6 @@ int dAcOChest_c::create() { if ((s32)getFromParams(0x10, 0xFF) != 0xFF) { mMdl.setLocalMtx(mWorldMtx); } - if (dScGame_c::isCurrentStage("F001r") && roomid == 1 && 900.0f < position.x && position.x < 1000.0f && -50.0f < position.y && position.y < 50.0f && -2730.0f < position.z && position.z < -2630.0f) { mIsLinksCloset = true; @@ -146,7 +145,6 @@ int dAcOChest_c::create() { } else if (dAcItem_c::isRupee(itemId)) { mDowsingTarget.initialize(DowsingTarget::SLOT_RUPEE, 0, &dowsingPos, 0.0f); } - return SUCCEEDED; } From 6c1e1991e5b2b65c834f7e578364e165626f7683 Mon Sep 17 00:00:00 2001 From: Swekka Date: Thu, 19 Jun 2025 19:50:13 +0200 Subject: [PATCH 05/36] address review --- .../SOUE01/rels/d_a_obj_chestNP/symbols.txt | 14 +++--- config/SOUE01/symbols.txt | 2 +- include/d/a/d_a_item.h | 2 +- include/d/a/obj/d_a_obj_chest.h | 4 +- src/REL/d/a/obj/d_a_obj_chest.cpp | 43 +++++++++---------- 5 files changed, 32 insertions(+), 33 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt b/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt index c58b0f9b..71df3b09 100644 --- a/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_chestNP/symbols.txt @@ -72,14 +72,14 @@ isSameName__26sFStateID_c<11dAcOChest_c>CFPCc = .text:0x00001B40; // type:functi _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_326_rodata_0 = .rodata:0x00000000; // type:object size:0x3C data:float scope:local -lbl_326_rodata_3C = .rodata:0x0000003C; // type:object size:0x18 align:4 data:float scope:local -lbl_326_data_0 = .data:0x00000000; // type:object size:0xC data:4byte scope:local -lbl_326_data_C = .data:0x0000000C; // type:object size:0x4 data:4byte scope:local +lbl_326_rodata_0 = .rodata:0x00000000; // type:object size:0x3C scope:local data:float +lbl_326_rodata_3C = .rodata:0x0000003C; // type:object size:0x18 scope:local align:4 data:float +lbl_326_data_0 = .data:0x00000000; // type:object size:0xC scope:local data:4byte +lbl_326_data_C = .data:0x0000000C; // type:object size:0x4 scope:local data:4byte lbl_326_data_10 = .data:0x00000010; // type:object size:0x10 scope:local -lbl_326_data_20 = .data:0x00000020; // type:object size:0x4 data:4byte scope:local +lbl_326_data_20 = .data:0x00000020; // type:object size:0x4 scope:local data:4byte lbl_326_data_24 = .data:0x00000024; // type:object size:0xC scope:local -lbl_326_data_30 = .data:0x00000030; // type:object size:0x8 data:4byte scope:local +lbl_326_data_30 = .data:0x00000030; // type:object size:0x8 scope:local data:4byte OPEN_WARDROBE_INTERACTION__11dAcOChest_c = .data:0x00000038; // type:object size:0x30 align:4 data:float g_profile_OBJ_CHEST = .data:0x00000068; // type:object size:0x10 lbl_326_data_78 = .data:0x00000078; // type:object size:0x10 scope:local @@ -87,7 +87,7 @@ lbl_326_data_88 = .data:0x00000088; // type:object size:0x10 scope:local lbl_326_data_98 = .data:0x00000098; // type:object size:0x10 scope:local lbl_326_data_A8 = .data:0x000000A8; // type:object size:0x10 scope:local INSIDE_MODEL_NAMES__11dAcOChest_c = .data:0x000000B8; // type:object size:0x10 -lbl_326_data_C8 = .data:0x000000C8; // type:object size:0xC data:string scope:local +lbl_326_data_C8 = .data:0x000000C8; // type:object size:0xC scope:local data:string lbl_326_data_D4 = .data:0x000000D4; // type:object size:0x1C scope:local lbl_326_data_F0 = .data:0x000000F0; // type:object size:0x8 scope:local lbl_326_data_F8 = .data:0x000000F8; // type:object size:0x28 scope:local diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 9da56ed6..b998cf47 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -13369,7 +13369,7 @@ giveItem22 = .text:0x802490F0; // type:function size:0x4 fn_80249100 = .text:0x80249100; // type:function size:0x44 giveItem3 = .text:0x80249150; // type:function size:0x60 fn_802491B0 = .text:0x802491B0; // type:function size:0x54 -giveItem__9dAcItem_cF7ITEM_IDii = .text:0x80249210; // type:function size:0x84 +giveItem__9dAcItem_cF7ITEM_IDll = .text:0x80249210; // type:function size:0x84 fn_802492A0 = .text:0x802492A0; // type:function size:0x78 fn_80249320 = .text:0x80249320; // type:function size:0x78 fn_802493A0 = .text:0x802493A0; // type:function size:0x3C8 diff --git a/include/d/a/d_a_item.h b/include/d/a/d_a_item.h index f1653c64..00349711 100644 --- a/include/d/a/d_a_item.h +++ b/include/d/a/d_a_item.h @@ -46,7 +46,7 @@ public: static void spawnItem(u16 item, u32 room, const mVec3_c &pos, const mAng3_c &rot, u32 params, u32 arg); static void spawnDrop(u16 item, u32 room, const mVec3_c &pos, const mAng3_c &rot); - static void giveItem(ITEM_ID, int, int); + static void giveItem(ITEM_ID, s32, s32); static u32 checkFlag(u32 flag); static bool hasItem(u32 flag) { return checkFlag(flag); diff --git a/include/d/a/obj/d_a_obj_chest.h b/include/d/a/obj/d_a_obj_chest.h index bf169d5b..c4ca6be6 100644 --- a/include/d/a/obj/d_a_obj_chest.h +++ b/include/d/a/obj/d_a_obj_chest.h @@ -58,7 +58,7 @@ public: private: /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ d3d::AnmMdlWrapper mAnmMdl; - /* 0x3A4 */ m3d::smdl_c mMdl; + /* 0x3A4 */ m3d::smdl_c mInsideMdl; /* 0x3C0 */ dBgW mBgW; /* 0x5D0 */ STATE_MGR_DECLARE(dAcOChest_c); /* 0x60C */ ActorEventRelated mEvent; @@ -68,7 +68,7 @@ private: /* 0x65F */ bool mIsLinksCloset; /* 0x660 */ DowsingTarget mDowsingTarget; - static const float OPEN_WARDROBE_INTERACTION_FIELD_0x24; + static const f32 OPEN_WARDROBE_INTERACTION_FIELD_0x24; static const char *CHEST_OPEN; static const char *CHEST_OPEN_AFTER; static const char *CHEST_FAIL; diff --git a/src/REL/d/a/obj/d_a_obj_chest.cpp b/src/REL/d/a/obj/d_a_obj_chest.cpp index 5bc9d6c1..33a242dd 100644 --- a/src/REL/d/a/obj/d_a_obj_chest.cpp +++ b/src/REL/d/a/obj/d_a_obj_chest.cpp @@ -18,7 +18,6 @@ #include "m/m_vec.h" #include "nw4r/g3d/res/g3d_resfile.h" #include "nw4r/g3d/res/g3d_resmdl.h" -#include "rvl/MTX/mtx.h" #include "s/s_Math.h" #include "toBeSorted/attention.h" #include "toBeSorted/dowsing_target.h" @@ -29,7 +28,7 @@ const char *dAcOChest_c::CHEST_OPEN = "ChestOpen"; const char *dAcOChest_c::CHEST_OPEN_AFTER = "ChestOpenAfter"; const char *dAcOChest_c::CHEST_FAIL = "ChestFail"; -const float dAcOChest_c::OPEN_WARDROBE_INTERACTION_FIELD_0x24 = 10.0f; +const f32 dAcOChest_c::OPEN_WARDROBE_INTERACTION_FIELD_0x24 = 10.0f; InteractionTargetDef dAcOChest_c::OPEN_WARDROBE_INTERACTION = {0, 3, 1, OPEN, 0, 140.0f, 40.0f, 40.0f, -100.0f, 100.0f, 50.0f, 1.0f}; @@ -93,7 +92,7 @@ bool dAcOChest_c::createHeap() { void *insideMdlData = getOarcResFile("TansuInside"); mResFile = nw4r::g3d::ResFile(insideMdlData); nw4r::g3d::ResMdl mdl = mResFile.GetResMdl(INSIDE_MODEL_NAMES[getFromParams(0x10, 0xFF)]); - if (!mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr)) { + if (!mInsideMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr)) { return NOT_READY; } } @@ -130,7 +129,7 @@ int dAcOChest_c::create() { poscopy2.y = position.y + 150.0f; poscopy3 = poscopy2; if ((s32)getFromParams(0x10, 0xFF) != 0xFF) { - mMdl.setLocalMtx(mWorldMtx); + mInsideMdl.setLocalMtx(mWorldMtx); } if (dScGame_c::isCurrentStage("F001r") && roomid == 1 && 900.0f < position.x && position.x < 1000.0f && -50.0f < position.y && position.y < 50.0f && -2730.0f < position.z && position.z < -2630.0f) { @@ -166,7 +165,7 @@ int dAcOChest_c::actorExecute() { int dAcOChest_c::draw() { drawModelType1(&mAnmMdl.getModel()); if (hasInsideModel()) { - drawModelType1(&mMdl); + drawModelType1(&mInsideMdl); } return SUCCEEDED; } @@ -175,7 +174,7 @@ void dAcOChest_c::initializeState_Wait() {} void dAcOChest_c::executeState_Wait() { OPEN_WARDROBE_INTERACTION.field_0x24 = OPEN_WARDROBE_INTERACTION_FIELD_0x24; - AttentionManager::GetInstance()->addTarget(*this, OPEN_WARDROBE_INTERACTION, 0, (mVec3_c *)0); + AttentionManager::GetInstance()->addTarget(*this, OPEN_WARDROBE_INTERACTION, 0, nullptr); } void dAcOChest_c::finalizeState_Wait() {} @@ -195,7 +194,7 @@ void dAcOChest_c::initializeState_OrderOpenEventAfter() {} void dAcOChest_c::executeState_OrderOpenEventAfter() { if (mGaveItem && EventManager::sInstance->isInEvent0Or7()) { char *name = getName(); - void *data = dAcObjBase_c::getOarcZev(name); + void *data = getOarcZev(name); Event event(CHEST_OPEN_AFTER, data, 400, 0x100001, nullptr, (void *)changeStateWaitCallback); mEvent.scheduleEvent(event, 0); } else if (EventManager::sInstance->isInEvent(this, CHEST_OPEN_AFTER)) { @@ -222,7 +221,7 @@ void dAcOChest_c::finalizeState_FailEvent() {} void dAcOChest_c::doInteraction(s32 _unused) { char *name = getName(); - void *data = dAcObjBase_c::getOarcZev(name); + void *data = getOarcZev(name); if (hasBeenOpened()) { Event event(CHEST_FAIL, data, 100, 0x100001, (void *)changeStateFailCallback, (void *)changeStateWait2Callback); @@ -234,7 +233,7 @@ void dAcOChest_c::doInteraction(s32 _unused) { } void dAcOChest_c::fn_326_C90() { - PSMTXTrans(mWorldMtx.m, position.x, position.y, position.z); + mWorldMtx.transS(position); mWorldMtx.ZXYrotM(rotation); mAnmMdl.getModel().setLocalMtx(mWorldMtx); mAnmMdl.getModel().calc(false); @@ -278,12 +277,12 @@ char *dAcOChest_c::getName() { char *dAcOChest_c::getSubtypeName() { switch (getSubtype()) { - case 0: return "TansuA"; - case 1: return "TansuB"; - case 2: return "TansuC"; - case 3: return "TansuD"; + case 0: return "TansuA"; + case 1: return "TansuB"; + case 2: return "TansuC"; + case 3: return "TansuD"; + default: return "TansuA"; } - return "TansuA"; } char *dAcOChest_c::getModelName() { @@ -292,20 +291,20 @@ char *dAcOChest_c::getModelName() { char *dAcOChest_c::getOpenOrClose(u8 openOrClose) { switch (openOrClose) { - case 0: return "TansuOpen"; - case 1: return "TansuClose"; + case 0: return "TansuOpen"; + case 1: return "TansuClose"; + default: return nullptr; } - return nullptr; } char *dAcOChest_c::getDzbPlcName() { switch (getSubtype()) { - case 0: return "TansuA"; - case 1: return "TansuB"; - case 2: return "TansuC"; - case 3: return "TansuD"; + case 0: return "TansuA"; + case 1: return "TansuB"; + case 2: return "TansuC"; + case 3: return "TansuD"; + default: return "TansuA"; } - return "TansuA"; } s32 dAcOChest_c::getSubtype() { From a4dc90c5ae9c0ec570a915d3dd9d4d061dd6412e Mon Sep 17 00:00:00 2001 From: Swekka Date: Sun, 22 Jun 2025 00:43:09 +0200 Subject: [PATCH 06/36] d_a_obj_oct_grass OK --- .../rels/d_a_obj_impa_doorNP/symbols.txt | 6 +- .../rels/d_a_obj_oct_grassNP/symbols.txt | 65 +++++++++------- configure.py | 2 +- include/d/a/obj/d_a_obj_oct_grass.h | 22 +++++- src/REL/d/a/obj/d_a_obj_oct_grass.cpp | 77 +++++++++++++++++++ 5 files changed, 139 insertions(+), 33 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_impa_doorNP/symbols.txt b/config/SOUE01/rels/d_a_obj_impa_doorNP/symbols.txt index 8798ffa7..b7c88acc 100644 --- a/config/SOUE01/rels/d_a_obj_impa_doorNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_impa_doorNP/symbols.txt @@ -40,10 +40,10 @@ isSameName__29sFStateID_c<14dAcOimpaDoor_c>CFPCc = .text:0x00000A20; // type:fun _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_421_rodata_0 = .rodata:0x00000000; // type:object size:0x18 data:float scope:local +lbl_421_rodata_0 = .rodata:0x00000000; // type:object size:0x18 scope:local data:float g_profile_OBJ_IMPA_DOOR = .data:0x00000000; // type:object size:0x10 data:4byte lbl_421_data_10 = .data:0x00000010; // type:object size:0x8 scope:local -lbl_421_data_18 = .data:0x00000018; // type:object size:0x10 data:string scope:local +lbl_421_data_18 = .data:0x00000018; // type:object size:0x10 scope:local data:string lbl_421_data_28 = .data:0x00000028; // type:object size:0x20 scope:local lbl_421_data_48 = .data:0x00000048; // type:object size:0x80 lbl_421_data_C8 = .data:0x000000C8; // type:object size:0x30 @@ -53,4 +53,4 @@ lbl_421_data_140 = .data:0x00000140; // type:object size:0x5C lbl_421_data_19C = .data:0x0000019C; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global lbl_421_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local -lbl_421_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte scope:local +lbl_421_bss_18 = .bss:0x00000018; // type:object size:0x30 scope:local data:4byte diff --git a/config/SOUE01/rels/d_a_obj_oct_grassNP/symbols.txt b/config/SOUE01/rels/d_a_obj_oct_grassNP/symbols.txt index 876e5cf3..c5e34157 100644 --- a/config/SOUE01/rels/d_a_obj_oct_grassNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_oct_grassNP/symbols.txt @@ -8,16 +8,16 @@ __dt__27sFState_c<14dAcOOctGrass_c>Fv = .text:0x000001B0; // type:function size: __dt__30sFStateFct_c<14dAcOOctGrass_c>Fv = .text:0x00000210; // type:function size:0x6C __dt__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000280; // type:function size:0xA0 __dt__53sFStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000320; // type:function size:0xA4 -AcOOctGrass__initModels = .text:0x000003D0; // type:function size:0xAC -AcOOctGrass__init = .text:0x00000480; // type:function size:0x130 +createHeap__14dAcOOctGrass_cFv = .text:0x000003D0; // type:function size:0xAC +create__14dAcOOctGrass_cFv = .text:0x00000480; // type:function size:0x130 changeState__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x000005B0; // type:function size:0x10 -fn_289_5C0 = .text:0x000005C0; // type:function size:0x8 -fn_289_5D0 = .text:0x000005D0; // type:function size:0x8 -AcOOctGrass__draw = .text:0x000005E0; // type:function size:0x28 +doDelete__14dAcOOctGrass_cFv = .text:0x000005C0; // type:function size:0x8 +actorExecute__14dAcOOctGrass_cFv = .text:0x000005D0; // type:function size:0x8 +draw__14dAcOOctGrass_cFv = .text:0x000005E0; // type:function size:0x28 initializeState_Wait__14dAcOOctGrass_cFv = .text:0x00000610; // type:function size:0x4 executeState_Wait__14dAcOOctGrass_cFv = .text:0x00000620; // type:function size:0x4 finalizeState_Wait__14dAcOOctGrass_cFv = .text:0x00000630; // type:function size:0x4 -AcOOctGrass__spawnOcGrsL = .text:0x00000640; // type:function size:0x98 +spawnOcGrsL__14dAcOOctGrass_cFv = .text:0x00000640; // type:function size:0x98 __dt__14dAcOOctGrass_cFv = .text:0x000006E0; // type:function size:0xCC executeState__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000007B0; // type:function size:0x10 getStateID__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000007C0; // type:function size:0x10 @@ -41,26 +41,37 @@ isSameName__29sFStateID_c<14dAcOOctGrass_c>CFPCc = .text:0x00000B00; // type:fun _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_289_rodata_0 = .rodata:0x00000000; // type:object size:0x1C data:float +lbl_289_rodata_0 = .rodata:0x00000000; // type:object size:0x4 scope:local align:4 data:float +lbl_289_rodata_4 = .rodata:0x00000004; // type:object size:0x4 scope:local +lbl_289_rodata_8 = .rodata:0x00000008; // type:object size:0x4 scope:local +lbl_289_rodata_C = .rodata:0x0000000C; // type:object size:0x4 scope:local +lbl_289_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_289_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local +lbl_289_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local g_profile_OBJ_OCT_GRASS = .data:0x00000000; // type:object size:0x10 data:4byte -lbl_289_data_10 = .data:0x00000010; // type:object size:0xC -lbl_289_data_1C = .data:0x0000001C; // type:object size:0x10 -lbl_289_data_2C = .data:0x0000002C; // type:object size:0xC -lbl_289_data_38 = .data:0x00000038; // type:object size:0x10 -GRASS_OARCS = .data:0x00000048; // type:object size:0x10 -lbl_289_data_58 = .data:0x00000058; // type:object size:0x10 -lbl_289_data_68 = .data:0x00000068; // type:object size:0x10 -lbl_289_data_78 = .data:0x00000078; // type:object size:0x10 -lbl_289_data_88 = .data:0x00000088; // type:object size:0x10 -GRASS_CUT_MODELS = .data:0x00000098; // type:object size:0x10 -lbl_289_data_A8 = .data:0x000000A8; // type:object size:0x1C data:string -lbl_289_data_C4 = .data:0x000000C4; // type:object size:0xC -AcOOctGrass__vtable = .data:0x000000D0; // type:object size:0x80 -lbl_289_data_150 = .data:0x00000150; // type:object size:0x30 -lbl_289_data_180 = .data:0x00000180; // type:object size:0x30 -lbl_289_data_1B0 = .data:0x000001B0; // type:object size:0x18 -lbl_289_data_1C8 = .data:0x000001C8; // type:object size:0x5C -lbl_289_data_224 = .data:0x00000224; // type:object size:0x34 +lbl_289_data_10 = .data:0x00000010; // type:object size:0xC scope:local +lbl_289_data_1C = .data:0x0000001C; // type:object size:0x10 scope:local +lbl_289_data_2C = .data:0x0000002C; // type:object size:0xC scope:local +lbl_289_data_38 = .data:0x00000038; // type:object size:0x10 scope:local +GRASS_OARCS__14dAcOOctGrass_c = .data:0x00000048; // type:object size:0x10 +lbl_289_data_58 = .data:0x00000058; // type:object size:0x10 scope:local +lbl_289_data_68 = .data:0x00000068; // type:object size:0x10 scope:local +lbl_289_data_78 = .data:0x00000078; // type:object size:0x10 scope:local +lbl_289_data_88 = .data:0x00000088; // type:object size:0x10 scope:local +GRASS_CUT_MODELS__14dAcOOctGrass_c = .data:0x00000098; // type:object size:0x10 +lbl_289_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local data:string +lbl_289_data_C4 = .data:0x000000C4; // type:object size:0xC scope:local +__vt__14dAcOOctGrass_c = .data:0x000000D0; // type:object size:0x80 +__vt__53sFStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c> = .data:0x00000150; // type:object size:0x30 +__vt__83sStateMgr_c<14dAcOOctGrass_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000180; // type:object size:0x30 +lbl_289_data_1B0 = .data:0x000001B0; // type:object size:0x18 scope:local +lbl_289_data_1C8 = .data:0x000001C8; // type:object size:0x18 scope:local +lbl_289_data_1E0 = .data:0x000001E0; // type:object size:0xC scope:local +lbl_289_data_1EC = .data:0x000001EC; // type:object size:0xC scope:local +lbl_289_data_1F8 = .data:0x000001F8; // type:object size:0xC scope:local +lbl_289_data_204 = .data:0x00000204; // type:object size:0x4 data:string +lbl_289_data_208 = .data:0x00000208; // type:object size:0x1C scope:local +__vt__29sFStateID_c<14dAcOOctGrass_c> = .data:0x00000224; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_289_bss_8 = .bss:0x00000008; // type:object size:0x10 -AcOOctGrass__StateID_Wait = .bss:0x00000018; // type:object size:0x30 data:4byte +lbl_289_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local +AcOOctGrass__StateID_Wait = .bss:0x00000018; // type:object size:0x30 scope:local data:4byte diff --git a/configure.py b/configure.py index 71c72273..aad168bd 100644 --- a/configure.py +++ b/configure.py @@ -2164,7 +2164,7 @@ config.libs = [ "d_a_obj_needle_underground", "REL/d/a/obj/d_a_obj_needle_underground.cpp", ), - Rel(NonMatching, "d_a_obj_oct_grass", "REL/d/a/obj/d_a_obj_oct_grass.cpp"), + Rel(Matching, "d_a_obj_oct_grass", "REL/d/a/obj/d_a_obj_oct_grass.cpp"), Rel( NonMatching, "d_a_obj_oct_grass_leaf", "REL/d/a/obj/d_a_obj_oct_grass_leaf.cpp" ), diff --git a/include/d/a/obj/d_a_obj_oct_grass.h b/include/d/a/obj/d_a_obj_oct_grass.h index 55366023..b60c2692 100644 --- a/include/d/a/obj/d_a_obj_oct_grass.h +++ b/include/d/a/obj/d_a_obj_oct_grass.h @@ -2,18 +2,36 @@ #define D_A_OBJ_OCT_GRASS_H #include "d/a/obj/d_a_obj_base.h" +#include "m/m3d/m_smdl.h" +#include "nw4r/g3d/res/g3d_resfile.h" #include "s/s_State.hpp" -#include "s/s_StateMgr.hpp" class dAcOOctGrass_c : public dAcObjBase_c { public: dAcOOctGrass_c() : mStateMgr(*this, sStateID::null) {} virtual ~dAcOOctGrass_c() {} + virtual bool createHeap() override; + virtual int create() override; + virtual int doDelete() override; + virtual int actorExecute() override; + virtual int draw() override; + + void spawnOcGrsL(); + STATE_FUNC_DECLARE(dAcOOctGrass_c, Wait); + void executeState() { + mStateMgr.executeState(); + } + private: - /* 0x??? */ STATE_MGR_DECLARE(dAcOOctGrass_c); + /* 0x330 */ nw4r::g3d::ResFile mResFile; + /* 0x334 */ m3d::smdl_c mMdl; + /* 0x350 */ STATE_MGR_DECLARE(dAcOOctGrass_c); + + static const char *GRASS_OARCS[4]; + static const char *GRASS_CUT_MODELS[4]; }; #endif diff --git a/src/REL/d/a/obj/d_a_obj_oct_grass.cpp b/src/REL/d/a/obj/d_a_obj_oct_grass.cpp index c36f043a..ef7b8f67 100644 --- a/src/REL/d/a/obj/d_a_obj_oct_grass.cpp +++ b/src/REL/d/a/obj/d_a_obj_oct_grass.cpp @@ -1,9 +1,86 @@ #include "d/a/obj/d_a_obj_oct_grass.h" +#include "common.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/d_stage.h" +#include "f/f_base.h" +#include "f/f_profile_name.h" +#include "m/m_vec.h" +#include "nw4r/g3d/res/g3d_resfile.h" +#include "nw4r/g3d/res/g3d_resmdl.h" + SPECIAL_ACTOR_PROFILE(OBJ_OCT_GRASS, dAcOOctGrass_c, fProfile::OBJ_OCT_GRASS, 0x236, 0, 3); STATE_DEFINE(dAcOOctGrass_c, Wait); +const char *dAcOOctGrass_c::GRASS_OARCS[4] = { + "GrassOcta", + "GrassRollGrow", + "GrassGerm", + "GrassMain", +}; + +const char *dAcOOctGrass_c::GRASS_CUT_MODELS[4] = { + "GrassOctaCut", + "GrassRollCut", + "GrassGermCut", + "GrassMainCut", +}; + +bool dAcOOctGrass_c::createHeap() { + u8 typeIdx = getFromParams(0, 0xF); + void *data = getOarcResFile(GRASS_OARCS[typeIdx]); + mResFile = nw4r::g3d::ResFile(data); + if (typeIdx == 3) { + dStage_c::bindSkyCmnToResFile(&mResFile); + } + nw4r::g3d::ResMdl mdl = mResFile.GetResMdl(GRASS_CUT_MODELS[typeIdx]); + TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr)); + return true; +} + +int dAcOOctGrass_c::create() { + CREATE_ALLOCATOR(dAcOOctGrass_c); + forwardAccel = 0.0f; + forwardMaxSpeed = -40.0f; + if ((params & 0xF) != 0) { + mMdl.setPriorityDraw(0x1C, 9); + } + updateMatrix(); + mMdl.setLocalMtx(mWorldMtx); + spawnOcGrsL(); + poscopy2 = position; + poscopy3 = position; + poscopy3.y += 20.0f; + mStateMgr.changeState(StateID_Wait); + boundingBox.Set(mVec3_c(-50.0f, -10.0f, -50.0f), mVec3_c(50.0f, 100.0f, 50.0f)); + return SUCCEEDED; +} + +int dAcOOctGrass_c::doDelete() { + return SUCCEEDED; +} + +int dAcOOctGrass_c::actorExecute() { + return SUCCEEDED; +} + +int dAcOOctGrass_c::draw() { + drawModelType1(&mMdl); + return SUCCEEDED; +} + void dAcOOctGrass_c::initializeState_Wait() {} void dAcOOctGrass_c::executeState_Wait() {} void dAcOOctGrass_c::finalizeState_Wait() {} + +void dAcOOctGrass_c::spawnOcGrsL() { + u32 type = getFromParams(0, 0xF); + if (type == 0xF) { + type = 0; + } + + dAcObjBase_c::create( + "OcGrsL", getRoomId(), type & 0xF, &position, nullptr, nullptr, getParams2_ignoreLower(), 0xFFFF, viewclip_index + ); +} From 7587ab0ddccad4420e13059f51063d48b467d4f3 Mon Sep 17 00:00:00 2001 From: Swekka Date: Sun, 22 Jun 2025 23:03:10 +0200 Subject: [PATCH 07/36] d_a_obj_hole OK --- config/SOUE01/rels/d_a_obj_holeNP/symbols.txt | 34 ++++++------ configure.py | 2 +- include/d/a/obj/d_a_obj_hole.h | 17 +++++- src/REL/d/a/obj/d_a_obj_hole.cpp | 54 +++++++++++++++++++ 4 files changed, 88 insertions(+), 19 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_holeNP/symbols.txt b/config/SOUE01/rels/d_a_obj_holeNP/symbols.txt index 997b66b3..e864b895 100644 --- a/config/SOUE01/rels/d_a_obj_holeNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_holeNP/symbols.txt @@ -8,13 +8,13 @@ __dt__23sFState_c<10dAcOhole_c>Fv = .text:0x000001C0; // type:function size:0x58 __dt__26sFStateFct_c<10dAcOhole_c>Fv = .text:0x00000220; // type:function size:0x6C __dt__79sStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000290; // type:function size:0xA0 __dt__49sFStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000330; // type:function size:0xA4 -fn_198_3E0 = .text:0x000003E0; // type:function size:0xA4 -fn_198_490 = .text:0x00000490; // type:function size:0x128 +createHeap__10dAcOhole_cFv = .text:0x000003E0; // type:function size:0xA4 +create__10dAcOhole_cFv = .text:0x00000490; // type:function size:0x128 changeState__79sStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x000005C0; // type:function size:0x10 -fn_198_5D0 = .text:0x000005D0; // type:function size:0x8 -fn_198_5E0 = .text:0x000005E0; // type:function size:0x30 +doDelete__10dAcOhole_cFv = .text:0x000005D0; // type:function size:0x8 +actorExecute__10dAcOhole_cFv = .text:0x000005E0; // type:function size:0x30 executeState__79sStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000610; // type:function size:0x10 -fn_198_620 = .text:0x00000620; // type:function size:0x28 +draw__10dAcOhole_cFv = .text:0x00000620; // type:function size:0x28 initializeState_Wait__10dAcOhole_cFv = .text:0x00000650; // type:function size:0x4 executeState_Wait__10dAcOhole_cFv = .text:0x00000660; // type:function size:0x4 finalizeState_Wait__10dAcOhole_cFv = .text:0x00000670; // type:function size:0x4 @@ -40,17 +40,17 @@ isSameName__25sFStateID_c<10dAcOhole_c>CFPCc = .text:0x00000AB0; // type:functio _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_198_rodata_0 = .rodata:0x00000000; // type:object size:0xC data:float +lbl_198_rodata_0 = .rodata:0x00000000; // type:object size:0xC scope:local data:float g_profile_OBJ_HOLE = .data:0x00000000; // type:object size:0x10 data:4byte -lbl_198_data_10 = .data:0x00000010; // type:object size:0x4 -lbl_198_data_14 = .data:0x00000014; // type:object size:0x14 -lbl_198_data_28 = .data:0x00000028; // type:object size:0x18 data:string -lbl_198_data_40 = .data:0x00000040; // type:object size:0x80 -lbl_198_data_C0 = .data:0x000000C0; // type:object size:0x30 -lbl_198_data_F0 = .data:0x000000F0; // type:object size:0x30 -lbl_198_data_120 = .data:0x00000120; // type:object size:0x18 -lbl_198_data_138 = .data:0x00000138; // type:object size:0x58 -lbl_198_data_190 = .data:0x00000190; // type:object size:0x34 +lbl_198_data_10 = .data:0x00000010; // type:object size:0x4 scope:local +lbl_198_data_14 = .data:0x00000014; // type:object size:0x14 scope:local +lbl_198_data_28 = .data:0x00000028; // type:object size:0x18 scope:local data:string +__vt__10dAcOhole_c = .data:0x00000040; // type:object size:0x80 +__vt__49sFStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c> = .data:0x000000C0; // type:object size:0x30 +__vt__79sStateMgr_c<10dAcOhole_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000000F0; // type:object size:0x30 +lbl_198_data_120 = .data:0x00000120; // type:object size:0x18 scope:local +lbl_198_data_138 = .data:0x00000138; // type:object size:0x58 scope:local +__vt__25sFStateID_c<10dAcOhole_c> = .data:0x00000190; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_198_bss_8 = .bss:0x00000008; // type:object size:0x10 -lbl_198_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte +lbl_198_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local +lbl_198_bss_18 = .bss:0x00000018; // type:object size:0x30 scope:local data:4byte diff --git a/configure.py b/configure.py index 71c72273..88b593ed 100644 --- a/configure.py +++ b/configure.py @@ -2104,7 +2104,7 @@ config.libs = [ Rel(NonMatching, "d_a_obj_harp_hint", "REL/d/a/obj/d_a_obj_harp_hint.cpp"), Rel(NonMatching, "d_a_obj_himo", "REL/d/a/obj/d_a_obj_himo.cpp"), Rel(NonMatching, "d_a_obj_hit_lever_sw", "REL/d/a/obj/d_a_obj_hit_lever_sw.cpp"), - Rel(NonMatching, "d_a_obj_hole", "REL/d/a/obj/d_a_obj_hole.cpp"), + Rel(Matching, "d_a_obj_hole", "REL/d/a/obj/d_a_obj_hole.cpp"), Rel(NonMatching, "d_a_obj_hole_minigame", "REL/d/a/obj/d_a_obj_hole_minigame.cpp"), Rel(Matching, "d_a_obj_impa_door", "REL/d/a/obj/d_a_obj_impa_door.cpp"), Rel(NonMatching, "d_a_obj_insect_island", "REL/d/a/obj/d_a_obj_insect_island.cpp"), diff --git a/include/d/a/obj/d_a_obj_hole.h b/include/d/a/obj/d_a_obj_hole.h index 55b261cf..56d4eb29 100644 --- a/include/d/a/obj/d_a_obj_hole.h +++ b/include/d/a/obj/d_a_obj_hole.h @@ -2,6 +2,9 @@ #define D_A_OBJ_HOLE_H #include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_s_acch.h" +#include "m/m3d/m_smdl.h" +#include "nw4r/g3d/res/g3d_resfile.h" #include "s/s_State.hpp" #include "s/s_StateMgr.hpp" @@ -10,10 +13,22 @@ public: dAcOhole_c() : mStateMgr(*this, sStateID::null) {} virtual ~dAcOhole_c() {} + virtual bool createHeap() override; + virtual int create() override; + virtual int doDelete() override; + virtual int actorExecute() override; + virtual int draw() override; + STATE_FUNC_DECLARE(dAcOhole_c, Wait); private: - /* 0x??? */ STATE_MGR_DECLARE(dAcOhole_c); + /* 0x330 */ nw4r::g3d::ResFile mResFile; + /* 0x334 */ m3d::smdl_c mMdl; + /* 0x350 */ STATE_MGR_DECLARE(dAcOhole_c); + /* 0x38C */ dBgS_AcchCir mAcchCir; + /* 0x3E8 */ dBgS_ObjAcch mObjAcch; + /* 0x798 */ u8 field_0x798; + /* 0x799 */ u8 field_0x799; }; #endif diff --git a/src/REL/d/a/obj/d_a_obj_hole.cpp b/src/REL/d/a/obj/d_a_obj_hole.cpp index 0d3a1452..436a9938 100644 --- a/src/REL/d/a/obj/d_a_obj_hole.cpp +++ b/src/REL/d/a/obj/d_a_obj_hole.cpp @@ -1,9 +1,63 @@ #include "d/a/obj/d_a_obj_hole.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_s.h" +#include "d/col/bg/d_bg_s_gnd_chk.h" +#include "f/f_base.h" +#include "m/m_vec.h" +#include "nw4r/g3d/res/g3d_resfile.h" +#include "nw4r/g3d/res/g3d_resmdl.h" + SPECIAL_ACTOR_PROFILE(OBJ_HOLE, dAcOhole_c, fProfile::OBJ_HOLE, 0xF7, 0, 258); STATE_DEFINE(dAcOhole_c, Wait); +bool dAcOhole_c::createHeap() { + void *data = getOarcResFile("Or"); + mResFile = nw4r::g3d::ResFile(data); + nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("octarock_hole"); + bool ok = mMdl.create(mdl, &heap_allocator, 0x20, 1, nullptr); + if (!ok) { + return ok; + } + updateMatrix(); + mMdl.setScale(mScale); + mMdl.setLocalMtx(mWorldMtx); + return ok; +} + +int dAcOhole_c::create() { + CREATE_ALLOCATOR(dAcOhole_c); + + u8 params1 = getFromParams(0, 3); + field_0x798 = params1 != 3 ? params1 : 0; + + u8 params2 = getFromParams(2, 0xF); + field_0x799 = params2 != (s8)0xF ? params2 : 0xFF; + + boundingBox.Set(mVec3_c(-200.0f, -200.0f, -200.0f), mVec3_c(200.0f, 200.0f, 200.0f)); + mObjAcch.Set(this, 1, &mAcchCir); + mAcchCir.SetWall(100.0f, 100.0f); + mObjAcch.CrrPos(*dBgS::GetInstance()); + dBgS_ObjGndChk::CheckPos(position); + mStateMgr.changeState(StateID_Wait); + return SUCCEEDED; +} + +int dAcOhole_c::doDelete() { + return SUCCEEDED; +} + +int dAcOhole_c::actorExecute() { + mStateMgr.executeState(); + return SUCCEEDED; +} + +int dAcOhole_c::draw() { + drawModelType1(&mMdl); + return SUCCEEDED; +} + void dAcOhole_c::initializeState_Wait() {} void dAcOhole_c::executeState_Wait() {} void dAcOhole_c::finalizeState_Wait() {} From c944ee7dcf78aa4f0d3946cee9016635f61da82b Mon Sep 17 00:00:00 2001 From: robojumper Date: Mon, 30 Jun 2025 22:12:56 +0200 Subject: [PATCH 08/36] Fix virtual state symbols --- .../SOUE01/rels/d_a_npc_saltalkNP/symbols.txt | 2 +- config/SOUE01/symbols.txt | 28 +++++++++---------- include/s/s_FStateVirtualID.hpp | 4 +-- include/s/s_State.hpp | 4 +-- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/config/SOUE01/rels/d_a_npc_saltalkNP/symbols.txt b/config/SOUE01/rels/d_a_npc_saltalkNP/symbols.txt index ec369e2d..163a0302 100644 --- a/config/SOUE01/rels/d_a_npc_saltalkNP/symbols.txt +++ b/config/SOUE01/rels/d_a_npc_saltalkNP/symbols.txt @@ -64,7 +64,7 @@ __dt__12dAcNpcSltk_cFv = .text:0x00000C40; // type:function size:0x78 __sinit_\d_a_npc_saltalk_cpp = .text:0x00000CC0; // type:function size:0x124 scope:local __dt__27sFStateID_c<12dAcNpcSltk_c>Fv = .text:0x00000DF0; // type:function size:0x58 __dt__34sFStateVirtualID_c<12dAcNpcSltk_c>Fv = .text:0x00000E50; // type:function size:0x5C -baseID_Wait<8dAcNpc_c>__Fv_RC10sStateID_c = .text:0x00000EB0; // type:function size:0xC +baseID_Wait<8dAcNpc_c>__Fv_RC12sStateIDIf_c = .text:0x00000EB0; // type:function size:0xC number__34sFStateVirtualID_c<12dAcNpcSltk_c>CFv = .text:0x00000EC0; // type:function size:0xDC superID__34sFStateVirtualID_c<12dAcNpcSltk_c>CFv = .text:0x00000FA0; // type:function size:0xE0 isSameName__27sFStateID_c<12dAcNpcSltk_c>CFPCc = .text:0x00001080; // type:function size:0x88 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index bddc4300..cc98ada8 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -1219,8 +1219,8 @@ fn_80032130 = .text:0x80032130; // type:function size:0x48 fn_80032180 = .text:0x80032180; // type:function size:0x2C fn_800321B0 = .text:0x800321B0; // type:function size:0x1CC fn_80032380 = .text:0x80032380; // type:function size:0xC0 -baseID_Wait<10sStateID_c>__Fv_RC10sStateID_c = .text:0x80032440; // type:function size:0xC -baseID_Demo<10sStateID_c>__Fv_RC10sStateID_c = .text:0x80032450; // type:function size:0xC +baseID_Wait<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80032440; // type:function size:0xC +baseID_Demo<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80032450; // type:function size:0xC fn_80032460 = .text:0x80032460; // type:function size:0x4 fn_80032470 = .text:0x80032470; // type:function size:0x4 npcExecute__8dAcNpc_cFv = .text:0x80032480; // type:function size:0x390 @@ -1820,13 +1820,13 @@ fn_80045D00 = .text:0x80045D00; // type:function size:0x490 fn_80046190 = .text:0x80046190; // type:function size:0x44 fn_800461E0 = .text:0x800461E0; // type:function size:0xAC fn_80046290 = .text:0x80046290; // type:function size:0x40 -baseID_Pain<10sStateID_c>__Fv_RC10sStateID_c = .text:0x800462D0; // type:function size:0xC -baseID_Surprised<10sStateID_c>__Fv_RC10sStateID_c = .text:0x800462E0; // type:function size:0xC -baseID_Withstand<10sStateID_c>__Fv_RC10sStateID_c = .text:0x800462F0; // type:function size:0xC -baseID_Walk<10sStateID_c>__Fv_RC10sStateID_c = .text:0x80046300; // type:function size:0xC -baseID_LookAwaySt<10sStateID_c>__Fv_RC10sStateID_c = .text:0x80046310; // type:function size:0xC -baseID_LookAway<10sStateID_c>__Fv_RC10sStateID_c = .text:0x80046320; // type:function size:0xC -baseID_Turn<10sStateID_c>__Fv_RC10sStateID_c = .text:0x80046330; // type:function size:0xC +baseID_Pain<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x800462D0; // type:function size:0xC +baseID_Surprised<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x800462E0; // type:function size:0xC +baseID_Withstand<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x800462F0; // type:function size:0xC +baseID_Walk<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80046300; // type:function size:0xC +baseID_LookAwaySt<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80046310; // type:function size:0xC +baseID_LookAway<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80046320; // type:function size:0xC +baseID_Turn<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80046330; // type:function size:0xC AcOrdinaryNpc__PreInit = .text:0x80046340; // type:function size:0x10C fn_80046450 = .text:0x80046450; // type:function size:0x9C fn_800464F0 = .text:0x800464F0; // type:function size:0x13C @@ -1988,7 +1988,7 @@ fn_8004CC90 = .text:0x8004CC90; // type:function size:0x40 __sinit_\d_a_ordinary_npc_cpp = .text:0x8004CCD0; // type:function size:0x784 scope:local __dt__31sFStateID_c<16dAcOrdinaryNpc_c>Fv = .text:0x8004D460; // type:function size:0x58 __dt__38sFStateVirtualID_c<16dAcOrdinaryNpc_c>Fv = .text:0x8004D4C0; // type:function size:0x5C -baseID_Wait<8dAcNpc_c>__Fv_RC10sStateID_c = .text:0x8004D520; // type:function size:0xC +baseID_Wait<8dAcNpc_c>__Fv_RC12sStateIDIf_c = .text:0x8004D520; // type:function size:0xC number__38sFStateVirtualID_c<16dAcOrdinaryNpc_c>CFv = .text:0x8004D530; // type:function size:0xDC superID__38sFStateVirtualID_c<16dAcOrdinaryNpc_c>CFv = .text:0x8004D610; // type:function size:0xE0 isSameName__31sFStateID_c<16dAcOrdinaryNpc_c>CFPCc = .text:0x8004D6F0; // type:function size:0x88 @@ -11140,8 +11140,8 @@ checkAllSaveFilesEmpty__10dScTitle_cFv = .text:0x801B9D70; // type:function size __sinit_\d_sc_title_cpp = .text:0x801B9E00; // type:function size:0x1E0 scope:local __dt__25sFStateID_c<10dScTitle_c>Fv = .text:0x801B9FE0; // type:function size:0x58 scope:weak __dt__32sFStateVirtualID_c<10dScTitle_c>Fv = .text:0x801BA040; // type:function size:0x5C scope:weak -baseID_Action<9dScGame_c>__Fv_RC10sStateID_c = .text:0x801BA0A0; // type:function size:0xC scope:local -baseID_Stanby<9dScGame_c>__Fv_RC10sStateID_c = .text:0x801BA0B0; // type:function size:0xC scope:local +baseID_Action<9dScGame_c>__Fv_RC12sStateIDIf_c = .text:0x801BA0A0; // type:function size:0xC scope:local +baseID_Stanby<9dScGame_c>__Fv_RC12sStateIDIf_c = .text:0x801BA0B0; // type:function size:0xC scope:local number__32sFStateVirtualID_c<10dScTitle_c>CFv = .text:0x801BA0C0; // type:function size:0xDC scope:weak superID__32sFStateVirtualID_c<10dScTitle_c>CFv = .text:0x801BA1A0; // type:function size:0xE0 scope:weak isSameName__25sFStateID_c<10dScTitle_c>CFPCc = .text:0x801BA280; // type:function size:0x88 scope:weak @@ -11149,8 +11149,8 @@ initializeState__25sFStateID_c<10dScTitle_c>CFR10dScTitle_c = .text:0x801BA310; executeState__25sFStateID_c<10dScTitle_c>CFR10dScTitle_c = .text:0x801BA340; // type:function size:0x30 scope:weak finalizeState__25sFStateID_c<10dScTitle_c>CFR10dScTitle_c = .text:0x801BA370; // type:function size:0x30 scope:weak dScGame_c_classInit__Fv = .text:0x801BA3A0; // type:function size:0x30 -baseID_Stanby<10sStateID_c>__Fv_RC10sStateID_c = .text:0x801BA3D0; // type:function size:0xC -baseID_Action<10sStateID_c>__Fv_RC10sStateID_c = .text:0x801BA3E0; // type:function size:0xC +baseID_Stanby<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x801BA3D0; // type:function size:0xC +baseID_Action<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x801BA3E0; // type:function size:0xC someGfxThingCallback__9dScGame_cFv = .text:0x801BA3F0; // type:function size:0x38 __ct__9dScGame_cFv = .text:0x801BA430; // type:function size:0x23C create__9dScGame_cFv = .text:0x801BA670; // type:function size:0x50 diff --git a/include/s/s_FStateVirtualID.hpp b/include/s/s_FStateVirtualID.hpp index e48600a2..409ac7c3 100644 --- a/include/s/s_FStateVirtualID.hpp +++ b/include/s/s_FStateVirtualID.hpp @@ -9,7 +9,7 @@ class sFStateVirtualID_c : public sFStateID_c { public: typedef void (T::*stateFunc)(); sFStateVirtualID_c( - const sStateID_c *superState, const char *name, stateFunc initialize, stateFunc execute, stateFunc finalize + const sStateIDIf_c *superState, const char *name, stateFunc initialize, stateFunc execute, stateFunc finalize ) : sFStateID_c(name, initialize, execute, finalize), mpSuperState(superState) {} @@ -29,7 +29,7 @@ public: } private: - const sStateID_c *mpSuperState; + const sStateIDIf_c *mpSuperState; }; #endif diff --git a/include/s/s_State.hpp b/include/s/s_State.hpp index 40e15303..262885af 100644 --- a/include/s/s_State.hpp +++ b/include/s/s_State.hpp @@ -65,11 +65,11 @@ #define STATE_VIRTUAL_DEFINE(class, name) \ template \ - static const sStateID_c &baseID_##name() { \ + static const sStateIDIf_c &baseID_##name() { \ return T::StateID_##name; \ } \ template <> \ - const sStateID_c &baseID_##name() { \ + const sStateIDIf_c &baseID_##name() { \ return sStateID::null; \ } \ const sFStateVirtualID_c class ::StateID_##name( \ From a8e9c4c3452556aada4dcabaf4d62b31a00a11cb Mon Sep 17 00:00:00 2001 From: robojumper Date: Mon, 30 Jun 2025 22:35:29 +0200 Subject: [PATCH 09/36] EGG symbols maintenance --- config/SOUE01/symbols.txt | 20 +++++++-------- include/egg/gfx/eggDrawPathDOF.h | 2 +- include/egg/gfx/eggLightTextureMgr.h | 2 +- include/egg/gfx/eggPostEffectBlur.h | 2 +- include/egg/gfx/eggScreen.h | 4 +-- include/egg/gfx/eggStateEfb.h | 4 +-- include/egg/gfx/eggStateGX.h | 2 +- src/egg/core/eggAllocator.cpp | 17 ++++++------- src/egg/gfx/eggCpuTexture.cpp | 37 +++++++++------------------- src/egg/gfx/eggDrawPathDOF.cpp | 8 +++--- src/egg/gfx/eggLightTextureMgr.cpp | 8 +++--- src/egg/gfx/eggPostEffectBlur.cpp | 4 +-- src/egg/gfx/eggScreen.cpp | 8 +++--- src/egg/gfx/eggStateEfb.cpp | 12 ++++----- src/egg/gfx/eggStateGX.cpp | 4 +-- 15 files changed, 60 insertions(+), 74 deletions(-) diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index bddc4300..42fedafc 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -26181,8 +26181,8 @@ getUncompressedSize__Q23EGG14StreamDecompRLFPCv = .text:0x80495290; // type:func getHeaderSize__Q23EGG14StreamDecompRLFv = .text:0x804952A0; // type:function size:0x8 scope:weak getUncompressedSize__Q23EGG14StreamDecompLZFPCv = .text:0x804952B0; // type:function size:0x8 scope:weak getHeaderSize__Q23EGG14StreamDecompLZFv = .text:0x804952C0; // type:function size:0x8 scope:weak -MEM_AllocFor_Heap__FP12MEMAllocatorUl = .text:0x804952D0; // type:function size:0x1C scope:local -MEM_FreeFor_Heap__FP12MEMAllocatorPv = .text:0x804952F0; // type:function size:0x14 scope:local +AllocatorAllocForHeap___FP12MEMAllocatorUl = .text:0x804952D0; // type:function size:0x1C scope:local +AllocatorFreeForHeap___FP12MEMAllocatorPv = .text:0x804952F0; // type:function size:0x14 scope:local MEMInitAllocatorFor_Heap__FP12MEMAllocatorlPv = .text:0x80495310; // type:function size:0x1C __ct__Q23EGG9AllocatorFPQ23EGG4Heapl = .text:0x80495330; // type:function size:0x50 __dt__Q23EGG9AllocatorFv = .text:0x80495380; // type:function size:0x40 @@ -26430,7 +26430,7 @@ configure__Q23EGG10CapTextureFv = .text:0x8049D7C0; // type:function size:0x7C capture__Q23EGG10CapTextureFUsUsbi = .text:0x8049D840; // type:function size:0x184 fn_8049D9D0__Q23EGG10CapTextureFUc = .text:0x8049D9D0; // type:function size:0x58 calcColorGradient__Q23EGG27@unnamed@eggCpuTexture_cpp@FR8_GXColorRC8_GXColorRC8_GXColorf = .text:0x8049DA30; // type:function size:0x188 -makeGradient__Q23EGG27@unnamed@eggCpuTexture_cpp@FiP8_GXColoriiiRC8_GXColorRC8_GXColor = .text:0x8049DBC0; // type:function size:0x450 +makeGradient__Q23EGG27@unnamed@eggCpuTexture_cpp@FiP8_GXColorUsUsUsRC8_GXColorRC8_GXColor = .text:0x8049DBC0; // type:function size:0x450 __ct__Q23EGG10CpuTextureFv = .text:0x8049E010; // type:function size:0x44 __ct__Q23EGG10CpuTextureFUsUs9_GXTexFmt = .text:0x8049E060; // type:function size:0x40 __ct__Q23EGG10CpuTextureFPC9_GXTexObj = .text:0x8049E0A0; // type:function size:0xB0 @@ -26676,7 +26676,7 @@ drawAndCaptureTexture__Q23EGG19LightTextureManagerFffff = .text:0x804ADC80; // t SetBinaryInner__Q23EGG19LightTextureManagerFRCQ33EGG36IBinary3Bin = .text:0x804AE150; // type:function size:0x80 GetBinaryInner__Q23EGG19LightTextureManagerCFPQ33EGG36IBinary3Bin = .text:0x804AE1D0; // type:function size:0x90 getLtexFromLmap__Q23EGG19LightTextureManagerFPCvUs = .text:0x804AE260; // type:function size:0xDC -fn_804AE340__Q23EGG19LightTextureManagerFQ34nw4r3g3d6ResMat13_GXTexCoordID = .text:0x804AE340; // type:function size:0xBC +setupEnvmap__Q23EGG19LightTextureManagerFQ34nw4r3g3d6ResMat13_GXTexCoordID = .text:0x804AE340; // type:function size:0xBC GetBinarySize__Q23EGG19LightTextureManagerCFv = .text:0x804AE400; // type:function size:0x8 SetBinaryInner__Q23EGG36IBinaryFRCQ33EGG36IBinary3BinRCQ33EGG36IBinary3Binf = .text:0x804AE410; // type:function size:0x4 scope:weak SetBinary__Q23EGG29IBinaryFPCv = .text:0x804AE420; // type:function size:0x10 scope:weak @@ -26730,7 +26730,7 @@ CopyFromAnother__Q23EGG6ScreenFRCQ23EGG6Screen = .text:0x804B24C0; // type:funct Reset__Q23EGG6ScreenFffffQ33EGG7Frustum10CanvasMode = .text:0x804B2590; // type:function size:0x38 SetParent__Q23EGG6ScreenFPCQ23EGG6Screen = .text:0x804B25D0; // type:function size:0x30 SetUnkFlag8__Q23EGG6ScreenFv = .text:0x804B2600; // type:function size:0x24 -OnDirectEfb__Q23EGG6ScreenCFv = .text:0x804B2630; // type:function size:0x4D8 +GetPosSizeInEfb__Q23EGG6ScreenCFv = .text:0x804B2630; // type:function size:0x4D8 GetDataEfb__Q23EGG6ScreenCFv = .text:0x804B2B10; // type:function size:0x5C IsChangeEfb__Q23EGG6ScreenCFv = .text:0x804B2B70; // type:function size:0x2C CalcMatrixForDrawQuad__Q23EGG6ScreenCFPQ34nw4r4math5MTX34ffff = .text:0x804B2BA0; // type:function size:0xA8 @@ -26738,7 +26738,7 @@ FillBufferGX__Q23EGG6ScreenCFUl8_GXColorUl = .text:0x804B2C50; // type:function GetGlobalPos__Q23EGG6ScreenCFPfPf = .text:0x804B2D40; // type:function size:0xB0 SetTVMode__Q23EGG6ScreenFQ33EGG6Screen6TVMode = .text:0x804B2DF0; // type:function size:0xB0 SetTVModeDefault__Q23EGG6ScreenFv = .text:0x804B2EA0; // type:function size:0x34 -fn_804B2EE0__Q23EGG6ScreenCFPfPfff = .text:0x804B2EE0; // type:function size:0x14C +ConvertToEfb__Q23EGG6ScreenCFffPfPf = .text:0x804B2EE0; // type:function size:0x14C __sinit_\eggScreen_cpp = .text:0x804B3030; // type:function size:0x84 scope:local __ct__Q23EGG16ScreenEffectBaseFv = .text:0x804B30C0; // type:function size:0x18 __sinit_\eggScreenEffectBase_cpp = .text:0x804B30E0; // type:function size:0xC scope:local @@ -26758,9 +26758,9 @@ Clean__Q23EGG8StateEfbFv = .text:0x804B3DA0; // type:function size:0x78 captureEfb__Q23EGG8StateEfbFQ33EGG8StateEfb10BufferTypebUl = .text:0x804B3E20; // type:function size:0x3C8 releaseEfb__Q23EGG8StateEfbFQ33EGG8StateEfb10BufferTypeUl = .text:0x804B41F0; // type:function size:0x7C fn_804B4270__Q23EGG8StateEfbFQ33EGG8StateEfb10BufferTypeUl = .text:0x804B4270; // type:function size:0x98 -fn_804B4310__Q23EGG8StateEfbFQ33EGG8StateEfb10BufferTypeUl = .text:0x804B4310; // type:function size:0x23C +popWorkBuffer__Q23EGG8StateEfbFbUl = .text:0x804B4310; // type:function size:0x23C fn_804B4550__Q23EGG8StateEfbFv = .text:0x804B4550; // type:function size:0xA0 -GetShouldCapture__Q23EGG8StateEfbFv = .text:0x804B45F0; // type:function size:0xC +isEnableDirtyBufferMode__Q23EGG8StateEfbFv = .text:0x804B45F0; // type:function size:0xC GetUseTfRgb565__Q23EGG8StateEfbFv = .text:0x804B4600; // type:function size:0xC texRegionCallback__24@unnamed@eggStateGX_cpp@FPC9_GXTexObj11_GXTexMapID = .text:0x804B4610; // type:function size:0x28 scope:local initialize__Q23EGG7StateGXFUsUs8_GXColor11_GXPixelFmt = .text:0x804B4640; // type:function size:0x114 @@ -26775,7 +26775,7 @@ resetTexGen__Q23EGG7StateGXFv = .text:0x804B4CB0; // type:function size:0xB8 resetTev__Q23EGG7StateGXFv = .text:0x804B4D70; // type:function size:0x17C resetPE__Q23EGG7StateGXFv = .text:0x804B4EF0; // type:function size:0xB0 resetGXCache__Q23EGG7StateGXFv = .text:0x804B4FA0; // type:function size:0x40 -GXSetPixelFmt___Q23EGG7StateGXF11_GXPixelFmt9_GXZFmt16 = .text:0x804B4FE0; // type:function size:0xAC +setPixelFormatGX__Q23EGG7StateGXF11_GXPixelFmt9_GXZFmt16 = .text:0x804B4FE0; // type:function size:0xAC invalidateTexAllGX__Q23EGG7StateGXFv = .text:0x804B5090; // type:function size:0x4 GXSetColorUpdate___Q23EGG7StateGXFb = .text:0x804B50A0; // type:function size:0x4C GXSetAlphaUpdate___Q23EGG7StateGXFb = .text:0x804B50F0; // type:function size:0x4C @@ -49828,7 +49828,7 @@ VOLUME_INIT__Q44nw4r3snd6detail12EnvGenerator = .sdata2:0x8057EFD0; // type:obje @4069 = .sdata2:0x8057F2E0; // type:object size:0x4 scope:local align:4 data:float @4070 = .sdata2:0x8057F2E4; // type:object size:0x4 scope:local align:4 data:float @4006 = .sdata2:0x8057F2E8; // type:object size:0x4 scope:local align:4 data:float -eggAllocatorFuncs = .sdata2:0x8057F2F0; // type:object size:0x8 scope:local +@LOCAL@MEMInitAllocatorFor_Heap__FP12MEMAllocatorlPv@sAllocatorFunc = .sdata2:0x8057F2F0; // type:object size:0x8 scope:local @3922 = .sdata2:0x8057F2F8; // type:object size:0x4 scope:local align:4 data:float @3925 = .sdata2:0x8057F300; // type:object size:0x8 scope:local align:8 data:double @3503 = .sdata2:0x8057F308; // type:object size:0x4 scope:local align:4 data:float diff --git a/include/egg/gfx/eggDrawPathDOF.h b/include/egg/gfx/eggDrawPathDOF.h index 8ae49e79..a291f9c2 100644 --- a/include/egg/gfx/eggDrawPathDOF.h +++ b/include/egg/gfx/eggDrawPathDOF.h @@ -33,7 +33,7 @@ private: void internalDrawStandard(u16); void internalDrawLite(u16); - void afterDraw(u16 x, u16 y, u16 width, u16 height); + void allocAndCaptureBlurBuffer(u16 x, u16 y, u16 width, u16 height); /* 0x1C */ u16 field_0x1C; /* 0x1E */ u8 field_0x1E; diff --git a/include/egg/gfx/eggLightTextureMgr.h b/include/egg/gfx/eggLightTextureMgr.h index c12fc011..cd3ff842 100644 --- a/include/egg/gfx/eggLightTextureMgr.h +++ b/include/egg/gfx/eggLightTextureMgr.h @@ -71,7 +71,7 @@ public: } private: - static void fn_804AE340(nw4r::g3d::ResMat, GXTexCoordID); + static void setupEnvmap(nw4r::g3d::ResMat, GXTexCoordID); int getTextureIndex(const char *name) const; bool getSomeTfRelatedBool() const { diff --git a/include/egg/gfx/eggPostEffectBlur.h b/include/egg/gfx/eggPostEffectBlur.h index de6d9754..748c688a 100644 --- a/include/egg/gfx/eggPostEffectBlur.h +++ b/include/egg/gfx/eggPostEffectBlur.h @@ -57,7 +57,7 @@ public: } private: - void drawInternal(u8, u8, f32, f32); + void setMaterialMulti(u8, u8, f32, f32); /* 0x2C */ u8 field_0x2C; /* 0x30 */ f32 field_0x30; diff --git a/include/egg/gfx/eggScreen.h b/include/egg/gfx/eggScreen.h index 44fd56da..e78ba7bf 100644 --- a/include/egg/gfx/eggScreen.h +++ b/include/egg/gfx/eggScreen.h @@ -99,13 +99,13 @@ public: void CopyFromAnother(const Screen &other); void Reset(f32, f32, f32, f32, CanvasMode); - void OnDirectEfb() const; + void GetPosSizeInEfb() const; const DataEfb &GetDataEfb() const; bool IsChangeEfb() const; void CalcMatrixForDrawQuad(nw4r::math::MTX34 *, f32, f32, f32, f32) const; void FillBufferGX(u32, GXColor, u32) const; void GetGlobalPos(f32 *, f32 *) const; - void fn_804B2EE0(f32 *, f32 *, f32, f32) const; + void ConvertToEfb(f32, f32, f32 *, f32 *) const; f32 ScaleByX(f32 val) const { return val * StateGX::s_widthEfb / GetSizeXMax(GetComputedTVMode()); diff --git a/include/egg/gfx/eggStateEfb.h b/include/egg/gfx/eggStateEfb.h index 93386936..a1eac8e2 100644 --- a/include/egg/gfx/eggStateEfb.h +++ b/include/egg/gfx/eggStateEfb.h @@ -31,7 +31,7 @@ private: static s32 sPushCount; static u32 sFlag; - static bool GetShouldCapture(); + static bool isEnableDirtyBufferMode(); static bool GetUseTfRgb565(); public: @@ -45,7 +45,7 @@ private: // Unknown names static void fn_804B4270(BufferType type, u32 userData); - static void fn_804B4310(BufferType type, u32 userData); + static void popWorkBuffer(bool b, u32 userData); static f32 *fn_804B4550(); }; diff --git a/include/egg/gfx/eggStateGX.h b/include/egg/gfx/eggStateGX.h index 251d864e..697e3dc6 100644 --- a/include/egg/gfx/eggStateGX.h +++ b/include/egg/gfx/eggStateGX.h @@ -81,7 +81,7 @@ public: static void invalidateTexAllGX(); - static void GXSetPixelFmt_(GXPixelFmt pixelFmt, GXZFmt16 zFmt); + static void setPixelFormatGX(GXPixelFmt pixelFmt, GXZFmt16 zFmt); static bool GXSetColorUpdate_(bool); static bool GXSetAlphaUpdate_(bool); static bool GXSetDither_(bool); diff --git a/src/egg/core/eggAllocator.cpp b/src/egg/core/eggAllocator.cpp index d12d57a8..22780acf 100644 --- a/src/egg/core/eggAllocator.cpp +++ b/src/egg/core/eggAllocator.cpp @@ -2,23 +2,22 @@ #include "egg/core/eggHeap.h" - -/* 804952d0 */ static void *MEM_AllocFor_Heap(MEMAllocator *alloc, u32 size) { +/* 804952d0 */ static void *AllocatorAllocForHeap_(MEMAllocator *alloc, u32 size) { return static_cast(static_cast(alloc)->heap)->alloc(size, alloc->heapParam1); } -/* 804952f0 */ static void MEM_FreeFor_Heap(MEMAllocator *alloc, void *block) { +/* 804952f0 */ static void AllocatorFreeForHeap_(MEMAllocator *alloc, void *block) { return static_cast(static_cast(alloc)->heap)->free(block); } -const MEMAllocatorFuncs eggAllocatorFuncs = { - &MEM_AllocFor_Heap, - &MEM_FreeFor_Heap, -}; - // TODO this is used from eggHeap for some reason. Figure out // the correct privacy boundary later. /* 80495310 */ void MEMInitAllocatorFor_Heap(MEMAllocator *alloc, s32 align, void *heap) { - alloc->funcs = &eggAllocatorFuncs; + static const MEMAllocatorFuncs sAllocatorFunc = { + &AllocatorAllocForHeap_, + &AllocatorFreeForHeap_, + }; + + alloc->funcs = &sAllocatorFunc; alloc->heap = heap; alloc->heapParam1 = align; alloc->heapParam2 = 0; diff --git a/src/egg/gfx/eggCpuTexture.cpp b/src/egg/gfx/eggCpuTexture.cpp index 9cf4860c..f86a8bd3 100644 --- a/src/egg/gfx/eggCpuTexture.cpp +++ b/src/egg/gfx/eggCpuTexture.cpp @@ -27,19 +27,16 @@ void calcColorGradient(GXColor &outColor, const GXColor &c1, const GXColor &c2, } } -void makeGradient(int op, GXColor *outColor, int size, int start, int end, const GXColor &c1, const GXColor &c2) { - int start_p1 = start + 1; - // Weird instruction calculation - for (int i = 0; i < start_p1; i++) { +void makeGradient(int op, GXColor *outColor, u16 size, u16 start, u16 end, const GXColor &c1, const GXColor &c2) { + for (int i = 0; i < start + 1; i++) { outColor[i] = c1; } - int end_1 = end - 1; - for (int i = end_1; i < size; i++) { + for (int i = end - 1; i < size; i++) { outColor[i] = c2; } - for (int i = start_p1; i < end_1; i++) { + for (int i = start + 1; i < end - 1; i++) { f32 ratio = (f32)(i - start) / (f32)(end - start); switch (op) { case 0: break; @@ -188,6 +185,7 @@ void CpuTexture::fillNormalMapSphere(f32 f1, f32 f2) { vec(0) = fx; vec(1) = fy; + // TODO: std::sqrtf? vec(2) = fz < Math::zero() ? Math::zero() : (f32)sqrt(fz); PSVECNormalize(vec, vec); @@ -202,24 +200,19 @@ void CpuTexture::fillNormalMapSphere(f32 f1, f32 f2) { void CpuTexture::fillGradient( int op, int unk, u16 start, u16 end, const GXColor &c1, const GXColor &c2, bool b1, bool b2 ) { - // NONMATCHING - regswaps - GXColor gradient[1024]; GXColor colors[256]; bool swapMode = unk == 0x73 || unk == 0x53; u16 width = swapMode ? mWidth : mHeight; u16 height = swapMode ? mHeight : mWidth; + u16 mid = width / 2; makeGradient(op, gradient, width, start, end, c1, c2); if (b1) { - // Regswaps here - for (int i2 = mid, i = 0; i < width; i2++, i++) { - colors[i].r = gradient[i < mid ? i2 : i - mid].r; - colors[i].g = gradient[i < mid ? i2 : i - mid].g; - colors[i].b = gradient[i < mid ? i2 : i - mid].b; - colors[i].a = gradient[i < mid ? i2 : i - mid].a; + for (int i = 0; i < width; i++) { + colors[i] = gradient[i < mid ? i + mid : i - mid]; } for (int i = 0; i < width; i++) { @@ -295,16 +288,10 @@ void CpuTexture::setColor(u16 x, u16 y, GXColor color) { } case GX_TF_I8: case GX_TF_Z8: { - // Regswaps here - int pix = (x & 0x7); - int pix_y = (y & 0x3) * 8; + int offset = (x & 0x7) + (y & 0x3) * 8; // pixel + offset += ((x >> 3) + ((y >> 2) * (getWidth() / 8))) * 32; // block - int block = (x >> 3); - int block_y = (y >> 2) * (getWidth() / 8); - - pix = pix + pix_y + (block + block_y) * 0x20; - - u8 *dat = static_cast(getBuffer()) + pix; + u8 *dat = static_cast(getBuffer()) + offset; dat[0] = color.r; break; @@ -328,7 +315,6 @@ void CpuTexture::setColor(u16 x, u16 y, GXColor color) { } GXColor CpuTexture::getColor(u16 x, u16 y) const { - // NONMATCHING GXColor c; switch (getFormat()) { case GX_TF_RGBA8: @@ -343,6 +329,7 @@ GXColor CpuTexture::getColor(u16 x, u16 y) const { } case GX_TF_I8: case GX_TF_Z8: { + // TODO - probably fake int idx = (x & 0x7); int pixel_idx = (y & 0x3) * 8; int block_idx = ((getWidth() / 8) * (y >> 2) + (x >> 3)); diff --git a/src/egg/gfx/eggDrawPathDOF.cpp b/src/egg/gfx/eggDrawPathDOF.cpp index e649fab5..5b977e99 100644 --- a/src/egg/gfx/eggDrawPathDOF.cpp +++ b/src/egg/gfx/eggDrawPathDOF.cpp @@ -130,7 +130,7 @@ void DrawPathDOF::internalDraw(u16 idx) { switch (idx) { case 1: - StateEfb::fn_804B4310(StateEfb::BUFFER_0, reinterpret_cast(this)); + StateEfb::popWorkBuffer(StateEfb::BUFFER_0, reinterpret_cast(this)); StateEfb::releaseEfb(StateEfb::BUFFER_3, reinterpret_cast(this)); break; case 2: @@ -149,7 +149,7 @@ void DrawPathDOF::internalDrawLite(u16 idx) { switch (idx) { case 0: { TextureBuffer *capturedBuf = StateEfb::captureEfb(StateEfb::BUFFER_3, false, reinterpret_cast(this)); - StateGX::GXSetPixelFmt_(GX_PF_RGB8_Z24, GX_ZC_LINEAR); + StateGX::setPixelFormatGX(GX_PF_RGB8_Z24, GX_ZC_LINEAR); StateGX::ScopedColor colorGuard(true); StateGX::ScopedAlpha alphaGuard(false); StateGX::ScopedDither ditherGuard(false); @@ -184,8 +184,8 @@ void DrawPathDOF::internalDrawLite(u16 idx) { if (pTex2 != nullptr) { pTex2->free(); } - afterDraw(floats[0], floats[1], width, height); - StateGX::GXSetPixelFmt_(StateGX::s_pixFormat, StateGX::s_zFmt16); + allocAndCaptureBlurBuffer(floats[0], floats[1], width, height); + StateGX::setPixelFormatGX(StateGX::s_pixFormat, StateGX::s_zFmt16); break; } case 2: { diff --git a/src/egg/gfx/eggLightTextureMgr.cpp b/src/egg/gfx/eggLightTextureMgr.cpp index 17f28c6d..e9d0b27a 100644 --- a/src/egg/gfx/eggLightTextureMgr.cpp +++ b/src/egg/gfx/eggLightTextureMgr.cpp @@ -129,7 +129,7 @@ u16 LightTextureManager::replaceModelTexture(int tex, nw4r::g3d::ResMdl mdl) con u16 res = G3DUtility::SetTexture(mat, nullptr, mpTextures[tex]->getName(), &obj, false, buf, 0xFF, 2); for (int j = 0; j < res; j++) { if (buf[j].texCoordId != -1) { - fn_804AE340(mat, static_cast(buf[j].texCoordId)); + setupEnvmap(mat, static_cast(buf[j].texCoordId)); } } count += res; @@ -214,7 +214,7 @@ void LightTextureManager::drawAndCaptureTexture(f32 ox, f32 oy, f32 sx, f32 sy) } if (b1) { - StateGX::GXSetPixelFmt_(GX_PF_RGB8_Z24, GX_ZC_LINEAR); + StateGX::setPixelFormatGX(GX_PF_RGB8_Z24, GX_ZC_LINEAR); } nw4r::ut::Color c(StateGX::s_clearEfb); @@ -234,7 +234,7 @@ void LightTextureManager::drawAndCaptureTexture(f32 ox, f32 oy, f32 sx, f32 sy) } if (b1) { - StateGX::GXSetPixelFmt_(StateGX::s_pixFormat, StateGX::s_zFmt16); + StateGX::setPixelFormatGX(StateGX::s_pixFormat, StateGX::s_zFmt16); } if ((mFlags & 0x40) == 0 && buf != nullptr) { @@ -307,7 +307,7 @@ const void *LightTextureManager::getLtexFromLmap(const void *lmap, u16 index) { return buf; } -void LightTextureManager::fn_804AE340(nw4r::g3d::ResMat mat, GXTexCoordID id) { +void LightTextureManager::setupEnvmap(nw4r::g3d::ResMat mat, GXTexCoordID id) { nw4r::g3d::ResTexSrt dat = mat.GetResTexSrt(); dat.SetMapMode(id, 1, -1, -1); nw4r::g3d::ResMatTexCoordGen coordGen = mat.GetResMatTexCoordGen(); diff --git a/src/egg/gfx/eggPostEffectBlur.cpp b/src/egg/gfx/eggPostEffectBlur.cpp index 9bb52690..934ee0d3 100644 --- a/src/egg/gfx/eggPostEffectBlur.cpp +++ b/src/egg/gfx/eggPostEffectBlur.cpp @@ -38,14 +38,14 @@ void PostEffectBlur::draw(f32 width, f32 height) { for (u8 i = 0; i < field_0x2C; i++) { int maxNum = (field_0x38[i].field_0x00 - 1) / 8; for (u8 b = 0; b <= maxNum; b++) { - drawInternal(i, b, f1, f2); + setMaterialMulti(i, b, f1, f2); drawScreenInternal(mOffsetX, mOffsetY, width * mScaleX, height * mScaleY); DrawGX::SetBlendMode(DrawGX::BLEND_2); } } } -void PostEffectBlur::drawInternal(u8 kernelIdx, u8 p2, f32 f1, f32 f2) { +void PostEffectBlur::setMaterialMulti(u8 kernelIdx, u8 p2, f32 f1, f32 f2) { // NONMATCHING nw4r::math::MTX34 mtx; const Stage &k = field_0x38[kernelIdx]; diff --git a/src/egg/gfx/eggScreen.cpp b/src/egg/gfx/eggScreen.cpp index 768c4b2c..9a9d58cb 100644 --- a/src/egg/gfx/eggScreen.cpp +++ b/src/egg/gfx/eggScreen.cpp @@ -191,14 +191,14 @@ void Screen::SetUnkFlag8() { mFlags |= FLAG_0x08; } -void Screen::OnDirectEfb() const { +void Screen::GetPosSizeInEfb() const { f32 &x1 = mDataEfb.vp.x1; f32 &y1 = mDataEfb.vp.y1; if (mParent == nullptr) { x1 = mPosition.x * sCanvasScale.x; y1 = mPosition.y * sCanvasScale.y; } else { - mParent->fn_804B2EE0(&x1, &y1, mPosition.x, mPosition.y); + mParent->ConvertToEfb(mPosition.x, mPosition.y, &x1, &y1); } // TODO: Make this work without temporaries? @@ -242,7 +242,7 @@ void Screen::OnDirectEfb() const { const Screen::DataEfb &Screen::GetDataEfb() const { if (IsChangeEfb()) { - OnDirectEfb(); + GetPosSizeInEfb(); mDataEfb.vp.z1 = 0.0f; mDataEfb.vp.z2 = 1.0f; SetDirty(false); @@ -325,7 +325,7 @@ void Screen::SetTVModeDefault() { SetTVMode(SCGetAspectRatio() == SC_ASPECT_STD ? TV_MODE_4_3 : TV_MODE_16_9); } -void Screen::fn_804B2EE0(f32 *ox, f32 *oy, f32 a, f32 b) const { +void Screen::ConvertToEfb(f32 a, f32 b, f32 *ox, f32 *oy) const { GetGlobalPos(ox, oy); ConvertToCanvasLU(a, b, &a, &b); *ox = ScaleByX((*ox + a)); diff --git a/src/egg/gfx/eggStateEfb.cpp b/src/egg/gfx/eggStateEfb.cpp index a21cdf0b..5872e1ef 100644 --- a/src/egg/gfx/eggStateEfb.cpp +++ b/src/egg/gfx/eggStateEfb.cpp @@ -88,7 +88,7 @@ TextureBuffer *StateEfb::captureEfb(BufferType type, bool noTransparencyMaybe, u if (spBufferSet[type].buf != nullptr) { spBufferSet[type].buf->setPixModeSync(false); } - doCapture = GetShouldCapture(); + doCapture = isEnableDirtyBufferMode(); break; } @@ -151,7 +151,7 @@ void StateEfb::fn_804B4270(BufferType type, u32 userData) { } } -void StateEfb::fn_804B4310(BufferType type, u32 userData) { +void StateEfb::popWorkBuffer(bool b, u32 userData) { if (sWorkBuffer != -1) { BufferType i = static_cast(-1); if (sWorkBuffer == 0) { @@ -161,7 +161,7 @@ void StateEfb::fn_804B4310(BufferType type, u32 userData) { } if (spBufferSet[i].userData == userData) { - if (type == BUFFER_0) { + if (!b) { StateGX::ScopedColor colorGuard(true); StateGX::ScopedAlpha alphaGuard(true); StateGX::ScopedDither ditherGuard(false); @@ -186,9 +186,9 @@ void StateEfb::fn_804B4310(BufferType type, u32 userData) { nw4r::math::MTX34 mtx; PSMTXScale(mtx, parentScreen.GetSize().x, parentScreen.GetSize().y, 1.0f); - DrawGX::BeginDrawScreen(true, GetShouldCapture(), false); + DrawGX::BeginDrawScreen(true, isEnableDirtyBufferMode(), false); DrawGX::SetBlendMode(DrawGX::BLEND_14); - if (GetShouldCapture()) { + if (isEnableDirtyBufferMode()) { TextureBuffer *buf = spBufferSet[i].buf; buf->setFilt(GX_NEAR, GX_NEAR); buf->load(DrawGX::GetTexMapDefault()); @@ -218,7 +218,7 @@ f32 *StateEfb::fn_804B4550() { return sUnkBuffer; } -bool StateEfb::GetShouldCapture() { +bool StateEfb::isEnableDirtyBufferMode() { return ((sFlag >> 2) & 1) != 0; } diff --git a/src/egg/gfx/eggStateGX.cpp b/src/egg/gfx/eggStateGX.cpp index 4355176a..21972b94 100644 --- a/src/egg/gfx/eggStateGX.cpp +++ b/src/egg/gfx/eggStateGX.cpp @@ -66,7 +66,7 @@ void StateGX::initialize(u16 width, u16 height, GXColor color, GXPixelFmt pixelF } void StateGX::frameInit() { - GXSetPixelFmt_(s_pixFormat, s_zFmt16); + setPixelFormatGX(s_pixFormat, s_zFmt16); if (BaseSystem::mConfigData->getDisplay() != nullptr) { s_clearEfb = BaseSystem::mConfigData->getDisplay()->getClearColor(); } @@ -230,7 +230,7 @@ void StateGX::resetGXCache() { GXSetDstAlpha_(false, 0); } -void StateGX::GXSetPixelFmt_(GXPixelFmt pixelFmt, GXZFmt16 zFmt) { +void StateGX::setPixelFormatGX(GXPixelFmt pixelFmt, GXZFmt16 zFmt) { GXPixelFmt oldPixelFmt; GXZFmt16 oldZFmt; From 15be3bf8e892252023952e26ed5316fc723477a2 Mon Sep 17 00:00:00 2001 From: robojumper Date: Mon, 30 Jun 2025 23:46:11 +0200 Subject: [PATCH 10/36] HIO-ify names of likely HIO-related classes --- config/SOUE01/splits.txt | 4 +- config/SOUE01/symbols.txt | 88 +++++++-------- configure.py | 4 +- include/d/d_cs_game.h | 6 +- include/d/{d_textunk.h => d_lyt_hio.h} | 14 +-- ...eter_configuration.h => d_lyt_meter_hio.h} | 14 +-- src/d/d_cs_game.cpp | 5 +- src/d/d_dvd_drive_error.cpp | 6 +- src/d/{d_textunk.cpp => d_lyt_hio.cpp} | 42 ++++---- src/d/d_message.cpp | 20 ++-- src/d/d_tag_processor.cpp | 100 +++++++++--------- src/d/d_textwindow_unk.cpp | 8 +- src/d/lyt/d2d.cpp | 16 +-- src/d/lyt/d_lyt_do_button.cpp | 16 +-- src/d/lyt/d_lyt_do_button_related.cpp | 1 + src/d/lyt/d_lyt_map.cpp | 12 +-- src/d/lyt/d_textbox.cpp | 10 +- src/d/lyt/meter/d_lyt_meter.cpp | 4 +- src/d/lyt/meter/d_lyt_meter_ganbari_gauge.cpp | 20 ++-- src/d/lyt/meter/d_lyt_meter_rupy.cpp | 18 ++-- src/d/lyt/meter/d_lyt_meter_shield_gauge.cpp | 14 +-- src/d/lyt/msg_window/d_lyt_msg_window.cpp | 20 ++-- .../lyt/msg_window/d_lyt_msg_window_link.cpp | 4 +- .../lyt/msg_window/d_lyt_msg_window_sword.cpp | 4 +- .../lyt/msg_window/d_lyt_msg_window_talk.cpp | 4 +- src/toBeSorted/attention.cpp | 22 ++-- 26 files changed, 238 insertions(+), 238 deletions(-) rename include/d/{d_textunk.h => d_lyt_hio.h} (97%) rename include/d/lyt/{d_lyt_meter_configuration.h => d_lyt_meter_hio.h} (92%) rename src/d/{d_textunk.cpp => d_lyt_hio.cpp} (81%) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index e66d16a4..b7e19af2 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -459,7 +459,7 @@ d/lyt/d_window.cpp: .data start:0x80510820 end:0x805108B0 .sdata2 start:0x805797F0 end:0x805797F8 -d/d_textunk.cpp: +d/d_lyt_hio.cpp: .text start:0x800B1820 end:0x800B20DC align:16 .ctors start:0x804DB6D0 end:0x804DB6D4 .data start:0x805108C8 end:0x805108D8 @@ -553,7 +553,7 @@ d/lyt/meter/d_lyt_meter.cpp: .sdata2 start:0x80579AD0 end:0x80579AF0 .bss start:0x805A9C98 end:0x805AA190 -d/lyt/meter/d_lyt_meter_unk.cpp: +d/lyt/meter/d_lyt_meter_hio.cpp: .text start:0x800DF8B0 end:0x800DFCB8 align:16 .data start:0x80513B60 end:0x80513B70 .sbss start:0x80575450 end:0x80575458 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index b42a65e1..d166b791 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -3330,10 +3330,10 @@ fn_80093870 = .text:0x80093870; // type:function size:0xA4 fn_80093920 = .text:0x80093920; // type:function size:0xA4 fn_800939D0 = .text:0x800939D0; // type:function size:0xA4 getPosCopy3__FRC12dAcObjBase_c = .text:0x80093A80; // type:function size:0x1C -__dt__12UnkAttnClassFv = .text:0x80093AA0; // type:function size:0x40 -init__12UnkAttnClassFv = .text:0x80093AE0; // type:function size:0x4 -remove__12UnkAttnClassFv = .text:0x80093AF0; // type:function size:0x4 -__ct__12UnkAttnClassFv = .text:0x80093B00; // type:function size:0x44 +__dt__16dAttention_HIO_cFv = .text:0x80093AA0; // type:function size:0x40 +init__16dAttention_HIO_cFv = .text:0x80093AE0; // type:function size:0x4 +remove__16dAttention_HIO_cFv = .text:0x80093AF0; // type:function size:0x4 +__ct__16dAttention_HIO_cFv = .text:0x80093B00; // type:function size:0x44 __ct__16AttentionManagerFv = .text:0x80093B50; // type:function size:0x98 __ct__14AttentionGroupFv = .text:0x80093BF0; // type:function size:0x48 __ct__13AttentionPoolFv = .text:0x80093C40; // type:function size:0x68 @@ -3868,25 +3868,25 @@ UpdateSize__9dWindow_cFP10dTextBox_cf = .text:0x800B1670; // type:function size: GetRuntimeTypeInfo__Q34nw4r3lyt6WindowCFv = .text:0x800B17B0; // type:function size:0x8 scope:weak __dt__9dWindow_cFv = .text:0x800B17C0; // type:function size:0x58 scope:weak __dt__Q34nw4r3lyt19ArcResourceAccessorFv = .text:0x800B1820; // type:function size:0x6C scope:weak -__dt__12UnkTextThingFv = .text:0x800B1890; // type:function size:0x40 scope:weak -__ct__12UnkTextThingFv = .text:0x800B18D0; // type:function size:0x4D4 -destroy__12UnkTextThingFv = .text:0x800B1DB0; // type:function size:0x15C -fn_800B1F10__12UnkTextThingFv = .text:0x800B1F10; // type:function size:0x34 -allocUnk__12UnkTextThingFUli = .text:0x800B1F50; // type:function size:0x8 -destroyUnk__12UnkTextThingFPv = .text:0x800B1F60; // type:function size:0x4 -fn_800B1F70__12UnkTextThingFv = .text:0x800B1F70; // type:function size:0x4C -fn_800B1FC0__12UnkTextThingFv = .text:0x800B1FC0; // type:function size:0x8 -fn_800B1FD0__12UnkTextThingFv = .text:0x800B1FD0; // type:function size:0x8 -fn_800B1FE0__12UnkTextThingFv = .text:0x800B1FE0; // type:function size:0x8 -fn_800B1FF0__12UnkTextThingFv = .text:0x800B1FF0; // type:function size:0x8 -fn_800B2000__12UnkTextThingFv = .text:0x800B2000; // type:function size:0x8 -fn_800B2010__12UnkTextThingFv = .text:0x800B2010; // type:function size:0x8 -fn_800B2020__12UnkTextThingFv = .text:0x800B2020; // type:function size:0x8 -fn_800B2030__12UnkTextThingFv = .text:0x800B2030; // type:function size:0x8 -fn_800B2040__12UnkTextThingFv = .text:0x800B2040; // type:function size:0x8 -destroyMsg__12UnkTextThingFP8MsbtInfo = .text:0x800B2050; // type:function size:0x40 -destroyFlow__12UnkTextThingFP8MsbfInfo = .text:0x800B2090; // type:function size:0x40 -__sinit_\d_textunk_cpp = .text:0x800B20D0; // type:function size:0xC scope:local +__dt__10dLyt_HIO_cFv = .text:0x800B1890; // type:function size:0x40 scope:weak +__ct__10dLyt_HIO_cFv = .text:0x800B18D0; // type:function size:0x4D4 +destroy__10dLyt_HIO_cFv = .text:0x800B1DB0; // type:function size:0x15C +fn_800B1F10__10dLyt_HIO_cFv = .text:0x800B1F10; // type:function size:0x34 +allocUnk__10dLyt_HIO_cFUli = .text:0x800B1F50; // type:function size:0x8 +destroyUnk__10dLyt_HIO_cFPv = .text:0x800B1F60; // type:function size:0x4 +fn_800B1F70__10dLyt_HIO_cFv = .text:0x800B1F70; // type:function size:0x4C +fn_800B1FC0__10dLyt_HIO_cFv = .text:0x800B1FC0; // type:function size:0x8 +fn_800B1FD0__10dLyt_HIO_cFv = .text:0x800B1FD0; // type:function size:0x8 +fn_800B1FE0__10dLyt_HIO_cFv = .text:0x800B1FE0; // type:function size:0x8 +fn_800B1FF0__10dLyt_HIO_cFv = .text:0x800B1FF0; // type:function size:0x8 +fn_800B2000__10dLyt_HIO_cFv = .text:0x800B2000; // type:function size:0x8 +fn_800B2010__10dLyt_HIO_cFv = .text:0x800B2010; // type:function size:0x8 +fn_800B2020__10dLyt_HIO_cFv = .text:0x800B2020; // type:function size:0x8 +fn_800B2030__10dLyt_HIO_cFv = .text:0x800B2030; // type:function size:0x8 +fn_800B2040__10dLyt_HIO_cFv = .text:0x800B2040; // type:function size:0x8 +destroyMsg__10dLyt_HIO_cFP8MsbtInfo = .text:0x800B2050; // type:function size:0x40 +destroyFlow__10dLyt_HIO_cFP8MsbfInfo = .text:0x800B2090; // type:function size:0x40 +__sinit_\d_lyt_hio_cpp = .text:0x800B20D0; // type:function size:0xC scope:local __ct__13TextWindowUnkFP15dTagProcessor_c = .text:0x800B20E0; // type:function size:0x48 fn_800B2130__13TextWindowUnkFPCcP10dTextBox_cP21dLytMsgWindowCharDatab = .text:0x800B2130; // type:function size:0x370 textAdvancingRelated__13TextWindowUnkFbb = .text:0x800B24A0; // type:function size:0x5FC @@ -5439,8 +5439,8 @@ __dt__31sFStateID_c<16dLytMeterParts_c>Fv = .text:0x800DF6A0; // type:function s isSameName__31sFStateID_c<16dLytMeterParts_c>CFPCc = .text:0x800DF700; // type:function size:0x88 scope:weak isSameName__33sFStateID_c<18dLytMeter2Button_c>CFPCc = .text:0x800DF790; // type:function size:0x88 scope:weak isSameName__33sFStateID_c<18dLytMeter1Button_c>CFPCc = .text:0x800DF820; // type:function size:0x88 scope:weak -__ct__24dLytMeterConfiguration_cFv = .text:0x800DF8B0; // type:function size:0x3C0 -__dt__24dLytMeterConfiguration_cFv = .text:0x800DFC70; // type:function size:0x48 +__ct__15dLytMeter_HIO_cFv = .text:0x800DF8B0; // type:function size:0x3C0 +__dt__15dLytMeter_HIO_cFv = .text:0x800DFC70; // type:function size:0x48 initializeState_InvisibleWait__15dLytMeterABtn_cFv = .text:0x800DFCC0; // type:function size:0x4 executeState_InvisibleWait__15dLytMeterABtn_cFv = .text:0x800DFCD0; // type:function size:0x34 finalizeState_InvisibleWait__15dLytMeterABtn_cFv = .text:0x800DFD10; // type:function size:0x4 @@ -6509,8 +6509,8 @@ getPane__22dLytMeterShieldGauge_cFv = .text:0x8010CB50; // type:function size:0x __sinit_\d_lyt_meter_shield_gauge_cpp = .text:0x8010CB60; // type:function size:0x27C scope:local __dt__37sFStateID_c<22dLytMeterShieldGauge_c>Fv = .text:0x8010CDE0; // type:function size:0x58 scope:weak isSameName__37sFStateID_c<22dLytMeterShieldGauge_c>CFPCc = .text:0x8010CE40; // type:function size:0x88 scope:weak -__ct__13DoButtonClassFv = .text:0x8010CED0; // type:function size:0x50 -__dt__13DoButtonClassFv = .text:0x8010CF20; // type:function size:0x40 +__ct__18dLytDoButton_HIO_cFv = .text:0x8010CED0; // type:function size:0x50 +__dt__18dLytDoButton_HIO_cFv = .text:0x8010CF20; // type:function size:0x40 initializeState_InvisibleWait__14dLytDobutton_cFv = .text:0x8010CF60; // type:function size:0x4 executeState_InvisibleWait__14dLytDobutton_cFv = .text:0x8010CF70; // type:function size:0x60 finalizeState_InvisibleWait__14dLytDobutton_cFv = .text:0x8010CFD0; // type:function size:0x4 @@ -6741,8 +6741,8 @@ draw__16dLytTargetBird_cFv = .text:0x80114280; // type:function size:0x44 fn_801142D0 = .text:0x801142D0; // type:function size:0x168 fn_80114440 = .text:0x80114440; // type:function size:0x248 fn_80114690 = .text:0x80114690; // type:function size:0x25C -__ct__22MsgWindowUnkLocalClassFv = .text:0x801148F0; // type:function size:0x24 -__dt__22MsgWindowUnkLocalClassFv = .text:0x80114920; // type:function size:0x40 +__ct__19dLytMsgWindow_HIO_cFv = .text:0x801148F0; // type:function size:0x24 +__dt__19dLytMsgWindow_HIO_cFv = .text:0x80114920; // type:function size:0x40 build__15dLytMsgWindow_cFv = .text:0x80114960; // type:function size:0x228 changeState__84sStateMgr_c<15dLytMsgWindow_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x80114B90; // type:function size:0x10 remove__15dLytMsgWindow_cFv = .text:0x80114BA0; // type:function size:0xB8 @@ -7500,8 +7500,8 @@ fn_8012D950 = .text:0x8012D950; // type:function size:0x30 LytMapCapture__initStates = .text:0x8012D980; // type:function size:0x1C0 LytMapCapture__dtor = .text:0x8012DB40; // type:function size:0x58 fn_8012DBA0 = .text:0x8012DBA0; // type:function size:0x88 -__ct__17LytMapConfigMaybeFv = .text:0x8012DC30; // type:function size:0xEC -__dt__17LytMapConfigMaybeFv = .text:0x8012DD20; // type:function size:0x40 +__ct__13dLytMap_HIO_cFv = .text:0x8012DC30; // type:function size:0xEC +__dt__13dLytMap_HIO_cFv = .text:0x8012DD20; // type:function size:0x40 fn_8012DD60 = .text:0x8012DD60; // type:function size:0x17C fn_8012DEE0 = .text:0x8012DEE0; // type:function size:0x70 fn_8012DF50 = .text:0x8012DF50; // type:function size:0x20 @@ -11262,8 +11262,8 @@ getNewStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStat getStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD230; // type:function size:0x10 getOldStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD240; // type:function size:0x10 dCsGame_c_classInit__Fv = .text:0x801BD250; // type:function size:0x30 -__ct__17CsGameConfigMaybeFv = .text:0x801BD280; // type:function size:0x8C -__dt__17CsGameConfigMaybeFv = .text:0x801BD310; // type:function size:0x40 +__ct__13dCsGame_HIO_cFv = .text:0x801BD280; // type:function size:0x8C +__dt__13dCsGame_HIO_cFv = .text:0x801BD310; // type:function size:0x40 __ct__9dCsGame_cFv = .text:0x801BD350; // type:function size:0x4CC fn_801BD820 = .text:0x801BD820; // type:function size:0x40 fn_801BD860 = .text:0x801BD860; // type:function size:0x40 @@ -30954,7 +30954,7 @@ lbl_8050F238 = .data:0x8050F238; // type:object size:0x80 @LOCAL@addUnk7Target__16AttentionManagerFR12dAcObjBase_cUlffff@unk7Target = .data:0x8050F498; // type:object size:0x30 @LOCAL@addReadTarget__16AttentionManagerFR12dAcObjBase_cUlffff@readTarget = .data:0x8050F4C8; // type:object size:0x30 @LOCAL@addReadTarget2__16AttentionManagerFR12dAcObjBase_cUlfff@readTarget2 = .data:0x8050F4F8; // type:object size:0x30 -__vt__12UnkAttnClass = .data:0x8050F528; // type:object size:0xC +__vt__16dAttention_HIO_c = .data:0x8050F528; // type:object size:0xC __vt__16AttentionManager = .data:0x8050F534; // type:object size:0xC lbl_8050F540 = .data:0x8050F540; // type:object size:0x10 data:4byte __vt__13DowsingTarget = .data:0x8050F550; // type:object size:0x10 @@ -31079,7 +31079,7 @@ lbl_8051074C = .data:0x8051074C; // type:object size:0x34 __vt__10dTextBox_c = .data:0x80510798; // type:object size:0x84 __vt__9dWindow_c = .data:0x80510820; // type:object size:0x8C scope:weak __vt__Q23d2d10ResAccIf_c = .data:0x805108B0; // type:object size:0x18 -__vt__12UnkTextThing = .data:0x805108C8; // type:object size:0xC scope:weak +__vt__10dLyt_HIO_c = .data:0x805108C8; // type:object size:0xC scope:weak __vt__13TextWindowUnk = .data:0x805108D8; // type:object size:0x10 @22737 = .data:0x805108E8; // type:object size:0xF scope:local data:string @22908 = .data:0x805108F8; // type:object size:0x14 scope:local data:string @@ -32863,7 +32863,7 @@ sPaneNames = .data:0x8051A98C; // type:object size:0x94 scope:local data:4byte @22855 = .data:0x8051AA30; // type:object size:0xF scope:local data:string @26835 = .data:0x8051AA40; // type:object size:0x13 scope:local data:string @27086 = .data:0x8051AA54; // type:object size:0xC scope:local data:string -__vt__13DoButtonClass = .data:0x8051AA60; // type:object size:0xC +__vt__18dLytDoButton_HIO_c = .data:0x8051AA60; // type:object size:0xC @27214 = .data:0x8051AA6C; // type:object size:0xC scope:local @27215 = .data:0x8051AA78; // type:object size:0xC scope:local @27216 = .data:0x8051AA84; // type:object size:0xC scope:local @@ -33015,7 +33015,7 @@ lbl_8051B6E8 = .data:0x8051B6E8; // type:object size:0xC lbl_8051B6F4 = .data:0x8051B6F4; // type:object size:0xC lbl_8051B700 = .data:0x8051B700; // type:object size:0xC data:string jumptable_8051B70C = .data:0x8051B70C; // type:object size:0x7C scope:local -__vt__22MsgWindowUnkLocalClass = .data:0x8051B788; // type:object size:0xC +__vt__19dLytMsgWindow_HIO_c = .data:0x8051B788; // type:object size:0xC __vt__56sFStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c> = .data:0x8051B798; // type:object size:0x30 __vt__86sStateMgr_c<17dLytAutoCaption_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8051B7C8; // type:object size:0x30 __vt__33sFStateFct_c<17dLytAutoCaption_c> = .data:0x8051B7F8; // type:object size:0x14 @@ -33774,7 +33774,7 @@ lbl_80520578 = .data:0x80520578; // type:object size:0x10 data:string lbl_80520588 = .data:0x80520588; // type:object size:0x10 data:string lbl_80520598 = .data:0x80520598; // type:object size:0x10 data:string lbl_805205A8 = .data:0x805205A8; // type:object size:0x10 data:string -lbl_805205B8 = .data:0x805205B8; // type:object size:0xC +__vt__13dLytMap_HIO_c = .data:0x805205B8; // type:object size:0xC __vt__13dLytMapMain_c = .data:0x805205C4; // type:object size:0x14 __vt__52sFStateMgr_c<13dLytMapMain_c,20sStateMethodUsr_FI_c> = .data:0x805205D8; // type:object size:0x30 __vt__82sStateMgr_c<13dLytMapMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80520608; // type:object size:0x30 @@ -41408,7 +41408,7 @@ lbl_80575398 = .sbss:0x80575398; // type:object size:0x8 data:byte SCRAPPER_PICKUP_TARGET = .sbss:0x805753A0; // type:object size:0x8 data:4byte @GUARD@setupGX__10dTextBox_cCFv@sFogColor = .sbss:0x805753A8; // type:object size:0x1 scope:local data:byte @LOCAL@setupGX__10dTextBox_cCFv@sFogColor = .sbss:0x805753AC; // type:object size:0x4 scope:local data:4byte -sInstance__12UnkTextThing = .sbss:0x805753B0; // type:object size:0x4 data:4byte +sInstance__10dLyt_HIO_c = .sbss:0x805753B0; // type:object size:0x4 data:4byte @GUARD@SetupGXCommon__15dTagProcessor_cFv@fog = .sbss:0x805753B8; // type:object size:0x1 scope:local data:byte @LOCAL@SetupGXCommon__15dTagProcessor_cFv@fog = .sbss:0x805753BC; // type:object size:0x4 scope:local data:4byte sInstance__14dTimeAreaMgr_c = .sbss:0x805753C0; // type:object size:0x4 data:4byte @@ -41433,7 +41433,7 @@ lbl_80575430 = .sbss:0x80575430; // type:object size:0x8 data:4byte sInstance__18SpecialItemDropMgr = .sbss:0x80575438; // type:object size:0x4 data:4byte sInstance__Q29dParticle5mgr_c = .sbss:0x80575440; // type:object size:0x4 data:4byte sInstance__11dLytMeter_c = .sbss:0x80575448; // type:object size:0x4 data:4byte -sInstance__24dLytMeterConfiguration_c = .sbss:0x80575450; // type:object size:0x8 data:4byte +sInstance__15dLytMeter_HIO_c = .sbss:0x80575450; // type:object size:0x8 data:4byte sInstance__20LytMeterTimerPart1_c = .sbss:0x80575458; // type:object size:0x4 data:4byte sInstance__20LytMeterTimerPart2_c = .sbss:0x8057545C; // type:object size:0x4 data:4byte sDoExit__16dLytMeterTimer_c = .sbss:0x80575460; // type:object size:0x1 data:byte @@ -50450,7 +50450,7 @@ lbl_805A2E90 = .bss:0x805A2E90; // type:object size:0x88 data:byte lbl_805A2F18 = .bss:0x805A2F18; // type:object size:0x40 lbl_805A2F58 = .bss:0x805A2F58; // type:object size:0x10 attnVectors = .bss:0x805A2F68; // type:object size:0x30 -attnClass = .bss:0x805A2F98; // type:object size:0x18 +sHio = .bss:0x805A2F98; // type:object size:0x18 scope:local DOWSING_LISTS = .bss:0x805A2FB0; // type:object size:0x60 lbl_805A3010 = .bss:0x805A3010; // type:object size:0x18 MAIN_EVENT_RELOC_TABLE = .bss:0x805A3028; // type:object size:0xF78 data:byte @@ -50487,7 +50487,7 @@ sSkipFlags__15SkipflagManager = .bss:0x805A9C68; // type:object size:0x20 lbl_805A9C88 = .bss:0x805A9C88; // type:object size:0x10 data:4byte @28890 = .bss:0x805A9C98; // type:object size:0xC scope:local ...bss.0 = .bss:0x805A9C98; // type:label scope:local -sConf = .bss:0x805A9CA8; // type:object size:0x1E8 scope:local +sHio = .bss:0x805A9CA8; // type:object size:0x1E8 scope:local @28894 = .bss:0x805A9E90; // type:object size:0xC scope:local StateID_Wait__18dLytMeter1Button_c = .bss:0x805A9EA0; // type:object size:0x30 data:4byte @28898 = .bss:0x805A9ED0; // type:object size:0xC scope:local @@ -50887,7 +50887,7 @@ StateID_Use__22dLytMeterShieldGauge_c = .bss:0x805ACDA0; // type:object size:0x3 StateID_ToMax__22dLytMeterShieldGauge_c = .bss:0x805ACDE0; // type:object size:0x30 scope:global @22763 = .bss:0x805ACE10; // type:object size:0xC scope:local ...bss.0 = .bss:0x805ACE10; // type:label scope:local -sDoButtonClass = .bss:0x805ACE20; // type:object size:0x18 scope:local +sHio = .bss:0x805ACE20; // type:object size:0x18 scope:local @22778 = .bss:0x805ACE38; // type:object size:0xC scope:local StateID_InvisibleWait__14dLytDobutton_c = .bss:0x805ACE48; // type:object size:0x30 data:4byte @22782 = .bss:0x805ACE78; // type:object size:0xC scope:local @@ -51023,7 +51023,7 @@ lbl_805AF3F0 = .bss:0x805AF3F0; // type:object size:0x10 StateID_RenderingWait__16dLytMapCapture_c = .bss:0x805AF400; // type:object size:0x40 data:4byte StateID_RenderingWaitStep2__16dLytMapCapture_c = .bss:0x805AF440; // type:object size:0x30 data:4byte lbl_805AF470 = .bss:0x805AF470; // type:object size:0x10 -lbl_805AF480 = .bss:0x805AF480; // type:object size:0x40 +sHio = .bss:0x805AF480; // type:object size:0x40 scope:local StateID_Wait__16dLytMapPinIcon_c = .bss:0x805AF4C0; // type:object size:0x30 data:4byte StateID_ToSelect__16dLytMapPinIcon_c = .bss:0x805AF500; // type:object size:0x30 data:4byte StateID_Select__16dLytMapPinIcon_c = .bss:0x805AF540; // type:object size:0x30 data:4byte diff --git a/configure.py b/configure.py index d6166140..9f3c71e8 100644 --- a/configure.py +++ b/configure.py @@ -455,7 +455,7 @@ config.libs = [ Object(NonMatching, "d/lyt/d_lyt_draw_mark.cpp"), Object(Matching, "d/lyt/d_textbox.cpp"), Object(Matching, "d/lyt/d_window.cpp"), - Object(Matching, "d/d_textunk.cpp"), + Object(Matching, "d/d_lyt_hio.cpp"), Object(NonMatching, "d/d_textwindow_unk.cpp"), Object(Matching, "d/d_tag_processor.cpp"), Object(NonMatching, "toBeSorted/time_area_mgr.cpp"), @@ -472,7 +472,7 @@ config.libs = [ Object(NonMatching, "toBeSorted/special_item_drop_mgr.cpp"), Object(Matching, "toBeSorted/d_particle.cpp"), Object(Matching, "d/lyt/meter/d_lyt_meter.cpp"), - Object(NonMatching, "d/lyt/meter/d_lyt_meter_unk.cpp"), + Object(NonMatching, "d/lyt/meter/d_lyt_meter_hio.cpp"), Object(Matching, "d/lyt/meter/d_lyt_meter_a_btn.cpp"), Object(Matching, "d/lyt/meter/d_lyt_meter_z_btn.cpp"), Object(Matching, "d/lyt/meter/d_lyt_meter_key.cpp"), diff --git a/include/d/d_cs_game.h b/include/d/d_cs_game.h index 4050fddf..ed765ae4 100644 --- a/include/d/d_cs_game.h +++ b/include/d/d_cs_game.h @@ -11,9 +11,9 @@ #include "s/s_StateID.hpp" #include "toBeSorted/d_emitter.h" -struct CsGameConfigMaybe { - CsGameConfigMaybe(); - virtual ~CsGameConfigMaybe() {} +struct dCsGame_HIO_c { + dCsGame_HIO_c(); + virtual ~dCsGame_HIO_c() {} /* 0x04 */ f32 field_0x04; /* 0x08 */ f32 field_0x08; diff --git a/include/d/d_textunk.h b/include/d/d_lyt_hio.h similarity index 97% rename from include/d/d_textunk.h rename to include/d/d_lyt_hio.h index 065e1562..cd9defb3 100644 --- a/include/d/d_textunk.h +++ b/include/d/d_lyt_hio.h @@ -1,5 +1,5 @@ -#ifndef D_TEXTUNK_H -#define D_TEXTUNK_H +#ifndef D_LYT_HIO_H +#define D_LYT_HIO_H #include "common.h" #include "libms/flowfile.h" @@ -14,10 +14,10 @@ * for overriding the text and flow files being accessed. The actual * implementation appears to have been stripped out though. */ -class UnkTextThing { +class dLyt_HIO_c { public: - UnkTextThing(); - virtual ~UnkTextThing() {} + dLyt_HIO_c(); + virtual ~dLyt_HIO_c() {} void destroy(); @@ -149,7 +149,7 @@ public: return 0; } - static UnkTextThing *getInstance() { + static dLyt_HIO_c *getInstance() { return sInstance; } @@ -209,7 +209,7 @@ public: void destroyUnk(void *thing); private: - static UnkTextThing *sInstance; + static dLyt_HIO_c *sInstance; void destroyFlow(MsbfInfo *flow); void destroyMsg(MsbtInfo *msg); diff --git a/include/d/lyt/d_lyt_meter_configuration.h b/include/d/lyt/d_lyt_meter_hio.h similarity index 92% rename from include/d/lyt/d_lyt_meter_configuration.h rename to include/d/lyt/d_lyt_meter_hio.h index 87c29f01..e02379b6 100644 --- a/include/d/lyt/d_lyt_meter_configuration.h +++ b/include/d/lyt/d_lyt_meter_hio.h @@ -1,14 +1,14 @@ -#ifndef D_LYT_METER_CONFIGURATION -#define D_LYT_METER_CONFIGURATION +#ifndef D_LYT_METER_HIO_C +#define D_LYT_METER_HIO_C #include "common.h" -class dLytMeterConfiguration_c { +class dLytMeter_HIO_c { public: - dLytMeterConfiguration_c(); - virtual ~dLytMeterConfiguration_c(); + dLytMeter_HIO_c(); + virtual ~dLytMeter_HIO_c(); - static const dLytMeterConfiguration_c *GetInstance() { + static const dLytMeter_HIO_c *GetInstance() { return sInstance; } @@ -45,7 +45,7 @@ public: } - static dLytMeterConfiguration_c *sInstance; + static dLytMeter_HIO_c *sInstance; /* 0x004 */ u8 field_0x004; /* 0x005 */ u8 field_0x005; diff --git a/src/d/d_cs_game.cpp b/src/d/d_cs_game.cpp index da22bbef..4480e541 100644 --- a/src/d/d_cs_game.cpp +++ b/src/d/d_cs_game.cpp @@ -9,9 +9,9 @@ SPECIAL_BASE_PROFILE(C_GAME, dCsGame_c, fProfile::C_GAME, 0x2BF, 0x06F9); -CsGameConfigMaybe sConfig; +dCsGame_HIO_c sConfig; -CsGameConfigMaybe::CsGameConfigMaybe() { +dCsGame_HIO_c::dCsGame_HIO_c() { field_0x04 = 0.0f; field_0x08 = 0.0f; field_0x0C = 0.0f; @@ -31,7 +31,6 @@ CsGameConfigMaybe::CsGameConfigMaybe() { field_0x3C = 1.0f; field_0x40 = 5; } -// CsGameConfigMaybe::~CsGameConfigMaybe() {} STATE_DEFINE(dCsGame_c::lytItemCursor_c, Invisible); STATE_DEFINE(dCsGame_c::lytItemCursor_c, Bow); diff --git a/src/d/d_dvd_drive_error.cpp b/src/d/d_dvd_drive_error.cpp index 2f7329b5..c80909e8 100644 --- a/src/d/d_dvd_drive_error.cpp +++ b/src/d/d_dvd_drive_error.cpp @@ -1,7 +1,7 @@ #include "d/d_dvd_drive_error.h" #include "d/d_dvd_unk.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "egg/gfx/eggDrawGX.h" #include "egg/gfx/eggScreen.h" #include "m/m_mtx.h" @@ -120,8 +120,8 @@ void dDvdDriveError_c::draw() { textWriter.SetFont(dDvdUnk::FontUnk::GetInstance()->getFont()); textWriter.SetScale( - UnkTextThing::getFn800B1F70() * UnkTextThing::getFn800B1FD0(), - UnkTextThing::getFn800B1F70() * UnkTextThing::getFn800B1FD0() + dLyt_HIO_c::getFn800B1F70() * dLyt_HIO_c::getFn800B1FD0(), + dLyt_HIO_c::getFn800B1F70() * dLyt_HIO_c::getFn800B1FD0() ); textWriter.SetupGX(); diff --git a/src/d/d_textunk.cpp b/src/d/d_lyt_hio.cpp similarity index 81% rename from src/d/d_textunk.cpp rename to src/d/d_lyt_hio.cpp index 2493a991..ae2ba3f2 100644 --- a/src/d/d_textunk.cpp +++ b/src/d/d_lyt_hio.cpp @@ -1,4 +1,4 @@ -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "common.h" #include "nw4r/lyt/lyt_arcResourceAccessor.h" @@ -9,11 +9,11 @@ void dummy_ArcResourceAccessor(nw4r::lyt::ArcResourceAccessor *arg) { delete arg; } -UnkTextThing textThing; -UnkTextThing *UnkTextThing::sInstance; +dLyt_HIO_c textThing; +dLyt_HIO_c *dLyt_HIO_c::sInstance; -// UnkTextThing::~UnkTextThing() {} -UnkTextThing::UnkTextThing() { +// dLyt_HIO_c::~dLyt_HIO_c() {} +dLyt_HIO_c::dLyt_HIO_c() { sInstance = this; field_0x754 = 0.0f; @@ -85,7 +85,7 @@ UnkTextThing::UnkTextThing() { field_0x794 = 100.0f; } -void UnkTextThing::destroy() { +void dLyt_HIO_c::destroy() { for (int i = 0; i < 82; i++) { if (field_buf0[i] != nullptr) { destroyUnk(field_buf0[i]); @@ -133,55 +133,55 @@ void UnkTextThing::destroy() { } } -f32 UnkTextThing::fn_800B1F10() { +f32 dLyt_HIO_c::fn_800B1F10() { return field_0x794 / 100.0f; } -void *UnkTextThing::allocUnk(size_t size, int align) { +void *dLyt_HIO_c::allocUnk(size_t size, int align) { return nullptr; } -void UnkTextThing::destroyUnk(void *_thing) {} +void dLyt_HIO_c::destroyUnk(void *_thing) {} -f32 UnkTextThing::fn_800B1F70() { +f32 dLyt_HIO_c::fn_800B1F70() { f32 v = fn_800B1FC0(); v *= fn_800B1FE0(); return v; } -f32 UnkTextThing::fn_800B1FC0() { +f32 dLyt_HIO_c::fn_800B1FC0() { return 1.0f; } -f32 UnkTextThing::fn_800B1FD0() { +f32 dLyt_HIO_c::fn_800B1FD0() { return 0.9f; } -f32 UnkTextThing::fn_800B1FE0() { +f32 dLyt_HIO_c::fn_800B1FE0() { return 1.0f; } -f32 UnkTextThing::fn_800B1FF0() { +f32 dLyt_HIO_c::fn_800B1FF0() { return 0.0f; } -f32 UnkTextThing::fn_800B2000() { +f32 dLyt_HIO_c::fn_800B2000() { return 0.0f; } -f32 UnkTextThing::fn_800B2010() { +f32 dLyt_HIO_c::fn_800B2010() { return -1.0f; } -f32 UnkTextThing::fn_800B2020() { +f32 dLyt_HIO_c::fn_800B2020() { return 0.0f; } -f32 UnkTextThing::fn_800B2030() { +f32 dLyt_HIO_c::fn_800B2030() { return 0.0f; } -f32 UnkTextThing::fn_800B2040() { +f32 dLyt_HIO_c::fn_800B2040() { return 0.0f; } -void UnkTextThing::destroyMsg(MsbtInfo *msg) { +void dLyt_HIO_c::destroyMsg(MsbtInfo *msg) { mShouldHookAllocations = true; LMS_CloseMessage(msg); mShouldHookAllocations = false; } -void UnkTextThing::destroyFlow(MsbfInfo *flow) { +void dLyt_HIO_c::destroyFlow(MsbfInfo *flow) { mShouldHookAllocations = true; LMS_CloseFlow(flow); mShouldHookAllocations = false; diff --git a/src/d/d_message.cpp b/src/d/d_message.cpp index ba09d084..6916a3e9 100644 --- a/src/d/d_message.cpp +++ b/src/d/d_message.cpp @@ -13,7 +13,7 @@ #include "d/d_stage.h" #include "d/d_stage_mgr.h" #include "d/d_tag_processor.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "d/flag/itemflag_manager.h" #include "d/flag/sceneflag_manager.h" #include "d/flag/storyflag_manager.h" @@ -1418,18 +1418,18 @@ dMessage_c *dMessage_c::sInstance; dTagProcessor_c *dMessage_c::sTagProcessor; static void *msbAlloc(size_t size) { - if (UnkTextThing::getInstance()->getShouldHookAllocations() == false) { + if (dLyt_HIO_c::getInstance()->getShouldHookAllocations() == false) { return EGG::Heap::alloc(size, 0x20, nullptr); } else { - return UnkTextThing::getInstance()->allocUnk(size, 0x20); + return dLyt_HIO_c::getInstance()->allocUnk(size, 0x20); } } static void msbFree(void *ptr) { - if (UnkTextThing::getInstance()->getShouldHookAllocations() == false) { + if (dLyt_HIO_c::getInstance()->getShouldHookAllocations() == false) { EGG::Heap::free(ptr, nullptr); } else { - UnkTextThing::getInstance()->destroyUnk(ptr); + dLyt_HIO_c::getInstance()->destroyUnk(ptr); } } @@ -1475,7 +1475,7 @@ int dMessage_c::create() { } int dMessage_c::doDelete() { - UnkTextThing::getInstance()->destroy(); + dLyt_HIO_c::getInstance()->destroy(); if (sTagProcessor != nullptr) { delete sTagProcessor; sTagProcessor = nullptr; @@ -1688,7 +1688,7 @@ MsbtInfo *dMessage_c::getMsbtInfoForIndex(s32 index) { } MsbtInfo *dMessage_c::getMsbtInfoForIndexInternal(s32 index) { - UnkTextThing *thing = UnkTextThing::getInstance(); + dLyt_HIO_c *thing = dLyt_HIO_c::getInstance(); MsbtInfo *overrideMsbt = thing->getOverrideMsbtInfo(index); if (overrideMsbt != nullptr && thing->getShouldOverrideData() == true) { return overrideMsbt; @@ -1701,7 +1701,7 @@ MsbfInfo *dMessage_c::getMsbfInfoForIndex(s32 index) { } MsbfInfo *dMessage_c::getMsbfInfoForIndexInternal(s32 index) { - UnkTextThing *thing = UnkTextThing::getInstance(); + dLyt_HIO_c *thing = dLyt_HIO_c::getInstance(); MsbfInfo *overrideMsbf = thing->getOverrideMsbfInfo(index); if (overrideMsbf != nullptr && thing->getShouldOverrideData() == true) { return overrideMsbf; @@ -1865,7 +1865,7 @@ void *dMessage_c::sZev0; void *dMessage_c::sZevStage; void *dMessage_c::getZev0Internal() { - UnkTextThing *thing = UnkTextThing::getInstance(); + dLyt_HIO_c *thing = dLyt_HIO_c::getInstance(); void *overrideZev = thing->getOverrideZev0(); if (overrideZev != nullptr && thing->getShouldOverrideData() == true) { return overrideZev; @@ -1874,7 +1874,7 @@ void *dMessage_c::getZev0Internal() { } void *dMessage_c::getZevStageInternal() { - UnkTextThing *thing = UnkTextThing::getInstance(); + dLyt_HIO_c *thing = dLyt_HIO_c::getInstance(); void *overrideZev = thing->getOverrideStageZev(); if (overrideZev != nullptr && thing->getShouldOverrideData() == true) { return overrideZev; diff --git a/src/d/d_tag_processor.cpp b/src/d/d_tag_processor.cpp index 37e39f03..fa1cb4e6 100644 --- a/src/d/d_tag_processor.cpp +++ b/src/d/d_tag_processor.cpp @@ -4,7 +4,7 @@ #include "d/a/d_a_base.h" #include "d/d_font_manager.h" #include "d/d_message.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "d/d_textwindow_unk.h" #include "d/lyt/d_lyt_util_items.h" #include "d/lyt/d_textbox.h" @@ -485,7 +485,7 @@ void dTagProcessor_c::formatV( case 0x30000: { if (textBox != nullptr) { backupScale = currScale; - currScale *= UnkTextThing::getField0x768(); + currScale *= dLyt_HIO_c::getField0x768(); currScale *= textBox->getMyScale(); } writePtr = writeTextNormal(src, writePtr, &local_b4, cmdLen, state4); @@ -672,7 +672,7 @@ beginning: if (currScale != newScale) { nw4r::lyt::Size fontSize = mpTextBox->GetFontSize(); posY -= (fontSize.height * ((currScale - newScale) / baseScale) / 2.0f) * - UnkTextThing::getField0x788(); + dLyt_HIO_c::getField0x788(); currScale = newScale; } } @@ -680,7 +680,7 @@ beginning: case 0x30000: { if (b2) { backupScale = currScale; - f32 tmp = backupScale * UnkTextThing::getField0x768(); + f32 tmp = backupScale * dLyt_HIO_c::getField0x768(); if (textBox != nullptr) { tmp *= textBox->getMyScale(); } @@ -695,7 +695,7 @@ beginning: *writePtr = -1; const nw4r::ut::Font *fnt = dFontMng_c::getFont(dFontMng_c::PICTURE); s8 c = getAnimatedIconReplacement(READ_U8(endPtr, 0)); - f32 tmp = UnkTextThing::getField0x764(); + f32 tmp = dLyt_HIO_c::getField0x764(); f32 wid = tmp / fnt->GetWidth() * currScale; f32 charSpace = textBox->GetCharSpace(); f32 charWidth = wid * fnt->GetCharWidth(c); @@ -962,14 +962,14 @@ void dTagProcessor_c::fn_800B4FF0(nw4r::ut::Rect *rect, nw4r::ut::PrintContextGetLineSpace()) / 2.0f; @@ -1391,8 +1391,8 @@ void dTagProcessor_c::changeScale(nw4r::ut::Rect *rect, nw4r::ut::PrintContextwriter->GetScaleV(); field_0x908 = ctx->writer->GetCursorY(); - scale = field_0x904 * UnkTextThing::getField0x768(); - posY = field_0x908 - ctx->writer->GetFontAscent() * UnkTextThing::getField0x76C(); + scale = field_0x904 * dLyt_HIO_c::getField0x768(); + posY = field_0x908 - ctx->writer->GetFontAscent() * dLyt_HIO_c::getField0x76C(); } ctx->writer->SetCursorY(posY); @@ -1402,7 +1402,7 @@ void dTagProcessor_c::changeScale(nw4r::ut::Rect *rect, nw4r::ut::PrintContextGetWidth() * arg; + arg = dLyt_HIO_c::getField0x764() / f->GetWidth() * arg; mLineData.mLineWidths[mLineData.mNumLines] += arg * f->GetCharWidth(c3) + textBox->GetCharSpace(); } @@ -1435,10 +1435,10 @@ void dTagProcessor_c::drawPicture( ) { nw4r::ut::Font *font = dFontMng_c::getFont(dFontMng_c::PICTURE); - f32 f1 = UnkTextThing::getField0x764() * w->GetScaleV() / UnkTextThing::getFn800B1FC0(); - f32 f3 = UnkTextThing::getFn800B1FC0(); - f32 f4 = UnkTextThing::getField0x764(); - f32 f5 = UnkTextThing::getFn800B1FC0(); + f32 f1 = dLyt_HIO_c::getField0x764() * w->GetScaleV() / dLyt_HIO_c::getFn800B1FC0(); + f32 f3 = dLyt_HIO_c::getFn800B1FC0(); + f32 f4 = dLyt_HIO_c::getField0x764(); + f32 f5 = dLyt_HIO_c::getFn800B1FC0(); f32 scaleY2 = w->GetScaleV(); s32 fontHeight = w->GetFont()->GetHeight(); @@ -1528,7 +1528,7 @@ void dTagProcessor_c::configureWriterForIcon( ) { nw4r::ut::Font *font = dFontMng_c::getFont(dFontMng_c::PICTURE); - f32 f1 = UnkTextThing::getField0x764() * ctx->writer->GetScaleV() / UnkTextThing::getFn800B1FC0(); + f32 f1 = dLyt_HIO_c::getField0x764() * ctx->writer->GetScaleV() / dLyt_HIO_c::getFn800B1FC0(); w->SetFont(*font); w->SetFontSize(f1); w->SetGradationMode(nw4r::ut::CharWriter::GRADMODE_V); @@ -1656,39 +1656,39 @@ u8 dTagProcessor_c::symbolToFontIdx(s32 s) { u8 dTagProcessor_c::getAnimatedIconReplacement(u8 arg) { if (arg >= FONT_BTN_NUN_STK_UP && arg <= FONT_BTN_NUN_STK_RIGHT) { - if (mButtonPressAnimTimer >= UnkTextThing::getAnimBtnTotalDuration()) { + if (mButtonPressAnimTimer >= dLyt_HIO_c::getAnimBtnTotalDuration()) { // Show base instead return symbolToFontIdx(FONT_BTN_NUN_STK); } } else if (arg >= FONT_BTN_CROSS_UP && arg <= FONT_BTN_CROSS_RIGHT) { - if (mButtonPressAnimTimer >= UnkTextThing::getAnimBtnTotalDuration()) { + if (mButtonPressAnimTimer >= dLyt_HIO_c::getAnimBtnTotalDuration()) { // Show base instead // Empty Cross Btn return '.'; } } else if (arg == FONT_BTN_NUN_STK_WIGGLE_VERTICAL) { - if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration()) { + if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration()) { return symbolToFontIdx(FONT_BTN_NUN_STK_UP); } - if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) { + if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) { return symbolToFontIdx(FONT_BTN_NUN_STK); } - if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 3) { + if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 3) { return symbolToFontIdx(FONT_BTN_NUN_STK_DOWN); } return symbolToFontIdx(FONT_BTN_NUN_STK); } else if (arg == FONT_BTN_NUN_STK_WIGGLE_HORIZONTAL) { - if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration()) { + if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration()) { return symbolToFontIdx(FONT_BTN_NUN_STK_LEFT); } - if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) { + if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) { return symbolToFontIdx(FONT_BTN_NUN_STK); } - if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 3) { + if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 3) { return symbolToFontIdx(FONT_BTN_NUN_STK_RIGHT); } return symbolToFontIdx(FONT_BTN_NUN_STK); @@ -1699,13 +1699,13 @@ u8 dTagProcessor_c::getAnimatedIconReplacement(u8 arg) { u8 dTagProcessor_c::getAnimatedWiggleIconReplacement(u8 arg) { if (arg == FONT_BTN_NUN_STK_WIGGLE_VERTICAL) { - if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) { + if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) { return symbolToFontIdx(FONT_BTN_NUN_STK_UP); } else { return symbolToFontIdx(FONT_BTN_NUN_STK_DOWN); } } else if (arg == FONT_BTN_NUN_STK_WIGGLE_HORIZONTAL) { - if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) { + if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) { return symbolToFontIdx(FONT_BTN_NUN_STK_LEFT); } else { return symbolToFontIdx(FONT_BTN_NUN_STK_RIGHT); @@ -1716,18 +1716,18 @@ u8 dTagProcessor_c::getAnimatedWiggleIconReplacement(u8 arg) { u8 dTagProcessor_c::getAlphaForAnimatedIcon(u8 arg) { f32 ret = 255.0f; - f32 duration = UnkTextThing::getAnimBtnTransitionDuration(); + f32 duration = dLyt_HIO_c::getAnimBtnTransitionDuration(); if (arg >= FONT_BTN_NUN_STK_UP && arg <= FONT_BTN_NUN_STK_RIGHT) { - if (mButtonPressAnimTimer < UnkTextThing::getAnimBtnTransitionDuration()) { + if (mButtonPressAnimTimer < dLyt_HIO_c::getAnimBtnTransitionDuration()) { // Ramp-up, become visible ret = (mButtonPressAnimTimer / duration) * ret; - } else if (mButtonPressAnimTimer < UnkTextThing::getAnimBtnTotalDuration()) { + } else if (mButtonPressAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration()) { // Fully visible ret = 255.0f; } else if (mButtonPressAnimTimer < - UnkTextThing::getAnimBtnTotalDuration() + UnkTextThing::getAnimBtnTransitionDuration()) { + dLyt_HIO_c::getAnimBtnTotalDuration() + dLyt_HIO_c::getAnimBtnTransitionDuration()) { // Ramp-down, become invisible - ret = (UnkTextThing::getAnimBtnTotalDuration() + UnkTextThing::getAnimBtnTransitionDuration() - + ret = (dLyt_HIO_c::getAnimBtnTotalDuration() + dLyt_HIO_c::getAnimBtnTransitionDuration() - mButtonPressAnimTimer) / duration * ret; } else { @@ -1735,32 +1735,32 @@ u8 dTagProcessor_c::getAlphaForAnimatedIcon(u8 arg) { ret = 0.0f; } } else if (arg >= FONT_BTN_NUN_STK_WIGGLE_VERTICAL && arg <= FONT_BTN_NUN_STK_WIGGLE_HORIZONTAL) { - if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTransitionDuration()) { + if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTransitionDuration()) { // Ramp-up direction variant, become visible ret = (mButtonWiggleAnimTimer / duration) * ret; - } else if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration()) { + } else if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration()) { // Direction fully visible ret = 255.0f; } else if (mButtonWiggleAnimTimer < - UnkTextThing::getAnimBtnTotalDuration() + UnkTextThing::getAnimBtnTransitionDuration()) { + dLyt_HIO_c::getAnimBtnTotalDuration() + dLyt_HIO_c::getAnimBtnTransitionDuration()) { // Ramp-down direction variant, become invisible - ret = (UnkTextThing::getAnimBtnTotalDuration() + UnkTextThing::getAnimBtnTransitionDuration() - + ret = (dLyt_HIO_c::getAnimBtnTotalDuration() + dLyt_HIO_c::getAnimBtnTransitionDuration() - mButtonWiggleAnimTimer) / duration * ret; - } else if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 2) { + } else if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 2) { // Invisible ret = 0.0f; } else if (mButtonWiggleAnimTimer < - UnkTextThing::getAnimBtnTransitionDuration() + UnkTextThing::getAnimBtnTotalDuration() * 2) { + dLyt_HIO_c::getAnimBtnTransitionDuration() + dLyt_HIO_c::getAnimBtnTotalDuration() * 2) { // Ramp-up base variant, become visible - ret = (mButtonWiggleAnimTimer - 2 * UnkTextThing::getAnimBtnTotalDuration()) / duration * ret; - } else if (mButtonWiggleAnimTimer < UnkTextThing::getAnimBtnTotalDuration() * 3) { + ret = (mButtonWiggleAnimTimer - 2 * dLyt_HIO_c::getAnimBtnTotalDuration()) / duration * ret; + } else if (mButtonWiggleAnimTimer < dLyt_HIO_c::getAnimBtnTotalDuration() * 3) { // Base variant fully visible ret = 255.0f; } else if (mButtonWiggleAnimTimer < - UnkTextThing::getAnimBtnTransitionDuration() + UnkTextThing::getAnimBtnTotalDuration() * 3) { + dLyt_HIO_c::getAnimBtnTransitionDuration() + dLyt_HIO_c::getAnimBtnTotalDuration() * 3) { // Ramp-down base variant, become invisible - ret = ((UnkTextThing::getAnimBtnTransitionDuration() + 3 * UnkTextThing::getAnimBtnTotalDuration()) - + ret = ((dLyt_HIO_c::getAnimBtnTransitionDuration() + 3 * dLyt_HIO_c::getAnimBtnTotalDuration()) - mButtonWiggleAnimTimer) / duration * ret; } else { @@ -1780,7 +1780,7 @@ void dTagProcessor_c::setStringArg(const wchar_t *arg, s32 index) { f32 dTagProcessor_c::fn_800B8040(s8 factor, u32 windowType) { // Fun little recursion here - f32 f1 = UnkTextThing::getFn800B1F70(); + f32 f1 = dLyt_HIO_c::getFn800B1F70(); if (windowType == dLytMsgWindow_c::MSG_WINDOW_WOOD) { f32 f2 = fn_800B8040(0, 0); f32 f3 = fn_800B8040(factor, 0); @@ -1810,7 +1810,7 @@ f32 dTagProcessor_c::fn_800B8040(s8 factor, u32 windowType) { case 1: x = 0.95f; break; case 2: x = 1.1f; break; } - x *= UnkTextThing::getFn800B1F10(); + x *= dLyt_HIO_c::getFn800B1F10(); return x * f1; } } @@ -1910,14 +1910,14 @@ f32 dTagProcessor_c::fn_800B85C0(s32 lineIdx) { // the tmp vars, but control flow from the inlines remains f32 w1 = fontSize.width * 0.5f; f32 h1 = fontSize.height * 0.5f; - if (w1 < UnkTextThing::getField0x758() || h1 < UnkTextThing::getField0x758()) { + if (w1 < dLyt_HIO_c::getField0x758() || h1 < dLyt_HIO_c::getField0x758()) { if (w1 < h1) { - f32 tmp = UnkTextThing::getField0x758(); + f32 tmp = dLyt_HIO_c::getField0x758(); } else { - f32 tmp2 = UnkTextThing::getField0x758(); + f32 tmp2 = dLyt_HIO_c::getField0x758(); } } - f32 tmp3 = UnkTextThing::getField0x758(); + f32 tmp3 = dLyt_HIO_c::getField0x758(); // End unused code f32 f7 = (fontSize.height + getTextBox()->GetLineSpace()) / 2.0f; @@ -2016,14 +2016,14 @@ void dTagProcessor_c::setNumericArgs(const s32 *args, s32 numArgs) { void dTagProcessor_c::executeBtnPressTimer() { mButtonPressAnimTimer++; - if (mButtonPressAnimTimer >= UnkTextThing::getAnimBtnTotalDuration() * 2) { + if (mButtonPressAnimTimer >= dLyt_HIO_c::getAnimBtnTotalDuration() * 2) { mButtonPressAnimTimer = 0; } } void dTagProcessor_c::executeBtnWiggleTimer() { mButtonWiggleAnimTimer++; - if (mButtonWiggleAnimTimer >= UnkTextThing::getAnimBtnTotalDuration() * 4) { + if (mButtonWiggleAnimTimer >= dLyt_HIO_c::getAnimBtnTotalDuration() * 4) { mButtonWiggleAnimTimer = 0; } } diff --git a/src/d/d_textwindow_unk.cpp b/src/d/d_textwindow_unk.cpp index 07919f80..36ca6700 100644 --- a/src/d/d_textwindow_unk.cpp +++ b/src/d/d_textwindow_unk.cpp @@ -5,7 +5,7 @@ #include "common.h" #include "d/d_message.h" #include "d/d_tag_processor.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "d/lyt/d_textbox.h" #include "d/lyt/msg_window/d_lyt_msg_window.h" #include "m/m_vec.h" @@ -49,13 +49,13 @@ bool TextWindowUnk::fn_800B2130(const char *label, dTextBox_c *textBox, dLytMsgW } } - UnkTextThing::getInstance()->setStr1(label); + dLyt_HIO_c::getInstance()->setStr1(label); if (dLytMsgWindow_c::getInstance()->fn_80117390(true) != nullptr) { // Regswap - UnkTextThing::getInstance()->setStr2(dLytMsgWindow_c::getInstance()->fn_80117390(true)); + dLyt_HIO_c::getInstance()->setStr2(dLytMsgWindow_c::getInstance()->fn_80117390(true)); s32 idx = dMessage_c::getMsbtIndexForLabel(label); if (idx >= 0) { - UnkTextThing::getInstance()->setStr3(dMessage_c::getMsbtFileName(idx)); + dLyt_HIO_c::getInstance()->setStr3(dMessage_c::getMsbtFileName(idx)); } } return true; diff --git a/src/d/lyt/d2d.cpp b/src/d/lyt/d2d.cpp index 5a625aaf..c5135e28 100644 --- a/src/d/lyt/d2d.cpp +++ b/src/d/lyt/d2d.cpp @@ -2,7 +2,7 @@ #include "d/d_font_manager.h" #include "d/d_message.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "d/lyt/d_textbox.h" #include "d/lyt/d_window.h" #include "egg/gfx/eggScreen.h" @@ -467,8 +467,8 @@ void LytBase_c::setProperties(nw4r::lyt::Pane *pane, f32 posX, f32 posY, f32 sca } nw4r::math::VEC3 t2 = textBox->GetTranslate(); - t2.x += UnkTextThing::getFn800B2030(); - t2.y += UnkTextThing::getFn800B2040(); + t2.x += dLyt_HIO_c::getFn800B2030(); + t2.y += dLyt_HIO_c::getFn800B2040(); textBox->SetTranslate(t2); if (scale != -9999.0f) { @@ -480,7 +480,7 @@ void LytBase_c::setProperties(nw4r::lyt::Pane *pane, f32 posX, f32 posY, f32 sca } else { const nw4r::ut::Font *f = textBox->GetFont(); if (f != nullptr) { - textBox->SetScale(UnkTextThing::getFn800B1FD0()); + textBox->SetScale(dLyt_HIO_c::getFn800B1FD0()); } } @@ -490,17 +490,17 @@ void LytBase_c::setProperties(nw4r::lyt::Pane *pane, f32 posX, f32 posY, f32 sca if (spaceX != -9999.0f) { textBox->SetCharSpace(spaceX); } else { - f6 = UnkTextThing::getFn800B2010(); + f6 = dLyt_HIO_c::getFn800B2010(); } if (spaceY != -9999.0f) { textBox->SetLineSpace(spaceY); } else { - f4 = UnkTextThing::getFn800B1FF0(); + f4 = dLyt_HIO_c::getFn800B1FF0(); } - textBox->SetCharSpace(textBox->GetCharSpace() + UnkTextThing::getFn800B2020() + f6); - textBox->SetLineSpace(textBox->GetLineSpace() + UnkTextThing::getFn800B2000() + f4); + textBox->SetCharSpace(textBox->GetCharSpace() + dLyt_HIO_c::getFn800B2020() + f6); + textBox->SetLineSpace(textBox->GetLineSpace() + dLyt_HIO_c::getFn800B2000() + f4); fn_800AB930(textBox); } diff --git a/src/d/lyt/d_lyt_do_button.cpp b/src/d/lyt/d_lyt_do_button.cpp index c47df16f..4aaadfbd 100644 --- a/src/d/lyt/d_lyt_do_button.cpp +++ b/src/d/lyt/d_lyt_do_button.cpp @@ -10,9 +10,9 @@ #include "sized_string.h" #include "toBeSorted/event_manager.h" -struct DoButtonClass { - DoButtonClass(); - virtual ~DoButtonClass(); +struct dLytDoButton_HIO_c { + dLytDoButton_HIO_c(); + virtual ~dLytDoButton_HIO_c(); u8 field_0x04; u8 field_0x05; @@ -26,9 +26,9 @@ struct DoButtonClass { u8 field_0x16; }; -static DoButtonClass sDoButtonClass; +static dLytDoButton_HIO_c sHio; -DoButtonClass::DoButtonClass() { +dLytDoButton_HIO_c::dLytDoButton_HIO_c() { field_0x04 = 0; field_0x05 = 0x29; field_0x06 = 0x5E; @@ -40,7 +40,7 @@ DoButtonClass::DoButtonClass() { field_0x15 = 0; field_0x16 = 0; } -DoButtonClass::~DoButtonClass() {} +dLytDoButton_HIO_c::~dLytDoButton_HIO_c() {} dLytDobutton_c *dLytDobutton_c::sInstance; @@ -172,7 +172,7 @@ void dLytDobutton_c::executeState_InvisibleTimeCnt() { field_0x48C = 0; } } else { - if (field_0x48C < sDoButtonClass.field_0x15) { + if (field_0x48C < sHio.field_0x15) { field_0x48C++; } else { realize(); @@ -777,7 +777,7 @@ void dLytDobutton_c::fn_8010E3D0(bool b) { f32 tmp = (xBase - left); w1 = mpTextBoxes[0]->GetLineWidth(nullptr) + tmp; } - f32 w = w1 + sDoButtonClass.field_0x10; + f32 w = w1 + sHio.field_0x10; sz3.width = w; sz4.width = w; mpPanes[3]->SetSize(sz3); diff --git a/src/d/lyt/d_lyt_do_button_related.cpp b/src/d/lyt/d_lyt_do_button_related.cpp index 5583ed9d..f98d3058 100644 --- a/src/d/lyt/d_lyt_do_button_related.cpp +++ b/src/d/lyt/d_lyt_do_button_related.cpp @@ -5,6 +5,7 @@ #include "d/lyt/meter/d_lyt_meter.h" #include "toBeSorted/misc_actor.h" +// TODO: Rename _HIO_c when LytDoButtonRelated gets a better name? class LytDoButtonRelatedClass { public: LytDoButtonRelatedClass(); diff --git a/src/d/lyt/d_lyt_map.cpp b/src/d/lyt/d_lyt_map.cpp index 8d63e48e..08a97822 100644 --- a/src/d/lyt/d_lyt_map.cpp +++ b/src/d/lyt/d_lyt_map.cpp @@ -8,9 +8,9 @@ #include "sized_string.h" #include "toBeSorted/arc_managers/layout_arc_manager.h" -struct LytMapConfigMaybe { - LytMapConfigMaybe(); - virtual ~LytMapConfigMaybe(); +struct dLytMap_HIO_c { + dLytMap_HIO_c(); + virtual ~dLytMap_HIO_c(); /* 0x04 */ f32 field_0x04; /* 0x08 */ f32 field_0x08; @@ -40,9 +40,9 @@ struct LytMapConfigMaybe { /* 0x2C */ f32 field_0x2C; }; -LytMapConfigMaybe sLytMapConfig; +dLytMap_HIO_c sHio; -LytMapConfigMaybe::LytMapConfigMaybe() { +dLytMap_HIO_c::dLytMap_HIO_c() { field_0x04 = -10.0f; field_0x10 = 14.0f; field_0x14 = 32.0f; @@ -71,7 +71,7 @@ LytMapConfigMaybe::LytMapConfigMaybe() { field_0x2B = 10; } -LytMapConfigMaybe::~LytMapConfigMaybe() {} +dLytMap_HIO_c::~dLytMap_HIO_c() {} STATE_DEFINE(dLytMapPinIcon_c, Wait); STATE_DEFINE(dLytMapPinIcon_c, ToSelect); diff --git a/src/d/lyt/d_textbox.cpp b/src/d/lyt/d_textbox.cpp index 950d2a63..cb5e5130 100644 --- a/src/d/lyt/d_textbox.cpp +++ b/src/d/lyt/d_textbox.cpp @@ -4,7 +4,7 @@ #include "d/d_font_manager.h" #include "d/d_message.h" #include "d/d_tag_processor.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "d/lyt/msg_window/d_lyt_msg_window.h" #include "libms/msgfile.h" #include "m/m_color.h" @@ -405,7 +405,7 @@ f32 dTextBox_c::GetLinesHeight() const { f32 assumedDefaultSize = 35.0f; - f32 f3 = UnkTextThing::getFn800B1F70(); + f32 f3 = dLyt_HIO_c::getFn800B1F70(); nw4r::lyt::Size size = mMyFontSize; int fontHeight = f->GetHeight(); f3 *= (size.height / assumedDefaultSize) * fontHeight; @@ -493,7 +493,7 @@ void dTextBox_c::init() { } nw4r::lyt::Size sz = GetFontSize(); - f32 scale = UnkTextThing::getFn800B1F70(); + f32 scale = dLyt_HIO_c::getFn800B1F70(); f32 height = sz.height / f1; sz.width = GetFont()->GetWidth() * height * scale; @@ -625,11 +625,11 @@ void dTextBox_c::DrawSelf(const nw4r::lyt::DrawInfo &drawInfo) { unk1 = field_0x1F8 == 1; } if (field_0x1F7 == 1 || (field_0x1F7 == 2 && unk1)) { - f32 f = GetFontSize().height * UnkTextThing::getField0x75C(); + f32 f = GetFontSize().height * dLyt_HIO_c::getField0x75C(); textRect.top -= f; textRect.bottom -= f; } else if (field_0x1F7 == 3 && unk1) { - f32 f = GetFontSize().height * UnkTextThing::getField0x760(); + f32 f = GetFontSize().height * dLyt_HIO_c::getField0x760(); textRect.top -= f; textRect.bottom -= f; } diff --git a/src/d/lyt/meter/d_lyt_meter.cpp b/src/d/lyt/meter/d_lyt_meter.cpp index 6a565c82..39e9da22 100644 --- a/src/d/lyt/meter/d_lyt_meter.cpp +++ b/src/d/lyt/meter/d_lyt_meter.cpp @@ -18,7 +18,7 @@ #include "d/lyt/d_lyt_control_game.h" #include "d/lyt/d_lyt_do_button.h" #include "d/lyt/d_lyt_map.h" -#include "d/lyt/d_lyt_meter_configuration.h" +#include "d/lyt/d_lyt_meter_hio.h" #include "d/lyt/d_lyt_save_mgr.h" #include "d/lyt/d_lyt_unknowns.h" #include "d/lyt/d_window.h" @@ -43,7 +43,7 @@ #include "toBeSorted/misc_actor.h" // clang-format on -static dLytMeterConfiguration_c sConf; +static dLytMeter_HIO_c sHio; dLytMeter_c *dLytMeter_c::sInstance; STATE_DEFINE(dLytMeter1Button_c, Wait); diff --git a/src/d/lyt/meter/d_lyt_meter_ganbari_gauge.cpp b/src/d/lyt/meter/d_lyt_meter_ganbari_gauge.cpp index aeb3f9e1..7e73fea9 100644 --- a/src/d/lyt/meter/d_lyt_meter_ganbari_gauge.cpp +++ b/src/d/lyt/meter/d_lyt_meter_ganbari_gauge.cpp @@ -4,7 +4,7 @@ #include "d/a/d_a_player.h" #include "d/d_camera.h" #include "d/d_sc_game.h" -#include "d/lyt/d_lyt_meter_configuration.h" +#include "d/lyt/d_lyt_meter_hio.h" #include "m/m_vec.h" #include "toBeSorted/d_d3d.h" #include "toBeSorted/event_manager.h" @@ -329,7 +329,7 @@ bool dLytMeterGanbariGauge_c::build(d2d::ResAccIf_c *resAcc) { field_0x54C = 1.0f; field_0x550 = 1.0f; - field_0x548 = dLytMeterConfiguration_c::sInstance->field_0x1C8; + field_0x548 = dLytMeter_HIO_c::sInstance->field_0x1C8; field_0x558 = 0; field_0x559 = 0; @@ -343,7 +343,7 @@ bool dLytMeterGanbariGauge_c::build(d2d::ResAccIf_c *resAcc) { field_0x540 = 0; field_0x534 = 0; - if (dLytMeterConfiguration_c::sInstance->field_0x13C != 0) { + if (dLytMeter_HIO_c::sInstance->field_0x13C != 0) { field_0x534 = 0; } else { field_0x534 = 1; @@ -395,7 +395,7 @@ bool dLytMeterGanbariGauge_c::execute() { if (fn_80104710(false) || (isCrawling() && !fn_801047B0())) { field_0x534 = 1; - } else if (dLytMeterConfiguration_c::GetInstance()->field_0x13C) { + } else if (dLytMeter_HIO_c::GetInstance()->field_0x13C) { field_0x534 = 0; } else { field_0x534 = 1; @@ -503,7 +503,7 @@ bool dLytMeterGanbariGauge_c::execute() { mVec2_c scaleV(scale, scale); mLyt.getLayout()->GetRootPane()->SetScale(scaleV); - if (!field_0x534 && len <= dLytMeterConfiguration_c::GetInstance()->field_0x138 && !fn_80104710(false) && + if (!field_0x534 && len <= dLytMeter_HIO_c::GetInstance()->field_0x138 && !fn_80104710(false) && !isCrawling()) { field_0x530 = 1; } else { @@ -526,8 +526,8 @@ bool dLytMeterGanbariGauge_c::execute() { if (field_0x544 != 0) { if (mStaminaPercent < field_0x550 && - mStaminaPercent < field_0x51C - dLytMeterConfiguration_c::GetInstance()->getField_0x1CC()) { - field_0x548 = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8(); + mStaminaPercent < field_0x51C - dLytMeter_HIO_c::GetInstance()->getField_0x1CC()) { + field_0x548 = dLytMeter_HIO_c::GetInstance()->getField_0x1C8(); field_0x54C = field_0x51C; field_0x550 = mStaminaPercent; mAnm[GANBARI_ANIM_UPDOWN_1].setFrame(field_0x54C * 100.0f); @@ -537,7 +537,7 @@ bool dLytMeterGanbariGauge_c::execute() { field_0x548--; } if (field_0x548 == 0) { - field_0x54C -= dLytMeterConfiguration_c::GetInstance()->getField_0x1D0(); + field_0x54C -= dLytMeter_HIO_c::GetInstance()->getField_0x1D0(); if (field_0x54C < mStaminaPercent) { field_0x544 = 0; mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(true); @@ -552,11 +552,11 @@ bool dLytMeterGanbariGauge_c::execute() { } } } else { - if (mStaminaPercent < field_0x51C - dLytMeterConfiguration_c::GetInstance()->getField_0x1C4()) { + if (mStaminaPercent < field_0x51C - dLytMeter_HIO_c::GetInstance()->getField_0x1C4()) { field_0x544 = 1; field_0x54C = field_0x51C; field_0x550 = mStaminaPercent; - field_0x548 = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8(); + field_0x548 = dLytMeter_HIO_c::GetInstance()->getField_0x1C8(); mAnm[GANBARI_ANIM_UPDOWN_1].setFrame(field_0x54C * 100.0f); mAnm[GANBARI_ANIM_UPDOWN_1].setAnimEnable(true); } else { diff --git a/src/d/lyt/meter/d_lyt_meter_rupy.cpp b/src/d/lyt/meter/d_lyt_meter_rupy.cpp index 9e29ab76..c5987f56 100644 --- a/src/d/lyt/meter/d_lyt_meter_rupy.cpp +++ b/src/d/lyt/meter/d_lyt_meter_rupy.cpp @@ -3,7 +3,7 @@ #include "c/c_math.h" #include "d/a/d_a_item.h" #include "d/lyt/d2d.h" -#include "d/lyt/d_lyt_meter_configuration.h" +#include "d/lyt/d_lyt_meter_hio.h" #include "d/snd/d_snd_small_effect_mgr.h" #include "nw4r/math/math_types.h" @@ -416,10 +416,10 @@ bool dLytMeterRupy_c::updateDisplayedAmount(bool suppressSound) { if (amount != mDisplayedRupeeCount || suppressSound) { bool b = false; if (amount < mDisplayedRupeeCount) { - if (mDisplayedRupeeCount - amount >= dLytMeterConfiguration_c::sInstance->getField_0x1DC()) { - newNumDisplayed = mDisplayedRupeeCount - dLytMeterConfiguration_c::sInstance->getField_0x1E4(); - } else if (mDisplayedRupeeCount - amount >= dLytMeterConfiguration_c::sInstance->getField_0x1D8()) { - newNumDisplayed = mDisplayedRupeeCount - dLytMeterConfiguration_c::sInstance->getField_0x1E0(); + if (mDisplayedRupeeCount - amount >= dLytMeter_HIO_c::sInstance->getField_0x1DC()) { + newNumDisplayed = mDisplayedRupeeCount - dLytMeter_HIO_c::sInstance->getField_0x1E4(); + } else if (mDisplayedRupeeCount - amount >= dLytMeter_HIO_c::sInstance->getField_0x1D8()) { + newNumDisplayed = mDisplayedRupeeCount - dLytMeter_HIO_c::sInstance->getField_0x1E0(); } else { newNumDisplayed = mDisplayedRupeeCount - 1; } @@ -435,10 +435,10 @@ bool dLytMeterRupy_c::updateDisplayedAmount(bool suppressSound) { field_0x8AD = 0; } } else if (amount > mDisplayedRupeeCount) { - if (amount - mDisplayedRupeeCount >= dLytMeterConfiguration_c::sInstance->getField_0x1DC()) { - newNumDisplayed = mDisplayedRupeeCount + dLytMeterConfiguration_c::sInstance->getField_0x1E4(); - } else if (amount - mDisplayedRupeeCount >= dLytMeterConfiguration_c::sInstance->getField_0x1D8()) { - newNumDisplayed = mDisplayedRupeeCount + dLytMeterConfiguration_c::sInstance->getField_0x1E0(); + if (amount - mDisplayedRupeeCount >= dLytMeter_HIO_c::sInstance->getField_0x1DC()) { + newNumDisplayed = mDisplayedRupeeCount + dLytMeter_HIO_c::sInstance->getField_0x1E4(); + } else if (amount - mDisplayedRupeeCount >= dLytMeter_HIO_c::sInstance->getField_0x1D8()) { + newNumDisplayed = mDisplayedRupeeCount + dLytMeter_HIO_c::sInstance->getField_0x1E0(); } else { newNumDisplayed = mDisplayedRupeeCount + 1; } diff --git a/src/d/lyt/meter/d_lyt_meter_shield_gauge.cpp b/src/d/lyt/meter/d_lyt_meter_shield_gauge.cpp index 95887258..7618b0d8 100644 --- a/src/d/lyt/meter/d_lyt_meter_shield_gauge.cpp +++ b/src/d/lyt/meter/d_lyt_meter_shield_gauge.cpp @@ -4,7 +4,7 @@ #include "d/a/d_a_itembase.h" #include "d/d_pouch.h" #include "d/lyt/d2d.h" -#include "d/lyt/d_lyt_meter_configuration.h" +#include "d/lyt/d_lyt_meter_hio.h" #include "d/snd/d_snd_small_effect_mgr.h" #include "toBeSorted/file_manager.h" @@ -67,7 +67,7 @@ bool dLytMeterShieldGauge_c::build(d2d::ResAccIf_c *resAcc) { mCurrentShieldPouchSlot = convertFilePouchSlot(FileManager::GetInstance()->getShieldPouchSlot()); field_0x300 = mAnimatingDurability; field_0x304 = mCurrentDurability; - field_0x2FC = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8(); + field_0x2FC = dLytMeter_HIO_c::GetInstance()->getField_0x1C8(); mMaxDurability = 80.0f; field_0x2F4 = 80.0f; @@ -229,15 +229,15 @@ bool dLytMeterShieldGauge_c::execute() { } } - f32 f1 = dLytMeterConfiguration_c::GetInstance()->getField_0x1CC() * 40.0f / 4.0f; - f32 f2 = dLytMeterConfiguration_c::GetInstance()->getField_0x1D0() * 40.0f / 4.0f; - f32 f3 = dLytMeterConfiguration_c::GetInstance()->getField_0x1C4() * 40.0f / 4.0f; + f32 f1 = dLytMeter_HIO_c::GetInstance()->getField_0x1CC() * 40.0f / 4.0f; + f32 f2 = dLytMeter_HIO_c::GetInstance()->getField_0x1D0() * 40.0f / 4.0f; + f32 f3 = dLytMeter_HIO_c::GetInstance()->getField_0x1C4() * 40.0f / 4.0f; (void)calcUpdownRatio(mCurrentDurability); if (field_0x31F) { if (mCurrentDurability < field_0x304 && mCurrentDurability < mAnimatingDurability - f1) { - field_0x2FC = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8(); + field_0x2FC = dLytMeter_HIO_c::GetInstance()->getField_0x1C8(); field_0x300 = mAnimatingDurability; field_0x304 = mCurrentDurability; field_0x2E4 = calcUpdownRatio(mAnimatingDurability); @@ -262,7 +262,7 @@ bool dLytMeterShieldGauge_c::execute() { field_0x31F = 1; field_0x300 = mAnimatingDurability; field_0x304 = mCurrentDurability; - field_0x2FC = dLytMeterConfiguration_c::GetInstance()->getField_0x1C8(); + field_0x2FC = dLytMeter_HIO_c::GetInstance()->getField_0x1C8(); field_0x2E4 = calcUpdownRatio(mAnimatingDurability); mAnm[SHIELD_ANIM_USE].setFrame(field_0x2F8 - field_0x2E4); mAnm[SHIELD_ANIM_USE].setAnimEnable(true); diff --git a/src/d/lyt/msg_window/d_lyt_msg_window.cpp b/src/d/lyt/msg_window/d_lyt_msg_window.cpp index 0d3d6739..39c09208 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window.cpp @@ -6,7 +6,7 @@ #include "d/d_pad.h" #include "d/d_stage_mgr.h" #include "d/d_tag_processor.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "d/d_textwindow_unk.h" #include "d/lyt/d_lyt_control_game.h" #include "d/lyt/d_lyt_map.h" @@ -42,10 +42,10 @@ #include -class MsgWindowUnkLocalClass { +class dLytMsgWindow_HIO_c { public: - MsgWindowUnkLocalClass(); - virtual ~MsgWindowUnkLocalClass(); + dLytMsgWindow_HIO_c(); + virtual ~dLytMsgWindow_HIO_c(); private: /* 0x04 */ u32 field_0x04; @@ -53,14 +53,14 @@ private: /* 0x09 */ u8 field_0x09; }; -MsgWindowUnkLocalClass mUnk; +dLytMsgWindow_HIO_c sHio; -MsgWindowUnkLocalClass::MsgWindowUnkLocalClass() { +dLytMsgWindow_HIO_c::dLytMsgWindow_HIO_c() { field_0x04 = 8; field_0x08 = 0; field_0x09 = 0; } -MsgWindowUnkLocalClass::~MsgWindowUnkLocalClass() {} +dLytMsgWindow_HIO_c::~dLytMsgWindow_HIO_c() {} STATE_DEFINE(dLytMsgWindow_c, Invisible); STATE_DEFINE(dLytMsgWindow_c, In); @@ -855,7 +855,7 @@ void dLytMsgWindow_c::removeSubMsgManagers() { mpCurrentSubtype = nullptr; field_0x1220 = 0; - UnkTextThing::getInstance()->setStr2(""); - UnkTextThing::getInstance()->setStr1(""); - UnkTextThing::getInstance()->setStr3(""); + dLyt_HIO_c::getInstance()->setStr2(""); + dLyt_HIO_c::getInstance()->setStr1(""); + dLyt_HIO_c::getInstance()->setStr3(""); } diff --git a/src/d/lyt/msg_window/d_lyt_msg_window_link.cpp b/src/d/lyt/msg_window/d_lyt_msg_window_link.cpp index 550dd28e..7b03ef4b 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window_link.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window_link.cpp @@ -2,7 +2,7 @@ #include "common.h" #include "d/d_tag_processor.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "d/lyt/d2d.h" #include "d/lyt/d_textbox.h" #include "d/lyt/msg_window/d_lyt_msg_window_common.h" @@ -172,7 +172,7 @@ void dLytMsgWindowLink_c::executeState_In() { void dLytMsgWindowLink_c::finalizeState_In() {} void dLytMsgWindowLink_c::initializeState_Wait() { - mWaitDelay = UnkTextThing::getInstance()->getMsgWindowWaitDelay(); + mWaitDelay = dLyt_HIO_c::getInstance()->getMsgWindowWaitDelay(); } void dLytMsgWindowLink_c::executeState_Wait() { if (--mWaitDelay > 0) { diff --git a/src/d/lyt/msg_window/d_lyt_msg_window_sword.cpp b/src/d/lyt/msg_window/d_lyt_msg_window_sword.cpp index 7a7e755c..9397fd2a 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window_sword.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window_sword.cpp @@ -2,7 +2,7 @@ #include "common.h" #include "d/d_tag_processor.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "d/lyt/d2d.h" #include "d/lyt/d_textbox.h" #include "m/m_vec.h" @@ -195,7 +195,7 @@ void dLytMsgWindowSword_c::executeState_In() { void dLytMsgWindowSword_c::finalizeState_In() {} void dLytMsgWindowSword_c::initializeState_Wait() { - mWaitDelay = UnkTextThing::getInstance()->getMsgWindowWaitDelay(); + mWaitDelay = dLyt_HIO_c::getInstance()->getMsgWindowWaitDelay(); } void dLytMsgWindowSword_c::executeState_Wait() { if (--mWaitDelay > 0) { diff --git a/src/d/lyt/msg_window/d_lyt_msg_window_talk.cpp b/src/d/lyt/msg_window/d_lyt_msg_window_talk.cpp index 4dfde09f..30adeeab 100644 --- a/src/d/lyt/msg_window/d_lyt_msg_window_talk.cpp +++ b/src/d/lyt/msg_window/d_lyt_msg_window_talk.cpp @@ -2,7 +2,7 @@ #include "common.h" #include "d/d_tag_processor.h" -#include "d/d_textunk.h" +#include "d/d_lyt_hio.h" #include "d/lyt/d2d.h" #include "d/lyt/d_textbox.h" #include "d/lyt/msg_window/d_lyt_msg_window_common.h" @@ -172,7 +172,7 @@ void dLytMsgWindowTalk_c::executeState_In() { void dLytMsgWindowTalk_c::finalizeState_In() {} void dLytMsgWindowTalk_c::initializeState_Wait() { - mWaitDelay = UnkTextThing::getInstance()->getMsgWindowWaitDelay(); + mWaitDelay = dLyt_HIO_c::getInstance()->getMsgWindowWaitDelay(); } void dLytMsgWindowTalk_c::executeState_Wait() { if (--mWaitDelay > 0) { diff --git a/src/toBeSorted/attention.cpp b/src/toBeSorted/attention.cpp index d7b17d1f..21dd1b4a 100644 --- a/src/toBeSorted/attention.cpp +++ b/src/toBeSorted/attention.cpp @@ -15,11 +15,11 @@ mVec3_c getPosCopy3(const dAcObjBase_c &actor) { return actor.poscopy3; } -class UnkAttnClass { +class dAttention_HIO_c { public: u8 field_0x00; - UnkAttnClass(); - virtual ~UnkAttnClass() {} + dAttention_HIO_c(); + virtual ~dAttention_HIO_c() {} void init(); void remove(); @@ -33,11 +33,11 @@ public: f32 field_0x14; }; -void UnkAttnClass::init() {} +void dAttention_HIO_c::init() {} -void UnkAttnClass::remove() {} +void dAttention_HIO_c::remove() {} -UnkAttnClass::UnkAttnClass() +dAttention_HIO_c::dAttention_HIO_c() : field_0x00(0), field_0x08(field_0x00 | 8), field_0x0A(300), @@ -46,14 +46,14 @@ UnkAttnClass::UnkAttnClass() field_0x12(10), field_0x14(1.0f) {} -UnkAttnClass attnClass; +dAttention_HIO_c sHio; AttentionManager::AttentionManager() { sInstance = this; } AttentionManager::~AttentionManager() { - attnClass.remove(); + sHio.remove(); sInstance = nullptr; } @@ -76,7 +76,7 @@ bool AttentionManager::create() { mModels.mState = NONE; mTargeted = false; field_0xB68 = 0; - attnClass.init(); + sHio.init(); field_0xBDC = 0; field_0xBD5 = 0; field_0xBD4 = 0; @@ -200,7 +200,7 @@ bool AttentionManager::switchTarget(s32 idx) { mHoldingZ = checkZButtonHeld(); AttentionPool *left = mGroups[idx].getPool(); AttentionPool *right = mGroups[idx].getOtherPool(); - if ((attnClass.field_0x08 & 8) != 0 && (mModels.mState == OFF || mModels.mState == NONE) && checkLink2() && + if ((sHio.field_0x08 & 8) != 0 && (mModels.mState == OFF || mModels.mState == NONE) && checkLink2() && right->mNumUsedRefs != 0) { zPressed = true; } @@ -252,7 +252,7 @@ bool AttentionManager::playTargetAnim(s32 idx) { PSMTXTrans(mtx, v.x, v.y, v.z); mModels.mMdls->mMdl.setLocalMtx(mtx); - mModels.mMdls->mMdl.setScale(attnClass.field_0x14, attnClass.field_0x14, attnClass.field_0x14); + mModels.mMdls->mMdl.setScale(sHio.field_0x14, sHio.field_0x14, sHio.field_0x14); doSomething = true; } From df64c929446fb5e90fae89b650aff5d98a165625 Mon Sep 17 00:00:00 2001 From: Swekka Date: Sun, 6 Jul 2025 19:28:08 +0200 Subject: [PATCH 11/36] review --- src/REL/d/a/obj/d_a_obj_chest.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/REL/d/a/obj/d_a_obj_chest.cpp b/src/REL/d/a/obj/d_a_obj_chest.cpp index 33a242dd..aa66aec0 100644 --- a/src/REL/d/a/obj/d_a_obj_chest.cpp +++ b/src/REL/d/a/obj/d_a_obj_chest.cpp @@ -93,7 +93,7 @@ bool dAcOChest_c::createHeap() { mResFile = nw4r::g3d::ResFile(insideMdlData); nw4r::g3d::ResMdl mdl = mResFile.GetResMdl(INSIDE_MODEL_NAMES[getFromParams(0x10, 0xFF)]); if (!mInsideMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr)) { - return NOT_READY; + return false; } } @@ -103,7 +103,7 @@ bool dAcOChest_c::createHeap() { fn_326_C90(); bool ok = !mBgW.Set((cBgD_t *)dzb, (PLC *)plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale); if (!ok) { - return NOT_READY; + return false; } return mBgW.InitMapStuff(&heap_allocator); } From e6dc8d7a3433c4704d42bef99fba7c98a17fc87a Mon Sep 17 00:00:00 2001 From: Swekka Date: Mon, 7 Jul 2025 10:23:50 +0200 Subject: [PATCH 12/36] d_a_obj_decoB 95% --- .../SOUE01/rels/d_a_obj_decoBNP/symbols.txt | 34 +++++----- include/d/a/obj/d_a_obj_decoB.h | 18 +++++- src/REL/d/a/obj/d_a_obj_decoB.cpp | 64 ++++++++++++++++++- 3 files changed, 97 insertions(+), 19 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_decoBNP/symbols.txt b/config/SOUE01/rels/d_a_obj_decoBNP/symbols.txt index 17db5296..b9fc7ea8 100644 --- a/config/SOUE01/rels/d_a_obj_decoBNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_decoBNP/symbols.txt @@ -8,13 +8,13 @@ __dt__24sFState_c<11dAcODecoB_c>Fv = .text:0x000001B0; // type:function size:0x5 __dt__27sFStateFct_c<11dAcODecoB_c>Fv = .text:0x00000210; // type:function size:0x6C __dt__80sStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000280; // type:function size:0xA0 __dt__50sFStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000320; // type:function size:0xA4 -fn_611_3D0 = .text:0x000003D0; // type:function size:0x6C -fn_611_440 = .text:0x00000440; // type:function size:0xCC +createHeap__11dAcODecoB_cFv = .text:0x000003D0; // type:function size:0x6C +create__11dAcODecoB_cFv = .text:0x00000440; // type:function size:0xCC changeState__80sStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000510; // type:function size:0x10 -fn_611_520 = .text:0x00000520; // type:function size:0x8 -fn_611_530 = .text:0x00000530; // type:function size:0x74 +doDelete__11dAcODecoB_cFv = .text:0x00000520; // type:function size:0x8 +actorExecute__11dAcODecoB_cFv = .text:0x00000530; // type:function size:0x74 executeState__80sStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000005B0; // type:function size:0x10 -fn_611_5C0 = .text:0x000005C0; // type:function size:0x28 +draw__11dAcODecoB_cFv = .text:0x000005C0; // type:function size:0x28 initializeState_Wait__11dAcODecoB_cFv = .text:0x000005F0; // type:function size:0x4 executeState_Wait__11dAcODecoB_cFv = .text:0x00000600; // type:function size:0x14C finalizeState_Wait__11dAcODecoB_cFv = .text:0x00000750; // type:function size:0x4 @@ -40,17 +40,17 @@ isSameName__26sFStateID_c<11dAcODecoB_c>CFPCc = .text:0x00000B70; // type:functi _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_611_rodata_0 = .rodata:0x00000000; // type:object size:0x34 data:float +lbl_611_rodata_0 = .rodata:0x00000000; // type:object size:0x34 scope:local data:float g_profile_OBJ_DECOB = .data:0x00000000; // type:object size:0x10 data:4byte -lbl_611_data_10 = .data:0x00000010; // type:object size:0x8 -lbl_611_data_18 = .data:0x00000018; // type:object size:0x1C -lbl_611_data_34 = .data:0x00000034; // type:object size:0x4 align:4 data:float -lbl_611_data_38 = .data:0x00000038; // type:object size:0x80 -lbl_611_data_B8 = .data:0x000000B8; // type:object size:0x30 -lbl_611_data_E8 = .data:0x000000E8; // type:object size:0x30 -lbl_611_data_118 = .data:0x00000118; // type:object size:0x18 -lbl_611_data_130 = .data:0x00000130; // type:object size:0x58 -lbl_611_data_188 = .data:0x00000188; // type:object size:0x34 +lbl_611_data_10 = .data:0x00000010; // type:object size:0x8 scope:local +lbl_611_data_18 = .data:0x00000018; // type:object size:0x1C scope:local +lbl_611_data_34 = .data:0x00000034; // type:object size:0x4 scope:local align:4 data:float +__vt__11dAcODecoB_c = .data:0x00000038; // type:object size:0x80 +__vt__50sFStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c> = .data:0x000000B8; // type:object size:0x30 +__vt__80sStateMgr_c<11dAcODecoB_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000000E8; // type:object size:0x30 +lbl_611_data_118 = .data:0x00000118; // type:object size:0x18 scope:local +lbl_611_data_130 = .data:0x00000130; // type:object size:0x58 scope:local +__vt__26sFStateID_c<11dAcODecoB_c> = .data:0x00000188; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_611_bss_8 = .bss:0x00000008; // type:object size:0x10 -lbl_611_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte +lbl_611_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local +lbl_611_bss_18 = .bss:0x00000018; // type:object size:0x30 scope:local data:4byte diff --git a/include/d/a/obj/d_a_obj_decoB.h b/include/d/a/obj/d_a_obj_decoB.h index c6efb152..d6bbf259 100644 --- a/include/d/a/obj/d_a_obj_decoB.h +++ b/include/d/a/obj/d_a_obj_decoB.h @@ -2,6 +2,9 @@ #define D_A_OBJ_DECOB_H #include "d/a/obj/d_a_obj_base.h" +#include "m/m3d/m_smdl.h" +#include "m/m_angle.h" +#include "nw4r/g3d/res/g3d_resfile.h" #include "s/s_State.hpp" #include "s/s_StateMgr.hpp" @@ -10,10 +13,23 @@ public: dAcODecoB_c() : mStateMgr(*this, sStateID::null) {} virtual ~dAcODecoB_c() {} + virtual bool createHeap() override; + virtual int create() override; + virtual int doDelete() override; + virtual int actorExecute() override; + virtual int draw() override; + STATE_FUNC_DECLARE(dAcODecoB_c, Wait); private: - /* 0x??? */ STATE_MGR_DECLARE(dAcODecoB_c); + /* 0x330 */ nw4r::g3d::ResFile mResFile; + /* 0x334 */ m3d::smdl_c mMdl; + /* 0x350 */ STATE_MGR_DECLARE(dAcODecoB_c); + /* 0x38C */ u16 padding_0x38C; + /* 0x38E */ mAng field_0x38E; + + static f32 lbl_611_data_34; + static const f32 lbl_611_rodata_30; }; #endif diff --git a/src/REL/d/a/obj/d_a_obj_decoB.cpp b/src/REL/d/a/obj/d_a_obj_decoB.cpp index 2fb170c0..a40e1c28 100644 --- a/src/REL/d/a/obj/d_a_obj_decoB.cpp +++ b/src/REL/d/a/obj/d_a_obj_decoB.cpp @@ -1,9 +1,71 @@ #include "d/a/obj/d_a_obj_decoB.h" +#include "common.h" +#include "d/a/d_a_player.h" +#include "f/f_base.h" +#include "m/m_vec.h" +#include "nw4r/g3d/res/g3d_resfile.h" +#include "nw4r/g3d/res/g3d_resmdl.h" +#include "rvl/MTX/mtx.h" + SPECIAL_ACTOR_PROFILE(OBJ_DECOB, dAcODecoB_c, fProfile::OBJ_DECOB, 0x161, 0, 3); STATE_DEFINE(dAcODecoB_c, Wait); +bool dAcODecoB_c::createHeap() { + void *data = getOarcResFile("DecoB"); + mResFile = nw4r::g3d::ResFile(data); + nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("DecoB"); + return mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr); +} + +int dAcODecoB_c::create() { + if (!initAllocatorWork1Heap(0x1000, "dAcODecoB_c::m_allocator", 0x20)) { + return FAILED; + } + forwardAccel = 0.0f; + forwardMaxSpeed = 0.0f; + mStateMgr.changeState(StateID_Wait); + boundingBox.Set(mVec3_c(-350.0f, 100.0f, -100.0f), mVec3_c(350.0f, -300.0f, 100.0f)); + return SUCCEEDED; +} + +int dAcODecoB_c::doDelete() { + return SUCCEEDED; +} + +int dAcODecoB_c::actorExecute() { + mStateMgr.executeState(); + PSMTXTrans(mWorldMtx, position.x, position.y, position.z); + mWorldMtx.ZXYrotM(rotation); + mMdl.setLocalMtx(mWorldMtx); + return SUCCEEDED; +} + +int dAcODecoB_c::draw() { + drawModelType1(&mMdl); + return SUCCEEDED; +} + void dAcODecoB_c::initializeState_Wait() {} -void dAcODecoB_c::executeState_Wait() {} + +f32 dAcODecoB_c::lbl_611_data_34 = 0.95f; + +void dAcODecoB_c::executeState_Wait() { + if (dAcPy_c::GetLink() != nullptr && dAcPy_c::GetLink()->checkFlags0x350(0x2000)) { + mVec3_c deltaPosition = dAcPy_c::GetLink()->position - position; + f32 distance = EGG::Math::sqrt(deltaPosition.squareMagXZ()); + distance = (2000.0f - distance) / 2000.0f; + if (distance < 0.0f) { + distance = 0.0f; + } + field_0x38E = distance * 2048.0f; + } + field_0x38E -= rotation.x * 0.05f; + field_0x38E = field_0x38E * lbl_611_data_34; + rotation.x += field_0x38E; +} + +const f32 dAcODecoB_c::lbl_611_rodata_30 = 2000.0f; + void dAcODecoB_c::finalizeState_Wait() {} From 3ca82f7e9cc4cd549ecd7b16fb660fdd4f4f5301 Mon Sep 17 00:00:00 2001 From: Swekka Date: Mon, 7 Jul 2025 12:26:55 +0200 Subject: [PATCH 13/36] d_a_obj_cloud_dive 93% --- .../rels/d_a_obj_cloud_diveNP/symbols.txt | 42 +++---- config/SOUE01/symbols.txt | 2 +- include/d/a/d_a_item.h | 1 + include/d/a/obj/d_a_obj_cloud_dive.h | 26 ++++- src/REL/d/a/obj/d_a_obj_cloud_dive.cpp | 107 +++++++++++++++++- 5 files changed, 152 insertions(+), 26 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_cloud_diveNP/symbols.txt b/config/SOUE01/rels/d_a_obj_cloud_diveNP/symbols.txt index 539b47fb..cbb28fc2 100644 --- a/config/SOUE01/rels/d_a_obj_cloud_diveNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_cloud_diveNP/symbols.txt @@ -8,21 +8,21 @@ __dt__28sFState_c<15dAcOcloudDive_c>Fv = .text:0x000001C0; // type:function size __dt__31sFStateFct_c<15dAcOcloudDive_c>Fv = .text:0x00000220; // type:function size:0x6C __dt__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000290; // type:function size:0xA0 __dt__54sFStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000330; // type:function size:0xA4 -fn_350_3E0 = .text:0x000003E0; // type:function size:0x8 -fn_350_3F0 = .text:0x000003F0; // type:function size:0x120 +createHeap__15dAcOcloudDive_cFv = .text:0x000003E0; // type:function size:0x8 +create__15dAcOcloudDive_cFv = .text:0x000003F0; // type:function size:0x120 changeState__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000510; // type:function size:0x10 -fn_350_520 = .text:0x00000520; // type:function size:0x8 -fn_350_530 = .text:0x00000530; // type:function size:0xB8 +doDelete__15dAcOcloudDive_cFv = .text:0x00000520; // type:function size:0x8 +actorExecute__15dAcOcloudDive_cFv = .text:0x00000530; // type:function size:0xB8 executeState__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000005F0; // type:function size:0x10 -fn_350_600 = .text:0x00000600; // type:function size:0x8 +draw__15dAcOcloudDive_cFv = .text:0x00000600; // type:function size:0x8 initializeState_Wait__15dAcOcloudDive_cFv = .text:0x00000610; // type:function size:0x4 executeState_Wait__15dAcOcloudDive_cFv = .text:0x00000620; // type:function size:0x8C finalizeState_Wait__15dAcOcloudDive_cFv = .text:0x000006B0; // type:function size:0x4 initializeState_Dead__15dAcOcloudDive_cFv = .text:0x000006C0; // type:function size:0x4 executeState_Dead__15dAcOcloudDive_cFv = .text:0x000006D0; // type:function size:0x4 finalizeState_Dead__15dAcOcloudDive_cFv = .text:0x000006E0; // type:function size:0x4 -fn_350_6F0 = .text:0x000006F0; // type:function size:0x6C -fn_350_760 = .text:0x00000760; // type:function size:0xDC +fn_350_6F0__15dAcOcloudDive_cFv = .text:0x000006F0; // type:function size:0x6C +fn_350_760__15dAcOcloudDive_cFv = .text:0x00000760; // type:function size:0xDC __dt__15dAcOcloudDive_cFv = .text:0x00000840; // type:function size:0xD8 getStateID__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000920; // type:function size:0x10 build__31sFStateFct_c<15dAcOcloudDive_c>FRC12sStateIDIf_c = .text:0x00000930; // type:function size:0x60 @@ -45,19 +45,19 @@ isSameName__30sFStateID_c<15dAcOcloudDive_c>CFPCc = .text:0x00000D10; // type:fu _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_350_rodata_0 = .rodata:0x00000000; // type:object size:0x20 data:float -lbl_350_rodata_20 = .rodata:0x00000020; // type:object size:0x4 align:4 data:float -lbl_350_rodata_24 = .rodata:0x00000024; // type:object size:0x4 align:4 data:float +lbl_350_rodata_0 = .rodata:0x00000000; // type:object size:0x20 scope:local data:float +lbl_350_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 data:float +lbl_350_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local align:4 data:float g_profile_OBJ_CLOUD_DIVE = .data:0x00000000; // type:object size:0x10 data:4byte -lbl_350_data_10 = .data:0x00000010; // type:object size:0x30 -lbl_350_data_40 = .data:0x00000040; // type:object size:0x20 -lbl_350_data_60 = .data:0x00000060; // type:object size:0x80 -lbl_350_data_E0 = .data:0x000000E0; // type:object size:0x30 -lbl_350_data_110 = .data:0x00000110; // type:object size:0x30 -lbl_350_data_140 = .data:0x00000140; // type:object size:0x18 -lbl_350_data_158 = .data:0x00000158; // type:object size:0xA0 -lbl_350_data_1F8 = .data:0x000001F8; // type:object size:0x34 +lbl_350_data_10 = .data:0x00000010; // type:object size:0x30 scope:local +lbl_350_data_40 = .data:0x00000040; // type:object size:0x20 scope:local +__vt__15dAcOcloudDive_c = .data:0x00000060; // type:object size:0x80 +__vt__54sFStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c> = .data:0x000000E0; // type:object size:0x30 +__vt__84sStateMgr_c<15dAcOcloudDive_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000110; // type:object size:0x30 +lbl_350_data_140 = .data:0x00000140; // type:object size:0x18 scope:local +lbl_350_data_158 = .data:0x00000158; // type:object size:0xA0 scope:local +__vt__30sFStateID_c<15dAcOcloudDive_c> = .data:0x000001F8; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_350_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte -lbl_350_bss_18 = .bss:0x00000018; // type:object size:0x40 data:4byte -lbl_350_bss_58 = .bss:0x00000058; // type:object size:0x30 data:4byte +lbl_350_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local data:4byte +lbl_350_bss_18 = .bss:0x00000018; // type:object size:0x40 scope:local data:4byte +lbl_350_bss_58 = .bss:0x00000058; // type:object size:0x30 scope:local data:4byte diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index b148b49f..bf8eb231 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -13365,7 +13365,7 @@ spawnItem2 = .text:0x80248930; // type:function size:0xBC fn_802489F0 = .text:0x802489F0; // type:function size:0x298 spawnDrop = .text:0x80248C90; // type:function size:0x3D0 giveItem2 = .text:0x80249060; // type:function size:0x84 -giveItem22 = .text:0x802490F0; // type:function size:0x4 +giveItem22__9dAcItem_cF7ITEM_IDll = .text:0x802490F0; // type:function size:0x4 fn_80249100 = .text:0x80249100; // type:function size:0x44 giveItem3 = .text:0x80249150; // type:function size:0x60 fn_802491B0 = .text:0x802491B0; // type:function size:0x54 diff --git a/include/d/a/d_a_item.h b/include/d/a/d_a_item.h index 00349711..25bdf8f5 100644 --- a/include/d/a/d_a_item.h +++ b/include/d/a/d_a_item.h @@ -46,6 +46,7 @@ public: static void spawnItem(u16 item, u32 room, const mVec3_c &pos, const mAng3_c &rot, u32 params, u32 arg); static void spawnDrop(u16 item, u32 room, const mVec3_c &pos, const mAng3_c &rot); + static void giveItem22(ITEM_ID, s32, s32); static void giveItem(ITEM_ID, s32, s32); static u32 checkFlag(u32 flag); static bool hasItem(u32 flag) { diff --git a/include/d/a/obj/d_a_obj_cloud_dive.h b/include/d/a/obj/d_a_obj_cloud_dive.h index c13b75f9..419a9ad7 100644 --- a/include/d/a/obj/d_a_obj_cloud_dive.h +++ b/include/d/a/obj/d_a_obj_cloud_dive.h @@ -2,19 +2,41 @@ #define D_A_OBJ_CLOUD_DIVE_H #include "d/a/obj/d_a_obj_base.h" +#include "d/col/cc/d_cc_d.h" +#include "m/m3d/m_smdl.h" +#include "nw4r/g3d/res/g3d_resfile.h" #include "s/s_State.hpp" -#include "s/s_StateMgr.hpp" class dAcOcloudDive_c : public dAcObjBase_c { public: dAcOcloudDive_c() : mStateMgr(*this, sStateID::null) {} virtual ~dAcOcloudDive_c() {} + virtual bool createHeap() override; + virtual int create() override; + virtual int doDelete() override; + virtual int actorExecute() override; + virtual int draw() override; + STATE_FUNC_DECLARE(dAcOcloudDive_c, Wait); STATE_FUNC_DECLARE(dAcOcloudDive_c, Dead); private: - /* 0x??? */ STATE_MGR_DECLARE(dAcOcloudDive_c); + bool fn_350_6F0(); + bool fn_350_760(); + + /* 0x330 */ nw4r::g3d::ResFile mResFile; + /* 0x334 */ m3d::smdl_c mMdl; + /* 0x350 */ dCcD_Cyl mCollider; + /* 0x4A0 */ STATE_MGR_DECLARE(dAcOcloudDive_c); + /* 0x4DC */ u8 field_0x4DC; + /* 0x4DD */ u8 mItemID; + /* 0x4E0 */ f32 mRadius; + + static const f32 mRadius1; + static const f32 mRadius2; + static const f32 lbl_350_rodata_8; + static dCcD_SrcCyl sCylSrc; }; #endif diff --git a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp index df3e3ac6..598918fa 100644 --- a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp +++ b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp @@ -1,13 +1,116 @@ #include "d/a/obj/d_a_obj_cloud_dive.h" +#include "d/a/d_a_item.h" +#include "d/a/d_a_player.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/col/cc/d_cc_s.h" +#include "egg/math/eggMath.h" +#include "f/f_base.h" +#include "m/m_vec.h" + SPECIAL_ACTOR_PROFILE(OBJ_CLOUD_DIVE, dAcOcloudDive_c, fProfile::OBJ_CLOUD_DIVE, 0x1C2, 0, 0); +const f32 dAcOcloudDive_c::mRadius1 = 100.0f; +const f32 dAcOcloudDive_c::mRadius2 = 200.0f; +const f32 dAcOcloudDive_c::lbl_350_rodata_8 = 40.0f; + +dCcD_SrcCyl dAcOcloudDive_c::sCylSrc = { + /* mObjInf */ + {/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + /* mObjTg */ + {AT_TYPE_BOMB, 0x111, {0, 0, 0x407}, 0, 0}, + /* mObjCo */ {0}}, + /* mCylInf */ + {100.f, 10.f} +}; + STATE_DEFINE(dAcOcloudDive_c, Wait); STATE_DEFINE(dAcOcloudDive_c, Dead); +bool dAcOcloudDive_c::createHeap() { + return true; +} + +int dAcOcloudDive_c::create() { + CREATE_ALLOCATOR(dAcOcloudDive_c); + mStts.mRank = 0xD; + mCollider.Set(sCylSrc); + mCollider.mStts = &mStts; + field_0x4DC = getFromParams(0, 3); + mItemID = getFromParams(2, 0xFF); + if ((u16)getFromParams(2, 0xFF) == 0xFF) { + mItemID = 0; + } + if (field_0x4DC == 1) { + mRadius = mRadius2; + } else { + mRadius = mRadius1; + } + updateMatrix(); + mStateMgr.changeState(StateID_Wait); + boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f)); + return SUCCEEDED; +} + +int dAcOcloudDive_c::doDelete() { + return SUCCEEDED; +} + +int dAcOcloudDive_c::actorExecute() { + mStateMgr.executeState(); + mCollider.SetR(mRadius); + mCollider.SetH(40.0f); + mVec3_c fStack = position - mVec3_c(0.0f, 20.0f, 0.0f); + mCollider.SetC(fStack); + dCcS::GetInstance()->Set(&mCollider); + return SUCCEEDED; +} + +int dAcOcloudDive_c::draw() { + return SUCCEEDED; +} + void dAcOcloudDive_c::initializeState_Wait() {} -void dAcOcloudDive_c::executeState_Wait() {} + +void dAcOcloudDive_c::executeState_Wait() { + if (fn_350_6F0()) { + mStateMgr.changeState(StateID_Wait); + } + if (fn_350_760()) { + dAcItem_c::giveItem22((ITEM_ID)mItemID, 0, -1); + mStateMgr.changeState(StateID_Wait); + } +} + void dAcOcloudDive_c::finalizeState_Wait() {} -void dAcOcloudDive_c::initializeState_Dead() {} + +void dAcOcloudDive_c::initializeState_Dead() { + deleteRequest(); +} + void dAcOcloudDive_c::executeState_Dead() {} void dAcOcloudDive_c::finalizeState_Dead() {} + +bool dAcOcloudDive_c::fn_350_6F0() { + return mCollider.mTg.mRPrm & 1 && mCollider.mTg.GetActor() != nullptr && mCollider.ChkTgAtHitType(0x20); +} + +bool dAcOcloudDive_c::fn_350_760() { + mVec3_c deltaPosition = dAcPy_c::GetLink()->position - position; + f32 distance = EGG::Math::sqrt(deltaPosition.squareMagXZ()); + + // return distance <= mRadius && deltaPosition.y <= 20.0f && deltaPosition.y >= -20.0f; + + bool temp = false; + if (distance <= mRadius) { + if (deltaPosition.y <= 20.0f) { + temp = true; + } + } + if (temp) { + if (deltaPosition.y >= -20.0f) { + return true; + } + } + return false; +} From 75ed27c709d9d8f8e40fd29434b9f23aa4850607 Mon Sep 17 00:00:00 2001 From: Swekka Date: Mon, 7 Jul 2025 12:32:32 +0200 Subject: [PATCH 14/36] match actorExecute --- src/REL/d/a/obj/d_a_obj_cloud_dive.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp index 598918fa..9580fcec 100644 --- a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp +++ b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp @@ -60,8 +60,8 @@ int dAcOcloudDive_c::actorExecute() { mStateMgr.executeState(); mCollider.SetR(mRadius); mCollider.SetH(40.0f); - mVec3_c fStack = position - mVec3_c(0.0f, 20.0f, 0.0f); - mCollider.SetC(fStack); + // mVec3_c fStack = ; + mCollider.SetC(position - mVec3_c(0.0f, 20.0f, 0.0f)); dCcS::GetInstance()->Set(&mCollider); return SUCCEEDED; } From eeba8eb8c483819b13ab74cf228874e3b6c0dd98 Mon Sep 17 00:00:00 2001 From: Swekka Date: Mon, 7 Jul 2025 12:44:26 +0200 Subject: [PATCH 15/36] cleanup --- src/REL/d/a/obj/d_a_obj_cloud_dive.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp index 9580fcec..edafd1fb 100644 --- a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp +++ b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp @@ -60,7 +60,6 @@ int dAcOcloudDive_c::actorExecute() { mStateMgr.executeState(); mCollider.SetR(mRadius); mCollider.SetH(40.0f); - // mVec3_c fStack = ; mCollider.SetC(position - mVec3_c(0.0f, 20.0f, 0.0f)); dCcS::GetInstance()->Set(&mCollider); return SUCCEEDED; From 03b9d32cea482026cdc9c193fe32194b5a1fdb93 Mon Sep 17 00:00:00 2001 From: Swekka Date: Mon, 7 Jul 2025 18:35:48 +0200 Subject: [PATCH 16/36] d_a_obj_cloud_dive OK + review --- configure.py | 2 +- include/d/a/obj/d_a_obj_cloud_dive.h | 8 ++++---- src/REL/d/a/obj/d_a_obj_cloud_dive.cpp | 22 +++++++++++----------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configure.py b/configure.py index 730e293a..6f817798 100644 --- a/configure.py +++ b/configure.py @@ -2014,7 +2014,7 @@ config.libs = [ NonMatching, "d_a_obj_clearness_wall", "REL/d/a/obj/d_a_obj_clearness_wall.cpp" ), Rel(NonMatching, "d_a_obj_clef", "REL/d/a/obj/d_a_obj_clef.cpp"), - Rel(NonMatching, "d_a_obj_cloud_dive", "REL/d/a/obj/d_a_obj_cloud_dive.cpp"), + Rel(Matching, "d_a_obj_cloud_dive", "REL/d/a/obj/d_a_obj_cloud_dive.cpp"), Rel(NonMatching, "d_a_obj_col", "REL/d/a/obj/d_a_obj_col.cpp"), Rel(NonMatching, "d_a_obj_control_panel", "REL/d/a/obj/d_a_obj_control_panel.cpp"), Rel(NonMatching, "d_a_obj_cumul_cloud", "REL/d/a/obj/d_a_obj_cumul_cloud.cpp"), diff --git a/include/d/a/obj/d_a_obj_cloud_dive.h b/include/d/a/obj/d_a_obj_cloud_dive.h index 419a9ad7..a0125752 100644 --- a/include/d/a/obj/d_a_obj_cloud_dive.h +++ b/include/d/a/obj/d_a_obj_cloud_dive.h @@ -18,13 +18,13 @@ public: virtual int actorExecute() override; virtual int draw() override; + bool fn_350_6F0(); + bool fn_350_760(); + STATE_FUNC_DECLARE(dAcOcloudDive_c, Wait); STATE_FUNC_DECLARE(dAcOcloudDive_c, Dead); private: - bool fn_350_6F0(); - bool fn_350_760(); - /* 0x330 */ nw4r::g3d::ResFile mResFile; /* 0x334 */ m3d::smdl_c mMdl; /* 0x350 */ dCcD_Cyl mCollider; @@ -35,7 +35,7 @@ private: static const f32 mRadius1; static const f32 mRadius2; - static const f32 lbl_350_rodata_8; + static const f32 height; static dCcD_SrcCyl sCylSrc; }; diff --git a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp index edafd1fb..6178c4f2 100644 --- a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp +++ b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp @@ -12,7 +12,7 @@ SPECIAL_ACTOR_PROFILE(OBJ_CLOUD_DIVE, dAcOcloudDive_c, fProfile::OBJ_CLOUD_DIVE, const f32 dAcOcloudDive_c::mRadius1 = 100.0f; const f32 dAcOcloudDive_c::mRadius2 = 200.0f; -const f32 dAcOcloudDive_c::lbl_350_rodata_8 = 40.0f; +const f32 dAcOcloudDive_c::height = 40.0f; dCcD_SrcCyl dAcOcloudDive_c::sCylSrc = { /* mObjInf */ @@ -60,7 +60,7 @@ int dAcOcloudDive_c::actorExecute() { mStateMgr.executeState(); mCollider.SetR(mRadius); mCollider.SetH(40.0f); - mCollider.SetC(position - mVec3_c(0.0f, 20.0f, 0.0f)); + mCollider.SetC(position - mVec3_c(0.0f, height / 2, 0.0f)); dCcS::GetInstance()->Set(&mCollider); return SUCCEEDED; } @@ -73,11 +73,11 @@ void dAcOcloudDive_c::initializeState_Wait() {} void dAcOcloudDive_c::executeState_Wait() { if (fn_350_6F0()) { - mStateMgr.changeState(StateID_Wait); + mStateMgr.changeState(StateID_Dead); } if (fn_350_760()) { dAcItem_c::giveItem22((ITEM_ID)mItemID, 0, -1); - mStateMgr.changeState(StateID_Wait); + mStateMgr.changeState(StateID_Dead); } } @@ -95,21 +95,21 @@ bool dAcOcloudDive_c::fn_350_6F0() { } bool dAcOcloudDive_c::fn_350_760() { + bool ret = false; + bool temp = false; + mVec3_c deltaPosition = dAcPy_c::GetLink()->position - position; f32 distance = EGG::Math::sqrt(deltaPosition.squareMagXZ()); - // return distance <= mRadius && deltaPosition.y <= 20.0f && deltaPosition.y >= -20.0f; - - bool temp = false; if (distance <= mRadius) { - if (deltaPosition.y <= 20.0f) { + if (deltaPosition.y <= height / 2) { temp = true; } } if (temp) { - if (deltaPosition.y >= -20.0f) { - return true; + if (deltaPosition.y >= -height / 2) { + ret = true; } } - return false; + return ret; } From f4d2181abc355ae75f61e057b5e97b5d4c0798c9 Mon Sep 17 00:00:00 2001 From: Swekka Date: Mon, 7 Jul 2025 21:50:42 +0200 Subject: [PATCH 17/36] review --- src/REL/d/a/obj/d_a_obj_cloud_dive.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp index 6178c4f2..4f23db8e 100644 --- a/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp +++ b/src/REL/d/a/obj/d_a_obj_cloud_dive.cpp @@ -59,7 +59,7 @@ int dAcOcloudDive_c::doDelete() { int dAcOcloudDive_c::actorExecute() { mStateMgr.executeState(); mCollider.SetR(mRadius); - mCollider.SetH(40.0f); + mCollider.SetH(height); mCollider.SetC(position - mVec3_c(0.0f, height / 2, 0.0f)); dCcS::GetInstance()->Set(&mCollider); return SUCCEEDED; From 331190722272e21dd267166abef84ffe8a4ff84b Mon Sep 17 00:00:00 2001 From: Swekka Date: Tue, 8 Jul 2025 10:55:07 +0200 Subject: [PATCH 18/36] d_a_obj_under_cloud OK --- .../rels/d_a_obj_under_cloudNP/symbols.txt | 20 ++--- configure.py | 2 +- include/d/a/obj/d_a_obj_under_cloud.h | 17 ++++- src/REL/d/a/obj/d_a_obj_under_cloud.cpp | 74 +++++++++++++++++++ 4 files changed, 101 insertions(+), 12 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_under_cloudNP/symbols.txt b/config/SOUE01/rels/d_a_obj_under_cloudNP/symbols.txt index a8a52aab..996eb04f 100644 --- a/config/SOUE01/rels/d_a_obj_under_cloudNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_under_cloudNP/symbols.txt @@ -2,17 +2,17 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global dAcOunderCloud_c_classInit__Fv = .text:0x00000070; // type:function size:0xA0 -fn_411_110 = .text:0x00000110; // type:function size:0xE8 -fn_411_200 = .text:0x00000200; // type:function size:0xE0 -fn_411_2E0 = .text:0x000002E0; // type:function size:0x8 -fn_411_2F0 = .text:0x000002F0; // type:function size:0x30 -fn_411_320 = .text:0x00000320; // type:function size:0x12C -fn_411_450 = .text:0x00000450; // type:function size:0x78 +createHeap__16dAcOunderCloud_cFv = .text:0x00000110; // type:function size:0xE8 +create__16dAcOunderCloud_cFv = .text:0x00000200; // type:function size:0xE0 +doDelete__16dAcOunderCloud_cFv = .text:0x000002E0; // type:function size:0x8 +actorExecute__16dAcOunderCloud_cFv = .text:0x000002F0; // type:function size:0x30 +actorExecuteInEvent__16dAcOunderCloud_cFv = .text:0x00000320; // type:function size:0x12C +draw__16dAcOunderCloud_cFv = .text:0x00000450; // type:function size:0x78 __dt__16dAcOunderCloud_cFv = .text:0x000004D0; // type:function size:0x80 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -lbl_411_rodata_0 = .rodata:0x00000000; // type:object size:0x14 data:float +lbl_411_rodata_0 = .rodata:0x00000000; // type:object size:0x14 scope:local data:float g_profile_OBJ_UNDER_CLOUD = .data:0x00000000; // type:object size:0x10 -lbl_411_data_10 = .data:0x00000010; // type:object size:0x10 -lbl_411_data_20 = .data:0x00000020; // type:object size:0x20 -lbl_411_data_40 = .data:0x00000040; // type:object size:0x80 +lbl_411_data_10 = .data:0x00000010; // type:object size:0x10 scope:local +lbl_411_data_20 = .data:0x00000020; // type:object size:0x20 scope:local +__vt__16dAcOunderCloud_c = .data:0x00000040; // type:object size:0x80 diff --git a/configure.py b/configure.py index 730e293a..3cffc401 100644 --- a/configure.py +++ b/configure.py @@ -2383,7 +2383,7 @@ config.libs = [ "d_a_obj_underground_switch", "REL/d/a/obj/d_a_obj_underground_switch.cpp", ), - Rel(NonMatching, "d_a_obj_under_cloud", "REL/d/a/obj/d_a_obj_under_cloud.cpp"), + Rel(Matching, "d_a_obj_under_cloud", "REL/d/a/obj/d_a_obj_under_cloud.cpp"), Rel(NonMatching, "d_a_obj_updown_lava", "REL/d/a/obj/d_a_obj_updown_lava.cpp"), Rel(Matching, "d_a_obj_utajima", "REL/d/a/obj/d_a_obj_utajima.cpp"), Rel(Matching, "d_a_obj_utajima_island", "REL/d/a/obj/d_a_obj_utajima_island.cpp"), diff --git a/include/d/a/obj/d_a_obj_under_cloud.h b/include/d/a/obj/d_a_obj_under_cloud.h index a1ef2f1e..b9a1b7db 100644 --- a/include/d/a/obj/d_a_obj_under_cloud.h +++ b/include/d/a/obj/d_a_obj_under_cloud.h @@ -2,13 +2,28 @@ #define D_A_OBJ_UNDER_CLOUD_H #include "d/a/obj/d_a_obj_base.h" +#include "m/m3d/m_anmtexsrt.h" +#include "m/m3d/m_smdl.h" +#include "nw4r/g3d/res/g3d_resfile.h" +#include "toBeSorted/actor_event.h" class dAcOunderCloud_c : public dAcObjBase_c { public: - dAcOunderCloud_c() {} + dAcOunderCloud_c() : mEvent(*this, nullptr) {} virtual ~dAcOunderCloud_c() {} + virtual bool createHeap() override; + virtual int create() override; + virtual int doDelete() override; + virtual int actorExecute() override; + virtual int actorExecuteInEvent() override; + virtual int draw() override; + private: + /* 0x330 */ nw4r::g3d::ResFile mResFile; + /* 0x334 */ m3d::smdl_c mMdl; + /* 0x350 */ m3d::anmTexSrt_c mAnm; + /* 0x37C */ ActorEventRelated mEvent; }; #endif diff --git a/src/REL/d/a/obj/d_a_obj_under_cloud.cpp b/src/REL/d/a/obj/d_a_obj_under_cloud.cpp index a7a75d07..d9ab3b01 100644 --- a/src/REL/d/a/obj/d_a_obj_under_cloud.cpp +++ b/src/REL/d/a/obj/d_a_obj_under_cloud.cpp @@ -1,3 +1,77 @@ #include "d/a/obj/d_a_obj_under_cloud.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/d_light_env.h" +#include "d/d_stage.h" +#include "f/f_base.h" +#include "m/m_vec.h" +#include "nw4r/g3d/res/g3d_resfile.h" +#include "nw4r/g3d/res/g3d_resmdl.h" + SPECIAL_ACTOR_PROFILE(OBJ_UNDER_CLOUD, dAcOunderCloud_c, fProfile::OBJ_UNDER_CLOUD, 0x202, 0, 4); + +bool dAcOunderCloud_c::createHeap() { + void *data = getOarcResFile("F020UnderCloud"); + mResFile = nw4r::g3d::ResFile(data); + dStage_c::bindStageResToFile(&mResFile); + dStage_c::bindSkyCmnToResFile(&mResFile); + nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("F020UnderCloud"); + TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x160)); + nw4r::g3d::ResAnmTexSrt anm = mResFile.GetResAnmTexSrt("F020UnderCloud"); + TRY_CREATE(mAnm.create(mdl, anm, &heap_allocator, nullptr, 1)); + mMdl.setOption(0x30001, false); + return true; +} + +int dAcOunderCloud_c::create() { + CREATE_ALLOCATOR(dAcOunderCloud_c); + mMdl.setAnm(mAnm); + updateMatrix(); + mMdl.setLocalMtx(mWorldMtx); + mMdl.setPriorityDraw(0x1C, 9); + boundingBox.Set(mVec3_c(-550000.0f, -30000.0f, -500000.0f), mVec3_c(500000.0f, -10000.0f, 500000.0f)); + return SUCCEEDED; +} + +int dAcOunderCloud_c::doDelete() { + return SUCCEEDED; +} + +int dAcOunderCloud_c::actorExecute() { + mAnm.play(); + return SUCCEEDED; +} + +int dAcOunderCloud_c::actorExecuteInEvent() { + nw4r::g3d::ScnMdl *mdl = nw4r::g3d::ScnObj::DynamicCast(mMdl.getG3dObject()); + nw4r::g3d::ScnMdl::CopiedVisAccess visAccess(mdl, 1); + switch (mEvent.getCurrentEventCommand()) { + case 'act0': { + actorExecute(); + mEvent.advanceNext(); + break; + }; + case 'act1': { + actorExecute(); + visAccess.SetVisibility(false); + break; + }; + case '????': { + actorExecute(); + break; + }; + default: { + mEvent.advanceNext(); + }; + } + return SUCCEEDED; +} + +int dAcOunderCloud_c::draw() { + dLightEnv_c &lightEnv = dLightEnv_c::GetInstance(); + if (lightEnv.fn_80024770(6) && !lightEnv.fn_800247A0(6)) { + return SUCCEEDED; + } + drawModelType1(&mMdl); + return SUCCEEDED; +} From 87f84f0a68d4baab29538db1e7eacc1134896996 Mon Sep 17 00:00:00 2001 From: Swekka Date: Tue, 8 Jul 2025 15:26:28 +0200 Subject: [PATCH 19/36] d_a_obj_desert_debris 93% --- .../rels/d_a_obj_desert_debrisNP/symbols.txt | 16 ++--- include/d/a/obj/d_a_obj_desert_debris.h | 15 +++++ src/REL/d/a/obj/d_a_obj_desert_debris.cpp | 61 +++++++++++++++++++ 3 files changed, 84 insertions(+), 8 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt b/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt index d9382676..97a24cf5 100644 --- a/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt @@ -2,16 +2,16 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global dAcOdesertDebris_c_classInit__Fv = .text:0x00000070; // type:function size:0x64 -AcOdesertDebris__initModels = .text:0x000000E0; // type:function size:0x114 -AcOdesertDebris__init = .text:0x00000200; // type:function size:0xF0 -AcOdesertDebris__destroy = .text:0x000002F0; // type:function size:0x38 -AcOdesertDebris__update = .text:0x00000330; // type:function size:0x40 -AcOdesertDebris__draw = .text:0x00000370; // type:function size:0x28 -AcOdesertDebris__checkStoryFlag = .text:0x000003A0; // type:function size:0x5C +createHeap__18dAcOdesertDebris_cFv = .text:0x000000E0; // type:function size:0x114 +create__18dAcOdesertDebris_cFv = .text:0x00000200; // type:function size:0xF0 +doDelete__18dAcOdesertDebris_cFv = .text:0x000002F0; // type:function size:0x38 +actorExecute__18dAcOdesertDebris_cFv = .text:0x00000330; // type:function size:0x40 +draw__18dAcOdesertDebris_cFv = .text:0x00000370; // type:function size:0x28 +checkStoryFlag__18dAcOdesertDebris_cFv = .text:0x000003A0; // type:function size:0x5C __dt__18dAcOdesertDebris_cFv = .text:0x00000400; // type:function size:0x74 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -lbl_428_rodata_0 = .rodata:0x00000000; // type:object size:0x4 data:float +lbl_428_rodata_0 = .rodata:0x00000000; // type:object size:0x4 scope:local data:float g_profile_OBJ_DESERT_DEBRIS = .data:0x00000000; // type:object size:0x70 -lbl_428_data_70 = .data:0x00000070; // type:object size:0x20 data:string +lbl_428_data_70 = .data:0x00000070; // type:object size:0x20 scope:local data:string AcOdesertDebris__vtable = .data:0x00000090; // type:object size:0x80 diff --git a/include/d/a/obj/d_a_obj_desert_debris.h b/include/d/a/obj/d_a_obj_desert_debris.h index 49df5995..552afa7d 100644 --- a/include/d/a/obj/d_a_obj_desert_debris.h +++ b/include/d/a/obj/d_a_obj_desert_debris.h @@ -2,13 +2,28 @@ #define D_A_OBJ_DESERT_DEBRIS_H #include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_w.h" +#include "m/m3d/m_smdl.h" +#include "nw4r/g3d/res/g3d_resfile.h" class dAcOdesertDebris_c : public dAcObjBase_c { public: dAcOdesertDebris_c() {} virtual ~dAcOdesertDebris_c() {} + virtual bool createHeap() override; + virtual int create() override; + virtual int doDelete() override; + virtual int actorExecute() override; + virtual int draw() override; + + bool checkStoryFlag(); + private: + nw4r::g3d::ResFile mResFile; + m3d::smdl_c mMdl; + dBgW mBgW; + u16 mStoryFlag; }; #endif diff --git a/src/REL/d/a/obj/d_a_obj_desert_debris.cpp b/src/REL/d/a/obj/d_a_obj_desert_debris.cpp index 9994a5ee..b67a9f0e 100644 --- a/src/REL/d/a/obj/d_a_obj_desert_debris.cpp +++ b/src/REL/d/a/obj/d_a_obj_desert_debris.cpp @@ -1,3 +1,64 @@ #include "d/a/obj/d_a_obj_desert_debris.h" +#include "common.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_s.h" +#include "d/flag/storyflag_manager.h" +#include "f/f_base.h" +#include "m/m_vec.h" +#include "nw4r/g3d/res/g3d_resfile.h" +#include "nw4r/g3d/res/g3d_resmdl.h" +#include "toBeSorted/arc_managers/current_stage_arc_manager.h" + SPECIAL_ACTOR_PROFILE(OBJ_DESERT_DEBRIS, dAcOdesertDebris_c, fProfile::OBJ_DESERT_DEBRIS, 0x213, 0, 2); + +bool dAcOdesertDebris_c::createHeap() { + void *data = CurrentStageArcManager::GetInstance()->getData("g3d/stage.brres"); + mResFile = nw4r::g3d::ResFile(data); + nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("StageF300_4Gareki"); + TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr)); + void *dzb = CurrentStageArcManager::GetInstance()->getData("dzb/StageF300_4Gareki.dzb"); + void *plc = CurrentStageArcManager::GetInstance()->getData("dat/StageF300_4Gareki.plc"); + updateMatrix(); + mMdl.setLocalMtx(mWorldMtx); + TRY_CREATE(!mBgW.Set((cBgD_t *)dzb, (PLC *)plc, 1, &mWorldMtx, &mScale)); + mBgW.Lock(); + return mBgW.InitMapStuff(&heap_allocator); +} + +int dAcOdesertDebris_c::create() { + CREATE_ALLOCATOR(dAcOdesertDebris_c); + dBgS::GetInstance()->Regist(&mBgW, this); + dBgS::GetInstance()->RegistBg(&mBgW, this); + mStoryFlag = getFromParams(0, 0x7FF); + if (checkStoryFlag()) { + return FAILED; + } + mMdl.setPriorityDraw(0x1C, 9); + mVec3_c min, max; + mMdl.getBounds(&min, &max); + boundingBox.Set(min, max); + mCullingDistance = 50000.0f; + return SUCCEEDED; +} + +int dAcOdesertDebris_c::doDelete() { + dBgS::GetInstance()->UnRegist(&mBgW); + return SUCCEEDED; +} + +int dAcOdesertDebris_c::actorExecute() { + if (checkStoryFlag()) { + deleteRequest(); + } + return SUCCEEDED; +} + +int dAcOdesertDebris_c::draw() { + drawModelType1(&mMdl); + return SUCCEEDED; +} + +bool dAcOdesertDebris_c::checkStoryFlag() { + return mStoryFlag < 0x7FF && StoryflagManager::sInstance->getCounterOrFlag(mStoryFlag); +} From 1410e4249f7a4ab79f5487076803e03c141c5644 Mon Sep 17 00:00:00 2001 From: Swekka Date: Tue, 8 Jul 2025 17:35:58 +0200 Subject: [PATCH 20/36] match d_a_obj_desert_debris --- config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt | 2 +- include/d/a/obj/d_a_obj_desert_debris.h | 4 ++-- src/REL/d/a/obj/d_a_obj_desert_debris.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt b/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt index 97a24cf5..1a8f83af 100644 --- a/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt @@ -7,7 +7,7 @@ create__18dAcOdesertDebris_cFv = .text:0x00000200; // type:function size:0xF0 doDelete__18dAcOdesertDebris_cFv = .text:0x000002F0; // type:function size:0x38 actorExecute__18dAcOdesertDebris_cFv = .text:0x00000330; // type:function size:0x40 draw__18dAcOdesertDebris_cFv = .text:0x00000370; // type:function size:0x28 -checkStoryFlag__18dAcOdesertDebris_cFv = .text:0x000003A0; // type:function size:0x5C +checkStoryFlag__18dAcOdesertDebris_cCFv = .text:0x000003A0; // type:function size:0x5C __dt__18dAcOdesertDebris_cFv = .text:0x00000400; // type:function size:0x74 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global diff --git a/include/d/a/obj/d_a_obj_desert_debris.h b/include/d/a/obj/d_a_obj_desert_debris.h index 552afa7d..aa71d601 100644 --- a/include/d/a/obj/d_a_obj_desert_debris.h +++ b/include/d/a/obj/d_a_obj_desert_debris.h @@ -17,9 +17,9 @@ public: virtual int actorExecute() override; virtual int draw() override; - bool checkStoryFlag(); - private: + bool checkStoryFlag() const; + nw4r::g3d::ResFile mResFile; m3d::smdl_c mMdl; dBgW mBgW; diff --git a/src/REL/d/a/obj/d_a_obj_desert_debris.cpp b/src/REL/d/a/obj/d_a_obj_desert_debris.cpp index b67a9f0e..f8dac550 100644 --- a/src/REL/d/a/obj/d_a_obj_desert_debris.cpp +++ b/src/REL/d/a/obj/d_a_obj_desert_debris.cpp @@ -59,6 +59,6 @@ int dAcOdesertDebris_c::draw() { return SUCCEEDED; } -bool dAcOdesertDebris_c::checkStoryFlag() { +bool dAcOdesertDebris_c::checkStoryFlag() const { return mStoryFlag < 0x7FF && StoryflagManager::sInstance->getCounterOrFlag(mStoryFlag); } From d0b1ed466ff89f2c88539f2058301868deef6fbe Mon Sep 17 00:00:00 2001 From: Swekka Date: Tue, 8 Jul 2025 17:38:44 +0200 Subject: [PATCH 21/36] add offsets and mark file as matching in configure.py --- configure.py | 2 +- include/d/a/obj/d_a_obj_desert_debris.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configure.py b/configure.py index 6f817798..f388b6d1 100644 --- a/configure.py +++ b/configure.py @@ -2025,7 +2025,7 @@ config.libs = [ Rel(NonMatching, "d_a_obj_decoB", "REL/d/a/obj/d_a_obj_decoB.cpp"), Rel(NonMatching, "d_a_obj_desert", "REL/d/a/obj/d_a_obj_desert.cpp"), Rel(NonMatching, "d_a_obj_desert_ago", "REL/d/a/obj/d_a_obj_desert_ago.cpp"), - Rel(NonMatching, "d_a_obj_desert_debris", "REL/d/a/obj/d_a_obj_desert_debris.cpp"), + Rel(Matching, "d_a_obj_desert_debris", "REL/d/a/obj/d_a_obj_desert_debris.cpp"), Rel(NonMatching, "d_a_obj_desert_meter", "REL/d/a/obj/d_a_obj_desert_meter.cpp"), Rel( NonMatching, diff --git a/include/d/a/obj/d_a_obj_desert_debris.h b/include/d/a/obj/d_a_obj_desert_debris.h index aa71d601..c65b5ff3 100644 --- a/include/d/a/obj/d_a_obj_desert_debris.h +++ b/include/d/a/obj/d_a_obj_desert_debris.h @@ -20,10 +20,10 @@ public: private: bool checkStoryFlag() const; - nw4r::g3d::ResFile mResFile; - m3d::smdl_c mMdl; - dBgW mBgW; - u16 mStoryFlag; + /* 0x330 */ nw4r::g3d::ResFile mResFile; + /* 0x334 */ m3d::smdl_c mMdl; + /* 0x350 */ dBgW mBgW; + /* 0x560 */ u16 mStoryFlag; }; #endif From 8d0a60fd23f790f7bcc6741aa1b762124424eb10 Mon Sep 17 00:00:00 2001 From: Swekka Date: Tue, 8 Jul 2025 23:23:52 +0200 Subject: [PATCH 22/36] d_a_obj_stopping_rope OK --- .../rels/d_a_obj_stopping_ropeNP/symbols.txt | 24 ++++++------- configure.py | 2 +- include/d/a/obj/d_a_obj_stopping_rope.h | 23 ++++++++++-- src/REL/d/a/obj/d_a_obj_stopping_rope.cpp | 35 +++++++++++++++++++ 4 files changed, 69 insertions(+), 15 deletions(-) diff --git a/config/SOUE01/rels/d_a_obj_stopping_ropeNP/symbols.txt b/config/SOUE01/rels/d_a_obj_stopping_ropeNP/symbols.txt index 66ec01c6..c7ec5639 100644 --- a/config/SOUE01/rels/d_a_obj_stopping_ropeNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_stopping_ropeNP/symbols.txt @@ -8,12 +8,12 @@ __dt__31sFState_c<18dAcOStoppingRope_c>Fv = .text:0x000001C0; // type:function s __dt__34sFStateFct_c<18dAcOStoppingRope_c>Fv = .text:0x00000220; // type:function size:0x6C __dt__87sStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000290; // type:function size:0xA0 __dt__57sFStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000330; // type:function size:0xA4 -fn_295_3E0 = .text:0x000003E0; // type:function size:0xDC -fn_295_4C0 = .text:0x000004C0; // type:function size:0x8 -fn_295_4D0 = .text:0x000004D0; // type:function size:0x8 -fn_295_4E0 = .text:0x000004E0; // type:function size:0x30 +createHeap__18dAcOStoppingRope_cFv = .text:0x000003E0; // type:function size:0xDC +create__18dAcOStoppingRope_cFv = .text:0x000004C0; // type:function size:0x8 +doDelete__18dAcOStoppingRope_cFv = .text:0x000004D0; // type:function size:0x8 +actorExecute__18dAcOStoppingRope_cFv = .text:0x000004E0; // type:function size:0x30 executeState__87sStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000510; // type:function size:0x10 -fn_295_520 = .text:0x00000520; // type:function size:0x28 +draw__18dAcOStoppingRope_cFv = .text:0x00000520; // type:function size:0x28 initializeState_Wait__18dAcOStoppingRope_cFv = .text:0x00000550; // type:function size:0x4 executeState_Wait__18dAcOStoppingRope_cFv = .text:0x00000560; // type:function size:0x4 finalizeState_Wait__18dAcOStoppingRope_cFv = .text:0x00000570; // type:function size:0x4 @@ -44,11 +44,11 @@ _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global g_profile_OBJ_STOPPING_ROPE = .data:0x00000000; // type:object size:0x40 data:4byte -lbl_295_section4_40 = .data:0x00000040; // type:object size:0x80 -lbl_295_section4_C0 = .data:0x000000C0; // type:object size:0x30 -lbl_295_section4_F0 = .data:0x000000F0; // type:object size:0x30 -lbl_295_section4_120 = .data:0x00000120; // type:object size:0x18 -lbl_295_section4_138 = .data:0x00000138; // type:object size:0xAC -lbl_295_section4_1E4 = .data:0x000001E4; // type:object size:0x34 +__vt__18dAcOStoppingRope_c = .data:0x00000040; // type:object size:0x80 +__vt__57sFStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c> = .data:0x000000C0; // type:object size:0x30 +__vt__87sStateMgr_c<18dAcOStoppingRope_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000000F0; // type:object size:0x30 +lbl_295_section4_120 = .data:0x00000120; // type:object size:0x18 scope:local +lbl_295_section4_138 = .data:0x00000138; // type:object size:0xAC scope:local +__vt__33sFStateID_c<18dAcOStoppingRope_c> = .data:0x000001E4; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_295_bss_8 = .bss:0x00000008; // type:object size:0x80 data:4byte +lbl_295_bss_8 = .bss:0x00000008; // type:object size:0x80 scope:local data:4byte diff --git a/configure.py b/configure.py index 6f817798..4546ce15 100644 --- a/configure.py +++ b/configure.py @@ -2282,7 +2282,7 @@ config.libs = [ ), Rel(NonMatching, "d_a_obj_stone_stand", "REL/d/a/obj/d_a_obj_stone_stand.cpp"), Rel(NonMatching, "d_a_obj_stopper_rock", "REL/d/a/obj/d_a_obj_stopper_rock.cpp"), - Rel(NonMatching, "d_a_obj_stopping_rope", "REL/d/a/obj/d_a_obj_stopping_rope.cpp"), + Rel(Matching, "d_a_obj_stopping_rope", "REL/d/a/obj/d_a_obj_stopping_rope.cpp"), Rel(NonMatching, "d_a_obj_stream_lava", "REL/d/a/obj/d_a_obj_stream_lava.cpp"), Rel(Matching, "d_a_obj_sun_light", "REL/d/a/obj/d_a_obj_sun_light.cpp"), Rel(NonMatching, "d_a_obj_swhit", "REL/d/a/obj/d_a_obj_swhit.cpp"), diff --git a/include/d/a/obj/d_a_obj_stopping_rope.h b/include/d/a/obj/d_a_obj_stopping_rope.h index 222698c1..6d5fb773 100644 --- a/include/d/a/obj/d_a_obj_stopping_rope.h +++ b/include/d/a/obj/d_a_obj_stopping_rope.h @@ -2,19 +2,38 @@ #define D_A_OBJ_STOPPING_ROPE_H #include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_w.h" +#include "d/col/cc/d_cc_d.h" +#include "m/m3d/m_smdl.h" +#include "nw4r/g3d/res/g3d_resfile.h" #include "s/s_State.hpp" -#include "s/s_StateMgr.hpp" +#include "s/s_StateInterfaces.hpp" class dAcOStoppingRope_c : public dAcObjBase_c { public: dAcOStoppingRope_c() : mStateMgr(*this, sStateID::null) {} virtual ~dAcOStoppingRope_c() {} + virtual bool createHeap() override; + virtual int create() override; + virtual int doDelete() override; + virtual int actorExecute() override; + virtual int draw() override; + + void changeState(const sStateIDIf_c &value) { + mStateMgr.changeState(value); + } + STATE_FUNC_DECLARE(dAcOStoppingRope_c, Wait); STATE_FUNC_DECLARE(dAcOStoppingRope_c, SwitchOn); private: - /* 0x??? */ STATE_MGR_DECLARE(dAcOStoppingRope_c); + /* 0x330 */ nw4r::g3d::ResFile mResFile; + /* 0x334 */ m3d::smdl_c mMdl; + /* 0x350 */ dBgW mBgW; + /* 0x360 */ dCcD_Sph mCollider; + /* 0x6B0 */ STATE_MGR_DECLARE(dAcOStoppingRope_c); + /* 0x6EC */ u8 padding_0x6EC[16]; }; #endif diff --git a/src/REL/d/a/obj/d_a_obj_stopping_rope.cpp b/src/REL/d/a/obj/d_a_obj_stopping_rope.cpp index 59b01e8a..bf7e9490 100644 --- a/src/REL/d/a/obj/d_a_obj_stopping_rope.cpp +++ b/src/REL/d/a/obj/d_a_obj_stopping_rope.cpp @@ -1,10 +1,45 @@ #include "d/a/obj/d_a_obj_stopping_rope.h" +#include "d/a/obj/d_a_obj_base.h" +#include "f/f_base.h" +#include "nw4r/g3d/res/g3d_resfile.h" +#include "nw4r/g3d/res/g3d_resmdl.h" + SPECIAL_ACTOR_PROFILE(OBJ_STOPPING_ROPE, dAcOStoppingRope_c, fProfile::OBJ_STOPPING_ROPE, 0x23B, 0, 3); STATE_DEFINE(dAcOStoppingRope_c, Wait); STATE_DEFINE(dAcOStoppingRope_c, SwitchOn); +bool dAcOStoppingRope_c::createHeap() { + void *data = getOarcResFile("Crane"); + mResFile = nw4r::g3d::ResFile(data); + nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("CraneN"); + TRY_CREATE(mMdl.create(mdl, &heap_allocator, 0x120, 1, nullptr)); + void *dzb = getOarcFile("Crane", "dzb/Crane.dzb"); + void *plc = getOarcFile("Crane", "dat/Crane.plc"); + updateMatrix(); + mMdl.setScale(mScale); + return !mBgW.Set((cBgD_t *)dzb, (PLC *)plc, 1, &mWorldMtx, &mScale); +} + +int dAcOStoppingRope_c::create() { + return FAILED; +} + +int dAcOStoppingRope_c::doDelete() { + return SUCCEEDED; +} + +int dAcOStoppingRope_c::actorExecute() { + mStateMgr.executeState(); + return SUCCEEDED; +} + +int dAcOStoppingRope_c::draw() { + drawModelType1(&mMdl); + return SUCCEEDED; +} + void dAcOStoppingRope_c::initializeState_Wait() {} void dAcOStoppingRope_c::executeState_Wait() {} void dAcOStoppingRope_c::finalizeState_Wait() {} From 8229189d3439eed4f9e505d53634fc2d5d8848e9 Mon Sep 17 00:00:00 2001 From: robojumper Date: Sat, 12 Jul 2025 11:19:35 +0200 Subject: [PATCH 23/36] Begin splitting revolution --- config/SOUE01/splits.txt | 58 ++++++-- config/SOUE01/symbols.txt | 273 +++++++++++++++++++------------------- configure.py | 21 +-- 3 files changed, 195 insertions(+), 157 deletions(-) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index e66d16a4..dcb58d9f 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -1639,13 +1639,16 @@ toBeSorted/d_sc_e3_game_end.cpp: .text start:0x802DA170 end:0x802DA220 align:16 .data start:0x80541890 end:0x805418E8 -RVL_SDK/thp/THPDec.c: +revolution/thp/THPDec.c: .text start:0x802DA220 end:0x802DD6AC align:16 .rodata start:0x804F04E0 end:0x804F0570 .data start:0x805418E8 end:0x80541930 + .sdata start:0x80573F68 end:0x80573F70 .sbss start:0x80575A40 end:0x80575B68 + .sdata2 start:0x8057CC18 end:0x8057CC38 + .bss start:0x805B8360 end:0x805B84B0 -RVL_SDK/thp/THPAudio.c: +revolution/thp/THPAudio.c: .text start:0x802DD6B0 end:0x802DDC18 align:16 s/s_FPhase.cpp: @@ -2497,11 +2500,18 @@ d/snd/d_snd_mgr_unk_11.cpp: d/snd/d_snd_calc_pitch.cpp: .text start:0x8039A850 end:0x8039A960 align:16 -RVL_SDK/kpr/KPR.c: +revolution/kpr/kpr_lib.c: .text start:0x8039A960 end:0x8039AF7C align:16 + .rodata start:0x804F4F00 end:0x804F52C8 + .data start:0x8054D810 end:0x8054D880 + .sdata start:0x805748F0 end:0x805748F8 + .sbss start:0x80575DF0 end:0x80575E00 -RVL_SDK/ai/AI.c: +revolution/ai/ai.c: .text start:0x8039AF80 end:0x8039B56C align:16 + .data start:0x8054D880 end:0x8054D8C8 + .sdata start:0x805748F8 end:0x80574900 + .sbss start:0x80575E00 end:0x80575E40 RVL_SDK/arc/ARC.c: .text start:0x8039B570 end:0x8039BF58 align:16 @@ -2560,23 +2570,49 @@ RVL_SDK/usb/USB.c: RVL_SDK/bte/BTE.c: .text start:0x803F7F80 end:0x80425754 align:16 -RVL_SDK/ipc/IPC.c: - .text start:0x80425760 end:0x80428348 align:16 +revolution/ipc/ipcMain.c: + .text start:0x80425760 end:0x80425848 align:16 + .sbss start:0x80576520 end:0x80576538 -RVL_SDK/fs/FS.c: - .text start:0x80428350 end:0x804292D0 align:16 +revolution/ipc/ipcclt.c: + .text start:0x80425850 end:0x804272A4 align:16 + .sdata start:0x80574D98 end:0x80574DA0 + .sbss start:0x80576538 end:0x80576548 + .bss start:0x80632EE0 end:0x80633020 -RVL_SDK/euart/EUART.c: +revolution/ipc/memory.c: + .text start:0x804272B0 end:0x804277D8 align:16 + .bss start:0x80633020 end:0x806330A0 + +revolution/ipc/ipcProfile.c: + .text start:0x804277E0 end:0x80427BEC align:16 + .sbss start:0x80576548 end:0x80576550 + .bss start:0x806330A0 end:0x80636B20 + +revolution/fs/fs.c: + .text start:0x80427BF0 end:0x804292D0 align:16 + .data start:0x8056BCF8 end:0x8056BD20 + .sdata start:0x80574DA0 end:0x80574DB0 + .sbss start:0x80576550 end:0x80576568 + +revolution/euart/euart.c: .text start:0x804292D0 end:0x80429650 align:16 + .sbss start:0x80576568 end:0x80576578 -RVL_SDK/wenc/WENC.c: +revolution/wenc/wenc.c: .text start:0x80429650 end:0x80429928 align:16 + .rodata start:0x804F5CE8 end:0x804F5D28 + .sdata2 start:0x8057EB60 end:0x8057EB68 -RVL_SDK/tpl/TPL.c: +revolution/tpl/TPL.c: .text start:0x80429930 end:0x80429A70 align:16 + .data start:0x8056BD20 end:0x8056BD50 + .sdata start:0x80574DB0 end:0x80574DB8 NdevExi2A/DebuggerDriver.c: .text start:0x80429A70 end:0x80429DA4 + .sdata start:0x80574DB8 end:0x80574DC0 + .sbss start:0x80576578 end:0x80576590 NdevExi2A/exi2.c: .text start:0x80429DA4 end:0x8042A530 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index bf8eb231..b7aa3c87 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -17148,23 +17148,23 @@ fn_802DA0C0 = .text:0x802DA0C0; // type:function size:0x4C fn_802DA110 = .text:0x802DA110; // type:function size:0x60 fn_802DA170 = .text:0x802DA170; // type:function size:0x4C fn_802DA1C0 = .text:0x802DA1C0; // type:function size:0x60 -fn_802DA220 = .text:0x802DA220; // type:function size:0x2C8 -fn_802DA4F0 = .text:0x802DA4F0; // type:function size:0x134 -fn_802DA630 = .text:0x802DA630; // type:function size:0x114 -fn_802DA750 = .text:0x802DA750; // type:function size:0x39C -fn_802DAAF0 = .text:0x802DAAF0; // type:function size:0x3C4 -fn_802DAEC0 = .text:0x802DAEC0; // type:function size:0x24C -fn_802DB110 = .text:0x802DB110; // type:function size:0x104 -fn_802DB220 = .text:0x802DB220; // type:function size:0x24C -fn_802DB470 = .text:0x802DB470; // type:function size:0x48C -fn_802DB900 = .text:0x802DB900; // type:function size:0x494 -fn_802DBDA0 = .text:0x802DBDA0; // type:function size:0x250 -fn_802DBFF0 = .text:0x802DBFF0; // type:function size:0x25C -fn_802DC250 = .text:0x802DC250; // type:function size:0x674 -fn_802DC8D0 = .text:0x802DC8D0; // type:function size:0x698 -fn_802DCF70 = .text:0x802DCF70; // type:function size:0x698 -fn_802DD610 = .text:0x802DD610; // type:function size:0x9C -fn_802DD6B0 = .text:0x802DD6B0; // type:function size:0x568 +THPVideoDecode = .text:0x802DA220; // type:function size:0x2C8 +__THPReadFrameHeader = .text:0x802DA4F0; // type:function size:0x134 +__THPReadScaneHeader = .text:0x802DA630; // type:function size:0x114 +__THPReadQuantizationTable = .text:0x802DA750; // type:function size:0x39C +__THPReadHuffmanTableSpecification = .text:0x802DAAF0; // type:function size:0x3C4 +__THPPrepBitStream = .text:0x802DAEC0; // type:function size:0x24C +__THPDecompressYUV = .text:0x802DB110; // type:function size:0x104 +__THPDecompressiMCURow512x448 = .text:0x802DB220; // type:function size:0x24C +__THPInverseDCTNoYPos = .text:0x802DB470; // type:function size:0x48C +__THPInverseDCTY8 = .text:0x802DB900; // type:function size:0x494 +__THPDecompressiMCURow640x480 = .text:0x802DBDA0; // type:function size:0x250 +__THPDecompressiMCURowNxN = .text:0x802DBFF0; // type:function size:0x25C +__THPHuffDecodeDCTCompY = .text:0x802DC250; // type:function size:0x674 +__THPHuffDecodeDCTCompU = .text:0x802DC8D0; // type:function size:0x698 +__THPHuffDecodeDCTCompV = .text:0x802DCF70; // type:function size:0x698 +THPInit = .text:0x802DD610; // type:function size:0x9C +THPAudioDecode = .text:0x802DD6B0; // type:function size:0x568 __dt__15sFPhaseBaseBaseFv = .text:0x802DDC20; // type:function size:0x40 __dt__11sFPhaseBaseFv = .text:0x802DDC60; // type:function size:0x58 step__11sFPhaseBaseFv = .text:0x802DDCC0; // type:function size:0xA8 @@ -21659,22 +21659,22 @@ fn_8039A840 = .text:0x8039A840; // type:function size:0x8 pitchScaleForPitchIdx = .text:0x8039A850; // type:function size:0x2C pitchScaleForPitchIdxTenths__Ff = .text:0x8039A880; // type:function size:0x58 pitchIdxTenthsForPitchScale__Ff = .text:0x8039A8E0; // type:function size:0x80 -fn_8039A960 = .text:0x8039A960; // type:function size:0x10 -fn_8039A970 = .text:0x8039A970; // type:function size:0x5C -fn_8039A9D0 = .text:0x8039A9D0; // type:function size:0x14 -fn_8039A9F0 = .text:0x8039A9F0; // type:function size:0x18 +KPRInitRegionUS = .text:0x8039A960; // type:function size:0x10 +KPRInitQueue = .text:0x8039A970; // type:function size:0x5C +KPRClearQueue = .text:0x8039A9D0; // type:function size:0x14 +KPRSetMode = .text:0x8039A9F0; // type:function size:0x18 KPRPutChar = .text:0x8039AA10; // type:function size:0x128 -fn_8039AB40 = .text:0x8039AB40; // type:function size:0x8C -fn_8039ABD0 = .text:0x8039ABD0; // type:function size:0xD0 -fn_8039ACA0 = .text:0x8039ACA0; // type:function size:0x170 -fn_8039AE10 = .text:0x8039AE10; // type:function size:0x16C +KPRGetChar = .text:0x8039AB40; // type:function size:0x8C +KPRLookAhead = .text:0x8039ABD0; // type:function size:0xD0 +KPRProcessAltKeypad = .text:0x8039ACA0; // type:function size:0x170 +KPRProcessDeadKeys = .text:0x8039AE10; // type:function size:0x16C AIRegisterDMACallback = .text:0x8039AF80; // type:function size:0x44 AIInitDMA = .text:0x8039AFD0; // type:function size:0x7C AIStartDMA = .text:0x8039B050; // type:function size:0x14 AIStopDMA = .text:0x8039B070; // type:function size:0x14 AIGetDMABytesLeft = .text:0x8039B090; // type:function size:0x10 -fn_8039B0A0 = .text:0x8039B0A0; // type:function size:0x18 -fn_8039B0C0 = .text:0x8039B0C0; // type:function size:0x10 +AIGetDMAStartAddr = .text:0x8039B0A0; // type:function size:0x18 +AIGetDMALength = .text:0x8039B0C0; // type:function size:0x10 AICheckInit = .text:0x8039B0D0; // type:function size:0x8 AIGetDSPSampleRate = .text:0x8039B0E0; // type:function size:0x14 AIInit = .text:0x8039B100; // type:function size:0x180 @@ -22130,7 +22130,7 @@ UnlockedHandler = .text:0x803B1AC0; // type:function size:0x28 scope:local EXIGetID = .text:0x803B1AF0; // type:function size:0x3A8 scope:global ProbeBarnacle = .text:0x803B1EA0; // type:function size:0x178 __OSEnableBarnacle = .text:0x803B2020; // type:function size:0x1BC scope:global -fn_803B21E0 = .text:0x803B21E0; // type:function size:0x188 +EXIWriteReg = .text:0x803B21E0; // type:function size:0x188 fn_803B2370 = .text:0x803B2370; // type:function size:0x2F4 SIInterruptHandler = .text:0x803B2670; // type:function size:0x3EC scope:local SIInit = .text:0x803B2A60; // type:function size:0xC0 scope:global @@ -23842,70 +23842,70 @@ bte__sdpu_compare_uuid_arrays = .text:0x80425400; // type:function size:0x274 bte__sdpu_compare_uuid_with_attr = .text:0x80425674; // type:function size:0x90 bte__sdpu_sort_attr_list = .text:0x80425704; // type:function size:0x50 IPCInit = .text:0x80425760; // type:function size:0x4C scope:global -ipc__IPCReInit = .text:0x804257B0; // type:function size:0x48 +IPCReInit = .text:0x804257B0; // type:function size:0x48 IPCReadReg = .text:0x80425800; // type:function size:0x10 scope:global IPCWriteReg = .text:0x80425810; // type:function size:0x10 scope:global IPCGetBufferHi = .text:0x80425820; // type:function size:0x8 scope:global IPCGetBufferLo = .text:0x80425830; // type:function size:0x8 scope:global IPCSetBufferLo = .text:0x80425840; // type:function size:0x8 scope:global strnlen = .text:0x80425850; // type:function size:0x2C scope:global -ipc__IpcReplyHandler = .text:0x80425880; // type:function size:0x258 +IpcReplyHandler = .text:0x80425880; // type:function size:0x258 IPCInterruptHandler = .text:0x80425AE0; // type:function size:0x1C0 scope:local IPCCltInit = .text:0x80425CA0; // type:function size:0xC0 scope:global -ipc__IPCCltReInit = .text:0x80425D60; // type:function size:0x74 +IPCCltReInit = .text:0x80425D60; // type:function size:0x74 __ios_Ipc2 = .text:0x80425DE0; // type:function size:0x268 scope:local IOS_OpenAsync = .text:0x80426050; // type:function size:0x11C scope:global IOS_Open = .text:0x80426170; // type:function size:0x124 scope:global -ipc__IOS_CloseAsync = .text:0x804262A0; // type:function size:0xC0 -ipc__IOS_Close = .text:0x80426360; // type:function size:0xA8 -ipc__IOS_ReadAsync = .text:0x80426410; // type:function size:0x100 +IOS_CloseAsync = .text:0x804262A0; // type:function size:0xC0 +IOS_Close = .text:0x80426360; // type:function size:0xA8 +IOS_ReadAsync = .text:0x80426410; // type:function size:0x100 IOS_Read = .text:0x80426510; // type:function size:0x108 -ipc__IOS_WriteAsync = .text:0x80426620; // type:function size:0x100 +IOS_WriteAsync = .text:0x80426620; // type:function size:0x100 IOS_Write = .text:0x80426720; // type:function size:0x108 -ipc__IOS_SeekAsync = .text:0x80426830; // type:function size:0xE0 +IOS_SeekAsync = .text:0x80426830; // type:function size:0xE0 IOS_Seek = .text:0x80426910; // type:function size:0xE8 IOS_IoctlAsync = .text:0x80426A00; // type:function size:0x138 scope:global -ipc__IOS_Ioctl = .text:0x80426B40; // type:function size:0x130 -ipc____ios_Ioctlv = .text:0x80426C70; // type:function size:0x13C -ipc__IOS_IoctlvAsync = .text:0x80426DB0; // type:function size:0xE4 +IOS_Ioctl = .text:0x80426B40; // type:function size:0x130 +__ios_Ioctlv = .text:0x80426C70; // type:function size:0x13C +IOS_IoctlvAsync = .text:0x80426DB0; // type:function size:0xE4 IOS_Ioctlv = .text:0x80426EA0; // type:function size:0xDC scope:global IOS_IoctlvReboot = .text:0x80426F80; // type:function size:0x324 iosCreateHeap = .text:0x804272B0; // type:function size:0x130 scope:global -ipc__iosAlloc = .text:0x804273E0; // type:function size:0x1FC +__iosAlloc = .text:0x804273E0; // type:function size:0x1FC iosAllocAligned = .text:0x804275E0; // type:function size:0x4 scope:global iosFree = .text:0x804275F0; // type:function size:0x1E8 scope:global IPCiProfInit = .text:0x804277E0; // type:function size:0x144 scope:global IPCiProfQueueReq = .text:0x80427930; // type:function size:0x1C scope:global IPCiProfAck = .text:0x80427950; // type:function size:0x10 -ipc__IPCiProfReply = .text:0x80427960; // type:function size:0x10 +IPCiProfReply = .text:0x80427960; // type:function size:0x10 AddReqInfo = .text:0x80427970; // type:function size:0x120 scope:local -IPCiProfReply = .text:0x80427A90; // type:function size:0x15C +DelReqInfo = .text:0x80427A90; // type:function size:0x15C ISFS_OpenLib = .text:0x80427BF0; // type:function size:0x128 scope:global _isfsFuncCb = .text:0x80427D20; // type:function size:0x180 scope:local ISFS_CreateDir = .text:0x80427EA0; // type:function size:0xF4 ISFS_CreateDirAsync = .text:0x80427FA0; // type:function size:0xF4 -ISFS_SetAttr = .text:0x804280A0; // type:function size:0x154 -ISFS_SetAttrAsync = .text:0x80428200; // type:function size:0x148 -fs__ISFS_GetAttr = .text:0x80428350; // type:function size:0x158 -fs__ISFS_GetAttrAsync = .text:0x804284B0; // type:function size:0x134 -fs__ISFS_Delete = .text:0x804285F0; // type:function size:0xD8 -fs__ISFS_DeleteAsync = .text:0x804286D0; // type:function size:0xD0 -fs__ISFS_Rename = .text:0x804287A0; // type:function size:0x104 +ISFS_ReadDir = .text:0x804280A0; // type:function size:0x154 +ISFS_ReadDirAsync = .text:0x80428200; // type:function size:0x148 +ISFS_GetAttr = .text:0x80428350; // type:function size:0x158 +ISFS_GetAttrAsync = .text:0x804284B0; // type:function size:0x134 +ISFS_Delete = .text:0x804285F0; // type:function size:0xD8 +ISFS_DeleteAsync = .text:0x804286D0; // type:function size:0xD0 +ISFS_Rename = .text:0x804287A0; // type:function size:0x104 ISFS_RenameAsync = .text:0x804288B0; // type:function size:0x104 -fn_804289C0 = .text:0x804289C0; // type:function size:0x138 +ISFS_GetUsage = .text:0x804289C0; // type:function size:0x138 ISFS_CreateFile = .text:0x80428B00; // type:function size:0xF4 ISFS_CreateFileAsync = .text:0x80428C00; // type:function size:0xF4 ISFS_Open = .text:0x80428D00; // type:function size:0xC8 scope:global ISFS_OpenAsync = .text:0x80428DD0; // type:function size:0xB8 scope:global ISFS_GetFileStats = .text:0x80428E90; // type:function size:0xD0 ISFS_Seek = .text:0x80428F60; // type:function size:0x4 -fs__ISFS_SeekAsync = .text:0x80428F70; // type:function size:0x8C +ISFS_SeekAsync = .text:0x80428F70; // type:function size:0x8C ISFS_Read = .text:0x80429000; // type:function size:0x20 ISFS_ReadAsync = .text:0x80429020; // type:function size:0xA4 ISFS_Write = .text:0x804290D0; // type:function size:0x20 ISFS_WriteAsync = .text:0x804290F0; // type:function size:0xA4 ISFS_Close = .text:0x804291A0; // type:function size:0x4 -fs__ISFS_CloseAsync = .text:0x804291B0; // type:function size:0x84 +ISFS_CloseAsync = .text:0x804291B0; // type:function size:0x84 ISFS_ShutdownAsync = .text:0x80429240; // type:function size:0x90 EUARTInit = .text:0x804292D0; // type:function size:0xFC InitializeUART = .text:0x804293D0; // type:function size:0x48 @@ -23915,19 +23915,19 @@ TPLBind = .text:0x80429930; // type:function size:0x118 TPLGet = .text:0x80429A50; // type:function size:0x20 __DBMtrHandler = .text:0x80429A70; // type:function size:0x24 __DBIntrHandler = .text:0x80429A94; // type:function size:0x24 -NdevExi2A__DBInitComm = .text:0x80429AB8; // type:function size:0x5C -NdevExi2A__DBInitInterrupts = .text:0x80429B14; // type:function size:0x54 -NdevExi2A__DBQueryData = .text:0x80429B68; // type:function size:0xA4 -NdevExi2A__DBRead = .text:0x80429C0C; // type:function size:0x80 -NdevExi2A__DBWrite = .text:0x80429C8C; // type:function size:0x110 +DBInitComm = .text:0x80429AB8; // type:function size:0x5C +DBInitInterrupts = .text:0x80429B14; // type:function size:0x54 +DBQueryData = .text:0x80429B68; // type:function size:0xA4 +DBRead = .text:0x80429C0C; // type:function size:0x80 +DBWrite = .text:0x80429C8C; // type:function size:0x110 DBOpen = .text:0x80429D9C; // type:function size:0x4 DBClose = .text:0x80429DA0; // type:function size:0x4 -NdevExi2A____EXI2Imm = .text:0x80429DA4; // type:function size:0x2E8 -NdevExi2A____DBEXIInit = .text:0x8042A08C; // type:function size:0xBC -NdevExi2A____DBEXIReadReg = .text:0x8042A148; // type:function size:0x124 -NdevExi2A____DBEXIWriteReg = .text:0x8042A26C; // type:function size:0x104 -NdevExi2A____DBEXIReadRam = .text:0x8042A370; // type:function size:0xE0 -NdevExi2A____DBEXIWriteRam = .text:0x8042A450; // type:function size:0xE0 +__EXI2Imm = .text:0x80429DA4; // type:function size:0x2E8 +__DBEXIInit = .text:0x8042A08C; // type:function size:0xBC +__DBEXIReadReg = .text:0x8042A148; // type:function size:0x124 +__DBEXIWriteReg = .text:0x8042A26C; // type:function size:0x104 +__DBEXIReadRam = .text:0x8042A370; // type:function size:0xE0 +__DBEXIWriteRam = .text:0x8042A450; // type:function size:0xE0 List_Init__Q24nw4r2utFPQ34nw4r2ut4ListUs = .text:0x8042A530; // type:function size:0x18 List_Append__Q24nw4r2utFPQ34nw4r2ut4ListPv = .text:0x8042A550; // type:function size:0x70 List_Prepend__Q24nw4r2utFPQ34nw4r2ut4ListPv = .text:0x8042A5C0; // type:function size:0x6C @@ -28767,8 +28767,8 @@ lbl_804F03E8 = .rodata:0x804F03E8; // type:object size:0x48 data:4byte lbl_804F0430 = .rodata:0x804F0430; // type:object size:0x30 lbl_804F0460 = .rodata:0x804F0460; // type:object size:0x20 lbl_804F0480 = .rodata:0x804F0480; // type:object size:0x60 -lbl_804F04E0 = .rodata:0x804F04E0; // type:object size:0x50 -lbl_804F0530 = .rodata:0x804F0530; // type:object size:0x40 align:8 data:double +__THPJpegNaturalOrder = .rodata:0x804F04E0; // type:object size:0x50 +__THPAANScaleFactor = .rodata:0x804F0530; // type:object size:0x40 align:8 data:double s_GameHeapNames__5mHeap = .rodata:0x804F0570; // type:object size:0x10 lbl_804F0580 = .rodata:0x804F0580; // type:object size:0x4 align:4 data:float lbl_804F0588 = .rodata:0x804F0588; // type:object size:0x10 align:4 data:float @@ -29037,9 +29037,9 @@ Actor_BaseActorName_Pairs = .rodata:0x804F3A78; // type:object size:0x3C0 data:4 lbl_804F3E38 = .rodata:0x804F3E38; // type:object size:0x4C0 lbl_804F42F8 = .rodata:0x804F42F8; // type:object size:0x480 lbl_804F4778 = .rodata:0x804F4778; // type:object size:0x788 align:4 data:float -lbl_804F4F00 = .rodata:0x804F4F00; // type:object size:0x288 data:2byte -lbl_804F5188 = .rodata:0x804F5188; // type:object size:0x40 -lbl_804F51C8 = .rodata:0x804F51C8; // type:object size:0x100 +kprDeadKeyMap = .rodata:0x804F4F00; // type:object size:0x288 data:2byte +kprLookupTable1252 = .rodata:0x804F5188; // type:object size:0x40 +kprLookupTable437 = .rodata:0x804F51C8; // type:object size:0x100 lbl_804F52C8 = .rodata:0x804F52C8; // type:object size:0x40 lbl_804F5308 = .rodata:0x804F5308; // type:object size:0x10 data:4byte lbl_804F5318 = .rodata:0x804F5318; // type:object size:0x1C @@ -37117,7 +37117,7 @@ g_profile_E3_TITLE = .data:0x80541838; // type:object size:0xC lbl_80541844 = .data:0x80541844; // type:object size:0x4C g_profile_E3_GAMEEND = .data:0x80541890; // type:object size:0xC lbl_8054189C = .data:0x8054189C; // type:object size:0x4C -lbl_805418E8 = .data:0x805418E8; // type:object size:0x48 +@1 = .data:0x805418E8; // type:object size:0x48 scope:local __vt__13sStateIDChk_c = .data:0x80541930; // type:object size:0x10 __vt__20sStateMethodUsr_FI_c = .data:0x80541940; // type:object size:0x40 __vt__10sStateID_c = .data:0x80541980; // type:object size:0x28 @@ -37808,8 +37808,8 @@ lbl_8054D7C4 = .data:0x8054D7C4; // type:object size:0xC lbl_8054D7D0 = .data:0x8054D7D0; // type:object size:0x10 lbl_8054D7E0 = .data:0x8054D7E0; // type:object size:0x30 lbl_8054D810 = .data:0x8054D810; // type:object size:0x48 -lbl_8054D858 = .data:0x8054D858; // type:object size:0xC -lbl_8054D864 = .data:0x8054D864; // type:object size:0x1C +lbl_8054D858 = .data:0x8054D858; // type:object size:0xA data:string +lbl_8054D864 = .data:0x8054D864; // type:object size:0x15 data:string lbl_8054D880 = .data:0x8054D880; // type:object size:0x48 lbl_8054D8C8 = .data:0x8054D8C8; // type:object size:0x24 lbl_8054D8EC = .data:0x8054D8EC; // type:object size:0x4C @@ -38449,7 +38449,7 @@ jumptable_8056BC98 = .data:0x8056BC98; // type:object size:0x20 scope:local jumptable_8056BCB8 = .data:0x8056BCB8; // type:object size:0x20 scope:local jumptable_8056BCD8 = .data:0x8056BCD8; // type:object size:0x20 scope:local @1687 = .data:0x8056BCF8; // type:object size:0x21 scope:local data:string -lbl_8056BD20 = .data:0x8056BD20; // type:object size:0x30 +lbl_8056BD20 = .data:0x8056BD20; // type:object size:0x2B data:string __vt__Q34nw4r2ut19TagProcessorBase = .data:0x8056BD50; // type:object size:0x14 scope:weak __vt__Q34nw4r2ut19TagProcessorBase = .data:0x8056BD64; // type:object size:0x14 scope:weak __vt__Q34nw4r2ut13DvdFileStream = .data:0x8056BD78; // type:object size:0x64 @@ -40573,7 +40573,7 @@ lbl_80573F50 = .sdata:0x80573F50; // type:object size:0x4 data:4byte lbl_80573F54 = .sdata:0x80573F54; // type:object size:0x4 data:4byte lbl_80573F58 = .sdata:0x80573F58; // type:object size:0x8 lbl_80573F60 = .sdata:0x80573F60; // type:object size:0x8 -lbl_80573F68 = .sdata:0x80573F68; // type:object size:0x8 data:4byte +__THPVersion = .sdata:0x80573F68; // type:object size:0x8 data:4byte lbl_80573F70 = .sdata:0x80573F70; // type:object size:0x8 data:4byte @4277 = .sdata:0x80573F78; // type:object size:0x5 scope:local data:string @4029 = .sdata:0x80573F80; // type:object size:0x6 scope:local data:string @@ -40902,8 +40902,8 @@ lbl_805748D0 = .sdata:0x805748D0; // type:object size:0x8 data:string lbl_805748D8 = .sdata:0x805748D8; // type:object size:0x8 lbl_805748E0 = .sdata:0x805748E0; // type:object size:0x8 lbl_805748E8 = .sdata:0x805748E8; // type:object size:0x8 -lbl_805748F0 = .sdata:0x805748F0; // type:object size:0x8 data:4byte -lbl_805748F8 = .sdata:0x805748F8; // type:object size:0x8 data:4byte +__KPRVersion = .sdata:0x805748F0; // type:object size:0x8 data:4byte +__AIVersion = .sdata:0x805748F8; // type:object size:0x8 data:4byte lbl_80574900 = .sdata:0x80574900; // type:object size:0x8 lbl_80574908 = .sdata:0x80574908; // type:object size:0x8 data:4byte lbl_80574910 = .sdata:0x80574910; // type:object size:0x2 data:2byte @@ -41107,8 +41107,8 @@ __mailboxAck = .sdata:0x80574D98; // type:object size:0x4 scope:local data:4byte hid = .sdata:0x80574D9C; // type:object size:0x4 scope:local data:4byte __fsFd = .sdata:0x80574DA0; // type:object size:0x4 scope:local data:4byte @1688 = .sdata:0x80574DA8; // type:object size:0x8 scope:local data:string -lbl_80574DB0 = .sdata:0x80574DB0; // type:object size:0x8 -lbl_80574DB8 = .sdata:0x80574DB8; // type:object size:0x8 data:byte +lbl_80574DB0 = .sdata:0x80574DB0; // type:object size:0x6 data:string +l_byOffsetCounter$639 = .sdata:0x80574DB8; // type:object size:0x8 data:byte mFormatBufferSize__Q34nw4r2ut17TextWriterBase = .sdata:0x80574DC0; // type:object size:0x4 scope:weak data:4byte mFormatBufferSize__Q34nw4r2ut17TextWriterBase = .sdata:0x80574DC4; // type:object size:0x4 scope:weak data:4byte @2743 = .sdata:0x80574DC8; // type:object size:0x4 scope:local data:string @@ -41773,23 +41773,23 @@ lbl_80575A28 = .sbss:0x80575A28; // type:object size:0x8 data:4byte lbl_80575A30 = .sbss:0x80575A30; // type:object size:0x8 data:4byte lbl_80575A38 = .sbss:0x80575A38; // type:object size:0x1 data:byte lbl_80575A39 = .sbss:0x80575A39; // type:object size:0x7 data:byte -THP_is_init = .sbss:0x80575A40; // type:object size:0x4 data:4byte -lbl_80575A44 = .sbss:0x80575A44; // type:object size:0x4 data:4byte -lbl_80575A48 = .sbss:0x80575A48; // type:object size:0x4 data:4byte -lbl_80575A4C = .sbss:0x80575A4C; // type:object size:0x4 data:4byte -lbl_80575A50 = .sbss:0x80575A50; // type:object size:0x10 data:4byte -lbl_80575A60 = .sbss:0x80575A60; // type:object size:0x20 data:4byte -lbl_80575A80 = .sbss:0x80575A80; // type:object size:0x20 data:4byte -lbl_80575AA0 = .sbss:0x80575AA0; // type:object size:0x4 data:4byte -lbl_80575AA4 = .sbss:0x80575AA4; // type:object size:0x4 data:4byte -lbl_80575AA8 = .sbss:0x80575AA8; // type:object size:0x4 data:4byte -lbl_80575AAC = .sbss:0x80575AAC; // type:object size:0x14 data:4byte -lbl_80575AC0 = .sbss:0x80575AC0; // type:object size:0x20 data:4byte -lbl_80575AE0 = .sbss:0x80575AE0; // type:object size:0x20 data:4byte -lbl_80575B00 = .sbss:0x80575B00; // type:object size:0x20 data:4byte -lbl_80575B20 = .sbss:0x80575B20; // type:object size:0x20 data:4byte -lbl_80575B40 = .sbss:0x80575B40; // type:object size:0x20 data:4byte -lbl_80575B60 = .sbss:0x80575B60; // type:object size:0x8 data:4byte +__THPInitFlag = .sbss:0x80575A40; // type:object size:0x4 data:4byte +__THPInfo = .sbss:0x80575A44; // type:object size:0x4 data:4byte +__THPWorkArea = .sbss:0x80575A48; // type:object size:0x4 data:4byte +__THPOldGQR6 = .sbss:0x80575A4C; // type:object size:0x4 data:4byte +__THPOldGQR5 = .sbss:0x80575A50; // type:object size:0x10 data:4byte +Gq = .sbss:0x80575A60; // type:object size:0x20 data:4byte +Gwid = .sbss:0x80575A80; // type:object size:0x20 data:4byte +Gbase = .sbss:0x80575AA0; // type:object size:0x4 data:4byte +__THPHuffmanCodeTab = .sbss:0x80575AA4; // type:object size:0x4 data:4byte +__THPHuffmanSizeTab = .sbss:0x80575AA8; // type:object size:0x4 data:4byte +__THPHuffmanBits = .sbss:0x80575AAC; // type:object size:0x14 data:4byte +Vachuff = .sbss:0x80575AC0; // type:object size:0x20 data:4byte +Uachuff = .sbss:0x80575AE0; // type:object size:0x20 data:4byte +Yachuff = .sbss:0x80575B00; // type:object size:0x20 data:4byte +Vdchuff = .sbss:0x80575B20; // type:object size:0x20 data:4byte +Udchuff = .sbss:0x80575B40; // type:object size:0x20 data:4byte +Ydchuff = .sbss:0x80575B60; // type:object size:0x8 data:4byte sm_numberMemo__10sStateID_c = .sbss:0x80575B68; // type:object size:0x4 data:4byte lbl_80575B70 = .sbss:0x80575B70; // type:object size:0x8 data:4byte cCounter_c__m_gameFrame = .sbss:0x80575B78; // type:object size:0x4 data:4byte @@ -41928,24 +41928,19 @@ lbl_80575DE0 = .sbss:0x80575DE0; // type:object size:0x4 data:4byte lbl_80575DE4 = .sbss:0x80575DE4; // type:object size:0x4 data:4byte lbl_80575DE8 = .sbss:0x80575DE8; // type:object size:0x4 data:4byte lbl_80575DEC = .sbss:0x80575DEC; // type:object size:0x4 data:4byte -lbl_80575DF0 = .sbss:0x80575DF0; // type:object size:0x4 data:4byte -lbl_80575DF4 = .sbss:0x80575DF4; // type:object size:0x4 data:4byte -lbl_80575DF8 = .sbss:0x80575DF8; // type:object size:0x8 data:byte +kprProcDeadKeysFP = .sbss:0x80575DF0; // type:object size:0x4 data:4byte +kprProcRomajiFP = .sbss:0x80575DF4; // type:object size:0x4 data:4byte +@LOCAL@KPRInitQueue__FP9_KPRQueue@once = .sbss:0x80575DF8; // type:object size:0x8 data:byte __AI_init_flag = .sbss:0x80575E00; // type:object size:0x4 data:4byte __AID_Active = .sbss:0x80575E04; // type:object size:0x4 data:4byte -buffer = .sbss:0x80575E08; // type:object size:0x4 data:4byte -buffer+4 = .sbss:0x80575E0C; // type:object size:0x4 data:4byte -max_wait = .sbss:0x80575E10; // type:object size:0x4 data:4byte -max_wait+4 = .sbss:0x80575E14; // type:object size:0x4 data:4byte -min_wait = .sbss:0x80575E18; // type:object size:0x4 data:4byte -min_wait+4 = .sbss:0x80575E1C; // type:object size:0x4 data:4byte -bound_48KHz = .sbss:0x80575E20; // type:object size:0x4 data:4byte -bound_48KHz+4 = .sbss:0x80575E24; // type:object size:0x4 data:4byte -bound_32KHz = .sbss:0x80575E28; // type:object size:0x4 data:4byte -bound_32KHz+4 = .sbss:0x80575E2C; // type:object size:0x4 data:4byte -lbl_80575E30 = .sbss:0x80575E30; // type:object size:0x4 data:4byte +buffer = .sbss:0x80575E08; // type:object size:0x8 data:4byte +max_wait = .sbss:0x80575E10; // type:object size:0x8 data:4byte +min_wait = .sbss:0x80575E18; // type:object size:0x8 data:4byte +bound_48KHz = .sbss:0x80575E20; // type:object size:0x8 data:4byte +bound_32KHz = .sbss:0x80575E28; // type:object size:0x8 data:4byte +__OldStack = .sbss:0x80575E30; // type:object size:0x4 data:4byte __CallbackStack = .sbss:0x80575E34; // type:object size:0x4 data:4byte -lbl_80575E38 = .sbss:0x80575E38; // type:object size:0x8 data:4byte +__AID_Callback = .sbss:0x80575E38; // type:object size:0x8 data:4byte __init = .sbss:0x80575E40; // type:object size:0x8 data:4byte __AXCallbackStack = .sbss:0x80575E48; // type:object size:0x8 data:4byte __AXAuxCpuReadWritePosition = .sbss:0x80575E50; // type:object size:0x4 data:4byte @@ -42353,32 +42348,32 @@ lbl_8057650C = .sbss:0x8057650C; // type:object size:0x4 data:4byte lbl_80576510 = .sbss:0x80576510; // type:object size:0x4 data:4byte lbl_80576514 = .sbss:0x80576514; // type:object size:0x4 data:4byte lbl_80576518 = .sbss:0x80576518; // type:object size:0x8 data:byte -lbl_80576520 = .sbss:0x80576520; // type:object size:0x1 data:byte -lbl_80576524 = .sbss:0x80576524; // type:object size:0x4 data:4byte -lbl_80576528 = .sbss:0x80576528; // type:object size:0x4 data:4byte -lbl_8057652C = .sbss:0x8057652C; // type:object size:0x4 data:4byte -lbl_80576530 = .sbss:0x80576530; // type:object size:0x8 data:4byte -lbl_80576538 = .sbss:0x80576538; // type:object size:0x4 data:4byte -lbl_8057653C = .sbss:0x8057653C; // type:object size:0x4 data:4byte -lbl_80576540 = .sbss:0x80576540; // type:object size:0x4 data:4byte +Initialized = .sbss:0x80576520; // type:object size:0x1 data:byte +IPCCurrentBufferLo = .sbss:0x80576524; // type:object size:0x4 data:4byte +IPCCurrentBufferHi = .sbss:0x80576528; // type:object size:0x4 data:4byte +IPCBufferLo = .sbss:0x8057652C; // type:object size:0x4 data:4byte +IPCBufferHi = .sbss:0x80576530; // type:object size:0x8 data:4byte +__relnchFl = .sbss:0x80576538; // type:object size:0x4 data:4byte +__relnchRpc = .sbss:0x8057653C; // type:object size:0x4 data:4byte +__relnchRpcSave = .sbss:0x80576540; // type:object size:0x4 data:4byte @LOCAL@IPCCltInit__Fv@initialized = .sbss:0x80576544; // type:object size:0x4 scope:weak data:4byte IpcNumPendingReqs = .sbss:0x80576548; // type:object size:0x4 scope:local data:4byte IpcNumUnIssuedReqs = .sbss:0x8057654C; // type:object size:0x4 scope:local data:4byte __fsInitialized = .sbss:0x80576550; // type:object size:0x4 scope:local data:4byte __devfs = .sbss:0x80576554; // type:object size:0x4 scope:local data:4byte -lbl_80576558 = .sbss:0x80576558; // type:object size:0x4 data:4byte -lo$688 = .sbss:0x8057655C; // type:object size:0x4 scope:local data:4byte -hi$689 = .sbss:0x80576560; // type:object size:0x4 scope:local data:4byte +_asynCnt = .sbss:0x80576558; // type:object size:0x4 data:4byte +@LOCAL@ISFS_OpenLib__Fv@lo = .sbss:0x8057655C; // type:object size:0x4 scope:local data:4byte +@LOCAL@ISFS_OpenLib__Fv@hi@0 = .sbss:0x80576560; // type:object size:0x4 scope:local data:4byte hId = .sbss:0x80576564; // type:object size:0x4 scope:local data:4byte -lbl_80576568 = .sbss:0x80576568; // type:object size:0x4 data:4byte -lbl_8057656C = .sbss:0x8057656C; // type:object size:0x4 data:4byte -lbl_80576570 = .sbss:0x80576570; // type:object size:0x4 data:4byte -lbl_80576574 = .sbss:0x80576574; // type:object size:0x4 data:4byte -lbl_80576578 = .sbss:0x80576578; // type:object size:0x4 data:4byte -lbl_8057657C = .sbss:0x8057657C; // type:object size:0x4 data:4byte -lbl_80576580 = .sbss:0x80576580; // type:object size:0x1 data:byte -lbl_80576584 = .sbss:0x80576584; // type:object size:0x4 data:4byte -lbl_80576588 = .sbss:0x80576588; // type:object size:0x8 data:4byte +__EUARTInitialized = .sbss:0x80576568; // type:object size:0x4 data:4byte +__EUARTLastErrorCode = .sbss:0x8057656C; // type:object size:0x4 data:4byte +__EUARTSendStop = .sbss:0x80576570; // type:object size:0x4 data:4byte +Enabled = .sbss:0x80576574; // type:object size:0x4 data:4byte +__DBMtrCallback = .sbss:0x80576578; // type:object size:0x4 data:4byte +__DBDbgCallback = .sbss:0x8057657C; // type:object size:0x4 data:4byte +__DBEXIInputFlag = .sbss:0x80576580; // type:object size:0x1 data:byte +__DBRecvMail = .sbss:0x80576584; // type:object size:0x4 data:4byte +__DBRecvDataSize = .sbss:0x80576588; // type:object size:0x8 data:4byte typeInfo__Q34nw4r2ut8IOStream = .sbss:0x80576590; // type:object size:0x4 data:4byte typeInfo__Q34nw4r2ut10FileStream = .sbss:0x80576598; // type:object size:0x4 data:4byte typeInfo__Q34nw4r2ut13DvdFileStream = .sbss:0x805765A0; // type:object size:0x4 data:4byte @@ -49262,7 +49257,7 @@ lbl_8057E718 = .sdata2:0x8057E718; // type:object size:0x4 data:4byte lbl_8057E71C = .sdata2:0x8057E71C; // type:object size:0x4 data:4byte lbl_8057E720 = .sdata2:0x8057E720; // type:object size:0x4 align:4 data:float lbl_8057E728 = .sdata2:0x8057E728; // type:object size:0x8 align:8 data:double -lbl_8057E730 = .sdata2:0x8057E730; // type:object size:0x8 data:4byte +__EXIFreq = .sdata2:0x8057E730; // type:object size:0x8 data:4byte lbl_8057E738 = .sdata2:0x8057E738; // type:object size:0x4 align:4 data:float lbl_8057E73C = .sdata2:0x8057E73C; // type:object size:0x4 align:4 data:float lbl_8057E740 = .sdata2:0x8057E740; // type:object size:0x4 align:4 data:float @@ -51647,10 +51642,10 @@ TgSirenTag__StateID_PreDemo = .bss:0x805B8260; // type:object size:0x80 data:4by TgSirenTag__StateID_EventFinish = .bss:0x805B82E0; // type:object size:0x30 data:4byte lbl_805B8310 = .bss:0x805B8310; // type:object size:0x10 AcOSpore__STATE_WAIT = .bss:0x805B8320; // type:object size:0x40 data:4byte -lbl_805B8360 = .bss:0x805B8360; // type:object size:0x18 data:4byte -lbl_805B8378 = .bss:0x805B8378; // type:object size:0x28 data:4byte -lbl_805B83A0 = .bss:0x805B83A0; // type:object size:0x100 -lbl_805B84A0 = .bss:0x805B84A0; // type:object size:0x10 data:4byte +__THPMCUBuffer = .bss:0x805B8360; // type:object size:0x18 data:4byte +__THPLCWork512 = .bss:0x805B8378; // type:object size:0x28 data:4byte +__THPIDCTWorkspace = .bss:0x805B83A0; // type:object size:0x100 +__THPLCWork672 = .bss:0x805B84A0; // type:object size:0x10 data:4byte @66 = .bss:0x805B84B0; // type:object size:0xC scope:local null__8sStateID = .bss:0x805B84BC; // type:object size:0xC m_tmpCtData__7fBase_c = .bss:0x805B84C8; // type:object size:0x10 data:4byte @@ -51896,9 +51891,13 @@ lbl_8062E488 = .bss:0x8062E488; // type:object size:0x418 data:byte lbl_8062E8A0 = .bss:0x8062E8A0; // type:object size:0x4640 __responses = .bss:0x80632EE0; // type:object size:0xD0 scope:local data:4byte __timeout_alarm = .bss:0x80632FB0; // type:object size:0x30 scope:local -lbl_80632FE0 = .bss:0x80632FE0; // type:object size:0x40 -lbl_80633020 = .bss:0x80633020; // type:object size:0x80 data:4byte -lbl_806330A0 = .bss:0x806330A0; // type:object size:0x3A80 data:4byte +__rpcBuf = .bss:0x80632FE0; // type:object size:0x40 +__heaps = .bss:0x80633020; // type:object size:0x80 data:4byte +IpcReqArray = .bss:0x806330A0; // type:object size:0xC00 data:4byte +IpcReqPtrArray = .bss:0x80633CA0; // type:object size:0x180 data:4byte +IpcStartTimeArray = .bss:0x80633E20; // type:object size:0x300 data:4byte +IpcHandlePathBuf = .bss:0x80634120; // type:object size:0x1800 +IpcOpenPathBuf = .bss:0x80635920; // type:object size:0x1200 sMutex__Q34nw4r2ut19DvdLockedFileStream = .bss:0x80636B20; // type:object size:0x18 sLCImpl__Q34nw4r2ut28@unnamed@ut_LockedCache_cpp@ = .bss:0x80636B38; // type:object size:0x1C scope:local data:byte mLoadingTexture__Q34nw4r2ut10CharWriter = .bss:0x80636B58; // type:object size:0x10 data:4byte diff --git a/configure.py b/configure.py index fe360369..60e11451 100644 --- a/configure.py +++ b/configure.py @@ -1310,10 +1310,10 @@ config.libs = [ "progress_category": "sdk", "host": False, "objects": [ - Object(NonMatching, "RVL_SDK/thp/THPDec.c"), - Object(NonMatching, "RVL_SDK/thp/THPAudio.c"), - Object(NonMatching, "RVL_SDK/kpr/KPR.c"), - Object(NonMatching, "RVL_SDK/ai/AI.c"), + Object(NonMatching, "revolution/thp/THPDec.c"), + Object(NonMatching, "revolution/thp/THPAudio.c"), + Object(NonMatching, "revolution/kpr/kpr_lib.c"), + Object(NonMatching, "revolution/ai/ai.c"), Object(NonMatching, "RVL_SDK/arc/ARC.c"), Object(NonMatching, "RVL_SDK/ax/AX.c"), Object(NonMatching, "RVL_SDK/os/OS.c"), @@ -1333,11 +1333,14 @@ config.libs = [ Object(NonMatching, "RVL_SDK/kpad/KPAD.c"), Object(NonMatching, "RVL_SDK/usb/USB.c"), Object(NonMatching, "RVL_SDK/bte/BTE.c"), - Object(NonMatching, "RVL_SDK/ipc/IPC.c"), - Object(NonMatching, "RVL_SDK/fs/FS.c"), - Object(NonMatching, "RVL_SDK/euart/EUART.c"), - Object(NonMatching, "RVL_SDK/wenc/WENC.c"), - Object(NonMatching, "RVL_SDK/tpl/TPL.c"), + Object(NonMatching, "revolution/ipc/ipcMain.c"), + Object(NonMatching, "revolution/ipc/ipcclt.c"), + Object(NonMatching, "revolution/ipc/memory.c"), + Object(NonMatching, "revolution/ipc/ipcProfile.c"), + Object(NonMatching, "revolution/fs/fs.c"), + Object(NonMatching, "revolution/euart/euart.c"), + Object(NonMatching, "revolution/wenc/wenc.c"), + Object(NonMatching, "revolution/tpl/TPL.c"), Object(NonMatching, "NdevExi2A/DebuggerDriver.c"), Object(NonMatching, "NdevExi2A/exi2.c"), ], From c84977df63b715963fb92981fe86517c6ec5e9cd Mon Sep 17 00:00:00 2001 From: robojumper Date: Sun, 13 Jul 2025 14:04:32 +0200 Subject: [PATCH 24/36] More splits (text only) --- config/SOUE01/config.yml | 4 + config/SOUE01/splits.txt | 278 ++++++++++++++++++-- config/SOUE01/symbols.txt | 390 ++++++++++++++--------------- configure.py | 99 +++++++- include/egg/core/eggExpHeap.h | 2 +- include/rvl/GX/GXTexture.h | 2 +- include/rvl/MEM/mem_expHeap.h | 4 +- include/rvl/MEM/mem_heapCommon.h | 1 + include/rvl/OS/OSContext.h | 1 + include/rvl/OS/OSMemory.h | 11 + src/d/d_heap.cpp | 2 +- src/egg/core/eggExpHeap.cpp | 6 +- src/egg/core/eggHeap.cpp | 8 +- src/egg/gfx/eggCpuTexture.cpp | 2 +- src/m/m_heap.cpp | 2 +- src/nw4r/db/db_exception.cpp | 10 +- src/nw4r/g3d/platform/g3d_tmem.cpp | 2 +- 17 files changed, 579 insertions(+), 245 deletions(-) diff --git a/config/SOUE01/config.yml b/config/SOUE01/config.yml index 073afa3a..73050e28 100644 --- a/config/SOUE01/config.yml +++ b/config/SOUE01/config.yml @@ -29,6 +29,10 @@ force_active: [ "ModuleConstructorsX", "ModuleDestructorsX", ] +block_relocations: + # OSInit + - source: 0x803a2a9c + - source: 0x803a2b04 extract: - symbol: DOL_BACKUP_FONT header: d/dol_backup_error_font.inc diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index dcb58d9f..ad8cb1ed 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -2513,35 +2513,275 @@ revolution/ai/ai.c: .sdata start:0x805748F8 end:0x80574900 .sbss start:0x80575E00 end:0x80575E40 -RVL_SDK/arc/ARC.c: +revolution/arc/arc.c: .text start:0x8039B570 end:0x8039BF58 align:16 + .data start:0x8054D8C8 end:0x8054D938 + .sdata start:0x80574900 end:0x80574908 -RVL_SDK/ax/AX.c: - .text start:0x8039BF60 end:0x803A1CA0 align:16 +revolution/ax/AX.c: + .text start:0x8039BF60 end:0x8039BFC8 align:16 -RVL_SDK/os/OS.c: - .text start:0x803A1CA0 end:0x803B059C align:16 +revolution/ax/AXAlloc.c: + .text start:0x8039BFD0 end:0x8039C4BC align:16 -RVL_SDK/exi/EXI.c: - .text start:0x803B05A0 end:0x803B2368 align:16 +revolution/ax/AXAux.c: + .text start:0x8039C4C0 end:0x8039CD54 align:16 -RVL_SDK/si/SI.c: - .text start:0x803B2370 end:0x803B3498 align:16 +revolution/ax/AXCL.c: + .text start:0x8039CD60 end:0x8039D858 align:16 -RVL_SDK/vi/VI.c: - .text start:0x803B34A0 end:0x803B7F3C align:16 +revolution/ax/AXOut.c: + .text start:0x8039D860 end:0x8039E098 align:16 -RVL_SDK/mtx/MTX.c: - .text start:0x803B7F40 end:0x803B98FC align:16 +revolution/ax/AXSPB.c: + .text start:0x8039E0A0 end:0x8039E4CC align:16 -RVL_SDK/gx/GX.c: - .text start:0x803B9900 end:0x803C3060 align:16 +revolution/ax/AXVPB.c: + .text start:0x8039E4D0 end:0x8039F288 align:16 -RVL_SDK/dvd/DVD.c: - .text start:0x803C3060 end:0x803CC0A8 align:16 +revolution/ax/AXProf.c: + .text start:0x8039F290 end:0x8039F2D0 align:16 -RVL_SDK/mem/MEM.c: - .text start:0x803CC0B0 end:0x803CDD20 align:16 +revolution/axfx/AXFXReverbHi.c: + .text start:0x8039F2D0 end:0x8039F374 align:16 + +revolution/axfx/AXFXReverbHiExp.c: + .text start:0x8039F380 end:0x803A01A4 align:16 + +revolution/axfx/AXFXReverbStdExp.c: + .text start:0x803A01B0 end:0x803A0EDC align:16 + +revolution/axfx/AXFXReverbStdExpDpl2.c: + .text start:0x803A0EE0 end:0x803A1C50 align:16 + +revolution/axfx/AXFXHooks.c: + .text start:0x803A1C50 end:0x803A1C94 align:16 + .sdata start:0x80574918 end:0x80574920 + +revolution/base/PPCArch.c: + .text start:0x803A1CA0 end:0x803A1EC0 align:16 + +revolution/os/OS.c: + .text start:0x803A1EC0 end:0x803A33A0 align:16 + +revolution/os/OSAlarm.c: + .text start:0x803A33A0 end:0x803A3C58 align:16 + +revolution/os/OSAlloc.c: + .text start:0x803A3C60 end:0x803A3F80 align:16 + +revolution/os/OSArena.c: + .text start:0x803A3F80 end:0x803A4074 align:16 + +revolution/os/OSAudioSystem.c: + .text start:0x803A4080 end:0x803A4540 align:16 + +revolution/os/OSCache.c: + .text start:0x803A4540 end:0x803A4B98 align:16 + +revolution/os/OSContext.c: + .text start:0x803A4BA0 end:0x803A559C align:16 + +revolution/os/OSError.c: + .text start:0x803A55A0 end:0x803A5B2C align:16 + +revolution/os/OSExec.c: + .text start:0x803A5B30 end:0x803A73D8 align:16 + +revolution/os/OSFatal.c: + .text start:0x803A73E0 end:0x803A8008 align:16 + +revolution/os/OSFont.c: + .text start:0x803A8010 end:0x803A8CF8 align:16 + +revolution/os/OSInterrupt.c: + .text start:0x803A8D00 end:0x803A94D0 align:16 + +revolution/os/OSLink.c: + .text start:0x803A94D0 end:0x803A9FF4 align:16 + +revolution/os/OSMessage.c: + .text start:0x803AA000 end:0x803AA20C align:16 + +revolution/os/OSMemory.c: + .text start:0x803AA210 end:0x803AAA8C align:16 + +revolution/os/OSMutex.c: + .text start:0x803AAA90 end:0x803AADAC align:16 + +revolution/os/OSReboot.c: + .text start:0x803AADB0 end:0x803AAE34 align:16 + +revolution/os/OSReset.c: + .text start:0x803AAE40 end:0x803AB84C align:16 + +revolution/os/OSRtc.c: + .text start:0x803AB850 end:0x803AC300 align:16 + +revolution/os/OSSync.c: + .text start:0x803AC300 end:0x803AC380 align:16 + +revolution/os/OSThread.c: + .text start:0x803AC380 end:0x803ADAE8 align:16 + +revolution/os/OSTime.c: + .text start:0x803ADAF0 end:0x803ADF1C align:16 + +revolution/os/OSUtf.c: + .text start:0x803ADF20 end:0x803AE170 align:16 + +revolution/os/OSIpc.c: + .text start:0x803AE170 end:0x803AE1A8 align:16 + +revolution/os/OSStateTM.c: + .text start:0x803AE1B0 end:0x803AE8B4 align:16 + +revolution/os/OSPlayRecord.c: + .text start:0x803AE8C0 end:0x803AEFDC align:16 + +revolution/os/OSStateFlags.c: + .text start:0x803AEFE0 end:0x803AF1F8 align:16 + +revolution/os/OSNet.c: + .text start:0x803AF200 end:0x803AF79C align:16 + +revolution/os/OSNandbootInfo.c: + .text start:0x803AF7A0 end:0x803AF9A8 align:16 + +revolution/os/OSPlayTime.c: + .text start:0x803AF9B0 end:0x803B0188 align:16 + +revolution/os/OSCrc.c: + .text start:0x803B0190 end:0x803B02C4 align:16 + +revolution/os/OSLaunch.c: + .text start:0x803B02D0 end:0x803B04D4 align:16 + +revolution/os/__ppc_eabi_init.c: + .text start:0x803B04E0 end:0x803B059C align:16 + +revolution/exi/EXIBios.c: + .text start:0x803B05A0 end:0x803B1E98 align:16 + +revolution/exi/EXIUart.c: + .text start:0x803B1EA0 end:0x803B21DC align:16 + +revolution/exi/EXICommon.c: + .text start:0x803B21E0 end:0x803B2368 align:16 + +revolution/si/SIBios.c: + .text start:0x803B2370 end:0x803B33A4 align:16 + +revolution/si/SISamplingRate.c: + .text start:0x803B33B0 end:0x803B3498 align:16 + +revolution/vi/vi.c: + .text start:0x803B34A0 end:0x803B5EF0 align:16 + +revolution/vi/i2c.c: + .text start:0x803B5EF0 end:0x803B6804 align:16 + +revolution/vi/vi3in1.c: + .text start:0x803B6810 end:0x803B7F3C align:16 + +revolution/mtx/mtx.c: + .text start:0x803B7F40 end:0x803B8CF8 align:16 + +revolution/mtx/mtxvec.c: + .text start:0x803B8D00 end:0x803B8ED8 align:16 + +revolution/mtx/mtx44.c: + .text start:0x803B8EE0 end:0x803B9108 align:16 + +revolution/mtx/vec.c: + .text start:0x803B9110 end:0x803B9584 align:16 + +revolution/mtx/quat.c: + .text start:0x803B9590 end:0x803B98FC align:16 + +revolution/gx/GXInit.c: + .text start:0x803B9900 end:0x803BAA90 align:16 + +revolution/gx/GXFifo.c: + .text start:0x803BAA90 end:0x803BB6C8 align:16 + +revolution/gx/GXAttr.c: + .text start:0x803BB6D0 end:0x803BC954 align:16 + +revolution/gx/GXMisc.c: + .text start:0x803BC960 end:0x803BD214 align:16 + +revolution/gx/GXGeometry.c: + .text start:0x803BD220 end:0x803BD824 align:16 + +revolution/gx/GXFrameBuf.c: + .text start:0x803BD830 end:0x803BE338 align:16 + +revolution/gx/GXLight.c: + .text start:0x803BE340 end:0x803BEAA4 align:16 + +revolution/gx/GXTexture.c: + .text start:0x803BEAB0 end:0x803BFD50 align:16 + +revolution/gx/GXBump.c: + .text start:0x803BFD50 end:0x803C0394 align:16 + +revolution/gx/GXTev.c: + .text start:0x803C03A0 end:0x803C0A64 align:16 + +revolution/gx/GXPixel.c: + .text start:0x803C0A70 end:0x803C1270 align:16 + +revolution/gx/GXDraw.c: + .text start:0x803C1270 end:0x803C1E80 align:16 + +revolution/gx/GXDisplayList.c: + .text start:0x803C1E80 end:0x803C2064 align:16 + +revolution/gx/GXTransform.c: + .text start:0x803C2070 end:0x803C2828 align:16 + +revolution/gx/GXPerf.c: + .text start:0x803C2830 end:0x803C3060 align:16 + +revolution/dvd/dvdfs.c: + .text start:0x803C3060 end:0x803C3A58 align:16 + +revolution/dvd/dvd.c: + .text start:0x803C3A60 end:0x803C8864 align:16 + +revolution/dvd/dvdqueue.c: + .text start:0x803C8870 end:0x803C8AF0 align:16 + +revolution/dvd/dvderror.c: + .text start:0x803C8AF0 end:0x803C9508 align:16 + +revolution/dvd/dvdidutils.c: + .text start:0x803C9510 end:0x803C9600 align:16 + +revolution/dvd/dvdFatal.c: + .text start:0x803C9600 end:0x803C9768 align:16 + +revolution/dvd/dvdDeviceError.c: + .text start:0x803C9770 end:0x803C99FC align:16 + +revolution/dvd/dvd_broadway.c: + .text start:0x803C9A00 end:0x803CC0A8 align:16 + +revolution/mem/mem_heapCommon.c: + .text start:0x803CC0B0 end:0x803CC93C align:16 + +revolution/mem/mem_expHeap.c: + .text start:0x803CC940 end:0x803CD598 align:16 + +revolution/mem/mem_frameHeap.c: + .text start:0x803CD5A0 end:0x803CDBA0 align:16 + +revolution/mem/mem_allocator.c: + .text start:0x803CDBA0 end:0x803CDBFC align:16 + +revolution/mem/mem_list.c: + .text start:0x803CDC00 end:0x803CDD20 align:16 RVL_SDK/dsp/DSP.c: .text start:0x803CDD20 end:0x803CE868 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index b7aa3c87..64eee440 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -1,4 +1,4 @@ -__check_pad3_80004000 = .init:0x80004000; // type:function size:0x28 scope:local +__check_pad3 = .init:0x80004000; // type:function size:0x28 scope:local __set_debug_bba = .init:0x80004030; // type:function size:0xC scope:local __get_debug_bba = .init:0x80004040; // type:function size:0x8 scope:local __start = .init:0x80004050; // type:function size:0x168 scope:weak @@ -21708,16 +21708,16 @@ AXSetVoicePriority = .text:0x8039C420; // type:function size:0x9C __AXAuxInit = .text:0x8039C4C0; // type:function size:0x114 __AXGetAuxAInput = .text:0x8039C5E0; // type:function size:0x34 __AXGetAuxAOutput = .text:0x8039C620; // type:function size:0x1C -fn_8039C640 = .text:0x8039C640; // type:function size:0x20 -fn_8039C660 = .text:0x8039C660; // type:function size:0x20 -fn_8039C680 = .text:0x8039C680; // type:function size:0x20 -fn_8039C6A0 = .text:0x8039C6A0; // type:function size:0x20 +__AXGetAuxAInputDpl2 = .text:0x8039C640; // type:function size:0x20 +__AXGetAuxAOutputDpl2R = .text:0x8039C660; // type:function size:0x20 +__AXGetAuxAOutputDpl2Ls = .text:0x8039C680; // type:function size:0x20 +__AXGetAuxAOutputDpl2Rs = .text:0x8039C6A0; // type:function size:0x20 __AXGetAuxBInput = .text:0x8039C6C0; // type:function size:0x34 __AXGetAuxBOutput = .text:0x8039C700; // type:function size:0x1C -fn_8039C720 = .text:0x8039C720; // type:function size:0x20 -fn_8039C740 = .text:0x8039C740; // type:function size:0x20 -fn_8039C760 = .text:0x8039C760; // type:function size:0x20 -fn_8039C780 = .text:0x8039C780; // type:function size:0x20 +__AXGetAuxBInputDpl2 = .text:0x8039C720; // type:function size:0x20 +__AXGetAuxBOutputDpl2R = .text:0x8039C740; // type:function size:0x20 +__AXGetAuxBOutputDpl2Ls = .text:0x8039C760; // type:function size:0x20 +__AXGetAuxBOutputDpl2Rs = .text:0x8039C780; // type:function size:0x20 __AXGetAuxCInput = .text:0x8039C7A0; // type:function size:0x34 __AXGetAuxCOutput = .text:0x8039C7E0; // type:function size:0x1C __AXProcessAux = .text:0x8039C800; // type:function size:0x3AC @@ -21733,7 +21733,7 @@ __AXNextFrame = .text:0x8039CDA0; // type:function size:0x9BC __AXClInit = .text:0x8039D760; // type:function size:0x50 AXSetMode = .text:0x8039D7B0; // type:function size:0x8 AXGetMode = .text:0x8039D7C0; // type:function size:0x8 -fn_8039D7D0 = .text:0x8039D7D0; // type:function size:0x8 +AXSetCompressor = .text:0x8039D7D0; // type:function size:0x8 AXGetAuxAReturnVolume = .text:0x8039D7E0; // type:function size:0x8 AXGetAuxBReturnVolume = .text:0x8039D7F0; // type:function size:0x8 AXGetAuxCReturnVolume = .text:0x8039D800; // type:function size:0x8 @@ -21743,35 +21743,35 @@ AXSetAuxBReturnVolume = .text:0x8039D840; // type:function size:0x8 AXSetAuxCReturnVolume = .text:0x8039D850; // type:function size:0x8 __AXOutNewFrame = .text:0x8039D860; // type:function size:0x260 __AXOutAiCallback = .text:0x8039DAC0; // type:function size:0xB0 -fn_8039DB70 = .text:0x8039DB70; // type:function size:0xC -fn_8039DB80 = .text:0x8039DB80; // type:function size:0x54 +__AXDSPInitCallback = .text:0x8039DB70; // type:function size:0xC +__AXDSPResumeCallback = .text:0x8039DB80; // type:function size:0x54 __AXDSPDoneCallback = .text:0x8039DBE0; // type:function size:0x10 -fn_8039DBF0 = .text:0x8039DBF0; // type:function size:0x4 +__AXDSPRequestCallback = .text:0x8039DBF0; // type:function size:0x4 __AXOutInitDSP = .text:0x8039DC00; // type:function size:0xEC __AXOutInit = .text:0x8039DCF0; // type:function size:0x1F8 AXRegisterCallback = .text:0x8039DEF0; // type:function size:0x44 AXRmtGetSamplesLeft = .text:0x8039DF40; // type:function size:0x2C AXRmtGetSamples = .text:0x8039DF70; // type:function size:0xC4 AXRmtAdvancePtr = .text:0x8039E040; // type:function size:0x58 -fn_8039E0A0 = .text:0x8039E0A0; // type:function size:0xC -fn_8039E0B0 = .text:0x8039E0B0; // type:function size:0x6C -fn_8039E120 = .text:0x8039E120; // type:function size:0x6C +__AXGetStudio = .text:0x8039E0A0; // type:function size:0xC +__AXDepopFadeMain = .text:0x8039E0B0; // type:function size:0x6C +__AXDepopFadeRmt = .text:0x8039E120; // type:function size:0x6C __AXPrintStudio = .text:0x8039E190; // type:function size:0x178 -fn_8039E310 = .text:0x8039E310; // type:function size:0x58 -fn_8039E370 = .text:0x8039E370; // type:function size:0x15C -fn_8039E4D0 = .text:0x8039E4D0; // type:function size:0x8 -fn_8039E4E0 = .text:0x8039E4E0; // type:function size:0x550 +__AXSPBInit = .text:0x8039E310; // type:function size:0x58 +__AXDepopVoice = .text:0x8039E370; // type:function size:0x15C +__AXGetNumVoices = .text:0x8039E4D0; // type:function size:0x8 +__AXServiceVPB = .text:0x8039E4E0; // type:function size:0x550 __AXSyncPBs = .text:0x8039EA30; // type:function size:0x310 -fn_8039ED40 = .text:0x8039ED40; // type:function size:0x8 -fn_8039ED50 = .text:0x8039ED50; // type:function size:0x40 -fn_8039ED90 = .text:0x8039ED90; // type:function size:0x30 -fn_8039EDC0 = .text:0x8039EDC0; // type:function size:0x28C +__AXGetPBs = .text:0x8039ED40; // type:function size:0x8 +__AXSetPBDefault = .text:0x8039ED50; // type:function size:0x40 +__AXVPBInit = .text:0x8039ED90; // type:function size:0x30 +__AXVPBInitCommon = .text:0x8039EDC0; // type:function size:0x28C AXSetVoiceState = .text:0x8039F050; // type:function size:0x70 AXSetVoiceAddr = .text:0x8039F0C0; // type:function size:0xE8 AXGetLpfCoefs = .text:0x8039F1B0; // type:function size:0xBC AXSetMaxDspCycles = .text:0x8039F270; // type:function size:0x8 AXGetMaxVoices = .text:0x8039F280; // type:function size:0x8 -__AXGetCurrentProfile = .text:0x8039F290; // type:function size:0x40 scope:local +__AXGetCurrentProfile = .text:0x8039F290; // type:function size:0x40 AXFXReverbHiInit = .text:0x8039F2D0; // type:function size:0x64 AXFXReverbHiShutdown = .text:0x8039F340; // type:function size:0x24 AXFXReverbHiCallback = .text:0x8039F370; // type:function size:0x4 @@ -21781,7 +21781,7 @@ AXFXReverbHiExpCallback = .text:0x8039F580; // type:function size:0x524 __AllocDelayLine = .text:0x8039FAB0; // type:function size:0x174 scope:local __BzeroDelayLines = .text:0x8039FC30; // type:function size:0x124 scope:local __FreeDelayLine = .text:0x8039FD60; // type:function size:0x114 scope:local -fn_8039FE80 = .text:0x8039FE80; // type:function size:0x324 +__InitParams = .text:0x8039FE80; // type:function size:0x324 scope:local AXFXReverbStdExpGetMemSize = .text:0x803A01B0; // type:function size:0x60 AXFXReverbStdExpInit = .text:0x803A0210; // type:function size:0x17C AXFXReverbStdExpSettings = .text:0x803A0390; // type:function size:0xD0 @@ -21809,7 +21809,7 @@ AXFXGetHooks = .text:0x803A1C80; // type:function size:0x14 PPCMfmsr = .text:0x803A1CA0; // type:function size:0x8 scope:global PPCMtmsr = .text:0x803A1CB0; // type:function size:0x8 scope:global PPCMfhid0 = .text:0x803A1CC0; // type:function size:0x8 scope:global -fn_803A1CD0 = .text:0x803A1CD0; // type:function size:0x8 +PPCMthid0 = .text:0x803A1CD0; // type:function size:0x8 PPCMfl2cr = .text:0x803A1CE0; // type:function size:0x8 scope:global PPCMtl2cr = .text:0x803A1CF0; // type:function size:0x8 scope:global PPCMtdec = .text:0x803A1D00; // type:function size:0x8 scope:weak @@ -21825,7 +21825,7 @@ PPCMffpscr = .text:0x803A1DA0; // type:function size:0x20 scope:global PPCMtfpscr = .text:0x803A1DC0; // type:function size:0x28 scope:global PPCMfhid2 = .text:0x803A1DF0; // type:function size:0x8 scope:global PPCMthid2 = .text:0x803A1E00; // type:function size:0x8 scope:global -fn_803A1E10 = .text:0x803A1E10; // type:function size:0xC +PPCMfwpar = .text:0x803A1E10; // type:function size:0xC PPCMtwpar = .text:0x803A1E20; // type:function size:0x8 scope:global PPCDisableSpeculation = .text:0x803A1E30; // type:function size:0x28 scope:global PPCSetFpNonIEEEMode = .text:0x803A1E60; // type:function size:0x8 scope:global @@ -21934,26 +21934,26 @@ PackArgs = .text:0x803A5B30; // type:function size:0x180 Utf16ToArg = .text:0x803A5CB0; // type:function size:0x158 PackInstallerArgs = .text:0x803A5E10; // type:function size:0x1CC Run = .text:0x803A5FE0; // type:function size:0x3C -Callback = .text:0x803A6020; // type:function size:0xC +Callback = .text:0x803A6020; // type:function size:0xC scope:local __OSGetExecParams = .text:0x803A6030; // type:function size:0x24 scope:global callback = .text:0x803A6060; // type:function size:0x8 __OSLaunchNextFirmware = .text:0x803A6070; // type:function size:0x7FC __OSLaunchMenu = .text:0x803A6870; // type:function size:0xC8 scope:global __OSBootDolSimple = .text:0x803A6940; // type:function size:0x754 __OSBootDol = .text:0x803A70A0; // type:function size:0x1E0 -OSExec = .text:0x803A7280; // type:function size:0x158 +OSExecl = .text:0x803A7280; // type:function size:0x158 ScreenReport = .text:0x803A73E0; // type:function size:0x328 ConfigureVideo = .text:0x803A7710; // type:function size:0x120 OSFatal = .text:0x803A7830; // type:function size:0x1E8 scope:global Halt = .text:0x803A7A20; // type:function size:0x5E8 GetFontCode = .text:0x803A8010; // type:function size:0x138 Decode = .text:0x803A8150; // type:function size:0x1A8 -OSGetFontEncode = .text:0x803A8300; // type:function size:0x78 scope:global -OSSetFontEncode = .text:0x803A8380; // type:function size:0x310 -ReadFont = .text:0x803A8690; // type:function size:0x118 -OSLoadFont = .text:0x803A87B0; // type:function size:0xF8 -ParseStringS = .text:0x803A88B0; // type:function size:0x1B4 -ParseStringW = .text:0x803A8A70; // type:function size:0x288 +OSSetFontEncode = .text:0x803A8300; // type:function size:0x78 scope:global +ReadFont = .text:0x803A8380; // type:function size:0x310 +OSLoadFont = .text:0x803A8690; // type:function size:0x118 +ParseStringS = .text:0x803A87B0; // type:function size:0xF8 +ParseStringW = .text:0x803A88B0; // type:function size:0x1B4 +OSGetFontTexel = .text:0x803A8A70; // type:function size:0x288 OSDisableInterrupts = .text:0x803A8D00; // type:function size:0x14 scope:global OSEnableInterrupts = .text:0x803A8D20; // type:function size:0x14 scope:global OSRestoreInterrupts = .text:0x803A8D40; // type:function size:0x24 scope:global @@ -21985,53 +21985,53 @@ OSGetPhysicalMem1Size = .text:0x803AA210; // type:function size:0xC OSGetPhysicalMem2Size = .text:0x803AA220; // type:function size:0xC scope:global OSGetConsoleSimulatedMem1Size = .text:0x803AA230; // type:function size:0xC scope:global OSGetConsoleSimulatedMem2Size = .text:0x803AA240; // type:function size:0xC scope:global -fn_803AA250 = .text:0x803AA250; // type:function size:0x3C +OnShutdown = .text:0x803AA250; // type:function size:0x3C scope:local MEMIntrruptHandler = .text:0x803AA290; // type:function size:0x48 scope:local -fn_803AA2E0 = .text:0x803AA2E0; // type:function size:0xC8 -fn_803AA3B0 = .text:0x803AA3B0; // type:function size:0x80 -fn_803AA430 = .text:0x803AA430; // type:function size:0xD4 -fn_803AA510 = .text:0x803AA510; // type:function size:0xD4 -fn_803AA5F0 = .text:0x803AA5F0; // type:function size:0xA8 -fn_803AA6A0 = .text:0x803AA6A0; // type:function size:0xD4 -fn_803AA780 = .text:0x803AA780; // type:function size:0xA8 +OSProtectRange = .text:0x803AA2E0; // type:function size:0xC8 +ConfigMEM1_24MB = .text:0x803AA3B0; // type:function size:0x80 +ConfigMEM2_52MB = .text:0x803AA430; // type:function size:0xD4 +ConfigMEM2_56MB = .text:0x803AA510; // type:function size:0xD4 +ConfigMEM2_64MB = .text:0x803AA5F0; // type:function size:0xA8 +ConfigMEM2_112MB = .text:0x803AA6A0; // type:function size:0xD4 +ConfigMEM2_128MB = .text:0x803AA780; // type:function size:0xA8 RealMode = .text:0x803AA830; // type:function size:0x18 BATConfig = .text:0x803AA850; // type:function size:0x120 scope:local -fn_803AA970 = .text:0x803AA970; // type:function size:0x44 +__OSRestoreCodeExecOnMEM1 = .text:0x803AA970; // type:function size:0x44 __OSInitMemoryProtection = .text:0x803AA9C0; // type:function size:0xCC scope:global OSInitMutex = .text:0x803AAA90; // type:function size:0x38 OSLockMutex = .text:0x803AAAD0; // type:function size:0xDC OSUnlockMutex = .text:0x803AABB0; // type:function size:0xC8 __OSUnlockAllMutex = .text:0x803AAC80; // type:function size:0x6C OSTryLockMutex = .text:0x803AACF0; // type:function size:0xBC -fn_803AADB0 = .text:0x803AADB0; // type:function size:0x6C +__OSReboot = .text:0x803AADB0; // type:function size:0x6C OSGetSaveRegion = .text:0x803AAE20; // type:function size:0x14 OSRegisterShutdownFunction = .text:0x803AAE40; // type:function size:0x88 scope:global __OSCallShutdownFunctions = .text:0x803AAED0; // type:function size:0xB0 __OSShutdownDevices = .text:0x803AAF80; // type:function size:0x180 scope:global -fn_803AB100 = .text:0x803AB100; // type:function size:0xE0 -fn_803AB1E0 = .text:0x803AB1E0; // type:function size:0x11C -fn_803AB300 = .text:0x803AB300; // type:function size:0xD4 +OSRebootSystem = .text:0x803AB100; // type:function size:0xE0 +OSShutdownSystem = .text:0x803AB1E0; // type:function size:0x11C +OSRestart = .text:0x803AB300; // type:function size:0xD4 __OSReturnToMenu = .text:0x803AB3E0; // type:function size:0x288 scope:local OSReturnToMenu = .text:0x803AB670; // type:function size:0x40 scope:global -fn_803AB6B0 = .text:0x803AB6B0; // type:function size:0x40 -fn_803AB6F0 = .text:0x803AB6F0; // type:function size:0xA4 -fn_803AB7A0 = .text:0x803AB7A0; // type:function size:0x58 +OSReturnToDataManager = .text:0x803AB6B0; // type:function size:0x40 +__OSReturnToMenuForError = .text:0x803AB6F0; // type:function size:0xA4 +__OSHotResetForError = .text:0x803AB7A0; // type:function size:0x58 OSGetResetCode = .text:0x803AB800; // type:function size:0x30 scope:global OSResetSystem = .text:0x803AB830; // type:function size:0x1C scope:global -fn_803AB850 = .text:0x803AB850; // type:function size:0x138 +WriteSramCallback = .text:0x803AB850; // type:function size:0x138 __OSInitSram = .text:0x803AB990; // type:function size:0x200 scope:global UnlockSram = .text:0x803ABB90; // type:function size:0x2E0 scope:local __OSSyncSram = .text:0x803ABE70; // type:function size:0x10 scope:global -fn_803ABE80 = .text:0x803ABE80; // type:function size:0x124 +__OSReadROM = .text:0x803ABE80; // type:function size:0x124 OSGetWirelessID = .text:0x803ABFB0; // type:function size:0x78 OSSetWirelessID = .text:0x803AC030; // type:function size:0x9C __OSGetRTCFlags = .text:0x803AC0D0; // type:function size:0x11C scope:global __OSClearRTCFlags = .text:0x803AC1F0; // type:function size:0x110 scope:global __OSSystemCallVectorStart = .text:0x803AC300; // type:label scope:global -fn_803AC300 = .text:0x803AC300; // type:function size:0x20 +SystemCallVector = .text:0x803AC300; // type:function size:0x20 __OSSystemCallVectorEnd = .text:0x803AC31C; // type:label scope:global __OSInitSystemCall = .text:0x803AC320; // type:function size:0x60 scope:global -fn_803AC380 = .text:0x803AC380; // type:function size:0x4 +DefaultSwitchThreadCallback = .text:0x803AC380; // type:function size:0x4 OSSetSwitchThreadCallback = .text:0x803AC390; // type:function size:0x70 __OSThreadInit = .text:0x803AC400; // type:function size:0x284 scope:global OSInitThreadQueue = .text:0x803AC690; // type:function size:0x10 scope:global @@ -22056,31 +22056,31 @@ OSSuspendThread = .text:0x803AD670; // type:function size:0x18C OSSleepThread = .text:0x803AD800; // type:function size:0xF0 scope:global OSWakeupThread = .text:0x803AD8F0; // type:function size:0xF8 OSSetThreadPriority = .text:0x803AD9F0; // type:function size:0xEC -OSThreadGetBasePriority = .text:0x803ADAE0; // type:function size:0x8 +OSGetThreadPriority = .text:0x803ADAE0; // type:function size:0x8 OSGetTime = .text:0x803ADAF0; // type:function size:0x18 scope:global OSGetTick = .text:0x803ADB10; // type:function size:0x8 scope:global __OSGetSystemTime = .text:0x803ADB20; // type:function size:0x64 scope:global __OSTimeToSystemTime = .text:0x803ADB90; // type:function size:0x58 -fn_803ADBF0 = .text:0x803ADBF0; // type:function size:0x32C +OSTicksToCalendarTime = .text:0x803ADBF0; // type:function size:0x32C OSUTF8to32 = .text:0x803ADF20; // type:function size:0x114 OSUTF16to32 = .text:0x803AE040; // type:function size:0x70 -fn_803AE0B0 = .text:0x803AE0B0; // type:function size:0x7C +OSUTF32toANSI = .text:0x803AE0B0; // type:function size:0x7C OSUTF32toSJIS = .text:0x803AE130; // type:function size:0x40 __OSGetIPCBufferHi = .text:0x803AE170; // type:function size:0x8 __OSGetIPCBufferLo = .text:0x803AE180; // type:function size:0x8 __OSInitIPCBuffer = .text:0x803AE190; // type:function size:0x18 scope:global -fn_803AE1B0 = .text:0x803AE1B0; // type:function size:0xEC -fn_803AE2A0 = .text:0x803AE2A0; // type:function size:0xEC +OSSetResetCallback = .text:0x803AE1B0; // type:function size:0xEC +OSSetPowerCallback = .text:0x803AE2A0; // type:function size:0xEC __OSInitSTM = .text:0x803AE390; // type:function size:0x118 scope:global -fn_803AE4B0 = .text:0x803AE4B0; // type:function size:0x7C +__OSShutdownToSBY = .text:0x803AE4B0; // type:function size:0x7C __OSHotReset = .text:0x803AE530; // type:function size:0x74 scope:global -fn_803AE5B0 = .text:0x803AE5B0; // type:function size:0xF8 +__OSSetVIForceDimming = .text:0x803AE5B0; // type:function size:0xF8 __OSUnRegisterStateEvent = .text:0x803AE6B0; // type:function size:0x78 scope:global -fn_803AE730 = .text:0x803AE730; // type:function size:0x10 +__OSVIDimReplyHandler = .text:0x803AE730; // type:function size:0x10 __OSDefaultResetCallback = .text:0x803AE740; // type:function size:0x4 scope:local __OSDefaultPowerCallback = .text:0x803AE750; // type:function size:0x4 scope:local __OSStateEventHandler = .text:0x803AE760; // type:function size:0x154 scope:local -fn_803AE8C0 = .text:0x803AE8C0; // type:function size:0xC +PlayRecordAlarmCallback = .text:0x803AE8C0; // type:function size:0xC PlayRecordCallback = .text:0x803AE8D0; // type:function size:0x4B4 scope:local __OSStartPlayRecord = .text:0x803AED90; // type:function size:0x54 scope:global __OSStopPlayRecord = .text:0x803AEDF0; // type:function size:0x1EC scope:global @@ -22090,22 +22090,22 @@ __OSInitNet = .text:0x803AF200; // type:function size:0xB4 scope:global NWC24iPrepareShutdown = .text:0x803AF2C0; // type:function size:0xB8 scope:global NWC24iSynchronizeRtcCounter = .text:0x803AF380; // type:function size:0x94 scope:global NWC24SuspendScheduler = .text:0x803AF420; // type:function size:0x100 scope:global -fn_803AF520 = .text:0x803AF520; // type:function size:0x6C -fn_803AF590 = .text:0x803AF590; // type:function size:0xB8 -fn_803AF650 = .text:0x803AF650; // type:function size:0x124 -fn_803AF780 = .text:0x803AF780; // type:function size:0x1C -fn_803AF7A0 = .text:0x803AF7A0; // type:function size:0xB0 -fn_803AF850 = .text:0x803AF850; // type:function size:0x158 +NWC24iRequestShutdown = .text:0x803AF520; // type:function size:0x6C +NWC24Shutdown_ = .text:0x803AF590; // type:function size:0xB8 +NWC24iSetRtcCounter_ = .text:0x803AF650; // type:function size:0x124 +CallbackAsyncIpc = .text:0x803AF780; // type:function size:0x1C +__OSCreateNandbootInfo = .text:0x803AF7A0; // type:function size:0xB0 +__OSWriteNandbootInfo = .text:0x803AF850; // type:function size:0x158 OSPlayTimeIsLimited = .text:0x803AF9B0; // type:function size:0x18 scope:global -fn_803AF9D0 = .text:0x803AF9D0; // type:function size:0x1BC -fn_803AFB90 = .text:0x803AFB90; // type:function size:0x114 +__OSPlayTimeFadeLastAIDCallback = .text:0x803AF9D0; // type:function size:0x1BC +__OSWriteExpiredFlag = .text:0x803AFB90; // type:function size:0x114 __OSWriteExpiredFlagIfSet = .text:0x803AFCB0; // type:function size:0x18 scope:global -fn_803AFCD0 = .text:0x803AFCD0; // type:function size:0xEC +__OSPlayTimeRebootThread = .text:0x803AFCD0; // type:function size:0xEC __OSPlayTimeAlarmExpired = .text:0x803AFDC0; // type:function size:0xA0 scope:local __OSGetPlayTime = .text:0x803AFE60; // type:function size:0x1CC scope:global __OSInitPlayTime = .text:0x803B0030; // type:function size:0x158 scope:global OSCalcCRC32 = .text:0x803B0190; // type:function size:0x134 -fn_803B02D0 = .text:0x803B02D0; // type:function size:0x204 +__OSRelaunchTitle = .text:0x803B02D0; // type:function size:0x204 __init_user = .text:0x803B04E0; // type:function size:0x20 scope:global __init_cpp = .text:0x803B0500; // type:function size:0x48 scope:local exit = .text:0x803B0550; // type:function size:0x4C scope:weak @@ -22131,18 +22131,18 @@ EXIGetID = .text:0x803B1AF0; // type:function size:0x3A8 scope:global ProbeBarnacle = .text:0x803B1EA0; // type:function size:0x178 __OSEnableBarnacle = .text:0x803B2020; // type:function size:0x1BC scope:global EXIWriteReg = .text:0x803B21E0; // type:function size:0x188 -fn_803B2370 = .text:0x803B2370; // type:function size:0x2F4 +CompleteTransfer = .text:0x803B2370; // type:function size:0x2F4 SIInterruptHandler = .text:0x803B2670; // type:function size:0x3EC scope:local SIInit = .text:0x803B2A60; // type:function size:0xC0 scope:global -fn_803B2B20 = .text:0x803B2B20; // type:function size:0x1B0 +__SITransfer = .text:0x803B2B20; // type:function size:0x1B0 SISetXY = .text:0x803B2CD0; // type:function size:0x5C scope:global -fn_803B2D30 = .text:0x803B2D30; // type:function size:0x8C +AlarmHandler = .text:0x803B2D30; // type:function size:0x8C SITransfer = .text:0x803B2DC0; // type:function size:0x16C scope:global GetTypeCallback = .text:0x803B2F30; // type:function size:0x2B4 scope:local SIGetType = .text:0x803B31F0; // type:function size:0x1B4 scope:global SISetSamplingRate = .text:0x803B33B0; // type:function size:0xD4 scope:global -fn_803B3490 = .text:0x803B3490; // type:function size:0x8 -OnShutdown = .text:0x803B34A0; // type:function size:0x198 +SIRefreshSamplingRate = .text:0x803B3490; // type:function size:0x8 +OnShutdown = .text:0x803B34A0; // type:function size:0x198 scope:local __VIRetraceHandler = .text:0x803B3640; // type:function size:0x80C VISetPreRetraceCallback = .text:0x803B3E50; // type:function size:0x44 VISetPostRetraceCallback = .text:0x803B3EA0; // type:function size:0x44 @@ -22170,22 +22170,22 @@ VISetTimeToDimming = .text:0x803B5DC0; // type:function size:0xF8 VIResetDimmingCount = .text:0x803B5EC0; // type:function size:0x14 __VIResetRFIdle = .text:0x803B5EE0; // type:function size:0x10 WaitMicroTime = .text:0x803B5EF0; // type:function size:0x88 -sendWorkerAddr = .text:0x803B5F80; // type:function size:0x348 +sendSlaveAddr = .text:0x803B5F80; // type:function size:0x348 __VISendI2CData = .text:0x803B62D0; // type:function size:0x534 __VISetYUVSEL = .text:0x803B6810; // type:function size:0xA0 __VISetFilter4EURGB60 = .text:0x803B68B0; // type:function size:0x40 __VISetCGMS = .text:0x803B68F0; // type:function size:0x58 -fn_803B6950 = .text:0x803B6950; // type:function size:0x64 +__VISetWSS = .text:0x803B6950; // type:function size:0x64 __VISetClosedCaption = .text:0x803B69C0; // type:function size:0x6C -fn_803B6A30 = .text:0x803B6A30; // type:function size:0xD78 -fn_803B77B0 = .text:0x803B77B0; // type:function size:0x160 -fn_803B7910 = .text:0x803B7910; // type:function size:0x10 +__VISetMacrovision = .text:0x803B6A30; // type:function size:0xD78 +__VISetGammaImm = .text:0x803B77B0; // type:function size:0x160 +__VISetGamma1_0 = .text:0x803B7910; // type:function size:0x10 __VISetGamma = .text:0x803B7920; // type:function size:0x18 __VISetTrapFilter = .text:0x803B7940; // type:function size:0x5C -fn_803B79A0 = .text:0x803B79A0; // type:function size:0x84 -fn_803B7A30 = .text:0x803B7A30; // type:function size:0x10 +__VISetRGBOverDrive = .text:0x803B79A0; // type:function size:0x84 +VISetRGBModeImm = .text:0x803B7A30; // type:function size:0x10 __VISetRGBModeImm = .text:0x803B7A40; // type:function size:0x48 scope:global -fn_803B7A90 = .text:0x803B7A90; // type:function size:0x4AC +__VISetRevolutionModeSimple = .text:0x803B7A90; // type:function size:0x4AC PSMTXIdentity = .text:0x803B7F40; // type:function size:0x2C PSMTXCopy = .text:0x803B7F70; // type:function size:0x34 PSMTXConcat = .text:0x803B7FB0; // type:function size:0xCC @@ -22341,7 +22341,7 @@ GXGetTexObjAll = .text:0x803BF090; // type:function size:0x54 GXGetTexObjData = .text:0x803BF0F0; // type:function size:0xC GXGetTexObjWidth = .text:0x803BF100; // type:function size:0x14 GXGetTexObjHeight = .text:0x803BF120; // type:function size:0x14 -GXGetTexObjFormat = .text:0x803BF140; // type:function size:0x8 +GXGetTexObjFmt = .text:0x803BF140; // type:function size:0x8 GXGetTexObjWrapS = .text:0x803BF150; // type:function size:0xC GXGetTexObjWrapT = .text:0x803BF160; // type:function size:0xC GXGetTexObjMipMap = .text:0x803BF170; // type:function size:0xC @@ -22359,7 +22359,7 @@ GXInvalidateTexAll = .text:0x803BF610; // type:function size:0x48 GXSetTexRegionCallback = .text:0x803BF660; // type:function size:0x14 GXSetTlutRegionCallback = .text:0x803BF680; // type:function size:0x14 GXSetTexCoordScaleManually = .text:0x803BF6A0; // type:function size:0x7C -SetTexCoordCylWrap = .text:0x803BF720; // type:function size:0x64 +GXSetTexCoordCylWrap = .text:0x803BF720; // type:function size:0x64 GXSetTexCoordBias = .text:0x803BF790; // type:function size:0x64 __SetSURegs = .text:0x803BF800; // type:function size:0x90 __GXSetSUTexRegs = .text:0x803BF890; // type:function size:0x164 @@ -22451,36 +22451,36 @@ DVDCloseDir = .text:0x803C3A50; // type:function size:0x8 StampCommand = .text:0x803C3A60; // type:function size:0xB4 defaultOptionalCommandChecker = .text:0x803C3B20; // type:function size:0x4 DVDInit = .text:0x803C3B30; // type:function size:0x154 scope:global -fn_803C3C90 = .text:0x803C3C90; // type:function size:0x178 -fn_803C3E10 = .text:0x803C3E10; // type:function size:0x184 -fn_803C3FA0 = .text:0x803C3FA0; // type:function size:0x4 -fn_803C3FB0 = .text:0x803C3FB0; // type:function size:0x110 -fn_803C40C0 = .text:0x803C40C0; // type:function size:0x14 -fn_803C40E0 = .text:0x803C40E0; // type:function size:0x3C +stateReadingFST = .text:0x803C3C90; // type:function size:0x178 +cbForStateReadingFST = .text:0x803C3E10; // type:function size:0x184 +FatalAlarmHandler = .text:0x803C3FA0; // type:function size:0x4 +cbForStateError = .text:0x803C3FB0; // type:function size:0x110 +cbForStoreErrorCode1 = .text:0x803C40C0; // type:function size:0x14 +cbForStoreErrorCode2 = .text:0x803C40E0; // type:function size:0x3C CategorizeError = .text:0x803C4120; // type:function size:0xF4 -fn_803C4220 = .text:0x803C4220; // type:function size:0xC4 -fn_803C42F0 = .text:0x803C42F0; // type:function size:0x504 -fn_803C4800 = .text:0x803C4800; // type:function size:0x1E0 +cbForStoreErrorCode3 = .text:0x803C4220; // type:function size:0xC4 +cbForStateGettingError = .text:0x803C42F0; // type:function size:0x504 +cbForUnrecoveredError = .text:0x803C4800; // type:function size:0x1E0 cbForUnrecoveredErrorRetry = .text:0x803C49E0; // type:function size:0xD4 -fn_803C4AC0 = .text:0x803C4AC0; // type:function size:0x240 -fn_803C4D00 = .text:0x803C4D00; // type:function size:0x338 -fn_803C5040 = .text:0x803C5040; // type:function size:0x1A0 -fn_803C51E0 = .text:0x803C51E0; // type:function size:0x47C -fn_803C5660 = .text:0x803C5660; // type:function size:0x188 -fn_803C57F0 = .text:0x803C57F0; // type:function size:0x164 -fn_803C5960 = .text:0x803C5960; // type:function size:0x1C8 -fn_803C5B30 = .text:0x803C5B30; // type:function size:0x194 -fn_803C5CD0 = .text:0x803C5CD0; // type:function size:0xC4 -fn_803C5DA0 = .text:0x803C5DA0; // type:function size:0x250 -fn_803C5FF0 = .text:0x803C5FF0; // type:function size:0xE4 -fn_803C60E0 = .text:0x803C60E0; // type:function size:0xC8 -fn_803C61B0 = .text:0x803C61B0; // type:function size:0x240 -fn_803C63F0 = .text:0x803C63F0; // type:function size:0x178 -fn_803C6570 = .text:0x803C6570; // type:function size:0xD8 -fn_803C6650 = .text:0x803C6650; // type:function size:0x188 -fn_803C67E0 = .text:0x803C67E0; // type:function size:0x24 -fn_803C6810 = .text:0x803C6810; // type:function size:0x31C -fn_803C6B30 = .text:0x803C6B30; // type:function size:0x5B0 +cbForStateGoToRetry = .text:0x803C4AC0; // type:function size:0x240 +stateCheckID = .text:0x803C4D00; // type:function size:0x338 +cbForStateReadingTOC = .text:0x803C5040; // type:function size:0x1A0 +cbForStateReadingPartitionInfo = .text:0x803C51E0; // type:function size:0x47C +cbForStateOpenPartition = .text:0x803C5660; // type:function size:0x188 +cbForStateOpenPartition2 = .text:0x803C57F0; // type:function size:0x164 +cbForStateCheckID1 = .text:0x803C5960; // type:function size:0x1C8 +cbForStateCheckID2 = .text:0x803C5B30; // type:function size:0x194 +stateCoverClosed = .text:0x803C5CD0; // type:function size:0xC4 +ResetAlarmHandler = .text:0x803C5DA0; // type:function size:0x250 +cbForStateReset = .text:0x803C5FF0; // type:function size:0xE4 +stateDownRotation = .text:0x803C60E0; // type:function size:0xC8 +cbForStateDownRotation = .text:0x803C61B0; // type:function size:0x240 +stateCoverClosed_CMD = .text:0x803C63F0; // type:function size:0x178 +cbForStateCoverClosed = .text:0x803C6570; // type:function size:0xD8 +cbForPrepareCoverRegister = .text:0x803C6650; // type:function size:0x188 +CoverAlarmHandler = .text:0x803C67E0; // type:function size:0x24 +stateReady = .text:0x803C6810; // type:function size:0x31C +stateBusy = .text:0x803C6B30; // type:function size:0x5B0 cbForStateBusy = .text:0x803C70E0; // type:function size:0x9E0 DVDReadAbsAsyncPrio = .text:0x803C7AC0; // type:function size:0xE4 DVDInquiryAsync = .text:0x803C7BB0; // type:function size:0xD8 scope:global @@ -22495,7 +22495,7 @@ __BS2DVDLowCallback = .text:0x803C82A0; // type:function size:0x8 __DVDGetCoverStatus = .text:0x803C82B0; // type:function size:0xCC scope:global DVDCheckDiskAsync = .text:0x803C8380; // type:function size:0x238 __DVDPrepareResetAsync = .text:0x803C85C0; // type:function size:0x11C -Callback2 = .text:0x803C86E0; // type:function size:0xC +Callback = .text:0x803C86E0; // type:function size:0xC scope:local __DVDPrepareReset = .text:0x803C86F0; // type:function size:0x138 scope:global __DVDTestAlarm = .text:0x803C8830; // type:function size:0x20 __DVDStopMotorAsync = .text:0x803C8850; // type:function size:0x8 @@ -22506,77 +22506,77 @@ __DVDPopWaitingQueue = .text:0x803C8920; // type:function size:0xA0 __DVDCheckWaitingQueue = .text:0x803C89C0; // type:function size:0x58 __DVDGetNextWaitingQueue = .text:0x803C8A20; // type:function size:0x64 __DVDDequeueWaitingQueue = .text:0x803C8A90; // type:function size:0x60 -fn_803C8AF0 = .text:0x803C8AF0; // type:function size:0x2C -fn_803C8B20 = .text:0x803C8B20; // type:function size:0x5C -fn_803C8B80 = .text:0x803C8B80; // type:function size:0xFC -fn_803C8C80 = .text:0x803C8C80; // type:function size:0x154 -fn_803C8DE0 = .text:0x803C8DE0; // type:function size:0xBC -fn_803C8EA0 = .text:0x803C8EA0; // type:function size:0xE8 -fn_803C8F90 = .text:0x803C8F90; // type:function size:0xA0 -fn_803C9030 = .text:0x803C9030; // type:function size:0x100 -fn_803C9130 = .text:0x803C9130; // type:function size:0x11C -fn_803C9250 = .text:0x803C9250; // type:function size:0xA0 +cbForNandClose = .text:0x803C8AF0; // type:function size:0x2C +cbForNandWrite = .text:0x803C8B20; // type:function size:0x5C +cbForNandSeek = .text:0x803C8B80; // type:function size:0xFC +cbForNandWrite0 = .text:0x803C8C80; // type:function size:0x154 +cbForNandSeek2 = .text:0x803C8DE0; // type:function size:0xBC +cbForNandRead = .text:0x803C8EA0; // type:function size:0xE8 +cbForNandSeek0 = .text:0x803C8F90; // type:function size:0xA0 +cbForNandSeek1 = .text:0x803C9030; // type:function size:0x100 +cbForNandOpen = .text:0x803C9130; // type:function size:0x11C +cbForNandCreate = .text:0x803C9250; // type:function size:0xA0 cbForNandCreateDir = .text:0x803C92F0; // type:function size:0x94 -fn_803C9390 = .text:0x803C9390; // type:function size:0x90 -fn_803C9420 = .text:0x803C9420; // type:function size:0x78 -fn_803C94A0 = .text:0x803C94A0; // type:function size:0x68 +cbForPrepareControlRegister = .text:0x803C9390; // type:function size:0x90 +cbForPrepareStatusRegister = .text:0x803C9420; // type:function size:0x78 +__DVDStoreErrorCode = .text:0x803C94A0; // type:function size:0x68 DVDCompareDiskID = .text:0x803C9510; // type:function size:0xF0 __DVDShowFatalMessage = .text:0x803C9600; // type:function size:0xCC scope:global DVDSetAutoFatalMessaging = .text:0x803C96D0; // type:function size:0x5C scope:global -fn_803C9730 = .text:0x803C9730; // type:function size:0x14 -fn_803C9750 = .text:0x803C9750; // type:function size:0x18 +__DVDGetAutoFatalMessaging = .text:0x803C9730; // type:function size:0x14 +__DVDPrintFatalMessage = .text:0x803C9750; // type:function size:0x18 lowCallback = .text:0x803C9770; // type:function size:0x10 scope:local __DVDCheckDevice = .text:0x803C9780; // type:function size:0x27C scope:global -fn_803C9A00 = .text:0x803C9A00; // type:function size:0xB8 -fn_803C9AC0 = .text:0x803C9AC0; // type:function size:0xBC -fn_803C9B80 = .text:0x803C9B80; // type:function size:0x50 +doTransactionCallback = .text:0x803C9A00; // type:function size:0xB8 +doPrepareCoverRegisterCallback = .text:0x803C9AC0; // type:function size:0xBC +DVDLowFinalize = .text:0x803C9B80; // type:function size:0x50 DVDLowInit = .text:0x803C9BD0; // type:function size:0x264 scope:global -fn_803C9E40 = .text:0x803C9E40; // type:function size:0x18C -fn_803C9FD0 = .text:0x803C9FD0; // type:function size:0x26C -fn_803CA240 = .text:0x803CA240; // type:function size:0x264 -fn_803CA4B0 = .text:0x803CA4B0; // type:function size:0x210 -fn_803CA6C0 = .text:0x803CA6C0; // type:function size:0x298 -fn_803CA960 = .text:0x803CA960; // type:function size:0x168 +DVDLowReadDiskID = .text:0x803C9E40; // type:function size:0x18C +DVDLowOpenPartition = .text:0x803C9FD0; // type:function size:0x26C +DVDLowOpenPartitionWithTmdAndTicketView = .text:0x803CA240; // type:function size:0x264 +DVDLowGetNoDiscBufferSizes = .text:0x803CA4B0; // type:function size:0x210 +DVDLowGetNoDiscOpenPartitionParams = .text:0x803CA6C0; // type:function size:0x298 +DVDLowClosePartition = .text:0x803CA960; // type:function size:0x168 DVDLowUnencryptedRead = .text:0x803CAAD0; // type:function size:0x198 scope:global -fn_803CAC70 = .text:0x803CAC70; // type:function size:0x198 -fn_803CAE10 = .text:0x803CAE10; // type:function size:0x16C +DVDLowStopMotor = .text:0x803CAC70; // type:function size:0x198 +DVDLowInquiry = .text:0x803CAE10; // type:function size:0x16C DVDLowRequestError = .text:0x803CAF80; // type:function size:0x168 scope:global -fn_803CB0F0 = .text:0x803CB0F0; // type:function size:0xC -fn_803CB100 = .text:0x803CB100; // type:function size:0x17C -fn_803CB280 = .text:0x803CB280; // type:function size:0x198 +DVDLowSetSpinupFlag = .text:0x803CB0F0; // type:function size:0xC +DVDLowReset = .text:0x803CB100; // type:function size:0x17C +DVDLowAudioBufferConfig = .text:0x803CB280; // type:function size:0x198 DVDLowReportKey = .text:0x803CB420; // type:function size:0x198 scope:global -fn_803CB5C0 = .text:0x803CB5C0; // type:function size:0x184 -fn_803CB750 = .text:0x803CB750; // type:function size:0x1B0 -fn_803CB900 = .text:0x803CB900; // type:function size:0x180 -fn_803CBA80 = .text:0x803CBA80; // type:function size:0x10 -fn_803CBA90 = .text:0x803CBA90; // type:function size:0xC -fn_803CBAA0 = .text:0x803CBAA0; // type:function size:0xC -fn_803CBAB0 = .text:0x803CBAB0; // type:function size:0x16C -fn_803CBC20 = .text:0x803CBC20; // type:function size:0x16C -fn_803CBD90 = .text:0x803CBD90; // type:function size:0x16C +DVDLowSetMaximumRotation = .text:0x803CB5C0; // type:function size:0x184 +DVDLowRead = .text:0x803CB750; // type:function size:0x1B0 +DVDLowSeek = .text:0x803CB900; // type:function size:0x180 +DVDLowGetCoverRegister = .text:0x803CBA80; // type:function size:0x10 +DVDLowGetStatusRegister = .text:0x803CBA90; // type:function size:0xC +DVDLowGetControlRegister = .text:0x803CBAA0; // type:function size:0xC +DVDLowPrepareCoverRegister = .text:0x803CBAB0; // type:function size:0x16C +DVDLowPrepareStatusRegister = .text:0x803CBC20; // type:function size:0x16C +DVDLowPrepareControlRegister = .text:0x803CBD90; // type:function size:0x16C DVDLowGetImmBufferReg = .text:0x803CBF00; // type:function size:0xC scope:global DVDLowUnmaskStatusInterrupts = .text:0x803CBF10; // type:function size:0x8 scope:global DVDLowMaskCoverInterrupt = .text:0x803CBF20; // type:function size:0x8 scope:global -fn_803CBF30 = .text:0x803CBF30; // type:function size:0x168 -fn_803CC0A0 = .text:0x803CC0A0; // type:function size:0x8 +DVDLowClearCoverInterrupt = .text:0x803CBF30; // type:function size:0x168 +__DVDLowTestAlarm = .text:0x803CC0A0; // type:function size:0x8 FindContainHeap_ = .text:0x803CC0B0; // type:function size:0x140 -MemSearchHandleInner = .text:0x803CC1F0; // type:function size:0x14C -MEMInitHeapHead = .text:0x803CC340; // type:function size:0x1C0 -fn_803CC500 = .text:0x803CC500; // type:function size:0x16C -findSomethingInListObject = .text:0x803CC670; // type:function size:0x140 -MEMFindContainHeap = .text:0x803CC7B0; // type:function size:0x18C +FindParentHeap_ = .text:0x803CC1F0; // type:function size:0x14C +MEMiInitHeapHead = .text:0x803CC340; // type:function size:0x1C0 +MEMiFinalizeHeap = .text:0x803CC500; // type:function size:0x16C +MEMFindContainHeap = .text:0x803CC670; // type:function size:0x140 +MEMFindParentHeap = .text:0x803CC7B0; // type:function size:0x18C AllocUsedBlockFromFreeBlock_ = .text:0x803CC940; // type:function size:0x22C AllocFromHead_ = .text:0x803CCB70; // type:function size:0xDC AllocFromTail_ = .text:0x803CCC50; // type:function size:0xC8 -fn_803CCD20 = .text:0x803CCD20; // type:function size:0x168 +RecycleRegion_ = .text:0x803CCD20; // type:function size:0x168 MEMCreateExpHeapEx = .text:0x803CCE90; // type:function size:0xB0 MEMDestroyExpHeap = .text:0x803CCF40; // type:function size:0x30 MEMAllocFromExpHeapEx = .text:0x803CCF70; // type:function size:0xB0 MEMResizeForMBlockExpHeap = .text:0x803CD020; // type:function size:0x1FC MEMFreeToExpHeap = .text:0x803CD220; // type:function size:0xC4 -MEMGetAllocatableSizeForExpHeap = .text:0x803CD2F0; // type:function size:0x7C +MEMGetTotalFreeSizeForExpHeap = .text:0x803CD2F0; // type:function size:0x7C MEMGetAllocatableSizeForExpHeapEx = .text:0x803CD370; // type:function size:0xD8 -MEMSetGroupIdForExpHeap = .text:0x803CD450; // type:function size:0x58 +MEMSetAllocModeForExpHeap = .text:0x803CD450; // type:function size:0x58 MEMGetSizeForMBlockExpHeap = .text:0x803CD4B0; // type:function size:0x8 MEMAdjustExpHeap = .text:0x803CD4C0; // type:function size:0xD8 MEMCreateFrmHeapEx = .text:0x803CD5A0; // type:function size:0x84 @@ -22593,9 +22593,9 @@ AllocatorFreeForExpHeap_ = .text:0x803CDBB0; // type:function size:0x8 MEMAllocFromAllocator = .text:0x803CDBC0; // type:function size:0x10 MEMFreeToAllocator = .text:0x803CDBD0; // type:function size:0x10 MEMInitAllocatorForExpHeap = .text:0x803CDBE0; // type:function size:0x1C -fn_803CDC00 = .text:0x803CDC00; // type:function size:0x18 -fn_803CDC20 = .text:0x803CDC20; // type:function size:0x70 -fn_803CDC90 = .text:0x803CDC90; // type:function size:0x6C +MEMInitList = .text:0x803CDC00; // type:function size:0x18 +MEMAppendListObject = .text:0x803CDC20; // type:function size:0x70 +MEMRemoveListObject = .text:0x803CDC90; // type:function size:0x6C MEMGetNextListObject = .text:0x803CDD00; // type:function size:0x20 DSPCheckMailToDSP = .text:0x803CDD20; // type:function size:0x10 DSPCheckMailFromDSP = .text:0x803CDD30; // type:function size:0x10 @@ -26217,7 +26217,7 @@ free__Q23EGG7ExpHeapFPv = .text:0x80495E50; // type:function size:0x68 resizeForMBlock__Q23EGG7ExpHeapFPvUl = .text:0x80495EC0; // type:function size:0x8 getTotalFreeSize__Q23EGG7ExpHeapFv = .text:0x80495ED0; // type:function size:0x8 getAllocatableSize__Q23EGG7ExpHeapFl = .text:0x80495EE0; // type:function size:0x8 -setGroupID__Q23EGG7ExpHeapFUs = .text:0x80495EF0; // type:function size:0x8 +setAllocMode__Q23EGG7ExpHeapFUs = .text:0x80495EF0; // type:function size:0x8 adjust__Q23EGG7ExpHeapFv = .text:0x80495F00; // type:function size:0x78 getSizeForMBlock__Q23EGG7ExpHeapFPCv = .text:0x80495F80; // type:function size:0x4 getHeapKind__Q23EGG7ExpHeapCFv = .text:0x80495F90; // type:function size:0x8 @@ -37811,8 +37811,8 @@ lbl_8054D810 = .data:0x8054D810; // type:object size:0x48 lbl_8054D858 = .data:0x8054D858; // type:object size:0xA data:string lbl_8054D864 = .data:0x8054D864; // type:object size:0x15 data:string lbl_8054D880 = .data:0x8054D880; // type:object size:0x48 -lbl_8054D8C8 = .data:0x8054D8C8; // type:object size:0x24 -lbl_8054D8EC = .data:0x8054D8EC; // type:object size:0x4C +lbl_8054D8C8 = .data:0x8054D8C8; // type:object size:0x22 data:string +lbl_8054D8EC = .data:0x8054D8EC; // type:object size:0x46 data:string lbl_8054D938 = .data:0x8054D938; // type:object size:0x48 lbl_8054D980 = .data:0x8054D980; // type:object size:0x80 lbl_8054DA00 = .data:0x8054DA00; // type:object size:0x20 @@ -38043,7 +38043,8 @@ lbl_80560F94 = .data:0x80560F94; // type:object size:0x3C lbl_80560FD0 = .data:0x80560FD0; // type:object size:0x3C data:string lbl_8056100C = .data:0x8056100C; // type:object size:0x3C lbl_80561048 = .data:0x80561048; // type:object size:0x30 -lbl_80561078 = .data:0x80561078; // type:object size:0x60 +@3815 = .data:0x80561078; // type:object size:0x32 scope:local data:string +lbl_805610AA = .data:0x805610AA; // type:object size:0x2E lbl_805610D8 = .data:0x805610D8; // type:object size:0xEA8 lbl_80561F80 = .data:0x80561F80; // type:object size:0x80 lbl_80562000 = .data:0x80562000; // type:object size:0x140 @@ -38818,7 +38819,7 @@ lbl_80570928 = .data:0x80570928; // type:object size:0x1C lbl_80570944 = .data:0x80570944; // type:object size:0x34 lbl_80570978 = .data:0x80570978; // type:object size:0x18 lbl_80570990 = .data:0x80570990; // type:object size:0x28 -lbl_805709B8 = .data:0x805709B8; // type:object size:0x48 +_current_locale = .data:0x805709B8; // type:object size:0x48 jumptable_80570A00 = .data:0x80570A00; // type:object size:0xE0 scope:local @2934 = .data:0x80570AE0; // type:object size:0x150 scope:local jumptable_80570C30 = .data:0x80570C30; // type:object size:0xE0 scope:local @@ -40904,7 +40905,7 @@ lbl_805748E0 = .sdata:0x805748E0; // type:object size:0x8 lbl_805748E8 = .sdata:0x805748E8; // type:object size:0x8 __KPRVersion = .sdata:0x805748F0; // type:object size:0x8 data:4byte __AIVersion = .sdata:0x805748F8; // type:object size:0x8 data:4byte -lbl_80574900 = .sdata:0x80574900; // type:object size:0x8 +lbl_80574900 = .sdata:0x80574900; // type:object size:0x6 data:string lbl_80574908 = .sdata:0x80574908; // type:object size:0x8 data:4byte lbl_80574910 = .sdata:0x80574910; // type:object size:0x2 data:2byte lbl_80574912 = .sdata:0x80574912; // type:object size:0x2 data:2byte @@ -42035,7 +42036,7 @@ lbl_80575FD8 = .sbss:0x80575FD8; // type:object size:0x4 data:4byte lbl_80575FDC = .sbss:0x80575FDC; // type:object size:0x4 data:4byte __OSArenaHi = .sbss:0x80575FE0; // type:object size:0x4 scope:local data:4byte s_mem2ArenaHi = .sbss:0x80575FE4; // type:object size:0x4 scope:local data:4byte -lbl_80575FE8 = .sbss:0x80575FE8; // type:object size:0x4 data:4byte +__OSNextPartitionType = .sbss:0x80575FE8; // type:object size:0x4 data:4byte lbl_80575FEC = .sbss:0x80575FEC; // type:object size:0x4 data:4byte lbl_80575FF0 = .sbss:0x80575FF0; // type:object size:0x4 data:4byte __OSInReboot = .sbss:0x80575FF4; // type:object size:0x4 scope:global data:4byte @@ -42169,17 +42170,17 @@ FstStringStart = .sbss:0x80576244; // type:object size:0x4 scope:local data:4byt FstStart = .sbss:0x80576248; // type:object size:0x4 scope:local data:4byte BootInfo = .sbss:0x8057624C; // type:object size:0x4 scope:local data:4byte lbl_80576260 = .sbss:0x80576260; // type:object size:0x4 data:4byte -lbl_80576264 = .sbss:0x80576264; // type:object size:0x4 data:4byte +PauseFlag = .sbss:0x80576264; // type:object size:0x4 scope:local data:4byte PausingFlag = .sbss:0x80576268; // type:object size:0x4 scope:local data:4byte FatalErrorFlag = .sbss:0x8057626C; // type:object size:0x4 scope:local data:4byte lbl_80576270 = .sbss:0x80576270; // type:object size:0x4 data:4byte -lbl_80576274 = .sbss:0x80576274; // type:object size:0x4 data:4byte +ResumeFromHere = .sbss:0x80576274; // type:object size:0x4 scope:local data:4byte lbl_80576278 = .sbss:0x80576278; // type:object size:0x4 data:4byte FirstTimeInBootrom = .sbss:0x8057627C; // type:object size:0x4 scope:local data:4byte lbl_80576280 = .sbss:0x80576280; // type:object size:0x4 data:4byte -lbl_80576284 = .sbss:0x80576284; // type:object size:0x4 data:4byte -lbl_80576288 = .sbss:0x80576288; // type:object size:0x4 data:4byte -lbl_8057628C = .sbss:0x8057628C; // type:object size:0x4 data:4byte +WaitingForCoverOpen = .sbss:0x80576284; // type:object size:0x4 scope:local data:4byte +WaitingForCoverClose = .sbss:0x80576288; // type:object size:0x4 scope:local data:4byte +MotorStopped = .sbss:0x8057628C; // type:object size:0x4 scope:local data:4byte lbl_80576290 = .sbss:0x80576290; // type:object size:0x4 data:4byte lbl_80576294 = .sbss:0x80576294; // type:object size:0x4 data:4byte __DVDLayoutFormat = .sbss:0x80576298; // type:object size:0x4 scope:global data:4byte @@ -42195,28 +42196,28 @@ lbl_805762CC = .sbss:0x805762CC; // type:object size:0x4 data:4byte MotorState = .sbss:0x805762D0; // type:object size:0x4 scope:local data:4byte lbl_805762D4 = .sbss:0x805762D4; // type:object size:0x4 data:4byte lbl_805762D8 = .sbss:0x805762D8; // type:object size:0x4 data:4byte -lbl_805762DC = .sbss:0x805762DC; // type:object size:0x4 data:4byte +CancelLastError = .sbss:0x805762DC; // type:object size:0x4 scope:local data:4byte lbl_805762E0 = .sbss:0x805762E0; // type:object size:0x4 data:4byte -lbl_805762E4 = .sbss:0x805762E4; // type:object size:0x4 data:4byte +CurrCommand = .sbss:0x805762E4; // type:object size:0x4 scope:local data:4byte bootInfo = .sbss:0x805762E8; // type:object size:0x4 scope:local data:4byte IDShouldBe = .sbss:0x805762EC; // type:object size:0x4 scope:local data:4byte executing = .sbss:0x805762F0; // type:object size:0x4 scope:local data:4byte lbl_805762F4 = .sbss:0x805762F4; // type:object size:0x4 data:4byte lbl_805762F8 = .sbss:0x805762F8; // type:object size:0x4 data:4byte lbl_805762FC = .sbss:0x805762FC; // type:object size:0x4 data:4byte -lbl_80576300 = .sbss:0x80576300; // type:object size:0x8 data:4byte +Callback = .sbss:0x80576300; // type:object size:0x4 scope:local data:4byte FatalFunc = .sbss:0x80576308; // type:object size:0x4 scope:local data:4byte lowIntType = .sbss:0x80576310; // type:object size:0x4 scope:local data:4byte -lbl_80576318 = .sbss:0x80576318; // type:object size:0x1 data:byte +requestInProgress = .sbss:0x80576318; // type:object size:0x1 scope:local data:byte lbl_80576319 = .sbss:0x80576319; // type:object size:0x1 data:byte -lbl_8057631C = .sbss:0x8057631C; // type:object size:0x4 data:4byte -lbl_80576320 = .sbss:0x80576320; // type:object size:0x4 data:4byte +freeCommandBuf = .sbss:0x8057631C; // type:object size:0x4 scope:local data:4byte +freeDvdContext = .sbss:0x80576320; // type:object size:0x4 scope:local data:4byte lbl_80576324 = .sbss:0x80576324; // type:object size:0x1 data:byte lbl_80576325 = .sbss:0x80576325; // type:object size:0x1 data:byte -lbl_80576328 = .sbss:0x80576328; // type:object size:0x4 data:4byte +spinUpValue = .sbss:0x80576328; // type:object size:0x4 scope:local data:4byte lbl_8057632C = .sbss:0x8057632C; // type:object size:0x4 data:4byte lbl_80576330 = .sbss:0x80576330; // type:object size:0x4 data:4byte -lbl_80576334 = .sbss:0x80576334; // type:object size:0x4 data:4byte +diCommand = .sbss:0x80576334; // type:object size:0x4 scope:local data:4byte lbl_80576338 = .sbss:0x80576338; // type:object size:0x8 data:byte lbl_80576340 = .sbss:0x80576340; // type:object size:0x8 data:4byte lbl_80576348 = .sbss:0x80576348; // type:object size:0x8 data:4byte @@ -49253,8 +49254,7 @@ lbl_8057E700 = .sdata2:0x8057E700; // type:object size:0x4 align:4 data:float lbl_8057E704 = .sdata2:0x8057E704; // type:object size:0x4 align:4 data:float lbl_8057E708 = .sdata2:0x8057E708; // type:object size:0x4 align:4 data:float lbl_8057E710 = .sdata2:0x8057E710; // type:object size:0x8 align:8 data:double -lbl_8057E718 = .sdata2:0x8057E718; // type:object size:0x4 data:4byte -lbl_8057E71C = .sdata2:0x8057E71C; // type:object size:0x4 data:4byte +lbl_8057E718 = .sdata2:0x8057E718; // type:object size:0x8 data:4byte lbl_8057E720 = .sdata2:0x8057E720; // type:object size:0x4 align:4 data:float lbl_8057E728 = .sdata2:0x8057E728; // type:object size:0x8 align:8 data:double __EXIFreq = .sdata2:0x8057E730; // type:object size:0x8 data:4byte @@ -51824,7 +51824,7 @@ __DVDTmdBuffer = .bss:0x805E9140; // type:object size:0x4A00 scope:local lbl_805EDB40 = .bss:0x805EDB40; // type:object size:0x20 DummyCommandBlock = .bss:0x805EDB60; // type:object size:0x30 scope:local lbl_805EDB90 = .bss:0x805EDB90; // type:object size:0x30 -lbl_805EDBC0 = .bss:0x805EDBC0; // type:object size:0x40 +CoverAlarm = .bss:0x805EDBC0; // type:object size:0x30 scope:local lbl_805EDC00 = .bss:0x805EDC00; // type:object size:0x20 lbl_805EDC20 = .bss:0x805EDC20; // type:object size:0x20 lbl_805EDC40 = .bss:0x805EDC40; // type:object size:0x20 @@ -51835,8 +51835,8 @@ lbl_805EDD20 = .bss:0x805EDD20; // type:object size:0x8C lbl_805EDDAC = .bss:0x805EDDAC; // type:object size:0xD4 __ErrorInfo = .bss:0x805EDE80; // type:object size:0x80 scope:global data:byte CheckBuffer = .bss:0x805EDF80; // type:object size:0x20 scope:local -lbl_805EDFA0 = .bss:0x805EDFA0; // type:object size:0x80 data:4byte -lbl_805EE020 = .bss:0x805EE020; // type:object size:0x20 data:4byte +dvdContexts = .bss:0x805EDFA0; // type:object size:0x80 scope:local data:4byte +diRegValCache = .bss:0x805EE020; // type:object size:0x20 scope:local data:4byte lbl_805EE040 = .bss:0x805EE040; // type:object size:0x20 data:4byte lbl_805EE060 = .bss:0x805EE060; // type:object size:0xC0 data:4byte lbl_805EE120 = .bss:0x805EE120; // type:object size:0x20 data:4byte diff --git a/configure.py b/configure.py index 60e11451..9cd74e13 100644 --- a/configure.py +++ b/configure.py @@ -1314,16 +1314,95 @@ config.libs = [ Object(NonMatching, "revolution/thp/THPAudio.c"), Object(NonMatching, "revolution/kpr/kpr_lib.c"), Object(NonMatching, "revolution/ai/ai.c"), - Object(NonMatching, "RVL_SDK/arc/ARC.c"), - Object(NonMatching, "RVL_SDK/ax/AX.c"), - Object(NonMatching, "RVL_SDK/os/OS.c"), - Object(NonMatching, "RVL_SDK/exi/EXI.c"), - Object(NonMatching, "RVL_SDK/si/SI.c"), - Object(NonMatching, "RVL_SDK/vi/VI.c"), - Object(NonMatching, "RVL_SDK/mtx/MTX.c"), - Object(NonMatching, "RVL_SDK/gx/GX.c"), - Object(NonMatching, "RVL_SDK/dvd/DVD.c"), - Object(NonMatching, "RVL_SDK/mem/MEM.c"), + Object(NonMatching, "revolution/arc/arc.c"), + Object(NonMatching, "revolution/ax/AX.c"), + Object(NonMatching, "revolution/ax/AXAlloc.c"), + Object(NonMatching, "revolution/ax/AXAux.c"), + Object(NonMatching, "revolution/ax/AXCL.c"), + Object(NonMatching, "revolution/ax/AXOut.c"), + Object(NonMatching, "revolution/ax/AXSPB.c"), + Object(NonMatching, "revolution/ax/AXVPB.c"), + Object(NonMatching, "revolution/ax/AXProf.c"), + Object(NonMatching, "revolution/axfx/AXFXReverbHi.c"), + Object(NonMatching, "revolution/axfx/AXFXReverbHiExp.c"), + Object(NonMatching, "revolution/axfx/AXFXReverbStdExp.c"), + Object(NonMatching, "revolution/axfx/AXFXReverbStdExpDpl2.c"), + Object(NonMatching, "revolution/axfx/AXFXHooks.c"), + Object(NonMatching, "revolution/base/PPCArch.c"), + Object(NonMatching, "revolution/os/OS.c"), + Object(NonMatching, "revolution/os/OSAlarm.c"), + Object(NonMatching, "revolution/os/OSAlloc.c"), + Object(NonMatching, "revolution/os/OSArena.c"), + Object(NonMatching, "revolution/os/OSAudioSystem.c"), + Object(NonMatching, "revolution/os/OSCache.c"), + Object(NonMatching, "revolution/os/OSContext.c"), + Object(NonMatching, "revolution/os/OSError.c"), + Object(NonMatching, "revolution/os/OSExec.c"), + Object(NonMatching, "revolution/os/OSFatal.c"), + Object(NonMatching, "revolution/os/OSFont.c"), + Object(NonMatching, "revolution/os/OSInterrupt.c"), + Object(NonMatching, "revolution/os/OSLink.c"), + Object(NonMatching, "revolution/os/OSMessage.c"), + Object(NonMatching, "revolution/os/OSMemory.c"), + Object(NonMatching, "revolution/os/OSMutex.c"), + Object(NonMatching, "revolution/os/OSReboot.c"), + Object(NonMatching, "revolution/os/OSReset.c"), + Object(NonMatching, "revolution/os/OSRtc.c"), + Object(NonMatching, "revolution/os/OSSync.c"), + Object(NonMatching, "revolution/os/OSThread.c"), + Object(NonMatching, "revolution/os/OSTime.c"), + Object(NonMatching, "revolution/os/OSUtf.c"), + Object(NonMatching, "revolution/os/OSIpc.c"), + Object(NonMatching, "revolution/os/OSStateTM.c"), + Object(NonMatching, "revolution/os/OSPlayRecord.c"), + Object(NonMatching, "revolution/os/OSStateFlags.c"), + Object(NonMatching, "revolution/os/OSNet.c"), + Object(NonMatching, "revolution/os/OSNandbootInfo.c"), + Object(NonMatching, "revolution/os/OSPlayTime.c"), + Object(NonMatching, "revolution/os/OSCrc.c"), + Object(NonMatching, "revolution/os/OSLaunch.c"), + Object(NonMatching, "revolution/os/__ppc_eabi_init.c"), + Object(NonMatching, "revolution/exi/EXIBios.c"), + Object(NonMatching, "revolution/exi/EXIUart.c"), + Object(NonMatching, "revolution/exi/EXICommon.c"), + Object(NonMatching, "revolution/si/SIBios.c"), + Object(NonMatching, "revolution/si/SISamplingRate.c"), + Object(NonMatching, "revolution/vi/vi.c"), + Object(NonMatching, "revolution/vi/i2c.c"), + Object(NonMatching, "revolution/vi/vi3in1.c"), + Object(NonMatching, "revolution/mtx/mtx.c"), + Object(NonMatching, "revolution/mtx/mtxvec.c"), + Object(NonMatching, "revolution/mtx/mtx44.c"), + Object(NonMatching, "revolution/mtx/vec.c"), + Object(NonMatching, "revolution/mtx/quat.c"), + Object(NonMatching, "revolution/gx/GXInit.c"), + Object(NonMatching, "revolution/gx/GXFifo.c"), + Object(NonMatching, "revolution/gx/GXAttr.c"), + Object(NonMatching, "revolution/gx/GXMisc.c"), + Object(NonMatching, "revolution/gx/GXGeometry.c"), + Object(NonMatching, "revolution/gx/GXFrameBuf.c"), + Object(NonMatching, "revolution/gx/GXLight.c"), + Object(NonMatching, "revolution/gx/GXTexture.c"), + Object(NonMatching, "revolution/gx/GXBump.c"), + Object(NonMatching, "revolution/gx/GXTev.c"), + Object(NonMatching, "revolution/gx/GXPixel.c"), + Object(NonMatching, "revolution/gx/GXDraw.c"), + Object(NonMatching, "revolution/gx/GXDisplayList.c"), + Object(NonMatching, "revolution/gx/GXTransform.c"), + Object(NonMatching, "revolution/gx/GXPerf.c"), + Object(NonMatching, "revolution/dvd/dvdfs.c"), + Object(NonMatching, "revolution/dvd/dvd.c"), + Object(NonMatching, "revolution/dvd/dvdqueue.c"), + Object(NonMatching, "revolution/dvd/dvderror.c"), + Object(NonMatching, "revolution/dvd/dvdidutils.c"), + Object(NonMatching, "revolution/dvd/dvdFatal.c"), + Object(NonMatching, "revolution/dvd/dvdDeviceError.c"), + Object(NonMatching, "revolution/dvd/dvd_broadway.c"), + Object(NonMatching, "revolution/mem/mem_heapCommon.c"), + Object(NonMatching, "revolution/mem/mem_expHeap.c"), + Object(NonMatching, "revolution/mem/mem_frameHeap.c"), + Object(NonMatching, "revolution/mem/mem_allocator.c"), + Object(NonMatching, "revolution/mem/mem_list.c"), Object(NonMatching, "RVL_SDK/dsp/DSP.c"), Object(NonMatching, "RVL_SDK/es/ES.c"), Object(NonMatching, "RVL_SDK/cx/CX.c"), diff --git a/include/egg/core/eggExpHeap.h b/include/egg/core/eggExpHeap.h index e1c7eb8d..83fa0ed5 100644 --- a/include/egg/core/eggExpHeap.h +++ b/include/egg/core/eggExpHeap.h @@ -24,7 +24,7 @@ public: ExpHeap(MEMiHeapHead *heapHead); static ExpHeap *create(void *block, size_t size, u16 attr); static ExpHeap *create(size_t size, Heap *heap, u16 attr); - void setGroupID(u16 groupId); + void setAllocMode(u16 allocMode); static u32 getSizeForMBlock(const void *block); // Placement new for ::create diff --git a/include/rvl/GX/GXTexture.h b/include/rvl/GX/GXTexture.h index e6428e51..a8ae5f59 100644 --- a/include/rvl/GX/GXTexture.h +++ b/include/rvl/GX/GXTexture.h @@ -52,7 +52,7 @@ void GXSetTexCoordBias(GXTexCoordID, GXBool, GXBool); u16 GXGetTexObjWidth(const GXTexObj *obj); u16 GXGetTexObjHeight(const GXTexObj *obj); -GXTexFmt GXGetTexObjFormat(const GXTexObj *obj); +GXTexFmt GXGetTexObjFmt(const GXTexObj *obj); GXBool GXGetTexObjMipMap(const GXTexObj *obj); GXTexWrapMode GXGetTexObjWrapS(const GXTexObj *obj); u32 GXGetTexObjTlut(const GXTexObj *); diff --git a/include/rvl/MEM/mem_expHeap.h b/include/rvl/MEM/mem_expHeap.h index b39f9c9f..65c27cf4 100644 --- a/include/rvl/MEM/mem_expHeap.h +++ b/include/rvl/MEM/mem_expHeap.h @@ -56,10 +56,12 @@ void *MEMAllocFromExpHeapEx(struct MEMiHeapHead *heap, u32 size, s32 align); u32 MEMResizeForMBlockExpHeap(struct MEMiHeapHead *heap, void *memBlock, u32 size); void MEMFreeToExpHeap(struct MEMiHeapHead *heap, void *memBlock); u32 MEMGetAllocatableSizeForExpHeap(struct MEMiHeapHead *heap); +u32 MEMGetTotalFreeSizeForExpHeap(struct MEMiHeapHead *heap); u32 MEMGetAllocatableSizeForExpHeapEx(struct MEMiHeapHead *heap, s32 align); -void MEMSetGroupIdForExpHeap(MEMiHeapHead *mHeapHandle, u16 groupId); +void MEMSetGroupIdForExpHeap(struct MEMiHeapHead *mHeapHandle, u16 groupId); u32 MEMAdjustExpHeap(struct MEMiHeapHead *heap); u32 MEMGetSizeForMBlockExpHeap(const void *block); +void MEMSetAllocModeForExpHeap(struct MEMiHeapHead *heap, u16 allocMode); static inline struct MEMiHeapHead *MEMCreateExpHeap(void *start, u32 size) { return MEMCreateExpHeapEx(start, size, 0); diff --git a/include/rvl/MEM/mem_heapCommon.h b/include/rvl/MEM/mem_heapCommon.h index aa7f97ad..60f3d8bd 100644 --- a/include/rvl/MEM/mem_heapCommon.h +++ b/include/rvl/MEM/mem_heapCommon.h @@ -37,6 +37,7 @@ typedef struct MEMiHeapHead { void MEMiInitHeapHead(MEMiHeapHead *heap, u32 magic, void *start, void *end, u16 opt); void MEMiFinalizeHeap(MEMiHeapHead *heap); MEMiHeapHead *MEMFindContainHeap(const void *memBlock); +MEMiHeapHead *MEMFindParentHeap(const MEMiHeapHead *pHandle); static inline int GetUIntPtr(const void *p) { return (int)p; diff --git a/include/rvl/OS/OSContext.h b/include/rvl/OS/OSContext.h index bc87b69c..80b7c493 100644 --- a/include/rvl/OS/OSContext.h +++ b/include/rvl/OS/OSContext.h @@ -27,6 +27,7 @@ typedef struct OSContext { f64 psfs[32]; // at 0x1C8 } OSContext; +void OSFillFPUContext(OSContext *ctx); void OSSaveFPUContext(OSContext *ctx); void OSSetCurrentContext(OSContext *ctx); OSContext *OSGetCurrentContext(void); diff --git a/include/rvl/OS/OSMemory.h b/include/rvl/OS/OSMemory.h index 5a186e1b..af917d94 100644 --- a/include/rvl/OS/OSMemory.h +++ b/include/rvl/OS/OSMemory.h @@ -11,11 +11,22 @@ extern "C" { #define OS_MEM_IS_MEM1(addr) (((u32)(addr) & 0x30000000) == 0) #define OS_MEM_IS_MEM2(addr) (((u32)(addr) & 0x30000000) == 0x10000000) +#define OS_PROTECT_CHAN0 0 +#define OS_PROTECT_CHAN1 1 +#define OS_PROTECT_CHAN2 2 +#define OS_PROTECT_CHAN3 3 + +#define OS_PROTECT_CONTROL_NONE 0x00 +#define OS_PROTECT_CONTROL_READ 0x01 +#define OS_PROTECT_CONTROL_WRITE 0x02 +#define OS_PROTECT_CONTROL_RDWR (OS_PROTECT_CONTROL_READ | OS_PROTECT_CONTROL_WRITE) + u32 OSGetPhysicalMem1Size(void); u32 OSGetPhysicalMem2Size(void); u32 OSGetConsoleSimulatedMem1Size(void); u32 OSGetConsoleSimulatedMem2Size(void); void __OSInitMemoryProtection(void); +void OSProtectRange(u32 chan, void* addr, u32 nBytes, u32 control); #ifdef __cplusplus } diff --git a/src/d/d_heap.cpp b/src/d/d_heap.cpp index d2d4fa0a..e5b926a3 100644 --- a/src/d/d_heap.cpp +++ b/src/d/d_heap.cpp @@ -32,7 +32,7 @@ void dHeapAllocator::onAlloc(EGG::HeapAllocArg *arg) { EGG::ExpHeap *dHeap::init(const char *name, size_t size, EGG::Heap *parent) { heap = EGG::ExpHeap::create(size, parent, 4); if (heap != nullptr) { - heap->setGroupID(0); + heap->setAllocMode(0); heap->mName = name; } return heap; diff --git a/src/egg/core/eggExpHeap.cpp b/src/egg/core/eggExpHeap.cpp index 13296e54..a210c654 100644 --- a/src/egg/core/eggExpHeap.cpp +++ b/src/egg/core/eggExpHeap.cpp @@ -100,15 +100,15 @@ u32 ExpHeap::resizeForMBlock(void *block, u32 size) { } u32 ExpHeap::getTotalFreeSize() { - return MEMGetAllocatableSizeForExpHeap(mHeapHandle); + return MEMGetTotalFreeSizeForExpHeap(mHeapHandle); } u32 ExpHeap::getAllocatableSize(s32 align) { return MEMGetAllocatableSizeForExpHeapEx(mHeapHandle, align); } -void ExpHeap::setGroupID(u16 groupId) { - MEMSetGroupIdForExpHeap(mHeapHandle, groupId); +void ExpHeap::setAllocMode(u16 allocMode) { + MEMSetAllocModeForExpHeap(mHeapHandle, allocMode); } u32 ExpHeap::adjust() { diff --git a/src/egg/core/eggHeap.cpp b/src/egg/core/eggHeap.cpp index 531585ef..49297691 100644 --- a/src/egg/core/eggHeap.cpp +++ b/src/egg/core/eggHeap.cpp @@ -106,7 +106,7 @@ Heap *Heap::findHeap(MEMiHeapHead *head) { /* 80495730 */ Heap *Heap::findParentHeap() { Heap *retHeap = nullptr; - MEMiHeapHead *heap = MEMFindContainHeap(mHeapHandle); + MEMiHeapHead *heap = MEMFindParentHeap(mHeapHandle); if (heap) { retHeap = findHeap(heap); } @@ -114,12 +114,10 @@ Heap *Heap::findParentHeap() { return retHeap; } -extern "C" MEMiHeapHead *findSomethingInListObject(const void *memBlock); - /* 80495780 */ Heap *Heap::findContainHeap(const void *memBlock) { Heap *retHeap = nullptr; - MEMiHeapHead *heap = findSomethingInListObject(memBlock); + MEMiHeapHead *heap = MEMFindContainHeap(memBlock); if (heap) { retHeap = findHeap(heap); } @@ -130,7 +128,7 @@ Heap *Heap::findContainHeap(const void *memBlock) { /* 804957c0 */ void Heap::free(void *ptr, Heap *heap) { if (heap == nullptr) { - MEMiHeapHead *iheap = findSomethingInListObject(ptr); + MEMiHeapHead *iheap = MEMFindContainHeap(ptr); if (iheap == nullptr) { return; } diff --git a/src/egg/gfx/eggCpuTexture.cpp b/src/egg/gfx/eggCpuTexture.cpp index f86a8bd3..6fb11fcc 100644 --- a/src/egg/gfx/eggCpuTexture.cpp +++ b/src/egg/gfx/eggCpuTexture.cpp @@ -98,7 +98,7 @@ CpuTexture::CpuTexture(const GXTexObj *pObj) { mWidth = GXGetTexObjWidth(pObj); mHeight = GXGetTexObjHeight(pObj); - mTexFormat = GXGetTexObjFormat(pObj); + mTexFormat = GXGetTexObjFmt(pObj); mWrapS = GXGetTexObjWrapS(pObj); mWrapT = GXGetTexObjWrapT(pObj); mMinFilt = GXGetTexObjMinFilt(pObj); diff --git a/src/m/m_heap.cpp b/src/m/m_heap.cpp index dcdd01d2..f2767ac0 100644 --- a/src/m/m_heap.cpp +++ b/src/m/m_heap.cpp @@ -149,7 +149,7 @@ mHeap::~mHeap() { EGG::ExpHeap *mHeap::createHeap(size_t size, EGG::Heap *block, const char *name) { EGG::ExpHeap *heap = EGG::ExpHeap::create(size, block, 4); if (heap != nullptr) { - heap->setGroupID(0); + heap->setAllocMode(0); if (name != nullptr) { heap->mName = name; } diff --git a/src/nw4r/db/db_exception.cpp b/src/nw4r/db/db_exception.cpp index 700e93ec..29b575fb 100644 --- a/src/nw4r/db/db_exception.cpp +++ b/src/nw4r/db/db_exception.cpp @@ -74,8 +74,6 @@ void Exception_Init() { } extern "C" u32 PPCMfmsr(); extern "C" void PPCMtmsr(u32); -extern "C" void OSFillFPUContext(OSContext *ctx); -extern "C" void fn_803AA2E0(u32, u32, u32, u32); static void DumpException_(const ExceptionCallbackParam *); @@ -85,10 +83,10 @@ void ErrorHandler_(u16 error, OSContext *ctx, u32 dsisr, u32 dar) { OSFillFPUContext(ctx); OSSetErrorHandler(error, nullptr); if (error == 0xf) { - fn_803AA2E0(0, 0, 0, 3); - fn_803AA2E0(1, 0, 0, 3); - fn_803AA2E0(2, 0, 0, 3); - fn_803AA2E0(3, 0, 0, 3); + OSProtectRange(OS_PROTECT_CHAN0, 0, 0, OS_PROTECT_CONTROL_RDWR); + OSProtectRange(OS_PROTECT_CHAN1, 0, 0, OS_PROTECT_CONTROL_RDWR); + OSProtectRange(OS_PROTECT_CHAN2, 0, 0, OS_PROTECT_CONTROL_RDWR); + OSProtectRange(OS_PROTECT_CHAN3, 0, 0, OS_PROTECT_CONTROL_RDWR); } ExceptionCallbackParam param; diff --git a/src/nw4r/g3d/platform/g3d_tmem.cpp b/src/nw4r/g3d/platform/g3d_tmem.cpp index 2dc55708..1688bd97 100644 --- a/src/nw4r/g3d/platform/g3d_tmem.cpp +++ b/src/nw4r/g3d/platform/g3d_tmem.cpp @@ -213,7 +213,7 @@ void SetTMemLayout(TMemLayout layout) { } // namespace nw4r static GXTexRegion *TexRegionCallback(const GXTexObj *pObj, GXTexMapID map) { - GXTexFmt fmt = GXGetTexObjFormat(pObj); + GXTexFmt fmt = GXGetTexObjFmt(pObj); GXBool mipmap = GXGetTexObjMipMap(pObj); switch (fmt) { From 1496046d567a38314ab09be227b8c40feaf4507f Mon Sep 17 00:00:00 2001 From: robojumper Date: Sun, 13 Jul 2025 15:52:31 +0200 Subject: [PATCH 25/36] All text splits except bte --- config/SOUE01/splits.txt | 91 +++++++++++++--- config/SOUE01/symbols.txt | 214 +++++++++++++++++++------------------- configure.py | 36 +++++-- 3 files changed, 212 insertions(+), 129 deletions(-) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index ad8cb1ed..92c4994b 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -2783,28 +2783,91 @@ revolution/mem/mem_allocator.c: revolution/mem/mem_list.c: .text start:0x803CDC00 end:0x803CDD20 align:16 -RVL_SDK/dsp/DSP.c: - .text start:0x803CDD20 end:0x803CE868 align:16 +revolution/dsp/dsp.c: + .text start:0x803CDD20 end:0x803CDF7C align:16 -RVL_SDK/es/ES.c: +revolution/dsp/dsp_debug.c: + .text start:0x803CDF80 end:0x803CDFD0 align:16 + +revolution/dsp/dsp_task.c: + .text start:0x803CDFD0 end:0x803CE868 align:16 + +revolution/esp/esp.c: .text start:0x803CE870 end:0x803CEE90 align:16 -RVL_SDK/cx/CX.c: - .text start:0x803CEE90 end:0x803D0B20 align:16 +revolution/cx/CXStreamingUncompression.c: + .text start:0x803CEE90 end:0x803D0788 align:16 -RVL_SDK/nand/NAND.c: - .text start:0x803D0B20 end:0x803D4A48 align:16 +revolution/cx/CXUncompression.c: + .text start:0x803D0790 end:0x803D091C align:16 -RVL_SDK/sc/SC.c: - .text start:0x803D4A50 end:0x803D6CB4 align:16 +revolution/cx/CXSecureUncompression.c: + .text start:0x803D0920 end:0x803D0B14 align:16 -RVL_SDK/wpad/WPAD.c: - .text start:0x803D6CC0 end:0x803EE328 align:16 +revolution/nand/nand.c: + .text start:0x803D0B20 end:0x803D1F44 align:16 -RVL_SDK/kpad/KPAD.c: - .text start:0x803EE330 end:0x803F6A24 align:16 +revolution/nand/NANDOpenClose.c: + .text start:0x803D1F50 end:0x803D2BBC align:16 -RVL_SDK/usb/USB.c: +revolution/nand/NANDCore.c: + .text start:0x803D2BC0 end:0x803D3F2C align:16 + +revolution/nand/NANDCheck.c: + .text start:0x803D3F30 end:0x803D40F8 align:16 + +revolution/nand/NANDLogging.c: + .text start:0x803D4100 end:0x803D4744 align:16 + +revolution/nand/NANDErrorMessage.c: + .text start:0x803D4750 end:0x803D4A48 align:16 + +revolution/sc/scsystem.c: + .text start:0x803D4A50 end:0x803D64D8 align:16 + +revolution/sc/scapi.c: + .text start:0x803D64E0 end:0x803D6A28 align:16 + +revolution/sc/scapi_prdinfo.c: + .text start:0x803D6A30 end:0x803D6CB4 align:16 + +revolution/pad/Pad.c: + .text start:0x803D6CC0 end:0x803D6D1C align:16 + +revolution/wpad/WPAD.c: + .text start:0x803D6D20 end:0x803E1D14 align:16 + +revolution/wpad/WPADHIDParser.c: + .text start:0x803E1D20 end:0x803E6F84 align:16 + +revolution/wpad/WPADEncrypt.c: + .text start:0x803E6F90 end:0x803E7E44 align:16 + +revolution/wpad/WPADMem.c: + .text start:0x803E7E50 end:0x803E7F54 align:16 + +revolution/wpad/lint.c: + .text start:0x803E7F60 end:0x803E87CC align:16 + +revolution/wpad/WUD.c: + .text start:0x803E87D0 end:0x803EDEB4 align:16 + +revolution/wpad/WUDHIDHost.c: + .text start:0x803EDEC0 end:0x803EE328 align:16 + +revolution/kpad/KPAD.c: + .text start:0x803EE330 end:0x803F3628 align:16 + +revolution/kpad/KMPLS.c: + .text start:0x803F3630 end:0x803F6020 align:16 + .data start:0x80565C90 end:0x80565CD8 + .sbss start:0x805764D0 end:0x805764D8 + .sdata2 start:0x8057EA58 end:0x8057EAF8 + +revolution/kpad/KZMplsTestSub.c: + .text start:0x803F6020 end:0x803F6A24 align:16 + +revolution/usb/usb.c: .text start:0x803F6A30 end:0x803F7F7C align:16 RVL_SDK/bte/BTE.c: diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 64eee440..db34661c 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -22602,19 +22602,19 @@ DSPCheckMailFromDSP = .text:0x803CDD30; // type:function size:0x10 DSPReadMailFromDSP = .text:0x803CDD40; // type:function size:0x14 DSPSendMailToDSP = .text:0x803CDD60; // type:function size:0x14 DSPInit = .text:0x803CDD80; // type:function size:0xC0 -fn_803CDE40 = .text:0x803CDE40; // type:function size:0x8 +DSPCheckInit = .text:0x803CDE40; // type:function size:0x8 DSPAddTask = .text:0x803CDE50; // type:function size:0x70 -fn_803CDEC0 = .text:0x803CDEC0; // type:function size:0xBC +DSPAssertTask = .text:0x803CDEC0; // type:function size:0xBC __DSP_debug_printf = .text:0x803CDF80; // type:function size:0x50 -fn_803CDFD0 = .text:0x803CDFD0; // type:function size:0x42C +__DSPHandler = .text:0x803CDFD0; // type:function size:0x42C __DSP_exec_task = .text:0x803CE400; // type:function size:0x1A4 __DSP_boot_task = .text:0x803CE5B0; // type:function size:0x18C -fn_803CE740 = .text:0x803CE740; // type:function size:0xA0 -fn_803CE7E0 = .text:0x803CE7E0; // type:function size:0x88 +__DSP_insert_task = .text:0x803CE740; // type:function size:0xA0 +__DSP_remove_task = .text:0x803CE7E0; // type:function size:0x88 ESP_InitLib = .text:0x803CE870; // type:function size:0x54 scope:global ESP_CloseLib = .text:0x803CE8D0; // type:function size:0x48 scope:global -fn_803CE920 = .text:0x803CE920; // type:function size:0x94 -fn_803CE9C0 = .text:0x803CE9C0; // type:function size:0x114 +ESP_LaunchTitle = .text:0x803CE920; // type:function size:0x94 +ESP_GetTicketViews = .text:0x803CE9C0; // type:function size:0x114 ESP_DiGetTicketView = .text:0x803CEAE0; // type:function size:0xA4 scope:global ESP_DiGetTmd = .text:0x803CEB90; // type:function size:0xEC scope:global ESP_GetDataDir = .text:0x803CEC80; // type:function size:0x98 scope:global @@ -22634,7 +22634,7 @@ CXReadUncompLRC = .text:0x803D0390; // type:function size:0x3F8 CXGetUncompressedSize = .text:0x803D0790; // type:function size:0x40 CXUncompressLZ = .text:0x803D07D0; // type:function size:0x14C CXiLHVerifyTable = .text:0x803D0920; // type:function size:0x1F4 -fn_803D0B20 = .text:0x803D0B20; // type:function size:0x140 +nandCreate = .text:0x803D0B20; // type:function size:0x140 NANDCreate = .text:0x803D0C60; // type:function size:0x74 NANDPrivateCreate = .text:0x803D0CE0; // type:function size:0x74 NANDPrivateCreateAsync = .text:0x803D0D60; // type:function size:0x78 @@ -22657,7 +22657,7 @@ nandComposePerm = .text:0x803D1820; // type:function size:0x54 nandSplitPerm = .text:0x803D1880; // type:function size:0x8C nandGetStatus = .text:0x803D1910; // type:function size:0x154 nandGetStatusCallback = .text:0x803D1A70; // type:function size:0x74 -nand__NANDPrivateGetStatus = .text:0x803D1AF0; // type:function size:0x64 +NANDPrivateGetStatus = .text:0x803D1AF0; // type:function size:0x64 NANDPrivateGetStatusAsync = .text:0x803D1B60; // type:function size:0x84 NANDSetUserData = .text:0x803D1BF0; // type:function size:0x8 NANDGetUserData = .text:0x803D1C00; // type:function size:0x8 @@ -22747,7 +22747,7 @@ SCSetBtDeviceInfoArray = .text:0x803D6810; // type:function size:0xC SCGetBtCmpDevInfoArray = .text:0x803D6820; // type:function size:0xC SCSetBtCmpDevInfoArray = .text:0x803D6830; // type:function size:0xC SCGetBtDpdSensibility = .text:0x803D6840; // type:function size:0x68 -fn_803D68B0 = .text:0x803D68B0; // type:function size:0x3C +SCGetMplsMoviePlay = .text:0x803D68B0; // type:function size:0x3C SCGetWpadMotorMode = .text:0x803D68F0; // type:function size:0x54 SCSetWpadMotorMode = .text:0x803D6950; // type:function size:0x8 SCGetWpadSensorBarPosition = .text:0x803D6960; // type:function size:0x54 @@ -22805,7 +22805,7 @@ WPADGetAccGravityUnit = .text:0x803DA9D0; // type:function size:0xD4 __wpadDisconnectCallback = .text:0x803DAAB0; // type:function size:0x24 WPADDisconnect = .text:0x803DAAE0; // type:function size:0xC0 WPADSetAutoSleepTime = .text:0x803DABA0; // type:function size:0x34 -WPADSetControllerLastDataUpdateTime = .text:0x803DABE0; // type:function size:0x58 +WPADResetAutoSleepTimeCount = .text:0x803DABE0; // type:function size:0x58 WPADProbe = .text:0x803DAC40; // type:function size:0x8C WPADSetSamplingCallback = .text:0x803DACD0; // type:function size:0x88 WPADSetConnectCallback = .text:0x803DAD60; // type:function size:0x88 @@ -22853,7 +22853,7 @@ __wpadCertCalcModY = .text:0x803E0940; // type:function size:0x11C __wpadCertChallengeCallback = .text:0x803E0A60; // type:function size:0x64 __wpadCertProbeReadyCallback = .text:0x803E0AD0; // type:function size:0xD8 __wpadCertGetParamCallback = .text:0x803E0BB0; // type:function size:0x168 -__wpadCertGetParam = .text:0x803E0D20; // type:function size:0x2E4 +__wpadCertVerifyParamY = .text:0x803E0D20; // type:function size:0x2E4 __wpadCertWork = .text:0x803E1010; // type:function size:0xD04 __wpadAbortInitExtension = .text:0x803E1D20; // type:function size:0x194 __wpadGetDevConfig = .text:0x803E1EC0; // type:function size:0xA60 @@ -22871,8 +22871,8 @@ __a1_21_user_data = .text:0x803E44C0; // type:function size:0x370 __a1_22_ack = .text:0x803E4830; // type:function size:0x108 __parse_dpd_data = .text:0x803E4940; // type:function size:0x494 __parse_dpdex_data = .text:0x803E4DE0; // type:function size:0x278 -__parse_acc_data = .text:0x803E5060; // type:function size:0x54C -__parse_fs_data = .text:0x803E55B0; // type:function size:0x100 +__parse_cl_data = .text:0x803E5060; // type:function size:0x54C +__parse_bl_data = .text:0x803E55B0; // type:function size:0x100 __parse_vs_data = .text:0x803E56B0; // type:function size:0x178 __parse_mp_data = .text:0x803E5830; // type:function size:0x900 __parse_ext_data = .text:0x803E6130; // type:function size:0x5A4 @@ -22903,8 +22903,8 @@ App_MEMalloc = .text:0x803E87E0; // type:function size:0x14 App_MEMfree = .text:0x803E8800; // type:function size:0x14 __wudSyncFlushCallback = .text:0x803E8820; // type:function size:0x34 __wudSyncPrepareSearch = .text:0x803E8860; // type:function size:0x158 -__wudSyncVirginStandard = .text:0x803E89C0; // type:function size:0x158 -__wudSyncStoredLinkKeyToE2prom = .text:0x803E8B20; // type:function size:0x3EC +__wudSyncTryConnect = .text:0x803E89C0; // type:function size:0x158 +__wudSyncVirginStandard = .text:0x803E8B20; // type:function size:0x3EC __wudSyncStoredDevInfoToNand = .text:0x803E8F10; // type:function size:0x120 __wudOpenWiiFitCallback = .text:0x803E9030; // type:function size:0x6C __wudSeekWiiFitCallback = .text:0x803E90A0; // type:function size:0x74 @@ -22929,7 +22929,7 @@ __wudGetDevInfoFromWiiFit = .text:0x803EAB50; // type:function size:0x434 __wudInitHandler = .text:0x803EAF90; // type:function size:0x144 __wudInitHandler0 = .text:0x803EB0E0; // type:function size:0x20 __wudShutdownFlushCallback = .text:0x803EB100; // type:function size:0x14 -__wudShutdownDone = .text:0x803EB120; // type:function size:0xB4 +__wudShutdownHandler = .text:0x803EB120; // type:function size:0xB4 __wudShutdownHandler0 = .text:0x803EB1E0; // type:function size:0x20 __wudClearControlBlock = .text:0x803EB200; // type:function size:0x384 WUDInit = .text:0x803EB590; // type:function size:0x104 @@ -22953,7 +22953,7 @@ __wudInstallPatchCallback = .text:0x803EBEC0; // type:function size:0xCC __wudWritePatchCallback = .text:0x803EBF90; // type:function size:0x230 __wudRemovePatchCallback = .text:0x803EC1C0; // type:function size:0x178 __wudSuperPeekPokeCallback = .text:0x803EC340; // type:function size:0x20 -__wudAppendRuntimePatch = .text:0x803EC360; // type:function size:0x160 +__wudInitSub = .text:0x803EC360; // type:function size:0x160 WUDiRegisterDevice = .text:0x803EC4C0; // type:function size:0x130 WUDiRemoveDevice = .text:0x803EC5F0; // type:function size:0x104 WUDiGetDevInfo = .text:0x803EC700; // type:function size:0xD8 @@ -22995,8 +22995,8 @@ KPADSetHoriParam = .text:0x803EE3E0; // type:function size:0x1C KPADSetDistParam = .text:0x803EE400; // type:function size:0x1C KPADSetAccParam = .text:0x803EE420; // type:function size:0x1C reset_kpad = .text:0x803EE440; // type:function size:0x1B4 -fn_803EE600 = .text:0x803EE600; // type:function size:0x18 -fn_803EE620 = .text:0x803EE620; // type:function size:0x18 +KPADIsEnableAimingMode = .text:0x803EE600; // type:function size:0x18 +KPADGetSensorHeight = .text:0x803EE620; // type:function size:0x18 calc_button_repeat = .text:0x803EE640; // type:function size:0x1A8 read_kpad_button = .text:0x803EE7F0; // type:function size:0xB4 calc_acc = .text:0x803EE8B0; // type:function size:0xB4 @@ -23012,7 +23012,7 @@ read_kpad_dpd = .text:0x803EFF10; // type:function size:0x4BC clamp_stick_circle = .text:0x803F03D0; // type:function size:0x128 clamp_stick_cross = .text:0x803F0500; // type:function size:0x224 read_kpad_ext = .text:0x803F0730; // type:function size:0x103C -fn_803F1770 = .text:0x803F1770; // type:function size:0xA0 +KPADiMplsSamplingCallback = .text:0x803F1770; // type:function size:0xA0 KPADRead = .text:0x803F1810; // type:function size:0xC KPADReadEx = .text:0x803F1820; // type:function size:0x8 KPADiRead = .text:0x803F1830; // type:function size:0x808 @@ -23022,93 +23022,93 @@ KPADSetConnectCallback = .text:0x803F26B0; // type:function size:0x58 KPADiControlWbcCallback = .text:0x803F2710; // type:function size:0x1C KPADiUpdateTempWbcCallback = .text:0x803F2730; // type:function size:0x2C KPADiControlDpdCallback = .text:0x803F2760; // type:function size:0x94 -fn_803F2800 = .text:0x803F2800; // type:function size:0x2C -fn_803F2830 = .text:0x803F2830; // type:function size:0x28 -fn_803F2860 = .text:0x803F2860; // type:function size:0x4 -fn_803F2870 = .text:0x803F2870; // type:function size:0x50 -fn_803F28C0 = .text:0x803F28C0; // type:function size:0xDC -fn_803F29A0 = .text:0x803F29A0; // type:function size:0x4 -fn_803F29B0 = .text:0x803F29B0; // type:function size:0x10 -fn_803F29C0 = .text:0x803F29C0; // type:function size:0x4 -fn_803F29D0 = .text:0x803F29D0; // type:function size:0x4 -fn_803F29E0 = .text:0x803F29E0; // type:function size:0x4 -fn_803F29F0 = .text:0x803F29F0; // type:function size:0x4 -fn_803F2A00 = .text:0x803F2A00; // type:function size:0x4 -fn_803F2A10 = .text:0x803F2A10; // type:function size:0x4 -fn_803F2A20 = .text:0x803F2A20; // type:function size:0x4 -fn_803F2A30 = .text:0x803F2A30; // type:function size:0x4 -fn_803F2A40 = .text:0x803F2A40; // type:function size:0x4 -fn_803F2A50 = .text:0x803F2A50; // type:function size:0x4 -fn_803F2A60 = .text:0x803F2A60; // type:function size:0x4 -fn_803F2A70 = .text:0x803F2A70; // type:function size:0x4 -fn_803F2A80 = .text:0x803F2A80; // type:function size:0x4 -fn_803F2A90 = .text:0x803F2A90; // type:function size:0x4 -fn_803F2AA0 = .text:0x803F2AA0; // type:function size:0x4 -fn_803F2AB0 = .text:0x803F2AB0; // type:function size:0x4 -fn_803F2AC0 = .text:0x803F2AC0; // type:function size:0x1C -fn_803F2AE0 = .text:0x803F2AE0; // type:function size:0x6C +KPADDisableMpls = .text:0x803F2800; // type:function size:0x2C +KPADEnableMpls = .text:0x803F2830; // type:function size:0x28 +KPADGetMplsStatus = .text:0x803F2860; // type:function size:0x4 +KPADSetControlMplsCallback = .text:0x803F2870; // type:function size:0x50 +KPADiControlMplsCallback = .text:0x803F28C0; // type:function size:0xDC +KPADGetMplsWorkSize = .text:0x803F29A0; // type:function size:0x4 +KPADSetMplsWorkarea = .text:0x803F29B0; // type:function size:0x10 +KPADStartMplsCalibration = .text:0x803F29C0; // type:function size:0x4 +KPADWorkMplsCalibration = .text:0x803F29D0; // type:function size:0x4 +KPADStopMplsCalibration = .text:0x803F29E0; // type:function size:0x4 +KPADEnableMplsDirRevise = .text:0x803F29F0; // type:function size:0x4 +KPADEnableMplsAccRevise = .text:0x803F2A00; // type:function size:0x4 +KPADEnableMplsDpdRevise = .text:0x803F2A10; // type:function size:0x4 +KPADDisableMplsZeroPlay = .text:0x803F2A20; // type:function size:0x4 +KPADDisableMplsDirRevise = .text:0x803F2A30; // type:function size:0x4 +KPADDisableMplsAccRevise = .text:0x803F2A40; // type:function size:0x4 +KPADDisableMplsDpdRevise = .text:0x803F2A50; // type:function size:0x4 +KPADIsEnableMplsDpdRevise = .text:0x803F2A60; // type:function size:0x4 +KPADSetMplsZeroPlayParam = .text:0x803F2A70; // type:function size:0x4 +KPADSetMplsDirReviseParam = .text:0x803F2A80; // type:function size:0x4 +KPADSetMplsAccReviseParam = .text:0x803F2A90; // type:function size:0x4 +KPADSetMplsDpdReviseParam = .text:0x803F2AA0; // type:function size:0x4 +KPADSetMplsDirReviseBase = .text:0x803F2AB0; // type:function size:0x4 +KPADSetMplsZeroDriftMode = .text:0x803F2AC0; // type:function size:0x1C +KPADResetMpls = .text:0x803F2AE0; // type:function size:0x6C KPADiSamplingCallback = .text:0x803F2B50; // type:function size:0x9D0 -fn_803F3520 = .text:0x803F3520; // type:function size:0xE4 -fn_803F3610 = .text:0x803F3610; // type:function size:0x18 -fn_803F3630 = .text:0x803F3630; // type:function size:0x34 -fn_803F3670 = .text:0x803F3670; // type:function size:0x134 -fn_803F37B0 = .text:0x803F37B0; // type:function size:0x214 -fn_803F39D0 = .text:0x803F39D0; // type:function size:0x8 -fn_803F39E0 = .text:0x803F39E0; // type:function size:0x14 -fn_803F3A00 = .text:0x803F3A00; // type:function size:0xC -fn_803F3A10 = .text:0x803F3A10; // type:function size:0x2C0 -fn_803F3CD0 = .text:0x803F3CD0; // type:function size:0x20 -fn_803F3CF0 = .text:0x803F3CF0; // type:function size:0x1C -fn_803F3D10 = .text:0x803F3D10; // type:function size:0x40 -fn_803F3D50 = .text:0x803F3D50; // type:function size:0x40 -fn_803F3D90 = .text:0x803F3D90; // type:function size:0x40 -fn_803F3DD0 = .text:0x803F3DD0; // type:function size:0x20 -fn_803F3DF0 = .text:0x803F3DF0; // type:function size:0x20 -fn_803F3E10 = .text:0x803F3E10; // type:function size:0x1C -fn_803F3E30 = .text:0x803F3E30; // type:function size:0x60 -fn_803F3E90 = .text:0x803F3E90; // type:function size:0x20 -fn_803F3EB0 = .text:0x803F3EB0; // type:function size:0x20 -fn_803F3ED0 = .text:0x803F3ED0; // type:function size:0x28 -fn_803F3F00 = .text:0x803F3F00; // type:function size:0x20 -fn_803F3F20 = .text:0x803F3F20; // type:function size:0x20 -fn_803F3F40 = .text:0x803F3F40; // type:function size:0x38 -fn_803F3F80 = .text:0x803F3F80; // type:function size:0x1C -fn_803F3FA0 = .text:0x803F3FA0; // type:function size:0x11C -fn_803F40C0 = .text:0x803F40C0; // type:function size:0x1B0 -fn_803F4270 = .text:0x803F4270; // type:function size:0x2AC -fn_803F4520 = .text:0x803F4520; // type:function size:0x38C -fn_803F48B0 = .text:0x803F48B0; // type:function size:0x2C0 -fn_803F4B70 = .text:0x803F4B70; // type:function size:0xE8 -fn_803F4C60 = .text:0x803F4C60; // type:function size:0xE8 -fn_803F4D50 = .text:0x803F4D50; // type:function size:0xE8 -fn_803F4E40 = .text:0x803F4E40; // type:function size:0xAC0 -fn_803F5900 = .text:0x803F5900; // type:function size:0x1A0 -fn_803F5AA0 = .text:0x803F5AA0; // type:function size:0x24 -fn_803F5AD0 = .text:0x803F5AD0; // type:function size:0x42C -fn_803F5F00 = .text:0x803F5F00; // type:function size:0x14 -fn_803F5F20 = .text:0x803F5F20; // type:function size:0x64 -fn_803F5F90 = .text:0x803F5F90; // type:function size:0x6C -fn_803F6000 = .text:0x803F6000; // type:function size:0x20 -fn_803F6020 = .text:0x803F6020; // type:function size:0x44 -fn_803F6070 = .text:0x803F6070; // type:function size:0x88 -fn_803F6100 = .text:0x803F6100; // type:function size:0x36C -fn_803F6470 = .text:0x803F6470; // type:function size:0x308 -fn_803F6780 = .text:0x803F6780; // type:function size:0x1B4 -fn_803F6940 = .text:0x803F6940; // type:function size:0xE4 -usb__USB_LOG = .text:0x803F6A30; // type:function size:0xA8 -usb__USB_ERR = .text:0x803F6AE0; // type:function size:0xAC -usb__IUSB_OpenLib = .text:0x803F6B90; // type:function size:0xF8 -fn_803F6C90 = .text:0x803F6C90; // type:function size:0x8 -fn_803F6CA0 = .text:0x803F6CA0; // type:function size:0x19C -fn_803F6E40 = .text:0x803F6E40; // type:function size:0x144 -fn_803F6F90 = .text:0x803F6F90; // type:function size:0x124 -fn_803F70C0 = .text:0x803F70C0; // type:function size:0x354 -fn_803F7420 = .text:0x803F7420; // type:function size:0x358 -fn_803F7780 = .text:0x803F7780; // type:function size:0x74 -fn_803F7800 = .text:0x803F7800; // type:function size:0xA0 -fn_803F78A0 = .text:0x803F78A0; // type:function size:0xA0 -usb____CtrlMsgInt = .text:0x803F7940; // type:function size:0x5A4 -usb__IUSB_WriteCtrlMsgAsync = .text:0x803F7EF0; // type:function size:0x8C +KPADGetUnifiedWpadStatus = .text:0x803F3520; // type:function size:0xE4 +KPADSetReviseMode = .text:0x803F3610; // type:function size:0x18 +wpad_callback_func = .text:0x803F3630; // type:function size:0x34 +work_calibration = .text:0x803F3670; // type:function size:0x134 +KMPLSInit = .text:0x803F37B0; // type:function size:0x214 +KMPLSGetLibWorkSize = .text:0x803F39D0; // type:function size:0x8 +KMPLSIsInit = .text:0x803F39E0; // type:function size:0x14 +KMPLSShutdown = .text:0x803F3A00; // type:function size:0xC +KMPLSReset = .text:0x803F3A10; // type:function size:0x2C0 +KMPLSDisableZeroPlay = .text:0x803F3CD0; // type:function size:0x20 +KMPLSSetZeroPlayParam = .text:0x803F3CF0; // type:function size:0x1C +KMPLSSetZeroDriftStandard = .text:0x803F3D10; // type:function size:0x40 +KMPLSSetZeroDriftTight = .text:0x803F3D50; // type:function size:0x40 +KMPLSSetZeroDriftLoose = .text:0x803F3D90; // type:function size:0x40 +KMPLSEnableDirRevise = .text:0x803F3DD0; // type:function size:0x20 +KMPLSDisableDirRevise = .text:0x803F3DF0; // type:function size:0x20 +KMPLSSetDirReviseParam = .text:0x803F3E10; // type:function size:0x1C +KMPLSSetDirReviseBase = .text:0x803F3E30; // type:function size:0x60 +KMPLSEnableAccRevise = .text:0x803F3E90; // type:function size:0x20 +KMPLSDisableAccRevise = .text:0x803F3EB0; // type:function size:0x20 +KMPLSSetAccReviseParam = .text:0x803F3ED0; // type:function size:0x28 +KMPLSEnableDpdRevise = .text:0x803F3F00; // type:function size:0x20 +KMPLSDisableDpdRevise = .text:0x803F3F20; // type:function size:0x20 +KMPLSIsEnableDpdRevise = .text:0x803F3F40; // type:function size:0x38 +KMPLSSetDpdReviseParam = .text:0x803F3F80; // type:function size:0x1C +dpd_revise_scale = .text:0x803F3FA0; // type:function size:0x11C +move_mpls_orient = .text:0x803F40C0; // type:function size:0x1B0 +revise_dir_acc = .text:0x803F4270; // type:function size:0x2AC +revise_dir_dpd = .text:0x803F4520; // type:function size:0x38C +calc_mpls_dir = .text:0x803F48B0; // type:function size:0x2C0 +get_mpls_data_x = .text:0x803F4B70; // type:function size:0xE8 +get_mpls_data_y = .text:0x803F4C60; // type:function size:0xE8 +get_mpls_data_z = .text:0x803F4D50; // type:function size:0xE8 +read_mpls = .text:0x803F4E40; // type:function size:0xAC0 +set_calibration_data = .text:0x803F5900; // type:function size:0x1A0 +KMPLSSetKpadRingBuffer = .text:0x803F5AA0; // type:function size:0x24 +KMPLSRead = .text:0x803F5AD0; // type:function size:0x42C +KMPLSSetSamplingCallback = .text:0x803F5F00; // type:function size:0x14 +KMPLSStartCalibration = .text:0x803F5F20; // type:function size:0x64 +KMPLSWorkCalibration = .text:0x803F5F90; // type:function size:0x6C +KMPLSStopCalibration = .text:0x803F6000; // type:function size:0x20 +__KMPLS_f2i = .text:0x803F6020; // type:function size:0x44 +__KMPLS_normalize_Fxyz = .text:0x803F6070; // type:function size:0x88 +__KMPLS_normalize_directionXYZ = .text:0x803F6100; // type:function size:0x36C +__KMPLS_make_vec_dir = .text:0x803F6470; // type:function size:0x308 +__KMPLS_mult_dir = .text:0x803F6780; // type:function size:0x1B4 +__KMPLS_linear_Direction = .text:0x803F6940; // type:function size:0xE4 +USB_LOG = .text:0x803F6A30; // type:function size:0xA8 +USB_ERR = .text:0x803F6AE0; // type:function size:0xAC +IUSB_OpenLib = .text:0x803F6B90; // type:function size:0xF8 +IUSB_CloseLib = .text:0x803F6C90; // type:function size:0x8 +_intrBlkCtrlIsoCb = .text:0x803F6CA0; // type:function size:0x19C +IUSB_OpenDeviceIds = .text:0x803F6E40; // type:function size:0x144 +IUSB_CloseDeviceAsync = .text:0x803F6F90; // type:function size:0x124 +__LongBlkMsgInt = .text:0x803F70C0; // type:function size:0x354 +__IntrBlkMsgInt = .text:0x803F7420; // type:function size:0x358 +IUSB_ReadIntrMsgAsync = .text:0x803F7780; // type:function size:0x74 +IUSB_ReadBlkMsgAsync = .text:0x803F7800; // type:function size:0xA0 +IUSB_WriteBlkMsgAsync = .text:0x803F78A0; // type:function size:0xA0 +__CtrlMsgInt = .text:0x803F7940; // type:function size:0x5A4 +IUSB_WriteCtrlMsgAsync = .text:0x803F7EF0; // type:function size:0x8C gki_init_free_queue = .text:0x803F7F80; // type:function size:0x220 gki_buffer_init = .text:0x803F81A0; // type:function size:0x2AC bte__GKI_init_q = .text:0x803F8450; // type:function size:0x14 diff --git a/configure.py b/configure.py index 9cd74e13..29f4d3ba 100644 --- a/configure.py +++ b/configure.py @@ -1403,14 +1403,34 @@ config.libs = [ Object(NonMatching, "revolution/mem/mem_frameHeap.c"), Object(NonMatching, "revolution/mem/mem_allocator.c"), Object(NonMatching, "revolution/mem/mem_list.c"), - Object(NonMatching, "RVL_SDK/dsp/DSP.c"), - Object(NonMatching, "RVL_SDK/es/ES.c"), - Object(NonMatching, "RVL_SDK/cx/CX.c"), - Object(NonMatching, "RVL_SDK/nand/NAND.c"), - Object(NonMatching, "RVL_SDK/sc/SC.c"), - Object(NonMatching, "RVL_SDK/wpad/WPAD.c"), - Object(NonMatching, "RVL_SDK/kpad/KPAD.c"), - Object(NonMatching, "RVL_SDK/usb/USB.c"), + Object(NonMatching, "revolution/dsp/dsp.c"), + Object(NonMatching, "revolution/dsp/dsp_debug.c"), + Object(NonMatching, "revolution/dsp/dsp_task.c"), + Object(NonMatching, "revolution/esp/esp.c"), + Object(NonMatching, "revolution/cx/CXStreamingUncompression.c"), + Object(NonMatching, "revolution/cx/CXUncompression.c"), + Object(NonMatching, "revolution/cx/CXSecureUncompression.c"), + Object(NonMatching, "revolution/nand/nand.c"), + Object(NonMatching, "revolution/nand/NANDOpenClose.c"), + Object(NonMatching, "revolution/nand/NANDCore.c"), + Object(NonMatching, "revolution/nand/NANDCheck.c"), + Object(NonMatching, "revolution/nand/NANDLogging.c"), + Object(NonMatching, "revolution/nand/NANDErrorMessage.c"), + Object(NonMatching, "revolution/sc/scsystem.c"), + Object(NonMatching, "revolution/sc/scapi.c"), + Object(NonMatching, "revolution/sc/scapi_prdinfo.c"), + Object(NonMatching, "revolution/pad/Pad.c"), + Object(NonMatching, "revolution/wpad/WPAD.c"), + Object(NonMatching, "revolution/wpad/WPADHIDParser.c"), + Object(NonMatching, "revolution/wpad/WPADEncrypt.c"), + Object(NonMatching, "revolution/wpad/WPADMem.c"), + Object(NonMatching, "revolution/wpad/lint.c"), + Object(NonMatching, "revolution/wpad/WUD.c"), + Object(NonMatching, "revolution/wpad/WUDHIDHost.c"), + Object(NonMatching, "revolution/kpad/KPAD.c"), + Object(NonMatching, "revolution/kpad/KMPLS.c"), + Object(NonMatching, "revolution/kpad/KZMplsTestSub.c"), + Object(NonMatching, "revolution/usb/usb.c"), Object(NonMatching, "RVL_SDK/bte/BTE.c"), Object(NonMatching, "revolution/ipc/ipcMain.c"), Object(NonMatching, "revolution/ipc/ipcclt.c"), From 7d6e7f05bb848b382cdf4afc7716412fea930f93 Mon Sep 17 00:00:00 2001 From: robojumper Date: Sun, 13 Jul 2025 18:27:00 +0200 Subject: [PATCH 26/36] More data splits --- config/SOUE01/splits.txt | 109 ++++++++++++++++++++++++++++ config/SOUE01/symbols.txt | 148 ++++++++++++++++++++++++++------------ configure.py | 1 + 3 files changed, 211 insertions(+), 47 deletions(-) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 92c4994b..93923626 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -2520,39 +2520,64 @@ revolution/arc/arc.c: revolution/ax/AX.c: .text start:0x8039BF60 end:0x8039BFC8 align:16 + .data start:0x8054D938 end:0x8054D980 + .sdata start:0x80574908 end:0x80574910 + .sbss start:0x80575E40 end:0x80575E48 revolution/ax/AXAlloc.c: .text start:0x8039BFD0 end:0x8039C4BC align:16 + .sbss start:0x80575E48 end:0x80575E50 + .bss start:0x805D1050 end:0x805D1150 revolution/ax/AXAux.c: .text start:0x8039C4C0 end:0x8039CD54 align:16 + .sbss start:0x80575E50 end:0x80575E98 + .bss start:0x805D1160 end:0x805D42E0 revolution/ax/AXCL.c: .text start:0x8039CD60 end:0x8039D858 align:16 + .sbss start:0x80575E98 end:0x80575EC0 + .bss start:0x805D42E0 end:0x805D43E0 revolution/ax/AXOut.c: .text start:0x8039D860 end:0x8039E098 align:16 + .sbss start:0x80575EC0 end:0x80575F00 + .bss start:0x805D43E0 end:0x805D51E0 revolution/ax/AXSPB.c: .text start:0x8039E0A0 end:0x8039E4CC align:16 + .sbss start:0x80575F00 end:0x80575F50 + .bss start:0x805D51E0 end:0x805D5260 revolution/ax/AXVPB.c: .text start:0x8039E4D0 end:0x8039F288 align:16 + .data start:0x8054D980 end:0x8054DA20 + .sbss start:0x80575F50 end:0x80575F70 + .sdata2 start:0x8057E5E8 end:0x8057E608 + .bss start:0x805D5260 end:0x805E6960 revolution/ax/AXProf.c: .text start:0x8039F290 end:0x8039F2D0 align:16 + .sbss start:0x80575F70 end:0x80575F80 revolution/axfx/AXFXReverbHi.c: .text start:0x8039F2D0 end:0x8039F374 align:16 + .sdata2 start:0x8057E608 end:0x8057E610 revolution/axfx/AXFXReverbHiExp.c: .text start:0x8039F380 end:0x803A01A4 align:16 + .data start:0x805509E0 end:0x80550B80 + .sdata2 start:0x8057E610 end:0x8057E650 revolution/axfx/AXFXReverbStdExp.c: .text start:0x803A01B0 end:0x803A0EDC align:16 + .data start:0x80550B80 end:0x80550C10 + .sdata2 start:0x8057E650 end:0x8057E690 revolution/axfx/AXFXReverbStdExpDpl2.c: .text start:0x803A0EE0 end:0x803A1C50 align:16 + .data start:0x80550C10 end:0x80550CA0 + .sdata2 start:0x8057E690 end:0x8057E6D0 revolution/axfx/AXFXHooks.c: .text start:0x803A1C50 end:0x803A1C94 align:16 @@ -2560,120 +2585,201 @@ revolution/axfx/AXFXHooks.c: revolution/base/PPCArch.c: .text start:0x803A1CA0 end:0x803A1EC0 align:16 + .data start:0x80550CA0 end:0x80550CD8 revolution/os/OS.c: .text start:0x803A1EC0 end:0x803A33A0 align:16 + .data start:0x80550CD8 end:0x805510E8 + .sdata start:0x80574920 end:0x80574950 + .sbss start:0x80575F80 end:0x80575FC8 + .sdata2 start:0x8057E6D0 end:0x8057E6D8 + .bss start:0x805E6960 end:0x805E69D0 revolution/os/OSAlarm.c: .text start:0x803A33A0 end:0x803A3C58 align:16 + .data start:0x805510E8 end:0x805510F8 + .sbss start:0x80575FC8 end:0x80575FD0 revolution/os/OSAlloc.c: .text start:0x803A3C60 end:0x803A3F80 align:16 + .sdata start:0x80574950 end:0x80574958 + .sbss start:0x80575FD0 end:0x80575FE0 revolution/os/OSArena.c: .text start:0x803A3F80 end:0x803A4074 align:16 + .sdata start:0x80574958 end:0x80574960 + .sbss start:0x80575FE0 end:0x80575FE8 revolution/os/OSAudioSystem.c: .text start:0x803A4080 end:0x803A4540 align:16 + .data start:0x805510F8 end:0x80551178 revolution/os/OSCache.c: .text start:0x803A4540 end:0x803A4B98 align:16 + .data start:0x80551178 end:0x80551300 revolution/os/OSContext.c: .text start:0x803A4BA0 end:0x803A559C align:16 + .data start:0x80551300 end:0x805514B8 revolution/os/OSError.c: .text start:0x803A55A0 end:0x803A5B2C align:16 + .data start:0x805514B8 end:0x80551798 + .sdata start:0x80574960 end:0x80574968 + .bss start:0x805E69D0 end:0x805E6A20 revolution/os/OSExec.c: .text start:0x803A5B30 end:0x803A73D8 align:16 + .data start:0x80551798 end:0x80551AE8 + .sdata start:0x80574968 end:0x80574978 + .sbss start:0x80575FE8 end:0x80576000 + .bss start:0x805E6A20 end:0x805E6A40 revolution/os/OSFatal.c: .text start:0x803A73E0 end:0x803A8008 align:16 + .sdata start:0x80574978 end:0x80574980 + .sdata2 start:0x8057E6D8 end:0x8057E718 + .bss start:0x805E6A40 end:0x805E6D20 revolution/os/OSFont.c: .text start:0x803A8010 end:0x803A8CF8 align:16 + .data start:0x80551AE8 end:0x805525F8 + .sdata start:0x80574980 end:0x80574988 + .sbss start:0x80576000 end:0x80576010 + .sdata2 start:0x8057E718 end:0x8057E720 revolution/os/OSInterrupt.c: .text start:0x803A8D00 end:0x803A94D0 align:16 + .data start:0x805525F8 end:0x80552628 + .sbss start:0x80576010 end:0x80576028 revolution/os/OSLink.c: .text start:0x803A94D0 end:0x803A9FF4 align:16 + .data start:0x80552628 end:0x80552678 revolution/os/OSMessage.c: .text start:0x803AA000 end:0x803AA20C align:16 revolution/os/OSMemory.c: .text start:0x803AA210 end:0x803AAA8C align:16 + .data start:0x80552678 end:0x80552688 + .sbss start:0x80576028 end:0x80576030 revolution/os/OSMutex.c: .text start:0x803AAA90 end:0x803AADAC align:16 revolution/os/OSReboot.c: .text start:0x803AADB0 end:0x803AAE34 align:16 + .sbss start:0x80576030 end:0x80576038 revolution/os/OSReset.c: .text start:0x803AAE40 end:0x803AB84C align:16 + .data start:0x80552688 end:0x805528F0 + .sbss start:0x80576038 end:0x80576048 revolution/os/OSRtc.c: .text start:0x803AB850 end:0x803AC300 align:16 + .bss start:0x805E6D20 end:0x805E6D78 revolution/os/OSSync.c: .text start:0x803AC300 end:0x803AC380 align:16 revolution/os/OSThread.c: .text start:0x803AC380 end:0x803ADAE8 align:16 + .sdata start:0x80574988 end:0x80574990 + .sbss start:0x80576048 end:0x80576058 + .bss start:0x805E6D78 end:0x805E7780 revolution/os/OSTime.c: .text start:0x803ADAF0 end:0x803ADF1C align:16 + .data start:0x805528F0 end:0x80552950 revolution/os/OSUtf.c: .text start:0x803ADF20 end:0x803AE170 align:16 + .data start:0x80552950 end:0x8055E790 revolution/os/OSIpc.c: .text start:0x803AE170 end:0x803AE1A8 align:16 + .sdata start:0x80574990 end:0x80574998 + .sbss start:0x80576058 end:0x80576060 revolution/os/OSStateTM.c: .text start:0x803AE1B0 end:0x803AE8B4 align:16 + .data start:0x8055E790 end:0x8055E858 + .sbss start:0x80576060 end:0x80576080 + .bss start:0x805E7780 end:0x805E7840 + +revolution/os/__start.c: + .init start:0x80004000 end:0x80004360 + .sbss start:0x80576080 end:0x80576088 revolution/os/OSPlayRecord.c: .text start:0x803AE8C0 end:0x803AEFDC align:16 + .data start:0x8055E858 end:0x8055E8A0 + .sdata start:0x80574998 end:0x805749A0 + .sbss start:0x80576088 end:0x805760A8 + .bss start:0x805E7840 end:0x805E7A40 revolution/os/OSStateFlags.c: .text start:0x803AEFE0 end:0x803AF1F8 align:16 + .data start:0x8055E8A0 end:0x8055E8C8 + .bss start:0x805E7A40 end:0x805E7A60 revolution/os/OSNet.c: .text start:0x803AF200 end:0x803AF79C align:16 + .data start:0x8055E8C8 end:0x8055EA30 + .sdata start:0x805749A0 end:0x805749A8 + .sbss start:0x805760A8 end:0x805760B8 + .bss start:0x805E7A60 end:0x805E7B20 revolution/os/OSNandbootInfo.c: .text start:0x803AF7A0 end:0x803AF9A8 align:16 + .data start:0x8055EA30 end:0x8055EA50 revolution/os/OSPlayTime.c: .text start:0x803AF9B0 end:0x803B0188 align:16 + .data start:0x8055EA50 end:0x8055EA90 + .sdata start:0x805749A8 end:0x805749B0 + .sbss start:0x805760B8 end:0x805760D0 + .sdata2 start:0x8057E720 end:0x8057E730 + .bss start:0x805E7B20 end:0x805E7B50 revolution/os/OSCrc.c: .text start:0x803B0190 end:0x803B02C4 align:16 + .rodata start:0x804F52C8 end:0x804F5308 revolution/os/OSLaunch.c: .text start:0x803B02D0 end:0x803B04D4 align:16 revolution/os/__ppc_eabi_init.c: + .init start:0x80004360 end:0x800043C4 .text start:0x803B04E0 end:0x803B059C align:16 revolution/exi/EXIBios.c: .text start:0x803B05A0 end:0x803B1E98 align:16 + .data start:0x8055EA90 end:0x8055EAD8 + .sdata start:0x805749B0 end:0x805749B8 + .sbss start:0x805760D0 end:0x805760D8 + .bss start:0x805E7B50 end:0x805E7C10 revolution/exi/EXIUart.c: .text start:0x803B1EA0 end:0x803B21DC align:16 + .sbss start:0x805760D8 end:0x805760E8 revolution/exi/EXICommon.c: .text start:0x803B21E0 end:0x803B2368 align:16 revolution/si/SIBios.c: .text start:0x803B2370 end:0x803B33A4 align:16 + .data start:0x8055EAD8 end:0x8055EB48 + .sdata start:0x805749B8 end:0x805749C0 + .sbss start:0x805760E8 end:0x805760F8 + .bss start:0x805E7C10 end:0x805E7E30 revolution/si/SISamplingRate.c: .text start:0x803B33B0 end:0x803B3498 align:16 + .data start:0x8055EB48 end:0x8055EBE0 + .sbss start:0x805760F8 end:0x80576100 revolution/vi/vi.c: .text start:0x803B34A0 end:0x803B5EF0 align:16 @@ -2746,6 +2852,9 @@ revolution/gx/GXPerf.c: revolution/dvd/dvdfs.c: .text start:0x803C3060 end:0x803C3A58 align:16 + .data start:0x80560100 end:0x805602A0 + .sdata start:0x80574A60 end:0x80574A70 + .sbss start:0x80576230 end:0x80576260 revolution/dvd/dvd.c: .text start:0x803C3A60 end:0x803C8864 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index db34661c..b8eace10 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -21954,7 +21954,9 @@ OSLoadFont = .text:0x803A8690; // type:function size:0x118 ParseStringS = .text:0x803A87B0; // type:function size:0xF8 ParseStringW = .text:0x803A88B0; // type:function size:0x1B4 OSGetFontTexel = .text:0x803A8A70; // type:function size:0x288 +__RAS_OSDisableInterrupts_begin = .text:0x803A8D00; // type:label scope:global OSDisableInterrupts = .text:0x803A8D00; // type:function size:0x14 scope:global +__RAS_OSDisableInterrupts_end = .text:0x803A8D0C; // type:label scope:global OSEnableInterrupts = .text:0x803A8D20; // type:function size:0x14 scope:global OSRestoreInterrupts = .text:0x803A8D40; // type:function size:0x24 scope:global __OSSetInterruptHandler = .text:0x803A8D70; // type:function size:0x14 scope:global @@ -37816,23 +37818,67 @@ lbl_8054D8EC = .data:0x8054D8EC; // type:object size:0x46 data:string lbl_8054D938 = .data:0x8054D938; // type:object size:0x48 lbl_8054D980 = .data:0x8054D980; // type:object size:0x80 lbl_8054DA00 = .data:0x8054DA00; // type:object size:0x20 -lbl_8054DA20 = .data:0x8054DA20; // type:object size:0xFC0 -lbl_8054E9E0 = .data:0x8054E9E0; // type:object size:0x2000 +__AXCompressorDefaultTable = .data:0x8054DA20; // type:object size:0xFC0 +axDspSlave = .data:0x8054E9E0; // type:object size:0x2000 lbl_805509E0 = .data:0x805509E0; // type:object size:0xC0 lbl_80550AA0 = .data:0x80550AA0; // type:object size:0xE0 lbl_80550B80 = .data:0x80550B80; // type:object size:0x20 lbl_80550BA0 = .data:0x80550BA0; // type:object size:0x70 lbl_80550C10 = .data:0x80550C10; // type:object size:0x20 lbl_80550C30 = .data:0x80550C30; // type:object size:0x70 -lbl_80550CA0 = .data:0x80550CA0; // type:object size:0x38 +lbl_80550CA0 = .data:0x80550CA0; // type:object size:0x37 data:string @1 = .data:0x80550CD8; // type:object size:0x45 scope:local data:string -lbl_80550D1D = .data:0x80550D1D; // type:object size:0x38B +lbl_80550D20 = .data:0x80550D20; // type:object size:0x10 data:string +lbl_80550D30 = .data:0x80550D30; // type:object size:0x16 data:string +lbl_80550D48 = .data:0x80550D48; // type:object size:0xC data:string +lbl_80550D54 = .data:0x80550D54; // type:object size:0x9 data:string +lbl_80550D60 = .data:0x80550D60; // type:object size:0x10 data:string +lbl_80550D70 = .data:0x80550D70; // type:object size:0x18 data:string +lbl_80550D88 = .data:0x80550D88; // type:object size:0x1A data:string +lbl_80550DA4 = .data:0x80550DA4; // type:object size:0x1A data:string +lbl_80550DC0 = .data:0x80550DC0; // type:object size:0xB data:string +lbl_80550DCC = .data:0x80550DCC; // type:object size:0xA data:string +lbl_80550DD8 = .data:0x80550DD8; // type:object size:0xA data:string +lbl_80550DE4 = .data:0x80550DE4; // type:object size:0xA data:string +lbl_80550DF0 = .data:0x80550DF0; // type:object size:0xA data:string +lbl_80550DFC = .data:0x80550DFC; // type:object size:0xA data:string +lbl_80550E08 = .data:0x80550E08; // type:object size:0x15 data:string +lbl_80550E20 = .data:0x80550E20; // type:object size:0x1B data:string +lbl_80550E3C = .data:0x80550E3C; // type:object size:0x1B data:string +lbl_80550E58 = .data:0x80550E58; // type:object size:0x19 data:string +lbl_80550E74 = .data:0x80550E74; // type:object size:0xC data:string +lbl_80550E80 = .data:0x80550E80; // type:object size:0xE data:string +lbl_80550E90 = .data:0x80550E90; // type:object size:0x1A data:string +lbl_80550EAC = .data:0x80550EAC; // type:object size:0x1A data:string +lbl_80550EC8 = .data:0x80550EC8; // type:object size:0x50 data:string +lbl_80550F18 = .data:0x80550F18; // type:object size:0x12 data:string +lbl_80550F30 = .data:0x80550F30; // type:object size:0x58 data:string +lbl_80550F88 = .data:0x80550F88; // type:object size:0x5D data:string +lbl_80550FE8 = .data:0x80550FE8; // type:object size:0xBD data:string __OSExceptionLocations = .data:0x805510A8; // type:object size:0x3C scope:local ShutdownFunctionInfo = .data:0x805510E8; // type:object size:0x10 scope:local DSPInitCode = .data:0x805510F8; // type:object size:0x80 scope:local @909 = .data:0x80551178; // type:object size:0x18 scope:local data:string -lbl_80551190 = .data:0x80551190; // type:object size:0x170 -lbl_80551300 = .data:0x80551300; // type:object size:0x1B8 +lbl_80551190 = .data:0x80551190; // type:object size:0x1B data:string +lbl_805511B0 = .data:0x805511B0; // type:object size:0x30 data:string +lbl_805511E0 = .data:0x805511E0; // type:object size:0x3C data:string +lbl_8055121C = .data:0x8055121C; // type:object size:0x37 data:string +lbl_80551254 = .data:0x80551254; // type:object size:0x3F data:string +lbl_80551294 = .data:0x80551294; // type:object size:0x29 data:string +lbl_805512C0 = .data:0x805512C0; // type:object size:0x1D data:string +lbl_805512E0 = .data:0x805512E0; // type:object size:0x19 data:string +lbl_80551300 = .data:0x80551300; // type:object size:0x44 data:string +lbl_80551348 = .data:0x80551348; // type:object size:0x30 data:string +lbl_80551378 = .data:0x80551378; // type:object size:0x2F data:string +lbl_805513A8 = .data:0x805513A8; // type:object size:0x2F data:string +lbl_805513D8 = .data:0x805513D8; // type:object size:0x11 data:string +lbl_805513EC = .data:0x805513EC; // type:object size:0x21 data:string +lbl_80551410 = .data:0x80551410; // type:object size:0x12 data:string +lbl_80551424 = .data:0x80551424; // type:object size:0x19 data:string +lbl_80551440 = .data:0x80551440; // type:object size:0x12 data:string +lbl_80551454 = .data:0x80551454; // type:object size:0x1D data:string +lbl_80551474 = .data:0x80551474; // type:object size:0x26 data:string +lbl_8055149C = .data:0x8055149C; // type:object size:0x1C data:string @641 = .data:0x805514B8; // type:object size:0x16 scope:local data:string lbl_805514CE = .data:0x805514CE; // type:object size:0x2CA lbl_80551798 = .data:0x80551798; // type:object size:0x1A8 @@ -37841,13 +37887,16 @@ lbl_8055194C = .data:0x8055194C; // type:object size:0x19C lbl_80551AE8 = .data:0x80551AE8; // type:object size:0x180 lbl_80551C68 = .data:0x80551C68; // type:object size:0x990 lbl_805525F8 = .data:0x805525F8; // type:object size:0x30 data:4byte -lbl_80552628 = .data:0x80552628; // type:object size:0x28 -lbl_80552650 = .data:0x80552650; // type:object size:0x28 +lbl_80552628 = .data:0x80552628; // type:object size:0x25 data:string +lbl_80552650 = .data:0x80552650; // type:object size:0x27 data:string ShutdownFunctionInfo = .data:0x80552678; // type:object size:0x10 scope:local @2083 = .data:0x80552688; // type:object size:0xA scope:local data:string -lbl_80552694 = .data:0x80552694; // type:object size:0x60 +lbl_80552694 = .data:0x80552694; // type:object size:0x29 data:string +lbl_805526C0 = .data:0x805526C0; // type:object size:0x31 data:string @2131 = .data:0x805526F4; // type:object size:0x2F scope:local data:string -lbl_80552724 = .data:0x80552724; // type:object size:0x150 +lbl_80552724 = .data:0x80552724; // type:object size:0x36 data:string +lbl_8055275A = .data:0x8055275A; // type:object size:0x66 +lbl_805527C0 = .data:0x805527C0; // type:object size:0xB4 @2163 = .data:0x80552874; // type:object size:0x3B scope:local data:string lbl_805528AF = .data:0x805528AF; // type:object size:0x41 lbl_805528F0 = .data:0x805528F0; // type:object size:0x30 @@ -37950,19 +37999,23 @@ lbl_8055E390 = .data:0x8055E390; // type:object size:0x400 @980 = .data:0x8055E790; // type:object size:0x13 scope:local data:string @981 = .data:0x8055E7A4; // type:object size:0x13 scope:local data:string lbl_8055E7B8 = .data:0x8055E7B8; // type:object size:0xC data:string -lbl_8055E7C4 = .data:0x8055E7C4; // type:object size:0x38 -lbl_8055E7FC = .data:0x8055E7FC; // type:object size:0x38 -lbl_8055E834 = .data:0x8055E834; // type:object size:0x24 -lbl_8055E858 = .data:0x8055E858; // type:object size:0x2C +lbl_8055E7C4 = .data:0x8055E7C4; // type:object size:0x37 data:string +lbl_8055E7FC = .data:0x8055E7FC; // type:object size:0x35 data:string +lbl_8055E834 = .data:0x8055E834; // type:object size:0x22 data:string +lbl_8055E858 = .data:0x8055E858; // type:object size:0x2B data:string jumptable_8055E884 = .data:0x8055E884; // type:object size:0x1C scope:local lbl_8055E8A0 = .data:0x8055E8A0; // type:object size:0x28 data:string @1040 = .data:0x8055E8C8; // type:object size:0x32 scope:local data:string -lbl_8055E8FA = .data:0x8055E8FA; // type:object size:0x8E -lbl_8055E988 = .data:0x8055E988; // type:object size:0x5C -lbl_8055E9E4 = .data:0x8055E9E4; // type:object size:0x34 -lbl_8055EA18 = .data:0x8055EA18; // type:object size:0x18 -lbl_8055EA30 = .data:0x8055EA30; // type:object size:0x20 -lbl_8055EA50 = .data:0x8055EA50; // type:object size:0x14 +lbl_8055E8FC = .data:0x8055E8FC; // type:object size:0x32 data:string +lbl_8055E930 = .data:0x8055E930; // type:object size:0x3F data:string +lbl_8055E96F = .data:0x8055E96F; // type:object size:0x19 +lbl_8055E988 = .data:0x8055E988; // type:object size:0x14 data:string +lbl_8055E99C = .data:0x8055E99C; // type:object size:0x48 +lbl_8055E9E4 = .data:0x8055E9E4; // type:object size:0x1A data:string +lbl_8055E9FE = .data:0x8055E9FE; // type:object size:0x1A +lbl_8055EA18 = .data:0x8055EA18; // type:object size:0x11 data:string +lbl_8055EA30 = .data:0x8055EA30; // type:object size:0x1A data:string +lbl_8055EA50 = .data:0x8055EA50; // type:object size:0x11 data:string @1519 = .data:0x8055EA64; // type:object size:0xD scope:local data:string @1521 = .data:0x8055EA74; // type:object size:0x1B scope:local data:string lbl_8055EA90 = .data:0x8055EA90; // type:object size:0x48 @@ -37970,7 +38023,8 @@ lbl_8055EAD8 = .data:0x8055EAD8; // type:object size:0x48 Si = .data:0x8055EB20; // type:object size:0x14 scope:local data:4byte Type = .data:0x8055EB38; // type:object size:0x10 scope:local data:4byte XYNTSC = .data:0x8055EB48; // type:object size:0x30 scope:local data:byte -lbl_8055EB78 = .data:0x8055EB78; // type:object size:0x68 +lbl_8055EB78 = .data:0x8055EB78; // type:object size:0x30 +lbl_8055EBA8 = .data:0x8055EBA8; // type:object size:0x33 data:string lbl_8055EBE0 = .data:0x8055EBE0; // type:object size:0x48 lbl_8055EC28 = .data:0x8055EC28; // type:object size:0x1A4 lbl_8055EDCC = .data:0x8055EDCC; // type:object size:0xEC data:2byte @@ -38008,10 +38062,10 @@ lbl_8055FFF8 = .data:0x8055FFF8; // type:object size:0x20 jumptable_80560018 = .data:0x80560018; // type:object size:0x58 scope:local jumptable_80560070 = .data:0x80560070; // type:object size:0x8C scope:local lbl_80560100 = .data:0x80560100; // type:object size:0xC8 data:string -lbl_805601C8 = .data:0x805601C8; // type:object size:0x38 +lbl_805601C8 = .data:0x805601C8; // type:object size:0x37 data:string lbl_80560200 = .data:0x80560200; // type:object size:0x34 data:string -lbl_80560234 = .data:0x80560234; // type:object size:0x30 -lbl_80560264 = .data:0x80560264; // type:object size:0x3C +lbl_80560234 = .data:0x80560234; // type:object size:0x2F data:string +lbl_80560264 = .data:0x80560264; // type:object size:0x3A data:string lbl_805602A0 = .data:0x805602A0; // type:object size:0x48 lbl_805602E8 = .data:0x805602E8; // type:object size:0x34 data:string jumptable_8056031C = .data:0x8056031C; // type:object size:0xAC scope:local @@ -40907,11 +40961,11 @@ __KPRVersion = .sdata:0x805748F0; // type:object size:0x8 data:4byte __AIVersion = .sdata:0x805748F8; // type:object size:0x8 data:4byte lbl_80574900 = .sdata:0x80574900; // type:object size:0x6 data:string lbl_80574908 = .sdata:0x80574908; // type:object size:0x8 data:4byte -lbl_80574910 = .sdata:0x80574910; // type:object size:0x2 data:2byte -lbl_80574912 = .sdata:0x80574912; // type:object size:0x2 data:2byte -lbl_80574914 = .sdata:0x80574914; // type:object size:0x2 data:2byte -lbl_80574918 = .sdata:0x80574918; // type:object size:0x4 data:4byte -lbl_8057491C = .sdata:0x8057491C; // type:object size:0x4 data:4byte +axDspInitVector = .sdata:0x80574910; // type:object size:0x2 data:2byte +axDspResumeVector = .sdata:0x80574912; // type:object size:0x2 data:2byte +axDspSlaveLength = .sdata:0x80574914; // type:object size:0x2 data:2byte +__AXFXAlloc = .sdata:0x80574918; // type:object size:0x4 data:4byte +__AXFXFree = .sdata:0x8057491C; // type:object size:0x4 data:4byte __OSVersion = .sdata:0x80574920; // type:object size:0x4 scope:global data:4byte @1784 = .sdata:0x80574924; // type:object size:0x7 scope:local data:string @1794 = .sdata:0x8057492C; // type:object size:0x6 scope:local data:string @@ -40919,14 +40973,14 @@ __OSVersion = .sdata:0x80574920; // type:object size:0x4 scope:global data:4byte @1849 = .sdata:0x80574938; // type:object size:0x5 scope:local data:string lbl_80574940 = .sdata:0x80574940; // type:object size:0x8 lbl_80574948 = .sdata:0x80574948; // type:object size:0x8 data:4byte -OSCurrentHeap = .sdata:0x80574950; // type:object size:0x8 data:4byte +__OSCurrHeap = .sdata:0x80574950; // type:object size:0x8 data:4byte __OSArenaLo = .sdata:0x80574958; // type:object size:0x4 scope:local data:4byte s_mem2ArenaLo = .sdata:0x8057495C; // type:object size:0x4 scope:local data:4byte -lbl_80574960 = .sdata:0x80574960; // type:object size:0x4 data:4byte +__OSFpscrEnableBits = .sdata:0x80574960; // type:object size:0x4 data:4byte @703 = .sdata:0x80574964; // type:object size:0x2 scope:local data:string lbl_80574968 = .sdata:0x80574968; // type:object size:0x8 data:string lbl_80574970 = .sdata:0x80574970; // type:object size:0x8 -lbl_80574978 = .sdata:0x80574978; // type:object size:0x8 +lbl_80574978 = .sdata:0x80574978; // type:object size:0x4 data:string lbl_80574980 = .sdata:0x80574980; // type:object size:0x8 data:2byte SwitchThreadCallback = .sdata:0x80574988; // type:object size:0x4 scope:local data:4byte IpcBufferLo = .sdata:0x80574990; // type:object size:0x4 scope:local data:4byte @@ -41970,7 +42024,7 @@ lbl_80575EA0 = .sbss:0x80575EA0; // type:object size:0x2 data:2byte lbl_80575EA4 = .sbss:0x80575EA4; // type:object size:0x4 data:4byte lbl_80575EA8 = .sbss:0x80575EA8; // type:object size:0x4 data:4byte lbl_80575EAC = .sbss:0x80575EAC; // type:object size:0x4 data:4byte -lbl_80575EB0 = .sbss:0x80575EB0; // type:object size:0x4 data:4byte +__AXClMode = .sbss:0x80575EB0; // type:object size:0x4 data:4byte lbl_80575EB4 = .sbss:0x80575EB4; // type:object size:0x4 data:4byte lbl_80575EB8 = .sbss:0x80575EB8; // type:object size:0x8 data:4byte lbl_80575EC0 = .sbss:0x80575EC0; // type:object size:0x4 data:4byte @@ -42074,8 +42128,7 @@ PlayRecordTerminate = .sbss:0x80576090; // type:object size:0x4 scope:local data PlayRecordTerminated = .sbss:0x80576094; // type:object size:0x4 scope:local data:4byte PlayRecordRetry = .sbss:0x80576098; // type:object size:0x4 scope:local data:4byte PlayRecordLastError = .sbss:0x8057609C; // type:object size:0x4 scope:local data:4byte -lbl_805760A0 = .sbss:0x805760A0; // type:object size:0x4 data:4byte -lbl_805760A4 = .sbss:0x805760A4; // type:object size:0x4 data:4byte +PlayRecordLastCloseTime = .sbss:0x805760A0; // type:object size:0x8 data:4byte lbl_805760A8 = .sbss:0x805760A8; // type:object size:0x4 data:4byte lbl_805760AC = .sbss:0x805760AC; // type:object size:0x4 data:4byte lbl_805760B0 = .sbss:0x805760B0; // type:object size:0x4 data:4byte @@ -51763,10 +51816,10 @@ lbl_805D1018 = .bss:0x805D1018; // type:object size:0x18 align:4 data:float lbl_805D1030 = .bss:0x805D1030; // type:object size:0xC data:4byte lbl_805D103C = .bss:0x805D103C; // type:object size:0x14 data:4byte lbl_805D1050 = .bss:0x805D1050; // type:object size:0x80 data:4byte -lbl_805D10D0 = .bss:0x805D10D0; // type:object size:0x90 data:4byte -lbl_805D1160 = .bss:0x805D1160; // type:object size:0x1200 data:4byte -lbl_805D2360 = .bss:0x805D2360; // type:object size:0x1200 data:4byte -lbl_805D3560 = .bss:0x805D3560; // type:object size:0xD80 data:4byte +lbl_805D10D0 = .bss:0x805D10D0; // type:object size:0x80 data:4byte +lbl_805D1160 = .bss:0x805D1160; // type:object size:0x1200 align:32 data:4byte +lbl_805D2360 = .bss:0x805D2360; // type:object size:0x1200 align:32 data:4byte +lbl_805D3560 = .bss:0x805D3560; // type:object size:0xD80 align:32 data:4byte lbl_805D42E0 = .bss:0x805D42E0; // type:object size:0x100 lbl_805D43E0 = .bss:0x805D43E0; // type:object size:0x40 data:byte lbl_805D4420 = .bss:0x805D4420; // type:object size:0x8A0 data:4byte @@ -51785,14 +51838,15 @@ lbl_805E6A40 = .bss:0x805E6A40; // type:object size:0x2C8 lbl_805E6D08 = .bss:0x805E6D08; // type:object size:0x18 data:4byte Scb = .bss:0x805E6D20; // type:object size:0x54 scope:local data:2byte DefaultThread = .bss:0x805E6D78; // type:object size:0x318 scope:local data:4byte -lbl_805E7090 = .bss:0x805E7090; // type:object size:0x100 data:4byte -lbl_805E7190 = .bss:0x805E7190; // type:object size:0x5F0 -StmEhInBuf = .bss:0x805E7780; // type:object size:0x20 scope:local -StmEhOutBuf = .bss:0x805E77A0; // type:object size:0x20 scope:local data:4byte -lbl_805E77C0 = .bss:0x805E77C0; // type:object size:0x20 data:4byte -lbl_805E77E0 = .bss:0x805E77E0; // type:object size:0x20 -lbl_805E7800 = .bss:0x805E7800; // type:object size:0x20 data:4byte -lbl_805E7820 = .bss:0x805E7820; // type:object size:0x20 +RunQueue = .bss:0x805E7090; // type:object size:0x100 scope:local data:4byte +IdleContext = .bss:0x805E7190; // type:object size:0x2C8 scope:local +IdleThread = .bss:0x805E7458; // type:object size:0x318 scope:local +StmEhInBuf = .bss:0x805E7780; // type:object size:0x20 scope:local align:32 +StmEhOutBuf = .bss:0x805E77A0; // type:object size:0x20 scope:local align:32 data:4byte +lbl_805E77C0 = .bss:0x805E77C0; // type:object size:0x20 align:32 data:4byte +lbl_805E77E0 = .bss:0x805E77E0; // type:object size:0x20 align:32 +lbl_805E7800 = .bss:0x805E7800; // type:object size:0x20 align:32 data:4byte +lbl_805E7820 = .bss:0x805E7820; // type:object size:0x20 align:32 lbl_805E7840 = .bss:0x805E7840; // type:object size:0x200 data:4byte lbl_805E7A40 = .bss:0x805E7A40; // type:object size:0x20 data:4byte lbl_805E7A60 = .bss:0x805E7A60; // type:object size:0x20 data:4byte diff --git a/configure.py b/configure.py index 29f4d3ba..c7ea07ef 100644 --- a/configure.py +++ b/configure.py @@ -1354,6 +1354,7 @@ config.libs = [ Object(NonMatching, "revolution/os/OSUtf.c"), Object(NonMatching, "revolution/os/OSIpc.c"), Object(NonMatching, "revolution/os/OSStateTM.c"), + Object(NonMatching, "revolution/os/__start.c"), Object(NonMatching, "revolution/os/OSPlayRecord.c"), Object(NonMatching, "revolution/os/OSStateFlags.c"), Object(NonMatching, "revolution/os/OSNet.c"), From c242d64a504171c8337199c6475cd394a37ddcd9 Mon Sep 17 00:00:00 2001 From: robojumper Date: Sun, 13 Jul 2025 19:41:11 +0200 Subject: [PATCH 27/36] More data splits --- config/SOUE01/splits.txt | 75 ++++++++++++++++++++++++++++++++++++ config/SOUE01/symbols.txt | 46 +++++++++++++--------- include/egg/core/eggVideo.h | 5 +-- include/rvl/GX/GXFrameBuf.h | 1 + src/nw4r/db/db_exception.cpp | 2 +- 5 files changed, 106 insertions(+), 23 deletions(-) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 93923626..93da7c40 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -2768,6 +2768,7 @@ revolution/exi/EXIUart.c: revolution/exi/EXICommon.c: .text start:0x803B21E0 end:0x803B2368 align:16 + .sdata2 start:0x8057E730 end:0x8057E738 revolution/si/SIBios.c: .text start:0x803B2370 end:0x803B33A4 align:16 @@ -2783,72 +2784,114 @@ revolution/si/SISamplingRate.c: revolution/vi/vi.c: .text start:0x803B34A0 end:0x803B5EF0 align:16 + .data start:0x8055EBE0 end:0x8055F138 + .sdata start:0x805749C0 end:0x805749E0 + .sbss start:0x80576100 end:0x805761B0 + .bss start:0x805E7E30 end:0x805E7FA0 revolution/vi/i2c.c: .text start:0x803B5EF0 end:0x803B6804 align:16 + .sdata start:0x805749E0 end:0x805749E8 + .sbss start:0x805761B0 end:0x805761B8 revolution/vi/vi3in1.c: .text start:0x803B6810 end:0x803B7F3C align:16 + .data start:0x8055F138 end:0x8055F760 + .sdata start:0x805749E8 end:0x805749F8 + .sbss start:0x805761B8 end:0x805761D0 + .bss start:0x805E7FA0 end:0x805E7FC0 revolution/mtx/mtx.c: .text start:0x803B7F40 end:0x803B8CF8 align:16 + .sdata start:0x805749F8 end:0x80574A00 + .sdata2 start:0x8057E738 end:0x8057E758 revolution/mtx/mtxvec.c: .text start:0x803B8D00 end:0x803B8ED8 align:16 revolution/mtx/mtx44.c: .text start:0x803B8EE0 end:0x803B9108 align:16 + .sdata2 start:0x8057E758 end:0x8057E770 revolution/mtx/vec.c: .text start:0x803B9110 end:0x803B9584 align:16 + .sdata2 start:0x8057E770 end:0x8057E788 revolution/mtx/quat.c: .text start:0x803B9590 end:0x803B98FC align:16 + .rodata start:0x804F5308 end:0x804F5318 + .sdata2 start:0x8057E788 end:0x8057E798 revolution/gx/GXInit.c: .text start:0x803B9900 end:0x803BAA90 align:16 + .data start:0x8055F760 end:0x8055F9A0 + .sdata start:0x80574A00 end:0x80574A08 + .sbss start:0x805761D0 end:0x805761F8 + .sdata2 start:0x8057E798 end:0x8057E7C0 + .bss start:0x805E7FC0 end:0x805E8640 revolution/gx/GXFifo.c: .text start:0x803BAA90 end:0x803BB6C8 align:16 + .data start:0x8055F9A0 end:0x8055F9D0 + .sbss start:0x805761F8 end:0x80576218 + .bss start:0x805E8640 end:0x805E8688 revolution/gx/GXAttr.c: .text start:0x803BB6D0 end:0x803BC954 align:16 + .data start:0x8055F9D0 end:0x8055FC28 + .sdata start:0x80574A08 end:0x80574A18 revolution/gx/GXMisc.c: .text start:0x803BC960 end:0x803BD214 align:16 + .sbss start:0x80576218 end:0x80576230 revolution/gx/GXGeometry.c: .text start:0x803BD220 end:0x803BD824 align:16 revolution/gx/GXFrameBuf.c: .text start:0x803BD830 end:0x803BE338 align:16 + .data start:0x8055FC28 end:0x8055FD58 + .sdata2 start:0x8057E7C0 end:0x8057E7D0 revolution/gx/GXLight.c: .text start:0x803BE340 end:0x803BEAA4 align:16 + .sdata2 start:0x8057E7D0 end:0x8057E808 revolution/gx/GXTexture.c: .text start:0x803BEAB0 end:0x803BFD50 align:16 + .data start:0x8055FD58 end:0x8055FF80 + .sdata start:0x80574A18 end:0x80574A60 + .sdata2 start:0x8057E808 end:0x8057E840 revolution/gx/GXBump.c: .text start:0x803BFD50 end:0x803C0394 align:16 + .sdata2 start:0x8057E840 end:0x8057E858 revolution/gx/GXTev.c: .text start:0x803C03A0 end:0x803C0A64 align:16 + .data start:0x8055FF80 end:0x8055FFF8 revolution/gx/GXPixel.c: .text start:0x803C0A70 end:0x803C1270 align:16 + .data start:0x8055FFF8 end:0x80560018 + .sdata2 start:0x8057E858 end:0x8057E8A8 revolution/gx/GXDraw.c: .text start:0x803C1270 end:0x803C1E80 align:16 + .sdata2 start:0x8057E8A8 end:0x8057E8D8 + .bss start:0x805E8688 end:0x805E8910 revolution/gx/GXDisplayList.c: .text start:0x803C1E80 end:0x803C2064 align:16 + .bss start:0x805E8910 end:0x805E9040 revolution/gx/GXTransform.c: .text start:0x803C2070 end:0x803C2828 align:16 + .sdata2 start:0x8057E8D8 end:0x8057E8E8 revolution/gx/GXPerf.c: .text start:0x803C2830 end:0x803C3060 align:16 + .data start:0x80560018 end:0x80560100 revolution/dvd/dvdfs.c: .text start:0x803C3060 end:0x803C3A58 align:16 @@ -2858,27 +2901,52 @@ revolution/dvd/dvdfs.c: revolution/dvd/dvd.c: .text start:0x803C3A60 end:0x803C8864 align:16 + .data start:0x805602A0 end:0x805606E8 + .sdata start:0x80574A70 end:0x80574A88 + .sbss start:0x80576260 end:0x805762F8 + .bss start:0x805E9040 end:0x805EDCF0 revolution/dvd/dvdqueue.c: .text start:0x803C8870 end:0x803C8AF0 align:16 + .bss start:0x805EDCF0 end:0x805EDD20 revolution/dvd/dvderror.c: .text start:0x803C8AF0 end:0x803C9508 align:16 + .data start:0x805606E8 end:0x80560718 + .sbss start:0x805762F8 end:0x80576308 + .bss start:0x805EDD20 end:0x805EDF80 revolution/dvd/dvdidutils.c: .text start:0x803C9510 end:0x803C9600 align:16 revolution/dvd/dvdFatal.c: .text start:0x803C9600 end:0x803C9768 align:16 + .rodata start:0x804F5318 end:0x804F5350 + .data start:0x80560718 end:0x80560EE0 + .sdata start:0x80574A88 end:0x80574A90 + .sbss start:0x80576308 end:0x80576310 + .sdata2 start:0x8057E8E8 end:0x8057E8F0 revolution/dvd/dvdDeviceError.c: .text start:0x803C9770 end:0x803C99FC align:16 + .rodata start:0x804F5350 end:0x804F5370 + .data start:0x80560EE0 end:0x80561078 + .sdata start:0x80574A90 end:0x80574A98 + .sbss start:0x80576310 end:0x80576318 + .sdata2 start:0x8057E8F0 end:0x8057E8F8 + .bss start:0x805EDF80 end:0x805EDFA0 revolution/dvd/dvd_broadway.c: .text start:0x803C9A00 end:0x803CC0A8 align:16 + .data start:0x80561078 end:0x80561F80 + .sdata start:0x80574A98 end:0x80574AA8 + .sbss start:0x80576318 end:0x80576340 + .bss start:0x805EDFA0 end:0x805EE160 revolution/mem/mem_heapCommon.c: .text start:0x803CC0B0 end:0x803CC93C align:16 + .sbss start:0x80576340 end:0x80576348 + .bss start:0x805EE160 end:0x805EE1A0 revolution/mem/mem_expHeap.c: .text start:0x803CC940 end:0x803CD598 align:16 @@ -2888,21 +2956,28 @@ revolution/mem/mem_frameHeap.c: revolution/mem/mem_allocator.c: .text start:0x803CDBA0 end:0x803CDBFC align:16 + .sdata2 start:0x8057E8F8 end:0x8057E900 revolution/mem/mem_list.c: .text start:0x803CDC00 end:0x803CDD20 align:16 revolution/dsp/dsp.c: .text start:0x803CDD20 end:0x803CDF7C align:16 + .data start:0x80561F80 end:0x80562000 + .sdata start:0x80574AA8 end:0x80574AB0 + .sbss start:0x80576348 end:0x80576350 revolution/dsp/dsp_debug.c: .text start:0x803CDF80 end:0x803CDFD0 align:16 revolution/dsp/dsp_task.c: .text start:0x803CDFD0 end:0x803CE868 align:16 + .data start:0x80562000 end:0x80562140 + .sbss start:0x80576350 end:0x80576368 revolution/esp/esp.c: .text start:0x803CE870 end:0x803CEE90 align:16 + .sdata start:0x80574AB0 end:0x80574AC0 revolution/cx/CXStreamingUncompression.c: .text start:0x803CEE90 end:0x803D0788 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index b8eace10..81e8cbd1 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -27472,8 +27472,8 @@ _restgpr_31 = .text:0x804C6BE8; // type:label scope:global __div2u = .text:0x804C6BF0; // type:function size:0xEC scope:global __div2i = .text:0x804C6CDC; // type:function size:0x138 __mod2u = .text:0x804C6E14; // type:function size:0xE4 scope:global -Runtime.PPCEABI.H____mod2i = .text:0x804C6EF8; // type:function size:0x10C -Runtime.PPCEABI.H____shl2i = .text:0x804C7004; // type:function size:0x24 +__mod2i = .text:0x804C6EF8; // type:function size:0x10C +__shl2i = .text:0x804C7004; // type:function size:0x24 __shr2i = .text:0x804C7028; // type:function size:0x28 Runtime.PPCEABI.H____cvt_sll_dbl = .text:0x804C7050; // type:function size:0xB0 Runtime.PPCEABI.H____cvt_dbl_ull = .text:0x804C7100; // type:function size:0xA8 @@ -38035,12 +38035,13 @@ jumptable_8055EF78 = .data:0x8055EF78; // type:object size:0x24 scope:local lbl_8055EF9C = .data:0x8055EF9C; // type:object size:0x154 @4022 = .data:0x8055F0F0; // type:object size:0x24 scope:local jumptable_8055F114 = .data:0x8055F114; // type:object size:0x24 scope:local -lbl_8055F138 = .data:0x8055F138; // type:object size:0x628 +gammaSet = .data:0x8055F138; // type:object size:0x41E noreloc +lbl_8055F558 = .data:0x8055F558; // type:object size:0x208 lbl_8055F760 = .data:0x8055F760; // type:object size:0x170 GXTexRegionAddrTable = .data:0x8055F8D0; // type:object size:0xC0 scope:local data:4byte GXShutdownFuncInfo = .data:0x8055F990; // type:object size:0x10 scope:local -lbl_8055F9A0 = .data:0x8055F9A0; // type:object size:0x18 -lbl_8055F9B8 = .data:0x8055F9B8; // type:object size:0x18 +lbl_8055F9A0 = .data:0x8055F9A0; // type:object size:0x16 data:string +lbl_8055F9B8 = .data:0x8055F9B8; // type:object size:0x16 data:string jumptable_8055F9D0 = .data:0x8055F9D0; // type:object size:0x68 scope:local jumptable_8055FA38 = .data:0x8055FA38; // type:object size:0x68 scope:local jumptable_8055FAA0 = .data:0x8055FAA0; // type:object size:0x68 scope:local @@ -38049,10 +38050,10 @@ jumptable_8055FB4C = .data:0x8055FB4C; // type:object size:0x44 scope:local jumptable_8055FB90 = .data:0x8055FB90; // type:object size:0x44 scope:local jumptable_8055FBD4 = .data:0x8055FBD4; // type:object size:0x54 scope:local GXNtsc480IntDf = .data:0x8055FC28; // type:object size:0x3C -lbl_8055FC64 = .data:0x8055FC64; // type:object size:0x3C +GXNtsc480Int = .data:0x8055FC64; // type:object size:0x3C GXMpal480IntDf = .data:0x8055FCA0; // type:object size:0x3C GXPal528IntDf = .data:0x8055FCDC; // type:object size:0x3C -GXEurgb60Hz480IntDf = .data:0x8055FD18; // type:object size:0x40 +GXEurgb60Hz480IntDf = .data:0x8055FD18; // type:object size:0x3C jumptable_8055FD58 = .data:0x8055FD58; // type:object size:0xF4 scope:local jumptable_8055FE4C = .data:0x8055FE4C; // type:object size:0xF4 scope:local jumptable_8055FF40 = .data:0x8055FF40; // type:object size:0x3C scope:local @@ -38077,7 +38078,7 @@ jumptable_805605D8 = .data:0x805605D8; // type:object size:0x38 scope:local jumptable_80560610 = .data:0x80560610; // type:object size:0x9C scope:local jumptable_805606AC = .data:0x805606AC; // type:object size:0x38 scope:local lbl_805606E8 = .data:0x805606E8; // type:object size:0x1C data:string -lbl_80560704 = .data:0x80560704; // type:object size:0x14 +lbl_80560704 = .data:0x80560704; // type:object size:0xF data:string lbl_80560718 = .data:0x80560718; // type:object size:0x90 lbl_805607A8 = .data:0x805607A8; // type:object size:0xB0 lbl_80560858 = .data:0x80560858; // type:object size:0xB8 @@ -38098,9 +38099,18 @@ lbl_80560FD0 = .data:0x80560FD0; // type:object size:0x3C data:string lbl_8056100C = .data:0x8056100C; // type:object size:0x3C lbl_80561048 = .data:0x80561048; // type:object size:0x30 @3815 = .data:0x80561078; // type:object size:0x32 scope:local data:string -lbl_805610AA = .data:0x805610AA; // type:object size:0x2E -lbl_805610D8 = .data:0x805610D8; // type:object size:0xEA8 -lbl_80561F80 = .data:0x80561F80; // type:object size:0x80 +lbl_805610AC = .data:0x805610AC; // type:object size:0x2C data:string +lbl_805610D8 = .data:0x805610D8; // type:object size:0x28 data:string +lbl_80561100 = .data:0x80561100; // type:object size:0x1F data:string +lbl_80561120 = .data:0x80561120; // type:object size:0x3B data:string +lbl_8056115C = .data:0x8056115C; // type:object size:0x27 data:string +lbl_80561184 = .data:0x80561184; // type:object size:0x1E data:string +lbl_805611A4 = .data:0x805611A4; // type:object size:0x49 data:string +lbl_805611ED = .data:0x805611ED; // type:object size:0xD93 +lbl_80561F80 = .data:0x80561F80; // type:object size:0x46 data:string +lbl_80561FC8 = .data:0x80561FC8; // type:object size:0x1E data:string +lbl_80561FE8 = .data:0x80561FE8; // type:object size:0xC data:string +lbl_80561FF4 = .data:0x80561FF4; // type:object size:0x9 data:string lbl_80562000 = .data:0x80562000; // type:object size:0x140 lbl_80562140 = .data:0x80562140; // type:object size:0xC lbl_8056214C = .data:0x8056214C; // type:object size:0xC @@ -41029,7 +41039,7 @@ lbl_80574A68 = .sdata:0x80574A68; // type:object size:0x8 data:string __DVDVersion = .sdata:0x80574A70; // type:object size:0x4 scope:global data:4byte lbl_80574A74 = .sdata:0x80574A74; // type:object size:0x4 data:4byte lbl_80574A78 = .sdata:0x80574A78; // type:object size:0x4 data:4byte -lbl_80574A7C = .sdata:0x80574A7C; // type:object size:0x8 +lbl_80574A7C = .sdata:0x80574A7C; // type:object size:0x6 data:string lbl_80574A84 = .sdata:0x80574A84; // type:object size:0x4 data:4byte lbl_80574A88 = .sdata:0x80574A88; // type:object size:0x8 lowDone = .sdata:0x80574A90; // type:object size:0x4 scope:local data:4byte @@ -42274,12 +42284,12 @@ diCommand = .sbss:0x80576334; // type:object size:0x4 scope:local data:4byte lbl_80576338 = .sbss:0x80576338; // type:object size:0x8 data:byte lbl_80576340 = .sbss:0x80576340; // type:object size:0x8 data:4byte lbl_80576348 = .sbss:0x80576348; // type:object size:0x8 data:4byte -lbl_80576350 = .sbss:0x80576350; // type:object size:0x4 data:4byte -lbl_80576354 = .sbss:0x80576354; // type:object size:0x4 data:4byte -lbl_80576358 = .sbss:0x80576358; // type:object size:0x4 data:4byte -lbl_8057635C = .sbss:0x8057635C; // type:object size:0x4 data:4byte -lbl_80576360 = .sbss:0x80576360; // type:object size:0x4 data:4byte -lbl_80576364 = .sbss:0x80576364; // type:object size:0x4 data:4byte +__DSP_rude_task_pending = .sbss:0x80576350; // type:object size:0x4 data:4byte +__DSP_rude_task = .sbss:0x80576354; // type:object size:0x4 data:4byte +__DSP_tmp_task = .sbss:0x80576358; // type:object size:0x4 data:4byte +__DSP_last_task = .sbss:0x8057635C; // type:object size:0x4 data:4byte +__DSP_first_task = .sbss:0x80576360; // type:object size:0x4 data:4byte +__DSP_curr_task = .sbss:0x80576364; // type:object size:0x4 data:4byte lbl_80576368 = .sbss:0x80576368; // type:object size:0x8 data:4byte s_libState = .sbss:0x80576370; // type:object size:0x4 scope:local data:4byte s_callback = .sbss:0x80576378; // type:object size:0x4 scope:local data:4byte diff --git a/include/egg/core/eggVideo.h b/include/egg/core/eggVideo.h index d4de25ba..cfaf7336 100644 --- a/include/egg/core/eggVideo.h +++ b/include/egg/core/eggVideo.h @@ -6,9 +6,6 @@ #include "rvl/GX.h" // IWYU pragma: export #include "rvl/VI.h" // IWYU pragma: export - -extern "C" GXRenderModeObj lbl_8055FC64; - namespace EGG { class Video { @@ -32,7 +29,7 @@ public: const GXRenderModeObj *getCurrentOrFallbackRenderModeObj() const { if (pRenderMode == nullptr) { - return &lbl_8055FC64; + return &GXNtsc480Int; } return pRenderMode; } diff --git a/include/rvl/GX/GXFrameBuf.h b/include/rvl/GX/GXFrameBuf.h index 5ee0b888..9e39adf4 100644 --- a/include/rvl/GX/GXFrameBuf.h +++ b/include/rvl/GX/GXFrameBuf.h @@ -39,6 +39,7 @@ void GXCopyTex(void *data, GXBool bUpdate); void GXPixModeSync(); extern GXRenderModeObj GXNtsc480IntDf; +extern GXRenderModeObj GXNtsc480Int; extern GXRenderModeObj GXMpal480IntDf; extern GXRenderModeObj GXPal528IntDf; extern GXRenderModeObj GXEurgb60Hz480IntDf; diff --git a/src/nw4r/db/db_exception.cpp b/src/nw4r/db/db_exception.cpp index 29b575fb..36867e95 100644 --- a/src/nw4r/db/db_exception.cpp +++ b/src/nw4r/db/db_exception.cpp @@ -69,7 +69,7 @@ void Exception_Init() { OSSetErrorHandler(3, ErrorHandler_); OSSetErrorHandler(5, ErrorHandler_); OSSetErrorHandler(15, ErrorHandler_); - lbl_80574960 = 0; + __OSFpscrEnableBits = 0; OSSetErrorHandler(16, nullptr); } extern "C" u32 PPCMfmsr(); From d0f35a1b3424e0375bd9be7c4536592e09e56ce0 Mon Sep 17 00:00:00 2001 From: robojumper Date: Sun, 13 Jul 2025 22:14:31 +0200 Subject: [PATCH 28/36] Rest of the data --- config/SOUE01/splits.txt | 57 ++ config/SOUE01/symbols.txt | 1229 +++++++++++++++++++------------------ 2 files changed, 675 insertions(+), 611 deletions(-) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 93da7c40..aa8032f4 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -2990,42 +2990,82 @@ revolution/cx/CXSecureUncompression.c: revolution/nand/nand.c: .text start:0x803D0B20 end:0x803D1F44 align:16 + .rodata start:0x804F5370 end:0x804F53B8 + .sdata start:0x80574AC0 end:0x80574AC8 revolution/nand/NANDOpenClose.c: .text start:0x803D1F50 end:0x803D2BBC align:16 + .data start:0x80562140 end:0x80562180 + .sdata start:0x80574AC8 end:0x80574AD8 + .sbss start:0x80576368 end:0x80576370 revolution/nand/NANDCore.c: .text start:0x803D2BC0 end:0x803D3F2C align:16 + .rodata start:0x804F53B8 end:0x804F5500 + .data start:0x80562180 end:0x805622D0 + .sdata start:0x80574AD8 end:0x80574B00 + .sbss start:0x80576370 end:0x80576378 + .bss start:0x805EE1A0 end:0x805EE200 revolution/nand/NANDCheck.c: .text start:0x803D3F30 end:0x803D40F8 align:16 + .data start:0x805622D0 end:0x80562380 + .sdata start:0x80574B00 end:0x80574B10 revolution/nand/NANDLogging.c: .text start:0x803D4100 end:0x803D4744 align:16 + .data start:0x80562380 end:0x805623C8 + .sdata start:0x80574B10 end:0x80574B18 + .sbss start:0x80576378 end:0x80576380 + .bss start:0x805EE200 end:0x805EE500 revolution/nand/NANDErrorMessage.c: .text start:0x803D4750 end:0x803D4A48 align:16 + .rodata start:0x804F5500 end:0x804F5718 + .data start:0x805623C8 end:0x80563FF8 + .sbss start:0x80576380 end:0x80576388 + .sdata2 start:0x8057E900 end:0x8057E930 revolution/sc/scsystem.c: .text start:0x803D4A50 end:0x803D64D8 align:16 + .rodata start:0x804F5718 end:0x804F5770 + .data start:0x80563FF8 end:0x805641F0 + .sdata start:0x80574B18 end:0x80574C28 + .sbss start:0x80576388 end:0x805763A0 + .bss start:0x805EE500 end:0x805F66A0 revolution/sc/scapi.c: .text start:0x803D64E0 end:0x803D6A28 align:16 revolution/sc/scapi_prdinfo.c: .text start:0x803D6A30 end:0x803D6CB4 align:16 + .data start:0x805641F0 end:0x80564250 + .sdata start:0x80574C28 end:0x80574C38 revolution/pad/Pad.c: .text start:0x803D6CC0 end:0x803D6D1C align:16 revolution/wpad/WPAD.c: .text start:0x803D6D20 end:0x803E1D14 align:16 + .rodata start:0x804F5770 end:0x804F5840 + .data start:0x80564250 end:0x805644E0 + .sdata start:0x80574C38 end:0x80574C50 + .sbss start:0x805763A0 end:0x80576420 + .sdata2 start:0x8057E930 end:0x8057E938 + .bss start:0x805F66A0 end:0x805FA680 revolution/wpad/WPADHIDParser.c: .text start:0x803E1D20 end:0x803E6F84 align:16 + .rodata start:0x804F5840 end:0x804F5870 + .data start:0x805644E0 end:0x805645E0 + .sbss start:0x80576420 end:0x80576438 + .sdata2 start:0x8057E938 end:0x8057E9B0 + .bss start:0x805FA680 end:0x805FA6E0 revolution/wpad/WPADEncrypt.c: .text start:0x803E6F90 end:0x803E7E44 align:16 + .data start:0x805645E0 end:0x80565840 + .sbss start:0x80576438 end:0x80576440 revolution/wpad/WPADMem.c: .text start:0x803E7E50 end:0x803E7F54 align:16 @@ -3035,12 +3075,23 @@ revolution/wpad/lint.c: revolution/wpad/WUD.c: .text start:0x803E87D0 end:0x803EDEB4 align:16 + .data start:0x80565840 end:0x80565B88 + .sdata start:0x80574C50 end:0x80574C60 + .sbss start:0x80576440 end:0x80576478 + .sdata2 start:0x8057E9B0 end:0x8057E9B8 + .bss start:0x805FA6E0 end:0x805FC888 revolution/wpad/WUDHIDHost.c: .text start:0x803EDEC0 end:0x803EE328 align:16 + .data start:0x80565B88 end:0x80565BC8 revolution/kpad/KPAD.c: .text start:0x803EE330 end:0x803F3628 align:16 + .data start:0x80565BC8 end:0x80565C90 + .sdata start:0x80574C60 end:0x80574CE8 + .sbss start:0x80576478 end:0x805764D0 + .sdata2 start:0x8057E9B8 end:0x8057EA58 + .bss start:0x805FC888 end:0x805FE328 revolution/kpad/KMPLS.c: .text start:0x803F3630 end:0x803F6020 align:16 @@ -3050,9 +3101,15 @@ revolution/kpad/KMPLS.c: revolution/kpad/KZMplsTestSub.c: .text start:0x803F6020 end:0x803F6A24 align:16 + .data start:0x80565CD8 end:0x80565D00 + .sdata2 start:0x8057EAF8 end:0x8057EB08 + .bss start:0x805FE328 end:0x805FE338 revolution/usb/usb.c: .text start:0x803F6A30 end:0x803F7F7C align:16 + .data start:0x80565D00 end:0x80566530 + .sdata start:0x80574CE8 end:0x80574D08 + .sbss start:0x805764D8 end:0x80576500 RVL_SDK/bte/BTE.c: .text start:0x803F7F80 end:0x80425754 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 81e8cbd1..18873061 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -23113,41 +23113,41 @@ __CtrlMsgInt = .text:0x803F7940; // type:function size:0x5A4 IUSB_WriteCtrlMsgAsync = .text:0x803F7EF0; // type:function size:0x8C gki_init_free_queue = .text:0x803F7F80; // type:function size:0x220 gki_buffer_init = .text:0x803F81A0; // type:function size:0x2AC -bte__GKI_init_q = .text:0x803F8450; // type:function size:0x14 -bte__GKI_getbuf = .text:0x803F8470; // type:function size:0x1A0 -bte__GKI_getpoolbuf = .text:0x803F8610; // type:function size:0xE8 -bte__GKI_freebuf = .text:0x803F8700; // type:function size:0x170 -bte__GKI_get_buf_size = .text:0x803F8870; // type:function size:0x44 +GKI_init_q = .text:0x803F8450; // type:function size:0x14 +GKI_getbuf = .text:0x803F8470; // type:function size:0x1A0 +GKI_getpoolbuf = .text:0x803F8610; // type:function size:0xE8 +GKI_freebuf = .text:0x803F8700; // type:function size:0x170 +GKI_get_buf_size = .text:0x803F8870; // type:function size:0x44 GKI_send_msg = .text:0x803F88C0; // type:function size:0x1BC GKI_read_mbox = .text:0x803F8A80; // type:function size:0xB0 -bte__GKI_enqueue = .text:0x803F8B30; // type:function size:0x13C -bte__GKI_enqueue_head = .text:0x803F8C70; // type:function size:0x140 -bte__GKI_dequeue = .text:0x803F8DB0; // type:function size:0xA0 -bte__GKI_remove_from_queue = .text:0x803F8E50; // type:function size:0xC4 +GKI_enqueue = .text:0x803F8B30; // type:function size:0x13C +GKI_enqueue_head = .text:0x803F8C70; // type:function size:0x140 +GKI_dequeue = .text:0x803F8DB0; // type:function size:0xA0 +GKI_remove_from_queue = .text:0x803F8E50; // type:function size:0xC4 fn_803F8F20 = .text:0x803F8F20; // type:function size:0x8 -bte__GKI_getnext = .text:0x803F8F30; // type:function size:0x1C -bte__GKI_queue_is_empty = .text:0x803F8F50; // type:function size:0x10 -bte__GKI_create_pool = .text:0x803F8F60; // type:function size:0x348 +GKI_getnext = .text:0x803F8F30; // type:function size:0x1C +GKI_queue_is_empty = .text:0x803F8F50; // type:function size:0x10 +GKI_create_pool = .text:0x803F8F60; // type:function size:0x348 GKI_delete_pool = .text:0x803F92B0; // type:function size:0x168 -bte__gki_timers_init = .text:0x803F9420; // type:function size:0xBC -bte__GKI_get_tick_count = .text:0x803F94E0; // type:function size:0x14 +gki_timers_init = .text:0x803F9420; // type:function size:0xBC +GKI_get_tick_count = .text:0x803F94E0; // type:function size:0x14 GKI_start_timer = .text:0x803F9500; // type:function size:0x14C GKI_stop_timer = .text:0x803F9650; // type:function size:0x84 -bte__GKI_init_timer_list = .text:0x803F96E0; // type:function size:0x14 -bte__GKI_update_timer_list = .text:0x803F9700; // type:function size:0x90 -bte__GKI_add_to_timer_list = .text:0x803F9790; // type:function size:0xEC +GKI_init_timer_list = .text:0x803F96E0; // type:function size:0x14 +GKI_update_timer_list = .text:0x803F9700; // type:function size:0x90 +GKI_add_to_timer_list = .text:0x803F9790; // type:function size:0xEC GKI_remove_from_timer_list = .text:0x803F9880; // type:function size:0x124 -bte__GKI_init = .text:0x803F99B0; // type:function size:0x90 +GKI_init = .text:0x803F99B0; // type:function size:0x90 fn_803F9A40 = .text:0x803F9A40; // type:function size:0xA8 GKI_run = .text:0x803F9AF0; // type:function size:0x4 -bte__GKI_sched_lock = .text:0x803F9B00; // type:function size:0x4 -bte__GKI_sched_unlock = .text:0x803F9B10; // type:function size:0x4 +GKI_sched_lock = .text:0x803F9B00; // type:function size:0x4 +GKI_sched_unlock = .text:0x803F9B10; // type:function size:0x4 GKI_delay = .text:0x803F9B20; // type:function size:0x4 GKI_send_event = .text:0x803F9B30; // type:function size:0xA4 -bte__GKI_get_taskid = .text:0x803F9BE0; // type:function size:0x8 -bte__GKI_enable = .text:0x803F9BF0; // type:function size:0x24 -bte__GKI_disable = .text:0x803F9C20; // type:function size:0x44 -bte__GKI_exception = .text:0x803F9C70; // type:function size:0x4 +GKI_get_taskid = .text:0x803F9BE0; // type:function size:0x8 +GKI_enable = .text:0x803F9BF0; // type:function size:0x24 +GKI_disable = .text:0x803F9C20; // type:function size:0x44 +GKI_exception = .text:0x803F9C70; // type:function size:0x4 GKI_os_malloc = .text:0x803F9C80; // type:function size:0x2C GKI_os_free = .text:0x803F9CB0; // type:function size:0x4 hcisu_h2_usb_cback = .text:0x803F9CC0; // type:function size:0x14 @@ -23157,7 +23157,7 @@ hcisu_h2_init = .text:0x803FA230; // type:function size:0x2C hcisu_h2_open = .text:0x803FA260; // type:function size:0x68 hcisu_h2_close = .text:0x803FA2D0; // type:function size:0x34 hcisu_h2_send = .text:0x803FA310; // type:function size:0x30 -bte__hcisu_h2_handle_event = .text:0x803FA340; // type:function size:0x3C +hcisu_h2_handle_event = .text:0x803FA340; // type:function size:0x3C __ntd_get_allocated_mem_size = .text:0x803FA380; // type:function size:0xC uusb_CloseDeviceCB = .text:0x803FA390; // type:function size:0x94 uusb_ReadIntrDataCB = .text:0x803FA430; // type:function size:0x1A8 @@ -23168,31 +23168,31 @@ fn_803FA950 = .text:0x803FA950; // type:function size:0x208 UUSB_Open = .text:0x803FAB60; // type:function size:0x18C UUSB_Read = .text:0x803FACF0; // type:function size:0x8 UUSB_Write = .text:0x803FAD00; // type:function size:0x20C -bte__UUSB_Close = .text:0x803FAF10; // type:function size:0xAC -bte__UUSB_Unregister = .text:0x803FAFC0; // type:function size:0x44 -bte__bte_hcisu_send = .text:0x803FB010; // type:function size:0x20 -bte__bte_hcisu_task = .text:0x803FB030; // type:function size:0x64 +UUSB_Close = .text:0x803FAF10; // type:function size:0xAC +UUSB_Unregister = .text:0x803FAFC0; // type:function size:0x44 +bte_hcisu_send = .text:0x803FB010; // type:function size:0x20 +bte_hcisu_task = .text:0x803FB030; // type:function size:0x64 bte_hcisu_close = .text:0x803FB0A0; // type:function size:0x24 bta_ci_hci_msg_handler = .text:0x803FB0D0; // type:function size:0x10 -bte__BTE_InitStack = .text:0x803FB0E0; // type:function size:0x2C +BTE_InitStack = .text:0x803FB0E0; // type:function size:0x2C LogMsg = .text:0x803FB110; // type:function size:0xB4 -bte__LogMsg_0 = .text:0x803FB1D0; // type:function size:0x18 -bte__LogMsg_1 = .text:0x803FB1F0; // type:function size:0x18 -bte__LogMsg_2 = .text:0x803FB210; // type:function size:0x18 -bte__LogMsg_3 = .text:0x803FB230; // type:function size:0x18 +LogMsg_0 = .text:0x803FB1D0; // type:function size:0x18 +LogMsg_1 = .text:0x803FB1F0; // type:function size:0x18 +LogMsg_2 = .text:0x803FB210; // type:function size:0x18 +LogMsg_3 = .text:0x803FB230; // type:function size:0x18 LogMsg_4 = .text:0x803FB250; // type:function size:0x18 LogMsg_5 = .text:0x803FB270; // type:function size:0x18 -bte__LogMsg_6 = .text:0x803FB290; // type:function size:0x18 +LogMsg_6 = .text:0x803FB290; // type:function size:0x18 BTUInterruptHandler = .text:0x803FB2B0; // type:function size:0x18 BTA_Init = .text:0x803FB2D0; // type:function size:0xDC -bte__BTA_CleanUp = .text:0x803FB3B0; // type:function size:0x34 +BTA_CleanUp = .text:0x803FB3B0; // type:function size:0x34 bta_usb_close_cb = .text:0x803FB3F0; // type:function size:0x30 -bte__btu_task_init = .text:0x803FB420; // type:function size:0x40 +btu_task_init = .text:0x803FB420; // type:function size:0x40 btu_task_msg_handler = .text:0x803FB460; // type:function size:0x37C -bte__btu_start_timer = .text:0x803FB7E0; // type:function size:0x70 -bte__btu_stop_timer = .text:0x803FB850; // type:function size:0x14 -bte__bdcpy = .text:0x803FB864; // type:function size:0x34 -bte__bdcmp = .text:0x803FB898; // type:function size:0xA0 +btu_start_timer = .text:0x803FB7E0; // type:function size:0x70 +btu_stop_timer = .text:0x803FB850; // type:function size:0x14 +bdcpy = .text:0x803FB864; // type:function size:0x34 +bdcmp = .text:0x803FB898; // type:function size:0xA0 fn_803FB938 = .text:0x803FB938; // type:function size:0x10 fn_803FB948 = .text:0x803FB948; // type:function size:0x10 fn_803FB958 = .text:0x803FB958; // type:function size:0x10 @@ -23201,421 +23201,421 @@ bta_sys_conn_close = .text:0x803FBA2C; // type:function size:0xC4 bta_sys_sco_close = .text:0x803FBAF0; // type:function size:0x34 bta_sys_idle = .text:0x803FBB24; // type:function size:0x34 bta_sys_busy = .text:0x803FBB58; // type:function size:0x34 -bte__bta_sys_init = .text:0x803FBB8C; // type:function size:0x64 -bte__bta_sys_event = .text:0x803FBBF0; // type:function size:0xEC +bta_sys_init = .text:0x803FBB8C; // type:function size:0x64 +bta_sys_event = .text:0x803FBBF0; // type:function size:0xEC bta_sys_timer_update = .text:0x803FBCDC; // type:function size:0x20 fn_803FBCFC = .text:0x803FBCFC; // type:function size:0x14 -bte__bta_sys_sendmsg = .text:0x803FBD10; // type:function size:0x1C +bta_sys_sendmsg = .text:0x803FBD10; // type:function size:0x1C bta_sys_start_timer = .text:0x803FBD2C; // type:function size:0x20 bta_sys_stop_timer = .text:0x803FBD4C; // type:function size:0x14 -bte__bta_sys_disable = .text:0x803FBD60; // type:function size:0x68 +bta_sys_disable = .text:0x803FBD60; // type:function size:0x68 bta_sys_set_trace_level = .text:0x803FBDC8; // type:function size:0x8 -bte__ptim_init = .text:0x803FBDD0; // type:function size:0x4C +ptim_init = .text:0x803FBDD0; // type:function size:0x4C ptim_timer_update = .text:0x803FBE1C; // type:function size:0xB4 ptim_start_timer = .text:0x803FBED0; // type:function size:0xA0 ptim_stop_timer = .text:0x803FBF70; // type:function size:0x40 -bte__utl_freebuf = .text:0x803FBFB0; // type:function size:0x44 -bte__bta_dm_enable = .text:0x803FBFF4; // type:function size:0x110 -bte__bta_dm_disable = .text:0x803FC104; // type:function size:0xB0 -bte__bta_dm_disable_timer_cback = .text:0x803FC1B4; // type:function size:0xBC +utl_freebuf = .text:0x803FBFB0; // type:function size:0x44 +bta_dm_enable = .text:0x803FBFF4; // type:function size:0x110 +bta_dm_disable = .text:0x803FC104; // type:function size:0xB0 +bta_dm_disable_timer_cback = .text:0x803FC1B4; // type:function size:0xBC fn_803FC270 = .text:0x803FC270; // type:function size:0x8 -bte__bta_dm_set_visibility = .text:0x803FC278; // type:function size:0x48 -bte__bta_dm_bond = .text:0x803FC2C0; // type:function size:0x70 -bte__bta_dm_pin_reply = .text:0x803FC330; // type:function size:0x9C -bte__bta_dm_auth_reply = .text:0x803FC3CC; // type:function size:0xD4 -bte__bta_dm_search_start = .text:0x803FC4A0; // type:function size:0x60 -bte__bta_dm_search_cancel = .text:0x803FC500; // type:function size:0x84 +bta_dm_set_visibility = .text:0x803FC278; // type:function size:0x48 +bta_dm_bond = .text:0x803FC2C0; // type:function size:0x70 +bta_dm_pin_reply = .text:0x803FC330; // type:function size:0x9C +bta_dm_auth_reply = .text:0x803FC3CC; // type:function size:0xD4 +bta_dm_search_start = .text:0x803FC4A0; // type:function size:0x60 +bta_dm_search_cancel = .text:0x803FC500; // type:function size:0x84 fn_803FC584 = .text:0x803FC584; // type:function size:0x114 -bte__bta_dm_inq_cmpl = .text:0x803FC698; // type:function size:0x224 -bte__bta_dm_rmt_name = .text:0x803FC8BC; // type:function size:0x16C -bte__bta_dm_disc_rmt_name = .text:0x803FCA28; // type:function size:0x64 -bte__bta_dm_sdp_result = .text:0x803FCA8C; // type:function size:0x268 +bta_dm_inq_cmpl = .text:0x803FC698; // type:function size:0x224 +bta_dm_rmt_name = .text:0x803FC8BC; // type:function size:0x16C +bta_dm_disc_rmt_name = .text:0x803FCA28; // type:function size:0x64 +bta_dm_sdp_result = .text:0x803FCA8C; // type:function size:0x268 fn_803FCCF4 = .text:0x803FCCF4; // type:function size:0x18 -bte__bta_dm_disc_result = .text:0x803FCD0C; // type:function size:0x50 -bte__bta_dm_search_result = .text:0x803FCD5C; // type:function size:0x88 -bte__bta_dm_search_timer_cback = .text:0x803FCDE4; // type:function size:0x4C +bta_dm_disc_result = .text:0x803FCD0C; // type:function size:0x50 +bta_dm_search_result = .text:0x803FCD5C; // type:function size:0x88 +bta_dm_search_timer_cback = .text:0x803FCDE4; // type:function size:0x4C bta_dm_free_sdp_db = .text:0x803FCE30; // type:function size:0x44 bta_dm_queue_search = .text:0x803FCE74; // type:function size:0x48 bta_dm_queue_disc = .text:0x803FCEBC; // type:function size:0x48 bta_dm_search_clear_queue = .text:0x803FCF04; // type:function size:0x44 bta_search_cancel_cmpl = .text:0x803FCF48; // type:function size:0x44 -bte__bta_dm_search_cancel_transac_cmpl = .text:0x803FCF8C; // type:function size:0x5C +bta_dm_search_cancel_transac_cmpl = .text:0x803FCF8C; // type:function size:0x5C fn_803FCFE8 = .text:0x803FCFE8; // type:function size:0x18 fn_803FD000 = .text:0x803FD000; // type:function size:0x1A0 -bte__bta_dm_discover_next_device = .text:0x803FD1A0; // type:function size:0xE0 +bta_dm_discover_next_device = .text:0x803FD1A0; // type:function size:0xE0 fn_803FD280 = .text:0x803FD280; // type:function size:0x48 -bte__bta_dm_inq_results_cb = .text:0x803FD2C8; // type:function size:0x90 -bte__bta_dm_inq_cmpl_cb = .text:0x803FD358; // type:function size:0x4C -bte__bta_dm_service_search_remname_cback = .text:0x803FD3A4; // type:function size:0x40 -bte__bta_dm_remname_cback = .text:0x803FD3E4; // type:function size:0x8C -bte__bta_dm_disc_remname_cback = .text:0x803FD470; // type:function size:0x88 +bta_dm_inq_results_cb = .text:0x803FD2C8; // type:function size:0x90 +bta_dm_inq_cmpl_cb = .text:0x803FD358; // type:function size:0x4C +bta_dm_service_search_remname_cback = .text:0x803FD3A4; // type:function size:0x40 +bta_dm_remname_cback = .text:0x803FD3E4; // type:function size:0x8C +bta_dm_disc_remname_cback = .text:0x803FD470; // type:function size:0x88 bta_dm_cancel_rmt_name = .text:0x803FD4F8; // type:function size:0x4 -bte__bta_dm_authorize_cback = .text:0x803FD4FC; // type:function size:0xC8 -bte__bta_dm_pinname_cback = .text:0x803FD5C4; // type:function size:0xC0 -bte__bta_dm_pin_cback = .text:0x803FD684; // type:function size:0x130 +bta_dm_authorize_cback = .text:0x803FD4FC; // type:function size:0xC8 +bta_dm_pinname_cback = .text:0x803FD5C4; // type:function size:0xC0 +bta_dm_pin_cback = .text:0x803FD684; // type:function size:0x130 fn_803FD7B4 = .text:0x803FD7B4; // type:function size:0x8 -bte__bta_dm_new_link_key_cback = .text:0x803FD7BC; // type:function size:0x9C -bte__bta_dm_authentication_complete_cback = .text:0x803FD858; // type:function size:0x84 +bta_dm_new_link_key_cback = .text:0x803FD7BC; // type:function size:0x9C +bta_dm_authentication_complete_cback = .text:0x803FD858; // type:function size:0x84 bta_dm_local_addr_cback = .text:0x803FD8DC; // type:function size:0x28 fn_803FD904 = .text:0x803FD904; // type:function size:0x3C -bte__bta_dm_signal_strength_timer_cback = .text:0x803FD940; // type:function size:0xF4 -bte__bta_dm_acl_change_cback = .text:0x803FDA34; // type:function size:0x70 -bte__bta_dm_acl_change = .text:0x803FDAA4; // type:function size:0x280 +bta_dm_signal_strength_timer_cback = .text:0x803FD940; // type:function size:0xF4 +bta_dm_acl_change_cback = .text:0x803FDA34; // type:function size:0x70 +bta_dm_acl_change = .text:0x803FDAA4; // type:function size:0x280 bta_dm_disable_conn_down_timer_cback = .text:0x803FDD24; // type:function size:0x1C bta_dm_rssi_cback = .text:0x803FDD40; // type:function size:0x6C bta_dm_link_quality_cback = .text:0x803FDDAC; // type:function size:0x6C -bte__bta_dm_l2cap_server_compress_cback = .text:0x803FDE18; // type:function size:0xE4 -bte__bta_dm_compress_cback = .text:0x803FDEFC; // type:function size:0x238 -bte__bta_dm_rm_cback = .text:0x803FE134; // type:function size:0x108 -bte__bta_dm_keep_acl = .text:0x803FE23C; // type:function size:0x84 +bta_dm_l2cap_server_compress_cback = .text:0x803FDE18; // type:function size:0xE4 +bta_dm_compress_cback = .text:0x803FDEFC; // type:function size:0x238 +bta_dm_rm_cback = .text:0x803FE134; // type:function size:0x108 +bta_dm_keep_acl = .text:0x803FE23C; // type:function size:0x84 bta_dm_immediate_disable = .text:0x803FE2C0; // type:function size:0x1C fn_803FE2DC = .text:0x803FE2DC; // type:function size:0x4 -bte__bta_dm_send_hci_reset = .text:0x803FE2E0; // type:function size:0x50 -bte__BTA_EnableBluetooth = .text:0x803FE330; // type:function size:0x88 +bta_dm_send_hci_reset = .text:0x803FE2E0; // type:function size:0x50 +BTA_EnableBluetooth = .text:0x803FE330; // type:function size:0x88 BTA_DisableBluetooth = .text:0x803FE3B8; // type:function size:0x38 -bte__BTA_DmIsDeviceUp = .text:0x803FE3F0; // type:function size:0x38 -bte__BTA_DmSetDeviceName = .text:0x803FE428; // type:function size:0x64 -bte__BTA_DmSetVisibility = .text:0x803FE48C; // type:function size:0x58 -fn_803FE4E4 = .text:0x803FE4E4; // type:function size:0x84 -DMA_DMSearchCancel = .text:0x803FE568; // type:function size:0x38 -bte__BTA_DmPinReply = .text:0x803FE5A0; // type:function size:0x8C -bte__BTA_DmAddDevice = .text:0x803FE62C; // type:function size:0xF0 -bte__BTA_DmRemoveDevice = .text:0x803FE71C; // type:function size:0x48 +BTA_DmIsDeviceUp = .text:0x803FE3F0; // type:function size:0x38 +BTA_DmSetDeviceName = .text:0x803FE428; // type:function size:0x64 +BTA_DmSetVisibility = .text:0x803FE48C; // type:function size:0x58 +BTA_DmSearch = .text:0x803FE4E4; // type:function size:0x84 +BTA_DmSearchCancel = .text:0x803FE568; // type:function size:0x38 +BTA_DmPinReply = .text:0x803FE5A0; // type:function size:0x8C +BTA_DmAddDevice = .text:0x803FE62C; // type:function size:0xF0 +BTA_DmRemoveDevice = .text:0x803FE71C; // type:function size:0x48 BTA_DmSendHciReset = .text:0x803FE764; // type:function size:0x38 -bte__bta_dm_sm_execute = .text:0x803FE79C; // type:function size:0x98 -bte__bta_dm_search_sm_execute = .text:0x803FE834; // type:function size:0xC8 -bte__bta_dm_init_pm = .text:0x803FE8FC; // type:function size:0x68 +bta_dm_sm_execute = .text:0x803FE79C; // type:function size:0x98 +bta_dm_search_sm_execute = .text:0x803FE834; // type:function size:0xC8 +bta_dm_init_pm = .text:0x803FE8FC; // type:function size:0x68 bta_dm_disable_pm = .text:0x803FE964; // type:function size:0x18 -bte__bta_dm_pm_cback = .text:0x803FE97C; // type:function size:0x380 -bte__bta_dm_pm_set_mode = .text:0x803FECFC; // type:function size:0x380 -bte__bta_dm_pm_btm_cback = .text:0x803FF07C; // type:function size:0x78 -bte__bta_dm_pm_timer_cback = .text:0x803FF0F4; // type:function size:0xF8 -bte__bta_dm_pm_btm_status = .text:0x803FF1EC; // type:function size:0x120 +bta_dm_pm_cback = .text:0x803FE97C; // type:function size:0x380 +bta_dm_pm_set_mode = .text:0x803FECFC; // type:function size:0x380 +bta_dm_pm_btm_cback = .text:0x803FF07C; // type:function size:0x78 +bta_dm_pm_timer_cback = .text:0x803FF0F4; // type:function size:0xF8 +bta_dm_pm_btm_status = .text:0x803FF1EC; // type:function size:0x120 bta_dm_pm_timer = .text:0x803FF30C; // type:function size:0xC -bte__bta_hh_api_enable = .text:0x803FF318; // type:function size:0x174 -bte__bta_hh_api_disable = .text:0x803FF48C; // type:function size:0x104 -bte__bta_hh_disc_cmpl = .text:0x803FF590; // type:function size:0xA4 -bte__bta_hh_sdp_cback = .text:0x803FF634; // type:function size:0x134 -bte__bta_hh_start_sdp = .text:0x803FF768; // type:function size:0x194 -bte__bta_hh_sdp_cmpl = .text:0x803FF8FC; // type:function size:0x168 -bte__bta_hh_api_disc_act = .text:0x803FFA64; // type:function size:0x68 -bte__bta_hh_open_cmpl_act = .text:0x803FFACC; // type:function size:0x128 -bte__bta_hh_open_act = .text:0x803FFBF4; // type:function size:0xB8 -bte__bta_hh_data_act = .text:0x803FFCAC; // type:function size:0x58 -bte__bta_hh_handsk_act = .text:0x803FFD04; // type:function size:0x268 -bte__bta_hh_ctrl_dat_act = .text:0x803FFF6C; // type:function size:0x1F8 -bte__bta_hh_close_act = .text:0x80400164; // type:function size:0x200 +bta_hh_api_enable = .text:0x803FF318; // type:function size:0x174 +bta_hh_api_disable = .text:0x803FF48C; // type:function size:0x104 +bta_hh_disc_cmpl = .text:0x803FF590; // type:function size:0xA4 +bta_hh_sdp_cback = .text:0x803FF634; // type:function size:0x134 +bta_hh_start_sdp = .text:0x803FF768; // type:function size:0x194 +bta_hh_sdp_cmpl = .text:0x803FF8FC; // type:function size:0x168 +bta_hh_api_disc_act = .text:0x803FFA64; // type:function size:0x68 +bta_hh_open_cmpl_act = .text:0x803FFACC; // type:function size:0x128 +bta_hh_open_act = .text:0x803FFBF4; // type:function size:0xB8 +bta_hh_data_act = .text:0x803FFCAC; // type:function size:0x58 +bta_hh_handsk_act = .text:0x803FFD04; // type:function size:0x268 +bta_hh_ctrl_dat_act = .text:0x803FFF6C; // type:function size:0x1F8 +bta_hh_close_act = .text:0x80400164; // type:function size:0x200 fn_80400364 = .text:0x80400364; // type:function size:0x1C -bte__bta_hh_maint_dev_act = .text:0x80400380; // type:function size:0x164 -bte__bta_hh_get_acl_q_info = .text:0x804004E4; // type:function size:0x11C +bta_hh_maint_dev_act = .text:0x80400380; // type:function size:0x164 +bta_hh_get_acl_q_info = .text:0x804004E4; // type:function size:0x11C bta_hh_write_dev_act = .text:0x80400600; // type:function size:0x1C8 -bte__bta_hh_cback = .text:0x804007C8; // type:function size:0x298 -fn_80400A60 = .text:0x80400A60; // type:function size:0x88 +bta_hh_cback = .text:0x804007C8; // type:function size:0x298 +BTA_HhEnable = .text:0x80400A60; // type:function size:0x88 BTA_HbDisable = .text:0x80400AE8; // type:function size:0x38 -bte__BTA_HhClose = .text:0x80400B20; // type:function size:0x64 -bte__BTA_HhOpen = .text:0x80400B84; // type:function size:0xB4 -bte__BTA_HhSendData = .text:0x80400C38; // type:function size:0x90 -fn_80400CC8 = .text:0x80400CC8; // type:function size:0xA8 -bte__BTA_HhRemoveDev = .text:0x80400D70; // type:function size:0x6C -bte__BTA_HhGetAclQueueInfo = .text:0x80400DDC; // type:function size:0x54 -bte__bta_hh_sm_execute = .text:0x80400E30; // type:function size:0x354 -bte__bta_hh_hdl_event = .text:0x80401184; // type:function size:0x14C -bte__bta_hh_evt_code = .text:0x804012D0; // type:function size:0xB4 -bte__bta_hh_find_cb = .text:0x80401384; // type:function size:0x13C -bte__bta_hh_clean_up_kdev = .text:0x804014C0; // type:function size:0x80 -bte__bta_hh_add_device_to_list = .text:0x80401540; // type:function size:0xBC -bte__bta_hh_tod_spt = .text:0x804015FC; // type:function size:0x54 -bte__bta_hh_trace_dev_db = .text:0x80401650; // type:function size:0xE0 -bte__btm_acl_init = .text:0x80401730; // type:function size:0x1C -bte__btm_handle_to_acl_index = .text:0x8040174C; // type:function size:0x84 -bte__btm_acl_created = .text:0x804017D0; // type:function size:0x314 -bte__btm_acl_removed = .text:0x80401AE4; // type:function size:0xC4 -bte__btm_acl_device_down = .text:0x80401BA8; // type:function size:0x64 -bte__BTM_SwitchRole = .text:0x80401C0C; // type:function size:0x21C +BTA_HhClose = .text:0x80400B20; // type:function size:0x64 +BTA_HhOpen = .text:0x80400B84; // type:function size:0xB4 +BTA_HhSendData = .text:0x80400C38; // type:function size:0x90 +BTA_HhAddDev = .text:0x80400CC8; // type:function size:0xA8 +BTA_HhRemoveDev = .text:0x80400D70; // type:function size:0x6C +BTA_HhGetAclQueueInfo = .text:0x80400DDC; // type:function size:0x54 +bta_hh_sm_execute = .text:0x80400E30; // type:function size:0x354 +bta_hh_hdl_event = .text:0x80401184; // type:function size:0x14C +bta_hh_evt_code = .text:0x804012D0; // type:function size:0xB4 +bta_hh_find_cb = .text:0x80401384; // type:function size:0x13C +bta_hh_clean_up_kdev = .text:0x804014C0; // type:function size:0x80 +bta_hh_add_device_to_list = .text:0x80401540; // type:function size:0xBC +bta_hh_tod_spt = .text:0x804015FC; // type:function size:0x54 +bta_hh_trace_dev_db = .text:0x80401650; // type:function size:0xE0 +btm_acl_init = .text:0x80401730; // type:function size:0x1C +btm_handle_to_acl_index = .text:0x8040174C; // type:function size:0x84 +btm_acl_created = .text:0x804017D0; // type:function size:0x314 +btm_acl_removed = .text:0x80401AE4; // type:function size:0xC4 +btm_acl_device_down = .text:0x80401BA8; // type:function size:0x64 +BTM_SwitchRole = .text:0x80401C0C; // type:function size:0x21C btm_acl_encrypt_change = .text:0x80401E28; // type:function size:0x170 -bte__BTM_SetLinkPolicy = .text:0x80401F98; // type:function size:0x1F0 +BTM_SetLinkPolicy = .text:0x80401F98; // type:function size:0x1F0 BTM_SetDefaultLinkPolicy = .text:0x80402188; // type:function size:0x10 fn_80402198 = .text:0x80402198; // type:function size:0x104 fn_8040229C = .text:0x8040229C; // type:function size:0x8C fn_80402328 = .text:0x80402328; // type:function size:0x22C BTM_SetDefaultLinkSuperTout = .text:0x80402554; // type:function size:0x10 -bte__BTM_IsAclConnectionUp = .text:0x80402564; // type:function size:0xD8 -bte__BTM_GetNumAclLinks = .text:0x8040263C; // type:function size:0x5C +BTM_IsAclConnectionUp = .text:0x80402564; // type:function size:0xD8 +BTM_GetNumAclLinks = .text:0x8040263C; // type:function size:0x5C btm_get_acl_disc_reason_code = .text:0x80402698; // type:function size:0x10 -bte__BTM_GetHCIConnHandle = .text:0x804026A8; // type:function size:0x9C -bte__btm_process_clk_off_comp_evt = .text:0x80402744; // type:function size:0x9C -bte__btm_acl_role_changed = .text:0x804027E0; // type:function size:0x1F4 -bte__btm_acl_timeout = .text:0x804029D4; // type:function size:0x5C -bte__btm_get_max_packet_size = .text:0x80402A30; // type:function size:0x1A0 -bte__BTM_AclRegisterForChanges = .text:0x80402BD0; // type:function size:0x44 +BTM_GetHCIConnHandle = .text:0x804026A8; // type:function size:0x9C +btm_process_clk_off_comp_evt = .text:0x80402744; // type:function size:0x9C +btm_acl_role_changed = .text:0x804027E0; // type:function size:0x1F4 +btm_acl_timeout = .text:0x804029D4; // type:function size:0x5C +btm_get_max_packet_size = .text:0x80402A30; // type:function size:0x1A0 +BTM_AclRegisterForChanges = .text:0x80402BD0; // type:function size:0x44 fn_80402C14 = .text:0x80402C14; // type:function size:0xD8 fn_80402CEC = .text:0x80402CEC; // type:function size:0x13C -bte__BTM_ReadLinkQuality = .text:0x80402E28; // type:function size:0x13C +BTM_ReadLinkQuality = .text:0x80402E28; // type:function size:0x13C fn_80402F64 = .text:0x80402F64; // type:function size:0x11C fn_80403080 = .text:0x80403080; // type:function size:0x118 -bte__btm_remove_acl = .text:0x80403198; // type:function size:0xBC -bte__btm_chg_all_acl_pkt_types = .text:0x80403254; // type:function size:0x220 -bte__BTM_SecAddDevice = .text:0x80403474; // type:function size:0x188 -bte__BTM_SecDeleteDevice = .text:0x804035FC; // type:function size:0xAC -bte__BTM_SecReadDevName = .text:0x804036A8; // type:function size:0xA0 -bte__btm_sec_alloc_dev = .text:0x80403748; // type:function size:0x120 -bte__btm_find_dev_by_handle = .text:0x80403868; // type:function size:0xB8 -bte__btm_find_dev = .text:0x80403920; // type:function size:0x88 -bte__btm_find_oldest_dev = .text:0x804039A8; // type:function size:0x198 -bte__btm_dev_init = .text:0x80403B40; // type:function size:0xA0 -bte__btm_db_reset = .text:0x80403BE0; // type:function size:0xB0 -bte__BTM_DeviceReset = .text:0x80403C90; // type:function size:0x9C -bte__BTM_SendHciReset = .text:0x80403D2C; // type:function size:0xA8 -bte__BTM_IsDeviceUp = .text:0x80403DD4; // type:function size:0x1C -bte__BTM_SetAfhChannels = .text:0x80403DF0; // type:function size:0xF0 +btm_remove_acl = .text:0x80403198; // type:function size:0xBC +btm_chg_all_acl_pkt_types = .text:0x80403254; // type:function size:0x220 +BTM_SecAddDevice = .text:0x80403474; // type:function size:0x188 +BTM_SecDeleteDevice = .text:0x804035FC; // type:function size:0xAC +BTM_SecReadDevName = .text:0x804036A8; // type:function size:0xA0 +btm_sec_alloc_dev = .text:0x80403748; // type:function size:0x120 +btm_find_dev_by_handle = .text:0x80403868; // type:function size:0xB8 +btm_find_dev = .text:0x80403920; // type:function size:0x88 +btm_find_oldest_dev = .text:0x804039A8; // type:function size:0x198 +btm_dev_init = .text:0x80403B40; // type:function size:0xA0 +btm_db_reset = .text:0x80403BE0; // type:function size:0xB0 +BTM_DeviceReset = .text:0x80403C90; // type:function size:0x9C +BTM_SendHciReset = .text:0x80403D2C; // type:function size:0xA8 +BTM_IsDeviceUp = .text:0x80403DD4; // type:function size:0x1C +BTM_SetAfhChannels = .text:0x80403DF0; // type:function size:0xF0 btm_dev_timeout = .text:0x80403EE0; // type:function size:0x298 fn_80404178 = .text:0x80404178; // type:function size:0x1C4 fn_8040433C = .text:0x8040433C; // type:function size:0xC8 fn_80404404 = .text:0x80404404; // type:function size:0xBC fn_804044C0 = .text:0x804044C0; // type:function size:0x4FC -bte__BTM_SetLocalDeviceName = .text:0x804049BC; // type:function size:0xB8 +BTM_SetLocalDeviceName = .text:0x804049BC; // type:function size:0xB8 fn_80404A74 = .text:0x80404A74; // type:function size:0x8C -bte__BTM_ReadLocalDeviceAddr = .text:0x80404B00; // type:function size:0x40 +BTM_ReadLocalDeviceAddr = .text:0x80404B00; // type:function size:0x40 fn_80404B40 = .text:0x80404B40; // type:function size:0x48 -bte__BTM_ReadLocalVersion = .text:0x80404B88; // type:function size:0x4C -bte__BTM_SetDeviceClass = .text:0x80404BD4; // type:function size:0x80 +BTM_ReadLocalVersion = .text:0x80404B88; // type:function size:0x4C +BTM_SetDeviceClass = .text:0x80404BD4; // type:function size:0x80 BTM_ReadDeviceClass = .text:0x80404C54; // type:function size:0x10 -bte__BTM_ReadLocalFeatures = .text:0x80404C64; // type:function size:0x10 -bte__BTM_RegisterForDeviceStatusNotif = .text:0x80404C74; // type:function size:0x18 -bte__BTM_VendorSpecificCommand = .text:0x80404C8C; // type:function size:0xFC +BTM_ReadLocalFeatures = .text:0x80404C64; // type:function size:0x10 +BTM_RegisterForDeviceStatusNotif = .text:0x80404C74; // type:function size:0x18 +BTM_VendorSpecificCommand = .text:0x80404C8C; // type:function size:0xFC fn_80404D88 = .text:0x80404D88; // type:function size:0x6C -bte__BTM_RegisterForVSEvents = .text:0x80404DF4; // type:function size:0x38 -bte__btm_vendor_specific_evt = .text:0x80404E2C; // type:function size:0x98 -bte__BTM_WritePageTimeout = .text:0x80404EC4; // type:function size:0xA0 -bte__BTM_ReadStoredLinkKey = .text:0x80404F64; // type:function size:0xD8 -bte__BTM_WriteStoredLinkKey = .text:0x8040503C; // type:function size:0xD0 -bte__BTM_DeleteStoredLinkKey = .text:0x8040510C; // type:function size:0xD0 +BTM_RegisterForVSEvents = .text:0x80404DF4; // type:function size:0x38 +btm_vendor_specific_evt = .text:0x80404E2C; // type:function size:0x98 +BTM_WritePageTimeout = .text:0x80404EC4; // type:function size:0xA0 +BTM_ReadStoredLinkKey = .text:0x80404F64; // type:function size:0xD8 +BTM_WriteStoredLinkKey = .text:0x8040503C; // type:function size:0xD0 +BTM_DeleteStoredLinkKey = .text:0x8040510C; // type:function size:0xD0 fn_804051DC = .text:0x804051DC; // type:function size:0x7C fn_80405258 = .text:0x80405258; // type:function size:0x5C fn_804052B4 = .text:0x804052B4; // type:function size:0x68 -bte__btm_return_link_keys_evt = .text:0x8040531C; // type:function size:0x18C +btm_return_link_keys_evt = .text:0x8040531C; // type:function size:0x18C fn_804054A8 = .text:0x804054A8; // type:function size:0x20 -bte__btm_discovery_db_init = .text:0x804054C8; // type:function size:0x78 -bte__btm_discovery_db_reset = .text:0x80405540; // type:function size:0xB8 +btm_discovery_db_init = .text:0x804054C8; // type:function size:0x78 +btm_discovery_db_reset = .text:0x80405540; // type:function size:0xB8 fn_804055F8 = .text:0x804055F8; // type:function size:0x4 -bte__BTM_SetDiscoverability = .text:0x804055FC; // type:function size:0x284 +BTM_SetDiscoverability = .text:0x804055FC; // type:function size:0x284 fn_80405880 = .text:0x80405880; // type:function size:0xB0 fn_80405930 = .text:0x80405930; // type:function size:0xB0 -bte__BTM_SetInquiryMode = .text:0x804059E0; // type:function size:0x98 -bte__BTM_SetConnectability = .text:0x80405A78; // type:function size:0x188 -bte__BTM_IsInquiryActive = .text:0x80405C00; // type:function size:0x10 -bte__BTM_CancelInquiry = .text:0x80405C10; // type:function size:0x108 -bte__BTM_StartInquiry = .text:0x80405D18; // type:function size:0x1B4 -bte__BTM_ReadRemoteDeviceName = .text:0x80405ECC; // type:function size:0xE8 -bte__BTM_CancelRemoteDeviceName = .text:0x80405FB4; // type:function size:0x78 -bte__BTM_InqDbRead = .text:0x8040602C; // type:function size:0xC0 -bte__BTM_InqDbFirst = .text:0x804060EC; // type:function size:0xB8 -bte__BTM_InqDbNext = .text:0x804061A4; // type:function size:0x13C -bte__BTM_ClearInqDb = .text:0x804062E0; // type:function size:0xD0 -bte__btm_inq_db_reset = .text:0x804063B0; // type:function size:0x198 +BTM_SetInquiryMode = .text:0x804059E0; // type:function size:0x98 +BTM_SetConnectability = .text:0x80405A78; // type:function size:0x188 +BTM_IsInquiryActive = .text:0x80405C00; // type:function size:0x10 +BTM_CancelInquiry = .text:0x80405C10; // type:function size:0x108 +BTM_StartInquiry = .text:0x80405D18; // type:function size:0x1B4 +BTM_ReadRemoteDeviceName = .text:0x80405ECC; // type:function size:0xE8 +BTM_CancelRemoteDeviceName = .text:0x80405FB4; // type:function size:0x78 +BTM_InqDbRead = .text:0x8040602C; // type:function size:0xC0 +BTM_InqDbFirst = .text:0x804060EC; // type:function size:0xB8 +BTM_InqDbNext = .text:0x804061A4; // type:function size:0x13C +BTM_ClearInqDb = .text:0x804062E0; // type:function size:0xD0 +btm_inq_db_reset = .text:0x804063B0; // type:function size:0x198 fn_80406548 = .text:0x80406548; // type:function size:0x4 -bte__btm_inq_find_bdaddr = .text:0x8040654C; // type:function size:0xDC -bte__btm_inq_db_new = .text:0x80406628; // type:function size:0x104 -bte__btm_set_inq_event_filter = .text:0x8040672C; // type:function size:0xE4 +btm_inq_find_bdaddr = .text:0x8040654C; // type:function size:0xDC +btm_inq_db_new = .text:0x80406628; // type:function size:0x104 +btm_set_inq_event_filter = .text:0x8040672C; // type:function size:0xE4 fn_80406810 = .text:0x80406810; // type:function size:0x220 -bte__btm_process_inq_results = .text:0x80406A30; // type:function size:0x278 +btm_process_inq_results = .text:0x80406A30; // type:function size:0x278 fn_80406CA8 = .text:0x80406CA8; // type:function size:0x104 -bte__btm_initiate_rem_name = .text:0x80406DAC; // type:function size:0x150 -bte__btm_process_remote_name = .text:0x80406EFC; // type:function size:0x158 -bte__btm_inq_rmt_name_failed = .text:0x80407054; // type:function size:0x40 -bte__btm_init = .text:0x80407094; // type:function size:0x5C -bte__BTM_PmRegister = .text:0x804070F0; // type:function size:0xBC -bte__BTM_SetPowerMode = .text:0x804071AC; // type:function size:0x1D0 -bte__BTM_ReadPowerMode = .text:0x8040737C; // type:function size:0xB8 +btm_initiate_rem_name = .text:0x80406DAC; // type:function size:0x150 +btm_process_remote_name = .text:0x80406EFC; // type:function size:0x158 +btm_inq_rmt_name_failed = .text:0x80407054; // type:function size:0x40 +btm_init = .text:0x80407094; // type:function size:0x5C +BTM_PmRegister = .text:0x804070F0; // type:function size:0xBC +BTM_SetPowerMode = .text:0x804071AC; // type:function size:0x1D0 +BTM_ReadPowerMode = .text:0x8040737C; // type:function size:0xB8 fn_80407434 = .text:0x80407434; // type:function size:0x78 -bte__btm_pm_sm_alloc = .text:0x804074AC; // type:function size:0x50 -bte__btm_pm_compare_modes = .text:0x804074FC; // type:function size:0x21C -bte__btm_pm_get_set_mode = .text:0x80407718; // type:function size:0x160 -bte__btm_pm_snd_md_req = .text:0x80407878; // type:function size:0x234 -bte__btm_pm_proc_cmd_status = .text:0x80407AAC; // type:function size:0xB0 -bte__btm_pm_proc_mode_change = .text:0x80407B5C; // type:function size:0x228 -bte__btm_sco_init = .text:0x80407D84; // type:function size:0x44 -bte__btm_esco_conn_rsp = .text:0x80407DC8; // type:function size:0x1DC -bte__btm_sco_chk_pend_unpark = .text:0x80407FA4; // type:function size:0x18C -bte__btm_sco_conn_req = .text:0x80408130; // type:function size:0x1E0 -bte__btm_sco_connected = .text:0x80408310; // type:function size:0x1A0 -bte__BTM_RemoveSco = .text:0x804084B0; // type:function size:0xB8 -bte__btm_remove_sco_links = .text:0x80408568; // type:function size:0x84 -bte__btm_sco_removed = .text:0x804085EC; // type:function size:0x114 -bte__btm_sco_acl_removed = .text:0x80408700; // type:function size:0xB4 -bte__GKI_freebuf2 = .text:0x804087B4; // type:function size:0x4 -bte__BTM_ChangeEScoLinkParms = .text:0x804087B8; // type:function size:0x1A8 -bte__btm_esco_proc_conn_chg = .text:0x80408960; // type:function size:0x104 -bte__btm_is_sco_active = .text:0x80408A64; // type:function size:0x70 -bte__btm_num_sco_links_active = .text:0x80408AD4; // type:function size:0x60 -bte__btm_is_sco_active_by_bdaddr = .text:0x80408B34; // type:function size:0x88 -bte__BTM_SecRegister = .text:0x80408BBC; // type:function size:0x78 -bte__BTM_SecAddRmtNameNotifyCallback = .text:0x80408C34; // type:function size:0x50 -bte__BTM_SecDeleteRmtNameNotifyCallback = .text:0x80408C84; // type:function size:0x54 -bte__BTM_SetPinType = .text:0x80408CD8; // type:function size:0xB0 -bte__BTM_SetSecurityLevel = .text:0x80408D88; // type:function size:0x228 -bte__BTM_PINCodeReply = .text:0x80408FB0; // type:function size:0xC4 -bte__BTM_DeviceAuthorized = .text:0x80409074; // type:function size:0x1DC -bte__BTM_SecBond = .text:0x80409250; // type:function size:0x3CC +btm_pm_sm_alloc = .text:0x804074AC; // type:function size:0x50 +btm_pm_compare_modes = .text:0x804074FC; // type:function size:0x21C +btm_pm_get_set_mode = .text:0x80407718; // type:function size:0x160 +btm_pm_snd_md_req = .text:0x80407878; // type:function size:0x234 +btm_pm_proc_cmd_status = .text:0x80407AAC; // type:function size:0xB0 +btm_pm_proc_mode_change = .text:0x80407B5C; // type:function size:0x228 +btm_sco_init = .text:0x80407D84; // type:function size:0x44 +btm_esco_conn_rsp = .text:0x80407DC8; // type:function size:0x1DC +btm_sco_chk_pend_unpark = .text:0x80407FA4; // type:function size:0x18C +btm_sco_conn_req = .text:0x80408130; // type:function size:0x1E0 +btm_sco_connected = .text:0x80408310; // type:function size:0x1A0 +BTM_RemoveSco = .text:0x804084B0; // type:function size:0xB8 +btm_remove_sco_links = .text:0x80408568; // type:function size:0x84 +btm_sco_removed = .text:0x804085EC; // type:function size:0x114 +btm_sco_acl_removed = .text:0x80408700; // type:function size:0xB4 +GKI_freebuf2 = .text:0x804087B4; // type:function size:0x4 +BTM_ChangeEScoLinkParms = .text:0x804087B8; // type:function size:0x1A8 +btm_esco_proc_conn_chg = .text:0x80408960; // type:function size:0x104 +btm_is_sco_active = .text:0x80408A64; // type:function size:0x70 +btm_num_sco_links_active = .text:0x80408AD4; // type:function size:0x60 +btm_is_sco_active_by_bdaddr = .text:0x80408B34; // type:function size:0x88 +BTM_SecRegister = .text:0x80408BBC; // type:function size:0x78 +BTM_SecAddRmtNameNotifyCallback = .text:0x80408C34; // type:function size:0x50 +BTM_SecDeleteRmtNameNotifyCallback = .text:0x80408C84; // type:function size:0x54 +BTM_SetPinType = .text:0x80408CD8; // type:function size:0xB0 +BTM_SetSecurityLevel = .text:0x80408D88; // type:function size:0x228 +BTM_PINCodeReply = .text:0x80408FB0; // type:function size:0xC4 +BTM_DeviceAuthorized = .text:0x80409074; // type:function size:0x1DC +BTM_SecBond = .text:0x80409250; // type:function size:0x3CC fn_8040961C = .text:0x8040961C; // type:function size:0x464 -bte__btm_sec_mx_access_request = .text:0x80409A80; // type:function size:0x29C -bte__btm_sec_conn_req = .text:0x80409D1C; // type:function size:0x12C -bte__btm_sec_init = .text:0x80409E48; // type:function size:0x1C -bte__btm_sec_dev_reset = .text:0x80409E64; // type:function size:0x40 -bte__btm_sec_abort_access_req = .text:0x80409EA4; // type:function size:0xB4 +btm_sec_mx_access_request = .text:0x80409A80; // type:function size:0x29C +btm_sec_conn_req = .text:0x80409D1C; // type:function size:0x12C +btm_sec_init = .text:0x80409E48; // type:function size:0x1C +btm_sec_dev_reset = .text:0x80409E64; // type:function size:0x40 +btm_sec_abort_access_req = .text:0x80409EA4; // type:function size:0xB4 fn_80409F58 = .text:0x80409F58; // type:function size:0x2E8 fn_8040A240 = .text:0x8040A240; // type:function size:0x344 -bte__btm_sec_mkey_comp_event = .text:0x8040A584; // type:function size:0xFC -bte__btm_sec_encrypt_change = .text:0x8040A680; // type:function size:0x13C -bte__btm_sec_is_bonding = .text:0x8040A7BC; // type:function size:0x40 -bte__btm_sec_connected = .text:0x8040A7FC; // type:function size:0x480 -bte__btm_sec_disconnect = .text:0x8040AC7C; // type:function size:0xBC -bte__btm_sec_disconnected = .text:0x8040AD38; // type:function size:0x13C -bte__btm_sec_link_key_notification = .text:0x8040AE74; // type:function size:0x1AC -bte__btm_sec_link_key_request = .text:0x8040B020; // type:function size:0x130 -bte__btm_sec_pin_code_request_timeout = .text:0x8040B150; // type:function size:0x74 -bte__btm_sec_pin_code_request = .text:0x8040B1C4; // type:function size:0x35C -bte__btm_sec_update_clock_offset = .text:0x8040B520; // type:function size:0x50 -bte__btm_sec_execute_procedure = .text:0x8040B570; // type:function size:0x3E0 -bte__btm_sec_start_authorization = .text:0x8040B950; // type:function size:0x11C -bte__btm_sec_collision_timeout = .text:0x8040BA6C; // type:function size:0xE0 -bte__btm_read_trusted_mask = .text:0x8040BB4C; // type:function size:0x34 -bte__btu_hcif_process_event = .text:0x8040BB80; // type:function size:0x5B8 -bte__btu_hcif_send_cmd = .text:0x8040C138; // type:function size:0x18C -bte__btu_hcif_connection_comp_evt = .text:0x8040C2C4; // type:function size:0xDC -bte__btu_hcif_connection_request_evt = .text:0x8040C3A0; // type:function size:0x8C -bte__btu_hcif_qos_setup_comp_evt = .text:0x8040C42C; // type:function size:0x100 -bte__btu_hcif_esco_connection_comp_evt = .text:0x8040C52C; // type:function size:0xE0 +btm_sec_mkey_comp_event = .text:0x8040A584; // type:function size:0xFC +btm_sec_encrypt_change = .text:0x8040A680; // type:function size:0x13C +btm_sec_is_bonding = .text:0x8040A7BC; // type:function size:0x40 +btm_sec_connected = .text:0x8040A7FC; // type:function size:0x480 +btm_sec_disconnect = .text:0x8040AC7C; // type:function size:0xBC +btm_sec_disconnected = .text:0x8040AD38; // type:function size:0x13C +btm_sec_link_key_notification = .text:0x8040AE74; // type:function size:0x1AC +btm_sec_link_key_request = .text:0x8040B020; // type:function size:0x130 +btm_sec_pin_code_request_timeout = .text:0x8040B150; // type:function size:0x74 +btm_sec_pin_code_request = .text:0x8040B1C4; // type:function size:0x35C +btm_sec_update_clock_offset = .text:0x8040B520; // type:function size:0x50 +btm_sec_execute_procedure = .text:0x8040B570; // type:function size:0x3E0 +btm_sec_start_authorization = .text:0x8040B950; // type:function size:0x11C +btm_sec_collision_timeout = .text:0x8040BA6C; // type:function size:0xE0 +btm_read_trusted_mask = .text:0x8040BB4C; // type:function size:0x34 +btu_hcif_process_event = .text:0x8040BB80; // type:function size:0x5B8 +btu_hcif_send_cmd = .text:0x8040C138; // type:function size:0x18C +btu_hcif_connection_comp_evt = .text:0x8040C2C4; // type:function size:0xDC +btu_hcif_connection_request_evt = .text:0x8040C3A0; // type:function size:0x8C +btu_hcif_qos_setup_comp_evt = .text:0x8040C42C; // type:function size:0x100 +btu_hcif_esco_connection_comp_evt = .text:0x8040C52C; // type:function size:0xE0 fn_8040C60C = .text:0x8040C60C; // type:function size:0x158 -bte__btu_hcif_command_complete_evt = .text:0x8040C764; // type:function size:0x118 -bte__btu_hcif_hdl_command_status = .text:0x8040C87C; // type:function size:0x200 -bte__btu_hcif_command_status_evt = .text:0x8040CA7C; // type:function size:0x128 -bte__btu_hcif_cmd_timeout = .text:0x8040CBA4; // type:function size:0x158 -bte__btu_hcif_link_key_notification_evt = .text:0x8040CCFC; // type:function size:0xE0 -bte__btu_init_core = .text:0x8040CDDC; // type:function size:0x2C -bte__BTE_Init = .text:0x8040CE08; // type:function size:0x4C -bte__WBT_ExtCreateRecord = .text:0x8040CE54; // type:function size:0xE0 -bte__GAP_Init = .text:0x8040CF34; // type:function size:0x60 -bte__gap_conn_init = .text:0x8040CF94; // type:function size:0x70 -bte__gap_connect_ind = .text:0x8040D004; // type:function size:0x18C -bte__gap_connect_cfm = .text:0x8040D190; // type:function size:0x1DC -bte__gap_config_ind = .text:0x8040D36C; // type:function size:0x13C -bte__gap_config_cfm = .text:0x8040D4A8; // type:function size:0x1EC -bte__gap_disconnect_ind = .text:0x8040D694; // type:function size:0x1F8 -bte__gap_data_ind = .text:0x8040D88C; // type:function size:0x110 -bte__gap_congestion_ind = .text:0x8040D99C; // type:function size:0x134 -bte__btm_cback = .text:0x8040DAD0; // type:function size:0x1D8 +btu_hcif_command_complete_evt = .text:0x8040C764; // type:function size:0x118 +btu_hcif_hdl_command_status = .text:0x8040C87C; // type:function size:0x200 +btu_hcif_command_status_evt = .text:0x8040CA7C; // type:function size:0x128 +btu_hcif_cmd_timeout = .text:0x8040CBA4; // type:function size:0x158 +btu_hcif_link_key_notification_evt = .text:0x8040CCFC; // type:function size:0xE0 +btu_init_core = .text:0x8040CDDC; // type:function size:0x2C +BTE_Init = .text:0x8040CE08; // type:function size:0x4C +WBT_ExtCreateRecord = .text:0x8040CE54; // type:function size:0xE0 +GAP_Init = .text:0x8040CF34; // type:function size:0x60 +gap_conn_init = .text:0x8040CF94; // type:function size:0x70 +gap_connect_ind = .text:0x8040D004; // type:function size:0x18C +gap_connect_cfm = .text:0x8040D190; // type:function size:0x1DC +gap_config_ind = .text:0x8040D36C; // type:function size:0x13C +gap_config_cfm = .text:0x8040D4A8; // type:function size:0x1EC +gap_disconnect_ind = .text:0x8040D694; // type:function size:0x1F8 +gap_data_ind = .text:0x8040D88C; // type:function size:0x110 +gap_congestion_ind = .text:0x8040D99C; // type:function size:0x134 +btm_cback = .text:0x8040DAD0; // type:function size:0x1D8 gap_btm_cback0 = .text:0x8040DCA8; // type:function size:0xC gap_btm_cback1 = .text:0x8040DCB4; // type:function size:0xC -bte__gap_find_addr_name_cb = .text:0x8040DCC0; // type:function size:0x218 -bte__gap_find_addr_inq_cb = .text:0x8040DED8; // type:function size:0x1B4 +gap_find_addr_name_cb = .text:0x8040DCC0; // type:function size:0x218 +gap_find_addr_inq_cb = .text:0x8040DED8; // type:function size:0x1B4 gap_convert_btm_status = .text:0x8040E08C; // type:function size:0x60 -bte__btsnd_hcic_inquiry = .text:0x8040E0EC; // type:function size:0xA8 +btsnd_hcic_inquiry = .text:0x8040E0EC; // type:function size:0xA8 btsnd_hcic_inq_cancel = .text:0x8040E194; // type:function size:0x60 -bte__btsnd_hcic_per_inq_mode = .text:0x8040E1F4; // type:function size:0xC0 -bte__btsnd_hcic_create_conn = .text:0x8040E2B4; // type:function size:0xE0 -bte__btsnd_hcic_disconnect = .text:0x8040E394; // type:function size:0x88 -bte__btsnd_hcic_add_SCO_conn = .text:0x8040E41C; // type:function size:0x8C -bte__btsnd_hcic_accept_conn = .text:0x8040E4A8; // type:function size:0x60 -bte__btsnd_hcic_reject_conn = .text:0x8040E508; // type:function size:0x5C -bte__btsnd_hcic_link_key_req_reply = .text:0x8040E564; // type:function size:0x1A0 +btsnd_hcic_per_inq_mode = .text:0x8040E1F4; // type:function size:0xC0 +btsnd_hcic_create_conn = .text:0x8040E2B4; // type:function size:0xE0 +btsnd_hcic_disconnect = .text:0x8040E394; // type:function size:0x88 +btsnd_hcic_add_SCO_conn = .text:0x8040E41C; // type:function size:0x8C +btsnd_hcic_accept_conn = .text:0x8040E4A8; // type:function size:0x60 +btsnd_hcic_reject_conn = .text:0x8040E508; // type:function size:0x5C +btsnd_hcic_link_key_req_reply = .text:0x8040E564; // type:function size:0x1A0 btsnd_hcic_link_key_neg_reply = .text:0x8040E704; // type:function size:0xA0 -bte__btsnd_hcic_pin_code_req_reply = .text:0x8040E7A4; // type:function size:0x1E4 +btsnd_hcic_pin_code_req_reply = .text:0x8040E7A4; // type:function size:0x1E4 btsnd_hcic_pin_code_neg_reply = .text:0x8040E988; // type:function size:0xA0 -bte__btsnd_hcic_change_conn_type = .text:0x8040EA28; // type:function size:0x90 +btsnd_hcic_change_conn_type = .text:0x8040EA28; // type:function size:0x90 btsnd_hcic_auth_request = .text:0x8040EAB8; // type:function size:0x7C -bte__btsnd_hcic_set_conn_encrypt = .text:0x8040EB34; // type:function size:0x8C -bte__btsnd_hcic_rmt_name_req = .text:0x8040EBC0; // type:function size:0xD8 +btsnd_hcic_set_conn_encrypt = .text:0x8040EB34; // type:function size:0x8C +btsnd_hcic_rmt_name_req = .text:0x8040EBC0; // type:function size:0xD8 btsnd_hcic_rmt_name_req_cancel = .text:0x8040EC98; // type:function size:0xA0 btsnd_hcic_rmt_features_req = .text:0x8040ED38; // type:function size:0x7C btsnd_hcic_rmt_ver_req = .text:0x8040EDB4; // type:function size:0x7C btsnd_hcic_read_rmt_clk_offset = .text:0x8040EE30; // type:function size:0x7C -bte__btsnd_hcic_setup_esco_conn = .text:0x8040EEAC; // type:function size:0xFC -bte__btsnd_hcic_accept_esco_conn = .text:0x8040EFA8; // type:function size:0xE8 -bte__btsnd_hcic_reject_esco_conn = .text:0x8040F090; // type:function size:0x60 +btsnd_hcic_setup_esco_conn = .text:0x8040EEAC; // type:function size:0xFC +btsnd_hcic_accept_esco_conn = .text:0x8040EFA8; // type:function size:0xE8 +btsnd_hcic_reject_esco_conn = .text:0x8040F090; // type:function size:0x60 btsnd_hcic_hold_mode = .text:0x8040F0F0; // type:function size:0xB4 -bte__btsnd_hcic_sniff_mode = .text:0x8040F1A4; // type:function size:0xCC +btsnd_hcic_sniff_mode = .text:0x8040F1A4; // type:function size:0xCC btsnd_hcic_exit_sniff_mode = .text:0x8040F270; // type:function size:0x84 btsnd_hcic_park_mode = .text:0x8040F2F4; // type:function size:0xB4 btsnd_hcic_exit_park_mode = .text:0x8040F3A8; // type:function size:0x84 btsnd_hcic_switch_role = .text:0x8040F42C; // type:function size:0xB0 btsnd_hcic_write_policy_set = .text:0x8040F4DC; // type:function size:0x94 btsnd_hcic_reset = .text:0x8040F570; // type:function size:0x5C -bte__btsnd_hcic_set_event_filter = .text:0x8040F5CC; // type:function size:0x1BC -bte__btsnd_hcic_write_pin_type = .text:0x8040F788; // type:function size:0x74 -bte__btsnd_hcic_read_stored_key = .text:0x8040F7FC; // type:function size:0x60 -bte__btsnd_hcic_write_stored_key = .text:0x8040F85C; // type:function size:0x1C0 +btsnd_hcic_set_event_filter = .text:0x8040F5CC; // type:function size:0x1BC +btsnd_hcic_write_pin_type = .text:0x8040F788; // type:function size:0x74 +btsnd_hcic_read_stored_key = .text:0x8040F7FC; // type:function size:0x60 +btsnd_hcic_write_stored_key = .text:0x8040F85C; // type:function size:0x1C0 btsnd_hcic_delete_stored_key = .text:0x8040FA1C; // type:function size:0xB0 -bte__btsnd_hcic_change_name = .text:0x8040FACC; // type:function size:0x140 -bte__btsnd_hcic_write_page_tout = .text:0x8040FC0C; // type:function size:0x38 -bte__btsnd_hcic_write_scan_enable = .text:0x8040FC44; // type:function size:0x30 -bte__btsnd_hcic_write_pagescan_cfg = .text:0x8040FC74; // type:function size:0x44 -bte__btsnd_hcic_write_inqscan_cfg = .text:0x8040FCB8; // type:function size:0x44 -bte__btsnd_hcic_write_auth_enable = .text:0x8040FCFC; // type:function size:0x74 +btsnd_hcic_change_name = .text:0x8040FACC; // type:function size:0x140 +btsnd_hcic_write_page_tout = .text:0x8040FC0C; // type:function size:0x38 +btsnd_hcic_write_scan_enable = .text:0x8040FC44; // type:function size:0x30 +btsnd_hcic_write_pagescan_cfg = .text:0x8040FC74; // type:function size:0x44 +btsnd_hcic_write_inqscan_cfg = .text:0x8040FCB8; // type:function size:0x44 +btsnd_hcic_write_auth_enable = .text:0x8040FCFC; // type:function size:0x74 btsnd_hcic_write_encr_mode = .text:0x8040FD70; // type:function size:0x74 -bte__btsnd_hcic_write_dev_class = .text:0x8040FDE4; // type:function size:0x44 -bte__btsnd_hcic_write_auto_flush_tout = .text:0x8040FE28; // type:function size:0x44 -bte__btsnd_hcic_set_host_buf_size = .text:0x8040FE6C; // type:function size:0xBC +btsnd_hcic_write_dev_class = .text:0x8040FDE4; // type:function size:0x44 +btsnd_hcic_write_auto_flush_tout = .text:0x8040FE28; // type:function size:0x44 +btsnd_hcic_set_host_buf_size = .text:0x8040FE6C; // type:function size:0xBC btsnd_hcic_write_link_super_tout = .text:0x8040FF28; // type:function size:0x94 -bte__btsnd_hcic_write_cur_iac_lap = .text:0x8040FFBC; // type:function size:0x70 +btsnd_hcic_write_cur_iac_lap = .text:0x8040FFBC; // type:function size:0x70 btsnd_hcic_read_local_ver = .text:0x8041002C; // type:function size:0x60 fn_8041008C = .text:0x8041008C; // type:function size:0x5C -bte__btsnd_hcic_read_buffer_size = .text:0x804100E8; // type:function size:0x28 +btsnd_hcic_read_buffer_size = .text:0x804100E8; // type:function size:0x28 btsnd_hcic_read_bd_addr = .text:0x80410110; // type:function size:0x60 btsnd_hcic_get_link_quality = .text:0x80410170; // type:function size:0x7C -bte__btsnd_hcic_read_rssi = .text:0x804101EC; // type:function size:0x78 +btsnd_hcic_read_rssi = .text:0x804101EC; // type:function size:0x78 fn_80410264 = .text:0x80410264; // type:function size:0x420 -bte__btsnd_hcic_write_inqscan_type = .text:0x80410684; // type:function size:0x30 -bte__btsnd_hcic_write_inquiry_mode = .text:0x804106B4; // type:function size:0x30 -bte__btsnd_hcic_write_pagescan_type = .text:0x804106E4; // type:function size:0x30 -bte__btsnd_hcic_vendor_spec_cmd = .text:0x80410714; // type:function size:0xF4 -bte__HID_DevInit = .text:0x80410808; // type:function size:0x68 +btsnd_hcic_write_inqscan_type = .text:0x80410684; // type:function size:0x30 +btsnd_hcic_write_inquiry_mode = .text:0x804106B4; // type:function size:0x30 +btsnd_hcic_write_pagescan_type = .text:0x804106E4; // type:function size:0x30 +btsnd_hcic_vendor_spec_cmd = .text:0x80410714; // type:function size:0xF4 +HID_DevInit = .text:0x80410808; // type:function size:0x68 fn_80410870 = .text:0x80410870; // type:function size:0xC0 -bte__hidd_proc_repage_timeout = .text:0x80410930; // type:function size:0xC8 -bte__hidd_pm_set_now = .text:0x804109F8; // type:function size:0x1D8 -bte__hidd_pm_proc_mode_change = .text:0x80410BD0; // type:function size:0x158 -bte__hidd_pm_inact_timeout = .text:0x80410D28; // type:function size:0x4C -bte__HID_HostGetSDPRecord = .text:0x80410D74; // type:function size:0xC8 +hidd_proc_repage_timeout = .text:0x80410930; // type:function size:0xC8 +hidd_pm_set_now = .text:0x804109F8; // type:function size:0x1D8 +hidd_pm_proc_mode_change = .text:0x80410BD0; // type:function size:0x158 +hidd_pm_inact_timeout = .text:0x80410D28; // type:function size:0x4C +HID_HostGetSDPRecord = .text:0x80410D74; // type:function size:0xC8 fn_80410E3C = .text:0x80410E3C; // type:function size:0x450 fn_8041128C = .text:0x8041128C; // type:function size:0x44 -bte__HID_HostRegister = .text:0x804112D0; // type:function size:0x7C -bte__HID_HostDeregister = .text:0x8041134C; // type:function size:0xE4 -bte__HID_HostAddDev = .text:0x80411430; // type:function size:0x190 -bte__HID_HostRemoveDev = .text:0x804115C0; // type:function size:0xC8 +HID_HostRegister = .text:0x804112D0; // type:function size:0x7C +HID_HostDeregister = .text:0x8041134C; // type:function size:0xE4 +HID_HostAddDev = .text:0x80411430; // type:function size:0x190 +HID_HostRemoveDev = .text:0x804115C0; // type:function size:0xC8 HID_HostOpenDev = .text:0x80411688; // type:function size:0x64 -bte__HID_HostWriteDev = .text:0x804116EC; // type:function size:0x140 -bte__HID_HostCloseDev = .text:0x8041182C; // type:function size:0xA0 -bte__HID_HostSetSecurityLevel = .text:0x804118CC; // type:function size:0x228 -bte__hidh_conn_reg = .text:0x80411AF4; // type:function size:0x158 -bte__hidh_conn_disconnect = .text:0x80411C4C; // type:function size:0xA4 -bte__hidh_sec_check_complete_term = .text:0x80411CF0; // type:function size:0x130 -bte__hidh_l2cif_connect_ind = .text:0x80411E20; // type:function size:0x258 -bte__hidh_proc_repage_timeout = .text:0x80412078; // type:function size:0x14C -bte__hidh_sec_check_complete_orig = .text:0x804121C4; // type:function size:0x214 -bte__hidh_l2cif_connect_cfm = .text:0x804123D8; // type:function size:0x348 -bte__hidh_l2cif_config_ind = .text:0x80412720; // type:function size:0x2A8 -bte__hidh_l2cif_config_cfm = .text:0x804129C8; // type:function size:0x30C -bte__hidh_l2cif_disconnect_ind = .text:0x80412CD4; // type:function size:0x2C4 -bte__hidh_l2cif_disconnect_cfm = .text:0x80412F98; // type:function size:0x248 -bte__hidh_l2cif_cong_ind = .text:0x804131E0; // type:function size:0x1F8 -bte__hidh_l2cif_data_ind = .text:0x804133D8; // type:function size:0x398 -bte__hidh_conn_snd_data = .text:0x80413770; // type:function size:0x29C +HID_HostWriteDev = .text:0x804116EC; // type:function size:0x140 +HID_HostCloseDev = .text:0x8041182C; // type:function size:0xA0 +HID_HostSetSecurityLevel = .text:0x804118CC; // type:function size:0x228 +hidh_conn_reg = .text:0x80411AF4; // type:function size:0x158 +hidh_conn_disconnect = .text:0x80411C4C; // type:function size:0xA4 +hidh_sec_check_complete_term = .text:0x80411CF0; // type:function size:0x130 +hidh_l2cif_connect_ind = .text:0x80411E20; // type:function size:0x258 +hidh_proc_repage_timeout = .text:0x80412078; // type:function size:0x14C +hidh_sec_check_complete_orig = .text:0x804121C4; // type:function size:0x214 +hidh_l2cif_connect_cfm = .text:0x804123D8; // type:function size:0x348 +hidh_l2cif_config_ind = .text:0x80412720; // type:function size:0x2A8 +hidh_l2cif_config_cfm = .text:0x804129C8; // type:function size:0x30C +hidh_l2cif_disconnect_ind = .text:0x80412CD4; // type:function size:0x2C4 +hidh_l2cif_disconnect_cfm = .text:0x80412F98; // type:function size:0x248 +hidh_l2cif_cong_ind = .text:0x804131E0; // type:function size:0x1F8 +hidh_l2cif_data_ind = .text:0x804133D8; // type:function size:0x398 +hidh_conn_snd_data = .text:0x80413770; // type:function size:0x29C fn_80413A0C = .text:0x80413A0C; // type:function size:0xFC -bte__hidh_conn_dereg = .text:0x80413B08; // type:function size:0x2C +hidh_conn_dereg = .text:0x80413B08; // type:function size:0x2C fn_80413B34 = .text:0x80413B34; // type:function size:0x19C -bte__L2CA_Deregister = .text:0x80413CD0; // type:function size:0x90 -bte__L2CA_ConnectReq = .text:0x80413D60; // type:function size:0x234 -bte__L2CA_ConnectRsp = .text:0x80413F94; // type:function size:0x190 -bte__L2CA_ConfigReq = .text:0x80414124; // type:function size:0xB8 -bte__L2CA_ConfigRsp = .text:0x804141DC; // type:function size:0xD0 +L2CA_Deregister = .text:0x80413CD0; // type:function size:0x90 +L2CA_ConnectReq = .text:0x80413D60; // type:function size:0x234 +L2CA_ConnectRsp = .text:0x80413F94; // type:function size:0x190 +L2CA_ConfigReq = .text:0x80414124; // type:function size:0xB8 +L2CA_ConfigRsp = .text:0x804141DC; // type:function size:0xD0 L2CA_DisconnectReq = .text:0x804142AC; // type:function size:0xA4 L2CA_DisconnectRsp = .text:0x80414350; // type:function size:0xA4 -bte__L2CA_DataWrite = .text:0x804143F4; // type:function size:0x124 -bte__L2CA_SetIdleTimeout = .text:0x80414518; // type:function size:0xC8 -bte__L2CA_SetIdleTimeoutByBdAddr = .text:0x804145E0; // type:function size:0x100 -bte__L2CA_SetTraceLevel = .text:0x804146E0; // type:function size:0x1C +L2CA_DataWrite = .text:0x804143F4; // type:function size:0x124 +L2CA_SetIdleTimeout = .text:0x80414518; // type:function size:0xC8 +L2CA_SetIdleTimeoutByBdAddr = .text:0x804145E0; // type:function size:0x100 +L2CA_SetTraceLevel = .text:0x804146E0; // type:function size:0x1C L2CA_RegisterCompression = .text:0x804146FC; // type:function size:0x4 -bte__l2c_csm_execute = .text:0x80414700; // type:function size:0x4C +l2c_csm_execute = .text:0x80414700; // type:function size:0x4C fn_8041474C = .text:0x8041474C; // type:function size:0x294 fn_804149E0 = .text:0x804149E0; // type:function size:0x170 fn_80414B50 = .text:0x80414B50; // type:function size:0x168 @@ -23625,99 +23625,99 @@ fn_804150D4 = .text:0x804150D4; // type:function size:0x3C8 fn_8041549C = .text:0x8041549C; // type:function size:0x25C fn_804156F8 = .text:0x804156F8; // type:function size:0x1E4 fn_804158DC = .text:0x804158DC; // type:function size:0x15C -bte__forward_peer_data = .text:0x80415A38; // type:function size:0x1A4 -bte__l2c_link_hci_conn_req = .text:0x80415BDC; // type:function size:0x154 -bte__l2c_link_hci_conn_comp = .text:0x80415D30; // type:function size:0x238 -bte__l2c_link_sec_comp = .text:0x80415F68; // type:function size:0xB4 -bte__l2c_link_hci_disc_comp = .text:0x8041601C; // type:function size:0xBC -bte__l2c_link_hci_qos_violation = .text:0x804160D8; // type:function size:0x70 +forward_peer_data = .text:0x80415A38; // type:function size:0x1A4 +l2c_link_hci_conn_req = .text:0x80415BDC; // type:function size:0x154 +l2c_link_hci_conn_comp = .text:0x80415D30; // type:function size:0x238 +l2c_link_sec_comp = .text:0x80415F68; // type:function size:0xB4 +l2c_link_hci_disc_comp = .text:0x8041601C; // type:function size:0xBC +l2c_link_hci_qos_violation = .text:0x804160D8; // type:function size:0x70 l2c_link_timeout = .text:0x80416148; // type:function size:0x174 -bte__l2c_link_send_to_lower = .text:0x804162BC; // type:function size:0x108 -bte__l2c_link_check_send_pkts = .text:0x804163C4; // type:function size:0x2CC -bte__l2c_link_adjust_allocation = .text:0x80416690; // type:function size:0x198 -bte__l2c_link_process_num_completed_pkts = .text:0x80416828; // type:function size:0xE4 -bte__l2c_link_processs_num_bufs = .text:0x8041690C; // type:function size:0x14 -bte__l2cap_link_chk_pkt_start = .text:0x80416920; // type:function size:0x1D0 -bte__l2cap_link_chk_pkt_end = .text:0x80416AF0; // type:function size:0x6C -bte__l2c_link_role_changed = .text:0x80416B5C; // type:function size:0x80 -bte__l2c_link_role_change_failed = .text:0x80416BDC; // type:function size:0x6C -bte__l2c_link_segments_xmitted = .text:0x80416C48; // type:function size:0xDC -bte__l2c_pin_code_request = .text:0x80416D24; // type:function size:0x44 -bte__l2c_init = .text:0x80416D68; // type:function size:0x114 -bte__l2c_rcv_acl_data = .text:0x80416E7C; // type:function size:0x330 -bte__process_l2cap_cmd = .text:0x804171AC; // type:function size:0xA70 +l2c_link_send_to_lower = .text:0x804162BC; // type:function size:0x108 +l2c_link_check_send_pkts = .text:0x804163C4; // type:function size:0x2CC +l2c_link_adjust_allocation = .text:0x80416690; // type:function size:0x198 +l2c_link_process_num_completed_pkts = .text:0x80416828; // type:function size:0xE4 +l2c_link_processs_num_bufs = .text:0x8041690C; // type:function size:0x14 +l2cap_link_chk_pkt_start = .text:0x80416920; // type:function size:0x1D0 +l2cap_link_chk_pkt_end = .text:0x80416AF0; // type:function size:0x6C +l2c_link_role_changed = .text:0x80416B5C; // type:function size:0x80 +l2c_link_role_change_failed = .text:0x80416BDC; // type:function size:0x6C +l2c_link_segments_xmitted = .text:0x80416C48; // type:function size:0xDC +l2c_pin_code_request = .text:0x80416D24; // type:function size:0x44 +l2c_init = .text:0x80416D68; // type:function size:0x114 +l2c_rcv_acl_data = .text:0x80416E7C; // type:function size:0x330 +process_l2cap_cmd = .text:0x804171AC; // type:function size:0xA70 l2c_process_timeout = .text:0x80417C1C; // type:function size:0x50 -bte__l2c_process_held_packets = .text:0x80417C6C; // type:function size:0x12C -bte__l2cu_allocate_lcb = .text:0x80417D98; // type:function size:0xD4 -bte__l2cu_release_lcb = .text:0x80417E6C; // type:function size:0x100 -bte__l2cu_find_lcb_by_bd_addr = .text:0x80417F6C; // type:function size:0x88 -bte__l2cu_find_lcb_by_handle = .text:0x80417FF4; // type:function size:0x90 -bte__l2cu_get_conn_role = .text:0x80418084; // type:function size:0x10 -bte__l2cu_build_header = .text:0x80418094; // type:function size:0xC4 -bte__l2cu_send_peer_cmd_reject = .text:0x80418158; // type:function size:0xFC -bte__l2cu_send_peer_connect_req = .text:0x80418254; // type:function size:0xC4 -bte__l2cu_send_peer_connect_rsp = .text:0x80418318; // type:function size:0xD8 -bte__l2cu_reject_connection = .text:0x804183F0; // type:function size:0xC0 -bte__l2cu_send_peer_config_req = .text:0x804184B0; // type:function size:0x2F8 -bte__l2cu_send_peer_config_rsp = .text:0x804187A8; // type:function size:0x2F8 -bte__l2cu_send_peer_config_rej = .text:0x80418AA0; // type:function size:0x1B4 -bte__l2cu_send_peer_disc_req = .text:0x80418C54; // type:function size:0xD4 -bte__l2cu_send_peer_disc_rsp = .text:0x80418D28; // type:function size:0xC0 -bte__l2cu_send_peer_echo_req = .text:0x80418DE8; // type:function size:0x170 -bte__l2cu_send_peer_echo_rsp = .text:0x80418F58; // type:function size:0x19C -bte__l2cu_send_peer_info_rsp = .text:0x804190F4; // type:function size:0xA4 -bte__l2cu_allocate_ccb = .text:0x80419198; // type:function size:0x10C -bte__l2cu_release_ccb = .text:0x804192A4; // type:function size:0x1A4 -bte__l2cu_find_ccb_by_cid = .text:0x80419448; // type:function size:0x5C -bte__l2cu_allocate_rcb = .text:0x804194A4; // type:function size:0x4C -bte__l2cu_release_rcb = .text:0x804194F0; // type:function size:0x10 -bte__l2cu_find_rcb_by_psm = .text:0x80419500; // type:function size:0xB8 -bte__l2cu_process_peer_cfg_req = .text:0x804195B8; // type:function size:0x148 -bte__l2cu_process_peer_cfg_rsp = .text:0x80419700; // type:function size:0x40 -bte__l2cu_process_our_cfg_req = .text:0x80419740; // type:function size:0x110 -bte__l2cu_process_our_cfg_rsp = .text:0x80419850; // type:function size:0x40 -bte__l2cu_device_reset = .text:0x80419890; // type:function size:0x6C -bte__l2cu_create_conn = .text:0x804198FC; // type:function size:0x118 -bte__l2cu_create_conn_after_switch = .text:0x80419A14; // type:function size:0xD0 -bte__l2cu_find_lcb_by_state = .text:0x80419AE4; // type:function size:0x90 -bte__l2cu_lcb_disconnecting = .text:0x80419B74; // type:function size:0xE8 -bte__RFCOMM_Init = .text:0x80419C5C; // type:function size:0x50 +l2c_process_held_packets = .text:0x80417C6C; // type:function size:0x12C +l2cu_allocate_lcb = .text:0x80417D98; // type:function size:0xD4 +l2cu_release_lcb = .text:0x80417E6C; // type:function size:0x100 +l2cu_find_lcb_by_bd_addr = .text:0x80417F6C; // type:function size:0x88 +l2cu_find_lcb_by_handle = .text:0x80417FF4; // type:function size:0x90 +l2cu_get_conn_role = .text:0x80418084; // type:function size:0x10 +l2cu_build_header = .text:0x80418094; // type:function size:0xC4 +l2cu_send_peer_cmd_reject = .text:0x80418158; // type:function size:0xFC +l2cu_send_peer_connect_req = .text:0x80418254; // type:function size:0xC4 +l2cu_send_peer_connect_rsp = .text:0x80418318; // type:function size:0xD8 +l2cu_reject_connection = .text:0x804183F0; // type:function size:0xC0 +l2cu_send_peer_config_req = .text:0x804184B0; // type:function size:0x2F8 +l2cu_send_peer_config_rsp = .text:0x804187A8; // type:function size:0x2F8 +l2cu_send_peer_config_rej = .text:0x80418AA0; // type:function size:0x1B4 +l2cu_send_peer_disc_req = .text:0x80418C54; // type:function size:0xD4 +l2cu_send_peer_disc_rsp = .text:0x80418D28; // type:function size:0xC0 +l2cu_send_peer_echo_req = .text:0x80418DE8; // type:function size:0x170 +l2cu_send_peer_echo_rsp = .text:0x80418F58; // type:function size:0x19C +l2cu_send_peer_info_rsp = .text:0x804190F4; // type:function size:0xA4 +l2cu_allocate_ccb = .text:0x80419198; // type:function size:0x10C +l2cu_release_ccb = .text:0x804192A4; // type:function size:0x1A4 +l2cu_find_ccb_by_cid = .text:0x80419448; // type:function size:0x5C +l2cu_allocate_rcb = .text:0x804194A4; // type:function size:0x4C +l2cu_release_rcb = .text:0x804194F0; // type:function size:0x10 +l2cu_find_rcb_by_psm = .text:0x80419500; // type:function size:0xB8 +l2cu_process_peer_cfg_req = .text:0x804195B8; // type:function size:0x148 +l2cu_process_peer_cfg_rsp = .text:0x80419700; // type:function size:0x40 +l2cu_process_our_cfg_req = .text:0x80419740; // type:function size:0x110 +l2cu_process_our_cfg_rsp = .text:0x80419850; // type:function size:0x40 +l2cu_device_reset = .text:0x80419890; // type:function size:0x6C +l2cu_create_conn = .text:0x804198FC; // type:function size:0x118 +l2cu_create_conn_after_switch = .text:0x80419A14; // type:function size:0xD0 +l2cu_find_lcb_by_state = .text:0x80419AE4; // type:function size:0x90 +l2cu_lcb_disconnecting = .text:0x80419B74; // type:function size:0xE8 +RFCOMM_Init = .text:0x80419C5C; // type:function size:0x50 fn_80419CAC = .text:0x80419CAC; // type:function size:0x160 fn_80419E0C = .text:0x80419E0C; // type:function size:0x9C -bte__PORT_ParNegInd = .text:0x80419EA8; // type:function size:0x1B0 -bte__PORT_ParNegCnf = .text:0x8041A058; // type:function size:0x104 -bte__PORT_DlcEstablishInd = .text:0x8041A15C; // type:function size:0x140 -bte__PORT_DlcEstablishCnf = .text:0x8041A29C; // type:function size:0x144 -bte__PORT_PortNegInd = .text:0x8041A3E0; // type:function size:0x150 -bte__PORT_PortNegCnf = .text:0x8041A530; // type:function size:0x118 -bte__PORT_ControlInd = .text:0x8041A648; // type:function size:0x178 -bte__PORT_ControlCnf = .text:0x8041A7C0; // type:function size:0xC4 -bte__PORT_LineStatusInd = .text:0x8041A884; // type:function size:0xC8 -bte__PORT_DlcReleaseInd = .text:0x8041A94C; // type:function size:0x68 +PORT_ParNegInd = .text:0x80419EA8; // type:function size:0x1B0 +PORT_ParNegCnf = .text:0x8041A058; // type:function size:0x104 +PORT_DlcEstablishInd = .text:0x8041A15C; // type:function size:0x140 +PORT_DlcEstablishCnf = .text:0x8041A29C; // type:function size:0x144 +PORT_PortNegInd = .text:0x8041A3E0; // type:function size:0x150 +PORT_PortNegCnf = .text:0x8041A530; // type:function size:0x118 +PORT_ControlInd = .text:0x8041A648; // type:function size:0x178 +PORT_ControlCnf = .text:0x8041A7C0; // type:function size:0xC4 +PORT_LineStatusInd = .text:0x8041A884; // type:function size:0xC8 +PORT_DlcReleaseInd = .text:0x8041A94C; // type:function size:0x68 fn_8041A9B4 = .text:0x8041A9B4; // type:function size:0xA0 -bte__Port_TimeOutCloseMux = .text:0x8041AA54; // type:function size:0x98 -bte__PORT_DataInd = .text:0x8041AAEC; // type:function size:0x200 -bte__PORT_FlowInd = .text:0x8041ACEC; // type:function size:0x130 -bte__port_rfc_send_tx_data = .text:0x8041AE1C; // type:function size:0xF8 -bte__port_rfc_closed = .text:0x8041AF14; // type:function size:0x194 -bte__port_select_mtu = .text:0x8041B0A8; // type:function size:0x17C -bte__port_release_port = .text:0x8041B224; // type:function size:0xDC -bte__port_find_mcb_dlci_port = .text:0x8041B300; // type:function size:0x54 -bte__port_find_dlci_port = .text:0x8041B354; // type:function size:0x88 -bte__port_flow_control_user = .text:0x8041B3DC; // type:function size:0x70 -bte__port_get_signal_changes = .text:0x8041B44C; // type:function size:0x68 -bte__port_flow_control_peer = .text:0x8041B4B4; // type:function size:0x1CC -bte__rfcomm_l2cap_if_init = .text:0x8041B680; // type:function size:0x7C -bte__RFCOMM_ConnectInd = .text:0x8041B6FC; // type:function size:0x8C -bte__RFCOMM_ConnectCnf = .text:0x8041B788; // type:function size:0x104 +Port_TimeOutCloseMux = .text:0x8041AA54; // type:function size:0x98 +PORT_DataInd = .text:0x8041AAEC; // type:function size:0x200 +PORT_FlowInd = .text:0x8041ACEC; // type:function size:0x130 +port_rfc_send_tx_data = .text:0x8041AE1C; // type:function size:0xF8 +port_rfc_closed = .text:0x8041AF14; // type:function size:0x194 +port_select_mtu = .text:0x8041B0A8; // type:function size:0x17C +port_release_port = .text:0x8041B224; // type:function size:0xDC +port_find_mcb_dlci_port = .text:0x8041B300; // type:function size:0x54 +port_find_dlci_port = .text:0x8041B354; // type:function size:0x88 +port_flow_control_user = .text:0x8041B3DC; // type:function size:0x70 +port_get_signal_changes = .text:0x8041B44C; // type:function size:0x68 +port_flow_control_peer = .text:0x8041B4B4; // type:function size:0x1CC +rfcomm_l2cap_if_init = .text:0x8041B680; // type:function size:0x7C +RFCOMM_ConnectInd = .text:0x8041B6FC; // type:function size:0x8C +RFCOMM_ConnectCnf = .text:0x8041B788; // type:function size:0x104 RFCOMM_ConfigInd = .text:0x8041B88C; // type:function size:0x108 RFCOMM_ConfigCnf = .text:0x8041B994; // type:function size:0x108 RFCOMM_QoSViolationInd = .text:0x8041BA9C; // type:function size:0x4 -bte__RFCOMM_DisconnectInd = .text:0x8041BAA0; // type:function size:0x124 -bte__RFCOMM_BufDataInd = .text:0x8041BBC4; // type:function size:0x2A0 -bte__RFCOMM_CongestionStatusInd = .text:0x8041BE64; // type:function size:0x134 -bte__rfc_save_lcid_mcb = .text:0x8041BF98; // type:function size:0x1C -bte__rfc_mx_sm_execute = .text:0x8041BFB4; // type:function size:0x44 +RFCOMM_DisconnectInd = .text:0x8041BAA0; // type:function size:0x124 +RFCOMM_BufDataInd = .text:0x8041BBC4; // type:function size:0x2A0 +RFCOMM_CongestionStatusInd = .text:0x8041BE64; // type:function size:0x134 +rfc_save_lcid_mcb = .text:0x8041BF98; // type:function size:0x1C +rfc_mx_sm_execute = .text:0x8041BFB4; // type:function size:0x44 rfc_mx_sm_state_idle = .text:0x8041BFF8; // type:function size:0x214 rfc_mx_sm_state_wait_conn_cnf = .text:0x8041C20C; // type:function size:0x1BC rfc_mx_sm_state_configure = .text:0x8041C3C8; // type:function size:0x128 @@ -23725,124 +23725,124 @@ rfc_mx_sm_sabme_wait_ua = .text:0x8041C4F0; // type:function size:0x174 rfc_mx_sm_state_wait_sabme = .text:0x8041C664; // type:function size:0x120 rfc_mx_sm_state_connected = .text:0x8041C784; // type:function size:0x118 rfc_mx_sm_state_disc_wait_ua = .text:0x8041C89C; // type:function size:0x178 -bte__rfc_mx_conf_cnf = .text:0x8041CA14; // type:function size:0xF4 -bte__rfc_mx_conf_ind = .text:0x8041CB08; // type:function size:0xF0 -bte__rfc_port_sm_execute = .text:0x8041CBF8; // type:function size:0x90 +rfc_mx_conf_cnf = .text:0x8041CA14; // type:function size:0xF4 +rfc_mx_conf_ind = .text:0x8041CB08; // type:function size:0xF0 +rfc_port_sm_execute = .text:0x8041CBF8; // type:function size:0x90 rfc_port_sm_state_closed = .text:0x8041CC88; // type:function size:0x174 rfc_port_sm_sabme_wait_ua = .text:0x8041CDFC; // type:function size:0x19C rfc_port_sm_term_wait_sec_check = .text:0x8041CF98; // type:function size:0x1BC rfc_port_sm_orig_wait_sec_check = .text:0x8041D154; // type:function size:0x150 rfc_port_sm_opened = .text:0x8041D2A4; // type:function size:0x1EC rfc_port_sm_disc_wait_ua = .text:0x8041D490; // type:function size:0x11C -bte__rfc_process_pn = .text:0x8041D5AC; // type:function size:0xE8 -bte__rfc_process_rpn = .text:0x8041D694; // type:function size:0x30C -bte__rfc_process_msc = .text:0x8041D9A0; // type:function size:0x16C -bte__rfc_process_rls = .text:0x8041DB0C; // type:function size:0x8C +rfc_process_pn = .text:0x8041D5AC; // type:function size:0xE8 +rfc_process_rpn = .text:0x8041D694; // type:function size:0x30C +rfc_process_msc = .text:0x8041D9A0; // type:function size:0x16C +rfc_process_rls = .text:0x8041DB0C; // type:function size:0x8C rfc_process_nsc = .text:0x8041DB98; // type:function size:0x4 rfc_process_test_rsp = .text:0x8041DB9C; // type:function size:0x8 -bte__rfc_process_fcon = .text:0x8041DBA4; // type:function size:0x64 -bte__rfc_process_fcoff = .text:0x8041DC08; // type:function size:0x64 -bte__rfc_process_l2cap_congestion = .text:0x8041DC6C; // type:function size:0x88 -bte__rfc_set_port_state = .text:0x8041DCF4; // type:function size:0xA4 +rfc_process_fcon = .text:0x8041DBA4; // type:function size:0x64 +rfc_process_fcoff = .text:0x8041DC08; // type:function size:0x64 +rfc_process_l2cap_congestion = .text:0x8041DC6C; // type:function size:0x88 +rfc_set_port_state = .text:0x8041DCF4; // type:function size:0xA4 fn_8041DD98 = .text:0x8041DD98; // type:function size:0x2C -bte__RFCOMM_DlcEstablishReq = .text:0x8041DDC4; // type:function size:0x68 -bte__RFCOMM_DlcEstablishRsp = .text:0x8041DE2C; // type:function size:0x70 -bte__RFCOMM_ParNegReq = .text:0x8041DE9C; // type:function size:0xE0 +RFCOMM_DlcEstablishReq = .text:0x8041DDC4; // type:function size:0x68 +RFCOMM_DlcEstablishRsp = .text:0x8041DE2C; // type:function size:0x70 +RFCOMM_ParNegReq = .text:0x8041DE9C; // type:function size:0xE0 RFCOMM_ParNegRsp = .text:0x8041DF7C; // type:function size:0x28 -bte__RFCOMM_PortNegReq = .text:0x8041DFA4; // type:function size:0xBC +RFCOMM_PortNegReq = .text:0x8041DFA4; // type:function size:0xBC RFCOMM_PortNegRsp = .text:0x8041E060; // type:function size:0x20 -bte__RFCOMM_ControlReq = .text:0x8041E080; // type:function size:0xA4 -bte__RFCOMM_FlowReq = .text:0x8041E124; // type:function size:0xA4 -bte__RFCOMM_LineStatusReq = .text:0x8041E1C8; // type:function size:0x98 -bte__RFCOMM_DlcReleaseReq = .text:0x8041E260; // type:function size:0x2C -bte__RFCOMM_DataReq = .text:0x8041E28C; // type:function size:0x38 +RFCOMM_ControlReq = .text:0x8041E080; // type:function size:0xA4 +RFCOMM_FlowReq = .text:0x8041E124; // type:function size:0xA4 +RFCOMM_LineStatusReq = .text:0x8041E1C8; // type:function size:0x98 +RFCOMM_DlcReleaseReq = .text:0x8041E260; // type:function size:0x2C +RFCOMM_DataReq = .text:0x8041E28C; // type:function size:0x38 rfc_send_sabme = .text:0x8041E2C4; // type:function size:0xB0 -bte__rfc_send_ua = .text:0x8041E374; // type:function size:0xB0 -bte__rfc_send_dm = .text:0x8041E424; // type:function size:0xC4 +rfc_send_ua = .text:0x8041E374; // type:function size:0xB0 +rfc_send_dm = .text:0x8041E424; // type:function size:0xC4 rfc_send_disc = .text:0x8041E4E8; // type:function size:0xB0 -bte__rfc_send_buf_uih = .text:0x8041E598; // type:function size:0x198 -bte__rfc_send_pn = .text:0x8041E730; // type:function size:0xE8 +rfc_send_buf_uih = .text:0x8041E598; // type:function size:0x198 +rfc_send_pn = .text:0x8041E730; // type:function size:0xE8 rfc_send_fcon = .text:0x8041E818; // type:function size:0x84 rfc_send_fcoff = .text:0x8041E89C; // type:function size:0x84 -bte__rfc_send_msc = .text:0x8041E920; // type:function size:0x120 -bte__rfc_send_rls = .text:0x8041EA40; // type:function size:0xB0 -bte__rfc_send_rpn = .text:0x8041EAF0; // type:function size:0x11C -bte__rfc_send_test = .text:0x8041EC0C; // type:function size:0xA8 -bte__rfc_send_credit = .text:0x8041ECB4; // type:function size:0xC0 -bte__rfc_parse_data = .text:0x8041ED74; // type:function size:0x574 -bte__rfc_process_mx_message = .text:0x8041F2E8; // type:function size:0x624 -bte__rfc_calc_fcs = .text:0x8041F90C; // type:function size:0x38 -bte__rfc_check_fcs = .text:0x8041F944; // type:function size:0x4C -bte__rfc_alloc_multiplexer_channel = .text:0x8041F990; // type:function size:0x158 -bte__rfc_release_multiplexer_channel = .text:0x8041FAE8; // type:function size:0x88 -bte__rfc_timer_start = .text:0x8041FB70; // type:function size:0x74 -bte__rfc_timer_stop = .text:0x8041FBE4; // type:function size:0x58 -bte__rfc_port_timer_start = .text:0x8041FC3C; // type:function size:0x80 -bte__rfc_port_timer_stop = .text:0x8041FCBC; // type:function size:0x58 -bte__rfc_check_mcb_active = .text:0x8041FD14; // type:function size:0xC4 +rfc_send_msc = .text:0x8041E920; // type:function size:0x120 +rfc_send_rls = .text:0x8041EA40; // type:function size:0xB0 +rfc_send_rpn = .text:0x8041EAF0; // type:function size:0x11C +rfc_send_test = .text:0x8041EC0C; // type:function size:0xA8 +rfc_send_credit = .text:0x8041ECB4; // type:function size:0xC0 +rfc_parse_data = .text:0x8041ED74; // type:function size:0x574 +rfc_process_mx_message = .text:0x8041F2E8; // type:function size:0x624 +rfc_calc_fcs = .text:0x8041F90C; // type:function size:0x38 +rfc_check_fcs = .text:0x8041F944; // type:function size:0x4C +rfc_alloc_multiplexer_channel = .text:0x8041F990; // type:function size:0x158 +rfc_release_multiplexer_channel = .text:0x8041FAE8; // type:function size:0x88 +rfc_timer_start = .text:0x8041FB70; // type:function size:0x74 +rfc_timer_stop = .text:0x8041FBE4; // type:function size:0x58 +rfc_port_timer_start = .text:0x8041FC3C; // type:function size:0x80 +rfc_port_timer_stop = .text:0x8041FCBC; // type:function size:0x58 +rfc_check_mcb_active = .text:0x8041FD14; // type:function size:0xC4 rfcomm_process_timeout = .text:0x8041FDD8; // type:function size:0x3C fn_8041FE14 = .text:0x8041FE14; // type:function size:0x54 -bte__rfc_port_closed = .text:0x8041FE68; // type:function size:0x158 -bte__rfc_inc_credit = .text:0x8041FFC0; // type:function size:0x8C -bte__rfc_dec_credit = .text:0x8042004C; // type:function size:0x3C -bte__rfc_check_send_cmd = .text:0x80420088; // type:function size:0x64 -bte__SDP_InitDiscoveryDb = .text:0x804200EC; // type:function size:0x378 -bte__SDP_ServiceSearchRequest = .text:0x80420464; // type:function size:0x5C -bte__SDP_ServiceSearchAttributeRequest = .text:0x804204C0; // type:function size:0x64 -bte__SDP_FindAttributeInRec = .text:0x80420524; // type:function size:0x28 -bte__SDP_FindServiceInDb = .text:0x8042054C; // type:function size:0xCC -bte__SDP_FindServiceUUIDInDb = .text:0x80420618; // type:function size:0x108 -bte__SDP_SetLocalDiRecord = .text:0x80420720; // type:function size:0x360 -bte__SDP_GetLocalDiRecord = .text:0x80420A80; // type:function size:0x4B0 -bte__SDP_SetTraceLevel = .text:0x80420F30; // type:function size:0x24 -bte__sdp_db_service_search = .text:0x80420F54; // type:function size:0x13C +rfc_port_closed = .text:0x8041FE68; // type:function size:0x158 +rfc_inc_credit = .text:0x8041FFC0; // type:function size:0x8C +rfc_dec_credit = .text:0x8042004C; // type:function size:0x3C +rfc_check_send_cmd = .text:0x80420088; // type:function size:0x64 +SDP_InitDiscoveryDb = .text:0x804200EC; // type:function size:0x378 +SDP_ServiceSearchRequest = .text:0x80420464; // type:function size:0x5C +SDP_ServiceSearchAttributeRequest = .text:0x804204C0; // type:function size:0x64 +SDP_FindAttributeInRec = .text:0x80420524; // type:function size:0x28 +SDP_FindServiceInDb = .text:0x8042054C; // type:function size:0xCC +SDP_FindServiceUUIDInDb = .text:0x80420618; // type:function size:0x108 +SDP_SetLocalDiRecord = .text:0x80420720; // type:function size:0x360 +SDP_GetLocalDiRecord = .text:0x80420A80; // type:function size:0x4B0 +SDP_SetTraceLevel = .text:0x80420F30; // type:function size:0x24 +sdp_db_service_search = .text:0x80420F54; // type:function size:0x13C find_uuid_in_seq = .text:0x80421090; // type:function size:0xD8 -bte__sdp_db_find_record = .text:0x80421168; // type:function size:0x5C -bte__sdp_db_find_attr_in_rec = .text:0x804211C4; // type:function size:0x40 -bte__SDP_CreateRecord = .text:0x80421204; // type:function size:0xE0 -bte__SDP_DeleteRecord = .text:0x804212E4; // type:function size:0x114 -bte__SDP_AddAttribute = .text:0x804213F8; // type:function size:0x398 -bte__SDP_AddUuidSequence = .text:0x80421790; // type:function size:0xD8 -bte__SDP_AddServiceClassIdList = .text:0x80421868; // type:function size:0x17C -bte__SDP_DeleteAttribute = .text:0x804219E4; // type:function size:0x23C -bte__sdpu_build_uuid_seq = .text:0x80421C20; // type:function size:0xEC -bte__sdp_snd_service_search_req = .text:0x80421D0C; // type:function size:0x130 -bte__sdp_disc_connected = .text:0x80421E3C; // type:function size:0x34 -bte__sdp_disc_server_rsp = .text:0x80421E70; // type:function size:0x140 -bte__process_service_search_rsp = .text:0x80421FB0; // type:function size:0x148 -bte__process_service_attr_rsp = .text:0x804220F8; // type:function size:0x2A8 -bte__process_service_search_attr_rsp = .text:0x804223A0; // type:function size:0x2D4 -bte__save_attr_seq = .text:0x80422674; // type:function size:0x1EC +sdp_db_find_record = .text:0x80421168; // type:function size:0x5C +sdp_db_find_attr_in_rec = .text:0x804211C4; // type:function size:0x40 +SDP_CreateRecord = .text:0x80421204; // type:function size:0xE0 +SDP_DeleteRecord = .text:0x804212E4; // type:function size:0x114 +SDP_AddAttribute = .text:0x804213F8; // type:function size:0x398 +SDP_AddUuidSequence = .text:0x80421790; // type:function size:0xD8 +SDP_AddServiceClassIdList = .text:0x80421868; // type:function size:0x17C +SDP_DeleteAttribute = .text:0x804219E4; // type:function size:0x23C +sdpu_build_uuid_seq = .text:0x80421C20; // type:function size:0xEC +sdp_snd_service_search_req = .text:0x80421D0C; // type:function size:0x130 +sdp_disc_connected = .text:0x80421E3C; // type:function size:0x34 +sdp_disc_server_rsp = .text:0x80421E70; // type:function size:0x140 +process_service_search_rsp = .text:0x80421FB0; // type:function size:0x148 +process_service_attr_rsp = .text:0x804220F8; // type:function size:0x2A8 +process_service_search_attr_rsp = .text:0x804223A0; // type:function size:0x2D4 +save_attr_seq = .text:0x80422674; // type:function size:0x1EC add_record = .text:0x80422860; // type:function size:0xA0 -bte__add_attr = .text:0x80422900; // type:function size:0x598 -bte__sdp_init = .text:0x80422E98; // type:function size:0x1A0 -bte__sdp_connect_ind = .text:0x80423038; // type:function size:0xC4 -bte__sdp_connect_cfm = .text:0x804230FC; // type:function size:0x190 -bte__sdp_config_ind = .text:0x8042328C; // type:function size:0x13C -bte__sdp_config_cfm = .text:0x804233C8; // type:function size:0x17C -bte__sdp_disconnect_ind = .text:0x80423544; // type:function size:0xF8 -bte__sdp_data_ind = .text:0x8042363C; // type:function size:0xD4 -bte__sdp_conn_originate = .text:0x80423710; // type:function size:0x114 -bte__sdp_disconnect = .text:0x80423824; // type:function size:0x9C -bte__sdp_disconnect_cfm = .text:0x804238C0; // type:function size:0xBC -bte__sdp_conn_timeout = .text:0x8042397C; // type:function size:0x88 -bte__sdp_server_handle_client_req = .text:0x80423A04; // type:function size:0x154 -bte__process_service_search = .text:0x80423B58; // type:function size:0x410 -bte__process_service_attr_req = .text:0x80423F68; // type:function size:0x390 -bte__process_service_search_attr_req = .text:0x804242F8; // type:function size:0x41C -bte__sdpu_find_ccb_by_cid = .text:0x80424714; // type:function size:0x90 -bte__sdpu_allocate_ccb = .text:0x804247A4; // type:function size:0x74 -bte__sdpu_release_ccb = .text:0x80424818; // type:function size:0x38 -bte__sdpu_build_attrib_seq = .text:0x80424850; // type:function size:0x1D0 -bte__sdpu_build_attrib_entry = .text:0x80424A20; // type:function size:0x154 -bte__sdpu_build_n_send_error = .text:0x80424B74; // type:function size:0x13C -bte__sdpu_extract_uid_seq = .text:0x80424CB0; // type:function size:0x350 -bte__sdpu_extract_attr_seq = .text:0x80425000; // type:function size:0x250 -bte__sdpu_get_len_from_type = .text:0x80425250; // type:function size:0xD0 -bte__sdpu_is_base_uuid = .text:0x80425320; // type:function size:0xE0 -bte__sdpu_compare_uuid_arrays = .text:0x80425400; // type:function size:0x274 -bte__sdpu_compare_uuid_with_attr = .text:0x80425674; // type:function size:0x90 -bte__sdpu_sort_attr_list = .text:0x80425704; // type:function size:0x50 +add_attr = .text:0x80422900; // type:function size:0x598 +sdp_init = .text:0x80422E98; // type:function size:0x1A0 +sdp_connect_ind = .text:0x80423038; // type:function size:0xC4 +sdp_connect_cfm = .text:0x804230FC; // type:function size:0x190 +sdp_config_ind = .text:0x8042328C; // type:function size:0x13C +sdp_config_cfm = .text:0x804233C8; // type:function size:0x17C +sdp_disconnect_ind = .text:0x80423544; // type:function size:0xF8 +sdp_data_ind = .text:0x8042363C; // type:function size:0xD4 +sdp_conn_originate = .text:0x80423710; // type:function size:0x114 +sdp_disconnect = .text:0x80423824; // type:function size:0x9C +sdp_disconnect_cfm = .text:0x804238C0; // type:function size:0xBC +sdp_conn_timeout = .text:0x8042397C; // type:function size:0x88 +sdp_server_handle_client_req = .text:0x80423A04; // type:function size:0x154 +process_service_search = .text:0x80423B58; // type:function size:0x410 +process_service_attr_req = .text:0x80423F68; // type:function size:0x390 +process_service_search_attr_req = .text:0x804242F8; // type:function size:0x41C +sdpu_find_ccb_by_cid = .text:0x80424714; // type:function size:0x90 +sdpu_allocate_ccb = .text:0x804247A4; // type:function size:0x74 +sdpu_release_ccb = .text:0x80424818; // type:function size:0x38 +sdpu_build_attrib_seq = .text:0x80424850; // type:function size:0x1D0 +sdpu_build_attrib_entry = .text:0x80424A20; // type:function size:0x154 +sdpu_build_n_send_error = .text:0x80424B74; // type:function size:0x13C +sdpu_extract_uid_seq = .text:0x80424CB0; // type:function size:0x350 +sdpu_extract_attr_seq = .text:0x80425000; // type:function size:0x250 +sdpu_get_len_from_type = .text:0x80425250; // type:function size:0xD0 +sdpu_is_base_uuid = .text:0x80425320; // type:function size:0xE0 +sdpu_compare_uuid_arrays = .text:0x80425400; // type:function size:0x274 +sdpu_compare_uuid_with_attr = .text:0x80425674; // type:function size:0x90 +sdpu_sort_attr_list = .text:0x80425704; // type:function size:0x50 IPCInit = .text:0x80425760; // type:function size:0x4C scope:global IPCReInit = .text:0x804257B0; // type:function size:0x48 IPCReadReg = .text:0x80425800; // type:function size:0x10 scope:global @@ -27475,13 +27475,13 @@ __mod2u = .text:0x804C6E14; // type:function size:0xE4 scope:global __mod2i = .text:0x804C6EF8; // type:function size:0x10C __shl2i = .text:0x804C7004; // type:function size:0x24 __shr2i = .text:0x804C7028; // type:function size:0x28 -Runtime.PPCEABI.H____cvt_sll_dbl = .text:0x804C7050; // type:function size:0xB0 -Runtime.PPCEABI.H____cvt_dbl_ull = .text:0x804C7100; // type:function size:0xA8 +__cvt_sll_dbl = .text:0x804C7050; // type:function size:0xB0 +__cvt_dbl_ull = .text:0x804C7100; // type:function size:0xA8 __init_cpp_exceptions = .text:0x804C71A8; // type:function size:0x3C scope:global __fini_cpp_exceptions = .text:0x804C71E4; // type:function size:0x34 scope:global __register_fragment = .text:0x804C7218; // type:function size:0x4C scope:global __unregister_fragment = .text:0x804C7264; // type:function size:0x28 scope:global -Runtime.PPCEABI.H____sys_free = .text:0x804C728C; // type:function size:0xB8 +__sys_free = .text:0x804C728C; // type:function size:0xB8 Block_link = .text:0x804C7344; // type:function size:0x150 SubBlock_merge_next = .text:0x804C7494; // type:function size:0xA8 deallocate_from_fixed_pools = .text:0x804C753C; // type:function size:0x1EC @@ -29060,7 +29060,7 @@ lbl_804F55C4 = .rodata:0x804F55C4; // type:object size:0x1C lbl_804F55E0 = .rodata:0x804F55E0; // type:object size:0x1C lbl_804F55FC = .rodata:0x804F55FC; // type:object size:0x1C lbl_804F5618 = .rodata:0x804F5618; // type:object size:0x100 data:4byte -lbl_804F5718 = .rodata:0x804F5718; // type:object size:0x10 +lbl_804F5718 = .rodata:0x804F5718; // type:object size:0xD data:string ConfFileName = .rodata:0x804F5728; // type:object size:0x15 scope:local data:string ProductInfoFileName = .rodata:0x804F5740; // type:object size:0x2A scope:local data:string lbl_804F5770 = .rodata:0x804F5770; // type:object size:0x48 data:4byte @@ -38112,14 +38112,18 @@ lbl_80561FC8 = .data:0x80561FC8; // type:object size:0x1E data:string lbl_80561FE8 = .data:0x80561FE8; // type:object size:0xC data:string lbl_80561FF4 = .data:0x80561FF4; // type:object size:0x9 data:string lbl_80562000 = .data:0x80562000; // type:object size:0x140 -lbl_80562140 = .data:0x80562140; // type:object size:0xC -lbl_8056214C = .data:0x8056214C; // type:object size:0xC -lbl_80562158 = .data:0x80562158; // type:object size:0x28 +lbl_80562140 = .data:0x80562140; // type:object size:0x9 data:string +lbl_8056214C = .data:0x8056214C; // type:object size:0xB data:string +lbl_80562158 = .data:0x80562158; // type:object size:0x17 data:string @2807 = .data:0x80562180; // type:object size:0x47 scope:local data:string -s_currentDir = .data:0x805621E0; // type:object size:0x40 scope:local +s_currentDir = .data:0x805621E0; // type:object size:0x40 scope:local align:32 lbl_80562220 = .data:0x80562220; // type:object size:0x10 -lbl_80562230 = .data:0x80562230; // type:object size:0xC -lbl_8056223C = .data:0x8056223C; // type:object size:0x94 +lbl_80562230 = .data:0x80562230; // type:object size:0x9 data:string +lbl_8056223C = .data:0x8056223C; // type:object size:0xA data:string +lbl_80562248 = .data:0x80562248; // type:object size:0x14 data:string +lbl_8056225C = .data:0x8056225C; // type:object size:0x31 data:string +lbl_80562290 = .data:0x80562290; // type:object size:0x1F data:string +lbl_805622B0 = .data:0x805622B0; // type:object size:0x1F data:string lbl_805622D0 = .data:0x805622D0; // type:object size:0x10 data:string lbl_805622E0 = .data:0x805622E0; // type:object size:0x10 data:string lbl_805622F0 = .data:0x805622F0; // type:object size:0x10 data:string @@ -38130,7 +38134,7 @@ lbl_80562330 = .data:0x80562330; // type:object size:0x10 data:string lbl_80562340 = .data:0x80562340; // type:object size:0x10 lbl_80562350 = .data:0x80562350; // type:object size:0x30 @1150 = .data:0x80562380; // type:object size:0x1B scope:local data:string -lbl_8056239C = .data:0x8056239C; // type:object size:0x2C +lbl_8056239C = .data:0x8056239C; // type:object size:0x27 data:string lbl_805623C8 = .data:0x805623C8; // type:object size:0x5C lbl_80562424 = .data:0x80562424; // type:object size:0x6C lbl_80562490 = .data:0x80562490; // type:object size:0x7C @@ -38203,10 +38207,10 @@ lbl_80564250 = .data:0x80564250; // type:object size:0x48 lbl_80564298 = .data:0x80564298; // type:object size:0x10 jumptable_805642A8 = .data:0x805642A8; // type:object size:0x48 scope:local jumptable_805642F0 = .data:0x805642F0; // type:object size:0x48 scope:local -lbl_80564338 = .data:0x80564338; // type:object size:0x14 -lbl_8056434C = .data:0x8056434C; // type:object size:0x14 -lbl_80564360 = .data:0x80564360; // type:object size:0x34 -lbl_80564394 = .data:0x80564394; // type:object size:0x54 +lbl_80564338 = .data:0x80564338; // type:object size:0x11 data:string +lbl_8056434C = .data:0x8056434C; // type:object size:0x11 data:string +lbl_80564360 = .data:0x80564360; // type:object size:0x33 data:string +lbl_80564394 = .data:0x80564394; // type:object size:0x52 data:string lbl_805643E8 = .data:0x805643E8; // type:object size:0x50 data:string jumptable_80564438 = .data:0x80564438; // type:object size:0x24 scope:local jumptable_8056445C = .data:0x8056445C; // type:object size:0x54 scope:local @@ -38214,31 +38218,32 @@ jumptable_805644B0 = .data:0x805644B0; // type:object size:0x30 scope:local lbl_805644E0 = .data:0x805644E0; // type:object size:0x80 jumptable_80564560 = .data:0x80564560; // type:object size:0x30 scope:local jumptable_80564590 = .data:0x80564590; // type:object size:0x4C scope:local -lbl_805645E0 = .data:0x805645E0; // type:object size:0x30 -lbl_80564610 = .data:0x80564610; // type:object size:0x900 -lbl_80564F10 = .data:0x80564F10; // type:object size:0x30 -lbl_80564F40 = .data:0x80564F40; // type:object size:0x900 +base = .data:0x805645E0; // type:object size:0x2A scope:local +tb = .data:0x80564610; // type:object size:0x900 scope:local noreloc +base3 = .data:0x80564F10; // type:object size:0x2A scope:local +tb3 = .data:0x80564F40; // type:object size:0x900 scope:local noreloc lbl_80565840 = .data:0x80565840; // type:object size:0xDC lbl_8056591C = .data:0x8056591C; // type:object size:0xC lbl_80565928 = .data:0x80565928; // type:object size:0xBC data:byte lbl_805659E4 = .data:0x805659E4; // type:object size:0x5C data:byte lbl_80565A40 = .data:0x80565A40; // type:object size:0x1C -lbl_80565A5C = .data:0x80565A5C; // type:object size:0x14 -lbl_80565A70 = .data:0x80565A70; // type:object size:0x14 -lbl_80565A84 = .data:0x80565A84; // type:object size:0x40 -lbl_80565AC4 = .data:0x80565AC4; // type:object size:0x54 -lbl_80565B18 = .data:0x80565B18; // type:object size:0x24 +lbl_80565A5C = .data:0x80565A5C; // type:object size:0x11 data:string +lbl_80565A70 = .data:0x80565A70; // type:object size:0x11 data:string +lbl_80565A84 = .data:0x80565A84; // type:object size:0x2B data:string +lbl_80565AB0 = .data:0x80565AB0; // type:object size:0x14 data:string +lbl_80565AC4 = .data:0x80565AC4; // type:object size:0x51 data:string +lbl_80565B18 = .data:0x80565B18; // type:object size:0x23 data:string lbl_80565B3C = .data:0x80565B3C; // type:object size:0x14 data:string -lbl_80565B50 = .data:0x80565B50; // type:object size:0x28 -lbl_80565B78 = .data:0x80565B78; // type:object size:0x10 -lbl_80565B88 = .data:0x80565B88; // type:object size:0x14 -lbl_80565B9C = .data:0x80565B9C; // type:object size:0x2C +lbl_80565B50 = .data:0x80565B50; // type:object size:0x25 data:string +lbl_80565B78 = .data:0x80565B78; // type:object size:0xF data:string +lbl_80565B88 = .data:0x80565B88; // type:object size:0x11 data:string +lbl_80565B9C = .data:0x80565B9C; // type:object size:0x26 data:string lbl_80565BC8 = .data:0x80565BC8; // type:object size:0x48 jumptable_80565C10 = .data:0x80565C10; // type:object size:0x54 scope:local lbl_80565C64 = .data:0x80565C64; // type:object size:0x2C lbl_80565C90 = .data:0x80565C90; // type:object size:0x24 lbl_80565CB4 = .data:0x80565CB4; // type:object size:0x24 -lbl_80565CD8 = .data:0x80565CD8; // type:object size:0x28 data:4byte +e_dir = .data:0x80565CD8; // type:object size:0x28 data:4byte lbl_80565D00 = .data:0x80565D00; // type:object size:0x830 lbl_80566530 = .data:0x80566530; // type:object size:0x18 lbl_80566548 = .data:0x80566548; // type:object size:0x98 @@ -41048,22 +41053,22 @@ lbl_80574AA0 = .sdata:0x80574AA0; // type:object size:0x8 data:string lbl_80574AA8 = .sdata:0x80574AA8; // type:object size:0x8 data:4byte __esFd = .sdata:0x80574AB0; // type:object size:0x4 scope:local data:4byte lbl_80574AB8 = .sdata:0x80574AB8; // type:object size:0x8 data:string -lbl_80574AC0 = .sdata:0x80574AC0; // type:object size:0x4 +lbl_80574AC0 = .sdata:0x80574AC0; // type:object size:0x2 data:string lbl_80574AC4 = .sdata:0x80574AC4; // type:object size:0x4 data:string lbl_80574AC8 = .sdata:0x80574AC8; // type:object size:0x8 data:string -lbl_80574AD0 = .sdata:0x80574AD0; // type:object size:0x8 +lbl_80574AD0 = .sdata:0x80574AD0; // type:object size:0x6 data:string __NANDVersion = .sdata:0x80574AD8; // type:object size:0x4 scope:global data:4byte -lbl_80574ADC = .sdata:0x80574ADC; // type:object size:0x4 +lbl_80574ADC = .sdata:0x80574ADC; // type:object size:0x2 data:string @3775 = .sdata:0x80574AE0; // type:object size:0x1 scope:local -lbl_80574AE4 = .sdata:0x80574AE4; // type:object size:0x4 -lbl_80574AE8 = .sdata:0x80574AE8; // type:object size:0x4 +lbl_80574AE4 = .sdata:0x80574AE4; // type:object size:0x2 data:string +lbl_80574AE8 = .sdata:0x80574AE8; // type:object size:0x3 data:string lbl_80574AEC = .sdata:0x80574AEC; // type:object size:0x4 data:string -lbl_80574AF0 = .sdata:0x80574AF0; // type:object size:0x8 +lbl_80574AF0 = .sdata:0x80574AF0; // type:object size:0x6 data:string lbl_80574AF8 = .sdata:0x80574AF8; // type:object size:0x4 lbl_80574AFC = .sdata:0x80574AFC; // type:object size:0x4 data:wstring lbl_80574B00 = .sdata:0x80574B00; // type:object size:0x8 lbl_80574B08 = .sdata:0x80574B08; // type:object size:0x8 data:string -lbl_80574B10 = .sdata:0x80574B10; // type:object size:0x4 data:4byte +s_fd = .sdata:0x80574B10; // type:object size:0x4 scope:local data:4byte s_err = .sdata:0x80574B14; // type:object size:0x4 scope:local data:4byte __SCVersion = .sdata:0x80574B18; // type:object size:0x4 scope:global data:4byte lbl_80574B1C = .sdata:0x80574B1C; // type:object size:0x8 @@ -41099,14 +41104,14 @@ lbl_80574C08 = .sdata:0x80574C08; // type:object size:0x8 data:string lbl_80574C10 = .sdata:0x80574C10; // type:object size:0x8 data:string @2434 = .sdata:0x80574C18; // type:object size:0x5 scope:local data:string @2435 = .sdata:0x80574C20; // type:object size:0x5 scope:local data:string -lbl_80574C28 = .sdata:0x80574C28; // type:object size:0x8 -lbl_80574C30 = .sdata:0x80574C30; // type:object size:0x8 +lbl_80574C28 = .sdata:0x80574C28; // type:object size:0x5 data:string +lbl_80574C30 = .sdata:0x80574C30; // type:object size:0x5 data:string lbl_80574C38 = .sdata:0x80574C38; // type:object size:0x4 data:4byte lbl_80574C3C = .sdata:0x80574C3C; // type:object size:0x4 data:4byte lbl_80574C40 = .sdata:0x80574C40; // type:object size:0x8 data:2byte lbl_80574C48 = .sdata:0x80574C48; // type:object size:0x8 data:2byte -lbl_80574C50 = .sdata:0x80574C50; // type:object size:0x8 -lbl_80574C58 = .sdata:0x80574C58; // type:object size:0x8 +lbl_80574C50 = .sdata:0x80574C50; // type:object size:0x5 data:string +lbl_80574C58 = .sdata:0x80574C58; // type:object size:0x6 data:string lbl_80574C60 = .sdata:0x80574C60; // type:object size:0x4 data:4byte lbl_80574C64 = .sdata:0x80574C64; // type:object size:0x4 align:4 data:float lbl_80574C68 = .sdata:0x80574C68; // type:object size:0x4 data:4byte @@ -41115,10 +41120,10 @@ lbl_80574C70 = .sdata:0x80574C70; // type:object size:0x4 data:4byte lbl_80574C74 = .sdata:0x80574C74; // type:object size:0x4 data:4byte lbl_80574C78 = .sdata:0x80574C78; // type:object size:0x4 align:4 data:float lbl_80574C7C = .sdata:0x80574C7C; // type:object size:0x4 align:4 data:float -lbl_80574C80 = .sdata:0x80574C80; // type:object size:0x4 align:4 data:float +kp_ah_circle_radius = .sdata:0x80574C80; // type:object size:0x4 align:4 data:float lbl_80574C84 = .sdata:0x80574C84; // type:object size:0x4 align:4 data:float -lbl_80574C88 = .sdata:0x80574C88; // type:object size:0x2 data:2byte -lbl_80574C8C = .sdata:0x80574C8C; // type:object size:0x4 align:4 data:float +kp_ah_circle_ct = .sdata:0x80574C88; // type:object size:0x2 data:2byte +kp_err_outside_frame = .sdata:0x80574C8C; // type:object size:0x4 align:4 data:float lbl_80574C90 = .sdata:0x80574C90; // type:object size:0x4 align:4 data:float lbl_80574C94 = .sdata:0x80574C94; // type:object size:0x4 align:4 data:float lbl_80574C98 = .sdata:0x80574C98; // type:object size:0x4 align:4 data:float @@ -42117,7 +42122,7 @@ InterruptHandlerTable = .sbss:0x80576020; // type:object size:0x4 scope:local da lbl_80576030 = .sbss:0x80576030; // type:object size:0x4 data:4byte lbl_80576034 = .sbss:0x80576034; // type:object size:0x4 data:4byte lbl_80576038 = .sbss:0x80576038; // type:object size:0x4 data:4byte -lbl_8057603C = .sbss:0x8057603C; // type:object size:0x4 data:4byte +__OSIsReturnToIdle = .sbss:0x8057603C; // type:object size:0x4 data:4byte ShutdownFunctionQueue = .sbss:0x80576040; // type:object size:0x8 scope:local data:4byte Reschedule = .sbss:0x80576048; // type:object size:0x4 scope:local data:4byte RunQueueHint = .sbss:0x8057604C; // type:object size:0x4 scope:local data:4byte @@ -42298,10 +42303,10 @@ NANDErrorFunc = .sbss:0x80576380; // type:object size:0x4 scope:local data:4byte BgJobStatus = .sbss:0x80576388; // type:object size:0x1 scope:local data:byte ItemRestSize = .sbss:0x8057638C; // type:object size:0x4 scope:local data:4byte ItemNumTotal = .sbss:0x80576390; // type:object size:0x4 scope:local data:4byte -lbl_80576394 = .sbss:0x80576394; // type:object size:0x4 data:4byte +ItemIDMaxPlus1 = .sbss:0x80576394; // type:object size:0x4 scope:local data:4byte ItemIDOffsetTblOffset = .sbss:0x80576398; // type:object size:0x4 scope:local data:4byte IsDevKit = .sbss:0x8057639C; // type:object size:0x1 scope:local data:byte -lbl_8057639D = .sbss:0x8057639D; // type:object size:0x1 data:byte +DirtyFlag = .sbss:0x8057639D; // type:object size:0x1 scope:local data:byte Initialized = .sbss:0x8057639E; // type:object size:0x1 scope:local data:byte __PADSpec = .sbss:0x805763A0; // type:object size:0x4 scope:global data:4byte lbl_805763A8 = .sbss:0x805763A8; // type:object size:0x1 data:byte @@ -42320,14 +42325,14 @@ lbl_805763D0 = .sbss:0x805763D0; // type:object size:0x4 data:4byte lbl_805763D4 = .sbss:0x805763D4; // type:object size:0x4 data:4byte lbl_805763D8 = .sbss:0x805763D8; // type:object size:0x4 data:4byte lbl_805763DC = .sbss:0x805763DC; // type:object size:0x4 data:4byte -lbl_805763E0 = .sbss:0x805763E0; // type:object size:0x4 data:4byte -lbl_805763E4 = .sbss:0x805763E4; // type:object size:0x4 data:4byte -lbl_805763E8 = .sbss:0x805763E8; // type:object size:0x4 data:4byte -lbl_805763EC = .sbss:0x805763EC; // type:object size:0x4 data:4byte -lbl_805763F0 = .sbss:0x805763F0; // type:object size:0x4 data:4byte -lbl_805763F4 = .sbss:0x805763F4; // type:object size:0x4 data:4byte -lbl_805763F8 = .sbss:0x805763F8; // type:object size:0x4 data:4byte -lbl_805763FC = .sbss:0x805763FC; // type:object size:0x4 data:4byte +_enabledVSM = .sbss:0x805763E0; // type:object size:0x4 data:4byte +_enabledTRN = .sbss:0x805763E4; // type:object size:0x4 data:4byte +_enabledGTR = .sbss:0x805763E8; // type:object size:0x4 data:4byte +_enabledDRM = .sbss:0x805763EC; // type:object size:0x4 data:4byte +_enabledTKO = .sbss:0x805763F0; // type:object size:0x4 data:4byte +_enabledTBL = .sbss:0x805763F4; // type:object size:0x4 data:4byte +_enabledBLK = .sbss:0x805763F8; // type:object size:0x4 data:4byte +_enabledWBC = .sbss:0x805763FC; // type:object size:0x4 data:4byte lbl_80576400 = .sbss:0x80576400; // type:object size:0x4 data:4byte lbl_80576404 = .sbss:0x80576404; // type:object size:0x4 data:4byte lbl_80576408 = .sbss:0x80576408; // type:object size:0x1 data:byte @@ -42358,7 +42363,7 @@ lbl_8057644C = .sbss:0x8057644C; // type:object size:0x1 lbl_8057644D = .sbss:0x8057644D; // type:object size:0x1 data:byte lbl_80576450 = .sbss:0x80576450; // type:object size:0x4 data:4byte lbl_80576454 = .sbss:0x80576454; // type:object size:0x4 data:4byte -lbl_80576458 = .sbss:0x80576458; // type:object size:0x4 data:4byte +_linkedWBC = .sbss:0x80576458; // type:object size:0x4 data:4byte lbl_8057645C = .sbss:0x8057645C; // type:object size:0x4 data:4byte lbl_80576460 = .sbss:0x80576460; // type:object size:0x4 data:4byte lbl_80576464 = .sbss:0x80576464; // type:object size:0x1 data:byte @@ -42377,8 +42382,7 @@ lbl_80576480 = .sbss:0x80576480; // type:object size:0x4 data:4byte lbl_80576484 = .sbss:0x80576484; // type:object size:0x4 data:4byte lbl_80576488 = .sbss:0x80576488; // type:object size:0x4 data:4byte KpadInit = .sbss:0x8057648C; // type:object size:0x1 data:byte -lbl_80576490 = .sbss:0x80576490; // type:object size:0x4 data:4byte -lbl_80576494 = .sbss:0x80576494; // type:object size:0x4 data:4byte +Vec2_0 = .sbss:0x80576490; // type:object size:0x8 data:4byte lbl_80576498 = .sbss:0x80576498; // type:object size:0x4 align:4 data:float lbl_805764A0 = .sbss:0x805764A0; // type:object size:0x8 align:8 data:double lbl_805764A8 = .sbss:0x805764A8; // type:object size:0x8 align:8 data:double @@ -42392,8 +42396,8 @@ lbl_805764BE = .sbss:0x805764BE; // type:object size:0x2 data:2byte lbl_805764C0 = .sbss:0x805764C0; // type:object size:0x1 data:byte lbl_805764C1 = .sbss:0x805764C1; // type:object size:0x1 data:byte lbl_805764C2 = .sbss:0x805764C2; // type:object size:0x1 data:byte -lbl_805764C4 = .sbss:0x805764C4; // type:object size:0x4 align:4 data:float -lbl_805764C8 = .sbss:0x805764C8; // type:object size:0x4 align:4 data:float +kp_dist_vv1 = .sbss:0x805764C4; // type:object size:0x4 align:4 data:float +kp_err_dist_min = .sbss:0x805764C8; // type:object size:0x4 align:4 data:float lbl_805764D0 = .sbss:0x805764D0; // type:object size:0x8 data:4byte lbl_805764D8 = .sbss:0x805764D8; // type:object size:0x4 data:4byte lbl_805764DC = .sbss:0x805764DC; // type:object size:0x4 data:4byte @@ -49442,8 +49446,7 @@ lbl_8057E99C = .sdata2:0x8057E99C; // type:object size:0x4 align:4 data:float lbl_8057E9A0 = .sdata2:0x8057E9A0; // type:object size:0x4 align:4 data:float lbl_8057E9A8 = .sdata2:0x8057E9A8; // type:object size:0x8 align:8 data:double lbl_8057E9B0 = .sdata2:0x8057E9B0; // type:object size:0x4 data:4byte -lbl_8057E9B4 = .sdata2:0x8057E9B4; // type:object size:0x2 data:2byte -lbl_8057E9B6 = .sdata2:0x8057E9B6; // type:object size:0x1 data:byte +lbl_8057E9B4 = .sdata2:0x8057E9B4; // type:object size:0x4 data:2byte lbl_8057E9B8 = .sdata2:0x8057E9B8; // type:object size:0x4 align:4 data:float lbl_8057E9BC = .sdata2:0x8057E9BC; // type:object size:0x4 align:4 data:float lbl_8057E9C0 = .sdata2:0x8057E9C0; // type:object size:0x4 align:4 data:float @@ -49469,8 +49472,7 @@ lbl_8057EA38 = .sdata2:0x8057EA38; // type:object size:0x4 align:4 data:float lbl_8057EA3C = .sdata2:0x8057EA3C; // type:object size:0x4 align:4 data:float lbl_8057EA40 = .sdata2:0x8057EA40; // type:object size:0x4 align:4 data:float lbl_8057EA44 = .sdata2:0x8057EA44; // type:object size:0x4 align:4 data:float -lbl_8057EA48 = .sdata2:0x8057EA48; // type:object size:0x4 data:4byte -lbl_8057EA4C = .sdata2:0x8057EA4C; // type:object size:0x2 data:2byte +lbl_8057EA48 = .sdata2:0x8057EA48; // type:object size:0x6 lbl_8057EA50 = .sdata2:0x8057EA50; // type:object size:0x4 align:4 data:float lbl_8057EA58 = .sdata2:0x8057EA58; // type:object size:0x4 align:4 data:float lbl_8057EA5C = .sdata2:0x8057EA5C; // type:object size:0x4 align:4 data:float @@ -51909,28 +51911,33 @@ SOME_MEM_LIST = .bss:0x805EE160; // type:object size:0x10 lbl_805EE170 = .bss:0x805EE170; // type:object size:0x30 s_homeDir = .bss:0x805EE1A0; // type:object size:0x40 scope:local s_message = .bss:0x805EE200; // type:object size:0x100 scope:local +@LOCAL@asyncRoutine__FlPv@s_rBuf = .bss:0x805EE300; // type:object size:0x100 scope:local +@LOCAL@asyncRoutine__FlPv@s_wBuf@0 = .bss:0x805EE400; // type:object size:0x100 scope:local Control = .bss:0x805EE500; // type:object size:0x190 scope:local data:4byte ConfBuf = .bss:0x805EE6A0; // type:object size:0x4000 scope:local -lbl_805F26A0 = .bss:0x805F26A0; // type:object size:0x4000 +ConfBufForFlush = .bss:0x805F26A0; // type:object size:0x4000 scope:local lbl_805F66A0 = .bss:0x805F66A0; // type:object size:0x30 -lbl_805F66D0 = .bss:0x805F66D0; // type:object size:0x10 data:4byte +__rvl_p_wpadcb = .bss:0x805F66D0; // type:object size:0x10 data:4byte lbl_805F66E0 = .bss:0x805F66E0; // type:object size:0x1000 lbl_805F76E0 = .bss:0x805F76E0; // type:object size:0x2FA0 data:byte lbl_805FA680 = .bss:0x805FA680; // type:object size:0x60 -lbl_805FA6E0 = .bss:0x805FA6E0; // type:object size:0x750 data:4byte -lbl_805FAE30 = .bss:0x805FAE30; // type:object size:0x108 -lbl_805FAF38 = .bss:0x805FAF38; // type:object size:0x60 -lbl_805FAF98 = .bss:0x805FAF98; // type:object size:0x468 data:byte -lbl_805FB400 = .bss:0x805FB400; // type:object size:0xA0 data:2byte -lbl_805FB4A0 = .bss:0x805FB4A0; // type:object size:0x1A0 -lbl_805FB640 = .bss:0x805FB640; // type:object size:0x1208 -lbl_805FC848 = .bss:0x805FC848; // type:object size:0x20 -lbl_805FC868 = .bss:0x805FC868; // type:object size:0x20 -KPAD_Controllers = .bss:0x805FC888; // type:object size:0x1A20 +__rvl_wudcb = .bss:0x805FA6E0; // type:object size:0x750 data:4byte +_wudDiscResp = .bss:0x805FAE30; // type:object size:0x108 scope:local +_wudDiscWork = .bss:0x805FAF38; // type:object size:0x60 scope:local +_scArray = .bss:0x805FAF98; // type:object size:0x461 scope:local data:byte +_wudNandWbcInfo = .bss:0x805FB400; // type:object size:0xA0 scope:local data:2byte +_dev_handle_to_bda = .bss:0x805FB4A0; // type:object size:0x40 scope:local +_wudNandFileInfo = .bss:0x805FB4E0; // type:object size:0x8C scope:local +_wudNandBlock = .bss:0x805FB56C; // type:object size:0xBC scope:local +_wudHandlerStack = .bss:0x805FB640; // type:object size:0x1000 scope:local +_spArray = .bss:0x805FC640; // type:object size:0x205 scope:local +_dev_handle_queue_size = .bss:0x805FC848; // type:object size:0x20 scope:local +_dev_handle_notack_num = .bss:0x805FC868; // type:object size:0x20 scope:local +inside_kpads = .bss:0x805FC888; // type:object size:0x1A20 lbl_805FE2A8 = .bss:0x805FE2A8; // type:object size:0x30 align:4 data:float lbl_805FE2D8 = .bss:0x805FE2D8; // type:object size:0x20 align:8 data:double lbl_805FE2F8 = .bss:0x805FE2F8; // type:object size:0x30 align:8 data:double -lbl_805FE328 = .bss:0x805FE328; // type:object size:0x10 data:4byte +Fxyz_0 = .bss:0x805FE328; // type:object size:0x10 data:4byte lbl_805FE338 = .bss:0x805FE338; // type:object size:0x28AE0 data:byte lbl_80626E18 = .bss:0x80626E18; // type:object size:0x28 lbl_80626E40 = .bss:0x80626E40; // type:object size:0x60 data:4byte From b180f7c0a0202f330bfb82e60b9a9c686e6fc36c Mon Sep 17 00:00:00 2001 From: robojumper Date: Sun, 13 Jul 2025 22:50:35 +0200 Subject: [PATCH 29/36] bte symbols --- config/SOUE01/symbols.txt | 142 +++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 18873061..d13e601f 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -23124,7 +23124,7 @@ GKI_enqueue = .text:0x803F8B30; // type:function size:0x13C GKI_enqueue_head = .text:0x803F8C70; // type:function size:0x140 GKI_dequeue = .text:0x803F8DB0; // type:function size:0xA0 GKI_remove_from_queue = .text:0x803F8E50; // type:function size:0xC4 -fn_803F8F20 = .text:0x803F8F20; // type:function size:0x8 +GKI_getfirst = .text:0x803F8F20; // type:function size:0x8 GKI_getnext = .text:0x803F8F30; // type:function size:0x1C GKI_queue_is_empty = .text:0x803F8F50; // type:function size:0x10 GKI_create_pool = .text:0x803F8F60; // type:function size:0x348 @@ -23138,7 +23138,7 @@ GKI_update_timer_list = .text:0x803F9700; // type:function size:0x90 GKI_add_to_timer_list = .text:0x803F9790; // type:function size:0xEC GKI_remove_from_timer_list = .text:0x803F9880; // type:function size:0x124 GKI_init = .text:0x803F99B0; // type:function size:0x90 -fn_803F9A40 = .text:0x803F9A40; // type:function size:0xA8 +GKI_shutdown = .text:0x803F9A40; // type:function size:0xA8 GKI_run = .text:0x803F9AF0; // type:function size:0x4 GKI_sched_lock = .text:0x803F9B00; // type:function size:0x4 GKI_sched_unlock = .text:0x803F9B10; // type:function size:0x4 @@ -23164,7 +23164,7 @@ uusb_ReadIntrDataCB = .text:0x803FA430; // type:function size:0x1A8 uusb_ReadBulkDataCB = .text:0x803FA5E0; // type:function size:0x19C uusb_WriteCtrlDataCB = .text:0x803FA780; // type:function size:0xEC uusb_WriteBulkDataCB = .text:0x803FA870; // type:function size:0xE0 -fn_803FA950 = .text:0x803FA950; // type:function size:0x208 +UUSB_Register = .text:0x803FA950; // type:function size:0x208 UUSB_Open = .text:0x803FAB60; // type:function size:0x18C UUSB_Read = .text:0x803FACF0; // type:function size:0x8 UUSB_Write = .text:0x803FAD00; // type:function size:0x20C @@ -23186,16 +23186,16 @@ LogMsg_6 = .text:0x803FB290; // type:function size:0x18 BTUInterruptHandler = .text:0x803FB2B0; // type:function size:0x18 BTA_Init = .text:0x803FB2D0; // type:function size:0xDC BTA_CleanUp = .text:0x803FB3B0; // type:function size:0x34 -bta_usb_close_cb = .text:0x803FB3F0; // type:function size:0x30 +bta_usb_close_evt = .text:0x803FB3F0; // type:function size:0x30 btu_task_init = .text:0x803FB420; // type:function size:0x40 btu_task_msg_handler = .text:0x803FB460; // type:function size:0x37C btu_start_timer = .text:0x803FB7E0; // type:function size:0x70 btu_stop_timer = .text:0x803FB850; // type:function size:0x14 bdcpy = .text:0x803FB864; // type:function size:0x34 bdcmp = .text:0x803FB898; // type:function size:0xA0 -fn_803FB938 = .text:0x803FB938; // type:function size:0x10 -fn_803FB948 = .text:0x803FB948; // type:function size:0x10 -fn_803FB958 = .text:0x803FB958; // type:function size:0x10 +bta_sys_rm_register = .text:0x803FB938; // type:function size:0x10 +bta_sys_compress_register = .text:0x803FB948; // type:function size:0x10 +bta_sys_pm_register = .text:0x803FB958; // type:function size:0x10 bta_sys_conn_open = .text:0x803FB968; // type:function size:0xC4 bta_sys_conn_close = .text:0x803FBA2C; // type:function size:0xC4 bta_sys_sco_close = .text:0x803FBAF0; // type:function size:0x34 @@ -23204,7 +23204,7 @@ bta_sys_busy = .text:0x803FBB58; // type:function size:0x34 bta_sys_init = .text:0x803FBB8C; // type:function size:0x64 bta_sys_event = .text:0x803FBBF0; // type:function size:0xEC bta_sys_timer_update = .text:0x803FBCDC; // type:function size:0x20 -fn_803FBCFC = .text:0x803FBCFC; // type:function size:0x14 +bta_sys_register = .text:0x803FBCFC; // type:function size:0x14 bta_sys_sendmsg = .text:0x803FBD10; // type:function size:0x1C bta_sys_start_timer = .text:0x803FBD2C; // type:function size:0x20 bta_sys_stop_timer = .text:0x803FBD4C; // type:function size:0x14 @@ -23218,19 +23218,19 @@ utl_freebuf = .text:0x803FBFB0; // type:function size:0x44 bta_dm_enable = .text:0x803FBFF4; // type:function size:0x110 bta_dm_disable = .text:0x803FC104; // type:function size:0xB0 bta_dm_disable_timer_cback = .text:0x803FC1B4; // type:function size:0xBC -fn_803FC270 = .text:0x803FC270; // type:function size:0x8 +bta_dm_set_dev_name = .text:0x803FC270; // type:function size:0x8 bta_dm_set_visibility = .text:0x803FC278; // type:function size:0x48 bta_dm_bond = .text:0x803FC2C0; // type:function size:0x70 bta_dm_pin_reply = .text:0x803FC330; // type:function size:0x9C bta_dm_auth_reply = .text:0x803FC3CC; // type:function size:0xD4 bta_dm_search_start = .text:0x803FC4A0; // type:function size:0x60 bta_dm_search_cancel = .text:0x803FC500; // type:function size:0x84 -fn_803FC584 = .text:0x803FC584; // type:function size:0x114 +bta_dm_discover = .text:0x803FC584; // type:function size:0x114 bta_dm_inq_cmpl = .text:0x803FC698; // type:function size:0x224 bta_dm_rmt_name = .text:0x803FC8BC; // type:function size:0x16C bta_dm_disc_rmt_name = .text:0x803FCA28; // type:function size:0x64 bta_dm_sdp_result = .text:0x803FCA8C; // type:function size:0x268 -fn_803FCCF4 = .text:0x803FCCF4; // type:function size:0x18 +bta_dm_search_cmpl = .text:0x803FCCF4; // type:function size:0x18 bta_dm_disc_result = .text:0x803FCD0C; // type:function size:0x50 bta_dm_search_result = .text:0x803FCD5C; // type:function size:0x88 bta_dm_search_timer_cback = .text:0x803FCDE4; // type:function size:0x4C @@ -23238,12 +23238,12 @@ bta_dm_free_sdp_db = .text:0x803FCE30; // type:function size:0x44 bta_dm_queue_search = .text:0x803FCE74; // type:function size:0x48 bta_dm_queue_disc = .text:0x803FCEBC; // type:function size:0x48 bta_dm_search_clear_queue = .text:0x803FCF04; // type:function size:0x44 -bta_search_cancel_cmpl = .text:0x803FCF48; // type:function size:0x44 +bta_dm_search_cancel_cmpl = .text:0x803FCF48; // type:function size:0x44 bta_dm_search_cancel_transac_cmpl = .text:0x803FCF8C; // type:function size:0x5C -fn_803FCFE8 = .text:0x803FCFE8; // type:function size:0x18 -fn_803FD000 = .text:0x803FD000; // type:function size:0x1A0 +bta_dm_search_cancel_notify = .text:0x803FCFE8; // type:function size:0x18 +bta_dm_find_services = .text:0x803FD000; // type:function size:0x1A0 bta_dm_discover_next_device = .text:0x803FD1A0; // type:function size:0xE0 -fn_803FD280 = .text:0x803FD280; // type:function size:0x48 +bta_dm_sdp_callback = .text:0x803FD280; // type:function size:0x48 bta_dm_inq_results_cb = .text:0x803FD2C8; // type:function size:0x90 bta_dm_inq_cmpl_cb = .text:0x803FD358; // type:function size:0x4C bta_dm_service_search_remname_cback = .text:0x803FD3A4; // type:function size:0x40 @@ -23253,11 +23253,11 @@ bta_dm_cancel_rmt_name = .text:0x803FD4F8; // type:function size:0x4 bta_dm_authorize_cback = .text:0x803FD4FC; // type:function size:0xC8 bta_dm_pinname_cback = .text:0x803FD5C4; // type:function size:0xC0 bta_dm_pin_cback = .text:0x803FD684; // type:function size:0x130 -fn_803FD7B4 = .text:0x803FD7B4; // type:function size:0x8 +bta_dm_link_key_request_cback = .text:0x803FD7B4; // type:function size:0x8 bta_dm_new_link_key_cback = .text:0x803FD7BC; // type:function size:0x9C bta_dm_authentication_complete_cback = .text:0x803FD858; // type:function size:0x84 bta_dm_local_addr_cback = .text:0x803FD8DC; // type:function size:0x28 -fn_803FD904 = .text:0x803FD904; // type:function size:0x3C +bta_dm_signal_strength = .text:0x803FD904; // type:function size:0x3C bta_dm_signal_strength_timer_cback = .text:0x803FD940; // type:function size:0xF4 bta_dm_acl_change_cback = .text:0x803FDA34; // type:function size:0x70 bta_dm_acl_change = .text:0x803FDAA4; // type:function size:0x280 @@ -23269,7 +23269,7 @@ bta_dm_compress_cback = .text:0x803FDEFC; // type:function size:0x238 bta_dm_rm_cback = .text:0x803FE134; // type:function size:0x108 bta_dm_keep_acl = .text:0x803FE23C; // type:function size:0x84 bta_dm_immediate_disable = .text:0x803FE2C0; // type:function size:0x1C -fn_803FE2DC = .text:0x803FE2DC; // type:function size:0x4 +bta_dm_reset_complete = .text:0x803FE2DC; // type:function size:0x4 bta_dm_send_hci_reset = .text:0x803FE2E0; // type:function size:0x50 BTA_EnableBluetooth = .text:0x803FE330; // type:function size:0x88 BTA_DisableBluetooth = .text:0x803FE3B8; // type:function size:0x38 @@ -23305,13 +23305,13 @@ bta_hh_data_act = .text:0x803FFCAC; // type:function size:0x58 bta_hh_handsk_act = .text:0x803FFD04; // type:function size:0x268 bta_hh_ctrl_dat_act = .text:0x803FFF6C; // type:function size:0x1F8 bta_hh_close_act = .text:0x80400164; // type:function size:0x200 -fn_80400364 = .text:0x80400364; // type:function size:0x1C +bta_hh_get_dscp_act = .text:0x80400364; // type:function size:0x1C bta_hh_maint_dev_act = .text:0x80400380; // type:function size:0x164 bta_hh_get_acl_q_info = .text:0x804004E4; // type:function size:0x11C bta_hh_write_dev_act = .text:0x80400600; // type:function size:0x1C8 bta_hh_cback = .text:0x804007C8; // type:function size:0x298 BTA_HhEnable = .text:0x80400A60; // type:function size:0x88 -BTA_HbDisable = .text:0x80400AE8; // type:function size:0x38 +BTA_HhDisable = .text:0x80400AE8; // type:function size:0x38 BTA_HhClose = .text:0x80400B20; // type:function size:0x64 BTA_HhOpen = .text:0x80400B84; // type:function size:0xB4 BTA_HhSendData = .text:0x80400C38; // type:function size:0x90 @@ -23335,9 +23335,9 @@ BTM_SwitchRole = .text:0x80401C0C; // type:function size:0x21C btm_acl_encrypt_change = .text:0x80401E28; // type:function size:0x170 BTM_SetLinkPolicy = .text:0x80401F98; // type:function size:0x1F0 BTM_SetDefaultLinkPolicy = .text:0x80402188; // type:function size:0x10 -fn_80402198 = .text:0x80402198; // type:function size:0x104 -fn_8040229C = .text:0x8040229C; // type:function size:0x8C -fn_80402328 = .text:0x80402328; // type:function size:0x22C +btm_read_link_policy_complete = .text:0x80402198; // type:function size:0x104 +btm_read_remote_version_complete = .text:0x8040229C; // type:function size:0x8C +btm_read_remote_features_complete = .text:0x80402328; // type:function size:0x22C BTM_SetDefaultLinkSuperTout = .text:0x80402554; // type:function size:0x10 BTM_IsAclConnectionUp = .text:0x80402564; // type:function size:0xD8 BTM_GetNumAclLinks = .text:0x8040263C; // type:function size:0x5C @@ -23348,11 +23348,11 @@ btm_acl_role_changed = .text:0x804027E0; // type:function size:0x1F4 btm_acl_timeout = .text:0x804029D4; // type:function size:0x5C btm_get_max_packet_size = .text:0x80402A30; // type:function size:0x1A0 BTM_AclRegisterForChanges = .text:0x80402BD0; // type:function size:0x44 -fn_80402C14 = .text:0x80402C14; // type:function size:0xD8 -fn_80402CEC = .text:0x80402CEC; // type:function size:0x13C +btm_qos_setup_complete = .text:0x80402C14; // type:function size:0xD8 +BTM_ReadRSSI = .text:0x80402CEC; // type:function size:0x13C BTM_ReadLinkQuality = .text:0x80402E28; // type:function size:0x13C -fn_80402F64 = .text:0x80402F64; // type:function size:0x11C -fn_80403080 = .text:0x80403080; // type:function size:0x118 +btm_read_rssi_complete = .text:0x80402F64; // type:function size:0x11C +btm_read_link_quality_complete = .text:0x80403080; // type:function size:0x118 btm_remove_acl = .text:0x80403198; // type:function size:0xBC btm_chg_all_acl_pkt_types = .text:0x80403254; // type:function size:0x220 BTM_SecAddDevice = .text:0x80403474; // type:function size:0x188 @@ -23369,38 +23369,38 @@ BTM_SendHciReset = .text:0x80403D2C; // type:function size:0xA8 BTM_IsDeviceUp = .text:0x80403DD4; // type:function size:0x1C BTM_SetAfhChannels = .text:0x80403DF0; // type:function size:0xF0 btm_dev_timeout = .text:0x80403EE0; // type:function size:0x298 -fn_80404178 = .text:0x80404178; // type:function size:0x1C4 -fn_8040433C = .text:0x8040433C; // type:function size:0xC8 -fn_80404404 = .text:0x80404404; // type:function size:0xBC -fn_804044C0 = .text:0x804044C0; // type:function size:0x4FC +btm_reset_complete = .text:0x80404178; // type:function size:0x1C4 +btm_read_hci_buf_size_complete = .text:0x8040433C; // type:function size:0xC8 +btm_read_local_version_complete = .text:0x80404404; // type:function size:0xBC +btm_read_local_features_complete = .text:0x804044C0; // type:function size:0x4FC BTM_SetLocalDeviceName = .text:0x804049BC; // type:function size:0xB8 -fn_80404A74 = .text:0x80404A74; // type:function size:0x8C +btm_read_local_name_complete = .text:0x80404A74; // type:function size:0x8C BTM_ReadLocalDeviceAddr = .text:0x80404B00; // type:function size:0x40 -fn_80404B40 = .text:0x80404B40; // type:function size:0x48 +btm_read_local_addr_complete = .text:0x80404B40; // type:function size:0x48 BTM_ReadLocalVersion = .text:0x80404B88; // type:function size:0x4C BTM_SetDeviceClass = .text:0x80404BD4; // type:function size:0x80 BTM_ReadDeviceClass = .text:0x80404C54; // type:function size:0x10 BTM_ReadLocalFeatures = .text:0x80404C64; // type:function size:0x10 BTM_RegisterForDeviceStatusNotif = .text:0x80404C74; // type:function size:0x18 BTM_VendorSpecificCommand = .text:0x80404C8C; // type:function size:0xFC -fn_80404D88 = .text:0x80404D88; // type:function size:0x6C +btm_vsc_complete = .text:0x80404D88; // type:function size:0x6C BTM_RegisterForVSEvents = .text:0x80404DF4; // type:function size:0x38 btm_vendor_specific_evt = .text:0x80404E2C; // type:function size:0x98 BTM_WritePageTimeout = .text:0x80404EC4; // type:function size:0xA0 BTM_ReadStoredLinkKey = .text:0x80404F64; // type:function size:0xD8 BTM_WriteStoredLinkKey = .text:0x8040503C; // type:function size:0xD0 BTM_DeleteStoredLinkKey = .text:0x8040510C; // type:function size:0xD0 -fn_804051DC = .text:0x804051DC; // type:function size:0x7C -fn_80405258 = .text:0x80405258; // type:function size:0x5C -fn_804052B4 = .text:0x804052B4; // type:function size:0x68 +btm_read_stored_link_key_complete = .text:0x804051DC; // type:function size:0x7C +btm_write_stored_link_key_complete = .text:0x80405258; // type:function size:0x5C +btm_delete_stored_link_key_complete = .text:0x804052B4; // type:function size:0x68 btm_return_link_keys_evt = .text:0x8040531C; // type:function size:0x18C -fn_804054A8 = .text:0x804054A8; // type:function size:0x20 +btm_report_device_status = .text:0x804054A8; // type:function size:0x20 btm_discovery_db_init = .text:0x804054C8; // type:function size:0x78 btm_discovery_db_reset = .text:0x80405540; // type:function size:0xB8 -fn_804055F8 = .text:0x804055F8; // type:function size:0x4 +btm_discovery_timeout = .text:0x804055F8; // type:function size:0x4 BTM_SetDiscoverability = .text:0x804055FC; // type:function size:0x284 -fn_80405880 = .text:0x80405880; // type:function size:0xB0 -fn_80405930 = .text:0x80405930; // type:function size:0xB0 +BTM_SetInquiryScanType = .text:0x80405880; // type:function size:0xB0 +BTM_SetPageScanType = .text:0x80405930; // type:function size:0xB0 BTM_SetInquiryMode = .text:0x804059E0; // type:function size:0x98 BTM_SetConnectability = .text:0x80405A78; // type:function size:0x188 BTM_IsInquiryActive = .text:0x80405C00; // type:function size:0x10 @@ -23413,13 +23413,13 @@ BTM_InqDbFirst = .text:0x804060EC; // type:function size:0xB8 BTM_InqDbNext = .text:0x804061A4; // type:function size:0x13C BTM_ClearInqDb = .text:0x804062E0; // type:function size:0xD0 btm_inq_db_reset = .text:0x804063B0; // type:function size:0x198 -fn_80406548 = .text:0x80406548; // type:function size:0x4 +btm_inq_db_init = .text:0x80406548; // type:function size:0x4 btm_inq_find_bdaddr = .text:0x8040654C; // type:function size:0xDC btm_inq_db_new = .text:0x80406628; // type:function size:0x104 btm_set_inq_event_filter = .text:0x8040672C; // type:function size:0xE4 -fn_80406810 = .text:0x80406810; // type:function size:0x220 +btm_event_filter_complete = .text:0x80406810; // type:function size:0x220 btm_process_inq_results = .text:0x80406A30; // type:function size:0x278 -fn_80406CA8 = .text:0x80406CA8; // type:function size:0x104 +btm_process_inq_complete = .text:0x80406CA8; // type:function size:0x104 btm_initiate_rem_name = .text:0x80406DAC; // type:function size:0x150 btm_process_remote_name = .text:0x80406EFC; // type:function size:0x158 btm_inq_rmt_name_failed = .text:0x80407054; // type:function size:0x40 @@ -23427,7 +23427,7 @@ btm_init = .text:0x80407094; // type:function size:0x5C BTM_PmRegister = .text:0x804070F0; // type:function size:0xBC BTM_SetPowerMode = .text:0x804071AC; // type:function size:0x1D0 BTM_ReadPowerMode = .text:0x8040737C; // type:function size:0xB8 -fn_80407434 = .text:0x80407434; // type:function size:0x78 +btm_pm_reset = .text:0x80407434; // type:function size:0x78 btm_pm_sm_alloc = .text:0x804074AC; // type:function size:0x50 btm_pm_compare_modes = .text:0x804074FC; // type:function size:0x21C btm_pm_get_set_mode = .text:0x80407718; // type:function size:0x160 @@ -23443,7 +23443,7 @@ BTM_RemoveSco = .text:0x804084B0; // type:function size:0xB8 btm_remove_sco_links = .text:0x80408568; // type:function size:0x84 btm_sco_removed = .text:0x804085EC; // type:function size:0x114 btm_sco_acl_removed = .text:0x80408700; // type:function size:0xB4 -GKI_freebuf2 = .text:0x804087B4; // type:function size:0x4 +btm_route_sco_data = .text:0x804087B4; // type:function size:0x4 BTM_ChangeEScoLinkParms = .text:0x804087B8; // type:function size:0x1A8 btm_esco_proc_conn_chg = .text:0x80408960; // type:function size:0x104 btm_is_sco_active = .text:0x80408A64; // type:function size:0x70 @@ -23457,14 +23457,14 @@ BTM_SetSecurityLevel = .text:0x80408D88; // type:function size:0x228 BTM_PINCodeReply = .text:0x80408FB0; // type:function size:0xC4 BTM_DeviceAuthorized = .text:0x80409074; // type:function size:0x1DC BTM_SecBond = .text:0x80409250; // type:function size:0x3CC -fn_8040961C = .text:0x8040961C; // type:function size:0x464 +btm_sec_l2cap_access_req = .text:0x8040961C; // type:function size:0x464 btm_sec_mx_access_request = .text:0x80409A80; // type:function size:0x29C btm_sec_conn_req = .text:0x80409D1C; // type:function size:0x12C btm_sec_init = .text:0x80409E48; // type:function size:0x1C btm_sec_dev_reset = .text:0x80409E64; // type:function size:0x40 btm_sec_abort_access_req = .text:0x80409EA4; // type:function size:0xB4 -fn_80409F58 = .text:0x80409F58; // type:function size:0x2E8 -fn_8040A240 = .text:0x8040A240; // type:function size:0x344 +btm_sec_rmt_name_request_complete = .text:0x80409F58; // type:function size:0x2E8 +btm_sec_auth_complete = .text:0x8040A240; // type:function size:0x344 btm_sec_mkey_comp_event = .text:0x8040A584; // type:function size:0xFC btm_sec_encrypt_change = .text:0x8040A680; // type:function size:0x13C btm_sec_is_bonding = .text:0x8040A7BC; // type:function size:0x40 @@ -23486,7 +23486,7 @@ btu_hcif_connection_comp_evt = .text:0x8040C2C4; // type:function size:0xDC btu_hcif_connection_request_evt = .text:0x8040C3A0; // type:function size:0x8C btu_hcif_qos_setup_comp_evt = .text:0x8040C42C; // type:function size:0x100 btu_hcif_esco_connection_comp_evt = .text:0x8040C52C; // type:function size:0xE0 -fn_8040C60C = .text:0x8040C60C; // type:function size:0x158 +btu_hcif_hdl_command_complete = .text:0x8040C60C; // type:function size:0x158 btu_hcif_command_complete_evt = .text:0x8040C764; // type:function size:0x118 btu_hcif_hdl_command_status = .text:0x8040C87C; // type:function size:0x200 btu_hcif_command_status_evt = .text:0x8040CA7C; // type:function size:0x128 @@ -23559,25 +23559,25 @@ btsnd_hcic_set_host_buf_size = .text:0x8040FE6C; // type:function size:0xBC btsnd_hcic_write_link_super_tout = .text:0x8040FF28; // type:function size:0x94 btsnd_hcic_write_cur_iac_lap = .text:0x8040FFBC; // type:function size:0x70 btsnd_hcic_read_local_ver = .text:0x8041002C; // type:function size:0x60 -fn_8041008C = .text:0x8041008C; // type:function size:0x5C +btsnd_hcic_read_local_features = .text:0x8041008C; // type:function size:0x5C btsnd_hcic_read_buffer_size = .text:0x804100E8; // type:function size:0x28 btsnd_hcic_read_bd_addr = .text:0x80410110; // type:function size:0x60 btsnd_hcic_get_link_quality = .text:0x80410170; // type:function size:0x7C btsnd_hcic_read_rssi = .text:0x804101EC; // type:function size:0x78 -fn_80410264 = .text:0x80410264; // type:function size:0x420 +btsnd_hcic_set_afh_channels = .text:0x80410264; // type:function size:0x420 btsnd_hcic_write_inqscan_type = .text:0x80410684; // type:function size:0x30 btsnd_hcic_write_inquiry_mode = .text:0x804106B4; // type:function size:0x30 btsnd_hcic_write_pagescan_type = .text:0x804106E4; // type:function size:0x30 btsnd_hcic_vendor_spec_cmd = .text:0x80410714; // type:function size:0xF4 HID_DevInit = .text:0x80410808; // type:function size:0x68 -fn_80410870 = .text:0x80410870; // type:function size:0xC0 +hidd_conn_initiate = .text:0x80410870; // type:function size:0xC0 hidd_proc_repage_timeout = .text:0x80410930; // type:function size:0xC8 hidd_pm_set_now = .text:0x804109F8; // type:function size:0x1D8 hidd_pm_proc_mode_change = .text:0x80410BD0; // type:function size:0x158 hidd_pm_inact_timeout = .text:0x80410D28; // type:function size:0x4C HID_HostGetSDPRecord = .text:0x80410D74; // type:function size:0xC8 -fn_80410E3C = .text:0x80410E3C; // type:function size:0x450 -fn_8041128C = .text:0x8041128C; // type:function size:0x44 +hidh_search_callback = .text:0x80410E3C; // type:function size:0x450 +HID_HostInit = .text:0x8041128C; // type:function size:0x44 HID_HostRegister = .text:0x804112D0; // type:function size:0x7C HID_HostDeregister = .text:0x8041134C; // type:function size:0xE4 HID_HostAddDev = .text:0x80411430; // type:function size:0x190 @@ -23600,9 +23600,9 @@ hidh_l2cif_disconnect_cfm = .text:0x80412F98; // type:function size:0x248 hidh_l2cif_cong_ind = .text:0x804131E0; // type:function size:0x1F8 hidh_l2cif_data_ind = .text:0x804133D8; // type:function size:0x398 hidh_conn_snd_data = .text:0x80413770; // type:function size:0x29C -fn_80413A0C = .text:0x80413A0C; // type:function size:0xFC +hidh_conn_initiate = .text:0x80413A0C; // type:function size:0xFC hidh_conn_dereg = .text:0x80413B08; // type:function size:0x2C -fn_80413B34 = .text:0x80413B34; // type:function size:0x19C +L2CA_Register = .text:0x80413B34; // type:function size:0x19C L2CA_Deregister = .text:0x80413CD0; // type:function size:0x90 L2CA_ConnectReq = .text:0x80413D60; // type:function size:0x234 L2CA_ConnectRsp = .text:0x80413F94; // type:function size:0x190 @@ -23616,15 +23616,15 @@ L2CA_SetIdleTimeoutByBdAddr = .text:0x804145E0; // type:function size:0x100 L2CA_SetTraceLevel = .text:0x804146E0; // type:function size:0x1C L2CA_RegisterCompression = .text:0x804146FC; // type:function size:0x4 l2c_csm_execute = .text:0x80414700; // type:function size:0x4C -fn_8041474C = .text:0x8041474C; // type:function size:0x294 -fn_804149E0 = .text:0x804149E0; // type:function size:0x170 -fn_80414B50 = .text:0x80414B50; // type:function size:0x168 -fn_80414CB8 = .text:0x80414CB8; // type:function size:0x244 -fn_80414EFC = .text:0x80414EFC; // type:function size:0x1D8 -fn_804150D4 = .text:0x804150D4; // type:function size:0x3C8 -fn_8041549C = .text:0x8041549C; // type:function size:0x25C -fn_804156F8 = .text:0x804156F8; // type:function size:0x1E4 -fn_804158DC = .text:0x804158DC; // type:function size:0x15C +l2c_csm_closed = .text:0x8041474C; // type:function size:0x294 +l2c_csm_orig_w4_sec_comp = .text:0x804149E0; // type:function size:0x170 +l2c_csm_term_w4_sec_comp = .text:0x80414B50; // type:function size:0x168 +l2c_csm_w4_l2cap_connect_rsp = .text:0x80414CB8; // type:function size:0x244 +l2c_csm_w4_l2ca_connect_rsp = .text:0x80414EFC; // type:function size:0x1D8 +l2c_csm_config = .text:0x804150D4; // type:function size:0x3C8 +l2c_csm_open = .text:0x8041549C; // type:function size:0x25C +l2c_csm_w4_l2cap_disconnect_rsp = .text:0x804156F8; // type:function size:0x1E4 +l2c_csm_w4_l2ca_disconnect_rsp = .text:0x804158DC; // type:function size:0x15C forward_peer_data = .text:0x80415A38; // type:function size:0x1A4 l2c_link_hci_conn_req = .text:0x80415BDC; // type:function size:0x154 l2c_link_hci_conn_comp = .text:0x80415D30; // type:function size:0x238 @@ -23682,8 +23682,8 @@ l2cu_create_conn_after_switch = .text:0x80419A14; // type:function size:0xD0 l2cu_find_lcb_by_state = .text:0x80419AE4; // type:function size:0x90 l2cu_lcb_disconnecting = .text:0x80419B74; // type:function size:0xE8 RFCOMM_Init = .text:0x80419C5C; // type:function size:0x50 -fn_80419CAC = .text:0x80419CAC; // type:function size:0x160 -fn_80419E0C = .text:0x80419E0C; // type:function size:0x9C +PORT_StartCnf = .text:0x80419CAC; // type:function size:0x160 +PORT_StartInd = .text:0x80419E0C; // type:function size:0x9C PORT_ParNegInd = .text:0x80419EA8; // type:function size:0x1B0 PORT_ParNegCnf = .text:0x8041A058; // type:function size:0x104 PORT_DlcEstablishInd = .text:0x8041A15C; // type:function size:0x140 @@ -23694,7 +23694,7 @@ PORT_ControlInd = .text:0x8041A648; // type:function size:0x178 PORT_ControlCnf = .text:0x8041A7C0; // type:function size:0xC4 PORT_LineStatusInd = .text:0x8041A884; // type:function size:0xC8 PORT_DlcReleaseInd = .text:0x8041A94C; // type:function size:0x68 -fn_8041A9B4 = .text:0x8041A9B4; // type:function size:0xA0 +PORT_CloseInd = .text:0x8041A9B4; // type:function size:0xA0 Port_TimeOutCloseMux = .text:0x8041AA54; // type:function size:0x98 PORT_DataInd = .text:0x8041AAEC; // type:function size:0x200 PORT_FlowInd = .text:0x8041ACEC; // type:function size:0x130 @@ -23744,7 +23744,7 @@ rfc_process_fcon = .text:0x8041DBA4; // type:function size:0x64 rfc_process_fcoff = .text:0x8041DC08; // type:function size:0x64 rfc_process_l2cap_congestion = .text:0x8041DC6C; // type:function size:0x88 rfc_set_port_state = .text:0x8041DCF4; // type:function size:0xA4 -fn_8041DD98 = .text:0x8041DD98; // type:function size:0x2C +RFCOMM_StartRsp = .text:0x8041DD98; // type:function size:0x2C RFCOMM_DlcEstablishReq = .text:0x8041DDC4; // type:function size:0x68 RFCOMM_DlcEstablishRsp = .text:0x8041DE2C; // type:function size:0x70 RFCOMM_ParNegReq = .text:0x8041DE9C; // type:function size:0xE0 @@ -23781,7 +23781,7 @@ rfc_port_timer_start = .text:0x8041FC3C; // type:function size:0x80 rfc_port_timer_stop = .text:0x8041FCBC; // type:function size:0x58 rfc_check_mcb_active = .text:0x8041FD14; // type:function size:0xC4 rfcomm_process_timeout = .text:0x8041FDD8; // type:function size:0x3C -fn_8041FE14 = .text:0x8041FE14; // type:function size:0x54 +rfc_sec_check_complete = .text:0x8041FE14; // type:function size:0x54 rfc_port_closed = .text:0x8041FE68; // type:function size:0x158 rfc_inc_credit = .text:0x8041FFC0; // type:function size:0x8C rfc_dec_credit = .text:0x8042004C; // type:function size:0x3C From 577b27f3ef87f1c05edd3aaaa6a03ec84f43c379 Mon Sep 17 00:00:00 2001 From: robojumper Date: Sun, 13 Jul 2025 23:24:19 +0200 Subject: [PATCH 30/36] Fixes and small bte stuff --- config/SOUE01/splits.txt | 20 +++++++++++++++++++- config/SOUE01/symbols.txt | 21 ++++++++++++++------- configure.py | 5 +++++ src/nw4r/db/db_exception.cpp | 2 -- 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index aa8032f4..1a2efb54 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -2556,6 +2556,13 @@ revolution/ax/AXVPB.c: .sdata2 start:0x8057E5E8 end:0x8057E608 .bss start:0x805D5260 end:0x805E6960 +revolution/ax/AXComp.c: + .data start:0x8054DA20 end:0x8054E9E0 + +revolution/ax/DSPCode.c: + .data start:0x8054E9E0 end:0x805509E0 + .sdata start:0x80574910 end:0x80574918 + revolution/ax/AXProf.c: .text start:0x8039F290 end:0x8039F2D0 align:16 .sbss start:0x80575F70 end:0x80575F80 @@ -3111,8 +3118,19 @@ revolution/usb/usb.c: .sdata start:0x80574CE8 end:0x80574D08 .sbss start:0x805764D8 end:0x80576500 +revolution/bte/gki_buffer.c: + .text start:0x803F7F80 end:0x803F9418 align:16 + .data start:0x80566530 end:0x80566678 + +revolution/bte/gki_time.c: + .text start:0x803F9420 end:0x803F99A4 align:16 + +revolution/bte/gki_ppc.c: + .text start:0x803F99B0 end:0x803F9CB4 align:16 + .bss start:0x805FE338 end:0x80626E18 + RVL_SDK/bte/BTE.c: - .text start:0x803F7F80 end:0x80425754 align:16 + .text start:0x803F9CC0 end:0x80425754 align:16 revolution/ipc/ipcMain.c: .text start:0x80425760 end:0x80425848 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index d13e601f..1565fcb0 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -38245,12 +38245,19 @@ lbl_80565C90 = .data:0x80565C90; // type:object size:0x24 lbl_80565CB4 = .data:0x80565CB4; // type:object size:0x24 e_dir = .data:0x80565CD8; // type:object size:0x28 data:4byte lbl_80565D00 = .data:0x80565D00; // type:object size:0x830 -lbl_80566530 = .data:0x80566530; // type:object size:0x18 -lbl_80566548 = .data:0x80566548; // type:object size:0x98 -lbl_805665E0 = .data:0x805665E0; // type:object size:0x1C -lbl_805665FC = .data:0x805665FC; // type:object size:0x20 -lbl_8056661C = .data:0x8056661C; // type:object size:0x44 -lbl_80566660 = .data:0x80566660; // type:object size:0x18 +lbl_80566530 = .data:0x80566530; // type:object size:0x15 data:string +lbl_80566548 = .data:0x80566548; // type:object size:0x18 data:string +lbl_80566560 = .data:0x80566560; // type:object size:0x15 data:string +lbl_80566578 = .data:0x80566578; // type:object size:0x13 data:string +lbl_8056658C = .data:0x8056658C; // type:object size:0xC data:string +lbl_80566598 = .data:0x80566598; // type:object size:0x18 data:string +lbl_805665B0 = .data:0x805665B0; // type:object size:0x18 data:string +lbl_805665C8 = .data:0x805665C8; // type:object size:0x15 data:string +lbl_805665E0 = .data:0x805665E0; // type:object size:0x1B data:string +lbl_805665FC = .data:0x805665FC; // type:object size:0x1D data:string +lbl_8056661C = .data:0x8056661C; // type:object size:0x22 data:string +lbl_8056663E = .data:0x8056663E; // type:object size:0x22 +lbl_80566660 = .data:0x80566660; // type:object size:0x12 data:string lbl_80566678 = .data:0x80566678; // type:object size:0x3C lbl_805666B4 = .data:0x805666B4; // type:object size:0x34 lbl_805666E8 = .data:0x805666E8; // type:object size:0x14 @@ -51938,7 +51945,7 @@ lbl_805FE2A8 = .bss:0x805FE2A8; // type:object size:0x30 align:4 data:float lbl_805FE2D8 = .bss:0x805FE2D8; // type:object size:0x20 align:8 data:double lbl_805FE2F8 = .bss:0x805FE2F8; // type:object size:0x30 align:8 data:double Fxyz_0 = .bss:0x805FE328; // type:object size:0x10 data:4byte -lbl_805FE338 = .bss:0x805FE338; // type:object size:0x28AE0 data:byte +gki_cb = .bss:0x805FE338; // type:object size:0x28AE0 data:byte lbl_80626E18 = .bss:0x80626E18; // type:object size:0x28 lbl_80626E40 = .bss:0x80626E40; // type:object size:0x60 data:4byte lbl_80626EA0 = .bss:0x80626EA0; // type:object size:0x1000 diff --git a/configure.py b/configure.py index c7ea07ef..06cbd47f 100644 --- a/configure.py +++ b/configure.py @@ -1322,6 +1322,8 @@ config.libs = [ Object(NonMatching, "revolution/ax/AXOut.c"), Object(NonMatching, "revolution/ax/AXSPB.c"), Object(NonMatching, "revolution/ax/AXVPB.c"), + Object(NonMatching, "revolution/ax/AXComp.c"), + Object(NonMatching, "revolution/ax/DSPCode.c"), Object(NonMatching, "revolution/ax/AXProf.c"), Object(NonMatching, "revolution/axfx/AXFXReverbHi.c"), Object(NonMatching, "revolution/axfx/AXFXReverbHiExp.c"), @@ -1432,6 +1434,9 @@ config.libs = [ Object(NonMatching, "revolution/kpad/KMPLS.c"), Object(NonMatching, "revolution/kpad/KZMplsTestSub.c"), Object(NonMatching, "revolution/usb/usb.c"), + Object(NonMatching, "revolution/bte/gki_buffer.c"), + Object(NonMatching, "revolution/bte/gki_time.c"), + Object(NonMatching, "revolution/bte/gki_ppc.c"), Object(NonMatching, "RVL_SDK/bte/BTE.c"), Object(NonMatching, "revolution/ipc/ipcMain.c"), Object(NonMatching, "revolution/ipc/ipcclt.c"), diff --git a/src/nw4r/db/db_exception.cpp b/src/nw4r/db/db_exception.cpp index 36867e95..dccba52e 100644 --- a/src/nw4r/db/db_exception.cpp +++ b/src/nw4r/db/db_exception.cpp @@ -29,8 +29,6 @@ static struct ExceptionStruct sException; static u8 sThreadBuffer[0x4000] ALIGN_DECL(0x20); -extern "C" u32 lbl_80574960; - const char *CPU_EXP_NAME[] = { "SYSTEM RESET", "MACHINE CHECK", From 73da7e06d6b5dd4cde2934f92c948b6c6a8badc0 Mon Sep 17 00:00:00 2001 From: robojumper Date: Tue, 15 Jul 2025 21:42:47 +0200 Subject: [PATCH 31/36] Split bte --- config/SOUE01/splits.txt | 293 +++++++++++++++++++++++++++++++++++++- config/SOUE01/symbols.txt | 125 ++++++++-------- configure.py | 66 ++++++++- 3 files changed, 416 insertions(+), 68 deletions(-) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 1a2efb54..0ca28784 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -3115,8 +3115,8 @@ revolution/kpad/KZMplsTestSub.c: revolution/usb/usb.c: .text start:0x803F6A30 end:0x803F7F7C align:16 .data start:0x80565D00 end:0x80566530 - .sdata start:0x80574CE8 end:0x80574D08 - .sbss start:0x805764D8 end:0x80576500 + .sdata start:0x80574CE8 end:0x80574CF8 + .sbss start:0x805764D8 end:0x805764E8 revolution/bte/gki_buffer.c: .text start:0x803F7F80 end:0x803F9418 align:16 @@ -3129,8 +3129,293 @@ revolution/bte/gki_ppc.c: .text start:0x803F99B0 end:0x803F9CB4 align:16 .bss start:0x805FE338 end:0x80626E18 -RVL_SDK/bte/BTE.c: - .text start:0x803F9CC0 end:0x80425754 align:16 +revolution/bte/hcisu_h2.c: + .text start:0x803F9CC0 end:0x803FA37C align:16 + .rodata start:0x804F5870 end:0x804F5888 + .data start:0x80566678 end:0x805666E8 + .sdata2 start:0x8057EB08 end:0x8057EB18 + .bss start:0x80626E18 end:0x80626E40 + +revolution/bte/uusb_ppc.c: + .text start:0x803FA380 end:0x803FB004 align:16 + .sdata start:0x80574CF8 end:0x80574D08 + .sbss start:0x805764E8 end:0x80576500 + .bss start:0x80626E40 end:0x80628EA0 + +revolution/bte/bta_dm_cfg.c: + .rodata start:0x804F5888 end:0x804F5918 + .sdata start:0x80574D08 end:0x80574D20 + .sbss2 start:0x8057FFA8 end:0x8057FFB0 + +revolution/bte/bta_hh_cfg.c: + .rodata start:0x804F5918 end:0x804F5928 + .sdata start:0x80574D20 end:0x80574D30 + +revolution/bte/bta_sys_cfg.c: + .sdata start:0x80574D30 end:0x80574D38 + .sdata2 start:0x8057EB18 end:0x8057EB20 + +revolution/bte/bte_hcisu.c: + .text start:0x803FB010 end:0x803FB0E0 align:16 + .sbss start:0x80576500 end:0x80576508 + +revolution/bte/bte_init.c: + .text start:0x803FB0E0 end:0x803FB10C align:16 + +revolution/bte/bte_logmsg.c: + .text start:0x803FB110 end:0x803FB2A8 align:16 + .sdata start:0x80574D38 end:0x80574D40 + .bss start:0x80628EA0 end:0x80629680 + +revolution/bte/bte_main.c: + .text start:0x803FB2B0 end:0x803FB420 align:16 + .sdata start:0x80574D40 end:0x80574D48 + .sbss start:0x80576508 end:0x80576510 + .bss start:0x80629680 end:0x8062A6B0 + +revolution/bte/btu_task1.c: + .text start:0x803FB420 end:0x803FB864 align:16 + .sdata start:0x80574D48 end:0x80574D50 + .sbss start:0x80576510 end:0x80576518 + .bss start:0x8062A6B0 end:0x8062A738 + +revolution/bte/bd.c: + .text start:0x803FB864 end:0x803FB938 + .sbss2 start:0x8057FFB0 end:0x8057FFB8 + +revolution/bte/bta_sys_conn.c: + .text start:0x803FB938 end:0x803FBB8C + +revolution/bte/bta_sys_main.c: + .text start:0x803FBB8C end:0x803FBDD0 + .data start:0x805666E8 end:0x80566720 + .sbss start:0x80576518 end:0x80576520 + .bss start:0x8062A738 end:0x8062A7C8 + +revolution/bte/ptim.c: + .text start:0x803FBDD0 end:0x803FBFB0 + +revolution/bte/utl.c: + .text start:0x803FBFB0 end:0x803FBFF4 + +revolution/bte/bta_dm_act.c: + .text start:0x803FBFF4 end:0x803FE330 + .rodata start:0x804F5928 end:0x804F59D0 + .data start:0x80566720 end:0x80566860 + .sdata2 start:0x8057EB20 end:0x8057EB28 + .bss start:0x8062A7C8 end:0x8062A7F8 + +revolution/bte/bta_dm_api.c: + .text start:0x803FE330 end:0x803FE79C + .sdata2 start:0x8057EB28 end:0x8057EB38 + +revolution/bte/bta_dm_main.c: + .text start:0x803FE79C end:0x803FE8FC + .rodata start:0x804F59D0 end:0x804F5AF8 + .bss start:0x8062A7F8 end:0x8062A978 + +revolution/bte/bta_dm_pm.c: + .text start:0x803FE8FC end:0x803FF318 + .data start:0x80566860 end:0x805668B0 + .bss start:0x8062A978 end:0x8062A9A8 + +revolution/bte/bta_hh_act.c: + .text start:0x803FF318 end:0x80400A60 + .data start:0x805668B0 end:0x80566DA8 + .sdata start:0x80574D50 end:0x80574D58 + +revolution/bte/bta_hh_api.c: + .text start:0x80400A60 end:0x80400E30 + .data start:0x80566DA8 end:0x80566DD8 + .sdata2 start:0x8057EB38 end:0x8057EB40 + +revolution/bte/bta_hh_main.c: + .text start:0x80400E30 end:0x80401384 + .rodata start:0x804F5AF8 end:0x804F5B80 + .data start:0x80566DD8 end:0x805670B8 + .bss start:0x8062A9A8 end:0x8062ABD8 + +revolution/bte/bta_hh_utils.c: + .text start:0x80401384 end:0x80401730 + .data start:0x805670B8 end:0x80567378 + +revolution/bte/btm_acl.c: + .text start:0x80401730 end:0x80403474 + .data start:0x80567378 end:0x80567798 + +revolution/bte/btm_dev.c: + .text start:0x80403474 end:0x80403B40 + +revolution/bte/btm_devctl.c: + .text start:0x80403B40 end:0x804054C8 + .data start:0x80567798 end:0x805679F8 + .sdata start:0x80574D58 end:0x80574D70 + +revolution/bte/btm_discovery.c: + .text start:0x804054C8 end:0x804055FC + +revolution/bte/btm_inq.c: + .text start:0x804055FC end:0x80407094 + .data start:0x805679F8 end:0x80567C08 + .sdata2 start:0x8057EB40 end:0x8057EB48 + +revolution/bte/btm_main.c: + .text start:0x80407094 end:0x804070F0 + .bss start:0x8062ABD8 end:0x8062D3A0 + +revolution/bte/btm_pm.c: + .text start:0x804070F0 end:0x80407D84 + .rodata start:0x804F5B80 end:0x804F5B90 + .data start:0x80567C08 end:0x80567C48 + .sdata2 start:0x8057EB48 end:0x8057EB50 + +revolution/bte/btm_sco.c: + .text start:0x80407D84 end:0x80408BBC + .rodata start:0x804F5B90 end:0x804F5BA0 + .data start:0x80567C48 end:0x80567F48 + +revolution/bte/btm_sec.c: + .text start:0x80408BBC end:0x8040BB80 + .data start:0x80567F48 end:0x80568958 + .sdata2 start:0x8057EB50 end:0x8057EB58 + +revolution/bte/btu_hcif.c: + .text start:0x8040BB80 end:0x8040CDDC + .data start:0x80568958 end:0x805689E8 + +revolution/bte/btu_init.c: + .text start:0x8040CDDC end:0x8040CE54 + .sdata2 start:0x8057EB58 end:0x8057EB60 + +revolution/bte/wbt_ext.c: + .text start:0x8040CE54 end:0x8040CF34 + +revolution/bte/gap_api.c: + .text start:0x8040CF34 end:0x8040CF94 + +revolution/bte/gap_conn.c: + .text start:0x8040CF94 end:0x8040DAD0 + .data start:0x805689E8 end:0x80568AB8 + .sdata start:0x80574D70 end:0x80574D78 + +revolution/bte/gap_utils.c: + .text start:0x8040DAD0 end:0x8040E0EC + .data start:0x80568AB8 end:0x80568DA8 + .bss start:0x8062D3A0 end:0x8062D750 + +revolution/bte/hcicmds.c: + .text start:0x8040E0EC end:0x80410808 + .rodata start:0x804F5BA0 end:0x804F5BB0 + +revolution/bte/hidd_api.c: + .text start:0x80410808 end:0x80410870 + +revolution/bte/hidd_conn.c: + .text start:0x80410870 end:0x80410930 + .data start:0x80568DA8 end:0x80568DD8 + +revolution/bte/hidd_mgmt.c: + .text start:0x80410930 end:0x804109F8 + .data start:0x80568DD8 end:0x80568DF8 + .bss start:0x8062D750 end:0x8062D898 + +revolution/bte/hidd_pm.c: + .text start:0x804109F8 end:0x80410D74 + +revolution/bte/hidh_api.c: + .text start:0x80410D74 end:0x80411AF4 + .data start:0x80568DF8 end:0x80568F10 + .bss start:0x8062D898 end:0x8062DCA0 + +revolution/bte/hidh_conn.c: + .text start:0x80411AF4 end:0x80413B34 + .rodata start:0x804F5BB0 end:0x804F5BD8 + .data start:0x80568F10 end:0x805692F8 + +revolution/bte/l2c_api.c: + .text start:0x80413B34 end:0x80414700 + .data start:0x805692F8 end:0x80569A88 + +revolution/bte/l2c_csm.c: + .text start:0x80414700 end:0x80415BDC + .data start:0x80569A88 end:0x8056A2C0 + +revolution/bte/l2c_link.c: + .text start:0x80415BDC end:0x80416D68 + .data start:0x8056A2C0 end:0x8056A530 + +revolution/bte/l2c_main.c: + .text start:0x80416D68 end:0x80417D98 + .data start:0x8056A530 end:0x8056A830 + .bss start:0x8062DCA0 end:0x8062E488 + +revolution/bte/l2c_utils.c: + .text start:0x80417D98 end:0x80419C5C + .data start:0x8056A830 end:0x8056A918 + .sdata start:0x80574D78 end:0x80574D88 + +revolution/bte/port_api.c: + .text start:0x80419C5C end:0x80419CAC + +revolution/bte/port_rfc.c: + .text start:0x80419CAC end:0x8041B0A8 + .data start:0x8056A918 end:0x8056AC48 + +revolution/bte/port_utils.c: + .text start:0x8041B0A8 end:0x8041B680 + .data start:0x8056AC48 end:0x8056AD90 + +revolution/bte/rfc_l2cap_if.c: + .text start:0x8041B680 end:0x8041BFB4 + .data start:0x8056AD90 end:0x8056AED0 + +revolution/bte/rfc_mx_fsm.c: + .text start:0x8041BFB4 end:0x8041CBF8 + .data start:0x8056AED0 end:0x8056B188 + +revolution/bte/rfc_port_fsm.c: + .text start:0x8041CBF8 end:0x8041DD98 + .data start:0x8056B188 end:0x8056B4B0 + +revolution/bte/rfc_port_if.c: + .text start:0x8041DD98 end:0x8041E2C4 + .bss start:0x8062E488 end:0x8062E8A0 + +revolution/bte/rfc_ts_frames.c: + .text start:0x8041E2C4 end:0x8041F90C + .data start:0x8056B4B0 end:0x8056B588 + .sdata start:0x80574D88 end:0x80574D98 + +revolution/bte/rfc_utils.c: + .text start:0x8041F90C end:0x804200EC + .rodata start:0x804F5BD8 end:0x804F5CD8 + .data start:0x8056B588 end:0x8056B618 + +revolution/bte/sdp_api.c: + .text start:0x804200EC end:0x80420F54 + .data start:0x8056B618 end:0x8056B668 + +revolution/bte/sdp_db.c: + .text start:0x80420F54 end:0x80421C20 + .data start:0x8056B668 end:0x8056B700 + +revolution/bte/sdp_discovery.c: + .text start:0x80421C20 end:0x80422E98 + .data start:0x8056B700 end:0x8056B860 + +revolution/bte/sdp_main.c: + .text start:0x80422E98 end:0x80423A04 + .data start:0x8056B860 end:0x8056BBC0 + .bss start:0x8062E8A0 end:0x80632EE0 + +revolution/bte/sdp_server.c: + .text start:0x80423A04 end:0x80424714 + .data start:0x8056BBC0 end:0x8056BC00 + +revolution/bte/sdp_utils.c: + .text start:0x80424714 end:0x80425754 + .rodata start:0x804F5CD8 end:0x804F5CE8 + .data start:0x8056BC00 end:0x8056BCF8 revolution/ipc/ipcMain.c: .text start:0x80425760 end:0x80425848 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 1565fcb0..ef4a850d 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -29069,16 +29069,16 @@ lbl_804F5800 = .rodata:0x804F5800; // type:object size:0x30 lbl_804F5830 = .rodata:0x804F5830; // type:object size:0x10 lbl_804F5840 = .rodata:0x804F5840; // type:object size:0x18 lbl_804F5858 = .rodata:0x804F5858; // type:object size:0x18 -lbl_804F5870 = .rodata:0x804F5870; // type:object size:0x18 -lbl_804F5888 = .rodata:0x804F5888; // type:object size:0xC -lbl_804F5894 = .rodata:0x804F5894; // type:object size:0xC -lbl_804F58A0 = .rodata:0x804F58A0; // type:object size:0x14 -lbl_804F58B4 = .rodata:0x804F58B4; // type:object size:0x4C -lbl_804F5900 = .rodata:0x804F5900; // type:object size:0x18 -lbl_804F5918 = .rodata:0x804F5918; // type:object size:0x10 -lbl_804F5928 = .rodata:0x804F5928; // type:object size:0x30 -lbl_804F5958 = .rodata:0x804F5958; // type:object size:0x60 -lbl_804F59B8 = .rodata:0x804F59B8; // type:object size:0x18 +hcisu_h2 = .rodata:0x804F5870; // type:object size:0x18 +bta_dm_cfg = .rodata:0x804F5888; // type:object size:0xC +bta_dm_rm_cfg = .rodata:0x804F5894; // type:object size:0xC +bta_dm_compress_cfg = .rodata:0x804F58A0; // type:object size:0x14 +bta_dm_pm_spec = .rodata:0x804F58B4; // type:object size:0x4C +bta_dm_pm_md = .rodata:0x804F5900; // type:object size:0x18 +bta_hh_cfg = .rodata:0x804F5918; // type:object size:0x10 +bta_service_id_to_uuid_lkup_tbl = .rodata:0x804F5928; // type:object size:0x30 +bta_service_id_to_btm_srv_id_lkup_tbl = .rodata:0x804F5958; // type:object size:0x60 +bta_security = .rodata:0x804F59B8; // type:object size:0x18 lbl_804F59D0 = .rodata:0x804F59D0; // type:object size:0x34 lbl_804F5A04 = .rodata:0x804F5A04; // type:object size:0x2C lbl_804F5A30 = .rodata:0x804F5A30; // type:object size:0x48 @@ -29092,7 +29092,7 @@ lbl_804F5B28 = .rodata:0x804F5B28; // type:object size:0x18 lbl_804F5B40 = .rodata:0x804F5B40; // type:object size:0x18 lbl_804F5B58 = .rodata:0x804F5B58; // type:object size:0x18 lbl_804F5B70 = .rodata:0x804F5B70; // type:object size:0x10 -lbl_804F5B80 = .rodata:0x804F5B80; // type:object size:0x10 +btm_pm_md_comp_matrix = .rodata:0x804F5B80; // type:object size:0x10 lbl_804F5B90 = .rodata:0x804F5B90; // type:object size:0x10 data:4byte lbl_804F5BA0 = .rodata:0x804F5BA0; // type:object size:0x10 data:byte lbl_804F5BB0 = .rodata:0x804F5BB0; // type:object size:0x28 @@ -38258,19 +38258,19 @@ lbl_805665FC = .data:0x805665FC; // type:object size:0x1D data:string lbl_8056661C = .data:0x8056661C; // type:object size:0x22 data:string lbl_8056663E = .data:0x8056663E; // type:object size:0x22 lbl_80566660 = .data:0x80566660; // type:object size:0x12 data:string -lbl_80566678 = .data:0x80566678; // type:object size:0x3C -lbl_805666B4 = .data:0x805666B4; // type:object size:0x34 -lbl_805666E8 = .data:0x805666E8; // type:object size:0x14 -lbl_805666FC = .data:0x805666FC; // type:object size:0x24 -lbl_80566720 = .data:0x80566720; // type:object size:0x20 -lbl_80566740 = .data:0x80566740; // type:object size:0x20 -lbl_80566760 = .data:0x80566760; // type:object size:0x40 -lbl_805667A0 = .data:0x805667A0; // type:object size:0x14 -lbl_805667B4 = .data:0x805667B4; // type:object size:0x30 -lbl_805667E4 = .data:0x805667E4; // type:object size:0x3C -lbl_80566820 = .data:0x80566820; // type:object size:0x40 -lbl_80566860 = .data:0x80566860; // type:object size:0x2C -lbl_8056688C = .data:0x8056688C; // type:object size:0x24 +lbl_80566678 = .data:0x80566678; // type:object size:0x3A data:string +lbl_805666B4 = .data:0x805666B4; // type:object size:0x2F data:string +lbl_805666E8 = .data:0x805666E8; // type:object size:0x13 data:string +lbl_805666FC = .data:0x805666FC; // type:object size:0x21 data:string +lbl_80566720 = .data:0x80566720; // type:object size:0x1E data:string +lbl_80566740 = .data:0x80566740; // type:object size:0x1D data:string +lbl_80566760 = .data:0x80566760; // type:object size:0x3D data:string +lbl_805667A0 = .data:0x805667A0; // type:object size:0x11 data:string +lbl_805667B4 = .data:0x805667B4; // type:object size:0x2E data:string +lbl_805667E4 = .data:0x805667E4; // type:object size:0x3A data:string +lbl_80566820 = .data:0x80566820; // type:object size:0x3B data:string +lbl_80566860 = .data:0x80566860; // type:object size:0x29 data:string +lbl_8056688C = .data:0x8056688C; // type:object size:0x1D data:string lbl_805668B0 = .data:0x805668B0; // type:object size:0x58 lbl_80566908 = .data:0x80566908; // type:object size:0x30 lbl_80566938 = .data:0x80566938; // type:object size:0x50 @@ -41155,18 +41155,18 @@ lbl_80574CE4 = .sdata:0x80574CE4; // type:object size:0x4 align:4 data:float lbl_80574CE8 = .sdata:0x80574CE8; // type:object size:0x4 data:4byte lbl_80574CEC = .sdata:0x80574CEC; // type:object size:0x1 data:byte lbl_80574CF0 = .sdata:0x80574CF0; // type:object size:0x8 -lbl_80574CF8 = .sdata:0x80574CF8; // type:object size:0x4 data:4byte +wait4hci = .sdata:0x80574CF8; // type:object size:0x4 data:4byte lbl_80574CFC = .sdata:0x80574CFC; // type:object size:0x4 data:4byte lbl_80574D00 = .sdata:0x80574D00; // type:object size:0x4 data:string lbl_80574D04 = .sdata:0x80574D04; // type:object size:0x4 data:string -lbl_80574D08 = .sdata:0x80574D08; // type:object size:0x4 data:4byte -lbl_80574D0C = .sdata:0x80574D0C; // type:object size:0x4 data:4byte -lbl_80574D10 = .sdata:0x80574D10; // type:object size:0x4 data:4byte -lbl_80574D14 = .sdata:0x80574D14; // type:object size:0x4 data:4byte -lbl_80574D18 = .sdata:0x80574D18; // type:object size:0x8 data:4byte -lbl_80574D20 = .sdata:0x80574D20; // type:object size:0x8 -lbl_80574D28 = .sdata:0x80574D28; // type:object size:0x8 data:4byte -lbl_80574D30 = .sdata:0x80574D30; // type:object size:0x8 data:4byte +p_bta_dm_rm_cfg = .sdata:0x80574D08; // type:object size:0x4 data:4byte +p_bta_dm_compress_cfg = .sdata:0x80574D0C; // type:object size:0x4 data:4byte +p_bta_dm_pm_cfg = .sdata:0x80574D10; // type:object size:0x4 data:4byte +p_bta_dm_pm_spec = .sdata:0x80574D14; // type:object size:0x4 data:4byte +p_bta_dm_pm_md = .sdata:0x80574D18; // type:object size:0x8 data:4byte +p_devt_list = .sdata:0x80574D20; // type:object size:0x8 +p_bta_hh_cfg = .sdata:0x80574D28; // type:object size:0x8 data:4byte +p_bta_sys_cfg = .sdata:0x80574D30; // type:object size:0x8 data:4byte lbl_80574D38 = .sdata:0x80574D38; // type:object size:0x8 lbl_80574D40 = .sdata:0x80574D40; // type:object size:0x8 lbl_80574D48 = .sdata:0x80574D48; // type:object size:0x1 data:byte @@ -42416,13 +42416,13 @@ lbl_805764F0 = .sbss:0x805764F0; // type:object size:0x4 data:4byte lbl_805764F4 = .sbss:0x805764F4; // type:object size:0x1 data:byte lbl_805764F8 = .sbss:0x805764F8; // type:object size:0x4 data:4byte lbl_805764FC = .sbss:0x805764FC; // type:object size:0x4 data:4byte -lbl_80576500 = .sbss:0x80576500; // type:object size:0x4 data:4byte -lbl_80576504 = .sbss:0x80576504; // type:object size:0x4 data:4byte -lbl_80576508 = .sbss:0x80576508; // type:object size:0x1 data:byte +p_hcisu_if = .sbss:0x80576500; // type:object size:0x4 data:4byte +p_hcisu_cfg = .sbss:0x80576504; // type:object size:0x4 data:4byte +bte_target_mode = .sbss:0x80576508; // type:object size:0x1 data:byte lbl_8057650C = .sbss:0x8057650C; // type:object size:0x4 data:4byte lbl_80576510 = .sbss:0x80576510; // type:object size:0x4 data:4byte lbl_80576514 = .sbss:0x80576514; // type:object size:0x4 data:4byte -lbl_80576518 = .sbss:0x80576518; // type:object size:0x8 data:byte +appl_trace_level = .sbss:0x80576518; // type:object size:0x8 data:byte Initialized = .sbss:0x80576520; // type:object size:0x1 data:byte IPCCurrentBufferLo = .sbss:0x80576524; // type:object size:0x4 data:4byte IPCCurrentBufferHi = .sbss:0x80576528; // type:object size:0x4 data:4byte @@ -49517,23 +49517,22 @@ lbl_8057EB00 = .sdata2:0x8057EB00; // type:object size:0x4 align:4 data:float lbl_8057EB04 = .sdata2:0x8057EB04; // type:object size:0x4 align:4 data:float lbl_8057EB08 = .sdata2:0x8057EB08; // type:object size:0x8 lbl_8057EB10 = .sdata2:0x8057EB10; // type:object size:0x8 -lbl_8057EB18 = .sdata2:0x8057EB18; // type:object size:0x8 -lbl_8057EB20 = .sdata2:0x8057EB20; // type:object size:0x2 data:2byte -lbl_8057EB22 = .sdata2:0x8057EB22; // type:object size:0x6 data:2byte +bta_sys_cfg = .sdata2:0x8057EB18; // type:object size:0x8 +lbl_8057EB20 = .sdata2:0x8057EB20; // type:object size:0x4 data:2byte lbl_8057EB28 = .sdata2:0x8057EB28; // type:object size:0x8 lbl_8057EB30 = .sdata2:0x8057EB30; // type:object size:0x8 lbl_8057EB38 = .sdata2:0x8057EB38; // type:object size:0x8 lbl_8057EB40 = .sdata2:0x8057EB40; // type:object size:0x4 lbl_8057EB44 = .sdata2:0x8057EB44; // type:object size:0x4 -lbl_8057EB48 = .sdata2:0x8057EB48; // type:object size:0x4 -lbl_8057EB4C = .sdata2:0x8057EB4C; // type:object size:0x4 +btm_pm_mode_off = .sdata2:0x8057EB48; // type:object size:0x4 +btm_pm_mode_msk = .sdata2:0x8057EB4C; // type:object size:0x4 lbl_8057EB50 = .sdata2:0x8057EB50; // type:object size:0x1 data:byte lbl_8057EB51 = .sdata2:0x8057EB51; // type:object size:0x1 data:byte lbl_8057EB52 = .sdata2:0x8057EB52; // type:object size:0x1 data:byte lbl_8057EB53 = .sdata2:0x8057EB53; // type:object size:0x1 data:byte lbl_8057EB54 = .sdata2:0x8057EB54; // type:object size:0x1 data:byte lbl_8057EB55 = .sdata2:0x8057EB55; // type:object size:0x1 data:byte -lbl_8057EB58 = .sdata2:0x8057EB58; // type:object size:0x8 +BT_BD_ANY = .sdata2:0x8057EB58; // type:object size:0x8 lbl_8057EB60 = .sdata2:0x8057EB60; // type:object size:0x8 align:8 data:double @3573 = .sdata2:0x8057EB68; // type:object size:0x8 scope:local align:8 data:double @3755 = .sdata2:0x8057EB70; // type:object size:0x4 scope:local align:4 data:float @@ -50380,8 +50379,8 @@ lbl_8057FF80 = .sdata2:0x8057FF80; // type:object size:0x8 align:8 data:double lbl_8057FF88 = .sdata2:0x8057FF88; // type:object size:0x8 align:8 data:double lbl_8057FF90 = .sdata2:0x8057FF90; // type:object size:0x4 lbl_8057FFA0 = .sbss2:0x8057FFA0; // type:object size:0x8 data:4byte -lbl_8057FFA8 = .sbss2:0x8057FFA8; // type:object size:0x8 -lbl_8057FFB0 = .sbss2:0x8057FFB0; // type:object size:0x8 +bta_dm_pm_cfg = .sbss2:0x8057FFA8; // type:object size:0x8 +bd_addr_null = .sbss2:0x8057FFB0; // type:object size:0x8 DefaultBlackColor = .sbss2:0x8057FFB8; // type:object size:0x8 scope:local data:2byte sBlack__3EGG = .sbss2:0x8057FFC0; // type:object size:0x4 scope:local data:byte lbl_8057FFC8 = .sbss2:0x8057FFC8; // type:object size:0x4 @@ -51948,25 +51947,25 @@ Fxyz_0 = .bss:0x805FE328; // type:object size:0x10 data:4byte gki_cb = .bss:0x805FE338; // type:object size:0x28AE0 data:byte lbl_80626E18 = .bss:0x80626E18; // type:object size:0x28 lbl_80626E40 = .bss:0x80626E40; // type:object size:0x60 data:4byte -lbl_80626EA0 = .bss:0x80626EA0; // type:object size:0x1000 -lbl_80627EA0 = .bss:0x80627EA0; // type:object size:0x1000 -lbl_80628EA0 = .bss:0x80628EA0; // type:object size:0x7E0 -lbl_80629680 = .bss:0x80629680; // type:object size:0x1000 +__uusb_ppc_stack1 = .bss:0x80626EA0; // type:object size:0x1000 align:32 +__uusb_ppc_stack2 = .bss:0x80627EA0; // type:object size:0x1000 align:32 +@LOCAL@LogMsg__FUlPCce@tmp = .bss:0x80628EA0; // type:object size:0x7D0 +lbl_80629680 = .bss:0x80629680; // type:object size:0x1000 align:32 lbl_8062A680 = .bss:0x8062A680; // type:object size:0x30 -lbl_8062A6B0 = .bss:0x8062A6B0; // type:object size:0x88 data:4byte -lbl_8062A738 = .bss:0x8062A738; // type:object size:0x90 data:4byte -lbl_8062A7C8 = .bss:0x8062A7C8; // type:object size:0x30 -lbl_8062A7F8 = .bss:0x8062A7F8; // type:object size:0x7C data:4byte -lbl_8062A874 = .bss:0x8062A874; // type:object size:0x104 -lbl_8062A978 = .bss:0x8062A978; // type:object size:0x30 data:byte -lbl_8062A9A8 = .bss:0x8062A9A8; // type:object size:0x230 -lbl_8062ABD8 = .bss:0x8062ABD8; // type:object size:0x27C8 -lbl_8062D3A0 = .bss:0x8062D3A0; // type:object size:0x3B0 -lbl_8062D750 = .bss:0x8062D750; // type:object size:0x148 -lbl_8062D898 = .bss:0x8062D898; // type:object size:0x408 data:byte -lbl_8062DCA0 = .bss:0x8062DCA0; // type:object size:0x7E8 data:byte -lbl_8062E488 = .bss:0x8062E488; // type:object size:0x418 data:byte -lbl_8062E8A0 = .bss:0x8062E8A0; // type:object size:0x4640 +btu_cb = .bss:0x8062A6B0; // type:object size:0x88 data:4byte +bta_sys_cb = .bss:0x8062A738; // type:object size:0x90 data:4byte +bta_dm_compress_srvcs = .bss:0x8062A7C8; // type:object size:0x30 +bta_dm_search_cb = .bss:0x8062A7F8; // type:object size:0x7C data:4byte +bta_dm_cb = .bss:0x8062A874; // type:object size:0x104 +bta_dm_conn_srvcs = .bss:0x8062A978; // type:object size:0x30 data:byte +bta_hh_cb = .bss:0x8062A9A8; // type:object size:0x230 +btm_cb = .bss:0x8062ABD8; // type:object size:0x27C8 +gap_cb = .bss:0x8062D3A0; // type:object size:0x3B0 +hd_cb = .bss:0x8062D750; // type:object size:0x148 +hh_cb = .bss:0x8062D898; // type:object size:0x408 data:byte +l2cb = .bss:0x8062DCA0; // type:object size:0x7E8 data:byte +rfc_cb = .bss:0x8062E488; // type:object size:0x418 data:byte +sdp_cb = .bss:0x8062E8A0; // type:object size:0x4640 __responses = .bss:0x80632EE0; // type:object size:0xD0 scope:local data:4byte __timeout_alarm = .bss:0x80632FB0; // type:object size:0x30 scope:local __rpcBuf = .bss:0x80632FE0; // type:object size:0x40 diff --git a/configure.py b/configure.py index 06cbd47f..30fcae60 100644 --- a/configure.py +++ b/configure.py @@ -1437,7 +1437,71 @@ config.libs = [ Object(NonMatching, "revolution/bte/gki_buffer.c"), Object(NonMatching, "revolution/bte/gki_time.c"), Object(NonMatching, "revolution/bte/gki_ppc.c"), - Object(NonMatching, "RVL_SDK/bte/BTE.c"), + Object(NonMatching, "revolution/bte/hcisu_h2.c"), + Object(NonMatching, "revolution/bte/uusb_ppc.c"), + Object(NonMatching, "revolution/bte/bta_dm_cfg.c"), + Object(NonMatching, "revolution/bte/bta_hh_cfg.c"), + Object(NonMatching, "revolution/bte/bta_sys_cfg.c"), + Object(NonMatching, "revolution/bte/bte_hcisu.c"), + Object(NonMatching, "revolution/bte/bte_init.c"), + Object(NonMatching, "revolution/bte/bte_logmsg.c"), + Object(NonMatching, "revolution/bte/bte_main.c"), + Object(NonMatching, "revolution/bte/btu_task1.c"), + Object(NonMatching, "revolution/bte/bd.c"), + Object(NonMatching, "revolution/bte/bta_sys_conn.c"), + Object(NonMatching, "revolution/bte/bta_sys_main.c"), + Object(NonMatching, "revolution/bte/ptim.c"), + Object(NonMatching, "revolution/bte/utl.c"), + Object(NonMatching, "revolution/bte/bta_dm_act.c"), + Object(NonMatching, "revolution/bte/bta_dm_api.c"), + Object(NonMatching, "revolution/bte/bta_dm_main.c"), + Object(NonMatching, "revolution/bte/bta_dm_pm.c"), + Object(NonMatching, "revolution/bte/bta_hh_act.c"), + Object(NonMatching, "revolution/bte/bta_hh_api.c"), + Object(NonMatching, "revolution/bte/bta_hh_main.c"), + Object(NonMatching, "revolution/bte/bta_hh_utils.c"), + Object(NonMatching, "revolution/bte/btm_acl.c"), + Object(NonMatching, "revolution/bte/btm_dev.c"), + Object(NonMatching, "revolution/bte/btm_devctl.c"), + Object(NonMatching, "revolution/bte/btm_discovery.c"), + Object(NonMatching, "revolution/bte/btm_inq.c"), + Object(NonMatching, "revolution/bte/btm_main.c"), + Object(NonMatching, "revolution/bte/btm_pm.c"), + Object(NonMatching, "revolution/bte/btm_sco.c"), + Object(NonMatching, "revolution/bte/btm_sec.c"), + Object(NonMatching, "revolution/bte/btu_hcif.c"), + Object(NonMatching, "revolution/bte/btu_init.c"), + Object(NonMatching, "revolution/bte/wbt_ext.c"), + Object(NonMatching, "revolution/bte/gap_api.c"), + Object(NonMatching, "revolution/bte/gap_conn.c"), + Object(NonMatching, "revolution/bte/gap_utils.c"), + Object(NonMatching, "revolution/bte/hcicmds.c"), + Object(NonMatching, "revolution/bte/hidd_api.c"), + Object(NonMatching, "revolution/bte/hidd_conn.c"), + Object(NonMatching, "revolution/bte/hidd_mgmt.c"), + Object(NonMatching, "revolution/bte/hidd_pm.c"), + Object(NonMatching, "revolution/bte/hidh_api.c"), + Object(NonMatching, "revolution/bte/hidh_conn.c"), + Object(NonMatching, "revolution/bte/l2c_api.c"), + Object(NonMatching, "revolution/bte/l2c_csm.c"), + Object(NonMatching, "revolution/bte/l2c_link.c"), + Object(NonMatching, "revolution/bte/l2c_main.c"), + Object(NonMatching, "revolution/bte/l2c_utils.c"), + Object(NonMatching, "revolution/bte/port_api.c"), + Object(NonMatching, "revolution/bte/port_rfc.c"), + Object(NonMatching, "revolution/bte/port_utils.c"), + Object(NonMatching, "revolution/bte/rfc_l2cap_if.c"), + Object(NonMatching, "revolution/bte/rfc_mx_fsm.c"), + Object(NonMatching, "revolution/bte/rfc_port_fsm.c"), + Object(NonMatching, "revolution/bte/rfc_port_if.c"), + Object(NonMatching, "revolution/bte/rfc_ts_frames.c"), + Object(NonMatching, "revolution/bte/rfc_utils.c"), + Object(NonMatching, "revolution/bte/sdp_api.c"), + Object(NonMatching, "revolution/bte/sdp_db.c"), + Object(NonMatching, "revolution/bte/sdp_discovery.c"), + Object(NonMatching, "revolution/bte/sdp_main.c"), + Object(NonMatching, "revolution/bte/sdp_server.c"), + Object(NonMatching, "revolution/bte/sdp_utils.c"), Object(NonMatching, "revolution/ipc/ipcMain.c"), Object(NonMatching, "revolution/ipc/ipcclt.c"), Object(NonMatching, "revolution/ipc/memory.c"), From 791826275de6d16dca35fad3c7eecaf596990567 Mon Sep 17 00:00:00 2001 From: robojumper Date: Wed, 16 Jul 2025 01:51:12 +0200 Subject: [PATCH 32/36] split HBM --- config/SOUE01/config.yml | 5 + config/SOUE01/splits.txt | 79 ++- config/SOUE01/symbols.txt | 1111 +++++++++++++++++++------------------ 3 files changed, 636 insertions(+), 559 deletions(-) diff --git a/config/SOUE01/config.yml b/config/SOUE01/config.yml index 73050e28..1a9714e7 100644 --- a/config/SOUE01/config.yml +++ b/config/SOUE01/config.yml @@ -33,6 +33,11 @@ block_relocations: # OSInit - source: 0x803a2a9c - source: 0x803a2b04 +add_relocations: + # bugged relocation pair in unreachable code + - source: .text:0x80306FCC + type: l + target: lbl_804F0A00 extract: - symbol: DOL_BACKUP_FONT header: d/dol_backup_error_font.inc diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 0ca28784..074259cf 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -1923,74 +1923,122 @@ m/m_video.cpp: hbm/homebutton/HBMFrameController.cpp: .text start:0x802F2F10 end:0x802F30BC align:16 + .rodata start:0x804F0580 end:0x804F0588 + .data start:0x80542AA8 end:0x80542AD0 hbm/homebutton/HBMAnmController.cpp: .text start:0x802F30C0 end:0x802F31D0 align:16 + .data start:0x80542AD0 end:0x80542B18 hbm/homebutton/HBMGUIManager.cpp: .text start:0x802F31D0 end:0x802F49E8 align:16 + .rodata start:0x804F0588 end:0x804F0598 + .data start:0x80542B18 end:0x80542D88 + .bss start:0x805CB228 end:0x805CB230 hbm/homebutton/HBMController.cpp: - .text start:0x802F49F0 end:0x802F57FC align:16 + .text start:0x802F49F0 end:0x802F5590 align:16 + .rodata start:0x804F0598 end:0x804F05A8 + .bss start:0x805CB230 end:0x805CB3D0 hbm/homebutton/HBMRemoteSpk.cpp: - .text start:0x802F5800 end:0x802F6048 align:16 + .text start:0x802F5590 end:0x802F5EAC align:16 + .data start:0x80542D88 end:0x80542DB8 + .bss start:0x805CB3D0 end:0x805CB3D8 hbm/homebutton/HBMAxSound.cpp: - .text start:0x802F6050 end:0x802F6944 align:16 + .text start:0x802F5EB0 end:0x802F6944 align:16 + .rodata start:0x804F05A8 end:0x804F05E0 + .data start:0x80542DB8 end:0x80543108 + .bss start:0x805CB3D8 end:0x805CB3E0 hbm/homebutton/HBMCommon.cpp: .text start:0x802F6950 end:0x802F6CC4 align:16 + .data start:0x80543108 end:0x80543158 + .bss start:0x805CB3E0 end:0x805CB3F0 hbm/homebutton/HBMBase.cpp: .text start:0x802F6CD0 end:0x802FF2E0 align:16 + .rodata start:0x804F05E0 end:0x804F0960 + .data start:0x80543158 end:0x80543E70 + .bss start:0x805CB3F0 end:0x805CB470 hbm/nw4hbm/lyt/lyt_animation.cpp: .text start:0x802FF2E0 end:0x802FFE88 align:16 + .rodata start:0x804F0960 end:0x804F0980 + .data start:0x80543E70 end:0x80543EF0 hbm/nw4hbm/lyt/lyt_arcResourceAccessor.cpp: .text start:0x802FFE90 end:0x80300230 align:16 + .data start:0x80543EF0 end:0x80543F70 hbm/nw4hbm/lyt/lyt_bounding.cpp: .text start:0x80300230 end:0x803003A4 align:16 .ctors start:0x804DB8E0 end:0x804DB8E4 + .data start:0x80543F70 end:0x80544058 + .bss start:0x805CB470 end:0x805CB478 hbm/nw4hbm/lyt/lyt_common.cpp: .text start:0x803003B0 end:0x80301230 align:16 + .rodata start:0x804F0980 end:0x804F0990 + .bss start:0x805CB478 end:0x805CB4A0 hbm/nw4hbm/lyt/lyt_drawInfo.cpp: .text start:0x80301230 end:0x803012F0 align:16 + .rodata start:0x804F0990 end:0x804F0998 + .data start:0x80544058 end:0x80544088 hbm/nw4hbm/lyt/lyt_group.cpp: .text start:0x803012F0 end:0x8030163C align:16 + .data start:0x80544088 end:0x805440B0 hbm/nw4hbm/lyt/lyt_layout.cpp: .text start:0x80301640 end:0x803022DC align:16 + .rodata start:0x804F0998 end:0x804F09A0 + .data start:0x805440B0 end:0x80544100 + .bss start:0x805CB4A0 end:0x805CB4A8 hbm/nw4hbm/lyt/lyt_material.cpp: .text start:0x803022E0 end:0x80305550 align:16 + .rodata start:0x804F09A0 end:0x804F09D0 + .data start:0x80544100 end:0x80544188 hbm/nw4hbm/lyt/lyt_pane.cpp: .text start:0x80305550 end:0x803066A0 align:16 .ctors start:0x804DB8E4 end:0x804DB8E8 + .rodata start:0x804F09D0 end:0x804F09F0 + .data start:0x80544188 end:0x805441F0 + .bss start:0x805CB4A8 end:0x805CB4B0 hbm/nw4hbm/lyt/lyt_picture.cpp: .text start:0x803066A0 end:0x80306BF4 align:16 .ctors start:0x804DB8E8 end:0x804DB8EC + .rodata start:0x804F09F0 end:0x804F09F8 + .data start:0x805441F0 end:0x80544290 + .bss start:0x805CB4B0 end:0x805CB4B8 hbm/nw4hbm/lyt/lyt_resourceAccessor.cpp: .text start:0x80306C00 end:0x80306C58 align:16 + .data start:0x80544290 end:0x805442A8 hbm/nw4hbm/lyt/lyt_textBox.cpp: .text start:0x80306C60 end:0x803080A4 align:16 .ctors start:0x804DB8EC end:0x804DB8F0 + .rodata start:0x804F09F8 end:0x804F0A10 + .data start:0x805442A8 end:0x80544358 + .bss start:0x805CB4B8 end:0x805CB4C0 hbm/nw4hbm/lyt/lyt_window.cpp: .text start:0x803080B0 end:0x8030A6D4 align:16 .ctors start:0x804DB8F0 end:0x804DB8F4 + .rodata start:0x804F0A10 end:0x804F0A28 + .data start:0x80544358 end:0x80544440 + .bss start:0x805CB4C0 end:0x805CB4C8 hbm/nw4hbm/math/math_triangular.cpp: .text start:0x8030A6E0 end:0x8030A990 align:16 + .rodata start:0x804F0A28 end:0x804F0A50 + .data start:0x80544440 end:0x80545558 hbm/nw4hbm/ut/ut_binaryFileFormat.cpp: .text start:0x8030A990 end:0x8030AA04 align:16 @@ -2000,9 +2048,12 @@ hbm/nw4hbm/ut/ut_CharStrmReader.cpp: hbm/nw4hbm/ut/ut_CharWriter.cpp: .text start:0x8030AB30 end:0x8030C52C align:16 + .rodata start:0x804F0A50 end:0x804F0A70 + .bss start:0x805CB4C8 end:0x805CB4E0 hbm/nw4hbm/ut/ut_Font.cpp: .text start:0x8030C530 end:0x8030C5D4 align:16 + .data start:0x80545558 end:0x80545588 hbm/nw4hbm/ut/ut_LinkList.cpp: .text start:0x8030C5E0 end:0x8030C6EC align:16 @@ -2012,34 +2063,49 @@ hbm/nw4hbm/ut/ut_list.cpp: hbm/nw4hbm/ut/ut_ResFont.cpp: .text start:0x8030C860 end:0x8030CB5C align:16 + .data start:0x80545588 end:0x80545610 hbm/nw4hbm/ut/ut_ResFontBase.cpp: .text start:0x8030CB60 end:0x8030D1A8 align:16 + .data start:0x80545610 end:0x80545728 hbm/nw4hbm/ut/ut_TagProcessorBase.cpp: .text start:0x8030D1B0 end:0x8030DC68 align:16 + .rodata start:0x804F0A70 end:0x804F0A78 + .data start:0x80545728 end:0x805457B0 hbm/nw4hbm/ut/ut_TextWriterBase.cpp: .text start:0x8030DC70 end:0x803130D4 align:16 .ctors start:0x804DB8F4 end:0x804DB8F8 + .rodata start:0x804F0A78 end:0x804F0A90 + .data start:0x805457B0 end:0x805457B8 + .bss start:0x805CB4E0 end:0x805CB510 hbm/sound/mix.cpp: .text start:0x803130E0 end:0x80314A2C align:16 + .data start:0x805457B8 end:0x80546348 + .bss start:0x805CB510 end:0x805CBBD0 hbm/sound/syn.cpp: - .text start:0x80314A30 end:0x80314F8C align:16 + .text start:0x80314A30 end:0x80314EAC align:16 + .bss start:0x805CBBD0 end:0x805CC0A0 hbm/sound/synctrl.cpp: - .text start:0x80314F90 end:0x80315348 align:16 + .text start:0x80314EB0 end:0x80315348 align:16 + .data start:0x80546348 end:0x80546548 hbm/sound/synenv.cpp: .text start:0x80315350 end:0x8031572C align:16 + .rodata start:0x804F0A90 end:0x804F0AB0 hbm/sound/synmix.cpp: .text start:0x80315730 end:0x80315870 align:16 + .data start:0x80546548 end:0x805468D8 hbm/sound/synpitch.cpp: .text start:0x80315870 end:0x80315AEC align:16 + .rodata start:0x804F0AB0 end:0x804F0AC8 + .data start:0x805468D8 end:0x80546CC8 hbm/sound/synsample.cpp: .text start:0x80315AF0 end:0x80315F64 align:16 @@ -2049,6 +2115,9 @@ hbm/sound/synvoice.cpp: hbm/sound/seq.cpp: .text start:0x80316120 end:0x80316A28 align:16 + .rodata start:0x804F0AC8 end:0x804F0AF0 + .data start:0x80546CC8 end:0x80546D60 + .bss start:0x805CC0A0 end:0x805CC0A8 JSystem/JParticle/JPAResourceManager.cpp: .text start:0x80316A30 end:0x80316C04 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index ef4a850d..5ac63236 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -17876,118 +17876,118 @@ rotX__7mVec3_cFRC4mAng = .text:0x802F2C80; // type:function size:0xA8 rotY__7mVec3_cFRC4mAng = .text:0x802F2D30; // type:function size:0xAC rotZ__7mVec3_cFRC4mAng = .text:0x802F2DE0; // type:function size:0xA8 mVec__sinit = .text:0x802F2E90; // type:function size:0x78 -homebutton__FrameController__init = .text:0x802F2F10; // type:function size:0x38 -homebutton__FrameController__initFrame = .text:0x802F2F50; // type:function size:0x20 -homebutton__FrameController__calc = .text:0x802F2F70; // type:function size:0x14C -homebutton__GroupAnmController____ct = .text:0x802F30C0; // type:function size:0x1C -homebutton__GroupAnmController____dt = .text:0x802F30E0; // type:function size:0x40 -homebutton__GroupAnmController__do_calc = .text:0x802F3120; // type:function size:0xB0 -homebutton__gui__drawLine_ = .text:0x802F31D0; // type:function size:0x1C4 -homebutton__gui__Component__update = .text:0x802F33A0; // type:function size:0x208 -homebutton__gui__Component__isVisible = .text:0x802F35B0; // type:function size:0x8 -homebutton__gui__Component__isPointed = .text:0x802F35C0; // type:function size:0xC -homebutton__gui__Component__onMove = .text:0x802F35D0; // type:function size:0x4 -homebutton__gui__Manager__onEvent = .text:0x802F35E0; // type:function size:0x20 -homebutton__gui__EventHandler__onEvent = .text:0x802F3600; // type:function size:0x4 -homebutton__gui__Component__getID = .text:0x802F3610; // type:function size:0x8 -homebutton__gui__Component__setPointed = .text:0x802F3620; // type:function size:0xC -homebutton__gui__Component__onPoint = .text:0x802F3630; // type:function size:0x4 -homebutton__gui__Component__offPoint = .text:0x802F3640; // type:function size:0x4 -homebutton__gui__Manager____dt = .text:0x802F3650; // type:function size:0xBC -homebutton__gui__Manager__init = .text:0x802F3710; // type:function size:0x68 -homebutton__gui__Component__init = .text:0x802F3780; // type:function size:0x2C -homebutton__gui__Manager__addComponent = .text:0x802F37B0; // type:function size:0xC4 -homebutton__gui__Component__setManager = .text:0x802F3880; // type:function size:0x8 -homebutton__gui__Manager__delComponent = .text:0x802F3890; // type:function size:0xA0 -homebutton__gui__Manager__getComponent = .text:0x802F3930; // type:function size:0x2C -homebutton__gui__Manager__update = .text:0x802F3960; // type:function size:0x1A4 -homebutton__gui__Component__isTriggerTarger = .text:0x802F3B10; // type:function size:0x8 -homebutton__gui__Component__onTrig = .text:0x802F3B20; // type:function size:0x30 -homebutton__gui__Manager__calc = .text:0x802F3B50; // type:function size:0x68 -homebutton__gui__Interface__calc = .text:0x802F3BC0; // type:function size:0x4 -homebutton__gui__Manager__draw = .text:0x802F3BD0; // type:function size:0x68 -homebutton__gui__Interface__draw = .text:0x802F3C40; // type:function size:0x4 -homebutton__gui__Manager__setAllComponentTriggerTarget = .text:0x802F3C50; // type:function size:0x78 -homebutton__gui__Component__setTriggerTarget = .text:0x802F3CD0; // type:function size:0x8 -homebutton__gui__PaneManager____dt = .text:0x802F3CE0; // type:function size:0x154 -homebutton__gui__PaneComponent____dt = .text:0x802F3E40; // type:function size:0x40 -homebutton__gui__Component____dt = .text:0x802F3E80; // type:function size:0x40 -fn_802F3EC0 = .text:0x802F3EC0; // type:function size:0x24 -homebutton__gui__PaneManager__createLayoutScene = .text:0x802F3EF0; // type:function size:0x18 -homebutton__gui__PaneManager__addLayoutScene = .text:0x802F3F10; // type:function size:0x298 -homebutton__gui__PaneComponent__setPane = .text:0x802F41B0; // type:function size:0x8 -nw4hbm__lyt__Pane__GetRuntimeTypeInfo = .text:0x802F41C0; // type:function size:0xC -homebutton__gui__PaneManager__delLayoutScene = .text:0x802F41D0; // type:function size:0x18 -omebutton__gui__PaneManager__walkInChildrenDel = .text:0x802F41F0; // type:function size:0x11C -homebutton__gui__PaneManager__getPaneComponentByPane = .text:0x802F4310; // type:function size:0x78 -homebutton__gui__PaneManager__setAllBoundingBoxComponentTriggerTarget = .text:0x802F4390; // type:function size:0xD0 -homebutton__gui__PaneComponent__contain = .text:0x802F4460; // type:function size:0x12C -homebutton__gui__PaneManager__getDrawInfo = .text:0x802F4590; // type:function size:0x8 -homebutton__gui__PaneComponent__draw = .text:0x802F45A0; // type:function size:0x184 -homebutton__gui__is_visible = .text:0x802F4730; // type:function size:0x100 -nw4hbm__lyt__Pane__IsVisible = .text:0x802F4830; // type:function size:0xC -nw4hbm__lyt__Pane__GetParent = .text:0x802F4840; // type:function size:0x8 -homebutton__gui__PaneComponent__isVisible = .text:0x802F4850; // type:function size:0xD4 -homebutton__gui__Interface__draw2 = .text:0x802F4930; // type:function size:0x4 -homebutton__gui__Interface__create = .text:0x802F4940; // type:function size:0x4 -homebutton__gui__Component__update2 = .text:0x802F4950; // type:function size:0x8 -homebutton__gui__Component__setDraggingButton = .text:0x802F4960; // type:function size:0x8 -homebutton__gui__Component__onDrag = .text:0x802F4970; // type:function size:0x4 -homebutton__gui__PaneComponent__getPane = .text:0x802F4980; // type:function size:0x8 -homebutton__gui__Manager__setEventHandler = .text:0x802F4990; // type:function size:0x2C -homebutton__gui__EventHandler__setManager = .text:0x802F49C0; // type:function size:0x8 -homebutton__gui__Manager__update2 = .text:0x802F49D0; // type:function size:0x8 -homebutton__gui__PaneManager__setDrawInfo = .text:0x802F49E0; // type:function size:0x8 -homebutton__Controller__wpadConnectCallback = .text:0x802F49F0; // type:function size:0xFC -homebutton__Controller__wpadExtensionCallback = .text:0x802F4AF0; // type:function size:0xF8 -homebutton__Controller__soundOnCallback = .text:0x802F4BF0; // type:function size:0x6C -homebutton__Controller____ct = .text:0x802F4C60; // type:function size:0xB4 -homebutton__Controller__initCallback = .text:0x802F4D20; // type:function size:0xA8 -homebutton__Controller__clearCallback = .text:0x802F4DD0; // type:function size:0x60 -homebutton__Controller__setKpad = .text:0x802F4E30; // type:function size:0x1B0 -homebutton__Controller__clrKpadButton = .text:0x802F4FE0; // type:function size:0x14 -homebutton__Controller__setInValidPos = .text:0x802F5000; // type:function size:0x1C -homebutton__Controller__connect = .text:0x802F5020; // type:function size:0x10 -homebutton__Controller__disconnect = .text:0x802F5030; // type:function size:0x4 -homebutton__Controller__setSpeakerVol = .text:0x802F5040; // type:function size:0x8 -homebutton__Controller__playSound = .text:0x802F5050; // type:function size:0x9C -homebutton__Controller__isPlayingSoundId = .text:0x802F50F0; // type:function size:0x60 -homebutton__Controller__initSound = .text:0x802F5150; // type:function size:0x10 -homebutton__Controller__updateSound = .text:0x802F5160; // type:function size:0x238 -homebutton__Controller__isPlayReady = .text:0x802F53A0; // type:function size:0x10 -homebutton__Controller__getController = .text:0x802F53B0; // type:function size:0x4 -homebutton__Controller__startMotor = .text:0x802F53C0; // type:function size:0x64 -homebutton__Controller__stopMotor = .text:0x802F5430; // type:function size:0x30 -homebutton__Controller__getInfoAsync = .text:0x802F5460; // type:function size:0xA0 -homebutton__Controller__ControllerCallback = .text:0x802F5500; // type:function size:0x3C -homebutton__Controller__getBatteryFlag = .text:0x802F5540; // type:function size:0x24 -homebutton__Controller__clrBatteryFlag = .text:0x802F5570; // type:function size:0x20 -homebutton__Controller__clrBatteryFlag2 = .text:0x802F5590; // type:function size:0x26C -homebutton__RemoteSpk__ClearPcm = .text:0x802F5800; // type:function size:0x2C -homebutton__RemoteSpk____ct = .text:0x802F5830; // type:function size:0xBC -homebutton__RemoteSpk____dt = .text:0x802F58F0; // type:function size:0xA4 -homebutton__RemoteSpk__Start = .text:0x802F59A0; // type:function size:0xD4 -homebutton__RemoteSpk__Stop = .text:0x802F5A80; // type:function size:0x54 -homebutton__RemoteSpk__DelaySpeakerOnCallback = .text:0x802F5AE0; // type:function size:0x30 -homebutton__RemoteSpk__SpeakerOnCallback = .text:0x802F5B10; // type:function size:0xD8 -homebutton__RemoteSpk__DelaySpeakerPlayCallback = .text:0x802F5BF0; // type:function size:0x30 -homebutton__RemoteSpk__SpeakerPlayCallback = .text:0x802F5C20; // type:function size:0xE4 -homebutton__RemoteSpk__Connect = .text:0x802F5D10; // type:function size:0x8C -homebutton__RemoteSpk__Play = .text:0x802F5DA0; // type:function size:0x98 -homebutton__RemoteSpk__isPlaying = .text:0x802F5E40; // type:function size:0x1C -homebutton__RemoteSpk__isPlayingId = .text:0x802F5E60; // type:function size:0x30 -fn_802F5E90 = .text:0x802F5E90; // type:function size:0x1C -homebutton__RemoteSpk__isPlayReady = .text:0x802F5EB0; // type:function size:0x198 -GetFreePlayer = .text:0x802F6050; // type:function size:0x64 -AudioFrameCallback = .text:0x802F60C0; // type:function size:0x240 -AudioSoundThreadProc = .text:0x802F6300; // type:function size:0x13C -homebutton__InitAxSound = .text:0x802F6440; // type:function size:0x1F4 -homebutton__AxSoundMain = .text:0x802F6640; // type:function size:0x4 -homebutton__StopAllSeq = .text:0x802F6650; // type:function size:0x1C4 -homebutton__SetVolumeAllSeq = .text:0x802F6820; // type:function size:0x120 -homebutton__SetSoundMode = .text:0x802F6940; // type:function size:0x4 -HBMAllocMem = .text:0x802F6950; // type:function size:0x10 -HBMFreeMem = .text:0x802F6960; // type:function size:0x10 +init__Q210homebutton15FrameControllerFifff = .text:0x802F2F10; // type:function size:0x38 +initFrame__Q210homebutton15FrameControllerFv = .text:0x802F2F50; // type:function size:0x20 +calc__Q210homebutton15FrameControllerFv = .text:0x802F2F70; // type:function size:0x14C +__ct__Q210homebutton18GroupAnmControllerFv = .text:0x802F30C0; // type:function size:0x1C +__dt__Q210homebutton18GroupAnmControllerFv = .text:0x802F30E0; // type:function size:0x40 +do_calc__Q210homebutton18GroupAnmControllerFv = .text:0x802F3120; // type:function size:0xB0 +drawLine___Q210homebutton3guiFfffffUcR8_GXColor = .text:0x802F31D0; // type:function size:0x1C4 +update__Q310homebutton3gui9ComponentFiffUlUlUlPv = .text:0x802F33A0; // type:function size:0x208 +isVisible__Q310homebutton3gui9ComponentFv = .text:0x802F35B0; // type:function size:0x8 +isPointed__Q310homebutton3gui9ComponentFi = .text:0x802F35C0; // type:function size:0xC +onMove__Q310homebutton3gui9ComponentFff = .text:0x802F35D0; // type:function size:0x4 +onEvent__Q310homebutton3gui7ManagerFUlUlPv = .text:0x802F35E0; // type:function size:0x20 +onEvent__Q310homebutton3gui12EventHandlerFUlUlPv = .text:0x802F3600; // type:function size:0x4 +getID__Q310homebutton3gui9ComponentFv = .text:0x802F3610; // type:function size:0x8 +setPointed__Q310homebutton3gui9ComponentFib = .text:0x802F3620; // type:function size:0xC +onPoint__Q310homebutton3gui9ComponentFv = .text:0x802F3630; // type:function size:0x4 +offPoint__Q310homebutton3gui9ComponentFv = .text:0x802F3640; // type:function size:0x4 +__dt__Q310homebutton3gui7ManagerFv = .text:0x802F3650; // type:function size:0xBC +init__Q310homebutton3gui7ManagerFv = .text:0x802F3710; // type:function size:0x68 +init__Q310homebutton3gui9ComponentFv = .text:0x802F3780; // type:function size:0x2C +addComponent__Q310homebutton3gui7ManagerFPQ310homebutton3gui9Component = .text:0x802F37B0; // type:function size:0xC4 +setManager__Q310homebutton3gui9ComponentFPQ310homebutton3gui7Manager = .text:0x802F3880; // type:function size:0x8 +delComponent__Q310homebutton3gui7ManagerFPQ310homebutton3gui9Component = .text:0x802F3890; // type:function size:0xA0 +getComponent__Q310homebutton3gui7ManagerFUl = .text:0x802F3930; // type:function size:0x2C +update__Q310homebutton3gui7ManagerFiffUlUlUlPv = .text:0x802F3960; // type:function size:0x1A4 +isTriggerTarger__Q310homebutton3gui9ComponentFv = .text:0x802F3B10; // type:function size:0x8 +onTrig__Q310homebutton3gui9ComponentFUlR3Vec = .text:0x802F3B20; // type:function size:0x30 +calc__Q310homebutton3gui7ManagerFv = .text:0x802F3B50; // type:function size:0x68 +calc__Q310homebutton3gui9InterfaceFv = .text:0x802F3BC0; // type:function size:0x4 +draw__Q310homebutton3gui7ManagerFv = .text:0x802F3BD0; // type:function size:0x68 +draw__Q310homebutton3gui9InterfaceFv = .text:0x802F3C40; // type:function size:0x4 +setAllComponentTriggerTarget__Q310homebutton3gui7ManagerFb = .text:0x802F3C50; // type:function size:0x78 +setTriggerTarget__Q310homebutton3gui9ComponentFb = .text:0x802F3CD0; // type:function size:0x8 +__dt__Q310homebutton3gui11PaneManagerFv = .text:0x802F3CE0; // type:function size:0x154 +__dt__Q310homebutton3gui13PaneComponentFv = .text:0x802F3E40; // type:function size:0x40 +__dt__Q310homebutton3gui9ComponentFv = .text:0x802F3E80; // type:function size:0x40 +createLayoutScene__Q310homebutton3gui11PaneManagerFRCQ36nw4hbm3lyt6Layout = .text:0x802F3EC0; // type:function size:0x24 +addLayoutScene__Q310homebutton3gui11PaneManagerFRCQ36nw4hbm3lyt6Layout = .text:0x802F3EF0; // type:function size:0x18 +walkInChildren__Q310homebutton3gui11PaneManagerFRQ36nw4hbm2ut30LinkList = .text:0x802F3F10; // type:function size:0x298 +setPane__Q310homebutton3gui13PaneComponentFPQ36nw4hbm3lyt4Pane = .text:0x802F41B0; // type:function size:0x8 +GetRuntimeTypeInfo__Q36nw4hbm3lyt4PaneCFv = .text:0x802F41C0; // type:function size:0xC +delLayoutScene__Q310homebutton3gui11PaneManagerFRCQ36nw4hbm3lyt6Layout = .text:0x802F41D0; // type:function size:0x18 +walkInChildrenDel__Q310homebutton3gui11PaneManagerFRQ36nw4hbm2ut30LinkList = .text:0x802F41F0; // type:function size:0x11C +getPaneComponentByPane__Q310homebutton3gui11PaneManagerFPQ36nw4hbm3lyt4Pane = .text:0x802F4310; // type:function size:0x78 +setAllBoundingBoxComponentTriggerTarget__Q310homebutton3gui11PaneManagerFb = .text:0x802F4390; // type:function size:0xD0 +contain__Q310homebutton3gui13PaneComponentFff = .text:0x802F4460; // type:function size:0x12C +getDrawInfo__Q310homebutton3gui11PaneManagerFv = .text:0x802F4590; // type:function size:0x8 +draw__Q310homebutton3gui13PaneComponentFv = .text:0x802F45A0; // type:function size:0x184 +is_visible__Q210homebutton3guiFPQ36nw4hbm3lyt4Pane = .text:0x802F4730; // type:function size:0x100 +IsVisible__Q36nw4hbm3lyt4PaneCFv = .text:0x802F4830; // type:function size:0xC +GetParent__Q36nw4hbm3lyt4PaneCFv = .text:0x802F4840; // type:function size:0x8 +isVisible__Q310homebutton3gui13PaneComponentFv = .text:0x802F4850; // type:function size:0xD4 +draw__Q310homebutton3gui9InterfaceFRA3_A4_f = .text:0x802F4930; // type:function size:0x4 +create__Q310homebutton3gui9InterfaceFv = .text:0x802F4940; // type:function size:0x4 +update__Q310homebutton3gui9ComponentFiPC10KPADStatusffPv = .text:0x802F4950; // type:function size:0x8 +setDraggingButton__Q310homebutton3gui9ComponentFUl = .text:0x802F4960; // type:function size:0x8 +onDrag__Q310homebutton3gui9ComponentFff = .text:0x802F4970; // type:function size:0x4 +getPane__Q310homebutton3gui13PaneComponentFv = .text:0x802F4980; // type:function size:0x8 +setEventHandler__Q310homebutton3gui7ManagerFPQ310homebutton3gui12EventHandler = .text:0x802F4990; // type:function size:0x2C +setManager__Q310homebutton3gui12EventHandlerFPQ310homebutton3gui7Manager = .text:0x802F49C0; // type:function size:0x8 +update__Q310homebutton3gui7ManagerFiPC10KPADStatusffPv = .text:0x802F49D0; // type:function size:0x8 +setDrawInfo__Q310homebutton3gui11PaneManagerFPCQ36nw4hbm3lyt8DrawInfo = .text:0x802F49E0; // type:function size:0x8 +wpadConnectCallback__Q210homebutton10ControllerFll = .text:0x802F49F0; // type:function size:0xFC +wpadExtensionCallback__Q210homebutton10ControllerFll = .text:0x802F4AF0; // type:function size:0xF8 +soundOnCallback__Q210homebutton10ControllerFP7OSAlarmP9OSContext = .text:0x802F4BF0; // type:function size:0x6C +__ct__Q210homebutton10ControllerFiPQ210homebutton9RemoteSpk = .text:0x802F4C60; // type:function size:0xB4 +initCallback__Q210homebutton10ControllerFv = .text:0x802F4D20; // type:function size:0xA8 +clearCallback__Q210homebutton10ControllerFv = .text:0x802F4DD0; // type:function size:0x60 +setKpad__Q210homebutton10ControllerFPC11HBMKPadDatab = .text:0x802F4E30; // type:function size:0x1B0 +clrKpadButton__Q210homebutton10ControllerFv = .text:0x802F4FE0; // type:function size:0x14 +setInValidPos__Q210homebutton10ControllerFv = .text:0x802F5000; // type:function size:0x1C +connect__Q210homebutton10ControllerFv = .text:0x802F5020; // type:function size:0x10 +disconnect__Q210homebutton10ControllerFv = .text:0x802F5030; // type:function size:0x4 +setSpeakerVol__Q210homebutton10ControllerFf = .text:0x802F5040; // type:function size:0x8 +playSound__Q210homebutton10ControllerFi = .text:0x802F5050; // type:function size:0x9C +isPlayingSoundId__Q210homebutton10ControllerCFi = .text:0x802F50F0; // type:function size:0x60 +initSound__Q210homebutton10ControllerFv = .text:0x802F5150; // type:function size:0x10 +updateSound__Q210homebutton10ControllerFv = .text:0x802F5160; // type:function size:0x238 +isPlayReady__Q210homebutton10ControllerCFv = .text:0x802F53A0; // type:function size:0x10 +getController__Q210homebutton10ControllerFv = .text:0x802F53B0; // type:function size:0x4 +startMotor__Q210homebutton10ControllerFv = .text:0x802F53C0; // type:function size:0x64 +stopMotor__Q210homebutton10ControllerFv = .text:0x802F5430; // type:function size:0x30 +getInfoAsync__Q210homebutton10ControllerFP8WPADInfo = .text:0x802F5460; // type:function size:0xA0 +ControllerCallback__Q210homebutton10ControllerFll = .text:0x802F5500; // type:function size:0x3C +getBatteryFlag__Q210homebutton10ControllerCFv = .text:0x802F5540; // type:function size:0x24 +clrBatteryFlag__Q210homebutton10ControllerFv = .text:0x802F5570; // type:function size:0x20 +UpdateSpeaker__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext = .text:0x802F5590; // type:function size:0x26C +ClearPcm__Q210homebutton9RemoteSpkFv = .text:0x802F5800; // type:function size:0x2C +__ct__Q210homebutton9RemoteSpkFPv = .text:0x802F5830; // type:function size:0xBC +__dt__Q210homebutton9RemoteSpkFv = .text:0x802F58F0; // type:function size:0xA4 +Start__Q210homebutton9RemoteSpkFv = .text:0x802F59A0; // type:function size:0xD4 +Stop__Q210homebutton9RemoteSpkFv = .text:0x802F5A80; // type:function size:0x54 +DelaySpeakerOnCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext = .text:0x802F5AE0; // type:function size:0x30 +SpeakerOnCallback__Q210homebutton9RemoteSpkFll = .text:0x802F5B10; // type:function size:0xD8 +DelaySpeakerPlayCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext = .text:0x802F5BF0; // type:function size:0x30 +SpeakerPlayCallback__Q210homebutton9RemoteSpkFll = .text:0x802F5C20; // type:function size:0xE4 +Connect__Q210homebutton9RemoteSpkFl = .text:0x802F5D10; // type:function size:0x8C +Play__Q210homebutton9RemoteSpkFliSc = .text:0x802F5DA0; // type:function size:0x98 +isPlaying__Q210homebutton9RemoteSpkCFl = .text:0x802F5E40; // type:function size:0x1C +isPlayingId__Q210homebutton9RemoteSpkCFli = .text:0x802F5E60; // type:function size:0x30 +isPlayReady__Q210homebutton9RemoteSpkCFl = .text:0x802F5E90; // type:function size:0x1C +GetFreePlayer__24@unnamed@HBMAxSound_cpp@Fi = .text:0x802F5EB0; // type:function size:0x198 +AudioFrameCallback__24@unnamed@HBMAxSound_cpp@Fv = .text:0x802F6050; // type:function size:0x64 +AudioSoundThreadProc__24@unnamed@HBMAxSound_cpp@FPv = .text:0x802F60C0; // type:function size:0x240 +PlaySeq__10homebuttonFi = .text:0x802F6300; // type:function size:0x13C +InitAxSound__10homebuttonFPCvPvUl = .text:0x802F6440; // type:function size:0x1F4 +AxSoundMain__10homebuttonFv = .text:0x802F6640; // type:function size:0x4 +StopAllSeq__10homebuttonFv = .text:0x802F6650; // type:function size:0x1C4 +SetVolumeAllSeq__10homebuttonFf = .text:0x802F6820; // type:function size:0x120 +SetSoundMode__10homebuttonFUl = .text:0x802F6940; // type:function size:0x4 +HBMAllocMem__FUl = .text:0x802F6950; // type:function size:0x10 +HBMFreeMem__FPv = .text:0x802F6960; // type:function size:0x10 HBMCreate = .text:0x802F6970; // type:function size:0x120 HBMInit = .text:0x802F6A90; // type:function size:0x30 HBMCalc = .text:0x802F6AC0; // type:function size:0x3C @@ -17998,371 +17998,369 @@ HBMSetBlackOutColor = .text:0x802F6BA0; // type:function size:0x54 HBMSetVIBlack = .text:0x802F6C00; // type:function size:0x34 HBMCreateSound = .text:0x802F6C40; // type:function size:0x54 HBMUpdateSound = .text:0x802F6CA0; // type:function size:0x24 -homebutton__initgx = .text:0x802F6CD0; // type:function size:0x1B8 -homebutton__HomeButton____ct = .text:0x802F6E90; // type:function size:0x10C -nw4hbm__lyt__ArcResourceAccessor____dt = .text:0x802F6FA0; // type:function size:0x6C -homebutton__HomeButton__createInstance = .text:0x802F7010; // type:function size:0x4C -homebutton__HomeButton__getInstance = .text:0x802F7060; // type:function size:0xC -homebutton__HomeButton__create = .text:0x802F7070; // type:function size:0x910 -homebutton__HomeButton__set_config = .text:0x802F7980; // type:function size:0x170 -homebutton__HomeButton__set_text = .text:0x802F7AF0; // type:function size:0x84 -homebutton__HomeButton__init = .text:0x802F7B80; // type:function size:0x504 -fn_802F8090 = .text:0x802F8090; // type:function size:0x200 -fn_802F8290 = .text:0x802F8290; // type:function size:0x130 -fn_802F83C0 = .text:0x802F83C0; // type:function size:0x26C -fn_802F8630 = .text:0x802F8630; // type:function size:0x1DB8 -fn_802FA3F0 = .text:0x802FA3F0; // type:function size:0x20C -fn_802FA600 = .text:0x802FA600; // type:function size:0x29C -fn_802FA8A0 = .text:0x802FA8A0; // type:function size:0xE4 -fn_802FA990 = .text:0x802FA990; // type:function size:0x24 -fn_802FA9C0 = .text:0x802FA9C0; // type:function size:0xCC -fn_802FAA90 = .text:0x802FAA90; // type:function size:0x38 -fn_802FAAD0 = .text:0x802FAAD0; // type:function size:0x93C -fn_802FB410 = .text:0x802FB410; // type:function size:0x8D4 -fn_802FBCF0 = .text:0x802FBCF0; // type:function size:0x2BC -fn_802FBFB0 = .text:0x802FBFB0; // type:function size:0xE4C -fn_802FCE00 = .text:0x802FCE00; // type:function size:0xACC -fn_802FD8D0 = .text:0x802FD8D0; // type:function size:0x1280 -fn_802FEB50 = .text:0x802FEB50; // type:function size:0x26C -fn_802FEDC0 = .text:0x802FEDC0; // type:function size:0xB0 -fn_802FEE70 = .text:0x802FEE70; // type:function size:0x1C -fn_802FEE90 = .text:0x802FEE90; // type:function size:0x124 -fn_802FEFC0 = .text:0x802FEFC0; // type:function size:0xB8 -fn_802FF080 = .text:0x802FF080; // type:function size:0x1E8 -fn_802FF270 = .text:0x802FF270; // type:function size:0x10 -fn_802FF280 = .text:0x802FF280; // type:function size:0x8 -fn_802FF290 = .text:0x802FF290; // type:function size:0x50 -fn_802FF2E0 = .text:0x802FF2E0; // type:function size:0xF0 -fn_802FF3D0 = .text:0x802FF3D0; // type:function size:0x1C4 -fn_802FF5A0 = .text:0x802FF5A0; // type:function size:0xC -fn_802FF5B0 = .text:0x802FF5B0; // type:function size:0x38 -fn_802FF5F0 = .text:0x802FF5F0; // type:function size:0x8C -fn_802FF680 = .text:0x802FF680; // type:function size:0x148 -fn_802FF7D0 = .text:0x802FF7D0; // type:function size:0x100 -fn_802FF8D0 = .text:0x802FF8D0; // type:function size:0xBC -fn_802FF990 = .text:0x802FF990; // type:function size:0x1E0 -fn_802FFB70 = .text:0x802FFB70; // type:function size:0x2D8 -fn_802FFE50 = .text:0x802FFE50; // type:function size:0x38 -fn_802FFE90 = .text:0x802FFE90; // type:function size:0xDC -fn_802FFF70 = .text:0x802FFF70; // type:function size:0x148 -fn_803000C0 = .text:0x803000C0; // type:function size:0x54 -fn_80300120 = .text:0x80300120; // type:function size:0x7C -fn_803001A0 = .text:0x803001A0; // type:function size:0x20 -fn_803001C0 = .text:0x803001C0; // type:function size:0x70 -fn_80300230 = .text:0x80300230; // type:function size:0x3C -fn_80300270 = .text:0x80300270; // type:function size:0x58 -fn_803002D0 = .text:0x803002D0; // type:function size:0x70 -fn_80300340 = .text:0x80300340; // type:function size:0x40 -fn_80300380 = .text:0x80300380; // type:function size:0xC -fn_80300390 = .text:0x80300390; // type:function size:0x14 -fn_803003B0 = .text:0x803003B0; // type:function size:0x2C -fn_803003E0 = .text:0x803003E0; // type:function size:0x2C -fn_80300410 = .text:0x80300410; // type:function size:0x28 -fn_80300440 = .text:0x80300440; // type:function size:0x34 -fn_80300480 = .text:0x80300480; // type:function size:0x14 -fn_803004A0 = .text:0x803004A0; // type:function size:0x50 -fn_803004F0 = .text:0x803004F0; // type:function size:0x88 -fn_80300580 = .text:0x80300580; // type:function size:0xF8 -fn_80300680 = .text:0x80300680; // type:function size:0x94 -fn_80300720 = .text:0x80300720; // type:function size:0x68 -fn_80300790 = .text:0x80300790; // type:function size:0x3C -fn_803007D0 = .text:0x803007D0; // type:function size:0xE4 -fn_803008C0 = .text:0x803008C0; // type:function size:0x560 -fn_80300E20 = .text:0x80300E20; // type:function size:0x130 -fn_80300F50 = .text:0x80300F50; // type:function size:0x198 -fn_803010F0 = .text:0x803010F0; // type:function size:0x140 -fn_80301230 = .text:0x80301230; // type:function size:0x7C -fn_803012B0 = .text:0x803012B0; // type:function size:0x40 -fn_803012F0 = .text:0x803012F0; // type:function size:0x104 -fn_80301400 = .text:0x80301400; // type:function size:0xA8 -fn_803014B0 = .text:0x803014B0; // type:function size:0xC8 -fn_80301580 = .text:0x80301580; // type:function size:0x34 -fn_803015C0 = .text:0x803015C0; // type:function size:0x7C -fn_80301640 = .text:0x80301640; // type:function size:0x1A0 -fn_803017E0 = .text:0x803017E0; // type:function size:0x40 -fn_80301820 = .text:0x80301820; // type:function size:0x128 -fn_80301950 = .text:0x80301950; // type:function size:0x304 -fn_80301C60 = .text:0x80301C60; // type:function size:0x148 -fn_80301DB0 = .text:0x80301DB0; // type:function size:0x24 -fn_80301DE0 = .text:0x80301DE0; // type:function size:0x24 -fn_80301E10 = .text:0x80301E10; // type:function size:0x14 -fn_80301E30 = .text:0x80301E30; // type:function size:0x24 -fn_80301E60 = .text:0x80301E60; // type:function size:0x20 -fn_80301E80 = .text:0x80301E80; // type:function size:0x20 -fn_80301EA0 = .text:0x80301EA0; // type:function size:0x20 -fn_80301EC0 = .text:0x80301EC0; // type:function size:0x6C -fn_80301F30 = .text:0x80301F30; // type:function size:0x1A8 -fn_803020E0 = .text:0x803020E0; // type:function size:0x1FC -fn_803022E0 = .text:0x803022E0; // type:function size:0x118 -fn_80302400 = .text:0x80302400; // type:function size:0x208 -fn_80302610 = .text:0x80302610; // type:function size:0xC -fn_80302620 = .text:0x80302620; // type:function size:0x1190 -fn_803037B0 = .text:0x803037B0; // type:function size:0xB0 -fn_80303860 = .text:0x80303860; // type:function size:0x698 -fn_80303F00 = .text:0x80303F00; // type:function size:0x14 -fn_80303F20 = .text:0x80303F20; // type:function size:0x20 -fn_80303F40 = .text:0x80303F40; // type:function size:0x58 -fn_80303FA0 = .text:0x80303FA0; // type:function size:0x90 -fn_80304030 = .text:0x80304030; // type:function size:0x154 -fn_80304190 = .text:0x80304190; // type:function size:0x84 -fn_80304220 = .text:0x80304220; // type:function size:0x54 -fn_80304280 = .text:0x80304280; // type:function size:0x1B4 -fn_80304440 = .text:0x80304440; // type:function size:0xE1C -fn_80305260 = .text:0x80305260; // type:function size:0x1C -fn_80305280 = .text:0x80305280; // type:function size:0x80 -fn_80305300 = .text:0x80305300; // type:function size:0x14 -fn_80305320 = .text:0x80305320; // type:function size:0x78 -fn_803053A0 = .text:0x803053A0; // type:function size:0x34 -fn_803053E0 = .text:0x803053E0; // type:function size:0x8 -fn_803053F0 = .text:0x803053F0; // type:function size:0x4C -fn_80305440 = .text:0x80305440; // type:function size:0x110 -nw4hbm__lyt__Pane____ct = .text:0x80305550; // type:function size:0x118 -nw4hbm__lyt__Pane____dt = .text:0x80305670; // type:function size:0x134 -nw4hbm__lyt__Pane__AppendChild = .text:0x803057B0; // type:function size:0x50 -nw4hbm__lyt__Pane__GetPaneRect = .text:0x80305800; // type:function size:0x15C -nw4hbm__lyt__Pane__GetVtxColor = .text:0x80305960; // type:function size:0xC -nw4hbm__lyt__Pane__SetVtxColor = .text:0x80305970; // type:function size:0x4 -nw4hbm__lyt__Pane__GetColorElement = .text:0x80305980; // type:function size:0x20 -fn_803059A0 = .text:0x803059A0; // type:function size:0x4 -nw4hbm__lyt__Pane__SetColorElement = .text:0x803059B0; // type:function size:0x20 -fn_803059D0 = .text:0x803059D0; // type:function size:0x4 -nw4hbm__lyt__Pane__GetVtxColorElement = .text:0x803059E0; // type:function size:0x8 -nw4hbm__lyt__Pane__SetVtxColorElement = .text:0x803059F0; // type:function size:0x4 -nw4hbm__lyt__Pane__FindPaneByName = .text:0x80305A00; // type:function size:0xAC -nw4hbm__lyt__Pane__FindMaterialByName = .text:0x80305AB0; // type:function size:0xB8 -nw4hbm__lyt__Pane__CalculateMtx = .text:0x80305B70; // type:function size:0x300 -nw4hbm__lyt__Pane__Draw = .text:0x80305E70; // type:function size:0x84 -nw4hbm__lyt__Pane__DrawSelf = .text:0x80305F00; // type:function size:0x148 -nw4hbm__lyt__Pane__Animate = .text:0x80306050; // type:function size:0x8C -nw4hbm__lyt__Pane__AnimateSelf = .text:0x803060E0; // type:function size:0xB4 -nw4hbm__lyt__Pane__BindAnimation = .text:0x803061A0; // type:function size:0x1C -nw4hbm__lyt__Pane__UnbindAnimation = .text:0x803061C0; // type:function size:0x90 -nw4hbm__lyt__Pane__UnbindAllAnimation = .text:0x80306250; // type:function size:0x18 -nw4hbm__lyt__Pane__UnbindAnimationSelf = .text:0x80306270; // type:function size:0xA0 -nw4hbm__lyt__Pane__AddAnimationLink = .text:0x80306310; // type:function size:0x34 -nw4hbm__lyt__Pane__FindAnimationLink = .text:0x80306350; // type:function size:0x78 -nw4hbm__lyt__Pane__SetAnimationEnable = .text:0x803063D0; // type:function size:0xB8 -nw4hbm__lyt__Pane__LoadMtx = .text:0x80306490; // type:function size:0x108 -nw4hbm__lyt__Pane__GetVtxPos = .text:0x803065A0; // type:function size:0xE0 -nw4hbm__lyt__Pane__GetMaterial = .text:0x80306680; // type:function size:0x8 -nw4hbm__lyt__Pane__sinit = .text:0x80306690; // type:function size:0x10 -nw4hbm__lyt__Picture____ct = .text:0x803066A0; // type:function size:0x128 -nw4hbm__lyt__Picture____dt = .text:0x803067D0; // type:function size:0xD0 -nw4hbm__lyt__Picture__Append = .text:0x803068A0; // type:function size:0x4C -nw4hbm__lyt__Picture__Append2 = .text:0x803068F0; // type:function size:0x170 -nw4hbm__lyt__Picture__GetVtxColor = .text:0x80306A60; // type:function size:0x14 -nw4hbm__lyt__Picture__SetVtxColor = .text:0x80306A80; // type:function size:0x2C -nw4hbm__lyt__Picture__GetVtxColorElement = .text:0x80306AB0; // type:function size:0x18 -nw4hbm__lyt__Picture__SetVtxColorElement = .text:0x80306AD0; // type:function size:0x18 -nw4hbm__lyt__Picture__DrawSelf = .text:0x80306AF0; // type:function size:0xDC -nw4hbm__lyt__Picture__GetRuntimeTypeInfo = .text:0x80306BD0; // type:function size:0xC -nw4hbm__lyt__Picture__sinit = .text:0x80306BE0; // type:function size:0x14 -nw4hbm__lyt__ResourceAccessor____dt = .text:0x80306C00; // type:function size:0x40 -nw4hbm__lyt__ResourceAccessor____ct = .text:0x80306C40; // type:function size:0x10 -nw4hbm__lyt__ResourceAccessor__GetFont = .text:0x80306C50; // type:function size:0x8 -nw4hbm__lyt__TextBox____ct = .text:0x80306C60; // type:function size:0x2B4 -fn_80306F20 = .text:0x80306F20; // type:function size:0x190 -fn_803070B0 = .text:0x803070B0; // type:function size:0x14 -fn_803070D0 = .text:0x803070D0; // type:function size:0x3C -fn_80307110 = .text:0x80307110; // type:function size:0x18 -fn_80307130 = .text:0x80307130; // type:function size:0x18 -fn_80307150 = .text:0x80307150; // type:function size:0x714 -fn_80307870 = .text:0x80307870; // type:function size:0x444 -fn_80307CC0 = .text:0x80307CC0; // type:function size:0x7C -fn_80307D40 = .text:0x80307D40; // type:function size:0x4C -fn_80307D90 = .text:0x80307D90; // type:function size:0x68 -fn_80307E00 = .text:0x80307E00; // type:function size:0xC8 -fn_80307ED0 = .text:0x80307ED0; // type:function size:0x40 -fn_80307F10 = .text:0x80307F10; // type:function size:0x168 -fn_80308080 = .text:0x80308080; // type:function size:0xC -fn_80308090 = .text:0x80308090; // type:function size:0x14 -fn_803080B0 = .text:0x803080B0; // type:function size:0x210 -fn_803082C0 = .text:0x803082C0; // type:function size:0x144 -fn_80308410 = .text:0x80308410; // type:function size:0xFC -fn_80308510 = .text:0x80308510; // type:function size:0xA4 -fn_803085C0 = .text:0x803085C0; // type:function size:0x94 -fn_80308660 = .text:0x80308660; // type:function size:0x14 -fn_80308680 = .text:0x80308680; // type:function size:0x2C -fn_803086B0 = .text:0x803086B0; // type:function size:0x18 -fn_803086D0 = .text:0x803086D0; // type:function size:0x18 -fn_803086F0 = .text:0x803086F0; // type:function size:0x1D8 -fn_803088D0 = .text:0x803088D0; // type:function size:0x90 -fn_80308960 = .text:0x80308960; // type:function size:0x90 -fn_803089F0 = .text:0x803089F0; // type:function size:0x10C -fn_80308B00 = .text:0x80308B00; // type:function size:0x624 -fn_80309130 = .text:0x80309130; // type:function size:0x728 -fn_80309860 = .text:0x80309860; // type:function size:0xE10 -fn_8030A670 = .text:0x8030A670; // type:function size:0x28 -fn_8030A6A0 = .text:0x8030A6A0; // type:function size:0x10 -fn_8030A6B0 = .text:0x8030A6B0; // type:function size:0xC -fn_8030A6C0 = .text:0x8030A6C0; // type:function size:0x14 -fn_8030A6E0 = .text:0x8030A6E0; // type:function size:0x80 -fn_8030A760 = .text:0x8030A760; // type:function size:0x6C -fn_8030A7D0 = .text:0x8030A7D0; // type:function size:0x1C0 -fn_8030A990 = .text:0x8030A990; // type:function size:0x74 -fn_8030AA10 = .text:0x8030AA10; // type:function size:0x78 -fn_8030AA90 = .text:0x8030AA90; // type:function size:0x1C -fn_8030AAB0 = .text:0x8030AAB0; // type:function size:0x1C -fn_8030AAD0 = .text:0x8030AAD0; // type:function size:0x60 -fn_8030AB30 = .text:0x8030AB30; // type:function size:0x38C -fn_8030AEC0 = .text:0x8030AEC0; // type:function size:0x40 -fn_8030AF00 = .text:0x8030AF00; // type:function size:0x8 -fn_8030AF10 = .text:0x8030AF10; // type:function size:0x8 -fn_8030AF20 = .text:0x8030AF20; // type:function size:0x950 -fn_8030B870 = .text:0x8030B870; // type:function size:0x44 -fn_8030B8C0 = .text:0x8030B8C0; // type:function size:0x150 -fn_8030BA10 = .text:0x8030BA10; // type:function size:0x180 -fn_8030BB90 = .text:0x8030BB90; // type:function size:0x8 -fn_8030BBA0 = .text:0x8030BBA0; // type:function size:0x8 -fn_8030BBB0 = .text:0x8030BBB0; // type:function size:0xD0 -fn_8030BC80 = .text:0x8030BC80; // type:function size:0x64 -fn_8030BCF0 = .text:0x8030BCF0; // type:function size:0x64 -fn_8030BD60 = .text:0x8030BD60; // type:function size:0x64 -fn_8030BDD0 = .text:0x8030BDD0; // type:function size:0x8 -fn_8030BDE0 = .text:0x8030BDE0; // type:function size:0x8 -fn_8030BDF0 = .text:0x8030BDF0; // type:function size:0x13C -fn_8030BF30 = .text:0x8030BF30; // type:function size:0xC -fn_8030BF40 = .text:0x8030BF40; // type:function size:0x8 -fn_8030BF50 = .text:0x8030BF50; // type:function size:0x8 -fn_8030BF60 = .text:0x8030BF60; // type:function size:0x10 -fn_8030BF70 = .text:0x8030BF70; // type:function size:0x10 -fn_8030BF80 = .text:0x8030BF80; // type:function size:0x8 -fn_8030BF90 = .text:0x8030BF90; // type:function size:0x8 -fn_8030BFA0 = .text:0x8030BFA0; // type:function size:0x284 -fn_8030C230 = .text:0x8030C230; // type:function size:0x2FC -fn_8030C530 = .text:0x8030C530; // type:function size:0xA4 -fn_8030C5E0 = .text:0x8030C5E0; // type:function size:0x84 -fn_8030C670 = .text:0x8030C670; // type:function size:0x48 -fn_8030C6C0 = .text:0x8030C6C0; // type:function size:0x2C -fn_8030C6F0 = .text:0x8030C6F0; // type:function size:0x18 -fn_8030C710 = .text:0x8030C710; // type:function size:0x70 -fn_8030C780 = .text:0x8030C780; // type:function size:0x6C -fn_8030C7F0 = .text:0x8030C7F0; // type:function size:0x20 -fn_8030C810 = .text:0x8030C810; // type:function size:0x50 -fn_8030C860 = .text:0x8030C860; // type:function size:0x3C -fn_8030C8A0 = .text:0x8030C8A0; // type:function size:0x58 -fn_8030C900 = .text:0x8030C900; // type:function size:0x148 -fn_8030CA50 = .text:0x8030CA50; // type:function size:0x10C -fn_8030CB60 = .text:0x8030CB60; // type:function size:0x44 -fn_8030CBB0 = .text:0x8030CBB0; // type:function size:0x40 -fn_8030CBF0 = .text:0x8030CBF0; // type:function size:0xC -fn_8030CC00 = .text:0x8030CC00; // type:function size:0xC -fn_8030CC10 = .text:0x8030CC10; // type:function size:0xC -fn_8030CC20 = .text:0x8030CC20; // type:function size:0xC -fn_8030CC30 = .text:0x8030CC30; // type:function size:0x14 -fn_8030CC50 = .text:0x8030CC50; // type:function size:0x14 -fn_8030CC70 = .text:0x8030CC70; // type:function size:0x10 -fn_8030CC80 = .text:0x8030CC80; // type:function size:0x10 -fn_8030CC90 = .text:0x8030CC90; // type:function size:0x10 -fn_8030CCA0 = .text:0x8030CCA0; // type:function size:0x8 -fn_8030CCB0 = .text:0x8030CCB0; // type:function size:0x10 -fn_8030CCC0 = .text:0x8030CCC0; // type:function size:0x10 -fn_8030CCD0 = .text:0x8030CCD0; // type:function size:0x18 -fn_8030CCF0 = .text:0x8030CCF0; // type:function size:0x20 -fn_8030CD10 = .text:0x8030CD10; // type:function size:0x9C -fn_8030CDB0 = .text:0x8030CDB0; // type:function size:0xC -fn_8030CDC0 = .text:0x8030CDC0; // type:function size:0x44 -fn_8030CE10 = .text:0x8030CE10; // type:function size:0xF4 -fn_8030CF10 = .text:0x8030CF10; // type:function size:0xA4 -fn_8030CFC0 = .text:0x8030CFC0; // type:function size:0xC -fn_8030CFD0 = .text:0x8030CFD0; // type:function size:0xCC -fn_8030D0A0 = .text:0x8030D0A0; // type:function size:0x108 -fn_8030D1B0 = .text:0x8030D1B0; // type:function size:0x10 -fn_8030D1C0 = .text:0x8030D1C0; // type:function size:0x40 -fn_8030D200 = .text:0x8030D200; // type:function size:0x15C -fn_8030D360 = .text:0x8030D360; // type:function size:0x234 -fn_8030D5A0 = .text:0x8030D5A0; // type:function size:0x70 -fn_8030D610 = .text:0x8030D610; // type:function size:0xF8 -nw4hbm__ut__TagProcessorBase____ct = .text:0x8030D710; // type:function size:0x10 -nw4hbm__ut__TagProcessorBase____dt = .text:0x8030D720; // type:function size:0x40 -nw4hbm__ut__TagProcessorBase__Process = .text:0x8030D760; // type:function size:0x15C -nw4hbm__ut__TagProcessorBase__CalcRect = .text:0x8030D8C0; // type:function size:0x234 -nw4hbm__ut__TagProcessorBase__ProcessLinefeed = .text:0x8030DB00; // type:function size:0x70 -nw4hbm__ut__TagProcessorBase__ProcessTab = .text:0x8030DB70; // type:function size:0xF8 -nw4hbm__ut__TextWriterBase____ct = .text:0x8030DC70; // type:function size:0x5C -fn_8030DCD0 = .text:0x8030DCD0; // type:function size:0x58 -fn_8030DD30 = .text:0x8030DD30; // type:function size:0xA0 -fn_8030DDD0 = .text:0x8030DDD0; // type:function size:0x8C -fn_8030DE60 = .text:0x8030DE60; // type:function size:0x8 -fn_8030DE70 = .text:0x8030DE70; // type:function size:0x8 -fn_8030DE80 = .text:0x8030DE80; // type:function size:0x8 -fn_8030DE90 = .text:0x8030DE90; // type:function size:0x8 -fn_8030DEA0 = .text:0x8030DEA0; // type:function size:0x8 -fn_8030DEB0 = .text:0x8030DEB0; // type:function size:0x8 -fn_8030DEC0 = .text:0x8030DEC0; // type:function size:0x8 -fn_8030DED0 = .text:0x8030DED0; // type:function size:0x8 -fn_8030DEE0 = .text:0x8030DEE0; // type:function size:0x8 -fn_8030DEF0 = .text:0x8030DEF0; // type:function size:0x10 -fn_8030DF00 = .text:0x8030DF00; // type:function size:0x8 -fn_8030DF10 = .text:0x8030DF10; // type:function size:0x1F8 -fn_8030E110 = .text:0x8030E110; // type:function size:0x1F8 -fn_8030E310 = .text:0x8030E310; // type:function size:0x1D0 -fn_8030E4E0 = .text:0x8030E4E0; // type:function size:0x170 -fn_8030E650 = .text:0x8030E650; // type:function size:0x140 -fn_8030E790 = .text:0x8030E790; // type:function size:0x150 -fn_8030E8E0 = .text:0x8030E8E0; // type:function size:0x140 -fn_8030EA20 = .text:0x8030EA20; // type:function size:0x150 -fn_8030EB70 = .text:0x8030EB70; // type:function size:0x110 -fn_8030EC80 = .text:0x8030EC80; // type:function size:0x130 -fn_8030EDB0 = .text:0x8030EDB0; // type:function size:0x228 -fn_8030EFE0 = .text:0x8030EFE0; // type:function size:0x1C4 -fn_8030F1B0 = .text:0x8030F1B0; // type:function size:0x154 -fn_8030F310 = .text:0x8030F310; // type:function size:0x170 -fn_8030F480 = .text:0x8030F480; // type:function size:0x1C -fn_8030F4A0 = .text:0x8030F4A0; // type:function size:0x20 -fn_8030F4C0 = .text:0x8030F4C0; // type:function size:0xC -fn_8030F4D0 = .text:0x8030F4D0; // type:function size:0xC -fn_8030F4E0 = .text:0x8030F4E0; // type:function size:0x4 -fn_8030F4F0 = .text:0x8030F4F0; // type:function size:0x4 -fn_8030F500 = .text:0x8030F500; // type:function size:0x168 -fn_8030F670 = .text:0x8030F670; // type:function size:0x3DC -fn_8030FA50 = .text:0x8030FA50; // type:function size:0x114 -fn_8030FB70 = .text:0x8030FB70; // type:function size:0x5AC -fn_80310120 = .text:0x80310120; // type:function size:0x4EC -fn_80310610 = .text:0x80310610; // type:function size:0x18 -fn_80310630 = .text:0x80310630; // type:function size:0x5C -fn_80310690 = .text:0x80310690; // type:function size:0x58 -fn_803106F0 = .text:0x803106F0; // type:function size:0xA0 -fn_80310790 = .text:0x80310790; // type:function size:0x8C -fn_80310820 = .text:0x80310820; // type:function size:0x8 -fn_80310830 = .text:0x80310830; // type:function size:0x8 -fn_80310840 = .text:0x80310840; // type:function size:0x8 -fn_80310850 = .text:0x80310850; // type:function size:0x8 -fn_80310860 = .text:0x80310860; // type:function size:0x8 -fn_80310870 = .text:0x80310870; // type:function size:0x8 -fn_80310880 = .text:0x80310880; // type:function size:0x8 -fn_80310890 = .text:0x80310890; // type:function size:0x8 -fn_803108A0 = .text:0x803108A0; // type:function size:0x8 -fn_803108B0 = .text:0x803108B0; // type:function size:0x10 -fn_803108C0 = .text:0x803108C0; // type:function size:0x8 -fn_803108D0 = .text:0x803108D0; // type:function size:0x1F8 -fn_80310AD0 = .text:0x80310AD0; // type:function size:0x1F8 -fn_80310CD0 = .text:0x80310CD0; // type:function size:0x1D0 -fn_80310EA0 = .text:0x80310EA0; // type:function size:0x170 -fn_80311010 = .text:0x80311010; // type:function size:0x140 -fn_80311150 = .text:0x80311150; // type:function size:0x150 -fn_803112A0 = .text:0x803112A0; // type:function size:0x140 -fn_803113E0 = .text:0x803113E0; // type:function size:0x150 -fn_80311530 = .text:0x80311530; // type:function size:0x110 -fn_80311640 = .text:0x80311640; // type:function size:0x130 -fn_80311770 = .text:0x80311770; // type:function size:0x228 -fn_803119A0 = .text:0x803119A0; // type:function size:0x1C4 -fn_80311B70 = .text:0x80311B70; // type:function size:0x154 -fn_80311CD0 = .text:0x80311CD0; // type:function size:0x170 -fn_80311E40 = .text:0x80311E40; // type:function size:0x1C -fn_80311E60 = .text:0x80311E60; // type:function size:0x20 -fn_80311E80 = .text:0x80311E80; // type:function size:0xC -fn_80311E90 = .text:0x80311E90; // type:function size:0xC -fn_80311EA0 = .text:0x80311EA0; // type:function size:0x4 -fn_80311EB0 = .text:0x80311EB0; // type:function size:0x4 -fn_80311EC0 = .text:0x80311EC0; // type:function size:0x168 -fn_80312030 = .text:0x80312030; // type:function size:0x3F4 -fn_80312430 = .text:0x80312430; // type:function size:0x118 -fn_80312550 = .text:0x80312550; // type:function size:0x5D0 -fn_80312B20 = .text:0x80312B20; // type:function size:0x4EC -fn_80313010 = .text:0x80313010; // type:function size:0x18 -nw4hbm__ut__TextWriterBase__sinit = .text:0x80313030; // type:function size:0xA4 -__HBMMIXSetPan = .text:0x803130E0; // type:function size:0xA0 +initgx__10homebuttonFv = .text:0x802F6CD0; // type:function size:0x1B8 +__ct__Q210homebutton10HomeButtonFPC11HBMDataInfo = .text:0x802F6E90; // type:function size:0x10C +__dt__Q36nw4hbm3lyt19ArcResourceAccessorFv = .text:0x802F6FA0; // type:function size:0x6C +createInstance__Q210homebutton10HomeButtonFPC11HBMDataInfo = .text:0x802F7010; // type:function size:0x4C +getInstance__Q210homebutton10HomeButtonFv = .text:0x802F7060; // type:function size:0xC +create__Q210homebutton10HomeButtonFv = .text:0x802F7070; // type:function size:0x910 +set_config__Q210homebutton10HomeButtonFv = .text:0x802F7980; // type:function size:0x170 +set_text__Q210homebutton10HomeButtonFv = .text:0x802F7AF0; // type:function size:0x84 +init__Q210homebutton10HomeButtonFv = .text:0x802F7B80; // type:function size:0x504 +init_volume__Q210homebutton10HomeButtonFv = .text:0x802F8090; // type:function size:0x200 +init_sound__Q210homebutton10HomeButtonFv = .text:0x802F8290; // type:function size:0x130 +init_battery__Q210homebutton10HomeButtonFPC17HBMControllerData = .text:0x802F83C0; // type:function size:0x26C +calc__Q210homebutton10HomeButtonFPC17HBMControllerData = .text:0x802F8630; // type:function size:0x1DB8 +calc_battery__Q210homebutton10HomeButtonFi = .text:0x802FA3F0; // type:function size:0x20C +draw__Q210homebutton10HomeButtonFv = .text:0x802FA600; // type:function size:0x29C +SpeakerCallback__10homebuttonFP7OSAlarmP9OSContext = .text:0x802FA8A0; // type:function size:0xE4 +MotorCallback__10homebuttonFP7OSAlarmP9OSContext = .text:0x802FA990; // type:function size:0x24 +RetrySimpleSyncCallback__10homebuttonFP7OSAlarmP9OSContext = .text:0x802FA9C0; // type:function size:0xCC +SimpleSyncCallback__10homebuttonFll = .text:0x802FAA90; // type:function size:0x38 +update__Q210homebutton10HomeButtonFPC17HBMControllerData = .text:0x802FAAD0; // type:function size:0x93C +update_controller__Q210homebutton10HomeButtonFi = .text:0x802FB410; // type:function size:0x8D4 +updateTrigPane__Q210homebutton10HomeButtonFv = .text:0x802FBCF0; // type:function size:0x2BC +startPointEvent__Q210homebutton10HomeButtonFPCQ36nw4hbm3lyt4PanePv = .text:0x802FBFB0; // type:function size:0xE4C +startLeftEvent__Q210homebutton10HomeButtonFPCQ36nw4hbm3lyt4Pane = .text:0x802FCE00; // type:function size:0xACC +startTrigEvent__Q210homebutton10HomeButtonFPCQ36nw4hbm3lyt4Pane = .text:0x802FD8D0; // type:function size:0x1280 +reset_btn__Q210homebutton10HomeButtonFv = .text:0x802FEB50; // type:function size:0x26C +getPaneNo__Q210homebutton10HomeButtonFPCQ36nw4hbm3lyt4Pane = .text:0x802FEDC0; // type:function size:0xB0 +getSelectBtnNum__Q210homebutton10HomeButtonFv = .text:0x802FEE70; // type:function size:0x1C +setAdjustFlag__Q210homebutton10HomeButtonFi = .text:0x802FEE90; // type:function size:0x124 +onEvent__Q210homebutton22HomeButtonEventHandlerFUlUlPv = .text:0x802FEFC0; // type:function size:0xB8 +startBlackOut__Q210homebutton10HomeButtonFv = .text:0x802FF080; // type:function size:0x1E8 +setBlackOutColor__Q210homebutton10HomeButtonFUcUcUc = .text:0x802FF270; // type:function size:0x10 +setVIBlack__Q210homebutton10HomeButtonFi = .text:0x802FF280; // type:function size:0x8 +update_sound__Q210homebutton10HomeButtonFv = .text:0x802FF290; // type:function size:0x50 +GetStepCurveValue__27@unnamed@lyt_animation_cpp@FfPCQ46nw4hbm3lyt3res7StepKeyUl = .text:0x802FF2E0; // type:function size:0xF0 +GetHermiteCurveValue__27@unnamed@lyt_animation_cpp@FfPCQ46nw4hbm3lyt3res10HermiteKeyUl = .text:0x802FF3D0; // type:function size:0x1C4 +GetFrameSize__Q36nw4hbm3lyt13AnimTransformCFv = .text:0x802FF5A0; // type:function size:0xC +__ct__Q36nw4hbm3lyt18AnimTransformBasicFv = .text:0x802FF5B0; // type:function size:0x38 +__dt__Q36nw4hbm3lyt18AnimTransformBasicFv = .text:0x802FF5F0; // type:function size:0x8C +SetResource__Q36nw4hbm3lyt18AnimTransformBasicFPCQ46nw4hbm3lyt3res14AnimationBlockPQ36nw4hbm3lyt16ResourceAccessor = .text:0x802FF680; // type:function size:0x148 +Bind__Q36nw4hbm3lyt18AnimTransformBasicFPQ36nw4hbm3lyt4Paneb = .text:0x802FF7D0; // type:function size:0x100 +Bind__Q36nw4hbm3lyt18AnimTransformBasicFPQ36nw4hbm3lyt8Material = .text:0x802FF8D0; // type:function size:0xBC +Animate__Q36nw4hbm3lyt18AnimTransformBasicFUlPQ36nw4hbm3lyt4Pane = .text:0x802FF990; // type:function size:0x1E0 +Animate__Q36nw4hbm3lyt18AnimTransformBasicFUlPQ36nw4hbm3lyt8Material = .text:0x802FFB70; // type:function size:0x2D8 +FindAnimationLink__Q36nw4hbm3lyt6detailFPQ36nw4hbm2ut40LinkListPQ36nw4hbm3lyt13AnimTransform = .text:0x802FFE50; // type:function size:0x38 +FindNameResource__37@unnamed@lyt_arcResourceAccessor_cpp@FP9ARCHandlePCc = .text:0x802FFE90; // type:function size:0xDC +GetResourceSub__37@unnamed@lyt_arcResourceAccessor_cpp@FP9ARCHandlePCcUlPCcPUl = .text:0x802FFF70; // type:function size:0x148 +__ct__Q36nw4hbm3lyt19ArcResourceAccessorFv = .text:0x803000C0; // type:function size:0x54 +Attach__Q36nw4hbm3lyt19ArcResourceAccessorFPvPCc = .text:0x80300120; // type:function size:0x7C +GetResource__Q36nw4hbm3lyt19ArcResourceAccessorFUlPCcPUl = .text:0x803001A0; // type:function size:0x20 +GetFont__Q36nw4hbm3lyt19ArcResourceAccessorFPCc = .text:0x803001C0; // type:function size:0x70 +__ct__Q36nw4hbm3lyt8BoundingFPCQ46nw4hbm3lyt3res8BoundingRCQ36nw4hbm3lyt11ResBlockSet = .text:0x80300230; // type:function size:0x3C +__dt__Q36nw4hbm3lyt8BoundingFv = .text:0x80300270; // type:function size:0x58 +DrawSelf__Q36nw4hbm3lyt8BoundingFRCQ36nw4hbm3lyt8DrawInfo = .text:0x803002D0; // type:function size:0x70 +__dt__Q36nw4hbm2ut5ColorFv = .text:0x80300340; // type:function size:0x40 +GetRuntimeTypeInfo__Q36nw4hbm3lyt8BoundingCFv = .text:0x80300380; // type:function size:0xC +__sinit_\lyt_bounding_cpp = .text:0x80300390; // type:function size:0x14 scope:local +EqualsPaneName__Q36nw4hbm3lyt6detailFPCcPCc = .text:0x803003B0; // type:function size:0x2C +EqualsMaterialName__Q36nw4hbm3lyt6detailFPCcPCc = .text:0x803003E0; // type:function size:0x2C +TestFileHeader__Q36nw4hbm3lyt6detailFRCQ46nw4hbm3lyt3res16BinaryFileHeader = .text:0x80300410; // type:function size:0x28 +TestFileHeader__Q36nw4hbm3lyt6detailFRCQ46nw4hbm3lyt3res16BinaryFileHeaderUl = .text:0x80300440; // type:function size:0x34 +__ct__Q46nw4hbm3lyt6detail11TexCoordAryFv = .text:0x80300480; // type:function size:0x14 +Free__Q46nw4hbm3lyt6detail11TexCoordAryFv = .text:0x803004A0; // type:function size:0x50 +Reserve__Q46nw4hbm3lyt6detail11TexCoordAryFUc = .text:0x803004F0; // type:function size:0x88 +SetSize__Q46nw4hbm3lyt6detail11TexCoordAryFUc = .text:0x80300580; // type:function size:0xF8 +Copy__Q46nw4hbm3lyt6detail11TexCoordAryFPCvUc = .text:0x80300680; // type:function size:0x94 +IsModulateVertexColor__Q36nw4hbm3lyt6detailFPQ36nw4hbm2ut5ColorUc = .text:0x80300720; // type:function size:0x68 +MultipleAlpha__Q36nw4hbm3lyt6detailFQ36nw4hbm2ut5ColorUc = .text:0x80300790; // type:function size:0x3C +SetVertexFormat__Q36nw4hbm3lyt6detailFbUc = .text:0x803007D0; // type:function size:0xE4 +DrawQuad__Q36nw4hbm3lyt6detailFRCQ36nw4hbm4math4VEC2RCQ36nw4hbm3lyt4SizeUcPA4_CQ36nw4hbm4math4VEC2PCQ36nw4hbm2ut5Color = .text:0x803008C0; // type:function size:0x560 +DrawQuad__Q36nw4hbm3lyt6detailFRCQ36nw4hbm4math4VEC2RCQ36nw4hbm3lyt4SizeUcPA4_CQ36nw4hbm4math4VEC2PCQ36nw4hbm2ut5ColorUc = .text:0x80300E20; // type:function size:0x130 +DrawLine__Q36nw4hbm3lyt6detailFRCQ36nw4hbm4math4VEC2RCQ36nw4hbm3lyt4SizeQ36nw4hbm2ut5Color = .text:0x80300F50; // type:function size:0x198 +InitGXTexObjFromTPL__Q36nw4hbm3lyt6detailFP9_GXTexObjP10TPLPaletteUl = .text:0x803010F0; // type:function size:0x140 +__ct__Q36nw4hbm3lyt8DrawInfoFv = .text:0x80301230; // type:function size:0x7C +__dt__Q36nw4hbm3lyt8DrawInfoFv = .text:0x803012B0; // type:function size:0x40 +__ct__Q36nw4hbm3lyt5GroupFPCQ46nw4hbm3lyt3res5GroupPQ36nw4hbm3lyt4Pane = .text:0x803012F0; // type:function size:0x104 +__dt__Q36nw4hbm3lyt5GroupFv = .text:0x80301400; // type:function size:0xA8 +__dt__Q36nw4hbm3lyt14GroupContainerFv = .text:0x803014B0; // type:function size:0xC8 +AppendGroup__Q36nw4hbm3lyt14GroupContainerFPQ36nw4hbm3lyt5Group = .text:0x80301580; // type:function size:0x34 +FindGroupByName__Q36nw4hbm3lyt14GroupContainerFPCc = .text:0x803015C0; // type:function size:0x7C +SetTagProcessorImpl__24@unnamed@lyt_layout_cpp@FPQ36nw4hbm3lyt4PanePQ36nw4hbm2ut19TagProcessorBase = .text:0x80301640; // type:function size:0x1A0 +__ct__Q36nw4hbm3lyt6LayoutFv = .text:0x803017E0; // type:function size:0x40 +__dt__Q36nw4hbm3lyt6LayoutFv = .text:0x80301820; // type:function size:0x128 +Build__Q36nw4hbm3lyt6LayoutFPCvPQ36nw4hbm3lyt16ResourceAccessor = .text:0x80301950; // type:function size:0x304 +CreateAnimTransform__Q36nw4hbm3lyt6LayoutFPCvPQ36nw4hbm3lyt16ResourceAccessor = .text:0x80301C60; // type:function size:0x148 +BindAnimation__Q36nw4hbm3lyt6LayoutFPQ36nw4hbm3lyt13AnimTransform = .text:0x80301DB0; // type:function size:0x24 +UnbindAnimation__Q36nw4hbm3lyt6LayoutFPQ36nw4hbm3lyt13AnimTransform = .text:0x80301DE0; // type:function size:0x24 +UnbindAllAnimation__Q36nw4hbm3lyt6LayoutFv = .text:0x80301E10; // type:function size:0x14 +SetAnimationEnable__Q36nw4hbm3lyt6LayoutFPQ36nw4hbm3lyt13AnimTransformb = .text:0x80301E30; // type:function size:0x24 +CalculateMtx__Q36nw4hbm3lyt6LayoutFRCQ36nw4hbm3lyt8DrawInfo = .text:0x80301E60; // type:function size:0x20 +Draw__Q36nw4hbm3lyt6LayoutFRCQ36nw4hbm3lyt8DrawInfo = .text:0x80301E80; // type:function size:0x20 +Animate__Q36nw4hbm3lyt6LayoutFUl = .text:0x80301EA0; // type:function size:0x20 +GetLayoutRect__Q36nw4hbm3lyt6LayoutCFv = .text:0x80301EC0; // type:function size:0x6C +SetTagProcessor__Q36nw4hbm3lyt6LayoutFPQ36nw4hbm2ut19TagProcessorBase = .text:0x80301F30; // type:function size:0x1A8 +BuildPaneObj__Q36nw4hbm3lyt6LayoutFlPCvRCQ36nw4hbm3lyt11ResBlockSet = .text:0x803020E0; // type:function size:0x1FC +CalcTextureMtx__26@unnamed@lyt_material_cpp@FPQ36nw4hbm4math5MTX34RCQ36nw4hbm3lyt6TexSRT = .text:0x803022E0; // type:function size:0x118 +SetIndTexMtx__26@unnamed@lyt_material_cpp@F14_GXIndTexMtxIDPA3_Cf = .text:0x80302400; // type:function size:0x208 +__ct__Q36nw4hbm2ut5ColorFv = .text:0x80302610; // type:function size:0xC +__ct__Q36nw4hbm3lyt8MaterialFPCQ46nw4hbm3lyt3res8MaterialRCQ36nw4hbm3lyt11ResBlockSet = .text:0x80302620; // type:function size:0x1190 +__dt__Q36nw4hbm3lyt8MaterialFv = .text:0x803037B0; // type:function size:0xB0 +ReserveGXMem__Q36nw4hbm3lyt8MaterialFUcUcUcUcbUcUcbbbb = .text:0x80303860; // type:function size:0x698 +GetTexSRTAry__Q36nw4hbm3lyt8MaterialFv = .text:0x80303F00; // type:function size:0x14 +GetTexCoordGenAry__Q36nw4hbm3lyt8MaterialFv = .text:0x80303F20; // type:function size:0x20 +GetIndTexSRTAry__Q36nw4hbm3lyt8MaterialFv = .text:0x80303F40; // type:function size:0x58 +SetTextureNum__Q36nw4hbm3lyt8MaterialFUc = .text:0x80303FA0; // type:function size:0x90 +SetTexCoordGenNum__Q36nw4hbm3lyt8MaterialFUc = .text:0x80304030; // type:function size:0x154 +SetTextureNoWrap__Q36nw4hbm3lyt8MaterialFUcP10TPLPalette = .text:0x80304190; // type:function size:0x84 +SetTexture__Q36nw4hbm3lyt8MaterialFUcRC9_GXTexObj = .text:0x80304220; // type:function size:0x54 +SetColorElement__Q36nw4hbm3lyt8MaterialFUls = .text:0x80304280; // type:function size:0x1B4 +SetupGX__Q36nw4hbm3lyt8MaterialFbUc = .text:0x80304440; // type:function size:0xE1C +BindAnimation__Q36nw4hbm3lyt8MaterialFPQ36nw4hbm3lyt13AnimTransform = .text:0x80305260; // type:function size:0x1C +UnbindAnimation__Q36nw4hbm3lyt8MaterialFPQ36nw4hbm3lyt13AnimTransform = .text:0x80305280; // type:function size:0x80 +UnbindAllAnimation__Q36nw4hbm3lyt8MaterialFv = .text:0x80305300; // type:function size:0x14 +Animate__Q36nw4hbm3lyt8MaterialFv = .text:0x80305320; // type:function size:0x78 +AddAnimationLink__Q36nw4hbm3lyt8MaterialFPQ36nw4hbm3lyt13AnimationLink = .text:0x803053A0; // type:function size:0x34 +FindAnimationLink__Q36nw4hbm3lyt8MaterialFPQ36nw4hbm3lyt13AnimTransform = .text:0x803053E0; // type:function size:0x8 +SetAnimationEnable__Q36nw4hbm3lyt8MaterialFPQ36nw4hbm3lyt13AnimTransformb = .text:0x803053F0; // type:function size:0x4C +GetTextureSize__Q36nw4hbm3lyt6detailFPQ36nw4hbm3lyt8MaterialUc = .text:0x80305440; // type:function size:0x110 +__ct__Q36nw4hbm3lyt4PaneFPCQ46nw4hbm3lyt3res4Pane = .text:0x80305550; // type:function size:0x118 +__dt__Q36nw4hbm3lyt4PaneFv = .text:0x80305670; // type:function size:0x134 +AppendChild__Q36nw4hbm3lyt4PaneFPQ36nw4hbm3lyt4Pane = .text:0x803057B0; // type:function size:0x50 +GetPaneRect__Q36nw4hbm3lyt4PaneCFRCQ36nw4hbm3lyt8DrawInfo = .text:0x80305800; // type:function size:0x15C +GetVtxColor__Q36nw4hbm3lyt4PaneCFUl = .text:0x80305960; // type:function size:0xC +SetVtxColor__Q36nw4hbm3lyt4PaneFUlQ36nw4hbm2ut5Color = .text:0x80305970; // type:function size:0x4 +GetColorElement__Q36nw4hbm3lyt4PaneCFUl = .text:0x80305980; // type:function size:0x24 +SetColorElement__Q36nw4hbm3lyt4PaneFUlUc = .text:0x803059B0; // type:function size:0x24 +GetVtxColorElement__Q36nw4hbm3lyt4PaneCFUl = .text:0x803059E0; // type:function size:0x8 +SetVtxColorElement__Q36nw4hbm3lyt4PaneFUlUc = .text:0x803059F0; // type:function size:0x4 +FindPaneByName__Q36nw4hbm3lyt4PaneFPCcb = .text:0x80305A00; // type:function size:0xAC +FindMaterialByName__Q36nw4hbm3lyt4PaneFPCcb = .text:0x80305AB0; // type:function size:0xB8 +CalculateMtx__Q36nw4hbm3lyt4PaneFRCQ36nw4hbm3lyt8DrawInfo = .text:0x80305B70; // type:function size:0x300 +Draw__Q36nw4hbm3lyt4PaneFRCQ36nw4hbm3lyt8DrawInfo = .text:0x80305E70; // type:function size:0x84 +DrawSelf__Q36nw4hbm3lyt4PaneFRCQ36nw4hbm3lyt8DrawInfo = .text:0x80305F00; // type:function size:0x148 +Animate__Q36nw4hbm3lyt4PaneFUl = .text:0x80306050; // type:function size:0x8C +AnimateSelf__Q36nw4hbm3lyt4PaneFUl = .text:0x803060E0; // type:function size:0xB4 +BindAnimation__Q36nw4hbm3lyt4PaneFPQ36nw4hbm3lyt13AnimTransformb = .text:0x803061A0; // type:function size:0x1C +UnbindAnimation__Q36nw4hbm3lyt4PaneFPQ36nw4hbm3lyt13AnimTransformb = .text:0x803061C0; // type:function size:0x90 +UnbindAllAnimation__Q36nw4hbm3lyt4PaneFb = .text:0x80306250; // type:function size:0x18 +UnbindAnimationSelf__Q36nw4hbm3lyt4PaneFPQ36nw4hbm3lyt13AnimTransform = .text:0x80306270; // type:function size:0xA0 +AddAnimationLink__Q36nw4hbm3lyt4PaneFPQ36nw4hbm3lyt13AnimationLink = .text:0x80306310; // type:function size:0x34 +FindAnimationLink__Q36nw4hbm3lyt4PaneFPQ36nw4hbm3lyt13AnimTransform = .text:0x80306350; // type:function size:0x78 +SetAnimationEnable__Q36nw4hbm3lyt4PaneFPQ36nw4hbm3lyt13AnimTransformbb = .text:0x803063D0; // type:function size:0xB8 +LoadMtx__Q36nw4hbm3lyt4PaneFRCQ36nw4hbm3lyt8DrawInfo = .text:0x80306490; // type:function size:0x108 +GetVtxPos__Q36nw4hbm3lyt4PaneCFv = .text:0x803065A0; // type:function size:0xE0 +GetMaterial__Q36nw4hbm3lyt4PaneCFv = .text:0x80306680; // type:function size:0x8 +__sinit_\lyt_pane_cpp = .text:0x80306690; // type:function size:0x10 scope:local +__ct__Q36nw4hbm3lyt7PictureFPCQ46nw4hbm3lyt3res7PictureRCQ36nw4hbm3lyt11ResBlockSet = .text:0x803066A0; // type:function size:0x128 +__dt__Q36nw4hbm3lyt7PictureFv = .text:0x803067D0; // type:function size:0xD0 +Append__Q36nw4hbm3lyt7PictureFP10TPLPalette = .text:0x803068A0; // type:function size:0x4C +Append__Q36nw4hbm3lyt7PictureFRC9_GXTexObj = .text:0x803068F0; // type:function size:0x170 +GetVtxColor__Q36nw4hbm3lyt7PictureCFUl = .text:0x80306A60; // type:function size:0x14 +SetVtxColor__Q36nw4hbm3lyt7PictureFUlQ36nw4hbm2ut5Color = .text:0x80306A80; // type:function size:0x2C +GetVtxColorElement__Q36nw4hbm3lyt7PictureCFUl = .text:0x80306AB0; // type:function size:0x18 +SetVtxColorElement__Q36nw4hbm3lyt7PictureFUlUc = .text:0x80306AD0; // type:function size:0x18 +DrawSelf__Q36nw4hbm3lyt7PictureFRCQ36nw4hbm3lyt8DrawInfo = .text:0x80306AF0; // type:function size:0xDC +GetRuntimeTypeInfo__Q36nw4hbm3lyt7PictureCFv = .text:0x80306BD0; // type:function size:0xC +__sinit_\lyt_picture_cpp = .text:0x80306BE0; // type:function size:0x14 scope:local +__dt__Q36nw4hbm3lyt16ResourceAccessorFv = .text:0x80306C00; // type:function size:0x40 +__ct__Q36nw4hbm3lyt16ResourceAccessorFv = .text:0x80306C40; // type:function size:0x10 +GetFont__Q36nw4hbm3lyt16ResourceAccessorFPCc = .text:0x80306C50; // type:function size:0x8 +__ct__Q36nw4hbm3lyt7TextBoxFPCQ46nw4hbm3lyt3res7TextBoxRCQ36nw4hbm3lyt11ResBlockSet = .text:0x80306C60; // type:function size:0x2B4 +__dt__Q36nw4hbm3lyt7TextBoxFv = .text:0x80306F20; // type:function size:0x190 +GetVtxColor__Q36nw4hbm3lyt7TextBoxCFUl = .text:0x803070B0; // type:function size:0x14 +SetVtxColor__Q36nw4hbm3lyt7TextBoxFUlQ36nw4hbm2ut5Color = .text:0x803070D0; // type:function size:0x3C +GetVtxColorElement__Q36nw4hbm3lyt7TextBoxCFUl = .text:0x80307110; // type:function size:0x18 +SetVtxColorElement__Q36nw4hbm3lyt7TextBoxFUlUc = .text:0x80307130; // type:function size:0x18 +DrawSelf__Q36nw4hbm3lyt7TextBoxFRCQ36nw4hbm3lyt8DrawInfo = .text:0x80307150; // type:function size:0x714 +CalcLineRectImpl__25@unnamed@lyt_textBox_cpp@FPQ36nw4hbm2ut4RectPQ36nw4hbm2ut17TextWriterBasePCwifPb_i = .text:0x80307870; // type:function size:0x444 +AllocStringBuffer__Q36nw4hbm3lyt7TextBoxFUs = .text:0x80307CC0; // type:function size:0x7C +FreeStringBuffer__Q36nw4hbm3lyt7TextBoxFv = .text:0x80307D40; // type:function size:0x4C +SetString__Q36nw4hbm3lyt7TextBoxFPCwUs = .text:0x80307D90; // type:function size:0x68 +SetString__Q36nw4hbm3lyt7TextBoxFPCwUsUs = .text:0x80307E00; // type:function size:0xC8 +__dt__Q36nw4hbm2ut4FontFv = .text:0x80307ED0; // type:function size:0x40 +CalcStringRectImpl__25@unnamed@lyt_textBox_cpp@FPQ36nw4hbm2ut4RectPQ36nw4hbm2ut17TextWriterBasePCwif_v = .text:0x80307F10; // type:function size:0x168 +GetRuntimeTypeInfo__Q36nw4hbm3lyt7TextBoxCFv = .text:0x80308080; // type:function size:0xC +__sinit_\lyt_textBox_cpp = .text:0x80308090; // type:function size:0x14 scope:local +__ct__Q36nw4hbm3lyt6WindowFPCQ46nw4hbm3lyt3res6WindowRCQ36nw4hbm3lyt11ResBlockSet = .text:0x803080B0; // type:function size:0x210 +__dt__Q36nw4hbm3lyt6WindowFv = .text:0x803082C0; // type:function size:0x144 +FindMaterialByName__Q36nw4hbm3lyt6WindowFPCcb = .text:0x80308410; // type:function size:0xFC +FindAnimationLink__Q36nw4hbm3lyt6WindowFPQ36nw4hbm3lyt13AnimTransform = .text:0x80308510; // type:function size:0xA4 +SetAnimationEnable__Q36nw4hbm3lyt6WindowFPQ36nw4hbm3lyt13AnimTransformbb = .text:0x803085C0; // type:function size:0x94 +GetVtxColor__Q36nw4hbm3lyt6WindowCFUl = .text:0x80308660; // type:function size:0x14 +SetVtxColor__Q36nw4hbm3lyt6WindowFUlQ36nw4hbm2ut5Color = .text:0x80308680; // type:function size:0x2C +GetVtxColorElement__Q36nw4hbm3lyt6WindowCFUl = .text:0x803086B0; // type:function size:0x18 +SetVtxColorElement__Q36nw4hbm3lyt6WindowFUlUc = .text:0x803086D0; // type:function size:0x18 +DrawSelf__Q36nw4hbm3lyt6WindowFRCQ36nw4hbm3lyt8DrawInfo = .text:0x803086F0; // type:function size:0x1D8 +AnimateSelf__Q36nw4hbm3lyt6WindowFUl = .text:0x803088D0; // type:function size:0x90 +UnbindAnimationSelf__Q36nw4hbm3lyt6WindowFPQ36nw4hbm3lyt13AnimTransform = .text:0x80308960; // type:function size:0x90 +DrawContent__Q36nw4hbm3lyt6WindowFRCQ36nw4hbm4math4VEC2RCQ36nw4hbm3lyt15WindowFrameSizeUc = .text:0x803089F0; // type:function size:0x10C +DrawFrame__Q36nw4hbm3lyt6WindowFRCQ36nw4hbm4math4VEC2RCQ46nw4hbm3lyt6Window5FrameRCQ36nw4hbm3lyt15WindowFrameSizeUc = .text:0x80308B00; // type:function size:0x624 +DrawFrame4__Q36nw4hbm3lyt6WindowFRCQ36nw4hbm4math4VEC2PCQ46nw4hbm3lyt6Window5FrameRCQ36nw4hbm3lyt15WindowFrameSizeUc = .text:0x80309130; // type:function size:0x728 +DrawFrame8__Q36nw4hbm3lyt6WindowFRCQ36nw4hbm4math4VEC2PCQ46nw4hbm3lyt6Window5FrameRCQ36nw4hbm3lyt15WindowFrameSizeUc = .text:0x80309860; // type:function size:0xE10 +GetFrameMaterial__Q36nw4hbm3lyt6WindowCFUl = .text:0x8030A670; // type:function size:0x28 +GetContentMaterial__Q36nw4hbm3lyt6WindowCFv = .text:0x8030A6A0; // type:function size:0x10 +GetRuntimeTypeInfo__Q36nw4hbm3lyt6WindowCFv = .text:0x8030A6B0; // type:function size:0xC +__sinit_\lyt_window_cpp = .text:0x8030A6C0; // type:function size:0x14 scope:local +SinFIdx__Q26nw4hbm4mathFf = .text:0x8030A6E0; // type:function size:0x80 +CosFIdx__Q26nw4hbm4mathFf = .text:0x8030A760; // type:function size:0x6C +Atan2FIdx__Q26nw4hbm4mathFff = .text:0x8030A7D0; // type:function size:0x1C0 +IsValidBinaryFile__Q26nw4hbm2utFPCQ36nw4hbm2ut16BinaryFileHeaderUlUsUs = .text:0x8030A990; // type:function size:0x74 +ReadNextCharUTF8__Q36nw4hbm2ut14CharStrmReaderFv = .text:0x8030AA10; // type:function size:0x78 +ReadNextCharUTF16__Q36nw4hbm2ut14CharStrmReaderFv = .text:0x8030AA90; // type:function size:0x1C +ReadNextCharCP1252__Q36nw4hbm2ut14CharStrmReaderFv = .text:0x8030AAB0; // type:function size:0x1C +ReadNextCharSJIS__Q36nw4hbm2ut14CharStrmReaderFv = .text:0x8030AAD0; // type:function size:0x60 +__ct__Q36nw4hbm2ut10CharWriterFv = .text:0x8030AB30; // type:function size:0x38C +__dt__Q36nw4hbm2ut10CharWriterFv = .text:0x8030AEC0; // type:function size:0x40 +SetFont__Q36nw4hbm2ut10CharWriterFRCQ36nw4hbm2ut4Font = .text:0x8030AF00; // type:function size:0x8 +GetFont__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030AF10; // type:function size:0x8 +SetupGX__Q36nw4hbm2ut10CharWriterFv = .text:0x8030AF20; // type:function size:0x950 +SetColorMapping__Q36nw4hbm2ut10CharWriterFQ36nw4hbm2ut5ColorQ36nw4hbm2ut5Color = .text:0x8030B870; // type:function size:0x44 +SetGradationMode__Q36nw4hbm2ut10CharWriterFQ46nw4hbm2ut10CharWriter13GradationMode = .text:0x8030B8C0; // type:function size:0x150 +SetTextColor__Q36nw4hbm2ut10CharWriterFQ36nw4hbm2ut5ColorQ36nw4hbm2ut5Color = .text:0x8030BA10; // type:function size:0x180 +GetScaleH__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030BB90; // type:function size:0x8 +GetScaleV__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030BBA0; // type:function size:0x8 +SetFontSize__Q36nw4hbm2ut10CharWriterFff = .text:0x8030BBB0; // type:function size:0xD0 +GetFontWidth__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030BC80; // type:function size:0x64 +GetFontHeight__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030BCF0; // type:function size:0x64 +GetFontAscent__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030BD60; // type:function size:0x64 +IsWidthFixed__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030BDD0; // type:function size:0x8 +GetFixedWidth__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030BDE0; // type:function size:0x8 +Print__Q36nw4hbm2ut10CharWriterFUs = .text:0x8030BDF0; // type:function size:0x13C +SetCursor__Q36nw4hbm2ut10CharWriterFff = .text:0x8030BF30; // type:function size:0xC +SetCursorX__Q36nw4hbm2ut10CharWriterFf = .text:0x8030BF40; // type:function size:0x8 +SetCursorY__Q36nw4hbm2ut10CharWriterFf = .text:0x8030BF50; // type:function size:0x8 +MoveCursorX__Q36nw4hbm2ut10CharWriterFf = .text:0x8030BF60; // type:function size:0x10 +MoveCursorY__Q36nw4hbm2ut10CharWriterFf = .text:0x8030BF70; // type:function size:0x10 +GetCursorX__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030BF80; // type:function size:0x8 +GetCursorY__Q36nw4hbm2ut10CharWriterCFv = .text:0x8030BF90; // type:function size:0x8 +PrintGlyph__Q36nw4hbm2ut10CharWriterFfffRCQ36nw4hbm2ut5Glyph = .text:0x8030BFA0; // type:function size:0x284 +SetupGXWithColorMapping__Q36nw4hbm2ut10CharWriterFQ36nw4hbm2ut5ColorQ36nw4hbm2ut5Color = .text:0x8030C230; // type:function size:0x2FC +InitReaderFunc__Q36nw4hbm2ut4FontFQ36nw4hbm2ut12FontEncoding = .text:0x8030C530; // type:function size:0xA4 +__dt__Q46nw4hbm2ut6detail12LinkListImplFv = .text:0x8030C5E0; // type:function size:0x84 +Erase__Q46nw4hbm2ut6detail12LinkListImplFQ56nw4hbm2ut6detail12LinkListImpl8Iterator = .text:0x8030C670; // type:function size:0x48 +Insert__Q46nw4hbm2ut6detail12LinkListImplFQ56nw4hbm2ut6detail12LinkListImpl8IteratorPQ36nw4hbm2ut12LinkListNode = .text:0x8030C6C0; // type:function size:0x2C +List_Init__Q26nw4hbm2utFPQ36nw4hbm2ut4ListUs = .text:0x8030C6F0; // type:function size:0x18 +List_Append__Q26nw4hbm2utFPQ36nw4hbm2ut4ListPv = .text:0x8030C710; // type:function size:0x70 +List_Remove__Q26nw4hbm2utFPQ36nw4hbm2ut4ListPv = .text:0x8030C780; // type:function size:0x6C +List_GetNext__Q26nw4hbm2utFPCQ36nw4hbm2ut4ListPCv = .text:0x8030C7F0; // type:function size:0x20 +List_GetNth__Q26nw4hbm2utFPCQ36nw4hbm2ut4ListUs = .text:0x8030C810; // type:function size:0x50 +__ct__Q36nw4hbm2ut7ResFontFv = .text:0x8030C860; // type:function size:0x3C +__dt__Q36nw4hbm2ut7ResFontFv = .text:0x8030C8A0; // type:function size:0x58 +SetResource__Q36nw4hbm2ut7ResFontFPv = .text:0x8030C900; // type:function size:0x148 +Rebuild__Q36nw4hbm2ut7ResFontFPQ36nw4hbm2ut16BinaryFileHeader = .text:0x8030CA50; // type:function size:0x10C +__ct__Q46nw4hbm2ut6detail11ResFontBaseFv = .text:0x8030CB60; // type:function size:0x44 +__dt__Q46nw4hbm2ut6detail11ResFontBaseFv = .text:0x8030CBB0; // type:function size:0x40 +SetResourceBuffer__Q46nw4hbm2ut6detail11ResFontBaseFPvPQ36nw4hbm2ut15FontInformation = .text:0x8030CBF0; // type:function size:0xC +GetWidth__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CC00; // type:function size:0xC +GetHeight__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CC10; // type:function size:0xC +GetAscent__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CC20; // type:function size:0xC +GetDescent__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CC30; // type:function size:0x14 +GetBaselinePos__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CC50; // type:function size:0x14 +GetCellHeight__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CC70; // type:function size:0x10 +GetCellWidth__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CC80; // type:function size:0x10 +GetMaxCharWidth__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CC90; // type:function size:0x10 +GetType__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CCA0; // type:function size:0x8 +GetTextureFormat__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CCB0; // type:function size:0x10 +GetLineFeed__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CCC0; // type:function size:0x10 +GetDefaultCharWidths__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CCD0; // type:function size:0x18 +SetDefaultCharWidths__Q46nw4hbm2ut6detail11ResFontBaseFRCQ36nw4hbm2ut10CharWidths = .text:0x8030CCF0; // type:function size:0x20 +SetAlternateChar__Q46nw4hbm2ut6detail11ResFontBaseFUs = .text:0x8030CD10; // type:function size:0x9C +SetLineFeed__Q46nw4hbm2ut6detail11ResFontBaseFi = .text:0x8030CDB0; // type:function size:0xC +GetCharWidth__Q46nw4hbm2ut6detail11ResFontBaseCFUs = .text:0x8030CDC0; // type:function size:0x44 +GetCharWidths__Q46nw4hbm2ut6detail11ResFontBaseCFUs = .text:0x8030CE10; // type:function size:0xF4 +GetGlyph__Q46nw4hbm2ut6detail11ResFontBaseCFPQ36nw4hbm2ut5GlyphUs = .text:0x8030CF10; // type:function size:0xA4 +GetEncoding__Q46nw4hbm2ut6detail11ResFontBaseCFv = .text:0x8030CFC0; // type:function size:0xC +FindGlyphIndex__Q46nw4hbm2ut6detail11ResFontBaseCFPCQ36nw4hbm2ut11FontCodeMapUs = .text:0x8030CFD0; // type:function size:0xCC +GetGlyphFromIndex__Q46nw4hbm2ut6detail11ResFontBaseCFPQ36nw4hbm2ut5GlyphUs = .text:0x8030D0A0; // type:function size:0x108 +__ct__Q36nw4hbm2ut19TagProcessorBaseFv = .text:0x8030D1B0; // type:function size:0x10 +__dt__Q36nw4hbm2ut19TagProcessorBaseFv = .text:0x8030D1C0; // type:function size:0x40 +Process__Q36nw4hbm2ut19TagProcessorBaseFUsPQ36nw4hbm2ut15PrintContext = .text:0x8030D200; // type:function size:0x15C +CalcRect__Q36nw4hbm2ut19TagProcessorBaseFPQ36nw4hbm2ut4RectUsPQ36nw4hbm2ut15PrintContext = .text:0x8030D360; // type:function size:0x234 +ProcessLinefeed__Q36nw4hbm2ut19TagProcessorBaseFPQ36nw4hbm2ut15PrintContext = .text:0x8030D5A0; // type:function size:0x70 +ProcessTab__Q36nw4hbm2ut19TagProcessorBaseFPQ36nw4hbm2ut15PrintContext = .text:0x8030D610; // type:function size:0xF8 +__ct__Q36nw4hbm2ut19TagProcessorBaseFv = .text:0x8030D710; // type:function size:0x10 +__dt__Q36nw4hbm2ut19TagProcessorBaseFv = .text:0x8030D720; // type:function size:0x40 +Process__Q36nw4hbm2ut19TagProcessorBaseFUsPQ36nw4hbm2ut15PrintContext = .text:0x8030D760; // type:function size:0x15C +CalcRect__Q36nw4hbm2ut19TagProcessorBaseFPQ36nw4hbm2ut4RectUsPQ36nw4hbm2ut15PrintContext = .text:0x8030D8C0; // type:function size:0x234 +ProcessLinefeed__Q36nw4hbm2ut19TagProcessorBaseFPQ36nw4hbm2ut15PrintContext = .text:0x8030DB00; // type:function size:0x70 +ProcessTab__Q36nw4hbm2ut19TagProcessorBaseFPQ36nw4hbm2ut15PrintContext = .text:0x8030DB70; // type:function size:0xF8 +__ct__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x8030DC70; // type:function size:0x5C +__dt__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x8030DCD0; // type:function size:0x58 +SetLineHeight__Q36nw4hbm2ut17TextWriterBaseFf = .text:0x8030DD30; // type:function size:0xA0 +GetLineHeight__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x8030DDD0; // type:function size:0x8C +SetLineSpace__Q36nw4hbm2ut17TextWriterBaseFf = .text:0x8030DE60; // type:function size:0x8 +SetCharSpace__Q36nw4hbm2ut17TextWriterBaseFf = .text:0x8030DE70; // type:function size:0x8 +GetLineSpace__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x8030DE80; // type:function size:0x8 +GetCharSpace__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x8030DE90; // type:function size:0x8 +SetTabWidth__Q36nw4hbm2ut17TextWriterBaseFi = .text:0x8030DEA0; // type:function size:0x8 +GetTabWidth__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x8030DEB0; // type:function size:0x8 +SetDrawFlag__Q36nw4hbm2ut17TextWriterBaseFUl = .text:0x8030DEC0; // type:function size:0x8 +GetDrawFlag__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x8030DED0; // type:function size:0x8 +SetTagProcessor__Q36nw4hbm2ut17TextWriterBaseFPQ36nw4hbm2ut19TagProcessorBase = .text:0x8030DEE0; // type:function size:0x8 +ResetTagProcessor__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x8030DEF0; // type:function size:0x10 +GetTagProcessor__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x8030DF00; // type:function size:0x8 +CalcFormatStringWidth__Q36nw4hbm2ut17TextWriterBaseCFPCce = .text:0x8030DF10; // type:function size:0x1F8 +CalcFormatStringHeight__Q36nw4hbm2ut17TextWriterBaseCFPCce = .text:0x8030E110; // type:function size:0x1F8 +CalcFormatStringRect__Q36nw4hbm2ut17TextWriterBaseCFPQ36nw4hbm2ut4RectPCce = .text:0x8030E310; // type:function size:0x1D0 +CalcVStringRect__Q36nw4hbm2ut17TextWriterBaseCFPQ36nw4hbm2ut4RectPCcP16__va_list_struct = .text:0x8030E4E0; // type:function size:0x170 +CalcStringWidth__Q36nw4hbm2ut17TextWriterBaseCFPCci = .text:0x8030E650; // type:function size:0x140 +CalcStringWidth__Q36nw4hbm2ut17TextWriterBaseCFPCc = .text:0x8030E790; // type:function size:0x150 +CalcStringHeight__Q36nw4hbm2ut17TextWriterBaseCFPCci = .text:0x8030E8E0; // type:function size:0x140 +CalcStringHeight__Q36nw4hbm2ut17TextWriterBaseCFPCc = .text:0x8030EA20; // type:function size:0x150 +CalcStringRect__Q36nw4hbm2ut17TextWriterBaseCFPQ36nw4hbm2ut4RectPCci = .text:0x8030EB70; // type:function size:0x110 +CalcStringRect__Q36nw4hbm2ut17TextWriterBaseCFPQ36nw4hbm2ut4RectPCc = .text:0x8030EC80; // type:function size:0x130 +Printf__Q36nw4hbm2ut17TextWriterBaseFPCce = .text:0x8030EDB0; // type:function size:0x228 +VPrintf__Q36nw4hbm2ut17TextWriterBaseFPCcP16__va_list_struct = .text:0x8030EFE0; // type:function size:0x1C4 +Print__Q36nw4hbm2ut17TextWriterBaseFPCci = .text:0x8030F1B0; // type:function size:0x154 +Print__Q36nw4hbm2ut17TextWriterBaseFPCc = .text:0x8030F310; // type:function size:0x170 +SetBuffer__Q36nw4hbm2ut17TextWriterBaseFPcUl = .text:0x8030F480; // type:function size:0x1C +SetBuffer__Q36nw4hbm2ut17TextWriterBaseFUl = .text:0x8030F4A0; // type:function size:0x20 +GetBufferSize__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x8030F4C0; // type:function size:0xC +GetBuffer__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x8030F4D0; // type:function size:0xC +VSNPrintf__Q36nw4hbm2ut17TextWriterBaseFPcUlPCcP16__va_list_struct = .text:0x8030F4E0; // type:function size:0x4 +StrLen__Q36nw4hbm2ut17TextWriterBaseFPCc = .text:0x8030F4F0; // type:function size:0x4 +CalcLineWidth__Q36nw4hbm2ut17TextWriterBaseFPCci = .text:0x8030F500; // type:function size:0x168 +CalcLineRectImpl__Q36nw4hbm2ut17TextWriterBaseFPQ36nw4hbm2ut4RectPCci = .text:0x8030F670; // type:function size:0x3DC +CalcStringRectImpl__Q36nw4hbm2ut17TextWriterBaseFPQ36nw4hbm2ut4RectPCci = .text:0x8030FA50; // type:function size:0x114 +PrintImpl__Q36nw4hbm2ut17TextWriterBaseFPCci = .text:0x8030FB70; // type:function size:0x5AC +AdjustCursor__Q36nw4hbm2ut17TextWriterBaseFPfPfPCci = .text:0x80310120; // type:function size:0x4EC +IsDrawFlagSet__Q36nw4hbm2ut17TextWriterBaseCFUlUl = .text:0x80310610; // type:function size:0x18 +__ct__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x80310630; // type:function size:0x5C +__dt__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x80310690; // type:function size:0x58 +SetLineHeight__Q36nw4hbm2ut17TextWriterBaseFf = .text:0x803106F0; // type:function size:0xA0 +GetLineHeight__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x80310790; // type:function size:0x8C +SetLineSpace__Q36nw4hbm2ut17TextWriterBaseFf = .text:0x80310820; // type:function size:0x8 +SetCharSpace__Q36nw4hbm2ut17TextWriterBaseFf = .text:0x80310830; // type:function size:0x8 +GetLineSpace__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x80310840; // type:function size:0x8 +GetCharSpace__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x80310850; // type:function size:0x8 +SetTabWidth__Q36nw4hbm2ut17TextWriterBaseFi = .text:0x80310860; // type:function size:0x8 +GetTabWidth__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x80310870; // type:function size:0x8 +SetDrawFlag__Q36nw4hbm2ut17TextWriterBaseFUl = .text:0x80310880; // type:function size:0x8 +GetDrawFlag__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x80310890; // type:function size:0x8 +SetTagProcessor__Q36nw4hbm2ut17TextWriterBaseFPQ36nw4hbm2ut19TagProcessorBase = .text:0x803108A0; // type:function size:0x8 +ResetTagProcessor__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x803108B0; // type:function size:0x10 +GetTagProcessor__Q36nw4hbm2ut17TextWriterBaseCFv = .text:0x803108C0; // type:function size:0x8 +CalcFormatStringWidth__Q36nw4hbm2ut17TextWriterBaseCFPCwe = .text:0x803108D0; // type:function size:0x1F8 +CalcFormatStringHeight__Q36nw4hbm2ut17TextWriterBaseCFPCwe = .text:0x80310AD0; // type:function size:0x1F8 +CalcFormatStringRect__Q36nw4hbm2ut17TextWriterBaseCFPQ36nw4hbm2ut4RectPCwe = .text:0x80310CD0; // type:function size:0x1D0 +CalcVStringRect__Q36nw4hbm2ut17TextWriterBaseCFPQ36nw4hbm2ut4RectPCwP16__va_list_struct = .text:0x80310EA0; // type:function size:0x170 +CalcStringWidth__Q36nw4hbm2ut17TextWriterBaseCFPCwi = .text:0x80311010; // type:function size:0x140 +CalcStringWidth__Q36nw4hbm2ut17TextWriterBaseCFPCw = .text:0x80311150; // type:function size:0x150 +CalcStringHeight__Q36nw4hbm2ut17TextWriterBaseCFPCwi = .text:0x803112A0; // type:function size:0x140 +CalcStringHeight__Q36nw4hbm2ut17TextWriterBaseCFPCw = .text:0x803113E0; // type:function size:0x150 +CalcStringRect__Q36nw4hbm2ut17TextWriterBaseCFPQ36nw4hbm2ut4RectPCwi = .text:0x80311530; // type:function size:0x110 +CalcStringRect__Q36nw4hbm2ut17TextWriterBaseCFPQ36nw4hbm2ut4RectPCw = .text:0x80311640; // type:function size:0x130 +Printf__Q36nw4hbm2ut17TextWriterBaseFPCwe = .text:0x80311770; // type:function size:0x228 +VPrintf__Q36nw4hbm2ut17TextWriterBaseFPCwP16__va_list_struct = .text:0x803119A0; // type:function size:0x1C4 +Print__Q36nw4hbm2ut17TextWriterBaseFPCwi = .text:0x80311B70; // type:function size:0x154 +Print__Q36nw4hbm2ut17TextWriterBaseFPCw = .text:0x80311CD0; // type:function size:0x170 +SetBuffer__Q36nw4hbm2ut17TextWriterBaseFPwUl = .text:0x80311E40; // type:function size:0x1C +SetBuffer__Q36nw4hbm2ut17TextWriterBaseFUl = .text:0x80311E60; // type:function size:0x20 +GetBufferSize__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x80311E80; // type:function size:0xC +GetBuffer__Q36nw4hbm2ut17TextWriterBaseFv = .text:0x80311E90; // type:function size:0xC +VSNPrintf__Q36nw4hbm2ut17TextWriterBaseFPwUlPCwP16__va_list_struct = .text:0x80311EA0; // type:function size:0x4 +StrLen__Q36nw4hbm2ut17TextWriterBaseFPCw = .text:0x80311EB0; // type:function size:0x4 +CalcLineWidth__Q36nw4hbm2ut17TextWriterBaseFPCwi = .text:0x80311EC0; // type:function size:0x168 +CalcLineRectImpl__Q36nw4hbm2ut17TextWriterBaseFPQ36nw4hbm2ut4RectPCwi = .text:0x80312030; // type:function size:0x3F4 +CalcStringRectImpl__Q36nw4hbm2ut17TextWriterBaseFPQ36nw4hbm2ut4RectPCwi = .text:0x80312430; // type:function size:0x118 +PrintImpl__Q36nw4hbm2ut17TextWriterBaseFPCwi = .text:0x80312550; // type:function size:0x5D0 +AdjustCursor__Q36nw4hbm2ut17TextWriterBaseFPfPfPCwi = .text:0x80312B20; // type:function size:0x4EC +IsDrawFlagSet__Q36nw4hbm2ut17TextWriterBaseCFUlUl = .text:0x80313010; // type:function size:0x18 +__sinit_\ut_TextWriterBase_cpp = .text:0x80313030; // type:function size:0xA4 scope:local +__HBMMIXSetPan__FP13HBMMIXChannel = .text:0x803130E0; // type:function size:0xA0 HBMMIXInit = .text:0x80313180; // type:function size:0x200 HBMMIXSetSoundMode = .text:0x80313380; // type:function size:0xC HBMMIXInitChannel = .text:0x80313390; // type:function size:0x948 @@ -18376,44 +18374,44 @@ HBMAllocIndex = .text:0x80314950; // type:function size:0x58 HBMGetIndex = .text:0x803149B0; // type:function size:0x14 HBMFreeIndex = .text:0x803149D0; // type:function size:0x28 HBMFreeIndexByKey = .text:0x80314A00; // type:function size:0x2C -__HBMSYNRemoveSynthFromList = .text:0x80314A30; // type:function size:0x90 +__HBMSYNRemoveSynthFromList__FP11HBMSYNSYNTH = .text:0x80314A30; // type:function size:0x90 HBMSYNInit = .text:0x80314AC0; // type:function size:0xD8 HBMSYNRunAudioFrame = .text:0x80314BA0; // type:function size:0x6C HBMSYNInitSynth = .text:0x80314C10; // type:function size:0x188 HBMSYNQuitSynth = .text:0x80314DA0; // type:function size:0xA8 HBMSYNMidiInput = .text:0x80314E50; // type:function size:0x50 -fn_80314EA0 = .text:0x80314EA0; // type:function size:0xC -HBMSYNSetMasterVolume = .text:0x80314EB0; // type:function size:0xDC -__HBMSYNResetAllControllers = .text:0x80314F90; // type:function size:0x22C -__HBMSYNNoteOn = .text:0x803151C0; // type:function size:0x11C +HBMSYNSetMasterVolume = .text:0x80314EA0; // type:function size:0xC +__HBMSYNResetAllControllers = .text:0x80314EB0; // type:function size:0xDC +__HBMSYNNoteOn__FP11HBMSYNSYNTHUcUcUc = .text:0x80314F90; // type:function size:0x22C +__HBMSYNMidiIn__FP11HBMSYNSYNTHPUc = .text:0x803151C0; // type:function size:0x11C __HBMSYNRunInputBufferEvents = .text:0x803152E0; // type:function size:0x68 __HBMSYNSetupVolumeEnvelope = .text:0x80315350; // type:function size:0x2CC __HBMSYNRunVolumeEnvelope = .text:0x80315620; // type:function size:0x10C __HBMSYNSetupVolume = .text:0x80315730; // type:function size:0x28 __HBMSYNSetupPan = .text:0x80315760; // type:function size:0x18 -fn_80315780 = .text:0x80315780; // type:function size:0x14 -fn_803157A0 = .text:0x803157A0; // type:function size:0x24 -fn_803157D0 = .text:0x803157D0; // type:function size:0xA0 -fn_80315870 = .text:0x80315870; // type:function size:0x110 -fn_80315980 = .text:0x80315980; // type:function size:0x68 -fn_803159F0 = .text:0x803159F0; // type:function size:0x9C -fn_80315A90 = .text:0x80315A90; // type:function size:0x5C -fn_80315AF0 = .text:0x80315AF0; // type:function size:0x214 -fn_80315D10 = .text:0x80315D10; // type:function size:0x110 -fn_80315E20 = .text:0x80315E20; // type:function size:0x110 -fn_80315F30 = .text:0x80315F30; // type:function size:0x34 -fn_80315F70 = .text:0x80315F70; // type:function size:0xA4 -fn_80316020 = .text:0x80316020; // type:function size:0xC -fn_80316030 = .text:0x80316030; // type:function size:0xF0 -fn_80316120 = .text:0x80316120; // type:function size:0x11C -fn_80316240 = .text:0x80316240; // type:function size:0x88 -fn_803162D0 = .text:0x803162D0; // type:function size:0x28 -fn_80316300 = .text:0x80316300; // type:function size:0x490 -fn_80316790 = .text:0x80316790; // type:function size:0x90 -fn_80316820 = .text:0x80316820; // type:function size:0x98 -fn_803168C0 = .text:0x803168C0; // type:function size:0x144 -fn_80316A10 = .text:0x80316A10; // type:function size:0x8 -fn_80316A20 = .text:0x80316A20; // type:function size:0x8 +__HBMSYNGetVoiceInput = .text:0x80315780; // type:function size:0x14 +__HBMSYNGetVoiceFader = .text:0x803157A0; // type:function size:0x24 +__HBMSYNUpdateMix = .text:0x803157D0; // type:function size:0xA0 +__HBMSYNGetRelativePitch = .text:0x80315870; // type:function size:0x110 +__HBMSYNSetupPitch = .text:0x80315980; // type:function size:0x68 +__HBMSYNSetupSrc = .text:0x803159F0; // type:function size:0x9C +__HBMSYNUpdateSrc = .text:0x80315A90; // type:function size:0x5C +__HBMSYNSetupAdpcm__FP11HBMSYNVOICE = .text:0x80315AF0; // type:function size:0x214 +__HBMSYNSetupPcm16__FP11HBMSYNVOICE = .text:0x80315D10; // type:function size:0x110 +__HBMSYNSetupPcm8__FP11HBMSYNVOICE = .text:0x80315E20; // type:function size:0x110 +__HBMSYNSetupSample = .text:0x80315F30; // type:function size:0x34 +__HBMSYNClearVoiceReferences = .text:0x80315F70; // type:function size:0xA4 +__HBMSYNSetVoiceToRelease = .text:0x80316020; // type:function size:0xC +__HBMSYNServiceVoice = .text:0x80316030; // type:function size:0xF0 +__HBMSEQInitTracks__FP15_HBMSEQSEQUENCEPUci = .text:0x80316120; // type:function size:0x11C +__HBMSEQReadHeader__FP15_HBMSEQSEQUENCEPUc = .text:0x80316240; // type:function size:0x88 +HBMSEQInit = .text:0x803162D0; // type:function size:0x28 +HBMSEQRunAudioFrame = .text:0x80316300; // type:function size:0x490 +HBMSEQAddSequence = .text:0x80316790; // type:function size:0x90 +HBMSEQRemoveSequence = .text:0x80316820; // type:function size:0x98 +HBMSEQSetState = .text:0x803168C0; // type:function size:0x144 +HBMSEQGetState = .text:0x80316A10; // type:function size:0x8 +HBMSEQSetVolume = .text:0x80316A20; // type:function size:0x8 __ct__18JPAResourceManagerFPCvPQ23EGG4Heap = .text:0x80316A30; // type:function size:0x58 getResource__18JPAResourceManagerCFUs = .text:0x80316A90; // type:function size:0x48 swapTexture__18JPAResourceManagerFPCQ23EGG7ResTIMGPCc = .text:0x80316AE0; // type:function size:0xA0 @@ -28773,13 +28771,17 @@ __THPJpegNaturalOrder = .rodata:0x804F04E0; // type:object size:0x50 __THPAANScaleFactor = .rodata:0x804F0530; // type:object size:0x40 align:8 data:double s_GameHeapNames__5mHeap = .rodata:0x804F0570; // type:object size:0x10 lbl_804F0580 = .rodata:0x804F0580; // type:object size:0x4 align:4 data:float -lbl_804F0588 = .rodata:0x804F0588; // type:object size:0x10 align:4 data:float +lbl_804F0588 = .rodata:0x804F0588; // type:object size:0x4 align:4 data:float +lbl_804F058C = .rodata:0x804F058C; // type:object size:0x4 align:4 data:float +lbl_804F0590 = .rodata:0x804F0590; // type:object size:0x4 align:4 data:float +lbl_804F0594 = .rodata:0x804F0594; // type:object size:0x4 lbl_804F0598 = .rodata:0x804F0598; // type:object size:0x4 align:4 data:float lbl_804F059C = .rodata:0x804F059C; // type:object size:0x4 align:4 data:float lbl_804F05A0 = .rodata:0x804F05A0; // type:object size:0x4 align:4 data:float lbl_804F05A4 = .rodata:0x804F05A4; // type:object size:0x4 align:4 data:float -lbl_804F05A8 = .rodata:0x804F05A8; // type:object size:0x14 -lbl_804F05BC = .rodata:0x804F05BC; // type:object size:0x24 +lbl_804F05A8 = .rodata:0x804F05A8; // type:object size:0x13 data:string +lbl_804F05BC = .rodata:0x804F05BC; // type:object size:0x14 data:string +lbl_804F05D0 = .rodata:0x804F05D0; // type:object size:0x10 lbl_804F05E0 = .rodata:0x804F05E0; // type:object size:0x8 lbl_804F05E8 = .rodata:0x804F05E8; // type:object size:0x60 data:4byte lbl_804F0648 = .rodata:0x804F0648; // type:object size:0x278 data:4byte @@ -37215,32 +37217,32 @@ __vt__12mFaderBase_c = .data:0x80542968; // type:object size:0x24 @3968 = .data:0x80542A50; // type:object size:0x2E scope:local @3971 = .data:0x80542A80; // type:object size:0x22 scope:local lbl_80542AA8 = .data:0x80542AA8; // type:object size:0x20 -lbl_80542AC8 = .data:0x80542AC8; // type:object size:0x8 -lbl_80542AD0 = .data:0x80542AD0; // type:object size:0x10 +__RTTI__Q210homebutton15FrameController = .data:0x80542AC8; // type:object size:0x8 +__vt__Q210homebutton18GroupAnmController = .data:0x80542AD0; // type:object size:0x10 lbl_80542AE0 = .data:0x80542AE0; // type:object size:0x20 lbl_80542B00 = .data:0x80542B00; // type:object size:0x10 -lbl_80542B10 = .data:0x80542B10; // type:object size:0x8 -lbl_80542B18 = .data:0x80542B18; // type:object size:0x68 +__RTTI__Q210homebutton18GroupAnmController = .data:0x80542B10; // type:object size:0x8 +__vt__Q310homebutton3gui13PaneComponent = .data:0x80542B18; // type:object size:0x68 lbl_80542B80 = .data:0x80542B80; // type:object size:0x20 lbl_80542BA0 = .data:0x80542BA0; // type:object size:0x18 -lbl_80542BB8 = .data:0x80542BB8; // type:object size:0x8 -lbl_80542BC0 = .data:0x80542BC0; // type:object size:0x64 +__RTTI__Q310homebutton3gui13PaneComponent = .data:0x80542BB8; // type:object size:0x8 +__vt__Q310homebutton3gui11PaneManager = .data:0x80542BC0; // type:object size:0x64 lbl_80542C24 = .data:0x80542C24; // type:object size:0x20 lbl_80542C44 = .data:0x80542C44; // type:object size:0x14 -lbl_80542C58 = .data:0x80542C58; // type:object size:0x8 -lbl_80542C60 = .data:0x80542C60; // type:object size:0x40 +__RTTI__Q310homebutton3gui11PaneManager = .data:0x80542C58; // type:object size:0x8 +__vt__Q310homebutton3gui7Manager = .data:0x80542C60; // type:object size:0x40 lbl_80542CA0 = .data:0x80542CA0; // type:object size:0x1C lbl_80542CBC = .data:0x80542CBC; // type:object size:0xC -lbl_80542CC8 = .data:0x80542CC8; // type:object size:0x8 -lbl_80542CD0 = .data:0x80542CD0; // type:object size:0x60 +__RTTI__Q310homebutton3gui7Manager = .data:0x80542CC8; // type:object size:0x8 +__vt__Q310homebutton3gui9Component = .data:0x80542CD0; // type:object size:0x60 lbl_80542D30 = .data:0x80542D30; // type:object size:0x1C lbl_80542D4C = .data:0x80542D4C; // type:object size:0xC -lbl_80542D58 = .data:0x80542D58; // type:object size:0x8 +__RTTI__Q310homebutton3gui9Component = .data:0x80542D58; // type:object size:0x8 lbl_80542D60 = .data:0x80542D60; // type:object size:0x20 lbl_80542D80 = .data:0x80542D80; // type:object size:0x8 -lbl_80542D88 = .data:0x80542D88; // type:object size:0xC +__vt__Q210homebutton9RemoteSpk = .data:0x80542D88; // type:object size:0xC lbl_80542D94 = .data:0x80542D94; // type:object size:0x1C -lbl_80542DB0 = .data:0x80542DB0; // type:object size:0x8 +__RTTI__Q210homebutton9RemoteSpk = .data:0x80542DB0; // type:object size:0x8 lbl_80542DB8 = .data:0x80542DB8; // type:object size:0x18 data:string lbl_80542DD0 = .data:0x80542DD0; // type:object size:0x18 lbl_80542DE8 = .data:0x80542DE8; // type:object size:0x18 @@ -37433,51 +37435,51 @@ lbl_80543DDC = .data:0x80543DDC; // type:object size:0xC lbl_80543DE8 = .data:0x80543DE8; // type:object size:0x18 lbl_80543E00 = .data:0x80543E00; // type:object size:0x20 lbl_80543E20 = .data:0x80543E20; // type:object size:0x50 -lbl_80543E70 = .data:0x80543E70; // type:object size:0x20 +__vt__Q36nw4hbm3lyt18AnimTransformBasic = .data:0x80543E70; // type:object size:0x20 lbl_80543E90 = .data:0x80543E90; // type:object size:0x20 data:string lbl_80543EB0 = .data:0x80543EB0; // type:object size:0x10 -lbl_80543EC0 = .data:0x80543EC0; // type:object size:0x8 +__RTTI__Q36nw4hbm3lyt18AnimTransformBasic = .data:0x80543EC0; // type:object size:0x8 lbl_80543EC8 = .data:0x80543EC8; // type:object size:0x20 -lbl_80543EE8 = .data:0x80543EE8; // type:object size:0x8 +__RTTI__Q36nw4hbm3lyt13AnimTransform = .data:0x80543EE8; // type:object size:0x8 lbl_80543EF0 = .data:0x80543EF0; // type:object size:0x4 lbl_80543EF4 = .data:0x80543EF4; // type:object size:0x4 -lbl_80543EF8 = .data:0x80543EF8; // type:object size:0x14 +__vt__Q36nw4hbm3lyt19ArcResourceAccessor = .data:0x80543EF8; // type:object size:0x14 lbl_80543F0C = .data:0x80543F0C; // type:object size:0x24 lbl_80543F30 = .data:0x80543F30; // type:object size:0x10 -lbl_80543F40 = .data:0x80543F40; // type:object size:0x8 +__RTTI__Q36nw4hbm3lyt19ArcResourceAccessor = .data:0x80543F40; // type:object size:0x8 lbl_80543F48 = .data:0x80543F48; // type:object size:0x20 -lbl_80543F68 = .data:0x80543F68; // type:object size:0x8 -lbl_80543F70 = .data:0x80543F70; // type:object size:0x64 +__RTTI__Q36nw4hbm3lyt16ResourceAccessor = .data:0x80543F68; // type:object size:0x8 +__vt__Q36nw4hbm3lyt8Bounding = .data:0x80543F70; // type:object size:0x64 lbl_80543FD4 = .data:0x80543FD4; // type:object size:0x18 lbl_80543FEC = .data:0x80543FEC; // type:object size:0x14 -lbl_80544000 = .data:0x80544000; // type:object size:0x8 +__RTTI__Q36nw4hbm3lyt8Bounding = .data:0x80544000; // type:object size:0x8 lbl_80544008 = .data:0x80544008; // type:object size:0x14 lbl_8054401C = .data:0x8054401C; // type:object size:0xC -lbl_80544028 = .data:0x80544028; // type:object size:0x8 +__RTTI__Q36nw4hbm3lyt4Pane = .data:0x80544028; // type:object size:0x8 lbl_80544030 = .data:0x80544030; // type:object size:0x20 -lbl_80544050 = .data:0x80544050; // type:object size:0x8 -lbl_80544058 = .data:0x80544058; // type:object size:0xC +__RTTI__Q46nw4hbm3lyt6detail8PaneBase = .data:0x80544050; // type:object size:0x8 +__vt__Q36nw4hbm3lyt8DrawInfo = .data:0x80544058; // type:object size:0xC lbl_80544064 = .data:0x80544064; // type:object size:0x1C -lbl_80544080 = .data:0x80544080; // type:object size:0x8 -lbl_80544088 = .data:0x80544088; // type:object size:0xC +__RTTI__Q36nw4hbm3lyt8DrawInfo = .data:0x80544080; // type:object size:0x8 +__vt__Q36nw4hbm3lyt5Group = .data:0x80544088; // type:object size:0xC lbl_80544094 = .data:0x80544094; // type:object size:0x14 -lbl_805440A8 = .data:0x805440A8; // type:object size:0x8 -lbl_805440B0 = .data:0x805440B0; // type:object size:0x34 +__RTTI__Q36nw4hbm3lyt5Group = .data:0x805440A8; // type:object size:0x8 +__vt__Q36nw4hbm3lyt6Layout = .data:0x805440B0; // type:object size:0x34 lbl_805440E4 = .data:0x805440E4; // type:object size:0x14 data:string lbl_805440F8 = .data:0x805440F8; // type:object size:0x8 lbl_80544100 = .data:0x80544100; // type:object size:0x20 data:4byte lbl_80544120 = .data:0x80544120; // type:object size:0x20 data:4byte -lbl_80544140 = .data:0x80544140; // type:object size:0x28 +__vt__Q36nw4hbm3lyt8Material = .data:0x80544140; // type:object size:0x28 lbl_80544168 = .data:0x80544168; // type:object size:0x18 lbl_80544180 = .data:0x80544180; // type:object size:0x8 -lbl_80544188 = .data:0x80544188; // type:object size:0x68 -lbl_805441F0 = .data:0x805441F0; // type:object size:0x6C +__vt__Q36nw4hbm3lyt4Pane = .data:0x80544188; // type:object size:0x68 +__vt__Q36nw4hbm3lyt7Picture = .data:0x805441F0; // type:object size:0x6C lbl_8054425C = .data:0x8054425C; // type:object size:0x18 lbl_80544274 = .data:0x80544274; // type:object size:0x14 lbl_80544288 = .data:0x80544288; // type:object size:0x8 -lbl_80544290 = .data:0x80544290; // type:object size:0x18 +__vt__Q36nw4hbm3lyt16ResourceAccessor = .data:0x80544290; // type:object size:0x18 lbl_805442A8 = .data:0x805442A8; // type:object size:0x4 data:wstring -lbl_805442AC = .data:0x805442AC; // type:object size:0x74 +__vt__Q36nw4hbm3lyt7TextBox = .data:0x805442AC; // type:object size:0x74 lbl_80544320 = .data:0x80544320; // type:object size:0x18 lbl_80544338 = .data:0x80544338; // type:object size:0x18 lbl_80544350 = .data:0x80544350; // type:object size:0x8 @@ -37510,9 +37512,9 @@ lbl_805457A8 = .data:0x805457A8; // type:object size:0x8 lbl_805457B0 = .data:0x805457B0; // type:object size:0x4 data:4byte lbl_805457B4 = .data:0x805457B4; // type:object size:0x4 data:4byte lbl_805457B8 = .data:0x805457B8; // type:object size:0xB90 -lbl_80546348 = .data:0x80546348; // type:object size:0x200 -lbl_80546548 = .data:0x80546548; // type:object size:0x200 data:4byte -lbl_80546748 = .data:0x80546748; // type:object size:0x190 +__HBMSYNn128 = .data:0x80546348; // type:object size:0x200 +__HBMSYNVolumeAttenuation = .data:0x80546548; // type:object size:0x200 data:4byte +__HBMSYNAttackAttnTable = .data:0x80546748; // type:object size:0x190 lbl_805468D8 = .data:0x805468D8; // type:object size:0x3F0 lbl_80546CC8 = .data:0x80546CC8; // type:object size:0x98 jpa_pos = .data:0x80546D60; // type:object size:0x144 scope:local @@ -51754,25 +51756,26 @@ Zero__7mVec3_c = .bss:0x805CB1F8; // type:object size:0xC align:4 data:float Ex__7mVec3_c = .bss:0x805CB204; // type:object size:0xC align:4 data:float Ey__7mVec3_c = .bss:0x805CB210; // type:object size:0xC align:4 data:float Ez__7mVec3_c = .bss:0x805CB21C; // type:object size:0xC align:4 data:float -lbl_805CB228 = .bss:0x805CB228; // type:object size:0x8 data:4byte -Vec3f_805cb228.z = .bss:0x805CB230; // type:object size:0xC8 +suIDCounter__Q310homebutton3gui11PaneManager = .bss:0x805CB228; // type:object size:0x4 data:4byte +lbl_805CB230 = .bss:0x805CB230; // type:object size:0x8 +lbl_805CB238 = .bss:0x805CB238; // type:object size:0xC0 lbl_805CB2F8 = .bss:0x805CB2F8; // type:object size:0xC0 lbl_805CB3B8 = .bss:0x805CB3B8; // type:object size:0x10 lbl_805CB3C8 = .bss:0x805CB3C8; // type:object size:0x8 -lbl_805CB3D0 = .bss:0x805CB3D0; // type:object size:0x8 data:4byte +spInstance__Q210homebutton9RemoteSpk = .bss:0x805CB3D0; // type:object size:0x8 data:4byte lbl_805CB3D8 = .bss:0x805CB3D8; // type:object size:0x8 data:4byte lbl_805CB3E0 = .bss:0x805CB3E0; // type:object size:0x10 lbl_805CB3F0 = .bss:0x805CB3F0; // type:object size:0x8 data:4byte lbl_805CB3F8 = .bss:0x805CB3F8; // type:object size:0x18 lbl_805CB410 = .bss:0x805CB410; // type:object size:0x60 -lbl_805CB470 = .bss:0x805CB470; // type:object size:0x8 data:4byte +typeInfo__Q36nw4hbm3lyt8Bounding = .bss:0x805CB470; // type:object size:0x8 data:4byte lbl_805CB478 = .bss:0x805CB478; // type:object size:0x8 data:byte lbl_805CB480 = .bss:0x805CB480; // type:object size:0x20 align:4 data:float -lbl_805CB4A0 = .bss:0x805CB4A0; // type:object size:0x8 data:4byte -lbl_805CB4A8 = .bss:0x805CB4A8; // type:object size:0x8 data:4byte -lbl_805CB4B0 = .bss:0x805CB4B0; // type:object size:0x8 data:4byte -lbl_805CB4B8 = .bss:0x805CB4B8; // type:object size:0x8 data:4byte -lbl_805CB4C0 = .bss:0x805CB4C0; // type:object size:0x8 data:4byte +mspAllocator__Q36nw4hbm3lyt6Layout = .bss:0x805CB4A0; // type:object size:0x8 data:4byte +typeInfo__Q36nw4hbm3lyt4Pane = .bss:0x805CB4A8; // type:object size:0x8 data:4byte +typeInfo__Q36nw4hbm3lyt7Picture = .bss:0x805CB4B0; // type:object size:0x8 data:4byte +typeInfo__Q36nw4hbm3lyt7TextBox = .bss:0x805CB4B8; // type:object size:0x8 data:4byte +typeInfo__Q36nw4hbm3lyt6Window = .bss:0x805CB4C0; // type:object size:0x8 data:4byte lbl_805CB4C8 = .bss:0x805CB4C8; // type:object size:0x1 data:byte lbl_805CB4CC = .bss:0x805CB4CC; // type:object size:0x4 data:4byte lbl_805CB4D0 = .bss:0x805CB4D0; // type:object size:0x10 data:4byte @@ -51789,7 +51792,7 @@ lbl_805CB520 = .bss:0x805CB520; // type:object size:0x60 data:byte lbl_805CB580 = .bss:0x805CB580; // type:object size:0x4 data:4byte lbl_805CB584 = .bss:0x805CB584; // type:object size:0x64C data:4byte lbl_805CBBD0 = .bss:0x805CBBD0; // type:object size:0x4 data:4byte -lbl_805CBBD4 = .bss:0x805CBBD4; // type:object size:0x4C4 data:4byte +__HBMSYNVoice = .bss:0x805CBBD4; // type:object size:0x4C4 data:4byte lbl_805CC098 = .bss:0x805CC098; // type:object size:0x8 data:4byte lbl_805CC0A0 = .bss:0x805CC0A0; // type:object size:0x4 data:4byte lbl_805CC0A4 = .bss:0x805CC0A4; // type:object size:0x4 data:4byte From 77783d84ec9abc06ddc63bf67cbd579b3a932d77 Mon Sep 17 00:00:00 2001 From: robojumper Date: Wed, 16 Jul 2025 21:58:21 +0200 Subject: [PATCH 33/36] Fix header guard --- include/d/lyt/d_lyt_meter_hio.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/d/lyt/d_lyt_meter_hio.h b/include/d/lyt/d_lyt_meter_hio.h index e02379b6..9e68f7ce 100644 --- a/include/d/lyt/d_lyt_meter_hio.h +++ b/include/d/lyt/d_lyt_meter_hio.h @@ -1,5 +1,5 @@ -#ifndef D_LYT_METER_HIO_C -#define D_LYT_METER_HIO_C +#ifndef D_LYT_METER_HIO_H +#define D_LYT_METER_HIO_H #include "common.h" From 583f953179e1ab02533079205c8b87b420283f22 Mon Sep 17 00:00:00 2001 From: robojumper Date: Thu, 17 Jul 2025 15:42:03 +0200 Subject: [PATCH 34/36] Split MSL and TRK --- config/SOUE01/config.yml | 5 + .../rels/d_a_obj_desert_debrisNP/symbols.txt | 2 +- config/SOUE01/splits.txt | 192 +++++++++++++++++- config/SOUE01/symbols.txt | 182 ++++++++--------- configure.py | 135 +++++++++++- 5 files changed, 414 insertions(+), 102 deletions(-) diff --git a/config/SOUE01/config.yml b/config/SOUE01/config.yml index 1a9714e7..6e3f1933 100644 --- a/config/SOUE01/config.yml +++ b/config/SOUE01/config.yml @@ -38,6 +38,11 @@ add_relocations: - source: .text:0x80306FCC type: l target: lbl_804F0A00 + # TRK branches + - source: .init:0x80004844 + type: rel24 + target: __TRKreset + # TODO - all the TRK_InterruptHandler loads extract: - symbol: DOL_BACKUP_FONT header: d/dol_backup_error_font.inc diff --git a/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt b/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt index 1a8f83af..92204ec7 100644 --- a/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_desert_debrisNP/symbols.txt @@ -14,4 +14,4 @@ _dtors = .dtors:0x00000000; // type:label scope:global lbl_428_rodata_0 = .rodata:0x00000000; // type:object size:0x4 scope:local data:float g_profile_OBJ_DESERT_DEBRIS = .data:0x00000000; // type:object size:0x70 lbl_428_data_70 = .data:0x00000070; // type:object size:0x20 scope:local data:string -AcOdesertDebris__vtable = .data:0x00000090; // type:object size:0x80 +AcOdesertDebris__vtable = .data:0x00000090; // type:object size:0x80 scope:local diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 3f493104..c8b0c789 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -4792,6 +4792,7 @@ JSystem/JStudio/JStudio_JAudio2/object-sound.cpp: .ctors start:0x804DB9C8 end:0x804DB9CC PowerPC_EABI_Support/Runtime/Src/__mem.c: + .init start:0x800043C4 end:0x80004744 .text start:0x804C64DC end:0x804C64F8 PowerPC_EABI_Support/Runtime/Src/__va_arg.c: @@ -4808,9 +4809,11 @@ PowerPC_EABI_Support/Runtime/Src/NMWException.cp: PowerPC_EABI_Support/Runtime/Src/ptmf.c: .text start:0x804C69D0 end:0x804C6A64 + .rodata start:0x804FBFA8 end:0x804FBFB8 PowerPC_EABI_Support/Runtime/Src/runtime.c: .text start:0x804C6A64 end:0x804C71A8 + .rodata start:0x804FBFB8 end:0x804FBFD0 PowerPC_EABI_Support/Runtime/Src/__init_cpp_exceptions.cpp: .text start:0x804C71A8 end:0x804C7218 @@ -4821,15 +4824,39 @@ PowerPC_EABI_Support/Runtime/Src/__init_cpp_exceptions.cpp: PowerPC_EABI_Support/Runtime/Src/Gecko_ExceptionPPC.cp: .text start:0x804C7218 end:0x804C728C + .bss start:0x80675948 end:0x80675AC8 PowerPC_EABI_Support/Runtime/Src/GCN_Mem_Alloc.c: - .text start:0x804C728C end:0x804C7858 + .text start:0x804C728C end:0x804C7344 + .rodata start:0x804FBFD0 end:0x804FC040 + +PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/alloc.c: + .text start:0x804C7344 end:0x804C7858 + .rodata start:0x804FC040 end:0x804FC058 + .sbss start:0x80576938 end:0x80576940 + .bss start:0x80675AC8 end:0x80675B00 + +PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/errno.c: + .sbss start:0x80576940 end:0x80576948 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/ansi_files.c: .text start:0x804C7858 end:0x804C7968 + .data start:0x80570560 end:0x805706A0 + .bss start:0x80675B00 end:0x80675E00 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Src/ansi_fp.c: .text start:0x804C7968 end:0x804C91E8 + .rodata start:0x804FC058 end:0x804FC138 + .data start:0x805706A0 end:0x80570808 + .sdata2 start:0x8057FA00 end:0x8057FA38 + +PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/ctype.c: + .rodata start:0x804FC138 end:0x804FC538 + +PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/locale.c: + .rodata start:0x804FC538 end:0x804FC640 + .data start:0x80570808 end:0x80570A00 + .sdata2 start:0x8057FA38 end:0x8057FA50 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/arith.c: .text start:0x804C91E8 end:0x804C9264 @@ -4855,7 +4882,7 @@ PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/mem.c: PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/mem_funcs.c: .text start:0x804C9E14 end:0x804CA0E4 -PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/float.c: +PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/math_api.c: .text start:0x804CA0E4 end:0x804CA1D8 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/misc_io.c: @@ -4863,21 +4890,41 @@ PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/misc_io.c: PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/printf.c: .text start:0x804CA1E8 end:0x804CC6AC + .rodata start:0x804FC640 end:0x804FC668 + .data start:0x80570A00 end:0x80570C30 + .sdata start:0x80574F80 end:0x80574F88 + .sdata2 start:0x8057FA50 end:0x8057FA58 + +PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/float.c: + .sdata start:0x80574F88 end:0x80574F98 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/scanf.c: .text start:0x804CC6AC end:0x804CDB90 + .rodata start:0x804FC668 end:0x804FC690 + .data start:0x80570C30 end:0x80570EA0 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/string.c: .text start:0x804CDB90 end:0x804CDF4C +PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/strtold.c: + .text start:0x804CDF4C end:0x804CF270 + .rodata start:0x804FC690 end:0x804FC6A0 + .sdata2 start:0x8057FA58 end:0x8057FA78 + +PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wctype.c: + .rodata start:0x804FC6A0 end:0x804FCCA0 + PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/strtoul.c: - .text start:0x804CDF4C end:0x804CFBF0 + .text start:0x804CF270 end:0x804CFBF0 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wmem.c: .text start:0x804CFBF0 end:0x804CFC80 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wprintf.c: .text start:0x804CFC80 end:0x804D1F98 + .rodata start:0x804FCCA0 end:0x804FCCA8 + .data start:0x80570EA0 end:0x80571140 + .sdata2 start:0x8057FA78 end:0x8057FA80 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wstring.c: .text start:0x804D1F98 end:0x804D20C0 @@ -4887,78 +4934,110 @@ PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wchar_io.c: PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/uart_console_io_gcn.c: .text start:0x804D2138 end:0x804D2210 + .sbss start:0x80576948 end:0x80576950 + +PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/abort_exit_ppc_eabi.c: + .sbss start:0x80576950 end:0x80576958 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/secure_error.c: .text start:0x804D2210 end:0x804D2228 + .sbss start:0x80576958 end:0x80576960 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Src/math_sun.c: .text start:0x804D2228 end:0x804D2268 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_acos.c: .text start:0x804D2268 end:0x804D2534 + .sdata2 start:0x8057FA80 end:0x8057FB08 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_asin.c: .text start:0x804D2534 end:0x804D27CC + .sdata2 start:0x8057FB08 end:0x8057FB90 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_atan2.c: .text start:0x804D27CC end:0x804D2A24 + .sdata2 start:0x8057FB90 end:0x8057FBE8 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_fmod.c: .text start:0x804D2A24 end:0x804D2DA4 + .rodata start:0x804FCCA8 end:0x804FCCB8 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_log.c: .text start:0x804D2DA4 end:0x804D3058 + .sbss start:0x80576960 end:0x80576968 + .sdata2 start:0x8057FBE8 end:0x8057FC68 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_log10.c: .text start:0x804D3058 end:0x804D316C + .sbss start:0x80576968 end:0x80576970 + .sdata2 start:0x8057FC68 end:0x8057FC98 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_pow.c: .text start:0x804D316C end:0x804D3980 + .rodata start:0x804FCCB8 end:0x804FCCE8 + .sdata2 start:0x8057FC98 end:0x8057FDA8 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_rem_pio2.c: .text start:0x804D3980 end:0x804D3D04 + .rodata start:0x804FCCE8 end:0x804FCE70 + .sdata2 start:0x8057FDA8 end:0x8057FE00 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/k_cos.c: .text start:0x804D3D04 end:0x804D3E14 + .sdata2 start:0x8057FE00 end:0x8057FE48 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/k_rem_pio2.c: .text start:0x804D3E14 end:0x804D54CC + .rodata start:0x804FCE70 end:0x804FCEC0 + .sdata2 start:0x8057FE48 end:0x8057FE88 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/k_sin.c: .text start:0x804D54CC end:0x804D558C + .sdata2 start:0x8057FE88 end:0x8057FEC0 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/k_tan.c: .text start:0x804D558C end:0x804D57DC + .rodata start:0x804FCEC0 end:0x804FCF28 + .sdata2 start:0x8057FEC0 end:0x8057FEF8 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_atan.c: .text start:0x804D57DC end:0x804D5A0C + .rodata start:0x804FCF28 end:0x804FCFC0 + .sdata2 start:0x8057FEF8 end:0x8057FF20 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_ceil.c: .text start:0x804D5A0C end:0x804D5B58 + .sdata2 start:0x8057FF20 end:0x8057FF30 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_copysign.c: .text start:0x804D5B58 end:0x804D5B84 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_cos.c: .text start:0x804D5B84 end:0x804D5C4C + .sdata2 start:0x8057FF30 end:0x8057FF38 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_floor.c: .text start:0x804D5C4C end:0x804D5D9C + .sdata2 start:0x8057FF38 end:0x8057FF48 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_frexp.c: .text start:0x804D5D9C end:0x804D5E24 + .sdata2 start:0x8057FF48 end:0x8057FF50 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_ldexp.c: .text start:0x804D5E24 end:0x804D5F90 + .sdata2 start:0x8057FF50 end:0x8057FF78 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_modf.c: .text start:0x804D5F90 end:0x804D608C PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_sin.c: .text start:0x804D608C end:0x804D6158 + .sdata2 start:0x8057FF78 end:0x8057FF80 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/s_tan.c: .text start:0x804D6158 end:0x804D61D0 + .sdata2 start:0x8057FF80 end:0x8057FF88 PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_acos.c: .text start:0x804D61D0 end:0x804D61D4 @@ -4980,6 +5059,7 @@ PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_pow.c PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/e_sqrt.c: .text start:0x804D61E8 end:0x804D6430 + .sdata2 start:0x8057FF88 end:0x8057FF90 PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/math_ppc.c: .text start:0x804D6430 end:0x804D6434 @@ -4990,5 +5070,107 @@ PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Math/Double_precision/w_sqrt. PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/extras.c: .text start:0x804D6438 end:0x804D6570 -toBeSorted/TRK.c: - .text start:0x804D6570 end:0x804DB638 +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Export/targsupp.s: + .text start:0x804D6570 end:0x804D6590 + +TRK_MINNOW_DOLPHIN/gamedev/cust_connection/cc/exi2/GCN/EXI2_GDEV_GCN/main.c: + .text start:0x804D6590 end:0x804D6808 + .sbss start:0x80576970 end:0x80576978 + .bss start:0x80675E00 end:0x80676320 + +TRK_MINNOW_DOLPHIN/gamedev/cust_connection/utils/gc/MWCriticalSection_gc.c: + .text start:0x804D6808 end:0x804D6844 + +TRK_MINNOW_DOLPHIN/gamedev/cust_connection/utils/common/CircleBuffer.c: + .text start:0x804D6844 end:0x804D6A80 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/flush_cache.c: + .text start:0x804D6A80 end:0x804D6AB8 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/main_TRK.c: + .text start:0x804D6AB8 end:0x804D6AF4 + .sbss start:0x80576978 end:0x80576980 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mainloop.c: + .text start:0x804D6AF4 end:0x804D6BE0 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mem_TRK.c: + .text start:0x804D6BE0 end:0x804D6E44 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/dispatch.c: + .text start:0x804D6E44 end:0x804D6F64 + .data start:0x80571140 end:0x805711B0 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk.c: + .text start:0x804D6F64 end:0x804D7288 + .data start:0x805711B0 end:0x805711F0 + .sbss start:0x80576980 end:0x80576988 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk_glue.c: + .text start:0x804D7288 end:0x804D7624 + .data start:0x805711F0 end:0x805712D8 + .sbss start:0x80576988 end:0x80576990 + .sdata2 start:0x8057FF90 end:0x8057FF94 + .bss start:0x80676320 end:0x80676348 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/notify.c: + .text start:0x804D7624 end:0x804D76B4 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/nubevent.c: + .text start:0x804D76B4 end:0x804D7850 + .data start:0x805712D8 end:0x805712F8 + .bss start:0x80676348 end:0x80676370 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/nubinit.c: + .text start:0x804D7850 end:0x804D79A0 + .data start:0x805712F8 end:0x80571318 + .sbss start:0x80576990 end:0x80576998 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/serpoll.c: + .text start:0x804D79A0 end:0x804D7AE8 + .sbss start:0x80576998 end:0x805769A0 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/string_TRK.c: + .text start:0x804D7AE8 end:0x804D7B04 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/support.c: + .text start:0x804D7B04 end:0x804D8128 + .data start:0x80571318 end:0x80571360 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/targcont.c: + .text start:0x804D8128 end:0x804D815C + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/mpc_7xx_603e.c: + .text start:0x804D815C end:0x804D8484 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msg.c: + .text start:0x804D8484 end:0x804D84E8 + .data start:0x80571360 end:0x80571388 + .sbss start:0x805769A0 end:0x805769A8 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msgbuf.c: + .text start:0x804D84E8 end:0x804D8CF4 + .data start:0x80571388 end:0x805713B0 + .bss start:0x80676370 end:0x80677D18 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msghndlr.c: + .text start:0x804D8CF4 end:0x804D9C78 + .data start:0x805713B0 end:0x80571418 + .sbss start:0x805769A8 end:0x805769B0 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Export/mslsupp.c: + .text start:0x804D9C78 end:0x804D9E04 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/targimpl.c: + .text start:0x804D9E04 end:0x804DB628 + .rodata start:0x804FCFC0 end:0x804FD048 + .data start:0x80571418 end:0x80571428 + .sbss start:0x805769B0 end:0x805769B8 + .bss start:0x80677D18 end:0x806782C0 + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/target_options.c: + .text start:0x804DB628 end:0x804DB638 + .sbss start:0x805769B8 end:0x805769BC + +TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/exception.s: + .init start:0x80004744 end:0x80006678 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index db720fbd..81318497 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -17227,7 +17227,7 @@ __ct__8sPhase_cFPPFPv_Q28sPhase_c15METHOD_RESULT_ei = .text:0x802DEEB0; // type: callMethod__8sPhase_cFPv = .text:0x802DEED0; // type:function size:0xA4 vprintf_wrap = .text:0x802DEF80; // type:function size:0x8 OSVReportGhidra = .text:0x802DEF90; // type:function size:0x4C -printf = .text:0x802DEFE0; // type:function size:0x80 +fn_802DEFE0 = .text:0x802DEFE0; // type:function size:0x80 OSReport = .text:0x802DF060; // type:function size:0x80 scope:weak OSVReport = .text:0x802DF0E0; // type:function size:0x4 scope:global cCounter_c__clear = .text:0x802DF0F0; // type:function size:0x10 @@ -27383,12 +27383,12 @@ __va_arg = .text:0x804C64F8; // type:function size:0xC8 scope:global __register_global_object = .text:0x804C65C0; // type:function size:0x18 scope:global __destroy_global_chain = .text:0x804C65D8; // type:function size:0x48 scope:global __construct_new_array = .text:0x804C6620; // type:function size:0x104 -Runtime.PPCEABI.H____partial_array_destructor____dt = .text:0x804C6724; // type:function size:0xBC +__dt__26__partial_array_destructorFv = .text:0x804C6724; // type:function size:0xBC __construct_array = .text:0x804C67E0; // type:function size:0xF8 __destroy_arr = .text:0x804C68D8; // type:function size:0x78 __destroy_new_array = .text:0x804C6950; // type:function size:0x80 __ptmf_test = .text:0x804C69D0; // type:function size:0x30 -Runtime.PPCEABI.H____ptmf_cmpr = .text:0x804C6A00; // type:function size:0x3C +__ptmf_cmpr = .text:0x804C6A00; // type:function size:0x3C __ptmf_scall = .text:0x804C6A3C; // type:function size:0x28 __cvt_fp2unsigned = .text:0x804C6A64; // type:function size:0x5C __save_fpr = .text:0x804C6AC0; // type:function size:0x4C @@ -27498,7 +27498,7 @@ __num2dec = .text:0x804C88F8; // type:function size:0x1A4 __dec2num = .text:0x804C8A9C; // type:function size:0x74C abs = .text:0x804C91E8; // type:function size:0x10 labs = .text:0x804C91F8; // type:function size:0x10 -fn_804C9208 = .text:0x804C9208; // type:function size:0x5C +div = .text:0x804C9208; // type:function size:0x5C __prep_buffer = .text:0x804C9264; // type:function size:0x28 scope:global __flush_buffer = .text:0x804C928C; // type:function size:0xB8 scope:global __fwrite = .text:0x804C9344; // type:function size:0x308 scope:global @@ -27533,15 +27533,15 @@ float2str = .text:0x804CB184; // type:function size:0x79C scope:local __pformatter = .text:0x804CB920; // type:function size:0x8AC scope:local __FileWrite = .text:0x804CC1CC; // type:function size:0x58 scope:global __StringWrite = .text:0x804CC224; // type:function size:0x6C scope:global -fn_804CC290 = .text:0x804CC290; // type:function size:0xCC -MSL_C.PPCEABI.bare.H__vprintf = .text:0x804CC35C; // type:function size:0x7C +printf = .text:0x804CC290; // type:function size:0xCC +vprintf = .text:0x804CC35C; // type:function size:0x7C vsnprintf = .text:0x804CC3D8; // type:function size:0x88 scope:global vsprintf = .text:0x804CC460; // type:function size:0x84 scope:global snprintf = .text:0x804CC4E4; // type:function size:0xF4 sprintf = .text:0x804CC5D8; // type:function size:0xD4 scope:global -__StringRead = .text:0x804CC6AC; // type:function size:0x694 -fn_804CCD40 = .text:0x804CCD40; // type:function size:0xC98 -fn_804CD9D8 = .text:0x804CD9D8; // type:function size:0x88 +parse_format = .text:0x804CC6AC; // type:function size:0x694 scope:local +__sformatter = .text:0x804CCD40; // type:function size:0xC98 scope:local +__StringRead = .text:0x804CD9D8; // type:function size:0x88 sscanf = .text:0x804CDA60; // type:function size:0x130 strcpy = .text:0x804CDB90; // type:function size:0xC0 scope:global strncpy = .text:0x804CDC50; // type:function size:0x44 @@ -27553,18 +27553,18 @@ strchr = .text:0x804CDE68; // type:function size:0x30 scope:global strrchr = .text:0x804CDE98; // type:function size:0x48 strstr = .text:0x804CDEE0; // type:function size:0x6C __strtold = .text:0x804CDF4C; // type:function size:0x1324 -atof = .text:0x804CF270; // type:function size:0x414 -__strtoul = .text:0x804CF684; // type:function size:0x4A8 +__strtoul = .text:0x804CF270; // type:function size:0x414 +__strtoull = .text:0x804CF684; // type:function size:0x4A8 atoi = .text:0x804CFB2C; // type:function size:0xC4 -fn_804CFBF0 = .text:0x804CFBF0; // type:function size:0x8 -wmemcpy = .text:0x804CFBF8; // type:function size:0x60 +wmemcpy = .text:0x804CFBF0; // type:function size:0x8 +wmemset = .text:0x804CFBF8; // type:function size:0x60 wmemchr = .text:0x804CFC58; // type:function size:0x28 -parse_format_wchar = .text:0x804CFC80; // type:function size:0x590 -long2str_wchar = .text:0x804D0210; // type:function size:0x244 -longlong2str_wchar = .text:0x804D0454; // type:function size:0x2BC -double2hex_wchar = .text:0x804D0710; // type:function size:0x454 -round_decimal_wchar = .text:0x804D0B64; // type:function size:0x128 -float2str_wchar = .text:0x804D0C8C; // type:function size:0x790 +parse_format = .text:0x804CFC80; // type:function size:0x590 scope:local +long2str = .text:0x804D0210; // type:function size:0x244 scope:local +longlong2str = .text:0x804D0454; // type:function size:0x2BC scope:local +double2hex = .text:0x804D0710; // type:function size:0x454 scope:local +round_decimal = .text:0x804D0B64; // type:function size:0x128 scope:local +float2str = .text:0x804D0C8C; // type:function size:0x790 scope:local __wpformatter = .text:0x804D141C; // type:function size:0x98C __wStringWrite = .text:0x804D1DA8; // type:function size:0x6C swprintf = .text:0x804D1E14; // type:function size:0xF8 @@ -27572,7 +27572,7 @@ vswprintf = .text:0x804D1F0C; // type:function size:0x8C wcslen = .text:0x804D1F98; // type:function size:0x1C wcscpy = .text:0x804D1FB4; // type:function size:0x1C wcsncpy = .text:0x804D1FD0; // type:function size:0x44 -fn_804D2014 = .text:0x804D2014; // type:function size:0x4C +wcsncat = .text:0x804D2014; // type:function size:0x4C wcscmp = .text:0x804D2060; // type:function size:0x34 wcschr = .text:0x804D2094; // type:function size:0x2C fwide = .text:0x804D20C0; // type:function size:0x78 scope:global @@ -27608,15 +27608,15 @@ atan2 = .text:0x804D61D8; // type:function size:0x4 fmod = .text:0x804D61DC; // type:function size:0x4 log10 = .text:0x804D61E0; // type:function size:0x4 pow = .text:0x804D61E4; // type:function size:0x4 -__ieee757_sqrt = .text:0x804D61E8; // type:function size:0x248 +__ieee754_sqrt = .text:0x804D61E8; // type:function size:0x248 nan = .text:0x804D6430; // type:function size:0x4 sqrt = .text:0x804D6434; // type:function size:0x4 stricmp = .text:0x804D6438; // type:function size:0xA0 -fn_804D64D8 = .text:0x804D64D8; // type:function size:0x98 -fn_804D6570 = .text:0x804D6570; // type:function size:0x8 -fn_804D6578 = .text:0x804D6578; // type:function size:0x8 -fn_804D6580 = .text:0x804D6580; // type:function size:0x8 -fn_804D6588 = .text:0x804D6588; // type:function size:0x8 +wcsnicmp = .text:0x804D64D8; // type:function size:0x98 +TRKAccessFile = .text:0x804D6570; // type:function size:0x8 +TRKOpenFile = .text:0x804D6578; // type:function size:0x8 +TRKCloseFile = .text:0x804D6580; // type:function size:0x8 +TRKPositionFile = .text:0x804D6588; // type:function size:0x8 gdev_cc_initialize = .text:0x804D6590; // type:function size:0x3C scope:global gdev_cc_shutdown = .text:0x804D65CC; // type:function size:0x8 scope:global gdev_cc_open = .text:0x804D65D4; // type:function size:0x24 scope:global @@ -27636,11 +27636,11 @@ CircleBufferWriteBytes = .text:0x804D6870; // type:function size:0x108 CircleBufferReadBytes = .text:0x804D6978; // type:function size:0x108 TRK_flush_cache = .text:0x804D6A80; // type:function size:0x38 TRK_main = .text:0x804D6AB8; // type:function size:0x3C scope:global -TRKNubMainLoop = .text:0x804D6AF4; // type:function size:0xEC scope:global +TRK_NubMainLoop = .text:0x804D6AF4; // type:function size:0xEC scope:global TRK_memcpy = .text:0x804D6BE0; // type:function size:0x13C TRK_memset = .text:0x804D6D1C; // type:function size:0x128 -TRKDispatchMessage = .text:0x804D6E44; // type:function size:0x120 scope:global -InitMetroTRK = .text:0x804D6F64; // type:function size:0x94 scope:global +TRK_DispatchMessage = .text:0x804D6E44; // type:function size:0x120 scope:global +InitMetroTRK = .text:0x804D6F64; // type:function size:0x98 scope:global InitMetroTRK_BBA = .text:0x804D6FFC; // type:function size:0x94 scope:global EnableMetroTRKInterrupts = .text:0x804D7090; // type:function size:0x4 scope:global TRKTargetTranslate = .text:0x804D7094; // type:function size:0x68 @@ -27651,7 +27651,7 @@ TRKLoadContext = .text:0x804D7288; // type:function size:0x88 scope:global TRKEXICallBack = .text:0x804D7310; // type:function size:0x38 scope:global InitMetroTRKCommTable = .text:0x804D7348; // type:function size:0x138 scope:global TRKUARTInterruptHandler = .text:0x804D7480; // type:function size:0x4 scope:global -TRKInitializeIntDrivenUART = .text:0x804D7484; // type:function size:0x54 scope:global +TRK_InitializeIntDrivenUART = .text:0x804D7484; // type:function size:0x54 scope:global EnableEXI2Interrupts = .text:0x804D74D8; // type:function size:0x2C TRKPollUART = .text:0x804D7504; // type:function size:0x14 TRKReadUARTN = .text:0x804D7518; // type:function size:0x3C @@ -27666,10 +27666,10 @@ TRKGetNextEvent = .text:0x804D76D8; // type:function size:0x8C scope:global TRKPostEvent = .text:0x804D7764; // type:function size:0xCC TRKConstructEvent = .text:0x804D7830; // type:function size:0x18 TRKDestructEvent = .text:0x804D7848; // type:function size:0x8 scope:global -TRKInitializeNub = .text:0x804D7850; // type:function size:0xAC scope:global -TRKTerminateNub = .text:0x804D78FC; // type:function size:0x24 scope:global -TRKNubWelcome = .text:0x804D7920; // type:function size:0xC scope:global -TRKInitializeEndian = .text:0x804D792C; // type:function size:0x74 scope:global +TRK_InitializeNub = .text:0x804D7850; // type:function size:0xAC scope:global +TRK_TerminateNub = .text:0x804D78FC; // type:function size:0x24 scope:global +TRK_NubWelcome = .text:0x804D7920; // type:function size:0xC scope:global +TRK_InitializeEndian = .text:0x804D792C; // type:function size:0x74 scope:global TRKTestForPacket = .text:0x804D79A0; // type:function size:0xCC TRKGetInput = .text:0x804D7A6C; // type:function size:0x2C scope:global TRKProcessInput = .text:0x804D7A98; // type:function size:0x40 @@ -27685,7 +27685,7 @@ TRKTargetContinue = .text:0x804D8128; // type:function size:0x34 scope:global TRKSaveExtended1Block = .text:0x804D815C; // type:function size:0x1C4 scope:global TRKRestoreExtended1Block = .text:0x804D8320; // type:function size:0x164 scope:global TRK_MessageSend = .text:0x804D8484; // type:function size:0x64 -TRKInitializeMessageBuffers = .text:0x804D84E8; // type:function size:0x20 scope:global +TRK_InitializeMessageBuffers = .text:0x804D84E8; // type:function size:0x20 scope:global TRK_GetFreeBuffer = .text:0x804D8508; // type:function size:0x9C TRKGetBuffer = .text:0x804D85A4; // type:function size:0x24 scope:global TRK_ReleaseBuffer = .text:0x804D85C8; // type:function size:0x28 @@ -27727,7 +27727,7 @@ TRKTargetAccessDefault = .text:0x804DA128; // type:function size:0xF8 TRKTargetAccessFP = .text:0x804DA220; // type:function size:0x13C TRKTargetAccessExtended1 = .text:0x804DA35C; // type:function size:0x164 TRKTargetAccessExtended2 = .text:0x804DA4C0; // type:function size:0x170 -TRKInterruptHandler = .text:0x804DA630; // type:function size:0x194 scope:global +TRK_InterruptHandler = .text:0x804DA630; // type:function size:0x194 scope:global TRKExceptionHandler = .text:0x804DA7C4; // type:function size:0x9C scope:global TRKPostInterruptEvent = .text:0x804DA860; // type:function size:0xB8 scope:global TRKSwapAndGo = .text:0x804DA918; // type:function size:0xC4 scope:global @@ -29233,13 +29233,13 @@ lbl_804FBF68 = .rodata:0x804FBF68; // type:object size:0x10 lbl_804FBF78 = .rodata:0x804FBF78; // type:object size:0x20 lbl_804FBF98 = .rodata:0x804FBF98; // type:object size:0x10 __ptmf_null = .rodata:0x804FBFA8; // type:object size:0x10 data:4byte -lbl_804FBFB8 = .rodata:0x804FBFB8; // type:object size:0x18 align:8 data:double -lbl_804FBFD0 = .rodata:0x804FBFD0; // type:object size:0x70 -lbl_804FC040 = .rodata:0x804FC040; // type:object size:0x18 data:4byte -lbl_804FC058 = .rodata:0x804FC058; // type:object size:0xE0 -lbl_804FC138 = .rodata:0x804FC138; // type:object size:0x200 -lbl_804FC338 = .rodata:0x804FC338; // type:object size:0x100 -lbl_804FC438 = .rodata:0x804FC438; // type:object size:0x100 +__constants = .rodata:0x804FBFB8; // type:object size:0x18 align:8 data:double +@stringBase0 = .rodata:0x804FBFD0; // type:object size:0x70 scope:local data:string_table +fix_pool_sizes = .rodata:0x804FC040; // type:object size:0x18 scope:local data:4byte +@stringBase0 = .rodata:0x804FC058; // type:object size:0xDD scope:local data:string_table +__ctype_mapC = .rodata:0x804FC138; // type:object size:0x200 +__lower_mapC = .rodata:0x804FC338; // type:object size:0x100 +__upper_mapC = .rodata:0x804FC438; // type:object size:0x100 lbl_804FC538 = .rodata:0x804FC538; // type:object size:0x10 lbl_804FC548 = .rodata:0x804FC548; // type:object size:0xC data:string lbl_804FC554 = .rodata:0x804FC554; // type:object size:0xC @@ -29247,12 +29247,12 @@ lbl_804FC560 = .rodata:0x804FC560; // type:object size:0x58 lbl_804FC5B8 = .rodata:0x804FC5B8; // type:object size:0x88 @stringBase0 = .rodata:0x804FC640; // type:object size:0x25 scope:local data:string_table lbl_804FC668 = .rodata:0x804FC668; // type:object size:0x28 data:4byte -lbl_804FC690 = .rodata:0x804FC690; // type:object size:0x10 data:4byte -lbl_804FC6A0 = .rodata:0x804FC6A0; // type:object size:0x200 -lbl_804FC8A0 = .rodata:0x804FC8A0; // type:object size:0x200 -lbl_804FCAA0 = .rodata:0x804FCAA0; // type:object size:0x200 -lbl_804FCCA0 = .rodata:0x804FCCA0; // type:object size:0x8 -lbl_804FCCA8 = .rodata:0x804FCCA8; // type:object size:0x10 +lbl_804FC690 = .rodata:0x804FC690; // type:object size:0x9 data:string +__wctype_mapC = .rodata:0x804FC6A0; // type:object size:0x200 +__wlower_mapC = .rodata:0x804FC8A0; // type:object size:0x200 +__wupper_mapC = .rodata:0x804FCAA0; // type:object size:0x200 +@stringBase0 = .rodata:0x804FCCA0; // type:object size:0x1 scope:local data:string_table +Zero = .rodata:0x804FCCA8; // type:object size:0x10 scope:local lbl_804FCCB8 = .rodata:0x804FCCB8; // type:object size:0x30 lbl_804FCCE8 = .rodata:0x804FCCE8; // type:object size:0x108 lbl_804FCDF0 = .rodata:0x804FCDF0; // type:object size:0x80 @@ -29260,7 +29260,7 @@ lbl_804FCE70 = .rodata:0x804FCE70; // type:object size:0x10 lbl_804FCE80 = .rodata:0x804FCE80; // type:object size:0x40 align:8 data:double lbl_804FCEC0 = .rodata:0x804FCEC0; // type:object size:0x68 align:8 data:double lbl_804FCF28 = .rodata:0x804FCF28; // type:object size:0x98 -lbl_804FCFC0 = .rodata:0x804FCFC0; // type:object size:0x10 data:4byte +gTRKMemMap = .rodata:0x804FCFC0; // type:object size:0x10 data:4byte lbl_804FCFD0 = .rodata:0x804FCFD0; // type:object size:0x28 data:4byte lbl_804FCFF8 = .rodata:0x804FCFF8; // type:object size:0x28 data:4byte lbl_804FD020 = .rodata:0x804FD020; // type:object size:0x28 data:4byte @@ -38884,19 +38884,16 @@ lbl_80570488 = .data:0x80570488; // type:object size:0x18 lbl_805704A0 = .data:0x805704A0; // type:object size:0x58 lbl_805704F8 = .data:0x805704F8; // type:object size:0x10 lbl_80570508 = .data:0x80570508; // type:object size:0x58 -lbl_80570560 = .data:0x80570560; // type:object size:0x50 -lbl_805705B0 = .data:0x805705B0; // type:object size:0x50 -lbl_80570600 = .data:0x80570600; // type:object size:0x50 -lbl_80570650 = .data:0x80570650; // type:object size:0x50 +__files = .data:0x80570560; // type:object size:0x140 jumptable_805706A0 = .data:0x805706A0; // type:object size:0x124 scope:local lbl_805707C8 = .data:0x805707C8; // type:object size:0x40 -lbl_80570808 = .data:0x80570808; // type:object size:0x38 data:4byte -lbl_80570840 = .data:0x80570840; // type:object size:0x28 -lbl_80570868 = .data:0x80570868; // type:object size:0xC0 -lbl_80570928 = .data:0x80570928; // type:object size:0x1C -lbl_80570944 = .data:0x80570944; // type:object size:0x34 -lbl_80570978 = .data:0x80570978; // type:object size:0x18 -lbl_80570990 = .data:0x80570990; // type:object size:0x28 +__lconv = .data:0x80570808; // type:object size:0x38 data:4byte +_loc_ctyp_C = .data:0x80570840; // type:object size:0x28 +char_coll_tableC = .data:0x80570868; // type:object size:0xC0 +_loc_coll_C = .data:0x80570928; // type:object size:0x1C +_loc_mon_C = .data:0x80570944; // type:object size:0x34 +_loc_num_C = .data:0x80570978; // type:object size:0x14 +_loc_tim_C = .data:0x80570990; // type:object size:0x28 _current_locale = .data:0x805709B8; // type:object size:0x48 jumptable_80570A00 = .data:0x80570A00; // type:object size:0xE0 scope:local @2934 = .data:0x80570AE0; // type:object size:0x150 scope:local @@ -38908,16 +38905,16 @@ jumptable_80570EA0 = .data:0x80570EA0; // type:object size:0xE0 scope:local jumptable_80570F80 = .data:0x80570F80; // type:object size:0x150 scope:local lbl_805710D0 = .data:0x805710D0; // type:object size:0x70 jumptable_80571140 = .data:0x80571140; // type:object size:0x6C scope:local -lbl_805711B0 = .data:0x805711B0; // type:object size:0x40 data:4byte +TRK_ISR_OFFSETS = .data:0x805711B0; // type:object size:0x40 data:4byte @stringBase0 = .data:0x805711F0; // type:object size:0xE1 scope:local data:string_table -lbl_805712D8 = .data:0x805712D8; // type:object size:0x20 +@stringBase0 = .data:0x805712D8; // type:object size:0x1D scope:local data:string @stringBase0 = .data:0x805712F8; // type:object size:0x1D scope:local data:string -lbl_80571318 = .data:0x80571318; // type:object size:0x48 -lbl_80571360 = .data:0x80571360; // type:object size:0x28 data:string -lbl_80571388 = .data:0x80571388; // type:object size:0x28 data:string +@stringBase0 = .data:0x80571318; // type:object size:0x41 scope:local data:string +@stringBase0 = .data:0x80571360; // type:object size:0x28 scope:local data:string +@stringBase0 = .data:0x80571388; // type:object size:0x28 scope:local data:string jumptable_805713B0 = .data:0x805713B0; // type:object size:0x1C scope:local jumptable_805713CC = .data:0x805713CC; // type:object size:0x1C scope:local -lbl_805713E8 = .data:0x805713E8; // type:object size:0x30 +@stringBase0 = .data:0x805713E8; // type:object size:0x30 scope:local data:string_table gTRKExceptionStatus = .data:0x80571418; // type:object size:0x10 scope:local data:4byte lbl_80571440 = .sdata:0x80571440; // type:object size:0x8 lbl_80571448 = .sdata:0x80571448; // type:object size:0x8 data:string @@ -41259,9 +41256,9 @@ sAudioRmtSpeakerWpadVolume__Q23EGG18AudioRmtSpeakerMgr = .sdata:0x80574F68; // t sHBFadeframe__Q33EGG12AudioUtility3HBM = .sdata:0x80574F70; // type:object size:0x4 data:4byte fragmentID = .sdata:0x80574F78; // type:object size:0x4 scope:local data:4byte @wstringBase0 = .sdata:0x80574F80; // type:object size:0x2 scope:local -lbl_80574F88 = .sdata:0x80574F88; // type:object size:0x4 align:4 data:float -lbl_80574F8C = .sdata:0x80574F8C; // type:object size:0x4 align:4 data:float -lbl_80574F90 = .sdata:0x80574F90; // type:object size:0x8 align:8 data:double +__float_nan = .sdata:0x80574F88; // type:object size:0x4 align:4 data:float +__float_huge = .sdata:0x80574F8C; // type:object size:0x4 align:4 data:float +__double_huge = .sdata:0x80574F90; // type:object size:0x8 align:8 data:double lbl_80574FA0 = .sbss:0x80574FA0; // type:object size:0x4 data:4byte lbl_80574FA4 = .sbss:0x80574FA4; // type:object size:0x4 data:4byte lbl_80574FA8 = .sbss:0x80574FA8; // type:object size:0x1 data:byte @@ -42626,24 +42623,24 @@ sExceptionDisplayInfo__Q23EGG9Exception = .sbss:0x8057691E; // type:object size: lbl_80576920 = .sbss:0x80576920; // type:object size:0x4 align:4 data:float lbl_80576928 = .sbss:0x80576928; // type:object size:0x8 data:4byte __global_destructor_chain = .sbss:0x80576930; // type:object size:0x4 scope:global data:4byte -lbl_80576938 = .sbss:0x80576938; // type:object size:0x8 data:byte -ERRNOMaybe = .sbss:0x80576940; // type:object size:0x8 data:4byte -lbl_80576948 = .sbss:0x80576948; // type:object size:0x8 data:4byte +@LOCAL@get_malloc_pool__Fv@init@0 = .sbss:0x80576938; // type:object size:0x8 scope:local data:byte +errno = .sbss:0x80576940; // type:object size:0x8 data:4byte +@LOCAL@__init_uart_console__Fv@initialized = .sbss:0x80576948; // type:object size:0x8 data:4byte __stdio_exit = .sbss:0x80576950; // type:object size:0x4 scope:global data:4byte __msl_constraint_handler = .sbss:0x80576958; // type:object size:0x4 scope:local data:4byte lbl_80576960 = .sbss:0x80576960; // type:object size:0x8 align:8 data:double lbl_80576968 = .sbss:0x80576968; // type:object size:0x8 align:8 data:double -lbl_80576970 = .sbss:0x80576970; // type:object size:0x8 data:4byte +gIsInitialized = .sbss:0x80576970; // type:object size:0x8 data:4byte TRK_mainError = .sbss:0x80576978; // type:object size:0x4 scope:local data:4byte -lbl_80576980 = .sbss:0x80576980; // type:object size:0x8 data:4byte +lc_base = .sbss:0x80576980; // type:object size:0x8 data:4byte TRK_Use_BBA = .sbss:0x80576988; // type:object size:0x1 scope:global data:byte -lbl_80576990 = .sbss:0x80576990; // type:object size:0x8 data:4byte +gTRKBigEndian = .sbss:0x80576990; // type:object size:0x8 data:4byte gTRKInputPendingPtr = .sbss:0x80576998; // type:object size:0x4 scope:global data:4byte -lbl_805769A0 = .sbss:0x805769A0; // type:object size:0x8 data:2byte -lbl_805769A8 = .sbss:0x805769A8; // type:object size:0x4 data:4byte -TRKConnected = .sbss:0x805769AC; // type:object size:0x4 data:4byte +gPacketSeq = .sbss:0x805769A0; // type:object size:0x8 data:2byte +g_CurrentSequence = .sbss:0x805769A8; // type:object size:0x4 data:4byte +IsTRKConnected = .sbss:0x805769AC; // type:object size:0x4 data:4byte TRK_saved_exceptionID = .sbss:0x805769B0; // type:object size:0x2 scope:local data:2byte -lbl_805769B8 = .sbss:0x805769B8; // type:object size:0x1 data:byte +bUseSerialIO = .sbss:0x805769B8; // type:object size:0x1 data:byte lbl_805769C0 = .sdata2:0x805769C0; // type:object size:0x8 data:byte lbl_805769C8 = .sdata2:0x805769C8; // type:object size:0x4 align:4 data:float lbl_805769CC = .sdata2:0x805769CC; // type:object size:0x4 align:4 data:float @@ -50211,8 +50208,7 @@ lbl_8057FA3C = .sdata2:0x8057FA3C; // type:object size:0x4 lbl_8057FA40 = .sdata2:0x8057FA40; // type:object size:0x8 lbl_8057FA48 = .sdata2:0x8057FA48; // type:object size:0x8 lbl_8057FA50 = .sdata2:0x8057FA50; // type:object size:0x8 align:8 data:double -lbl_8057FA58 = .sdata2:0x8057FA58; // type:object size:0x4 data:4byte -lbl_8057FA5C = .sdata2:0x8057FA5C; // type:object size:0x1 data:byte +lbl_8057FA58 = .sdata2:0x8057FA58; // type:object size:0x5 data:string lbl_8057FA60 = .sdata2:0x8057FA60; // type:object size:0x8 align:8 data:double lbl_8057FA68 = .sdata2:0x8057FA68; // type:object size:0x8 align:8 data:double lbl_8057FA70 = .sdata2:0x8057FA70; // type:object size:0x8 align:8 data:double @@ -50379,7 +50375,7 @@ lbl_8057FF70 = .sdata2:0x8057FF70; // type:object size:0x8 align:8 data:double lbl_8057FF78 = .sdata2:0x8057FF78; // type:object size:0x8 align:8 data:double lbl_8057FF80 = .sdata2:0x8057FF80; // type:object size:0x8 align:8 data:double lbl_8057FF88 = .sdata2:0x8057FF88; // type:object size:0x8 align:8 data:double -lbl_8057FF90 = .sdata2:0x8057FF90; // type:object size:0x4 +EndofProgramInstruction$631 = .sdata2:0x8057FF90; // type:object size:0x4 scope:local lbl_8057FFA0 = .sbss2:0x8057FFA0; // type:object size:0x8 data:4byte bta_dm_pm_cfg = .sbss2:0x8057FFA8; // type:object size:0x8 bd_addr_null = .sbss2:0x8057FFB0; // type:object size:0x8 @@ -52085,18 +52081,18 @@ lbl_80675820 = .bss:0x80675820; // type:object size:0x90 data:4byte lbl_806758B0 = .bss:0x806758B0; // type:object size:0x5C data:4byte lbl_8067590C = .bss:0x8067590C; // type:object size:0x3C data:4byte fragmentinfo = .bss:0x80675948; // type:object size:0x180 scope:local data:4byte -lbl_80675AC8 = .bss:0x80675AC8; // type:object size:0x38 data:4byte -lbl_80675B00 = .bss:0x80675B00; // type:object size:0x100 -lbl_80675C00 = .bss:0x80675C00; // type:object size:0x100 -lbl_80675D00 = .bss:0x80675D00; // type:object size:0x100 -lbl_80675E00 = .bss:0x80675E00; // type:object size:0x500 -lbl_80676300 = .bss:0x80676300; // type:object size:0x20 +@LOCAL@get_malloc_pool__Fv@protopool = .bss:0x80675AC8; // type:object size:0x38 scope:local data:4byte +stderr_buff = .bss:0x80675B00; // type:object size:0x100 scope:local +stdout_buff = .bss:0x80675C00; // type:object size:0x100 scope:local +stdin_buff = .bss:0x80675D00; // type:object size:0x100 scope:local +gRecvBuf = .bss:0x80675E00; // type:object size:0x500 +gRecvCB = .bss:0x80676300; // type:object size:0x20 gDBCommTable = .bss:0x80676320; // type:object size:0x28 scope:global data:4byte -lbl_80676348 = .bss:0x80676348; // type:object size:0x28 data:4byte -lbl_80676370 = .bss:0x80676370; // type:object size:0x19A8 data:4byte +gTRKEventQueue = .bss:0x80676348; // type:object size:0x28 data:4byte +gTRKMsgBufs = .bss:0x80676370; // type:object size:0x19A8 data:4byte gTRKRestoreFlags = .bss:0x80677D18; // type:object size:0x9 scope:global data:byte -lbl_80677D28 = .bss:0x80677D28; // type:object size:0x18 data:4byte +gTRKStepStatus = .bss:0x80677D28; // type:object size:0x18 data:4byte gTRKSaveState = .bss:0x80677D40; // type:object size:0x94 scope:global data:4byte -lbl_80677DD8 = .bss:0x80677DD8; // type:object size:0x10 +TRKvalue128_temp = .bss:0x80677DD8; // type:object size:0x10 gTRKState = .bss:0x80677DE8; // type:object size:0xA4 scope:global data:4byte gTRKCPUState = .bss:0x80677E90; // type:object size:0x430 scope:global data:4byte diff --git a/configure.py b/configure.py index d17eaebe..58190044 100644 --- a/configure.py +++ b/configure.py @@ -1555,6 +1555,14 @@ config.libs = [ "progress_category": "runtime", "host": False, "objects": [ + Object( + NonMatching, + "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/alloc.c", + ), + Object( + NonMatching, + "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/errno.c", + ), Object( NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/ansi_files.c", @@ -1563,6 +1571,12 @@ config.libs = [ NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common_Embedded/Src/ansi_fp.c", ), + Object( + NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/ctype.c" + ), + Object( + NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/locale.c" + ), Object( NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/arith.c" ), @@ -1586,7 +1600,7 @@ config.libs = [ NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/mem_funcs.c" ), Object( - NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/float.c" + NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/math_api.c" ), Object( NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/misc_io.c" @@ -1594,15 +1608,24 @@ config.libs = [ Object( NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/printf.c" ), + Object( + NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/float.c" + ), Object( NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/scanf.c" ), Object( NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/string.c" ), + Object( + NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/strtold.c" + ), Object( NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/strtoul.c" ), + Object( + NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wctype.c" + ), Object(NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wmem.c"), Object( NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/wprintf.c" @@ -1617,6 +1640,10 @@ config.libs = [ NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/uart_console_io_gcn.c", ), + Object( + NonMatching, + "PowerPC_EABI_Support/MSL/MSL_C/PPC_EABI/Src/abort_exit_ppc_eabi.c", + ), Object( NonMatching, "PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Src/secure_error.c", @@ -1761,8 +1788,110 @@ config.libs = [ "progress_category": "runtime", "host": False, "objects": [ - # TODO, just here for progress tracking, split further - Object(NonMatching, "toBeSorted/TRK.c"), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Export/targsupp.s", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/gamedev/cust_connection/cc/exi2/GCN/EXI2_GDEV_GCN/main.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/gamedev/cust_connection/utils/gc/MWCriticalSection_gc.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/gamedev/cust_connection/utils/common/CircleBuffer.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/flush_cache.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/main_TRK.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mainloop.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/mem_TRK.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/dispatch.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk_glue.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/notify.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/nubevent.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/nubinit.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/serpoll.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/string_TRK.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/support.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/targcont.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/mpc_7xx_603e.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msg.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msgbuf.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Portable/msghndlr.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Export/mslsupp.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/targimpl.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/target_options.c", + ), + Object( + NonMatching, + "TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Processor/ppc/Generic/exception.s", + ), ], }, # Begin RELs From 69b1204b3c8929dd34278edd24d57dad6f05bf79 Mon Sep 17 00:00:00 2001 From: robojumper Date: Fri, 18 Jul 2025 14:29:07 +0200 Subject: [PATCH 35/36] More splits --- config/SOUE01/splits.txt | 93 ++++++++++++++++++++++++++++++++ config/SOUE01/symbols.txt | 6 +-- configure.py | 2 +- src/egg/gfx/eggDrawGX.cpp | 2 +- src/egg/gfx/eggTextureBuffer.cpp | 2 + 5 files changed, 100 insertions(+), 5 deletions(-) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index c8b0c789..ad9ae6e7 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -761,6 +761,7 @@ d/lyt/d_lyt_target_bird.cpp: .rodata start:0x804E7430 end:0x804E7468 .data start:0x8051B5A0 end:0x8051B6E8 .sbss start:0x80575480 end:0x80575488 + .sdata2 start:0x80579DD0 end:0x80579DF0 d/lyt/msg_window/d_lyt_msg_window.cpp: .text start:0x801148F0 end:0x8011C8C8 align:16 @@ -777,6 +778,7 @@ d/lyt/msg_window/d_lyt_msg_window_select_btn.cpp: .rodata start:0x804E7468 end:0x804E7540 .data start:0x8051C300 end:0x8051CB10 .sdata start:0x80572588 end:0x80572598 + .sdata2 start:0x80579E18 end:0x80579E60 .bss start:0x805AE670 end:0x805AE930 d/lyt/msg_window/d_lyt_msg_window_common.cpp: @@ -881,12 +883,15 @@ d/lyt/d_lyt_map_capture.cpp: .ctors start:0x804DB768 end:0x804DB76C .data start:0x8051EA08 end:0x8051EAE0 .sbss start:0x805754A0 end:0x805754A8 + .sdata2 start:0x80579F28 end:0x80579F40 + .bss start:0x805AF3F0 end:0x805AF470 d/lyt/d_lyt_map.cpp: .text start:0x8012DC30 end:0x80148DE8 align:16 .ctors start:0x804DB76C end:0x804DB770 .rodata start:0x804E76A0 end:0x804E7F50 .data start:0x8051EAE0 end:0x805225E8 + .sdata start:0x80572658 end:0x80572868 .sbss start:0x805754A8 end:0x805754B8 .sdata2 start:0x80579F40 end:0x80579FB8 .bss start:0x805AF470 end:0x805B0830 @@ -934,13 +939,18 @@ d/lyt/d_lyt_help.cpp: .ctors start:0x804DB780 end:0x804DB784 .rodata start:0x804E7FE0 end:0x804E7FF8 .data start:0x805231E8 end:0x80523A58 + .sdata start:0x80572888 end:0x80572978 .sbss start:0x805754D0 end:0x805754D8 + .sdata2 start:0x80579FF0 end:0x80579FF8 + .bss start:0x805B0D30 end:0x805B0FB0 d/lyt/d_lyt_system_window.cpp: .text start:0x80150430 end:0x80152FC8 align:16 .rodata start:0x804E7FF8 end:0x804E80F8 .data start:0x80523A58 end:0x80524020 + .sdata start:0x80572978 end:0x80572988 .sbss start:0x805754D8 end:0x805754E0 + .sdata2 start:0x80579FF8 end:0x8057A038 d/lyt/d_lyt_bird_gauge.cpp: .text start:0x80152FD0 end:0x801548D8 align:16 @@ -964,44 +974,67 @@ d/lyt/d_lyt_deposit_stock.cpp: .text start:0x80155CD0 end:0x801578A8 align:16 .ctors start:0x804DB78C end:0x804DB790 .rodata start:0x804E8150 end:0x804E8218 + .data start:0x80524928 end:0x80524BC8 + .sdata start:0x80572988 end:0x80572990 + .sdata2 start:0x8057A058 end:0x8057A060 + .bss start:0x805B1430 end:0x805B1470 d/lyt/d_lyt_deposit_box.cpp: .text start:0x801578B0 end:0x80158288 align:16 .rodata start:0x804E8218 end:0x804E8258 + .data start:0x80524BC8 end:0x80524CD0 + .sdata start:0x80572990 end:0x80572998 + .sdata2 start:0x8057A060 end:0x8057A078 d/lyt/d_lyt_boss_gauge.cpp: .text start:0x80158290 end:0x80158E78 align:16 .ctors start:0x804DB790 end:0x804DB794 .data start:0x80524CD0 end:0x80524ED0 + .sdata start:0x80572998 end:0x805729A0 .sbss start:0x805754F0 end:0x805754F8 + .sdata2 start:0x8057A078 end:0x8057A090 + .bss start:0x805B1470 end:0x805B1570 d/lyt/d_lyt_pause_back.cpp: .text start:0x80158E80 end:0x80159E78 align:16 .ctors start:0x804DB794 end:0x804DB798 .data start:0x80524ED0 end:0x80525138 + .sdata2 start:0x8057A090 end:0x8057A098 + .bss start:0x805B1570 end:0x805B1670 d/lyt/d_lyt_pause_disp_00.cpp: .text start:0x80159E80 end:0x8015EDE8 align:16 .ctors start:0x804DB798 end:0x804DB79C .rodata start:0x804E8258 end:0x804E8918 .data start:0x80525138 end:0x80525EE0 + .sdata start:0x805729A0 end:0x805729B0 + .sdata2 start:0x8057A098 end:0x8057A0E0 + .bss start:0x805B1670 end:0x805B1830 d/lyt/d_lyt_pause_disp_01.cpp: .text start:0x8015EDF0 end:0x80161F98 align:16 .ctors start:0x804DB79C end:0x804DB7A0 .rodata start:0x804E8918 end:0x804E8B30 .data start:0x80525EE0 end:0x80526610 + .sdata start:0x805729B0 end:0x805729C0 + .sdata2 start:0x8057A0E0 end:0x8057A0F8 + .bss start:0x805B1830 end:0x805B19B0 d/lyt/d_lyt_pause_info.cpp: .text start:0x80161FA0 end:0x80163568 align:16 .ctors start:0x804DB7A0 end:0x804DB7A4 .rodata start:0x804E8B30 end:0x804E8B60 .data start:0x80526610 end:0x80526880 + .sdata2 start:0x8057A0F8 end:0x8057A100 + .bss start:0x805B19B0 end:0x805B1AB0 d/lyt/d_lyt_pause_text.cpp: .text start:0x80163570 end:0x80164F88 align:16 .ctors start:0x804DB7A4 end:0x804DB7A8 .data start:0x80526880 end:0x80526D10 + .sdata start:0x805729C0 end:0x805729C8 + .sdata2 start:0x8057A100 end:0x8057A108 + .bss start:0x805B1AB0 end:0x805B1BB0 d/lyt/d_lyt_save_msg_window.cpp: .text start:0x80164F90 end:0x80166968 align:16 @@ -1016,6 +1049,7 @@ d/lyt/d_lyt_util_items.cpp: .text start:0x80166970 end:0x80167FD4 align:16 .rodata start:0x804E8BB8 end:0x804E8D28 .data start:0x80527210 end:0x80527298 + .sdata2 start:0x8057A118 end:0x8057A180 d/lyt/d_lyt_common_arrow.cpp: .text start:0x80167FE0 end:0x801695E8 align:16 @@ -1031,12 +1065,18 @@ d/lyt/d_lyt_common_title.cpp: .ctors start:0x804DB7B0 end:0x804DB7B4 .rodata start:0x804E8D70 end:0x804E8DB0 .data start:0x80527600 end:0x80527A98 + .sdata start:0x805729D8 end:0x805729E0 + .sdata2 start:0x8057A188 end:0x8057A198 + .bss start:0x805B1DB0 end:0x805B1EF0 d/lyt/d_lyt_cursor_stick.cpp: .text start:0x8016B2B0 end:0x8016BCD8 align:16 .ctors start:0x804DB7B4 end:0x804DB7B8 .data start:0x80527A98 end:0x80527BC0 + .sdata start:0x805729E0 end:0x80572A08 .sbss start:0x805754F8 end:0x80575500 + .sdata2 start:0x8057A198 end:0x8057A1A8 + .bss start:0x805B1EF0 end:0x805B1F70 toBeSorted/fi_context.cpp: .text start:0x8016BCE0 end:0x8016CBD8 align:16 @@ -1118,6 +1158,7 @@ toBeSorted/revision_info.cpp: .rodata start:0x804E9A98 end:0x804E9AB8 .data start:0x80528BB8 end:0x80528C10 .sbss start:0x80575650 end:0x80575660 + .bss start:0x805B2010 end:0x805B2058 d/a/d_a_bullet_base.cpp: .text start:0x80174CE0 end:0x801753A0 align:16 @@ -1169,11 +1210,13 @@ d/a/d_a_fish_mgr_base.cpp: .text start:0x8018B880 end:0x8018BFC8 align:16 .ctors start:0x804DB7E4 end:0x804DB7E8 .data start:0x8052A890 end:0x8052A9C0 + .bss start:0x805B2068 end:0x805B20A8 d/a/d_a_fish_base.cpp: .text start:0x8018BFD0 end:0x8018E378 align:16 .ctors start:0x804DB7E8 end:0x804DB7EC .data start:0x8052A9C0 end:0x8052ABD8 + .bss start:0x805B20A8 end:0x805B2128 toBeSorted/sword_proj_effect_list.cpp: .text start:0x8018E380 end:0x8018F188 align:16 @@ -1194,11 +1237,13 @@ d/a/d_a_salbage_obj.cpp: .ctors start:0x804DB7EC end:0x804DB7F0 .rodata start:0x804E9CD8 end:0x804E9E28 .data start:0x8052ACD0 end:0x8052B078 + .bss start:0x805B2128 end:0x805B22E8 d/a/d_a_salbage_npc.cpp: .text start:0x80192B00 end:0x80194080 align:16 .ctors start:0x804DB7F0 end:0x804DB7F4 .data start:0x8052B078 end:0x8052B618 + .bss start:0x805B22E8 end:0x805B2428 toBeSorted/d_unk_pad.cpp: .text start:0x80194080 end:0x801946F4 align:16 @@ -1209,6 +1254,7 @@ toBeSorted/goddess_chest_counter.cpp: .ctors start:0x804DB7F4 end:0x804DB7F8 .data start:0x8052B618 end:0x8052B638 .sbss start:0x805756A8 end:0x805756B0 + .bss start:0x805B2428 end:0x805B2438 toBeSorted/misc_actor.cpp: .text start:0x80194870 end:0x80196648 align:16 @@ -1216,6 +1262,7 @@ toBeSorted/misc_actor.cpp: .rodata start:0x804E9E28 end:0x804EA810 .data start:0x8052B638 end:0x8052B678 .sbss start:0x805756B0 end:0x805756F0 + .bss start:0x805B2438 end:0x805B24C0 toBeSorted/d_hbm: .text start:0x80196650 end:0x801975B8 align:16 @@ -1418,6 +1465,7 @@ d/tg/d_t_mass_object.cpp: .rodata start:0x804EE5A8 end:0x804EE6C0 .data start:0x80536478 end:0x80536608 .sbss start:0x80575930 end:0x80575938 + .bss start:0x805B57A8 end:0x805B57C0 d/tg/d_t_camera.cpp: .text start:0x8027A0B0 end:0x8027A370 align:16 @@ -1435,28 +1483,33 @@ d/tg/d_tk_event.cpp: .text start:0x8027AB30 end:0x8027B408 align:16 .ctors start:0x804DB84C end:0x804DB850 .data start:0x80536828 end:0x80536A28 + .bss start:0x805B57C0 end:0x805B5800 toBeSorted/d_a_npc_inv.cpp: .text start:0x8027B410 end:0x8027BE48 align:16 .ctors start:0x804DB850 end:0x804DB854 .data start:0x80536A28 end:0x80536BC0 + .bss start:0x805B5800 end:0x805B5840 toBeSorted/d_a_npc_tke.cpp: .text start:0x8027BE50 end:0x8027DA90 align:16 .ctors start:0x804DB854 end:0x804DB858 .rodata start:0x804EE6C0 end:0x804EE700 .data start:0x80536BC0 end:0x80536FE8 + .bss start:0x805B5840 end:0x805B58C0 toBeSorted/d_a_npc_str.cpp: .text start:0x8027DA90 end:0x8027E9E0 align:16 .ctors start:0x804DB858 end:0x804DB85C .data start:0x80536FE8 end:0x80537310 + .bss start:0x805B58C0 end:0x805B5940 d/lyt/d_lyt_pause.cpp: .text start:0x8027E9E0 end:0x80282678 align:16 .ctors start:0x804DB85C end:0x804DB860 .data start:0x80537310 end:0x80537970 .sbss start:0x80575938 end:0x80575948 + .bss start:0x805B5940 end:0x805B5D40 d/lyt/d_lyt_game_over.cpp: .text start:0x80282680 end:0x80284FA8 align:16 @@ -1464,6 +1517,7 @@ d/lyt/d_lyt_game_over.cpp: .rodata start:0x804EE700 end:0x804EE778 .data start:0x80537970 end:0x80538160 .sbss start:0x80575948 end:0x80575950 + .bss start:0x805B5D40 end:0x805B5F00 d/lyt/d_lyt_save_mgr.cpp: .text start:0x80284FB0 end:0x80286C88 align:16 @@ -1471,24 +1525,28 @@ d/lyt/d_lyt_save_mgr.cpp: .rodata start:0x804EE778 end:0x804EE790 .data start:0x80538160 end:0x80538498 .sbss start:0x80575950 end:0x80575958 + .bss start:0x805B5F00 end:0x805B6000 d/lyt/d_lyt_drop_line.cpp: .text start:0x80286C90 end:0x802884F8 align:16 .ctors start:0x804DB868 end:0x804DB86C .data start:0x80538498 end:0x80538658 .sbss start:0x80575958 end:0x80575960 + .bss start:0x805B6000 end:0x805B60C0 d/lyt/d_lyt_force_line.cpp: .text start:0x80288500 end:0x8028A9F8 align:16 .ctors start:0x804DB86C end:0x804DB870 .data start:0x80538658 end:0x80538CE8 .sbss start:0x80575960 end:0x80575968 + .bss start:0x805B60C0 end:0x805B6160 d/lyt/d_lyt_enemy_icon.cpp: .text start:0x8028AA00 end:0x8028BCD8 align:16 .ctors start:0x804DB870 end:0x804DB874 .data start:0x80538CE8 end:0x80538E58 .sbss start:0x80575968 end:0x80575970 + .bss start:0x805B6160 end:0x805B61C0 d/lyt/d_lyt_mini_game.cpp: .text start:0x8028BCE0 end:0x802969E0 align:16 @@ -1502,6 +1560,7 @@ d/lyt/d_lyt_meter_suiryu_score.cpp: .rodata start:0x804EEB68 end:0x804EEF98 .data start:0x80539B68 end:0x8053AAC8 .sbss start:0x80575990 end:0x80575998 + .bss start:0x805B61C0 end:0x805B63C0 d/lyt/d_lyt_meter_suiryu_score_comp.cpp: .text start:0x8029C2D0 end:0x8029F278 align:16 @@ -1509,6 +1568,7 @@ d/lyt/d_lyt_meter_suiryu_score_comp.cpp: .rodata start:0x804EEF98 end:0x804EF100 .data start:0x8053AAC8 end:0x8053B968 .sbss start:0x80575998 end:0x805759A0 + .bss start:0x805B63C0 end:0x805B6640 d/lyt/d_lyt_boss_caption.cpp: .text start:0x8029F280 end:0x802A0B08 align:16 @@ -1516,6 +1576,7 @@ d/lyt/d_lyt_boss_caption.cpp: .rodata start:0x804EF100 end:0x804EF120 .data start:0x8053B968 end:0x8053BD00 .sbss start:0x805759A0 end:0x805759A8 + .bss start:0x805B6640 end:0x805B6740 d/lyt/d_lyt_demo_dowsing.cpp: .text start:0x802A0B10 end:0x802A17C8 align:16 @@ -1523,6 +1584,7 @@ d/lyt/d_lyt_demo_dowsing.cpp: .rodata start:0x804EF120 end:0x804EF130 .data start:0x8053BD00 end:0x8053BF50 .sbss start:0x805759A8 end:0x805759B0 + .bss start:0x805B6740 end:0x805B67C0 d/lyt/d_lyt_shop.cpp: .text start:0x802A17D0 end:0x802A7FD8 align:16 @@ -1530,6 +1592,7 @@ d/lyt/d_lyt_shop.cpp: .rodata start:0x804EF130 end:0x804EF970 .data start:0x8053BF50 end:0x8053CFC8 .sbss start:0x805759B0 end:0x805759B8 + .bss start:0x805B67C0 end:0x805B6C18 d/lyt/d_lyt_deposit.cpp: .text start:0x802A7FE0 end:0x802B02C8 align:16 @@ -1537,6 +1600,7 @@ d/lyt/d_lyt_deposit.cpp: .rodata start:0x804EF970 end:0x804EFA90 .data start:0x8053CFC8 end:0x8053DFC8 .sbss start:0x805759B8 end:0x805759D0 + .bss start:0x805B6C18 end:0x805B7120 d/lyt/d_lyt_demo_title.cpp: .text start:0x802B02D0 end:0x802B22E8 align:16 @@ -1544,6 +1608,7 @@ d/lyt/d_lyt_demo_title.cpp: .rodata start:0x804EFA90 end:0x804EFAB8 .data start:0x8053DFC8 end:0x8053E510 .sbss start:0x805759D0 end:0x805759D8 + .bss start:0x805B7120 end:0x805B73A0 d/lyt/d_lyt_end_roll.cpp: .text start:0x802B22F0 end:0x802B6B98 align:16 @@ -1551,11 +1616,13 @@ d/lyt/d_lyt_end_roll.cpp: .rodata start:0x804EFAB8 end:0x804EFAE0 .data start:0x8053E510 end:0x8053F0F8 .sbss start:0x805759D8 end:0x805759E0 + .bss start:0x805B73A0 end:0x805B7B20 toBeSorted/d_a_bullet.cpp: .text start:0x802B6BA0 end:0x802B7A48 align:16 .ctors start:0x804DB894 end:0x804DB898 .data start:0x8053F0F8 end:0x8053F2C0 + .bss start:0x805B7B20 end:0x805B7B60 toBeSorted/d_a_npc_ken_talk.cpp: .text start:0x802B7A50 end:0x802C7770 align:16 @@ -1563,22 +1630,28 @@ toBeSorted/d_a_npc_ken_talk.cpp: .rodata start:0x804EFAE0 end:0x804F0330 .data start:0x8053F2C0 end:0x8053FE98 .sbss start:0x805759E0 end:0x805759E8 + .bss start:0x805B7B60 end:0x805B7CA0 toBeSorted/d_a_jstudio_act.cpp: .text start:0x802C7770 end:0x802CBC18 align:16 .ctors start:0x804DB89C end:0x804DB8A0 .rodata start:0x804F0330 end:0x804F0460 .data start:0x8053FE98 end:0x805402D8 + .sbss start:0x805759E8 end:0x805759F0 + .bss start:0x805B7CA0 end:0x805B7D70 toBeSorted/d_a_jstudio_sys.cpp: .text start:0x802CBC20 end:0x802CC7A8 align:16 .data start:0x805402D8 end:0x805403F8 + .sbss start:0x805759F0 end:0x80575A00 + .bss start:0x805B7D70 end:0x805B7DD0 d/lyt/d_lyt_control_game.cpp: .text start:0x802CC7B0 end:0x802D16A8 align:16 .ctors start:0x804DB8A0 end:0x804DB8A4 .data start:0x805403F8 end:0x80540C88 .sbss start:0x80575A00 end:0x80575A18 + .bss start:0x805B7DD0 end:0x805B8040 d/lyt/d_lyt_control_title.cpp: .text start:0x802D16B0 end:0x802D17BC align:16 @@ -1592,6 +1665,7 @@ d/tg/d_t_truck_rails.cpp: .text start:0x802D18F0 end:0x802D4FD8 align:16 .rodata start:0x804F0460 end:0x804F04E0 .data start:0x80540D68 end:0x80540E88 + .sbss start:0x80575A18 end:0x80575A20 d/a/obj/d_a_obj_force_sign.cpp: .text start:0x802D4FE0 end:0x802D58D0 align:16 @@ -1615,21 +1689,27 @@ d/tg/d_t_siren_tag.cpp: .text start:0x802D6800 end:0x802D84F8 align:16 .ctors start:0x804DB8B0 end:0x804DB8B4 .data start:0x805411A8 end:0x805414F8 + .sdata2 start:0x8057CB58 end:0x8057CB80 + .bss start:0x805B81D0 end:0x805B8310 d/a/obj/d_a_obj_spore.cpp: .text start:0x802D8500 end:0x802D9408 align:16 .ctors start:0x804DB8B4 end:0x804DB8B8 .data start:0x805414F8 end:0x805416D8 .sbss start:0x80575A30 end:0x80575A38 + .sdata2 start:0x8057CB80 end:0x8057CB98 + .bss start:0x805B8310 end:0x805B8360 d/tg/d_t_genki_mgr.cpp: .text start:0x802D9410 end:0x802D9D60 align:16 .data start:0x805416D8 end:0x80541770 .sbss start:0x80575A38 end:0x80575A40 + .sdata2 start:0x8057CB98 end:0x8057CBE0 d/a/obj/d_a_obj_water_mark.cpp: .text start:0x802D9D60 end:0x802DA0BC align:16 .data start:0x80541770 end:0x80541838 + .sdata2 start:0x8057CBE0 end:0x8057CC18 toBeSorted/d_sc_e3_title.cpp: .text start:0x802DA0C0 end:0x802DA170 align:16 @@ -1673,6 +1753,7 @@ s/s_Crc.cpp: s/s_Assert.cpp: .text start:0x802DE700 end:0x802DE73C align:16 + .sdata start:0x80573F70 end:0x80573F78 .sbss start:0x80575B70 end:0x80575B78 s/s_Math.cpp: @@ -1700,6 +1781,7 @@ c/c_mem.cpp: c/c_lib.cpp: .text start:0x802DFD90 end:0x802E08C0 align:16 + .sdata2 start:0x8057CC40 end:0x8057CC58 c/c_list.cpp: .text start:0x802E08C0 end:0x802E0A50 align:16 @@ -1864,6 +1946,7 @@ m/m_angle.cpp: m/m_color.cpp: .text start:0x802EE6C0 end:0x802EE7D4 align:16 + .sdata2 start:0x8057CDB0 end:0x8057CDC0 m/m_color_fader.cpp: .text start:0x802EE7E0 end:0x802EEB94 align:16 @@ -1887,6 +1970,7 @@ m/m_fader_base.cpp: m/m_frustum.cpp: .text start:0x802F0820 end:0x802F0EFC align:16 + .sdata2 start:0x8057CDD8 end:0x8057CDE8 m/m_heap.cpp: .text start:0x802F0F00 end:0x802F1660 align:16 @@ -1899,6 +1983,9 @@ m/m_heap.cpp: m/m_mtx.cpp: .text start:0x802F1660 end:0x802F1F20 align:16 .ctors start:0x804DB8D4 end:0x804DB8D8 + .sdata start:0x80574000 end:0x80574008 + .sdata2 start:0x8057CDE8 end:0x8057CDF8 + .bss start:0x805CB088 end:0x805CB0B8 m/m_pad.cpp: .text start:0x802F1F20 end:0x802F232C align:16 @@ -1909,6 +1996,7 @@ m/m_pad.cpp: m/m_quat.cpp: .text start:0x802F2330 end:0x802F2918 align:16 + .sdata2 start:0x8057CE00 end:0x8057CE28 m/m_thread.cpp: .text start:0x802F2920 end:0x802F2968 align:16 @@ -1917,6 +2005,8 @@ m/m_vec.cpp: .text start:0x802F2970 end:0x802F2F08 align:16 .ctors start:0x804DB8DC end:0x804DB8E0 .sbss start:0x80575C70 end:0x80575C88 + .sdata2 start:0x8057CE28 end:0x8057CE38 + .bss start:0x805CB1F8 end:0x805CB228 m/m_video.cpp: .sbss start:0x80575C88 end:0x80575C90 @@ -4515,6 +4605,7 @@ egg/gfx/eggDrawPathBase.cpp: egg/gfx/eggDrawPathBloom.cpp: .text start:0x804A0EA0 end:0x804A29B8 align:16 + .rodata start:0x804FBC58 end:0x804FBC70 .data start:0x8056EEB0 end:0x8056EF28 .sdata2 start:0x8057F538 end:0x8057F580 @@ -4548,6 +4639,7 @@ egg/gfx/eggFrustum.cpp: egg/gfx/eggG3DUtility.cpp: .text start:0x804A6860 end:0x804A75B0 align:16 + .sbss start:0x80576820 end:0x80576838 egg/gfx/eggGfxEngine.cpp: .text start:0x804A75B0 end:0x804A7744 align:16 @@ -4678,6 +4770,7 @@ egg/gfx/eggTextureBuffer.cpp: .text start:0x804B53F0 end:0x804B59DC align:16 .data start:0x8056F2B0 end:0x8056F2C0 .sbss start:0x805768B8 end:0x805768D8 + .bss start:0x80675190 end:0x80675390 egg/audio/eggAudioArcPlayerMgr.cpp: .text start:0x804B59E0 end:0x804B641C align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 81318497..62f1952f 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -29184,7 +29184,7 @@ gRMO_Ntsc_640x456IntDf_4x3__22@unnamed@eggVideo_cpp@ = .rodata:0x804FB9BC; // ty renderModes__3EGG = .rodata:0x804FB9F8; // type:object size:0x28 scope:local @4804 = .rodata:0x804FBA20; // type:object size:0x10 scope:local data:4byte copyArg2__3EGG = .rodata:0x804FBA30; // type:object size:0x18 scope:local -sVtxTypes__3EGG = .rodata:0x804FBA60; // type:object size:0x10 +sVtxTypes__3EGG = .rodata:0x804FBA60; // type:object size:0x10 align:32 lbl_804FBA70 = .rodata:0x804FBA70; // type:object size:0xC8 s_ZMode__Q23EGG6DrawGX = .rodata:0x804FBB38; // type:object size:0x30 s_Blend__Q23EGG6DrawGX = .rodata:0x804FBB68; // type:object size:0xF0 @@ -51711,9 +51711,9 @@ TgSirenTag__StateID_PreDemo = .bss:0x805B8260; // type:object size:0x80 data:4by TgSirenTag__StateID_EventFinish = .bss:0x805B82E0; // type:object size:0x30 data:4byte lbl_805B8310 = .bss:0x805B8310; // type:object size:0x10 AcOSpore__STATE_WAIT = .bss:0x805B8320; // type:object size:0x40 data:4byte -__THPMCUBuffer = .bss:0x805B8360; // type:object size:0x18 data:4byte +__THPMCUBuffer = .bss:0x805B8360; // type:object size:0x18 align:32 data:4byte __THPLCWork512 = .bss:0x805B8378; // type:object size:0x28 data:4byte -__THPIDCTWorkspace = .bss:0x805B83A0; // type:object size:0x100 +__THPIDCTWorkspace = .bss:0x805B83A0; // type:object size:0x100 align:32 __THPLCWork672 = .bss:0x805B84A0; // type:object size:0x10 data:4byte @66 = .bss:0x805B84B0; // type:object size:0xC scope:local null__8sStateID = .bss:0x805B84BC; // type:object size:0xC diff --git a/configure.py b/configure.py index 58190044..8ced8115 100644 --- a/configure.py +++ b/configure.py @@ -793,6 +793,7 @@ config.libs = [ Object(Matching, "m/m_heap.cpp"), Object(NonMatching, "m/m_mtx.cpp"), Object(Matching, "m/m_pad.cpp"), + # probably two files due to sdata2 float duplication and gap Object(NonMatching, "m/m_quat.cpp"), Object(NonMatching, "m/m_thread.cpp"), Object(NonMatching, "m/m_vec.cpp"), @@ -827,7 +828,6 @@ config.libs = [ ], }, { - # TODO: Split up further "lib": "hbm", # no idea "mw_version": "Wii/1.0", diff --git a/src/egg/gfx/eggDrawGX.cpp b/src/egg/gfx/eggDrawGX.cpp index 31e973e6..9a86adfb 100644 --- a/src/egg/gfx/eggDrawGX.cpp +++ b/src/egg/gfx/eggDrawGX.cpp @@ -192,7 +192,7 @@ void DrawGX::BeginDrawQuad(ColorChannel chan, ZMode zMode, Blend blendMode, bool SetVtxState(b1 ? VTX_TYPE_7 : VTX_TYPE_8); } -static const DrawGX::VtxType sVtxTypes[2][2] = { +static const DrawGX::VtxType ALIGN_DECL(32) sVtxTypes[2][2] = { {DrawGX::VTX_TYPE_10, DrawGX::VTX_TYPE_12}, {DrawGX::VTX_TYPE_11, DrawGX::VTX_TYPE_13}, }; diff --git a/src/egg/gfx/eggTextureBuffer.cpp b/src/egg/gfx/eggTextureBuffer.cpp index c08f7f45..0f205b9a 100644 --- a/src/egg/gfx/eggTextureBuffer.cpp +++ b/src/egg/gfx/eggTextureBuffer.cpp @@ -8,6 +8,8 @@ namespace EGG { +TextureBuffer *TextureBuffer::spBufferTable[NUM_BUFFERS]; + TextureBuffer::TextureBuffer() : mSize(0), mState(STATE_FREE), mpNext(nullptr), mpPrev(nullptr) {} void TextureBuffer::configure() { From 9613914a9e7a1bde2587ff8d70e9184bc7ff50e0 Mon Sep 17 00:00:00 2001 From: robojumper Date: Fri, 18 Jul 2025 14:43:13 +0200 Subject: [PATCH 36/36] Fix align --- config/SOUE01/symbols.txt | 7 +++++-- src/egg/gfx/eggDrawGX.cpp | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 62f1952f..5cb4fc38 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -29184,8 +29184,11 @@ gRMO_Ntsc_640x456IntDf_4x3__22@unnamed@eggVideo_cpp@ = .rodata:0x804FB9BC; // ty renderModes__3EGG = .rodata:0x804FB9F8; // type:object size:0x28 scope:local @4804 = .rodata:0x804FBA20; // type:object size:0x10 scope:local data:4byte copyArg2__3EGG = .rodata:0x804FBA30; // type:object size:0x18 scope:local -sVtxTypes__3EGG = .rodata:0x804FBA60; // type:object size:0x10 align:32 -lbl_804FBA70 = .rodata:0x804FBA70; // type:object size:0xC8 +sVtxTypes__3EGG = .rodata:0x804FBA60; // type:object size:0x10 +@LOCAL@SetVtxState__Q23EGG6DrawGXFQ33EGG6DrawGX7VtxType@sVtxDataType0 = .rodata:0x804FBA80; // type:object size:0x30 align:32 +@LOCAL@SetVtxState__Q23EGG6DrawGXFQ33EGG6DrawGX7VtxType@sNrmDataType0@0 = .rodata:0x804FBAC0; // type:object size:0x24 align:32 +@LOCAL@SetVtxState__Q23EGG6DrawGXFQ33EGG6DrawGX7VtxType@sVtxDataType7@1 = .rodata:0x804FBB00; // type:object size:0x10 align:32 +@LOCAL@SetVtxState__Q23EGG6DrawGXFQ33EGG6DrawGX7VtxType@sVtxDataType9@4 = .rodata:0x804FBB20; // type:object size:0x18 align:32 s_ZMode__Q23EGG6DrawGX = .rodata:0x804FBB38; // type:object size:0x30 s_Blend__Q23EGG6DrawGX = .rodata:0x804FBB68; // type:object size:0xF0 lbl_804FBC58 = .rodata:0x804FBC58; // type:object size:0x18 diff --git a/src/egg/gfx/eggDrawGX.cpp b/src/egg/gfx/eggDrawGX.cpp index 9a86adfb..31e973e6 100644 --- a/src/egg/gfx/eggDrawGX.cpp +++ b/src/egg/gfx/eggDrawGX.cpp @@ -192,7 +192,7 @@ void DrawGX::BeginDrawQuad(ColorChannel chan, ZMode zMode, Blend blendMode, bool SetVtxState(b1 ? VTX_TYPE_7 : VTX_TYPE_8); } -static const DrawGX::VtxType ALIGN_DECL(32) sVtxTypes[2][2] = { +static const DrawGX::VtxType sVtxTypes[2][2] = { {DrawGX::VTX_TYPE_10, DrawGX::VTX_TYPE_12}, {DrawGX::VTX_TYPE_11, DrawGX::VTX_TYPE_13}, };