From b9ef1d7f4a3b0b59f667c32449a177316cd85727 Mon Sep 17 00:00:00 2001 From: Jonathan Wase Date: Tue, 5 Jan 2021 00:20:45 +0100 Subject: [PATCH 1/2] JKRArchive (#63) * JKRArchivePri OK * JKRArchivePub OK * formatting * removed unused asm files and tried to fixed setExpandSize and getExpandSize Co-authored-by: Julgodis <> --- asm/clib.s | 4 +- asm/dvd/dvdfs.s | 4 +- .../JKernel/JKRAramArchive/JKRAramArchive.h | 13 +- .../JKRAramArchive/asm/func_802D75E0.s | 2 +- .../JKRAramArchive/asm/func_802D76F4.s | 2 +- .../JKRAramArchive/asm/func_802D77F8.s | 2 +- .../JKRAramArchive/asm/func_802D781C.s | 2 +- .../JSystem/JKernel/JKRArchive/JKRArchive.h | 177 +++++---- .../JKernel/JKRArchive/asm/func_802D5778.s | 33 -- .../JKernel/JKRArchive/asm/func_802D57E4.s | 27 -- .../JKernel/JKRArchive/asm/func_802D5840.s | 40 -- .../JKernel/JKRArchive/asm/func_802D58C8.s | 109 ------ .../JKernel/JKRArchive/asm/func_802D5A38.s | 40 -- .../JKernel/JKRArchive/asm/func_802D5AC0.s | 34 -- .../JKernel/JKRArchive/asm/func_802D5B38.s | 52 --- .../JKernel/JKRArchive/asm/func_802D5BE8.s | 37 -- .../JKernel/JKRArchive/asm/func_802D5C64.s | 39 -- .../JKernel/JKRArchive/asm/func_802D5CE4.s | 25 -- .../JKernel/JKRArchive/asm/func_802D5D38.s | 25 -- .../JKernel/JKRArchive/asm/func_802D5D8C.s | 48 --- .../JKernel/JKRArchive/asm/func_802D5E30.s | 45 --- .../JKernel/JKRArchive/asm/func_802D5ECC.s | 33 -- .../JKernel/JKRArchive/asm/func_802D5F40.s | 33 -- .../JKernel/JKRArchive/asm/func_802D5FB4.s | 40 -- .../JKernel/JKRArchive/asm/func_802D603C.s | 28 -- .../JKernel/JKRArchive/asm/func_802D609C.s | 19 - .../JKernel/JKRArchive/asm/func_802D60D8.s | 17 - .../JKernel/JKRArchive/asm/func_802D610C.s | 22 -- .../JKernel/JKRArchive/asm/func_802D6150.s | 31 -- .../JKernel/JKRArchive/asm/func_802D61B0.s | 51 --- .../JKernel/JKRArchive/asm/func_802D625C.s | 18 - .../JKernel/JKRArchive/asm/func_802D6294.s | 44 --- .../JKernel/JKRArchive/asm/func_802D6334.s | 27 -- .../JKernel/JKRArchive/asm/func_802D6394.s | 23 -- .../JKernel/JKRArchive/asm/func_802D63E0.s | 20 - .../JKernel/JKRArchive/asm/func_802D641C.s | 62 --- .../JKernel/JKRArchive/asm/func_802D64F4.s | 51 --- .../JKernel/JKRArchive/asm/func_802D65A4.s | 65 ---- .../JKernel/JKRArchive/asm/func_802D6684.s | 13 - .../JKernel/JKRArchive/asm/func_802D66AC.s | 40 -- .../JKernel/JKRArchive/asm/func_802D6734.s | 20 - .../JKernel/JKRArchive/asm/func_802D6770.s | 39 -- .../JKernel/JKRArchive/asm/func_802D67F4.s | 41 -- .../JKernel/JKRArchive/asm/func_802D6884.s | 54 --- .../JKernel/JKRArchive/asm/func_802D693C.s | 2 +- .../JKernel/JKRArchive/asm/func_802D6978.s | 2 +- .../JKernel/JKRCompArchive/JKRCompArchive.h | 10 +- .../JKRCompArchive/asm/func_802D8F40.s | 2 +- .../JKRCompArchive/asm/func_802D90C0.s | 2 +- .../JKernel/JKRDvdArchive/JKRDvdArchive.h | 12 +- .../JKernel/JKRDvdArchive/asm/func_802D8050.s | 2 +- .../JKernel/JKRDvdArchive/asm/func_802D8168.s | 2 +- .../JKernel/JKRFileCache/asm/func_802D5624.s | 2 +- .../JKernel/JKRFileFinder/JKRFileFinder.h | 2 +- .../JKernel/JKRFileFinder/asm/func_802D46C4.s | 2 +- .../JKernel/JKRFileLoader/JKRFileLoader.h | 27 +- .../JKernel/JKRMemArchive/JKRMemArchive.h | 12 +- .../JKernel/JKRMemArchive/asm/func_802D6DDC.s | 2 +- .../JKernel/JKRMemArchive/asm/func_802D6E10.s | 2 +- include/dvd/dvd.h | 2 +- include/functions.h | 32 +- include/variables.h | 2 +- ldscript.lcf | 20 +- libs/JSystem/JKernel/JKRAramArchive.cpp | 6 +- libs/JSystem/JKernel/JKRArchivePri.cpp | 233 ++++++++--- libs/JSystem/JKernel/JKRArchivePub.cpp | 367 ++++++++++++++---- libs/JSystem/JKernel/JKRCompArchive.cpp | 4 +- libs/JSystem/JKernel/JKRDvdArchive.cpp | 4 +- libs/JSystem/JKernel/JKRFileFinder.cpp | 13 +- libs/JSystem/JKernel/JKRMemArchive.cpp | 6 +- 70 files changed, 705 insertions(+), 1618 deletions(-) delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5778.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D57E4.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5840.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D58C8.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5A38.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5AC0.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5B38.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5BE8.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5C64.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5CE4.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5D38.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5D8C.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5E30.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5ECC.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5F40.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D5FB4.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D603C.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D609C.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D60D8.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D610C.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D6150.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D61B0.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D625C.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D6294.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D6334.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D6394.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D63E0.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D641C.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D64F4.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D65A4.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D6684.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D66AC.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D6734.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D6770.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D67F4.s delete mode 100644 include/JSystem/JKernel/JKRArchive/asm/func_802D6884.s diff --git a/asm/clib.s b/asm/clib.s index 7291ef57d3..0fead46f65 100644 --- a/asm/clib.s +++ b/asm/clib.s @@ -4372,8 +4372,8 @@ func_80365468: func_8036546C: /* 8036546C 003623AC 4E 80 00 20 */ blr -.global func_80365470 -func_80365470: +.global tolower +tolower: /* 80365470 003623B0 2C 03 FF FF */ cmpwi r3, -1 /* 80365474 003623B4 40 82 00 0C */ bne lbl_80365480 /* 80365478 003623B8 38 60 FF FF */ li r3, -1 diff --git a/asm/dvd/dvdfs.s b/asm/dvd/dvdfs.s index d59b3e7faf..bab78bf9ab 100644 --- a/asm/dvd/dvdfs.s +++ b/asm/dvd/dvdfs.s @@ -181,12 +181,12 @@ lbl_80348730: /* 80348730 00345670 88 14 00 00 */ lbz r0, 0(r20) /* 80348734 00345674 3A 94 00 01 */ addi r20, r20, 1 /* 80348738 00345678 7C 03 07 74 */ extsb r3, r0 -/* 8034873C 0034567C 48 01 CD 35 */ bl func_80365470 +/* 8034873C 0034567C 48 01 CD 35 */ bl tolower /* 80348740 00345680 88 15 00 00 */ lbz r0, 0(r21) /* 80348744 00345684 3A C3 00 00 */ addi r22, r3, 0 /* 80348748 00345688 3A B5 00 01 */ addi r21, r21, 1 /* 8034874C 0034568C 7C 03 07 74 */ extsb r3, r0 -/* 80348750 00345690 48 01 CD 21 */ bl func_80365470 +/* 80348750 00345690 48 01 CD 21 */ bl tolower /* 80348754 00345694 7C 03 B0 00 */ cmpw r3, r22 /* 80348758 00345698 41 82 00 0C */ beq lbl_80348764 /* 8034875C 0034569C 38 00 00 00 */ li r0, 0 diff --git a/include/JSystem/JKernel/JKRAramArchive/JKRAramArchive.h b/include/JSystem/JKernel/JKRAramArchive/JKRAramArchive.h index f3797e3e94..80c103da97 100644 --- a/include/JSystem/JKernel/JKRAramArchive/JKRAramArchive.h +++ b/include/JSystem/JKernel/JKRAramArchive/JKRAramArchive.h @@ -10,16 +10,21 @@ public: virtual ~JKRAramArchive(); void open(long); - void getAramAddress_Entry(JKRArchive::SDIFileEntry*); + void getAramAddress_Entry(SDIFileEntry*); void getAramAddress(char const*); - /* vt[15] */ void getExpandedResSize(void const*) const; /* override */ - /* vt[16] */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */ - /* vt[17] */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */ + /* vt[15] */ void getExpandedResSize(void const*) const; /* override */ + /* vt[16] */ void* fetchResource(SDIFileEntry*, u32*); /* override */ + /* vt[17] */ void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */ public: static void fetchResource_subroutine(u32, u32, u8*, u32, int); static void fetchResource_subroutine(u32, u32, JKRHeap*, int, u8**); + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRArchive + u8 unk[16]; }; #endif diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s index 2abe3aa95d..544a56b961 100644 --- a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s @@ -1,4 +1,4 @@ -/* fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ +/* fetchResource__14JKRAramArchiveFP12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ /* missing reference */ /* 802D75E0 002D4520 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802D75E4 002D4524 7C 08 02 A6 */ mflr r0 diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s index d6dcd2cd77..cb7228033d 100644 --- a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s @@ -1,4 +1,4 @@ -/* fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ +/* fetchResource__14JKRAramArchiveFPvUlP12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ /* missing reference */ /* 802D76F4 002D4634 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802D76F8 002D4638 7C 08 02 A6 */ mflr r0 diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s index 53a499d909..056a2685db 100644 --- a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s @@ -1,4 +1,4 @@ -/* getAramAddress_Entry__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntry __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::getAramAddress_Entry(JKRArchive::SDIFileEntry *) */ +/* getAramAddress_Entry__14JKRAramArchiveFP12SDIFileEntry __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::getAramAddress_Entry(JKRArchive::SDIFileEntry *) */ /* JKRAramArchive_NS_getAramAddress_Entry */ /* 802D77F8 002D4738 28 04 00 00 */ cmplwi r4, 0 /* 802D77FC 002D473C 40 82 00 0C */ bne lbl_802D7808 diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D781C.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D781C.s index 2b8f027c6a..c74a6616f2 100644 --- a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D781C.s +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D781C.s @@ -9,7 +9,7 @@ /* 802D7834 002D4774 4B FF ED 71 */ bl findFsResource__10JKRArchiveCFPCcUl /* 802D7838 002D4778 7C 64 1B 78 */ mr r4, r3 /* 802D783C 002D477C 7F E3 FB 78 */ mr r3, r31 -/* 802D7840 002D4780 4B FF FF B9 */ bl getAramAddress_Entry__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntry +/* 802D7840 002D4780 4B FF FF B9 */ bl getAramAddress_Entry__14JKRAramArchiveFP12SDIFileEntry /* 802D7844 002D4784 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802D7848 002D4788 80 01 00 14 */ lwz r0, 0x14(r1) /* 802D784C 002D478C 7C 08 03 A6 */ mtlr r0 diff --git a/include/JSystem/JKernel/JKRArchive/JKRArchive.h b/include/JSystem/JKernel/JKRArchive/JKRArchive.h index 924b765b94..ee2883cd2b 100644 --- a/include/JSystem/JKernel/JKRArchive/JKRArchive.h +++ b/include/JSystem/JKernel/JKRArchive/JKRArchive.h @@ -4,30 +4,64 @@ #include "JSystem/JKernel/JKRFileLoader/JKRFileLoader.h" #include "dolphin/types.h" +struct SArcDataInfo { + u32 num_nodes; + u32 node_offset; + u32 num_file_entries; + u32 file_entry_offset; + u32 string_table_length; + u32 string_trable_offset; + u16 next_free_file_id; + bool sync_file_ids_and_indices; + u8 field_1b[5]; +}; + +struct SDirEntry { + union { + u32 type; + struct { + u8 flags; + u8 padding; + u16 id; + } other; + }; + + const char* name; + u16 field_0x8; + u16 num_entries; + s32 first_file_index; +}; + +struct SDIFileEntry { + u16 file_id; + u16 name_hash; + u32 type_flags_and_name_offset; + u32 data_offset; + u32 data_size; + void* data; + + u32 getNameOffset() const { return type_flags_and_name_offset & 0xFFFFFF; } + u16 getNameHash() const { return name_hash; } + u32 getFlags() const { return type_flags_and_name_offset >> 24; } + u16 getFileID() const { return file_id; } + bool isDirectory() const { return (getFlags() & 2) != 0; } + bool isUnknownFlag1() const { return (getFlags() & 1) != 0; } +}; + +extern u32 lbl_80451420; // JKRArchive::sCurrentDirID + class JKRHeap; class JKRDvdFile; class JKRArchive : public JKRFileLoader { public: - struct SDirEntry { - u8 type_flags; - u8 field_0x1; - u16 id; - char* name; - u16 field_0x8; - u16 num_entries; - s32 first_file_index; - }; - - class SDIFileEntry {}; - enum EMountMode { UNKNOWN_MOUNT_MODE = 0, - MEM = 1, - ARAM = 2, - DVD = 3, - COMP = 4, + MOUNT_MEM = 1, + MOUNT_ARAM = 2, + MOUNT_DVD = 3, + MOUNT_COMP = 4, - __EMOUNT_MODE_PADDING_FOR_32BIT = 0xFFFFFFFF + __EMOUNT_MODE_FORCE_32BIT = UINT32_MAX, }; enum EMountDirection { @@ -35,7 +69,8 @@ public: HEAD = 1, TAIL = 2, - __EMOUNT_DIRECTION_PADDING_FOR_32BIT = 0xFFFFFFFF + __EMOUNT_DIRECTION_FORCE_32BIT = INT32_MAX, + __EMOUNT_DIRECTION_FORCE_SIGNED = -1, }; class CArcName { @@ -47,14 +82,14 @@ public: void store(char const* data); const char* store(char const* data, char endChar); - u16 getHash() { return mHash; } + u16 getHash() const { return mHash; } - const char* getString() { return mData; } + const char* getString() const { return mData; } private: u16 mHash; u16 mLength; - char mData[64]; + char mData[256]; }; protected: @@ -64,61 +99,67 @@ protected: public: bool getDirEntry(SDirEntry*, u32) const; - void getIdxResource(u32); - void getResource(unsigned short); - void readIdxResource(void*, u32, u32); - void readResource(void*, u32, unsigned short); - void countResource(void) const; - void getFileAttribute(u32) const; - void isSameName(CArcName&, u32, unsigned short) const; - void findResType(u32) const; - void findDirectory(char const*, u32) const; - void findTypeResource(u32, char const*) const; - void findFsResource(char const*, u32) const; - void findIdxResource(u32) const; - void findNameResource(char const*) const; - void findPtrResource(void const*) const; - void findIdResource(unsigned short) const; + void* getIdxResource(u32); + void* getResource(u16); + u32 readIdxResource(void*, u32, u32); + u32 readResource(void*, u32, u16); + u32 countResource(void) const; + u32 getFileAttribute(u32) const; + + EMountMode getMountMode() const { return (EMountMode)mMountMode; } + +protected: + bool isSameName(CArcName&, u32, u16) const; + SDirEntry* findResType(u32) const; + SDirEntry* findDirectory(const char*, u32) const; + SDIFileEntry* findTypeResource(u32, const char*) const; + SDIFileEntry* findFsResource(const char*, u32) const; + SDIFileEntry* findIdxResource(u32) const; + SDIFileEntry* findNameResource(const char*) const; + SDIFileEntry* findPtrResource(const void*) const; + SDIFileEntry* findIdResource(u16) 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 getExpandedResSize(void const*) const; - /* vt[16] */ virtual void fetchResource(SDIFileEntry*, u32) = 0; - /* vt[17] */ virtual void fetchResource(void*, u32, SDIFileEntry*, u32*) = 0; + /* 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 JKRArcFinder* getFirstFile(const char*) const; /* override */ + /* vt[15] */ virtual void getExpandedResSize(const void*) const; + /* vt[16] */ virtual void* fetchResource(SDIFileEntry*, u32*) = 0; + /* vt[17] */ virtual void* fetchResource(void*, u32, SDIFileEntry*, u32*) = 0; /* vt[18] */ virtual void setExpandSize(SDIFileEntry*, u32); /* vt[19] */ virtual void getExpandSize(SDIFileEntry*) const; private: - JKRHeap* mHeap; - EMountMode mMountMode; - int mEntryNum; - void* mArcInfoBlock; - void* mNodes; - SDIFileEntry* mDirs; - int* mExpandedSize; - char* mStringTable; - u32 field_0x58; - u32 field_0x5c; - EMountDirection mMountDirection; - u32 field_0x64; - JKRDvdFile* mDvdFile; + /* 0x00 */ // vtable + /* 0x04 */ // JKRFileLoader + /* 0x38 */ JKRHeap* mHeap; + /* 0x3C */ u8 mMountMode; + /* 0x3D */ u8 field_0x3d[3]; + /* 0x40 */ s32 mEntryNum; + /* 0x44 */ SArcDataInfo* mArcInfoBlock; + /* 0x48 */ SDirEntry* mNodes; + /* 0x4C */ SDIFileEntry* mFiles; + /* 0x50 */ s32* mExpandedSize; + /* 0x54 */ char* mStringTable; + /* 0x58 */ u32 field_0x58; public: - static void check_mount_already(long, JKRHeap*); - static void mount(char const*, EMountMode, JKRHeap*, EMountDirection); - static void mount(void*, JKRHeap*, EMountDirection); - static void mount(long, EMountMode, JKRHeap*, EMountDirection); - static void getGlbResource(u32, char const*, JKRArchive*); + static JKRArchive* check_mount_already(s32, JKRHeap*); + static JKRArchive* mount(const char*, EMountMode, JKRHeap*, EMountDirection); + static JKRArchive* mount(void*, JKRHeap*, EMountDirection); + static JKRArchive* mount(s32, EMountMode, JKRHeap*, EMountDirection); + static void* getGlbResource(u32, const char*, JKRArchive*); + + static u32 getCurrentDirID() { return lbl_80451420; } + static void setCurrentDirID(u32 dirID) { lbl_80451420 = dirID; } }; #endif diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5778.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5778.s deleted file mode 100644 index 5c0c8ad106..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5778.s +++ /dev/null @@ -1,33 +0,0 @@ -/* check_mount_already__10JKRArchiveFlP7JKRHeap __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::check_mount_already(long, JKRHeap *) */ -/* JKRArchive_NS_check_mount_already */ -/* 802D5778 002D26B8 28 04 00 00 */ cmplwi r4, 0 -/* 802D577C 002D26BC 40 82 00 08 */ bne lbl_802D5784 -/* 802D5780 002D26C0 80 8D 8D F4 */ lwz r4, lbl_80451374-_SDA_BASE_(r13) -lbl_802D5784: -/* 802D5784 002D26C4 3C A0 80 43 */ lis r5, lbl_80434354@ha -/* 802D5788 002D26C8 80 C5 43 54 */ lwz r6, lbl_80434354@l(r5) -/* 802D578C 002D26CC 48 00 00 48 */ b lbl_802D57D4 -lbl_802D5790: -/* 802D5790 002D26D0 80 E6 00 00 */ lwz r7, 0(r6) -/* 802D5794 002D26D4 80 A7 00 2C */ lwz r5, 0x2c(r7) -/* 802D5798 002D26D8 3C 05 AD BF */ addis r0, r5, 0xadbf -/* 802D579C 002D26DC 28 00 52 43 */ cmplwi r0, 0x5243 -/* 802D57A0 002D26E0 40 82 00 30 */ bne lbl_802D57D0 -/* 802D57A4 002D26E4 80 07 00 40 */ lwz r0, 0x40(r7) -/* 802D57A8 002D26E8 7C 00 18 00 */ cmpw r0, r3 -/* 802D57AC 002D26EC 40 82 00 24 */ bne lbl_802D57D0 -/* 802D57B0 002D26F0 80 07 00 38 */ lwz r0, 0x38(r7) -/* 802D57B4 002D26F4 7C 00 20 40 */ cmplw r0, r4 -/* 802D57B8 002D26F8 40 82 00 18 */ bne lbl_802D57D0 -/* 802D57BC 002D26FC 80 67 00 34 */ lwz r3, 0x34(r7) -/* 802D57C0 002D2700 38 03 00 01 */ addi r0, r3, 1 -/* 802D57C4 002D2704 90 07 00 34 */ stw r0, 0x34(r7) -/* 802D57C8 002D2708 7C E3 3B 78 */ mr r3, r7 -/* 802D57CC 002D270C 4E 80 00 20 */ blr -lbl_802D57D0: -/* 802D57D0 002D2710 80 C6 00 0C */ lwz r6, 0xc(r6) -lbl_802D57D4: -/* 802D57D4 002D2714 28 06 00 00 */ cmplwi r6, 0 -/* 802D57D8 002D2718 40 82 FF B8 */ bne lbl_802D5790 -/* 802D57DC 002D271C 38 60 00 00 */ li r3, 0 -/* 802D57E0 002D2720 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D57E4.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D57E4.s deleted file mode 100644 index e18f0a46ff..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D57E4.s +++ /dev/null @@ -1,27 +0,0 @@ -/* mount__10JKRArchiveFPCcQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::mount(char const *, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountMode, JKRHeap *, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountDirection) */ -/* JKRArchive_NS_mount */ -/* 802D57E4 002D2724 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D57E8 002D2728 7C 08 02 A6 */ mflr r0 -/* 802D57EC 002D272C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D57F0 002D2730 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D57F4 002D2734 48 08 C9 E9 */ bl _savegpr_29 -/* 802D57F8 002D2738 7C 9D 23 78 */ mr r29, r4 -/* 802D57FC 002D273C 7C BE 2B 78 */ mr r30, r5 -/* 802D5800 002D2740 7C DF 33 78 */ mr r31, r6 -/* 802D5804 002D2744 48 07 2D 25 */ bl DVDConvertPathToEntrynum -/* 802D5808 002D2748 2C 03 00 00 */ cmpwi r3, 0 -/* 802D580C 002D274C 40 80 00 0C */ bge lbl_802D5818 -/* 802D5810 002D2750 38 60 00 00 */ li r3, 0 -/* 802D5814 002D2754 48 00 00 14 */ b lbl_802D5828 -lbl_802D5818: -/* 802D5818 002D2758 7F A4 EB 78 */ mr r4, r29 -/* 802D581C 002D275C 7F C5 F3 78 */ mr r5, r30 -/* 802D5820 002D2760 7F E6 FB 78 */ mr r6, r31 -/* 802D5824 002D2764 48 00 00 A5 */ bl mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection -lbl_802D5828: -/* 802D5828 002D2768 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D582C 002D276C 48 08 C9 FD */ bl _restgpr_29 -/* 802D5830 002D2770 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5834 002D2774 7C 08 03 A6 */ mtlr r0 -/* 802D5838 002D2778 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D583C 002D277C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5840.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5840.s deleted file mode 100644 index e893bd3da6..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5840.s +++ /dev/null @@ -1,40 +0,0 @@ -/* mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::mount(void *, JKRHeap *, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountDirection) */ -/* JKRArchive_NS_mount_X1_ */ -/* 802D5840 002D2780 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5844 002D2784 7C 08 02 A6 */ mflr r0 -/* 802D5848 002D2788 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D584C 002D278C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5850 002D2790 48 08 C9 8D */ bl _savegpr_29 -/* 802D5854 002D2794 7C 7D 1B 78 */ mr r29, r3 -/* 802D5858 002D2798 7C 9E 23 78 */ mr r30, r4 -/* 802D585C 002D279C 7C BF 2B 78 */ mr r31, r5 -/* 802D5860 002D27A0 4B FF FF 19 */ bl check_mount_already__10JKRArchiveFlP7JKRHeap -/* 802D5864 002D27A4 28 03 00 00 */ cmplwi r3, 0 -/* 802D5868 002D27A8 41 82 00 08 */ beq lbl_802D5870 -/* 802D586C 002D27AC 48 00 00 44 */ b lbl_802D58B0 -lbl_802D5870: -/* 802D5870 002D27B0 38 60 00 70 */ li r3, 0x70 -/* 802D5874 002D27B4 7F C4 F3 78 */ mr r4, r30 -/* 802D5878 002D27B8 2C 1F 00 01 */ cmpwi r31, 1 -/* 802D587C 002D27BC 38 A0 FF FC */ li r5, -4 -/* 802D5880 002D27C0 40 82 00 08 */ bne lbl_802D5888 -/* 802D5884 002D27C4 38 A0 00 04 */ li r5, 4 -lbl_802D5888: -/* 802D5888 002D27C8 4B FF 94 11 */ bl __nw__FUlP7JKRHeapi -/* 802D588C 002D27CC 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D5890 002D27D0 41 82 00 1C */ beq lbl_802D58AC -/* 802D5894 002D27D4 7F A4 EB 78 */ mr r4, r29 -/* 802D5898 002D27D8 3C A0 00 01 */ lis r5, 0x0000FFFF@ha -/* 802D589C 002D27DC 38 A5 FF FF */ addi r5, r5, 0x0000FFFF@l -/* 802D58A0 002D27E0 38 C0 00 00 */ li r6, 0 -/* 802D58A4 002D27E4 48 00 11 C9 */ bl __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag -/* 802D58A8 002D27E8 7C 60 1B 78 */ mr r0, r3 -lbl_802D58AC: -/* 802D58AC 002D27EC 7C 03 03 78 */ mr r3, r0 -lbl_802D58B0: -/* 802D58B0 002D27F0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D58B4 002D27F4 48 08 C9 75 */ bl _restgpr_29 -/* 802D58B8 002D27F8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D58BC 002D27FC 7C 08 03 A6 */ mtlr r0 -/* 802D58C0 002D2800 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D58C4 002D2804 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D58C8.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D58C8.s deleted file mode 100644 index 97904e6432..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D58C8.s +++ /dev/null @@ -1,109 +0,0 @@ -/* mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::mount(long, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountMode, JKRHeap *, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountDirection) */ -/* JKRArchive_NS_mount_X2_ */ -/* 802D58C8 002D2808 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D58CC 002D280C 7C 08 02 A6 */ mflr r0 -/* 802D58D0 002D2810 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D58D4 002D2814 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D58D8 002D2818 48 08 C8 FD */ bl _savegpr_27 -/* 802D58DC 002D281C 7C 7B 1B 78 */ mr r27, r3 -/* 802D58E0 002D2820 7C 9C 23 78 */ mr r28, r4 -/* 802D58E4 002D2824 7C BD 2B 78 */ mr r29, r5 -/* 802D58E8 002D2828 7C DE 33 78 */ mr r30, r6 -/* 802D58EC 002D282C 7F A4 EB 78 */ mr r4, r29 -/* 802D58F0 002D2830 4B FF FE 89 */ bl check_mount_already__10JKRArchiveFlP7JKRHeap -/* 802D58F4 002D2834 28 03 00 00 */ cmplwi r3, 0 -/* 802D58F8 002D2838 41 82 00 08 */ beq lbl_802D5900 -/* 802D58FC 002D283C 48 00 01 24 */ b lbl_802D5A20 -lbl_802D5900: -/* 802D5900 002D2840 2C 1E 00 01 */ cmpwi r30, 1 -/* 802D5904 002D2844 38 A0 FF FC */ li r5, -4 -/* 802D5908 002D2848 40 82 00 08 */ bne lbl_802D5910 -/* 802D590C 002D284C 38 A0 00 04 */ li r5, 4 -lbl_802D5910: -/* 802D5910 002D2850 2C 1C 00 03 */ cmpwi r28, 3 -/* 802D5914 002D2854 41 82 00 7C */ beq lbl_802D5990 -/* 802D5918 002D2858 40 80 00 14 */ bge lbl_802D592C -/* 802D591C 002D285C 2C 1C 00 01 */ cmpwi r28, 1 -/* 802D5920 002D2860 41 82 00 18 */ beq lbl_802D5938 -/* 802D5924 002D2864 40 80 00 40 */ bge lbl_802D5964 -/* 802D5928 002D2868 48 00 00 BC */ b lbl_802D59E4 -lbl_802D592C: -/* 802D592C 002D286C 2C 1C 00 05 */ cmpwi r28, 5 -/* 802D5930 002D2870 40 80 00 B4 */ bge lbl_802D59E4 -/* 802D5934 002D2874 48 00 00 88 */ b lbl_802D59BC -lbl_802D5938: -/* 802D5938 002D2878 38 60 00 70 */ li r3, 0x70 -/* 802D593C 002D287C 7F A4 EB 78 */ mr r4, r29 -/* 802D5940 002D2880 4B FF 93 59 */ bl __nw__FUlP7JKRHeapi -/* 802D5944 002D2884 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D5948 002D2888 41 82 00 14 */ beq lbl_802D595C -/* 802D594C 002D288C 7F 64 DB 78 */ mr r4, r27 -/* 802D5950 002D2890 7F C5 F3 78 */ mr r5, r30 -/* 802D5954 002D2894 48 00 10 65 */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection -/* 802D5958 002D2898 7C 60 1B 78 */ mr r0, r3 -lbl_802D595C: -/* 802D595C 002D289C 7C 1F 03 78 */ mr r31, r0 -/* 802D5960 002D28A0 48 00 00 84 */ b lbl_802D59E4 -lbl_802D5964: -/* 802D5964 002D28A4 38 60 00 6C */ li r3, 0x6c -/* 802D5968 002D28A8 7F A4 EB 78 */ mr r4, r29 -/* 802D596C 002D28AC 4B FF 93 2D */ bl __nw__FUlP7JKRHeapi -/* 802D5970 002D28B0 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D5974 002D28B4 41 82 00 14 */ beq lbl_802D5988 -/* 802D5978 002D28B8 7F 64 DB 78 */ mr r4, r27 -/* 802D597C 002D28BC 7F C5 F3 78 */ mr r5, r30 -/* 802D5980 002D28C0 48 00 17 41 */ bl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection -/* 802D5984 002D28C4 7C 60 1B 78 */ mr r0, r3 -lbl_802D5988: -/* 802D5988 002D28C8 7C 1F 03 78 */ mr r31, r0 -/* 802D598C 002D28CC 48 00 00 58 */ b lbl_802D59E4 -lbl_802D5990: -/* 802D5990 002D28D0 38 60 00 6C */ li r3, 0x6c -/* 802D5994 002D28D4 7F A4 EB 78 */ mr r4, r29 -/* 802D5998 002D28D8 4B FF 93 01 */ bl __nw__FUlP7JKRHeapi -/* 802D599C 002D28DC 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D59A0 002D28E0 41 82 00 14 */ beq lbl_802D59B4 -/* 802D59A4 002D28E4 7F 64 DB 78 */ mr r4, r27 -/* 802D59A8 002D28E8 7F C5 F3 78 */ mr r5, r30 -/* 802D59AC 002D28EC 48 00 22 45 */ bl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection -/* 802D59B0 002D28F0 7C 60 1B 78 */ mr r0, r3 -lbl_802D59B4: -/* 802D59B4 002D28F4 7C 1F 03 78 */ mr r31, r0 -/* 802D59B8 002D28F8 48 00 00 2C */ b lbl_802D59E4 -lbl_802D59BC: -/* 802D59BC 002D28FC 38 60 00 80 */ li r3, 0x80 -/* 802D59C0 002D2900 7F A4 EB 78 */ mr r4, r29 -/* 802D59C4 002D2904 4B FF 92 D5 */ bl __nw__FUlP7JKRHeapi -/* 802D59C8 002D2908 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D59CC 002D290C 41 82 00 14 */ beq lbl_802D59E0 -/* 802D59D0 002D2910 7F 64 DB 78 */ mr r4, r27 -/* 802D59D4 002D2914 7F C5 F3 78 */ mr r5, r30 -/* 802D59D8 002D2918 48 00 2D FD */ bl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection -/* 802D59DC 002D291C 7C 60 1B 78 */ mr r0, r3 -lbl_802D59E0: -/* 802D59E0 002D2920 7C 1F 03 78 */ mr r31, r0 -lbl_802D59E4: -/* 802D59E4 002D2924 28 1F 00 00 */ cmplwi r31, 0 -/* 802D59E8 002D2928 41 82 00 34 */ beq lbl_802D5A1C -/* 802D59EC 002D292C 88 1F 00 3C */ lbz r0, 0x3c(r31) -/* 802D59F0 002D2930 28 00 00 00 */ cmplwi r0, 0 -/* 802D59F4 002D2934 40 82 00 28 */ bne lbl_802D5A1C -/* 802D59F8 002D2938 28 1F 00 00 */ cmplwi r31, 0 -/* 802D59FC 002D293C 41 82 00 1C */ beq lbl_802D5A18 -/* 802D5A00 002D2940 7F E3 FB 78 */ mr r3, r31 -/* 802D5A04 002D2944 38 80 00 01 */ li r4, 1 -/* 802D5A08 002D2948 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5A0C 002D294C 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D5A10 002D2950 7D 89 03 A6 */ mtctr r12 -/* 802D5A14 002D2954 4E 80 04 21 */ bctrl -lbl_802D5A18: -/* 802D5A18 002D2958 3B E0 00 00 */ li r31, 0 -lbl_802D5A1C: -/* 802D5A1C 002D295C 7F E3 FB 78 */ mr r3, r31 -lbl_802D5A20: -/* 802D5A20 002D2960 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5A24 002D2964 48 08 C7 FD */ bl _restgpr_27 -/* 802D5A28 002D2968 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5A2C 002D296C 7C 08 03 A6 */ mtlr r0 -/* 802D5A30 002D2970 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5A34 002D2974 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5A38.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5A38.s deleted file mode 100644 index 11d2b6ffb4..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5A38.s +++ /dev/null @@ -1,40 +0,0 @@ -/* becomeCurrent__10JKRArchiveFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::becomeCurrent(char const *) */ -/* missing reference */ -/* 802D5A38 002D2978 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5A3C 002D297C 7C 08 02 A6 */ mflr r0 -/* 802D5A40 002D2980 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5A44 002D2984 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5A48 002D2988 7C 7F 1B 78 */ mr r31, r3 -/* 802D5A4C 002D298C 88 04 00 00 */ lbz r0, 0(r4) -/* 802D5A50 002D2990 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D5A54 002D2994 40 82 00 24 */ bne lbl_802D5A78 -/* 802D5A58 002D2998 8C 04 00 01 */ lbzu r0, 1(r4) -/* 802D5A5C 002D299C 7C 00 07 75 */ extsb. r0, r0 -/* 802D5A60 002D29A0 40 82 00 08 */ bne lbl_802D5A68 -/* 802D5A64 002D29A4 38 80 00 00 */ li r4, 0 -lbl_802D5A68: -/* 802D5A68 002D29A8 7F E3 FB 78 */ mr r3, r31 -/* 802D5A6C 002D29AC 38 A0 00 00 */ li r5, 0 -/* 802D5A70 002D29B0 48 00 09 AD */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D5A74 002D29B4 48 00 00 0C */ b lbl_802D5A80 -lbl_802D5A78: -/* 802D5A78 002D29B8 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13) -/* 802D5A7C 002D29BC 48 00 09 A1 */ bl findDirectory__10JKRArchiveCFPCcUl -lbl_802D5A80: -/* 802D5A80 002D29C0 30 03 FF FF */ addic r0, r3, -1 -/* 802D5A84 002D29C4 7C 80 19 10 */ subfe r4, r0, r3 -/* 802D5A88 002D29C8 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802D5A8C 002D29CC 41 82 00 1C */ beq lbl_802D5AA8 -/* 802D5A90 002D29D0 93 ED 8E 98 */ stw r31, lbl_80451418-_SDA_BASE_(r13) -/* 802D5A94 002D29D4 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 802D5A98 002D29D8 7C 00 18 50 */ subf r0, r0, r3 -/* 802D5A9C 002D29DC 7C 00 26 70 */ srawi r0, r0, 4 -/* 802D5AA0 002D29E0 7C 00 01 94 */ addze r0, r0 -/* 802D5AA4 002D29E4 90 0D 8E A0 */ stw r0, lbl_80451420-_SDA_BASE_(r13) -lbl_802D5AA8: -/* 802D5AA8 002D29E8 7C 83 23 78 */ mr r3, r4 -/* 802D5AAC 002D29EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5AB0 002D29F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5AB4 002D29F4 7C 08 03 A6 */ mtlr r0 -/* 802D5AB8 002D29F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5ABC 002D29FC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5AC0.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5AC0.s deleted file mode 100644 index e451c50cc3..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5AC0.s +++ /dev/null @@ -1,34 +0,0 @@ -/* getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getDirEntry( const(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDirEntry *, unsigned long)) */ -/* JKRArchive_NS_getDirEntry */ -/* 802D5AC0 002D2A00 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5AC4 002D2A04 7C 08 02 A6 */ mflr r0 -/* 802D5AC8 002D2A08 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5ACC 002D2A0C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5AD0 002D2A10 93 C1 00 08 */ stw r30, 8(r1) -/* 802D5AD4 002D2A14 7C 7E 1B 78 */ mr r30, r3 -/* 802D5AD8 002D2A18 7C 9F 23 78 */ mr r31, r4 -/* 802D5ADC 002D2A1C 7C A4 2B 78 */ mr r4, r5 -/* 802D5AE0 002D2A20 48 00 0B A5 */ bl findIdxResource__10JKRArchiveCFUl -/* 802D5AE4 002D2A24 28 03 00 00 */ cmplwi r3, 0 -/* 802D5AE8 002D2A28 40 82 00 0C */ bne lbl_802D5AF4 -/* 802D5AEC 002D2A2C 38 60 00 00 */ li r3, 0 -/* 802D5AF0 002D2A30 48 00 00 30 */ b lbl_802D5B20 -lbl_802D5AF4: -/* 802D5AF4 002D2A34 80 03 00 04 */ lwz r0, 4(r3) -/* 802D5AF8 002D2A38 54 00 46 3E */ srwi r0, r0, 0x18 -/* 802D5AFC 002D2A3C 98 1F 00 00 */ stb r0, 0(r31) -/* 802D5B00 002D2A40 A0 03 00 00 */ lhz r0, 0(r3) -/* 802D5B04 002D2A44 B0 1F 00 02 */ sth r0, 2(r31) -/* 802D5B08 002D2A48 80 9E 00 54 */ lwz r4, 0x54(r30) -/* 802D5B0C 002D2A4C 80 03 00 04 */ lwz r0, 4(r3) -/* 802D5B10 002D2A50 54 00 02 3E */ clrlwi r0, r0, 8 -/* 802D5B14 002D2A54 7C 04 02 14 */ add r0, r4, r0 -/* 802D5B18 002D2A58 90 1F 00 04 */ stw r0, 4(r31) -/* 802D5B1C 002D2A5C 38 60 00 01 */ li r3, 1 -lbl_802D5B20: -/* 802D5B20 002D2A60 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5B24 002D2A64 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D5B28 002D2A68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5B2C 002D2A6C 7C 08 03 A6 */ mtlr r0 -/* 802D5B30 002D2A70 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5B34 002D2A74 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5B38.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5B38.s deleted file mode 100644 index 71a919406c..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5B38.s +++ /dev/null @@ -1,52 +0,0 @@ -/* getGlbResource__10JKRArchiveFUlPCcP10JKRArchive __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getGlbResource(unsigned long, char const *, JKRArchive *) */ -/* JKRArchive_NS_getGlbResource */ -/* 802D5B38 002D2A78 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5B3C 002D2A7C 7C 08 02 A6 */ mflr r0 -/* 802D5B40 002D2A80 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5B44 002D2A84 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5B48 002D2A88 48 08 C6 95 */ bl _savegpr_29 -/* 802D5B4C 002D2A8C 7C 7D 1B 78 */ mr r29, r3 -/* 802D5B50 002D2A90 7C 9E 23 78 */ mr r30, r4 -/* 802D5B54 002D2A94 38 C0 00 00 */ li r6, 0 -/* 802D5B58 002D2A98 28 05 00 00 */ cmplwi r5, 0 -/* 802D5B5C 002D2A9C 41 82 00 24 */ beq lbl_802D5B80 -/* 802D5B60 002D2AA0 7C A3 2B 78 */ mr r3, r5 -/* 802D5B64 002D2AA4 7F A4 EB 78 */ mr r4, r29 -/* 802D5B68 002D2AA8 7F C5 F3 78 */ mr r5, r30 -/* 802D5B6C 002D2AAC 81 83 00 00 */ lwz r12, 0(r3) -/* 802D5B70 002D2AB0 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802D5B74 002D2AB4 7D 89 03 A6 */ mtctr r12 -/* 802D5B78 002D2AB8 4E 80 04 21 */ bctrl -/* 802D5B7C 002D2ABC 48 00 00 54 */ b lbl_802D5BD0 -lbl_802D5B80: -/* 802D5B80 002D2AC0 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D5B84 002D2AC4 83 E3 43 54 */ lwz r31, lbl_80434354@l(r3) -/* 802D5B88 002D2AC8 48 00 00 3C */ b lbl_802D5BC4 -lbl_802D5B8C: -/* 802D5B8C 002D2ACC 80 7F 00 00 */ lwz r3, 0(r31) -/* 802D5B90 002D2AD0 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 802D5B94 002D2AD4 3C 04 AD BF */ addis r0, r4, 0xadbf -/* 802D5B98 002D2AD8 28 00 52 43 */ cmplwi r0, 0x5243 -/* 802D5B9C 002D2ADC 40 82 00 24 */ bne lbl_802D5BC0 -/* 802D5BA0 002D2AE0 7F A4 EB 78 */ mr r4, r29 -/* 802D5BA4 002D2AE4 7F C5 F3 78 */ mr r5, r30 -/* 802D5BA8 002D2AE8 81 83 00 00 */ lwz r12, 0(r3) -/* 802D5BAC 002D2AEC 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802D5BB0 002D2AF0 7D 89 03 A6 */ mtctr r12 -/* 802D5BB4 002D2AF4 4E 80 04 21 */ bctrl -/* 802D5BB8 002D2AF8 7C 66 1B 79 */ or. r6, r3, r3 -/* 802D5BBC 002D2AFC 40 82 00 10 */ bne lbl_802D5BCC -lbl_802D5BC0: -/* 802D5BC0 002D2B00 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_802D5BC4: -/* 802D5BC4 002D2B04 28 1F 00 00 */ cmplwi r31, 0 -/* 802D5BC8 002D2B08 40 82 FF C4 */ bne lbl_802D5B8C -lbl_802D5BCC: -/* 802D5BCC 002D2B0C 7C C3 33 78 */ mr r3, r6 -lbl_802D5BD0: -/* 802D5BD0 002D2B10 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5BD4 002D2B14 48 08 C6 55 */ bl _restgpr_29 -/* 802D5BD8 002D2B18 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5BDC 002D2B1C 7C 08 03 A6 */ mtlr r0 -/* 802D5BE0 002D2B20 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5BE4 002D2B24 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5BE8.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5BE8.s deleted file mode 100644 index f11a745a6f..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5BE8.s +++ /dev/null @@ -1,37 +0,0 @@ -/* getResource__10JKRArchiveFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getResource(char const *) */ -/* missing reference */ -/* 802D5BE8 002D2B28 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5BEC 002D2B2C 7C 08 02 A6 */ mflr r0 -/* 802D5BF0 002D2B30 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5BF4 002D2B34 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5BF8 002D2B38 7C 7F 1B 78 */ mr r31, r3 -/* 802D5BFC 002D2B3C 88 04 00 00 */ lbz r0, 0(r4) -/* 802D5C00 002D2B40 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D5C04 002D2B44 40 82 00 18 */ bne lbl_802D5C1C -/* 802D5C08 002D2B48 38 84 00 01 */ addi r4, r4, 1 -/* 802D5C0C 002D2B4C 38 A0 00 00 */ li r5, 0 -/* 802D5C10 002D2B50 48 00 09 95 */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D5C14 002D2B54 7C 64 1B 78 */ mr r4, r3 -/* 802D5C18 002D2B58 48 00 00 10 */ b lbl_802D5C28 -lbl_802D5C1C: -/* 802D5C1C 002D2B5C 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13) -/* 802D5C20 002D2B60 48 00 09 85 */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D5C24 002D2B64 7C 64 1B 78 */ mr r4, r3 -lbl_802D5C28: -/* 802D5C28 002D2B68 28 04 00 00 */ cmplwi r4, 0 -/* 802D5C2C 002D2B6C 41 82 00 20 */ beq lbl_802D5C4C -/* 802D5C30 002D2B70 7F E3 FB 78 */ mr r3, r31 -/* 802D5C34 002D2B74 38 A0 00 00 */ li r5, 0 -/* 802D5C38 002D2B78 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5C3C 002D2B7C 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802D5C40 002D2B80 7D 89 03 A6 */ mtctr r12 -/* 802D5C44 002D2B84 4E 80 04 21 */ bctrl -/* 802D5C48 002D2B88 48 00 00 08 */ b lbl_802D5C50 -lbl_802D5C4C: -/* 802D5C4C 002D2B8C 38 60 00 00 */ li r3, 0 -lbl_802D5C50: -/* 802D5C50 002D2B90 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5C54 002D2B94 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5C58 002D2B98 7C 08 03 A6 */ mtlr r0 -/* 802D5C5C 002D2B9C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5C60 002D2BA0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5C64.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5C64.s deleted file mode 100644 index 7c186b29e2..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5C64.s +++ /dev/null @@ -1,39 +0,0 @@ -/* getResource__10JKRArchiveFUlPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getResource(unsigned long, char const *) */ -/* missing reference */ -/* 802D5C64 002D2BA4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5C68 002D2BA8 7C 08 02 A6 */ mflr r0 -/* 802D5C6C 002D2BAC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5C70 002D2BB0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5C74 002D2BB4 7C 7F 1B 78 */ mr r31, r3 -/* 802D5C78 002D2BB8 28 04 00 00 */ cmplwi r4, 0 -/* 802D5C7C 002D2BBC 41 82 00 10 */ beq lbl_802D5C8C -/* 802D5C80 002D2BC0 3C 04 C0 C1 */ addis r0, r4, 0xc0c1 -/* 802D5C84 002D2BC4 28 00 3F 3F */ cmplwi r0, 0x3f3f -/* 802D5C88 002D2BC8 40 82 00 18 */ bne lbl_802D5CA0 -lbl_802D5C8C: -/* 802D5C8C 002D2BCC 7F E3 FB 78 */ mr r3, r31 -/* 802D5C90 002D2BD0 7C A4 2B 78 */ mr r4, r5 -/* 802D5C94 002D2BD4 48 00 0A 19 */ bl findNameResource__10JKRArchiveCFPCc -/* 802D5C98 002D2BD8 7C 64 1B 78 */ mr r4, r3 -/* 802D5C9C 002D2BDC 48 00 00 0C */ b lbl_802D5CA8 -lbl_802D5CA0: -/* 802D5CA0 002D2BE0 48 00 08 55 */ bl findTypeResource__10JKRArchiveCFUlPCc -/* 802D5CA4 002D2BE4 7C 64 1B 78 */ mr r4, r3 -lbl_802D5CA8: -/* 802D5CA8 002D2BE8 28 04 00 00 */ cmplwi r4, 0 -/* 802D5CAC 002D2BEC 41 82 00 20 */ beq lbl_802D5CCC -/* 802D5CB0 002D2BF0 7F E3 FB 78 */ mr r3, r31 -/* 802D5CB4 002D2BF4 38 A0 00 00 */ li r5, 0 -/* 802D5CB8 002D2BF8 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5CBC 002D2BFC 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802D5CC0 002D2C00 7D 89 03 A6 */ mtctr r12 -/* 802D5CC4 002D2C04 4E 80 04 21 */ bctrl -/* 802D5CC8 002D2C08 48 00 00 08 */ b lbl_802D5CD0 -lbl_802D5CCC: -/* 802D5CCC 002D2C0C 38 60 00 00 */ li r3, 0 -lbl_802D5CD0: -/* 802D5CD0 002D2C10 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5CD4 002D2C14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5CD8 002D2C18 7C 08 03 A6 */ mtlr r0 -/* 802D5CDC 002D2C1C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5CE0 002D2C20 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5CE4.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5CE4.s deleted file mode 100644 index 8d2817d6b4..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5CE4.s +++ /dev/null @@ -1,25 +0,0 @@ -/* getIdxResource__10JKRArchiveFUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getIdxResource(unsigned long) */ -/* JKRArchive_NS_getIdxResource */ -/* 802D5CE4 002D2C24 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5CE8 002D2C28 7C 08 02 A6 */ mflr r0 -/* 802D5CEC 002D2C2C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5CF0 002D2C30 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5CF4 002D2C34 7C 7F 1B 78 */ mr r31, r3 -/* 802D5CF8 002D2C38 48 00 09 8D */ bl findIdxResource__10JKRArchiveCFUl -/* 802D5CFC 002D2C3C 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D5D00 002D2C40 41 82 00 20 */ beq lbl_802D5D20 -/* 802D5D04 002D2C44 7F E3 FB 78 */ mr r3, r31 -/* 802D5D08 002D2C48 38 A0 00 00 */ li r5, 0 -/* 802D5D0C 002D2C4C 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5D10 002D2C50 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802D5D14 002D2C54 7D 89 03 A6 */ mtctr r12 -/* 802D5D18 002D2C58 4E 80 04 21 */ bctrl -/* 802D5D1C 002D2C5C 48 00 00 08 */ b lbl_802D5D24 -lbl_802D5D20: -/* 802D5D20 002D2C60 38 60 00 00 */ li r3, 0 -lbl_802D5D24: -/* 802D5D24 002D2C64 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5D28 002D2C68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5D2C 002D2C6C 7C 08 03 A6 */ mtlr r0 -/* 802D5D30 002D2C70 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5D34 002D2C74 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5D38.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5D38.s deleted file mode 100644 index aa3e5808ef..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5D38.s +++ /dev/null @@ -1,25 +0,0 @@ -/* getResource__10JKRArchiveFUs __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getResource(unsigned short) */ -/* JKRArchive_NS_getResource_X2_ */ -/* 802D5D38 002D2C78 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5D3C 002D2C7C 7C 08 02 A6 */ mflr r0 -/* 802D5D40 002D2C80 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5D44 002D2C84 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5D48 002D2C88 7C 7F 1B 78 */ mr r31, r3 -/* 802D5D4C 002D2C8C 48 00 0A 25 */ bl findIdResource__10JKRArchiveCFUs -/* 802D5D50 002D2C90 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D5D54 002D2C94 41 82 00 20 */ beq lbl_802D5D74 -/* 802D5D58 002D2C98 7F E3 FB 78 */ mr r3, r31 -/* 802D5D5C 002D2C9C 38 A0 00 00 */ li r5, 0 -/* 802D5D60 002D2CA0 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5D64 002D2CA4 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802D5D68 002D2CA8 7D 89 03 A6 */ mtctr r12 -/* 802D5D6C 002D2CAC 4E 80 04 21 */ bctrl -/* 802D5D70 002D2CB0 48 00 00 08 */ b lbl_802D5D78 -lbl_802D5D74: -/* 802D5D74 002D2CB4 38 60 00 00 */ li r3, 0 -lbl_802D5D78: -/* 802D5D78 002D2CB8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5D7C 002D2CBC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5D80 002D2CC0 7C 08 03 A6 */ mtlr r0 -/* 802D5D84 002D2CC4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5D88 002D2CC8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5D8C.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5D8C.s deleted file mode 100644 index 6e3c047078..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5D8C.s +++ /dev/null @@ -1,48 +0,0 @@ -/* readResource__10JKRArchiveFPvUlUlPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::readResource(void *, unsigned long, unsigned long, char const *) */ -/* missing reference */ -/* 802D5D8C 002D2CCC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5D90 002D2CD0 7C 08 02 A6 */ mflr r0 -/* 802D5D94 002D2CD4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5D98 002D2CD8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5D9C 002D2CDC 48 08 C4 41 */ bl _savegpr_29 -/* 802D5DA0 002D2CE0 7C 7D 1B 78 */ mr r29, r3 -/* 802D5DA4 002D2CE4 7C 9E 23 78 */ mr r30, r4 -/* 802D5DA8 002D2CE8 7C BF 2B 78 */ mr r31, r5 -/* 802D5DAC 002D2CEC 28 06 00 00 */ cmplwi r6, 0 -/* 802D5DB0 002D2CF0 41 82 00 10 */ beq lbl_802D5DC0 -/* 802D5DB4 002D2CF4 3C 06 C0 C1 */ addis r0, r6, 0xc0c1 -/* 802D5DB8 002D2CF8 28 00 3F 3F */ cmplwi r0, 0x3f3f -/* 802D5DBC 002D2CFC 40 82 00 18 */ bne lbl_802D5DD4 -lbl_802D5DC0: -/* 802D5DC0 002D2D00 7F A3 EB 78 */ mr r3, r29 -/* 802D5DC4 002D2D04 7C E4 3B 78 */ mr r4, r7 -/* 802D5DC8 002D2D08 48 00 08 E5 */ bl findNameResource__10JKRArchiveCFPCc -/* 802D5DCC 002D2D0C 7C 66 1B 78 */ mr r6, r3 -/* 802D5DD0 002D2D10 48 00 00 14 */ b lbl_802D5DE4 -lbl_802D5DD4: -/* 802D5DD4 002D2D14 7C C4 33 78 */ mr r4, r6 -/* 802D5DD8 002D2D18 7C E5 3B 78 */ mr r5, r7 -/* 802D5DDC 002D2D1C 48 00 07 19 */ bl findTypeResource__10JKRArchiveCFUlPCc -/* 802D5DE0 002D2D20 7C 66 1B 78 */ mr r6, r3 -lbl_802D5DE4: -/* 802D5DE4 002D2D24 28 06 00 00 */ cmplwi r6, 0 -/* 802D5DE8 002D2D28 41 82 00 2C */ beq lbl_802D5E14 -/* 802D5DEC 002D2D2C 7F A3 EB 78 */ mr r3, r29 -/* 802D5DF0 002D2D30 7F C4 F3 78 */ mr r4, r30 -/* 802D5DF4 002D2D34 7F E5 FB 78 */ mr r5, r31 -/* 802D5DF8 002D2D38 38 E1 00 08 */ addi r7, r1, 8 -/* 802D5DFC 002D2D3C 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D5E00 002D2D40 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802D5E04 002D2D44 7D 89 03 A6 */ mtctr r12 -/* 802D5E08 002D2D48 4E 80 04 21 */ bctrl -/* 802D5E0C 002D2D4C 80 61 00 08 */ lwz r3, 8(r1) -/* 802D5E10 002D2D50 48 00 00 08 */ b lbl_802D5E18 -lbl_802D5E14: -/* 802D5E14 002D2D54 38 60 00 00 */ li r3, 0 -lbl_802D5E18: -/* 802D5E18 002D2D58 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5E1C 002D2D5C 48 08 C4 0D */ bl _restgpr_29 -/* 802D5E20 002D2D60 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5E24 002D2D64 7C 08 03 A6 */ mtlr r0 -/* 802D5E28 002D2D68 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5E2C 002D2D6C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5E30.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5E30.s deleted file mode 100644 index 36ba9153d5..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5E30.s +++ /dev/null @@ -1,45 +0,0 @@ -/* readResource__10JKRArchiveFPvUlPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::readResource(void *, unsigned long, char const *) */ -/* missing reference */ -/* 802D5E30 002D2D70 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5E34 002D2D74 7C 08 02 A6 */ mflr r0 -/* 802D5E38 002D2D78 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5E3C 002D2D7C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5E40 002D2D80 48 08 C3 9D */ bl _savegpr_29 -/* 802D5E44 002D2D84 7C 7D 1B 78 */ mr r29, r3 -/* 802D5E48 002D2D88 7C 9E 23 78 */ mr r30, r4 -/* 802D5E4C 002D2D8C 7C BF 2B 78 */ mr r31, r5 -/* 802D5E50 002D2D90 88 06 00 00 */ lbz r0, 0(r6) -/* 802D5E54 002D2D94 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D5E58 002D2D98 40 82 00 18 */ bne lbl_802D5E70 -/* 802D5E5C 002D2D9C 38 86 00 01 */ addi r4, r6, 1 -/* 802D5E60 002D2DA0 38 A0 00 00 */ li r5, 0 -/* 802D5E64 002D2DA4 48 00 07 41 */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D5E68 002D2DA8 7C 66 1B 78 */ mr r6, r3 -/* 802D5E6C 002D2DAC 48 00 00 14 */ b lbl_802D5E80 -lbl_802D5E70: -/* 802D5E70 002D2DB0 7C C4 33 78 */ mr r4, r6 -/* 802D5E74 002D2DB4 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13) -/* 802D5E78 002D2DB8 48 00 07 2D */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D5E7C 002D2DBC 7C 66 1B 78 */ mr r6, r3 -lbl_802D5E80: -/* 802D5E80 002D2DC0 28 06 00 00 */ cmplwi r6, 0 -/* 802D5E84 002D2DC4 41 82 00 2C */ beq lbl_802D5EB0 -/* 802D5E88 002D2DC8 7F A3 EB 78 */ mr r3, r29 -/* 802D5E8C 002D2DCC 7F C4 F3 78 */ mr r4, r30 -/* 802D5E90 002D2DD0 7F E5 FB 78 */ mr r5, r31 -/* 802D5E94 002D2DD4 38 E1 00 08 */ addi r7, r1, 8 -/* 802D5E98 002D2DD8 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D5E9C 002D2DDC 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802D5EA0 002D2DE0 7D 89 03 A6 */ mtctr r12 -/* 802D5EA4 002D2DE4 4E 80 04 21 */ bctrl -/* 802D5EA8 002D2DE8 80 61 00 08 */ lwz r3, 8(r1) -/* 802D5EAC 002D2DEC 48 00 00 08 */ b lbl_802D5EB4 -lbl_802D5EB0: -/* 802D5EB0 002D2DF0 38 60 00 00 */ li r3, 0 -lbl_802D5EB4: -/* 802D5EB4 002D2DF4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5EB8 002D2DF8 48 08 C3 71 */ bl _restgpr_29 -/* 802D5EBC 002D2DFC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5EC0 002D2E00 7C 08 03 A6 */ mtlr r0 -/* 802D5EC4 002D2E04 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5EC8 002D2E08 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5ECC.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5ECC.s deleted file mode 100644 index d3bde6f2a6..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5ECC.s +++ /dev/null @@ -1,33 +0,0 @@ -/* readIdxResource__10JKRArchiveFPvUlUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::readIdxResource(void *, unsigned long, unsigned long) */ -/* JKRArchive_NS_readIdxResource */ -/* 802D5ECC 002D2E0C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5ED0 002D2E10 7C 08 02 A6 */ mflr r0 -/* 802D5ED4 002D2E14 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5ED8 002D2E18 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5EDC 002D2E1C 48 08 C3 01 */ bl _savegpr_29 -/* 802D5EE0 002D2E20 7C 7D 1B 78 */ mr r29, r3 -/* 802D5EE4 002D2E24 7C 9E 23 78 */ mr r30, r4 -/* 802D5EE8 002D2E28 7C BF 2B 78 */ mr r31, r5 -/* 802D5EEC 002D2E2C 7C C4 33 78 */ mr r4, r6 -/* 802D5EF0 002D2E30 48 00 07 95 */ bl findIdxResource__10JKRArchiveCFUl -/* 802D5EF4 002D2E34 7C 66 1B 79 */ or. r6, r3, r3 -/* 802D5EF8 002D2E38 41 82 00 2C */ beq lbl_802D5F24 -/* 802D5EFC 002D2E3C 7F A3 EB 78 */ mr r3, r29 -/* 802D5F00 002D2E40 7F C4 F3 78 */ mr r4, r30 -/* 802D5F04 002D2E44 7F E5 FB 78 */ mr r5, r31 -/* 802D5F08 002D2E48 38 E1 00 08 */ addi r7, r1, 8 -/* 802D5F0C 002D2E4C 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D5F10 002D2E50 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802D5F14 002D2E54 7D 89 03 A6 */ mtctr r12 -/* 802D5F18 002D2E58 4E 80 04 21 */ bctrl -/* 802D5F1C 002D2E5C 80 61 00 08 */ lwz r3, 8(r1) -/* 802D5F20 002D2E60 48 00 00 08 */ b lbl_802D5F28 -lbl_802D5F24: -/* 802D5F24 002D2E64 38 60 00 00 */ li r3, 0 -lbl_802D5F28: -/* 802D5F28 002D2E68 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5F2C 002D2E6C 48 08 C2 FD */ bl _restgpr_29 -/* 802D5F30 002D2E70 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5F34 002D2E74 7C 08 03 A6 */ mtlr r0 -/* 802D5F38 002D2E78 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5F3C 002D2E7C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5F40.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5F40.s deleted file mode 100644 index 7694c53b9f..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5F40.s +++ /dev/null @@ -1,33 +0,0 @@ -/* readResource__10JKRArchiveFPvUlUs __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::readResource(void *, unsigned long, unsigned short) */ -/* JKRArchive_NS_readResource_X2_ */ -/* 802D5F40 002D2E80 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5F44 002D2E84 7C 08 02 A6 */ mflr r0 -/* 802D5F48 002D2E88 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5F4C 002D2E8C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5F50 002D2E90 48 08 C2 8D */ bl _savegpr_29 -/* 802D5F54 002D2E94 7C 7D 1B 78 */ mr r29, r3 -/* 802D5F58 002D2E98 7C 9E 23 78 */ mr r30, r4 -/* 802D5F5C 002D2E9C 7C BF 2B 78 */ mr r31, r5 -/* 802D5F60 002D2EA0 7C C4 33 78 */ mr r4, r6 -/* 802D5F64 002D2EA4 48 00 08 0D */ bl findIdResource__10JKRArchiveCFUs -/* 802D5F68 002D2EA8 7C 66 1B 79 */ or. r6, r3, r3 -/* 802D5F6C 002D2EAC 41 82 00 2C */ beq lbl_802D5F98 -/* 802D5F70 002D2EB0 7F A3 EB 78 */ mr r3, r29 -/* 802D5F74 002D2EB4 7F C4 F3 78 */ mr r4, r30 -/* 802D5F78 002D2EB8 7F E5 FB 78 */ mr r5, r31 -/* 802D5F7C 002D2EBC 38 E1 00 08 */ addi r7, r1, 8 -/* 802D5F80 002D2EC0 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D5F84 002D2EC4 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802D5F88 002D2EC8 7D 89 03 A6 */ mtctr r12 -/* 802D5F8C 002D2ECC 4E 80 04 21 */ bctrl -/* 802D5F90 002D2ED0 80 61 00 08 */ lwz r3, 8(r1) -/* 802D5F94 002D2ED4 48 00 00 08 */ b lbl_802D5F9C -lbl_802D5F98: -/* 802D5F98 002D2ED8 38 60 00 00 */ li r3, 0 -lbl_802D5F9C: -/* 802D5F9C 002D2EDC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5FA0 002D2EE0 48 08 C2 89 */ bl _restgpr_29 -/* 802D5FA4 002D2EE4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5FA8 002D2EE8 7C 08 03 A6 */ mtlr r0 -/* 802D5FAC 002D2EEC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5FB0 002D2EF0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5FB4.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5FB4.s deleted file mode 100644 index c84d93e367..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5FB4.s +++ /dev/null @@ -1,40 +0,0 @@ -/* removeResourceAll__10JKRArchiveFv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::removeResourceAll(void) */ -/* missing reference */ -/* 802D5FB4 002D2EF4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5FB8 002D2EF8 7C 08 02 A6 */ mflr r0 -/* 802D5FBC 002D2EFC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5FC0 002D2F00 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5FC4 002D2F04 48 08 C2 15 */ bl _savegpr_28 -/* 802D5FC8 002D2F08 7C 7C 1B 78 */ mr r28, r3 -/* 802D5FCC 002D2F0C 80 03 00 44 */ lwz r0, 0x44(r3) -/* 802D5FD0 002D2F10 28 00 00 00 */ cmplwi r0, 0 -/* 802D5FD4 002D2F14 41 82 00 50 */ beq lbl_802D6024 -/* 802D5FD8 002D2F18 88 1C 00 3C */ lbz r0, 0x3c(r28) -/* 802D5FDC 002D2F1C 28 00 00 01 */ cmplwi r0, 1 -/* 802D5FE0 002D2F20 41 82 00 44 */ beq lbl_802D6024 -/* 802D5FE4 002D2F24 83 DC 00 4C */ lwz r30, 0x4c(r28) -/* 802D5FE8 002D2F28 3B A0 00 00 */ li r29, 0 -/* 802D5FEC 002D2F2C 3B E0 00 00 */ li r31, 0 -/* 802D5FF0 002D2F30 48 00 00 24 */ b lbl_802D6014 -lbl_802D5FF4: -/* 802D5FF4 002D2F34 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 802D5FF8 002D2F38 28 03 00 00 */ cmplwi r3, 0 -/* 802D5FFC 002D2F3C 41 82 00 10 */ beq lbl_802D600C -/* 802D6000 002D2F40 80 9C 00 38 */ lwz r4, 0x38(r28) -/* 802D6004 002D2F44 4B FF 84 FD */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D6008 002D2F48 93 FE 00 10 */ stw r31, 0x10(r30) -lbl_802D600C: -/* 802D600C 002D2F4C 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D6010 002D2F50 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D6014: -/* 802D6014 002D2F54 80 7C 00 44 */ lwz r3, 0x44(r28) -/* 802D6018 002D2F58 80 03 00 08 */ lwz r0, 8(r3) -/* 802D601C 002D2F5C 7C 1D 00 40 */ cmplw r29, r0 -/* 802D6020 002D2F60 41 80 FF D4 */ blt lbl_802D5FF4 -lbl_802D6024: -/* 802D6024 002D2F64 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6028 002D2F68 48 08 C1 FD */ bl _restgpr_28 -/* 802D602C 002D2F6C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6030 002D2F70 7C 08 03 A6 */ mtlr r0 -/* 802D6034 002D2F74 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6038 002D2F78 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D603C.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D603C.s deleted file mode 100644 index e52630e4a4..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D603C.s +++ /dev/null @@ -1,28 +0,0 @@ -/* removeResource__10JKRArchiveFPv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::removeResource(void *) */ -/* missing reference */ -/* 802D603C 002D2F7C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6040 002D2F80 7C 08 02 A6 */ mflr r0 -/* 802D6044 002D2F84 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6048 002D2F88 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D604C 002D2F8C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D6050 002D2F90 7C 7E 1B 78 */ mr r30, r3 -/* 802D6054 002D2F94 7C 9F 23 78 */ mr r31, r4 -/* 802D6058 002D2F98 48 00 06 DD */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D605C 002D2F9C 28 03 00 00 */ cmplwi r3, 0 -/* 802D6060 002D2FA0 40 82 00 0C */ bne lbl_802D606C -/* 802D6064 002D2FA4 38 60 00 00 */ li r3, 0 -/* 802D6068 002D2FA8 48 00 00 1C */ b lbl_802D6084 -lbl_802D606C: -/* 802D606C 002D2FAC 38 00 00 00 */ li r0, 0 -/* 802D6070 002D2FB0 90 03 00 10 */ stw r0, 0x10(r3) -/* 802D6074 002D2FB4 7F E3 FB 78 */ mr r3, r31 -/* 802D6078 002D2FB8 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D607C 002D2FBC 4B FF 84 85 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D6080 002D2FC0 38 60 00 01 */ li r3, 1 -lbl_802D6084: -/* 802D6084 002D2FC4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D6088 002D2FC8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D608C 002D2FCC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6090 002D2FD0 7C 08 03 A6 */ mtlr r0 -/* 802D6094 002D2FD4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6098 002D2FD8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D609C.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D609C.s deleted file mode 100644 index 05613e060d..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D609C.s +++ /dev/null @@ -1,19 +0,0 @@ -/* detachResource__10JKRArchiveFPv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::detachResource(void *) */ -/* missing reference */ -/* 802D609C 002D2FDC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D60A0 002D2FE0 7C 08 02 A6 */ mflr r0 -/* 802D60A4 002D2FE4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D60A8 002D2FE8 48 00 06 8D */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D60AC 002D2FEC 28 03 00 00 */ cmplwi r3, 0 -/* 802D60B0 002D2FF0 40 82 00 0C */ bne lbl_802D60BC -/* 802D60B4 002D2FF4 38 60 00 00 */ li r3, 0 -/* 802D60B8 002D2FF8 48 00 00 10 */ b lbl_802D60C8 -lbl_802D60BC: -/* 802D60BC 002D2FFC 38 00 00 00 */ li r0, 0 -/* 802D60C0 002D3000 90 03 00 10 */ stw r0, 0x10(r3) -/* 802D60C4 002D3004 38 60 00 01 */ li r3, 1 -lbl_802D60C8: -/* 802D60C8 002D3008 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D60CC 002D300C 7C 08 03 A6 */ mtlr r0 -/* 802D60D0 002D3010 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D60D4 002D3014 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D60D8.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D60D8.s deleted file mode 100644 index 59fc3320a6..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D60D8.s +++ /dev/null @@ -1,17 +0,0 @@ -/* getResSize__10JKRArchiveCFPCv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getResSize( const(void const *)) */ -/* missing reference */ -/* 802D60D8 002D3018 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D60DC 002D301C 7C 08 02 A6 */ mflr r0 -/* 802D60E0 002D3020 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D60E4 002D3024 48 00 06 51 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D60E8 002D3028 28 03 00 00 */ cmplwi r3, 0 -/* 802D60EC 002D302C 40 82 00 0C */ bne lbl_802D60F8 -/* 802D60F0 002D3030 38 60 FF FF */ li r3, -1 -/* 802D60F4 002D3034 48 00 00 08 */ b lbl_802D60FC -lbl_802D60F8: -/* 802D60F8 002D3038 80 63 00 0C */ lwz r3, 0xc(r3) -lbl_802D60FC: -/* 802D60FC 002D303C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6100 002D3040 7C 08 03 A6 */ mtlr r0 -/* 802D6104 002D3044 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6108 002D3048 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D610C.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D610C.s deleted file mode 100644 index 12851bdc00..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D610C.s +++ /dev/null @@ -1,22 +0,0 @@ -/* countResource__10JKRArchiveCFv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::countResource( const(void)) */ -/* JKRArchive_NS_countResource */ -/* 802D610C 002D304C 38 C0 00 00 */ li r6, 0 -/* 802D6110 002D3050 38 80 00 00 */ li r4, 0 -/* 802D6114 002D3054 80 A3 00 44 */ lwz r5, 0x44(r3) -/* 802D6118 002D3058 80 05 00 08 */ lwz r0, 8(r5) -/* 802D611C 002D305C 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802D6120 002D3060 7C 09 03 A6 */ mtctr r0 -/* 802D6124 002D3064 28 00 00 00 */ cmplwi r0, 0 -/* 802D6128 002D3068 40 81 00 20 */ ble lbl_802D6148 -lbl_802D612C: -/* 802D612C 002D306C 38 04 00 04 */ addi r0, r4, 4 -/* 802D6130 002D3070 7C 03 00 2E */ lwzx r0, r3, r0 -/* 802D6134 002D3074 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f -/* 802D6138 002D3078 41 82 00 08 */ beq lbl_802D6140 -/* 802D613C 002D307C 38 C6 00 01 */ addi r6, r6, 1 -lbl_802D6140: -/* 802D6140 002D3080 38 84 00 14 */ addi r4, r4, 0x14 -/* 802D6144 002D3084 42 00 FF E8 */ bdnz lbl_802D612C -lbl_802D6148: -/* 802D6148 002D3088 7C C3 33 78 */ mr r3, r6 -/* 802D614C 002D308C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D6150.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D6150.s deleted file mode 100644 index 1cb3c55f63..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D6150.s +++ /dev/null @@ -1,31 +0,0 @@ -/* countFile__10JKRArchiveCFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::countFile( const(char const *)) */ -/* missing reference */ -/* 802D6150 002D3090 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6154 002D3094 7C 08 02 A6 */ mflr r0 -/* 802D6158 002D3098 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D615C 002D309C 88 04 00 00 */ lbz r0, 0(r4) -/* 802D6160 002D30A0 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D6164 002D30A4 40 82 00 20 */ bne lbl_802D6184 -/* 802D6168 002D30A8 8C 04 00 01 */ lbzu r0, 1(r4) -/* 802D616C 002D30AC 7C 00 07 75 */ extsb. r0, r0 -/* 802D6170 002D30B0 40 82 00 08 */ bne lbl_802D6178 -/* 802D6174 002D30B4 38 80 00 00 */ li r4, 0 -lbl_802D6178: -/* 802D6178 002D30B8 38 A0 00 00 */ li r5, 0 -/* 802D617C 002D30BC 48 00 02 A1 */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D6180 002D30C0 48 00 00 0C */ b lbl_802D618C -lbl_802D6184: -/* 802D6184 002D30C4 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13) -/* 802D6188 002D30C8 48 00 02 95 */ bl findDirectory__10JKRArchiveCFPCcUl -lbl_802D618C: -/* 802D618C 002D30CC 28 03 00 00 */ cmplwi r3, 0 -/* 802D6190 002D30D0 41 82 00 0C */ beq lbl_802D619C -/* 802D6194 002D30D4 A0 63 00 0A */ lhz r3, 0xa(r3) -/* 802D6198 002D30D8 48 00 00 08 */ b lbl_802D61A0 -lbl_802D619C: -/* 802D619C 002D30DC 38 60 00 00 */ li r3, 0 -lbl_802D61A0: -/* 802D61A0 002D30E0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D61A4 002D30E4 7C 08 03 A6 */ mtlr r0 -/* 802D61A8 002D30E8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D61AC 002D30EC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D61B0.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D61B0.s deleted file mode 100644 index 9bb5485cf1..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D61B0.s +++ /dev/null @@ -1,51 +0,0 @@ -/* getFirstFile__10JKRArchiveCFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getFirstFile( const(char const *)) */ -/* missing reference */ -/* 802D61B0 002D30F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D61B4 002D30F4 7C 08 02 A6 */ mflr r0 -/* 802D61B8 002D30F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D61BC 002D30FC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D61C0 002D3100 93 C1 00 08 */ stw r30, 8(r1) -/* 802D61C4 002D3104 7C 7E 1B 78 */ mr r30, r3 -/* 802D61C8 002D3108 88 04 00 00 */ lbz r0, 0(r4) -/* 802D61CC 002D310C 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D61D0 002D3110 40 82 00 28 */ bne lbl_802D61F8 -/* 802D61D4 002D3114 8C 04 00 01 */ lbzu r0, 1(r4) -/* 802D61D8 002D3118 7C 00 07 75 */ extsb. r0, r0 -/* 802D61DC 002D311C 40 82 00 08 */ bne lbl_802D61E4 -/* 802D61E0 002D3120 38 80 00 00 */ li r4, 0 -lbl_802D61E4: -/* 802D61E4 002D3124 7F C3 F3 78 */ mr r3, r30 -/* 802D61E8 002D3128 38 A0 00 00 */ li r5, 0 -/* 802D61EC 002D312C 48 00 02 31 */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D61F0 002D3130 7C 7F 1B 78 */ mr r31, r3 -/* 802D61F4 002D3134 48 00 00 10 */ b lbl_802D6204 -lbl_802D61F8: -/* 802D61F8 002D3138 80 AD 8E A0 */ lwz r5, lbl_80451420-_SDA_BASE_(r13) -/* 802D61FC 002D313C 48 00 02 21 */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D6200 002D3140 7C 7F 1B 78 */ mr r31, r3 -lbl_802D6204: -/* 802D6204 002D3144 28 1F 00 00 */ cmplwi r31, 0 -/* 802D6208 002D3148 41 82 00 38 */ beq lbl_802D6240 -/* 802D620C 002D314C 38 60 00 24 */ li r3, 0x24 -/* 802D6210 002D3150 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D6214 002D3154 38 A0 00 00 */ li r5, 0 -/* 802D6218 002D3158 4B FF 8A 81 */ bl __nw__FUlP7JKRHeapi -/* 802D621C 002D315C 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D6220 002D3160 41 82 00 18 */ beq lbl_802D6238 -/* 802D6224 002D3164 7F C4 F3 78 */ mr r4, r30 -/* 802D6228 002D3168 80 BF 00 0C */ lwz r5, 0xc(r31) -/* 802D622C 002D316C A0 DF 00 0A */ lhz r6, 0xa(r31) -/* 802D6230 002D3170 4B FF E4 09 */ bl __ct__12JKRArcFinderFP10JKRArchivell -/* 802D6234 002D3174 7C 60 1B 78 */ mr r0, r3 -lbl_802D6238: -/* 802D6238 002D3178 7C 03 03 78 */ mr r3, r0 -/* 802D623C 002D317C 48 00 00 08 */ b lbl_802D6244 -lbl_802D6240: -/* 802D6240 002D3180 38 60 00 00 */ li r3, 0 -lbl_802D6244: -/* 802D6244 002D3184 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D6248 002D3188 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D624C 002D318C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6250 002D3190 7C 08 03 A6 */ mtlr r0 -/* 802D6254 002D3194 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6258 002D3198 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D625C.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D625C.s deleted file mode 100644 index 7efd3fe9ed..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D625C.s +++ /dev/null @@ -1,18 +0,0 @@ -/* getFileAttribute__10JKRArchiveCFUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getFileAttribute( const(unsigned long)) */ -/* JKRArchive_NS_getFileAttribute */ -/* 802D625C 002D319C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6260 002D31A0 7C 08 02 A6 */ mflr r0 -/* 802D6264 002D31A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6268 002D31A8 48 00 04 1D */ bl findIdxResource__10JKRArchiveCFUl -/* 802D626C 002D31AC 28 03 00 00 */ cmplwi r3, 0 -/* 802D6270 002D31B0 41 82 00 10 */ beq lbl_802D6280 -/* 802D6274 002D31B4 80 03 00 04 */ lwz r0, 4(r3) -/* 802D6278 002D31B8 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D627C 002D31BC 48 00 00 08 */ b lbl_802D6284 -lbl_802D6280: -/* 802D6280 002D31C0 38 60 00 00 */ li r3, 0 -lbl_802D6284: -/* 802D6284 002D31C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6288 002D31C8 7C 08 03 A6 */ mtlr r0 -/* 802D628C 002D31CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6290 002D31D0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D6294.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D6294.s deleted file mode 100644 index 4a02a69e08..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D6294.s +++ /dev/null @@ -1,44 +0,0 @@ -/* __ct__10JKRArchiveFlQ210JKRArchive10EMountMode __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::__ct(long, __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::EMountMode) */ -/* JKRArchive */ -/* 802D6294 002D31D4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D6298 002D31D8 7C 08 02 A6 */ mflr r0 -/* 802D629C 002D31DC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D62A0 002D31E0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D62A4 002D31E4 48 08 BF 39 */ bl _savegpr_29 -/* 802D62A8 002D31E8 7C 7D 1B 78 */ mr r29, r3 -/* 802D62AC 002D31EC 7C 9E 23 78 */ mr r30, r4 -/* 802D62B0 002D31F0 7C BF 2B 78 */ mr r31, r5 -/* 802D62B4 002D31F4 4B FF DE 3D */ bl __ct__13JKRFileLoaderFv -/* 802D62B8 002D31F8 3C 60 80 3D */ lis r3, lbl_803CC288@ha -/* 802D62BC 002D31FC 38 03 C2 88 */ addi r0, r3, lbl_803CC288@l -/* 802D62C0 002D3200 90 1D 00 00 */ stw r0, 0(r29) -/* 802D62C4 002D3204 38 00 00 00 */ li r0, 0 -/* 802D62C8 002D3208 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D62CC 002D320C 9B FD 00 3C */ stb r31, 0x3c(r29) -/* 802D62D0 002D3210 38 00 00 01 */ li r0, 1 -/* 802D62D4 002D3214 90 1D 00 34 */ stw r0, 0x34(r29) -/* 802D62D8 002D3218 90 1D 00 58 */ stw r0, 0x58(r29) -/* 802D62DC 002D321C 7F A3 EB 78 */ mr r3, r29 -/* 802D62E0 002D3220 4B FF 85 5D */ bl findFromRoot__7JKRHeapFPv -/* 802D62E4 002D3224 90 7D 00 38 */ stw r3, 0x38(r29) -/* 802D62E8 002D3228 80 1D 00 38 */ lwz r0, 0x38(r29) -/* 802D62EC 002D322C 28 00 00 00 */ cmplwi r0, 0 -/* 802D62F0 002D3230 40 82 00 0C */ bne lbl_802D62FC -/* 802D62F4 002D3234 80 0D 8D F4 */ lwz r0, lbl_80451374-_SDA_BASE_(r13) -/* 802D62F8 002D3238 90 1D 00 38 */ stw r0, 0x38(r29) -lbl_802D62FC: -/* 802D62FC 002D323C 93 DD 00 40 */ stw r30, 0x40(r29) -/* 802D6300 002D3240 80 0D 8E 98 */ lwz r0, lbl_80451418-_SDA_BASE_(r13) -/* 802D6304 002D3244 28 00 00 00 */ cmplwi r0, 0 -/* 802D6308 002D3248 40 82 00 10 */ bne lbl_802D6318 -/* 802D630C 002D324C 93 AD 8E 98 */ stw r29, lbl_80451418-_SDA_BASE_(r13) -/* 802D6310 002D3250 38 00 00 00 */ li r0, 0 -/* 802D6314 002D3254 90 0D 8E A0 */ stw r0, lbl_80451420-_SDA_BASE_(r13) -lbl_802D6318: -/* 802D6318 002D3258 7F A3 EB 78 */ mr r3, r29 -/* 802D631C 002D325C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6320 002D3260 48 08 BF 09 */ bl _restgpr_29 -/* 802D6324 002D3264 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6328 002D3268 7C 08 03 A6 */ mtlr r0 -/* 802D632C 002D326C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6330 002D3270 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D6334.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D6334.s deleted file mode 100644 index ab35e5f161..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D6334.s +++ /dev/null @@ -1,27 +0,0 @@ -/* __dt__10JKRArchiveFv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::__dt(void) */ -/* JKRArchive_NS_dtor */ -/* 802D6334 002D3274 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6338 002D3278 7C 08 02 A6 */ mflr r0 -/* 802D633C 002D327C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6340 002D3280 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D6344 002D3284 93 C1 00 08 */ stw r30, 8(r1) -/* 802D6348 002D3288 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D634C 002D328C 7C 9F 23 78 */ mr r31, r4 -/* 802D6350 002D3290 41 82 00 28 */ beq lbl_802D6378 -/* 802D6354 002D3294 3C 80 80 3D */ lis r4, lbl_803CC288@ha -/* 802D6358 002D3298 38 04 C2 88 */ addi r0, r4, lbl_803CC288@l -/* 802D635C 002D329C 90 1E 00 00 */ stw r0, 0(r30) -/* 802D6360 002D32A0 38 80 00 00 */ li r4, 0 -/* 802D6364 002D32A4 4B FF DD E5 */ bl __dt__13JKRFileLoaderFv -/* 802D6368 002D32A8 7F E0 07 35 */ extsh. r0, r31 -/* 802D636C 002D32AC 40 81 00 0C */ ble lbl_802D6378 -/* 802D6370 002D32B0 7F C3 F3 78 */ mr r3, r30 -/* 802D6374 002D32B4 4B FF 89 C9 */ bl __dl__FPv -lbl_802D6378: -/* 802D6378 002D32B8 7F C3 F3 78 */ mr r3, r30 -/* 802D637C 002D32BC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D6380 002D32C0 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D6384 002D32C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6388 002D32C8 7C 08 03 A6 */ mtlr r0 -/* 802D638C 002D32CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6390 002D32D0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D6394.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D6394.s deleted file mode 100644 index 7898932ad8..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D6394.s +++ /dev/null @@ -1,23 +0,0 @@ -/* isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::isSameName( const(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::CArcName &, unsigned long, unsigned short)) */ -/* JKRArchive_NS_isSameName */ -/* 802D6394 002D32D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6398 002D32D8 7C 08 02 A6 */ mflr r0 -/* 802D639C 002D32DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D63A0 002D32E0 A0 E4 00 00 */ lhz r7, 0(r4) -/* 802D63A4 002D32E4 54 C0 04 3E */ clrlwi r0, r6, 0x10 -/* 802D63A8 002D32E8 7C 07 00 40 */ cmplw r7, r0 -/* 802D63AC 002D32EC 41 82 00 0C */ beq lbl_802D63B8 -/* 802D63B0 002D32F0 38 60 00 00 */ li r3, 0 -/* 802D63B4 002D32F4 48 00 00 1C */ b lbl_802D63D0 -lbl_802D63B8: -/* 802D63B8 002D32F8 80 03 00 54 */ lwz r0, 0x54(r3) -/* 802D63BC 002D32FC 7C 60 2A 14 */ add r3, r0, r5 -/* 802D63C0 002D3300 38 84 00 04 */ addi r4, r4, 4 -/* 802D63C4 002D3304 48 09 25 D1 */ bl strcmp -/* 802D63C8 002D3308 7C 60 00 34 */ cntlzw r0, r3 -/* 802D63CC 002D330C 54 03 D9 7E */ srwi r3, r0, 5 -lbl_802D63D0: -/* 802D63D0 002D3310 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D63D4 002D3314 7C 08 03 A6 */ mtlr r0 -/* 802D63D8 002D3318 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D63DC 002D331C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D63E0.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D63E0.s deleted file mode 100644 index 9630da07df..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D63E0.s +++ /dev/null @@ -1,20 +0,0 @@ -/* findResType__10JKRArchiveCFUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findResType( const(unsigned long)) */ -/* JKRArchive_NS_findResType */ -/* 802D63E0 002D3320 80 A3 00 48 */ lwz r5, 0x48(r3) -/* 802D63E4 002D3324 80 63 00 44 */ lwz r3, 0x44(r3) -/* 802D63E8 002D3328 80 03 00 00 */ lwz r0, 0(r3) -/* 802D63EC 002D332C 7C 09 03 A6 */ mtctr r0 -/* 802D63F0 002D3330 28 00 00 00 */ cmplwi r0, 0 -/* 802D63F4 002D3334 40 81 00 20 */ ble lbl_802D6414 -lbl_802D63F8: -/* 802D63F8 002D3338 80 05 00 00 */ lwz r0, 0(r5) -/* 802D63FC 002D333C 7C 00 20 40 */ cmplw r0, r4 -/* 802D6400 002D3340 40 82 00 0C */ bne lbl_802D640C -/* 802D6404 002D3344 7C A3 2B 78 */ mr r3, r5 -/* 802D6408 002D3348 4E 80 00 20 */ blr -lbl_802D640C: -/* 802D640C 002D334C 38 A5 00 10 */ addi r5, r5, 0x10 -/* 802D6410 002D3350 42 00 FF E8 */ bdnz lbl_802D63F8 -lbl_802D6414: -/* 802D6414 002D3354 38 60 00 00 */ li r3, 0 -/* 802D6418 002D3358 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D641C.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D641C.s deleted file mode 100644 index 5d26a7a1fc..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D641C.s +++ /dev/null @@ -1,62 +0,0 @@ -/* findDirectory__10JKRArchiveCFPCcUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findDirectory( const(char const *, unsigned long)) */ -/* JKRArchive_NS_findDirectory */ -/* 802D641C 002D335C 94 21 FE D0 */ stwu r1, -0x130(r1) -/* 802D6420 002D3360 7C 08 02 A6 */ mflr r0 -/* 802D6424 002D3364 90 01 01 34 */ stw r0, 0x134(r1) -/* 802D6428 002D3368 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D642C 002D336C 48 08 BD A9 */ bl _savegpr_27 -/* 802D6430 002D3370 7C 7B 1B 78 */ mr r27, r3 -/* 802D6434 002D3374 7C BD 2B 78 */ mr r29, r5 -/* 802D6438 002D3378 28 04 00 00 */ cmplwi r4, 0 -/* 802D643C 002D337C 40 82 00 14 */ bne lbl_802D6450 -/* 802D6440 002D3380 80 7B 00 48 */ lwz r3, 0x48(r27) -/* 802D6444 002D3384 57 A0 20 36 */ slwi r0, r29, 4 -/* 802D6448 002D3388 7C 63 02 14 */ add r3, r3, r0 -/* 802D644C 002D338C 48 00 00 90 */ b lbl_802D64DC -lbl_802D6450: -/* 802D6450 002D3390 38 61 00 08 */ addi r3, r1, 8 -/* 802D6454 002D3394 38 A0 00 2F */ li r5, 0x2f -/* 802D6458 002D3398 48 00 04 2D */ bl store__Q210JKRArchive8CArcNameFPCcc -/* 802D645C 002D339C 7C 7C 1B 78 */ mr r28, r3 -/* 802D6460 002D33A0 80 7B 00 48 */ lwz r3, 0x48(r27) -/* 802D6464 002D33A4 57 A0 20 36 */ slwi r0, r29, 4 -/* 802D6468 002D33A8 7F E3 02 14 */ add r31, r3, r0 -/* 802D646C 002D33AC 80 7B 00 4C */ lwz r3, 0x4c(r27) -/* 802D6470 002D33B0 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 802D6474 002D33B4 1C 00 00 14 */ mulli r0, r0, 0x14 -/* 802D6478 002D33B8 7F C3 02 14 */ add r30, r3, r0 -/* 802D647C 002D33BC 3B A0 00 00 */ li r29, 0 -/* 802D6480 002D33C0 48 00 00 4C */ b lbl_802D64CC -lbl_802D6484: -/* 802D6484 002D33C4 7F 63 DB 78 */ mr r3, r27 -/* 802D6488 002D33C8 38 81 00 08 */ addi r4, r1, 8 -/* 802D648C 002D33CC 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D6490 002D33D0 54 05 02 3E */ clrlwi r5, r0, 8 -/* 802D6494 002D33D4 A0 DE 00 02 */ lhz r6, 2(r30) -/* 802D6498 002D33D8 4B FF FE FD */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs -/* 802D649C 002D33DC 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D64A0 002D33E0 41 82 00 24 */ beq lbl_802D64C4 -/* 802D64A4 002D33E4 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D64A8 002D33E8 54 00 47 BD */ rlwinm. r0, r0, 8, 0x1e, 0x1e -/* 802D64AC 002D33EC 41 82 00 2C */ beq lbl_802D64D8 -/* 802D64B0 002D33F0 7F 63 DB 78 */ mr r3, r27 -/* 802D64B4 002D33F4 7F 84 E3 78 */ mr r4, r28 -/* 802D64B8 002D33F8 80 BE 00 08 */ lwz r5, 8(r30) -/* 802D64BC 002D33FC 4B FF FF 61 */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D64C0 002D3400 48 00 00 1C */ b lbl_802D64DC -lbl_802D64C4: -/* 802D64C4 002D3404 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D64C8 002D3408 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D64CC: -/* 802D64CC 002D340C A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 802D64D0 002D3410 7C 1D 00 00 */ cmpw r29, r0 -/* 802D64D4 002D3414 41 80 FF B0 */ blt lbl_802D6484 -lbl_802D64D8: -/* 802D64D8 002D3418 38 60 00 00 */ li r3, 0 -lbl_802D64DC: -/* 802D64DC 002D341C 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D64E0 002D3420 48 08 BD 41 */ bl _restgpr_27 -/* 802D64E4 002D3424 80 01 01 34 */ lwz r0, 0x134(r1) -/* 802D64E8 002D3428 7C 08 03 A6 */ mtlr r0 -/* 802D64EC 002D342C 38 21 01 30 */ addi r1, r1, 0x130 -/* 802D64F0 002D3430 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D64F4.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D64F4.s deleted file mode 100644 index e540a8ed8b..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D64F4.s +++ /dev/null @@ -1,51 +0,0 @@ -/* findTypeResource__10JKRArchiveCFUlPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findTypeResource( const(unsigned long, char const *)) */ -/* JKRArchive_NS_findTypeResource */ -/* 802D64F4 002D3434 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 802D64F8 002D3438 7C 08 02 A6 */ mflr r0 -/* 802D64FC 002D343C 90 01 01 24 */ stw r0, 0x124(r1) -/* 802D6500 002D3440 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D6504 002D3444 48 08 BC D5 */ bl _savegpr_28 -/* 802D6508 002D3448 7C 7C 1B 78 */ mr r28, r3 -/* 802D650C 002D344C 7C 9D 23 79 */ or. r29, r4, r4 -/* 802D6510 002D3450 41 82 00 78 */ beq lbl_802D6588 -/* 802D6514 002D3454 38 61 00 08 */ addi r3, r1, 8 -/* 802D6518 002D3458 7C A4 2B 78 */ mr r4, r5 -/* 802D651C 002D345C 48 00 02 D9 */ bl store__Q210JKRArchive8CArcNameFPCc -/* 802D6520 002D3460 7F 83 E3 78 */ mr r3, r28 -/* 802D6524 002D3464 7F A4 EB 78 */ mr r4, r29 -/* 802D6528 002D3468 4B FF FE B9 */ bl findResType__10JKRArchiveCFUl -/* 802D652C 002D346C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D6530 002D3470 41 82 00 58 */ beq lbl_802D6588 -/* 802D6534 002D3474 80 7C 00 4C */ lwz r3, 0x4c(r28) -/* 802D6538 002D3478 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 802D653C 002D347C 1C 00 00 14 */ mulli r0, r0, 0x14 -/* 802D6540 002D3480 7F C3 02 14 */ add r30, r3, r0 -/* 802D6544 002D3484 3B A0 00 00 */ li r29, 0 -/* 802D6548 002D3488 48 00 00 34 */ b lbl_802D657C -lbl_802D654C: -/* 802D654C 002D348C 7F 83 E3 78 */ mr r3, r28 -/* 802D6550 002D3490 38 81 00 08 */ addi r4, r1, 8 -/* 802D6554 002D3494 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D6558 002D3498 54 05 02 3E */ clrlwi r5, r0, 8 -/* 802D655C 002D349C A0 DE 00 02 */ lhz r6, 2(r30) -/* 802D6560 002D34A0 4B FF FE 35 */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs -/* 802D6564 002D34A4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D6568 002D34A8 41 82 00 0C */ beq lbl_802D6574 -/* 802D656C 002D34AC 7F C3 F3 78 */ mr r3, r30 -/* 802D6570 002D34B0 48 00 00 1C */ b lbl_802D658C -lbl_802D6574: -/* 802D6574 002D34B4 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D6578 002D34B8 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D657C: -/* 802D657C 002D34BC A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 802D6580 002D34C0 7C 1D 00 00 */ cmpw r29, r0 -/* 802D6584 002D34C4 41 80 FF C8 */ blt lbl_802D654C -lbl_802D6588: -/* 802D6588 002D34C8 38 60 00 00 */ li r3, 0 -lbl_802D658C: -/* 802D658C 002D34CC 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D6590 002D34D0 48 08 BC 95 */ bl _restgpr_28 -/* 802D6594 002D34D4 80 01 01 24 */ lwz r0, 0x124(r1) -/* 802D6598 002D34D8 7C 08 03 A6 */ mtlr r0 -/* 802D659C 002D34DC 38 21 01 20 */ addi r1, r1, 0x120 -/* 802D65A0 002D34E0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D65A4.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D65A4.s deleted file mode 100644 index 20b9a0db95..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D65A4.s +++ /dev/null @@ -1,65 +0,0 @@ -/* findFsResource__10JKRArchiveCFPCcUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findFsResource( const(char const *, unsigned long)) */ -/* JKRArchive_NS_findFsResource */ -/* 802D65A4 002D34E4 94 21 FE D0 */ stwu r1, -0x130(r1) -/* 802D65A8 002D34E8 7C 08 02 A6 */ mflr r0 -/* 802D65AC 002D34EC 90 01 01 34 */ stw r0, 0x134(r1) -/* 802D65B0 002D34F0 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D65B4 002D34F4 48 08 BC 21 */ bl _savegpr_27 -/* 802D65B8 002D34F8 7C 7B 1B 78 */ mr r27, r3 -/* 802D65BC 002D34FC 7C BD 2B 78 */ mr r29, r5 -/* 802D65C0 002D3500 28 04 00 00 */ cmplwi r4, 0 -/* 802D65C4 002D3504 41 82 00 A4 */ beq lbl_802D6668 -/* 802D65C8 002D3508 38 61 00 08 */ addi r3, r1, 8 -/* 802D65CC 002D350C 38 A0 00 2F */ li r5, 0x2f -/* 802D65D0 002D3510 48 00 02 B5 */ bl store__Q210JKRArchive8CArcNameFPCcc -/* 802D65D4 002D3514 7C 7C 1B 78 */ mr r28, r3 -/* 802D65D8 002D3518 80 7B 00 48 */ lwz r3, 0x48(r27) -/* 802D65DC 002D351C 57 A0 20 36 */ slwi r0, r29, 4 -/* 802D65E0 002D3520 7F E3 02 14 */ add r31, r3, r0 -/* 802D65E4 002D3524 80 7B 00 4C */ lwz r3, 0x4c(r27) -/* 802D65E8 002D3528 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 802D65EC 002D352C 1C 00 00 14 */ mulli r0, r0, 0x14 -/* 802D65F0 002D3530 7F C3 02 14 */ add r30, r3, r0 -/* 802D65F4 002D3534 3B A0 00 00 */ li r29, 0 -/* 802D65F8 002D3538 48 00 00 64 */ b lbl_802D665C -lbl_802D65FC: -/* 802D65FC 002D353C 7F 63 DB 78 */ mr r3, r27 -/* 802D6600 002D3540 38 81 00 08 */ addi r4, r1, 8 -/* 802D6604 002D3544 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D6608 002D3548 54 05 02 3E */ clrlwi r5, r0, 8 -/* 802D660C 002D354C A0 DE 00 02 */ lhz r6, 2(r30) -/* 802D6610 002D3550 4B FF FD 85 */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs -/* 802D6614 002D3554 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D6618 002D3558 41 82 00 3C */ beq lbl_802D6654 -/* 802D661C 002D355C 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D6620 002D3560 54 00 47 BD */ rlwinm. r0, r0, 8, 0x1e, 0x1e -/* 802D6624 002D3564 41 82 00 18 */ beq lbl_802D663C -/* 802D6628 002D3568 7F 63 DB 78 */ mr r3, r27 -/* 802D662C 002D356C 7F 84 E3 78 */ mr r4, r28 -/* 802D6630 002D3570 80 BE 00 08 */ lwz r5, 8(r30) -/* 802D6634 002D3574 4B FF FF 71 */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D6638 002D3578 48 00 00 34 */ b lbl_802D666C -lbl_802D663C: -/* 802D663C 002D357C 28 1C 00 00 */ cmplwi r28, 0 -/* 802D6640 002D3580 40 82 00 0C */ bne lbl_802D664C -/* 802D6644 002D3584 7F C3 F3 78 */ mr r3, r30 -/* 802D6648 002D3588 48 00 00 24 */ b lbl_802D666C -lbl_802D664C: -/* 802D664C 002D358C 38 60 00 00 */ li r3, 0 -/* 802D6650 002D3590 48 00 00 1C */ b lbl_802D666C -lbl_802D6654: -/* 802D6654 002D3594 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D6658 002D3598 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D665C: -/* 802D665C 002D359C A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 802D6660 002D35A0 7C 1D 00 00 */ cmpw r29, r0 -/* 802D6664 002D35A4 41 80 FF 98 */ blt lbl_802D65FC -lbl_802D6668: -/* 802D6668 002D35A8 38 60 00 00 */ li r3, 0 -lbl_802D666C: -/* 802D666C 002D35AC 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D6670 002D35B0 48 08 BB B1 */ bl _restgpr_27 -/* 802D6674 002D35B4 80 01 01 34 */ lwz r0, 0x134(r1) -/* 802D6678 002D35B8 7C 08 03 A6 */ mtlr r0 -/* 802D667C 002D35BC 38 21 01 30 */ addi r1, r1, 0x130 -/* 802D6680 002D35C0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D6684.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D6684.s deleted file mode 100644 index d857ad4ff7..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D6684.s +++ /dev/null @@ -1,13 +0,0 @@ -/* findIdxResource__10JKRArchiveCFUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findIdxResource( const(unsigned long)) */ -/* JKRArchive_NS_findIdxResource */ -/* 802D6684 002D35C4 80 A3 00 44 */ lwz r5, 0x44(r3) -/* 802D6688 002D35C8 80 05 00 08 */ lwz r0, 8(r5) -/* 802D668C 002D35CC 7C 04 00 40 */ cmplw r4, r0 -/* 802D6690 002D35D0 40 80 00 14 */ bge lbl_802D66A4 -/* 802D6694 002D35D4 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802D6698 002D35D8 1C 04 00 14 */ mulli r0, r4, 0x14 -/* 802D669C 002D35DC 7C 63 02 14 */ add r3, r3, r0 -/* 802D66A0 002D35E0 4E 80 00 20 */ blr -lbl_802D66A4: -/* 802D66A4 002D35E4 38 60 00 00 */ li r3, 0 -/* 802D66A8 002D35E8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D66AC.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D66AC.s deleted file mode 100644 index 00095ab4e2..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D66AC.s +++ /dev/null @@ -1,40 +0,0 @@ -/* findNameResource__10JKRArchiveCFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findNameResource( const(char const *)) */ -/* JKRArchive_NS_findNameResource */ -/* 802D66AC 002D35EC 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 802D66B0 002D35F0 7C 08 02 A6 */ mflr r0 -/* 802D66B4 002D35F4 90 01 01 24 */ stw r0, 0x124(r1) -/* 802D66B8 002D35F8 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D66BC 002D35FC 48 08 BB 1D */ bl _savegpr_28 -/* 802D66C0 002D3600 7C 7C 1B 78 */ mr r28, r3 -/* 802D66C4 002D3604 83 C3 00 4C */ lwz r30, 0x4c(r3) -/* 802D66C8 002D3608 38 61 00 08 */ addi r3, r1, 8 -/* 802D66CC 002D360C 48 00 01 29 */ bl store__Q210JKRArchive8CArcNameFPCc -/* 802D66D0 002D3610 3B A0 00 00 */ li r29, 0 -/* 802D66D4 002D3614 83 FC 00 44 */ lwz r31, 0x44(r28) -/* 802D66D8 002D3618 48 00 00 34 */ b lbl_802D670C -lbl_802D66DC: -/* 802D66DC 002D361C 7F 83 E3 78 */ mr r3, r28 -/* 802D66E0 002D3620 38 81 00 08 */ addi r4, r1, 8 -/* 802D66E4 002D3624 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D66E8 002D3628 54 05 02 3E */ clrlwi r5, r0, 8 -/* 802D66EC 002D362C A0 DE 00 02 */ lhz r6, 2(r30) -/* 802D66F0 002D3630 4B FF FC A5 */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs -/* 802D66F4 002D3634 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D66F8 002D3638 41 82 00 0C */ beq lbl_802D6704 -/* 802D66FC 002D363C 7F C3 F3 78 */ mr r3, r30 -/* 802D6700 002D3640 48 00 00 1C */ b lbl_802D671C -lbl_802D6704: -/* 802D6704 002D3644 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D6708 002D3648 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D670C: -/* 802D670C 002D364C 80 1F 00 08 */ lwz r0, 8(r31) -/* 802D6710 002D3650 7C 1D 00 40 */ cmplw r29, r0 -/* 802D6714 002D3654 41 80 FF C8 */ blt lbl_802D66DC -/* 802D6718 002D3658 38 60 00 00 */ li r3, 0 -lbl_802D671C: -/* 802D671C 002D365C 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D6720 002D3660 48 08 BB 05 */ bl _restgpr_28 -/* 802D6724 002D3664 80 01 01 24 */ lwz r0, 0x124(r1) -/* 802D6728 002D3668 7C 08 03 A6 */ mtlr r0 -/* 802D672C 002D366C 38 21 01 20 */ addi r1, r1, 0x120 -/* 802D6730 002D3670 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D6734.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D6734.s deleted file mode 100644 index 05f4a4e0df..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D6734.s +++ /dev/null @@ -1,20 +0,0 @@ -/* findPtrResource__10JKRArchiveCFPCv __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findPtrResource( const(void const *)) */ -/* JKRArchive_NS_findPtrResource */ -/* 802D6734 002D3674 80 A3 00 4C */ lwz r5, 0x4c(r3) -/* 802D6738 002D3678 80 63 00 44 */ lwz r3, 0x44(r3) -/* 802D673C 002D367C 80 03 00 08 */ lwz r0, 8(r3) -/* 802D6740 002D3680 7C 09 03 A6 */ mtctr r0 -/* 802D6744 002D3684 28 00 00 00 */ cmplwi r0, 0 -/* 802D6748 002D3688 40 81 00 20 */ ble lbl_802D6768 -lbl_802D674C: -/* 802D674C 002D368C 80 05 00 10 */ lwz r0, 0x10(r5) -/* 802D6750 002D3690 7C 00 20 40 */ cmplw r0, r4 -/* 802D6754 002D3694 40 82 00 0C */ bne lbl_802D6760 -/* 802D6758 002D3698 7C A3 2B 78 */ mr r3, r5 -/* 802D675C 002D369C 4E 80 00 20 */ blr -lbl_802D6760: -/* 802D6760 002D36A0 38 A5 00 14 */ addi r5, r5, 0x14 -/* 802D6764 002D36A4 42 00 FF E8 */ bdnz lbl_802D674C -lbl_802D6768: -/* 802D6768 002D36A8 38 60 00 00 */ li r3, 0 -/* 802D676C 002D36AC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D6770.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D6770.s deleted file mode 100644 index a53ae09ec5..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D6770.s +++ /dev/null @@ -1,39 +0,0 @@ -/* findIdResource__10JKRArchiveCFUs __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::findIdResource( const(unsigned short)) */ -/* JKRArchive_NS_findIdResource */ -/* 802D6770 002D36B0 54 86 04 3E */ clrlwi r6, r4, 0x10 -/* 802D6774 002D36B4 28 06 FF FF */ cmplwi r6, 0xffff -/* 802D6778 002D36B8 41 82 00 74 */ beq lbl_802D67EC -/* 802D677C 002D36BC 80 A3 00 44 */ lwz r5, 0x44(r3) -/* 802D6780 002D36C0 80 E5 00 08 */ lwz r7, 8(r5) -/* 802D6784 002D36C4 7C 06 38 40 */ cmplw r6, r7 -/* 802D6788 002D36C8 40 80 00 30 */ bge lbl_802D67B8 -/* 802D678C 002D36CC 80 A3 00 4C */ lwz r5, 0x4c(r3) -/* 802D6790 002D36D0 1C 06 00 14 */ mulli r0, r6, 0x14 -/* 802D6794 002D36D4 7C A5 02 14 */ add r5, r5, r0 -/* 802D6798 002D36D8 A0 05 00 00 */ lhz r0, 0(r5) -/* 802D679C 002D36DC 7C 00 30 40 */ cmplw r0, r6 -/* 802D67A0 002D36E0 40 82 00 18 */ bne lbl_802D67B8 -/* 802D67A4 002D36E4 80 05 00 04 */ lwz r0, 4(r5) -/* 802D67A8 002D36E8 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f -/* 802D67AC 002D36EC 41 82 00 0C */ beq lbl_802D67B8 -/* 802D67B0 002D36F0 7C A3 2B 78 */ mr r3, r5 -/* 802D67B4 002D36F4 4E 80 00 20 */ blr -lbl_802D67B8: -/* 802D67B8 002D36F8 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802D67BC 002D36FC 54 84 04 3E */ clrlwi r4, r4, 0x10 -/* 802D67C0 002D3700 7C E9 03 A6 */ mtctr r7 -/* 802D67C4 002D3704 28 07 00 00 */ cmplwi r7, 0 -/* 802D67C8 002D3708 40 81 00 24 */ ble lbl_802D67EC -lbl_802D67CC: -/* 802D67CC 002D370C A0 03 00 00 */ lhz r0, 0(r3) -/* 802D67D0 002D3710 7C 00 20 40 */ cmplw r0, r4 -/* 802D67D4 002D3714 40 82 00 10 */ bne lbl_802D67E4 -/* 802D67D8 002D3718 80 03 00 04 */ lwz r0, 4(r3) -/* 802D67DC 002D371C 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f -/* 802D67E0 002D3720 4C 82 00 20 */ bnelr -lbl_802D67E4: -/* 802D67E4 002D3724 38 63 00 14 */ addi r3, r3, 0x14 -/* 802D67E8 002D3728 42 00 FF E4 */ bdnz lbl_802D67CC -lbl_802D67EC: -/* 802D67EC 002D372C 38 60 00 00 */ li r3, 0 -/* 802D67F0 002D3730 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D67F4.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D67F4.s deleted file mode 100644 index 65e01fd66e..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D67F4.s +++ /dev/null @@ -1,41 +0,0 @@ -/* store__Q210JKRArchive8CArcNameFPCc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::CArcName::store( (char const *)) */ -/* JKRArchive_NS_CArcName_NS_store */ -/* 802D67F4 002D3734 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D67F8 002D3738 7C 08 02 A6 */ mflr r0 -/* 802D67FC 002D373C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D6800 002D3740 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6804 002D3744 48 08 B9 D9 */ bl _savegpr_29 -/* 802D6808 002D3748 7C 7D 1B 78 */ mr r29, r3 -/* 802D680C 002D374C 7C 9E 23 78 */ mr r30, r4 -/* 802D6810 002D3750 38 00 00 00 */ li r0, 0 -/* 802D6814 002D3754 B0 03 00 00 */ sth r0, 0(r3) -/* 802D6818 002D3758 3B E0 00 00 */ li r31, 0 -/* 802D681C 002D375C 48 00 00 34 */ b lbl_802D6850 -lbl_802D6820: -/* 802D6820 002D3760 7C 63 07 74 */ extsb r3, r3 -/* 802D6824 002D3764 48 08 EC 4D */ bl func_80365470 -/* 802D6828 002D3768 A0 1D 00 00 */ lhz r0, 0(r29) -/* 802D682C 002D376C 1C 00 00 03 */ mulli r0, r0, 3 -/* 802D6830 002D3770 7C 03 02 14 */ add r0, r3, r0 -/* 802D6834 002D3774 B0 1D 00 00 */ sth r0, 0(r29) -/* 802D6838 002D3778 2C 1F 01 00 */ cmpwi r31, 0x100 -/* 802D683C 002D377C 40 80 00 10 */ bge lbl_802D684C -/* 802D6840 002D3780 38 1F 00 04 */ addi r0, r31, 4 -/* 802D6844 002D3784 7C 7D 01 AE */ stbx r3, r29, r0 -/* 802D6848 002D3788 3B FF 00 01 */ addi r31, r31, 1 -lbl_802D684C: -/* 802D684C 002D378C 3B DE 00 01 */ addi r30, r30, 1 -lbl_802D6850: -/* 802D6850 002D3790 88 7E 00 00 */ lbz r3, 0(r30) -/* 802D6854 002D3794 7C 60 07 75 */ extsb. r0, r3 -/* 802D6858 002D3798 40 82 FF C8 */ bne lbl_802D6820 -/* 802D685C 002D379C B3 FD 00 02 */ sth r31, 2(r29) -/* 802D6860 002D37A0 38 00 00 00 */ li r0, 0 -/* 802D6864 002D37A4 7C 7D FA 14 */ add r3, r29, r31 -/* 802D6868 002D37A8 98 03 00 04 */ stb r0, 4(r3) -/* 802D686C 002D37AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6870 002D37B0 48 08 B9 B9 */ bl _restgpr_29 -/* 802D6874 002D37B4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6878 002D37B8 7C 08 03 A6 */ mtlr r0 -/* 802D687C 002D37BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6880 002D37C0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D6884.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D6884.s deleted file mode 100644 index f22b480dce..0000000000 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D6884.s +++ /dev/null @@ -1,54 +0,0 @@ -/* store__Q210JKRArchive8CArcNameFPCcc __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::CArcName::store( (char const *, char)) */ -/* JKRArchive_NS_CArcName_NS_store_X1_ */ -/* 802D6884 002D37C4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D6888 002D37C8 7C 08 02 A6 */ mflr r0 -/* 802D688C 002D37CC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D6890 002D37D0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6894 002D37D4 48 08 B9 45 */ bl _savegpr_28 -/* 802D6898 002D37D8 7C 7C 1B 78 */ mr r28, r3 -/* 802D689C 002D37DC 7C 9D 23 78 */ mr r29, r4 -/* 802D68A0 002D37E0 38 00 00 00 */ li r0, 0 -/* 802D68A4 002D37E4 B0 03 00 00 */ sth r0, 0(r3) -/* 802D68A8 002D37E8 3B C0 00 00 */ li r30, 0 -/* 802D68AC 002D37EC 7C BF 07 74 */ extsb r31, r5 -/* 802D68B0 002D37F0 48 00 00 34 */ b lbl_802D68E4 -lbl_802D68B4: -/* 802D68B4 002D37F4 7C 63 07 74 */ extsb r3, r3 -/* 802D68B8 002D37F8 48 08 EB B9 */ bl func_80365470 -/* 802D68BC 002D37FC A0 1C 00 00 */ lhz r0, 0(r28) -/* 802D68C0 002D3800 1C 00 00 03 */ mulli r0, r0, 3 -/* 802D68C4 002D3804 7C 03 02 14 */ add r0, r3, r0 -/* 802D68C8 002D3808 B0 1C 00 00 */ sth r0, 0(r28) -/* 802D68CC 002D380C 2C 1E 01 00 */ cmpwi r30, 0x100 -/* 802D68D0 002D3810 40 80 00 10 */ bge lbl_802D68E0 -/* 802D68D4 002D3814 38 1E 00 04 */ addi r0, r30, 4 -/* 802D68D8 002D3818 7C 7C 01 AE */ stbx r3, r28, r0 -/* 802D68DC 002D381C 3B DE 00 01 */ addi r30, r30, 1 -lbl_802D68E0: -/* 802D68E0 002D3820 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D68E4: -/* 802D68E4 002D3824 88 7D 00 00 */ lbz r3, 0(r29) -/* 802D68E8 002D3828 7C 60 07 75 */ extsb. r0, r3 -/* 802D68EC 002D382C 41 82 00 10 */ beq lbl_802D68FC -/* 802D68F0 002D3830 7C 60 07 74 */ extsb r0, r3 -/* 802D68F4 002D3834 7C 00 F8 00 */ cmpw r0, r31 -/* 802D68F8 002D3838 40 82 FF BC */ bne lbl_802D68B4 -lbl_802D68FC: -/* 802D68FC 002D383C B3 DC 00 02 */ sth r30, 2(r28) -/* 802D6900 002D3840 38 00 00 00 */ li r0, 0 -/* 802D6904 002D3844 7C 7C F2 14 */ add r3, r28, r30 -/* 802D6908 002D3848 98 03 00 04 */ stb r0, 4(r3) -/* 802D690C 002D384C 88 1D 00 00 */ lbz r0, 0(r29) -/* 802D6910 002D3850 7C 00 07 75 */ extsb. r0, r0 -/* 802D6914 002D3854 40 82 00 0C */ bne lbl_802D6920 -/* 802D6918 002D3858 38 60 00 00 */ li r3, 0 -/* 802D691C 002D385C 48 00 00 08 */ b lbl_802D6924 -lbl_802D6920: -/* 802D6920 002D3860 38 7D 00 01 */ addi r3, r29, 1 -lbl_802D6924: -/* 802D6924 002D3864 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6928 002D3868 48 08 B8 FD */ bl _restgpr_28 -/* 802D692C 002D386C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6930 002D3870 7C 08 03 A6 */ mtlr r0 -/* 802D6934 002D3874 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6938 002D3878 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D693C.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D693C.s index 4e4498021f..eab9eaef13 100644 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D693C.s +++ b/include/JSystem/JKernel/JKRArchive/asm/func_802D693C.s @@ -1,4 +1,4 @@ -/* setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::setExpandSize(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDIFileEntry *, unsigned long) */ +/* setExpandSize__10JKRArchiveFP12SDIFileEntryUl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::setExpandSize(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDIFileEntry *, unsigned long) */ /* missing reference */ /* 802D693C 002D387C 80 03 00 4C */ lwz r0, 0x4c(r3) /* 802D6940 002D3880 7C 80 20 50 */ subf r4, r0, r4 diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D6978.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D6978.s index 3c17fb2fce..a1bf66f9bc 100644 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D6978.s +++ b/include/JSystem/JKernel/JKRArchive/asm/func_802D6978.s @@ -1,4 +1,4 @@ -/* getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getExpandSize( const(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDIFileEntry *)) */ +/* getExpandSize__10JKRArchiveCFP12SDIFileEntry __ct__10JKRArchiveFlQ210JKRArchive10EMountMode::getExpandSize( const(__ct__10JKRArchiveFlQ210JKRArchive10EMountMode::SDIFileEntry *)) */ /* missing reference */ /* 802D6978 002D38B8 80 03 00 4C */ lwz r0, 0x4c(r3) /* 802D697C 002D38BC 7C 80 20 50 */ subf r4, r0, r4 diff --git a/include/JSystem/JKernel/JKRCompArchive/JKRCompArchive.h b/include/JSystem/JKernel/JKRCompArchive/JKRCompArchive.h index 0c916b0cb0..e2fbba61d5 100644 --- a/include/JSystem/JKernel/JKRCompArchive/JKRCompArchive.h +++ b/include/JSystem/JKernel/JKRCompArchive/JKRCompArchive.h @@ -14,11 +14,15 @@ public: /* vt[09] */ void removeResourceAll(void); /* override */ /* vt[10] */ bool removeResource(void*); /* override */ - /* vt[15] */ void getExpandedResSize(void const*) const; /* override */ - /* vt[16] */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */ - /* vt[17] */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */ + /* vt[15] */ void getExpandedResSize(void const*) const; /* override */ + /* vt[16] */ void* fetchResource(SDIFileEntry*, u32*); /* override */ + /* vt[17] */ void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */ public: +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRArchive + u8 unk[36]; }; #endif diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s index f8e8c81c05..a5349e1e9d 100644 --- a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s @@ -1,4 +1,4 @@ -/* fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ +/* fetchResource__14JKRCompArchiveFP12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ /* missing reference */ /* 802D8F40 002D5E80 94 21 FF D0 */ stwu r1, -0x30(r1) /* 802D8F44 002D5E84 7C 08 02 A6 */ mflr r0 diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s index 5ec6b4dd16..0574a10ed0 100644 --- a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s @@ -1,4 +1,4 @@ -/* fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ +/* fetchResource__14JKRCompArchiveFPvUlP12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ /* missing reference */ /* 802D90C0 002D6000 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802D90C4 002D6004 7C 08 02 A6 */ mflr r0 diff --git a/include/JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h b/include/JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h index d98893a817..cf812512bb 100644 --- a/include/JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h +++ b/include/JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h @@ -11,14 +11,18 @@ public: void open(long); - /* vt[15] */ virtual void getExpandedResSize(void const*) const; /* override */ - /* vt[16] */ virtual void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */ - /* vt[17] */ virtual void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, - u32*); /* override */ + /* vt[15] */ virtual void getExpandedResSize(void const*) const; /* override */ + /* vt[16] */ virtual void* fetchResource(SDIFileEntry*, u32*); /* override */ + /* vt[17] */ virtual void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */ public: static void fetchResource_subroutine(long, u32, u32, u8*, u32, int, int); static void fetchResource_subroutine(long, u32, u32, JKRHeap*, int, int, u8**); + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRArchive + u8 unk[16]; }; #endif diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s index 6189fe641f..8e793ae490 100644 --- a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s @@ -1,4 +1,4 @@ -/* fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ +/* fetchResource__13JKRDvdArchiveFP12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ /* missing reference */ /* 802D8050 002D4F90 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802D8054 002D4F94 7C 08 02 A6 */ mflr r0 diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s index 083955f69f..aa0b28cf43 100644 --- a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s @@ -1,4 +1,4 @@ -/* fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ +/* fetchResource__13JKRDvdArchiveFPvUlP12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ /* missing reference */ /* 802D8168 002D50A8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802D816C 002D50AC 7C 08 02 A6 */ mflr r0 diff --git a/include/JSystem/JKernel/JKRFileCache/asm/func_802D5624.s b/include/JSystem/JKernel/JKRFileCache/asm/func_802D5624.s index a677af279f..b05f063066 100644 --- a/include/JSystem/JKernel/JKRFileCache/asm/func_802D5624.s +++ b/include/JSystem/JKernel/JKRFileCache/asm/func_802D5624.s @@ -8,7 +8,7 @@ /* 802D5638 002D2578 48 00 00 14 */ b lbl_802D564C lbl_802D563C: /* 802D563C 002D257C 7C 63 07 74 */ extsb r3, r3 -/* 802D5640 002D2580 48 08 FE 31 */ bl func_80365470 +/* 802D5640 002D2580 48 08 FE 31 */ bl tolower /* 802D5644 002D2584 98 7F 00 00 */ stb r3, 0(r31) /* 802D5648 002D2588 3B FF 00 01 */ addi r31, r31, 1 lbl_802D564C: diff --git a/include/JSystem/JKernel/JKRFileFinder/JKRFileFinder.h b/include/JSystem/JKernel/JKRFileFinder/JKRFileFinder.h index 8a761374f7..dafbb1e781 100644 --- a/include/JSystem/JKernel/JKRFileFinder/JKRFileFinder.h +++ b/include/JSystem/JKernel/JKRFileFinder/JKRFileFinder.h @@ -37,7 +37,7 @@ protected: class JKRArchive; class JKRArcFinder : public JKRFileFinder { public: - JKRArcFinder(JKRArchive*, long, long); + JKRArcFinder(JKRArchive*, s32, u32); virtual ~JKRArcFinder(); public: diff --git a/include/JSystem/JKernel/JKRFileFinder/asm/func_802D46C4.s b/include/JSystem/JKernel/JKRFileFinder/asm/func_802D46C4.s index 8a66216ab2..170ee5cc2e 100644 --- a/include/JSystem/JKernel/JKRFileFinder/asm/func_802D46C4.s +++ b/include/JSystem/JKernel/JKRFileFinder/asm/func_802D46C4.s @@ -21,7 +21,7 @@ /* 802D470C 002D164C 80 7F 00 14 */ lwz r3, 0x14(r31) /* 802D4710 002D1650 38 81 00 08 */ addi r4, r1, 8 /* 802D4714 002D1654 80 BF 00 20 */ lwz r5, 0x20(r31) -/* 802D4718 002D1658 48 00 13 A9 */ bl getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl +/* 802D4718 002D1658 48 00 13 A9 */ bl getDirEntry__10JKRArchiveCFP9SDirEntryUl /* 802D471C 002D165C 98 7F 00 10 */ stb r3, 0x10(r31) /* 802D4720 002D1660 80 01 00 0C */ lwz r0, 0xc(r1) /* 802D4724 002D1664 90 1F 00 00 */ stw r0, 0(r31) diff --git a/include/JSystem/JKernel/JKRFileLoader/JKRFileLoader.h b/include/JSystem/JKernel/JKRFileLoader/JKRFileLoader.h index fd49169d5e..bc0ce82cd8 100644 --- a/include/JSystem/JKernel/JKRFileLoader/JKRFileLoader.h +++ b/include/JSystem/JKernel/JKRFileLoader/JKRFileLoader.h @@ -4,6 +4,11 @@ #include "JSystem/JKernel/JKRDisposer/JKRDisposer.h" #include "dolphin/types.h" +class JKRFileLoader; +extern JKRFileLoader* lbl_80451418; // JKRFileLoader::sCurrentVolume +extern JSUList lbl_80434354; // JKRFileLoader::sVolumeList + +class JKRArcFinder; class JKRFileLoader : public JKRDisposer { public: JKRFileLoader(void); @@ -15,19 +20,19 @@ public: public: /* vt[03] */ virtual void unmount(void); - /* vt[04] */ virtual void becomeCurrent(char const*) = 0; - /* vt[05] */ virtual void* getResource(char const*) = 0; - /* vt[06] */ virtual void* getResource(u32, char const*) = 0; - /* vt[07] */ virtual void readResource(void*, u32, char const*) = 0; - /* vt[08] */ virtual void readResource(void*, u32, u32, char const*) = 0; + /* vt[04] */ virtual bool becomeCurrent(const char*) = 0; + /* vt[05] */ virtual void* getResource(const char*) = 0; + /* vt[06] */ virtual void* getResource(u32, const char*) = 0; + /* vt[07] */ virtual u32 readResource(void*, u32, const char*) = 0; + /* vt[08] */ virtual u32 readResource(void*, u32, u32, const char*) = 0; /* vt[09] */ virtual void removeResourceAll(void) = 0; /* vt[10] */ virtual bool removeResource(void*) = 0; /* vt[11] */ virtual bool detachResource(void*) = 0; - /* vt[12] */ virtual void getResSize(void const*) const = 0; - /* vt[13] */ virtual void countFile(char const*) const = 0; - /* vt[14] */ virtual void getFirstFile(char const*) const = 0; + /* vt[12] */ virtual u32 getResSize(const void*) const = 0; + /* vt[13] */ virtual u32 countFile(const char*) const = 0; + /* vt[14] */ virtual JKRArcFinder* getFirstFile(const char*) const = 0; -private: +protected: /* 0x00 */ // vtable /* 0x04 */ // JKRDisposer /* 0x18 */ JSULink mFileLoaderLink; @@ -44,6 +49,10 @@ public: static bool detachResource(void*, JKRFileLoader*); static JKRFileLoader* findVolume(char const**); static const char* fetchVolumeName(char*, long, char const*); + + static JKRFileLoader* getCurrentVolume() { return lbl_80451418; } + static void setCurrentVolume(JKRFileLoader* fileLoader) { lbl_80451418 = fileLoader; } + static JSUList& getVolumeList() { return lbl_80434354; } }; #endif diff --git a/include/JSystem/JKernel/JKRMemArchive/JKRMemArchive.h b/include/JSystem/JKernel/JKRMemArchive/JKRMemArchive.h index 1ded125e63..e3b698b0a9 100644 --- a/include/JSystem/JKernel/JKRMemArchive/JKRMemArchive.h +++ b/include/JSystem/JKernel/JKRMemArchive/JKRMemArchive.h @@ -5,6 +5,7 @@ #include "dolphin/types.h" enum JKRMemBreakFlag { + JKRMEMBREAK_FLAG_UNKNOWN0 = 0, _JKRMemBreakFlag_PADDING_32BIT = 0xFFFFFFFF, }; @@ -20,12 +21,17 @@ public: /* vt[09] */ void removeResourceAll(void); /* override */ /* vt[10] */ bool removeResource(void*); /* override */ - /* vt[15] */ void getExpandedResSize(void const*) const; /* override */ - /* vt[16] */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */ - /* vt[17] */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */ + /* vt[15] */ void getExpandedResSize(void const*) const; /* override */ + /* vt[16] */ void* fetchResource(SDIFileEntry*, u32*); /* override */ + /* vt[17] */ void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */ public: static void fetchResource_subroutine(u8*, u32, u8*, u32, int); + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRArchive + u8 unk[20]; }; #endif diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s index ed7c5c0d64..6cc00990ae 100644 --- a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s @@ -1,4 +1,4 @@ -/* fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ +/* fetchResource__13JKRMemArchiveFP12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ /* missing reference */ /* 802D6DDC 002D3D1C 80 04 00 10 */ lwz r0, 0x10(r4) /* 802D6DE0 002D3D20 28 00 00 00 */ cmplwi r0, 0 diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s index 5464766f70..129a0744e3 100644 --- a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s @@ -1,4 +1,4 @@ -/* fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ +/* fetchResource__13JKRMemArchiveFPvUlP12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ /* missing reference */ /* 802D6E10 002D3D50 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802D6E14 002D3D54 7C 08 02 A6 */ mflr r0 diff --git a/include/dvd/dvd.h b/include/dvd/dvd.h index 927b1e2a99..292046f770 100644 --- a/include/dvd/dvd.h +++ b/include/dvd/dvd.h @@ -77,7 +77,7 @@ void DVDGetCurrentDiskID(void); s32 DVDFastOpen(long, DVDFileInfo*); int DVDGetCommandBlockStatus(DVDCommandBlock*); s32 DVDReadAsyncPrio(DVDFileInfo*, void*, long, long, DVDCallback, long); -void DVDConvertPathToEntrynum(void); +s32 DVDConvertPathToEntrynum(const char*); DVDState DVDGetDriveStatus(void); s32 DVDCheckDisk(void); diff --git a/include/functions.h b/include/functions.h index a4693b327b..d6a5f56f2e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -156,7 +156,7 @@ void JUTWarningConsole_f(void); void VIWaitForRetrace(void); void func_80361C24(void); void memcpy(void*, void*, int); -void func_80365470(void); +int tolower(int); void func_803688DC(void); void func_80368ABC(void); void func_80368BE4(void); @@ -169,8 +169,6 @@ void JKRArchive_NS_findIdxResource(void); void JKRArchive_NS_findNameResource(void); void JKRArchive_NS_findPtrResource(void); void JKRArchive_NS_findTypeResource(void); -void JKRCompArchive(void); -void func_80365470(void); void DCStoreRange(void*, u32); void DCInvalidateRange(void*, u32); void DCStoreRangeNoSync(void); @@ -376,7 +374,6 @@ void JUTWarningConsole_f(void); void func_80361C24(void); -void func_80365470(void); void func_803688DC(void); void func_80368ABC(void); void func_80368BE4(void); @@ -392,9 +389,6 @@ void JKRArchive_NS_findIdxResource(void); void JKRArchive_NS_findNameResource(void); void JKRArchive_NS_findPtrResource(void); void JKRArchive_NS_findTypeResource(void); -void JKRCompArchive(void); - -void func_80365470(void); void JKRDvdRipper_NS_loadToMainRAM_X1_(void); void func_80003458(void); @@ -870,7 +864,7 @@ void check_mount_already__10JKRArchiveFlP7JKRHeap(void); void countFile__10JKRArchiveCFPCc(void); void countResource__10JKRArchiveCFv(void); void detachResource__10JKRArchiveFPv(void); -void getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl(void); +void getDirEntry__10JKRArchiveCFP9SDirEntryUl(void); void getFileAttribute__10JKRArchiveCFUl(void); void getFirstFile__10JKRArchiveCFPCc(void); void getGlbResource__10JKRArchiveFUlPCcP10JKRArchive(void); @@ -903,9 +897,9 @@ void findNameResource__10JKRArchiveCFPCc(void); void findPtrResource__10JKRArchiveCFPCv(void); void findResType__10JKRArchiveCFUl(void); void findTypeResource__10JKRArchiveCFUlPCc(void); -void getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry(void); +void getExpandSize__10JKRArchiveCFP12SDIFileEntry(void); void isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs(void); -void setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl(void); +void setExpandSize__10JKRArchiveFP12SDIFileEntryUl(void); void store__Q210JKRArchive8CArcNameFPCc(void); void store__Q210JKRArchive8CArcNameFPCcc(void); }; @@ -914,8 +908,8 @@ void store__Q210JKRArchive8CArcNameFPCcc(void); extern "C" { void __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection(void); void __dt__13JKRDvdArchiveFv(void); -void fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl(void); -void fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void); +void fetchResource__13JKRDvdArchiveFP12SDIFileEntryPUl(void); +void fetchResource__13JKRDvdArchiveFPvUlP12SDIFileEntryPUl(void); void fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc(void); void fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii(void); void getExpandedResSize__13JKRDvdArchiveCFPCv(void); @@ -927,8 +921,8 @@ extern "C" { void __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag(void); void __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection(void); void __dt__13JKRMemArchiveFv(void); -void fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl(void); -void fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void); +void fetchResource__13JKRMemArchiveFP12SDIFileEntryPUl(void); +void fetchResource__13JKRMemArchiveFPvUlP12SDIFileEntryPUl(void); void fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli(void); void getExpandedResSize__13JKRMemArchiveCFPCv(void); void open__13JKRMemArchiveFPvUl15JKRMemBreakFlag(void); @@ -942,11 +936,11 @@ extern "C" { void __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection(void); void __dt__14JKRAramArchiveFv(void); void __dt__7JKRFileFv(void); -void fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl(void); -void fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void); +void fetchResource__14JKRAramArchiveFP12SDIFileEntryPUl(void); +void fetchResource__14JKRAramArchiveFPvUlP12SDIFileEntryPUl(void); void fetchResource_subroutine__14JKRAramArchiveFUlUlP7JKRHeapiPPUc(void); void fetchResource_subroutine__14JKRAramArchiveFUlUlPUcUli(void); -void getAramAddress_Entry__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntry(void); +void getAramAddress_Entry__14JKRAramArchiveFP12SDIFileEntry(void); void getAramAddress__14JKRAramArchiveFPCc(void); void getExpandedResSize__14JKRAramArchiveCFPCv(void); void open__14JKRAramArchiveFl(void); @@ -956,8 +950,8 @@ void open__14JKRAramArchiveFl(void); extern "C" { void __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection(void); void __dt__14JKRCompArchiveFv(void); -void fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl(void); -void fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void); +void fetchResource__14JKRCompArchiveFP12SDIFileEntryPUl(void); +void fetchResource__14JKRCompArchiveFPvUlP12SDIFileEntryPUl(void); void getExpandedResSize__14JKRCompArchiveCFPCv(void); void open__14JKRCompArchiveFl(void); void removeResourceAll__14JKRCompArchiveFv(void); diff --git a/include/variables.h b/include/variables.h index 6b8c6db5f8..f21c50a74d 100644 --- a/include/variables.h +++ b/include/variables.h @@ -240,7 +240,7 @@ extern double lbl_80455FB8; // JKernel::@697 = 4.50359962737049 extern u8 lbl_8039CE50; // "allocFromHead: cannot alloc memory (0x%x byte).\n" extern double lbl_80455FB0; // JKernel::@695 = 4.503601774854144E15 extern float lbl_80455FA8; // JKernel::@693 = 100.0 -extern u8 lbl_80451420; // JKRArchive::sCurrentDirID +extern u32 lbl_80451420; // JKRArchive::sCurrentDirID extern u8 lbl_803CC288; // JKRArchive::__vt // d_item diff --git a/ldscript.lcf b/ldscript.lcf index bf73e58582..9bd387494b 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -897,8 +897,8 @@ readResource__10JKRArchiveFPvUlPCc readResource__10JKRArchiveFPvUlUlPCc removeResourceAll__10JKRArchiveFv removeResource__10JKRArchiveFPv -getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry -setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl +getExpandSize__10JKRArchiveCFP12SDIFileEntry +setExpandSize__10JKRArchiveFP12SDIFileEntryUl item_func_HEART__Fv item_func_GREEN_RUPEE__Fv item_func_BLUE_RUPEE__Fv @@ -1277,23 +1277,23 @@ setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl item_getcheck_func_KEY_OF_FILONE__Fv isInsect__FUc __dt__13JKRDvdArchiveFv -fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl -fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl +fetchResource__13JKRDvdArchiveFP12SDIFileEntryPUl +fetchResource__13JKRDvdArchiveFPvUlP12SDIFileEntryPUl getExpandedResSize__13JKRDvdArchiveCFPCv __dt__13JKRMemArchiveFv -fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl -fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl +fetchResource__13JKRMemArchiveFP12SDIFileEntryPUl +fetchResource__13JKRMemArchiveFPvUlP12SDIFileEntryPUl getExpandedResSize__13JKRMemArchiveCFPCv removeResourceAll__13JKRMemArchiveFv removeResource__13JKRMemArchiveFPv __dt__14JKRAramArchiveFv __dt__7JKRFileFv -fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl -fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl +fetchResource__14JKRAramArchiveFP12SDIFileEntryPUl +fetchResource__14JKRAramArchiveFPvUlP12SDIFileEntryPUl getExpandedResSize__14JKRAramArchiveCFPCv __dt__14JKRCompArchiveFv -fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl -fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl +fetchResource__14JKRCompArchiveFP12SDIFileEntryPUl +fetchResource__14JKRCompArchiveFPvUlP12SDIFileEntryPUl getExpandedResSize__14JKRCompArchiveCFPCv removeResourceAll__14JKRCompArchiveFv removeResource__14JKRCompArchiveFPv diff --git a/libs/JSystem/JKernel/JKRAramArchive.cpp b/libs/JSystem/JKernel/JKRAramArchive.cpp index b4a1b7b55d..2e44548ba5 100644 --- a/libs/JSystem/JKernel/JKRAramArchive.cpp +++ b/libs/JSystem/JKernel/JKRAramArchive.cpp @@ -18,17 +18,17 @@ asm void JKRAramArchive::open(long) { #include "JSystem/JKernel/JKRAramArchive/asm/func_802D72A8.s" } -asm void JKRAramArchive::fetchResource(JKRArchive::SDIFileEntry*, u32*) { +asm void* JKRAramArchive::fetchResource(SDIFileEntry*, u32*) { nofralloc #include "JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s" } -asm void JKRAramArchive::fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*) { +asm void* JKRAramArchive::fetchResource(void*, u32, SDIFileEntry*, u32*) { nofralloc #include "JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s" } -asm void JKRAramArchive::getAramAddress_Entry(JKRArchive::SDIFileEntry*) { +asm void JKRAramArchive::getAramAddress_Entry(SDIFileEntry*) { nofralloc #include "JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s" } diff --git a/libs/JSystem/JKernel/JKRArchivePri.cpp b/libs/JSystem/JKernel/JKRArchivePri.cpp index b65dc49163..167dad2c8b 100644 --- a/libs/JSystem/JKernel/JKRArchivePri.cpp +++ b/libs/JSystem/JKernel/JKRArchivePri.cpp @@ -1,78 +1,221 @@ #include "JSystem/JKernel/JKRArchive/JKRArchive.h" #include "global.h" -asm JKRArchive::JKRArchive(long, JKRArchive::EMountMode) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D6294.s" +JKRArchive::JKRArchive(long entryNumber, JKRArchive::EMountMode mountMode) { + mIsMounted = false; + mMountMode = mountMode; + mMountCount = 1; + field_0x58 = 1; + + mHeap = JKRHeap::findFromRoot(this); + if (mHeap == NULL) { + mHeap = JKRHeap::getCurrentHeap(); + } + + mEntryNum = entryNumber; + if (getCurrentVolume() == NULL) { + setCurrentVolume(this); + setCurrentDirID(0); + } } -asm JKRArchive::~JKRArchive() { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D6334.s" +JKRArchive::~JKRArchive() {} + +bool JKRArchive::isSameName(JKRArchive::CArcName& name, u32 nameOffset, u16 nameHash) const { + u16 hash = name.getHash(); + if (hash != nameHash) + return false; + return strcmp(mStringTable + nameOffset, name.getString()) == 0; } -asm void JKRArchive::isSameName(JKRArchive::CArcName&, u32, unsigned short) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D6394.s" +SDirEntry* JKRArchive::findResType(u32 type) const { + SDirEntry* node = mNodes; + u32 count = 0; + while (count < mArcInfoBlock->num_nodes) { + if (node->type == type) { + return node; + } + + node++; + count++; + } + + return NULL; } -asm void JKRArchive::findResType(u32) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D63E0.s" +SDirEntry* JKRArchive::findDirectory(const char* name, u32 directoryId) const { + if (name == NULL) { + return mNodes + directoryId; + } + + CArcName arcName(&name, '/'); + SDirEntry* dirEntry = mNodes + directoryId; + SDIFileEntry* fileEntry = mFiles + dirEntry->first_file_index; + + for (int i = 0; i < dirEntry->num_entries; fileEntry++, i++) { + // regalloc doesn't like fileEntry->getNameHash() + if (isSameName(arcName, fileEntry->getNameOffset(), fileEntry->name_hash)) { + if (fileEntry->isDirectory()) { + return findDirectory(name, fileEntry->data_offset); + } + break; + } + } + + return NULL; } -asm void JKRArchive::findDirectory(char const*, u32) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D641C.s" +SDIFileEntry* JKRArchive::findTypeResource(u32 type, const char* name) const { + if (type) { + CArcName arcName(name); + SDirEntry* dirEntry = findResType(type); + if (dirEntry) { + SDIFileEntry* fileEntry = mFiles + dirEntry->first_file_index; + for (int i = 0; i < dirEntry->num_entries; fileEntry++, i++) { + if (isSameName(arcName, fileEntry->getNameOffset(), fileEntry->getNameHash())) { + return fileEntry; + } + } + } + } + + return NULL; } -asm void JKRArchive::findTypeResource(u32, char const*) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D64F4.s" +SDIFileEntry* JKRArchive::findFsResource(const char* name, u32 directoryId) const { + if (name) { + CArcName arcName(&name, '/'); + SDirEntry* dirEntry = mNodes + directoryId; + SDIFileEntry* fileEntry = mFiles + dirEntry->first_file_index; + for (int i = 0; i < dirEntry->num_entries; fileEntry++, i++) { + // regalloc doesn't like fileEntry->getNameHash() + if (isSameName(arcName, fileEntry->getNameOffset(), fileEntry->name_hash)) { + if (fileEntry->isDirectory()) { + return findFsResource(name, fileEntry->data_offset); + } + + if (name == NULL) { + return fileEntry; + } + + return NULL; + } + } + } + + return NULL; } -asm void JKRArchive::findFsResource(char const*, u32) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D65A4.s" +SDIFileEntry* JKRArchive::findIdxResource(u32 fileIndex) const { + if (fileIndex < mArcInfoBlock->num_file_entries) { + return mFiles + fileIndex; + } + + return NULL; } -asm void JKRArchive::findIdxResource(u32) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D6684.s" +SDIFileEntry* JKRArchive::findNameResource(const char* name) const { + SDIFileEntry* fileEntry = mFiles; + + CArcName arcName(name); + for (int i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) { + if (isSameName(arcName, fileEntry->getNameOffset(), fileEntry->getNameHash())) { + return fileEntry; + } + } + + return NULL; } -asm void JKRArchive::findNameResource(char const*) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D66AC.s" +SDIFileEntry* JKRArchive::findPtrResource(const void* resource) const { + SDIFileEntry* fileEntry = mFiles; + for (int i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) { + if (fileEntry->data == resource) { + return fileEntry; + } + } + + return NULL; } -asm void JKRArchive::findPtrResource(void const*) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D6734.s" +SDIFileEntry* JKRArchive::findIdResource(u16 id) const { + if (id != 0xFFFF) { + if (id < mArcInfoBlock->num_file_entries) { + SDIFileEntry* fileEntry = mFiles + id; + if (fileEntry->file_id == id && fileEntry->isUnknownFlag1()) { + return fileEntry; + } + } + + SDIFileEntry* fileEntry = mFiles; + for (int i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) { + if (fileEntry->file_id == id && fileEntry->isUnknownFlag1()) { + return fileEntry; + } + } + } + + return NULL; } -asm void JKRArchive::findIdResource(unsigned short) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D6770.s" +void JKRArchive::CArcName::store(const char* name) { + mHash = 0; + s32 length = 0; + while (*name) { + s32 ch = tolower(*name); + mHash = ch + mHash * 3; + if (length < (s32)ARRAY_SIZE(mData)) { + mData[length++] = ch; + } + name++; + } + + mLength = (u16)length; + mData[length] = 0; } -asm void JKRArchive::CArcName::store(char const*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D67F4.s" +const char* JKRArchive::CArcName::store(const char* name, char endChar) { + mHash = 0; + s32 length = 0; + while (*name && *name != endChar) { + s32 lch = tolower((int)*name); + mHash = lch + mHash * 3; + if (length < (s32)ARRAY_SIZE(mData)) { + mData[length++] = lch; + } + name++; + } + + mLength = (u16)length; + mData[length] = 0; + + if (*name == 0) + return NULL; + return name + 1; } -asm const char* JKRArchive::CArcName::store(char const*, char) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D6884.s" -} +// using include vs the JKRArchivePri.s file yields different code +// super weird... +#if 0 +#if NONMATCHING +void JKRArchive::setExpandSize(SDIFileEntry* fileEntry, u32 expandSize) { + int index = fileEntry - mFiles; + if (!mExpandedSize) + return; -#if 0 -asm void JKRArchive::setExpandSize(JKRArchive::SDIFileEntry*, u32) { + if (index <= mArcInfoBlock->num_file_entries) + return; + + mExpandedSize[index] = expandSize; +} +#else +asm void JKRArchive::setExpandSize(SDIFileEntry* fileEntry, u32 expandSize) { nofralloc #include "JSystem/JKernel/JKRArchive/asm/func_802D693C.s" -} - -asm void JKRArchive::getExpandSize(JKRArchive::SDIFileEntry*) const { +} +#endif + +asm void JKRArchive::getExpandSize(SDIFileEntry*) const { nofralloc #include "JSystem/JKernel/JKRArchive/asm/func_802D6978.s" } diff --git a/libs/JSystem/JKernel/JKRArchivePub.cpp b/libs/JSystem/JKernel/JKRArchivePub.cpp index 44c895d37e..4916b92b77 100644 --- a/libs/JSystem/JKernel/JKRArchivePub.cpp +++ b/libs/JSystem/JKernel/JKRArchivePub.cpp @@ -1,119 +1,346 @@ +#include "JSystem/JKernel/JKRAramArchive/JKRAramArchive.h" #include "JSystem/JKernel/JKRArchive/JKRArchive.h" +#include "JSystem/JKernel/JKRCompArchive/JKRCompArchive.h" +#include "JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h" +#include "JSystem/JKernel/JKRFileFinder/JKRFileFinder.h" +#include "JSystem/JKernel/JKRFileLoader/JKRFileLoader.h" +#include "JSystem/JKernel/JKRMemArchive/JKRMemArchive.h" #include "dvd/dvd.h" #include "global.h" -asm void JKRArchive::check_mount_already(long, JKRHeap*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5778.s" +JKRArchive* JKRArchive::check_mount_already(s32 entryNum, JKRHeap* heap) { + if (heap == NULL) { + heap = JKRHeap::getCurrentHeap(); + } + + JSUList& volumeList = getVolumeList(); + JSUListIterator iterator; + for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) { + if (iterator->getVolumeType() == 'RARC') { + JKRArchive* archive = (JKRArchive*)iterator.getObject(); + if (archive->mEntryNum == entryNum && archive->mHeap == heap) { + archive->mMountCount++; + return archive; + } + } + } + + return NULL; } -asm void JKRArchive::mount(char const*, JKRArchive::EMountMode, JKRHeap*, - JKRArchive::EMountDirection) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D57E4.s" +JKRArchive* JKRArchive::mount(const char* path, JKRArchive::EMountMode mountMode, JKRHeap* heap, + JKRArchive::EMountDirection mountDirection) { + s32 entryNum = DVDConvertPathToEntrynum(path); + if (entryNum < 0) + return NULL; + + return mount(entryNum, mountMode, heap, mountDirection); } -asm void JKRArchive::mount(void*, JKRHeap*, JKRArchive::EMountDirection) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5840.s" +JKRArchive* JKRArchive::mount(void* ptr, JKRHeap* heap, + JKRArchive::EMountDirection mountDirection) { + JKRArchive* archive = check_mount_already((s32)ptr, heap); + if (archive) + return archive; + + int alignment; + if (mountDirection == JKRArchive::HEAD) { + alignment = 4; + } else { + alignment = -4; + } + + archive = new (heap, alignment) JKRMemArchive(ptr, 0xFFFF, JKRMEMBREAK_FLAG_UNKNOWN0); + return archive; } -asm void JKRArchive::mount(long, JKRArchive::EMountMode, JKRHeap*, JKRArchive::EMountDirection) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D58C8.s" +JKRArchive* JKRArchive::mount(s32 entryNum, JKRArchive::EMountMode mountMode, JKRHeap* heap, + JKRArchive::EMountDirection mountDirection) { + JKRArchive* archive = check_mount_already(entryNum, heap); + if (archive != NULL) { + return archive; + } else { + int alignment; + if (mountDirection == JKRArchive::HEAD) { + alignment = 4; + } else { + alignment = -4; + } + + JKRArchive* archive; + switch (mountMode) { + case JKRArchive::MOUNT_MEM: + archive = new (heap, alignment) JKRMemArchive(entryNum, mountDirection); + break; + case JKRArchive::MOUNT_ARAM: + archive = new (heap, alignment) JKRAramArchive(entryNum, mountDirection); + break; + case JKRArchive::MOUNT_DVD: + archive = new (heap, alignment) JKRDvdArchive(entryNum, mountDirection); + break; + case JKRArchive::MOUNT_COMP: + archive = new (heap, alignment) JKRCompArchive(entryNum, mountDirection); + break; + } + + if (archive && archive->getMountMode() == JKRArchive::UNKNOWN_MOUNT_MODE) { + delete archive; + archive = NULL; + } + + return archive; + } } -asm void JKRArchive::becomeCurrent(char const*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5A38.s" +bool JKRArchive::becomeCurrent(const char* path) { + SDirEntry* dirEntry; + if (*path == '/') { + path++; + + if (*path == '\0') + path = NULL; + dirEntry = findDirectory(path, 0); + } else { + dirEntry = findDirectory(path, getCurrentDirID()); + } + + bool found = dirEntry != NULL; + if (found) { + setCurrentVolume(this); + setCurrentDirID(dirEntry - mNodes); + } + + return found; } -asm bool JKRArchive::getDirEntry(JKRArchive::SDirEntry*, u32) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5AC0.s" +bool JKRArchive::getDirEntry(SDirEntry* dirEntry, u32 index) const { + SDIFileEntry* fileEntry = findIdxResource(index); + if (!fileEntry) + return false; + + dirEntry->other.flags = fileEntry->getFlags(); + dirEntry->other.id = fileEntry->getFileID(); + dirEntry->name = mStringTable + fileEntry->getNameOffset(); + return true; } -asm void JKRArchive::getGlbResource(u32, char const*, JKRArchive*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5B38.s" +void* JKRArchive::getGlbResource(u32 param_1, const char* path, JKRArchive* archive) { + void* resource = NULL; + if (archive) { + return archive->getResource(param_1, path); + } + + JSUList& volumeList = getVolumeList(); + JSUListIterator iterator; + for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) { + if (iterator->getVolumeType() == 'RARC') { + resource = iterator->getResource(param_1, path); + if (resource) + break; + } + } + + return resource; } -asm void* JKRArchive::getResource(char const*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5BE8.s" +void* JKRArchive::getResource(const char* path) { + SDIFileEntry* fileEntry; + if (*path == '/') { + fileEntry = findFsResource(path + 1, 0); + } else { + fileEntry = findFsResource(path, getCurrentDirID()); + } + + if (fileEntry) { + return fetchResource(fileEntry, NULL); + } + + return NULL; } -asm void* JKRArchive::getResource(u32, char const*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5C64.s" +void* JKRArchive::getResource(u32 type, const char* path) { + SDIFileEntry* fileEntry; + if (type == 0 || type == '????') { + fileEntry = findNameResource(path); + } else { + fileEntry = findTypeResource(type, path); + } + + if (fileEntry) { + return fetchResource(fileEntry, NULL); + } + + return NULL; } -asm void JKRArchive::getIdxResource(u32) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5CE4.s" +void* JKRArchive::getIdxResource(u32 index) { + SDIFileEntry* fileEntry = findIdxResource(index); + if (fileEntry) { + return fetchResource(fileEntry, NULL); + } + + return NULL; } -asm void JKRArchive::getResource(unsigned short) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5D38.s" +void* JKRArchive::getResource(u16 id) { + SDIFileEntry* fileEntry = findIdResource(id); + if (fileEntry) { + return fetchResource(fileEntry, NULL); + } + + return NULL; } -asm void JKRArchive::readResource(void*, u32, u32, char const*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5D8C.s" +u32 JKRArchive::readResource(void* buffer, u32 bufferSize, u32 type, const char* path) { + SDIFileEntry* fileEntry; + if (type == 0 || type == '????') { + fileEntry = findNameResource(path); + } else { + fileEntry = findTypeResource(type, path); + } + + if (fileEntry) { + u32 resourceSize; + fetchResource(buffer, bufferSize, fileEntry, &resourceSize); + return resourceSize; + } + + return 0; } -asm void JKRArchive::readResource(void*, u32, char const*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5E30.s" +u32 JKRArchive::readResource(void* buffer, u32 bufferSize, const char* path) { + SDIFileEntry* fileEntry; + if (*path == '/') { + fileEntry = findFsResource(path + 1, 0); + } else { + fileEntry = findFsResource(path, getCurrentDirID()); + } + + if (fileEntry) { + u32 resourceSize; + fetchResource(buffer, bufferSize, fileEntry, &resourceSize); + return resourceSize; + } + + return 0; } -asm void JKRArchive::readIdxResource(void*, u32, u32) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5ECC.s" +u32 JKRArchive::readIdxResource(void* buffer, u32 bufferSize, u32 index) { + SDIFileEntry* fileEntry = findIdxResource(index); + if (fileEntry) { + u32 resourceSize; + fetchResource(buffer, bufferSize, fileEntry, &resourceSize); + return resourceSize; + } + + return 0; } -asm void JKRArchive::readResource(void*, u32, unsigned short) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5F40.s" +u32 JKRArchive::readResource(void* buffer, u32 bufferSize, u16 id) { + SDIFileEntry* fileEntry = findIdResource(id); + if (fileEntry) { + u32 resourceSize; + fetchResource(buffer, bufferSize, fileEntry, &resourceSize); + return resourceSize; + } + + return 0; } -asm void JKRArchive::removeResourceAll(void) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D5FB4.s" +void JKRArchive::removeResourceAll(void) { + if (mArcInfoBlock && mMountMode != MOUNT_MEM) { + SDIFileEntry* fileEntry = mFiles; + for (int i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) { + if (fileEntry->data) { + JKRFreeToHeap(mHeap, fileEntry->data); + fileEntry->data = NULL; + } + } + } } -asm bool JKRArchive::removeResource(void*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D603C.s" +bool JKRArchive::removeResource(void* resource) { + SDIFileEntry* fileEntry = findPtrResource(resource); + if (fileEntry == NULL) + return false; + + fileEntry->data = NULL; + JKRFreeToHeap(mHeap, resource); + return true; } -asm bool JKRArchive::detachResource(void*) { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D609C.s" +bool JKRArchive::detachResource(void* resource) { + SDIFileEntry* fileEntry = findPtrResource(resource); + if (fileEntry == NULL) + return false; + + fileEntry->data = NULL; + return true; } -asm void JKRArchive::getResSize(void const*) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D60D8.s" +u32 JKRArchive::getResSize(const void* resource) const { + SDIFileEntry* fileEntry = findPtrResource(resource); + if (fileEntry == NULL) + return -1; + + return fileEntry->data_size; } -asm void JKRArchive::countResource(void) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D610C.s" +u32 JKRArchive::countResource(void) const { + u32 count = 0; + for (int i = 0; i < mArcInfoBlock->num_file_entries; i++) { + if (mFiles[i].isUnknownFlag1()) { + count++; + } + } + return count; } -asm void JKRArchive::countFile(char const*) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D6150.s" +u32 JKRArchive::countFile(const char* path) const { + SDirEntry* dirEntry; + if (*path == '/') { + path++; + + if (*path == '\0') + path = NULL; + dirEntry = findDirectory(path, 0); + } else { + dirEntry = findDirectory(path, getCurrentDirID()); + } + + if (dirEntry) { + return dirEntry->num_entries; + } + + return 0; } -asm void JKRArchive::getFirstFile(char const*) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D61B0.s" +JKRArcFinder* JKRArchive::getFirstFile(const char* path) const { + SDirEntry* dirEntry; + if (*path == '/') { + path++; + + if (*path == '\0') + path = NULL; + dirEntry = findDirectory(path, 0); + } else { + dirEntry = findDirectory(path, getCurrentDirID()); + } + + if (dirEntry) { + // don't know what is correct here... for now we're casting away const + return new (JKRHeap::getSystemHeap(), 0) + JKRArcFinder((JKRArchive*)this, dirEntry->first_file_index, (u32)dirEntry->num_entries); + } + + return NULL; } -asm void JKRArchive::getFileAttribute(u32) const { - nofralloc -#include "JSystem/JKernel/JKRArchive/asm/func_802D625C.s" +u32 JKRArchive::getFileAttribute(u32 index) const { + SDIFileEntry* fileEntry = findIdxResource(index); + if (fileEntry) { + return fileEntry->getFlags(); + } + + return 0; } diff --git a/libs/JSystem/JKernel/JKRCompArchive.cpp b/libs/JSystem/JKernel/JKRCompArchive.cpp index e52cdb8c7d..f480576c16 100644 --- a/libs/JSystem/JKernel/JKRCompArchive.cpp +++ b/libs/JSystem/JKernel/JKRCompArchive.cpp @@ -16,12 +16,12 @@ asm void JKRCompArchive::open(long) { #include "JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s" } -asm void JKRCompArchive::fetchResource(JKRArchive::SDIFileEntry*, u32*) { +asm void* JKRCompArchive::fetchResource(SDIFileEntry*, u32*) { nofralloc #include "JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s" } -asm void JKRCompArchive::fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*) { +asm void* JKRCompArchive::fetchResource(void*, u32, SDIFileEntry*, u32*) { nofralloc #include "JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s" } diff --git a/libs/JSystem/JKernel/JKRDvdArchive.cpp b/libs/JSystem/JKernel/JKRDvdArchive.cpp index ff15dc3939..07579d6e48 100644 --- a/libs/JSystem/JKernel/JKRDvdArchive.cpp +++ b/libs/JSystem/JKernel/JKRDvdArchive.cpp @@ -16,12 +16,12 @@ asm void JKRDvdArchive::open(long) { #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D7DB4.s" } -asm void JKRDvdArchive::fetchResource(JKRArchive::SDIFileEntry*, u32*) { +asm void* JKRDvdArchive::fetchResource(SDIFileEntry*, u32*) { nofralloc #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s" } -asm void JKRDvdArchive::fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*) { +asm void* JKRDvdArchive::fetchResource(void*, u32, SDIFileEntry*, u32*) { nofralloc #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s" } diff --git a/libs/JSystem/JKernel/JKRFileFinder.cpp b/libs/JSystem/JKernel/JKRFileFinder.cpp index 454175341e..754a56ad66 100644 --- a/libs/JSystem/JKernel/JKRFileFinder.cpp +++ b/libs/JSystem/JKernel/JKRFileFinder.cpp @@ -3,10 +3,9 @@ #include "dvd/dvd.h" #include "global.h" -JKRArcFinder::JKRArcFinder(JKRArchive* archive, long startIndex, long numEntries) - : JKRFileFinder() { +JKRArcFinder::JKRArcFinder(JKRArchive* archive, s32 startIndex, u32 numEntries) : JKRFileFinder() { mArchive = archive; - mIsAvailable = numEntries > 0; + mIsAvailable = (s32)numEntries > 0; mStartIndex = startIndex; mEndIndex = startIndex + numEntries - 1; mNextIndex = mStartIndex; @@ -14,7 +13,7 @@ JKRArcFinder::JKRArcFinder(JKRArchive* archive, long startIndex, long numEntries } bool JKRArcFinder::findNextFile(void) { - JKRArchive::SDirEntry entry; + SDirEntry entry; if (mIsAvailable) { mIsAvailable = !(mNextIndex > mEndIndex); @@ -22,8 +21,8 @@ bool JKRArcFinder::findNextFile(void) { mIsAvailable = mArchive->getDirEntry(&entry, mNextIndex); mEntryName = entry.name; mEntryFileIndex = mNextIndex; - mEntryId = entry.id; - mEntryTypeFlags = entry.type_flags; + mEntryId = entry.other.id; + mEntryTypeFlags = entry.other.flags; mIsFileOrDirectory = (mEntryTypeFlags >> 1) & 1; mNextIndex++; } @@ -63,7 +62,7 @@ bool JKRDvdFinder::findNextFile(void) { if (mIsAvailable) { mIsFileOrDirectory = directoryEntry.is_directory != 0; - mEntryName = directoryEntry.name; + mEntryNameOffset = directoryEntry.name; mEntryFileIndex = directoryEntry.entry_number; mEntryId = 0; diff --git a/libs/JSystem/JKernel/JKRMemArchive.cpp b/libs/JSystem/JKernel/JKRMemArchive.cpp index 9bdc35abec..f795f42aea 100644 --- a/libs/JSystem/JKernel/JKRMemArchive.cpp +++ b/libs/JSystem/JKernel/JKRMemArchive.cpp @@ -26,12 +26,12 @@ asm void JKRMemArchive::open(void*, u32, JKRMemBreakFlag) { #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6D30.s" } -asm void JKRMemArchive::fetchResource(JKRArchive::SDIFileEntry*, u32*) { +asm void* JKRMemArchive::fetchResource(SDIFileEntry*, u32*) { nofralloc #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s" } -asm void JKRMemArchive::fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*) { +asm void* JKRMemArchive::fetchResource(void*, u32, SDIFileEntry*, u32*) { nofralloc #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s" } @@ -51,7 +51,7 @@ asm void JKRMemArchive::fetchResource_subroutine(u8*, u32, u8*, u32, int) { #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6F5C.s" } -asm void JKRMemArchive::getExpandedResSize(void const*) const { +asm void JKRMemArchive::getExpandedResSize(const void*) const { nofralloc #include "JSystem/JKernel/JKRMemArchive/asm/func_802D7030.s" } From 65dbd7e0880c8307043aceb64f128e0ee53d7bec Mon Sep 17 00:00:00 2001 From: Erin Moon Date: Mon, 4 Jan 2021 21:05:42 -0600 Subject: [PATCH 2/2] diff.py: fix --lhs-name option (#67) --- diff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diff.py b/diff.py index ff127cb948..00648d143f 100644 --- a/diff.py +++ b/diff.py @@ -576,7 +576,7 @@ def dump_objfile() -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: objdump_flags = ["-drz"] return ( objfile, - (objdump_flags, refobjfile, args.start), + (objdump_flags, refobjfile, args.lhs_name or args.start), (objdump_flags + maybe_get_objdump_source_flags(), objfile, args.start), )