finish most of LayoutResourceMgr

This commit is contained in:
Pistonight 2024-08-08 23:40:59 -07:00
parent e5119d9f35
commit 596d0798ae
6 changed files with 72 additions and 41 deletions

View File

@ -1,6 +1,6 @@
0x0000007101e9fe68,_ZN4sead8Matrix34IfE5identE 0x0000007101E9FE68,_ZN4sead8Matrix34IfE5identE
0x0000007101e9ff18,_ZN4sead7Vector3IfE4zeroE 0x0000007101E9FF18,_ZN4sead7Vector3IfE4zeroE
0x0000007101e9ff48,_ZN4sead7Vector3IfE4onesE 0x0000007101E9FF48,_ZN4sead7Vector3IfE4onesE
0x00000071023556B0,_ZTVN4sead14SafeStringBaseIcEE 0x00000071023556B0,_ZTVN4sead14SafeStringBaseIcEE
0x0000007102356AF0,_ZTVN4sead22BufferedSafeStringBaseIcEE 0x0000007102356AF0,_ZTVN4sead22BufferedSafeStringBaseIcEE
0x000000710246F9E0,_ZN4ksys3gdt6detail13sCommonFlags0E 0x000000710246F9E0,_ZN4ksys3gdt6detail13sCommonFlags0E
@ -20,6 +20,9 @@
0x00000071024C1600,_ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi64EEEEE 0x00000071024C1600,_ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi64EEEEE
0x00000071024C16A0,_ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi256EEEEE 0x00000071024C16A0,_ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi256EEEEE
0x00000071024C1740,_ZTVN3agl3utl9ParameterIN4sead14SafeStringBaseIcEEEE 0x00000071024C1740,_ZTVN3agl3utl9ParameterIN4sead14SafeStringBaseIcEEEE
0x00000071024C6600,_ZN6xlink216ContainerCreator17sContainerSizeMaxE
0x00000071024C68A8,_ZN6xlink215sMinAddressHighE
0x00000071024C68B0,_ZN6xlink214sMinAddressLowE
0x00000071024D8D58,_ZTVN4ksys3act2ai10ActionBaseE 0x00000071024D8D58,_ZTVN4ksys3act2ai10ActionBaseE
0x00000071025129E0,_ZTVN4ksys3act2ai6ActionE 0x00000071025129E0,_ZTVN4ksys3act2ai6ActionE
0x0000007102513268,_ZTVN4ksys3act2ai2AiE 0x0000007102513268,_ZTVN4ksys3act2ai2AiE
@ -500,17 +503,15 @@
0x00000071025F8480,pfnc_nvnEventSignal 0x00000071025F8480,pfnc_nvnEventSignal
0x00000071025F8488,pfnc_nvnCommandBufferWaitEvent 0x00000071025F8488,pfnc_nvnCommandBufferWaitEvent
0x00000071025F8490,pfnc_nvnCommandBufferSignalEvent 0x00000071025F8490,pfnc_nvnCommandBufferSignalEvent
0x0000007102606910,_ZN4ksys12SystemTimers9sInstanceE
0x0000007102650608,_ZN4ksys3act11BaseProcMgr9sInstanceE
0x00000071025F9CB0,_ZN3agl6driver17GraphicsDriverMgr18SingletonDisposer_15sStaticDisposerE 0x00000071025F9CB0,_ZN3agl6driver17GraphicsDriverMgr18SingletonDisposer_15sStaticDisposerE
0x00000071025F9CB8,_ZN3agl6driver17GraphicsDriverMgr9sInstanceE 0x00000071025F9CB8,_ZN3agl6driver17GraphicsDriverMgr9sInstanceE
0x00000071024c6600,_ZN6xlink216ContainerCreator17sContainerSizeMaxE 0x00000071025FB508,_ZN3aal6System9sInstanceE
0x00000071024c68a8,_ZN6xlink215sMinAddressHighE 0x00000071025FC7F0,_ZN6xlink211SystemSLink9sInstanceE
0x00000071024c68b0,_ZN6xlink214sMinAddressLowE 0x00000071025FC7F8,_ZN6xlink211SystemSLink10sLockProxyE
0x00000071025fb508,_ZN3aal6System9sInstanceE 0x00000071025FC878,_ZZNK6xlink214ResourceBuffer18getEmptyUserHeaderEvE6sDummy
0x00000071025fc7f0,_ZN6xlink211SystemSLink9sInstanceE 0x00000071025FC8B0,_ZZNK6xlink214ResourceBuffer24getEmptyRomResourceParamEvE6sDummy
0x00000071025fc7f8,_ZN6xlink211SystemSLink10sLockProxyE 0x00000071025FC948,_ZZNK6xlink214ResourceBuffer24getEmptyRomResourceParamEvE6sDummy
0x00000071025fc878,_ZZNK6xlink214ResourceBuffer18getEmptyUserHeaderEvE6sDummy 0x00000071025FC950,_ZN6xlink27Locator16sDataLoadedCountE
0x00000071025fc8b0,_ZZNK6xlink214ResourceBuffer24getEmptyRomResourceParamEvE6sDummy 0x0000007102606910,_ZN4ksys12SystemTimers9sInstanceE
0x00000071025fc948,_ZZNK6xlink214ResourceBuffer24getEmptyRomResourceParamEvE6sDummy 0x0000007102650608,_ZN4ksys3act11BaseProcMgr9sInstanceE
0x00000071025fc950,_ZN6xlink27Locator16sDataLoadedCountE 0x000000710261EB90,_ZN4ksys2ui17LayoutResourceMgr9sInstanceE

