mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-28 01:03:10 -04:00
JKRFileCache matched 22/24 (#73)
* progress * strlen, strcat, and strcchr * more functions from JKRFileCache * JKRFileCache 22/24 matched Co-authored-by: Julgodis <>
This commit is contained in:
@@ -9,52 +9,55 @@ class JKRFileCache : public JKRFileLoader {
|
||||
public:
|
||||
class CCacheBlock {
|
||||
public:
|
||||
CCacheBlock(u32, u32, void const*);
|
||||
CCacheBlock(u32, u32, const void*);
|
||||
~CCacheBlock() {}
|
||||
|
||||
private:
|
||||
JSULink<CCacheBlock> mLink;
|
||||
u32 field_0x10;
|
||||
u32 mFileId;
|
||||
u32 mFileSize;
|
||||
void const* mMemoryPtr;
|
||||
public:
|
||||
/* 0x00 */ JSULink<CCacheBlock> mCacheBlockLink;
|
||||
/* 0x10 */ u32 mReferenceCount;
|
||||
/* 0x14 */ u32 mFileId;
|
||||
/* 0x18 */ u32 mFileSize;
|
||||
/* 0x1C */ void* mMemoryPtr;
|
||||
};
|
||||
|
||||
protected:
|
||||
JKRFileCache(char const*, char const*);
|
||||
JKRFileCache(const char*, const char*);
|
||||
virtual ~JKRFileCache();
|
||||
|
||||
void findCacheBlock(void const*) const;
|
||||
void findCacheBlock(u32) const;
|
||||
void findFile(char*, char const*) const;
|
||||
void getDvdPathName(char const*) const;
|
||||
CCacheBlock* findCacheBlock(const void*) const;
|
||||
CCacheBlock* findCacheBlock(u32) const;
|
||||
bool findFile(char*, const char*) const;
|
||||
char* getDvdPathName(const char*) const;
|
||||
void convStrLower(char*) const;
|
||||
|
||||
public:
|
||||
/* vt[04] */ virtual void becomeCurrent(char const*); /* override */
|
||||
/* vt[05] */ virtual void* getResource(char const*); /* override */
|
||||
/* vt[06] */ virtual void* getResource(u32, char const*); /* override */
|
||||
/* vt[07] */ virtual void readResource(void*, u32, char const*); /* override */
|
||||
/* vt[08] */ virtual void readResource(void*, u32, u32, char const*); /* override */
|
||||
/* vt[09] */ virtual void removeResourceAll(void); /* override */
|
||||
/* vt[10] */ virtual bool removeResource(void*); /* override */
|
||||
/* vt[11] */ virtual bool detachResource(void*); /* override */
|
||||
/* vt[12] */ virtual void getResSize(void const*) const; /* override */
|
||||
/* vt[13] */ virtual void countFile(char const*) const; /* override */
|
||||
/* vt[14] */ virtual void getFirstFile(char const*) const; /* override */
|
||||
/* vt[15] */ virtual void getFsResource(char const*);
|
||||
/* vt[16] */ virtual void getNameResource(u32, char const*);
|
||||
/* vt[17] */ virtual void readFsResource(void*, u32, char const*);
|
||||
/* vt[18] */ virtual void readNameResource(void*, u32, u32, char const*);
|
||||
/* vt[04] */ virtual bool becomeCurrent(const char*); /* override */
|
||||
/* vt[05] */ virtual void* getResource(const char*); /* override */
|
||||
/* vt[06] */ virtual void* getResource(u32, const char*); /* override */
|
||||
/* vt[07] */ virtual u32 readResource(void*, u32, const char*); /* override */
|
||||
/* vt[08] */ virtual u32 readResource(void*, u32, u32, const char*); /* override */
|
||||
/* vt[09] */ virtual void removeResourceAll(void); /* override */
|
||||
/* vt[10] */ virtual bool removeResource(void*); /* override */
|
||||
/* vt[11] */ virtual bool detachResource(void*); /* override */
|
||||
/* vt[12] */ virtual u32 getResSize(const void*) const; /* override */
|
||||
/* vt[13] */ virtual u32 countFile(const char*) const; /* override */
|
||||
/* vt[14] */ virtual JKRFileFinder* getFirstFile(const char*) const; /* override */
|
||||
/* vt[15] */ virtual void* getFsResource(const char*);
|
||||
/* vt[16] */ virtual void* getNameResource(u32, const char*);
|
||||
/* vt[17] */ virtual u32 readFsResource(void*, u32, const char*);
|
||||
/* vt[18] */ virtual u32 readNameResource(void*, u32, u32, const char*);
|
||||
|
||||
private:
|
||||
JKRHeap* mParentHeap;
|
||||
JSUList<CCacheBlock> mCacheBlockList;
|
||||
char* field_0x40;
|
||||
char* field_0x4c;
|
||||
char* field_0x50;
|
||||
/* 0x00 */ // vtable
|
||||
/* 0x04 */ // JKRFileLoader
|
||||
/* 0x38 */ JKRHeap* mParentHeap;
|
||||
/* 0x3C */ JSUList<CCacheBlock> mCacheBlockList;
|
||||
/* 0x48 */ char* mRootPath;
|
||||
/* 0x4C */ char* mCurrentPath;
|
||||
/* 0x50 */ char* mVolumePath;
|
||||
|
||||
public:
|
||||
static void mount(char const*, JKRHeap*, char const*);
|
||||
static JKRFileCache* mount(const char*, JKRHeap*, const char*);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -15,7 +15,7 @@ lbl_802D49E4:
|
||||
/* 802D49E4 002D1924 38 60 00 00 */ li r3, 0
|
||||
/* 802D49E8 002D1928 48 00 00 B4 */ b lbl_802D4A9C
|
||||
lbl_802D49EC:
|
||||
/* 802D49EC 002D192C 48 09 41 F9 */ bl func_80368BE4
|
||||
/* 802D49EC 002D192C 48 09 41 F9 */ bl strlen
|
||||
/* 802D49F0 002D1930 28 03 00 01 */ cmplwi r3, 1
|
||||
/* 802D49F4 002D1934 41 82 00 1C */ beq lbl_802D4A10
|
||||
/* 802D49F8 002D1938 7C 7E 1A 14 */ add r3, r30, r3
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
/* 802D4B04 002D1A44 38 03 53 48 */ addi r0, r3, 0x43415348@l
|
||||
/* 802D4B08 002D1A48 90 1F 00 2C */ stw r0, 0x2c(r31)
|
||||
/* 802D4B0C 002D1A4C 7F 83 E3 78 */ mr r3, r28
|
||||
/* 802D4B10 002D1A50 48 09 40 D5 */ bl func_80368BE4
|
||||
/* 802D4B10 002D1A50 48 09 40 D5 */ bl strlen
|
||||
/* 802D4B14 002D1A54 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802D4B18 002D1A58 38 7E 00 01 */ addi r3, r30, 1
|
||||
/* 802D4B1C 002D1A5C 38 80 00 01 */ li r4, 1
|
||||
@@ -53,17 +53,17 @@
|
||||
/* 802D4B7C 002D1ABC 80 7F 00 4C */ lwz r3, 0x4c(r31)
|
||||
/* 802D4B80 002D1AC0 3C 80 80 3A */ lis r4, lbl_8039D158@ha
|
||||
/* 802D4B84 002D1AC4 38 84 D1 58 */ addi r4, r4, lbl_8039D158@l
|
||||
/* 802D4B88 002D1AC8 48 09 3F 35 */ bl func_80368ABC
|
||||
/* 802D4B88 002D1AC8 48 09 3F 35 */ bl strcat
|
||||
/* 802D4B8C 002D1ACC 7F BE EB 78 */ mr r30, r29
|
||||
/* 802D4B90 002D1AD0 28 1D 00 00 */ cmplwi r29, 0
|
||||
/* 802D4B94 002D1AD4 40 82 00 14 */ bne lbl_802D4BA8
|
||||
/* 802D4B98 002D1AD8 80 7F 00 48 */ lwz r3, 0x48(r31)
|
||||
/* 802D4B9C 002D1ADC 38 80 00 2F */ li r4, 0x2f
|
||||
/* 802D4BA0 002D1AE0 48 09 3D 3D */ bl func_803688DC
|
||||
/* 802D4BA0 002D1AE0 48 09 3D 3D */ bl strrchr
|
||||
/* 802D4BA4 002D1AE4 3B C3 00 01 */ addi r30, r3, 1
|
||||
lbl_802D4BA8:
|
||||
/* 802D4BA8 002D1AE8 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D4BAC 002D1AEC 48 09 40 39 */ bl func_80368BE4
|
||||
/* 802D4BAC 002D1AEC 48 09 40 39 */ bl strlen
|
||||
/* 802D4BB0 002D1AF0 38 83 00 01 */ addi r4, r3, 1
|
||||
/* 802D4BB4 002D1AF4 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
/* 802D4BB8 002D1AF8 38 A0 00 00 */ li r5, 0
|
||||
@@ -87,7 +87,7 @@ lbl_802D4BE8:
|
||||
/* 802D4BFC 002D1B3C 3B C3 00 02 */ addi r30, r3, 2
|
||||
lbl_802D4C00:
|
||||
/* 802D4C00 002D1B40 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D4C04 002D1B44 48 09 3F E1 */ bl func_80368BE4
|
||||
/* 802D4C04 002D1B44 48 09 3F E1 */ bl strlen
|
||||
/* 802D4C08 002D1B48 38 83 00 01 */ addi r4, r3, 1
|
||||
/* 802D4C0C 002D1B4C 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
/* 802D4C10 002D1B50 38 A0 00 00 */ li r5, 0
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/* 802D4D9C 002D1CDC 41 82 00 20 */ beq lbl_802D4DBC
|
||||
/* 802D4DA0 002D1CE0 3C 80 80 3A */ lis r4, lbl_8039D158@ha
|
||||
/* 802D4DA4 002D1CE4 38 84 D1 58 */ addi r4, r4, lbl_8039D158@l
|
||||
/* 802D4DA8 002D1CE8 48 09 3D 15 */ bl func_80368ABC
|
||||
/* 802D4DA8 002D1CE8 48 09 3D 15 */ bl strcat
|
||||
/* 802D4DAC 002D1CEC 48 00 00 10 */ b lbl_802D4DBC
|
||||
lbl_802D4DB0:
|
||||
/* 802D4DB0 002D1CF0 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
/* 802D4EF0 002D1E30 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 802D4EF4 002D1E34 7C BE 2B 78 */ mr r30, r5
|
||||
/* 802D4EF8 002D1E38 80 63 00 48 */ lwz r3, 0x48(r3)
|
||||
/* 802D4EFC 002D1E3C 48 09 3C E9 */ bl func_80368BE4
|
||||
/* 802D4EFC 002D1E3C 48 09 3C E9 */ bl strlen
|
||||
/* 802D4F00 002D1E40 3B E1 00 08 */ addi r31, r1, 8
|
||||
/* 802D4F04 002D1E44 7F FF 1A 14 */ add r31, r31, r3
|
||||
/* 802D4F08 002D1E48 38 61 00 08 */ addi r3, r1, 8
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/* 802D5058 002D1F98 7C BD 2B 78 */ mr r29, r5
|
||||
/* 802D505C 002D1F9C 7C FE 3B 78 */ mr r30, r7
|
||||
/* 802D5060 002D1FA0 80 63 00 48 */ lwz r3, 0x48(r3)
|
||||
/* 802D5064 002D1FA4 48 09 3B 81 */ bl func_80368BE4
|
||||
/* 802D5064 002D1FA4 48 09 3B 81 */ bl strlen
|
||||
/* 802D5068 002D1FA8 3B E1 00 08 */ addi r31, r1, 8
|
||||
/* 802D506C 002D1FAC 7F FF 1A 14 */ add r31, r31, r3
|
||||
/* 802D5070 002D1FB0 38 61 00 08 */ addi r3, r1, 8
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/* 802D542C 002D236C 7C BC 2B 78 */ mr r28, r5
|
||||
/* 802D5430 002D2370 3B A0 00 00 */ li r29, 0
|
||||
/* 802D5434 002D2374 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802D5438 002D2378 48 09 37 AD */ bl func_80368BE4
|
||||
/* 802D5438 002D2378 48 09 37 AD */ bl strlen
|
||||
/* 802D543C 002D237C 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D5440 002D2380 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802D5444 002D2384 38 81 00 14 */ addi r4, r1, 0x14
|
||||
@@ -50,10 +50,10 @@ lbl_802D54A8:
|
||||
/* 802D54C4 002D2404 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802D54C8 002D2408 3C 80 80 3A */ lis r4, lbl_8039D158@ha
|
||||
/* 802D54CC 002D240C 38 84 D1 58 */ addi r4, r4, lbl_8039D158@l
|
||||
/* 802D54D0 002D2410 48 09 35 ED */ bl func_80368ABC
|
||||
/* 802D54D0 002D2410 48 09 35 ED */ bl strcat
|
||||
/* 802D54D4 002D2414 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802D54D8 002D2418 7F 84 E3 78 */ mr r4, r28
|
||||
/* 802D54DC 002D241C 48 09 35 E1 */ bl func_80368ABC
|
||||
/* 802D54DC 002D241C 48 09 35 E1 */ bl strcat
|
||||
/* 802D54E0 002D2420 48 00 00 18 */ b lbl_802D54F8
|
||||
lbl_802D54E4:
|
||||
/* 802D54E4 002D2424 38 61 00 14 */ addi r3, r1, 0x14
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
/* 802D553C 002D247C 2C 00 00 2F */ cmpwi r0, 0x2f
|
||||
/* 802D5540 002D2480 40 82 00 78 */ bne lbl_802D55B8
|
||||
/* 802D5544 002D2484 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D5548 002D2488 48 09 36 9D */ bl func_80368BE4
|
||||
/* 802D5548 002D2488 48 09 36 9D */ bl strlen
|
||||
/* 802D554C 002D248C 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D5550 002D2490 80 7D 00 48 */ lwz r3, 0x48(r29)
|
||||
/* 802D5554 002D2494 48 09 36 91 */ bl func_80368BE4
|
||||
/* 802D5554 002D2494 48 09 36 91 */ bl strlen
|
||||
/* 802D5558 002D2498 38 9F 00 02 */ addi r4, r31, 2
|
||||
/* 802D555C 002D249C 7C 83 22 14 */ add r4, r3, r4
|
||||
/* 802D5560 002D24A0 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
@@ -33,19 +33,19 @@
|
||||
/* 802D5594 002D24D4 40 82 00 14 */ bne lbl_802D55A8
|
||||
/* 802D5598 002D24D8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D559C 002D24DC 38 9E 00 01 */ addi r4, r30, 1
|
||||
/* 802D55A0 002D24E0 48 09 35 1D */ bl func_80368ABC
|
||||
/* 802D55A0 002D24E0 48 09 35 1D */ bl strcat
|
||||
/* 802D55A4 002D24E4 48 00 00 58 */ b lbl_802D55FC
|
||||
lbl_802D55A8:
|
||||
/* 802D55A8 002D24E8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D55AC 002D24EC 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802D55B0 002D24F0 48 09 35 0D */ bl func_80368ABC
|
||||
/* 802D55B0 002D24F0 48 09 35 0D */ bl strcat
|
||||
/* 802D55B4 002D24F4 48 00 00 48 */ b lbl_802D55FC
|
||||
lbl_802D55B8:
|
||||
/* 802D55B8 002D24F8 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D55BC 002D24FC 48 09 36 29 */ bl func_80368BE4
|
||||
/* 802D55BC 002D24FC 48 09 36 29 */ bl strlen
|
||||
/* 802D55C0 002D2500 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D55C4 002D2504 80 7D 00 4C */ lwz r3, 0x4c(r29)
|
||||
/* 802D55C8 002D2508 48 09 36 1D */ bl func_80368BE4
|
||||
/* 802D55C8 002D2508 48 09 36 1D */ bl strlen
|
||||
/* 802D55CC 002D250C 38 9F 00 02 */ addi r4, r31, 2
|
||||
/* 802D55D0 002D2510 7C 83 22 14 */ add r4, r3, r4
|
||||
/* 802D55D4 002D2514 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
@@ -57,7 +57,7 @@ lbl_802D55B8:
|
||||
/* 802D55EC 002D252C 48 09 35 41 */ bl strcpy
|
||||
/* 802D55F0 002D2530 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D55F4 002D2534 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802D55F8 002D2538 48 09 34 C5 */ bl func_80368ABC
|
||||
/* 802D55F8 002D2538 48 09 34 C5 */ bl strcat
|
||||
lbl_802D55FC:
|
||||
/* 802D55FC 002D253C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 802D5600 002D2540 7F E4 FB 78 */ mr r4, r31
|
||||
|
||||
Reference in New Issue
Block a user