1 0x0000007101e9fe68 0x0000007101E9FE68 _ZN4sead8Matrix34IfE5identE
2 0x0000007101e9ff18 0x0000007101E9FF18 _ZN4sead7Vector3IfE4zeroE
3 0x0000007101e9ff48 0x0000007101E9FF48 _ZN4sead7Vector3IfE4onesE
4 0x00000071023556B0 0x00000071023556B0 _ZTVN4sead14SafeStringBaseIcEE
5 0x0000007102356AF0 0x0000007102356AF0 _ZTVN4sead22BufferedSafeStringBaseIcEE
6 0x000000710246F9E0 0x000000710246F9E0 _ZN4ksys3gdt6detail13sCommonFlags0E
20 0x00000071024C1600 0x00000071024C1600 _ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi64EEEEE
21 0x00000071024C16A0 0x00000071024C16A0 _ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi256EEEEE
22 0x00000071024C1740 0x00000071024C1740 _ZTVN3agl3utl9ParameterIN4sead14SafeStringBaseIcEEEE
23 0x00000071024C6600 _ZN6xlink216ContainerCreator17sContainerSizeMaxE
24 0x00000071024C68A8 _ZN6xlink215sMinAddressHighE
25 0x00000071024C68B0 _ZN6xlink214sMinAddressLowE
26 0x00000071024D8D58 0x00000071024D8D58 _ZTVN4ksys3act2ai10ActionBaseE
27 0x00000071025129E0 0x00000071025129E0 _ZTVN4ksys3act2ai6ActionE
28 0x0000007102513268 0x0000007102513268 _ZTVN4ksys3act2ai2AiE
503 0x00000071025F8480 0x00000071025F8480 pfnc_nvnEventSignal
504 0x00000071025F8488 0x00000071025F8488 pfnc_nvnCommandBufferWaitEvent
505 0x00000071025F8490 0x00000071025F8490 pfnc_nvnCommandBufferSignalEvent
0x0000007102606910 _ZN4ksys12SystemTimers9sInstanceE
0x0000007102650608 _ZN4ksys3act11BaseProcMgr9sInstanceE
506 0x00000071025F9CB0 0x00000071025F9CB0 _ZN3agl6driver17GraphicsDriverMgr18SingletonDisposer_15sStaticDisposerE
507 0x00000071025F9CB8 0x00000071025F9CB8 _ZN3agl6driver17GraphicsDriverMgr9sInstanceE
508 0x00000071024c6600 0x00000071025FB508 _ZN6xlink216ContainerCreator17sContainerSizeMaxE _ZN3aal6System9sInstanceE
509 0x00000071024c68a8 0x00000071025FC7F0 _ZN6xlink215sMinAddressHighE _ZN6xlink211SystemSLink9sInstanceE
510 0x00000071024c68b0 0x00000071025FC7F8 _ZN6xlink214sMinAddressLowE _ZN6xlink211SystemSLink10sLockProxyE
511 0x00000071025fb508 0x00000071025FC878 _ZN3aal6System9sInstanceE _ZZNK6xlink214ResourceBuffer18getEmptyUserHeaderEvE6sDummy
512 0x00000071025fc7f0 0x00000071025FC8B0 _ZN6xlink211SystemSLink9sInstanceE _ZZNK6xlink214ResourceBuffer24getEmptyRomResourceParamEvE6sDummy
513 0x00000071025fc7f8 0x00000071025FC948 _ZN6xlink211SystemSLink10sLockProxyE _ZZNK6xlink214ResourceBuffer24getEmptyRomResourceParamEvE6sDummy
514 0x00000071025fc878 0x00000071025FC950 _ZZNK6xlink214ResourceBuffer18getEmptyUserHeaderEvE6sDummy _ZN6xlink27Locator16sDataLoadedCountE
515 0x00000071025fc8b0 0x0000007102606910 _ZZNK6xlink214ResourceBuffer24getEmptyRomResourceParamEvE6sDummy _ZN4ksys12SystemTimers9sInstanceE
516 0x00000071025fc948 0x0000007102650608 _ZZNK6xlink214ResourceBuffer24getEmptyRomResourceParamEvE6sDummy _ZN4ksys3act11BaseProcMgr9sInstanceE
517 0x00000071025fc950 0x000000710261EB90 _ZN6xlink27Locator16sDataLoadedCountE _ZN4ksys2ui17LayoutResourceMgr9sInstanceE

View File

@ -88328,22 +88328,22 @@ Address,Quality,Size,Name
0x00000071010a2294,U,000008, 0x00000071010a2294,U,000008,
0x00000071010a229c,U,000040, 0x00000071010a229c,U,000040,
0x00000071010a22c4,U,000372, 0x00000071010a22c4,U,000372,
0x00000071010a2438,W,000112,_ZN4ksys2ui17LayoutResourceMgr18SingletonDisposer_D0Ev 0x00000071010a2438,O,000112,_ZN4ksys2ui17LayoutResourceMgr18SingletonDisposer_D1Ev
0x00000071010a24a8,W,000120,_ZN4ksys2ui17LayoutResourceMgr18SingletonDisposer_D1Ev 0x00000071010a24a8,O,000120,_ZN4ksys2ui17LayoutResourceMgr18SingletonDisposer_D0Ev
0x00000071010a2520,O,000284,_ZN4ksys2ui17LayoutResourceMgr14createInstanceEPN4sead4HeapE 0x00000071010a2520,O,000284,_ZN4ksys2ui17LayoutResourceMgr14createInstanceEPN4sead4HeapE
0x00000071010a263c,O,000268,_ZN4ksys2ui17LayoutResourceMgr4initEPN4sead4HeapE 0x00000071010a263c,O,000268,_ZN4ksys2ui17LayoutResourceMgr4initEPN4sead4HeapE
0x00000071010a2748,O,000424,_ZN4ksys2ui17LayoutResourceMgr11loadMsgPackEPj 0x00000071010a2748,O,000424,_ZN4ksys2ui17LayoutResourceMgr11loadMsgPackEPj
0x00000071010a28f0,U,000384,LayoutResourceMgr::__auto2 0x00000071010a28f0,U,000384,LayoutResourceMgr::loadGrammarArticleMaxLen
0x00000071010a2a70,W,000260,_ZN4ksys2ui17LayoutResourceMgr12loadLangFontEPN4sead4HeapE 0x00000071010a2a70,O,000260,_ZN4ksys2ui17LayoutResourceMgr12loadLangFontEPN4sead4HeapE
0x00000071010a2b74,U,000388,LayoutResourceMgr::__auto0 0x00000071010a2b74,U,000388,LayoutResourceMgr::initializeFontMgr
0x00000071010a2cf8,W,000680,_ZN4ksys2ui17LayoutResourceMgr18loadExtraLangFontsEPN4sead4HeapE 0x00000071010a2cf8,W,000680,_ZN4ksys2ui17LayoutResourceMgr18loadExtraLangFontsEPN4sead4HeapE
0x00000071010a2fa0,O,000188,_ZN4ksys2ui17LayoutResourceMgr18checkLangFontReadyEv 0x00000071010a2fa0,O,000188,_ZN4ksys2ui17LayoutResourceMgr18checkLangFontReadyEv
0x00000071010a305c,O,000136,_ZNK4ksys2ui17LayoutResourceMgr24checkExtraLangFontsReadyEv 0x00000071010a305c,O,000136,_ZNK4ksys2ui17LayoutResourceMgr24checkExtraLangFontsReadyEv
0x00000071010a30e4,O,000136,_ZN4ksys2ui17LayoutResourceMgr11loadVersionEv 0x00000071010a30e4,O,000136,_ZN4ksys2ui17LayoutResourceMgr11loadVersionEv
0x00000071010a316c,W,000372,_ZN4ksys2ui17LayoutResourceMgr17checkVersionReadyEv 0x00000071010a316c,O,000372,_ZN4ksys2ui17LayoutResourceMgr17checkVersionReadyEv
0x00000071010a32e0,U,001584,LayoutResourceMgr::loadALotOfResources 0x00000071010a32e0,U,001584,LayoutResourceMgr::doSomethingWithFontTextureCache
0x00000071010a3910,W,000064,_ZN4sead12PerfJobQueue13measureEndRunEv 0x00000071010a3910,W,000064,_ZN4sead12PerfJobQueue13measureEndRunEv
0x00000071010a3950,W,000072,_ZN4ksys2ui17LayoutResourceMgr23loadCommonLayoutArchiveEPN4sead7ExpHeapE 0x00000071010a3950,O,000072,_ZN4ksys2ui17LayoutResourceMgr23loadCommonLayoutArchiveEPN4sead7ExpHeapE
0x00000071010a3998,O,000288,_ZN4ksys2ui17LayoutResourceMgr15loadArcResourceERNS1_7ArchiveEPKc 0x00000071010a3998,O,000288,_ZN4ksys2ui17LayoutResourceMgr15loadArcResourceERNS1_7ArchiveEPKc
0x00000071010a3ab8,O,000104,_ZN4ksys2ui17LayoutResourceMgr8unloadA8Ev 0x00000071010a3ab8,O,000104,_ZN4ksys2ui17LayoutResourceMgr8unloadA8Ev
0x00000071010a3b20,O,000208,_ZN4ksys2ui17LayoutResourceMgr15loadTitleLayoutEPN4sead4HeapE 0x00000071010a3b20,O,000208,_ZN4ksys2ui17LayoutResourceMgr15loadTitleLayoutEPN4sead4HeapE

Can't render this file because it is too large.

View File

@ -16,8 +16,8 @@ public:
ArcResourceMgr() = default; ArcResourceMgr() = default;
virtual ~ArcResourceMgr(); virtual ~ArcResourceMgr();
virtual void sub_10();
virtual void loadArchive(sead::ExpHeap* heap, const sead::SafeString& path); virtual void loadArchive(sead::ExpHeap* heap, const sead::SafeString& path);
virtual void sub_18();
virtual void sub_20(); virtual void sub_20();
virtual void sub_28(); virtual void sub_28();
virtual void addArchive(ArcResource* archive); virtual void addArchive(ArcResource* archive);

View File

@ -9,7 +9,6 @@
namespace ksys::ui { namespace ksys::ui {
SEAD_SINGLETON_DISPOSER_IMPL(LayoutResourceMgr) SEAD_SINGLETON_DISPOSER_IMPL(LayoutResourceMgr)
LayoutResourceMgr::~LayoutResourceMgr() = default;
void LayoutResourceMgr::init(sead::Heap* heap) { void LayoutResourceMgr::init(sead::Heap* heap) {
mMsgPackHandle = new (heap) res::Handle; mMsgPackHandle = new (heap) res::Handle;
@ -61,7 +60,7 @@ u8* LayoutResourceMgr::loadMsgPack(u32* size) {
void LayoutResourceMgr::loadLangFont(sead::Heap* heap) { void LayoutResourceMgr::loadLangFont(sead::Heap* heap) {
mLangFontHandle->resetUnitFlag20000IfSuccess(); mLangFontHandle->resetUnitFlag20000IfSuccess();
mLangFontHandle->unload(); mLangFontHandle->unload();
mLangFontHandle = nullptr; mLangFontResource = nullptr;
res::LoadRequest req; res::LoadRequest req;
req.mRequester = "LayoutResourceMgr"; req.mRequester = "LayoutResourceMgr";
@ -70,10 +69,9 @@ void LayoutResourceMgr::loadLangFont(sead::Heap* heap) {
req._26 = false; req._26 = false;
sead::FixedSafeString<0x20> path; sead::FixedSafeString<0x20> path;
// TODO: needs sead::EnvUtil::getRegion() and sead::RegionID path.format("Font/Font_%s.bfarc", sead::EnvUtil2::getRegion().text());
/* path.format("Font/Font_%s.bfarc", sead::EnvUtil::getRegion()); */
mLangFontHandle->load(path, &req, nullptr); mLangFontHandle->requestLoad(path, &req, nullptr);
} }
constexpr const char* cExtraFontFiles[3][4] = { constexpr const char* cExtraFontFiles[3][4] = {
@ -153,18 +151,18 @@ void LayoutResourceMgr::loadVersion() {
// non-matching // non-matching
bool LayoutResourceMgr::checkVersionReady() { bool LayoutResourceMgr::checkVersionReady() {
if (!mVersionHandle) { if (!mVersionHandle) {
if (!mVersionHandle->isReady()) { return true;
return false;
} }
if (mVersionHandle->isReady()) {
auto* resource = sead::DynamicCast<sead::DirectResource>(mVersionHandle->getResource()); auto* resource = sead::DynamicCast<sead::DirectResource>(mVersionHandle->getResource());
instance()->mVersionString = reinterpret_cast<char*>(resource->getRawData()); instance()->mVersionString
if (mVersionHandle) { .copy(reinterpret_cast<const char*>(resource->getRawData()), static_cast<s32>(resource->getRawSize()));
delete mVersionHandle; delete mVersionHandle;
mVersionHandle = nullptr; mVersionHandle = nullptr;
}
}
return true; return true;
} }
return false;
}
void LayoutResourceMgr::loadCommonLayoutArchive(sead::ExpHeap* heap) { void LayoutResourceMgr::loadCommonLayoutArchive(sead::ExpHeap* heap) {
mArcResourceMgr->loadArchive(heap, "Layout/Common.sblarc"); mArcResourceMgr->loadArchive(heap, "Layout/Common.sblarc");

View File

@ -14,13 +14,21 @@ enum SharedFontType : int { Unknown = 0 };
u64 RequestSharedFontLoad(nn::pl::SharedFontType type); u64 RequestSharedFontLoad(nn::pl::SharedFontType type);
u32 GetSharedFontLoadState(nn::pl::SharedFontType type); u32 GetSharedFontLoadState(nn::pl::SharedFontType type);
} // namespace nn::pl } // namespace nn::pl
#include "prim/seadEnum.h"
namespace sead {
SEAD_ENUM(RegionID, JP, US, EU, KR, CN)
class EnvUtil2 {
public:
static RegionID getRegion();
};
}
namespace ksys::ui { namespace ksys::ui {
class LayoutResourceMgr { class LayoutResourceMgr {
SEAD_SINGLETON_DISPOSER(LayoutResourceMgr) SEAD_SINGLETON_DISPOSER(LayoutResourceMgr)
LayoutResourceMgr() = default; LayoutResourceMgr() = default;
virtual ~LayoutResourceMgr(); ~LayoutResourceMgr() = default;
private: private:
class Archive { class Archive {
friend class LayoutResourceMgr; friend class LayoutResourceMgr;
@ -54,6 +62,8 @@ private:
public: public:
virtual void this_class_has_vtable();
void init(sead::Heap* heap); void init(sead::Heap* heap);
u8* loadMsgPack(u32* size); u8* loadMsgPack(u32* size);
void loadLangFont(sead::Heap* heap); void loadLangFont(sead::Heap* heap);
@ -71,11 +81,11 @@ public:
bool hasHorseLayoutLoadFailure() const; bool hasHorseLayoutLoadFailure() const;
bool unloadHorseLayout(); bool unloadHorseLayout();
void unloadA8(); void unloadA8();
void doSomethingWithFontTextureCache(void* texture_cache);
bool loadArcResource(Archive& archive, const char* name); bool loadArcResource(Archive& archive, const char* name);
private: private:
res::Handle* mMsgPackHandle = nullptr; res::Handle* mMsgPackHandle = nullptr;
res::Handle* mLangFontHandle = nullptr; res::Handle* mLangFontHandle = nullptr;
res::Handle* mVersionHandle = nullptr; res::Handle* mVersionHandle = nullptr;

View File

@ -0,0 +1,22 @@
import os
DATA_SYMBOLS = os.path.join(os.path.dirname(__file__), '../data/data_symbols.csv')
if __name__ == "__main__":
lines = {}
with open(DATA_SYMBOLS, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if not line:
continue
hex = "0x" + (line[2:18].upper())
name = line[19:].strip()
new_line = f"{hex},{name}"
lines[hex] = new_line
with open(DATA_SYMBOLS, "w", encoding="utf-8") as f:
for hex in sorted(lines):
f.write(f"{lines[hex]}\n")
print("data_symbols.csv updated")