diff --git a/asm/JSystem/JKernel/JKRAram/__ct__7JKRAramFUlUll.s b/asm/JSystem/JKernel/JKRAram/__ct__7JKRAramFUlUll.s deleted file mode 100644 index dd0ecd7bc3..0000000000 --- a/asm/JSystem/JKernel/JKRAram/__ct__7JKRAramFUlUll.s +++ /dev/null @@ -1,73 +0,0 @@ -lbl_802D2040: -/* 802D2040 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D2044 7C 08 02 A6 */ mflr r0 -/* 802D2048 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D204C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2050 48 09 01 89 */ bl _savegpr_28 -/* 802D2054 7C 7C 1B 78 */ mr r28, r3 -/* 802D2058 7C 9D 23 78 */ mr r29, r4 -/* 802D205C 7C BE 2B 78 */ mr r30, r5 -/* 802D2060 38 80 0C 00 */ li r4, 0xc00 -/* 802D2064 38 A0 00 10 */ li r5, 0x10 -/* 802D2068 4B FF F5 01 */ bl __ct__9JKRThreadFUlii -/* 802D206C 3C 60 80 3D */ lis r3, __vt__7JKRAram@ha /* 0x803CC158@ha */ -/* 802D2070 38 03 C1 58 */ addi r0, r3, __vt__7JKRAram@l /* 0x803CC158@l */ -/* 802D2074 90 1C 00 00 */ stw r0, 0(r28) -/* 802D2078 38 7C 00 98 */ addi r3, r28, 0x98 -/* 802D207C 38 80 00 03 */ li r4, 3 -/* 802D2080 48 07 E6 AD */ bl ARInit -/* 802D2084 7C 7F 1B 78 */ mr r31, r3 -/* 802D2088 48 08 01 DD */ bl ARQInit -/* 802D208C 48 07 E7 65 */ bl ARGetSize -/* 802D2090 93 BC 00 80 */ stw r29, 0x80(r28) -/* 802D2094 3C 1E 00 01 */ addis r0, r30, 1 -/* 802D2098 28 00 FF FF */ cmplwi r0, 0xffff -/* 802D209C 40 82 00 1C */ bne lbl_802D20B8 -/* 802D20A0 7C 1D 18 50 */ subf r0, r29, r3 -/* 802D20A4 7C 1F 00 50 */ subf r0, r31, r0 -/* 802D20A8 90 1C 00 88 */ stw r0, 0x88(r28) -/* 802D20AC 38 00 00 00 */ li r0, 0 -/* 802D20B0 90 1C 00 90 */ stw r0, 0x90(r28) -/* 802D20B4 48 00 00 18 */ b lbl_802D20CC -lbl_802D20B8: -/* 802D20B8 93 DC 00 88 */ stw r30, 0x88(r28) -/* 802D20BC 7C 1D F2 14 */ add r0, r29, r30 -/* 802D20C0 7C 00 18 50 */ subf r0, r0, r3 -/* 802D20C4 7C 1F 00 50 */ subf r0, r31, r0 -/* 802D20C8 90 1C 00 90 */ stw r0, 0x90(r28) -lbl_802D20CC: -/* 802D20CC 80 7C 00 80 */ lwz r3, 0x80(r28) -/* 802D20D0 48 07 E5 F5 */ bl ARAlloc -/* 802D20D4 90 7C 00 7C */ stw r3, 0x7c(r28) -/* 802D20D8 80 7C 00 88 */ lwz r3, 0x88(r28) -/* 802D20DC 48 07 E5 E9 */ bl ARAlloc -/* 802D20E0 90 7C 00 84 */ stw r3, 0x84(r28) -/* 802D20E4 80 7C 00 90 */ lwz r3, 0x90(r28) -/* 802D20E8 28 03 00 00 */ cmplwi r3, 0 -/* 802D20EC 41 82 00 10 */ beq lbl_802D20FC -/* 802D20F0 48 07 E5 D5 */ bl ARAlloc -/* 802D20F4 90 7C 00 8C */ stw r3, 0x8c(r28) -/* 802D20F8 48 00 00 0C */ b lbl_802D2104 -lbl_802D20FC: -/* 802D20FC 38 00 00 00 */ li r0, 0 -/* 802D2100 90 1C 00 8C */ stw r0, 0x8c(r28) -lbl_802D2104: -/* 802D2104 38 60 00 44 */ li r3, 0x44 -/* 802D2108 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D210C 38 A0 00 00 */ li r5, 0 -/* 802D2110 4B FF CB 89 */ bl __nw__FUlP7JKRHeapi -/* 802D2114 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D2118 41 82 00 14 */ beq lbl_802D212C -/* 802D211C 80 9C 00 84 */ lwz r4, 0x84(r28) -/* 802D2120 80 BC 00 88 */ lwz r5, 0x88(r28) -/* 802D2124 48 00 0D 21 */ bl __ct__11JKRAramHeapFUlUl -/* 802D2128 7C 60 1B 78 */ mr r0, r3 -lbl_802D212C: -/* 802D212C 90 1C 00 94 */ stw r0, 0x94(r28) -/* 802D2130 7F 83 E3 78 */ mr r3, r28 -/* 802D2134 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2138 48 09 00 ED */ bl _restgpr_28 -/* 802D213C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D2140 7C 08 03 A6 */ mtlr r0 -/* 802D2144 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D2148 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAram/__dt__7JKRAramFv.s b/asm/JSystem/JKernel/JKRAram/__dt__7JKRAramFv.s deleted file mode 100644 index e8218fdb71..0000000000 --- a/asm/JSystem/JKernel/JKRAram/__dt__7JKRAramFv.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_802D214C: -/* 802D214C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D2150 7C 08 02 A6 */ mflr r0 -/* 802D2154 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D2158 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D215C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D2160 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D2164 7C 9F 23 78 */ mr r31, r4 -/* 802D2168 41 82 00 58 */ beq lbl_802D21C0 -/* 802D216C 3C 60 80 3D */ lis r3, __vt__7JKRAram@ha /* 0x803CC158@ha */ -/* 802D2170 38 03 C1 58 */ addi r0, r3, __vt__7JKRAram@l /* 0x803CC158@l */ -/* 802D2174 90 1E 00 00 */ stw r0, 0(r30) -/* 802D2178 38 00 00 00 */ li r0, 0 -/* 802D217C 90 0D 8E 48 */ stw r0, sAramObject__7JKRAram(r13) -/* 802D2180 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 802D2184 28 03 00 00 */ cmplwi r3, 0 -/* 802D2188 41 82 00 1C */ beq lbl_802D21A4 -/* 802D218C 41 82 00 18 */ beq lbl_802D21A4 -/* 802D2190 38 80 00 01 */ li r4, 1 -/* 802D2194 81 83 00 00 */ lwz r12, 0(r3) -/* 802D2198 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D219C 7D 89 03 A6 */ mtctr r12 -/* 802D21A0 4E 80 04 21 */ bctrl -lbl_802D21A4: -/* 802D21A4 7F C3 F3 78 */ mr r3, r30 -/* 802D21A8 38 80 00 00 */ li r4, 0 -/* 802D21AC 4B FF F5 AD */ bl __dt__9JKRThreadFv -/* 802D21B0 7F E0 07 35 */ extsh. r0, r31 -/* 802D21B4 40 81 00 0C */ ble lbl_802D21C0 -/* 802D21B8 7F C3 F3 78 */ mr r3, r30 -/* 802D21BC 4B FF CB 81 */ bl __dl__FPv -lbl_802D21C0: -/* 802D21C0 7F C3 F3 78 */ mr r3, r30 -/* 802D21C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D21C8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D21CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D21D0 7C 08 03 A6 */ mtlr r0 -/* 802D21D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D21D8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAram/__sinit_JKRAram_cpp.s b/asm/JSystem/JKernel/JKRAram/__sinit_JKRAram_cpp.s deleted file mode 100644 index 56b657443c..0000000000 --- a/asm/JSystem/JKernel/JKRAram/__sinit_JKRAram_cpp.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_802D2DAC: -/* 802D2DAC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D2DB0 7C 08 02 A6 */ mflr r0 -/* 802D2DB4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D2DB8 3C 60 80 43 */ lis r3, sAramCommandList__7JKRAram@ha /* 0x804342DC@ha */ -/* 802D2DBC 38 63 42 DC */ addi r3, r3, sAramCommandList__7JKRAram@l /* 0x804342DC@l */ -/* 802D2DC0 48 00 91 55 */ bl initiate__10JSUPtrListFv -/* 802D2DC4 3C 60 80 43 */ lis r3, sAramCommandList__7JKRAram@ha /* 0x804342DC@ha */ -/* 802D2DC8 38 63 42 DC */ addi r3, r3, sAramCommandList__7JKRAram@l /* 0x804342DC@l */ -/* 802D2DCC 3C 80 80 2D */ lis r4, func_802D2DF0@ha /* 0x802D2DF0@ha */ -/* 802D2DD0 38 84 2D F0 */ addi r4, r4, func_802D2DF0@l /* 0x802D2DF0@l */ -/* 802D2DD4 3C A0 80 43 */ lis r5, lit_492@ha /* 0x804342D0@ha */ -/* 802D2DD8 38 A5 42 D0 */ addi r5, r5, lit_492@l /* 0x804342D0@l */ -/* 802D2DDC 48 08 EE 49 */ bl __register_global_object -/* 802D2DE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D2DE4 7C 08 03 A6 */ mtlr r0 -/* 802D2DE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D2DEC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAram/changeGroupIdIfNeed__7JKRAramFPUci.s b/asm/JSystem/JKernel/JKRAram/changeGroupIdIfNeed__7JKRAramFPUci.s deleted file mode 100644 index cf912fa851..0000000000 --- a/asm/JSystem/JKernel/JKRAram/changeGroupIdIfNeed__7JKRAramFPUci.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802D22DC: -/* 802D22DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D22E0 7C 08 02 A6 */ mflr r0 -/* 802D22E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D22E8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D22EC 93 C1 00 08 */ stw r30, 8(r1) -/* 802D22F0 7C 7E 1B 78 */ mr r30, r3 -/* 802D22F4 7C 9F 23 78 */ mr r31, r4 -/* 802D22F8 80 6D 8D F4 */ lwz r3, sCurrentHeap__7JKRHeap(r13) -/* 802D22FC 81 83 00 00 */ lwz r12, 0(r3) -/* 802D2300 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 802D2304 7D 89 03 A6 */ mtctr r12 -/* 802D2308 4E 80 04 21 */ bctrl -/* 802D230C 3C 03 BA A8 */ addis r0, r3, 0xbaa8 -/* 802D2310 28 00 50 48 */ cmplwi r0, 0x5048 -/* 802D2314 40 82 00 10 */ bne lbl_802D2324 -/* 802D2318 2C 1F 00 00 */ cmpwi r31, 0 -/* 802D231C 41 80 00 08 */ blt lbl_802D2324 -/* 802D2320 9B FE FF F3 */ stb r31, -0xd(r30) -lbl_802D2324: -/* 802D2324 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D2328 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D232C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D2330 7C 08 03 A6 */ mtlr r0 -/* 802D2334 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D2338 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAram/checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl.s b/asm/JSystem/JKernel/JKRAram/checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl.s deleted file mode 100644 index de02d252bb..0000000000 --- a/asm/JSystem/JKernel/JKRAram/checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_802D2248: -/* 802D2248 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D224C 7C 08 02 A6 */ mflr r0 -/* 802D2250 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D2254 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D2258 93 C1 00 08 */ stw r30, 8(r1) -/* 802D225C 7C BE 2B 78 */ mr r30, r5 -/* 802D2260 7C DF 33 78 */ mr r31, r6 -/* 802D2264 54 60 06 FF */ clrlwi. r0, r3, 0x1b -/* 802D2268 41 82 00 28 */ beq lbl_802D2290 -/* 802D226C 54 80 06 FF */ clrlwi. r0, r4, 0x1b -/* 802D2270 41 82 00 20 */ beq lbl_802D2290 -/* 802D2274 3C 60 80 3A */ lis r3, JKRAram__stringBase0@ha /* 0x8039D078@ha */ -/* 802D2278 38 63 D0 78 */ addi r3, r3, JKRAram__stringBase0@l /* 0x8039D078@l */ -/* 802D227C 38 80 00 DB */ li r4, 0xdb -/* 802D2280 38 A3 00 0C */ addi r5, r3, 0xc -/* 802D2284 38 C3 00 0F */ addi r6, r3, 0xf -/* 802D2288 4C C6 31 82 */ crclr 6 -/* 802D228C 48 00 FF 71 */ bl panic_f__12JUTExceptionFPCciPCce -lbl_802D2290: -/* 802D2290 28 1E 00 00 */ cmplwi r30, 0 -/* 802D2294 41 82 00 30 */ beq lbl_802D22C4 -/* 802D2298 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D229C 7C 1F 02 14 */ add r0, r31, r0 -/* 802D22A0 54 00 06 FF */ clrlwi. r0, r0, 0x1b -/* 802D22A4 41 82 00 20 */ beq lbl_802D22C4 -/* 802D22A8 3C 60 80 3A */ lis r3, JKRAram__stringBase0@ha /* 0x8039D078@ha */ -/* 802D22AC 38 63 D0 78 */ addi r3, r3, JKRAram__stringBase0@l /* 0x8039D078@l */ -/* 802D22B0 38 80 00 E3 */ li r4, 0xe3 -/* 802D22B4 38 A3 00 0C */ addi r5, r3, 0xc -/* 802D22B8 38 C3 00 0F */ addi r6, r3, 0xf -/* 802D22BC 4C C6 31 82 */ crclr 6 -/* 802D22C0 48 00 FF 3D */ bl panic_f__12JUTExceptionFPCciPCce -lbl_802D22C4: -/* 802D22C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D22C8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D22CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D22D0 7C 08 03 A6 */ mtlr r0 -/* 802D22D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D22D8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAram/create__7JKRAramFUlUllll.s b/asm/JSystem/JKernel/JKRAram/create__7JKRAramFUlUllll.s deleted file mode 100644 index ec5c95285d..0000000000 --- a/asm/JSystem/JKernel/JKRAram/create__7JKRAramFUlUllll.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_802D1FA4: -/* 802D1FA4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D1FA8 7C 08 02 A6 */ mflr r0 -/* 802D1FAC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D1FB0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D1FB4 48 09 02 21 */ bl _savegpr_27 -/* 802D1FB8 7C 7B 1B 78 */ mr r27, r3 -/* 802D1FBC 7C 9C 23 78 */ mr r28, r4 -/* 802D1FC0 7C BD 2B 78 */ mr r29, r5 -/* 802D1FC4 7C DE 33 78 */ mr r30, r6 -/* 802D1FC8 7C FF 3B 78 */ mr r31, r7 -/* 802D1FCC 80 0D 8E 48 */ lwz r0, sAramObject__7JKRAram(r13) -/* 802D1FD0 28 00 00 00 */ cmplwi r0, 0 -/* 802D1FD4 40 82 00 34 */ bne lbl_802D2008 -/* 802D1FD8 38 60 00 A4 */ li r3, 0xa4 -/* 802D1FDC 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D1FE0 38 A0 00 00 */ li r5, 0 -/* 802D1FE4 4B FF CC B5 */ bl __nw__FUlP7JKRHeapi -/* 802D1FE8 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D1FEC 41 82 00 18 */ beq lbl_802D2004 -/* 802D1FF0 7F 64 DB 78 */ mr r4, r27 -/* 802D1FF4 7F 85 E3 78 */ mr r5, r28 -/* 802D1FF8 7F E6 FB 78 */ mr r6, r31 -/* 802D1FFC 48 00 00 45 */ bl __ct__7JKRAramFUlUll -/* 802D2000 7C 60 1B 78 */ mr r0, r3 -lbl_802D2004: -/* 802D2004 90 0D 8E 48 */ stw r0, sAramObject__7JKRAram(r13) -lbl_802D2008: -/* 802D2008 7F A3 EB 78 */ mr r3, r29 -/* 802D200C 48 00 1B 3D */ bl create__13JKRAramStreamFl -/* 802D2010 7F C3 F3 78 */ mr r3, r30 -/* 802D2014 48 00 96 6D */ bl create__9JKRDecompFl -/* 802D2018 80 6D 8E 48 */ lwz r3, sAramObject__7JKRAram(r13) -/* 802D201C 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 802D2020 48 06 F7 95 */ bl OSResumeThread -/* 802D2024 80 6D 8E 48 */ lwz r3, sAramObject__7JKRAram(r13) -/* 802D2028 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D202C 48 09 01 F5 */ bl _restgpr_27 -/* 802D2030 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D2034 7C 08 03 A6 */ mtlr r0 -/* 802D2038 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D203C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAram/firstSrcData__Fv.s b/asm/JSystem/JKernel/JKRAram/firstSrcData__Fv.s deleted file mode 100644 index 70ebc1a4f9..0000000000 --- a/asm/JSystem/JKernel/JKRAram/firstSrcData__Fv.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_802D2C40: -/* 802D2C40 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D2C44 7C 08 02 A6 */ mflr r0 -/* 802D2C48 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D2C4C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D2C50 93 C1 00 08 */ stw r30, 8(r1) -/* 802D2C54 80 6D 8E 50 */ lwz r3, szpEnd(r13) -/* 802D2C58 38 03 FF E7 */ addi r0, r3, -25 -/* 802D2C5C 90 0D 8E 68 */ stw r0, srcLimit(r13) -/* 802D2C60 80 0D 8E 4C */ lwz r0, szpBuf(r13) -/* 802D2C64 7C 1E 03 78 */ mr r30, r0 -/* 802D2C68 7C 60 18 50 */ subf r3, r0, r3 -/* 802D2C6C 80 0D 8E 64 */ lwz r0, transLeft(r13) -/* 802D2C70 7C 00 18 40 */ cmplw r0, r3 -/* 802D2C74 7C 7F 1B 78 */ mr r31, r3 -/* 802D2C78 40 80 00 08 */ bge lbl_802D2C80 -/* 802D2C7C 7C 1F 03 78 */ mr r31, r0 -lbl_802D2C80: -/* 802D2C80 38 60 00 01 */ li r3, 1 -/* 802D2C84 80 8D 8E 6C */ lwz r4, srcAddress(r13) -/* 802D2C88 80 0D 8E 60 */ lwz r0, srcOffset(r13) -/* 802D2C8C 7C 84 02 14 */ add r4, r4, r0 -/* 802D2C90 7F C5 F3 78 */ mr r5, r30 -/* 802D2C94 38 1F 00 1F */ addi r0, r31, 0x1f -/* 802D2C98 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a -/* 802D2C9C 38 E0 00 00 */ li r7, 0 -/* 802D2CA0 48 00 0B 99 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock -/* 802D2CA4 80 0D 8E 60 */ lwz r0, srcOffset(r13) -/* 802D2CA8 7C 00 FA 14 */ add r0, r0, r31 -/* 802D2CAC 90 0D 8E 60 */ stw r0, srcOffset(r13) -/* 802D2CB0 80 0D 8E 64 */ lwz r0, transLeft(r13) -/* 802D2CB4 7C 1F 00 51 */ subf. r0, r31, r0 -/* 802D2CB8 90 0D 8E 64 */ stw r0, transLeft(r13) -/* 802D2CBC 40 82 00 0C */ bne lbl_802D2CC8 -/* 802D2CC0 7C 1E FA 14 */ add r0, r30, r31 -/* 802D2CC4 90 0D 8E 68 */ stw r0, srcLimit(r13) -lbl_802D2CC8: -/* 802D2CC8 7F C3 F3 78 */ mr r3, r30 -/* 802D2CCC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D2CD0 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D2CD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D2CD8 7C 08 03 A6 */ mtlr r0 -/* 802D2CDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D2CE0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAram/func_802D2DF0.s b/asm/JSystem/JKernel/JKRAram/func_802D2DF0.s deleted file mode 100644 index 7e6839b8ac..0000000000 --- a/asm/JSystem/JKernel/JKRAram/func_802D2DF0.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802D2DF0: -/* 802D2DF0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D2DF4 7C 08 02 A6 */ mflr r0 -/* 802D2DF8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D2DFC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D2E00 93 C1 00 08 */ stw r30, 8(r1) -/* 802D2E04 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D2E08 7C 9F 23 78 */ mr r31, r4 -/* 802D2E0C 41 82 00 1C */ beq lbl_802D2E28 -/* 802D2E10 38 80 00 00 */ li r4, 0 -/* 802D2E14 48 00 90 99 */ bl __dt__10JSUPtrListFv -/* 802D2E18 7F E0 07 35 */ extsh. r0, r31 -/* 802D2E1C 40 81 00 0C */ ble lbl_802D2E28 -/* 802D2E20 7F C3 F3 78 */ mr r3, r30 -/* 802D2E24 4B FF BF 19 */ bl __dl__FPv -lbl_802D2E28: -/* 802D2E28 7F C3 F3 78 */ mr r3, r30 -/* 802D2E2C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D2E30 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D2E34 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D2E38 7C 08 03 A6 */ mtlr r0 -/* 802D2E3C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D2E40 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramBlock/__ct__12JKRAramBlockFUlUlUlUcb.s b/asm/JSystem/JKernel/JKRAramBlock/__ct__12JKRAramBlockFUlUlUlUcb.s deleted file mode 100644 index 2684608f6d..0000000000 --- a/asm/JSystem/JKernel/JKRAramBlock/__ct__12JKRAramBlockFUlUlUlUcb.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_802D3304: -/* 802D3304 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3308 7C 08 02 A6 */ mflr r0 -/* 802D330C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3310 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3314 48 08 EE BD */ bl _savegpr_26 -/* 802D3318 7C 7A 1B 78 */ mr r26, r3 -/* 802D331C 7C 9B 23 78 */ mr r27, r4 -/* 802D3320 7C BC 2B 78 */ mr r28, r5 -/* 802D3324 7C DD 33 78 */ mr r29, r6 -/* 802D3328 7C FE 3B 78 */ mr r30, r7 -/* 802D332C 7D 1F 43 78 */ mr r31, r8 -/* 802D3330 3C 60 80 3D */ lis r3, __vt__12JKRAramBlock@ha /* 0x803CC178@ha */ -/* 802D3334 38 03 C1 78 */ addi r0, r3, __vt__12JKRAramBlock@l /* 0x803CC178@l */ -/* 802D3338 90 1A 00 00 */ stw r0, 0(r26) -/* 802D333C 38 7A 00 04 */ addi r3, r26, 4 -/* 802D3340 7F 44 D3 78 */ mr r4, r26 -/* 802D3344 48 00 8A B9 */ bl __ct__10JSUPtrLinkFPv -/* 802D3348 93 7A 00 14 */ stw r27, 0x14(r26) -/* 802D334C 93 9A 00 18 */ stw r28, 0x18(r26) -/* 802D3350 93 BA 00 1C */ stw r29, 0x1c(r26) -/* 802D3354 9B DA 00 20 */ stb r30, 0x20(r26) -/* 802D3358 9B FA 00 21 */ stb r31, 0x21(r26) -/* 802D335C 7F 43 D3 78 */ mr r3, r26 -/* 802D3360 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3364 48 08 EE B9 */ bl _restgpr_26 -/* 802D3368 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D336C 7C 08 03 A6 */ mtlr r0 -/* 802D3370 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3374 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramBlock/__dt__12JKRAramBlockFv.s b/asm/JSystem/JKernel/JKRAramBlock/__dt__12JKRAramBlockFv.s deleted file mode 100644 index 4b6c5e50ad..0000000000 --- a/asm/JSystem/JKernel/JKRAramBlock/__dt__12JKRAramBlockFv.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_802D3378: -/* 802D3378 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D337C 7C 08 02 A6 */ mflr r0 -/* 802D3380 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3384 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3388 93 C1 00 08 */ stw r30, 8(r1) -/* 802D338C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D3390 7C 9F 23 78 */ mr r31, r4 -/* 802D3394 41 82 00 84 */ beq lbl_802D3418 -/* 802D3398 3C 60 80 3D */ lis r3, __vt__12JKRAramBlock@ha /* 0x803CC178@ha */ -/* 802D339C 38 03 C1 78 */ addi r0, r3, __vt__12JKRAramBlock@l /* 0x803CC178@l */ -/* 802D33A0 90 1E 00 00 */ stw r0, 0(r30) -/* 802D33A4 80 7E 00 08 */ lwz r3, 8(r30) -/* 802D33A8 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 802D33AC 28 04 00 00 */ cmplwi r4, 0 -/* 802D33B0 41 82 00 2C */ beq lbl_802D33DC -/* 802D33B4 80 C4 00 00 */ lwz r6, 0(r4) -/* 802D33B8 80 A6 00 1C */ lwz r5, 0x1c(r6) -/* 802D33BC 80 9E 00 18 */ lwz r4, 0x18(r30) -/* 802D33C0 80 1E 00 1C */ lwz r0, 0x1c(r30) -/* 802D33C4 7C 00 2A 14 */ add r0, r0, r5 -/* 802D33C8 7C 04 02 14 */ add r0, r4, r0 -/* 802D33CC 90 06 00 1C */ stw r0, 0x1c(r6) -/* 802D33D0 38 9E 00 04 */ addi r4, r30, 4 -/* 802D33D4 48 00 8D 89 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D33D8 48 00 00 1C */ b lbl_802D33F4 -lbl_802D33DC: -/* 802D33DC 80 7E 00 1C */ lwz r3, 0x1c(r30) -/* 802D33E0 80 1E 00 18 */ lwz r0, 0x18(r30) -/* 802D33E4 7C 03 02 14 */ add r0, r3, r0 -/* 802D33E8 90 1E 00 1C */ stw r0, 0x1c(r30) -/* 802D33EC 38 00 00 00 */ li r0, 0 -/* 802D33F0 90 1E 00 18 */ stw r0, 0x18(r30) -lbl_802D33F4: -/* 802D33F4 34 1E 00 04 */ addic. r0, r30, 4 -/* 802D33F8 41 82 00 10 */ beq lbl_802D3408 -/* 802D33FC 38 7E 00 04 */ addi r3, r30, 4 -/* 802D3400 38 80 00 00 */ li r4, 0 -/* 802D3404 48 00 8A 11 */ bl __dt__10JSUPtrLinkFv -lbl_802D3408: -/* 802D3408 7F E0 07 35 */ extsh. r0, r31 -/* 802D340C 40 81 00 0C */ ble lbl_802D3418 -/* 802D3410 7F C3 F3 78 */ mr r3, r30 -/* 802D3414 4B FF B9 29 */ bl __dl__FPv -lbl_802D3418: -/* 802D3418 7F C3 F3 78 */ mr r3, r30 -/* 802D341C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3420 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D3424 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3428 7C 08 03 A6 */ mtlr r0 -/* 802D342C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3430 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramBlock/allocHead__12JKRAramBlockFUlUcP11JKRAramHeap.s b/asm/JSystem/JKernel/JKRAramBlock/allocHead__12JKRAramBlockFUlUcP11JKRAramHeap.s deleted file mode 100644 index 71e6ccdf2c..0000000000 --- a/asm/JSystem/JKernel/JKRAramBlock/allocHead__12JKRAramBlockFUlUcP11JKRAramHeap.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_802D3434: -/* 802D3434 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3438 7C 08 02 A6 */ mflr r0 -/* 802D343C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3440 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3444 48 08 ED 8D */ bl _savegpr_26 -/* 802D3448 7C 7A 1B 78 */ mr r26, r3 -/* 802D344C 7C 9B 23 78 */ mr r27, r4 -/* 802D3450 7C BC 2B 78 */ mr r28, r5 -/* 802D3454 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802D3458 80 1A 00 18 */ lwz r0, 0x18(r26) -/* 802D345C 7F C3 02 14 */ add r30, r3, r0 -/* 802D3460 80 1A 00 1C */ lwz r0, 0x1c(r26) -/* 802D3464 7F BB 00 50 */ subf r29, r27, r0 -/* 802D3468 38 60 00 24 */ li r3, 0x24 -/* 802D346C 80 86 00 30 */ lwz r4, 0x30(r6) -/* 802D3470 38 A0 00 00 */ li r5, 0 -/* 802D3474 4B FF B8 25 */ bl __nw__FUlP7JKRHeapi -/* 802D3478 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D347C 41 82 00 20 */ beq lbl_802D349C -/* 802D3480 7F C4 F3 78 */ mr r4, r30 -/* 802D3484 7F 65 DB 78 */ mr r5, r27 -/* 802D3488 7F A6 EB 78 */ mr r6, r29 -/* 802D348C 7F 87 E3 78 */ mr r7, r28 -/* 802D3490 39 00 00 00 */ li r8, 0 -/* 802D3494 4B FF FE 71 */ bl __ct__12JKRAramBlockFUlUlUlUcb -/* 802D3498 7C 7F 1B 78 */ mr r31, r3 -lbl_802D349C: -/* 802D349C 38 00 00 00 */ li r0, 0 -/* 802D34A0 90 1A 00 1C */ stw r0, 0x1c(r26) -/* 802D34A4 80 9A 00 10 */ lwz r4, 0x10(r26) -/* 802D34A8 80 7A 00 08 */ lwz r3, 8(r26) -/* 802D34AC 38 BF 00 04 */ addi r5, r31, 4 -/* 802D34B0 48 00 8B E5 */ bl insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink -/* 802D34B4 7F E3 FB 78 */ mr r3, r31 -/* 802D34B8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D34BC 48 08 ED 61 */ bl _restgpr_26 -/* 802D34C0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D34C4 7C 08 03 A6 */ mtlr r0 -/* 802D34C8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D34CC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramBlock/allocTail__12JKRAramBlockFUlUcP11JKRAramHeap.s b/asm/JSystem/JKernel/JKRAramBlock/allocTail__12JKRAramBlockFUlUcP11JKRAramHeap.s deleted file mode 100644 index f6e383a8d4..0000000000 --- a/asm/JSystem/JKernel/JKRAramBlock/allocTail__12JKRAramBlockFUlUcP11JKRAramHeap.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_802D34D0: -/* 802D34D0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D34D4 7C 08 02 A6 */ mflr r0 -/* 802D34D8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D34DC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D34E0 48 08 EC F5 */ bl _savegpr_27 -/* 802D34E4 7C 7B 1B 78 */ mr r27, r3 -/* 802D34E8 7C 9C 23 78 */ mr r28, r4 -/* 802D34EC 7C BD 2B 78 */ mr r29, r5 -/* 802D34F0 80 83 00 1C */ lwz r4, 0x1c(r3) -/* 802D34F4 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802D34F8 80 1B 00 18 */ lwz r0, 0x18(r27) -/* 802D34FC 7C 00 22 14 */ add r0, r0, r4 -/* 802D3500 7C 03 02 14 */ add r0, r3, r0 -/* 802D3504 7F DC 00 50 */ subf r30, r28, r0 -/* 802D3508 38 60 00 24 */ li r3, 0x24 -/* 802D350C 80 86 00 30 */ lwz r4, 0x30(r6) -/* 802D3510 38 A0 00 00 */ li r5, 0 -/* 802D3514 4B FF B7 85 */ bl __nw__FUlP7JKRHeapi -/* 802D3518 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D351C 41 82 00 20 */ beq lbl_802D353C -/* 802D3520 7F C4 F3 78 */ mr r4, r30 -/* 802D3524 7F 85 E3 78 */ mr r5, r28 -/* 802D3528 38 C0 00 00 */ li r6, 0 -/* 802D352C 7F A7 EB 78 */ mr r7, r29 -/* 802D3530 39 00 00 01 */ li r8, 1 -/* 802D3534 4B FF FD D1 */ bl __ct__12JKRAramBlockFUlUlUlUcb -/* 802D3538 7C 7F 1B 78 */ mr r31, r3 -lbl_802D353C: -/* 802D353C 80 1B 00 1C */ lwz r0, 0x1c(r27) -/* 802D3540 7C 1C 00 50 */ subf r0, r28, r0 -/* 802D3544 90 1B 00 1C */ stw r0, 0x1c(r27) -/* 802D3548 80 9B 00 10 */ lwz r4, 0x10(r27) -/* 802D354C 80 7B 00 08 */ lwz r3, 8(r27) -/* 802D3550 38 BF 00 04 */ addi r5, r31, 4 -/* 802D3554 48 00 8B 41 */ bl insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink -/* 802D3558 7F E3 FB 78 */ mr r3, r31 -/* 802D355C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3560 48 08 EC C1 */ bl _restgpr_27 -/* 802D3564 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D3568 7C 08 03 A6 */ mtlr r0 -/* 802D356C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3570 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramHeap/__ct__11JKRAramHeapFUlUl.s b/asm/JSystem/JKernel/JKRAramHeap/__ct__11JKRAramHeapFUlUl.s deleted file mode 100644 index 229d722c1d..0000000000 --- a/asm/JSystem/JKernel/JKRAramHeap/__ct__11JKRAramHeapFUlUl.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_802D2E44: -/* 802D2E44 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D2E48 7C 08 02 A6 */ mflr r0 -/* 802D2E4C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D2E50 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2E54 48 08 F3 89 */ bl _savegpr_29 -/* 802D2E58 7C 7D 1B 78 */ mr r29, r3 -/* 802D2E5C 7C 9E 23 78 */ mr r30, r4 -/* 802D2E60 7C BF 2B 78 */ mr r31, r5 -/* 802D2E64 4B FF E6 19 */ bl __ct__11JKRDisposerFv -/* 802D2E68 3C 60 80 3D */ lis r3, __vt__11JKRAramHeap@ha /* 0x803CC168@ha */ -/* 802D2E6C 38 03 C1 68 */ addi r0, r3, __vt__11JKRAramHeap@l /* 0x803CC168@l */ -/* 802D2E70 90 1D 00 00 */ stw r0, 0(r29) -/* 802D2E74 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D2E78 48 06 C1 91 */ bl OSInitMutex -/* 802D2E7C 7F A3 EB 78 */ mr r3, r29 -/* 802D2E80 4B FF B9 BD */ bl findFromRoot__7JKRHeapFPv -/* 802D2E84 90 7D 00 30 */ stw r3, 0x30(r29) -/* 802D2E88 57 E0 00 34 */ rlwinm r0, r31, 0, 0, 0x1a -/* 802D2E8C 90 1D 00 3C */ stw r0, 0x3c(r29) -/* 802D2E90 38 1E 00 1F */ addi r0, r30, 0x1f -/* 802D2E94 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a -/* 802D2E98 90 1D 00 34 */ stw r0, 0x34(r29) -/* 802D2E9C 80 7D 00 34 */ lwz r3, 0x34(r29) -/* 802D2EA0 80 1D 00 3C */ lwz r0, 0x3c(r29) -/* 802D2EA4 7C 03 02 14 */ add r0, r3, r0 -/* 802D2EA8 90 1D 00 38 */ stw r0, 0x38(r29) -/* 802D2EAC 38 00 00 FF */ li r0, 0xff -/* 802D2EB0 98 1D 00 40 */ stb r0, 0x40(r29) -/* 802D2EB4 38 60 00 24 */ li r3, 0x24 -/* 802D2EB8 80 9D 00 30 */ lwz r4, 0x30(r29) -/* 802D2EBC 38 A0 00 00 */ li r5, 0 -/* 802D2EC0 4B FF BD D9 */ bl __nw__FUlP7JKRHeapi -/* 802D2EC4 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D2EC8 41 82 00 20 */ beq lbl_802D2EE8 -/* 802D2ECC 80 9D 00 34 */ lwz r4, 0x34(r29) -/* 802D2ED0 38 A0 00 00 */ li r5, 0 -/* 802D2ED4 80 DD 00 3C */ lwz r6, 0x3c(r29) -/* 802D2ED8 38 E0 00 FF */ li r7, 0xff -/* 802D2EDC 39 00 00 00 */ li r8, 0 -/* 802D2EE0 48 00 04 25 */ bl __ct__12JKRAramBlockFUlUlUlUcb -/* 802D2EE4 7C 64 1B 78 */ mr r4, r3 -lbl_802D2EE8: -/* 802D2EE8 3C 60 80 43 */ lis r3, sAramList__11JKRAramHeap@ha /* 0x8043430C@ha */ -/* 802D2EEC 38 63 43 0C */ addi r3, r3, sAramList__11JKRAramHeap@l /* 0x8043430C@l */ -/* 802D2EF0 38 84 00 04 */ addi r4, r4, 4 -/* 802D2EF4 48 00 90 59 */ bl append__10JSUPtrListFP10JSUPtrLink -/* 802D2EF8 7F A3 EB 78 */ mr r3, r29 -/* 802D2EFC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2F00 48 08 F3 29 */ bl _restgpr_29 -/* 802D2F04 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D2F08 7C 08 03 A6 */ mtlr r0 -/* 802D2F0C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D2F10 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramHeap/__sinit_JKRAramHeap_cpp.s b/asm/JSystem/JKernel/JKRAramHeap/__sinit_JKRAramHeap_cpp.s deleted file mode 100644 index 17e3d1c036..0000000000 --- a/asm/JSystem/JKernel/JKRAramHeap/__sinit_JKRAramHeap_cpp.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_802D326C: -/* 802D326C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3270 7C 08 02 A6 */ mflr r0 -/* 802D3274 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3278 3C 60 80 43 */ lis r3, sAramList__11JKRAramHeap@ha /* 0x8043430C@ha */ -/* 802D327C 38 63 43 0C */ addi r3, r3, sAramList__11JKRAramHeap@l /* 0x8043430C@l */ -/* 802D3280 48 00 8C 95 */ bl initiate__10JSUPtrListFv -/* 802D3284 3C 60 80 43 */ lis r3, sAramList__11JKRAramHeap@ha /* 0x8043430C@ha */ -/* 802D3288 38 63 43 0C */ addi r3, r3, sAramList__11JKRAramHeap@l /* 0x8043430C@l */ -/* 802D328C 3C 80 80 2D */ lis r4, func_802D32B0@ha /* 0x802D32B0@ha */ -/* 802D3290 38 84 32 B0 */ addi r4, r4, func_802D32B0@l /* 0x802D32B0@l */ -/* 802D3294 3C A0 80 43 */ lis r5, lit_297@ha /* 0x80434300@ha */ -/* 802D3298 38 A5 43 00 */ addi r5, r5, lit_297@l /* 0x80434300@l */ -/* 802D329C 48 08 E9 89 */ bl __register_global_object -/* 802D32A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D32A4 7C 08 03 A6 */ mtlr r0 -/* 802D32A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D32AC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramHeap/allocFromHead__11JKRAramHeapFUl.s b/asm/JSystem/JKernel/JKRAramHeap/allocFromHead__11JKRAramHeapFUl.s deleted file mode 100644 index 00ce60f72f..0000000000 --- a/asm/JSystem/JKernel/JKRAramHeap/allocFromHead__11JKRAramHeapFUl.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_802D3034: -/* 802D3034 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3038 7C 08 02 A6 */ mflr r0 -/* 802D303C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3040 7C 66 1B 78 */ mr r6, r3 -/* 802D3044 38 04 00 1F */ addi r0, r4, 0x1f -/* 802D3048 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a -/* 802D304C 39 00 FF FF */ li r8, -1 -/* 802D3050 38 60 00 00 */ li r3, 0 -/* 802D3054 3C A0 80 43 */ lis r5, sAramList__11JKRAramHeap@ha /* 0x8043430C@ha */ -/* 802D3058 80 E5 43 0C */ lwz r7, sAramList__11JKRAramHeap@l(r5) /* 0x8043430C@l */ -/* 802D305C 48 00 00 30 */ b lbl_802D308C -lbl_802D3060: -/* 802D3060 80 A7 00 00 */ lwz r5, 0(r7) -/* 802D3064 80 05 00 1C */ lwz r0, 0x1c(r5) -/* 802D3068 7C 00 20 40 */ cmplw r0, r4 -/* 802D306C 41 80 00 1C */ blt lbl_802D3088 -/* 802D3070 7C 08 00 40 */ cmplw r8, r0 -/* 802D3074 40 81 00 14 */ ble lbl_802D3088 -/* 802D3078 7C 08 03 78 */ mr r8, r0 -/* 802D307C 7C A3 2B 78 */ mr r3, r5 -/* 802D3080 7C 00 20 40 */ cmplw r0, r4 -/* 802D3084 41 82 00 10 */ beq lbl_802D3094 -lbl_802D3088: -/* 802D3088 80 E7 00 0C */ lwz r7, 0xc(r7) -lbl_802D308C: -/* 802D308C 28 07 00 00 */ cmplwi r7, 0 -/* 802D3090 40 82 FF D0 */ bne lbl_802D3060 -lbl_802D3094: -/* 802D3094 28 03 00 00 */ cmplwi r3, 0 -/* 802D3098 41 82 00 10 */ beq lbl_802D30A8 -/* 802D309C 88 A6 00 40 */ lbz r5, 0x40(r6) -/* 802D30A0 48 00 03 95 */ bl allocHead__12JKRAramBlockFUlUcP11JKRAramHeap -/* 802D30A4 48 00 00 08 */ b lbl_802D30AC -lbl_802D30A8: -/* 802D30A8 38 60 00 00 */ li r3, 0 -lbl_802D30AC: -/* 802D30AC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D30B0 7C 08 03 A6 */ mtlr r0 -/* 802D30B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D30B8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramHeap/allocFromTail__11JKRAramHeapFUl.s b/asm/JSystem/JKernel/JKRAramHeap/allocFromTail__11JKRAramHeapFUl.s deleted file mode 100644 index 207c866ce1..0000000000 --- a/asm/JSystem/JKernel/JKRAramHeap/allocFromTail__11JKRAramHeapFUl.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_802D30BC: -/* 802D30BC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D30C0 7C 08 02 A6 */ mflr r0 -/* 802D30C4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D30C8 7C 66 1B 78 */ mr r6, r3 -/* 802D30CC 38 04 00 1F */ addi r0, r4, 0x1f -/* 802D30D0 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a -/* 802D30D4 38 60 00 00 */ li r3, 0 -/* 802D30D8 3C A0 80 43 */ lis r5, sAramList__11JKRAramHeap@ha /* 0x8043430C@ha */ -/* 802D30DC 38 A5 43 0C */ addi r5, r5, sAramList__11JKRAramHeap@l /* 0x8043430C@l */ -/* 802D30E0 80 E5 00 04 */ lwz r7, 4(r5) -/* 802D30E4 48 00 00 20 */ b lbl_802D3104 -lbl_802D30E8: -/* 802D30E8 80 A7 00 00 */ lwz r5, 0(r7) -/* 802D30EC 80 05 00 1C */ lwz r0, 0x1c(r5) -/* 802D30F0 7C 00 20 40 */ cmplw r0, r4 -/* 802D30F4 41 80 00 0C */ blt lbl_802D3100 -/* 802D30F8 7C A3 2B 78 */ mr r3, r5 -/* 802D30FC 48 00 00 10 */ b lbl_802D310C -lbl_802D3100: -/* 802D3100 80 E7 00 08 */ lwz r7, 8(r7) -lbl_802D3104: -/* 802D3104 28 07 00 00 */ cmplwi r7, 0 -/* 802D3108 40 82 FF E0 */ bne lbl_802D30E8 -lbl_802D310C: -/* 802D310C 28 03 00 00 */ cmplwi r3, 0 -/* 802D3110 41 82 00 10 */ beq lbl_802D3120 -/* 802D3114 88 A6 00 40 */ lbz r5, 0x40(r6) -/* 802D3118 48 00 03 B9 */ bl allocTail__12JKRAramBlockFUlUcP11JKRAramHeap -/* 802D311C 48 00 00 08 */ b lbl_802D3124 -lbl_802D3120: -/* 802D3120 38 60 00 00 */ li r3, 0 -lbl_802D3124: -/* 802D3124 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3128 7C 08 03 A6 */ mtlr r0 -/* 802D312C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3130 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramHeap/alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode.s b/asm/JSystem/JKernel/JKRAramHeap/alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode.s deleted file mode 100644 index 0697963ba7..0000000000 --- a/asm/JSystem/JKernel/JKRAramHeap/alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_802D2FBC: -/* 802D2FBC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D2FC0 7C 08 02 A6 */ mflr r0 -/* 802D2FC4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D2FC8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2FCC 48 08 F2 11 */ bl _savegpr_29 -/* 802D2FD0 7C 7D 1B 78 */ mr r29, r3 -/* 802D2FD4 7C 9E 23 78 */ mr r30, r4 -/* 802D2FD8 7C BF 2B 78 */ mr r31, r5 -/* 802D2FDC 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D2FE0 48 06 C0 61 */ bl OSLockMutex -/* 802D2FE4 2C 1F 00 00 */ cmpwi r31, 0 -/* 802D2FE8 40 82 00 18 */ bne lbl_802D3000 -/* 802D2FEC 7F A3 EB 78 */ mr r3, r29 -/* 802D2FF0 7F C4 F3 78 */ mr r4, r30 -/* 802D2FF4 48 00 00 41 */ bl allocFromHead__11JKRAramHeapFUl -/* 802D2FF8 7C 7F 1B 78 */ mr r31, r3 -/* 802D2FFC 48 00 00 14 */ b lbl_802D3010 -lbl_802D3000: -/* 802D3000 7F A3 EB 78 */ mr r3, r29 -/* 802D3004 7F C4 F3 78 */ mr r4, r30 -/* 802D3008 48 00 00 B5 */ bl allocFromTail__11JKRAramHeapFUl -/* 802D300C 7C 7F 1B 78 */ mr r31, r3 -lbl_802D3010: -/* 802D3010 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D3014 48 06 C1 09 */ bl OSUnlockMutex -/* 802D3018 7F E3 FB 78 */ mr r3, r31 -/* 802D301C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3020 48 08 F2 09 */ bl _restgpr_29 -/* 802D3024 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D3028 7C 08 03 A6 */ mtlr r0 -/* 802D302C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3030 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramHeap/dump__11JKRAramHeapFv.s b/asm/JSystem/JKernel/JKRAramHeap/dump__11JKRAramHeapFv.s deleted file mode 100644 index 9ec600fb46..0000000000 --- a/asm/JSystem/JKernel/JKRAramHeap/dump__11JKRAramHeapFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802D3218: -/* 802D3218 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D321C 7C 08 02 A6 */ mflr r0 -/* 802D3220 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3224 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3228 7C 7F 1B 78 */ mr r31, r3 -/* 802D322C 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D3230 48 06 BE 11 */ bl OSLockMutex -/* 802D3234 3C 60 80 43 */ lis r3, sAramList__11JKRAramHeap@ha /* 0x8043430C@ha */ -/* 802D3238 38 63 43 0C */ addi r3, r3, sAramList__11JKRAramHeap@l /* 0x8043430C@l */ -/* 802D323C 80 63 00 00 */ lwz r3, 0(r3) -/* 802D3240 48 00 00 08 */ b lbl_802D3248 -lbl_802D3244: -/* 802D3244 80 63 00 0C */ lwz r3, 0xc(r3) -lbl_802D3248: -/* 802D3248 28 03 00 00 */ cmplwi r3, 0 -/* 802D324C 40 82 FF F8 */ bne lbl_802D3244 -/* 802D3250 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D3254 48 06 BE C9 */ bl OSUnlockMutex -/* 802D3258 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D325C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3260 7C 08 03 A6 */ mtlr r0 -/* 802D3264 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3268 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramHeap/func_802D32B0.s b/asm/JSystem/JKernel/JKRAramHeap/func_802D32B0.s deleted file mode 100644 index ea2b3ffab8..0000000000 --- a/asm/JSystem/JKernel/JKRAramHeap/func_802D32B0.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802D32B0: -/* 802D32B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D32B4 7C 08 02 A6 */ mflr r0 -/* 802D32B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D32BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D32C0 93 C1 00 08 */ stw r30, 8(r1) -/* 802D32C4 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D32C8 7C 9F 23 78 */ mr r31, r4 -/* 802D32CC 41 82 00 1C */ beq lbl_802D32E8 -/* 802D32D0 38 80 00 00 */ li r4, 0 -/* 802D32D4 48 00 8B D9 */ bl __dt__10JSUPtrListFv -/* 802D32D8 7F E0 07 35 */ extsh. r0, r31 -/* 802D32DC 40 81 00 0C */ ble lbl_802D32E8 -/* 802D32E0 7F C3 F3 78 */ mr r3, r30 -/* 802D32E4 4B FF BA 59 */ bl __dl__FPv -lbl_802D32E8: -/* 802D32E8 7F C3 F3 78 */ mr r3, r30 -/* 802D32EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D32F0 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D32F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D32F8 7C 08 03 A6 */ mtlr r0 -/* 802D32FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3300 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramHeap/getFreeSize__11JKRAramHeapFv.s b/asm/JSystem/JKernel/JKRAramHeap/getFreeSize__11JKRAramHeapFv.s deleted file mode 100644 index 4dd110f5a4..0000000000 --- a/asm/JSystem/JKernel/JKRAramHeap/getFreeSize__11JKRAramHeapFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802D3134: -/* 802D3134 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3138 7C 08 02 A6 */ mflr r0 -/* 802D313C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3140 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3144 93 C1 00 08 */ stw r30, 8(r1) -/* 802D3148 7C 7E 1B 78 */ mr r30, r3 -/* 802D314C 3B E0 00 00 */ li r31, 0 -/* 802D3150 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D3154 48 06 BE ED */ bl OSLockMutex -/* 802D3158 3C 60 80 43 */ lis r3, sAramList__11JKRAramHeap@ha /* 0x8043430C@ha */ -/* 802D315C 38 63 43 0C */ addi r3, r3, sAramList__11JKRAramHeap@l /* 0x8043430C@l */ -/* 802D3160 80 63 00 00 */ lwz r3, 0(r3) -/* 802D3164 48 00 00 1C */ b lbl_802D3180 -lbl_802D3168: -/* 802D3168 80 83 00 00 */ lwz r4, 0(r3) -/* 802D316C 80 04 00 1C */ lwz r0, 0x1c(r4) -/* 802D3170 7C 00 F8 40 */ cmplw r0, r31 -/* 802D3174 40 81 00 08 */ ble lbl_802D317C -/* 802D3178 7C 1F 03 78 */ mr r31, r0 -lbl_802D317C: -/* 802D317C 80 63 00 0C */ lwz r3, 0xc(r3) -lbl_802D3180: -/* 802D3180 28 03 00 00 */ cmplwi r3, 0 -/* 802D3184 40 82 FF E4 */ bne lbl_802D3168 -/* 802D3188 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D318C 48 06 BF 91 */ bl OSUnlockMutex -/* 802D3190 7F E3 FB 78 */ mr r3, r31 -/* 802D3194 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3198 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D319C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D31A0 7C 08 03 A6 */ mtlr r0 -/* 802D31A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D31A8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramHeap/getTotalFreeSize__11JKRAramHeapFv.s b/asm/JSystem/JKernel/JKRAramHeap/getTotalFreeSize__11JKRAramHeapFv.s deleted file mode 100644 index 29e0db7a2b..0000000000 --- a/asm/JSystem/JKernel/JKRAramHeap/getTotalFreeSize__11JKRAramHeapFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_802D31AC: -/* 802D31AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D31B0 7C 08 02 A6 */ mflr r0 -/* 802D31B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D31B8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D31BC 93 C1 00 08 */ stw r30, 8(r1) -/* 802D31C0 7C 7E 1B 78 */ mr r30, r3 -/* 802D31C4 3B E0 00 00 */ li r31, 0 -/* 802D31C8 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D31CC 48 06 BE 75 */ bl OSLockMutex -/* 802D31D0 3C 60 80 43 */ lis r3, sAramList__11JKRAramHeap@ha /* 0x8043430C@ha */ -/* 802D31D4 80 83 43 0C */ lwz r4, sAramList__11JKRAramHeap@l(r3) /* 0x8043430C@l */ -/* 802D31D8 48 00 00 14 */ b lbl_802D31EC -lbl_802D31DC: -/* 802D31DC 80 64 00 00 */ lwz r3, 0(r4) -/* 802D31E0 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 802D31E4 7F FF 02 14 */ add r31, r31, r0 -/* 802D31E8 80 84 00 0C */ lwz r4, 0xc(r4) -lbl_802D31EC: -/* 802D31EC 28 04 00 00 */ cmplwi r4, 0 -/* 802D31F0 40 82 FF EC */ bne lbl_802D31DC -/* 802D31F4 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D31F8 48 06 BF 25 */ bl OSUnlockMutex -/* 802D31FC 7F E3 FB 78 */ mr r3, r31 -/* 802D3200 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3204 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D3208 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D320C 7C 08 03 A6 */ mtlr r0 -/* 802D3210 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3214 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/__ct__12JKRAMCommandFv.s b/asm/JSystem/JKernel/JKRAramPiece/__ct__12JKRAMCommandFv.s deleted file mode 100644 index 73b6c951e5..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/__ct__12JKRAMCommandFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_802D39EC: -/* 802D39EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D39F0 7C 08 02 A6 */ mflr r0 -/* 802D39F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D39F8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D39FC 7C 7F 1B 78 */ mr r31, r3 -/* 802D3A00 7F E4 FB 78 */ mr r4, r31 -/* 802D3A04 38 64 00 20 */ addi r3, r4, 0x20 -/* 802D3A08 48 00 83 F5 */ bl __ct__10JSUPtrLinkFPv -/* 802D3A0C 38 7F 00 30 */ addi r3, r31, 0x30 -/* 802D3A10 7F E4 FB 78 */ mr r4, r31 -/* 802D3A14 48 00 83 E9 */ bl __ct__10JSUPtrLinkFPv -/* 802D3A18 38 7F 00 68 */ addi r3, r31, 0x68 -/* 802D3A1C 38 9F 00 88 */ addi r4, r31, 0x88 -/* 802D3A20 38 A0 00 01 */ li r5, 1 -/* 802D3A24 48 06 AF 71 */ bl OSInitMessageQueue -/* 802D3A28 38 00 00 00 */ li r0, 0 -/* 802D3A2C 90 1F 00 58 */ stw r0, 0x58(r31) -/* 802D3A30 90 1F 00 5C */ stw r0, 0x5c(r31) -/* 802D3A34 90 1F 00 60 */ stw r0, 0x60(r31) -/* 802D3A38 90 1F 00 8C */ stw r0, 0x8c(r31) -/* 802D3A3C 90 1F 00 90 */ stw r0, 0x90(r31) -/* 802D3A40 90 1F 00 94 */ stw r0, 0x94(r31) -/* 802D3A44 7F E3 FB 78 */ mr r3, r31 -/* 802D3A48 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3A4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3A50 7C 08 03 A6 */ mtlr r0 -/* 802D3A54 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3A58 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/__dt__12JKRAMCommandFv.s b/asm/JSystem/JKernel/JKRAramPiece/__dt__12JKRAMCommandFv.s deleted file mode 100644 index 0e82382263..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/__dt__12JKRAMCommandFv.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_802D3A5C: -/* 802D3A5C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3A60 7C 08 02 A6 */ mflr r0 -/* 802D3A64 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3A68 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3A6C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D3A70 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D3A74 7C 9F 23 78 */ mr r31, r4 -/* 802D3A78 41 82 00 70 */ beq lbl_802D3AE8 -/* 802D3A7C 80 7E 00 8C */ lwz r3, 0x8c(r30) -/* 802D3A80 28 03 00 00 */ cmplwi r3, 0 -/* 802D3A84 41 82 00 08 */ beq lbl_802D3A8C -/* 802D3A88 4B FF B2 B5 */ bl __dl__FPv -lbl_802D3A8C: -/* 802D3A8C 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 802D3A90 28 03 00 00 */ cmplwi r3, 0 -/* 802D3A94 41 82 00 08 */ beq lbl_802D3A9C -/* 802D3A98 4B FF B2 A5 */ bl __dl__FPv -lbl_802D3A9C: -/* 802D3A9C 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 802D3AA0 28 03 00 00 */ cmplwi r3, 0 -/* 802D3AA4 41 82 00 0C */ beq lbl_802D3AB0 -/* 802D3AA8 38 80 00 00 */ li r4, 0 -/* 802D3AAC 4B FF AA 55 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D3AB0: -/* 802D3AB0 34 1E 00 30 */ addic. r0, r30, 0x30 -/* 802D3AB4 41 82 00 10 */ beq lbl_802D3AC4 -/* 802D3AB8 38 7E 00 30 */ addi r3, r30, 0x30 -/* 802D3ABC 38 80 00 00 */ li r4, 0 -/* 802D3AC0 48 00 83 55 */ bl __dt__10JSUPtrLinkFv -lbl_802D3AC4: -/* 802D3AC4 34 1E 00 20 */ addic. r0, r30, 0x20 -/* 802D3AC8 41 82 00 10 */ beq lbl_802D3AD8 -/* 802D3ACC 38 7E 00 20 */ addi r3, r30, 0x20 -/* 802D3AD0 38 80 00 00 */ li r4, 0 -/* 802D3AD4 48 00 83 41 */ bl __dt__10JSUPtrLinkFv -lbl_802D3AD8: -/* 802D3AD8 7F E0 07 35 */ extsh. r0, r31 -/* 802D3ADC 40 81 00 0C */ ble lbl_802D3AE8 -/* 802D3AE0 7F C3 F3 78 */ mr r3, r30 -/* 802D3AE4 4B FF B2 59 */ bl __dl__FPv -lbl_802D3AE8: -/* 802D3AE8 7F C3 F3 78 */ mr r3, r30 -/* 802D3AEC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3AF0 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D3AF4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3AF8 7C 08 03 A6 */ mtlr r0 -/* 802D3AFC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3B00 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/__sinit_JKRAramPiece_cpp.s b/asm/JSystem/JKernel/JKRAramPiece/__sinit_JKRAramPiece_cpp.s deleted file mode 100644 index 4b1be5c46c..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/__sinit_JKRAramPiece_cpp.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_802D3B04: -/* 802D3B04 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3B08 7C 08 02 A6 */ mflr r0 -/* 802D3B0C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3B10 3C 60 80 43 */ lis r3, sAramPieceCommandList__12JKRAramPiece@ha /* 0x80434324@ha */ -/* 802D3B14 38 63 43 24 */ addi r3, r3, sAramPieceCommandList__12JKRAramPiece@l /* 0x80434324@l */ -/* 802D3B18 48 00 83 FD */ bl initiate__10JSUPtrListFv -/* 802D3B1C 3C 60 80 43 */ lis r3, sAramPieceCommandList__12JKRAramPiece@ha /* 0x80434324@ha */ -/* 802D3B20 38 63 43 24 */ addi r3, r3, sAramPieceCommandList__12JKRAramPiece@l /* 0x80434324@l */ -/* 802D3B24 3C 80 80 2D */ lis r4, func_802D2DF0@ha /* 0x802D2DF0@ha */ -/* 802D3B28 38 84 2D F0 */ addi r4, r4, func_802D2DF0@l /* 0x802D2DF0@l */ -/* 802D3B2C 3C A0 80 43 */ lis r5, lit_492@ha /* 0x80434318@ha */ -/* 802D3B30 38 A5 43 18 */ addi r5, r5, lit_492@l /* 0x80434318@l */ -/* 802D3B34 48 08 E0 F1 */ bl __register_global_object -/* 802D3B38 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3B3C 7C 08 03 A6 */ mtlr r0 -/* 802D3B40 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3B44 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/doneDMA__12JKRAramPieceFUl.s b/asm/JSystem/JKernel/JKRAramPiece/doneDMA__12JKRAramPieceFUl.s deleted file mode 100644 index d364d566c6..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/doneDMA__12JKRAramPieceFUl.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_802D3944: -/* 802D3944 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3948 7C 08 02 A6 */ mflr r0 -/* 802D394C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3950 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3954 7C 7F 1B 78 */ mr r31, r3 -/* 802D3958 80 03 00 40 */ lwz r0, 0x40(r3) -/* 802D395C 2C 00 00 01 */ cmpwi r0, 1 -/* 802D3960 40 82 00 10 */ bne lbl_802D3970 -/* 802D3964 80 7F 00 4C */ lwz r3, 0x4c(r31) -/* 802D3968 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 802D396C 48 06 7C 15 */ bl DCInvalidateRange -lbl_802D3970: -/* 802D3970 80 1F 00 60 */ lwz r0, 0x60(r31) -/* 802D3974 2C 00 00 00 */ cmpwi r0, 0 -/* 802D3978 41 82 00 18 */ beq lbl_802D3990 -/* 802D397C 2C 00 00 02 */ cmpwi r0, 2 -/* 802D3980 40 82 00 58 */ bne lbl_802D39D8 -/* 802D3984 80 7F 00 64 */ lwz r3, 0x64(r31) -/* 802D3988 48 00 7F 49 */ bl sendCommand__9JKRDecompFP16JKRDecompCommand -/* 802D398C 48 00 00 4C */ b lbl_802D39D8 -lbl_802D3990: -/* 802D3990 81 9F 00 58 */ lwz r12, 0x58(r31) -/* 802D3994 28 0C 00 00 */ cmplwi r12, 0 -/* 802D3998 41 82 00 14 */ beq lbl_802D39AC -/* 802D399C 7F E3 FB 78 */ mr r3, r31 -/* 802D39A0 7D 89 03 A6 */ mtctr r12 -/* 802D39A4 4E 80 04 21 */ bctrl -/* 802D39A8 48 00 00 30 */ b lbl_802D39D8 -lbl_802D39AC: -/* 802D39AC 80 7F 00 5C */ lwz r3, 0x5c(r31) -/* 802D39B0 28 03 00 00 */ cmplwi r3, 0 -/* 802D39B4 41 82 00 14 */ beq lbl_802D39C8 -/* 802D39B8 7F E4 FB 78 */ mr r4, r31 -/* 802D39BC 38 A0 00 00 */ li r5, 0 -/* 802D39C0 48 06 B0 35 */ bl OSSendMessage -/* 802D39C4 48 00 00 14 */ b lbl_802D39D8 -lbl_802D39C8: -/* 802D39C8 38 7F 00 68 */ addi r3, r31, 0x68 -/* 802D39CC 7F E4 FB 78 */ mr r4, r31 -/* 802D39D0 38 A0 00 00 */ li r5, 0 -/* 802D39D4 48 06 B0 21 */ bl OSSendMessage -lbl_802D39D8: -/* 802D39D8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D39DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D39E0 7C 08 03 A6 */ mtlr r0 -/* 802D39E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D39E8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v.s b/asm/JSystem/JKernel/JKRAramPiece/orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v.s deleted file mode 100644 index d51f5707aa..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v.s +++ /dev/null @@ -1,91 +0,0 @@ -lbl_802D3614: -/* 802D3614 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D3618 7C 08 02 A6 */ mflr r0 -/* 802D361C 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D3620 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D3624 48 08 EB A9 */ bl _savegpr_25 -/* 802D3628 7C 7A 1B 78 */ mr r26, r3 -/* 802D362C 7C 9B 23 78 */ mr r27, r4 -/* 802D3630 7C BC 2B 78 */ mr r28, r5 -/* 802D3634 7C DD 33 78 */ mr r29, r6 -/* 802D3638 7C FE 3B 78 */ mr r30, r7 -/* 802D363C 7D 1F 43 78 */ mr r31, r8 -/* 802D3640 3C 60 80 43 */ lis r3, mMutex__12JKRAramPiece@ha /* 0x80434330@ha */ -/* 802D3644 38 63 43 30 */ addi r3, r3, mMutex__12JKRAramPiece@l /* 0x80434330@l */ -/* 802D3648 48 06 B9 F9 */ bl OSLockMutex -/* 802D364C 57 60 06 FF */ clrlwi. r0, r27, 0x1b -/* 802D3650 40 82 00 0C */ bne lbl_802D365C -/* 802D3654 57 80 06 FF */ clrlwi. r0, r28, 0x1b -/* 802D3658 41 82 00 80 */ beq lbl_802D36D8 -lbl_802D365C: -/* 802D365C 3C 60 80 3A */ lis r3, JKRAramPiece__stringBase0@ha /* 0x8039D0B8@ha */ -/* 802D3660 38 63 D0 B8 */ addi r3, r3, JKRAramPiece__stringBase0@l /* 0x8039D0B8@l */ -/* 802D3664 7F 44 D3 78 */ mr r4, r26 -/* 802D3668 4C C6 31 82 */ crclr 6 -/* 802D366C 4B D3 34 51 */ bl OSReport -/* 802D3670 3C 60 80 3A */ lis r3, JKRAramPiece__stringBase0@ha /* 0x8039D0B8@ha */ -/* 802D3674 38 63 D0 B8 */ addi r3, r3, JKRAramPiece__stringBase0@l /* 0x8039D0B8@l */ -/* 802D3678 38 63 00 10 */ addi r3, r3, 0x10 -/* 802D367C 7F 64 DB 78 */ mr r4, r27 -/* 802D3680 4C C6 31 82 */ crclr 6 -/* 802D3684 4B D3 34 39 */ bl OSReport -/* 802D3688 3C 60 80 3A */ lis r3, JKRAramPiece__stringBase0@ha /* 0x8039D0B8@ha */ -/* 802D368C 38 63 D0 B8 */ addi r3, r3, JKRAramPiece__stringBase0@l /* 0x8039D0B8@l */ -/* 802D3690 38 63 00 1D */ addi r3, r3, 0x1d -/* 802D3694 7F 84 E3 78 */ mr r4, r28 -/* 802D3698 4C C6 31 82 */ crclr 6 -/* 802D369C 4B D3 34 21 */ bl OSReport -/* 802D36A0 3C 60 80 3A */ lis r3, JKRAramPiece__stringBase0@ha /* 0x8039D0B8@ha */ -/* 802D36A4 38 63 D0 B8 */ addi r3, r3, JKRAramPiece__stringBase0@l /* 0x8039D0B8@l */ -/* 802D36A8 38 63 00 2F */ addi r3, r3, 0x2f -/* 802D36AC 7F A4 EB 78 */ mr r4, r29 -/* 802D36B0 4C C6 31 82 */ crclr 6 -/* 802D36B4 4B D3 34 09 */ bl OSReport -/* 802D36B8 3C 60 80 3A */ lis r3, JKRAramPiece__stringBase0@ha /* 0x8039D0B8@ha */ -/* 802D36BC 38 C3 D0 B8 */ addi r6, r3, JKRAramPiece__stringBase0@l /* 0x8039D0B8@l */ -/* 802D36C0 38 66 00 3C */ addi r3, r6, 0x3c -/* 802D36C4 38 80 00 6C */ li r4, 0x6c -/* 802D36C8 38 A6 00 4D */ addi r5, r6, 0x4d -/* 802D36CC 38 C6 00 50 */ addi r6, r6, 0x50 -/* 802D36D0 4C C6 31 82 */ crclr 6 -/* 802D36D4 48 00 EB 29 */ bl panic_f__12JUTExceptionFPCciPCce -lbl_802D36D8: -/* 802D36D8 38 60 00 08 */ li r3, 8 -/* 802D36DC 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D36E0 38 A0 FF FC */ li r5, -4 -/* 802D36E4 4B FF B5 B5 */ bl __nw__FUlP7JKRHeapi -/* 802D36E8 7C 79 1B 78 */ mr r25, r3 -/* 802D36EC 7F 43 D3 78 */ mr r3, r26 -/* 802D36F0 7F 64 DB 78 */ mr r4, r27 -/* 802D36F4 7F 85 E3 78 */ mr r5, r28 -/* 802D36F8 7F A6 EB 78 */ mr r6, r29 -/* 802D36FC 7F C7 F3 78 */ mr r7, r30 -/* 802D3700 7F E8 FB 78 */ mr r8, r31 -/* 802D3704 4B FF FE 71 */ bl prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v -/* 802D3708 7C 7A 1B 78 */ mr r26, r3 -/* 802D370C 38 00 00 01 */ li r0, 1 -/* 802D3710 90 19 00 00 */ stw r0, 0(r25) -/* 802D3714 93 59 00 04 */ stw r26, 4(r25) -/* 802D3718 3C 60 80 3D */ lis r3, sMessageQueue__7JKRAram@ha /* 0x803CC138@ha */ -/* 802D371C 38 63 C1 38 */ addi r3, r3, sMessageQueue__7JKRAram@l /* 0x803CC138@l */ -/* 802D3720 7F 24 CB 78 */ mr r4, r25 -/* 802D3724 38 A0 00 01 */ li r5, 1 -/* 802D3728 48 06 B2 CD */ bl OSSendMessage -/* 802D372C 80 1A 00 58 */ lwz r0, 0x58(r26) -/* 802D3730 28 00 00 00 */ cmplwi r0, 0 -/* 802D3734 41 82 00 14 */ beq lbl_802D3748 -/* 802D3738 3C 60 80 43 */ lis r3, sAramPieceCommandList__12JKRAramPiece@ha /* 0x80434324@ha */ -/* 802D373C 38 63 43 24 */ addi r3, r3, sAramPieceCommandList__12JKRAramPiece@l /* 0x80434324@l */ -/* 802D3740 38 9A 00 20 */ addi r4, r26, 0x20 -/* 802D3744 48 00 88 09 */ bl append__10JSUPtrListFP10JSUPtrLink -lbl_802D3748: -/* 802D3748 3C 60 80 43 */ lis r3, mMutex__12JKRAramPiece@ha /* 0x80434330@ha */ -/* 802D374C 38 63 43 30 */ addi r3, r3, mMutex__12JKRAramPiece@l /* 0x80434330@l */ -/* 802D3750 48 06 B9 CD */ bl OSUnlockMutex -/* 802D3754 7F 43 D3 78 */ mr r3, r26 -/* 802D3758 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D375C 48 08 EA BD */ bl _restgpr_25 -/* 802D3760 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D3764 7C 08 03 A6 */ mtlr r0 -/* 802D3768 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D376C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock.s b/asm/JSystem/JKernel/JKRAramPiece/orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock.s deleted file mode 100644 index c79e6b8442..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_802D3838: -/* 802D3838 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D383C 7C 08 02 A6 */ mflr r0 -/* 802D3840 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3844 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3848 48 08 E9 8D */ bl _savegpr_27 -/* 802D384C 7C 7B 1B 78 */ mr r27, r3 -/* 802D3850 7C 9C 23 78 */ mr r28, r4 -/* 802D3854 7C BD 2B 78 */ mr r29, r5 -/* 802D3858 7C DF 33 78 */ mr r31, r6 -/* 802D385C 7C FE 3B 78 */ mr r30, r7 -/* 802D3860 3C 60 80 43 */ lis r3, mMutex__12JKRAramPiece@ha /* 0x80434330@ha */ -/* 802D3864 38 63 43 30 */ addi r3, r3, mMutex__12JKRAramPiece@l /* 0x80434330@l */ -/* 802D3868 48 06 B7 D9 */ bl OSLockMutex -/* 802D386C 7F 63 DB 78 */ mr r3, r27 -/* 802D3870 7F 84 E3 78 */ mr r4, r28 -/* 802D3874 7F A5 EB 78 */ mr r5, r29 -/* 802D3878 7F E6 FB 78 */ mr r6, r31 -/* 802D387C 7F C7 F3 78 */ mr r7, r30 -/* 802D3880 39 00 00 00 */ li r8, 0 -/* 802D3884 4B FF FD 91 */ bl orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v -/* 802D3888 7C 7F 1B 78 */ mr r31, r3 -/* 802D388C 38 80 00 00 */ li r4, 0 -/* 802D3890 4B FF FE E1 */ bl sync__12JKRAramPieceFP12JKRAMCommandi -/* 802D3894 7C 7E 1B 78 */ mr r30, r3 -/* 802D3898 7F E3 FB 78 */ mr r3, r31 -/* 802D389C 38 80 00 01 */ li r4, 1 -/* 802D38A0 48 00 01 BD */ bl __dt__12JKRAMCommandFv -/* 802D38A4 3C 60 80 43 */ lis r3, mMutex__12JKRAramPiece@ha /* 0x80434330@ha */ -/* 802D38A8 38 63 43 30 */ addi r3, r3, mMutex__12JKRAramPiece@l /* 0x80434330@l */ -/* 802D38AC 48 06 B8 71 */ bl OSUnlockMutex -/* 802D38B0 7F C3 F3 78 */ mr r3, r30 -/* 802D38B4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D38B8 48 08 E9 69 */ bl _restgpr_27 -/* 802D38BC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D38C0 7C 08 03 A6 */ mtlr r0 -/* 802D38C4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D38C8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v.s b/asm/JSystem/JKernel/JKRAramPiece/prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v.s deleted file mode 100644 index 66e698d611..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802D3574: -/* 802D3574 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3578 7C 08 02 A6 */ mflr r0 -/* 802D357C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3580 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3584 48 08 EC 4D */ bl _savegpr_26 -/* 802D3588 7C 7A 1B 78 */ mr r26, r3 -/* 802D358C 7C 9B 23 78 */ mr r27, r4 -/* 802D3590 7C BC 2B 78 */ mr r28, r5 -/* 802D3594 7C DD 33 78 */ mr r29, r6 -/* 802D3598 7C FE 3B 78 */ mr r30, r7 -/* 802D359C 7D 1F 43 78 */ mr r31, r8 -/* 802D35A0 38 60 00 98 */ li r3, 0x98 -/* 802D35A4 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D35A8 38 A0 FF FC */ li r5, -4 -/* 802D35AC 4B FF B6 ED */ bl __nw__FUlP7JKRHeapi -/* 802D35B0 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D35B4 41 82 00 0C */ beq lbl_802D35C0 -/* 802D35B8 48 00 04 35 */ bl __ct__12JKRAMCommandFv -/* 802D35BC 7C 64 1B 78 */ mr r4, r3 -lbl_802D35C0: -/* 802D35C0 93 44 00 40 */ stw r26, 0x40(r4) -/* 802D35C4 93 64 00 48 */ stw r27, 0x48(r4) -/* 802D35C8 93 84 00 4C */ stw r28, 0x4c(r4) -/* 802D35CC 93 C4 00 50 */ stw r30, 0x50(r4) -/* 802D35D0 93 A4 00 44 */ stw r29, 0x44(r4) -/* 802D35D4 93 E4 00 58 */ stw r31, 0x58(r4) -/* 802D35D8 7C 83 23 78 */ mr r3, r4 -/* 802D35DC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D35E0 48 08 EC 3D */ bl _restgpr_26 -/* 802D35E4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D35E8 7C 08 03 A6 */ mtlr r0 -/* 802D35EC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D35F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/sendCommand__12JKRAramPieceFP12JKRAMCommand.s b/asm/JSystem/JKernel/JKRAramPiece/sendCommand__12JKRAramPieceFP12JKRAMCommand.s deleted file mode 100644 index e06a1d3bed..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/sendCommand__12JKRAramPieceFP12JKRAMCommand.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_802D35F4: -/* 802D35F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D35F8 7C 08 02 A6 */ mflr r0 -/* 802D35FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3600 48 00 02 CD */ bl startDMA__12JKRAramPieceFP12JKRAMCommand -/* 802D3604 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3608 7C 08 03 A6 */ mtlr r0 -/* 802D360C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3610 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/startDMA__12JKRAramPieceFP12JKRAMCommand.s b/asm/JSystem/JKernel/JKRAramPiece/startDMA__12JKRAramPieceFP12JKRAMCommand.s deleted file mode 100644 index 22afc1e633..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/startDMA__12JKRAramPieceFP12JKRAMCommand.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_802D38CC: -/* 802D38CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D38D0 7C 08 02 A6 */ mflr r0 -/* 802D38D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D38D8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D38DC 7C 7F 1B 78 */ mr r31, r3 -/* 802D38E0 80 03 00 40 */ lwz r0, 0x40(r3) -/* 802D38E4 2C 00 00 01 */ cmpwi r0, 1 -/* 802D38E8 40 82 00 14 */ bne lbl_802D38FC -/* 802D38EC 80 7F 00 4C */ lwz r3, 0x4c(r31) -/* 802D38F0 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 802D38F4 48 06 7C 8D */ bl DCInvalidateRange -/* 802D38F8 48 00 00 10 */ b lbl_802D3908 -lbl_802D38FC: -/* 802D38FC 80 7F 00 48 */ lwz r3, 0x48(r31) -/* 802D3900 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 802D3904 48 06 7C D9 */ bl DCStoreRange -lbl_802D3908: -/* 802D3908 7F E3 FB 78 */ mr r3, r31 -/* 802D390C 38 80 00 00 */ li r4, 0 -/* 802D3910 80 BF 00 40 */ lwz r5, 0x40(r31) -/* 802D3914 38 C0 00 00 */ li r6, 0 -/* 802D3918 80 FF 00 48 */ lwz r7, 0x48(r31) -/* 802D391C 81 1F 00 4C */ lwz r8, 0x4c(r31) -/* 802D3920 81 3F 00 44 */ lwz r9, 0x44(r31) -/* 802D3924 3D 40 80 2D */ lis r10, doneDMA__12JKRAramPieceFUl@ha /* 0x802D3944@ha */ -/* 802D3928 39 4A 39 44 */ addi r10, r10, doneDMA__12JKRAramPieceFUl@l /* 0x802D3944@l */ -/* 802D392C 48 07 E9 A9 */ bl ARQPostRequest -/* 802D3930 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3934 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3938 7C 08 03 A6 */ mtlr r0 -/* 802D393C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3940 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramPiece/sync__12JKRAramPieceFP12JKRAMCommandi.s b/asm/JSystem/JKernel/JKRAramPiece/sync__12JKRAramPieceFP12JKRAMCommandi.s deleted file mode 100644 index a90ec618e2..0000000000 --- a/asm/JSystem/JKernel/JKRAramPiece/sync__12JKRAramPieceFP12JKRAMCommandi.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_802D3770: -/* 802D3770 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3774 7C 08 02 A6 */ mflr r0 -/* 802D3778 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D377C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D3780 93 C1 00 18 */ stw r30, 0x18(r1) -/* 802D3784 7C 7E 1B 78 */ mr r30, r3 -/* 802D3788 7C 9F 23 78 */ mr r31, r4 -/* 802D378C 3C 60 80 43 */ lis r3, mMutex__12JKRAramPiece@ha /* 0x80434330@ha */ -/* 802D3790 38 63 43 30 */ addi r3, r3, mMutex__12JKRAramPiece@l /* 0x80434330@l */ -/* 802D3794 48 06 B8 AD */ bl OSLockMutex -/* 802D3798 2C 1F 00 00 */ cmpwi r31, 0 -/* 802D379C 40 82 00 38 */ bne lbl_802D37D4 -/* 802D37A0 38 7E 00 68 */ addi r3, r30, 0x68 -/* 802D37A4 38 81 00 08 */ addi r4, r1, 8 -/* 802D37A8 38 A0 00 01 */ li r5, 1 -/* 802D37AC 48 06 B3 11 */ bl OSReceiveMessage -/* 802D37B0 3C 60 80 43 */ lis r3, sAramPieceCommandList__12JKRAramPiece@ha /* 0x80434324@ha */ -/* 802D37B4 38 63 43 24 */ addi r3, r3, sAramPieceCommandList__12JKRAramPiece@l /* 0x80434324@l */ -/* 802D37B8 38 9E 00 20 */ addi r4, r30, 0x20 -/* 802D37BC 48 00 89 A1 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D37C0 3C 60 80 43 */ lis r3, mMutex__12JKRAramPiece@ha /* 0x80434330@ha */ -/* 802D37C4 38 63 43 30 */ addi r3, r3, mMutex__12JKRAramPiece@l /* 0x80434330@l */ -/* 802D37C8 48 06 B9 55 */ bl OSUnlockMutex -/* 802D37CC 38 60 00 01 */ li r3, 1 -/* 802D37D0 48 00 00 50 */ b lbl_802D3820 -lbl_802D37D4: -/* 802D37D4 38 7E 00 68 */ addi r3, r30, 0x68 -/* 802D37D8 38 81 00 08 */ addi r4, r1, 8 -/* 802D37DC 38 A0 00 00 */ li r5, 0 -/* 802D37E0 48 06 B2 DD */ bl OSReceiveMessage -/* 802D37E4 2C 03 00 00 */ cmpwi r3, 0 -/* 802D37E8 40 82 00 18 */ bne lbl_802D3800 -/* 802D37EC 3C 60 80 43 */ lis r3, mMutex__12JKRAramPiece@ha /* 0x80434330@ha */ -/* 802D37F0 38 63 43 30 */ addi r3, r3, mMutex__12JKRAramPiece@l /* 0x80434330@l */ -/* 802D37F4 48 06 B9 29 */ bl OSUnlockMutex -/* 802D37F8 38 60 00 00 */ li r3, 0 -/* 802D37FC 48 00 00 24 */ b lbl_802D3820 -lbl_802D3800: -/* 802D3800 3C 60 80 43 */ lis r3, sAramPieceCommandList__12JKRAramPiece@ha /* 0x80434324@ha */ -/* 802D3804 38 63 43 24 */ addi r3, r3, sAramPieceCommandList__12JKRAramPiece@l /* 0x80434324@l */ -/* 802D3808 38 9E 00 20 */ addi r4, r30, 0x20 -/* 802D380C 48 00 89 51 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D3810 3C 60 80 43 */ lis r3, mMutex__12JKRAramPiece@ha /* 0x80434330@ha */ -/* 802D3814 38 63 43 30 */ addi r3, r3, mMutex__12JKRAramPiece@l /* 0x80434330@l */ -/* 802D3818 48 06 B9 05 */ bl OSUnlockMutex -/* 802D381C 38 60 00 01 */ li r3, 1 -lbl_802D3820: -/* 802D3820 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802D3824 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 802D3828 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D382C 7C 08 03 A6 */ mtlr r0 -/* 802D3830 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3834 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramStream/__ct__13JKRAramStreamFl.s b/asm/JSystem/JKernel/JKRAramStream/__ct__13JKRAramStreamFl.s deleted file mode 100644 index 8c6609955b..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/__ct__13JKRAramStreamFl.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_802D3BB8: -/* 802D3BB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3BBC 7C 08 02 A6 */ mflr r0 -/* 802D3BC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3BC4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3BC8 7C 7F 1B 78 */ mr r31, r3 -/* 802D3BCC 7C 86 23 78 */ mr r6, r4 -/* 802D3BD0 38 80 0C 00 */ li r4, 0xc00 -/* 802D3BD4 38 A0 00 10 */ li r5, 0x10 -/* 802D3BD8 4B FF D9 91 */ bl __ct__9JKRThreadFUlii -/* 802D3BDC 3C 60 80 3D */ lis r3, __vt__13JKRAramStream@ha /* 0x803CC1B8@ha */ -/* 802D3BE0 38 03 C1 B8 */ addi r0, r3, __vt__13JKRAramStream@l /* 0x803CC1B8@l */ -/* 802D3BE4 90 1F 00 00 */ stw r0, 0(r31) -/* 802D3BE8 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 802D3BEC 48 06 DB C9 */ bl OSResumeThread -/* 802D3BF0 7F E3 FB 78 */ mr r3, r31 -/* 802D3BF4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3BF8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3BFC 7C 08 03 A6 */ mtlr r0 -/* 802D3C00 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3C04 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramStream/__ct__20JKRAramStreamCommandFv.s b/asm/JSystem/JKernel/JKRAramStream/__ct__20JKRAramStreamCommandFv.s deleted file mode 100644 index 779496c525..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/__ct__20JKRAramStreamCommandFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802D4088: -/* 802D4088 38 00 00 00 */ li r0, 0 -/* 802D408C 98 03 00 28 */ stb r0, 0x28(r3) -/* 802D4090 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramStream/__dt__13JKRAramStreamFv.s b/asm/JSystem/JKernel/JKRAramStream/__dt__13JKRAramStreamFv.s deleted file mode 100644 index edbc197fa9..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/__dt__13JKRAramStreamFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802D3C08: -/* 802D3C08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3C0C 7C 08 02 A6 */ mflr r0 -/* 802D3C10 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3C14 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3C18 93 C1 00 08 */ stw r30, 8(r1) -/* 802D3C1C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D3C20 7C 9F 23 78 */ mr r31, r4 -/* 802D3C24 41 82 00 28 */ beq lbl_802D3C4C -/* 802D3C28 3C 80 80 3D */ lis r4, __vt__13JKRAramStream@ha /* 0x803CC1B8@ha */ -/* 802D3C2C 38 04 C1 B8 */ addi r0, r4, __vt__13JKRAramStream@l /* 0x803CC1B8@l */ -/* 802D3C30 90 1E 00 00 */ stw r0, 0(r30) -/* 802D3C34 38 80 00 00 */ li r4, 0 -/* 802D3C38 4B FF DB 21 */ bl __dt__9JKRThreadFv -/* 802D3C3C 7F E0 07 35 */ extsh. r0, r31 -/* 802D3C40 40 81 00 0C */ ble lbl_802D3C4C -/* 802D3C44 7F C3 F3 78 */ mr r3, r30 -/* 802D3C48 4B FF B0 F5 */ bl __dl__FPv -lbl_802D3C4C: -/* 802D3C4C 7F C3 F3 78 */ mr r3, r30 -/* 802D3C50 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3C54 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D3C58 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3C5C 7C 08 03 A6 */ mtlr r0 -/* 802D3C60 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3C64 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramStream/create__13JKRAramStreamFl.s b/asm/JSystem/JKernel/JKRAramStream/create__13JKRAramStreamFl.s deleted file mode 100644 index a700f106c9..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/create__13JKRAramStreamFl.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_802D3B48: -/* 802D3B48 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3B4C 7C 08 02 A6 */ mflr r0 -/* 802D3B50 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3B54 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3B58 7C 7F 1B 78 */ mr r31, r3 -/* 802D3B5C 80 0D 8E 88 */ lwz r0, sAramStreamObject__13JKRAramStream(r13) -/* 802D3B60 28 00 00 00 */ cmplwi r0, 0 -/* 802D3B64 40 82 00 3C */ bne lbl_802D3BA0 -/* 802D3B68 38 60 00 7C */ li r3, 0x7c -/* 802D3B6C 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D3B70 38 A0 00 00 */ li r5, 0 -/* 802D3B74 4B FF B1 25 */ bl __nw__FUlP7JKRHeapi -/* 802D3B78 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D3B7C 41 82 00 10 */ beq lbl_802D3B8C -/* 802D3B80 7F E4 FB 78 */ mr r4, r31 -/* 802D3B84 48 00 00 35 */ bl __ct__13JKRAramStreamFl -/* 802D3B88 7C 60 1B 78 */ mr r0, r3 -lbl_802D3B8C: -/* 802D3B8C 90 0D 8E 88 */ stw r0, sAramStreamObject__13JKRAramStream(r13) -/* 802D3B90 38 60 00 00 */ li r3, 0 -/* 802D3B94 38 80 00 00 */ li r4, 0 -/* 802D3B98 38 A0 00 00 */ li r5, 0 -/* 802D3B9C 48 00 04 99 */ bl setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap -lbl_802D3BA0: -/* 802D3BA0 80 6D 8E 88 */ lwz r3, sAramStreamObject__13JKRAramStream(r13) -/* 802D3BA4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3BA8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3BAC 7C 08 03 A6 */ mtlr r0 -/* 802D3BB0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3BB4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramStream/getAvailable__20JSURandomInputStreamCFv.s b/asm/JSystem/JKernel/JKRAramStream/getAvailable__20JSURandomInputStreamCFv.s deleted file mode 100644 index 1a28ad59f7..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/getAvailable__20JSURandomInputStreamCFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802D4094: -/* 802D4094 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D4098 7C 08 02 A6 */ mflr r0 -/* 802D409C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D40A0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D40A4 93 C1 00 08 */ stw r30, 8(r1) -/* 802D40A8 7C 7E 1B 78 */ mr r30, r3 -/* 802D40AC 81 83 00 00 */ lwz r12, 0(r3) -/* 802D40B0 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802D40B4 7D 89 03 A6 */ mtctr r12 -/* 802D40B8 4E 80 04 21 */ bctrl -/* 802D40BC 7C 7F 1B 78 */ mr r31, r3 -/* 802D40C0 7F C3 F3 78 */ mr r3, r30 -/* 802D40C4 81 9E 00 00 */ lwz r12, 0(r30) -/* 802D40C8 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D40CC 7D 89 03 A6 */ mtctr r12 -/* 802D40D0 4E 80 04 21 */ bctrl -/* 802D40D4 7C 63 F8 50 */ subf r3, r3, r31 -/* 802D40D8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D40DC 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D40E0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D40E4 7C 08 03 A6 */ mtlr r0 -/* 802D40E8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D40EC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramStream/run__13JKRAramStreamFv.s b/asm/JSystem/JKernel/JKRAramStream/run__13JKRAramStreamFv.s deleted file mode 100644 index 73c176607c..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/run__13JKRAramStreamFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_802D3C68: -/* 802D3C68 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3C6C 7C 08 02 A6 */ mflr r0 -/* 802D3C70 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3C74 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D3C78 3C 60 80 3D */ lis r3, sMessageQueue__13JKRAramStream@ha /* 0x803CC198@ha */ -/* 802D3C7C 38 63 C1 98 */ addi r3, r3, sMessageQueue__13JKRAramStream@l /* 0x803CC198@l */ -/* 802D3C80 3C 80 80 3D */ lis r4, sMessageBuffer__13JKRAramStream@ha /* 0x803CC188@ha */ -/* 802D3C84 38 84 C1 88 */ addi r4, r4, sMessageBuffer__13JKRAramStream@l /* 0x803CC188@l */ -/* 802D3C88 38 A0 00 04 */ li r5, 4 -/* 802D3C8C 48 06 AD 09 */ bl OSInitMessageQueue -/* 802D3C90 3C 60 80 3D */ lis r3, sMessageQueue__13JKRAramStream@ha /* 0x803CC198@ha */ -/* 802D3C94 3B E3 C1 98 */ addi r31, r3, sMessageQueue__13JKRAramStream@l /* 0x803CC198@l */ -lbl_802D3C98: -/* 802D3C98 7F E3 FB 78 */ mr r3, r31 -/* 802D3C9C 38 81 00 08 */ addi r4, r1, 8 -/* 802D3CA0 38 A0 00 01 */ li r5, 1 -/* 802D3CA4 48 06 AE 19 */ bl OSReceiveMessage -/* 802D3CA8 80 61 00 08 */ lwz r3, 8(r1) -/* 802D3CAC 80 03 00 00 */ lwz r0, 0(r3) -/* 802D3CB0 2C 00 00 02 */ cmpwi r0, 2 -/* 802D3CB4 41 82 00 1C */ beq lbl_802D3CD0 -/* 802D3CB8 40 80 FF E0 */ bge lbl_802D3C98 -/* 802D3CBC 2C 00 00 01 */ cmpwi r0, 1 -/* 802D3CC0 40 80 00 08 */ bge lbl_802D3CC8 -/* 802D3CC4 4B FF FF D4 */ b lbl_802D3C98 -lbl_802D3CC8: -/* 802D3CC8 48 00 00 11 */ bl readFromAram__13JKRAramStreamFv -/* 802D3CCC 4B FF FF CC */ b lbl_802D3C98 -lbl_802D3CD0: -/* 802D3CD0 48 00 00 11 */ bl writeToAram__13JKRAramStreamFP20JKRAramStreamCommand -/* 802D3CD4 4B FF FF C4 */ b lbl_802D3C98 diff --git a/asm/JSystem/JKernel/JKRAramStream/setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap.s b/asm/JSystem/JKernel/JKRAramStream/setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap.s deleted file mode 100644 index afedb86f37..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802D4034: -/* 802D4034 38 E0 00 00 */ li r7, 0 -/* 802D4038 90 ED 8E 8C */ stw r7, transBuffer__13JKRAramStream(r13) -/* 802D403C 3C C0 00 01 */ lis r6, 0x0001 /* 0x00008000@ha */ -/* 802D4040 38 06 80 00 */ addi r0, r6, 0x8000 /* 0x00008000@l */ -/* 802D4044 90 0D 8E 90 */ stw r0, transSize__13JKRAramStream(r13) -/* 802D4048 90 ED 8E 94 */ stw r7, transHeap__13JKRAramStream(r13) -/* 802D404C 28 03 00 00 */ cmplwi r3, 0 -/* 802D4050 41 82 00 10 */ beq lbl_802D4060 -/* 802D4054 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D4058 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a -/* 802D405C 90 0D 8E 8C */ stw r0, transBuffer__13JKRAramStream(r13) -lbl_802D4060: -/* 802D4060 28 04 00 00 */ cmplwi r4, 0 -/* 802D4064 41 82 00 0C */ beq lbl_802D4070 -/* 802D4068 54 80 00 34 */ rlwinm r0, r4, 0, 0, 0x1a -/* 802D406C 90 0D 8E 90 */ stw r0, transSize__13JKRAramStream(r13) -lbl_802D4070: -/* 802D4070 28 05 00 00 */ cmplwi r5, 0 -/* 802D4074 4D 82 00 20 */ beqlr -/* 802D4078 28 03 00 00 */ cmplwi r3, 0 -/* 802D407C 4C 82 00 20 */ bnelr -/* 802D4080 90 AD 8E 94 */ stw r5, transHeap__13JKRAramStream(r13) -/* 802D4084 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramStream/sync__13JKRAramStreamFP20JKRAramStreamCommandi.s b/asm/JSystem/JKernel/JKRAramStream/sync__13JKRAramStreamFP20JKRAramStreamCommandi.s deleted file mode 100644 index 6d6b76adcd..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/sync__13JKRAramStreamFP20JKRAramStreamCommandi.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_802D3FA0: -/* 802D3FA0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3FA4 7C 08 02 A6 */ mflr r0 -/* 802D3FA8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3FAC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D3FB0 7C 7F 1B 78 */ mr r31, r3 -/* 802D3FB4 2C 04 00 00 */ cmpwi r4, 0 -/* 802D3FB8 40 82 00 30 */ bne lbl_802D3FE8 -/* 802D3FBC 38 7F 00 30 */ addi r3, r31, 0x30 -/* 802D3FC0 38 81 00 08 */ addi r4, r1, 8 -/* 802D3FC4 38 A0 00 01 */ li r5, 1 -/* 802D3FC8 48 06 AA F5 */ bl OSReceiveMessage -/* 802D3FCC 80 01 00 08 */ lwz r0, 8(r1) -/* 802D3FD0 28 00 00 00 */ cmplwi r0, 0 -/* 802D3FD4 40 82 00 0C */ bne lbl_802D3FE0 -/* 802D3FD8 38 60 00 00 */ li r3, 0 -/* 802D3FDC 48 00 00 44 */ b lbl_802D4020 -lbl_802D3FE0: -/* 802D3FE0 7F E3 FB 78 */ mr r3, r31 -/* 802D3FE4 48 00 00 3C */ b lbl_802D4020 -lbl_802D3FE8: -/* 802D3FE8 38 7F 00 30 */ addi r3, r31, 0x30 -/* 802D3FEC 38 81 00 08 */ addi r4, r1, 8 -/* 802D3FF0 38 A0 00 00 */ li r5, 0 -/* 802D3FF4 48 06 AA C9 */ bl OSReceiveMessage -/* 802D3FF8 2C 03 00 00 */ cmpwi r3, 0 -/* 802D3FFC 40 82 00 0C */ bne lbl_802D4008 -/* 802D4000 38 60 00 00 */ li r3, 0 -/* 802D4004 48 00 00 1C */ b lbl_802D4020 -lbl_802D4008: -/* 802D4008 80 01 00 08 */ lwz r0, 8(r1) -/* 802D400C 28 00 00 00 */ cmplwi r0, 0 -/* 802D4010 40 82 00 0C */ bne lbl_802D401C -/* 802D4014 38 60 00 00 */ li r3, 0 -/* 802D4018 48 00 00 08 */ b lbl_802D4020 -lbl_802D401C: -/* 802D401C 7F E3 FB 78 */ mr r3, r31 -lbl_802D4020: -/* 802D4020 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802D4024 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D4028 7C 08 03 A6 */ mtlr r0 -/* 802D402C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D4030 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAramStream/write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl.s b/asm/JSystem/JKernel/JKRAramStream/write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl.s deleted file mode 100644 index 811fcf3375..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_802D3ED0: -/* 802D3ED0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3ED4 7C 08 02 A6 */ mflr r0 -/* 802D3ED8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3EDC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3EE0 48 08 E2 F1 */ bl _savegpr_26 -/* 802D3EE4 7C 7A 1B 78 */ mr r26, r3 -/* 802D3EE8 7C 9B 23 78 */ mr r27, r4 -/* 802D3EEC 7C BC 2B 78 */ mr r28, r5 -/* 802D3EF0 7C DD 33 78 */ mr r29, r6 -/* 802D3EF4 7C FE 3B 78 */ mr r30, r7 -/* 802D3EF8 38 60 00 5C */ li r3, 0x5c -/* 802D3EFC 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D3F00 38 A0 FF FC */ li r5, -4 -/* 802D3F04 4B FF AD 95 */ bl __nw__FUlP7JKRHeapi -/* 802D3F08 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D3F0C 41 82 00 0C */ beq lbl_802D3F18 -/* 802D3F10 48 00 01 79 */ bl __ct__20JKRAramStreamCommandFv -/* 802D3F14 7C 7F 1B 78 */ mr r31, r3 -lbl_802D3F18: -/* 802D3F18 38 00 00 02 */ li r0, 2 -/* 802D3F1C 90 1F 00 00 */ stw r0, 0(r31) -/* 802D3F20 93 7F 00 04 */ stw r27, 4(r31) -/* 802D3F24 93 9F 00 08 */ stw r28, 8(r31) -/* 802D3F28 93 5F 00 10 */ stw r26, 0x10(r31) -/* 802D3F2C 38 60 00 00 */ li r3, 0 -/* 802D3F30 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 802D3F34 93 BF 00 14 */ stw r29, 0x14(r31) -/* 802D3F38 80 0D 8E 8C */ lwz r0, transBuffer__13JKRAramStream(r13) -/* 802D3F3C 90 1F 00 1C */ stw r0, 0x1c(r31) -/* 802D3F40 80 0D 8E 94 */ lwz r0, transHeap__13JKRAramStream(r13) -/* 802D3F44 90 1F 00 24 */ stw r0, 0x24(r31) -/* 802D3F48 80 0D 8E 90 */ lwz r0, transSize__13JKRAramStream(r13) -/* 802D3F4C 90 1F 00 20 */ stw r0, 0x20(r31) -/* 802D3F50 93 DF 00 18 */ stw r30, 0x18(r31) -/* 802D3F54 28 1E 00 00 */ cmplwi r30, 0 -/* 802D3F58 41 82 00 08 */ beq lbl_802D3F60 -/* 802D3F5C 90 7E 00 00 */ stw r3, 0(r30) -lbl_802D3F60: -/* 802D3F60 38 7F 00 30 */ addi r3, r31, 0x30 -/* 802D3F64 38 9F 00 50 */ addi r4, r31, 0x50 -/* 802D3F68 38 A0 00 01 */ li r5, 1 -/* 802D3F6C 48 06 AA 29 */ bl OSInitMessageQueue -/* 802D3F70 3C 60 80 3D */ lis r3, sMessageQueue__13JKRAramStream@ha /* 0x803CC198@ha */ -/* 802D3F74 38 63 C1 98 */ addi r3, r3, sMessageQueue__13JKRAramStream@l /* 0x803CC198@l */ -/* 802D3F78 7F E4 FB 78 */ mr r4, r31 -/* 802D3F7C 38 A0 00 01 */ li r5, 1 -/* 802D3F80 48 06 AA 75 */ bl OSSendMessage -/* 802D3F84 7F E3 FB 78 */ mr r3, r31 -/* 802D3F88 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3F8C 48 08 E2 91 */ bl _restgpr_26 -/* 802D3F90 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D3F94 7C 08 03 A6 */ mtlr r0 -/* 802D3F98 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3F9C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/__ct__10JKRArchiveFlQ210JKRArchive10EMountMode.s b/asm/JSystem/JKernel/JKRArchivePri/__ct__10JKRArchiveFlQ210JKRArchive10EMountMode.s deleted file mode 100644 index d7ff34995e..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/__ct__10JKRArchiveFlQ210JKRArchive10EMountMode.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_802D6294: -/* 802D6294 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D6298 7C 08 02 A6 */ mflr r0 -/* 802D629C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D62A0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D62A4 48 08 BF 39 */ bl _savegpr_29 -/* 802D62A8 7C 7D 1B 78 */ mr r29, r3 -/* 802D62AC 7C 9E 23 78 */ mr r30, r4 -/* 802D62B0 7C BF 2B 78 */ mr r31, r5 -/* 802D62B4 4B FF DE 3D */ bl __ct__13JKRFileLoaderFv -/* 802D62B8 3C 60 80 3D */ lis r3, __vt__10JKRArchive@ha /* 0x803CC288@ha */ -/* 802D62BC 38 03 C2 88 */ addi r0, r3, __vt__10JKRArchive@l /* 0x803CC288@l */ -/* 802D62C0 90 1D 00 00 */ stw r0, 0(r29) -/* 802D62C4 38 00 00 00 */ li r0, 0 -/* 802D62C8 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D62CC 9B FD 00 3C */ stb r31, 0x3c(r29) -/* 802D62D0 38 00 00 01 */ li r0, 1 -/* 802D62D4 90 1D 00 34 */ stw r0, 0x34(r29) -/* 802D62D8 90 1D 00 58 */ stw r0, 0x58(r29) -/* 802D62DC 7F A3 EB 78 */ mr r3, r29 -/* 802D62E0 4B FF 85 5D */ bl findFromRoot__7JKRHeapFPv -/* 802D62E4 90 7D 00 38 */ stw r3, 0x38(r29) -/* 802D62E8 80 1D 00 38 */ lwz r0, 0x38(r29) -/* 802D62EC 28 00 00 00 */ cmplwi r0, 0 -/* 802D62F0 40 82 00 0C */ bne lbl_802D62FC -/* 802D62F4 80 0D 8D F4 */ lwz r0, sCurrentHeap__7JKRHeap(r13) -/* 802D62F8 90 1D 00 38 */ stw r0, 0x38(r29) -lbl_802D62FC: -/* 802D62FC 93 DD 00 40 */ stw r30, 0x40(r29) -/* 802D6300 80 0D 8E 98 */ lwz r0, sCurrentVolume__13JKRFileLoader(r13) -/* 802D6304 28 00 00 00 */ cmplwi r0, 0 -/* 802D6308 40 82 00 10 */ bne lbl_802D6318 -/* 802D630C 93 AD 8E 98 */ stw r29, sCurrentVolume__13JKRFileLoader(r13) -/* 802D6310 38 00 00 00 */ li r0, 0 -/* 802D6314 90 0D 8E A0 */ stw r0, sCurrentDirID__10JKRArchive(r13) -lbl_802D6318: -/* 802D6318 7F A3 EB 78 */ mr r3, r29 -/* 802D631C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6320 48 08 BF 09 */ bl _restgpr_29 -/* 802D6324 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6328 7C 08 03 A6 */ mtlr r0 -/* 802D632C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6330 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/__dt__10JKRArchiveFv.s b/asm/JSystem/JKernel/JKRArchivePri/__dt__10JKRArchiveFv.s deleted file mode 100644 index 90fb8e9716..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/__dt__10JKRArchiveFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802D6334: -/* 802D6334 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6338 7C 08 02 A6 */ mflr r0 -/* 802D633C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6340 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D6344 93 C1 00 08 */ stw r30, 8(r1) -/* 802D6348 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D634C 7C 9F 23 78 */ mr r31, r4 -/* 802D6350 41 82 00 28 */ beq lbl_802D6378 -/* 802D6354 3C 80 80 3D */ lis r4, __vt__10JKRArchive@ha /* 0x803CC288@ha */ -/* 802D6358 38 04 C2 88 */ addi r0, r4, __vt__10JKRArchive@l /* 0x803CC288@l */ -/* 802D635C 90 1E 00 00 */ stw r0, 0(r30) -/* 802D6360 38 80 00 00 */ li r4, 0 -/* 802D6364 4B FF DD E5 */ bl __dt__13JKRFileLoaderFv -/* 802D6368 7F E0 07 35 */ extsh. r0, r31 -/* 802D636C 40 81 00 0C */ ble lbl_802D6378 -/* 802D6370 7F C3 F3 78 */ mr r3, r30 -/* 802D6374 4B FF 89 C9 */ bl __dl__FPv -lbl_802D6378: -/* 802D6378 7F C3 F3 78 */ mr r3, r30 -/* 802D637C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D6380 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D6384 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6388 7C 08 03 A6 */ mtlr r0 -/* 802D638C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6390 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/findDirectory__10JKRArchiveCFPCcUl.s b/asm/JSystem/JKernel/JKRArchivePri/findDirectory__10JKRArchiveCFPCcUl.s deleted file mode 100644 index 02e8832c2e..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/findDirectory__10JKRArchiveCFPCcUl.s +++ /dev/null @@ -1,61 +0,0 @@ -lbl_802D641C: -/* 802D641C 94 21 FE D0 */ stwu r1, -0x130(r1) -/* 802D6420 7C 08 02 A6 */ mflr r0 -/* 802D6424 90 01 01 34 */ stw r0, 0x134(r1) -/* 802D6428 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D642C 48 08 BD A9 */ bl _savegpr_27 -/* 802D6430 7C 7B 1B 78 */ mr r27, r3 -/* 802D6434 7C BD 2B 78 */ mr r29, r5 -/* 802D6438 28 04 00 00 */ cmplwi r4, 0 -/* 802D643C 40 82 00 14 */ bne lbl_802D6450 -/* 802D6440 80 7B 00 48 */ lwz r3, 0x48(r27) -/* 802D6444 57 A0 20 36 */ slwi r0, r29, 4 -/* 802D6448 7C 63 02 14 */ add r3, r3, r0 -/* 802D644C 48 00 00 90 */ b lbl_802D64DC -lbl_802D6450: -/* 802D6450 38 61 00 08 */ addi r3, r1, 8 -/* 802D6454 38 A0 00 2F */ li r5, 0x2f -/* 802D6458 48 00 04 2D */ bl store__Q210JKRArchive8CArcNameFPCcc -/* 802D645C 7C 7C 1B 78 */ mr r28, r3 -/* 802D6460 80 7B 00 48 */ lwz r3, 0x48(r27) -/* 802D6464 57 A0 20 36 */ slwi r0, r29, 4 -/* 802D6468 7F E3 02 14 */ add r31, r3, r0 -/* 802D646C 80 7B 00 4C */ lwz r3, 0x4c(r27) -/* 802D6470 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 802D6474 1C 00 00 14 */ mulli r0, r0, 0x14 -/* 802D6478 7F C3 02 14 */ add r30, r3, r0 -/* 802D647C 3B A0 00 00 */ li r29, 0 -/* 802D6480 48 00 00 4C */ b lbl_802D64CC -lbl_802D6484: -/* 802D6484 7F 63 DB 78 */ mr r3, r27 -/* 802D6488 38 81 00 08 */ addi r4, r1, 8 -/* 802D648C 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D6490 54 05 02 3E */ clrlwi r5, r0, 8 -/* 802D6494 A0 DE 00 02 */ lhz r6, 2(r30) -/* 802D6498 4B FF FE FD */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs -/* 802D649C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D64A0 41 82 00 24 */ beq lbl_802D64C4 -/* 802D64A4 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D64A8 54 00 47 BD */ rlwinm. r0, r0, 8, 0x1e, 0x1e -/* 802D64AC 41 82 00 2C */ beq lbl_802D64D8 -/* 802D64B0 7F 63 DB 78 */ mr r3, r27 -/* 802D64B4 7F 84 E3 78 */ mr r4, r28 -/* 802D64B8 80 BE 00 08 */ lwz r5, 8(r30) -/* 802D64BC 4B FF FF 61 */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D64C0 48 00 00 1C */ b lbl_802D64DC -lbl_802D64C4: -/* 802D64C4 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D64C8 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D64CC: -/* 802D64CC A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 802D64D0 7C 1D 00 00 */ cmpw r29, r0 -/* 802D64D4 41 80 FF B0 */ blt lbl_802D6484 -lbl_802D64D8: -/* 802D64D8 38 60 00 00 */ li r3, 0 -lbl_802D64DC: -/* 802D64DC 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D64E0 48 08 BD 41 */ bl _restgpr_27 -/* 802D64E4 80 01 01 34 */ lwz r0, 0x134(r1) -/* 802D64E8 7C 08 03 A6 */ mtlr r0 -/* 802D64EC 38 21 01 30 */ addi r1, r1, 0x130 -/* 802D64F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/findFsResource__10JKRArchiveCFPCcUl.s b/asm/JSystem/JKernel/JKRArchivePri/findFsResource__10JKRArchiveCFPCcUl.s deleted file mode 100644 index 858c8e2470..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/findFsResource__10JKRArchiveCFPCcUl.s +++ /dev/null @@ -1,64 +0,0 @@ -lbl_802D65A4: -/* 802D65A4 94 21 FE D0 */ stwu r1, -0x130(r1) -/* 802D65A8 7C 08 02 A6 */ mflr r0 -/* 802D65AC 90 01 01 34 */ stw r0, 0x134(r1) -/* 802D65B0 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D65B4 48 08 BC 21 */ bl _savegpr_27 -/* 802D65B8 7C 7B 1B 78 */ mr r27, r3 -/* 802D65BC 7C BD 2B 78 */ mr r29, r5 -/* 802D65C0 28 04 00 00 */ cmplwi r4, 0 -/* 802D65C4 41 82 00 A4 */ beq lbl_802D6668 -/* 802D65C8 38 61 00 08 */ addi r3, r1, 8 -/* 802D65CC 38 A0 00 2F */ li r5, 0x2f -/* 802D65D0 48 00 02 B5 */ bl store__Q210JKRArchive8CArcNameFPCcc -/* 802D65D4 7C 7C 1B 78 */ mr r28, r3 -/* 802D65D8 80 7B 00 48 */ lwz r3, 0x48(r27) -/* 802D65DC 57 A0 20 36 */ slwi r0, r29, 4 -/* 802D65E0 7F E3 02 14 */ add r31, r3, r0 -/* 802D65E4 80 7B 00 4C */ lwz r3, 0x4c(r27) -/* 802D65E8 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 802D65EC 1C 00 00 14 */ mulli r0, r0, 0x14 -/* 802D65F0 7F C3 02 14 */ add r30, r3, r0 -/* 802D65F4 3B A0 00 00 */ li r29, 0 -/* 802D65F8 48 00 00 64 */ b lbl_802D665C -lbl_802D65FC: -/* 802D65FC 7F 63 DB 78 */ mr r3, r27 -/* 802D6600 38 81 00 08 */ addi r4, r1, 8 -/* 802D6604 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D6608 54 05 02 3E */ clrlwi r5, r0, 8 -/* 802D660C A0 DE 00 02 */ lhz r6, 2(r30) -/* 802D6610 4B FF FD 85 */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs -/* 802D6614 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D6618 41 82 00 3C */ beq lbl_802D6654 -/* 802D661C 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D6620 54 00 47 BD */ rlwinm. r0, r0, 8, 0x1e, 0x1e -/* 802D6624 41 82 00 18 */ beq lbl_802D663C -/* 802D6628 7F 63 DB 78 */ mr r3, r27 -/* 802D662C 7F 84 E3 78 */ mr r4, r28 -/* 802D6630 80 BE 00 08 */ lwz r5, 8(r30) -/* 802D6634 4B FF FF 71 */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D6638 48 00 00 34 */ b lbl_802D666C -lbl_802D663C: -/* 802D663C 28 1C 00 00 */ cmplwi r28, 0 -/* 802D6640 40 82 00 0C */ bne lbl_802D664C -/* 802D6644 7F C3 F3 78 */ mr r3, r30 -/* 802D6648 48 00 00 24 */ b lbl_802D666C -lbl_802D664C: -/* 802D664C 38 60 00 00 */ li r3, 0 -/* 802D6650 48 00 00 1C */ b lbl_802D666C -lbl_802D6654: -/* 802D6654 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D6658 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D665C: -/* 802D665C A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 802D6660 7C 1D 00 00 */ cmpw r29, r0 -/* 802D6664 41 80 FF 98 */ blt lbl_802D65FC -lbl_802D6668: -/* 802D6668 38 60 00 00 */ li r3, 0 -lbl_802D666C: -/* 802D666C 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D6670 48 08 BB B1 */ bl _restgpr_27 -/* 802D6674 80 01 01 34 */ lwz r0, 0x134(r1) -/* 802D6678 7C 08 03 A6 */ mtlr r0 -/* 802D667C 38 21 01 30 */ addi r1, r1, 0x130 -/* 802D6680 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/findIdResource__10JKRArchiveCFUs.s b/asm/JSystem/JKernel/JKRArchivePri/findIdResource__10JKRArchiveCFUs.s deleted file mode 100644 index 043869bdab..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/findIdResource__10JKRArchiveCFUs.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_802D6770: -/* 802D6770 54 86 04 3E */ clrlwi r6, r4, 0x10 -/* 802D6774 28 06 FF FF */ cmplwi r6, 0xffff -/* 802D6778 41 82 00 74 */ beq lbl_802D67EC -/* 802D677C 80 A3 00 44 */ lwz r5, 0x44(r3) -/* 802D6780 80 E5 00 08 */ lwz r7, 8(r5) -/* 802D6784 7C 06 38 40 */ cmplw r6, r7 -/* 802D6788 40 80 00 30 */ bge lbl_802D67B8 -/* 802D678C 80 A3 00 4C */ lwz r5, 0x4c(r3) -/* 802D6790 1C 06 00 14 */ mulli r0, r6, 0x14 -/* 802D6794 7C A5 02 14 */ add r5, r5, r0 -/* 802D6798 A0 05 00 00 */ lhz r0, 0(r5) -/* 802D679C 7C 00 30 40 */ cmplw r0, r6 -/* 802D67A0 40 82 00 18 */ bne lbl_802D67B8 -/* 802D67A4 80 05 00 04 */ lwz r0, 4(r5) -/* 802D67A8 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f -/* 802D67AC 41 82 00 0C */ beq lbl_802D67B8 -/* 802D67B0 7C A3 2B 78 */ mr r3, r5 -/* 802D67B4 4E 80 00 20 */ blr -lbl_802D67B8: -/* 802D67B8 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802D67BC 54 84 04 3E */ clrlwi r4, r4, 0x10 -/* 802D67C0 7C E9 03 A6 */ mtctr r7 -/* 802D67C4 28 07 00 00 */ cmplwi r7, 0 -/* 802D67C8 40 81 00 24 */ ble lbl_802D67EC -lbl_802D67CC: -/* 802D67CC A0 03 00 00 */ lhz r0, 0(r3) -/* 802D67D0 7C 00 20 40 */ cmplw r0, r4 -/* 802D67D4 40 82 00 10 */ bne lbl_802D67E4 -/* 802D67D8 80 03 00 04 */ lwz r0, 4(r3) -/* 802D67DC 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f -/* 802D67E0 4C 82 00 20 */ bnelr -lbl_802D67E4: -/* 802D67E4 38 63 00 14 */ addi r3, r3, 0x14 -/* 802D67E8 42 00 FF E4 */ bdnz lbl_802D67CC -lbl_802D67EC: -/* 802D67EC 38 60 00 00 */ li r3, 0 -/* 802D67F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/findIdxResource__10JKRArchiveCFUl.s b/asm/JSystem/JKernel/JKRArchivePri/findIdxResource__10JKRArchiveCFUl.s deleted file mode 100644 index bd6eda6dc8..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/findIdxResource__10JKRArchiveCFUl.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802D6684: -/* 802D6684 80 A3 00 44 */ lwz r5, 0x44(r3) -/* 802D6688 80 05 00 08 */ lwz r0, 8(r5) -/* 802D668C 7C 04 00 40 */ cmplw r4, r0 -/* 802D6690 40 80 00 14 */ bge lbl_802D66A4 -/* 802D6694 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802D6698 1C 04 00 14 */ mulli r0, r4, 0x14 -/* 802D669C 7C 63 02 14 */ add r3, r3, r0 -/* 802D66A0 4E 80 00 20 */ blr -lbl_802D66A4: -/* 802D66A4 38 60 00 00 */ li r3, 0 -/* 802D66A8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/findNameResource__10JKRArchiveCFPCc.s b/asm/JSystem/JKernel/JKRArchivePri/findNameResource__10JKRArchiveCFPCc.s deleted file mode 100644 index 3cd927dad7..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/findNameResource__10JKRArchiveCFPCc.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_802D66AC: -/* 802D66AC 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 802D66B0 7C 08 02 A6 */ mflr r0 -/* 802D66B4 90 01 01 24 */ stw r0, 0x124(r1) -/* 802D66B8 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D66BC 48 08 BB 1D */ bl _savegpr_28 -/* 802D66C0 7C 7C 1B 78 */ mr r28, r3 -/* 802D66C4 83 C3 00 4C */ lwz r30, 0x4c(r3) -/* 802D66C8 38 61 00 08 */ addi r3, r1, 8 -/* 802D66CC 48 00 01 29 */ bl store__Q210JKRArchive8CArcNameFPCc -/* 802D66D0 3B A0 00 00 */ li r29, 0 -/* 802D66D4 83 FC 00 44 */ lwz r31, 0x44(r28) -/* 802D66D8 48 00 00 34 */ b lbl_802D670C -lbl_802D66DC: -/* 802D66DC 7F 83 E3 78 */ mr r3, r28 -/* 802D66E0 38 81 00 08 */ addi r4, r1, 8 -/* 802D66E4 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D66E8 54 05 02 3E */ clrlwi r5, r0, 8 -/* 802D66EC A0 DE 00 02 */ lhz r6, 2(r30) -/* 802D66F0 4B FF FC A5 */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs -/* 802D66F4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D66F8 41 82 00 0C */ beq lbl_802D6704 -/* 802D66FC 7F C3 F3 78 */ mr r3, r30 -/* 802D6700 48 00 00 1C */ b lbl_802D671C -lbl_802D6704: -/* 802D6704 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D6708 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D670C: -/* 802D670C 80 1F 00 08 */ lwz r0, 8(r31) -/* 802D6710 7C 1D 00 40 */ cmplw r29, r0 -/* 802D6714 41 80 FF C8 */ blt lbl_802D66DC -/* 802D6718 38 60 00 00 */ li r3, 0 -lbl_802D671C: -/* 802D671C 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D6720 48 08 BB 05 */ bl _restgpr_28 -/* 802D6724 80 01 01 24 */ lwz r0, 0x124(r1) -/* 802D6728 7C 08 03 A6 */ mtlr r0 -/* 802D672C 38 21 01 20 */ addi r1, r1, 0x120 -/* 802D6730 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/findPtrResource__10JKRArchiveCFPCv.s b/asm/JSystem/JKernel/JKRArchivePri/findPtrResource__10JKRArchiveCFPCv.s deleted file mode 100644 index a4150b78f1..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/findPtrResource__10JKRArchiveCFPCv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_802D6734: -/* 802D6734 80 A3 00 4C */ lwz r5, 0x4c(r3) -/* 802D6738 80 63 00 44 */ lwz r3, 0x44(r3) -/* 802D673C 80 03 00 08 */ lwz r0, 8(r3) -/* 802D6740 7C 09 03 A6 */ mtctr r0 -/* 802D6744 28 00 00 00 */ cmplwi r0, 0 -/* 802D6748 40 81 00 20 */ ble lbl_802D6768 -lbl_802D674C: -/* 802D674C 80 05 00 10 */ lwz r0, 0x10(r5) -/* 802D6750 7C 00 20 40 */ cmplw r0, r4 -/* 802D6754 40 82 00 0C */ bne lbl_802D6760 -/* 802D6758 7C A3 2B 78 */ mr r3, r5 -/* 802D675C 4E 80 00 20 */ blr -lbl_802D6760: -/* 802D6760 38 A5 00 14 */ addi r5, r5, 0x14 -/* 802D6764 42 00 FF E8 */ bdnz lbl_802D674C -lbl_802D6768: -/* 802D6768 38 60 00 00 */ li r3, 0 -/* 802D676C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/findResType__10JKRArchiveCFUl.s b/asm/JSystem/JKernel/JKRArchivePri/findResType__10JKRArchiveCFUl.s deleted file mode 100644 index 4b0a91f8c5..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/findResType__10JKRArchiveCFUl.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_802D63E0: -/* 802D63E0 80 A3 00 48 */ lwz r5, 0x48(r3) -/* 802D63E4 80 63 00 44 */ lwz r3, 0x44(r3) -/* 802D63E8 80 03 00 00 */ lwz r0, 0(r3) -/* 802D63EC 7C 09 03 A6 */ mtctr r0 -/* 802D63F0 28 00 00 00 */ cmplwi r0, 0 -/* 802D63F4 40 81 00 20 */ ble lbl_802D6414 -lbl_802D63F8: -/* 802D63F8 80 05 00 00 */ lwz r0, 0(r5) -/* 802D63FC 7C 00 20 40 */ cmplw r0, r4 -/* 802D6400 40 82 00 0C */ bne lbl_802D640C -/* 802D6404 7C A3 2B 78 */ mr r3, r5 -/* 802D6408 4E 80 00 20 */ blr -lbl_802D640C: -/* 802D640C 38 A5 00 10 */ addi r5, r5, 0x10 -/* 802D6410 42 00 FF E8 */ bdnz lbl_802D63F8 -lbl_802D6414: -/* 802D6414 38 60 00 00 */ li r3, 0 -/* 802D6418 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/findTypeResource__10JKRArchiveCFUlPCc.s b/asm/JSystem/JKernel/JKRArchivePri/findTypeResource__10JKRArchiveCFUlPCc.s deleted file mode 100644 index 00a0417e10..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/findTypeResource__10JKRArchiveCFUlPCc.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_802D64F4: -/* 802D64F4 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 802D64F8 7C 08 02 A6 */ mflr r0 -/* 802D64FC 90 01 01 24 */ stw r0, 0x124(r1) -/* 802D6500 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D6504 48 08 BC D5 */ bl _savegpr_28 -/* 802D6508 7C 7C 1B 78 */ mr r28, r3 -/* 802D650C 7C 9D 23 79 */ or. r29, r4, r4 -/* 802D6510 41 82 00 78 */ beq lbl_802D6588 -/* 802D6514 38 61 00 08 */ addi r3, r1, 8 -/* 802D6518 7C A4 2B 78 */ mr r4, r5 -/* 802D651C 48 00 02 D9 */ bl store__Q210JKRArchive8CArcNameFPCc -/* 802D6520 7F 83 E3 78 */ mr r3, r28 -/* 802D6524 7F A4 EB 78 */ mr r4, r29 -/* 802D6528 4B FF FE B9 */ bl findResType__10JKRArchiveCFUl -/* 802D652C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D6530 41 82 00 58 */ beq lbl_802D6588 -/* 802D6534 80 7C 00 4C */ lwz r3, 0x4c(r28) -/* 802D6538 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 802D653C 1C 00 00 14 */ mulli r0, r0, 0x14 -/* 802D6540 7F C3 02 14 */ add r30, r3, r0 -/* 802D6544 3B A0 00 00 */ li r29, 0 -/* 802D6548 48 00 00 34 */ b lbl_802D657C -lbl_802D654C: -/* 802D654C 7F 83 E3 78 */ mr r3, r28 -/* 802D6550 38 81 00 08 */ addi r4, r1, 8 -/* 802D6554 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D6558 54 05 02 3E */ clrlwi r5, r0, 8 -/* 802D655C A0 DE 00 02 */ lhz r6, 2(r30) -/* 802D6560 4B FF FE 35 */ bl isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs -/* 802D6564 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D6568 41 82 00 0C */ beq lbl_802D6574 -/* 802D656C 7F C3 F3 78 */ mr r3, r30 -/* 802D6570 48 00 00 1C */ b lbl_802D658C -lbl_802D6574: -/* 802D6574 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D6578 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D657C: -/* 802D657C A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 802D6580 7C 1D 00 00 */ cmpw r29, r0 -/* 802D6584 41 80 FF C8 */ blt lbl_802D654C -lbl_802D6588: -/* 802D6588 38 60 00 00 */ li r3, 0 -lbl_802D658C: -/* 802D658C 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D6590 48 08 BC 95 */ bl _restgpr_28 -/* 802D6594 80 01 01 24 */ lwz r0, 0x124(r1) -/* 802D6598 7C 08 03 A6 */ mtlr r0 -/* 802D659C 38 21 01 20 */ addi r1, r1, 0x120 -/* 802D65A0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry.s b/asm/JSystem/JKernel/JKRArchivePri/getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry.s deleted file mode 100644 index 2e082f41a5..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_802D6978: -/* 802D6978 80 03 00 4C */ lwz r0, 0x4c(r3) -/* 802D697C 7C 80 20 50 */ subf r4, r0, r4 -/* 802D6980 38 00 00 14 */ li r0, 0x14 -/* 802D6984 7C A4 03 D6 */ divw r5, r4, r0 -/* 802D6988 80 83 00 50 */ lwz r4, 0x50(r3) -/* 802D698C 28 04 00 00 */ cmplwi r4, 0 -/* 802D6990 41 82 00 14 */ beq lbl_802D69A4 -/* 802D6994 80 63 00 44 */ lwz r3, 0x44(r3) -/* 802D6998 80 03 00 08 */ lwz r0, 8(r3) -/* 802D699C 7C 05 00 40 */ cmplw r5, r0 -/* 802D69A0 41 80 00 0C */ blt lbl_802D69AC -lbl_802D69A4: -/* 802D69A4 38 60 00 00 */ li r3, 0 -/* 802D69A8 4E 80 00 20 */ blr -lbl_802D69AC: -/* 802D69AC 54 A0 10 3A */ slwi r0, r5, 2 -/* 802D69B0 7C 64 00 2E */ lwzx r3, r4, r0 -/* 802D69B4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs.s b/asm/JSystem/JKernel/JKRArchivePri/isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs.s deleted file mode 100644 index e0996cf51c..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802D6394: -/* 802D6394 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6398 7C 08 02 A6 */ mflr r0 -/* 802D639C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D63A0 A0 E4 00 00 */ lhz r7, 0(r4) -/* 802D63A4 54 C0 04 3E */ clrlwi r0, r6, 0x10 -/* 802D63A8 7C 07 00 40 */ cmplw r7, r0 -/* 802D63AC 41 82 00 0C */ beq lbl_802D63B8 -/* 802D63B0 38 60 00 00 */ li r3, 0 -/* 802D63B4 48 00 00 1C */ b lbl_802D63D0 -lbl_802D63B8: -/* 802D63B8 80 03 00 54 */ lwz r0, 0x54(r3) -/* 802D63BC 7C 60 2A 14 */ add r3, r0, r5 -/* 802D63C0 38 84 00 04 */ addi r4, r4, 4 -/* 802D63C4 48 09 25 D1 */ bl strcmp -/* 802D63C8 7C 60 00 34 */ cntlzw r0, r3 -/* 802D63CC 54 03 D9 7E */ srwi r3, r0, 5 -lbl_802D63D0: -/* 802D63D0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D63D4 7C 08 03 A6 */ mtlr r0 -/* 802D63D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D63DC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl.s b/asm/JSystem/JKernel/JKRArchivePri/setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl.s deleted file mode 100644 index 2dc919d611..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_802D693C: -/* 802D693C 80 03 00 4C */ lwz r0, 0x4c(r3) -/* 802D6940 7C 80 20 50 */ subf r4, r0, r4 -/* 802D6944 38 00 00 14 */ li r0, 0x14 -/* 802D6948 7C C4 03 D6 */ divw r6, r4, r0 -/* 802D694C 80 83 00 50 */ lwz r4, 0x50(r3) -/* 802D6950 28 04 00 00 */ cmplwi r4, 0 -/* 802D6954 4D 82 00 20 */ beqlr -/* 802D6958 80 63 00 44 */ lwz r3, 0x44(r3) -/* 802D695C 80 03 00 08 */ lwz r0, 8(r3) -/* 802D6960 7C 06 00 40 */ cmplw r6, r0 -/* 802D6964 41 80 00 08 */ blt lbl_802D696C -/* 802D6968 4E 80 00 20 */ blr -lbl_802D696C: -/* 802D696C 54 C0 10 3A */ slwi r0, r6, 2 -/* 802D6970 7C A4 01 2E */ stwx r5, r4, r0 -/* 802D6974 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/store__Q210JKRArchive8CArcNameFPCc.s b/asm/JSystem/JKernel/JKRArchivePri/store__Q210JKRArchive8CArcNameFPCc.s deleted file mode 100644 index 5a56e9167c..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/store__Q210JKRArchive8CArcNameFPCc.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_802D67F4: -/* 802D67F4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D67F8 7C 08 02 A6 */ mflr r0 -/* 802D67FC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D6800 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6804 48 08 B9 D9 */ bl _savegpr_29 -/* 802D6808 7C 7D 1B 78 */ mr r29, r3 -/* 802D680C 7C 9E 23 78 */ mr r30, r4 -/* 802D6810 38 00 00 00 */ li r0, 0 -/* 802D6814 B0 03 00 00 */ sth r0, 0(r3) -/* 802D6818 3B E0 00 00 */ li r31, 0 -/* 802D681C 48 00 00 34 */ b lbl_802D6850 -lbl_802D6820: -/* 802D6820 7C 63 07 74 */ extsb r3, r3 -/* 802D6824 48 08 EC 4D */ bl tolower -/* 802D6828 A0 1D 00 00 */ lhz r0, 0(r29) -/* 802D682C 1C 00 00 03 */ mulli r0, r0, 3 -/* 802D6830 7C 03 02 14 */ add r0, r3, r0 -/* 802D6834 B0 1D 00 00 */ sth r0, 0(r29) -/* 802D6838 2C 1F 01 00 */ cmpwi r31, 0x100 -/* 802D683C 40 80 00 10 */ bge lbl_802D684C -/* 802D6840 38 1F 00 04 */ addi r0, r31, 4 -/* 802D6844 7C 7D 01 AE */ stbx r3, r29, r0 -/* 802D6848 3B FF 00 01 */ addi r31, r31, 1 -lbl_802D684C: -/* 802D684C 3B DE 00 01 */ addi r30, r30, 1 -lbl_802D6850: -/* 802D6850 88 7E 00 00 */ lbz r3, 0(r30) -/* 802D6854 7C 60 07 75 */ extsb. r0, r3 -/* 802D6858 40 82 FF C8 */ bne lbl_802D6820 -/* 802D685C B3 FD 00 02 */ sth r31, 2(r29) -/* 802D6860 38 00 00 00 */ li r0, 0 -/* 802D6864 7C 7D FA 14 */ add r3, r29, r31 -/* 802D6868 98 03 00 04 */ stb r0, 4(r3) -/* 802D686C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6870 48 08 B9 B9 */ bl _restgpr_29 -/* 802D6874 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6878 7C 08 03 A6 */ mtlr r0 -/* 802D687C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6880 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePri/store__Q210JKRArchive8CArcNameFPCcc.s b/asm/JSystem/JKernel/JKRArchivePri/store__Q210JKRArchive8CArcNameFPCcc.s deleted file mode 100644 index a91049ae3b..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePri/store__Q210JKRArchive8CArcNameFPCcc.s +++ /dev/null @@ -1,53 +0,0 @@ -lbl_802D6884: -/* 802D6884 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D6888 7C 08 02 A6 */ mflr r0 -/* 802D688C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D6890 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6894 48 08 B9 45 */ bl _savegpr_28 -/* 802D6898 7C 7C 1B 78 */ mr r28, r3 -/* 802D689C 7C 9D 23 78 */ mr r29, r4 -/* 802D68A0 38 00 00 00 */ li r0, 0 -/* 802D68A4 B0 03 00 00 */ sth r0, 0(r3) -/* 802D68A8 3B C0 00 00 */ li r30, 0 -/* 802D68AC 7C BF 07 74 */ extsb r31, r5 -/* 802D68B0 48 00 00 34 */ b lbl_802D68E4 -lbl_802D68B4: -/* 802D68B4 7C 63 07 74 */ extsb r3, r3 -/* 802D68B8 48 08 EB B9 */ bl tolower -/* 802D68BC A0 1C 00 00 */ lhz r0, 0(r28) -/* 802D68C0 1C 00 00 03 */ mulli r0, r0, 3 -/* 802D68C4 7C 03 02 14 */ add r0, r3, r0 -/* 802D68C8 B0 1C 00 00 */ sth r0, 0(r28) -/* 802D68CC 2C 1E 01 00 */ cmpwi r30, 0x100 -/* 802D68D0 40 80 00 10 */ bge lbl_802D68E0 -/* 802D68D4 38 1E 00 04 */ addi r0, r30, 4 -/* 802D68D8 7C 7C 01 AE */ stbx r3, r28, r0 -/* 802D68DC 3B DE 00 01 */ addi r30, r30, 1 -lbl_802D68E0: -/* 802D68E0 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D68E4: -/* 802D68E4 88 7D 00 00 */ lbz r3, 0(r29) -/* 802D68E8 7C 60 07 75 */ extsb. r0, r3 -/* 802D68EC 41 82 00 10 */ beq lbl_802D68FC -/* 802D68F0 7C 60 07 74 */ extsb r0, r3 -/* 802D68F4 7C 00 F8 00 */ cmpw r0, r31 -/* 802D68F8 40 82 FF BC */ bne lbl_802D68B4 -lbl_802D68FC: -/* 802D68FC B3 DC 00 02 */ sth r30, 2(r28) -/* 802D6900 38 00 00 00 */ li r0, 0 -/* 802D6904 7C 7C F2 14 */ add r3, r28, r30 -/* 802D6908 98 03 00 04 */ stb r0, 4(r3) -/* 802D690C 88 1D 00 00 */ lbz r0, 0(r29) -/* 802D6910 7C 00 07 75 */ extsb. r0, r0 -/* 802D6914 40 82 00 0C */ bne lbl_802D6920 -/* 802D6918 38 60 00 00 */ li r3, 0 -/* 802D691C 48 00 00 08 */ b lbl_802D6924 -lbl_802D6920: -/* 802D6920 38 7D 00 01 */ addi r3, r29, 1 -lbl_802D6924: -/* 802D6924 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6928 48 08 B8 FD */ bl _restgpr_28 -/* 802D692C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6930 7C 08 03 A6 */ mtlr r0 -/* 802D6934 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6938 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/becomeCurrent__10JKRArchiveFPCc.s b/asm/JSystem/JKernel/JKRArchivePub/becomeCurrent__10JKRArchiveFPCc.s deleted file mode 100644 index afc60bbc38..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/becomeCurrent__10JKRArchiveFPCc.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_802D5A38: -/* 802D5A38 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5A3C 7C 08 02 A6 */ mflr r0 -/* 802D5A40 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5A44 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5A48 7C 7F 1B 78 */ mr r31, r3 -/* 802D5A4C 88 04 00 00 */ lbz r0, 0(r4) -/* 802D5A50 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D5A54 40 82 00 24 */ bne lbl_802D5A78 -/* 802D5A58 8C 04 00 01 */ lbzu r0, 1(r4) -/* 802D5A5C 7C 00 07 75 */ extsb. r0, r0 -/* 802D5A60 40 82 00 08 */ bne lbl_802D5A68 -/* 802D5A64 38 80 00 00 */ li r4, 0 -lbl_802D5A68: -/* 802D5A68 7F E3 FB 78 */ mr r3, r31 -/* 802D5A6C 38 A0 00 00 */ li r5, 0 -/* 802D5A70 48 00 09 AD */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D5A74 48 00 00 0C */ b lbl_802D5A80 -lbl_802D5A78: -/* 802D5A78 80 AD 8E A0 */ lwz r5, sCurrentDirID__10JKRArchive(r13) -/* 802D5A7C 48 00 09 A1 */ bl findDirectory__10JKRArchiveCFPCcUl -lbl_802D5A80: -/* 802D5A80 30 03 FF FF */ addic r0, r3, -1 -/* 802D5A84 7C 80 19 10 */ subfe r4, r0, r3 -/* 802D5A88 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802D5A8C 41 82 00 1C */ beq lbl_802D5AA8 -/* 802D5A90 93 ED 8E 98 */ stw r31, sCurrentVolume__13JKRFileLoader(r13) -/* 802D5A94 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 802D5A98 7C 00 18 50 */ subf r0, r0, r3 -/* 802D5A9C 7C 00 26 70 */ srawi r0, r0, 4 -/* 802D5AA0 7C 00 01 94 */ addze r0, r0 -/* 802D5AA4 90 0D 8E A0 */ stw r0, sCurrentDirID__10JKRArchive(r13) -lbl_802D5AA8: -/* 802D5AA8 7C 83 23 78 */ mr r3, r4 -/* 802D5AAC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5AB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5AB4 7C 08 03 A6 */ mtlr r0 -/* 802D5AB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5ABC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/check_mount_already__10JKRArchiveFlP7JKRHeap.s b/asm/JSystem/JKernel/JKRArchivePub/check_mount_already__10JKRArchiveFlP7JKRHeap.s deleted file mode 100644 index 3c21711aa2..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/check_mount_already__10JKRArchiveFlP7JKRHeap.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_802D5778: -/* 802D5778 28 04 00 00 */ cmplwi r4, 0 -/* 802D577C 40 82 00 08 */ bne lbl_802D5784 -/* 802D5780 80 8D 8D F4 */ lwz r4, sCurrentHeap__7JKRHeap(r13) -lbl_802D5784: -/* 802D5784 3C A0 80 43 */ lis r5, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D5788 80 C5 43 54 */ lwz r6, sVolumeList__13JKRFileLoader@l(r5) /* 0x80434354@l */ -/* 802D578C 48 00 00 48 */ b lbl_802D57D4 -lbl_802D5790: -/* 802D5790 80 E6 00 00 */ lwz r7, 0(r6) -/* 802D5794 80 A7 00 2C */ lwz r5, 0x2c(r7) -/* 802D5798 3C 05 AD BF */ addis r0, r5, 0xadbf -/* 802D579C 28 00 52 43 */ cmplwi r0, 0x5243 -/* 802D57A0 40 82 00 30 */ bne lbl_802D57D0 -/* 802D57A4 80 07 00 40 */ lwz r0, 0x40(r7) -/* 802D57A8 7C 00 18 00 */ cmpw r0, r3 -/* 802D57AC 40 82 00 24 */ bne lbl_802D57D0 -/* 802D57B0 80 07 00 38 */ lwz r0, 0x38(r7) -/* 802D57B4 7C 00 20 40 */ cmplw r0, r4 -/* 802D57B8 40 82 00 18 */ bne lbl_802D57D0 -/* 802D57BC 80 67 00 34 */ lwz r3, 0x34(r7) -/* 802D57C0 38 03 00 01 */ addi r0, r3, 1 -/* 802D57C4 90 07 00 34 */ stw r0, 0x34(r7) -/* 802D57C8 7C E3 3B 78 */ mr r3, r7 -/* 802D57CC 4E 80 00 20 */ blr -lbl_802D57D0: -/* 802D57D0 80 C6 00 0C */ lwz r6, 0xc(r6) -lbl_802D57D4: -/* 802D57D4 28 06 00 00 */ cmplwi r6, 0 -/* 802D57D8 40 82 FF B8 */ bne lbl_802D5790 -/* 802D57DC 38 60 00 00 */ li r3, 0 -/* 802D57E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/countFile__10JKRArchiveCFPCc.s b/asm/JSystem/JKernel/JKRArchivePub/countFile__10JKRArchiveCFPCc.s deleted file mode 100644 index 5627574081..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/countFile__10JKRArchiveCFPCc.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_802D6150: -/* 802D6150 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6154 7C 08 02 A6 */ mflr r0 -/* 802D6158 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D615C 88 04 00 00 */ lbz r0, 0(r4) -/* 802D6160 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D6164 40 82 00 20 */ bne lbl_802D6184 -/* 802D6168 8C 04 00 01 */ lbzu r0, 1(r4) -/* 802D616C 7C 00 07 75 */ extsb. r0, r0 -/* 802D6170 40 82 00 08 */ bne lbl_802D6178 -/* 802D6174 38 80 00 00 */ li r4, 0 -lbl_802D6178: -/* 802D6178 38 A0 00 00 */ li r5, 0 -/* 802D617C 48 00 02 A1 */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D6180 48 00 00 0C */ b lbl_802D618C -lbl_802D6184: -/* 802D6184 80 AD 8E A0 */ lwz r5, sCurrentDirID__10JKRArchive(r13) -/* 802D6188 48 00 02 95 */ bl findDirectory__10JKRArchiveCFPCcUl -lbl_802D618C: -/* 802D618C 28 03 00 00 */ cmplwi r3, 0 -/* 802D6190 41 82 00 0C */ beq lbl_802D619C -/* 802D6194 A0 63 00 0A */ lhz r3, 0xa(r3) -/* 802D6198 48 00 00 08 */ b lbl_802D61A0 -lbl_802D619C: -/* 802D619C 38 60 00 00 */ li r3, 0 -lbl_802D61A0: -/* 802D61A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D61A4 7C 08 03 A6 */ mtlr r0 -/* 802D61A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D61AC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/countResource__10JKRArchiveCFv.s b/asm/JSystem/JKernel/JKRArchivePub/countResource__10JKRArchiveCFv.s deleted file mode 100644 index ce06aa9f37..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/countResource__10JKRArchiveCFv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_802D610C: -/* 802D610C 38 C0 00 00 */ li r6, 0 -/* 802D6110 38 80 00 00 */ li r4, 0 -/* 802D6114 80 A3 00 44 */ lwz r5, 0x44(r3) -/* 802D6118 80 05 00 08 */ lwz r0, 8(r5) -/* 802D611C 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802D6120 7C 09 03 A6 */ mtctr r0 -/* 802D6124 28 00 00 00 */ cmplwi r0, 0 -/* 802D6128 40 81 00 20 */ ble lbl_802D6148 -lbl_802D612C: -/* 802D612C 38 04 00 04 */ addi r0, r4, 4 -/* 802D6130 7C 03 00 2E */ lwzx r0, r3, r0 -/* 802D6134 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f -/* 802D6138 41 82 00 08 */ beq lbl_802D6140 -/* 802D613C 38 C6 00 01 */ addi r6, r6, 1 -lbl_802D6140: -/* 802D6140 38 84 00 14 */ addi r4, r4, 0x14 -/* 802D6144 42 00 FF E8 */ bdnz lbl_802D612C -lbl_802D6148: -/* 802D6148 7C C3 33 78 */ mr r3, r6 -/* 802D614C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/detachResource__10JKRArchiveFPv.s b/asm/JSystem/JKernel/JKRArchivePub/detachResource__10JKRArchiveFPv.s deleted file mode 100644 index 254cd6aa89..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/detachResource__10JKRArchiveFPv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_802D609C: -/* 802D609C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D60A0 7C 08 02 A6 */ mflr r0 -/* 802D60A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D60A8 48 00 06 8D */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D60AC 28 03 00 00 */ cmplwi r3, 0 -/* 802D60B0 40 82 00 0C */ bne lbl_802D60BC -/* 802D60B4 38 60 00 00 */ li r3, 0 -/* 802D60B8 48 00 00 10 */ b lbl_802D60C8 -lbl_802D60BC: -/* 802D60BC 38 00 00 00 */ li r0, 0 -/* 802D60C0 90 03 00 10 */ stw r0, 0x10(r3) -/* 802D60C4 38 60 00 01 */ li r3, 1 -lbl_802D60C8: -/* 802D60C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D60CC 7C 08 03 A6 */ mtlr r0 -/* 802D60D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D60D4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/func_802D57E4.s b/asm/JSystem/JKernel/JKRArchivePub/func_802D57E4.s deleted file mode 100644 index da7145bb15..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/func_802D57E4.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802D57E4: -/* 802D57E4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D57E8 7C 08 02 A6 */ mflr r0 -/* 802D57EC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D57F0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D57F4 48 08 C9 E9 */ bl _savegpr_29 -/* 802D57F8 7C 9D 23 78 */ mr r29, r4 -/* 802D57FC 7C BE 2B 78 */ mr r30, r5 -/* 802D5800 7C DF 33 78 */ mr r31, r6 -/* 802D5804 48 07 2D 25 */ bl DVDConvertPathToEntrynum -/* 802D5808 2C 03 00 00 */ cmpwi r3, 0 -/* 802D580C 40 80 00 0C */ bge lbl_802D5818 -/* 802D5810 38 60 00 00 */ li r3, 0 -/* 802D5814 48 00 00 14 */ b lbl_802D5828 -lbl_802D5818: -/* 802D5818 7F A4 EB 78 */ mr r4, r29 -/* 802D581C 7F C5 F3 78 */ mr r5, r30 -/* 802D5820 7F E6 FB 78 */ mr r6, r31 -/* 802D5824 48 00 00 A5 */ bl mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection -lbl_802D5828: -/* 802D5828 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D582C 48 08 C9 FD */ bl _restgpr_29 -/* 802D5830 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5834 7C 08 03 A6 */ mtlr r0 -/* 802D5838 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D583C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/func_802D58C8.s b/asm/JSystem/JKernel/JKRArchivePub/func_802D58C8.s deleted file mode 100644 index c102f27814..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/func_802D58C8.s +++ /dev/null @@ -1,108 +0,0 @@ -lbl_802D58C8: -/* 802D58C8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D58CC 7C 08 02 A6 */ mflr r0 -/* 802D58D0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D58D4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D58D8 48 08 C8 FD */ bl _savegpr_27 -/* 802D58DC 7C 7B 1B 78 */ mr r27, r3 -/* 802D58E0 7C 9C 23 78 */ mr r28, r4 -/* 802D58E4 7C BD 2B 78 */ mr r29, r5 -/* 802D58E8 7C DE 33 78 */ mr r30, r6 -/* 802D58EC 7F A4 EB 78 */ mr r4, r29 -/* 802D58F0 4B FF FE 89 */ bl check_mount_already__10JKRArchiveFlP7JKRHeap -/* 802D58F4 28 03 00 00 */ cmplwi r3, 0 -/* 802D58F8 41 82 00 08 */ beq lbl_802D5900 -/* 802D58FC 48 00 01 24 */ b lbl_802D5A20 -lbl_802D5900: -/* 802D5900 2C 1E 00 01 */ cmpwi r30, 1 -/* 802D5904 38 A0 FF FC */ li r5, -4 -/* 802D5908 40 82 00 08 */ bne lbl_802D5910 -/* 802D590C 38 A0 00 04 */ li r5, 4 -lbl_802D5910: -/* 802D5910 2C 1C 00 03 */ cmpwi r28, 3 -/* 802D5914 41 82 00 7C */ beq lbl_802D5990 -/* 802D5918 40 80 00 14 */ bge lbl_802D592C -/* 802D591C 2C 1C 00 01 */ cmpwi r28, 1 -/* 802D5920 41 82 00 18 */ beq lbl_802D5938 -/* 802D5924 40 80 00 40 */ bge lbl_802D5964 -/* 802D5928 48 00 00 BC */ b lbl_802D59E4 -lbl_802D592C: -/* 802D592C 2C 1C 00 05 */ cmpwi r28, 5 -/* 802D5930 40 80 00 B4 */ bge lbl_802D59E4 -/* 802D5934 48 00 00 88 */ b lbl_802D59BC -lbl_802D5938: -/* 802D5938 38 60 00 70 */ li r3, 0x70 -/* 802D593C 7F A4 EB 78 */ mr r4, r29 -/* 802D5940 4B FF 93 59 */ bl __nw__FUlP7JKRHeapi -/* 802D5944 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D5948 41 82 00 14 */ beq lbl_802D595C -/* 802D594C 7F 64 DB 78 */ mr r4, r27 -/* 802D5950 7F C5 F3 78 */ mr r5, r30 -/* 802D5954 48 00 10 65 */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection -/* 802D5958 7C 60 1B 78 */ mr r0, r3 -lbl_802D595C: -/* 802D595C 7C 1F 03 78 */ mr r31, r0 -/* 802D5960 48 00 00 84 */ b lbl_802D59E4 -lbl_802D5964: -/* 802D5964 38 60 00 6C */ li r3, 0x6c -/* 802D5968 7F A4 EB 78 */ mr r4, r29 -/* 802D596C 4B FF 93 2D */ bl __nw__FUlP7JKRHeapi -/* 802D5970 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D5974 41 82 00 14 */ beq lbl_802D5988 -/* 802D5978 7F 64 DB 78 */ mr r4, r27 -/* 802D597C 7F C5 F3 78 */ mr r5, r30 -/* 802D5980 48 00 17 41 */ bl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection -/* 802D5984 7C 60 1B 78 */ mr r0, r3 -lbl_802D5988: -/* 802D5988 7C 1F 03 78 */ mr r31, r0 -/* 802D598C 48 00 00 58 */ b lbl_802D59E4 -lbl_802D5990: -/* 802D5990 38 60 00 6C */ li r3, 0x6c -/* 802D5994 7F A4 EB 78 */ mr r4, r29 -/* 802D5998 4B FF 93 01 */ bl __nw__FUlP7JKRHeapi -/* 802D599C 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D59A0 41 82 00 14 */ beq lbl_802D59B4 -/* 802D59A4 7F 64 DB 78 */ mr r4, r27 -/* 802D59A8 7F C5 F3 78 */ mr r5, r30 -/* 802D59AC 48 00 22 45 */ bl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection -/* 802D59B0 7C 60 1B 78 */ mr r0, r3 -lbl_802D59B4: -/* 802D59B4 7C 1F 03 78 */ mr r31, r0 -/* 802D59B8 48 00 00 2C */ b lbl_802D59E4 -lbl_802D59BC: -/* 802D59BC 38 60 00 80 */ li r3, 0x80 -/* 802D59C0 7F A4 EB 78 */ mr r4, r29 -/* 802D59C4 4B FF 92 D5 */ bl __nw__FUlP7JKRHeapi -/* 802D59C8 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D59CC 41 82 00 14 */ beq lbl_802D59E0 -/* 802D59D0 7F 64 DB 78 */ mr r4, r27 -/* 802D59D4 7F C5 F3 78 */ mr r5, r30 -/* 802D59D8 48 00 2D FD */ bl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection -/* 802D59DC 7C 60 1B 78 */ mr r0, r3 -lbl_802D59E0: -/* 802D59E0 7C 1F 03 78 */ mr r31, r0 -lbl_802D59E4: -/* 802D59E4 28 1F 00 00 */ cmplwi r31, 0 -/* 802D59E8 41 82 00 34 */ beq lbl_802D5A1C -/* 802D59EC 88 1F 00 3C */ lbz r0, 0x3c(r31) -/* 802D59F0 28 00 00 00 */ cmplwi r0, 0 -/* 802D59F4 40 82 00 28 */ bne lbl_802D5A1C -/* 802D59F8 28 1F 00 00 */ cmplwi r31, 0 -/* 802D59FC 41 82 00 1C */ beq lbl_802D5A18 -/* 802D5A00 7F E3 FB 78 */ mr r3, r31 -/* 802D5A04 38 80 00 01 */ li r4, 1 -/* 802D5A08 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5A0C 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D5A10 7D 89 03 A6 */ mtctr r12 -/* 802D5A14 4E 80 04 21 */ bctrl -lbl_802D5A18: -/* 802D5A18 3B E0 00 00 */ li r31, 0 -lbl_802D5A1C: -/* 802D5A1C 7F E3 FB 78 */ mr r3, r31 -lbl_802D5A20: -/* 802D5A20 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5A24 48 08 C7 FD */ bl _restgpr_27 -/* 802D5A28 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5A2C 7C 08 03 A6 */ mtlr r0 -/* 802D5A30 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5A34 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl.s b/asm/JSystem/JKernel/JKRArchivePub/getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl.s deleted file mode 100644 index 9402ad3e92..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_802D5AC0: -/* 802D5AC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5AC4 7C 08 02 A6 */ mflr r0 -/* 802D5AC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5ACC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5AD0 93 C1 00 08 */ stw r30, 8(r1) -/* 802D5AD4 7C 7E 1B 78 */ mr r30, r3 -/* 802D5AD8 7C 9F 23 78 */ mr r31, r4 -/* 802D5ADC 7C A4 2B 78 */ mr r4, r5 -/* 802D5AE0 48 00 0B A5 */ bl findIdxResource__10JKRArchiveCFUl -/* 802D5AE4 28 03 00 00 */ cmplwi r3, 0 -/* 802D5AE8 40 82 00 0C */ bne lbl_802D5AF4 -/* 802D5AEC 38 60 00 00 */ li r3, 0 -/* 802D5AF0 48 00 00 30 */ b lbl_802D5B20 -lbl_802D5AF4: -/* 802D5AF4 80 03 00 04 */ lwz r0, 4(r3) -/* 802D5AF8 54 00 46 3E */ srwi r0, r0, 0x18 -/* 802D5AFC 98 1F 00 00 */ stb r0, 0(r31) -/* 802D5B00 A0 03 00 00 */ lhz r0, 0(r3) -/* 802D5B04 B0 1F 00 02 */ sth r0, 2(r31) -/* 802D5B08 80 9E 00 54 */ lwz r4, 0x54(r30) -/* 802D5B0C 80 03 00 04 */ lwz r0, 4(r3) -/* 802D5B10 54 00 02 3E */ clrlwi r0, r0, 8 -/* 802D5B14 7C 04 02 14 */ add r0, r4, r0 -/* 802D5B18 90 1F 00 04 */ stw r0, 4(r31) -/* 802D5B1C 38 60 00 01 */ li r3, 1 -lbl_802D5B20: -/* 802D5B20 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5B24 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D5B28 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5B2C 7C 08 03 A6 */ mtlr r0 -/* 802D5B30 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5B34 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/getFileAttribute__10JKRArchiveCFUl.s b/asm/JSystem/JKernel/JKRArchivePub/getFileAttribute__10JKRArchiveCFUl.s deleted file mode 100644 index b83cf19e1d..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/getFileAttribute__10JKRArchiveCFUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_802D625C: -/* 802D625C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6260 7C 08 02 A6 */ mflr r0 -/* 802D6264 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6268 48 00 04 1D */ bl findIdxResource__10JKRArchiveCFUl -/* 802D626C 28 03 00 00 */ cmplwi r3, 0 -/* 802D6270 41 82 00 10 */ beq lbl_802D6280 -/* 802D6274 80 03 00 04 */ lwz r0, 4(r3) -/* 802D6278 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D627C 48 00 00 08 */ b lbl_802D6284 -lbl_802D6280: -/* 802D6280 38 60 00 00 */ li r3, 0 -lbl_802D6284: -/* 802D6284 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6288 7C 08 03 A6 */ mtlr r0 -/* 802D628C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6290 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/getFirstFile__10JKRArchiveCFPCc.s b/asm/JSystem/JKernel/JKRArchivePub/getFirstFile__10JKRArchiveCFPCc.s deleted file mode 100644 index de30e97b07..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/getFirstFile__10JKRArchiveCFPCc.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_802D61B0: -/* 802D61B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D61B4 7C 08 02 A6 */ mflr r0 -/* 802D61B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D61BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D61C0 93 C1 00 08 */ stw r30, 8(r1) -/* 802D61C4 7C 7E 1B 78 */ mr r30, r3 -/* 802D61C8 88 04 00 00 */ lbz r0, 0(r4) -/* 802D61CC 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D61D0 40 82 00 28 */ bne lbl_802D61F8 -/* 802D61D4 8C 04 00 01 */ lbzu r0, 1(r4) -/* 802D61D8 7C 00 07 75 */ extsb. r0, r0 -/* 802D61DC 40 82 00 08 */ bne lbl_802D61E4 -/* 802D61E0 38 80 00 00 */ li r4, 0 -lbl_802D61E4: -/* 802D61E4 7F C3 F3 78 */ mr r3, r30 -/* 802D61E8 38 A0 00 00 */ li r5, 0 -/* 802D61EC 48 00 02 31 */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D61F0 7C 7F 1B 78 */ mr r31, r3 -/* 802D61F4 48 00 00 10 */ b lbl_802D6204 -lbl_802D61F8: -/* 802D61F8 80 AD 8E A0 */ lwz r5, sCurrentDirID__10JKRArchive(r13) -/* 802D61FC 48 00 02 21 */ bl findDirectory__10JKRArchiveCFPCcUl -/* 802D6200 7C 7F 1B 78 */ mr r31, r3 -lbl_802D6204: -/* 802D6204 28 1F 00 00 */ cmplwi r31, 0 -/* 802D6208 41 82 00 38 */ beq lbl_802D6240 -/* 802D620C 38 60 00 24 */ li r3, 0x24 -/* 802D6210 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D6214 38 A0 00 00 */ li r5, 0 -/* 802D6218 4B FF 8A 81 */ bl __nw__FUlP7JKRHeapi -/* 802D621C 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D6220 41 82 00 18 */ beq lbl_802D6238 -/* 802D6224 7F C4 F3 78 */ mr r4, r30 -/* 802D6228 80 BF 00 0C */ lwz r5, 0xc(r31) -/* 802D622C A0 DF 00 0A */ lhz r6, 0xa(r31) -/* 802D6230 4B FF E4 09 */ bl __ct__12JKRArcFinderFP10JKRArchivell -/* 802D6234 7C 60 1B 78 */ mr r0, r3 -lbl_802D6238: -/* 802D6238 7C 03 03 78 */ mr r3, r0 -/* 802D623C 48 00 00 08 */ b lbl_802D6244 -lbl_802D6240: -/* 802D6240 38 60 00 00 */ li r3, 0 -lbl_802D6244: -/* 802D6244 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D6248 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D624C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6250 7C 08 03 A6 */ mtlr r0 -/* 802D6254 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6258 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/getGlbResource__10JKRArchiveFUlPCcP10JKRArchive.s b/asm/JSystem/JKernel/JKRArchivePub/getGlbResource__10JKRArchiveFUlPCcP10JKRArchive.s deleted file mode 100644 index 329c0363a5..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/getGlbResource__10JKRArchiveFUlPCcP10JKRArchive.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_802D5B38: -/* 802D5B38 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5B3C 7C 08 02 A6 */ mflr r0 -/* 802D5B40 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5B44 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5B48 48 08 C6 95 */ bl _savegpr_29 -/* 802D5B4C 7C 7D 1B 78 */ mr r29, r3 -/* 802D5B50 7C 9E 23 78 */ mr r30, r4 -/* 802D5B54 38 C0 00 00 */ li r6, 0 -/* 802D5B58 28 05 00 00 */ cmplwi r5, 0 -/* 802D5B5C 41 82 00 24 */ beq lbl_802D5B80 -/* 802D5B60 7C A3 2B 78 */ mr r3, r5 -/* 802D5B64 7F A4 EB 78 */ mr r4, r29 -/* 802D5B68 7F C5 F3 78 */ mr r5, r30 -/* 802D5B6C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D5B70 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802D5B74 7D 89 03 A6 */ mtctr r12 -/* 802D5B78 4E 80 04 21 */ bctrl -/* 802D5B7C 48 00 00 54 */ b lbl_802D5BD0 -lbl_802D5B80: -/* 802D5B80 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D5B84 83 E3 43 54 */ lwz r31, sVolumeList__13JKRFileLoader@l(r3) /* 0x80434354@l */ -/* 802D5B88 48 00 00 3C */ b lbl_802D5BC4 -lbl_802D5B8C: -/* 802D5B8C 80 7F 00 00 */ lwz r3, 0(r31) -/* 802D5B90 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 802D5B94 3C 04 AD BF */ addis r0, r4, 0xadbf -/* 802D5B98 28 00 52 43 */ cmplwi r0, 0x5243 -/* 802D5B9C 40 82 00 24 */ bne lbl_802D5BC0 -/* 802D5BA0 7F A4 EB 78 */ mr r4, r29 -/* 802D5BA4 7F C5 F3 78 */ mr r5, r30 -/* 802D5BA8 81 83 00 00 */ lwz r12, 0(r3) -/* 802D5BAC 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802D5BB0 7D 89 03 A6 */ mtctr r12 -/* 802D5BB4 4E 80 04 21 */ bctrl -/* 802D5BB8 7C 66 1B 79 */ or. r6, r3, r3 -/* 802D5BBC 40 82 00 10 */ bne lbl_802D5BCC -lbl_802D5BC0: -/* 802D5BC0 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_802D5BC4: -/* 802D5BC4 28 1F 00 00 */ cmplwi r31, 0 -/* 802D5BC8 40 82 FF C4 */ bne lbl_802D5B8C -lbl_802D5BCC: -/* 802D5BCC 7C C3 33 78 */ mr r3, r6 -lbl_802D5BD0: -/* 802D5BD0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5BD4 48 08 C6 55 */ bl _restgpr_29 -/* 802D5BD8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5BDC 7C 08 03 A6 */ mtlr r0 -/* 802D5BE0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5BE4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/getIdxResource__10JKRArchiveFUl.s b/asm/JSystem/JKernel/JKRArchivePub/getIdxResource__10JKRArchiveFUl.s deleted file mode 100644 index e78bbcb198..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/getIdxResource__10JKRArchiveFUl.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802D5CE4: -/* 802D5CE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5CE8 7C 08 02 A6 */ mflr r0 -/* 802D5CEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5CF0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5CF4 7C 7F 1B 78 */ mr r31, r3 -/* 802D5CF8 48 00 09 8D */ bl findIdxResource__10JKRArchiveCFUl -/* 802D5CFC 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D5D00 41 82 00 20 */ beq lbl_802D5D20 -/* 802D5D04 7F E3 FB 78 */ mr r3, r31 -/* 802D5D08 38 A0 00 00 */ li r5, 0 -/* 802D5D0C 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5D10 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802D5D14 7D 89 03 A6 */ mtctr r12 -/* 802D5D18 4E 80 04 21 */ bctrl -/* 802D5D1C 48 00 00 08 */ b lbl_802D5D24 -lbl_802D5D20: -/* 802D5D20 38 60 00 00 */ li r3, 0 -lbl_802D5D24: -/* 802D5D24 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5D28 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5D2C 7C 08 03 A6 */ mtlr r0 -/* 802D5D30 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5D34 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/getResSize__10JKRArchiveCFPCv.s b/asm/JSystem/JKernel/JKRArchivePub/getResSize__10JKRArchiveCFPCv.s deleted file mode 100644 index 84ea955e06..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/getResSize__10JKRArchiveCFPCv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_802D60D8: -/* 802D60D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D60DC 7C 08 02 A6 */ mflr r0 -/* 802D60E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D60E4 48 00 06 51 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D60E8 28 03 00 00 */ cmplwi r3, 0 -/* 802D60EC 40 82 00 0C */ bne lbl_802D60F8 -/* 802D60F0 38 60 FF FF */ li r3, -1 -/* 802D60F4 48 00 00 08 */ b lbl_802D60FC -lbl_802D60F8: -/* 802D60F8 80 63 00 0C */ lwz r3, 0xc(r3) -lbl_802D60FC: -/* 802D60FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6100 7C 08 03 A6 */ mtlr r0 -/* 802D6104 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6108 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFPCc.s b/asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFPCc.s deleted file mode 100644 index e26a48a801..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFPCc.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_802D5BE8: -/* 802D5BE8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5BEC 7C 08 02 A6 */ mflr r0 -/* 802D5BF0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5BF4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5BF8 7C 7F 1B 78 */ mr r31, r3 -/* 802D5BFC 88 04 00 00 */ lbz r0, 0(r4) -/* 802D5C00 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D5C04 40 82 00 18 */ bne lbl_802D5C1C -/* 802D5C08 38 84 00 01 */ addi r4, r4, 1 -/* 802D5C0C 38 A0 00 00 */ li r5, 0 -/* 802D5C10 48 00 09 95 */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D5C14 7C 64 1B 78 */ mr r4, r3 -/* 802D5C18 48 00 00 10 */ b lbl_802D5C28 -lbl_802D5C1C: -/* 802D5C1C 80 AD 8E A0 */ lwz r5, sCurrentDirID__10JKRArchive(r13) -/* 802D5C20 48 00 09 85 */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D5C24 7C 64 1B 78 */ mr r4, r3 -lbl_802D5C28: -/* 802D5C28 28 04 00 00 */ cmplwi r4, 0 -/* 802D5C2C 41 82 00 20 */ beq lbl_802D5C4C -/* 802D5C30 7F E3 FB 78 */ mr r3, r31 -/* 802D5C34 38 A0 00 00 */ li r5, 0 -/* 802D5C38 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5C3C 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802D5C40 7D 89 03 A6 */ mtctr r12 -/* 802D5C44 4E 80 04 21 */ bctrl -/* 802D5C48 48 00 00 08 */ b lbl_802D5C50 -lbl_802D5C4C: -/* 802D5C4C 38 60 00 00 */ li r3, 0 -lbl_802D5C50: -/* 802D5C50 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5C54 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5C58 7C 08 03 A6 */ mtlr r0 -/* 802D5C5C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5C60 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFUlPCc.s b/asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFUlPCc.s deleted file mode 100644 index e86cdac27a..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFUlPCc.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_802D5C64: -/* 802D5C64 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5C68 7C 08 02 A6 */ mflr r0 -/* 802D5C6C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5C70 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5C74 7C 7F 1B 78 */ mr r31, r3 -/* 802D5C78 28 04 00 00 */ cmplwi r4, 0 -/* 802D5C7C 41 82 00 10 */ beq lbl_802D5C8C -/* 802D5C80 3C 04 C0 C1 */ addis r0, r4, 0xc0c1 -/* 802D5C84 28 00 3F 3F */ cmplwi r0, 0x3f3f -/* 802D5C88 40 82 00 18 */ bne lbl_802D5CA0 -lbl_802D5C8C: -/* 802D5C8C 7F E3 FB 78 */ mr r3, r31 -/* 802D5C90 7C A4 2B 78 */ mr r4, r5 -/* 802D5C94 48 00 0A 19 */ bl findNameResource__10JKRArchiveCFPCc -/* 802D5C98 7C 64 1B 78 */ mr r4, r3 -/* 802D5C9C 48 00 00 0C */ b lbl_802D5CA8 -lbl_802D5CA0: -/* 802D5CA0 48 00 08 55 */ bl findTypeResource__10JKRArchiveCFUlPCc -/* 802D5CA4 7C 64 1B 78 */ mr r4, r3 -lbl_802D5CA8: -/* 802D5CA8 28 04 00 00 */ cmplwi r4, 0 -/* 802D5CAC 41 82 00 20 */ beq lbl_802D5CCC -/* 802D5CB0 7F E3 FB 78 */ mr r3, r31 -/* 802D5CB4 38 A0 00 00 */ li r5, 0 -/* 802D5CB8 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5CBC 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802D5CC0 7D 89 03 A6 */ mtctr r12 -/* 802D5CC4 4E 80 04 21 */ bctrl -/* 802D5CC8 48 00 00 08 */ b lbl_802D5CD0 -lbl_802D5CCC: -/* 802D5CCC 38 60 00 00 */ li r3, 0 -lbl_802D5CD0: -/* 802D5CD0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5CD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5CD8 7C 08 03 A6 */ mtlr r0 -/* 802D5CDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5CE0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFUs.s b/asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFUs.s deleted file mode 100644 index 9bc10f8e4f..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFUs.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802D5D38: -/* 802D5D38 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5D3C 7C 08 02 A6 */ mflr r0 -/* 802D5D40 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5D44 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5D48 7C 7F 1B 78 */ mr r31, r3 -/* 802D5D4C 48 00 0A 25 */ bl findIdResource__10JKRArchiveCFUs -/* 802D5D50 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D5D54 41 82 00 20 */ beq lbl_802D5D74 -/* 802D5D58 7F E3 FB 78 */ mr r3, r31 -/* 802D5D5C 38 A0 00 00 */ li r5, 0 -/* 802D5D60 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D5D64 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802D5D68 7D 89 03 A6 */ mtctr r12 -/* 802D5D6C 4E 80 04 21 */ bctrl -/* 802D5D70 48 00 00 08 */ b lbl_802D5D78 -lbl_802D5D74: -/* 802D5D74 38 60 00 00 */ li r3, 0 -lbl_802D5D78: -/* 802D5D78 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5D7C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5D80 7C 08 03 A6 */ mtlr r0 -/* 802D5D84 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5D88 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection.s b/asm/JSystem/JKernel/JKRArchivePub/mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection.s deleted file mode 100644 index 3cea3f4ec9..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_802D5840: -/* 802D5840 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5844 7C 08 02 A6 */ mflr r0 -/* 802D5848 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D584C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5850 48 08 C9 8D */ bl _savegpr_29 -/* 802D5854 7C 7D 1B 78 */ mr r29, r3 -/* 802D5858 7C 9E 23 78 */ mr r30, r4 -/* 802D585C 7C BF 2B 78 */ mr r31, r5 -/* 802D5860 4B FF FF 19 */ bl check_mount_already__10JKRArchiveFlP7JKRHeap -/* 802D5864 28 03 00 00 */ cmplwi r3, 0 -/* 802D5868 41 82 00 08 */ beq lbl_802D5870 -/* 802D586C 48 00 00 44 */ b lbl_802D58B0 -lbl_802D5870: -/* 802D5870 38 60 00 70 */ li r3, 0x70 -/* 802D5874 7F C4 F3 78 */ mr r4, r30 -/* 802D5878 2C 1F 00 01 */ cmpwi r31, 1 -/* 802D587C 38 A0 FF FC */ li r5, -4 -/* 802D5880 40 82 00 08 */ bne lbl_802D5888 -/* 802D5884 38 A0 00 04 */ li r5, 4 -lbl_802D5888: -/* 802D5888 4B FF 94 11 */ bl __nw__FUlP7JKRHeapi -/* 802D588C 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D5890 41 82 00 1C */ beq lbl_802D58AC -/* 802D5894 7F A4 EB 78 */ mr r4, r29 -/* 802D5898 3C A0 00 01 */ lis r5, 0x0001 /* 0x0000FFFF@ha */ -/* 802D589C 38 A5 FF FF */ addi r5, r5, 0xFFFF /* 0x0000FFFF@l */ -/* 802D58A0 38 C0 00 00 */ li r6, 0 -/* 802D58A4 48 00 11 C9 */ bl __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag -/* 802D58A8 7C 60 1B 78 */ mr r0, r3 -lbl_802D58AC: -/* 802D58AC 7C 03 03 78 */ mr r3, r0 -lbl_802D58B0: -/* 802D58B0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D58B4 48 08 C9 75 */ bl _restgpr_29 -/* 802D58B8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D58BC 7C 08 03 A6 */ mtlr r0 -/* 802D58C0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D58C4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/readIdxResource__10JKRArchiveFPvUlUl.s b/asm/JSystem/JKernel/JKRArchivePub/readIdxResource__10JKRArchiveFPvUlUl.s deleted file mode 100644 index 2cd7e3fc79..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/readIdxResource__10JKRArchiveFPvUlUl.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_802D5ECC: -/* 802D5ECC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5ED0 7C 08 02 A6 */ mflr r0 -/* 802D5ED4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5ED8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5EDC 48 08 C3 01 */ bl _savegpr_29 -/* 802D5EE0 7C 7D 1B 78 */ mr r29, r3 -/* 802D5EE4 7C 9E 23 78 */ mr r30, r4 -/* 802D5EE8 7C BF 2B 78 */ mr r31, r5 -/* 802D5EEC 7C C4 33 78 */ mr r4, r6 -/* 802D5EF0 48 00 07 95 */ bl findIdxResource__10JKRArchiveCFUl -/* 802D5EF4 7C 66 1B 79 */ or. r6, r3, r3 -/* 802D5EF8 41 82 00 2C */ beq lbl_802D5F24 -/* 802D5EFC 7F A3 EB 78 */ mr r3, r29 -/* 802D5F00 7F C4 F3 78 */ mr r4, r30 -/* 802D5F04 7F E5 FB 78 */ mr r5, r31 -/* 802D5F08 38 E1 00 08 */ addi r7, r1, 8 -/* 802D5F0C 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D5F10 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802D5F14 7D 89 03 A6 */ mtctr r12 -/* 802D5F18 4E 80 04 21 */ bctrl -/* 802D5F1C 80 61 00 08 */ lwz r3, 8(r1) -/* 802D5F20 48 00 00 08 */ b lbl_802D5F28 -lbl_802D5F24: -/* 802D5F24 38 60 00 00 */ li r3, 0 -lbl_802D5F28: -/* 802D5F28 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5F2C 48 08 C2 FD */ bl _restgpr_29 -/* 802D5F30 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5F34 7C 08 03 A6 */ mtlr r0 -/* 802D5F38 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5F3C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlPCc.s b/asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlPCc.s deleted file mode 100644 index 7fe9c5f7b0..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlPCc.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_802D5E30: -/* 802D5E30 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5E34 7C 08 02 A6 */ mflr r0 -/* 802D5E38 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5E3C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5E40 48 08 C3 9D */ bl _savegpr_29 -/* 802D5E44 7C 7D 1B 78 */ mr r29, r3 -/* 802D5E48 7C 9E 23 78 */ mr r30, r4 -/* 802D5E4C 7C BF 2B 78 */ mr r31, r5 -/* 802D5E50 88 06 00 00 */ lbz r0, 0(r6) -/* 802D5E54 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D5E58 40 82 00 18 */ bne lbl_802D5E70 -/* 802D5E5C 38 86 00 01 */ addi r4, r6, 1 -/* 802D5E60 38 A0 00 00 */ li r5, 0 -/* 802D5E64 48 00 07 41 */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D5E68 7C 66 1B 78 */ mr r6, r3 -/* 802D5E6C 48 00 00 14 */ b lbl_802D5E80 -lbl_802D5E70: -/* 802D5E70 7C C4 33 78 */ mr r4, r6 -/* 802D5E74 80 AD 8E A0 */ lwz r5, sCurrentDirID__10JKRArchive(r13) -/* 802D5E78 48 00 07 2D */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D5E7C 7C 66 1B 78 */ mr r6, r3 -lbl_802D5E80: -/* 802D5E80 28 06 00 00 */ cmplwi r6, 0 -/* 802D5E84 41 82 00 2C */ beq lbl_802D5EB0 -/* 802D5E88 7F A3 EB 78 */ mr r3, r29 -/* 802D5E8C 7F C4 F3 78 */ mr r4, r30 -/* 802D5E90 7F E5 FB 78 */ mr r5, r31 -/* 802D5E94 38 E1 00 08 */ addi r7, r1, 8 -/* 802D5E98 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D5E9C 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802D5EA0 7D 89 03 A6 */ mtctr r12 -/* 802D5EA4 4E 80 04 21 */ bctrl -/* 802D5EA8 80 61 00 08 */ lwz r3, 8(r1) -/* 802D5EAC 48 00 00 08 */ b lbl_802D5EB4 -lbl_802D5EB0: -/* 802D5EB0 38 60 00 00 */ li r3, 0 -lbl_802D5EB4: -/* 802D5EB4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5EB8 48 08 C3 71 */ bl _restgpr_29 -/* 802D5EBC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5EC0 7C 08 03 A6 */ mtlr r0 -/* 802D5EC4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5EC8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlUlPCc.s b/asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlUlPCc.s deleted file mode 100644 index 05b669c355..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlUlPCc.s +++ /dev/null @@ -1,47 +0,0 @@ -lbl_802D5D8C: -/* 802D5D8C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5D90 7C 08 02 A6 */ mflr r0 -/* 802D5D94 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5D98 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5D9C 48 08 C4 41 */ bl _savegpr_29 -/* 802D5DA0 7C 7D 1B 78 */ mr r29, r3 -/* 802D5DA4 7C 9E 23 78 */ mr r30, r4 -/* 802D5DA8 7C BF 2B 78 */ mr r31, r5 -/* 802D5DAC 28 06 00 00 */ cmplwi r6, 0 -/* 802D5DB0 41 82 00 10 */ beq lbl_802D5DC0 -/* 802D5DB4 3C 06 C0 C1 */ addis r0, r6, 0xc0c1 -/* 802D5DB8 28 00 3F 3F */ cmplwi r0, 0x3f3f -/* 802D5DBC 40 82 00 18 */ bne lbl_802D5DD4 -lbl_802D5DC0: -/* 802D5DC0 7F A3 EB 78 */ mr r3, r29 -/* 802D5DC4 7C E4 3B 78 */ mr r4, r7 -/* 802D5DC8 48 00 08 E5 */ bl findNameResource__10JKRArchiveCFPCc -/* 802D5DCC 7C 66 1B 78 */ mr r6, r3 -/* 802D5DD0 48 00 00 14 */ b lbl_802D5DE4 -lbl_802D5DD4: -/* 802D5DD4 7C C4 33 78 */ mr r4, r6 -/* 802D5DD8 7C E5 3B 78 */ mr r5, r7 -/* 802D5DDC 48 00 07 19 */ bl findTypeResource__10JKRArchiveCFUlPCc -/* 802D5DE0 7C 66 1B 78 */ mr r6, r3 -lbl_802D5DE4: -/* 802D5DE4 28 06 00 00 */ cmplwi r6, 0 -/* 802D5DE8 41 82 00 2C */ beq lbl_802D5E14 -/* 802D5DEC 7F A3 EB 78 */ mr r3, r29 -/* 802D5DF0 7F C4 F3 78 */ mr r4, r30 -/* 802D5DF4 7F E5 FB 78 */ mr r5, r31 -/* 802D5DF8 38 E1 00 08 */ addi r7, r1, 8 -/* 802D5DFC 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D5E00 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802D5E04 7D 89 03 A6 */ mtctr r12 -/* 802D5E08 4E 80 04 21 */ bctrl -/* 802D5E0C 80 61 00 08 */ lwz r3, 8(r1) -/* 802D5E10 48 00 00 08 */ b lbl_802D5E18 -lbl_802D5E14: -/* 802D5E14 38 60 00 00 */ li r3, 0 -lbl_802D5E18: -/* 802D5E18 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5E1C 48 08 C4 0D */ bl _restgpr_29 -/* 802D5E20 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5E24 7C 08 03 A6 */ mtlr r0 -/* 802D5E28 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5E2C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlUs.s b/asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlUs.s deleted file mode 100644 index 8a90ff3e9e..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlUs.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_802D5F40: -/* 802D5F40 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5F44 7C 08 02 A6 */ mflr r0 -/* 802D5F48 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5F4C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5F50 48 08 C2 8D */ bl _savegpr_29 -/* 802D5F54 7C 7D 1B 78 */ mr r29, r3 -/* 802D5F58 7C 9E 23 78 */ mr r30, r4 -/* 802D5F5C 7C BF 2B 78 */ mr r31, r5 -/* 802D5F60 7C C4 33 78 */ mr r4, r6 -/* 802D5F64 48 00 08 0D */ bl findIdResource__10JKRArchiveCFUs -/* 802D5F68 7C 66 1B 79 */ or. r6, r3, r3 -/* 802D5F6C 41 82 00 2C */ beq lbl_802D5F98 -/* 802D5F70 7F A3 EB 78 */ mr r3, r29 -/* 802D5F74 7F C4 F3 78 */ mr r4, r30 -/* 802D5F78 7F E5 FB 78 */ mr r5, r31 -/* 802D5F7C 38 E1 00 08 */ addi r7, r1, 8 -/* 802D5F80 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D5F84 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802D5F88 7D 89 03 A6 */ mtctr r12 -/* 802D5F8C 4E 80 04 21 */ bctrl -/* 802D5F90 80 61 00 08 */ lwz r3, 8(r1) -/* 802D5F94 48 00 00 08 */ b lbl_802D5F9C -lbl_802D5F98: -/* 802D5F98 38 60 00 00 */ li r3, 0 -lbl_802D5F9C: -/* 802D5F9C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5FA0 48 08 C2 89 */ bl _restgpr_29 -/* 802D5FA4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5FA8 7C 08 03 A6 */ mtlr r0 -/* 802D5FAC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5FB0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/removeResourceAll__10JKRArchiveFv.s b/asm/JSystem/JKernel/JKRArchivePub/removeResourceAll__10JKRArchiveFv.s deleted file mode 100644 index d1f53ac0bb..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/removeResourceAll__10JKRArchiveFv.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_802D5FB4: -/* 802D5FB4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5FB8 7C 08 02 A6 */ mflr r0 -/* 802D5FBC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5FC0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5FC4 48 08 C2 15 */ bl _savegpr_28 -/* 802D5FC8 7C 7C 1B 78 */ mr r28, r3 -/* 802D5FCC 80 03 00 44 */ lwz r0, 0x44(r3) -/* 802D5FD0 28 00 00 00 */ cmplwi r0, 0 -/* 802D5FD4 41 82 00 50 */ beq lbl_802D6024 -/* 802D5FD8 88 1C 00 3C */ lbz r0, 0x3c(r28) -/* 802D5FDC 28 00 00 01 */ cmplwi r0, 1 -/* 802D5FE0 41 82 00 44 */ beq lbl_802D6024 -/* 802D5FE4 83 DC 00 4C */ lwz r30, 0x4c(r28) -/* 802D5FE8 3B A0 00 00 */ li r29, 0 -/* 802D5FEC 3B E0 00 00 */ li r31, 0 -/* 802D5FF0 48 00 00 24 */ b lbl_802D6014 -lbl_802D5FF4: -/* 802D5FF4 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 802D5FF8 28 03 00 00 */ cmplwi r3, 0 -/* 802D5FFC 41 82 00 10 */ beq lbl_802D600C -/* 802D6000 80 9C 00 38 */ lwz r4, 0x38(r28) -/* 802D6004 4B FF 84 FD */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D6008 93 FE 00 10 */ stw r31, 0x10(r30) -lbl_802D600C: -/* 802D600C 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D6010 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D6014: -/* 802D6014 80 7C 00 44 */ lwz r3, 0x44(r28) -/* 802D6018 80 03 00 08 */ lwz r0, 8(r3) -/* 802D601C 7C 1D 00 40 */ cmplw r29, r0 -/* 802D6020 41 80 FF D4 */ blt lbl_802D5FF4 -lbl_802D6024: -/* 802D6024 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6028 48 08 C1 FD */ bl _restgpr_28 -/* 802D602C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6030 7C 08 03 A6 */ mtlr r0 -/* 802D6034 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6038 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRArchivePub/removeResource__10JKRArchiveFPv.s b/asm/JSystem/JKernel/JKRArchivePub/removeResource__10JKRArchiveFPv.s deleted file mode 100644 index f08a6d1360..0000000000 --- a/asm/JSystem/JKernel/JKRArchivePub/removeResource__10JKRArchiveFPv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_802D603C: -/* 802D603C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6040 7C 08 02 A6 */ mflr r0 -/* 802D6044 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6048 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D604C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D6050 7C 7E 1B 78 */ mr r30, r3 -/* 802D6054 7C 9F 23 78 */ mr r31, r4 -/* 802D6058 48 00 06 DD */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D605C 28 03 00 00 */ cmplwi r3, 0 -/* 802D6060 40 82 00 0C */ bne lbl_802D606C -/* 802D6064 38 60 00 00 */ li r3, 0 -/* 802D6068 48 00 00 1C */ b lbl_802D6084 -lbl_802D606C: -/* 802D606C 38 00 00 00 */ li r0, 0 -/* 802D6070 90 03 00 10 */ stw r0, 0x10(r3) -/* 802D6074 7F E3 FB 78 */ mr r3, r31 -/* 802D6078 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D607C 4B FF 84 85 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D6080 38 60 00 01 */ li r3, 1 -lbl_802D6084: -/* 802D6084 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D6088 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D608C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6090 7C 08 03 A6 */ mtlr r0 -/* 802D6094 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6098 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAssertHeap/__ct__13JKRAssertHeapFPvUlP7JKRHeapb.s b/asm/JSystem/JKernel/JKRAssertHeap/__ct__13JKRAssertHeapFPvUlP7JKRHeapb.s deleted file mode 100644 index 37308a2d08..0000000000 --- a/asm/JSystem/JKernel/JKRAssertHeap/__ct__13JKRAssertHeapFPvUlP7JKRHeapb.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_802D12C4: -/* 802D12C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D12C8 7C 08 02 A6 */ mflr r0 -/* 802D12CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D12D0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D12D4 7C 7F 1B 78 */ mr r31, r3 -/* 802D12D8 4B FF CE 61 */ bl __ct__7JKRHeapFPvUlP7JKRHeapb -/* 802D12DC 3C 60 80 3D */ lis r3, __vt__13JKRAssertHeap@ha /* 0x803CC090@ha */ -/* 802D12E0 38 03 C0 90 */ addi r0, r3, __vt__13JKRAssertHeap@l /* 0x803CC090@l */ -/* 802D12E4 90 1F 00 00 */ stw r0, 0(r31) -/* 802D12E8 7F E3 FB 78 */ mr r3, r31 -/* 802D12EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D12F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D12F4 7C 08 03 A6 */ mtlr r0 -/* 802D12F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D12FC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAssertHeap/__dt__13JKRAssertHeapFv.s b/asm/JSystem/JKernel/JKRAssertHeap/__dt__13JKRAssertHeapFv.s deleted file mode 100644 index 97119077e8..0000000000 --- a/asm/JSystem/JKernel/JKRAssertHeap/__dt__13JKRAssertHeapFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_802D1300: -/* 802D1300 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1304 7C 08 02 A6 */ mflr r0 -/* 802D1308 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D130C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D1310 93 C1 00 08 */ stw r30, 8(r1) -/* 802D1314 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D1318 7C 9F 23 78 */ mr r31, r4 -/* 802D131C 41 82 00 30 */ beq lbl_802D134C -/* 802D1320 3C 80 80 3D */ lis r4, __vt__13JKRAssertHeap@ha /* 0x803CC090@ha */ -/* 802D1324 38 04 C0 90 */ addi r0, r4, __vt__13JKRAssertHeap@l /* 0x803CC090@l */ -/* 802D1328 90 1E 00 00 */ stw r0, 0(r30) -/* 802D132C 4B FF D7 95 */ bl dispose__7JKRHeapFv -/* 802D1330 7F C3 F3 78 */ mr r3, r30 -/* 802D1334 38 80 00 00 */ li r4, 0 -/* 802D1338 4B FF CF 2D */ bl __dt__7JKRHeapFv -/* 802D133C 7F E0 07 35 */ extsh. r0, r31 -/* 802D1340 40 81 00 0C */ ble lbl_802D134C -/* 802D1344 7F C3 F3 78 */ mr r3, r30 -/* 802D1348 4B FF D9 F5 */ bl __dl__FPv -lbl_802D134C: -/* 802D134C 7F C3 F3 78 */ mr r3, r30 -/* 802D1350 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D1354 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D1358 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D135C 7C 08 03 A6 */ mtlr r0 -/* 802D1360 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1364 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAssertHeap/create__13JKRAssertHeapFP7JKRHeap.s b/asm/JSystem/JKernel/JKRAssertHeap/create__13JKRAssertHeapFP7JKRHeap.s deleted file mode 100644 index ae8fcd2455..0000000000 --- a/asm/JSystem/JKernel/JKRAssertHeap/create__13JKRAssertHeapFP7JKRHeap.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_802D1368: -/* 802D1368 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D136C 7C 08 02 A6 */ mflr r0 -/* 802D1370 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1374 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D1378 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D137C 40 82 00 08 */ bne lbl_802D1384 -/* 802D1380 83 ED 8D F8 */ lwz r31, sRootHeap__7JKRHeap(r13) -lbl_802D1384: -/* 802D1384 38 60 00 70 */ li r3, 0x70 -/* 802D1388 38 80 00 10 */ li r4, 0x10 -/* 802D138C 7F E5 FB 78 */ mr r5, r31 -/* 802D1390 4B FF D0 E5 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D1394 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D1398 40 82 00 0C */ bne lbl_802D13A4 -/* 802D139C 38 60 00 00 */ li r3, 0 -/* 802D13A0 48 00 00 24 */ b lbl_802D13C4 -lbl_802D13A4: -/* 802D13A4 41 82 00 1C */ beq lbl_802D13C0 -/* 802D13A8 38 80 00 00 */ li r4, 0 -/* 802D13AC 38 A0 00 00 */ li r5, 0 -/* 802D13B0 7F E6 FB 78 */ mr r6, r31 -/* 802D13B4 38 E0 00 00 */ li r7, 0 -/* 802D13B8 4B FF FF 0D */ bl __ct__13JKRAssertHeapFPvUlP7JKRHeapb -/* 802D13BC 7C 60 1B 78 */ mr r0, r3 -lbl_802D13C0: -/* 802D13C0 7C 03 03 78 */ mr r3, r0 -lbl_802D13C4: -/* 802D13C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D13C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D13CC 7C 08 03 A6 */ mtlr r0 -/* 802D13D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D13D4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAssertHeap/do_destroy__13JKRAssertHeapFv.s b/asm/JSystem/JKernel/JKRAssertHeap/do_destroy__13JKRAssertHeapFv.s deleted file mode 100644 index 57cfaebe73..0000000000 --- a/asm/JSystem/JKernel/JKRAssertHeap/do_destroy__13JKRAssertHeapFv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802D13D8: -/* 802D13D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D13DC 7C 08 02 A6 */ mflr r0 -/* 802D13E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D13E4 38 80 FF FF */ li r4, -1 -/* 802D13E8 81 83 00 00 */ lwz r12, 0(r3) -/* 802D13EC 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D13F0 7D 89 03 A6 */ mtctr r12 -/* 802D13F4 4E 80 04 21 */ bctrl -/* 802D13F8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D13FC 7C 08 03 A6 */ mtlr r0 -/* 802D1400 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1404 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRAssertHeap/getHeapType__13JKRAssertHeapFv.s b/asm/JSystem/JKernel/JKRAssertHeap/getHeapType__13JKRAssertHeapFv.s deleted file mode 100644 index 5192c720ab..0000000000 --- a/asm/JSystem/JKernel/JKRAssertHeap/getHeapType__13JKRAssertHeapFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802D1408: -/* 802D1408 3C 60 41 53 */ lis r3, 0x4153 /* 0x41535448@ha */ -/* 802D140C 38 63 54 48 */ addi r3, r3, 0x5448 /* 0x41535448@l */ -/* 802D1410 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/__ct__16JKRDecompCommandFv.s b/asm/JSystem/JKernel/JKRDecomp/__ct__16JKRDecompCommandFv.s deleted file mode 100644 index c9332f7f6c..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/__ct__16JKRDecompCommandFv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_802DBD70: -/* 802DBD70 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DBD74 7C 08 02 A6 */ mflr r0 -/* 802DBD78 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DBD7C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DBD80 7C 7F 1B 78 */ mr r31, r3 -/* 802DBD84 38 7F 00 28 */ addi r3, r31, 0x28 -/* 802DBD88 38 9F 00 48 */ addi r4, r31, 0x48 -/* 802DBD8C 38 A0 00 01 */ li r5, 1 -/* 802DBD90 48 06 2C 05 */ bl OSInitMessageQueue -/* 802DBD94 38 00 00 00 */ li r0, 0 -/* 802DBD98 90 1F 00 14 */ stw r0, 0x14(r31) -/* 802DBD9C 90 1F 00 1C */ stw r0, 0x1c(r31) -/* 802DBDA0 93 FF 00 18 */ stw r31, 0x18(r31) -/* 802DBDA4 90 1F 00 20 */ stw r0, 0x20(r31) -/* 802DBDA8 7F E3 FB 78 */ mr r3, r31 -/* 802DBDAC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DBDB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DBDB4 7C 08 03 A6 */ mtlr r0 -/* 802DBDB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DBDBC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/__ct__9JKRDecompFl.s b/asm/JSystem/JKernel/JKRDecomp/__ct__9JKRDecompFl.s deleted file mode 100644 index 1fd6e69854..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/__ct__9JKRDecompFl.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_802DB6E0: -/* 802DB6E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB6E4 7C 08 02 A6 */ mflr r0 -/* 802DB6E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB6EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB6F0 7C 7F 1B 78 */ mr r31, r3 -/* 802DB6F4 7C 86 23 78 */ mr r6, r4 -/* 802DB6F8 38 80 08 00 */ li r4, 0x800 -/* 802DB6FC 38 A0 00 10 */ li r5, 0x10 -/* 802DB700 4B FF 5E 69 */ bl __ct__9JKRThreadFUlii -/* 802DB704 3C 60 80 3D */ lis r3, __vt__9JKRDecomp@ha /* 0x803CC4A0@ha */ -/* 802DB708 38 03 C4 A0 */ addi r0, r3, __vt__9JKRDecomp@l /* 0x803CC4A0@l */ -/* 802DB70C 90 1F 00 00 */ stw r0, 0(r31) -/* 802DB710 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 802DB714 48 06 60 A1 */ bl OSResumeThread -/* 802DB718 7F E3 FB 78 */ mr r3, r31 -/* 802DB71C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB720 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB724 7C 08 03 A6 */ mtlr r0 -/* 802DB728 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB72C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/__dt__16JKRDecompCommandFv.s b/asm/JSystem/JKernel/JKRDecomp/__dt__16JKRDecompCommandFv.s deleted file mode 100644 index 180853fc53..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/__dt__16JKRDecompCommandFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_802DBDC0: -/* 802DBDC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DBDC4 7C 08 02 A6 */ mflr r0 -/* 802DBDC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DBDCC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DBDD0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802DBDD4 41 82 00 10 */ beq lbl_802DBDE4 -/* 802DBDD8 7C 80 07 35 */ extsh. r0, r4 -/* 802DBDDC 40 81 00 08 */ ble lbl_802DBDE4 -/* 802DBDE0 4B FF 2F 5D */ bl __dl__FPv -lbl_802DBDE4: -/* 802DBDE4 7F E3 FB 78 */ mr r3, r31 -/* 802DBDE8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DBDEC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DBDF0 7C 08 03 A6 */ mtlr r0 -/* 802DBDF4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DBDF8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/__dt__9JKRDecompFv.s b/asm/JSystem/JKernel/JKRDecomp/__dt__9JKRDecompFv.s deleted file mode 100644 index e9ba2ae7f7..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/__dt__9JKRDecompFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802DB730: -/* 802DB730 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB734 7C 08 02 A6 */ mflr r0 -/* 802DB738 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB73C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB740 93 C1 00 08 */ stw r30, 8(r1) -/* 802DB744 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802DB748 7C 9F 23 78 */ mr r31, r4 -/* 802DB74C 41 82 00 28 */ beq lbl_802DB774 -/* 802DB750 3C 80 80 3D */ lis r4, __vt__9JKRDecomp@ha /* 0x803CC4A0@ha */ -/* 802DB754 38 04 C4 A0 */ addi r0, r4, __vt__9JKRDecomp@l /* 0x803CC4A0@l */ -/* 802DB758 90 1E 00 00 */ stw r0, 0(r30) -/* 802DB75C 38 80 00 00 */ li r4, 0 -/* 802DB760 4B FF 5F F9 */ bl __dt__9JKRThreadFv -/* 802DB764 7F E0 07 35 */ extsh. r0, r31 -/* 802DB768 40 81 00 0C */ ble lbl_802DB774 -/* 802DB76C 7F C3 F3 78 */ mr r3, r30 -/* 802DB770 4B FF 35 CD */ bl __dl__FPv -lbl_802DB774: -/* 802DB774 7F C3 F3 78 */ mr r3, r30 -/* 802DB778 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB77C 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DB780 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB784 7C 08 03 A6 */ mtlr r0 -/* 802DB788 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB78C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/checkCompressed__9JKRDecompFPUc.s b/asm/JSystem/JKernel/JKRDecomp/checkCompressed__9JKRDecompFPUc.s deleted file mode 100644 index d33f2e2d24..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/checkCompressed__9JKRDecompFPUc.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802DBCF8: -/* 802DBCF8 88 83 00 00 */ lbz r4, 0(r3) -/* 802DBCFC 2C 04 00 59 */ cmpwi r4, 0x59 -/* 802DBD00 40 82 00 40 */ bne lbl_802DBD40 -/* 802DBD04 88 03 00 01 */ lbz r0, 1(r3) -/* 802DBD08 2C 00 00 61 */ cmpwi r0, 0x61 -/* 802DBD0C 40 82 00 34 */ bne lbl_802DBD40 -/* 802DBD10 88 03 00 03 */ lbz r0, 3(r3) -/* 802DBD14 2C 00 00 30 */ cmpwi r0, 0x30 -/* 802DBD18 40 82 00 28 */ bne lbl_802DBD40 -/* 802DBD1C 88 03 00 02 */ lbz r0, 2(r3) -/* 802DBD20 2C 00 00 79 */ cmpwi r0, 0x79 -/* 802DBD24 40 82 00 0C */ bne lbl_802DBD30 -/* 802DBD28 38 60 00 01 */ li r3, 1 -/* 802DBD2C 4E 80 00 20 */ blr -lbl_802DBD30: -/* 802DBD30 2C 00 00 7A */ cmpwi r0, 0x7a -/* 802DBD34 40 82 00 0C */ bne lbl_802DBD40 -/* 802DBD38 38 60 00 02 */ li r3, 2 -/* 802DBD3C 4E 80 00 20 */ blr -lbl_802DBD40: -/* 802DBD40 2C 04 00 41 */ cmpwi r4, 0x41 -/* 802DBD44 40 82 00 24 */ bne lbl_802DBD68 -/* 802DBD48 88 03 00 01 */ lbz r0, 1(r3) -/* 802DBD4C 2C 00 00 53 */ cmpwi r0, 0x53 -/* 802DBD50 40 82 00 18 */ bne lbl_802DBD68 -/* 802DBD54 88 03 00 02 */ lbz r0, 2(r3) -/* 802DBD58 2C 00 00 52 */ cmpwi r0, 0x52 -/* 802DBD5C 40 82 00 0C */ bne lbl_802DBD68 -/* 802DBD60 38 60 00 03 */ li r3, 3 -/* 802DBD64 4E 80 00 20 */ blr -lbl_802DBD68: -/* 802DBD68 38 60 00 00 */ li r3, 0 -/* 802DBD6C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/create__9JKRDecompFl.s b/asm/JSystem/JKernel/JKRDecomp/create__9JKRDecompFl.s deleted file mode 100644 index 93c732feac..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/create__9JKRDecompFl.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_802DB680: -/* 802DB680 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB684 7C 08 02 A6 */ mflr r0 -/* 802DB688 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB68C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB690 7C 7F 1B 78 */ mr r31, r3 -/* 802DB694 80 0D 8F 30 */ lwz r0, sDecompObject__9JKRDecomp(r13) -/* 802DB698 28 00 00 00 */ cmplwi r0, 0 -/* 802DB69C 40 82 00 2C */ bne lbl_802DB6C8 -/* 802DB6A0 38 60 00 7C */ li r3, 0x7c -/* 802DB6A4 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802DB6A8 38 A0 00 00 */ li r5, 0 -/* 802DB6AC 4B FF 35 ED */ bl __nw__FUlP7JKRHeapi -/* 802DB6B0 7C 60 1B 79 */ or. r0, r3, r3 -/* 802DB6B4 41 82 00 10 */ beq lbl_802DB6C4 -/* 802DB6B8 7F E4 FB 78 */ mr r4, r31 -/* 802DB6BC 48 00 00 25 */ bl __ct__9JKRDecompFl -/* 802DB6C0 7C 60 1B 78 */ mr r0, r3 -lbl_802DB6C4: -/* 802DB6C4 90 0D 8F 30 */ stw r0, sDecompObject__9JKRDecomp(r13) -lbl_802DB6C8: -/* 802DB6C8 80 6D 8F 30 */ lwz r3, sDecompObject__9JKRDecomp(r13) -/* 802DB6CC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB6D0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB6D4 7C 08 03 A6 */ mtlr r0 -/* 802DB6D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB6DC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/decode__9JKRDecompFPUcPUcUlUl.s b/asm/JSystem/JKernel/JKRDecomp/decode__9JKRDecompFPUcPUcUlUl.s deleted file mode 100644 index 84f770d0b7..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/decode__9JKRDecompFPUcPUcUlUl.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802DB9DC: -/* 802DB9DC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DB9E0 7C 08 02 A6 */ mflr r0 -/* 802DB9E4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DB9E8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DB9EC 48 08 67 ED */ bl _savegpr_28 -/* 802DB9F0 7C 7C 1B 78 */ mr r28, r3 -/* 802DB9F4 7C 9D 23 78 */ mr r29, r4 -/* 802DB9F8 7C BE 2B 78 */ mr r30, r5 -/* 802DB9FC 7C DF 33 78 */ mr r31, r6 -/* 802DBA00 48 00 02 F9 */ bl checkCompressed__9JKRDecompFPUc -/* 802DBA04 2C 03 00 01 */ cmpwi r3, 1 -/* 802DBA08 40 82 00 1C */ bne lbl_802DBA24 -/* 802DBA0C 7F 83 E3 78 */ mr r3, r28 -/* 802DBA10 7F A4 EB 78 */ mr r4, r29 -/* 802DBA14 7F C5 F3 78 */ mr r5, r30 -/* 802DBA18 7F E6 FB 78 */ mr r6, r31 -/* 802DBA1C 48 00 00 3D */ bl decodeSZP__9JKRDecompFPUcPUcUlUl -/* 802DBA20 48 00 00 20 */ b lbl_802DBA40 -lbl_802DBA24: -/* 802DBA24 2C 03 00 02 */ cmpwi r3, 2 -/* 802DBA28 40 82 00 18 */ bne lbl_802DBA40 -/* 802DBA2C 7F 83 E3 78 */ mr r3, r28 -/* 802DBA30 7F A4 EB 78 */ mr r4, r29 -/* 802DBA34 7F C5 F3 78 */ mr r5, r30 -/* 802DBA38 7F E6 FB 78 */ mr r6, r31 -/* 802DBA3C 48 00 01 D9 */ bl decodeSZS__9JKRDecompFPUcPUcUlUl -lbl_802DBA40: -/* 802DBA40 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DBA44 48 08 67 E1 */ bl _restgpr_28 -/* 802DBA48 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DBA4C 7C 08 03 A6 */ mtlr r0 -/* 802DBA50 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DBA54 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/orderAsync__9JKRDecompFPUcPUcUlUlPFUl_v.s b/asm/JSystem/JKernel/JKRDecomp/orderAsync__9JKRDecompFPUcPUcUlUlPFUl_v.s deleted file mode 100644 index d43f96301a..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/orderAsync__9JKRDecompFPUcPUcUlUlPFUl_v.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802DB900: -/* 802DB900 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB904 7C 08 02 A6 */ mflr r0 -/* 802DB908 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB90C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB910 4B FF FF 49 */ bl prepareCommand__9JKRDecompFPUcPUcUlUlPFUl_v -/* 802DB914 7C 7F 1B 78 */ mr r31, r3 -/* 802DB918 4B FF FF B9 */ bl sendCommand__9JKRDecompFP16JKRDecompCommand -/* 802DB91C 7F E3 FB 78 */ mr r3, r31 -/* 802DB920 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB924 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB928 7C 08 03 A6 */ mtlr r0 -/* 802DB92C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB930 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/orderSync__9JKRDecompFPUcPUcUlUl.s b/asm/JSystem/JKernel/JKRDecomp/orderSync__9JKRDecompFPUcPUcUlUl.s deleted file mode 100644 index 1ff20c0a1b..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/orderSync__9JKRDecompFPUcPUcUlUl.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802DB988: -/* 802DB988 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB98C 7C 08 02 A6 */ mflr r0 -/* 802DB990 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB994 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB998 93 C1 00 08 */ stw r30, 8(r1) -/* 802DB99C 38 E0 00 00 */ li r7, 0 -/* 802DB9A0 4B FF FF 61 */ bl orderAsync__9JKRDecompFPUcPUcUlUlPFUl_v -/* 802DB9A4 7C 7F 1B 78 */ mr r31, r3 -/* 802DB9A8 38 80 00 00 */ li r4, 0 -/* 802DB9AC 4B FF FF 89 */ bl sync__9JKRDecompFP16JKRDecompCommandi -/* 802DB9B0 7C 7E 1B 78 */ mr r30, r3 -/* 802DB9B4 7F E3 FB 78 */ mr r3, r31 -/* 802DB9B8 38 80 00 01 */ li r4, 1 -/* 802DB9BC 48 00 04 05 */ bl __dt__16JKRDecompCommandFv -/* 802DB9C0 7F C3 F3 78 */ mr r3, r30 -/* 802DB9C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB9C8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DB9CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB9D0 7C 08 03 A6 */ mtlr r0 -/* 802DB9D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB9D8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/prepareCommand__9JKRDecompFPUcPUcUlUlPFUl_v.s b/asm/JSystem/JKernel/JKRDecomp/prepareCommand__9JKRDecompFPUcPUcUlUlPFUl_v.s deleted file mode 100644 index 0aa5a32349..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/prepareCommand__9JKRDecompFPUcPUcUlUlPFUl_v.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_802DB858: -/* 802DB858 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DB85C 7C 08 02 A6 */ mflr r0 -/* 802DB860 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DB864 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DB868 48 08 69 6D */ bl _savegpr_27 -/* 802DB86C 7C 7B 1B 78 */ mr r27, r3 -/* 802DB870 7C 9C 23 78 */ mr r28, r4 -/* 802DB874 7C BD 2B 78 */ mr r29, r5 -/* 802DB878 7C DE 33 78 */ mr r30, r6 -/* 802DB87C 7C FF 3B 78 */ mr r31, r7 -/* 802DB880 38 60 00 4C */ li r3, 0x4c -/* 802DB884 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802DB888 38 A0 FF FC */ li r5, -4 -/* 802DB88C 4B FF 34 0D */ bl __nw__FUlP7JKRHeapi -/* 802DB890 7C 64 1B 79 */ or. r4, r3, r3 -/* 802DB894 41 82 00 0C */ beq lbl_802DB8A0 -/* 802DB898 48 00 04 D9 */ bl __ct__16JKRDecompCommandFv -/* 802DB89C 7C 64 1B 78 */ mr r4, r3 -lbl_802DB8A0: -/* 802DB8A0 93 64 00 04 */ stw r27, 4(r4) -/* 802DB8A4 93 84 00 08 */ stw r28, 8(r4) -/* 802DB8A8 93 A4 00 0C */ stw r29, 0xc(r4) -/* 802DB8AC 93 C4 00 10 */ stw r30, 0x10(r4) -/* 802DB8B0 93 E4 00 14 */ stw r31, 0x14(r4) -/* 802DB8B4 7C 83 23 78 */ mr r3, r4 -/* 802DB8B8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DB8BC 48 08 69 65 */ bl _restgpr_27 -/* 802DB8C0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DB8C4 7C 08 03 A6 */ mtlr r0 -/* 802DB8C8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DB8CC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/run__9JKRDecompFv.s b/asm/JSystem/JKernel/JKRDecomp/run__9JKRDecompFv.s deleted file mode 100644 index be7f7d7e99..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/run__9JKRDecompFv.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_802DB790: -/* 802DB790 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DB794 7C 08 02 A6 */ mflr r0 -/* 802DB798 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DB79C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802DB7A0 93 C1 00 18 */ stw r30, 0x18(r1) -/* 802DB7A4 3C 60 80 3D */ lis r3, sMessageQueue__9JKRDecomp@ha /* 0x803CC480@ha */ -/* 802DB7A8 38 63 C4 80 */ addi r3, r3, sMessageQueue__9JKRDecomp@l /* 0x803CC480@l */ -/* 802DB7AC 3C 80 80 3D */ lis r4, sMessageBuffer__9JKRDecomp@ha /* 0x803CC460@ha */ -/* 802DB7B0 38 84 C4 60 */ addi r4, r4, sMessageBuffer__9JKRDecomp@l /* 0x803CC460@l */ -/* 802DB7B4 38 A0 00 08 */ li r5, 8 -/* 802DB7B8 48 06 31 DD */ bl OSInitMessageQueue -/* 802DB7BC 3C 60 80 3D */ lis r3, sMessageQueue__9JKRDecomp@ha /* 0x803CC480@ha */ -/* 802DB7C0 3B E3 C4 80 */ addi r31, r3, sMessageQueue__9JKRDecomp@l /* 0x803CC480@l */ -lbl_802DB7C4: -/* 802DB7C4 7F E3 FB 78 */ mr r3, r31 -/* 802DB7C8 38 81 00 08 */ addi r4, r1, 8 -/* 802DB7CC 38 A0 00 01 */ li r5, 1 -/* 802DB7D0 48 06 32 ED */ bl OSReceiveMessage -/* 802DB7D4 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DB7D8 80 7E 00 04 */ lwz r3, 4(r30) -/* 802DB7DC 80 9E 00 08 */ lwz r4, 8(r30) -/* 802DB7E0 80 BE 00 0C */ lwz r5, 0xc(r30) -/* 802DB7E4 80 DE 00 10 */ lwz r6, 0x10(r30) -/* 802DB7E8 48 00 01 F5 */ bl decode__9JKRDecompFPUcPUcUlUl -/* 802DB7EC 80 1E 00 20 */ lwz r0, 0x20(r30) -/* 802DB7F0 2C 00 00 00 */ cmpwi r0, 0 -/* 802DB7F4 41 82 00 18 */ beq lbl_802DB80C -/* 802DB7F8 2C 00 00 01 */ cmpwi r0, 1 -/* 802DB7FC 40 82 FF C8 */ bne lbl_802DB7C4 -/* 802DB800 80 7E 00 24 */ lwz r3, 0x24(r30) -/* 802DB804 4B FF 7D F1 */ bl sendCommand__12JKRAramPieceFP12JKRAMCommand -/* 802DB808 4B FF FF BC */ b lbl_802DB7C4 -lbl_802DB80C: -/* 802DB80C 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 802DB810 28 0C 00 00 */ cmplwi r12, 0 -/* 802DB814 41 82 00 14 */ beq lbl_802DB828 -/* 802DB818 7F C3 F3 78 */ mr r3, r30 -/* 802DB81C 7D 89 03 A6 */ mtctr r12 -/* 802DB820 4E 80 04 21 */ bctrl -/* 802DB824 4B FF FF A0 */ b lbl_802DB7C4 -lbl_802DB828: -/* 802DB828 80 7E 00 1C */ lwz r3, 0x1c(r30) -/* 802DB82C 28 03 00 00 */ cmplwi r3, 0 -/* 802DB830 41 82 00 14 */ beq lbl_802DB844 -/* 802DB834 38 80 00 01 */ li r4, 1 -/* 802DB838 38 A0 00 00 */ li r5, 0 -/* 802DB83C 48 06 31 B9 */ bl OSSendMessage -/* 802DB840 4B FF FF 84 */ b lbl_802DB7C4 -lbl_802DB844: -/* 802DB844 38 7E 00 28 */ addi r3, r30, 0x28 -/* 802DB848 38 80 00 01 */ li r4, 1 -/* 802DB84C 38 A0 00 00 */ li r5, 0 -/* 802DB850 48 06 31 A5 */ bl OSSendMessage -/* 802DB854 4B FF FF 70 */ b lbl_802DB7C4 diff --git a/asm/JSystem/JKernel/JKRDecomp/sendCommand__9JKRDecompFP16JKRDecompCommand.s b/asm/JSystem/JKernel/JKRDecomp/sendCommand__9JKRDecompFP16JKRDecompCommand.s deleted file mode 100644 index fe582813b1..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/sendCommand__9JKRDecompFP16JKRDecompCommand.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802DB8D0: -/* 802DB8D0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB8D4 7C 08 02 A6 */ mflr r0 -/* 802DB8D8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB8DC 7C 64 1B 78 */ mr r4, r3 -/* 802DB8E0 3C 60 80 3D */ lis r3, sMessageQueue__9JKRDecomp@ha /* 0x803CC480@ha */ -/* 802DB8E4 38 63 C4 80 */ addi r3, r3, sMessageQueue__9JKRDecomp@l /* 0x803CC480@l */ -/* 802DB8E8 38 A0 00 00 */ li r5, 0 -/* 802DB8EC 48 06 31 09 */ bl OSSendMessage -/* 802DB8F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB8F4 7C 08 03 A6 */ mtlr r0 -/* 802DB8F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB8FC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDecomp/sync__9JKRDecompFP16JKRDecompCommandi.s b/asm/JSystem/JKernel/JKRDecomp/sync__9JKRDecompFP16JKRDecompCommandi.s deleted file mode 100644 index 6d83a6a018..0000000000 --- a/asm/JSystem/JKernel/JKRDecomp/sync__9JKRDecompFP16JKRDecompCommandi.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802DB934: -/* 802DB934 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB938 7C 08 02 A6 */ mflr r0 -/* 802DB93C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB940 2C 04 00 00 */ cmpwi r4, 0 -/* 802DB944 40 82 00 1C */ bne lbl_802DB960 -/* 802DB948 38 63 00 28 */ addi r3, r3, 0x28 -/* 802DB94C 38 81 00 08 */ addi r4, r1, 8 -/* 802DB950 38 A0 00 01 */ li r5, 1 -/* 802DB954 48 06 31 69 */ bl OSReceiveMessage -/* 802DB958 38 60 00 01 */ li r3, 1 -/* 802DB95C 48 00 00 1C */ b lbl_802DB978 -lbl_802DB960: -/* 802DB960 38 63 00 28 */ addi r3, r3, 0x28 -/* 802DB964 38 81 00 08 */ addi r4, r1, 8 -/* 802DB968 38 A0 00 00 */ li r5, 0 -/* 802DB96C 48 06 31 51 */ bl OSReceiveMessage -/* 802DB970 30 03 FF FF */ addic r0, r3, -1 -/* 802DB974 7C 60 19 10 */ subfe r3, r0, r3 -lbl_802DB978: -/* 802DB978 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB97C 7C 08 03 A6 */ mtlr r0 -/* 802DB980 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB984 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDisposer/__ct__11JKRDisposerFv.s b/asm/JSystem/JKernel/JKRDisposer/__ct__11JKRDisposerFv.s deleted file mode 100644 index f573c26a01..0000000000 --- a/asm/JSystem/JKernel/JKRDisposer/__ct__11JKRDisposerFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_802D147C: -/* 802D147C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1480 7C 08 02 A6 */ mflr r0 -/* 802D1484 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1488 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D148C 7C 7F 1B 78 */ mr r31, r3 -/* 802D1490 3C 60 80 3D */ lis r3, __vt__11JKRDisposer@ha /* 0x803CC0F0@ha */ -/* 802D1494 38 03 C0 F0 */ addi r0, r3, __vt__11JKRDisposer@l /* 0x803CC0F0@l */ -/* 802D1498 90 1F 00 00 */ stw r0, 0(r31) -/* 802D149C 7F E4 FB 78 */ mr r4, r31 -/* 802D14A0 38 64 00 08 */ addi r3, r4, 8 -/* 802D14A4 48 00 A9 59 */ bl __ct__10JSUPtrLinkFPv -/* 802D14A8 7F E3 FB 78 */ mr r3, r31 -/* 802D14AC 4B FF D3 91 */ bl findFromRoot__7JKRHeapFPv -/* 802D14B0 90 7F 00 04 */ stw r3, 4(r31) -/* 802D14B4 80 7F 00 04 */ lwz r3, 4(r31) -/* 802D14B8 28 03 00 00 */ cmplwi r3, 0 -/* 802D14BC 41 82 00 10 */ beq lbl_802D14CC -/* 802D14C0 38 63 00 5C */ addi r3, r3, 0x5c -/* 802D14C4 38 9F 00 08 */ addi r4, r31, 8 -/* 802D14C8 48 00 AA 85 */ bl append__10JSUPtrListFP10JSUPtrLink -lbl_802D14CC: -/* 802D14CC 7F E3 FB 78 */ mr r3, r31 -/* 802D14D0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D14D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D14D8 7C 08 03 A6 */ mtlr r0 -/* 802D14DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D14E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDisposer/__dt__11JKRDisposerFv.s b/asm/JSystem/JKernel/JKRDisposer/__dt__11JKRDisposerFv.s deleted file mode 100644 index e546ff9e2a..0000000000 --- a/asm/JSystem/JKernel/JKRDisposer/__dt__11JKRDisposerFv.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_802D14E4: -/* 802D14E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D14E8 7C 08 02 A6 */ mflr r0 -/* 802D14EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D14F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D14F4 93 C1 00 08 */ stw r30, 8(r1) -/* 802D14F8 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D14FC 7C 9F 23 78 */ mr r31, r4 -/* 802D1500 41 82 00 4C */ beq lbl_802D154C -/* 802D1504 3C 60 80 3D */ lis r3, __vt__11JKRDisposer@ha /* 0x803CC0F0@ha */ -/* 802D1508 38 03 C0 F0 */ addi r0, r3, __vt__11JKRDisposer@l /* 0x803CC0F0@l */ -/* 802D150C 90 1E 00 00 */ stw r0, 0(r30) -/* 802D1510 80 7E 00 04 */ lwz r3, 4(r30) -/* 802D1514 28 03 00 00 */ cmplwi r3, 0 -/* 802D1518 41 82 00 10 */ beq lbl_802D1528 -/* 802D151C 38 63 00 5C */ addi r3, r3, 0x5c -/* 802D1520 38 9E 00 08 */ addi r4, r30, 8 -/* 802D1524 48 00 AC 39 */ bl remove__10JSUPtrListFP10JSUPtrLink -lbl_802D1528: -/* 802D1528 34 1E 00 08 */ addic. r0, r30, 8 -/* 802D152C 41 82 00 10 */ beq lbl_802D153C -/* 802D1530 38 7E 00 08 */ addi r3, r30, 8 -/* 802D1534 38 80 00 00 */ li r4, 0 -/* 802D1538 48 00 A8 DD */ bl __dt__10JSUPtrLinkFv -lbl_802D153C: -/* 802D153C 7F E0 07 35 */ extsh. r0, r31 -/* 802D1540 40 81 00 0C */ ble lbl_802D154C -/* 802D1544 7F C3 F3 78 */ mr r3, r30 -/* 802D1548 4B FF D7 F5 */ bl __dl__FPv -lbl_802D154C: -/* 802D154C 7F C3 F3 78 */ mr r3, r30 -/* 802D1550 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D1554 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D1558 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D155C 7C 08 03 A6 */ mtlr r0 -/* 802D1560 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1564 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdArchive/__ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection.s b/asm/JSystem/JKernel/JKRDvdArchive/__ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection.s deleted file mode 100644 index 6ff83cf1ae..0000000000 --- a/asm/JSystem/JKernel/JKRDvdArchive/__ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_802D7BF0: -/* 802D7BF0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D7BF4 7C 08 02 A6 */ mflr r0 -/* 802D7BF8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D7BFC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7C00 48 08 A5 DD */ bl _savegpr_29 -/* 802D7C04 7C 7D 1B 78 */ mr r29, r3 -/* 802D7C08 7C 9E 23 78 */ mr r30, r4 -/* 802D7C0C 7C BF 2B 78 */ mr r31, r5 -/* 802D7C10 38 A0 00 03 */ li r5, 3 -/* 802D7C14 4B FF E6 81 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode -/* 802D7C18 3C 60 80 3D */ lis r3, __vt__13JKRDvdArchive@ha /* 0x803CC398@ha */ -/* 802D7C1C 38 03 C3 98 */ addi r0, r3, __vt__13JKRDvdArchive@l /* 0x803CC398@l */ -/* 802D7C20 90 1D 00 00 */ stw r0, 0(r29) -/* 802D7C24 93 FD 00 60 */ stw r31, 0x60(r29) -/* 802D7C28 7F A3 EB 78 */ mr r3, r29 -/* 802D7C2C 7F C4 F3 78 */ mr r4, r30 -/* 802D7C30 48 00 01 85 */ bl open__13JKRDvdArchiveFl -/* 802D7C34 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D7C38 40 82 00 0C */ bne lbl_802D7C44 -/* 802D7C3C 7F A3 EB 78 */ mr r3, r29 -/* 802D7C40 48 00 00 40 */ b lbl_802D7C80 -lbl_802D7C44: -/* 802D7C44 3C 60 52 41 */ lis r3, 0x5241 /* 0x52415243@ha */ -/* 802D7C48 38 03 52 43 */ addi r0, r3, 0x5243 /* 0x52415243@l */ -/* 802D7C4C 90 1D 00 2C */ stw r0, 0x2c(r29) -/* 802D7C50 80 9D 00 54 */ lwz r4, 0x54(r29) -/* 802D7C54 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 802D7C58 80 03 00 04 */ lwz r0, 4(r3) -/* 802D7C5C 7C 04 02 14 */ add r0, r4, r0 -/* 802D7C60 90 1D 00 28 */ stw r0, 0x28(r29) -/* 802D7C64 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D7C68 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D7C6C 38 9D 00 18 */ addi r4, r29, 0x18 -/* 802D7C70 48 00 43 81 */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D7C74 38 00 00 01 */ li r0, 1 -/* 802D7C78 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D7C7C 7F A3 EB 78 */ mr r3, r29 -lbl_802D7C80: -/* 802D7C80 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7C84 48 08 A5 A5 */ bl _restgpr_29 -/* 802D7C88 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D7C8C 7C 08 03 A6 */ mtlr r0 -/* 802D7C90 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D7C94 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdArchive/__dt__13JKRDvdArchiveFv.s b/asm/JSystem/JKernel/JKRDvdArchive/__dt__13JKRDvdArchiveFv.s deleted file mode 100644 index f634efed45..0000000000 --- a/asm/JSystem/JKernel/JKRDvdArchive/__dt__13JKRDvdArchiveFv.s +++ /dev/null @@ -1,80 +0,0 @@ -lbl_802D7C98: -/* 802D7C98 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D7C9C 7C 08 02 A6 */ mflr r0 -/* 802D7CA0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D7CA4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7CA8 48 08 A5 31 */ bl _savegpr_28 -/* 802D7CAC 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D7CB0 7C 9C 23 78 */ mr r28, r4 -/* 802D7CB4 41 82 00 E4 */ beq lbl_802D7D98 -/* 802D7CB8 3C 60 80 3D */ lis r3, __vt__13JKRDvdArchive@ha /* 0x803CC398@ha */ -/* 802D7CBC 38 03 C3 98 */ addi r0, r3, __vt__13JKRDvdArchive@l /* 0x803CC398@l */ -/* 802D7CC0 90 1F 00 00 */ stw r0, 0(r31) -/* 802D7CC4 88 1F 00 30 */ lbz r0, 0x30(r31) -/* 802D7CC8 28 00 00 01 */ cmplwi r0, 1 -/* 802D7CCC 40 82 00 B0 */ bne lbl_802D7D7C -/* 802D7CD0 80 1F 00 44 */ lwz r0, 0x44(r31) -/* 802D7CD4 28 00 00 00 */ cmplwi r0, 0 -/* 802D7CD8 41 82 00 4C */ beq lbl_802D7D24 -/* 802D7CDC 83 DF 00 4C */ lwz r30, 0x4c(r31) -/* 802D7CE0 3B A0 00 00 */ li r29, 0 -/* 802D7CE4 48 00 00 20 */ b lbl_802D7D04 -lbl_802D7CE8: -/* 802D7CE8 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 802D7CEC 28 03 00 00 */ cmplwi r3, 0 -/* 802D7CF0 41 82 00 0C */ beq lbl_802D7CFC -/* 802D7CF4 80 9F 00 38 */ lwz r4, 0x38(r31) -/* 802D7CF8 4B FF 68 09 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D7CFC: -/* 802D7CFC 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D7D00 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D7D04: -/* 802D7D04 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D7D08 80 03 00 08 */ lwz r0, 8(r3) -/* 802D7D0C 7C 1D 00 40 */ cmplw r29, r0 -/* 802D7D10 41 80 FF D8 */ blt lbl_802D7CE8 -/* 802D7D14 80 9F 00 38 */ lwz r4, 0x38(r31) -/* 802D7D18 4B FF 67 E9 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D7D1C 38 00 00 00 */ li r0, 0 -/* 802D7D20 90 1F 00 44 */ stw r0, 0x44(r31) -lbl_802D7D24: -/* 802D7D24 80 7F 00 50 */ lwz r3, 0x50(r31) -/* 802D7D28 28 03 00 00 */ cmplwi r3, 0 -/* 802D7D2C 41 82 00 14 */ beq lbl_802D7D40 -/* 802D7D30 38 80 00 00 */ li r4, 0 -/* 802D7D34 4B FF 67 CD */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D7D38 38 00 00 00 */ li r0, 0 -/* 802D7D3C 90 1F 00 50 */ stw r0, 0x50(r31) -lbl_802D7D40: -/* 802D7D40 80 7F 00 68 */ lwz r3, 0x68(r31) -/* 802D7D44 28 03 00 00 */ cmplwi r3, 0 -/* 802D7D48 41 82 00 1C */ beq lbl_802D7D64 -/* 802D7D4C 41 82 00 18 */ beq lbl_802D7D64 -/* 802D7D50 38 80 00 01 */ li r4, 1 -/* 802D7D54 81 83 00 00 */ lwz r12, 0(r3) -/* 802D7D58 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D7D5C 7D 89 03 A6 */ mtctr r12 -/* 802D7D60 4E 80 04 21 */ bctrl -lbl_802D7D64: -/* 802D7D64 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D7D68 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D7D6C 38 9F 00 18 */ addi r4, r31, 0x18 -/* 802D7D70 48 00 43 ED */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D7D74 38 00 00 00 */ li r0, 0 -/* 802D7D78 98 1F 00 30 */ stb r0, 0x30(r31) -lbl_802D7D7C: -/* 802D7D7C 7F E3 FB 78 */ mr r3, r31 -/* 802D7D80 38 80 00 00 */ li r4, 0 -/* 802D7D84 4B FF E5 B1 */ bl __dt__10JKRArchiveFv -/* 802D7D88 7F 80 07 35 */ extsh. r0, r28 -/* 802D7D8C 40 81 00 0C */ ble lbl_802D7D98 -/* 802D7D90 7F E3 FB 78 */ mr r3, r31 -/* 802D7D94 4B FF 6F A9 */ bl __dl__FPv -lbl_802D7D98: -/* 802D7D98 7F E3 FB 78 */ mr r3, r31 -/* 802D7D9C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7DA0 48 08 A4 85 */ bl _restgpr_28 -/* 802D7DA4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D7DA8 7C 08 03 A6 */ mtlr r0 -/* 802D7DAC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D7DB0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdArchive/fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl.s b/asm/JSystem/JKernel/JKRDvdArchive/fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl.s deleted file mode 100644 index 851acaf432..0000000000 --- a/asm/JSystem/JKernel/JKRDvdArchive/fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl.s +++ /dev/null @@ -1,80 +0,0 @@ -lbl_802D8050: -/* 802D8050 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D8054 7C 08 02 A6 */ mflr r0 -/* 802D8058 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D805C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D8060 48 08 A1 79 */ bl _savegpr_28 -/* 802D8064 7C 7C 1B 78 */ mr r28, r3 -/* 802D8068 7C 9D 23 78 */ mr r29, r4 -/* 802D806C 7C BE 2B 79 */ or. r30, r5, r5 -/* 802D8070 40 82 00 08 */ bne lbl_802D8078 -/* 802D8074 3B C1 00 0C */ addi r30, r1, 0xc -lbl_802D8078: -/* 802D8078 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D807C 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D8080 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D8084 40 82 00 0C */ bne lbl_802D8090 -/* 802D8088 3B E0 00 00 */ li r31, 0 -/* 802D808C 48 00 00 18 */ b lbl_802D80A4 -lbl_802D8090: -/* 802D8090 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 -/* 802D8094 41 82 00 0C */ beq lbl_802D80A0 -/* 802D8098 3B E0 00 02 */ li r31, 2 -/* 802D809C 48 00 00 08 */ b lbl_802D80A4 -lbl_802D80A0: -/* 802D80A0 3B E0 00 01 */ li r31, 1 -lbl_802D80A4: -/* 802D80A4 80 1D 00 10 */ lwz r0, 0x10(r29) -/* 802D80A8 28 00 00 00 */ cmplwi r0, 0 -/* 802D80AC 40 82 00 70 */ bne lbl_802D811C -/* 802D80B0 80 7C 00 40 */ lwz r3, 0x40(r28) -/* 802D80B4 80 9C 00 64 */ lwz r4, 0x64(r28) -/* 802D80B8 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D80BC 7C 84 02 14 */ add r4, r4, r0 -/* 802D80C0 80 BD 00 0C */ lwz r5, 0xc(r29) -/* 802D80C4 80 DC 00 38 */ lwz r6, 0x38(r28) -/* 802D80C8 7F E7 FB 78 */ mr r7, r31 -/* 802D80CC 81 1C 00 5C */ lwz r8, 0x5c(r28) -/* 802D80D0 39 21 00 08 */ addi r9, r1, 8 -/* 802D80D4 48 00 03 A1 */ bl fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc -/* 802D80D8 90 7E 00 00 */ stw r3, 0(r30) -/* 802D80DC 28 03 00 00 */ cmplwi r3, 0 -/* 802D80E0 40 82 00 0C */ bne lbl_802D80EC -/* 802D80E4 38 60 00 00 */ li r3, 0 -/* 802D80E8 48 00 00 68 */ b lbl_802D8150 -lbl_802D80EC: -/* 802D80EC 80 01 00 08 */ lwz r0, 8(r1) -/* 802D80F0 90 1D 00 10 */ stw r0, 0x10(r29) -/* 802D80F4 2C 1F 00 02 */ cmpwi r31, 2 -/* 802D80F8 40 82 00 54 */ bne lbl_802D814C -/* 802D80FC 7F 83 E3 78 */ mr r3, r28 -/* 802D8100 7F A4 EB 78 */ mr r4, r29 -/* 802D8104 80 BE 00 00 */ lwz r5, 0(r30) -/* 802D8108 81 9C 00 00 */ lwz r12, 0(r28) -/* 802D810C 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802D8110 7D 89 03 A6 */ mtctr r12 -/* 802D8114 4E 80 04 21 */ bctrl -/* 802D8118 48 00 00 34 */ b lbl_802D814C -lbl_802D811C: -/* 802D811C 2C 1F 00 02 */ cmpwi r31, 2 -/* 802D8120 40 82 00 24 */ bne lbl_802D8144 -/* 802D8124 7F 83 E3 78 */ mr r3, r28 -/* 802D8128 7F A4 EB 78 */ mr r4, r29 -/* 802D812C 81 9C 00 00 */ lwz r12, 0(r28) -/* 802D8130 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802D8134 7D 89 03 A6 */ mtctr r12 -/* 802D8138 4E 80 04 21 */ bctrl -/* 802D813C 90 7E 00 00 */ stw r3, 0(r30) -/* 802D8140 48 00 00 0C */ b lbl_802D814C -lbl_802D8144: -/* 802D8144 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 802D8148 90 1E 00 00 */ stw r0, 0(r30) -lbl_802D814C: -/* 802D814C 80 7D 00 10 */ lwz r3, 0x10(r29) -lbl_802D8150: -/* 802D8150 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D8154 48 08 A0 D1 */ bl _restgpr_28 -/* 802D8158 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D815C 7C 08 03 A6 */ mtlr r0 -/* 802D8160 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D8164 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdArchive/fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc.s b/asm/JSystem/JKernel/JKRDvdArchive/fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc.s deleted file mode 100644 index e608e7d636..0000000000 --- a/asm/JSystem/JKernel/JKRDvdArchive/fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc.s +++ /dev/null @@ -1,146 +0,0 @@ -lbl_802D8474: -/* 802D8474 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 802D8478 7C 08 02 A6 */ mflr r0 -/* 802D847C 90 01 00 74 */ stw r0, 0x74(r1) -/* 802D8480 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D8484 48 08 9D 49 */ bl _savegpr_25 -/* 802D8488 7C 7D 1B 78 */ mr r29, r3 -/* 802D848C 7C 9E 23 78 */ mr r30, r4 -/* 802D8490 7C B9 2B 78 */ mr r25, r5 -/* 802D8494 7C DA 33 78 */ mr r26, r6 -/* 802D8498 7D 3F 4B 78 */ mr r31, r9 -/* 802D849C 38 19 00 1F */ addi r0, r25, 0x1f -/* 802D84A0 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a -/* 802D84A4 2C 08 00 01 */ cmpwi r8, 1 -/* 802D84A8 41 82 01 9C */ beq lbl_802D8644 -/* 802D84AC 40 80 00 10 */ bge lbl_802D84BC -/* 802D84B0 2C 08 00 00 */ cmpwi r8, 0 -/* 802D84B4 40 80 00 14 */ bge lbl_802D84C8 -/* 802D84B8 48 00 01 A8 */ b lbl_802D8660 -lbl_802D84BC: -/* 802D84BC 2C 08 00 03 */ cmpwi r8, 3 -/* 802D84C0 40 80 01 A0 */ bge lbl_802D8660 -/* 802D84C4 48 00 01 28 */ b lbl_802D85EC -lbl_802D84C8: -/* 802D84C8 2C 07 00 00 */ cmpwi r7, 0 -/* 802D84CC 41 82 00 14 */ beq lbl_802D84E0 -/* 802D84D0 41 80 01 1C */ blt lbl_802D85EC -/* 802D84D4 2C 07 00 03 */ cmpwi r7, 3 -/* 802D84D8 40 80 01 14 */ bge lbl_802D85EC -/* 802D84DC 48 00 00 5C */ b lbl_802D8538 -lbl_802D84E0: -/* 802D84E0 7F 63 DB 78 */ mr r3, r27 -/* 802D84E4 38 80 00 20 */ li r4, 0x20 -/* 802D84E8 7F 45 D3 78 */ mr r5, r26 -/* 802D84EC 4B FF 5F 89 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D84F0 7C 7C 1B 78 */ mr r28, r3 -/* 802D84F4 38 00 00 00 */ li r0, 0 -/* 802D84F8 90 01 00 08 */ stw r0, 8(r1) -/* 802D84FC 7F A3 EB 78 */ mr r3, r29 -/* 802D8500 7F 84 E3 78 */ mr r4, r28 -/* 802D8504 38 A0 00 00 */ li r5, 0 -/* 802D8508 7F 66 DB 78 */ mr r6, r27 -/* 802D850C 38 E0 00 00 */ li r7, 0 -/* 802D8510 39 00 00 01 */ li r8, 1 -/* 802D8514 7F C9 F3 78 */ mr r9, r30 -/* 802D8518 39 40 00 00 */ li r10, 0 -/* 802D851C 48 00 17 39 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 802D8520 7F 83 E3 78 */ mr r3, r28 -/* 802D8524 7F 64 DB 78 */ mr r4, r27 -/* 802D8528 48 06 30 59 */ bl DCInvalidateRange -/* 802D852C 93 9F 00 00 */ stw r28, 0(r31) -/* 802D8530 7F 63 DB 78 */ mr r3, r27 -/* 802D8534 48 00 01 4C */ b lbl_802D8680 -lbl_802D8538: -/* 802D8538 38 01 00 2F */ addi r0, r1, 0x2f -/* 802D853C 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a -/* 802D8540 38 00 00 00 */ li r0, 0 -/* 802D8544 90 01 00 08 */ stw r0, 8(r1) -/* 802D8548 7F 64 DB 78 */ mr r4, r27 -/* 802D854C 38 A0 00 02 */ li r5, 2 -/* 802D8550 38 C0 00 20 */ li r6, 0x20 -/* 802D8554 38 E0 00 00 */ li r7, 0 -/* 802D8558 39 00 00 01 */ li r8, 1 -/* 802D855C 7F C9 F3 78 */ mr r9, r30 -/* 802D8560 39 40 00 00 */ li r10, 0 -/* 802D8564 48 00 16 F1 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 802D8568 7F 63 DB 78 */ mr r3, r27 -/* 802D856C 38 80 00 20 */ li r4, 0x20 -/* 802D8570 48 06 30 11 */ bl DCInvalidateRange -/* 802D8574 88 BB 00 07 */ lbz r5, 7(r27) -/* 802D8578 88 9B 00 06 */ lbz r4, 6(r27) -/* 802D857C 88 7B 00 04 */ lbz r3, 4(r27) -/* 802D8580 88 1B 00 05 */ lbz r0, 5(r27) -/* 802D8584 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D8588 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D858C 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D8590 7C BC 03 78 */ or r28, r5, r0 -/* 802D8594 7F 83 E3 78 */ mr r3, r28 -/* 802D8598 38 80 00 20 */ li r4, 0x20 -/* 802D859C 7F 45 D3 78 */ mr r5, r26 -/* 802D85A0 4B FF 5E D5 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D85A4 7C 7B 1B 78 */ mr r27, r3 -/* 802D85A8 38 00 00 00 */ li r0, 0 -/* 802D85AC 90 01 00 08 */ stw r0, 8(r1) -/* 802D85B0 7F A3 EB 78 */ mr r3, r29 -/* 802D85B4 7F 64 DB 78 */ mr r4, r27 -/* 802D85B8 38 A0 00 01 */ li r5, 1 -/* 802D85BC 7F 86 E3 78 */ mr r6, r28 -/* 802D85C0 38 E0 00 00 */ li r7, 0 -/* 802D85C4 39 00 00 01 */ li r8, 1 -/* 802D85C8 7F C9 F3 78 */ mr r9, r30 -/* 802D85CC 39 40 00 00 */ li r10, 0 -/* 802D85D0 48 00 16 85 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 802D85D4 7F 63 DB 78 */ mr r3, r27 -/* 802D85D8 7F 84 E3 78 */ mr r4, r28 -/* 802D85DC 48 06 2F A5 */ bl DCInvalidateRange -/* 802D85E0 93 7F 00 00 */ stw r27, 0(r31) -/* 802D85E4 7F 83 E3 78 */ mr r3, r28 -/* 802D85E8 48 00 00 98 */ b lbl_802D8680 -lbl_802D85EC: -/* 802D85EC 7F 63 DB 78 */ mr r3, r27 -/* 802D85F0 38 80 00 20 */ li r4, 0x20 -/* 802D85F4 7F 45 D3 78 */ mr r5, r26 -/* 802D85F8 4B FF 5E 7D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D85FC 7C 7C 1B 78 */ mr r28, r3 -/* 802D8600 38 00 00 00 */ li r0, 0 -/* 802D8604 90 01 00 08 */ stw r0, 8(r1) -/* 802D8608 7F A3 EB 78 */ mr r3, r29 -/* 802D860C 7F 84 E3 78 */ mr r4, r28 -/* 802D8610 38 A0 00 01 */ li r5, 1 -/* 802D8614 7F 26 CB 78 */ mr r6, r25 -/* 802D8618 38 E0 00 00 */ li r7, 0 -/* 802D861C 39 00 00 01 */ li r8, 1 -/* 802D8620 7F C9 F3 78 */ mr r9, r30 -/* 802D8624 39 40 00 00 */ li r10, 0 -/* 802D8628 48 00 16 2D */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 802D862C 7F 83 E3 78 */ mr r3, r28 -/* 802D8630 7F 24 CB 78 */ mr r4, r25 -/* 802D8634 48 06 2F 4D */ bl DCInvalidateRange -/* 802D8638 93 9F 00 00 */ stw r28, 0(r31) -/* 802D863C 7F 63 DB 78 */ mr r3, r27 -/* 802D8640 48 00 00 40 */ b lbl_802D8680 -lbl_802D8644: -/* 802D8644 3C 60 80 3A */ lis r3, JKRDvdArchive__stringBase0@ha /* 0x8039D1B0@ha */ -/* 802D8648 38 63 D1 B0 */ addi r3, r3, JKRDvdArchive__stringBase0@l /* 0x8039D1B0@l */ -/* 802D864C 38 80 02 F2 */ li r4, 0x2f2 -/* 802D8650 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D8654 38 C3 00 4C */ addi r6, r3, 0x4c -/* 802D8658 4C C6 31 82 */ crclr 6 -/* 802D865C 48 00 9B A1 */ bl panic_f__12JUTExceptionFPCciPCce -lbl_802D8660: -/* 802D8660 3C 60 80 3A */ lis r3, JKRDvdArchive__stringBase0@ha /* 0x8039D1B0@ha */ -/* 802D8664 38 63 D1 B0 */ addi r3, r3, JKRDvdArchive__stringBase0@l /* 0x8039D1B0@l */ -/* 802D8668 38 80 02 F6 */ li r4, 0x2f6 -/* 802D866C 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D8670 38 C3 00 3A */ addi r6, r3, 0x3a -/* 802D8674 4C C6 31 82 */ crclr 6 -/* 802D8678 48 00 9B 85 */ bl panic_f__12JUTExceptionFPCciPCce -/* 802D867C 38 60 00 00 */ li r3, 0 -lbl_802D8680: -/* 802D8680 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D8684 48 08 9B 95 */ bl _restgpr_25 -/* 802D8688 80 01 00 74 */ lwz r0, 0x74(r1) -/* 802D868C 7C 08 03 A6 */ mtlr r0 -/* 802D8690 38 21 00 70 */ addi r1, r1, 0x70 -/* 802D8694 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdArchive/fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii.s b/asm/JSystem/JKernel/JKRDvdArchive/fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii.s deleted file mode 100644 index 207b0be690..0000000000 --- a/asm/JSystem/JKernel/JKRDvdArchive/fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii.s +++ /dev/null @@ -1,142 +0,0 @@ -lbl_802D826C: -/* 802D826C 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 802D8270 7C 08 02 A6 */ mflr r0 -/* 802D8274 90 01 00 74 */ stw r0, 0x74(r1) -/* 802D8278 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D827C 48 08 9F 55 */ bl _savegpr_26 -/* 802D8280 7C 7D 1B 78 */ mr r29, r3 -/* 802D8284 7C 9E 23 78 */ mr r30, r4 -/* 802D8288 7C BA 2B 78 */ mr r26, r5 -/* 802D828C 7C DF 33 78 */ mr r31, r6 -/* 802D8290 38 1A 00 1F */ addi r0, r26, 0x1f -/* 802D8294 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a -/* 802D8298 54 FB 00 34 */ rlwinm r27, r7, 0, 0, 0x1a -/* 802D829C 2C 09 00 01 */ cmpwi r9, 1 -/* 802D82A0 41 82 01 80 */ beq lbl_802D8420 -/* 802D82A4 40 80 00 10 */ bge lbl_802D82B4 -/* 802D82A8 2C 09 00 00 */ cmpwi r9, 0 -/* 802D82AC 40 80 00 14 */ bge lbl_802D82C0 -/* 802D82B0 48 00 01 8C */ b lbl_802D843C -lbl_802D82B4: -/* 802D82B4 2C 09 00 03 */ cmpwi r9, 3 -/* 802D82B8 40 80 01 84 */ bge lbl_802D843C -/* 802D82BC 48 00 01 18 */ b lbl_802D83D4 -lbl_802D82C0: -/* 802D82C0 2C 08 00 00 */ cmpwi r8, 0 -/* 802D82C4 41 82 00 14 */ beq lbl_802D82D8 -/* 802D82C8 41 80 01 0C */ blt lbl_802D83D4 -/* 802D82CC 2C 08 00 03 */ cmpwi r8, 3 -/* 802D82D0 40 80 01 04 */ bge lbl_802D83D4 -/* 802D82D4 48 00 00 50 */ b lbl_802D8324 -lbl_802D82D8: -/* 802D82D8 7C 1C D8 40 */ cmplw r28, r27 -/* 802D82DC 40 81 00 08 */ ble lbl_802D82E4 -/* 802D82E0 7F 7C DB 78 */ mr r28, r27 -lbl_802D82E4: -/* 802D82E4 38 00 00 00 */ li r0, 0 -/* 802D82E8 90 01 00 08 */ stw r0, 8(r1) -/* 802D82EC 7F A3 EB 78 */ mr r3, r29 -/* 802D82F0 7F E4 FB 78 */ mr r4, r31 -/* 802D82F4 38 A0 00 00 */ li r5, 0 -/* 802D82F8 7F 86 E3 78 */ mr r6, r28 -/* 802D82FC 38 E0 00 00 */ li r7, 0 -/* 802D8300 39 00 00 01 */ li r8, 1 -/* 802D8304 7F C9 F3 78 */ mr r9, r30 -/* 802D8308 39 40 00 00 */ li r10, 0 -/* 802D830C 48 00 19 49 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 802D8310 7F E3 FB 78 */ mr r3, r31 -/* 802D8314 7F 84 E3 78 */ mr r4, r28 -/* 802D8318 48 06 32 69 */ bl DCInvalidateRange -/* 802D831C 7F 83 E3 78 */ mr r3, r28 -/* 802D8320 48 00 01 3C */ b lbl_802D845C -lbl_802D8324: -/* 802D8324 38 01 00 2F */ addi r0, r1, 0x2f -/* 802D8328 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a -/* 802D832C 38 00 00 00 */ li r0, 0 -/* 802D8330 90 01 00 08 */ stw r0, 8(r1) -/* 802D8334 7F 84 E3 78 */ mr r4, r28 -/* 802D8338 38 A0 00 02 */ li r5, 2 -/* 802D833C 38 C0 00 20 */ li r6, 0x20 -/* 802D8340 38 E0 00 00 */ li r7, 0 -/* 802D8344 39 00 00 01 */ li r8, 1 -/* 802D8348 7F C9 F3 78 */ mr r9, r30 -/* 802D834C 39 40 00 00 */ li r10, 0 -/* 802D8350 48 00 19 05 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 802D8354 7F 83 E3 78 */ mr r3, r28 -/* 802D8358 38 80 00 20 */ li r4, 0x20 -/* 802D835C 48 06 32 25 */ bl DCInvalidateRange -/* 802D8360 88 BC 00 07 */ lbz r5, 7(r28) -/* 802D8364 88 9C 00 06 */ lbz r4, 6(r28) -/* 802D8368 88 7C 00 04 */ lbz r3, 4(r28) -/* 802D836C 88 1C 00 05 */ lbz r0, 5(r28) -/* 802D8370 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D8374 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D8378 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D837C 7C BC 03 78 */ or r28, r5, r0 -/* 802D8380 38 1C 00 1F */ addi r0, r28, 0x1f -/* 802D8384 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a -/* 802D8388 7C 1A D8 40 */ cmplw r26, r27 -/* 802D838C 40 81 00 08 */ ble lbl_802D8394 -/* 802D8390 7F 7A DB 78 */ mr r26, r27 -lbl_802D8394: -/* 802D8394 38 00 00 00 */ li r0, 0 -/* 802D8398 90 01 00 08 */ stw r0, 8(r1) -/* 802D839C 7F A3 EB 78 */ mr r3, r29 -/* 802D83A0 7F E4 FB 78 */ mr r4, r31 -/* 802D83A4 38 A0 00 01 */ li r5, 1 -/* 802D83A8 7F 46 D3 78 */ mr r6, r26 -/* 802D83AC 38 E0 00 00 */ li r7, 0 -/* 802D83B0 39 00 00 01 */ li r8, 1 -/* 802D83B4 7F C9 F3 78 */ mr r9, r30 -/* 802D83B8 39 40 00 00 */ li r10, 0 -/* 802D83BC 48 00 18 99 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 802D83C0 7F E3 FB 78 */ mr r3, r31 -/* 802D83C4 7F 44 D3 78 */ mr r4, r26 -/* 802D83C8 48 06 31 B9 */ bl DCInvalidateRange -/* 802D83CC 7F 83 E3 78 */ mr r3, r28 -/* 802D83D0 48 00 00 8C */ b lbl_802D845C -lbl_802D83D4: -/* 802D83D4 7C 1A D8 40 */ cmplw r26, r27 -/* 802D83D8 40 81 00 08 */ ble lbl_802D83E0 -/* 802D83DC 7F 7A DB 78 */ mr r26, r27 -lbl_802D83E0: -/* 802D83E0 38 00 00 00 */ li r0, 0 -/* 802D83E4 90 01 00 08 */ stw r0, 8(r1) -/* 802D83E8 7F A3 EB 78 */ mr r3, r29 -/* 802D83EC 7F E4 FB 78 */ mr r4, r31 -/* 802D83F0 38 A0 00 01 */ li r5, 1 -/* 802D83F4 7F 46 D3 78 */ mr r6, r26 -/* 802D83F8 38 E0 00 00 */ li r7, 0 -/* 802D83FC 39 00 00 01 */ li r8, 1 -/* 802D8400 7F C9 F3 78 */ mr r9, r30 -/* 802D8404 39 40 00 00 */ li r10, 0 -/* 802D8408 48 00 18 4D */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 802D840C 7F E3 FB 78 */ mr r3, r31 -/* 802D8410 7F 44 D3 78 */ mr r4, r26 -/* 802D8414 48 06 31 6D */ bl DCInvalidateRange -/* 802D8418 7F 43 D3 78 */ mr r3, r26 -/* 802D841C 48 00 00 40 */ b lbl_802D845C -lbl_802D8420: -/* 802D8420 3C 60 80 3A */ lis r3, JKRDvdArchive__stringBase0@ha /* 0x8039D1B0@ha */ -/* 802D8424 38 63 D1 B0 */ addi r3, r3, JKRDvdArchive__stringBase0@l /* 0x8039D1B0@l */ -/* 802D8428 38 80 02 89 */ li r4, 0x289 -/* 802D842C 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D8430 38 C3 00 15 */ addi r6, r3, 0x15 -/* 802D8434 4C C6 31 82 */ crclr 6 -/* 802D8438 48 00 9D C5 */ bl panic_f__12JUTExceptionFPCciPCce -lbl_802D843C: -/* 802D843C 3C 60 80 3A */ lis r3, JKRDvdArchive__stringBase0@ha /* 0x8039D1B0@ha */ -/* 802D8440 38 63 D1 B0 */ addi r3, r3, JKRDvdArchive__stringBase0@l /* 0x8039D1B0@l */ -/* 802D8444 38 80 02 8D */ li r4, 0x28d -/* 802D8448 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D844C 38 C3 00 3A */ addi r6, r3, 0x3a -/* 802D8450 4C C6 31 82 */ crclr 6 -/* 802D8454 48 00 9D A9 */ bl panic_f__12JUTExceptionFPCciPCce -/* 802D8458 38 60 00 00 */ li r3, 0 -lbl_802D845C: -/* 802D845C 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D8460 48 08 9D BD */ bl _restgpr_26 -/* 802D8464 80 01 00 74 */ lwz r0, 0x74(r1) -/* 802D8468 7C 08 03 A6 */ mtlr r0 -/* 802D846C 38 21 00 70 */ addi r1, r1, 0x70 -/* 802D8470 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdArchive/getExpandedResSize__13JKRDvdArchiveCFPCv.s b/asm/JSystem/JKernel/JKRDvdArchive/getExpandedResSize__13JKRDvdArchiveCFPCv.s deleted file mode 100644 index 42aa8427a4..0000000000 --- a/asm/JSystem/JKernel/JKRDvdArchive/getExpandedResSize__13JKRDvdArchiveCFPCv.s +++ /dev/null @@ -1,85 +0,0 @@ -lbl_802D8698: -/* 802D8698 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 802D869C 7C 08 02 A6 */ mflr r0 -/* 802D86A0 90 01 00 64 */ stw r0, 0x64(r1) -/* 802D86A4 39 61 00 60 */ addi r11, r1, 0x60 -/* 802D86A8 48 08 9B 35 */ bl _savegpr_29 -/* 802D86AC 7C 7F 1B 78 */ mr r31, r3 -/* 802D86B0 7C 9E 23 78 */ mr r30, r4 -/* 802D86B4 80 03 00 50 */ lwz r0, 0x50(r3) -/* 802D86B8 28 00 00 00 */ cmplwi r0, 0 -/* 802D86BC 40 82 00 18 */ bne lbl_802D86D4 -/* 802D86C0 81 83 00 00 */ lwz r12, 0(r3) -/* 802D86C4 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D86C8 7D 89 03 A6 */ mtctr r12 -/* 802D86CC 4E 80 04 21 */ bctrl -/* 802D86D0 48 00 00 EC */ b lbl_802D87BC -lbl_802D86D4: -/* 802D86D4 4B FF E0 61 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D86D8 7C 7D 1B 79 */ or. r29, r3, r3 -/* 802D86DC 40 82 00 0C */ bne lbl_802D86E8 -/* 802D86E0 38 60 FF FF */ li r3, -1 -/* 802D86E4 48 00 00 D8 */ b lbl_802D87BC -lbl_802D86E8: -/* 802D86E8 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D86EC 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D86F0 40 82 00 20 */ bne lbl_802D8710 -/* 802D86F4 7F E3 FB 78 */ mr r3, r31 -/* 802D86F8 7F C4 F3 78 */ mr r4, r30 -/* 802D86FC 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D8700 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D8704 7D 89 03 A6 */ mtctr r12 -/* 802D8708 4E 80 04 21 */ bctrl -/* 802D870C 48 00 00 B0 */ b lbl_802D87BC -lbl_802D8710: -/* 802D8710 7F E3 FB 78 */ mr r3, r31 -/* 802D8714 7F A4 EB 78 */ mr r4, r29 -/* 802D8718 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D871C 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802D8720 7D 89 03 A6 */ mtctr r12 -/* 802D8724 4E 80 04 21 */ bctrl -/* 802D8728 28 03 00 00 */ cmplwi r3, 0 -/* 802D872C 41 82 00 08 */ beq lbl_802D8734 -/* 802D8730 48 00 00 8C */ b lbl_802D87BC -lbl_802D8734: -/* 802D8734 38 01 00 2F */ addi r0, r1, 0x2f -/* 802D8738 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a -/* 802D873C 38 00 00 00 */ li r0, 0 -/* 802D8740 90 01 00 08 */ stw r0, 8(r1) -/* 802D8744 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 802D8748 7F C4 F3 78 */ mr r4, r30 -/* 802D874C 38 A0 00 02 */ li r5, 2 -/* 802D8750 38 C0 00 20 */ li r6, 0x20 -/* 802D8754 38 E0 00 00 */ li r7, 0 -/* 802D8758 39 00 00 01 */ li r8, 1 -/* 802D875C 81 3F 00 64 */ lwz r9, 0x64(r31) -/* 802D8760 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D8764 7D 29 02 14 */ add r9, r9, r0 -/* 802D8768 39 40 00 00 */ li r10, 0 -/* 802D876C 48 00 14 E9 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 802D8770 7F C3 F3 78 */ mr r3, r30 -/* 802D8774 38 80 00 20 */ li r4, 0x20 -/* 802D8778 48 06 2E 09 */ bl DCInvalidateRange -/* 802D877C 88 BE 00 07 */ lbz r5, 7(r30) -/* 802D8780 88 9E 00 06 */ lbz r4, 6(r30) -/* 802D8784 88 7E 00 04 */ lbz r3, 4(r30) -/* 802D8788 88 1E 00 05 */ lbz r0, 5(r30) -/* 802D878C 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D8790 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D8794 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D8798 7C BE 03 78 */ or r30, r5, r0 -/* 802D879C 7F E3 FB 78 */ mr r3, r31 -/* 802D87A0 7F A4 EB 78 */ mr r4, r29 -/* 802D87A4 7F C5 F3 78 */ mr r5, r30 -/* 802D87A8 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D87AC 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802D87B0 7D 89 03 A6 */ mtctr r12 -/* 802D87B4 4E 80 04 21 */ bctrl -/* 802D87B8 7F C3 F3 78 */ mr r3, r30 -lbl_802D87BC: -/* 802D87BC 39 61 00 60 */ addi r11, r1, 0x60 -/* 802D87C0 48 08 9A 69 */ bl _restgpr_29 -/* 802D87C4 80 01 00 64 */ lwz r0, 0x64(r1) -/* 802D87C8 7C 08 03 A6 */ mtlr r0 -/* 802D87CC 38 21 00 60 */ addi r1, r1, 0x60 -/* 802D87D0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFPCc.s b/asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFPCc.s deleted file mode 100644 index ef02440d65..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFPCc.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_802D95F8: -/* 802D95F8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D95FC 7C 08 02 A6 */ mflr r0 -/* 802D9600 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D9604 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D9608 48 08 8B D5 */ bl _savegpr_29 -/* 802D960C 7C 7D 1B 78 */ mr r29, r3 -/* 802D9610 7C 9F 23 78 */ mr r31, r4 -/* 802D9614 7F A0 EB 78 */ mr r0, r29 -/* 802D9618 7C 1E 03 78 */ mr r30, r0 -/* 802D961C 4B FF 7E 61 */ bl __ct__11JKRDisposerFv -/* 802D9620 3C 60 80 3D */ lis r3, __vt__7JKRFile@ha /* 0x803CC328@ha */ -/* 802D9624 38 03 C3 28 */ addi r0, r3, __vt__7JKRFile@l /* 0x803CC328@l */ -/* 802D9628 90 1E 00 00 */ stw r0, 0(r30) -/* 802D962C 38 00 00 00 */ li r0, 0 -/* 802D9630 98 1E 00 18 */ stb r0, 0x18(r30) -/* 802D9634 3C 60 80 3D */ lis r3, __vt__10JKRDvdFile@ha /* 0x803CC438@ha */ -/* 802D9638 38 03 C4 38 */ addi r0, r3, __vt__10JKRDvdFile@l /* 0x803CC438@l */ -/* 802D963C 90 1D 00 00 */ stw r0, 0(r29) -/* 802D9640 38 7D 00 E4 */ addi r3, r29, 0xe4 -/* 802D9644 7F A4 EB 78 */ mr r4, r29 -/* 802D9648 48 00 27 B5 */ bl __ct__10JSUPtrLinkFPv -/* 802D964C 7F A3 EB 78 */ mr r3, r29 -/* 802D9650 48 00 01 95 */ bl initiate__10JKRDvdFileFv -/* 802D9654 7F A3 EB 78 */ mr r3, r29 -/* 802D9658 7F E4 FB 78 */ mr r4, r31 -/* 802D965C 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D9660 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 802D9664 7D 89 03 A6 */ mtctr r12 -/* 802D9668 4E 80 04 21 */ bctrl -/* 802D966C 98 7D 00 18 */ stb r3, 0x18(r29) -/* 802D9670 88 1D 00 18 */ lbz r0, 0x18(r29) -/* 802D9674 28 00 00 00 */ cmplwi r0, 0 -/* 802D9678 41 82 00 0C */ beq lbl_802D9684 -/* 802D967C 7F A3 EB 78 */ mr r3, r29 -/* 802D9680 48 00 00 08 */ b lbl_802D9688 -lbl_802D9684: -/* 802D9684 7F A3 EB 78 */ mr r3, r29 -lbl_802D9688: -/* 802D9688 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D968C 48 08 8B 9D */ bl _restgpr_29 -/* 802D9690 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D9694 7C 08 03 A6 */ mtlr r0 -/* 802D9698 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D969C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFl.s b/asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFl.s deleted file mode 100644 index 0a0cd2f0df..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFl.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_802D96A0: -/* 802D96A0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D96A4 7C 08 02 A6 */ mflr r0 -/* 802D96A8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D96AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D96B0 48 08 8B 2D */ bl _savegpr_29 -/* 802D96B4 7C 7D 1B 78 */ mr r29, r3 -/* 802D96B8 7C 9F 23 78 */ mr r31, r4 -/* 802D96BC 7F A0 EB 78 */ mr r0, r29 -/* 802D96C0 7C 1E 03 78 */ mr r30, r0 -/* 802D96C4 4B FF 7D B9 */ bl __ct__11JKRDisposerFv -/* 802D96C8 3C 60 80 3D */ lis r3, __vt__7JKRFile@ha /* 0x803CC328@ha */ -/* 802D96CC 38 03 C3 28 */ addi r0, r3, __vt__7JKRFile@l /* 0x803CC328@l */ -/* 802D96D0 90 1E 00 00 */ stw r0, 0(r30) -/* 802D96D4 38 00 00 00 */ li r0, 0 -/* 802D96D8 98 1E 00 18 */ stb r0, 0x18(r30) -/* 802D96DC 3C 60 80 3D */ lis r3, __vt__10JKRDvdFile@ha /* 0x803CC438@ha */ -/* 802D96E0 38 03 C4 38 */ addi r0, r3, __vt__10JKRDvdFile@l /* 0x803CC438@l */ -/* 802D96E4 90 1D 00 00 */ stw r0, 0(r29) -/* 802D96E8 38 7D 00 E4 */ addi r3, r29, 0xe4 -/* 802D96EC 7F A4 EB 78 */ mr r4, r29 -/* 802D96F0 48 00 27 0D */ bl __ct__10JSUPtrLinkFPv -/* 802D96F4 7F A3 EB 78 */ mr r3, r29 -/* 802D96F8 48 00 00 ED */ bl initiate__10JKRDvdFileFv -/* 802D96FC 7F A3 EB 78 */ mr r3, r29 -/* 802D9700 7F E4 FB 78 */ mr r4, r31 -/* 802D9704 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D9708 81 8C 00 20 */ lwz r12, 0x20(r12) -/* 802D970C 7D 89 03 A6 */ mtctr r12 -/* 802D9710 4E 80 04 21 */ bctrl -/* 802D9714 98 7D 00 18 */ stb r3, 0x18(r29) -/* 802D9718 88 1D 00 18 */ lbz r0, 0x18(r29) -/* 802D971C 28 00 00 00 */ cmplwi r0, 0 -/* 802D9720 41 82 00 0C */ beq lbl_802D972C -/* 802D9724 7F A3 EB 78 */ mr r3, r29 -/* 802D9728 48 00 00 08 */ b lbl_802D9730 -lbl_802D972C: -/* 802D972C 7F A3 EB 78 */ mr r3, r29 -lbl_802D9730: -/* 802D9730 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D9734 48 08 8A F5 */ bl _restgpr_29 -/* 802D9738 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D973C 7C 08 03 A6 */ mtlr r0 -/* 802D9740 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D9744 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFv.s b/asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFv.s deleted file mode 100644 index 06099f5dcd..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_802D9584: -/* 802D9584 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D9588 7C 08 02 A6 */ mflr r0 -/* 802D958C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D9590 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D9594 93 C1 00 08 */ stw r30, 8(r1) -/* 802D9598 7C 7E 1B 78 */ mr r30, r3 -/* 802D959C 7F C0 F3 78 */ mr r0, r30 -/* 802D95A0 7C 1F 03 78 */ mr r31, r0 -/* 802D95A4 4B FF 7E D9 */ bl __ct__11JKRDisposerFv -/* 802D95A8 3C 60 80 3D */ lis r3, __vt__7JKRFile@ha /* 0x803CC328@ha */ -/* 802D95AC 38 03 C3 28 */ addi r0, r3, __vt__7JKRFile@l /* 0x803CC328@l */ -/* 802D95B0 90 1F 00 00 */ stw r0, 0(r31) -/* 802D95B4 38 00 00 00 */ li r0, 0 -/* 802D95B8 98 1F 00 18 */ stb r0, 0x18(r31) -/* 802D95BC 3C 60 80 3D */ lis r3, __vt__10JKRDvdFile@ha /* 0x803CC438@ha */ -/* 802D95C0 38 03 C4 38 */ addi r0, r3, __vt__10JKRDvdFile@l /* 0x803CC438@l */ -/* 802D95C4 90 1E 00 00 */ stw r0, 0(r30) -/* 802D95C8 38 7E 00 E4 */ addi r3, r30, 0xe4 -/* 802D95CC 7F C4 F3 78 */ mr r4, r30 -/* 802D95D0 48 00 28 2D */ bl __ct__10JSUPtrLinkFPv -/* 802D95D4 7F C3 F3 78 */ mr r3, r30 -/* 802D95D8 48 00 02 0D */ bl initiate__10JKRDvdFileFv -/* 802D95DC 7F C3 F3 78 */ mr r3, r30 -/* 802D95E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D95E4 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D95E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D95EC 7C 08 03 A6 */ mtlr r0 -/* 802D95F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D95F4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/__dt__10JKRDvdFileFv.s b/asm/JSystem/JKernel/JKRDvdFile/__dt__10JKRDvdFileFv.s deleted file mode 100644 index c6aa0a08e5..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/__dt__10JKRDvdFileFv.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_802D9748: -/* 802D9748 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D974C 7C 08 02 A6 */ mflr r0 -/* 802D9750 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D9754 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D9758 93 C1 00 08 */ stw r30, 8(r1) -/* 802D975C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D9760 7C 9F 23 78 */ mr r31, r4 -/* 802D9764 41 82 00 64 */ beq lbl_802D97C8 -/* 802D9768 3C 80 80 3D */ lis r4, __vt__10JKRDvdFile@ha /* 0x803CC438@ha */ -/* 802D976C 38 04 C4 38 */ addi r0, r4, __vt__10JKRDvdFile@l /* 0x803CC438@l */ -/* 802D9770 90 1E 00 00 */ stw r0, 0(r30) -/* 802D9774 81 83 00 00 */ lwz r12, 0(r3) -/* 802D9778 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 802D977C 7D 89 03 A6 */ mtctr r12 -/* 802D9780 4E 80 04 21 */ bctrl -/* 802D9784 34 1E 00 E4 */ addic. r0, r30, 0xe4 -/* 802D9788 41 82 00 10 */ beq lbl_802D9798 -/* 802D978C 38 7E 00 E4 */ addi r3, r30, 0xe4 -/* 802D9790 38 80 00 00 */ li r4, 0 -/* 802D9794 48 00 26 81 */ bl __dt__10JSUPtrLinkFv -lbl_802D9798: -/* 802D9798 28 1E 00 00 */ cmplwi r30, 0 -/* 802D979C 41 82 00 1C */ beq lbl_802D97B8 -/* 802D97A0 3C 60 80 3D */ lis r3, __vt__7JKRFile@ha /* 0x803CC328@ha */ -/* 802D97A4 38 03 C3 28 */ addi r0, r3, __vt__7JKRFile@l /* 0x803CC328@l */ -/* 802D97A8 90 1E 00 00 */ stw r0, 0(r30) -/* 802D97AC 7F C3 F3 78 */ mr r3, r30 -/* 802D97B0 38 80 00 00 */ li r4, 0 -/* 802D97B4 4B FF 7D 31 */ bl __dt__11JKRDisposerFv -lbl_802D97B8: -/* 802D97B8 7F E0 07 35 */ extsh. r0, r31 -/* 802D97BC 40 81 00 0C */ ble lbl_802D97C8 -/* 802D97C0 7F C3 F3 78 */ mr r3, r30 -/* 802D97C4 4B FF 55 79 */ bl __dl__FPv -lbl_802D97C8: -/* 802D97C8 7F C3 F3 78 */ mr r3, r30 -/* 802D97CC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D97D0 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D97D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D97D8 7C 08 03 A6 */ mtlr r0 -/* 802D97DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D97E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/__sinit_JKRDvdFile_cpp.s b/asm/JSystem/JKernel/JKRDvdFile/__sinit_JKRDvdFile_cpp.s deleted file mode 100644 index 6643959e1a..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/__sinit_JKRDvdFile_cpp.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_802D9B00: -/* 802D9B00 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D9B04 7C 08 02 A6 */ mflr r0 -/* 802D9B08 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D9B0C 3C 60 80 43 */ lis r3, sDvdList__10JKRDvdFile@ha /* 0x8043436C@ha */ -/* 802D9B10 38 63 43 6C */ addi r3, r3, sDvdList__10JKRDvdFile@l /* 0x8043436C@l */ -/* 802D9B14 48 00 24 01 */ bl initiate__10JSUPtrListFv -/* 802D9B18 3C 60 80 43 */ lis r3, sDvdList__10JKRDvdFile@ha /* 0x8043436C@ha */ -/* 802D9B1C 38 63 43 6C */ addi r3, r3, sDvdList__10JKRDvdFile@l /* 0x8043436C@l */ -/* 802D9B20 3C 80 80 2E */ lis r4, func_802D9B44@ha /* 0x802D9B44@ha */ -/* 802D9B24 38 84 9B 44 */ addi r4, r4, func_802D9B44@l /* 0x802D9B44@l */ -/* 802D9B28 3C A0 80 43 */ lis r5, lit_657@ha /* 0x80434360@ha */ -/* 802D9B2C 38 A5 43 60 */ addi r5, r5, lit_657@l /* 0x80434360@l */ -/* 802D9B30 48 08 80 F5 */ bl __register_global_object -/* 802D9B34 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D9B38 7C 08 03 A6 */ mtlr r0 -/* 802D9B3C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D9B40 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/close__10JKRDvdFileFv.s b/asm/JSystem/JKernel/JKRDvdFile/close__10JKRDvdFileFv.s deleted file mode 100644 index 9e195d7a13..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/close__10JKRDvdFileFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802D9938: -/* 802D9938 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D993C 7C 08 02 A6 */ mflr r0 -/* 802D9940 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D9944 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D9948 7C 7F 1B 78 */ mr r31, r3 -/* 802D994C 88 03 00 18 */ lbz r0, 0x18(r3) -/* 802D9950 28 00 00 00 */ cmplwi r0, 0 -/* 802D9954 41 82 00 4C */ beq lbl_802D99A0 -/* 802D9958 38 7F 00 5C */ addi r3, r31, 0x5c -/* 802D995C 48 06 EF FD */ bl DVDClose -/* 802D9960 2C 03 00 00 */ cmpwi r3, 0 -/* 802D9964 41 82 00 20 */ beq lbl_802D9984 -/* 802D9968 38 00 00 00 */ li r0, 0 -/* 802D996C 98 1F 00 18 */ stb r0, 0x18(r31) -/* 802D9970 3C 60 80 43 */ lis r3, sDvdList__10JKRDvdFile@ha /* 0x8043436C@ha */ -/* 802D9974 38 63 43 6C */ addi r3, r3, sDvdList__10JKRDvdFile@l /* 0x8043436C@l */ -/* 802D9978 38 9F 00 E4 */ addi r4, r31, 0xe4 -/* 802D997C 48 00 27 E1 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D9980 48 00 00 20 */ b lbl_802D99A0 -lbl_802D9984: -/* 802D9984 3C 60 80 3A */ lis r3, JKRDvdFile__stringBase0@ha /* 0x8039D260@ha */ -/* 802D9988 38 63 D2 60 */ addi r3, r3, JKRDvdFile__stringBase0@l /* 0x8039D260@l */ -/* 802D998C 38 80 00 D5 */ li r4, 0xd5 -/* 802D9990 38 A3 00 0F */ addi r5, r3, 0xf -/* 802D9994 38 C3 00 12 */ addi r6, r3, 0x12 -/* 802D9998 4C C6 31 82 */ crclr 6 -/* 802D999C 48 00 88 61 */ bl panic_f__12JUTExceptionFPCciPCce -lbl_802D99A0: -/* 802D99A0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D99A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D99A8 7C 08 03 A6 */ mtlr r0 -/* 802D99AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D99B0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/doneProcess__10JKRDvdFileFlP11DVDFileInfo.s b/asm/JSystem/JKernel/JKRDvdFile/doneProcess__10JKRDvdFileFlP11DVDFileInfo.s deleted file mode 100644 index c495eb3f4b..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/doneProcess__10JKRDvdFileFlP11DVDFileInfo.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802D9AC4: -/* 802D9AC4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D9AC8 7C 08 02 A6 */ mflr r0 -/* 802D9ACC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D9AD0 7C 60 1B 78 */ mr r0, r3 -/* 802D9AD4 80 64 00 3C */ lwz r3, 0x3c(r4) -/* 802D9AD8 38 63 00 C0 */ addi r3, r3, 0xc0 -/* 802D9ADC 7C 04 03 78 */ mr r4, r0 -/* 802D9AE0 38 A0 00 00 */ li r5, 0 -/* 802D9AE4 48 06 4F 11 */ bl OSSendMessage -/* 802D9AE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D9AEC 7C 08 03 A6 */ mtlr r0 -/* 802D9AF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D9AF4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/func_802D9B44.s b/asm/JSystem/JKernel/JKRDvdFile/func_802D9B44.s deleted file mode 100644 index bde5692725..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/func_802D9B44.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802D9B44: -/* 802D9B44 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D9B48 7C 08 02 A6 */ mflr r0 -/* 802D9B4C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D9B50 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D9B54 93 C1 00 08 */ stw r30, 8(r1) -/* 802D9B58 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D9B5C 7C 9F 23 78 */ mr r31, r4 -/* 802D9B60 41 82 00 1C */ beq lbl_802D9B7C -/* 802D9B64 38 80 00 00 */ li r4, 0 -/* 802D9B68 48 00 23 45 */ bl __dt__10JSUPtrListFv -/* 802D9B6C 7F E0 07 35 */ extsh. r0, r31 -/* 802D9B70 40 81 00 0C */ ble lbl_802D9B7C -/* 802D9B74 7F C3 F3 78 */ mr r3, r30 -/* 802D9B78 4B FF 51 C5 */ bl __dl__FPv -lbl_802D9B7C: -/* 802D9B7C 7F C3 F3 78 */ mr r3, r30 -/* 802D9B80 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D9B84 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D9B88 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D9B8C 7C 08 03 A6 */ mtlr r0 -/* 802D9B90 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D9B94 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/getFileSize__10JKRDvdFileCFv.s b/asm/JSystem/JKernel/JKRDvdFile/getFileSize__10JKRDvdFileCFv.s deleted file mode 100644 index d7595a5e88..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/getFileSize__10JKRDvdFileCFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_802D9AF8: -/* 802D9AF8 80 63 00 90 */ lwz r3, 0x90(r3) -/* 802D9AFC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/initiate__10JKRDvdFileFv.s b/asm/JSystem/JKernel/JKRDvdFile/initiate__10JKRDvdFileFv.s deleted file mode 100644 index c53a6b2e75..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/initiate__10JKRDvdFileFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_802D97E4: -/* 802D97E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D97E8 7C 08 02 A6 */ mflr r0 -/* 802D97EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D97F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D97F4 7C 7F 1B 78 */ mr r31, r3 -/* 802D97F8 93 E3 00 98 */ stw r31, 0x98(r3) -/* 802D97FC 38 7F 00 1C */ addi r3, r31, 0x1c -/* 802D9800 48 06 58 09 */ bl OSInitMutex -/* 802D9804 38 7F 00 34 */ addi r3, r31, 0x34 -/* 802D9808 48 06 58 01 */ bl OSInitMutex -/* 802D980C 38 7F 00 C0 */ addi r3, r31, 0xc0 -/* 802D9810 38 9F 00 E0 */ addi r4, r31, 0xe0 -/* 802D9814 38 A0 00 01 */ li r5, 1 -/* 802D9818 48 06 51 7D */ bl OSInitMessageQueue -/* 802D981C 38 7F 00 9C */ addi r3, r31, 0x9c -/* 802D9820 38 9F 00 BC */ addi r4, r31, 0xbc -/* 802D9824 38 A0 00 01 */ li r5, 1 -/* 802D9828 48 06 51 6D */ bl OSInitMessageQueue -/* 802D982C 38 00 00 00 */ li r0, 0 -/* 802D9830 90 1F 00 F4 */ stw r0, 0xf4(r31) -/* 802D9834 90 1F 00 50 */ stw r0, 0x50(r31) -/* 802D9838 90 1F 00 58 */ stw r0, 0x58(r31) -/* 802D983C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D9840 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D9844 7C 08 03 A6 */ mtlr r0 -/* 802D9848 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D984C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFPCc.s b/asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFPCc.s deleted file mode 100644 index 0479589e63..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFPCc.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_802D9850: -/* 802D9850 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D9854 7C 08 02 A6 */ mflr r0 -/* 802D9858 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D985C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D9860 7C 7F 1B 78 */ mr r31, r3 -/* 802D9864 88 03 00 18 */ lbz r0, 0x18(r3) -/* 802D9868 28 00 00 00 */ cmplwi r0, 0 -/* 802D986C 40 82 00 40 */ bne lbl_802D98AC -/* 802D9870 7C 83 23 78 */ mr r3, r4 -/* 802D9874 38 9F 00 5C */ addi r4, r31, 0x5c -/* 802D9878 48 06 F0 19 */ bl DVDOpen -/* 802D987C 30 03 FF FF */ addic r0, r3, -1 -/* 802D9880 7C 00 19 10 */ subfe r0, r0, r3 -/* 802D9884 98 1F 00 18 */ stb r0, 0x18(r31) -/* 802D9888 88 1F 00 18 */ lbz r0, 0x18(r31) -/* 802D988C 28 00 00 00 */ cmplwi r0, 0 -/* 802D9890 41 82 00 1C */ beq lbl_802D98AC -/* 802D9894 3C 60 80 43 */ lis r3, sDvdList__10JKRDvdFile@ha /* 0x8043436C@ha */ -/* 802D9898 38 63 43 6C */ addi r3, r3, sDvdList__10JKRDvdFile@l /* 0x8043436C@l */ -/* 802D989C 38 9F 00 E4 */ addi r4, r31, 0xe4 -/* 802D98A0 48 00 26 AD */ bl append__10JSUPtrListFP10JSUPtrLink -/* 802D98A4 38 7F 00 5C */ addi r3, r31, 0x5c -/* 802D98A8 48 07 18 D5 */ bl DVDGetCommandBlockStatus -lbl_802D98AC: -/* 802D98AC 88 7F 00 18 */ lbz r3, 0x18(r31) -/* 802D98B0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D98B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D98B8 7C 08 03 A6 */ mtlr r0 -/* 802D98BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D98C0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFl.s b/asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFl.s deleted file mode 100644 index d09725330f..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFl.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_802D98C4: -/* 802D98C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D98C8 7C 08 02 A6 */ mflr r0 -/* 802D98CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D98D0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D98D4 7C 7F 1B 78 */ mr r31, r3 -/* 802D98D8 88 03 00 18 */ lbz r0, 0x18(r3) -/* 802D98DC 28 00 00 00 */ cmplwi r0, 0 -/* 802D98E0 40 82 00 40 */ bne lbl_802D9920 -/* 802D98E4 7C 83 23 78 */ mr r3, r4 -/* 802D98E8 38 9F 00 5C */ addi r4, r31, 0x5c -/* 802D98EC 48 06 EF 31 */ bl DVDFastOpen -/* 802D98F0 30 03 FF FF */ addic r0, r3, -1 -/* 802D98F4 7C 00 19 10 */ subfe r0, r0, r3 -/* 802D98F8 98 1F 00 18 */ stb r0, 0x18(r31) -/* 802D98FC 88 1F 00 18 */ lbz r0, 0x18(r31) -/* 802D9900 28 00 00 00 */ cmplwi r0, 0 -/* 802D9904 41 82 00 1C */ beq lbl_802D9920 -/* 802D9908 3C 60 80 43 */ lis r3, sDvdList__10JKRDvdFile@ha /* 0x8043436C@ha */ -/* 802D990C 38 63 43 6C */ addi r3, r3, sDvdList__10JKRDvdFile@l /* 0x8043436C@l */ -/* 802D9910 38 9F 00 E4 */ addi r4, r31, 0xe4 -/* 802D9914 48 00 26 39 */ bl append__10JSUPtrListFP10JSUPtrLink -/* 802D9918 38 7F 00 5C */ addi r3, r31, 0x5c -/* 802D991C 48 07 18 61 */ bl DVDGetCommandBlockStatus -lbl_802D9920: -/* 802D9920 88 7F 00 18 */ lbz r3, 0x18(r31) -/* 802D9924 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D9928 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D992C 7C 08 03 A6 */ mtlr r0 -/* 802D9930 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D9934 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/readData__10JKRDvdFileFPvll.s b/asm/JSystem/JKernel/JKRDvdFile/readData__10JKRDvdFileFPvll.s deleted file mode 100644 index e6547f037c..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/readData__10JKRDvdFileFPvll.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_802D99B4: -/* 802D99B4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D99B8 7C 08 02 A6 */ mflr r0 -/* 802D99BC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D99C0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D99C4 48 08 88 11 */ bl _savegpr_27 -/* 802D99C8 7C 7B 1B 78 */ mr r27, r3 -/* 802D99CC 7C 9C 23 78 */ mr r28, r4 -/* 802D99D0 7C BD 2B 78 */ mr r29, r5 -/* 802D99D4 7C DE 33 78 */ mr r30, r6 -/* 802D99D8 38 7B 00 1C */ addi r3, r27, 0x1c -/* 802D99DC 48 06 56 65 */ bl OSLockMutex -/* 802D99E0 80 1B 00 F4 */ lwz r0, 0xf4(r27) -/* 802D99E4 28 00 00 00 */ cmplwi r0, 0 -/* 802D99E8 41 82 00 14 */ beq lbl_802D99FC -/* 802D99EC 38 7B 00 1C */ addi r3, r27, 0x1c -/* 802D99F0 48 06 57 2D */ bl OSUnlockMutex -/* 802D99F4 38 60 FF FF */ li r3, -1 -/* 802D99F8 48 00 00 58 */ b lbl_802D9A50 -lbl_802D99FC: -/* 802D99FC 48 06 72 89 */ bl OSGetCurrentThread -/* 802D9A00 90 7B 00 F4 */ stw r3, 0xf4(r27) -/* 802D9A04 3B E0 FF FF */ li r31, -1 -/* 802D9A08 38 7B 00 5C */ addi r3, r27, 0x5c -/* 802D9A0C 7F 84 E3 78 */ mr r4, r28 -/* 802D9A10 7F A5 EB 78 */ mr r5, r29 -/* 802D9A14 7F C6 F3 78 */ mr r6, r30 -/* 802D9A18 3C E0 80 2E */ lis r7, doneProcess__10JKRDvdFileFlP11DVDFileInfo@ha /* 0x802D9AC4@ha */ -/* 802D9A1C 38 E7 9A C4 */ addi r7, r7, doneProcess__10JKRDvdFileFlP11DVDFileInfo@l /* 0x802D9AC4@l */ -/* 802D9A20 39 00 00 02 */ li r8, 2 -/* 802D9A24 48 06 F3 31 */ bl DVDReadAsyncPrio -/* 802D9A28 2C 03 00 00 */ cmpwi r3, 0 -/* 802D9A2C 41 82 00 10 */ beq lbl_802D9A3C -/* 802D9A30 7F 63 DB 78 */ mr r3, r27 -/* 802D9A34 48 00 00 3D */ bl sync__10JKRDvdFileFv -/* 802D9A38 7C 7F 1B 78 */ mr r31, r3 -lbl_802D9A3C: -/* 802D9A3C 38 00 00 00 */ li r0, 0 -/* 802D9A40 90 1B 00 F4 */ stw r0, 0xf4(r27) -/* 802D9A44 38 7B 00 1C */ addi r3, r27, 0x1c -/* 802D9A48 48 06 56 D5 */ bl OSUnlockMutex -/* 802D9A4C 7F E3 FB 78 */ mr r3, r31 -lbl_802D9A50: -/* 802D9A50 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D9A54 48 08 87 CD */ bl _restgpr_27 -/* 802D9A58 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D9A5C 7C 08 03 A6 */ mtlr r0 -/* 802D9A60 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D9A64 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRDvdFile/sync__10JKRDvdFileFv.s b/asm/JSystem/JKernel/JKRDvdFile/sync__10JKRDvdFileFv.s deleted file mode 100644 index 28230b64e4..0000000000 --- a/asm/JSystem/JKernel/JKRDvdFile/sync__10JKRDvdFileFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802D9A70: -/* 802D9A70 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D9A74 7C 08 02 A6 */ mflr r0 -/* 802D9A78 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D9A7C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D9A80 7C 7F 1B 78 */ mr r31, r3 -/* 802D9A84 38 7F 00 1C */ addi r3, r31, 0x1c -/* 802D9A88 48 06 55 B9 */ bl OSLockMutex -/* 802D9A8C 38 7F 00 C0 */ addi r3, r31, 0xc0 -/* 802D9A90 38 81 00 08 */ addi r4, r1, 8 -/* 802D9A94 38 A0 00 01 */ li r5, 1 -/* 802D9A98 48 06 50 25 */ bl OSReceiveMessage -/* 802D9A9C 38 00 00 00 */ li r0, 0 -/* 802D9AA0 90 1F 00 F4 */ stw r0, 0xf4(r31) -/* 802D9AA4 38 7F 00 1C */ addi r3, r31, 0x1c -/* 802D9AA8 48 06 56 75 */ bl OSUnlockMutex -/* 802D9AAC 80 61 00 08 */ lwz r3, 8(r1) -/* 802D9AB0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802D9AB4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D9AB8 7C 08 03 A6 */ mtlr r0 -/* 802D9ABC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D9AC0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFile/read__7JKRFileFPvll.s b/asm/JSystem/JKernel/JKRFile/read__7JKRFileFPvll.s deleted file mode 100644 index f4841cda6f..0000000000 --- a/asm/JSystem/JKernel/JKRFile/read__7JKRFileFPvll.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_802D9518: -/* 802D9518 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D951C 7C 08 02 A6 */ mflr r0 -/* 802D9520 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D9524 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D9528 48 08 8C B1 */ bl _savegpr_28 -/* 802D952C 7C 7C 1B 78 */ mr r28, r3 -/* 802D9530 7C 9D 23 78 */ mr r29, r4 -/* 802D9534 7C BE 2B 78 */ mr r30, r5 -/* 802D9538 7C DF 33 78 */ mr r31, r6 -lbl_802D953C: -/* 802D953C 7F 83 E3 78 */ mr r3, r28 -/* 802D9540 7F A4 EB 78 */ mr r4, r29 -/* 802D9544 7F C5 F3 78 */ mr r5, r30 -/* 802D9548 7F E6 FB 78 */ mr r6, r31 -/* 802D954C 81 9C 00 00 */ lwz r12, 0(r28) -/* 802D9550 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802D9554 7D 89 03 A6 */ mtctr r12 -/* 802D9558 4E 80 04 21 */ bctrl -/* 802D955C 7C 1E 18 00 */ cmpw r30, r3 -/* 802D9560 41 82 00 0C */ beq lbl_802D956C -/* 802D9564 48 07 34 61 */ bl VIWaitForRetrace -/* 802D9568 4B FF FF D4 */ b lbl_802D953C -lbl_802D956C: -/* 802D956C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D9570 48 08 8C B5 */ bl _restgpr_28 -/* 802D9574 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D9578 7C 08 03 A6 */ mtlr r0 -/* 802D957C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D9580 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/__ct__12JKRFileCacheFPCcPCc.s b/asm/JSystem/JKernel/JKRFileCache/__ct__12JKRFileCacheFPCcPCc.s deleted file mode 100644 index b8a0097ad0..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/__ct__12JKRFileCacheFPCcPCc.s +++ /dev/null @@ -1,116 +0,0 @@ -lbl_802D4AB4: -/* 802D4AB4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D4AB8 7C 08 02 A6 */ mflr r0 -/* 802D4ABC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D4AC0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D4AC4 48 08 D7 15 */ bl _savegpr_28 -/* 802D4AC8 7C 7F 1B 78 */ mr r31, r3 -/* 802D4ACC 7C 9C 23 78 */ mr r28, r4 -/* 802D4AD0 7C BD 2B 78 */ mr r29, r5 -/* 802D4AD4 4B FF F6 1D */ bl __ct__13JKRFileLoaderFv -/* 802D4AD8 3C 60 80 3D */ lis r3, __vt__12JKRFileCache@ha /* 0x803CC238@ha */ -/* 802D4ADC 38 03 C2 38 */ addi r0, r3, __vt__12JKRFileCache@l /* 0x803CC238@l */ -/* 802D4AE0 90 1F 00 00 */ stw r0, 0(r31) -/* 802D4AE4 38 7F 00 3C */ addi r3, r31, 0x3c -/* 802D4AE8 48 00 74 2D */ bl initiate__10JSUPtrListFv -/* 802D4AEC 7F E3 FB 78 */ mr r3, r31 -/* 802D4AF0 4B FF 9D 4D */ bl findFromRoot__7JKRHeapFPv -/* 802D4AF4 90 7F 00 38 */ stw r3, 0x38(r31) -/* 802D4AF8 38 00 00 01 */ li r0, 1 -/* 802D4AFC 90 1F 00 34 */ stw r0, 0x34(r31) -/* 802D4B00 3C 60 43 41 */ lis r3, 0x4341 /* 0x43415348@ha */ -/* 802D4B04 38 03 53 48 */ addi r0, r3, 0x5348 /* 0x43415348@l */ -/* 802D4B08 90 1F 00 2C */ stw r0, 0x2c(r31) -/* 802D4B0C 7F 83 E3 78 */ mr r3, r28 -/* 802D4B10 48 09 40 D5 */ bl strlen -/* 802D4B14 7C 7E 1B 78 */ mr r30, r3 -/* 802D4B18 38 7E 00 01 */ addi r3, r30, 1 -/* 802D4B1C 38 80 00 01 */ li r4, 1 -/* 802D4B20 80 BF 00 38 */ lwz r5, 0x38(r31) -/* 802D4B24 4B FF 99 51 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D4B28 90 7F 00 48 */ stw r3, 0x48(r31) -/* 802D4B2C 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D4B30 38 9E 00 02 */ addi r4, r30, 2 -/* 802D4B34 38 A0 00 01 */ li r5, 1 -/* 802D4B38 4B FF 99 9D */ bl alloc__7JKRHeapFUli -/* 802D4B3C 90 7F 00 4C */ stw r3, 0x4c(r31) -/* 802D4B40 80 7F 00 48 */ lwz r3, 0x48(r31) -/* 802D4B44 7F 84 E3 78 */ mr r4, r28 -/* 802D4B48 48 09 3F E5 */ bl strcpy -/* 802D4B4C 80 7F 00 4C */ lwz r3, 0x4c(r31) -/* 802D4B50 7F 84 E3 78 */ mr r4, r28 -/* 802D4B54 48 09 3F D9 */ bl strcpy -/* 802D4B58 88 1C 00 01 */ lbz r0, 1(r28) -/* 802D4B5C 7C 00 07 75 */ extsb. r0, r0 -/* 802D4B60 41 82 00 88 */ beq lbl_802D4BE8 -/* 802D4B64 7F E3 FB 78 */ mr r3, r31 -/* 802D4B68 80 9F 00 48 */ lwz r4, 0x48(r31) -/* 802D4B6C 48 00 0A B9 */ bl convStrLower__12JKRFileCacheCFPc -/* 802D4B70 7F E3 FB 78 */ mr r3, r31 -/* 802D4B74 80 9F 00 4C */ lwz r4, 0x4c(r31) -/* 802D4B78 48 00 0A AD */ bl convStrLower__12JKRFileCacheCFPc -/* 802D4B7C 80 7F 00 4C */ lwz r3, 0x4c(r31) -/* 802D4B80 3C 80 80 3A */ lis r4, JKRFileCache__stringBase0@ha /* 0x8039D158@ha */ -/* 802D4B84 38 84 D1 58 */ addi r4, r4, JKRFileCache__stringBase0@l /* 0x8039D158@l */ -/* 802D4B88 48 09 3F 35 */ bl strcat -/* 802D4B8C 7F BE EB 78 */ mr r30, r29 -/* 802D4B90 28 1D 00 00 */ cmplwi r29, 0 -/* 802D4B94 40 82 00 14 */ bne lbl_802D4BA8 -/* 802D4B98 80 7F 00 48 */ lwz r3, 0x48(r31) -/* 802D4B9C 38 80 00 2F */ li r4, 0x2f -/* 802D4BA0 48 09 3D 3D */ bl strrchr -/* 802D4BA4 3B C3 00 01 */ addi r30, r3, 1 -lbl_802D4BA8: -/* 802D4BA8 7F C3 F3 78 */ mr r3, r30 -/* 802D4BAC 48 09 40 39 */ bl strlen -/* 802D4BB0 38 83 00 01 */ addi r4, r3, 1 -/* 802D4BB4 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D4BB8 38 A0 00 00 */ li r5, 0 -/* 802D4BBC 4B FF 99 19 */ bl alloc__7JKRHeapFUli -/* 802D4BC0 90 7F 00 50 */ stw r3, 0x50(r31) -/* 802D4BC4 80 7F 00 50 */ lwz r3, 0x50(r31) -/* 802D4BC8 7F C4 F3 78 */ mr r4, r30 -/* 802D4BCC 48 09 3F 61 */ bl strcpy -/* 802D4BD0 7F E3 FB 78 */ mr r3, r31 -/* 802D4BD4 80 9F 00 50 */ lwz r4, 0x50(r31) -/* 802D4BD8 48 00 0A 4D */ bl convStrLower__12JKRFileCacheCFPc -/* 802D4BDC 80 1F 00 50 */ lwz r0, 0x50(r31) -/* 802D4BE0 90 1F 00 28 */ stw r0, 0x28(r31) -/* 802D4BE4 48 00 00 58 */ b lbl_802D4C3C -lbl_802D4BE8: -/* 802D4BE8 7F BE EB 78 */ mr r30, r29 -/* 802D4BEC 28 1D 00 00 */ cmplwi r29, 0 -/* 802D4BF0 40 82 00 10 */ bne lbl_802D4C00 -/* 802D4BF4 3C 60 80 3A */ lis r3, JKRFileCache__stringBase0@ha /* 0x8039D158@ha */ -/* 802D4BF8 38 63 D1 58 */ addi r3, r3, JKRFileCache__stringBase0@l /* 0x8039D158@l */ -/* 802D4BFC 3B C3 00 02 */ addi r30, r3, 2 -lbl_802D4C00: -/* 802D4C00 7F C3 F3 78 */ mr r3, r30 -/* 802D4C04 48 09 3F E1 */ bl strlen -/* 802D4C08 38 83 00 01 */ addi r4, r3, 1 -/* 802D4C0C 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D4C10 38 A0 00 00 */ li r5, 0 -/* 802D4C14 4B FF 98 C1 */ bl alloc__7JKRHeapFUli -/* 802D4C18 90 7F 00 50 */ stw r3, 0x50(r31) -/* 802D4C1C 80 7F 00 50 */ lwz r3, 0x50(r31) -/* 802D4C20 7F C4 F3 78 */ mr r4, r30 -/* 802D4C24 48 09 3F 09 */ bl strcpy -/* 802D4C28 7F E3 FB 78 */ mr r3, r31 -/* 802D4C2C 80 9F 00 50 */ lwz r4, 0x50(r31) -/* 802D4C30 48 00 09 F5 */ bl convStrLower__12JKRFileCacheCFPc -/* 802D4C34 80 1F 00 50 */ lwz r0, 0x50(r31) -/* 802D4C38 90 1F 00 28 */ stw r0, 0x28(r31) -lbl_802D4C3C: -/* 802D4C3C 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D4C40 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D4C44 38 9F 00 18 */ addi r4, r31, 0x18 -/* 802D4C48 48 00 73 A9 */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D4C4C 38 00 00 01 */ li r0, 1 -/* 802D4C50 98 1F 00 30 */ stb r0, 0x30(r31) -/* 802D4C54 7F E3 FB 78 */ mr r3, r31 -/* 802D4C58 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D4C5C 48 08 D5 C9 */ bl _restgpr_28 -/* 802D4C60 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D4C64 7C 08 03 A6 */ mtlr r0 -/* 802D4C68 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D4C6C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/__ct__Q212JKRFileCache11CCacheBlockFUlUlPCv.s b/asm/JSystem/JKernel/JKRFileCache/__ct__Q212JKRFileCache11CCacheBlockFUlUlPCv.s deleted file mode 100644 index 57dd6b6c5c..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/__ct__Q212JKRFileCache11CCacheBlockFUlUlPCv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802D566C: -/* 802D566C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5670 7C 08 02 A6 */ mflr r0 -/* 802D5674 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5678 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D567C 48 08 CB 5D */ bl _savegpr_28 -/* 802D5680 7C 7C 1B 78 */ mr r28, r3 -/* 802D5684 7C 9D 23 78 */ mr r29, r4 -/* 802D5688 7C BE 2B 78 */ mr r30, r5 -/* 802D568C 7C DF 33 78 */ mr r31, r6 -/* 802D5690 7F 84 E3 78 */ mr r4, r28 -/* 802D5694 48 00 67 69 */ bl __ct__10JSUPtrLinkFPv -/* 802D5698 38 00 00 01 */ li r0, 1 -/* 802D569C 90 1C 00 10 */ stw r0, 0x10(r28) -/* 802D56A0 93 BC 00 14 */ stw r29, 0x14(r28) -/* 802D56A4 93 DC 00 18 */ stw r30, 0x18(r28) -/* 802D56A8 93 FC 00 1C */ stw r31, 0x1c(r28) -/* 802D56AC 7F 83 E3 78 */ mr r3, r28 -/* 802D56B0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D56B4 48 08 CB 71 */ bl _restgpr_28 -/* 802D56B8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D56BC 7C 08 03 A6 */ mtlr r0 -/* 802D56C0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D56C4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/__dt__12JKRFileCacheFv.s b/asm/JSystem/JKernel/JKRFileCache/__dt__12JKRFileCacheFv.s deleted file mode 100644 index 679c5190de..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/__dt__12JKRFileCacheFv.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_802D4C70: -/* 802D4C70 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D4C74 7C 08 02 A6 */ mflr r0 -/* 802D4C78 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D4C7C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D4C80 93 C1 00 08 */ stw r30, 8(r1) -/* 802D4C84 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D4C88 7C 9F 23 78 */ mr r31, r4 -/* 802D4C8C 41 82 00 9C */ beq lbl_802D4D28 -/* 802D4C90 3C 80 80 3D */ lis r4, __vt__12JKRFileCache@ha /* 0x803CC238@ha */ -/* 802D4C94 38 04 C2 38 */ addi r0, r4, __vt__12JKRFileCache@l /* 0x803CC238@l */ -/* 802D4C98 90 1E 00 00 */ stw r0, 0(r30) -/* 802D4C9C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D4CA0 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 802D4CA4 7D 89 03 A6 */ mtctr r12 -/* 802D4CA8 4E 80 04 21 */ bctrl -/* 802D4CAC 80 7E 00 48 */ lwz r3, 0x48(r30) -/* 802D4CB0 28 03 00 00 */ cmplwi r3, 0 -/* 802D4CB4 41 82 00 0C */ beq lbl_802D4CC0 -/* 802D4CB8 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D4CBC 4B FF 98 45 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D4CC0: -/* 802D4CC0 80 9E 00 4C */ lwz r4, 0x4c(r30) -/* 802D4CC4 28 04 00 00 */ cmplwi r4, 0 -/* 802D4CC8 41 82 00 0C */ beq lbl_802D4CD4 -/* 802D4CCC 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D4CD0 4B FF 98 79 */ bl free__7JKRHeapFPv -lbl_802D4CD4: -/* 802D4CD4 80 9E 00 50 */ lwz r4, 0x50(r30) -/* 802D4CD8 28 04 00 00 */ cmplwi r4, 0 -/* 802D4CDC 41 82 00 0C */ beq lbl_802D4CE8 -/* 802D4CE0 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D4CE4 4B FF 98 65 */ bl free__7JKRHeapFPv -lbl_802D4CE8: -/* 802D4CE8 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D4CEC 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D4CF0 38 9E 00 18 */ addi r4, r30, 0x18 -/* 802D4CF4 48 00 74 69 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D4CF8 34 1E 00 3C */ addic. r0, r30, 0x3c -/* 802D4CFC 41 82 00 10 */ beq lbl_802D4D0C -/* 802D4D00 38 7E 00 3C */ addi r3, r30, 0x3c -/* 802D4D04 38 80 00 00 */ li r4, 0 -/* 802D4D08 48 00 71 A5 */ bl __dt__10JSUPtrListFv -lbl_802D4D0C: -/* 802D4D0C 7F C3 F3 78 */ mr r3, r30 -/* 802D4D10 38 80 00 00 */ li r4, 0 -/* 802D4D14 4B FF F4 35 */ bl __dt__13JKRFileLoaderFv -/* 802D4D18 7F E0 07 35 */ extsh. r0, r31 -/* 802D4D1C 40 81 00 0C */ ble lbl_802D4D28 -/* 802D4D20 7F C3 F3 78 */ mr r3, r30 -/* 802D4D24 4B FF A0 19 */ bl __dl__FPv -lbl_802D4D28: -/* 802D4D28 7F C3 F3 78 */ mr r3, r30 -/* 802D4D2C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D4D30 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D4D34 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D4D38 7C 08 03 A6 */ mtlr r0 -/* 802D4D3C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D4D40 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/convStrLower__12JKRFileCacheCFPc.s b/asm/JSystem/JKernel/JKRFileCache/convStrLower__12JKRFileCacheCFPc.s deleted file mode 100644 index b343c21768..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/convStrLower__12JKRFileCacheCFPc.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_802D5624: -/* 802D5624 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5628 7C 08 02 A6 */ mflr r0 -/* 802D562C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5630 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5634 7C 9F 23 78 */ mr r31, r4 -/* 802D5638 48 00 00 14 */ b lbl_802D564C -lbl_802D563C: -/* 802D563C 7C 63 07 74 */ extsb r3, r3 -/* 802D5640 48 08 FE 31 */ bl tolower -/* 802D5644 98 7F 00 00 */ stb r3, 0(r31) -/* 802D5648 3B FF 00 01 */ addi r31, r31, 1 -lbl_802D564C: -/* 802D564C 88 7F 00 00 */ lbz r3, 0(r31) -/* 802D5650 7C 60 07 75 */ extsb. r0, r3 -/* 802D5654 40 82 FF E8 */ bne lbl_802D563C -/* 802D5658 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D565C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5660 7C 08 03 A6 */ mtlr r0 -/* 802D5664 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5668 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/countFile__12JKRFileCacheCFPCc.s b/asm/JSystem/JKernel/JKRFileCache/countFile__12JKRFileCacheCFPCc.s deleted file mode 100644 index 4e1f6b28ef..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/countFile__12JKRFileCacheCFPCc.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_802D52A0: -/* 802D52A0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D52A4 7C 08 02 A6 */ mflr r0 -/* 802D52A8 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D52AC 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 802D52B0 93 C1 00 28 */ stw r30, 0x28(r1) -/* 802D52B4 3B E0 00 00 */ li r31, 0 -/* 802D52B8 48 00 02 65 */ bl getDvdPathName__12JKRFileCacheCFPCc -/* 802D52BC 7C 7E 1B 78 */ mr r30, r3 -/* 802D52C0 38 81 00 14 */ addi r4, r1, 0x14 -/* 802D52C4 48 07 3C BD */ bl DVDOpenDir -/* 802D52C8 2C 03 00 00 */ cmpwi r3, 0 -/* 802D52CC 41 82 00 28 */ beq lbl_802D52F4 -/* 802D52D0 48 00 00 08 */ b lbl_802D52D8 -lbl_802D52D4: -/* 802D52D4 3B FF 00 01 */ addi r31, r31, 1 -lbl_802D52D8: -/* 802D52D8 38 61 00 14 */ addi r3, r1, 0x14 -/* 802D52DC 38 81 00 08 */ addi r4, r1, 8 -/* 802D52E0 48 07 3D 61 */ bl DVDReadDir -/* 802D52E4 2C 03 00 00 */ cmpwi r3, 0 -/* 802D52E8 40 82 FF EC */ bne lbl_802D52D4 -/* 802D52EC 38 61 00 14 */ addi r3, r1, 0x14 -/* 802D52F0 48 07 3D F5 */ bl DVDCloseDir -lbl_802D52F4: -/* 802D52F4 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D52F8 7F C4 F3 78 */ mr r4, r30 -/* 802D52FC 4B FF 92 4D */ bl free__7JKRHeapFPv -/* 802D5300 7F E3 FB 78 */ mr r3, r31 -/* 802D5304 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 802D5308 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 802D530C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D5310 7C 08 03 A6 */ mtlr r0 -/* 802D5314 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D5318 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/detachResource__12JKRFileCacheFPv.s b/asm/JSystem/JKernel/JKRFileCache/detachResource__12JKRFileCacheFPv.s deleted file mode 100644 index 3b63ce05c2..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/detachResource__12JKRFileCacheFPv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802D51F8: -/* 802D51F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D51FC 7C 08 02 A6 */ mflr r0 -/* 802D5200 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5204 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D5208 93 C1 00 08 */ stw r30, 8(r1) -/* 802D520C 7C 7E 1B 78 */ mr r30, r3 -/* 802D5210 48 00 01 A9 */ bl findCacheBlock__12JKRFileCacheCFPCv -/* 802D5214 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D5218 40 82 00 0C */ bne lbl_802D5224 -/* 802D521C 38 60 00 00 */ li r3, 0 -/* 802D5220 48 00 00 34 */ b lbl_802D5254 -lbl_802D5224: -/* 802D5224 38 7E 00 3C */ addi r3, r30, 0x3c -/* 802D5228 7F E4 FB 78 */ mr r4, r31 -/* 802D522C 48 00 6F 31 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D5230 28 1F 00 00 */ cmplwi r31, 0 -/* 802D5234 41 82 00 1C */ beq lbl_802D5250 -/* 802D5238 41 82 00 10 */ beq lbl_802D5248 -/* 802D523C 7F E3 FB 78 */ mr r3, r31 -/* 802D5240 38 80 00 00 */ li r4, 0 -/* 802D5244 48 00 6B D1 */ bl __dt__10JSUPtrLinkFv -lbl_802D5248: -/* 802D5248 7F E3 FB 78 */ mr r3, r31 -/* 802D524C 4B FF 9A F1 */ bl __dl__FPv -lbl_802D5250: -/* 802D5250 38 60 00 01 */ li r3, 1 -lbl_802D5254: -/* 802D5254 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D5258 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D525C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5260 7C 08 03 A6 */ mtlr r0 -/* 802D5264 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5268 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/findCacheBlock__12JKRFileCacheCFPCv.s b/asm/JSystem/JKernel/JKRFileCache/findCacheBlock__12JKRFileCacheCFPCv.s deleted file mode 100644 index 7975abb053..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/findCacheBlock__12JKRFileCacheCFPCv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802D53B8: -/* 802D53B8 80 A3 00 3C */ lwz r5, 0x3c(r3) -/* 802D53BC 48 00 00 18 */ b lbl_802D53D4 -lbl_802D53C0: -/* 802D53C0 80 65 00 00 */ lwz r3, 0(r5) -/* 802D53C4 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 802D53C8 7C 00 20 40 */ cmplw r0, r4 -/* 802D53CC 4D 82 00 20 */ beqlr -/* 802D53D0 80 A5 00 0C */ lwz r5, 0xc(r5) -lbl_802D53D4: -/* 802D53D4 28 05 00 00 */ cmplwi r5, 0 -/* 802D53D8 40 82 FF E8 */ bne lbl_802D53C0 -/* 802D53DC 38 60 00 00 */ li r3, 0 -/* 802D53E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/findCacheBlock__12JKRFileCacheCFUl.s b/asm/JSystem/JKernel/JKRFileCache/findCacheBlock__12JKRFileCacheCFUl.s deleted file mode 100644 index 7ee28f8e07..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/findCacheBlock__12JKRFileCacheCFUl.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802D53E4: -/* 802D53E4 80 A3 00 3C */ lwz r5, 0x3c(r3) -/* 802D53E8 48 00 00 18 */ b lbl_802D5400 -lbl_802D53EC: -/* 802D53EC 80 65 00 00 */ lwz r3, 0(r5) -/* 802D53F0 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802D53F4 7C 04 00 40 */ cmplw r4, r0 -/* 802D53F8 4D 82 00 20 */ beqlr -/* 802D53FC 80 A5 00 0C */ lwz r5, 0xc(r5) -lbl_802D5400: -/* 802D5400 28 05 00 00 */ cmplwi r5, 0 -/* 802D5404 40 82 FF E8 */ bne lbl_802D53EC -/* 802D5408 38 60 00 00 */ li r3, 0 -/* 802D540C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/findFile__12JKRFileCacheCFPcPCc.s b/asm/JSystem/JKernel/JKRFileCache/findFile__12JKRFileCacheCFPcPCc.s deleted file mode 100644 index 9d97ab0042..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/findFile__12JKRFileCacheCFPcPCc.s +++ /dev/null @@ -1,73 +0,0 @@ -lbl_802D5410: -/* 802D5410 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 802D5414 7C 08 02 A6 */ mflr r0 -/* 802D5418 90 01 00 44 */ stw r0, 0x44(r1) -/* 802D541C 39 61 00 40 */ addi r11, r1, 0x40 -/* 802D5420 48 08 CD B1 */ bl _savegpr_26 -/* 802D5424 7C 7A 1B 78 */ mr r26, r3 -/* 802D5428 7C 9B 23 78 */ mr r27, r4 -/* 802D542C 7C BC 2B 78 */ mr r28, r5 -/* 802D5430 3B A0 00 00 */ li r29, 0 -/* 802D5434 7F 63 DB 78 */ mr r3, r27 -/* 802D5438 48 09 37 AD */ bl strlen -/* 802D543C 7C 7F 1B 78 */ mr r31, r3 -/* 802D5440 7F 63 DB 78 */ mr r3, r27 -/* 802D5444 38 81 00 14 */ addi r4, r1, 0x14 -/* 802D5448 48 07 3B 39 */ bl DVDOpenDir -/* 802D544C 2C 03 00 00 */ cmpwi r3, 0 -/* 802D5450 41 82 00 B0 */ beq lbl_802D5500 -/* 802D5454 7F DB FA 14 */ add r30, r27, r31 -/* 802D5458 3B FE 00 01 */ addi r31, r30, 1 -/* 802D545C 48 00 00 88 */ b lbl_802D54E4 -lbl_802D5460: -/* 802D5460 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802D5464 2C 00 00 00 */ cmpwi r0, 0 -/* 802D5468 41 82 00 40 */ beq lbl_802D54A8 -/* 802D546C 38 00 00 2F */ li r0, 0x2f -/* 802D5470 98 1E 00 00 */ stb r0, 0(r30) -/* 802D5474 7F E3 FB 78 */ mr r3, r31 -/* 802D5478 80 81 00 10 */ lwz r4, 0x10(r1) -/* 802D547C 48 09 36 B1 */ bl strcpy -/* 802D5480 7F 43 D3 78 */ mr r3, r26 -/* 802D5484 7F 64 DB 78 */ mr r4, r27 -/* 802D5488 7F 85 E3 78 */ mr r5, r28 -/* 802D548C 4B FF FF 85 */ bl findFile__12JKRFileCacheCFPcPCc -/* 802D5490 7C 7D 1B 78 */ mr r29, r3 -/* 802D5494 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D5498 40 82 00 60 */ bne lbl_802D54F8 -/* 802D549C 38 00 00 00 */ li r0, 0 -/* 802D54A0 98 1E 00 00 */ stb r0, 0(r30) -/* 802D54A4 48 00 00 40 */ b lbl_802D54E4 -lbl_802D54A8: -/* 802D54A8 7F 83 E3 78 */ mr r3, r28 -/* 802D54AC 80 81 00 10 */ lwz r4, 0x10(r1) -/* 802D54B0 48 09 34 E5 */ bl strcmp -/* 802D54B4 7C 60 00 34 */ cntlzw r0, r3 -/* 802D54B8 54 1D D9 7E */ srwi r29, r0, 5 -/* 802D54BC 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 802D54C0 41 82 00 24 */ beq lbl_802D54E4 -/* 802D54C4 7F 63 DB 78 */ mr r3, r27 -/* 802D54C8 3C 80 80 3A */ lis r4, JKRFileCache__stringBase0@ha /* 0x8039D158@ha */ -/* 802D54CC 38 84 D1 58 */ addi r4, r4, JKRFileCache__stringBase0@l /* 0x8039D158@l */ -/* 802D54D0 48 09 35 ED */ bl strcat -/* 802D54D4 7F 63 DB 78 */ mr r3, r27 -/* 802D54D8 7F 84 E3 78 */ mr r4, r28 -/* 802D54DC 48 09 35 E1 */ bl strcat -/* 802D54E0 48 00 00 18 */ b lbl_802D54F8 -lbl_802D54E4: -/* 802D54E4 38 61 00 14 */ addi r3, r1, 0x14 -/* 802D54E8 38 81 00 08 */ addi r4, r1, 8 -/* 802D54EC 48 07 3B 55 */ bl DVDReadDir -/* 802D54F0 2C 03 00 00 */ cmpwi r3, 0 -/* 802D54F4 40 82 FF 6C */ bne lbl_802D5460 -lbl_802D54F8: -/* 802D54F8 38 61 00 14 */ addi r3, r1, 0x14 -/* 802D54FC 48 07 3B E9 */ bl DVDCloseDir -lbl_802D5500: -/* 802D5500 7F A3 EB 78 */ mr r3, r29 -/* 802D5504 39 61 00 40 */ addi r11, r1, 0x40 -/* 802D5508 48 08 CD 15 */ bl _restgpr_26 -/* 802D550C 80 01 00 44 */ lwz r0, 0x44(r1) -/* 802D5510 7C 08 03 A6 */ mtlr r0 -/* 802D5514 38 21 00 40 */ addi r1, r1, 0x40 -/* 802D5518 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/getDvdPathName__12JKRFileCacheCFPCc.s b/asm/JSystem/JKernel/JKRFileCache/getDvdPathName__12JKRFileCacheCFPCc.s deleted file mode 100644 index f9a3990b11..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/getDvdPathName__12JKRFileCacheCFPCc.s +++ /dev/null @@ -1,70 +0,0 @@ -lbl_802D551C: -/* 802D551C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5520 7C 08 02 A6 */ mflr r0 -/* 802D5524 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5528 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D552C 48 08 CC B1 */ bl _savegpr_29 -/* 802D5530 7C 7D 1B 78 */ mr r29, r3 -/* 802D5534 7C 9E 23 78 */ mr r30, r4 -/* 802D5538 88 04 00 00 */ lbz r0, 0(r4) -/* 802D553C 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D5540 40 82 00 78 */ bne lbl_802D55B8 -/* 802D5544 7F C3 F3 78 */ mr r3, r30 -/* 802D5548 48 09 36 9D */ bl strlen -/* 802D554C 7C 7F 1B 78 */ mr r31, r3 -/* 802D5550 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 802D5554 48 09 36 91 */ bl strlen -/* 802D5558 38 9F 00 02 */ addi r4, r31, 2 -/* 802D555C 7C 83 22 14 */ add r4, r3, r4 -/* 802D5560 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D5564 38 A0 00 01 */ li r5, 1 -/* 802D5568 4B FF 8F 6D */ bl alloc__7JKRHeapFUli -/* 802D556C 7C 60 1B 78 */ mr r0, r3 -/* 802D5570 7C 1F 03 78 */ mr r31, r0 -/* 802D5574 80 9D 00 48 */ lwz r4, 0x48(r29) -/* 802D5578 48 09 35 B5 */ bl strcpy -/* 802D557C 88 1E 00 01 */ lbz r0, 1(r30) -/* 802D5580 7C 00 07 75 */ extsb. r0, r0 -/* 802D5584 41 82 00 78 */ beq lbl_802D55FC -/* 802D5588 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 802D558C 88 03 00 01 */ lbz r0, 1(r3) -/* 802D5590 7C 00 07 75 */ extsb. r0, r0 -/* 802D5594 40 82 00 14 */ bne lbl_802D55A8 -/* 802D5598 7F E3 FB 78 */ mr r3, r31 -/* 802D559C 38 9E 00 01 */ addi r4, r30, 1 -/* 802D55A0 48 09 35 1D */ bl strcat -/* 802D55A4 48 00 00 58 */ b lbl_802D55FC -lbl_802D55A8: -/* 802D55A8 7F E3 FB 78 */ mr r3, r31 -/* 802D55AC 7F C4 F3 78 */ mr r4, r30 -/* 802D55B0 48 09 35 0D */ bl strcat -/* 802D55B4 48 00 00 48 */ b lbl_802D55FC -lbl_802D55B8: -/* 802D55B8 7F C3 F3 78 */ mr r3, r30 -/* 802D55BC 48 09 36 29 */ bl strlen -/* 802D55C0 7C 7F 1B 78 */ mr r31, r3 -/* 802D55C4 80 7D 00 4C */ lwz r3, 0x4c(r29) -/* 802D55C8 48 09 36 1D */ bl strlen -/* 802D55CC 38 9F 00 02 */ addi r4, r31, 2 -/* 802D55D0 7C 83 22 14 */ add r4, r3, r4 -/* 802D55D4 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D55D8 38 A0 00 01 */ li r5, 1 -/* 802D55DC 4B FF 8E F9 */ bl alloc__7JKRHeapFUli -/* 802D55E0 7C 60 1B 78 */ mr r0, r3 -/* 802D55E4 7C 1F 03 78 */ mr r31, r0 -/* 802D55E8 80 9D 00 4C */ lwz r4, 0x4c(r29) -/* 802D55EC 48 09 35 41 */ bl strcpy -/* 802D55F0 7F E3 FB 78 */ mr r3, r31 -/* 802D55F4 7F C4 F3 78 */ mr r4, r30 -/* 802D55F8 48 09 34 C5 */ bl strcat -lbl_802D55FC: -/* 802D55FC 7F A3 EB 78 */ mr r3, r29 -/* 802D5600 7F E4 FB 78 */ mr r4, r31 -/* 802D5604 48 00 00 21 */ bl convStrLower__12JKRFileCacheCFPc -/* 802D5608 7F E3 FB 78 */ mr r3, r31 -/* 802D560C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5610 48 08 CC 19 */ bl _restgpr_29 -/* 802D5614 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D5618 7C 08 03 A6 */ mtlr r0 -/* 802D561C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D5620 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/getFirstFile__12JKRFileCacheCFPCc.s b/asm/JSystem/JKernel/JKRFileCache/getFirstFile__12JKRFileCacheCFPCc.s deleted file mode 100644 index 7a70bdeec3..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/getFirstFile__12JKRFileCacheCFPCc.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_802D531C: -/* 802D531C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5320 7C 08 02 A6 */ mflr r0 -/* 802D5324 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5328 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D532C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D5330 48 00 01 ED */ bl getDvdPathName__12JKRFileCacheCFPCc -/* 802D5334 7C 7E 1B 78 */ mr r30, r3 -/* 802D5338 38 60 00 24 */ li r3, 0x24 -/* 802D533C 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D5340 38 A0 00 00 */ li r5, 0 -/* 802D5344 4B FF 99 55 */ bl __nw__FUlP7JKRHeapi -/* 802D5348 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D534C 41 82 00 10 */ beq lbl_802D535C -/* 802D5350 7F C4 F3 78 */ mr r4, r30 -/* 802D5354 4B FF F4 1D */ bl __ct__12JKRDvdFinderFPCc -/* 802D5358 7C 7F 1B 78 */ mr r31, r3 -lbl_802D535C: -/* 802D535C 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D5360 7F C4 F3 78 */ mr r4, r30 -/* 802D5364 4B FF 91 E5 */ bl free__7JKRHeapFPv -/* 802D5368 88 1F 00 10 */ lbz r0, 0x10(r31) -/* 802D536C 28 00 00 01 */ cmplwi r0, 1 -/* 802D5370 41 82 00 2C */ beq lbl_802D539C -/* 802D5374 28 1F 00 00 */ cmplwi r31, 0 -/* 802D5378 41 82 00 1C */ beq lbl_802D5394 -/* 802D537C 7F E3 FB 78 */ mr r3, r31 -/* 802D5380 38 80 00 01 */ li r4, 1 -/* 802D5384 81 9F 00 0C */ lwz r12, 0xc(r31) -/* 802D5388 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D538C 7D 89 03 A6 */ mtctr r12 -/* 802D5390 4E 80 04 21 */ bctrl -lbl_802D5394: -/* 802D5394 38 60 00 00 */ li r3, 0 -/* 802D5398 48 00 00 08 */ b lbl_802D53A0 -lbl_802D539C: -/* 802D539C 7F E3 FB 78 */ mr r3, r31 -lbl_802D53A0: -/* 802D53A0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D53A4 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D53A8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D53AC 7C 08 03 A6 */ mtlr r0 -/* 802D53B0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D53B4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/getFsResource__12JKRFileCacheFPCc.s b/asm/JSystem/JKernel/JKRFileCache/getFsResource__12JKRFileCacheFPCc.s deleted file mode 100644 index 1964c9c214..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/getFsResource__12JKRFileCacheFPCc.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802D56C8: -/* 802D56C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D56CC 7C 08 02 A6 */ mflr r0 -/* 802D56D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D56D4 81 83 00 00 */ lwz r12, 0(r3) -/* 802D56D8 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802D56DC 7D 89 03 A6 */ mtctr r12 -/* 802D56E0 4E 80 04 21 */ bctrl -/* 802D56E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D56E8 7C 08 03 A6 */ mtlr r0 -/* 802D56EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D56F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/getNameResource__12JKRFileCacheFUlPCc.s b/asm/JSystem/JKernel/JKRFileCache/getNameResource__12JKRFileCacheFUlPCc.s deleted file mode 100644 index aee05bd6ac..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/getNameResource__12JKRFileCacheFUlPCc.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802D56F4: -/* 802D56F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D56F8 7C 08 02 A6 */ mflr r0 -/* 802D56FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5700 81 83 00 00 */ lwz r12, 0(r3) -/* 802D5704 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802D5708 7D 89 03 A6 */ mtctr r12 -/* 802D570C 4E 80 04 21 */ bctrl -/* 802D5710 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5714 7C 08 03 A6 */ mtlr r0 -/* 802D5718 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D571C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/getResSize__12JKRFileCacheCFPCv.s b/asm/JSystem/JKernel/JKRFileCache/getResSize__12JKRFileCacheCFPCv.s deleted file mode 100644 index 363fd57905..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/getResSize__12JKRFileCacheCFPCv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_802D526C: -/* 802D526C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5270 7C 08 02 A6 */ mflr r0 -/* 802D5274 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5278 48 00 01 41 */ bl findCacheBlock__12JKRFileCacheCFPCv -/* 802D527C 28 03 00 00 */ cmplwi r3, 0 -/* 802D5280 40 82 00 0C */ bne lbl_802D528C -/* 802D5284 38 60 FF FF */ li r3, -1 -/* 802D5288 48 00 00 08 */ b lbl_802D5290 -lbl_802D528C: -/* 802D528C 80 63 00 18 */ lwz r3, 0x18(r3) -lbl_802D5290: -/* 802D5290 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5294 7C 08 03 A6 */ mtlr r0 -/* 802D5298 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D529C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/getResource__12JKRFileCacheFPCc.s b/asm/JSystem/JKernel/JKRFileCache/getResource__12JKRFileCacheFPCc.s deleted file mode 100644 index f708ce8314..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/getResource__12JKRFileCacheFPCc.s +++ /dev/null @@ -1,69 +0,0 @@ -lbl_802D4DD8: -/* 802D4DD8 94 21 FE F0 */ stwu r1, -0x110(r1) -/* 802D4DDC 7C 08 02 A6 */ mflr r0 -/* 802D4DE0 90 01 01 14 */ stw r0, 0x114(r1) -/* 802D4DE4 39 61 01 10 */ addi r11, r1, 0x110 -/* 802D4DE8 48 08 D3 F1 */ bl _savegpr_28 -/* 802D4DEC 7C 7C 1B 78 */ mr r28, r3 -/* 802D4DF0 3B E0 00 00 */ li r31, 0 -/* 802D4DF4 48 00 07 29 */ bl getDvdPathName__12JKRFileCacheCFPCc -/* 802D4DF8 7C 7E 1B 78 */ mr r30, r3 -/* 802D4DFC 38 61 00 08 */ addi r3, r1, 8 -/* 802D4E00 7F C4 F3 78 */ mr r4, r30 -/* 802D4E04 48 00 47 F5 */ bl __ct__10JKRDvdFileFPCc -/* 802D4E08 88 01 00 20 */ lbz r0, 0x20(r1) -/* 802D4E0C 28 00 00 00 */ cmplwi r0, 0 -/* 802D4E10 41 82 00 98 */ beq lbl_802D4EA8 -/* 802D4E14 7F 83 E3 78 */ mr r3, r28 -/* 802D4E18 80 81 00 94 */ lwz r4, 0x94(r1) -/* 802D4E1C 48 00 05 C9 */ bl findCacheBlock__12JKRFileCacheCFUl -/* 802D4E20 28 03 00 00 */ cmplwi r3, 0 -/* 802D4E24 40 82 00 74 */ bne lbl_802D4E98 -/* 802D4E28 80 61 00 98 */ lwz r3, 0x98(r1) -/* 802D4E2C 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D4E30 54 1D 00 34 */ rlwinm r29, r0, 0, 0, 0x1a -/* 802D4E34 7F A3 EB 78 */ mr r3, r29 -/* 802D4E38 38 80 00 20 */ li r4, 0x20 -/* 802D4E3C 80 BC 00 38 */ lwz r5, 0x38(r28) -/* 802D4E40 4B FF 96 35 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D4E44 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D4E48 41 82 00 60 */ beq lbl_802D4EA8 -/* 802D4E4C 38 61 00 08 */ addi r3, r1, 8 -/* 802D4E50 7F E4 FB 78 */ mr r4, r31 -/* 802D4E54 7F A5 EB 78 */ mr r5, r29 -/* 802D4E58 38 C0 00 00 */ li r6, 0 -/* 802D4E5C 48 00 46 BD */ bl read__7JKRFileFPvll -/* 802D4E60 38 60 00 20 */ li r3, 0x20 -/* 802D4E64 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D4E68 38 A0 00 00 */ li r5, 0 -/* 802D4E6C 4B FF 9E 2D */ bl __nw__FUlP7JKRHeapi -/* 802D4E70 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D4E74 41 82 00 18 */ beq lbl_802D4E8C -/* 802D4E78 80 81 00 94 */ lwz r4, 0x94(r1) -/* 802D4E7C 80 A1 00 98 */ lwz r5, 0x98(r1) -/* 802D4E80 7F E6 FB 78 */ mr r6, r31 -/* 802D4E84 48 00 07 E9 */ bl __ct__Q212JKRFileCache11CCacheBlockFUlUlPCv -/* 802D4E88 7C 64 1B 78 */ mr r4, r3 -lbl_802D4E8C: -/* 802D4E8C 38 7C 00 3C */ addi r3, r28, 0x3c -/* 802D4E90 48 00 70 BD */ bl append__10JSUPtrListFP10JSUPtrLink -/* 802D4E94 48 00 00 14 */ b lbl_802D4EA8 -lbl_802D4E98: -/* 802D4E98 80 83 00 10 */ lwz r4, 0x10(r3) -/* 802D4E9C 38 04 00 01 */ addi r0, r4, 1 -/* 802D4EA0 90 03 00 10 */ stw r0, 0x10(r3) -/* 802D4EA4 83 E3 00 1C */ lwz r31, 0x1c(r3) -lbl_802D4EA8: -/* 802D4EA8 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D4EAC 7F C4 F3 78 */ mr r4, r30 -/* 802D4EB0 4B FF 96 99 */ bl free__7JKRHeapFPv -/* 802D4EB4 38 61 00 08 */ addi r3, r1, 8 -/* 802D4EB8 38 80 FF FF */ li r4, -1 -/* 802D4EBC 48 00 48 8D */ bl __dt__10JKRDvdFileFv -/* 802D4EC0 7F E3 FB 78 */ mr r3, r31 -/* 802D4EC4 39 61 01 10 */ addi r11, r1, 0x110 -/* 802D4EC8 48 08 D3 5D */ bl _restgpr_28 -/* 802D4ECC 80 01 01 14 */ lwz r0, 0x114(r1) -/* 802D4ED0 7C 08 03 A6 */ mtlr r0 -/* 802D4ED4 38 21 01 10 */ addi r1, r1, 0x110 -/* 802D4ED8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/getResource__12JKRFileCacheFUlPCc.s b/asm/JSystem/JKernel/JKRFileCache/getResource__12JKRFileCacheFUlPCc.s deleted file mode 100644 index c4987aa550..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/getResource__12JKRFileCacheFUlPCc.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_802D4EDC: -/* 802D4EDC 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 802D4EE0 7C 08 02 A6 */ mflr r0 -/* 802D4EE4 90 01 01 24 */ stw r0, 0x124(r1) -/* 802D4EE8 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D4EEC 48 08 D2 F1 */ bl _savegpr_29 -/* 802D4EF0 7C 7D 1B 78 */ mr r29, r3 -/* 802D4EF4 7C BE 2B 78 */ mr r30, r5 -/* 802D4EF8 80 63 00 48 */ lwz r3, 0x48(r3) -/* 802D4EFC 48 09 3C E9 */ bl strlen -/* 802D4F00 3B E1 00 08 */ addi r31, r1, 8 -/* 802D4F04 7F FF 1A 14 */ add r31, r31, r3 -/* 802D4F08 38 61 00 08 */ addi r3, r1, 8 -/* 802D4F0C 80 9D 00 48 */ lwz r4, 0x48(r29) -/* 802D4F10 48 09 3C 1D */ bl strcpy -/* 802D4F14 7F A3 EB 78 */ mr r3, r29 -/* 802D4F18 38 81 00 08 */ addi r4, r1, 8 -/* 802D4F1C 7F C5 F3 78 */ mr r5, r30 -/* 802D4F20 48 00 04 F1 */ bl findFile__12JKRFileCacheCFPcPCc -/* 802D4F24 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D4F28 41 82 00 20 */ beq lbl_802D4F48 -/* 802D4F2C 7F A3 EB 78 */ mr r3, r29 -/* 802D4F30 7F E4 FB 78 */ mr r4, r31 -/* 802D4F34 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D4F38 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802D4F3C 7D 89 03 A6 */ mtctr r12 -/* 802D4F40 4E 80 04 21 */ bctrl -/* 802D4F44 48 00 00 08 */ b lbl_802D4F4C -lbl_802D4F48: -/* 802D4F48 38 60 00 00 */ li r3, 0 -lbl_802D4F4C: -/* 802D4F4C 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D4F50 48 08 D2 D9 */ bl _restgpr_29 -/* 802D4F54 80 01 01 24 */ lwz r0, 0x124(r1) -/* 802D4F58 7C 08 03 A6 */ mtlr r0 -/* 802D4F5C 38 21 01 20 */ addi r1, r1, 0x120 -/* 802D4F60 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/mount__12JKRFileCacheFPCcP7JKRHeapPCc.s b/asm/JSystem/JKernel/JKRFileCache/mount__12JKRFileCacheFPCcP7JKRHeapPCc.s deleted file mode 100644 index 24cd6f3feb..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/mount__12JKRFileCacheFPCcP7JKRHeapPCc.s +++ /dev/null @@ -1,73 +0,0 @@ -lbl_802D49B4: -/* 802D49B4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D49B8 7C 08 02 A6 */ mflr r0 -/* 802D49BC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D49C0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D49C4 48 08 D8 11 */ bl _savegpr_27 -/* 802D49C8 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D49CC 7C 9B 23 78 */ mr r27, r4 -/* 802D49D0 7C BF 2B 78 */ mr r31, r5 -/* 802D49D4 41 82 00 10 */ beq lbl_802D49E4 -/* 802D49D8 88 1E 00 00 */ lbz r0, 0(r30) -/* 802D49DC 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D49E0 41 82 00 0C */ beq lbl_802D49EC -lbl_802D49E4: -/* 802D49E4 38 60 00 00 */ li r3, 0 -/* 802D49E8 48 00 00 B4 */ b lbl_802D4A9C -lbl_802D49EC: -/* 802D49EC 48 09 41 F9 */ bl strlen -/* 802D49F0 28 03 00 01 */ cmplwi r3, 1 -/* 802D49F4 41 82 00 1C */ beq lbl_802D4A10 -/* 802D49F8 7C 7E 1A 14 */ add r3, r30, r3 -/* 802D49FC 88 03 FF FF */ lbz r0, -1(r3) -/* 802D4A00 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D4A04 40 82 00 0C */ bne lbl_802D4A10 -/* 802D4A08 38 60 00 00 */ li r3, 0 -/* 802D4A0C 48 00 00 90 */ b lbl_802D4A9C -lbl_802D4A10: -/* 802D4A10 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D4A14 83 A3 43 54 */ lwz r29, sVolumeList__13JKRFileLoader@l(r3) /* 0x80434354@l */ -/* 802D4A18 48 00 00 50 */ b lbl_802D4A68 -lbl_802D4A1C: -/* 802D4A1C 80 9D 00 00 */ lwz r4, 0(r29) -/* 802D4A20 80 64 00 2C */ lwz r3, 0x2c(r4) -/* 802D4A24 3C 03 BC BF */ addis r0, r3, 0xbcbf -/* 802D4A28 28 00 53 48 */ cmplwi r0, 0x5348 -/* 802D4A2C 40 82 00 38 */ bne lbl_802D4A64 -/* 802D4A30 7C 9C 23 78 */ mr r28, r4 -/* 802D4A34 80 64 00 48 */ lwz r3, 0x48(r4) -/* 802D4A38 28 03 00 00 */ cmplwi r3, 0 -/* 802D4A3C 41 82 00 28 */ beq lbl_802D4A64 -/* 802D4A40 7F C4 F3 78 */ mr r4, r30 -/* 802D4A44 48 09 3F 51 */ bl strcmp -/* 802D4A48 2C 03 00 00 */ cmpwi r3, 0 -/* 802D4A4C 40 82 00 18 */ bne lbl_802D4A64 -/* 802D4A50 80 7C 00 34 */ lwz r3, 0x34(r28) -/* 802D4A54 38 03 00 01 */ addi r0, r3, 1 -/* 802D4A58 90 1C 00 34 */ stw r0, 0x34(r28) -/* 802D4A5C 7F 83 E3 78 */ mr r3, r28 -/* 802D4A60 48 00 00 3C */ b lbl_802D4A9C -lbl_802D4A64: -/* 802D4A64 83 BD 00 0C */ lwz r29, 0xc(r29) -lbl_802D4A68: -/* 802D4A68 28 1D 00 00 */ cmplwi r29, 0 -/* 802D4A6C 40 82 FF B0 */ bne lbl_802D4A1C -/* 802D4A70 38 60 00 54 */ li r3, 0x54 -/* 802D4A74 7F 64 DB 78 */ mr r4, r27 -/* 802D4A78 38 A0 00 00 */ li r5, 0 -/* 802D4A7C 4B FF A2 1D */ bl __nw__FUlP7JKRHeapi -/* 802D4A80 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D4A84 41 82 00 14 */ beq lbl_802D4A98 -/* 802D4A88 7F C4 F3 78 */ mr r4, r30 -/* 802D4A8C 7F E5 FB 78 */ mr r5, r31 -/* 802D4A90 48 00 00 25 */ bl __ct__12JKRFileCacheFPCcPCc -/* 802D4A94 7C 60 1B 78 */ mr r0, r3 -lbl_802D4A98: -/* 802D4A98 7C 03 03 78 */ mr r3, r0 -lbl_802D4A9C: -/* 802D4A9C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D4AA0 48 08 D7 81 */ bl _restgpr_27 -/* 802D4AA4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D4AA8 7C 08 03 A6 */ mtlr r0 -/* 802D4AAC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D4AB0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/readFsResource__12JKRFileCacheFPvUlPCc.s b/asm/JSystem/JKernel/JKRFileCache/readFsResource__12JKRFileCacheFPvUlPCc.s deleted file mode 100644 index 8923396edd..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/readFsResource__12JKRFileCacheFPvUlPCc.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802D5720: -/* 802D5720 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5724 7C 08 02 A6 */ mflr r0 -/* 802D5728 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D572C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D5730 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D5734 7D 89 03 A6 */ mtctr r12 -/* 802D5738 4E 80 04 21 */ bctrl -/* 802D573C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D5740 7C 08 03 A6 */ mtlr r0 -/* 802D5744 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5748 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/readNameResource__12JKRFileCacheFPvUlUlPCc.s b/asm/JSystem/JKernel/JKRFileCache/readNameResource__12JKRFileCacheFPvUlUlPCc.s deleted file mode 100644 index 2c24e1bc7e..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/readNameResource__12JKRFileCacheFPvUlUlPCc.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802D574C: -/* 802D574C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D5750 7C 08 02 A6 */ mflr r0 -/* 802D5754 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D5758 81 83 00 00 */ lwz r12, 0(r3) -/* 802D575C 81 8C 00 20 */ lwz r12, 0x20(r12) -/* 802D5760 7D 89 03 A6 */ mtctr r12 -/* 802D5764 4E 80 04 21 */ bctrl -/* 802D5768 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D576C 7C 08 03 A6 */ mtlr r0 -/* 802D5770 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D5774 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/readResource__12JKRFileCacheFPvUlPCc.s b/asm/JSystem/JKernel/JKRFileCache/readResource__12JKRFileCacheFPvUlPCc.s deleted file mode 100644 index 7e72be1dea..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/readResource__12JKRFileCacheFPvUlPCc.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_802D4F64: -/* 802D4F64 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 802D4F68 7C 08 02 A6 */ mflr r0 -/* 802D4F6C 90 01 01 24 */ stw r0, 0x124(r1) -/* 802D4F70 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D4F74 48 08 D2 61 */ bl _savegpr_27 -/* 802D4F78 7C 7B 1B 78 */ mr r27, r3 -/* 802D4F7C 7C 9C 23 78 */ mr r28, r4 -/* 802D4F80 7C BD 2B 78 */ mr r29, r5 -/* 802D4F84 7C C4 33 78 */ mr r4, r6 -/* 802D4F88 48 00 05 95 */ bl getDvdPathName__12JKRFileCacheCFPCc -/* 802D4F8C 7C 7F 1B 78 */ mr r31, r3 -/* 802D4F90 38 61 00 08 */ addi r3, r1, 8 -/* 802D4F94 7F E4 FB 78 */ mr r4, r31 -/* 802D4F98 48 00 46 61 */ bl __ct__10JKRDvdFileFPCc -/* 802D4F9C 3B C0 00 00 */ li r30, 0 -lbl_802D4FA0: -/* 802D4FA0 88 01 00 20 */ lbz r0, 0x20(r1) -/* 802D4FA4 28 00 00 00 */ cmplwi r0, 0 -/* 802D4FA8 41 82 00 60 */ beq lbl_802D5008 -/* 802D4FAC 80 61 00 98 */ lwz r3, 0x98(r1) -/* 802D4FB0 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D4FB4 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a -/* 802D4FB8 57 BD 00 34 */ rlwinm r29, r29, 0, 0, 0x1a -/* 802D4FBC 7C 1E E8 40 */ cmplw r30, r29 -/* 802D4FC0 40 81 00 08 */ ble lbl_802D4FC8 -/* 802D4FC4 7F BE EB 78 */ mr r30, r29 -lbl_802D4FC8: -/* 802D4FC8 7F 63 DB 78 */ mr r3, r27 -/* 802D4FCC 80 81 00 94 */ lwz r4, 0x94(r1) -/* 802D4FD0 48 00 04 15 */ bl findCacheBlock__12JKRFileCacheCFUl -/* 802D4FD4 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D4FD8 40 82 00 1C */ bne lbl_802D4FF4 -/* 802D4FDC 38 61 00 08 */ addi r3, r1, 8 -/* 802D4FE0 7F 84 E3 78 */ mr r4, r28 -/* 802D4FE4 7F C5 F3 78 */ mr r5, r30 -/* 802D4FE8 38 C0 00 00 */ li r6, 0 -/* 802D4FEC 48 00 45 2D */ bl read__7JKRFileFPvll -/* 802D4FF0 4B FF FF B0 */ b lbl_802D4FA0 -lbl_802D4FF4: -/* 802D4FF4 7F 83 E3 78 */ mr r3, r28 -/* 802D4FF8 80 84 00 1C */ lwz r4, 0x1c(r4) -/* 802D4FFC 7F C5 F3 78 */ mr r5, r30 -/* 802D5000 4B D2 E5 41 */ bl memcpy -/* 802D5004 4B FF FF 9C */ b lbl_802D4FA0 -lbl_802D5008: -/* 802D5008 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D500C 7F E4 FB 78 */ mr r4, r31 -/* 802D5010 4B FF 95 39 */ bl free__7JKRHeapFPv -/* 802D5014 38 61 00 08 */ addi r3, r1, 8 -/* 802D5018 38 80 FF FF */ li r4, -1 -/* 802D501C 48 00 47 2D */ bl __dt__10JKRDvdFileFv -/* 802D5020 7F C3 F3 78 */ mr r3, r30 -/* 802D5024 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D5028 48 08 D1 F9 */ bl _restgpr_27 -/* 802D502C 80 01 01 24 */ lwz r0, 0x124(r1) -/* 802D5030 7C 08 03 A6 */ mtlr r0 -/* 802D5034 38 21 01 20 */ addi r1, r1, 0x120 -/* 802D5038 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/readResource__12JKRFileCacheFPvUlUlPCc.s b/asm/JSystem/JKernel/JKRFileCache/readResource__12JKRFileCacheFPvUlUlPCc.s deleted file mode 100644 index d68acde2ce..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/readResource__12JKRFileCacheFPvUlUlPCc.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_802D503C: -/* 802D503C 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 802D5040 7C 08 02 A6 */ mflr r0 -/* 802D5044 90 01 01 24 */ stw r0, 0x124(r1) -/* 802D5048 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D504C 48 08 D1 89 */ bl _savegpr_27 -/* 802D5050 7C 7B 1B 78 */ mr r27, r3 -/* 802D5054 7C 9C 23 78 */ mr r28, r4 -/* 802D5058 7C BD 2B 78 */ mr r29, r5 -/* 802D505C 7C FE 3B 78 */ mr r30, r7 -/* 802D5060 80 63 00 48 */ lwz r3, 0x48(r3) -/* 802D5064 48 09 3B 81 */ bl strlen -/* 802D5068 3B E1 00 08 */ addi r31, r1, 8 -/* 802D506C 7F FF 1A 14 */ add r31, r31, r3 -/* 802D5070 38 61 00 08 */ addi r3, r1, 8 -/* 802D5074 80 9B 00 48 */ lwz r4, 0x48(r27) -/* 802D5078 48 09 3A B5 */ bl strcpy -/* 802D507C 7F 63 DB 78 */ mr r3, r27 -/* 802D5080 38 81 00 08 */ addi r4, r1, 8 -/* 802D5084 7F C5 F3 78 */ mr r5, r30 -/* 802D5088 48 00 03 89 */ bl findFile__12JKRFileCacheCFPcPCc -/* 802D508C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D5090 41 82 00 28 */ beq lbl_802D50B8 -/* 802D5094 7F 63 DB 78 */ mr r3, r27 -/* 802D5098 7F 84 E3 78 */ mr r4, r28 -/* 802D509C 7F A5 EB 78 */ mr r5, r29 -/* 802D50A0 7F E6 FB 78 */ mr r6, r31 -/* 802D50A4 81 9B 00 00 */ lwz r12, 0(r27) -/* 802D50A8 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D50AC 7D 89 03 A6 */ mtctr r12 -/* 802D50B0 4E 80 04 21 */ bctrl -/* 802D50B4 48 00 00 08 */ b lbl_802D50BC -lbl_802D50B8: -/* 802D50B8 38 60 00 00 */ li r3, 0 -lbl_802D50BC: -/* 802D50BC 39 61 01 20 */ addi r11, r1, 0x120 -/* 802D50C0 48 08 D1 61 */ bl _restgpr_27 -/* 802D50C4 80 01 01 24 */ lwz r0, 0x124(r1) -/* 802D50C8 7C 08 03 A6 */ mtlr r0 -/* 802D50CC 38 21 01 20 */ addi r1, r1, 0x120 -/* 802D50D0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/removeResource__12JKRFileCacheFPv.s b/asm/JSystem/JKernel/JKRFileCache/removeResource__12JKRFileCacheFPv.s deleted file mode 100644 index 32691cdab9..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/removeResource__12JKRFileCacheFPv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_802D5164: -/* 802D5164 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D5168 7C 08 02 A6 */ mflr r0 -/* 802D516C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D5170 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D5174 48 08 D0 69 */ bl _savegpr_29 -/* 802D5178 7C 7D 1B 78 */ mr r29, r3 -/* 802D517C 7C 9E 23 78 */ mr r30, r4 -/* 802D5180 48 00 02 39 */ bl findCacheBlock__12JKRFileCacheCFPCv -/* 802D5184 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D5188 40 82 00 0C */ bne lbl_802D5194 -/* 802D518C 38 60 00 00 */ li r3, 0 -/* 802D5190 48 00 00 50 */ b lbl_802D51E0 -lbl_802D5194: -/* 802D5194 80 7F 00 10 */ lwz r3, 0x10(r31) -/* 802D5198 34 03 FF FF */ addic. r0, r3, -1 -/* 802D519C 90 1F 00 10 */ stw r0, 0x10(r31) -/* 802D51A0 40 82 00 3C */ bne lbl_802D51DC -/* 802D51A4 7F C3 F3 78 */ mr r3, r30 -/* 802D51A8 80 9D 00 38 */ lwz r4, 0x38(r29) -/* 802D51AC 4B FF 93 55 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D51B0 38 7D 00 3C */ addi r3, r29, 0x3c -/* 802D51B4 7F E4 FB 78 */ mr r4, r31 -/* 802D51B8 48 00 6F A5 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D51BC 28 1F 00 00 */ cmplwi r31, 0 -/* 802D51C0 41 82 00 1C */ beq lbl_802D51DC -/* 802D51C4 41 82 00 10 */ beq lbl_802D51D4 -/* 802D51C8 7F E3 FB 78 */ mr r3, r31 -/* 802D51CC 38 80 00 00 */ li r4, 0 -/* 802D51D0 48 00 6C 45 */ bl __dt__10JSUPtrLinkFv -lbl_802D51D4: -/* 802D51D4 7F E3 FB 78 */ mr r3, r31 -/* 802D51D8 4B FF 9B 65 */ bl __dl__FPv -lbl_802D51DC: -/* 802D51DC 38 60 00 01 */ li r3, 1 -lbl_802D51E0: -/* 802D51E0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D51E4 48 08 D0 45 */ bl _restgpr_29 -/* 802D51E8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D51EC 7C 08 03 A6 */ mtlr r0 -/* 802D51F0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D51F4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRArcFinderFP10JKRArchivell.s b/asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRArcFinderFP10JKRArchivell.s deleted file mode 100644 index 533e171a8f..0000000000 --- a/asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRArcFinderFP10JKRArchivell.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_802D4638: -/* 802D4638 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D463C 7C 08 02 A6 */ mflr r0 -/* 802D4640 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D4644 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D4648 7C 7F 1B 78 */ mr r31, r3 -/* 802D464C 3C E0 80 3D */ lis r7, __vt__13JKRFileFinder@ha /* 0x803CC228@ha */ -/* 802D4650 38 07 C2 28 */ addi r0, r7, __vt__13JKRFileFinder@l /* 0x803CC228@l */ -/* 802D4654 90 03 00 0C */ stw r0, 0xc(r3) -/* 802D4658 38 00 00 00 */ li r0, 0 -/* 802D465C 98 03 00 10 */ stb r0, 0x10(r3) -/* 802D4660 98 03 00 11 */ stb r0, 0x11(r3) -/* 802D4664 3C E0 80 3D */ lis r7, __vt__12JKRArcFinder@ha /* 0x803CC218@ha */ -/* 802D4668 38 07 C2 18 */ addi r0, r7, __vt__12JKRArcFinder@l /* 0x803CC218@l */ -/* 802D466C 90 03 00 0C */ stw r0, 0xc(r3) -/* 802D4670 90 83 00 14 */ stw r4, 0x14(r3) -/* 802D4674 7C 06 00 D0 */ neg r0, r6 -/* 802D4678 7C 00 30 78 */ andc r0, r0, r6 -/* 802D467C 54 00 0F FE */ srwi r0, r0, 0x1f -/* 802D4680 98 03 00 10 */ stb r0, 0x10(r3) -/* 802D4684 90 A3 00 18 */ stw r5, 0x18(r3) -/* 802D4688 38 06 FF FF */ addi r0, r6, -1 -/* 802D468C 7C 05 02 14 */ add r0, r5, r0 -/* 802D4690 90 03 00 1C */ stw r0, 0x1c(r3) -/* 802D4694 80 03 00 18 */ lwz r0, 0x18(r3) -/* 802D4698 90 03 00 20 */ stw r0, 0x20(r3) -/* 802D469C 81 83 00 0C */ lwz r12, 0xc(r3) -/* 802D46A0 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 802D46A4 7D 89 03 A6 */ mtctr r12 -/* 802D46A8 4E 80 04 21 */ bctrl -/* 802D46AC 7F E3 FB 78 */ mr r3, r31 -/* 802D46B0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D46B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D46B8 7C 08 03 A6 */ mtlr r0 -/* 802D46BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D46C0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRDvdFinderFPCc.s b/asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRDvdFinderFPCc.s deleted file mode 100644 index 0e9502f02d..0000000000 --- a/asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRDvdFinderFPCc.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802D4770: -/* 802D4770 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D4774 7C 08 02 A6 */ mflr r0 -/* 802D4778 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D477C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D4780 7C 7F 1B 78 */ mr r31, r3 -/* 802D4784 3C 60 80 3D */ lis r3, __vt__13JKRFileFinder@ha /* 0x803CC228@ha */ -/* 802D4788 38 03 C2 28 */ addi r0, r3, __vt__13JKRFileFinder@l /* 0x803CC228@l */ -/* 802D478C 90 1F 00 0C */ stw r0, 0xc(r31) -/* 802D4790 38 00 00 00 */ li r0, 0 -/* 802D4794 98 1F 00 10 */ stb r0, 0x10(r31) -/* 802D4798 98 1F 00 11 */ stb r0, 0x11(r31) -/* 802D479C 3C 60 80 3D */ lis r3, __vt__12JKRDvdFinder@ha /* 0x803CC208@ha */ -/* 802D47A0 38 03 C2 08 */ addi r0, r3, __vt__12JKRDvdFinder@l /* 0x803CC208@l */ -/* 802D47A4 90 1F 00 0C */ stw r0, 0xc(r31) -/* 802D47A8 7C 83 23 78 */ mr r3, r4 -/* 802D47AC 38 9F 00 14 */ addi r4, r31, 0x14 -/* 802D47B0 48 07 47 D1 */ bl DVDOpenDir -/* 802D47B4 30 03 FF FF */ addic r0, r3, -1 -/* 802D47B8 7C 00 19 10 */ subfe r0, r0, r3 -/* 802D47BC 98 1F 00 20 */ stb r0, 0x20(r31) -/* 802D47C0 88 1F 00 20 */ lbz r0, 0x20(r31) -/* 802D47C4 98 1F 00 10 */ stb r0, 0x10(r31) -/* 802D47C8 7F E3 FB 78 */ mr r3, r31 -/* 802D47CC 81 9F 00 0C */ lwz r12, 0xc(r31) -/* 802D47D0 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 802D47D4 7D 89 03 A6 */ mtctr r12 -/* 802D47D8 4E 80 04 21 */ bctrl -/* 802D47DC 7F E3 FB 78 */ mr r3, r31 -/* 802D47E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D47E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D47E8 7C 08 03 A6 */ mtlr r0 -/* 802D47EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D47F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileFinder/__dt__12JKRArcFinderFv.s b/asm/JSystem/JKernel/JKRFileFinder/__dt__12JKRArcFinderFv.s deleted file mode 100644 index e03563e443..0000000000 --- a/asm/JSystem/JKernel/JKRFileFinder/__dt__12JKRArcFinderFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802D4958: -/* 802D4958 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D495C 7C 08 02 A6 */ mflr r0 -/* 802D4960 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D4964 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D4968 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D496C 41 82 00 30 */ beq lbl_802D499C -/* 802D4970 3C 60 80 3D */ lis r3, __vt__12JKRArcFinder@ha /* 0x803CC218@ha */ -/* 802D4974 38 03 C2 18 */ addi r0, r3, __vt__12JKRArcFinder@l /* 0x803CC218@l */ -/* 802D4978 90 1F 00 0C */ stw r0, 0xc(r31) -/* 802D497C 41 82 00 10 */ beq lbl_802D498C -/* 802D4980 3C 60 80 3D */ lis r3, __vt__13JKRFileFinder@ha /* 0x803CC228@ha */ -/* 802D4984 38 03 C2 28 */ addi r0, r3, __vt__13JKRFileFinder@l /* 0x803CC228@l */ -/* 802D4988 90 1F 00 0C */ stw r0, 0xc(r31) -lbl_802D498C: -/* 802D498C 7C 80 07 35 */ extsh. r0, r4 -/* 802D4990 40 81 00 0C */ ble lbl_802D499C -/* 802D4994 7F E3 FB 78 */ mr r3, r31 -/* 802D4998 4B FF A3 A5 */ bl __dl__FPv -lbl_802D499C: -/* 802D499C 7F E3 FB 78 */ mr r3, r31 -/* 802D49A0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D49A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D49A8 7C 08 03 A6 */ mtlr r0 -/* 802D49AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D49B0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileFinder/__dt__13JKRFileFinderFv.s b/asm/JSystem/JKernel/JKRFileFinder/__dt__13JKRFileFinderFv.s deleted file mode 100644 index 73e4330384..0000000000 --- a/asm/JSystem/JKernel/JKRFileFinder/__dt__13JKRFileFinderFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_802D4910: -/* 802D4910 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D4914 7C 08 02 A6 */ mflr r0 -/* 802D4918 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D491C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D4920 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D4924 41 82 00 1C */ beq lbl_802D4940 -/* 802D4928 3C A0 80 3D */ lis r5, __vt__13JKRFileFinder@ha /* 0x803CC228@ha */ -/* 802D492C 38 05 C2 28 */ addi r0, r5, __vt__13JKRFileFinder@l /* 0x803CC228@l */ -/* 802D4930 90 1F 00 0C */ stw r0, 0xc(r31) -/* 802D4934 7C 80 07 35 */ extsh. r0, r4 -/* 802D4938 40 81 00 08 */ ble lbl_802D4940 -/* 802D493C 4B FF A4 01 */ bl __dl__FPv -lbl_802D4940: -/* 802D4940 7F E3 FB 78 */ mr r3, r31 -/* 802D4944 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D4948 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D494C 7C 08 03 A6 */ mtlr r0 -/* 802D4950 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D4954 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRArcFinderFv.s b/asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRArcFinderFv.s deleted file mode 100644 index 04b77c9e19..0000000000 --- a/asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRArcFinderFv.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_802D46C4: -/* 802D46C4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D46C8 7C 08 02 A6 */ mflr r0 -/* 802D46CC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D46D0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D46D4 7C 7F 1B 78 */ mr r31, r3 -/* 802D46D8 88 03 00 10 */ lbz r0, 0x10(r3) -/* 802D46DC 28 00 00 00 */ cmplwi r0, 0 -/* 802D46E0 41 82 00 78 */ beq lbl_802D4758 -/* 802D46E4 80 BF 00 20 */ lwz r5, 0x20(r31) -/* 802D46E8 80 1F 00 1C */ lwz r0, 0x1c(r31) -/* 802D46EC 7C 04 FE 70 */ srawi r4, r0, 0x1f -/* 802D46F0 54 A3 0F FE */ srwi r3, r5, 0x1f -/* 802D46F4 7C 05 00 10 */ subfc r0, r5, r0 -/* 802D46F8 7C 04 19 14 */ adde r0, r4, r3 -/* 802D46FC 98 1F 00 10 */ stb r0, 0x10(r31) -/* 802D4700 88 1F 00 10 */ lbz r0, 0x10(r31) -/* 802D4704 28 00 00 00 */ cmplwi r0, 0 -/* 802D4708 41 82 00 50 */ beq lbl_802D4758 -/* 802D470C 80 7F 00 14 */ lwz r3, 0x14(r31) -/* 802D4710 38 81 00 08 */ addi r4, r1, 8 -/* 802D4714 80 BF 00 20 */ lwz r5, 0x20(r31) -/* 802D4718 48 00 13 A9 */ bl getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl -/* 802D471C 98 7F 00 10 */ stb r3, 0x10(r31) -/* 802D4720 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802D4724 90 1F 00 00 */ stw r0, 0(r31) -/* 802D4728 80 1F 00 20 */ lwz r0, 0x20(r31) -/* 802D472C 90 1F 00 04 */ stw r0, 4(r31) -/* 802D4730 A0 01 00 0A */ lhz r0, 0xa(r1) -/* 802D4734 B0 1F 00 08 */ sth r0, 8(r31) -/* 802D4738 88 01 00 08 */ lbz r0, 8(r1) -/* 802D473C B0 1F 00 0A */ sth r0, 0xa(r31) -/* 802D4740 A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 802D4744 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f -/* 802D4748 98 1F 00 11 */ stb r0, 0x11(r31) -/* 802D474C 80 7F 00 20 */ lwz r3, 0x20(r31) -/* 802D4750 38 03 00 01 */ addi r0, r3, 1 -/* 802D4754 90 1F 00 20 */ stw r0, 0x20(r31) -lbl_802D4758: -/* 802D4758 88 7F 00 10 */ lbz r3, 0x10(r31) -/* 802D475C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802D4760 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D4764 7C 08 03 A6 */ mtlr r0 -/* 802D4768 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D476C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRDvdFinderFv.s b/asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRDvdFinderFv.s deleted file mode 100644 index f53cc86f5a..0000000000 --- a/asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRDvdFinderFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_802D4874: -/* 802D4874 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D4878 7C 08 02 A6 */ mflr r0 -/* 802D487C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D4880 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D4884 7C 7F 1B 78 */ mr r31, r3 -/* 802D4888 88 03 00 10 */ lbz r0, 0x10(r3) -/* 802D488C 28 00 00 00 */ cmplwi r0, 0 -/* 802D4890 41 82 00 68 */ beq lbl_802D48F8 -/* 802D4894 38 7F 00 14 */ addi r3, r31, 0x14 -/* 802D4898 38 81 00 08 */ addi r4, r1, 8 -/* 802D489C 48 07 47 A5 */ bl DVDReadDir -/* 802D48A0 30 03 FF FF */ addic r0, r3, -1 -/* 802D48A4 7C 00 19 10 */ subfe r0, r0, r3 -/* 802D48A8 98 1F 00 10 */ stb r0, 0x10(r31) -/* 802D48AC 88 1F 00 10 */ lbz r0, 0x10(r31) -/* 802D48B0 28 00 00 00 */ cmplwi r0, 0 -/* 802D48B4 41 82 00 44 */ beq lbl_802D48F8 -/* 802D48B8 80 61 00 0C */ lwz r3, 0xc(r1) -/* 802D48BC 30 03 FF FF */ addic r0, r3, -1 -/* 802D48C0 7C 00 19 10 */ subfe r0, r0, r3 -/* 802D48C4 98 1F 00 11 */ stb r0, 0x11(r31) -/* 802D48C8 80 01 00 10 */ lwz r0, 0x10(r1) -/* 802D48CC 90 1F 00 00 */ stw r0, 0(r31) -/* 802D48D0 80 01 00 08 */ lwz r0, 8(r1) -/* 802D48D4 90 1F 00 04 */ stw r0, 4(r31) -/* 802D48D8 38 00 00 00 */ li r0, 0 -/* 802D48DC B0 1F 00 08 */ sth r0, 8(r31) -/* 802D48E0 88 1F 00 11 */ lbz r0, 0x11(r31) -/* 802D48E4 28 00 00 00 */ cmplwi r0, 0 -/* 802D48E8 38 00 00 01 */ li r0, 1 -/* 802D48EC 41 82 00 08 */ beq lbl_802D48F4 -/* 802D48F0 38 00 00 02 */ li r0, 2 -lbl_802D48F4: -/* 802D48F4 B0 1F 00 0A */ sth r0, 0xa(r31) -lbl_802D48F8: -/* 802D48F8 88 7F 00 10 */ lbz r3, 0x10(r31) -/* 802D48FC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802D4900 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D4904 7C 08 03 A6 */ mtlr r0 -/* 802D4908 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D490C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/__ct__13JKRFileLoaderFv.s b/asm/JSystem/JKernel/JKRFileLoader/__ct__13JKRFileLoaderFv.s deleted file mode 100644 index 6c12ba58ca..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/__ct__13JKRFileLoaderFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802D40F0: -/* 802D40F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D40F4 7C 08 02 A6 */ mflr r0 -/* 802D40F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D40FC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D4100 7C 7F 1B 78 */ mr r31, r3 -/* 802D4104 4B FF D3 79 */ bl __ct__11JKRDisposerFv -/* 802D4108 3C 60 80 3D */ lis r3, __vt__13JKRFileLoader@ha /* 0x803CC1C8@ha */ -/* 802D410C 38 03 C1 C8 */ addi r0, r3, __vt__13JKRFileLoader@l /* 0x803CC1C8@l */ -/* 802D4110 90 1F 00 00 */ stw r0, 0(r31) -/* 802D4114 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D4118 7F E4 FB 78 */ mr r4, r31 -/* 802D411C 48 00 7C E1 */ bl __ct__10JSUPtrLinkFPv -/* 802D4120 38 00 00 00 */ li r0, 0 -/* 802D4124 90 1F 00 28 */ stw r0, 0x28(r31) -/* 802D4128 90 1F 00 2C */ stw r0, 0x2c(r31) -/* 802D412C 90 1F 00 34 */ stw r0, 0x34(r31) -/* 802D4130 7F E3 FB 78 */ mr r3, r31 -/* 802D4134 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D4138 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D413C 7C 08 03 A6 */ mtlr r0 -/* 802D4140 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D4144 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/__dt__13JKRFileLoaderFv.s b/asm/JSystem/JKernel/JKRFileLoader/__dt__13JKRFileLoaderFv.s deleted file mode 100644 index f1488f3c65..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/__dt__13JKRFileLoaderFv.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_802D4148: -/* 802D4148 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D414C 7C 08 02 A6 */ mflr r0 -/* 802D4150 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D4154 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D4158 93 C1 00 08 */ stw r30, 8(r1) -/* 802D415C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D4160 7C 9F 23 78 */ mr r31, r4 -/* 802D4164 41 82 00 54 */ beq lbl_802D41B8 -/* 802D4168 3C 60 80 3D */ lis r3, __vt__13JKRFileLoader@ha /* 0x803CC1C8@ha */ -/* 802D416C 38 03 C1 C8 */ addi r0, r3, __vt__13JKRFileLoader@l /* 0x803CC1C8@l */ -/* 802D4170 90 1E 00 00 */ stw r0, 0(r30) -/* 802D4174 80 0D 8E 98 */ lwz r0, sCurrentVolume__13JKRFileLoader(r13) -/* 802D4178 7C 00 F0 40 */ cmplw r0, r30 -/* 802D417C 40 82 00 0C */ bne lbl_802D4188 -/* 802D4180 38 00 00 00 */ li r0, 0 -/* 802D4184 90 0D 8E 98 */ stw r0, sCurrentVolume__13JKRFileLoader(r13) -lbl_802D4188: -/* 802D4188 34 1E 00 18 */ addic. r0, r30, 0x18 -/* 802D418C 41 82 00 10 */ beq lbl_802D419C -/* 802D4190 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D4194 38 80 00 00 */ li r4, 0 -/* 802D4198 48 00 7C 7D */ bl __dt__10JSUPtrLinkFv -lbl_802D419C: -/* 802D419C 7F C3 F3 78 */ mr r3, r30 -/* 802D41A0 38 80 00 00 */ li r4, 0 -/* 802D41A4 4B FF D3 41 */ bl __dt__11JKRDisposerFv -/* 802D41A8 7F E0 07 35 */ extsh. r0, r31 -/* 802D41AC 40 81 00 0C */ ble lbl_802D41B8 -/* 802D41B0 7F C3 F3 78 */ mr r3, r30 -/* 802D41B4 4B FF AB 89 */ bl __dl__FPv -lbl_802D41B8: -/* 802D41B8 7F C3 F3 78 */ mr r3, r30 -/* 802D41BC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D41C0 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D41C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D41C8 7C 08 03 A6 */ mtlr r0 -/* 802D41CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D41D0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/__sinit_JKRFileLoader_cpp.s b/asm/JSystem/JKernel/JKRFileLoader/__sinit_JKRFileLoader_cpp.s deleted file mode 100644 index 7c3e571b29..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/__sinit_JKRFileLoader_cpp.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_802D45A0: -/* 802D45A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D45A4 7C 08 02 A6 */ mflr r0 -/* 802D45A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D45AC 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D45B0 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D45B4 48 00 79 61 */ bl initiate__10JSUPtrListFv -/* 802D45B8 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D45BC 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D45C0 3C 80 80 2D */ lis r4, func_802D45E4@ha /* 0x802D45E4@ha */ -/* 802D45C4 38 84 45 E4 */ addi r4, r4, func_802D45E4@l /* 0x802D45E4@l */ -/* 802D45C8 3C A0 80 43 */ lis r5, lit_2182@ha /* 0x80434348@ha */ -/* 802D45CC 38 A5 43 48 */ addi r5, r5, lit_2182@l /* 0x80434348@l */ -/* 802D45D0 48 08 D6 55 */ bl __register_global_object -/* 802D45D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D45D8 7C 08 03 A6 */ mtlr r0 -/* 802D45DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D45E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/detachResource__13JKRFileLoaderFPvP13JKRFileLoader.s b/asm/JSystem/JKernel/JKRFileLoader/detachResource__13JKRFileLoaderFPvP13JKRFileLoader.s deleted file mode 100644 index 73495c9ddb..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/detachResource__13JKRFileLoaderFPvP13JKRFileLoader.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_802D43A0: -/* 802D43A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D43A4 7C 08 02 A6 */ mflr r0 -/* 802D43A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D43AC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D43B0 93 C1 00 08 */ stw r30, 8(r1) -/* 802D43B4 7C 7E 1B 78 */ mr r30, r3 -/* 802D43B8 28 04 00 00 */ cmplwi r4, 0 -/* 802D43BC 41 82 00 20 */ beq lbl_802D43DC -/* 802D43C0 7C 83 23 78 */ mr r3, r4 -/* 802D43C4 7F C4 F3 78 */ mr r4, r30 -/* 802D43C8 81 83 00 00 */ lwz r12, 0(r3) -/* 802D43CC 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 802D43D0 7D 89 03 A6 */ mtctr r12 -/* 802D43D4 4E 80 04 21 */ bctrl -/* 802D43D8 48 00 00 48 */ b lbl_802D4420 -lbl_802D43DC: -/* 802D43DC 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D43E0 83 E3 43 54 */ lwz r31, sVolumeList__13JKRFileLoader@l(r3) /* 0x80434354@l */ -/* 802D43E4 48 00 00 30 */ b lbl_802D4414 -lbl_802D43E8: -/* 802D43E8 80 7F 00 00 */ lwz r3, 0(r31) -/* 802D43EC 7F C4 F3 78 */ mr r4, r30 -/* 802D43F0 81 83 00 00 */ lwz r12, 0(r3) -/* 802D43F4 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 802D43F8 7D 89 03 A6 */ mtctr r12 -/* 802D43FC 4E 80 04 21 */ bctrl -/* 802D4400 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D4404 41 82 00 0C */ beq lbl_802D4410 -/* 802D4408 38 60 00 01 */ li r3, 1 -/* 802D440C 48 00 00 14 */ b lbl_802D4420 -lbl_802D4410: -/* 802D4410 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_802D4414: -/* 802D4414 28 1F 00 00 */ cmplwi r31, 0 -/* 802D4418 40 82 FF D0 */ bne lbl_802D43E8 -/* 802D441C 38 60 00 00 */ li r3, 0 -lbl_802D4420: -/* 802D4420 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D4424 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D4428 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D442C 7C 08 03 A6 */ mtlr r0 -/* 802D4430 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D4434 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/findVolume__13JKRFileLoaderFPPCc.s b/asm/JSystem/JKernel/JKRFileLoader/findVolume__13JKRFileLoaderFPPCc.s deleted file mode 100644 index e053745d0d..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/findVolume__13JKRFileLoaderFPPCc.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_802D4438: -/* 802D4438 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 802D443C 7C 08 02 A6 */ mflr r0 -/* 802D4440 90 01 01 24 */ stw r0, 0x124(r1) -/* 802D4444 93 E1 01 1C */ stw r31, 0x11c(r1) -/* 802D4448 7C 7F 1B 78 */ mr r31, r3 -/* 802D444C 80 A3 00 00 */ lwz r5, 0(r3) -/* 802D4450 88 05 00 00 */ lbz r0, 0(r5) -/* 802D4454 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D4458 41 82 00 0C */ beq lbl_802D4464 -/* 802D445C 80 6D 8E 98 */ lwz r3, sCurrentVolume__13JKRFileLoader(r13) -/* 802D4460 48 00 00 50 */ b lbl_802D44B0 -lbl_802D4464: -/* 802D4464 38 61 00 08 */ addi r3, r1, 8 -/* 802D4468 38 80 01 01 */ li r4, 0x101 -/* 802D446C 48 00 00 59 */ bl fetchVolumeName__13JKRFileLoaderFPclPCc -/* 802D4470 90 7F 00 00 */ stw r3, 0(r31) -/* 802D4474 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D4478 83 E3 43 54 */ lwz r31, sVolumeList__13JKRFileLoader@l(r3) /* 0x80434354@l */ -/* 802D447C 48 00 00 28 */ b lbl_802D44A4 -lbl_802D4480: -/* 802D4480 80 9F 00 00 */ lwz r4, 0(r31) -/* 802D4484 38 61 00 08 */ addi r3, r1, 8 -/* 802D4488 80 84 00 28 */ lwz r4, 0x28(r4) -/* 802D448C 48 09 45 09 */ bl strcmp -/* 802D4490 2C 03 00 00 */ cmpwi r3, 0 -/* 802D4494 40 82 00 0C */ bne lbl_802D44A0 -/* 802D4498 80 7F 00 00 */ lwz r3, 0(r31) -/* 802D449C 48 00 00 14 */ b lbl_802D44B0 -lbl_802D44A0: -/* 802D44A0 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_802D44A4: -/* 802D44A4 28 1F 00 00 */ cmplwi r31, 0 -/* 802D44A8 40 82 FF D8 */ bne lbl_802D4480 -/* 802D44AC 38 60 00 00 */ li r3, 0 -lbl_802D44B0: -/* 802D44B0 83 E1 01 1C */ lwz r31, 0x11c(r1) -/* 802D44B4 80 01 01 24 */ lwz r0, 0x124(r1) -/* 802D44B8 7C 08 03 A6 */ mtlr r0 -/* 802D44BC 38 21 01 20 */ addi r1, r1, 0x120 -/* 802D44C0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/func_802D45E4.s b/asm/JSystem/JKernel/JKRFileLoader/func_802D45E4.s deleted file mode 100644 index f792333a8a..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/func_802D45E4.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802D45E4: -/* 802D45E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D45E8 7C 08 02 A6 */ mflr r0 -/* 802D45EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D45F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D45F4 93 C1 00 08 */ stw r30, 8(r1) -/* 802D45F8 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D45FC 7C 9F 23 78 */ mr r31, r4 -/* 802D4600 41 82 00 1C */ beq lbl_802D461C -/* 802D4604 38 80 00 00 */ li r4, 0 -/* 802D4608 48 00 78 A5 */ bl __dt__10JSUPtrListFv -/* 802D460C 7F E0 07 35 */ extsh. r0, r31 -/* 802D4610 40 81 00 0C */ ble lbl_802D461C -/* 802D4614 7F C3 F3 78 */ mr r3, r30 -/* 802D4618 4B FF A7 25 */ bl __dl__FPv -lbl_802D461C: -/* 802D461C 7F C3 F3 78 */ mr r3, r30 -/* 802D4620 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D4624 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D4628 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D462C 7C 08 03 A6 */ mtlr r0 -/* 802D4630 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D4634 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCc.s b/asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCc.s deleted file mode 100644 index 2cd3d11204..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCc.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802D4224: -/* 802D4224 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D4228 7C 08 02 A6 */ mflr r0 -/* 802D422C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D4230 90 61 00 08 */ stw r3, 8(r1) -/* 802D4234 38 61 00 08 */ addi r3, r1, 8 -/* 802D4238 48 00 02 01 */ bl findVolume__13JKRFileLoaderFPPCc -/* 802D423C 28 03 00 00 */ cmplwi r3, 0 -/* 802D4240 40 82 00 0C */ bne lbl_802D424C -/* 802D4244 38 60 00 00 */ li r3, 0 -/* 802D4248 48 00 00 18 */ b lbl_802D4260 -lbl_802D424C: -/* 802D424C 80 81 00 08 */ lwz r4, 8(r1) -/* 802D4250 81 83 00 00 */ lwz r12, 0(r3) -/* 802D4254 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802D4258 7D 89 03 A6 */ mtctr r12 -/* 802D425C 4E 80 04 21 */ bctrl -lbl_802D4260: -/* 802D4260 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D4264 7C 08 03 A6 */ mtlr r0 -/* 802D4268 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D426C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader.s b/asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader.s deleted file mode 100644 index 4a3077f840..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_802D4270: -/* 802D4270 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D4274 7C 08 02 A6 */ mflr r0 -/* 802D4278 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D427C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D4280 93 C1 00 08 */ stw r30, 8(r1) -/* 802D4284 7C 7E 1B 78 */ mr r30, r3 -/* 802D4288 38 60 00 00 */ li r3, 0 -/* 802D428C 28 04 00 00 */ cmplwi r4, 0 -/* 802D4290 41 82 00 24 */ beq lbl_802D42B4 -/* 802D4294 7C 83 23 78 */ mr r3, r4 -/* 802D4298 38 80 00 00 */ li r4, 0 -/* 802D429C 7F C5 F3 78 */ mr r5, r30 -/* 802D42A0 81 83 00 00 */ lwz r12, 0(r3) -/* 802D42A4 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802D42A8 7D 89 03 A6 */ mtctr r12 -/* 802D42AC 4E 80 04 21 */ bctrl -/* 802D42B0 48 00 00 40 */ b lbl_802D42F0 -lbl_802D42B4: -/* 802D42B4 3C 80 80 43 */ lis r4, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D42B8 83 E4 43 54 */ lwz r31, sVolumeList__13JKRFileLoader@l(r4) /* 0x80434354@l */ -/* 802D42BC 48 00 00 2C */ b lbl_802D42E8 -lbl_802D42C0: -/* 802D42C0 80 7F 00 00 */ lwz r3, 0(r31) -/* 802D42C4 38 80 00 00 */ li r4, 0 -/* 802D42C8 7F C5 F3 78 */ mr r5, r30 -/* 802D42CC 81 83 00 00 */ lwz r12, 0(r3) -/* 802D42D0 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802D42D4 7D 89 03 A6 */ mtctr r12 -/* 802D42D8 4E 80 04 21 */ bctrl -/* 802D42DC 28 03 00 00 */ cmplwi r3, 0 -/* 802D42E0 40 82 00 10 */ bne lbl_802D42F0 -/* 802D42E4 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_802D42E8: -/* 802D42E8 28 1F 00 00 */ cmplwi r31, 0 -/* 802D42EC 40 82 FF D4 */ bne lbl_802D42C0 -lbl_802D42F0: -/* 802D42F0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D42F4 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D42F8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D42FC 7C 08 03 A6 */ mtlr r0 -/* 802D4300 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D4304 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/removeResource__13JKRFileLoaderFPvP13JKRFileLoader.s b/asm/JSystem/JKernel/JKRFileLoader/removeResource__13JKRFileLoaderFPvP13JKRFileLoader.s deleted file mode 100644 index 16fbbd7ac2..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/removeResource__13JKRFileLoaderFPvP13JKRFileLoader.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_802D4308: -/* 802D4308 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D430C 7C 08 02 A6 */ mflr r0 -/* 802D4310 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D4314 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D4318 93 C1 00 08 */ stw r30, 8(r1) -/* 802D431C 7C 7E 1B 78 */ mr r30, r3 -/* 802D4320 28 04 00 00 */ cmplwi r4, 0 -/* 802D4324 41 82 00 20 */ beq lbl_802D4344 -/* 802D4328 7C 83 23 78 */ mr r3, r4 -/* 802D432C 7F C4 F3 78 */ mr r4, r30 -/* 802D4330 81 83 00 00 */ lwz r12, 0(r3) -/* 802D4334 81 8C 00 28 */ lwz r12, 0x28(r12) -/* 802D4338 7D 89 03 A6 */ mtctr r12 -/* 802D433C 4E 80 04 21 */ bctrl -/* 802D4340 48 00 00 48 */ b lbl_802D4388 -lbl_802D4344: -/* 802D4344 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D4348 83 E3 43 54 */ lwz r31, sVolumeList__13JKRFileLoader@l(r3) /* 0x80434354@l */ -/* 802D434C 48 00 00 30 */ b lbl_802D437C -lbl_802D4350: -/* 802D4350 80 7F 00 00 */ lwz r3, 0(r31) -/* 802D4354 7F C4 F3 78 */ mr r4, r30 -/* 802D4358 81 83 00 00 */ lwz r12, 0(r3) -/* 802D435C 81 8C 00 28 */ lwz r12, 0x28(r12) -/* 802D4360 7D 89 03 A6 */ mtctr r12 -/* 802D4364 4E 80 04 21 */ bctrl -/* 802D4368 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D436C 41 82 00 0C */ beq lbl_802D4378 -/* 802D4370 38 60 00 01 */ li r3, 1 -/* 802D4374 48 00 00 14 */ b lbl_802D4388 -lbl_802D4378: -/* 802D4378 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_802D437C: -/* 802D437C 28 1F 00 00 */ cmplwi r31, 0 -/* 802D4380 40 82 FF D0 */ bne lbl_802D4350 -/* 802D4384 38 60 00 00 */ li r3, 0 -lbl_802D4388: -/* 802D4388 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D438C 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D4390 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D4394 7C 08 03 A6 */ mtlr r0 -/* 802D4398 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D439C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileLoader/unmount__13JKRFileLoaderFv.s b/asm/JSystem/JKernel/JKRFileLoader/unmount__13JKRFileLoaderFv.s deleted file mode 100644 index e4cb5f89df..0000000000 --- a/asm/JSystem/JKernel/JKRFileLoader/unmount__13JKRFileLoaderFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802D41D4: -/* 802D41D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D41D8 7C 08 02 A6 */ mflr r0 -/* 802D41DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D41E0 80 83 00 34 */ lwz r4, 0x34(r3) -/* 802D41E4 28 04 00 00 */ cmplwi r4, 0 -/* 802D41E8 41 82 00 2C */ beq lbl_802D4214 -/* 802D41EC 34 04 FF FF */ addic. r0, r4, -1 -/* 802D41F0 90 03 00 34 */ stw r0, 0x34(r3) -/* 802D41F4 40 82 00 20 */ bne lbl_802D4214 -/* 802D41F8 28 03 00 00 */ cmplwi r3, 0 -/* 802D41FC 41 82 00 18 */ beq lbl_802D4214 -/* 802D4200 38 80 00 01 */ li r4, 1 -/* 802D4204 81 83 00 00 */ lwz r12, 0(r3) -/* 802D4208 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D420C 7D 89 03 A6 */ mtctr r12 -/* 802D4210 4E 80 04 21 */ bctrl -lbl_802D4214: -/* 802D4214 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D4218 7C 08 03 A6 */ mtlr r0 -/* 802D421C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D4220 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/JKRDefaultMemoryErrorRoutine__FPvUli.s b/asm/JSystem/JKernel/JKRHeap/JKRDefaultMemoryErrorRoutine__FPvUli.s deleted file mode 100644 index 69866f3e04..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/JKRDefaultMemoryErrorRoutine__FPvUli.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_802CEB40: -/* 802CEB40 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CEB44 7C 08 02 A6 */ mflr r0 -/* 802CEB48 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CEB4C 3C 60 80 3A */ lis r3, JKRHeap__stringBase0@ha /* 0x8039CAD8@ha */ -/* 802CEB50 38 63 CA D8 */ addi r3, r3, JKRHeap__stringBase0@l /* 0x8039CAD8@l */ -/* 802CEB54 38 80 03 3F */ li r4, 0x33f -/* 802CEB58 38 A3 00 0C */ addi r5, r3, 0xc -/* 802CEB5C 38 C3 00 0F */ addi r6, r3, 0xf -/* 802CEB60 4C C6 31 82 */ crclr 6 -/* 802CEB64 48 01 36 99 */ bl panic_f__12JUTExceptionFPCciPCce -/* 802CEB68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CEB6C 7C 08 03 A6 */ mtlr r0 -/* 802CEB70 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CEB74 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__ct__7JKRHeapFPvUlP7JKRHeapb.s b/asm/JSystem/JKernel/JKRHeap/__ct__7JKRHeapFPvUlP7JKRHeapb.s deleted file mode 100644 index 466bdc8518..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__ct__7JKRHeapFPvUlP7JKRHeapb.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_802CE138: -/* 802CE138 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CE13C 7C 08 02 A6 */ mflr r0 -/* 802CE140 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CE144 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CE148 48 09 40 89 */ bl _savegpr_26 -/* 802CE14C 7C 7F 1B 78 */ mr r31, r3 -/* 802CE150 7C 9B 23 78 */ mr r27, r4 -/* 802CE154 7C BC 2B 78 */ mr r28, r5 -/* 802CE158 7C DD 33 78 */ mr r29, r6 -/* 802CE15C 7C FE 3B 78 */ mr r30, r7 -/* 802CE160 48 00 33 1D */ bl __ct__11JKRDisposerFv -/* 802CE164 3C 60 80 3D */ lis r3, __vt__7JKRHeap@ha /* 0x803CBF70@ha */ -/* 802CE168 38 03 BF 70 */ addi r0, r3, __vt__7JKRHeap@l /* 0x803CBF70@l */ -/* 802CE16C 90 1F 00 00 */ stw r0, 0(r31) -/* 802CE170 3B 5F 00 40 */ addi r26, r31, 0x40 -/* 802CE174 7F 43 D3 78 */ mr r3, r26 -/* 802CE178 48 00 DD 9D */ bl initiate__10JSUPtrListFv -/* 802CE17C 38 7A 00 0C */ addi r3, r26, 0xc -/* 802CE180 7F E4 FB 78 */ mr r4, r31 -/* 802CE184 48 00 DC 79 */ bl __ct__10JSUPtrLinkFPv -/* 802CE188 38 7F 00 5C */ addi r3, r31, 0x5c -/* 802CE18C 48 00 DD 89 */ bl initiate__10JSUPtrListFv -/* 802CE190 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802CE194 48 07 0E 75 */ bl OSInitMutex -/* 802CE198 93 9F 00 38 */ stw r28, 0x38(r31) -/* 802CE19C 93 7F 00 30 */ stw r27, 0x30(r31) -/* 802CE1A0 7C 1B E2 14 */ add r0, r27, r28 -/* 802CE1A4 90 1F 00 34 */ stw r0, 0x34(r31) -/* 802CE1A8 28 1D 00 00 */ cmplwi r29, 0 -/* 802CE1AC 40 82 00 18 */ bne lbl_802CE1C4 -/* 802CE1B0 7F E3 FB 78 */ mr r3, r31 -/* 802CE1B4 48 00 02 75 */ bl becomeSystemHeap__7JKRHeapFv -/* 802CE1B8 7F E3 FB 78 */ mr r3, r31 -/* 802CE1BC 48 00 02 7D */ bl becomeCurrentHeap__7JKRHeapFv -/* 802CE1C0 48 00 00 48 */ b lbl_802CE208 -lbl_802CE1C4: -/* 802CE1C4 34 9F 00 40 */ addic. r4, r31, 0x40 -/* 802CE1C8 41 82 00 08 */ beq lbl_802CE1D0 -/* 802CE1CC 38 84 00 0C */ addi r4, r4, 0xc -lbl_802CE1D0: -/* 802CE1D0 38 7D 00 40 */ addi r3, r29, 0x40 -/* 802CE1D4 48 00 DD 79 */ bl append__10JSUPtrListFP10JSUPtrLink -/* 802CE1D8 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802CE1DC 80 0D 8D F8 */ lwz r0, sRootHeap__7JKRHeap(r13) -/* 802CE1E0 7C 03 00 40 */ cmplw r3, r0 -/* 802CE1E4 40 82 00 0C */ bne lbl_802CE1F0 -/* 802CE1E8 7F E3 FB 78 */ mr r3, r31 -/* 802CE1EC 48 00 02 3D */ bl becomeSystemHeap__7JKRHeapFv -lbl_802CE1F0: -/* 802CE1F0 80 6D 8D F4 */ lwz r3, sCurrentHeap__7JKRHeap(r13) -/* 802CE1F4 80 0D 8D F8 */ lwz r0, sRootHeap__7JKRHeap(r13) -/* 802CE1F8 7C 03 00 40 */ cmplw r3, r0 -/* 802CE1FC 40 82 00 0C */ bne lbl_802CE208 -/* 802CE200 7F E3 FB 78 */ mr r3, r31 -/* 802CE204 48 00 02 35 */ bl becomeCurrentHeap__7JKRHeapFv -lbl_802CE208: -/* 802CE208 9B DF 00 68 */ stb r30, 0x68(r31) -/* 802CE20C 88 1F 00 68 */ lbz r0, 0x68(r31) -/* 802CE210 28 00 00 01 */ cmplwi r0, 1 -/* 802CE214 40 82 00 1C */ bne lbl_802CE230 -/* 802CE218 80 0D 8D FC */ lwz r0, mErrorHandler__7JKRHeap(r13) -/* 802CE21C 28 00 00 00 */ cmplwi r0, 0 -/* 802CE220 40 82 00 10 */ bne lbl_802CE230 -/* 802CE224 3C 60 80 2D */ lis r3, JKRDefaultMemoryErrorRoutine__FPvUli@ha /* 0x802CEB40@ha */ -/* 802CE228 38 03 EB 40 */ addi r0, r3, JKRDefaultMemoryErrorRoutine__FPvUli@l /* 0x802CEB40@l */ -/* 802CE22C 90 0D 8D FC */ stw r0, mErrorHandler__7JKRHeap(r13) -lbl_802CE230: -/* 802CE230 88 0D 83 30 */ lbz r0, data_804508B0(r13) -/* 802CE234 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802CE238 88 0D 8E 00 */ lbz r0, data_80451380(r13) -/* 802CE23C 98 1F 00 3D */ stb r0, 0x3d(r31) -/* 802CE240 38 00 00 00 */ li r0, 0 -/* 802CE244 98 1F 00 69 */ stb r0, 0x69(r31) -/* 802CE248 7F E3 FB 78 */ mr r3, r31 -/* 802CE24C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CE250 48 09 3F CD */ bl _restgpr_26 -/* 802CE254 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CE258 7C 08 03 A6 */ mtlr r0 -/* 802CE25C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CE260 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__dl__FPv.s b/asm/JSystem/JKernel/JKRHeap/__dl__FPv.s deleted file mode 100644 index 1985d61315..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__dl__FPv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802CED3C: -/* 802CED3C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CED40 7C 08 02 A6 */ mflr r0 -/* 802CED44 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CED48 38 80 00 00 */ li r4, 0 -/* 802CED4C 4B FF F7 B5 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802CED50 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CED54 7C 08 03 A6 */ mtlr r0 -/* 802CED58 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CED5C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__dla__FPv.s b/asm/JSystem/JKernel/JKRHeap/__dla__FPv.s deleted file mode 100644 index 8d7812374b..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__dla__FPv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802CED60: -/* 802CED60 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CED64 7C 08 02 A6 */ mflr r0 -/* 802CED68 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CED6C 38 80 00 00 */ li r4, 0 -/* 802CED70 4B FF F7 91 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802CED74 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CED78 7C 08 03 A6 */ mtlr r0 -/* 802CED7C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CED80 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__nw__FUl.s b/asm/JSystem/JKernel/JKRHeap/__nw__FUl.s deleted file mode 100644 index e5ef65ad5a..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__nw__FUl.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802CEC4C: -/* 802CEC4C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CEC50 7C 08 02 A6 */ mflr r0 -/* 802CEC54 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CEC58 38 80 00 04 */ li r4, 4 -/* 802CEC5C 38 A0 00 00 */ li r5, 0 -/* 802CEC60 4B FF F8 15 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802CEC64 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CEC68 7C 08 03 A6 */ mtlr r0 -/* 802CEC6C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CEC70 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__nw__FUlP7JKRHeapi.s b/asm/JSystem/JKernel/JKRHeap/__nw__FUlP7JKRHeapi.s deleted file mode 100644 index e2eadea96c..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__nw__FUlP7JKRHeapi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CEC98: -/* 802CEC98 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CEC9C 7C 08 02 A6 */ mflr r0 -/* 802CECA0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CECA4 7C 80 23 78 */ mr r0, r4 -/* 802CECA8 7C A4 2B 78 */ mr r4, r5 -/* 802CECAC 7C 05 03 78 */ mr r5, r0 -/* 802CECB0 4B FF F7 C5 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802CECB4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CECB8 7C 08 03 A6 */ mtlr r0 -/* 802CECBC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CECC0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__nw__FUli.s b/asm/JSystem/JKernel/JKRHeap/__nw__FUli.s deleted file mode 100644 index 364c79417a..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__nw__FUli.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802CEC74: -/* 802CEC74 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CEC78 7C 08 02 A6 */ mflr r0 -/* 802CEC7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CEC80 38 A0 00 00 */ li r5, 0 -/* 802CEC84 4B FF F7 F1 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802CEC88 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CEC8C 7C 08 03 A6 */ mtlr r0 -/* 802CEC90 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CEC94 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__nwa__FUl.s b/asm/JSystem/JKernel/JKRHeap/__nwa__FUl.s deleted file mode 100644 index 810329c21e..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__nwa__FUl.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802CECC4: -/* 802CECC4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CECC8 7C 08 02 A6 */ mflr r0 -/* 802CECCC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CECD0 38 80 00 04 */ li r4, 4 -/* 802CECD4 38 A0 00 00 */ li r5, 0 -/* 802CECD8 4B FF F7 9D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802CECDC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CECE0 7C 08 03 A6 */ mtlr r0 -/* 802CECE4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CECE8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__nwa__FUlP7JKRHeapi.s b/asm/JSystem/JKernel/JKRHeap/__nwa__FUlP7JKRHeapi.s deleted file mode 100644 index e83541e2b1..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__nwa__FUlP7JKRHeapi.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CED10: -/* 802CED10 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CED14 7C 08 02 A6 */ mflr r0 -/* 802CED18 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CED1C 7C 80 23 78 */ mr r0, r4 -/* 802CED20 7C A4 2B 78 */ mr r4, r5 -/* 802CED24 7C 05 03 78 */ mr r5, r0 -/* 802CED28 4B FF F7 4D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802CED2C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CED30 7C 08 03 A6 */ mtlr r0 -/* 802CED34 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CED38 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__nwa__FUli.s b/asm/JSystem/JKernel/JKRHeap/__nwa__FUli.s deleted file mode 100644 index 69d87cc81b..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__nwa__FUli.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802CECEC: -/* 802CECEC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CECF0 7C 08 02 A6 */ mflr r0 -/* 802CECF4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CECF8 38 A0 00 00 */ li r5, 0 -/* 802CECFC 4B FF F7 79 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802CED00 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CED04 7C 08 03 A6 */ mtlr r0 -/* 802CED08 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CED0C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/alloc__7JKRHeapFUli.s b/asm/JSystem/JKernel/JKRHeap/alloc__7JKRHeapFUli.s deleted file mode 100644 index 5e7bf3c35c..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/alloc__7JKRHeapFUli.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE4D4: -/* 802CE4D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE4D8 7C 08 02 A6 */ mflr r0 -/* 802CE4DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE4E0 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE4E4 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 802CE4E8 7D 89 03 A6 */ mtctr r12 -/* 802CE4EC 4E 80 04 21 */ bctrl -/* 802CE4F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE4F4 7C 08 03 A6 */ mtlr r0 -/* 802CE4F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE4FC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/alloc__7JKRHeapFUliP7JKRHeap.s b/asm/JSystem/JKernel/JKRHeap/alloc__7JKRHeapFUliP7JKRHeap.s deleted file mode 100644 index 7292580d02..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/alloc__7JKRHeapFUliP7JKRHeap.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_802CE474: -/* 802CE474 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE478 7C 08 02 A6 */ mflr r0 -/* 802CE47C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE480 7C 66 1B 78 */ mr r6, r3 -/* 802CE484 7C 80 23 78 */ mr r0, r4 -/* 802CE488 28 05 00 00 */ cmplwi r5, 0 -/* 802CE48C 41 82 00 18 */ beq lbl_802CE4A4 -/* 802CE490 7C A3 2B 78 */ mr r3, r5 -/* 802CE494 7C C4 33 78 */ mr r4, r6 -/* 802CE498 7C 05 03 78 */ mr r5, r0 -/* 802CE49C 48 00 00 39 */ bl alloc__7JKRHeapFUli -/* 802CE4A0 48 00 00 24 */ b lbl_802CE4C4 -lbl_802CE4A4: -/* 802CE4A4 80 6D 8D F4 */ lwz r3, sCurrentHeap__7JKRHeap(r13) -/* 802CE4A8 28 03 00 00 */ cmplwi r3, 0 -/* 802CE4AC 41 82 00 14 */ beq lbl_802CE4C0 -/* 802CE4B0 7C C4 33 78 */ mr r4, r6 -/* 802CE4B4 7C 05 03 78 */ mr r5, r0 -/* 802CE4B8 48 00 00 1D */ bl alloc__7JKRHeapFUli -/* 802CE4BC 48 00 00 08 */ b lbl_802CE4C4 -lbl_802CE4C0: -/* 802CE4C0 38 60 00 00 */ li r3, 0 -lbl_802CE4C4: -/* 802CE4C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE4C8 7C 08 03 A6 */ mtlr r0 -/* 802CE4CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE4D0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/becomeCurrentHeap__7JKRHeapFv.s b/asm/JSystem/JKernel/JKRHeap/becomeCurrentHeap__7JKRHeapFv.s deleted file mode 100644 index 4644bd343b..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/becomeCurrentHeap__7JKRHeapFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_802CE438: -/* 802CE438 80 0D 8D F4 */ lwz r0, sCurrentHeap__7JKRHeap(r13) -/* 802CE43C 90 6D 8D F4 */ stw r3, sCurrentHeap__7JKRHeap(r13) -/* 802CE440 7C 03 03 78 */ mr r3, r0 -/* 802CE444 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/becomeSystemHeap__7JKRHeapFv.s b/asm/JSystem/JKernel/JKRHeap/becomeSystemHeap__7JKRHeapFv.s deleted file mode 100644 index 2c49f0a925..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/becomeSystemHeap__7JKRHeapFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_802CE428: -/* 802CE428 80 0D 8D F0 */ lwz r0, sSystemHeap__7JKRHeap(r13) -/* 802CE42C 90 6D 8D F0 */ stw r3, sSystemHeap__7JKRHeap(r13) -/* 802CE430 7C 03 03 78 */ mr r3, r0 -/* 802CE434 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/changeGroupID__7JKRHeapFUc.s b/asm/JSystem/JKernel/JKRHeap/changeGroupID__7JKRHeapFUc.s deleted file mode 100644 index 5d237d71b3..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/changeGroupID__7JKRHeapFUc.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE7B0: -/* 802CE7B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE7B4 7C 08 02 A6 */ mflr r0 -/* 802CE7B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE7BC 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE7C0 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802CE7C4 7D 89 03 A6 */ mtctr r12 -/* 802CE7C8 4E 80 04 21 */ bctrl -/* 802CE7CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE7D0 7C 08 03 A6 */ mtlr r0 -/* 802CE7D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE7D8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/copyMemory__7JKRHeapFPvPvUl.s b/asm/JSystem/JKernel/JKRHeap/copyMemory__7JKRHeapFPvPvUl.s deleted file mode 100644 index dbb8087ca3..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/copyMemory__7JKRHeapFPvPvUl.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CEB18: -/* 802CEB18 38 05 00 03 */ addi r0, r5, 3 -/* 802CEB1C 54 00 F0 BF */ rlwinm. r0, r0, 0x1e, 2, 0x1f -/* 802CEB20 7C 09 03 A6 */ mtctr r0 -/* 802CEB24 4D 82 00 20 */ beqlr -lbl_802CEB28: -/* 802CEB28 80 04 00 00 */ lwz r0, 0(r4) -/* 802CEB2C 90 03 00 00 */ stw r0, 0(r3) -/* 802CEB30 38 63 00 04 */ addi r3, r3, 4 -/* 802CEB34 38 84 00 04 */ addi r4, r4, 4 -/* 802CEB38 42 00 FF F0 */ bdnz lbl_802CEB28 -/* 802CEB3C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/destroy__7JKRHeapFv.s b/asm/JSystem/JKernel/JKRHeap/destroy__7JKRHeapFv.s deleted file mode 100644 index 8ad1d48cde..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/destroy__7JKRHeapFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE448: -/* 802CE448 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE44C 7C 08 02 A6 */ mflr r0 -/* 802CE450 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE454 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE458 81 8C 00 20 */ lwz r12, 0x20(r12) -/* 802CE45C 7D 89 03 A6 */ mtctr r12 -/* 802CE460 4E 80 04 21 */ bctrl -/* 802CE464 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE468 7C 08 03 A6 */ mtlr r0 -/* 802CE46C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE470 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/dispose__7JKRHeapFPvPv.s b/asm/JSystem/JKernel/JKRHeap/dispose__7JKRHeapFPvPv.s deleted file mode 100644 index b269259093..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/dispose__7JKRHeapFPvPv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_802CEAA0: -/* 802CEAA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CEAA4 7C 08 02 A6 */ mflr r0 -/* 802CEAA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CEAAC 4B FF FF 39 */ bl dispose_subroutine__7JKRHeapFUlUl -/* 802CEAB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CEAB4 7C 08 03 A6 */ mtlr r0 -/* 802CEAB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CEABC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/dispose__7JKRHeapFPvUl.s b/asm/JSystem/JKernel/JKRHeap/dispose__7JKRHeapFPvUl.s deleted file mode 100644 index f644051733..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/dispose__7JKRHeapFPvUl.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802CEA78: -/* 802CEA78 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CEA7C 7C 08 02 A6 */ mflr r0 -/* 802CEA80 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CEA84 7C A4 2A 14 */ add r5, r4, r5 -/* 802CEA88 4B FF FF 5D */ bl dispose_subroutine__7JKRHeapFUlUl -/* 802CEA8C 38 60 00 00 */ li r3, 0 -/* 802CEA90 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CEA94 7C 08 03 A6 */ mtlr r0 -/* 802CEA98 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CEA9C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/dispose_subroutine__7JKRHeapFUlUl.s b/asm/JSystem/JKernel/JKRHeap/dispose_subroutine__7JKRHeapFUlUl.s deleted file mode 100644 index 7fa87c3865..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/dispose_subroutine__7JKRHeapFUlUl.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_802CE9E4: -/* 802CE9E4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CE9E8 7C 08 02 A6 */ mflr r0 -/* 802CE9EC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CE9F0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CE9F4 48 09 37 E5 */ bl _savegpr_28 -/* 802CE9F8 7C 7C 1B 78 */ mr r28, r3 -/* 802CE9FC 7C 9D 23 78 */ mr r29, r4 -/* 802CEA00 7C BE 2B 78 */ mr r30, r5 -/* 802CEA04 3B E0 00 00 */ li r31, 0 -/* 802CEA08 80 83 00 5C */ lwz r4, 0x5c(r3) -/* 802CEA0C 48 00 00 4C */ b lbl_802CEA58 -lbl_802CEA10: -/* 802CEA10 80 64 00 00 */ lwz r3, 0(r4) -/* 802CEA14 7C 1D 18 40 */ cmplw r29, r3 -/* 802CEA18 41 81 00 38 */ bgt lbl_802CEA50 -/* 802CEA1C 7C 03 F0 40 */ cmplw r3, r30 -/* 802CEA20 40 80 00 30 */ bge lbl_802CEA50 -/* 802CEA24 38 80 FF FF */ li r4, -1 -/* 802CEA28 81 83 00 00 */ lwz r12, 0(r3) -/* 802CEA2C 81 8C 00 08 */ lwz r12, 8(r12) -/* 802CEA30 7D 89 03 A6 */ mtctr r12 -/* 802CEA34 4E 80 04 21 */ bctrl -/* 802CEA38 28 1F 00 00 */ cmplwi r31, 0 -/* 802CEA3C 40 82 00 0C */ bne lbl_802CEA48 -/* 802CEA40 80 9C 00 5C */ lwz r4, 0x5c(r28) -/* 802CEA44 48 00 00 14 */ b lbl_802CEA58 -lbl_802CEA48: -/* 802CEA48 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 802CEA4C 48 00 00 0C */ b lbl_802CEA58 -lbl_802CEA50: -/* 802CEA50 7C 9F 23 78 */ mr r31, r4 -/* 802CEA54 80 84 00 0C */ lwz r4, 0xc(r4) -lbl_802CEA58: -/* 802CEA58 28 04 00 00 */ cmplwi r4, 0 -/* 802CEA5C 40 82 FF B4 */ bne lbl_802CEA10 -/* 802CEA60 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CEA64 48 09 37 C1 */ bl _restgpr_28 -/* 802CEA68 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CEA6C 7C 08 03 A6 */ mtlr r0 -/* 802CEA70 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CEA74 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/findAllHeap__7JKRHeapCFPv.s b/asm/JSystem/JKernel/JKRHeap/findAllHeap__7JKRHeapCFPv.s deleted file mode 100644 index cdb668f99a..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/findAllHeap__7JKRHeapCFPv.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_802CE93C: -/* 802CE93C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CE940 7C 08 02 A6 */ mflr r0 -/* 802CE944 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CE948 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CE94C 48 09 38 91 */ bl _savegpr_29 -/* 802CE950 7C 7D 1B 78 */ mr r29, r3 -/* 802CE954 7C 9E 23 78 */ mr r30, r4 -/* 802CE958 80 03 00 48 */ lwz r0, 0x48(r3) -/* 802CE95C 28 00 00 00 */ cmplwi r0, 0 -/* 802CE960 41 82 00 48 */ beq lbl_802CE9A8 -/* 802CE964 83 FD 00 40 */ lwz r31, 0x40(r29) -/* 802CE968 28 1F 00 00 */ cmplwi r31, 0 -/* 802CE96C 41 82 00 34 */ beq lbl_802CE9A0 -/* 802CE970 3B FF FF F4 */ addi r31, r31, -12 -/* 802CE974 48 00 00 2C */ b lbl_802CE9A0 -lbl_802CE978: -/* 802CE978 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 802CE97C 7F C4 F3 78 */ mr r4, r30 -/* 802CE980 4B FF FF BD */ bl findAllHeap__7JKRHeapCFPv -/* 802CE984 28 03 00 00 */ cmplwi r3, 0 -/* 802CE988 41 82 00 08 */ beq lbl_802CE990 -/* 802CE98C 48 00 00 40 */ b lbl_802CE9CC -lbl_802CE990: -/* 802CE990 83 FF 00 18 */ lwz r31, 0x18(r31) -/* 802CE994 28 1F 00 00 */ cmplwi r31, 0 -/* 802CE998 41 82 00 08 */ beq lbl_802CE9A0 -/* 802CE99C 3B FF FF F4 */ addi r31, r31, -12 -lbl_802CE9A0: -/* 802CE9A0 28 1F 00 00 */ cmplwi r31, 0 -/* 802CE9A4 40 82 FF D4 */ bne lbl_802CE978 -lbl_802CE9A8: -/* 802CE9A8 80 1D 00 30 */ lwz r0, 0x30(r29) -/* 802CE9AC 7C 00 F0 40 */ cmplw r0, r30 -/* 802CE9B0 41 81 00 18 */ bgt lbl_802CE9C8 -/* 802CE9B4 80 1D 00 34 */ lwz r0, 0x34(r29) -/* 802CE9B8 7C 1E 00 40 */ cmplw r30, r0 -/* 802CE9BC 40 80 00 0C */ bge lbl_802CE9C8 -/* 802CE9C0 7F A3 EB 78 */ mr r3, r29 -/* 802CE9C4 48 00 00 08 */ b lbl_802CE9CC -lbl_802CE9C8: -/* 802CE9C8 38 60 00 00 */ li r3, 0 -lbl_802CE9CC: -/* 802CE9CC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CE9D0 48 09 38 59 */ bl _restgpr_29 -/* 802CE9D4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CE9D8 7C 08 03 A6 */ mtlr r0 -/* 802CE9DC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CE9E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/findFromRoot__7JKRHeapFPv.s b/asm/JSystem/JKernel/JKRHeap/findFromRoot__7JKRHeapFPv.s deleted file mode 100644 index 197898b751..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/findFromRoot__7JKRHeapFPv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802CE83C: -/* 802CE83C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE840 7C 08 02 A6 */ mflr r0 -/* 802CE844 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE848 7C 64 1B 78 */ mr r4, r3 -/* 802CE84C 80 6D 8D F8 */ lwz r3, sRootHeap__7JKRHeap(r13) -/* 802CE850 28 03 00 00 */ cmplwi r3, 0 -/* 802CE854 40 82 00 0C */ bne lbl_802CE860 -/* 802CE858 38 60 00 00 */ li r3, 0 -/* 802CE85C 48 00 00 28 */ b lbl_802CE884 -lbl_802CE860: -/* 802CE860 80 03 00 30 */ lwz r0, 0x30(r3) -/* 802CE864 7C 00 20 40 */ cmplw r0, r4 -/* 802CE868 41 81 00 18 */ bgt lbl_802CE880 -/* 802CE86C 80 03 00 34 */ lwz r0, 0x34(r3) -/* 802CE870 7C 04 00 40 */ cmplw r4, r0 -/* 802CE874 40 80 00 0C */ bge lbl_802CE880 -/* 802CE878 48 00 00 1D */ bl find__7JKRHeapCFPv -/* 802CE87C 48 00 00 08 */ b lbl_802CE884 -lbl_802CE880: -/* 802CE880 48 00 00 BD */ bl findAllHeap__7JKRHeapCFPv -lbl_802CE884: -/* 802CE884 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE888 7C 08 03 A6 */ mtlr r0 -/* 802CE88C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE890 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/find__7JKRHeapCFPv.s b/asm/JSystem/JKernel/JKRHeap/find__7JKRHeapCFPv.s deleted file mode 100644 index 9f75501790..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/find__7JKRHeapCFPv.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_802CE894: -/* 802CE894 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CE898 7C 08 02 A6 */ mflr r0 -/* 802CE89C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CE8A0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CE8A4 48 09 39 39 */ bl _savegpr_29 -/* 802CE8A8 7C 7D 1B 78 */ mr r29, r3 -/* 802CE8AC 7C 9E 23 78 */ mr r30, r4 -/* 802CE8B0 80 03 00 30 */ lwz r0, 0x30(r3) -/* 802CE8B4 7C 00 F0 40 */ cmplw r0, r30 -/* 802CE8B8 41 81 00 68 */ bgt lbl_802CE920 -/* 802CE8BC 80 1D 00 34 */ lwz r0, 0x34(r29) -/* 802CE8C0 7C 1E 00 40 */ cmplw r30, r0 -/* 802CE8C4 40 80 00 5C */ bge lbl_802CE920 -/* 802CE8C8 80 1D 00 48 */ lwz r0, 0x48(r29) -/* 802CE8CC 28 00 00 00 */ cmplwi r0, 0 -/* 802CE8D0 41 82 00 48 */ beq lbl_802CE918 -/* 802CE8D4 83 FD 00 40 */ lwz r31, 0x40(r29) -/* 802CE8D8 28 1F 00 00 */ cmplwi r31, 0 -/* 802CE8DC 41 82 00 34 */ beq lbl_802CE910 -/* 802CE8E0 3B FF FF F4 */ addi r31, r31, -12 -/* 802CE8E4 48 00 00 2C */ b lbl_802CE910 -lbl_802CE8E8: -/* 802CE8E8 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 802CE8EC 7F C4 F3 78 */ mr r4, r30 -/* 802CE8F0 4B FF FF A5 */ bl find__7JKRHeapCFPv -/* 802CE8F4 28 03 00 00 */ cmplwi r3, 0 -/* 802CE8F8 41 82 00 08 */ beq lbl_802CE900 -/* 802CE8FC 48 00 00 28 */ b lbl_802CE924 -lbl_802CE900: -/* 802CE900 83 FF 00 18 */ lwz r31, 0x18(r31) -/* 802CE904 28 1F 00 00 */ cmplwi r31, 0 -/* 802CE908 41 82 00 08 */ beq lbl_802CE910 -/* 802CE90C 3B FF FF F4 */ addi r31, r31, -12 -lbl_802CE910: -/* 802CE910 28 1F 00 00 */ cmplwi r31, 0 -/* 802CE914 40 82 FF D4 */ bne lbl_802CE8E8 -lbl_802CE918: -/* 802CE918 7F A3 EB 78 */ mr r3, r29 -/* 802CE91C 48 00 00 08 */ b lbl_802CE924 -lbl_802CE920: -/* 802CE920 38 60 00 00 */ li r3, 0 -lbl_802CE924: -/* 802CE924 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CE928 48 09 39 01 */ bl _restgpr_29 -/* 802CE92C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CE930 7C 08 03 A6 */ mtlr r0 -/* 802CE934 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CE938 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/freeAll__7JKRHeapFv.s b/asm/JSystem/JKernel/JKRHeap/freeAll__7JKRHeapFv.s deleted file mode 100644 index 8724ae35aa..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/freeAll__7JKRHeapFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE5CC: -/* 802CE5CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE5D0 7C 08 02 A6 */ mflr r0 -/* 802CE5D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE5D8 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE5DC 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 802CE5E0 7D 89 03 A6 */ mtctr r12 -/* 802CE5E4 4E 80 04 21 */ bctrl -/* 802CE5E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE5EC 7C 08 03 A6 */ mtlr r0 -/* 802CE5F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE5F4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/freeTail__7JKRHeapFv.s b/asm/JSystem/JKernel/JKRHeap/freeTail__7JKRHeapFv.s deleted file mode 100644 index 54f0695b96..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/freeTail__7JKRHeapFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE5F8: -/* 802CE5F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE5FC 7C 08 02 A6 */ mflr r0 -/* 802CE600 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE604 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE608 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802CE60C 7D 89 03 A6 */ mtctr r12 -/* 802CE610 4E 80 04 21 */ bctrl -/* 802CE614 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE618 7C 08 03 A6 */ mtlr r0 -/* 802CE61C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE620 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/free__7JKRHeapFPv.s b/asm/JSystem/JKernel/JKRHeap/free__7JKRHeapFPv.s deleted file mode 100644 index b9e415873f..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/free__7JKRHeapFPv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE548: -/* 802CE548 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE54C 7C 08 02 A6 */ mflr r0 -/* 802CE550 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE554 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE558 81 8C 00 28 */ lwz r12, 0x28(r12) -/* 802CE55C 7D 89 03 A6 */ mtctr r12 -/* 802CE560 4E 80 04 21 */ bctrl -/* 802CE564 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE568 7C 08 03 A6 */ mtlr r0 -/* 802CE56C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE570 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/free__7JKRHeapFPvP7JKRHeap.s b/asm/JSystem/JKernel/JKRHeap/free__7JKRHeapFPvP7JKRHeap.s deleted file mode 100644 index 388008e8af..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/free__7JKRHeapFPvP7JKRHeap.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_802CE500: -/* 802CE500 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE504 7C 08 02 A6 */ mflr r0 -/* 802CE508 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE50C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802CE510 7C 7F 1B 78 */ mr r31, r3 -/* 802CE514 28 04 00 00 */ cmplwi r4, 0 -/* 802CE518 40 82 00 10 */ bne lbl_802CE528 -/* 802CE51C 48 00 03 21 */ bl findFromRoot__7JKRHeapFPv -/* 802CE520 7C 64 1B 79 */ or. r4, r3, r3 -/* 802CE524 41 82 00 10 */ beq lbl_802CE534 -lbl_802CE528: -/* 802CE528 7C 83 23 78 */ mr r3, r4 -/* 802CE52C 7F E4 FB 78 */ mr r4, r31 -/* 802CE530 48 00 00 19 */ bl free__7JKRHeapFPv -lbl_802CE534: -/* 802CE534 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802CE538 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE53C 7C 08 03 A6 */ mtlr r0 -/* 802CE540 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE544 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/getFreeSize__7JKRHeapFv.s b/asm/JSystem/JKernel/JKRHeap/getFreeSize__7JKRHeapFv.s deleted file mode 100644 index 0c719e3d44..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/getFreeSize__7JKRHeapFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE72C: -/* 802CE72C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE730 7C 08 02 A6 */ mflr r0 -/* 802CE734 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE738 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE73C 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802CE740 7D 89 03 A6 */ mtctr r12 -/* 802CE744 4E 80 04 21 */ bctrl -/* 802CE748 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE74C 7C 08 03 A6 */ mtlr r0 -/* 802CE750 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE754 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/getMaxFreeBlock__7JKRHeapFv.s b/asm/JSystem/JKernel/JKRHeap/getMaxFreeBlock__7JKRHeapFv.s deleted file mode 100644 index 1d4d6313cb..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/getMaxFreeBlock__7JKRHeapFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE758: -/* 802CE758 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE75C 7C 08 02 A6 */ mflr r0 -/* 802CE760 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE764 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE768 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802CE76C 7D 89 03 A6 */ mtctr r12 -/* 802CE770 4E 80 04 21 */ bctrl -/* 802CE774 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE778 7C 08 03 A6 */ mtlr r0 -/* 802CE77C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE780 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/getSize__7JKRHeapFPv.s b/asm/JSystem/JKernel/JKRHeap/getSize__7JKRHeapFPv.s deleted file mode 100644 index 3c3fc1da88..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/getSize__7JKRHeapFPv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE700: -/* 802CE700 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE704 7C 08 02 A6 */ mflr r0 -/* 802CE708 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE70C 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE710 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 802CE714 7D 89 03 A6 */ mtctr r12 -/* 802CE718 4E 80 04 21 */ bctrl -/* 802CE71C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE720 7C 08 03 A6 */ mtlr r0 -/* 802CE724 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE728 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/getSize__7JKRHeapFPvP7JKRHeap.s b/asm/JSystem/JKernel/JKRHeap/getSize__7JKRHeapFPvP7JKRHeap.s deleted file mode 100644 index f40339259f..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/getSize__7JKRHeapFPvP7JKRHeap.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802CE6B0: -/* 802CE6B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE6B4 7C 08 02 A6 */ mflr r0 -/* 802CE6B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE6BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802CE6C0 7C 7F 1B 78 */ mr r31, r3 -/* 802CE6C4 28 04 00 00 */ cmplwi r4, 0 -/* 802CE6C8 40 82 00 18 */ bne lbl_802CE6E0 -/* 802CE6CC 48 00 01 71 */ bl findFromRoot__7JKRHeapFPv -/* 802CE6D0 7C 64 1B 79 */ or. r4, r3, r3 -/* 802CE6D4 40 82 00 0C */ bne lbl_802CE6E0 -/* 802CE6D8 38 60 FF FF */ li r3, -1 -/* 802CE6DC 48 00 00 10 */ b lbl_802CE6EC -lbl_802CE6E0: -/* 802CE6E0 7C 83 23 78 */ mr r3, r4 -/* 802CE6E4 7F E4 FB 78 */ mr r4, r31 -/* 802CE6E8 48 00 00 19 */ bl getSize__7JKRHeapFPv -lbl_802CE6EC: -/* 802CE6EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802CE6F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE6F4 7C 08 03 A6 */ mtlr r0 -/* 802CE6F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE6FC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/getTotalFreeSize__7JKRHeapFv.s b/asm/JSystem/JKernel/JKRHeap/getTotalFreeSize__7JKRHeapFv.s deleted file mode 100644 index 2ae8cf05c8..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/getTotalFreeSize__7JKRHeapFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE784: -/* 802CE784 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE788 7C 08 02 A6 */ mflr r0 -/* 802CE78C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE790 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE794 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802CE798 7D 89 03 A6 */ mtctr r12 -/* 802CE79C 4E 80 04 21 */ bctrl -/* 802CE7A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE7A4 7C 08 03 A6 */ mtlr r0 -/* 802CE7A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE7AC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/initArena__7JKRHeapFPPcPUli.s b/asm/JSystem/JKernel/JKRHeap/initArena__7JKRHeapFPPcPUli.s deleted file mode 100644 index ce81ee8afe..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/initArena__7JKRHeapFPPcPUli.s +++ /dev/null @@ -1,47 +0,0 @@ -lbl_802CE378: -/* 802CE378 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CE37C 7C 08 02 A6 */ mflr r0 -/* 802CE380 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CE384 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CE388 48 09 3E 4D */ bl _savegpr_27 -/* 802CE38C 7C 7B 1B 78 */ mr r27, r3 -/* 802CE390 7C 9C 23 78 */ mr r28, r4 -/* 802CE394 7C BF 2B 78 */ mr r31, r5 -/* 802CE398 48 06 CE FD */ bl OSGetArenaLo -/* 802CE39C 7C 7E 1B 78 */ mr r30, r3 -/* 802CE3A0 48 06 CE ED */ bl OSGetArenaHi -/* 802CE3A4 7C 7D 1B 78 */ mr r29, r3 -/* 802CE3A8 7C 1E E8 40 */ cmplw r30, r29 -/* 802CE3AC 40 82 00 0C */ bne lbl_802CE3B8 -/* 802CE3B0 38 60 00 00 */ li r3, 0 -/* 802CE3B4 48 00 00 5C */ b lbl_802CE410 -lbl_802CE3B8: -/* 802CE3B8 7F C3 F3 78 */ mr r3, r30 -/* 802CE3BC 7F A4 EB 78 */ mr r4, r29 -/* 802CE3C0 7F E5 FB 78 */ mr r5, r31 -/* 802CE3C4 48 06 CD ED */ bl OSInitAlloc -/* 802CE3C8 38 03 00 1F */ addi r0, r3, 0x1f -/* 802CE3CC 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a -/* 802CE3D0 57 BE 00 34 */ rlwinm r30, r29, 0, 0, 0x1a -/* 802CE3D4 3C 60 80 00 */ lis r3, 0x8000 /* 0x80000028@ha */ -/* 802CE3D8 90 6D 8E 04 */ stw r3, mCodeStart__7JKRHeap(r13) -/* 802CE3DC 93 ED 8E 08 */ stw r31, mCodeEnd__7JKRHeap(r13) -/* 802CE3E0 93 ED 8E 0C */ stw r31, mUserRamStart__7JKRHeap(r13) -/* 802CE3E4 93 CD 8E 10 */ stw r30, mUserRamEnd__7JKRHeap(r13) -/* 802CE3E8 80 03 00 28 */ lwz r0, 0x0028(r3) /* 0x80000028@l */ -/* 802CE3EC 90 0D 8E 14 */ stw r0, mMemorySize__7JKRHeap(r13) -/* 802CE3F0 7F C3 F3 78 */ mr r3, r30 -/* 802CE3F4 48 06 CE B1 */ bl OSSetArenaLo -/* 802CE3F8 7F C3 F3 78 */ mr r3, r30 -/* 802CE3FC 48 06 CE A1 */ bl OSSetArenaHi -/* 802CE400 93 FB 00 00 */ stw r31, 0(r27) -/* 802CE404 7C 1F F0 50 */ subf r0, r31, r30 -/* 802CE408 90 1C 00 00 */ stw r0, 0(r28) -/* 802CE40C 38 60 00 01 */ li r3, 1 -lbl_802CE410: -/* 802CE410 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CE414 48 09 3E 0D */ bl _restgpr_27 -/* 802CE418 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CE41C 7C 08 03 A6 */ mtlr r0 -/* 802CE420 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CE424 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/isSubHeap__7JKRHeapCFP7JKRHeap.s b/asm/JSystem/JKernel/JKRHeap/isSubHeap__7JKRHeapCFP7JKRHeap.s deleted file mode 100644 index d030845dec..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/isSubHeap__7JKRHeapCFP7JKRHeap.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_802CEBA8: -/* 802CEBA8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CEBAC 7C 08 02 A6 */ mflr r0 -/* 802CEBB0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CEBB4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802CEBB8 93 C1 00 08 */ stw r30, 8(r1) -/* 802CEBBC 7C 9E 23 79 */ or. r30, r4, r4 -/* 802CEBC0 40 82 00 0C */ bne lbl_802CEBCC -/* 802CEBC4 38 60 00 00 */ li r3, 0 -/* 802CEBC8 48 00 00 6C */ b lbl_802CEC34 -lbl_802CEBCC: -/* 802CEBCC 80 03 00 48 */ lwz r0, 0x48(r3) -/* 802CEBD0 28 00 00 00 */ cmplwi r0, 0 -/* 802CEBD4 41 82 00 5C */ beq lbl_802CEC30 -/* 802CEBD8 83 E3 00 40 */ lwz r31, 0x40(r3) -/* 802CEBDC 28 1F 00 00 */ cmplwi r31, 0 -/* 802CEBE0 41 82 00 48 */ beq lbl_802CEC28 -/* 802CEBE4 3B FF FF F4 */ addi r31, r31, -12 -/* 802CEBE8 48 00 00 40 */ b lbl_802CEC28 -lbl_802CEBEC: -/* 802CEBEC 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 802CEBF0 7C 03 F0 40 */ cmplw r3, r30 -/* 802CEBF4 40 82 00 0C */ bne lbl_802CEC00 -/* 802CEBF8 38 60 00 01 */ li r3, 1 -/* 802CEBFC 48 00 00 38 */ b lbl_802CEC34 -lbl_802CEC00: -/* 802CEC00 7F C4 F3 78 */ mr r4, r30 -/* 802CEC04 4B FF FF A5 */ bl isSubHeap__7JKRHeapCFP7JKRHeap -/* 802CEC08 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802CEC0C 41 82 00 0C */ beq lbl_802CEC18 -/* 802CEC10 38 60 00 01 */ li r3, 1 -/* 802CEC14 48 00 00 20 */ b lbl_802CEC34 -lbl_802CEC18: -/* 802CEC18 83 FF 00 18 */ lwz r31, 0x18(r31) -/* 802CEC1C 28 1F 00 00 */ cmplwi r31, 0 -/* 802CEC20 41 82 00 08 */ beq lbl_802CEC28 -/* 802CEC24 3B FF FF F4 */ addi r31, r31, -12 -lbl_802CEC28: -/* 802CEC28 28 1F 00 00 */ cmplwi r31, 0 -/* 802CEC2C 40 82 FF C0 */ bne lbl_802CEBEC -lbl_802CEC30: -/* 802CEC30 38 60 00 00 */ li r3, 0 -lbl_802CEC34: -/* 802CEC34 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802CEC38 83 C1 00 08 */ lwz r30, 8(r1) -/* 802CEC3C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CEC40 7C 08 03 A6 */ mtlr r0 -/* 802CEC44 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CEC48 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/resize__7JKRHeapFPvUl.s b/asm/JSystem/JKernel/JKRHeap/resize__7JKRHeapFPvUl.s deleted file mode 100644 index b6c974f62b..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/resize__7JKRHeapFPvUl.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802CE684: -/* 802CE684 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE688 7C 08 02 A6 */ mflr r0 -/* 802CE68C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE690 81 83 00 00 */ lwz r12, 0(r3) -/* 802CE694 81 8C 00 38 */ lwz r12, 0x38(r12) -/* 802CE698 7D 89 03 A6 */ mtctr r12 -/* 802CE69C 4E 80 04 21 */ bctrl -/* 802CE6A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE6A4 7C 08 03 A6 */ mtlr r0 -/* 802CE6A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE6AC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/resize__7JKRHeapFPvUlP7JKRHeap.s b/asm/JSystem/JKernel/JKRHeap/resize__7JKRHeapFPvUlP7JKRHeap.s deleted file mode 100644 index 445483e7a8..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/resize__7JKRHeapFPvUlP7JKRHeap.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_802CE624: -/* 802CE624 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE628 7C 08 02 A6 */ mflr r0 -/* 802CE62C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE630 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802CE634 93 C1 00 08 */ stw r30, 8(r1) -/* 802CE638 7C 7E 1B 78 */ mr r30, r3 -/* 802CE63C 7C 9F 23 78 */ mr r31, r4 -/* 802CE640 28 05 00 00 */ cmplwi r5, 0 -/* 802CE644 40 82 00 18 */ bne lbl_802CE65C -/* 802CE648 48 00 01 F5 */ bl findFromRoot__7JKRHeapFPv -/* 802CE64C 7C 65 1B 79 */ or. r5, r3, r3 -/* 802CE650 40 82 00 0C */ bne lbl_802CE65C -/* 802CE654 38 60 FF FF */ li r3, -1 -/* 802CE658 48 00 00 14 */ b lbl_802CE66C -lbl_802CE65C: -/* 802CE65C 7C A3 2B 78 */ mr r3, r5 -/* 802CE660 7F C4 F3 78 */ mr r4, r30 -/* 802CE664 7F E5 FB 78 */ mr r5, r31 -/* 802CE668 48 00 00 1D */ bl resize__7JKRHeapFPvUl -lbl_802CE66C: -/* 802CE66C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802CE670 83 C1 00 08 */ lwz r30, 8(r1) -/* 802CE674 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE678 7C 08 03 A6 */ mtlr r0 -/* 802CE67C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE680 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/setErrorFlag__7JKRHeapFb.s b/asm/JSystem/JKernel/JKRHeap/setErrorFlag__7JKRHeapFb.s deleted file mode 100644 index ef44790821..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/setErrorFlag__7JKRHeapFb.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_802CEB78: -/* 802CEB78 88 03 00 68 */ lbz r0, 0x68(r3) -/* 802CEB7C 98 83 00 68 */ stb r4, 0x68(r3) -/* 802CEB80 7C 03 03 78 */ mr r3, r0 -/* 802CEB84 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/setErrorHandler__7JKRHeapFPFPvUli_v.s b/asm/JSystem/JKernel/JKRHeap/setErrorHandler__7JKRHeapFPFPvUli_v.s deleted file mode 100644 index d5eec946ac..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/setErrorHandler__7JKRHeapFPFPvUli_v.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802CEB88: -/* 802CEB88 80 0D 8D FC */ lwz r0, mErrorHandler__7JKRHeap(r13) -/* 802CEB8C 28 03 00 00 */ cmplwi r3, 0 -/* 802CEB90 40 82 00 0C */ bne lbl_802CEB9C -/* 802CEB94 3C 60 80 2D */ lis r3, JKRDefaultMemoryErrorRoutine__FPvUli@ha /* 0x802CEB40@ha */ -/* 802CEB98 38 63 EB 40 */ addi r3, r3, JKRDefaultMemoryErrorRoutine__FPvUli@l /* 0x802CEB40@l */ -lbl_802CEB9C: -/* 802CEB9C 90 6D 8D FC */ stw r3, mErrorHandler__7JKRHeap(r13) -/* 802CEBA0 7C 03 03 78 */ mr r3, r0 -/* 802CEBA4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState.s b/asm/JSystem/JKernel/JKRHeap/state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState.s deleted file mode 100644 index c9b6f65818..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_802CED88: -/* 802CED88 80 64 00 04 */ lwz r3, 4(r4) -/* 802CED8C 80 05 00 04 */ lwz r0, 4(r5) -/* 802CED90 7C 03 00 50 */ subf r0, r3, r0 -/* 802CED94 7C 00 00 34 */ cntlzw r0, r0 -/* 802CED98 54 03 D9 7E */ srwi r3, r0, 5 -/* 802CED9C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag.s b/asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag.s deleted file mode 100644 index 857d0f1e92..0000000000 --- a/asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_802D6A6C: -/* 802D6A6C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D6A70 7C 08 02 A6 */ mflr r0 -/* 802D6A74 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D6A78 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6A7C 48 08 B7 5D */ bl _savegpr_28 -/* 802D6A80 7C 7C 1B 78 */ mr r28, r3 -/* 802D6A84 7C 9D 23 78 */ mr r29, r4 -/* 802D6A88 7C BE 2B 78 */ mr r30, r5 -/* 802D6A8C 7C DF 33 78 */ mr r31, r6 -/* 802D6A90 38 A0 00 01 */ li r5, 1 -/* 802D6A94 4B FF F8 01 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode -/* 802D6A98 3C 60 80 3D */ lis r3, __vt__13JKRMemArchive@ha /* 0x803CC2D8@ha */ -/* 802D6A9C 38 03 C2 D8 */ addi r0, r3, __vt__13JKRMemArchive@l /* 0x803CC2D8@l */ -/* 802D6AA0 90 1C 00 00 */ stw r0, 0(r28) -/* 802D6AA4 38 00 00 00 */ li r0, 0 -/* 802D6AA8 98 1C 00 30 */ stb r0, 0x30(r28) -/* 802D6AAC 7F 83 E3 78 */ mr r3, r28 -/* 802D6AB0 7F A4 EB 78 */ mr r4, r29 -/* 802D6AB4 7F C5 F3 78 */ mr r5, r30 -/* 802D6AB8 7F E6 FB 78 */ mr r6, r31 -/* 802D6ABC 48 00 02 75 */ bl open__13JKRMemArchiveFPvUl15JKRMemBreakFlag -/* 802D6AC0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D6AC4 40 82 00 0C */ bne lbl_802D6AD0 -/* 802D6AC8 7F 83 E3 78 */ mr r3, r28 -/* 802D6ACC 48 00 00 40 */ b lbl_802D6B0C -lbl_802D6AD0: -/* 802D6AD0 3C 60 52 41 */ lis r3, 0x5241 /* 0x52415243@ha */ -/* 802D6AD4 38 03 52 43 */ addi r0, r3, 0x5243 /* 0x52415243@l */ -/* 802D6AD8 90 1C 00 2C */ stw r0, 0x2c(r28) -/* 802D6ADC 80 9C 00 54 */ lwz r4, 0x54(r28) -/* 802D6AE0 80 7C 00 48 */ lwz r3, 0x48(r28) -/* 802D6AE4 80 03 00 04 */ lwz r0, 4(r3) -/* 802D6AE8 7C 04 02 14 */ add r0, r4, r0 -/* 802D6AEC 90 1C 00 28 */ stw r0, 0x28(r28) -/* 802D6AF0 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D6AF4 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D6AF8 38 9C 00 18 */ addi r4, r28, 0x18 -/* 802D6AFC 48 00 54 F5 */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D6B00 38 00 00 01 */ li r0, 1 -/* 802D6B04 98 1C 00 30 */ stb r0, 0x30(r28) -/* 802D6B08 7F 83 E3 78 */ mr r3, r28 -lbl_802D6B0C: -/* 802D6B0C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6B10 48 08 B7 15 */ bl _restgpr_28 -/* 802D6B14 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6B18 7C 08 03 A6 */ mtlr r0 -/* 802D6B1C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6B20 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection.s b/asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection.s deleted file mode 100644 index 38a9c48485..0000000000 --- a/asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_802D69B8: -/* 802D69B8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D69BC 7C 08 02 A6 */ mflr r0 -/* 802D69C0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D69C4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D69C8 48 08 B8 15 */ bl _savegpr_29 -/* 802D69CC 7C 7D 1B 78 */ mr r29, r3 -/* 802D69D0 7C 9E 23 78 */ mr r30, r4 -/* 802D69D4 7C BF 2B 78 */ mr r31, r5 -/* 802D69D8 38 A0 00 01 */ li r5, 1 -/* 802D69DC 4B FF F8 B9 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode -/* 802D69E0 3C 60 80 3D */ lis r3, __vt__13JKRMemArchive@ha /* 0x803CC2D8@ha */ -/* 802D69E4 38 03 C2 D8 */ addi r0, r3, __vt__13JKRMemArchive@l /* 0x803CC2D8@l */ -/* 802D69E8 90 1D 00 00 */ stw r0, 0(r29) -/* 802D69EC 38 00 00 00 */ li r0, 0 -/* 802D69F0 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D69F4 93 FD 00 60 */ stw r31, 0x60(r29) -/* 802D69F8 7F A3 EB 78 */ mr r3, r29 -/* 802D69FC 7F C4 F3 78 */ mr r4, r30 -/* 802D6A00 80 BD 00 60 */ lwz r5, 0x60(r29) -/* 802D6A04 48 00 01 C9 */ bl open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection -/* 802D6A08 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D6A0C 40 82 00 0C */ bne lbl_802D6A18 -/* 802D6A10 7F A3 EB 78 */ mr r3, r29 -/* 802D6A14 48 00 00 40 */ b lbl_802D6A54 -lbl_802D6A18: -/* 802D6A18 3C 60 52 41 */ lis r3, 0x5241 /* 0x52415243@ha */ -/* 802D6A1C 38 03 52 43 */ addi r0, r3, 0x5243 /* 0x52415243@l */ -/* 802D6A20 90 1D 00 2C */ stw r0, 0x2c(r29) -/* 802D6A24 80 9D 00 54 */ lwz r4, 0x54(r29) -/* 802D6A28 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 802D6A2C 80 03 00 04 */ lwz r0, 4(r3) -/* 802D6A30 7C 04 02 14 */ add r0, r4, r0 -/* 802D6A34 90 1D 00 28 */ stw r0, 0x28(r29) -/* 802D6A38 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D6A3C 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D6A40 38 9D 00 18 */ addi r4, r29, 0x18 -/* 802D6A44 48 00 55 AD */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D6A48 38 00 00 01 */ li r0, 1 -/* 802D6A4C 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D6A50 7F A3 EB 78 */ mr r3, r29 -lbl_802D6A54: -/* 802D6A54 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6A58 48 08 B7 D1 */ bl _restgpr_29 -/* 802D6A5C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6A60 7C 08 03 A6 */ mtlr r0 -/* 802D6A64 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6A68 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRMemArchive/__dt__13JKRMemArchiveFv.s b/asm/JSystem/JKernel/JKRMemArchive/__dt__13JKRMemArchiveFv.s deleted file mode 100644 index 3bf34f09d5..0000000000 --- a/asm/JSystem/JKernel/JKRMemArchive/__dt__13JKRMemArchiveFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_802D6B24: -/* 802D6B24 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6B28 7C 08 02 A6 */ mflr r0 -/* 802D6B2C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6B30 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D6B34 93 C1 00 08 */ stw r30, 8(r1) -/* 802D6B38 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D6B3C 7C 9F 23 78 */ mr r31, r4 -/* 802D6B40 41 82 00 70 */ beq lbl_802D6BB0 -/* 802D6B44 3C 60 80 3D */ lis r3, __vt__13JKRMemArchive@ha /* 0x803CC2D8@ha */ -/* 802D6B48 38 03 C2 D8 */ addi r0, r3, __vt__13JKRMemArchive@l /* 0x803CC2D8@l */ -/* 802D6B4C 90 1E 00 00 */ stw r0, 0(r30) -/* 802D6B50 88 1E 00 30 */ lbz r0, 0x30(r30) -/* 802D6B54 28 00 00 01 */ cmplwi r0, 1 -/* 802D6B58 40 82 00 3C */ bne lbl_802D6B94 -/* 802D6B5C 88 1E 00 6C */ lbz r0, 0x6c(r30) -/* 802D6B60 28 00 00 00 */ cmplwi r0, 0 -/* 802D6B64 41 82 00 18 */ beq lbl_802D6B7C -/* 802D6B68 80 7E 00 64 */ lwz r3, 0x64(r30) -/* 802D6B6C 28 03 00 00 */ cmplwi r3, 0 -/* 802D6B70 41 82 00 0C */ beq lbl_802D6B7C -/* 802D6B74 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D6B78 4B FF 79 89 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D6B7C: -/* 802D6B7C 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D6B80 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D6B84 38 9E 00 18 */ addi r4, r30, 0x18 -/* 802D6B88 48 00 55 D5 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D6B8C 38 00 00 00 */ li r0, 0 -/* 802D6B90 98 1E 00 30 */ stb r0, 0x30(r30) -lbl_802D6B94: -/* 802D6B94 7F C3 F3 78 */ mr r3, r30 -/* 802D6B98 38 80 00 00 */ li r4, 0 -/* 802D6B9C 4B FF F7 99 */ bl __dt__10JKRArchiveFv -/* 802D6BA0 7F E0 07 35 */ extsh. r0, r31 -/* 802D6BA4 40 81 00 0C */ ble lbl_802D6BB0 -/* 802D6BA8 7F C3 F3 78 */ mr r3, r30 -/* 802D6BAC 4B FF 81 91 */ bl __dl__FPv -lbl_802D6BB0: -/* 802D6BB0 7F C3 F3 78 */ mr r3, r30 -/* 802D6BB4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D6BB8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D6BBC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6BC0 7C 08 03 A6 */ mtlr r0 -/* 802D6BC4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6BC8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl.s b/asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl.s deleted file mode 100644 index 0d114d1df4..0000000000 --- a/asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_802D6DDC: -/* 802D6DDC 80 04 00 10 */ lwz r0, 0x10(r4) -/* 802D6DE0 28 00 00 00 */ cmplwi r0, 0 -/* 802D6DE4 40 82 00 14 */ bne lbl_802D6DF8 -/* 802D6DE8 80 63 00 68 */ lwz r3, 0x68(r3) -/* 802D6DEC 80 04 00 08 */ lwz r0, 8(r4) -/* 802D6DF0 7C 03 02 14 */ add r0, r3, r0 -/* 802D6DF4 90 04 00 10 */ stw r0, 0x10(r4) -lbl_802D6DF8: -/* 802D6DF8 28 05 00 00 */ cmplwi r5, 0 -/* 802D6DFC 41 82 00 0C */ beq lbl_802D6E08 -/* 802D6E00 80 04 00 0C */ lwz r0, 0xc(r4) -/* 802D6E04 90 05 00 00 */ stw r0, 0(r5) -lbl_802D6E08: -/* 802D6E08 80 64 00 10 */ lwz r3, 0x10(r4) -/* 802D6E0C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl.s b/asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl.s deleted file mode 100644 index 52102739c7..0000000000 --- a/asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_802D6E10: -/* 802D6E10 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D6E14 7C 08 02 A6 */ mflr r0 -/* 802D6E18 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D6E1C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6E20 48 08 B3 BD */ bl _savegpr_29 -/* 802D6E24 7C 9D 23 78 */ mr r29, r4 -/* 802D6E28 7C A8 2B 78 */ mr r8, r5 -/* 802D6E2C 7C FE 3B 78 */ mr r30, r7 -/* 802D6E30 83 E6 00 0C */ lwz r31, 0xc(r6) -/* 802D6E34 7C 1F 40 40 */ cmplw r31, r8 -/* 802D6E38 40 81 00 08 */ ble lbl_802D6E40 -/* 802D6E3C 7D 1F 43 78 */ mr r31, r8 -lbl_802D6E40: -/* 802D6E40 80 86 00 10 */ lwz r4, 0x10(r6) -/* 802D6E44 28 04 00 00 */ cmplwi r4, 0 -/* 802D6E48 41 82 00 14 */ beq lbl_802D6E5C -/* 802D6E4C 7F A3 EB 78 */ mr r3, r29 -/* 802D6E50 7F E5 FB 78 */ mr r5, r31 -/* 802D6E54 4B D2 C6 ED */ bl memcpy -/* 802D6E58 48 00 00 50 */ b lbl_802D6EA8 -lbl_802D6E5C: -/* 802D6E5C 80 06 00 04 */ lwz r0, 4(r6) -/* 802D6E60 54 04 46 3E */ srwi r4, r0, 0x18 -/* 802D6E64 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D6E68 40 82 00 0C */ bne lbl_802D6E74 -/* 802D6E6C 38 E0 00 00 */ li r7, 0 -/* 802D6E70 48 00 00 18 */ b lbl_802D6E88 -lbl_802D6E74: -/* 802D6E74 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18 -/* 802D6E78 41 82 00 0C */ beq lbl_802D6E84 -/* 802D6E7C 38 E0 00 02 */ li r7, 2 -/* 802D6E80 48 00 00 08 */ b lbl_802D6E88 -lbl_802D6E84: -/* 802D6E84 38 E0 00 01 */ li r7, 1 -lbl_802D6E88: -/* 802D6E88 80 63 00 68 */ lwz r3, 0x68(r3) -/* 802D6E8C 80 06 00 08 */ lwz r0, 8(r6) -/* 802D6E90 7C 63 02 14 */ add r3, r3, r0 -/* 802D6E94 7F E4 FB 78 */ mr r4, r31 -/* 802D6E98 7F A5 EB 78 */ mr r5, r29 -/* 802D6E9C 7D 06 43 78 */ mr r6, r8 -/* 802D6EA0 48 00 00 BD */ bl fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli -/* 802D6EA4 7C 7F 1B 78 */ mr r31, r3 -lbl_802D6EA8: -/* 802D6EA8 28 1E 00 00 */ cmplwi r30, 0 -/* 802D6EAC 41 82 00 08 */ beq lbl_802D6EB4 -/* 802D6EB0 93 FE 00 00 */ stw r31, 0(r30) -lbl_802D6EB4: -/* 802D6EB4 7F A3 EB 78 */ mr r3, r29 -/* 802D6EB8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6EBC 48 08 B3 6D */ bl _restgpr_29 -/* 802D6EC0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6EC4 7C 08 03 A6 */ mtlr r0 -/* 802D6EC8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6ECC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRMemArchive/fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli.s b/asm/JSystem/JKernel/JKRMemArchive/fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli.s deleted file mode 100644 index 68b0fc2325..0000000000 --- a/asm/JSystem/JKernel/JKRMemArchive/fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_802D6F5C: -/* 802D6F5C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6F60 7C 08 02 A6 */ mflr r0 -/* 802D6F64 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6F68 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D6F6C 7C 68 1B 78 */ mr r8, r3 -/* 802D6F70 7C 9F 23 78 */ mr r31, r4 -/* 802D6F74 2C 07 00 00 */ cmpwi r7, 0 -/* 802D6F78 41 82 00 14 */ beq lbl_802D6F8C -/* 802D6F7C 41 80 00 80 */ blt lbl_802D6FFC -/* 802D6F80 2C 07 00 03 */ cmpwi r7, 3 -/* 802D6F84 40 80 00 78 */ bge lbl_802D6FFC -/* 802D6F88 48 00 00 28 */ b lbl_802D6FB0 -lbl_802D6F8C: -/* 802D6F8C 7C 1F 30 40 */ cmplw r31, r6 -/* 802D6F90 40 81 00 08 */ ble lbl_802D6F98 -/* 802D6F94 7C DF 33 78 */ mr r31, r6 -lbl_802D6F98: -/* 802D6F98 7C A3 2B 78 */ mr r3, r5 -/* 802D6F9C 7D 04 43 78 */ mr r4, r8 -/* 802D6FA0 7F E5 FB 78 */ mr r5, r31 -/* 802D6FA4 4B D2 C5 9D */ bl memcpy -/* 802D6FA8 7F E3 FB 78 */ mr r3, r31 -/* 802D6FAC 48 00 00 70 */ b lbl_802D701C -lbl_802D6FB0: -/* 802D6FB0 88 E8 00 07 */ lbz r7, 7(r8) -/* 802D6FB4 88 88 00 06 */ lbz r4, 6(r8) -/* 802D6FB8 88 68 00 04 */ lbz r3, 4(r8) -/* 802D6FBC 88 08 00 05 */ lbz r0, 5(r8) -/* 802D6FC0 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D6FC4 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D6FC8 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D6FCC 7C E0 03 78 */ or r0, r7, r0 -/* 802D6FD0 7C 1F 03 78 */ mr r31, r0 -/* 802D6FD4 7C 00 30 40 */ cmplw r0, r6 -/* 802D6FD8 40 81 00 08 */ ble lbl_802D6FE0 -/* 802D6FDC 7C DF 33 78 */ mr r31, r6 -lbl_802D6FE0: -/* 802D6FE0 7D 03 43 78 */ mr r3, r8 -/* 802D6FE4 7C A4 2B 78 */ mr r4, r5 -/* 802D6FE8 7F E5 FB 78 */ mr r5, r31 -/* 802D6FEC 38 C0 00 00 */ li r6, 0 -/* 802D6FF0 48 00 49 99 */ bl orderSync__9JKRDecompFPUcPUcUlUl -/* 802D6FF4 7F E3 FB 78 */ mr r3, r31 -/* 802D6FF8 48 00 00 24 */ b lbl_802D701C -lbl_802D6FFC: -/* 802D6FFC 3C 60 80 3A */ lis r3, JKRMemArchive__stringBase0@ha /* 0x8039D160@ha */ -/* 802D7000 38 63 D1 60 */ addi r3, r3, JKRMemArchive__stringBase0@l /* 0x8039D160@l */ -/* 802D7004 38 80 02 D3 */ li r4, 0x2d3 -/* 802D7008 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D700C 38 C3 00 15 */ addi r6, r3, 0x15 -/* 802D7010 4C C6 31 82 */ crclr 6 -/* 802D7014 48 00 B1 E9 */ bl panic_f__12JUTExceptionFPCciPCce -/* 802D7018 38 60 00 00 */ li r3, 0 -lbl_802D701C: -/* 802D701C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D7020 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D7024 7C 08 03 A6 */ mtlr r0 -/* 802D7028 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D702C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRMemArchive/getExpandedResSize__13JKRMemArchiveCFPCv.s b/asm/JSystem/JKernel/JKRMemArchive/getExpandedResSize__13JKRMemArchiveCFPCv.s deleted file mode 100644 index 993e416838..0000000000 --- a/asm/JSystem/JKernel/JKRMemArchive/getExpandedResSize__13JKRMemArchiveCFPCv.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_802D7030: -/* 802D7030 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D7034 7C 08 02 A6 */ mflr r0 -/* 802D7038 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D703C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D7040 93 C1 00 08 */ stw r30, 8(r1) -/* 802D7044 7C 7E 1B 78 */ mr r30, r3 -/* 802D7048 7C 9F 23 78 */ mr r31, r4 -/* 802D704C 4B FF F6 E9 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D7050 28 03 00 00 */ cmplwi r3, 0 -/* 802D7054 40 82 00 0C */ bne lbl_802D7060 -/* 802D7058 38 60 FF FF */ li r3, -1 -/* 802D705C 48 00 00 4C */ b lbl_802D70A8 -lbl_802D7060: -/* 802D7060 80 03 00 04 */ lwz r0, 4(r3) -/* 802D7064 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D7068 40 82 00 20 */ bne lbl_802D7088 -/* 802D706C 7F C3 F3 78 */ mr r3, r30 -/* 802D7070 7F E4 FB 78 */ mr r4, r31 -/* 802D7074 81 9E 00 00 */ lwz r12, 0(r30) -/* 802D7078 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D707C 7D 89 03 A6 */ mtctr r12 -/* 802D7080 4E 80 04 21 */ bctrl -/* 802D7084 48 00 00 24 */ b lbl_802D70A8 -lbl_802D7088: -/* 802D7088 88 BF 00 07 */ lbz r5, 7(r31) -/* 802D708C 88 9F 00 06 */ lbz r4, 6(r31) -/* 802D7090 88 7F 00 04 */ lbz r3, 4(r31) -/* 802D7094 88 1F 00 05 */ lbz r0, 5(r31) -/* 802D7098 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D709C 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D70A0 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D70A4 7C A3 03 78 */ or r3, r5, r0 -lbl_802D70A8: -/* 802D70A8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D70AC 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D70B0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D70B4 7C 08 03 A6 */ mtlr r0 -/* 802D70B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D70BC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRMemArchive/removeResourceAll__13JKRMemArchiveFv.s b/asm/JSystem/JKernel/JKRMemArchive/removeResourceAll__13JKRMemArchiveFv.s deleted file mode 100644 index 61e4b22522..0000000000 --- a/asm/JSystem/JKernel/JKRMemArchive/removeResourceAll__13JKRMemArchiveFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802D6ED0: -/* 802D6ED0 80 03 00 44 */ lwz r0, 0x44(r3) -/* 802D6ED4 28 00 00 00 */ cmplwi r0, 0 -/* 802D6ED8 4D 82 00 20 */ beqlr -/* 802D6EDC 88 03 00 3C */ lbz r0, 0x3c(r3) -/* 802D6EE0 28 00 00 01 */ cmplwi r0, 1 -/* 802D6EE4 4D 82 00 20 */ beqlr -/* 802D6EE8 80 C3 00 4C */ lwz r6, 0x4c(r3) -/* 802D6EEC 38 E0 00 00 */ li r7, 0 -/* 802D6EF0 38 A0 00 00 */ li r5, 0 -/* 802D6EF4 48 00 00 18 */ b lbl_802D6F0C -lbl_802D6EF8: -/* 802D6EF8 80 06 00 10 */ lwz r0, 0x10(r6) -/* 802D6EFC 28 00 00 00 */ cmplwi r0, 0 -/* 802D6F00 41 82 00 08 */ beq lbl_802D6F08 -/* 802D6F04 90 A6 00 10 */ stw r5, 0x10(r6) -lbl_802D6F08: -/* 802D6F08 38 E7 00 01 */ addi r7, r7, 1 -lbl_802D6F0C: -/* 802D6F0C 80 83 00 44 */ lwz r4, 0x44(r3) -/* 802D6F10 80 04 00 08 */ lwz r0, 8(r4) -/* 802D6F14 7C 07 00 40 */ cmplw r7, r0 -/* 802D6F18 41 80 FF E0 */ blt lbl_802D6EF8 -/* 802D6F1C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRMemArchive/removeResource__13JKRMemArchiveFPv.s b/asm/JSystem/JKernel/JKRMemArchive/removeResource__13JKRMemArchiveFPv.s deleted file mode 100644 index 2ebe90ada6..0000000000 --- a/asm/JSystem/JKernel/JKRMemArchive/removeResource__13JKRMemArchiveFPv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_802D6F20: -/* 802D6F20 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6F24 7C 08 02 A6 */ mflr r0 -/* 802D6F28 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6F2C 4B FF F8 09 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D6F30 28 03 00 00 */ cmplwi r3, 0 -/* 802D6F34 40 82 00 0C */ bne lbl_802D6F40 -/* 802D6F38 38 60 00 00 */ li r3, 0 -/* 802D6F3C 48 00 00 10 */ b lbl_802D6F4C -lbl_802D6F40: -/* 802D6F40 38 00 00 00 */ li r0, 0 -/* 802D6F44 90 03 00 10 */ stw r0, 0x10(r3) -/* 802D6F48 38 60 00 01 */ li r3, 1 -lbl_802D6F4C: -/* 802D6F4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6F50 7C 08 03 A6 */ mtlr r0 -/* 802D6F54 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6F58 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/__ct__12JKRSolidHeapFPvUlP7JKRHeapb.s b/asm/JSystem/JKernel/JKRSolidHeap/__ct__12JKRSolidHeapFPvUlP7JKRHeapb.s deleted file mode 100644 index cba71fc3b4..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/__ct__12JKRSolidHeapFPvUlP7JKRHeapb.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802D0B30: -/* 802D0B30 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0B34 7C 08 02 A6 */ mflr r0 -/* 802D0B38 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0B3C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0B40 7C 7F 1B 78 */ mr r31, r3 -/* 802D0B44 4B FF D5 F5 */ bl __ct__7JKRHeapFPvUlP7JKRHeapb -/* 802D0B48 3C 60 80 3D */ lis r3, __vt__12JKRSolidHeap@ha /* 0x803CC030@ha */ -/* 802D0B4C 38 03 C0 30 */ addi r0, r3, __vt__12JKRSolidHeap@l /* 0x803CC030@l */ -/* 802D0B50 90 1F 00 00 */ stw r0, 0(r31) -/* 802D0B54 80 1F 00 38 */ lwz r0, 0x38(r31) -/* 802D0B58 90 1F 00 6C */ stw r0, 0x6c(r31) -/* 802D0B5C 80 1F 00 30 */ lwz r0, 0x30(r31) -/* 802D0B60 90 1F 00 70 */ stw r0, 0x70(r31) -/* 802D0B64 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0B68 90 1F 00 74 */ stw r0, 0x74(r31) -/* 802D0B6C 38 00 00 00 */ li r0, 0 -/* 802D0B70 90 1F 00 78 */ stw r0, 0x78(r31) -/* 802D0B74 7F E3 FB 78 */ mr r3, r31 -/* 802D0B78 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0B7C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0B80 7C 08 03 A6 */ mtlr r0 -/* 802D0B84 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0B88 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/__dt__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/__dt__12JKRSolidHeapFv.s deleted file mode 100644 index 0a57bbf9b8..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/__dt__12JKRSolidHeapFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_802D0B8C: -/* 802D0B8C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0B90 7C 08 02 A6 */ mflr r0 -/* 802D0B94 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0B98 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0B9C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D0BA0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D0BA4 7C 9F 23 78 */ mr r31, r4 -/* 802D0BA8 41 82 00 30 */ beq lbl_802D0BD8 -/* 802D0BAC 3C 80 80 3D */ lis r4, __vt__12JKRSolidHeap@ha /* 0x803CC030@ha */ -/* 802D0BB0 38 04 C0 30 */ addi r0, r4, __vt__12JKRSolidHeap@l /* 0x803CC030@l */ -/* 802D0BB4 90 1E 00 00 */ stw r0, 0(r30) -/* 802D0BB8 4B FF DF 09 */ bl dispose__7JKRHeapFv -/* 802D0BBC 7F C3 F3 78 */ mr r3, r30 -/* 802D0BC0 38 80 00 00 */ li r4, 0 -/* 802D0BC4 4B FF D6 A1 */ bl __dt__7JKRHeapFv -/* 802D0BC8 7F E0 07 35 */ extsh. r0, r31 -/* 802D0BCC 40 81 00 0C */ ble lbl_802D0BD8 -/* 802D0BD0 7F C3 F3 78 */ mr r3, r30 -/* 802D0BD4 4B FF E1 69 */ bl __dl__FPv -lbl_802D0BD8: -/* 802D0BD8 7F C3 F3 78 */ mr r3, r30 -/* 802D0BDC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0BE0 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D0BE4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0BE8 7C 08 03 A6 */ mtlr r0 -/* 802D0BEC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0BF0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/check__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/check__12JKRSolidHeapFv.s deleted file mode 100644 index e60fe3fc26..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/check__12JKRSolidHeapFv.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_802D106C: -/* 802D106C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1070 7C 08 02 A6 */ mflr r0 -/* 802D1074 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1078 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D107C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D1080 7C 7E 1B 78 */ mr r30, r3 -/* 802D1084 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D1088 48 06 DF B9 */ bl OSLockMutex -/* 802D108C 3B E0 00 01 */ li r31, 1 -/* 802D1090 80 DE 00 6C */ lwz r6, 0x6c(r30) -/* 802D1094 80 7E 00 30 */ lwz r3, 0x30(r30) -/* 802D1098 80 1E 00 70 */ lwz r0, 0x70(r30) -/* 802D109C 7C 83 00 50 */ subf r4, r3, r0 -/* 802D10A0 80 7E 00 74 */ lwz r3, 0x74(r30) -/* 802D10A4 80 1E 00 34 */ lwz r0, 0x34(r30) -/* 802D10A8 7C 03 00 50 */ subf r0, r3, r0 -/* 802D10AC 7C A4 02 14 */ add r5, r4, r0 -/* 802D10B0 7C A6 2A 14 */ add r5, r6, r5 -/* 802D10B4 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D10B8 7C 05 20 40 */ cmplw r5, r4 -/* 802D10BC 41 82 00 1C */ beq lbl_802D10D8 -/* 802D10C0 3B E0 00 00 */ li r31, 0 -/* 802D10C4 3C 60 80 3A */ lis r3, JKRSolidHeap__stringBase0@ha /* 0x8039CE50@ha */ -/* 802D10C8 38 63 CE 50 */ addi r3, r3, JKRSolidHeap__stringBase0@l /* 0x8039CE50@l */ -/* 802D10CC 38 63 00 E6 */ addi r3, r3, 0xe6 -/* 802D10D0 4C C6 31 82 */ crclr 6 -/* 802D10D4 48 01 75 A9 */ bl JUTWarningConsole_f -lbl_802D10D8: -/* 802D10D8 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D10DC 48 06 E0 41 */ bl OSUnlockMutex -/* 802D10E0 7F E3 FB 78 */ mr r3, r31 -/* 802D10E4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D10E8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D10EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D10F0 7C 08 03 A6 */ mtlr r0 -/* 802D10F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D10F8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/create__12JKRSolidHeapFUlP7JKRHeapb.s b/asm/JSystem/JKernel/JKRSolidHeap/create__12JKRSolidHeapFUlP7JKRHeapb.s deleted file mode 100644 index fa368fac78..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/create__12JKRSolidHeapFUlP7JKRHeapb.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_802D0A24: -/* 802D0A24 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D0A28 7C 08 02 A6 */ mflr r0 -/* 802D0A2C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D0A30 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D0A34 48 09 17 A9 */ bl _savegpr_29 -/* 802D0A38 7C 9D 23 79 */ or. r29, r4, r4 -/* 802D0A3C 7C BE 2B 78 */ mr r30, r5 -/* 802D0A40 40 82 00 08 */ bne lbl_802D0A48 -/* 802D0A44 83 AD 8D F8 */ lwz r29, sRootHeap__7JKRHeap(r13) -lbl_802D0A48: -/* 802D0A48 3C 03 00 01 */ addis r0, r3, 1 -/* 802D0A4C 28 00 FF FF */ cmplwi r0, 0xffff -/* 802D0A50 40 82 00 10 */ bne lbl_802D0A60 -/* 802D0A54 7F A3 EB 78 */ mr r3, r29 -/* 802D0A58 38 80 00 10 */ li r4, 0x10 -/* 802D0A5C 4B FF DD 81 */ bl getMaxAllocatableSize__7JKRHeapFi -lbl_802D0A60: -/* 802D0A60 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b -/* 802D0A64 28 1F 00 80 */ cmplwi r31, 0x80 -/* 802D0A68 40 80 00 0C */ bge lbl_802D0A74 -/* 802D0A6C 38 60 00 00 */ li r3, 0 -/* 802D0A70 48 00 00 48 */ b lbl_802D0AB8 -lbl_802D0A74: -/* 802D0A74 7F E3 FB 78 */ mr r3, r31 -/* 802D0A78 38 80 00 10 */ li r4, 0x10 -/* 802D0A7C 7F A5 EB 78 */ mr r5, r29 -/* 802D0A80 4B FF D9 F5 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D0A84 7C 60 1B 78 */ mr r0, r3 -/* 802D0A88 7C 05 03 79 */ or. r5, r0, r0 -/* 802D0A8C 38 85 00 80 */ addi r4, r5, 0x80 -/* 802D0A90 40 82 00 0C */ bne lbl_802D0A9C -/* 802D0A94 38 60 00 00 */ li r3, 0 -/* 802D0A98 48 00 00 20 */ b lbl_802D0AB8 -lbl_802D0A9C: -/* 802D0A9C 41 82 00 18 */ beq lbl_802D0AB4 -/* 802D0AA0 38 BF FF 80 */ addi r5, r31, -128 -/* 802D0AA4 7F A6 EB 78 */ mr r6, r29 -/* 802D0AA8 7F C7 F3 78 */ mr r7, r30 -/* 802D0AAC 48 00 00 85 */ bl __ct__12JKRSolidHeapFPvUlP7JKRHeapb -/* 802D0AB0 7C 60 1B 78 */ mr r0, r3 -lbl_802D0AB4: -/* 802D0AB4 7C 03 03 78 */ mr r3, r0 -lbl_802D0AB8: -/* 802D0AB8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D0ABC 48 09 17 6D */ bl _restgpr_29 -/* 802D0AC0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D0AC4 7C 08 03 A6 */ mtlr r0 -/* 802D0AC8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D0ACC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_alloc__12JKRSolidHeapFUli.s b/asm/JSystem/JKernel/JKRSolidHeap/do_alloc__12JKRSolidHeapFUli.s deleted file mode 100644 index 56393ce63b..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_alloc__12JKRSolidHeapFUli.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_802D0CB0: -/* 802D0CB0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D0CB4 7C 08 02 A6 */ mflr r0 -/* 802D0CB8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D0CBC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D0CC0 48 09 15 1D */ bl _savegpr_29 -/* 802D0CC4 7C 7D 1B 78 */ mr r29, r3 -/* 802D0CC8 7C 9E 23 78 */ mr r30, r4 -/* 802D0CCC 7C BF 2B 78 */ mr r31, r5 -/* 802D0CD0 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D0CD4 48 06 E3 6D */ bl OSLockMutex -/* 802D0CD8 28 1E 00 04 */ cmplwi r30, 4 -/* 802D0CDC 40 80 00 08 */ bge lbl_802D0CE4 -/* 802D0CE0 3B C0 00 04 */ li r30, 4 -lbl_802D0CE4: -/* 802D0CE4 2C 1F 00 00 */ cmpwi r31, 0 -/* 802D0CE8 41 80 00 28 */ blt lbl_802D0D10 -/* 802D0CEC 7F A3 EB 78 */ mr r3, r29 -/* 802D0CF0 7F C4 F3 78 */ mr r4, r30 -/* 802D0CF4 2C 1F 00 04 */ cmpwi r31, 4 -/* 802D0CF8 38 A0 00 04 */ li r5, 4 -/* 802D0CFC 41 80 00 08 */ blt lbl_802D0D04 -/* 802D0D00 7F E5 FB 78 */ mr r5, r31 -lbl_802D0D04: -/* 802D0D04 48 00 00 55 */ bl allocFromHead__12JKRSolidHeapFUli -/* 802D0D08 7C 7F 1B 78 */ mr r31, r3 -/* 802D0D0C 48 00 00 28 */ b lbl_802D0D34 -lbl_802D0D10: -/* 802D0D10 7C 1F 00 D0 */ neg r0, r31 -/* 802D0D14 2C 00 00 04 */ cmpwi r0, 4 -/* 802D0D18 38 A0 00 04 */ li r5, 4 -/* 802D0D1C 41 80 00 08 */ blt lbl_802D0D24 -/* 802D0D20 7C 05 03 78 */ mr r5, r0 -lbl_802D0D24: -/* 802D0D24 7F A3 EB 78 */ mr r3, r29 -/* 802D0D28 7F C4 F3 78 */ mr r4, r30 -/* 802D0D2C 48 00 00 F5 */ bl allocFromTail__12JKRSolidHeapFUli -/* 802D0D30 7C 7F 1B 78 */ mr r31, r3 -lbl_802D0D34: -/* 802D0D34 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D0D38 48 06 E3 E5 */ bl OSUnlockMutex -/* 802D0D3C 7F E3 FB 78 */ mr r3, r31 -/* 802D0D40 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D0D44 48 09 14 E5 */ bl _restgpr_29 -/* 802D0D48 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D0D4C 7C 08 03 A6 */ mtlr r0 -/* 802D0D50 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D0D54 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_destroy__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/do_destroy__12JKRSolidHeapFv.s deleted file mode 100644 index ea4c419933..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_destroy__12JKRSolidHeapFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802D0AD0: -/* 802D0AD0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0AD4 7C 08 02 A6 */ mflr r0 -/* 802D0AD8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0ADC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0AE0 93 C1 00 08 */ stw r30, 8(r1) -/* 802D0AE4 7C 7E 1B 78 */ mr r30, r3 -/* 802D0AE8 80 83 00 50 */ lwz r4, 0x50(r3) -/* 802D0AEC 83 E4 00 0C */ lwz r31, 0xc(r4) -/* 802D0AF0 28 1F 00 00 */ cmplwi r31, 0 -/* 802D0AF4 41 82 00 24 */ beq lbl_802D0B18 -/* 802D0AF8 38 80 FF FF */ li r4, -1 -/* 802D0AFC 81 83 00 00 */ lwz r12, 0(r3) -/* 802D0B00 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D0B04 7D 89 03 A6 */ mtctr r12 -/* 802D0B08 4E 80 04 21 */ bctrl -/* 802D0B0C 7F C3 F3 78 */ mr r3, r30 -/* 802D0B10 7F E4 FB 78 */ mr r4, r31 -/* 802D0B14 4B FF D9 ED */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D0B18: -/* 802D0B18 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0B1C 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D0B20 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0B24 7C 08 03 A6 */ mtlr r0 -/* 802D0B28 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0B2C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_freeAll__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/do_freeAll__12JKRSolidHeapFv.s deleted file mode 100644 index 93ddf042e4..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_freeAll__12JKRSolidHeapFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_802D0F14: -/* 802D0F14 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0F18 7C 08 02 A6 */ mflr r0 -/* 802D0F1C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0F20 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0F24 7C 7F 1B 78 */ mr r31, r3 -/* 802D0F28 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D0F2C 48 06 E1 15 */ bl OSLockMutex -/* 802D0F30 7F E3 FB 78 */ mr r3, r31 -/* 802D0F34 4B FF D6 41 */ bl callAllDisposer__7JKRHeapFv -/* 802D0F38 80 1F 00 38 */ lwz r0, 0x38(r31) -/* 802D0F3C 90 1F 00 6C */ stw r0, 0x6c(r31) -/* 802D0F40 80 1F 00 30 */ lwz r0, 0x30(r31) -/* 802D0F44 90 1F 00 70 */ stw r0, 0x70(r31) -/* 802D0F48 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0F4C 90 1F 00 74 */ stw r0, 0x74(r31) -/* 802D0F50 38 00 00 00 */ li r0, 0 -/* 802D0F54 90 1F 00 78 */ stw r0, 0x78(r31) -/* 802D0F58 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D0F5C 48 06 E1 C1 */ bl OSUnlockMutex -/* 802D0F60 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0F64 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0F68 7C 08 03 A6 */ mtlr r0 -/* 802D0F6C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0F70 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_freeTail__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/do_freeTail__12JKRSolidHeapFv.s deleted file mode 100644 index 389d455a4a..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_freeTail__12JKRSolidHeapFv.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_802D0F74: -/* 802D0F74 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0F78 7C 08 02 A6 */ mflr r0 -/* 802D0F7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0F80 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0F84 7C 7F 1B 78 */ mr r31, r3 -/* 802D0F88 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D0F8C 48 06 E0 B5 */ bl OSLockMutex -/* 802D0F90 80 9F 00 74 */ lwz r4, 0x74(r31) -/* 802D0F94 80 BF 00 34 */ lwz r5, 0x34(r31) -/* 802D0F98 7C 04 28 40 */ cmplw r4, r5 -/* 802D0F9C 41 82 00 0C */ beq lbl_802D0FA8 -/* 802D0FA0 7F E3 FB 78 */ mr r3, r31 -/* 802D0FA4 4B FF DA FD */ bl dispose__7JKRHeapFPvPv -lbl_802D0FA8: -/* 802D0FA8 80 9F 00 6C */ lwz r4, 0x6c(r31) -/* 802D0FAC 80 7F 00 74 */ lwz r3, 0x74(r31) -/* 802D0FB0 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0FB4 7C 03 00 50 */ subf r0, r3, r0 -/* 802D0FB8 7C 04 02 14 */ add r0, r4, r0 -/* 802D0FBC 90 1F 00 6C */ stw r0, 0x6c(r31) -/* 802D0FC0 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0FC4 90 1F 00 74 */ stw r0, 0x74(r31) -/* 802D0FC8 80 7F 00 78 */ lwz r3, 0x78(r31) -/* 802D0FCC 48 00 00 10 */ b lbl_802D0FDC -lbl_802D0FD0: -/* 802D0FD0 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0FD4 90 03 00 0C */ stw r0, 0xc(r3) -/* 802D0FD8 80 63 00 10 */ lwz r3, 0x10(r3) -lbl_802D0FDC: -/* 802D0FDC 28 03 00 00 */ cmplwi r3, 0 -/* 802D0FE0 40 82 FF F0 */ bne lbl_802D0FD0 -/* 802D0FE4 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D0FE8 48 06 E1 35 */ bl OSUnlockMutex -/* 802D0FEC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0FF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0FF4 7C 08 03 A6 */ mtlr r0 -/* 802D0FF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0FFC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_free__12JKRSolidHeapFPv.s b/asm/JSystem/JKernel/JKRSolidHeap/do_free__12JKRSolidHeapFPv.s deleted file mode 100644 index ad4786234f..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_free__12JKRSolidHeapFPv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802D0EE4: -/* 802D0EE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0EE8 7C 08 02 A6 */ mflr r0 -/* 802D0EEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0EF0 3C 60 80 3A */ lis r3, JKRSolidHeap__stringBase0@ha /* 0x8039CE50@ha */ -/* 802D0EF4 38 63 CE 50 */ addi r3, r3, JKRSolidHeap__stringBase0@l /* 0x8039CE50@l */ -/* 802D0EF8 38 63 00 62 */ addi r3, r3, 0x62 -/* 802D0EFC 4C C6 31 82 */ crclr 6 -/* 802D0F00 48 01 77 7D */ bl JUTWarningConsole_f -/* 802D0F04 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0F08 7C 08 03 A6 */ mtlr r0 -/* 802D0F0C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0F10 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_getFreeSize__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/do_getFreeSize__12JKRSolidHeapFv.s deleted file mode 100644 index 1a6c72139f..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_getFreeSize__12JKRSolidHeapFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_802D1294: -/* 802D1294 80 63 00 6C */ lwz r3, 0x6c(r3) -/* 802D1298 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_getMaxFreeBlock__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/do_getMaxFreeBlock__12JKRSolidHeapFv.s deleted file mode 100644 index 6e25e619a0..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_getMaxFreeBlock__12JKRSolidHeapFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_802D129C: -/* 802D129C 80 63 00 70 */ lwz r3, 0x70(r3) -/* 802D12A0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_getSize__12JKRSolidHeapFPv.s b/asm/JSystem/JKernel/JKRSolidHeap/do_getSize__12JKRSolidHeapFPv.s deleted file mode 100644 index 86a8989a29..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_getSize__12JKRSolidHeapFPv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802D1038: -/* 802D1038 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D103C 7C 08 02 A6 */ mflr r0 -/* 802D1040 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1044 3C 60 80 3A */ lis r3, JKRSolidHeap__stringBase0@ha /* 0x8039CE50@ha */ -/* 802D1048 38 63 CE 50 */ addi r3, r3, JKRSolidHeap__stringBase0@l /* 0x8039CE50@l */ -/* 802D104C 38 63 00 B8 */ addi r3, r3, 0xb8 -/* 802D1050 4C C6 31 82 */ crclr 6 -/* 802D1054 48 01 76 29 */ bl JUTWarningConsole_f -/* 802D1058 38 60 FF FF */ li r3, -1 -/* 802D105C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D1060 7C 08 03 A6 */ mtlr r0 -/* 802D1064 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1068 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_getTotalFreeSize__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/do_getTotalFreeSize__12JKRSolidHeapFv.s deleted file mode 100644 index 8c8064d595..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_getTotalFreeSize__12JKRSolidHeapFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_802D12A4: -/* 802D12A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D12A8 7C 08 02 A6 */ mflr r0 -/* 802D12AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D12B0 4B FF D4 7D */ bl getFreeSize__7JKRHeapFv -/* 802D12B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D12B8 7C 08 03 A6 */ mtlr r0 -/* 802D12BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D12C0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/do_resize__12JKRSolidHeapFPvUl.s b/asm/JSystem/JKernel/JKRSolidHeap/do_resize__12JKRSolidHeapFPvUl.s deleted file mode 100644 index 300bc0b8c9..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/do_resize__12JKRSolidHeapFPvUl.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802D1004: -/* 802D1004 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1008 7C 08 02 A6 */ mflr r0 -/* 802D100C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1010 3C 60 80 3A */ lis r3, JKRSolidHeap__stringBase0@ha /* 0x8039CE50@ha */ -/* 802D1014 38 63 CE 50 */ addi r3, r3, JKRSolidHeap__stringBase0@l /* 0x8039CE50@l */ -/* 802D1018 38 63 00 89 */ addi r3, r3, 0x89 -/* 802D101C 4C C6 31 82 */ crclr 6 -/* 802D1020 48 01 76 5D */ bl JUTWarningConsole_f -/* 802D1024 38 60 FF FF */ li r3, -1 -/* 802D1028 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D102C 7C 08 03 A6 */ mtlr r0 -/* 802D1030 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1034 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/dump__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/dump__12JKRSolidHeapFv.s deleted file mode 100644 index a6fc90754b..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/dump__12JKRSolidHeapFv.s +++ /dev/null @@ -1,65 +0,0 @@ -lbl_802D10FC: -/* 802D10FC 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D1100 7C 08 02 A6 */ mflr r0 -/* 802D1104 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D1108 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D110C 48 09 10 D1 */ bl _savegpr_29 -/* 802D1110 7C 7E 1B 78 */ mr r30, r3 -/* 802D1114 81 83 00 00 */ lwz r12, 0(r3) -/* 802D1118 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802D111C 7D 89 03 A6 */ mtctr r12 -/* 802D1120 4E 80 04 21 */ bctrl -/* 802D1124 7C 7F 1B 78 */ mr r31, r3 -/* 802D1128 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D112C 48 06 DF 15 */ bl OSLockMutex -/* 802D1130 80 9E 00 30 */ lwz r4, 0x30(r30) -/* 802D1134 80 1E 00 70 */ lwz r0, 0x70(r30) -/* 802D1138 7C A4 00 50 */ subf r5, r4, r0 -/* 802D113C 80 7E 00 74 */ lwz r3, 0x74(r30) -/* 802D1140 80 1E 00 34 */ lwz r0, 0x34(r30) -/* 802D1144 7C 03 00 50 */ subf r0, r3, r0 -/* 802D1148 7F A5 02 14 */ add r29, r5, r0 -/* 802D114C 3C 60 80 3A */ lis r3, JKRSolidHeap__stringBase0@ha /* 0x8039CE50@ha */ -/* 802D1150 38 63 CE 50 */ addi r3, r3, JKRSolidHeap__stringBase0@l /* 0x8039CE50@l */ -/* 802D1154 38 63 01 17 */ addi r3, r3, 0x117 -/* 802D1158 4C C6 31 82 */ crclr 6 -/* 802D115C 48 01 74 6D */ bl JUTReportConsole_f -/* 802D1160 80 9E 00 74 */ lwz r4, 0x74(r30) -/* 802D1164 3C 60 80 3A */ lis r3, JKRSolidHeap__stringBase0@ha /* 0x8039CE50@ha */ -/* 802D1168 38 63 CE 50 */ addi r3, r3, JKRSolidHeap__stringBase0@l /* 0x8039CE50@l */ -/* 802D116C 38 63 01 28 */ addi r3, r3, 0x128 -/* 802D1170 80 1E 00 34 */ lwz r0, 0x34(r30) -/* 802D1174 7C A4 00 50 */ subf r5, r4, r0 -/* 802D1178 4C C6 31 82 */ crclr 6 -/* 802D117C 48 01 74 4D */ bl JUTReportConsole_f -/* 802D1180 80 BE 00 38 */ lwz r5, 0x38(r30) -/* 802D1184 3C 60 80 3A */ lis r3, JKRSolidHeap__stringBase0@ha /* 0x8039CE50@ha */ -/* 802D1188 38 63 CE 50 */ addi r3, r3, JKRSolidHeap__stringBase0@l /* 0x8039CE50@l */ -/* 802D118C 38 63 01 39 */ addi r3, r3, 0x139 -/* 802D1190 7F A4 EB 78 */ mr r4, r29 -/* 802D1194 C0 62 C5 A8 */ lfs f3, lit_693(r2) -/* 802D1198 C8 22 C5 B0 */ lfd f1, lit_695(r2) -/* 802D119C 6F A0 80 00 */ xoris r0, r29, 0x8000 -/* 802D11A0 90 01 00 0C */ stw r0, 0xc(r1) -/* 802D11A4 3C 00 43 30 */ lis r0, 0x4330 -/* 802D11A8 90 01 00 08 */ stw r0, 8(r1) -/* 802D11AC C8 01 00 08 */ lfd f0, 8(r1) -/* 802D11B0 EC 40 08 28 */ fsubs f2, f0, f1 -/* 802D11B4 C8 22 C5 B8 */ lfd f1, lit_697(r2) -/* 802D11B8 90 A1 00 14 */ stw r5, 0x14(r1) -/* 802D11BC 90 01 00 10 */ stw r0, 0x10(r1) -/* 802D11C0 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 802D11C4 EC 00 08 28 */ fsubs f0, f0, f1 -/* 802D11C8 EC 02 00 24 */ fdivs f0, f2, f0 -/* 802D11CC EC 23 00 32 */ fmuls f1, f3, f0 -/* 802D11D0 4C C6 32 42 */ crset 6 -/* 802D11D4 48 01 73 F5 */ bl JUTReportConsole_f -/* 802D11D8 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D11DC 48 06 DF 41 */ bl OSUnlockMutex -/* 802D11E0 7F E3 FB 78 */ mr r3, r31 -/* 802D11E4 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D11E8 48 09 10 41 */ bl _restgpr_29 -/* 802D11EC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D11F0 7C 08 03 A6 */ mtlr r0 -/* 802D11F4 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D11F8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/getHeapType__12JKRSolidHeapFv.s b/asm/JSystem/JKernel/JKRSolidHeap/getHeapType__12JKRSolidHeapFv.s deleted file mode 100644 index a92d265a14..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/getHeapType__12JKRSolidHeapFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802D1288: -/* 802D1288 3C 60 53 4C */ lis r3, 0x534C /* 0x534C4944@ha */ -/* 802D128C 38 63 49 44 */ addi r3, r3, 0x4944 /* 0x534C4944@l */ -/* 802D1290 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRSolidHeap/state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState.s b/asm/JSystem/JKernel/JKRSolidHeap/state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState.s deleted file mode 100644 index a63ef91059..0000000000 --- a/asm/JSystem/JKernel/JKRSolidHeap/state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802D1258: -/* 802D1258 38 60 00 01 */ li r3, 1 -/* 802D125C 80 C4 00 04 */ lwz r6, 4(r4) -/* 802D1260 80 05 00 04 */ lwz r0, 4(r5) -/* 802D1264 7C 06 00 40 */ cmplw r6, r0 -/* 802D1268 41 82 00 08 */ beq lbl_802D1270 -/* 802D126C 38 60 00 00 */ li r3, 0 -lbl_802D1270: -/* 802D1270 80 84 00 00 */ lwz r4, 0(r4) -/* 802D1274 80 05 00 00 */ lwz r0, 0(r5) -/* 802D1278 7C 04 00 40 */ cmplw r4, r0 -/* 802D127C 4D 82 00 20 */ beqlr -/* 802D1280 38 60 00 00 */ li r3, 0 -/* 802D1284 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFP7JKRHeapUlii.s b/asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFP7JKRHeapUlii.s deleted file mode 100644 index 5203c0bb44..0000000000 --- a/asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFP7JKRHeapUlii.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_802D1610: -/* 802D1610 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D1614 7C 08 02 A6 */ mflr r0 -/* 802D1618 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D161C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D1620 48 09 0B B5 */ bl _savegpr_27 -/* 802D1624 7C 7B 1B 78 */ mr r27, r3 -/* 802D1628 7C 9C 23 78 */ mr r28, r4 -/* 802D162C 7C BD 2B 78 */ mr r29, r5 -/* 802D1630 7C DE 33 78 */ mr r30, r6 -/* 802D1634 7C FF 3B 78 */ mr r31, r7 -/* 802D1638 4B FF FE 45 */ bl __ct__11JKRDisposerFv -/* 802D163C 3C 60 80 3D */ lis r3, __vt__9JKRThread@ha /* 0x803CC114@ha */ -/* 802D1640 38 03 C1 14 */ addi r0, r3, __vt__9JKRThread@l /* 0x803CC114@l */ -/* 802D1644 90 1B 00 00 */ stw r0, 0(r27) -/* 802D1648 38 7B 00 18 */ addi r3, r27, 0x18 -/* 802D164C 7F 64 DB 78 */ mr r4, r27 -/* 802D1650 48 00 A7 AD */ bl __ct__10JSUPtrLinkFPv -/* 802D1654 38 00 00 00 */ li r0, 0 -/* 802D1658 90 1B 00 68 */ stw r0, 0x68(r27) -/* 802D165C 90 1B 00 64 */ stw r0, 0x64(r27) -/* 802D1660 90 1B 00 6C */ stw r0, 0x6c(r27) -/* 802D1664 98 1B 00 60 */ stb r0, 0x60(r27) -/* 802D1668 90 1B 00 70 */ stw r0, 0x70(r27) -/* 802D166C 28 1C 00 00 */ cmplwi r28, 0 -/* 802D1670 40 82 00 08 */ bne lbl_802D1678 -/* 802D1674 83 8D 8D F4 */ lwz r28, sCurrentHeap__7JKRHeap(r13) -lbl_802D1678: -/* 802D1678 7F 63 DB 78 */ mr r3, r27 -/* 802D167C 7F 84 E3 78 */ mr r4, r28 -/* 802D1680 7F A5 EB 78 */ mr r5, r29 -/* 802D1684 7F E6 FB 78 */ mr r6, r31 -/* 802D1688 48 00 02 1D */ bl setCommon_heapSpecified__9JKRThreadFP7JKRHeapUli -/* 802D168C 7F 63 DB 78 */ mr r3, r27 -/* 802D1690 80 9B 00 28 */ lwz r4, 0x28(r27) -/* 802D1694 7F C5 F3 78 */ mr r5, r30 -/* 802D1698 48 00 01 99 */ bl setCommon_mesgQueue__9JKRThreadFP7JKRHeapi -/* 802D169C 7F 63 DB 78 */ mr r3, r27 -/* 802D16A0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D16A4 48 09 0B 7D */ bl _restgpr_27 -/* 802D16A8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D16AC 7C 08 03 A6 */ mtlr r0 -/* 802D16B0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D16B4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFP8OSThreadi.s b/asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFP8OSThreadi.s deleted file mode 100644 index e7ad947679..0000000000 --- a/asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFP8OSThreadi.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_802D16B8: -/* 802D16B8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D16BC 7C 08 02 A6 */ mflr r0 -/* 802D16C0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D16C4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D16C8 48 09 0B 15 */ bl _savegpr_29 -/* 802D16CC 7C 7D 1B 78 */ mr r29, r3 -/* 802D16D0 7C 9E 23 78 */ mr r30, r4 -/* 802D16D4 7C BF 2B 78 */ mr r31, r5 -/* 802D16D8 4B FF FD A5 */ bl __ct__11JKRDisposerFv -/* 802D16DC 3C 60 80 3D */ lis r3, __vt__9JKRThread@ha /* 0x803CC114@ha */ -/* 802D16E0 38 03 C1 14 */ addi r0, r3, __vt__9JKRThread@l /* 0x803CC114@l */ -/* 802D16E4 90 1D 00 00 */ stw r0, 0(r29) -/* 802D16E8 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D16EC 7F A4 EB 78 */ mr r4, r29 -/* 802D16F0 48 00 A7 0D */ bl __ct__10JSUPtrLinkFPv -/* 802D16F4 38 00 00 00 */ li r0, 0 -/* 802D16F8 90 1D 00 68 */ stw r0, 0x68(r29) -/* 802D16FC 90 1D 00 64 */ stw r0, 0x64(r29) -/* 802D1700 90 1D 00 6C */ stw r0, 0x6c(r29) -/* 802D1704 98 1D 00 60 */ stb r0, 0x60(r29) -/* 802D1708 90 1D 00 70 */ stw r0, 0x70(r29) -/* 802D170C 90 1D 00 28 */ stw r0, 0x28(r29) -/* 802D1710 93 DD 00 2C */ stw r30, 0x2c(r29) -/* 802D1714 80 7E 03 04 */ lwz r3, 0x304(r30) -/* 802D1718 80 1E 03 08 */ lwz r0, 0x308(r30) -/* 802D171C 7C 03 00 50 */ subf r0, r3, r0 -/* 802D1720 90 1D 00 5C */ stw r0, 0x5c(r29) -/* 802D1724 80 1E 03 04 */ lwz r0, 0x304(r30) -/* 802D1728 90 1D 00 58 */ stw r0, 0x58(r29) -/* 802D172C 7F A3 EB 78 */ mr r3, r29 -/* 802D1730 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -/* 802D1734 7F E5 FB 78 */ mr r5, r31 -/* 802D1738 48 00 00 F9 */ bl setCommon_mesgQueue__9JKRThreadFP7JKRHeapi -/* 802D173C 7F A3 EB 78 */ mr r3, r29 -/* 802D1740 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D1744 48 09 0A E5 */ bl _restgpr_29 -/* 802D1748 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D174C 7C 08 03 A6 */ mtlr r0 -/* 802D1750 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D1754 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFUlii.s b/asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFUlii.s deleted file mode 100644 index 75de18aef1..0000000000 --- a/asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFUlii.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_802D1568: -/* 802D1568 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D156C 7C 08 02 A6 */ mflr r0 -/* 802D1570 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D1574 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D1578 48 09 0C 61 */ bl _savegpr_28 -/* 802D157C 7C 7C 1B 78 */ mr r28, r3 -/* 802D1580 7C 9D 23 78 */ mr r29, r4 -/* 802D1584 7C BE 2B 78 */ mr r30, r5 -/* 802D1588 7C DF 33 78 */ mr r31, r6 -/* 802D158C 4B FF FE F1 */ bl __ct__11JKRDisposerFv -/* 802D1590 3C 60 80 3D */ lis r3, __vt__9JKRThread@ha /* 0x803CC114@ha */ -/* 802D1594 38 03 C1 14 */ addi r0, r3, __vt__9JKRThread@l /* 0x803CC114@l */ -/* 802D1598 90 1C 00 00 */ stw r0, 0(r28) -/* 802D159C 38 7C 00 18 */ addi r3, r28, 0x18 -/* 802D15A0 7F 84 E3 78 */ mr r4, r28 -/* 802D15A4 48 00 A8 59 */ bl __ct__10JSUPtrLinkFPv -/* 802D15A8 38 00 00 00 */ li r0, 0 -/* 802D15AC 90 1C 00 68 */ stw r0, 0x68(r28) -/* 802D15B0 90 1C 00 64 */ stw r0, 0x64(r28) -/* 802D15B4 90 1C 00 6C */ stw r0, 0x6c(r28) -/* 802D15B8 98 1C 00 60 */ stb r0, 0x60(r28) -/* 802D15BC 90 1C 00 70 */ stw r0, 0x70(r28) -/* 802D15C0 7F 83 E3 78 */ mr r3, r28 -/* 802D15C4 4B FF D2 79 */ bl findFromRoot__7JKRHeapFPv -/* 802D15C8 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D15CC 40 82 00 08 */ bne lbl_802D15D4 -/* 802D15D0 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap(r13) -lbl_802D15D4: -/* 802D15D4 7F 83 E3 78 */ mr r3, r28 -/* 802D15D8 7F A5 EB 78 */ mr r5, r29 -/* 802D15DC 7F E6 FB 78 */ mr r6, r31 -/* 802D15E0 48 00 02 C5 */ bl setCommon_heapSpecified__9JKRThreadFP7JKRHeapUli -/* 802D15E4 7F 83 E3 78 */ mr r3, r28 -/* 802D15E8 80 9C 00 28 */ lwz r4, 0x28(r28) -/* 802D15EC 7F C5 F3 78 */ mr r5, r30 -/* 802D15F0 48 00 02 41 */ bl setCommon_mesgQueue__9JKRThreadFP7JKRHeapi -/* 802D15F4 7F 83 E3 78 */ mr r3, r28 -/* 802D15F8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D15FC 48 09 0C 29 */ bl _restgpr_28 -/* 802D1600 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D1604 7C 08 03 A6 */ mtlr r0 -/* 802D1608 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D160C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/__dt__9JKRThreadFv.s b/asm/JSystem/JKernel/JKRThread/__dt__9JKRThreadFv.s deleted file mode 100644 index c5ee8fca06..0000000000 --- a/asm/JSystem/JKernel/JKRThread/__dt__9JKRThreadFv.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_802D1758: -/* 802D1758 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D175C 7C 08 02 A6 */ mflr r0 -/* 802D1760 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1764 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D1768 93 C1 00 08 */ stw r30, 8(r1) -/* 802D176C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D1770 7C 9F 23 78 */ mr r31, r4 -/* 802D1774 41 82 00 A0 */ beq lbl_802D1814 -/* 802D1778 3C 60 80 3D */ lis r3, __vt__9JKRThread@ha /* 0x803CC114@ha */ -/* 802D177C 38 03 C1 14 */ addi r0, r3, __vt__9JKRThread@l /* 0x803CC114@l */ -/* 802D1780 90 1E 00 00 */ stw r0, 0(r30) -/* 802D1784 3C 60 80 43 */ lis r3, sThreadList__9JKRThread@ha /* 0x8043428C@ha */ -/* 802D1788 38 63 42 8C */ addi r3, r3, sThreadList__9JKRThread@l /* 0x8043428C@l */ -/* 802D178C 38 9E 00 18 */ addi r4, r30, 0x18 -/* 802D1790 48 00 A9 CD */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D1794 80 1E 00 28 */ lwz r0, 0x28(r30) -/* 802D1798 28 00 00 00 */ cmplwi r0, 0 -/* 802D179C 41 82 00 3C */ beq lbl_802D17D8 -/* 802D17A0 80 7E 00 2C */ lwz r3, 0x2c(r30) -/* 802D17A4 48 06 F4 ED */ bl OSIsThreadTerminated -/* 802D17A8 2C 03 00 00 */ cmpwi r3, 0 -/* 802D17AC 40 82 00 14 */ bne lbl_802D17C0 -/* 802D17B0 80 7E 00 2C */ lwz r3, 0x2c(r30) -/* 802D17B4 48 06 FF 61 */ bl OSDetachThread -/* 802D17B8 80 7E 00 2C */ lwz r3, 0x2c(r30) -/* 802D17BC 48 06 FD 9D */ bl OSCancelThread -lbl_802D17C0: -/* 802D17C0 80 7E 00 58 */ lwz r3, 0x58(r30) -/* 802D17C4 80 9E 00 28 */ lwz r4, 0x28(r30) -/* 802D17C8 4B FF CD 39 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D17CC 80 7E 00 2C */ lwz r3, 0x2c(r30) -/* 802D17D0 80 9E 00 28 */ lwz r4, 0x28(r30) -/* 802D17D4 4B FF CD 2D */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D17D8: -/* 802D17D8 80 7E 00 50 */ lwz r3, 0x50(r30) -/* 802D17DC 38 80 00 00 */ li r4, 0 -/* 802D17E0 4B FF CD 21 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D17E4 34 1E 00 18 */ addic. r0, r30, 0x18 -/* 802D17E8 41 82 00 10 */ beq lbl_802D17F8 -/* 802D17EC 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D17F0 38 80 00 00 */ li r4, 0 -/* 802D17F4 48 00 A6 21 */ bl __dt__10JSUPtrLinkFv -lbl_802D17F8: -/* 802D17F8 7F C3 F3 78 */ mr r3, r30 -/* 802D17FC 38 80 00 00 */ li r4, 0 -/* 802D1800 4B FF FC E5 */ bl __dt__11JKRDisposerFv -/* 802D1804 7F E0 07 35 */ extsh. r0, r31 -/* 802D1808 40 81 00 0C */ ble lbl_802D1814 -/* 802D180C 7F C3 F3 78 */ mr r3, r30 -/* 802D1810 4B FF D5 2D */ bl __dl__FPv -lbl_802D1814: -/* 802D1814 7F C3 F3 78 */ mr r3, r30 -/* 802D1818 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D181C 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D1820 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D1824 7C 08 03 A6 */ mtlr r0 -/* 802D1828 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D182C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/__sinit_JKRThread_cpp.s b/asm/JSystem/JKernel/JKRThread/__sinit_JKRThread_cpp.s deleted file mode 100644 index aed90e1a8c..0000000000 --- a/asm/JSystem/JKernel/JKRThread/__sinit_JKRThread_cpp.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_802D1E94: -/* 802D1E94 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1E98 7C 08 02 A6 */ mflr r0 -/* 802D1E9C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1EA0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D1EA4 3C 60 80 43 */ lis r3, lit_481@ha /* 0x80434280@ha */ -/* 802D1EA8 3B E3 42 80 */ addi r31, r3, lit_481@l /* 0x80434280@l */ -/* 802D1EAC 38 7F 00 0C */ addi r3, r31, 0xc -/* 802D1EB0 38 80 00 00 */ li r4, 0 -/* 802D1EB4 48 00 9F C1 */ bl __ct__10JSUPtrListFb -/* 802D1EB8 38 7F 00 0C */ addi r3, r31, 0xc -/* 802D1EBC 3C 80 80 2D */ lis r4, func_802D1F50@ha /* 0x802D1F50@ha */ -/* 802D1EC0 38 84 1F 50 */ addi r4, r4, func_802D1F50@l /* 0x802D1F50@l */ -/* 802D1EC4 38 BF 00 00 */ addi r5, r31, 0 -/* 802D1EC8 48 08 FD 5D */ bl __register_global_object -/* 802D1ECC 38 7F 00 24 */ addi r3, r31, 0x24 -/* 802D1ED0 48 00 A0 45 */ bl initiate__10JSUPtrListFv -/* 802D1ED4 38 7F 00 24 */ addi r3, r31, 0x24 -/* 802D1ED8 3C 80 80 2D */ lis r4, func_802D1EFC@ha /* 0x802D1EFC@ha */ -/* 802D1EDC 38 84 1E FC */ addi r4, r4, func_802D1EFC@l /* 0x802D1EFC@l */ -/* 802D1EE0 38 BF 00 18 */ addi r5, r31, 0x18 -/* 802D1EE4 48 08 FD 41 */ bl __register_global_object -/* 802D1EE8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D1EEC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D1EF0 7C 08 03 A6 */ mtlr r0 -/* 802D1EF4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1EF8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/func_802D1EFC.s b/asm/JSystem/JKernel/JKRThread/func_802D1EFC.s deleted file mode 100644 index cb241bf3a1..0000000000 --- a/asm/JSystem/JKernel/JKRThread/func_802D1EFC.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802D1EFC: -/* 802D1EFC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1F00 7C 08 02 A6 */ mflr r0 -/* 802D1F04 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1F08 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D1F0C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D1F10 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D1F14 7C 9F 23 78 */ mr r31, r4 -/* 802D1F18 41 82 00 1C */ beq lbl_802D1F34 -/* 802D1F1C 38 80 00 00 */ li r4, 0 -/* 802D1F20 48 00 9F 8D */ bl __dt__10JSUPtrListFv -/* 802D1F24 7F E0 07 35 */ extsh. r0, r31 -/* 802D1F28 40 81 00 0C */ ble lbl_802D1F34 -/* 802D1F2C 7F C3 F3 78 */ mr r3, r30 -/* 802D1F30 4B FF CE 0D */ bl __dl__FPv -lbl_802D1F34: -/* 802D1F34 7F C3 F3 78 */ mr r3, r30 -/* 802D1F38 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D1F3C 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D1F40 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D1F44 7C 08 03 A6 */ mtlr r0 -/* 802D1F48 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1F4C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/func_802D1F50.s b/asm/JSystem/JKernel/JKRThread/func_802D1F50.s deleted file mode 100644 index 0368eb2ac1..0000000000 --- a/asm/JSystem/JKernel/JKRThread/func_802D1F50.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802D1F50: -/* 802D1F50 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1F54 7C 08 02 A6 */ mflr r0 -/* 802D1F58 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1F5C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D1F60 93 C1 00 08 */ stw r30, 8(r1) -/* 802D1F64 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D1F68 7C 9F 23 78 */ mr r31, r4 -/* 802D1F6C 41 82 00 1C */ beq lbl_802D1F88 -/* 802D1F70 38 80 00 00 */ li r4, 0 -/* 802D1F74 48 00 9F 39 */ bl __dt__10JSUPtrListFv -/* 802D1F78 7F E0 07 35 */ extsh. r0, r31 -/* 802D1F7C 40 81 00 0C */ ble lbl_802D1F88 -/* 802D1F80 7F C3 F3 78 */ mr r3, r30 -/* 802D1F84 4B FF CD B9 */ bl __dl__FPv -lbl_802D1F88: -/* 802D1F88 7F C3 F3 78 */ mr r3, r30 -/* 802D1F8C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D1F90 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D1F94 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D1F98 7C 08 03 A6 */ mtlr r0 -/* 802D1F9C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1FA0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/searchThread__9JKRThreadFP8OSThread.s b/asm/JSystem/JKernel/JKRThread/searchThread__9JKRThreadFP8OSThread.s deleted file mode 100644 index 31e1745693..0000000000 --- a/asm/JSystem/JKernel/JKRThread/searchThread__9JKRThreadFP8OSThread.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_802D1960: -/* 802D1960 3C 80 80 43 */ lis r4, sThreadList__9JKRThread@ha /* 0x8043428C@ha */ -/* 802D1964 38 84 42 8C */ addi r4, r4, sThreadList__9JKRThread@l /* 0x8043428C@l */ -/* 802D1968 80 84 00 00 */ lwz r4, 0(r4) -/* 802D196C 48 00 00 20 */ b lbl_802D198C -lbl_802D1970: -/* 802D1970 80 A4 00 00 */ lwz r5, 0(r4) -/* 802D1974 80 05 00 2C */ lwz r0, 0x2c(r5) -/* 802D1978 7C 00 18 40 */ cmplw r0, r3 -/* 802D197C 40 82 00 0C */ bne lbl_802D1988 -/* 802D1980 7C A3 2B 78 */ mr r3, r5 -/* 802D1984 4E 80 00 20 */ blr -lbl_802D1988: -/* 802D1988 80 84 00 0C */ lwz r4, 0xc(r4) -lbl_802D198C: -/* 802D198C 28 04 00 00 */ cmplwi r4, 0 -/* 802D1990 40 82 FF E0 */ bne lbl_802D1970 -/* 802D1994 38 60 00 00 */ li r3, 0 -/* 802D1998 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/setCommon_heapSpecified__9JKRThreadFP7JKRHeapUli.s b/asm/JSystem/JKernel/JKRThread/setCommon_heapSpecified__9JKRThreadFP7JKRHeapUli.s deleted file mode 100644 index 8eed90132f..0000000000 --- a/asm/JSystem/JKernel/JKRThread/setCommon_heapSpecified__9JKRThreadFP7JKRHeapUli.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_802D18A4: -/* 802D18A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D18A8 7C 08 02 A6 */ mflr r0 -/* 802D18AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D18B0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D18B4 93 C1 00 08 */ stw r30, 8(r1) -/* 802D18B8 7C 7E 1B 78 */ mr r30, r3 -/* 802D18BC 7C DF 33 78 */ mr r31, r6 -/* 802D18C0 90 83 00 28 */ stw r4, 0x28(r3) -/* 802D18C4 54 A0 00 34 */ rlwinm r0, r5, 0, 0, 0x1a -/* 802D18C8 90 03 00 5C */ stw r0, 0x5c(r3) -/* 802D18CC 80 63 00 5C */ lwz r3, 0x5c(r3) -/* 802D18D0 38 80 00 20 */ li r4, 0x20 -/* 802D18D4 80 BE 00 28 */ lwz r5, 0x28(r30) -/* 802D18D8 4B FF CB 9D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D18DC 90 7E 00 58 */ stw r3, 0x58(r30) -/* 802D18E0 38 60 03 18 */ li r3, 0x318 -/* 802D18E4 38 80 00 20 */ li r4, 0x20 -/* 802D18E8 80 BE 00 28 */ lwz r5, 0x28(r30) -/* 802D18EC 4B FF CB 89 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D18F0 90 7E 00 2C */ stw r3, 0x2c(r30) -/* 802D18F4 80 FE 00 5C */ lwz r7, 0x5c(r30) -/* 802D18F8 80 7E 00 2C */ lwz r3, 0x2c(r30) -/* 802D18FC 3C 80 80 2D */ lis r4, start__9JKRThreadFPv@ha /* 0x802D1934@ha */ -/* 802D1900 38 84 19 34 */ addi r4, r4, start__9JKRThreadFPv@l /* 0x802D1934@l */ -/* 802D1904 7F C5 F3 78 */ mr r5, r30 -/* 802D1908 80 1E 00 58 */ lwz r0, 0x58(r30) -/* 802D190C 7C C0 3A 14 */ add r6, r0, r7 -/* 802D1910 7F E8 FB 78 */ mr r8, r31 -/* 802D1914 39 20 00 01 */ li r9, 1 -/* 802D1918 48 06 F9 75 */ bl OSCreateThread -/* 802D191C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D1920 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D1924 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D1928 7C 08 03 A6 */ mtlr r0 -/* 802D192C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1930 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/setCommon_mesgQueue__9JKRThreadFP7JKRHeapi.s b/asm/JSystem/JKernel/JKRThread/setCommon_mesgQueue__9JKRThreadFP7JKRHeapi.s deleted file mode 100644 index b36080d7fc..0000000000 --- a/asm/JSystem/JKernel/JKRThread/setCommon_mesgQueue__9JKRThreadFP7JKRHeapi.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_802D1830: -/* 802D1830 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1834 7C 08 02 A6 */ mflr r0 -/* 802D1838 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D183C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D1840 7C 7F 1B 78 */ mr r31, r3 -/* 802D1844 7C 86 23 78 */ mr r6, r4 -/* 802D1848 90 A3 00 54 */ stw r5, 0x54(r3) -/* 802D184C 80 03 00 54 */ lwz r0, 0x54(r3) -/* 802D1850 54 03 10 3A */ slwi r3, r0, 2 -/* 802D1854 38 80 00 00 */ li r4, 0 -/* 802D1858 7C C5 33 78 */ mr r5, r6 -/* 802D185C 4B FF CC 19 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D1860 90 7F 00 50 */ stw r3, 0x50(r31) -/* 802D1864 38 7F 00 30 */ addi r3, r31, 0x30 -/* 802D1868 80 9F 00 50 */ lwz r4, 0x50(r31) -/* 802D186C 80 BF 00 54 */ lwz r5, 0x54(r31) -/* 802D1870 48 06 D1 25 */ bl OSInitMessageQueue -/* 802D1874 3C 60 80 43 */ lis r3, sThreadList__9JKRThread@ha /* 0x8043428C@ha */ -/* 802D1878 38 63 42 8C */ addi r3, r3, sThreadList__9JKRThread@l /* 0x8043428C@l */ -/* 802D187C 38 9F 00 18 */ addi r4, r31, 0x18 -/* 802D1880 48 00 A6 CD */ bl append__10JSUPtrListFP10JSUPtrLink -/* 802D1884 38 00 00 00 */ li r0, 0 -/* 802D1888 90 1F 00 74 */ stw r0, 0x74(r31) -/* 802D188C 90 1F 00 78 */ stw r0, 0x78(r31) -/* 802D1890 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D1894 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D1898 7C 08 03 A6 */ mtlr r0 -/* 802D189C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D18A0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRThread/start__9JKRThreadFPv.s b/asm/JSystem/JKernel/JKRThread/start__9JKRThreadFPv.s deleted file mode 100644 index eb4c41b94c..0000000000 --- a/asm/JSystem/JKernel/JKRThread/start__9JKRThreadFPv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802D1934: -/* 802D1934 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1938 7C 08 02 A6 */ mflr r0 -/* 802D193C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1940 81 83 00 00 */ lwz r12, 0(r3) -/* 802D1944 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 802D1948 7D 89 03 A6 */ mtctr r12 -/* 802D194C 4E 80 04 21 */ bctrl -/* 802D1950 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D1954 7C 08 03 A6 */ mtlr r0 -/* 802D1958 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D195C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/__ct__10JSUPtrLinkFPv.s b/asm/JSystem/JSupport/JSUList/__ct__10JSUPtrLinkFPv.s deleted file mode 100644 index 889a62b8a7..0000000000 --- a/asm/JSystem/JSupport/JSUList/__ct__10JSUPtrLinkFPv.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_802DBDFC: -/* 802DBDFC 38 00 00 00 */ li r0, 0 -/* 802DBE00 90 03 00 04 */ stw r0, 4(r3) -/* 802DBE04 90 83 00 00 */ stw r4, 0(r3) -/* 802DBE08 90 03 00 08 */ stw r0, 8(r3) -/* 802DBE0C 90 03 00 0C */ stw r0, 0xc(r3) -/* 802DBE10 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/__ct__10JSUPtrListFb.s b/asm/JSystem/JSupport/JSUList/__ct__10JSUPtrListFb.s deleted file mode 100644 index d467e84f66..0000000000 --- a/asm/JSystem/JSupport/JSUList/__ct__10JSUPtrListFb.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_802DBE74: -/* 802DBE74 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DBE78 7C 08 02 A6 */ mflr r0 -/* 802DBE7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DBE80 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DBE84 7C 7F 1B 78 */ mr r31, r3 -/* 802DBE88 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802DBE8C 41 82 00 08 */ beq lbl_802DBE94 -/* 802DBE90 48 00 00 85 */ bl initiate__10JSUPtrListFv -lbl_802DBE94: -/* 802DBE94 7F E3 FB 78 */ mr r3, r31 -/* 802DBE98 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DBE9C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DBEA0 7C 08 03 A6 */ mtlr r0 -/* 802DBEA4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DBEA8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/__dt__10JSUPtrLinkFv.s b/asm/JSystem/JSupport/JSUList/__dt__10JSUPtrLinkFv.s deleted file mode 100644 index ebf025e6e8..0000000000 --- a/asm/JSystem/JSupport/JSUList/__dt__10JSUPtrLinkFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_802DBE14: -/* 802DBE14 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DBE18 7C 08 02 A6 */ mflr r0 -/* 802DBE1C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DBE20 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DBE24 93 C1 00 08 */ stw r30, 8(r1) -/* 802DBE28 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802DBE2C 7C 9F 23 78 */ mr r31, r4 -/* 802DBE30 41 82 00 28 */ beq lbl_802DBE58 -/* 802DBE34 80 7E 00 04 */ lwz r3, 4(r30) -/* 802DBE38 28 03 00 00 */ cmplwi r3, 0 -/* 802DBE3C 41 82 00 0C */ beq lbl_802DBE48 -/* 802DBE40 7F C4 F3 78 */ mr r4, r30 -/* 802DBE44 48 00 03 19 */ bl remove__10JSUPtrListFP10JSUPtrLink -lbl_802DBE48: -/* 802DBE48 7F E0 07 35 */ extsh. r0, r31 -/* 802DBE4C 40 81 00 0C */ ble lbl_802DBE58 -/* 802DBE50 7F C3 F3 78 */ mr r3, r30 -/* 802DBE54 4B FF 2E E9 */ bl __dl__FPv -lbl_802DBE58: -/* 802DBE58 7F C3 F3 78 */ mr r3, r30 -/* 802DBE5C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DBE60 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DBE64 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DBE68 7C 08 03 A6 */ mtlr r0 -/* 802DBE6C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DBE70 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/__dt__10JSUPtrListFv.s b/asm/JSystem/JSupport/JSUList/__dt__10JSUPtrListFv.s deleted file mode 100644 index 1599de1f3e..0000000000 --- a/asm/JSystem/JSupport/JSUList/__dt__10JSUPtrListFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_802DBEAC: -/* 802DBEAC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DBEB0 7C 08 02 A6 */ mflr r0 -/* 802DBEB4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DBEB8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DBEBC 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802DBEC0 41 82 00 3C */ beq lbl_802DBEFC -/* 802DBEC4 80 BF 00 00 */ lwz r5, 0(r31) -/* 802DBEC8 38 C0 00 00 */ li r6, 0 -/* 802DBECC 38 60 00 00 */ li r3, 0 -/* 802DBED0 48 00 00 10 */ b lbl_802DBEE0 -lbl_802DBED4: -/* 802DBED4 90 65 00 04 */ stw r3, 4(r5) -/* 802DBED8 80 A5 00 0C */ lwz r5, 0xc(r5) -/* 802DBEDC 38 C6 00 01 */ addi r6, r6, 1 -lbl_802DBEE0: -/* 802DBEE0 80 1F 00 08 */ lwz r0, 8(r31) -/* 802DBEE4 7C 06 00 40 */ cmplw r6, r0 -/* 802DBEE8 41 80 FF EC */ blt lbl_802DBED4 -/* 802DBEEC 7C 80 07 35 */ extsh. r0, r4 -/* 802DBEF0 40 81 00 0C */ ble lbl_802DBEFC -/* 802DBEF4 7F E3 FB 78 */ mr r3, r31 -/* 802DBEF8 4B FF 2E 45 */ bl __dl__FPv -lbl_802DBEFC: -/* 802DBEFC 7F E3 FB 78 */ mr r3, r31 -/* 802DBF00 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DBF04 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DBF08 7C 08 03 A6 */ mtlr r0 -/* 802DBF0C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DBF10 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/append__10JSUPtrListFP10JSUPtrLink.s b/asm/JSystem/JSupport/JSUList/append__10JSUPtrListFP10JSUPtrLink.s deleted file mode 100644 index 8dd6fe861f..0000000000 --- a/asm/JSystem/JSupport/JSUList/append__10JSUPtrListFP10JSUPtrLink.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_802DBF4C: -/* 802DBF4C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DBF50 7C 08 02 A6 */ mflr r0 -/* 802DBF54 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DBF58 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DBF5C 48 08 62 81 */ bl _savegpr_29 -/* 802DBF60 7C 7D 1B 78 */ mr r29, r3 -/* 802DBF64 7C 9E 23 78 */ mr r30, r4 -/* 802DBF68 80 64 00 04 */ lwz r3, 4(r4) -/* 802DBF6C 7C 60 00 34 */ cntlzw r0, r3 -/* 802DBF70 54 1F D9 7E */ srwi r31, r0, 5 -/* 802DBF74 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 802DBF78 40 82 00 0C */ bne lbl_802DBF84 -/* 802DBF7C 48 00 01 E1 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802DBF80 7C 7F 1B 78 */ mr r31, r3 -lbl_802DBF84: -/* 802DBF84 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 802DBF88 41 82 00 4C */ beq lbl_802DBFD4 -/* 802DBF8C 80 1D 00 08 */ lwz r0, 8(r29) -/* 802DBF90 28 00 00 00 */ cmplwi r0, 0 -/* 802DBF94 40 82 00 14 */ bne lbl_802DBFA8 -/* 802DBF98 7F A3 EB 78 */ mr r3, r29 -/* 802DBF9C 7F C4 F3 78 */ mr r4, r30 -/* 802DBFA0 4B FF FF 89 */ bl setFirst__10JSUPtrListFP10JSUPtrLink -/* 802DBFA4 48 00 00 30 */ b lbl_802DBFD4 -lbl_802DBFA8: -/* 802DBFA8 93 BE 00 04 */ stw r29, 4(r30) -/* 802DBFAC 80 1D 00 04 */ lwz r0, 4(r29) -/* 802DBFB0 90 1E 00 08 */ stw r0, 8(r30) -/* 802DBFB4 38 00 00 00 */ li r0, 0 -/* 802DBFB8 90 1E 00 0C */ stw r0, 0xc(r30) -/* 802DBFBC 80 7D 00 04 */ lwz r3, 4(r29) -/* 802DBFC0 93 C3 00 0C */ stw r30, 0xc(r3) -/* 802DBFC4 93 DD 00 04 */ stw r30, 4(r29) -/* 802DBFC8 80 7D 00 08 */ lwz r3, 8(r29) -/* 802DBFCC 38 03 00 01 */ addi r0, r3, 1 -/* 802DBFD0 90 1D 00 08 */ stw r0, 8(r29) -lbl_802DBFD4: -/* 802DBFD4 7F E3 FB 78 */ mr r3, r31 -/* 802DBFD8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DBFDC 48 08 62 4D */ bl _restgpr_29 -/* 802DBFE0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DBFE4 7C 08 03 A6 */ mtlr r0 -/* 802DBFE8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DBFEC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/getNthLink__10JSUPtrListCFUl.s b/asm/JSystem/JSupport/JSUList/getNthLink__10JSUPtrListCFUl.s deleted file mode 100644 index 28d9a10a0b..0000000000 --- a/asm/JSystem/JSupport/JSUList/getNthLink__10JSUPtrListCFUl.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_802DC20C: -/* 802DC20C 80 03 00 08 */ lwz r0, 8(r3) -/* 802DC210 7C 04 00 40 */ cmplw r4, r0 -/* 802DC214 41 80 00 0C */ blt lbl_802DC220 -/* 802DC218 38 60 00 00 */ li r3, 0 -/* 802DC21C 4E 80 00 20 */ blr -lbl_802DC220: -/* 802DC220 80 63 00 00 */ lwz r3, 0(r3) -/* 802DC224 7C 89 03 A6 */ mtctr r4 -/* 802DC228 28 04 00 00 */ cmplwi r4, 0 -/* 802DC22C 4C 81 00 20 */ blelr -lbl_802DC230: -/* 802DC230 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802DC234 42 00 FF FC */ bdnz lbl_802DC230 -/* 802DC238 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/initiate__10JSUPtrListFv.s b/asm/JSystem/JSupport/JSUList/initiate__10JSUPtrListFv.s deleted file mode 100644 index 97119655a4..0000000000 --- a/asm/JSystem/JSupport/JSUList/initiate__10JSUPtrListFv.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_802DBF14: -/* 802DBF14 38 00 00 00 */ li r0, 0 -/* 802DBF18 90 03 00 00 */ stw r0, 0(r3) -/* 802DBF1C 90 03 00 04 */ stw r0, 4(r3) -/* 802DBF20 90 03 00 08 */ stw r0, 8(r3) -/* 802DBF24 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink.s b/asm/JSystem/JSupport/JSUList/insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink.s deleted file mode 100644 index b0cf6d3a26..0000000000 --- a/asm/JSystem/JSupport/JSUList/insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_802DC094: -/* 802DC094 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DC098 7C 08 02 A6 */ mflr r0 -/* 802DC09C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DC0A0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DC0A4 48 08 61 39 */ bl _savegpr_29 -/* 802DC0A8 7C 7D 1B 78 */ mr r29, r3 -/* 802DC0AC 7C 9E 23 78 */ mr r30, r4 -/* 802DC0B0 7C BF 2B 78 */ mr r31, r5 -/* 802DC0B4 80 03 00 00 */ lwz r0, 0(r3) -/* 802DC0B8 7C 1E 00 40 */ cmplw r30, r0 -/* 802DC0BC 40 82 00 10 */ bne lbl_802DC0CC -/* 802DC0C0 7F E4 FB 78 */ mr r4, r31 -/* 802DC0C4 4B FF FF 2D */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802DC0C8 48 00 00 7C */ b lbl_802DC144 -lbl_802DC0CC: -/* 802DC0CC 28 1E 00 00 */ cmplwi r30, 0 -/* 802DC0D0 40 82 00 10 */ bne lbl_802DC0E0 -/* 802DC0D4 7F E4 FB 78 */ mr r4, r31 -/* 802DC0D8 4B FF FE 75 */ bl append__10JSUPtrListFP10JSUPtrLink -/* 802DC0DC 48 00 00 68 */ b lbl_802DC144 -lbl_802DC0E0: -/* 802DC0E0 80 1E 00 04 */ lwz r0, 4(r30) -/* 802DC0E4 7C 00 E8 40 */ cmplw r0, r29 -/* 802DC0E8 41 82 00 0C */ beq lbl_802DC0F4 -/* 802DC0EC 38 60 00 00 */ li r3, 0 -/* 802DC0F0 48 00 00 54 */ b lbl_802DC144 -lbl_802DC0F4: -/* 802DC0F4 80 7F 00 04 */ lwz r3, 4(r31) -/* 802DC0F8 7C 60 00 34 */ cntlzw r0, r3 -/* 802DC0FC 54 04 D9 7E */ srwi r4, r0, 5 -/* 802DC100 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 802DC104 40 82 00 10 */ bne lbl_802DC114 -/* 802DC108 7F E4 FB 78 */ mr r4, r31 -/* 802DC10C 48 00 00 51 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802DC110 7C 64 1B 78 */ mr r4, r3 -lbl_802DC114: -/* 802DC114 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802DC118 41 82 00 28 */ beq lbl_802DC140 -/* 802DC11C 80 7E 00 08 */ lwz r3, 8(r30) -/* 802DC120 93 BF 00 04 */ stw r29, 4(r31) -/* 802DC124 90 7F 00 08 */ stw r3, 8(r31) -/* 802DC128 93 DF 00 0C */ stw r30, 0xc(r31) -/* 802DC12C 93 E3 00 0C */ stw r31, 0xc(r3) -/* 802DC130 93 FE 00 08 */ stw r31, 8(r30) -/* 802DC134 80 7D 00 08 */ lwz r3, 8(r29) -/* 802DC138 38 03 00 01 */ addi r0, r3, 1 -/* 802DC13C 90 1D 00 08 */ stw r0, 8(r29) -lbl_802DC140: -/* 802DC140 7C 83 23 78 */ mr r3, r4 -lbl_802DC144: -/* 802DC144 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DC148 48 08 60 E1 */ bl _restgpr_29 -/* 802DC14C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DC150 7C 08 03 A6 */ mtlr r0 -/* 802DC154 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DC158 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/prepend__10JSUPtrListFP10JSUPtrLink.s b/asm/JSystem/JSupport/JSUList/prepend__10JSUPtrListFP10JSUPtrLink.s deleted file mode 100644 index c162fe0e1d..0000000000 --- a/asm/JSystem/JSupport/JSUList/prepend__10JSUPtrListFP10JSUPtrLink.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_802DBFF0: -/* 802DBFF0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DBFF4 7C 08 02 A6 */ mflr r0 -/* 802DBFF8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DBFFC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DC000 48 08 61 DD */ bl _savegpr_29 -/* 802DC004 7C 7D 1B 78 */ mr r29, r3 -/* 802DC008 7C 9E 23 78 */ mr r30, r4 -/* 802DC00C 80 64 00 04 */ lwz r3, 4(r4) -/* 802DC010 7C 60 00 34 */ cntlzw r0, r3 -/* 802DC014 54 1F D9 7E */ srwi r31, r0, 5 -/* 802DC018 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 802DC01C 40 82 00 0C */ bne lbl_802DC028 -/* 802DC020 48 00 01 3D */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802DC024 7C 7F 1B 78 */ mr r31, r3 -lbl_802DC028: -/* 802DC028 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 802DC02C 41 82 00 4C */ beq lbl_802DC078 -/* 802DC030 80 1D 00 08 */ lwz r0, 8(r29) -/* 802DC034 28 00 00 00 */ cmplwi r0, 0 -/* 802DC038 40 82 00 14 */ bne lbl_802DC04C -/* 802DC03C 7F A3 EB 78 */ mr r3, r29 -/* 802DC040 7F C4 F3 78 */ mr r4, r30 -/* 802DC044 4B FF FE E5 */ bl setFirst__10JSUPtrListFP10JSUPtrLink -/* 802DC048 48 00 00 30 */ b lbl_802DC078 -lbl_802DC04C: -/* 802DC04C 93 BE 00 04 */ stw r29, 4(r30) -/* 802DC050 38 00 00 00 */ li r0, 0 -/* 802DC054 90 1E 00 08 */ stw r0, 8(r30) -/* 802DC058 80 1D 00 00 */ lwz r0, 0(r29) -/* 802DC05C 90 1E 00 0C */ stw r0, 0xc(r30) -/* 802DC060 80 7D 00 00 */ lwz r3, 0(r29) -/* 802DC064 93 C3 00 08 */ stw r30, 8(r3) -/* 802DC068 93 DD 00 00 */ stw r30, 0(r29) -/* 802DC06C 80 7D 00 08 */ lwz r3, 8(r29) -/* 802DC070 38 03 00 01 */ addi r0, r3, 1 -/* 802DC074 90 1D 00 08 */ stw r0, 8(r29) -lbl_802DC078: -/* 802DC078 7F E3 FB 78 */ mr r3, r31 -/* 802DC07C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DC080 48 08 61 A9 */ bl _restgpr_29 -/* 802DC084 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DC088 7C 08 03 A6 */ mtlr r0 -/* 802DC08C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DC090 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/remove__10JSUPtrListFP10JSUPtrLink.s b/asm/JSystem/JSupport/JSUList/remove__10JSUPtrListFP10JSUPtrLink.s deleted file mode 100644 index 95789bfc57..0000000000 --- a/asm/JSystem/JSupport/JSUList/remove__10JSUPtrListFP10JSUPtrLink.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_802DC15C: -/* 802DC15C 80 04 00 04 */ lwz r0, 4(r4) -/* 802DC160 7C 00 18 50 */ subf r0, r0, r3 -/* 802DC164 7C 00 00 34 */ cntlzw r0, r0 -/* 802DC168 54 06 D9 7E */ srwi r6, r0, 5 -/* 802DC16C 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 802DC170 41 82 00 94 */ beq lbl_802DC204 -/* 802DC174 80 03 00 08 */ lwz r0, 8(r3) -/* 802DC178 28 00 00 01 */ cmplwi r0, 1 -/* 802DC17C 40 82 00 14 */ bne lbl_802DC190 -/* 802DC180 38 00 00 00 */ li r0, 0 -/* 802DC184 90 03 00 00 */ stw r0, 0(r3) -/* 802DC188 90 03 00 04 */ stw r0, 4(r3) -/* 802DC18C 48 00 00 64 */ b lbl_802DC1F0 -lbl_802DC190: -/* 802DC190 80 03 00 00 */ lwz r0, 0(r3) -/* 802DC194 7C 04 00 40 */ cmplw r4, r0 -/* 802DC198 40 82 00 1C */ bne lbl_802DC1B4 -/* 802DC19C 38 00 00 00 */ li r0, 0 -/* 802DC1A0 80 A4 00 0C */ lwz r5, 0xc(r4) -/* 802DC1A4 90 05 00 08 */ stw r0, 8(r5) -/* 802DC1A8 80 04 00 0C */ lwz r0, 0xc(r4) -/* 802DC1AC 90 03 00 00 */ stw r0, 0(r3) -/* 802DC1B0 48 00 00 40 */ b lbl_802DC1F0 -lbl_802DC1B4: -/* 802DC1B4 80 03 00 04 */ lwz r0, 4(r3) -/* 802DC1B8 7C 04 00 40 */ cmplw r4, r0 -/* 802DC1BC 40 82 00 1C */ bne lbl_802DC1D8 -/* 802DC1C0 38 00 00 00 */ li r0, 0 -/* 802DC1C4 80 A4 00 08 */ lwz r5, 8(r4) -/* 802DC1C8 90 05 00 0C */ stw r0, 0xc(r5) -/* 802DC1CC 80 04 00 08 */ lwz r0, 8(r4) -/* 802DC1D0 90 03 00 04 */ stw r0, 4(r3) -/* 802DC1D4 48 00 00 1C */ b lbl_802DC1F0 -lbl_802DC1D8: -/* 802DC1D8 80 04 00 0C */ lwz r0, 0xc(r4) -/* 802DC1DC 80 A4 00 08 */ lwz r5, 8(r4) -/* 802DC1E0 90 05 00 0C */ stw r0, 0xc(r5) -/* 802DC1E4 80 04 00 08 */ lwz r0, 8(r4) -/* 802DC1E8 80 A4 00 0C */ lwz r5, 0xc(r4) -/* 802DC1EC 90 05 00 08 */ stw r0, 8(r5) -lbl_802DC1F0: -/* 802DC1F0 38 00 00 00 */ li r0, 0 -/* 802DC1F4 90 04 00 04 */ stw r0, 4(r4) -/* 802DC1F8 80 83 00 08 */ lwz r4, 8(r3) -/* 802DC1FC 38 04 FF FF */ addi r0, r4, -1 -/* 802DC200 90 03 00 08 */ stw r0, 8(r3) -lbl_802DC204: -/* 802DC204 7C C3 33 78 */ mr r3, r6 -/* 802DC208 4E 80 00 20 */ blr diff --git a/asm/JSystem/JSupport/JSUList/setFirst__10JSUPtrListFP10JSUPtrLink.s b/asm/JSystem/JSupport/JSUList/setFirst__10JSUPtrListFP10JSUPtrLink.s deleted file mode 100644 index 14fea42765..0000000000 --- a/asm/JSystem/JSupport/JSUList/setFirst__10JSUPtrListFP10JSUPtrLink.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802DBF28: -/* 802DBF28 90 64 00 04 */ stw r3, 4(r4) -/* 802DBF2C 38 00 00 00 */ li r0, 0 -/* 802DBF30 90 04 00 08 */ stw r0, 8(r4) -/* 802DBF34 90 04 00 0C */ stw r0, 0xc(r4) -/* 802DBF38 90 83 00 04 */ stw r4, 4(r3) -/* 802DBF3C 90 83 00 00 */ stw r4, 0(r3) -/* 802DBF40 38 00 00 01 */ li r0, 1 -/* 802DBF44 90 03 00 08 */ stw r0, 8(r3) -/* 802DBF48 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTFont/__ct__7JUTFontFv.s b/asm/JSystem/JUtility/JUTFont/__ct__7JUTFontFv.s deleted file mode 100644 index 9d73d26ded..0000000000 --- a/asm/JSystem/JUtility/JUTFont/__ct__7JUTFontFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802DECF8: -/* 802DECF8 3C 80 80 3A */ lis r4, __vt__7JUTFont@ha /* 0x803A31F0@ha */ -/* 802DECFC 38 04 31 F0 */ addi r0, r4, __vt__7JUTFont@l /* 0x803A31F0@l */ -/* 802DED00 90 03 00 00 */ stw r0, 0(r3) -/* 802DED04 38 00 FF FF */ li r0, -1 -/* 802DED08 90 03 00 0C */ stw r0, 0xc(r3) -/* 802DED0C 90 03 00 10 */ stw r0, 0x10(r3) -/* 802DED10 90 03 00 14 */ stw r0, 0x14(r3) -/* 802DED14 90 03 00 18 */ stw r0, 0x18(r3) -/* 802DED18 38 00 00 00 */ li r0, 0 -/* 802DED1C 98 03 00 04 */ stb r0, 4(r3) -/* 802DED20 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTFont/initialize_state__7JUTFontFv.s b/asm/JSystem/JUtility/JUTFont/initialize_state__7JUTFontFv.s deleted file mode 100644 index e269d340f7..0000000000 --- a/asm/JSystem/JUtility/JUTFont/initialize_state__7JUTFontFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_802DED24: -/* 802DED24 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DED28 7C 08 02 A6 */ mflr r0 -/* 802DED2C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DED30 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802DED34 7C 7F 1B 78 */ mr r31, r3 -/* 802DED38 38 00 FF FF */ li r0, -1 -/* 802DED3C 90 01 00 08 */ stw r0, 8(r1) -/* 802DED40 90 01 00 0C */ stw r0, 0xc(r1) -/* 802DED44 38 81 00 0C */ addi r4, r1, 0xc -/* 802DED48 48 00 00 29 */ bl setCharColor__7JUTFontFQ28JUtility6TColor -/* 802DED4C 38 00 00 00 */ li r0, 0 -/* 802DED50 98 1F 00 05 */ stb r0, 5(r31) -/* 802DED54 90 1F 00 08 */ stw r0, 8(r31) -/* 802DED58 98 1F 00 04 */ stb r0, 4(r31) -/* 802DED5C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802DED60 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DED64 7C 08 03 A6 */ mtlr r0 -/* 802DED68 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DED6C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTFont/setCharColor__7JUTFontFQ28JUtility6TColor.s b/asm/JSystem/JUtility/JUTFont/setCharColor__7JUTFontFQ28JUtility6TColor.s deleted file mode 100644 index d8644e8ec2..0000000000 --- a/asm/JSystem/JUtility/JUTFont/setCharColor__7JUTFontFQ28JUtility6TColor.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802DED70: -/* 802DED70 88 E4 00 00 */ lbz r7, 0(r4) -/* 802DED74 98 E3 00 0C */ stb r7, 0xc(r3) -/* 802DED78 88 C4 00 01 */ lbz r6, 1(r4) -/* 802DED7C 98 C3 00 0D */ stb r6, 0xd(r3) -/* 802DED80 88 A4 00 02 */ lbz r5, 2(r4) -/* 802DED84 98 A3 00 0E */ stb r5, 0xe(r3) -/* 802DED88 88 04 00 03 */ lbz r0, 3(r4) -/* 802DED8C 98 03 00 0F */ stb r0, 0xf(r3) -/* 802DED90 98 E3 00 10 */ stb r7, 0x10(r3) -/* 802DED94 98 C3 00 11 */ stb r6, 0x11(r3) -/* 802DED98 98 A3 00 12 */ stb r5, 0x12(r3) -/* 802DED9C 98 03 00 13 */ stb r0, 0x13(r3) -/* 802DEDA0 98 E3 00 14 */ stb r7, 0x14(r3) -/* 802DEDA4 98 C3 00 15 */ stb r6, 0x15(r3) -/* 802DEDA8 98 A3 00 16 */ stb r5, 0x16(r3) -/* 802DEDAC 98 03 00 17 */ stb r0, 0x17(r3) -/* 802DEDB0 98 E3 00 18 */ stb r7, 0x18(r3) -/* 802DEDB4 98 C3 00 19 */ stb r6, 0x19(r3) -/* 802DEDB8 98 A3 00 1A */ stb r5, 0x1a(r3) -/* 802DEDBC 98 03 00 1B */ stb r0, 0x1b(r3) -/* 802DEDC0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTFont/setGradColor__7JUTFontFQ28JUtility6TColorQ28JUtility6TColor.s b/asm/JSystem/JUtility/JUTFont/setGradColor__7JUTFontFQ28JUtility6TColorQ28JUtility6TColor.s deleted file mode 100644 index 62fb294eb7..0000000000 --- a/asm/JSystem/JUtility/JUTFont/setGradColor__7JUTFontFQ28JUtility6TColorQ28JUtility6TColor.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802DEDC4: -/* 802DEDC4 89 04 00 00 */ lbz r8, 0(r4) -/* 802DEDC8 99 03 00 0C */ stb r8, 0xc(r3) -/* 802DEDCC 88 E4 00 01 */ lbz r7, 1(r4) -/* 802DEDD0 98 E3 00 0D */ stb r7, 0xd(r3) -/* 802DEDD4 88 C4 00 02 */ lbz r6, 2(r4) -/* 802DEDD8 98 C3 00 0E */ stb r6, 0xe(r3) -/* 802DEDDC 88 04 00 03 */ lbz r0, 3(r4) -/* 802DEDE0 98 03 00 0F */ stb r0, 0xf(r3) -/* 802DEDE4 99 03 00 10 */ stb r8, 0x10(r3) -/* 802DEDE8 98 E3 00 11 */ stb r7, 0x11(r3) -/* 802DEDEC 98 C3 00 12 */ stb r6, 0x12(r3) -/* 802DEDF0 98 03 00 13 */ stb r0, 0x13(r3) -/* 802DEDF4 88 E5 00 00 */ lbz r7, 0(r5) -/* 802DEDF8 98 E3 00 14 */ stb r7, 0x14(r3) -/* 802DEDFC 88 C5 00 01 */ lbz r6, 1(r5) -/* 802DEE00 98 C3 00 15 */ stb r6, 0x15(r3) -/* 802DEE04 88 85 00 02 */ lbz r4, 2(r5) -/* 802DEE08 98 83 00 16 */ stb r4, 0x16(r3) -/* 802DEE0C 88 05 00 03 */ lbz r0, 3(r5) -/* 802DEE10 98 03 00 17 */ stb r0, 0x17(r3) -/* 802DEE14 98 E3 00 18 */ stb r7, 0x18(r3) -/* 802DEE18 98 C3 00 19 */ stb r6, 0x19(r3) -/* 802DEE1C 98 83 00 1A */ stb r4, 0x1a(r3) -/* 802DEE20 98 03 00 1B */ stb r0, 0x1b(r3) -/* 802DEE24 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTGamePad/__sinit_JUTGamePad_cpp.s b/asm/JSystem/JUtility/JUTGamePad/__sinit_JUTGamePad_cpp.s index f2d353cbc6..6f7f120359 100644 --- a/asm/JSystem/JUtility/JUTGamePad/__sinit_JUTGamePad_cpp.s +++ b/asm/JSystem/JUtility/JUTGamePad/__sinit_JUTGamePad_cpp.s @@ -45,7 +45,7 @@ lbl_802E1B60: /* 802E1C0C 7C 64 19 D6 */ mullw r3, r4, r3 /* 802E1C10 1C 85 00 1E */ mulli r4, r5, 0x1e /* 802E1C14 7C 00 1A 14 */ add r0, r0, r3 -/* 802E1C18 90 8D 8F 7C */ stw r4, data_804514FC(r13) +/* 802E1C18 90 8D 8F 7C */ stw r4, sThreshold__Q210JUTGamePad13C3ButtonReset+4(r13) /* 802E1C1C 90 0D 8F 78 */ stw r0, sThreshold__Q210JUTGamePad13C3ButtonReset(r13) /* 802E1C20 38 7F 01 94 */ addi r3, r31, 0x194 /* 802E1C24 38 80 00 00 */ li r4, 0 diff --git a/asm/JSystem/JUtility/JUTGamePad/checkResetCallback__10JUTGamePadFx.s b/asm/JSystem/JUtility/JUTGamePad/checkResetCallback__10JUTGamePadFx.s deleted file mode 100644 index 2fef993946..0000000000 --- a/asm/JSystem/JUtility/JUTGamePad/checkResetCallback__10JUTGamePadFx.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_802E0C6C: -/* 802E0C6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E0C70 7C 08 02 A6 */ mflr r0 -/* 802E0C74 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E0C78 80 0D 8F 78 */ lwz r0, sThreshold__Q210JUTGamePad13C3ButtonReset(r13) -/* 802E0C7C 80 ED 8F 7C */ lwz r7, data_804514FC(r13) -/* 802E0C80 6C A5 80 00 */ xoris r5, r5, 0x8000 -/* 802E0C84 6C 04 80 00 */ xoris r4, r0, 0x8000 -/* 802E0C88 7C 07 30 10 */ subfc r0, r7, r6 -/* 802E0C8C 7C 84 29 10 */ subfe r4, r4, r5 -/* 802E0C90 7C 85 29 10 */ subfe r4, r5, r5 -/* 802E0C94 7C 84 00 D1 */ neg. r4, r4 -/* 802E0C98 40 82 00 30 */ bne lbl_802E0CC8 -/* 802E0C9C 38 00 00 01 */ li r0, 1 -/* 802E0CA0 98 0D 8F 81 */ stb r0, struct_80451500+0x1(r13) -/* 802E0CA4 A8 03 00 7C */ lha r0, 0x7c(r3) -/* 802E0CA8 90 0D 8F 84 */ stw r0, sResetOccurredPort__Q210JUTGamePad13C3ButtonReset(r13) -/* 802E0CAC 81 8D 8F 6C */ lwz r12, sCallback__Q210JUTGamePad13C3ButtonReset(r13) -/* 802E0CB0 28 0C 00 00 */ cmplwi r12, 0 -/* 802E0CB4 41 82 00 14 */ beq lbl_802E0CC8 -/* 802E0CB8 A8 63 00 7C */ lha r3, 0x7c(r3) -/* 802E0CBC 80 8D 8F 70 */ lwz r4, sCallbackArg__Q210JUTGamePad13C3ButtonReset(r13) -/* 802E0CC0 7D 89 03 A6 */ mtctr r12 -/* 802E0CC4 4E 80 04 21 */ bctrl -lbl_802E0CC8: -/* 802E0CC8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E0CCC 7C 08 03 A6 */ mtlr r0 -/* 802E0CD0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E0CD4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTGamePad/clear__10JUTGamePadFv.s b/asm/JSystem/JUtility/JUTGamePad/clear__10JUTGamePadFv.s deleted file mode 100644 index aad4a7f01e..0000000000 --- a/asm/JSystem/JUtility/JUTGamePad/clear__10JUTGamePadFv.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_802E08D0: -/* 802E08D0 38 00 00 00 */ li r0, 0 -/* 802E08D4 98 03 00 98 */ stb r0, 0x98(r3) -/* 802E08D8 38 00 00 01 */ li r0, 1 -/* 802E08DC 98 03 00 A8 */ stb r0, 0xa8(r3) -/* 802E08E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTGamePad/initList__10JUTGamePadFv.s b/asm/JSystem/JUtility/JUTGamePad/initList__10JUTGamePadFv.s deleted file mode 100644 index 339fac12b0..0000000000 --- a/asm/JSystem/JUtility/JUTGamePad/initList__10JUTGamePadFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_802E085C: -/* 802E085C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E0860 7C 08 02 A6 */ mflr r0 -/* 802E0864 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E0868 88 0D 8F 50 */ lbz r0, data_804514D0(r13) -/* 802E086C 28 00 00 00 */ cmplwi r0, 0 -/* 802E0870 40 82 00 18 */ bne lbl_802E0888 -/* 802E0874 3C 60 80 43 */ lis r3, mPadList__10JUTGamePad@ha /* 0x804343E4@ha */ -/* 802E0878 38 63 43 E4 */ addi r3, r3, mPadList__10JUTGamePad@l /* 0x804343E4@l */ -/* 802E087C 4B FF B6 99 */ bl initiate__10JSUPtrListFv -/* 802E0880 38 00 00 01 */ li r0, 1 -/* 802E0884 98 0D 8F 50 */ stb r0, data_804514D0(r13) -lbl_802E0888: -/* 802E0888 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E088C 7C 08 03 A6 */ mtlr r0 -/* 802E0890 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E0894 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTGamePad/init__10JUTGamePadFv.s b/asm/JSystem/JUtility/JUTGamePad/init__10JUTGamePadFv.s deleted file mode 100644 index b0b519c0c2..0000000000 --- a/asm/JSystem/JUtility/JUTGamePad/init__10JUTGamePadFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_802E0898: -/* 802E0898 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E089C 7C 08 02 A6 */ mflr r0 -/* 802E08A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E08A4 38 60 00 05 */ li r3, 5 -/* 802E08A8 48 06 E9 B1 */ bl PADSetSpec -/* 802E08AC 38 00 00 03 */ li r0, 3 -/* 802E08B0 90 0D 8F 5C */ stw r0, sAnalogMode__10JUTGamePad(r13) -/* 802E08B4 38 60 00 03 */ li r3, 3 -/* 802E08B8 48 06 F1 59 */ bl PADSetAnalogMode -/* 802E08BC 48 06 E4 95 */ bl PADInit -/* 802E08C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E08C4 7C 08 03 A6 */ mtlr r0 -/* 802E08C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E08CC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram.h b/include/JSystem/JKernel/JKRAram.h index 97e18c4bf0..ca7a224ed9 100644 --- a/include/JSystem/JKernel/JKRAram.h +++ b/include/JSystem/JKernel/JKRAram.h @@ -3,4 +3,72 @@ #include "dolphin/types.h" +#include "JSystem/JKernel/JKRAramHeap.h" +#include "JSystem/JKernel/JKRDvdRipper.h" +#include "JSystem/JKernel/JKRThread.h" + +class JKRHeap; +class JKRAramBlock; +class JKRAram : public JKRThread { +private: + JKRAram(u32, u32, long); + virtual ~JKRAram(); + + /* vt[03] */ void* run(void); /* override */ + +public: + u32 getAudioMemory() const { return mAudioMemoryPtr; } + u32 getAudioMemSize() const { return mAudioMemorySize; } + u32 getGraphMemory() const { return mGraphMemoryPtr; } + u32 getGraphMemSize() const { return mGraphMemorySize; } + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRThread + /* 0x7C */ u32 mAudioMemoryPtr; + /* 0x80 */ u32 mAudioMemorySize; + /* 0x84 */ u32 mGraphMemoryPtr; + /* 0x88 */ u32 mGraphMemorySize; + /* 0x8C */ u32 mAramMemoryPtr; + /* 0x90 */ u32 mAramMemorySize; + /* 0x94 */ JKRAramHeap* mAramHeap; + /* 0x98 */ u32 mStackArray[3]; + +public: + static JKRAram* create(u32, u32, long, long, long); + static void checkOkAddress(u8*, u32, JKRAramBlock*, u32); + static void changeGroupIdIfNeed(u8*, int); + static void mainRamToAram(u8*, u32, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); + static void aramToMainRam(u32, u8*, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); + static void dump(void); + + static JKRAram* getManager() { return sAramObject; } + static JKRAramHeap* getAramHeap() { return getManager()->mAramHeap; } + static JSUList& getCommandList() { return sAramCommandList; } + + static u8 decideAramGroupId(int groupId) { + JKRAramHeap* heap; + u8 finalGroupId; + + if (groupId < 0) { + return getAramHeap()->getCurrentGroupID(); + } + + return (u8)groupId; + } + + static u32 getSZSBufferSize() { return sSZSBufferSize; } + static void setSZSBufferSize(u32 size) { sSZSBufferSize = size; } + + static OSMessageQueue sMessageQueue; + +private: + static JKRAram* sAramObject; + static u32 sSZSBufferSize; + static OSMessage sMessageBuffer[4]; + static JSUList sAramCommandList; +}; + +// void JKRDecompressFromAramToMainRam(u32, void*, u32, u32, u32, u32*); + #endif /* JKRARAM_H */ diff --git a/include/JSystem/JKernel/JKRAramArchive.h b/include/JSystem/JKernel/JKRAramArchive.h index 8e276e3735..6b74179e53 100644 --- a/include/JSystem/JKernel/JKRAramArchive.h +++ b/include/JSystem/JKernel/JKRAramArchive.h @@ -1,6 +1,30 @@ #ifndef JKRARAMARCHIVE_H #define JKRARAMARCHIVE_H +#include "JSystem/JKernel/JKRArchive.h" #include "dolphin/types.h" +class JKRAramArchive : public JKRArchive { +public: + JKRAramArchive(long, JKRArchive::EMountDirection); + virtual ~JKRAramArchive(); + + void open(long); + void getAramAddress_Entry(SDIFileEntry*); + void getAramAddress(char const*); + + /* vt[15] */ u32 getExpandedResSize(const void*); /* 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 /* JKRARAMARCHIVE_H */ diff --git a/include/JSystem/JKernel/JKRAramBlock.h b/include/JSystem/JKernel/JKRAramBlock.h index 11b9bc2fa3..916db4a73c 100644 --- a/include/JSystem/JKernel/JKRAramBlock.h +++ b/include/JSystem/JKernel/JKRAramBlock.h @@ -3,4 +3,37 @@ #include "dolphin/types.h" +#include "JSystem/JSupport/JSUList.h" +#include "dolphin/types.h" + +class JKRAramHeap; +class JKRAramBlock { +public: + JKRAramBlock(u32, u32, u32, u8, bool); + virtual ~JKRAramBlock(); + + JKRAramBlock* allocHead(u32, u8, JKRAramHeap*); + JKRAramBlock* allocTail(u32, u8, JKRAramHeap*); + + void* getAddress() const { return (void*)mAddress; } + + u32 getSize() const { return mSize; } + + u32 getFreeSize() const { return mFreeSize; } + + bool isTempMemory() const { return mIsTempMemory; } + + void newGroupID(u8 groupId) { mGroupId = groupId; } + +public: + /* 0x00 */ // vtable + /* 0x04 */ JSULink mBlockLink; + /* 0x14 */ u32 mAddress; + /* 0x18 */ u32 mSize; + /* 0x1C */ u32 mFreeSize; + /* 0x20 */ u8 mGroupId; + /* 0x21 */ u8 mIsTempMemory; + /* 0x22 */ u8 padding[2]; +}; + #endif /* JKRARAMBLOCK_H */ diff --git a/include/JSystem/JKernel/JKRAramHeap.h b/include/JSystem/JKernel/JKRAramHeap.h index 9a1ed557bd..0a1f912b63 100644 --- a/include/JSystem/JKernel/JKRAramHeap.h +++ b/include/JSystem/JKernel/JKRAramHeap.h @@ -1,6 +1,52 @@ #ifndef JKRARAMHEAP_H #define JKRARAMHEAP_H +#include "JSystem/JKernel/JKRAramBlock.h" +#include "JSystem/JKernel/JKRDisposer.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" +class JKRAramHeap : public JKRDisposer { +public: + enum EAllocMode { + HEAD = 0, + TAIL = 1, + }; + +public: + // TODO: fix type + static JSUList sAramList; + + JKRAramHeap(u32, u32); + virtual ~JKRAramHeap(); + + JKRAramBlock* alloc(u32, EAllocMode); + JKRAramBlock* allocFromHead(u32); + JKRAramBlock* allocFromTail(u32); + u32 getFreeSize(void); + u32 getTotalFreeSize(void); + // u32 getUsedSize(void); + void dump(void); + + u8 getCurrentGroupID() const { return mGroupId; } + + JKRHeap* getMgrHeap() const { return mHeap; } + +private: + void lock() { OSLockMutex(&mMutex); } + + void unlock() { OSUnlockMutex(&mMutex); } + +public: + /* 0x00 */ // vtable + /* 0x04 */ // JKRDisposer + /* 0x18 */ OSMutex mMutex; + /* 0x30 */ JKRHeap* mHeap; + /* 0x34 */ u32 mHeadAddress; + /* 0x38 */ u32 mTailAddress; + /* 0x3C */ u32 mSize; + /* 0x40 */ u8 mGroupId; + /* 0x41 */ u8 padding_0x41[3]; +}; + #endif /* JKRARAMHEAP_H */ diff --git a/include/JSystem/JKernel/JKRAramPiece.h b/include/JSystem/JKernel/JKRAramPiece.h index eefa1efef2..6e17f67e52 100644 --- a/include/JSystem/JKernel/JKRAramPiece.h +++ b/include/JSystem/JKernel/JKRAramPiece.h @@ -1,6 +1,73 @@ #ifndef JKRARAMPIECE_H #define JKRARAMPIECE_H +#include "JSystem/JSupport/JSUList.h" +#include "dolphin/ar/arq.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" +class JKRAramBlock; +class JKRDecompCommand; +class JKRAMCommand { +public: + typedef void (*AsyncCallback)(u32); + + JKRAMCommand(); + ~JKRAMCommand(); + +public: + /* 0x00 */ ARQRequest mRequest; + /* 0x20 */ JSULink mPieceLink; + /* 0x30 */ JSULink field_0x30; + + /* 0x40 */ s32 mTransferDirection; + /* 0x44 */ u32 mDataLength; + /* 0x48 */ u32 mSrc; + /* 0x4C */ u32 mDst; + /* 0x50 */ JKRAramBlock* mAramBlock; + /* 0x54 */ u32 field_0x54; + /* 0x58 */ AsyncCallback mCallback; + /* 0x5C */ OSMessageQueue* field_0x5C; + /* 0x60 */ s32 field_0x60; + /* 0x64 */ JKRDecompCommand* mDecompCommand; + /* 0x68 */ OSMessageQueue mMessageQueue; + /* 0x88 */ OSMessage mMessage; + /* 0x8C */ void* field_0x8C; + /* 0x90 */ void* field_0x90; + /* 0x94 */ void* field_0x94; +}; + +class JKRAramPiece { +public: + static OSMutex mMutex; + // TODO: fix type + static JSUList sAramPieceCommandList; + +public: + struct Message { + s32 field_0x00; + JKRAMCommand* command; + }; + +public: + static JKRAMCommand* prepareCommand(int, u32, u32, u32, JKRAramBlock*, + JKRAMCommand::AsyncCallback); + static void sendCommand(JKRAMCommand*); + + static JKRAMCommand* orderAsync(int, u32, u32, u32, JKRAramBlock*, JKRAMCommand::AsyncCallback); + static BOOL sync(JKRAMCommand*, int); + static BOOL orderSync(int, u32, u32, u32, JKRAramBlock*); + static void startDMA(JKRAMCommand*); + static void doneDMA(u32); + +private: + static void lock() { OSLockMutex(&mMutex); } + static void unlock() { OSUnlockMutex(&mMutex); } +}; + +inline BOOL JKRAramPcs(int direction, u32 source, u32 destination, u32 length, + JKRAramBlock* block) { + return JKRAramPiece::orderSync(direction, source, destination, length, block); +} + #endif /* JKRARAMPIECE_H */ diff --git a/include/JSystem/JKernel/JKRAramStream.h b/include/JSystem/JKernel/JKRAramStream.h index aefe35eac7..0ba3472383 100644 --- a/include/JSystem/JKernel/JKRAramStream.h +++ b/include/JSystem/JKernel/JKRAramStream.h @@ -1,6 +1,69 @@ #ifndef JKRARAMSTREAM_H #define JKRARAMSTREAM_H +#include "JSystem/JKernel/JKRThread.h" +#include "JSystem/JSupport/JSUFileStream.h" +#include "JSystem/JSupport/JSURandomInputStream.h" #include "dolphin/types.h" +class JKRAramStreamCommand { +public: + enum Type { + UNKNOWN = 0, + READ = 1, + WRITE = 2, + }; + + JKRAramStreamCommand(); + +public: + /* 0x00 */ Type mType; + /* 0x04 */ u32 mAddress; + /* 0x08 */ u32 mSize; + /* 0x0C */ u32 field_0x0c; + /* 0x10 */ JSUFileInputStream* mStream; + /* 0x14 */ u32 mOffset; + /* 0x18 */ u32* mReturnSize; + /* 0x1C */ u8* mTransferBuffer; + /* 0x20 */ u32 mTransferBufferSize; + /* 0x24 */ JKRHeap* mHeap; + /* 0x28 */ bool mAllocatedTransferBuffer; + /* 0x29 */ u8 padding_0x29[3]; + /* 0x2C */ u32 field_0x2c; + /* 0x30 */ OSMessageQueue mMessageQueue; + /* 0x50 */ OSMessage mMessage; + /* 0x54 */ u32 field_0x54; + /* 0x58 */ u32 field_0x58; +}; + +class JKRAramStream : public JKRThread { +private: + JKRAramStream(long); + virtual ~JKRAramStream(); + + /* vt[03] */ void* run(void); /* override */ + +public: + static JKRAramStream* create(long); + + static s32 readFromAram(void); + static s32 writeToAram(JKRAramStreamCommand*); + static JKRAramStreamCommand* write_StreamToAram_Async(JSUFileInputStream*, u32, u32, u32, u32*); + static JKRAramStreamCommand* sync(JKRAramStreamCommand*, BOOL); + static void setTransBuffer(u8*, u32, JKRHeap*); + +private: + static JKRAramStream* sAramStreamObject; + static OSMessage sMessageBuffer[4]; + static OSMessageQueue sMessageQueue; + + static u8* transBuffer; + static u32 transSize; + static JKRHeap* transHeap; +}; + +inline JKRAramStream* JKRCreateAramStreamManager(long priority) { + return JKRAramStream::create(priority); +} + #endif /* JKRARAMSTREAM_H */ diff --git a/include/JSystem/JKernel/JKRArchive.h b/include/JSystem/JKernel/JKRArchive.h new file mode 100644 index 0000000000..77af4d6e7c --- /dev/null +++ b/include/JSystem/JKernel/JKRArchive.h @@ -0,0 +1,213 @@ +#ifndef JKRARCHIVE_H +#define JKRARCHIVE_H + +#include "JSystem/JKernel/JKRCompression.h" +#include "JSystem/JKernel/JKRDecomp.h" +#include "JSystem/JKernel/JKRFileLoader.h" +#include "global.h" + +struct SArcHeader { + u32 signature; + u32 file_length; + u32 header_length; + u32 file_data_offset; + u32 file_data_length; + u32 field_0x14; + u32 field_0x18; + u32 field_0x1c; +}; + +struct SArcDataInfo { + u32 num_nodes; + u32 node_offset; + u32 num_file_entries; + u32 file_entry_offset; + u32 string_table_length; + u32 string_table_offset; + u16 next_free_file_id; + bool sync_file_ids_and_indices; + u8 field_1b[5]; +}; + +inline u32 read_big_endian_u32(void* ptr) { + u8* uptr = (u8*)ptr; + return ((u32)uptr[0] << 0x18) | ((u32)uptr[1] << 0x10) | ((u32)uptr[2] << 8) | (u32)uptr[3]; +} + +inline u16 read_big_endian_u16(void* ptr) { + u8* uptr = (u8*)ptr; + return ((u16)uptr[0] << 8) | ((u16)uptr[1]); +} + +inline u32 JKRDecompExpandSize(SArcHeader* header) { + u8* fileLength = (u8*)&header->file_length; + return read_big_endian_u32(fileLength); +} + +extern u32 sCurrentDirID__10JKRArchive; // JKRArchive::sCurrentDirID + +class JKRHeap; +class JKRDvdFile; +class JKRArchive : public JKRFileLoader { +public: + 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; } + u32 getAttr() const { return getFlags(); } + u16 getFileID() const { return file_id; } + bool isDirectory() const { return (getFlags() & 0x02) != 0; } + bool isUnknownFlag1() const { return (getFlags() & 0x01) != 0; } + bool isCompressed() const { return (getFlags() & 0x04) != 0; } + bool isYAZ0Compressed() const { return (getFlags() & 0x80) != 0; } + }; + + enum EMountMode { + UNKNOWN_MOUNT_MODE = 0, + MOUNT_MEM = 1, + MOUNT_ARAM = 2, + MOUNT_DVD = 3, + MOUNT_COMP = 4, + }; + + enum EMountDirection { + UNKNOWN_MOUNT_DIRECTION = 0, + MOUNT_DIRECTION_HEAD = 1, + MOUNT_DIRECTION_TAIL = 2, + }; + + class CArcName { + public: + CArcName() {} + CArcName(char const* data) { this->store(data); } + CArcName(char const** data, char endChar) { *data = this->store(*data, endChar); } + + void store(char const* data); + const char* store(char const* data, char endChar); + + u16 getHash() const { return mHash; } + + const char* getString() const { return mData; } + + private: + u16 mHash; + u16 mLength; + char mData[256]; + }; + +protected: + JKRArchive(); + JKRArchive(long, EMountMode); + virtual ~JKRArchive(); + +public: + bool getDirEntry(SDirEntry*, u32) 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; + + u32 getMountMode() const { return 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 bool becomeCurrent(const char*); /* override */ + /* vt[05] */ virtual void* getResource(const char*); /* override */ + /* vt[06] */ virtual void* getResource(u32, const char*); /* override */ + /* vt[07] */ virtual u32 readResource(void*, u32, const char*); /* override */ + /* vt[08] */ virtual u32 readResource(void*, u32, u32, const char*); /* override */ + /* vt[09] */ virtual void removeResourceAll(void); /* override */ + /* vt[10] */ virtual bool removeResource(void*); /* override */ + /* vt[11] */ virtual bool detachResource(void*); /* override */ + /* vt[12] */ virtual u32 getResSize(const void*) const; /* override */ + /* vt[13] */ virtual u32 countFile(const char*) const; /* override */ + /* vt[14] */ virtual JKRFileFinder* getFirstFile(const char*) const; /* override */ + /* vt[15] */ virtual u32 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 u32 getExpandSize(SDIFileEntry*) const; + +protected: + /* 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 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 JKRCompression convertAttrToCompressionType(u32 attr) { +#define JKRARCHIVE_ATTR_COMPRESSION 0x04 +#define JKRARCHIVE_ATTR_YAY0 0x80 + + JKRCompression compression; + if (FLAG_ON(attr, JKRARCHIVE_ATTR_COMPRESSION)) { + compression = COMPRESSION_NONE; + } else if (!FLAG_ON(attr, JKRARCHIVE_ATTR_YAY0)) { + compression = COMPRESSION_YAZ0; + } else { + compression = COMPRESSION_YAY0; + } + return compression; + } + + static u32 getCurrentDirID() { return sCurrentDirID; } + static void setCurrentDirID(u32 dirID) { sCurrentDirID = dirID; } + +private: + static u32 sCurrentDirID; +}; + +inline JKRCompression JKRConvertAttrToCompressionType(u32 attr) { + return JKRArchive::convertAttrToCompressionType(attr); +} + +#endif \ No newline at end of file diff --git a/include/JSystem/JKernel/JKRAssertHeap.h b/include/JSystem/JKernel/JKRAssertHeap.h index 3d87813f93..e285ea9f99 100644 --- a/include/JSystem/JKernel/JKRAssertHeap.h +++ b/include/JSystem/JKernel/JKRAssertHeap.h @@ -1,6 +1,35 @@ #ifndef JKRASSERTHEAP_H #define JKRASSERTHEAP_H +#include "JSystem/JKernel/JKRHeap.h" #include "dolphin/types.h" +class JKRAssertHeap : public JKRHeap { +protected: + JKRAssertHeap(void*, unsigned long, JKRHeap*, bool); + virtual ~JKRAssertHeap(); + +public: + /* vt[04] */ virtual u32 getHeapType(void); /* override */ + /* vt[05] */ virtual bool check(void); /* override */ + /* vt[06] */ virtual bool dump_sort(void); /* override */ + /* vt[07] */ virtual bool dump(void); /* override */ + /* vt[08] */ virtual void do_destroy(void); /* override */ + /* vt[09] */ virtual void* do_alloc(u32, int); /* override */ + /* vt[10] */ virtual void do_free(void*); /* override */ + /* vt[11] */ virtual void do_freeAll(void); /* override */ + /* vt[12] */ virtual void do_freeTail(void); /* override */ + /* vt[13] */ virtual void do_fillFreeArea(void); /* override */ + /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */ + /* vt[15] */ virtual s32 do_getSize(void*); /* override */ + /* vt[16] */ virtual s32 do_getFreeSize(void); /* override */ + /* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */ + /* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */ + /* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */ + /* vt[20] */ virtual u8 do_getCurrentGroupId(void); /* override */ + +public: + static JKRAssertHeap* create(JKRHeap*); +}; + #endif /* JKRASSERTHEAP_H */ diff --git a/include/JSystem/JKernel/JKRCompArchive.h b/include/JSystem/JKernel/JKRCompArchive.h index 50985d6c06..f6c8d89388 100644 --- a/include/JSystem/JKernel/JKRCompArchive.h +++ b/include/JSystem/JKernel/JKRCompArchive.h @@ -1,6 +1,28 @@ #ifndef JKRCOMPARCHIVE_H #define JKRCOMPARCHIVE_H +#include "JSystem/JKernel/JKRArchive.h" #include "dolphin/types.h" +class JKRCompArchive : public JKRArchive { +public: + JKRCompArchive(long, JKRArchive::EMountDirection); + virtual ~JKRCompArchive(); + + void open(long); + + /* vt[09] */ void removeResourceAll(void); /* override */ + /* vt[10] */ bool removeResource(void*); /* override */ + + /* vt[15] */ u32 getExpandedResSize(const void*); /* 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 /* JKRCOMPARCHIVE_H */ diff --git a/include/JSystem/JKernel/JKRCompression.h b/include/JSystem/JKernel/JKRCompression.h new file mode 100644 index 0000000000..51a2fa391f --- /dev/null +++ b/include/JSystem/JKernel/JKRCompression.h @@ -0,0 +1,10 @@ +#ifndef JKRCOMPREESION_H_ +#define JKRCOMPREESION_H_ + +typedef int JKRCompression; +const JKRCompression COMPRESSION_NONE = 0; +const JKRCompression COMPRESSION_YAY0 = 1; +const JKRCompression COMPRESSION_YAZ0 = 2; +const JKRCompression COMPRESSION_ASR = 3; + +#endif \ No newline at end of file diff --git a/include/JSystem/JKernel/JKRDecomp.h b/include/JSystem/JKernel/JKRDecomp.h index 1093a484c1..7775addaee 100644 --- a/include/JSystem/JKernel/JKRDecomp.h +++ b/include/JSystem/JKernel/JKRDecomp.h @@ -1,6 +1,66 @@ #ifndef JKRDECOMP_H #define JKRDECOMP_H +#include "JSystem/JKernel/JKRCompression.h" +#include "JSystem/JKernel/JKRThread.h" #include "dolphin/types.h" +class JKRAMCommand; +class JKRDecompCommand { +public: + typedef void (*AsyncCallback)(u32); + + JKRDecompCommand(); + ~JKRDecompCommand(); + +public: + /* 0x00 */ u32 field_0x0; + /* 0x04 */ u8* mSrcBuffer; + /* 0x08 */ u8* mDstBuffer; + /* 0x0C */ u32 mSrcLength; + /* 0x10 */ u32 mDstLength; + /* 0x14 */ AsyncCallback mCallback; + /* 0x18 */ JKRDecompCommand* mThis; + /* 0x1C */ OSMessageQueue* field_0x1c; + /* 0x20 */ s32 field_0x20; + /* 0x24 */ JKRAMCommand* mAMCommand; + /* 0x28 */ OSMessageQueue mMessageQueue; + /* 0x48 */ OSMessage mMessage; +}; + +#define JKRDECOMP_SYNC_BLOCKING 0 +#define JKRDECOMP_SYNC_NON_BLOCKING 1 + +class JKRDecomp : public JKRThread { +private: + JKRDecomp(long); + virtual ~JKRDecomp(); + + /* vt[03] */ virtual void* run(); /* override */ + +public: + static JKRDecomp* create(long); + static JKRDecompCommand* prepareCommand(u8*, u8*, u32, u32, JKRDecompCommand::AsyncCallback); + static void sendCommand(JKRDecompCommand*); + static bool sync(JKRDecompCommand*, int); + static JKRDecompCommand* orderAsync(u8*, u8*, u32, u32, JKRDecompCommand::AsyncCallback); + static bool orderSync(u8*, u8*, u32, u32); + static void decode(u8*, u8*, u32, u32); + static void decodeSZP(u8*, u8*, u32, u32); + static void decodeSZS(u8*, u8*, u32, u32); + static JKRCompression checkCompressed(u8*); + + static JKRDecomp* sDecompObject; + static OSMessage sMessageBuffer[8]; + static OSMessageQueue sMessageQueue; +}; + +inline void JKRDecompress(u8* srcBuffer, u8* dstBuffer, u32 srcLength, u32 dstLength) { + JKRDecomp::orderSync(srcBuffer, dstBuffer, srcLength, dstLength); +} + +inline JKRDecomp* JKRCreateDecompManager(long priority) { + return JKRDecomp::create(priority); +} + #endif /* JKRDECOMP_H */ diff --git a/include/JSystem/JKernel/JKRDisposer.h b/include/JSystem/JKernel/JKRDisposer.h index bf4bedf8b5..cdeaee4106 100644 --- a/include/JSystem/JKernel/JKRDisposer.h +++ b/include/JSystem/JKernel/JKRDisposer.h @@ -1,6 +1,19 @@ #ifndef JKRDISPOSER_H #define JKRDISPOSER_H +#include "JSystem/JSupport/JSUList.h" #include "dolphin/types.h" +class JKRHeap; +class JKRDisposer { +public: + JKRDisposer(); + virtual ~JKRDisposer(); + +public: + /* 0x00 */ // vtable + /* 0x04 */ JKRHeap* mHeap; + /* 0x08 */ JSULink mLink; +}; + #endif /* JKRDISPOSER_H */ diff --git a/include/JSystem/JKernel/JKRDvdAramRipper.h b/include/JSystem/JKernel/JKRDvdAramRipper.h index 5d2a93b7c0..0b0f9a7974 100644 --- a/include/JSystem/JKernel/JKRDvdAramRipper.h +++ b/include/JSystem/JKernel/JKRDvdAramRipper.h @@ -1,6 +1,28 @@ #ifndef JKRDVDARAMRIPPER_H #define JKRDVDARAMRIPPER_H +#include "JSystem/JKernel/JKRDvdRipper.h" +#include "JSystem/JSupport/JSUFileStream.h" #include "dolphin/types.h" +class JKRADCommand { +public: + JKRADCommand(); + ~JKRADCommand(); +}; + +class JKRDvdFile; +class JKRDvdAramRipper { +public: + static void loadToAram(long, u32, JKRExpandSwitch, u32, u32, u32*); + static void loadToAram(JKRDvdFile*, u32, JKRExpandSwitch, u32, u32, u32*); + static void loadToAram_Async(JKRDvdFile*, u32, JKRExpandSwitch, void (*)(u32), u32, u32, u32*); + static void callCommand_Async(JKRADCommand*); + static void syncAram(JKRADCommand*, int); + + // TODO: fix type + static u8 sDvdAramAsyncList[12]; + static u32 sSZSBufferSize; +}; + #endif /* JKRDVDARAMRIPPER_H */ diff --git a/include/JSystem/JKernel/JKRDvdArchive.h b/include/JSystem/JKernel/JKRDvdArchive.h index d26173d3eb..789bd77c98 100644 --- a/include/JSystem/JKernel/JKRDvdArchive.h +++ b/include/JSystem/JKernel/JKRDvdArchive.h @@ -1,6 +1,33 @@ #ifndef JKRDVDARCHIVE_H #define JKRDVDARCHIVE_H +#include "JSystem/JKernel/JKRArchive.h" #include "dolphin/types.h" +class JKRDvdFile; +class JKRDvdArchive : public JKRArchive { +public: + JKRDvdArchive(s32, JKRArchive::EMountDirection); + virtual ~JKRDvdArchive(); + + bool open(s32); + + /* vt[15] */ virtual u32 getExpandedResSize(const void*) const; /* override */ + /* vt[16] */ virtual void* fetchResource(SDIFileEntry*, u32*); /* override */ + /* vt[17] */ virtual void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */ + +public: + static u32 fetchResource_subroutine(s32, u32, u32, u8*, u32, JKRCompression, JKRCompression); + static u32 fetchResource_subroutine(s32, u32, u32, JKRHeap*, JKRCompression, JKRCompression, + u8**); + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRArchive + /* 0x5C */ JKRCompression mCompression; + /* 0x60 */ EMountDirection mMountDirection; + /* 0x64 */ s32 field_0x64; + /* 0x68 */ JKRDvdFile* mDvdFile; +}; + #endif /* JKRDVDARCHIVE_H */ diff --git a/include/JSystem/JKernel/JKRDvdFile.h b/include/JSystem/JKernel/JKRDvdFile.h index abcb90d92f..2fbb583b6f 100644 --- a/include/JSystem/JKernel/JKRDvdFile.h +++ b/include/JSystem/JKernel/JKRDvdFile.h @@ -1,6 +1,60 @@ #ifndef JKRDVDFILE_H #define JKRDVDFILE_H +#include "JSystem/JKernel/JKRFile.h" +#include "dolphin/dvd/dvd.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" +class JKRADCommand; +class JSUFileInputStream; +class JKRDvdFile : public JKRFile { +public: + JKRDvdFile(); + JKRDvdFile(const char*); + JKRDvdFile(long); + virtual ~JKRDvdFile(); + + void initiate(void); + s32 sync(void); + + u32 getFileID() const { return mFileInfo.start_address; } + const DVDFileInfo& getFileInfo() const { return mFileInfo; } + int getStatus() { return DVDGetCommandBlockStatus(&mFileInfo.block); } + +public: + /* vt[03] */ virtual bool open(const char*); /* override */ + /* vt[04] */ virtual void close(void); /* override */ + /* vt[05] */ virtual s32 readData(void*, s32, s32); /* override */ + /* vt[06] */ virtual s32 writeData(const void*, s32, s32); /* override */ + /* vt[07] */ virtual s32 getFileSize(void) const; /* override */ + /* vt[08] */ virtual bool open(s32); + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRFile + /* 0x1C */ OSMutex mMutex1; + /* 0x34 */ OSMutex mMutex2; + /* 0x4C */ u32 field_0x4c; + /* 0x50 */ u32 field_0x50; + /* 0x54 */ u32 field_0x54; + /* 0x58 */ u32 field_0x58; + /* 0x5C */ DVDFileInfo mFileInfo; + /* 0x98 */ JKRDvdFile* mDvdFile; + /* 0x9C */ OSMessageQueue mMessageQueue1; + /* 0xBC */ OSMessage mMessage1; + /* 0xC0 */ OSMessageQueue mMessageQueue2; + /* 0xE0 */ OSMessage mMessage2; + /* 0xE4 */ JSULink mDvdLink; + /* 0xF4 */ OSThread* mOSThread; + +public: + static void doneProcess(long, DVDFileInfo*); + + static JSUList& getDvdList() { return sDvdList; } + +private: + static JSUList sDvdList; +}; + #endif /* JKRDVDFILE_H */ diff --git a/include/JSystem/JKernel/JKRDvdRipper.h b/include/JSystem/JKernel/JKRDvdRipper.h index f09a60065e..b333a87de0 100644 --- a/include/JSystem/JKernel/JKRDvdRipper.h +++ b/include/JSystem/JKernel/JKRDvdRipper.h @@ -1,6 +1,46 @@ #ifndef JKRDVDRIPPER_H #define JKRDVDRIPPER_H +#include "JSystem/JKernel/JKRDecomp.h" #include "dolphin/types.h" +enum JKRExpandSwitch { + EXPAND_SWITCH_UNKNOWN0 = 0, + EXPAND_SWITCH_UNKNOWN1 = 1, + EXPAND_SWITCH_UNKNOWN2 = 2, +}; + +class JKRHeap; +class JKRDvdFile; +class JKRDvdRipper { +public: + // TODO: fix type + static u8 sDvdAsyncList[12]; + static u32 sSZSBufferSize; + + enum EAllocDirection { + UNKNOWN_EALLOC_DIRECTION = 0, + ALLOC_DIRECTION_FORWARD = 1, + ALLOC_DIRECTION_BACKWARD = 2, + }; + + static void* loadToMainRAM(char const*, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection, + u32, JKRCompression*, u32*); + static void* loadToMainRAM(long, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection, u32, + JKRCompression*, u32*); + static void* loadToMainRAM(JKRDvdFile*, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection, + u32, JKRCompression*, u32*); + + u8 isErrorRetry(void); +}; + +// void JKRDecompressFromDVD(JKRDvdFile*, void*, u32, u32, u32, u32, u32*); + +inline void* JKRDvdToMainRam(s32 entryNum, u8* dst, JKRExpandSwitch expandSwitch, u32 dstLength, + JKRHeap* heap, JKRDvdRipper::EAllocDirection allocDirection, + u32 offset, JKRCompression* compression, u32* returnSize) { + return JKRDvdRipper::loadToMainRAM(entryNum, dst, expandSwitch, dstLength, heap, allocDirection, + offset, compression, returnSize); +} + #endif /* JKRDVDRIPPER_H */ diff --git a/include/JSystem/JKernel/JKRExpHeap.h b/include/JSystem/JKernel/JKRExpHeap.h index 12489d59b2..57fad0b8f6 100644 --- a/include/JSystem/JKernel/JKRExpHeap.h +++ b/include/JSystem/JKernel/JKRExpHeap.h @@ -1,6 +1,93 @@ #ifndef JKREXPHEAP_H #define JKREXPHEAP_H +#include "JSystem/JKernel/JKRHeap.h" #include "dolphin/types.h" +class JKRExpHeap : public JKRHeap { +public: + class CMemBlock { + public: + void initiate(CMemBlock*, CMemBlock*, u32, u8, u8); + void allocFore(u32, u8, u8, u8, u8); + void allocBack(u32, u8, u8, u8, u8); + void free(JKRExpHeap*); + void getHeapBlock(void*); + + void newGroupId(u8 groupId) { this->mGroupId = groupId; } + bool isValid() const { return this->mMagic == 0x484d; } + bool _isTempMemBlock() const { return (this->mFlags & 0x80) ? true : false; } + int getAlignment() const { return this->mFlags & 0x7f; } + void* getContent() const { return (void*)(this + 1); } + CMemBlock* getPrevBlock() const { return this->mPrev; } + CMemBlock* getNextBlock() const { return this->mNext; } + u32 getSize() const { return this->size; } + static CMemBlock* getBlock(void* data) { return (CMemBlock*)((u32)data + -0x10); } + + private: + u16 mMagic; + u8 mFlags; // a|bbbbbbb a=temporary b=alignment + u8 mGroupId; + u32 size; + CMemBlock* mPrev; + CMemBlock* mNext; + }; + +protected: + JKRExpHeap(void*, u32, JKRHeap*, bool); + virtual ~JKRExpHeap(); + + void allocFromHead(u32, int); + void allocFromHead(u32); + void allocFromTail(u32, int); + void allocFromTail(u32); + void appendUsedList(CMemBlock*); + void setFreeBlock(CMemBlock*, CMemBlock*, CMemBlock*); + void removeFreeBlock(CMemBlock*); + void removeUsedBlock(CMemBlock*); + void recycleFreeBlock(CMemBlock*); + void joinTwoBlocks(CMemBlock*); + +public: + s32 getUsedSize(u8) const; + s32 getTotalUsedSize(void) const; + CMemBlock* getHeadUsedList() const { return mHeadUsedList; } + +public: + /* vt[04] */ virtual u32 getHeapType(); /* override */ + /* vt[05] */ virtual bool check(); /* override */ + /* vt[06] */ virtual bool dump_sort(); /* override */ + /* vt[07] */ virtual bool dump(); /* override */ + /* vt[08] */ virtual void do_destroy(); /* override */ + /* vt[09] */ virtual void* do_alloc(u32 size, int alignment); /* override */ + /* vt[10] */ virtual void do_free(void* ptr); /* override */ + /* vt[11] */ virtual void do_freeAll(); /* override */ + /* vt[12] */ virtual void do_freeTail(); /* override */ + /* vt[13] */ virtual void do_fillFreeArea(); /* override */ + /* vt[14] */ virtual s32 do_resize(void* ptr, u32 size); /* override */ + /* vt[15] */ virtual s32 do_getSize(void* ptr); /* override */ + /* vt[16] */ virtual s32 do_getFreeSize(); /* override */ + /* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */ + /* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */ + /* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID); /* override */ + /* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */ + /* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */ + /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, + JKRHeap::TState const&) const; /* override */ + +private: + u32 field_0x6c; + u32 field_0x70; + u32 field_0x74; + CMemBlock* mHeadFreeList; + CMemBlock* mTailFreeList; + CMemBlock* mHeadUsedList; + CMemBlock* mTailUsedList; + +public: + static void createRoot(int, bool); + static void create(u32, JKRHeap*, bool); + static void create(void*, u32, JKRHeap*, bool); +}; + #endif /* JKREXPHEAP_H */ diff --git a/include/JSystem/JKernel/JKRFile.h b/include/JSystem/JKernel/JKRFile.h index a89380ce9e..57ab0ebb0a 100644 --- a/include/JSystem/JKernel/JKRFile.h +++ b/include/JSystem/JKernel/JKRFile.h @@ -1,6 +1,30 @@ #ifndef JKRFILE_H #define JKRFILE_H +#include "JSystem/JKernel/JKRDisposer.h" #include "dolphin/types.h" +class JKRFile : public JKRDisposer { +public: + JKRFile() : mIsAvailable(false) {} + virtual ~JKRFile() {} + + s32 read(void*, long, long); + + bool isAvailable() const { return mIsAvailable; } + +public: + /* vt[03] */ virtual bool open(const char*) = 0; + /* vt[04] */ virtual void close() = 0; + /* vt[05] */ virtual s32 readData(void*, s32, s32) = 0; + /* vt[06] */ virtual s32 writeData(const void*, s32, s32) = 0; + /* vt[07] */ virtual s32 getFileSize() const = 0; + +protected: + /* 0x00 */ // vtable + /* 0x04 */ // JKRDisposer + /* 0x18 */ bool mIsAvailable; + /* 0x19 */ u8 field_0x19[3]; +}; + #endif /* JKRFILE_H */ diff --git a/include/JSystem/JKernel/JKRFileCache.h b/include/JSystem/JKernel/JKRFileCache.h index ff00b5fc9a..69e4b8d3d3 100644 --- a/include/JSystem/JKernel/JKRFileCache.h +++ b/include/JSystem/JKernel/JKRFileCache.h @@ -1,6 +1,63 @@ #ifndef JKRFILECACHE_H #define JKRFILECACHE_H +#include "JSystem/JKernel/JKRFileLoader.h" #include "dolphin/types.h" +class JKRHeap; +class JKRFileCache : public JKRFileLoader { +public: + class CCacheBlock { + public: + CCacheBlock(u32, u32, const void*); + ~CCacheBlock() {} + + public: + /* 0x00 */ JSULink mCacheBlockLink; + /* 0x10 */ u32 mReferenceCount; + /* 0x14 */ u32 mFileId; + /* 0x18 */ u32 mFileSize; + /* 0x1C */ void* mMemoryPtr; + }; + +protected: + JKRFileCache(const char*, const char*); + virtual ~JKRFileCache(); + + CCacheBlock* findCacheBlock(const void*) const; + CCacheBlock* findCacheBlock(u32) const; + bool findFile(char*, const char*) const; + char* getDvdPathName(const char*) const; + void convStrLower(char*) const; + +public: + /* vt[04] */ virtual bool becomeCurrent(const char*); /* override */ + /* vt[05] */ virtual void* getResource(const char*); /* override */ + /* vt[06] */ virtual void* getResource(u32, const char*); /* override */ + /* vt[07] */ virtual u32 readResource(void*, u32, const char*); /* override */ + /* vt[08] */ virtual u32 readResource(void*, u32, u32, const char*); /* override */ + /* vt[09] */ virtual void removeResourceAll(void); /* override */ + /* vt[10] */ virtual bool removeResource(void*); /* override */ + /* vt[11] */ virtual bool detachResource(void*); /* override */ + /* vt[12] */ virtual u32 getResSize(const void*) const; /* override */ + /* vt[13] */ virtual u32 countFile(const char*) const; /* override */ + /* vt[14] */ virtual JKRFileFinder* getFirstFile(const char*) const; /* override */ + /* vt[15] */ virtual void* getFsResource(const char*); + /* vt[16] */ virtual void* getNameResource(u32, const char*); + /* vt[17] */ virtual u32 readFsResource(void*, u32, const char*); + /* vt[18] */ virtual u32 readNameResource(void*, u32, u32, const char*); + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRFileLoader + /* 0x38 */ JKRHeap* mParentHeap; + /* 0x3C */ JSUList mCacheBlockList; + /* 0x48 */ char* mRootPath; + /* 0x4C */ char* mCurrentPath; + /* 0x50 */ char* mVolumePath; + +public: + static JKRFileCache* mount(const char*, JKRHeap*, const char*); +}; + #endif /* JKRFILECACHE_H */ diff --git a/include/JSystem/JKernel/JKRFileFinder.h b/include/JSystem/JKernel/JKRFileFinder.h index 1af43b7ae3..a4c91926cc 100644 --- a/include/JSystem/JKernel/JKRFileFinder.h +++ b/include/JSystem/JKernel/JKRFileFinder.h @@ -1,6 +1,73 @@ #ifndef JKRFILEFINDER_H #define JKRFILEFINDER_H +#include "dolphin/dvd/dvd.h" #include "dolphin/types.h" +struct JKRFileFinder_UnknownBase { + const char* mEntryName; + s32 mEntryFileIndex; + u16 mEntryId; + u16 mEntryTypeFlags; +}; + +class JKRFileFinder : public JKRFileFinder_UnknownBase { +public: + JKRFileFinder() { + mIsAvailable = false; + mIsFileOrDirectory = false; + } + inline virtual ~JKRFileFinder(); + + bool isAvailable() const { return mIsAvailable; } + bool isFile() const { return mIsFileOrDirectory; } + bool isDirectory() const { return mIsFileOrDirectory; } + +public: + /* vt[3] */ virtual bool findNextFile(void) = 0; + +protected: + /* 0x00 */ // JKRFileFinder_UnknownBase + /* 0x0C */ // vtable + /* 0x10 */ bool mIsAvailable; + /* 0x11 */ bool mIsFileOrDirectory; + /* 0x12 */ u8 field_0x12[2]; +}; + +class JKRArchive; +class JKRArcFinder : public JKRFileFinder { +public: + JKRArcFinder(JKRArchive*, s32, s32); + inline virtual ~JKRArcFinder(); + +public: + /* vt[3] */ virtual bool findNextFile(void); /* override */ + +private: + /* 0x00 */ // JKRFileFinder_UnknownBase + /* 0x0C */ // vtable + /* 0x10 */ // JKRFileFinder + /* 0x14 */ JKRArchive* mArchive; + /* 0x18 */ s32 mStartIndex; + /* 0x1C */ s32 mEndIndex; + /* 0x20 */ s32 mNextIndex; +}; + +class JKRDvdFinder : public JKRFileFinder { +public: + JKRDvdFinder(const char*); + virtual ~JKRDvdFinder(); + +public: + /* vt[3] */ virtual bool findNextFile(void); /* override */ + +private: + /* 0x00 */ // JKRFileFinder_UnknownBase + /* 0x0C */ // vtable + /* 0x10 */ // JKRFileFinder + /* 0x14 */ DVDDirectory mDvdDirectory; + /* 0x20 */ bool mDvdIsOpen; + /* 0x21 */ u8 field_0x21[3]; +}; + #endif /* JKRFILEFINDER_H */ diff --git a/include/JSystem/JKernel/JKRFileLoader.h b/include/JSystem/JKernel/JKRFileLoader.h index a43b92c1dc..4af9531298 100644 --- a/include/JSystem/JKernel/JKRFileLoader.h +++ b/include/JSystem/JKernel/JKRFileLoader.h @@ -1,6 +1,57 @@ #ifndef JKRFILELOADER_H #define JKRFILELOADER_H +#include "JSystem/JKernel/JKRDisposer.h" +#include "JSystem/JSupport/JSUList.h" #include "dolphin/types.h" +class JKRFileFinder; +class JKRFileLoader : public JKRDisposer { +public: + JKRFileLoader(void); + virtual ~JKRFileLoader(); + + bool isMounted() const { return this->mIsMounted; } + u32 getVolumeType() const { return this->mVolumeType; } + +public: + /* vt[03] */ virtual void unmount(void); + /* 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 u32 getResSize(const void*) const = 0; + /* vt[13] */ virtual u32 countFile(const char*) const = 0; + /* vt[14] */ virtual JKRFileFinder* getFirstFile(const char*) const = 0; + +protected: + /* 0x00 */ // vtable + /* 0x04 */ // JKRDisposer + /* 0x18 */ JSULink mFileLoaderLink; + /* 0x28 */ const char* mVolumeName; + /* 0x2C */ u32 mVolumeType; + /* 0x30 */ bool mIsMounted; + /* 0x31 */ u8 field_0x31[3]; + /* 0x34 */ u32 mMountCount; + +public: + static void* getGlbResource(const char*); + static void* getGlbResource(const char*, JKRFileLoader*); + static bool removeResource(void*, JKRFileLoader*); + static bool detachResource(void*, JKRFileLoader*); + static JKRFileLoader* findVolume(const char**); + static const char* fetchVolumeName(char*, long, const char*); + + static JKRFileLoader* getCurrentVolume() { return sCurrentVolume; } + static void setCurrentVolume(JKRFileLoader* fileLoader) { sCurrentVolume = fileLoader; } + static JSUList& getVolumeList() { return sVolumeList; } + + static JKRFileLoader* sCurrentVolume; + static JSUList sVolumeList; +}; + #endif /* JKRFILELOADER_H */ diff --git a/include/JSystem/JKernel/JKRHeap.h b/include/JSystem/JKernel/JKRHeap.h index 44d22fdb05..4665aeffd5 100644 --- a/include/JSystem/JKernel/JKRHeap.h +++ b/include/JSystem/JKernel/JKRHeap.h @@ -1,6 +1,215 @@ #ifndef JKRHEAP_H #define JKRHEAP_H +#include "JSystem/JKernel/JKRDisposer.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" +class JKRHeap; +typedef void (*JKRErrorHandler)(void*, u32, int); + +class JKRHeap : public JKRDisposer { +public: + class TState { + public: + u32 mUsedSize; + u32 mCheckCode; + u32 mBuf; + u32 field_0xc; + JKRHeap* mHeap; + u32 mId; + + public: + u32 getUsedSize() const { return mUsedSize; } + u32 getCheckCode() const { return mCheckCode; } + JKRHeap* getHeap() const { return mHeap; } + u32 getId() const { return mId; } + }; + +public: + JKRHeap(void*, u32, JKRHeap*, bool); + virtual ~JKRHeap(); + + JKRHeap* becomeSystemHeap(); + JKRHeap* becomeCurrentHeap(); + void destroy(); + + void* alloc(u32 size, int alignment); + void free(void* ptr); + void freeAll(); + void freeTail(); + s32 resize(void* ptr, u32 size); + s32 getSize(void* ptr); + s32 getFreeSize(); + void* getMaxFreeBlock(); + s32 getTotalFreeSize(); + u8 changeGroupID(u8 newGroupId); + u32 getMaxAllocatableSize(int alignment); + + JKRHeap* find(void* ptr) const; + JKRHeap* findAllHeap(void* ptr) const; + + void dispose_subroutine(u32 start, u32 end); + bool dispose(void* ptr, u32 size); + void dispose(void* begin, void* end); + void dispose(); + + bool setErrorFlag(bool errorFlag); + bool isSubHeap(JKRHeap* heap) const; + + /* vt[03] */ virtual void callAllDisposer(); + /* vt[04] */ virtual u32 getHeapType() = 0; + /* vt[05] */ virtual bool check() = 0; + /* vt[06] */ virtual bool dump_sort(); + /* vt[07] */ virtual bool dump() = 0; + /* vt[08] */ virtual void do_destroy() = 0; + /* vt[09] */ virtual void* do_alloc(u32 size, int alignment) = 0; + /* vt[10] */ virtual void do_free(void* ptr) = 0; + /* vt[11] */ virtual void do_freeAll() = 0; + /* vt[12] */ virtual void do_freeTail() = 0; + /* vt[13] */ virtual void do_fillFreeArea() = 0; + /* vt[14] */ virtual s32 do_resize(void* ptr, u32 size) = 0; + /* vt[15] */ virtual s32 do_getSize(void* ptr) = 0; + /* vt[16] */ virtual s32 do_getFreeSize() = 0; + /* vt[17] */ virtual void* do_getMaxFreeBlock() = 0; + /* vt[18] */ virtual s32 do_getTotalFreeSize() = 0; + /* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID); + /* vt[20] */ virtual u8 do_getCurrentGroupId(); + /* vt[21] */ virtual void state_register(JKRHeap::TState*, unsigned long) const; + /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; + /* vt[23] */ virtual void state_dump(JKRHeap::TState const&) const; + + void setDebugFill(bool debugFill) { mDebugFill = debugFill; } + bool getDebugFill() const { return mDebugFill; } + void* getStartAddr() const { return (void*)mStart; } + void* getEndAddr() const { return (void*)mEnd; } + u32 getSize() const { return mSize; } + bool getErrorFlag() const { return mErrorFlag; } + void callErrorHandler(JKRHeap* heap, u32 size, int alignment) { + if (mErrorHandler) { + (*mErrorHandler)(heap, size, alignment); + } + } + + JKRHeap* getParent() const { + JSUTree* parent = mChildTree.getParent(); + return parent->getObject(); + } + + JSUTree& getHeapTree() { return mChildTree; } + void appendDisposer(JKRDisposer* disposer) { mDisposerList.append(&disposer->mLink); } + void removeDisposer(JKRDisposer* disposer) { mDisposerList.remove(&disposer->mLink); } + void lock() { OSLockMutex(&mMutex); } + void unlock() { OSUnlockMutex(&mMutex); } + +protected: + /* 0x00 */ // vtable + /* 0x04 */ // JKRDisposer + /* 0x18 */ OSMutex mMutex; + /* 0x30 */ u8* mStart; + /* 0x34 */ u8* mEnd; + /* 0x38 */ u32 mSize; + /* 0x3C */ bool mDebugFill; + /* 0x3D */ bool mCheckMemoryFilled; + /* 0x3E */ u8 mAllocationMode; // EAllocMode? + /* 0x3F */ u8 mGroupId; + /* 0x40 */ JSUTree mChildTree; + /* 0x5C */ JSUList mDisposerList; + /* 0x68 */ bool mErrorFlag; + /* 0x69 */ bool mInitFlag; + /* 0x6A */ u8 padding_0x6a[2]; + +public: + static bool initArena(char**, u32*, int); + static void* alloc(u32 size, int alignment, JKRHeap* heap); + static void free(void* ptr, JKRHeap* heap); + static s32 resize(void* ptr, u32 size, JKRHeap* heap); + static s32 getSize(void* ptr, JKRHeap* heap); + static JKRHeap* findFromRoot(void* ptr); + + static void copyMemory(void* dst, void* src, u32 size); + static void fillMemory(void* dst, u32 size, u8 value); // NOTE: never used + static bool checkMemoryFilled(void* src, u32 size, u8 value); + + static JKRErrorHandler setErrorHandler(JKRErrorHandler errorHandler); + + static void* getCodeStart(void) { return mCodeStart; } + static void* getCodeEnd(void) { return mCodeEnd; } + static void* getUserRamStart(void) { return mUserRamStart; } + static void* getUserRamEnd(void) { return mUserRamEnd; } + static u32 getMemorySize(void) { return mMemorySize; } + static JKRHeap* getRootHeap() { return sRootHeap; } + static JKRHeap* getSystemHeap() { return sSystemHeap; } + static JKRHeap* getCurrentHeap() { return sCurrentHeap; } + static void setSystemHeap(JKRHeap* heap) { sSystemHeap = heap; } + static void setCurrentHeap(JKRHeap* heap) { sCurrentHeap = heap; } + + static void setState_u32ID_(TState* state, u32 id) { state->mId = id; } + static void setState_uUsedSize_(TState* state, u32 usedSize) { state->mUsedSize = usedSize; } + static void setState_u32CheckCode_(TState* state, u32 checkCode) { + state->mCheckCode = checkCode; + } + static void* getState_buf_(TState* state) { return &state->mBuf; } + static void* getState_(TState* state) { return getState_buf_(state); } + + static void* mCodeStart; + static void* mCodeEnd; + static void* mUserRamStart; + static void* mUserRamEnd; + static u32 mMemorySize; + + static JKRHeap* sRootHeap; + static JKRHeap* sSystemHeap; + static JKRHeap* sCurrentHeap; + + static JKRErrorHandler mErrorHandler; +}; + +void* operator new(u32 size); +void* operator new(u32 size, int alignment); +void* operator new(u32 size, JKRHeap* heap, int alignment); + +void* operator new[](u32 size); +void* operator new[](u32 size, int alignment); +void* operator new[](u32 size, JKRHeap* heap, int alignment); + +void operator delete(void* ptr); +void operator delete[](void* ptr); + +inline void* operator new(u32 size, void* ptr) { + return ptr; +} + +void JKRDefaultMemoryErrorRoutine(void* heap, u32 size, int alignment); + +inline void* JKRAllocFromHeap(JKRHeap* heap, u32 size, int alignment) { + return JKRHeap::alloc(size, alignment, heap); +} + +inline void* JKRAllocFromSysHeap(u32 size, int alignment) { + JKRHeap* systemHeap = JKRHeap::getSystemHeap(); + return systemHeap->alloc(size, alignment); +} + +inline void JKRFreeToHeap(JKRHeap* heap, void* ptr) { + JKRHeap::free(ptr, heap); +} + +inline void JKRFreeToSysHeap(void* ptr) { + JKRHeap* systemHeap = JKRHeap::getSystemHeap(); + systemHeap->free(ptr); +} + +inline void JKRFree(void* ptr) { + JKRHeap::free(ptr, NULL); +} + +inline JKRHeap* JKRGetSystemHeap() { + return JKRHeap::getSystemHeap(); +} + +inline JKRHeap* JKRGetCurrentHeap() { + return JKRHeap::getCurrentHeap(); +} + #endif /* JKRHEAP_H */ diff --git a/include/JSystem/JKernel/JKRMemArchive.h b/include/JSystem/JKernel/JKRMemArchive.h index 29714fb2b4..883b747995 100644 --- a/include/JSystem/JKernel/JKRMemArchive.h +++ b/include/JSystem/JKernel/JKRMemArchive.h @@ -1,6 +1,42 @@ #ifndef JKRMEMARCHIVE_H #define JKRMEMARCHIVE_H +#include "JSystem/JKernel/JKRArchive.h" #include "dolphin/types.h" +enum JKRMemBreakFlag { + JKRMEMBREAK_FLAG_UNKNOWN0 = 0, + JKRMEMBREAK_FLAG_UNKNOWN1 = 1, +}; + +class JKRMemArchive : public JKRArchive { +public: + JKRMemArchive(long, JKRArchive::EMountDirection); + JKRMemArchive(void*, u32, JKRMemBreakFlag); + virtual ~JKRMemArchive(); + + bool open(long, JKRArchive::EMountDirection); + bool open(void*, u32, JKRMemBreakFlag); + + /* vt[09] */ void removeResourceAll(void); /* override */ + /* vt[10] */ bool removeResource(void*); /* override */ + + /* vt[15] */ u32 getExpandedResSize(const void*) const; /* override */ + /* vt[16] */ void* fetchResource(SDIFileEntry*, u32*); /* override */ + /* vt[17] */ void* fetchResource(void*, u32, SDIFileEntry*, u32*); /* override */ + +public: + static u32 fetchResource_subroutine(u8*, u32, u8*, u32, JKRCompression); + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRArchive + /* 0x5C */ JKRCompression mCompression; + /* 0x60 */ EMountDirection mMountDirection; + /* 0x64 */ SArcHeader* mArcHeader; + /* 0x68 */ u8* mArchiveData; + /* 0x6C */ bool mIsOpen; + /* 0x6D */ u8 field_0x6d[3]; +}; + #endif /* JKRMEMARCHIVE_H */ diff --git a/include/JSystem/JKernel/JKRSolidHeap.h b/include/JSystem/JKernel/JKRSolidHeap.h index 17b7ff831e..c190314459 100644 --- a/include/JSystem/JKernel/JKRSolidHeap.h +++ b/include/JSystem/JKernel/JKRSolidHeap.h @@ -1,6 +1,60 @@ #ifndef JKRSOLIDHEAP_H #define JKRSOLIDHEAP_H +#include "JSystem/JKernel/JKRHeap.h" #include "dolphin/types.h" +class JKRSolidHeap : public JKRHeap { +public: + struct Unknown { + u32 field_0x0; + u32 field_0x4; + u32 field_0x8; + void* field_0xc; + Unknown* mNext; + }; + +protected: + JKRSolidHeap(void*, u32, JKRHeap*, bool); + virtual ~JKRSolidHeap(); + + s32 adjustSize(void); + void* allocFromHead(u32, int); + void* allocFromTail(u32, int); + + s32 getUsedSize() { return mSize - getTotalFreeSize(); } + +public: + /* vt[04] */ virtual u32 getHeapType(void); /* override */ + /* vt[05] */ virtual bool check(void); /* override */ + + /* vt[07] */ virtual bool dump(void); /* override */ + /* vt[08] */ virtual void do_destroy(void); /* override */ + /* vt[09] */ virtual void* do_alloc(u32, int); /* override */ + /* vt[10] */ virtual void do_free(void*); /* override */ + /* vt[11] */ virtual void do_freeAll(void); /* override */ + /* vt[12] */ virtual void do_freeTail(void); /* override */ + /* vt[13] */ virtual void do_fillFreeArea(void); /* override */ + /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */ + /* vt[15] */ virtual s32 do_getSize(void*); /* override */ + /* vt[16] */ virtual s32 do_getFreeSize(void); /* override */ + /* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */ + /* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */ + + /* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */ + /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, + JKRHeap::TState const&) const; /* override */ + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRHeap + /* 0x6C */ u32 mFreeSize; + /* 0x70 */ u8* mSolidHead; + /* 0x74 */ u8* mSolidTail; + /* 0x78 */ Unknown* field_0x78; + +public: + static JKRSolidHeap* create(u32, JKRHeap*, bool); +}; + #endif /* JKRSOLIDHEAP_H */ diff --git a/include/JSystem/JKernel/JKRThread.h b/include/JSystem/JKernel/JKRThread.h index e12468604f..70938402d1 100644 --- a/include/JSystem/JKernel/JKRThread.h +++ b/include/JSystem/JKernel/JKRThread.h @@ -1,6 +1,116 @@ #ifndef JKRTHREAD_H #define JKRTHREAD_H +#include "JSystem/JKernel/JKRDisposer.h" +#include "JSystem/JSupport/JSUList.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" +class JKRThreadName_; +class JUTConsole; +class JKRHeap; +class JKRThread : JKRDisposer { +public: + JKRThread(u32 stack_size, int message_count, int param_3); + JKRThread(JKRHeap* heap, u32 stack_size, int message_count, int param_4); + JKRThread(OSThread* thread, int message_count); + virtual ~JKRThread(); + + /* vt[03] */ virtual void* run(); + + void setCommon_mesgQueue(JKRHeap* heap, int message_count); + void setCommon_heapSpecified(JKRHeap* heap, u32 stack_size, int param_3); + + OSThread* getThreadRecord() const { return mThreadRecord; } + void* getStack() const { return mStackMemory; } + u8 getLoadInfo() const { return field_0x60; } + JKRHeap* getCurrentHeap() const { return mCurrentHeap; } + JKRHeap* getCurrentHeapError() const { return mCurrentHeapError; } + +protected: + void resume() { OSResumeThread(mThreadRecord); } + void sendMessage(OSMessage message) { + OSSendMessage(&mMessageQueue, message, OS_MESSAGE_NON_BLOCKING); + } + void sendMessageBlock(OSMessage message) { + OSSendMessage(&mMessageQueue, message, OS_MESSAGE_BLOCKING); + } + OSMessage waitMessage() { + OSMessage message; + OSReceiveMessage(&mMessageQueue, &message, OS_MESSAGE_NON_BLOCKING); + return message; + } + OSMessage waitMessageBlock() { + OSMessage message; + OSReceiveMessage(&mMessageQueue, &message, OS_MESSAGE_BLOCKING); + return message; + } + void jamMessageBlock(OSMessage message) { + OSJamMessage(&mMessageQueue, message, OS_MESSAGE_BLOCKING); + } + +private: + /* 0x00 */ // vtable + /* 0x04 */ // JKRDisposer + /* 0x18 */ JSULink mThreadListLink; + /* 0x28 */ JKRHeap* mHeap; + /* 0x2C */ OSThread* mThreadRecord; + /* 0x30 */ OSMessageQueue mMessageQueue; + /* 0x50 */ OSMessage* mMessages; + /* 0x54 */ s32 mMessageCount; + /* 0x58 */ void* mStackMemory; + /* 0x5C */ u32 mStackSize; + /* 0x60 */ u8 field_0x60; + /* 0x61 */ u8 padding_0x61[3]; + /* 0x64 */ u32 mCost; + /* 0x68 */ u32 mSwitchCount; + /* 0x6C */ u32 field_0x6c; + /* 0x70 */ u32 field_0x70; + /* 0x74 */ JKRHeap* mCurrentHeap; + /* 0x78 */ JKRHeap* mCurrentHeapError; + +public: + static void* start(void* param_1); + static JKRThread* searchThread(OSThread* thread); + static JSUList& getList() { return (JSUList&)sThreadList; } + + static JSUList sThreadList; + // static u8 sThreadList[12]; +}; + +class JKRThreadSwitch { +public: + JKRThreadSwitch(JKRHeap*); + virtual void draw(JKRThreadName_* param_1, JUTConsole* param_2); + virtual void draw(JKRThreadName_* param_1); + virtual ~JKRThreadSwitch(); + + static JKRThreadSwitch* createManager(JKRHeap* heap); + + JKRThread* enter(JKRThread* param_1, int param_2); + static void callback(OSThread* param_1, OSThread* param_2); + + // TODO: fix types + static u8 sManager[4]; + static u8 sTotalCount[4]; + static u8 sTotalStart[4]; + static u8 mUserPreCallback[4]; + static u8 mUserPostCallback[4]; + +public: + JKRHeap* heap; + u8 field_0x8[4]; + u32 field_0xC[2]; + u8 field_0x14[4]; + u32 field_0x18; + u32 field_0x1C; + u32 field_0x20; + u32 field_0x24; +}; + +struct JKRTask { + static JSUList sTaskList; + static u8 sEndMesgQueue[32]; +}; + #endif /* JKRTHREAD_H */ diff --git a/include/JSystem/JKernel/SArc.h b/include/JSystem/JKernel/SArc.h new file mode 100644 index 0000000000..e69de29bb2 diff --git a/include/JSystem/JSupport/JSUFileStream.h b/include/JSystem/JSupport/JSUFileStream.h index 84dd384ad8..31ae686210 100644 --- a/include/JSystem/JSupport/JSUFileStream.h +++ b/include/JSystem/JSupport/JSUFileStream.h @@ -1,6 +1,21 @@ #ifndef JSUFILESTREAM_H #define JSUFILESTREAM_H +#include "JSystem/JSupport/JSURandomInputStream.h" #include "dolphin/types.h" +struct JKRFile; + +class JSUFileInputStream : public JSURandomInputStream { +public: + virtual ~JSUFileInputStream(); + + // TODO: fix return values + /* 802DC638 */ JSUFileInputStream(JKRFile*); + /* 802DC67C */ s32 readData(void*, s32); + /* 802DC74C */ void seekPos(s32, JSUStreamSeekFrom); + /* 802DC82C */ s32 getLength() const; + /* 802DC85C */ s32 getPosition() const; +}; + #endif /* JSUFILESTREAM_H */ diff --git a/include/JSystem/JSupport/JSUInputStream.h b/include/JSystem/JSupport/JSUInputStream.h index 1ee87d8708..e4b6648fe5 100644 --- a/include/JSystem/JSupport/JSUInputStream.h +++ b/include/JSystem/JSupport/JSUInputStream.h @@ -1,6 +1,22 @@ #ifndef JSUINPUTSTREAM_H #define JSUINPUTSTREAM_H +#include "JSystem/JSupport/JSUIosBase.h" #include "dolphin/types.h" +struct JSUStreamSeekFrom {}; + +class JSUInputStream : public JSUIosBase { +public: + JSUInputStream(); + virtual ~JSUInputStream(); + + /* vt[3] */ virtual s32 getAvailable() const = 0; + /* vt[4] */ virtual s32 skip(s32); + /* vt[5] */ virtual s32 readData(void*, s32) = 0; + + // TODO: return value probably wrong + /* 802DC298 */ void read(void*, s32); +}; + #endif /* JSUINPUTSTREAM_H */ diff --git a/include/JSystem/JSupport/JSUIosBase.h b/include/JSystem/JSupport/JSUIosBase.h new file mode 100644 index 0000000000..ef4046b673 --- /dev/null +++ b/include/JSystem/JSupport/JSUIosBase.h @@ -0,0 +1,24 @@ +#ifndef JSUIOSBASE_H_ +#define JSUIOSBASE_H_ + +#include "dolphin/types.h" + +enum EIoState { + IOS_STATE_1 = 1, +}; + +class JSUIosBase { +public: + JSUIosBase() { mState = false; } + + virtual ~JSUIosBase(); + + bool isGood() const { return mState == 0; } + void clrState(EIoState state) { mState &= ~state; } + void setState(EIoState state) { mState |= state; } + +private: + u8 mState; +}; + +#endif diff --git a/include/JSystem/JSupport/JSUList.h b/include/JSystem/JSupport/JSUList.h index 6cee1805a5..3a1bf90229 100644 --- a/include/JSystem/JSupport/JSUList.h +++ b/include/JSystem/JSupport/JSUList.h @@ -3,4 +3,255 @@ #include "dolphin/types.h" +template +class JSUList; + +// +// Link +// + +class JSUPtrList; +class JSUPtrLink { +public: + JSUPtrLink(void* object); + ~JSUPtrLink(); + + void* getObjectPtr() const { return mObject; } + + JSUPtrList* getList() const { return mList; } + + JSUPtrLink* getNext() const { return mNext; } + + JSUPtrLink* getPrev() const { return mPrev; } + +public: + void* mObject; + JSUPtrList* mList; + JSUPtrLink* mPrev; + JSUPtrLink* mNext; +}; + +template +class JSULink : public JSUPtrLink { +public: + JSULink(T* object) : JSUPtrLink((void*)object) {} + + T* getObject() const { return (T*)getObjectPtr(); } + + JSUList* getSupervisor() const { return (JSUList*)this->getList(); } + + JSULink* getNext() const { return (JSULink*)this->JSUPtrLink::getNext(); } + + JSULink* getPrev() const { return (JSULink*)this->JSUPtrLink::getPrev(); } +}; + +// +// List +// + +class JSUPtrList { +public: + JSUPtrList() { this->initiate(); } + + JSUPtrList(bool init); + ~JSUPtrList(); + + void initiate(); + void setFirst(JSUPtrLink* first); + bool append(JSUPtrLink* ptr); + bool prepend(JSUPtrLink* ptr); + bool insert(JSUPtrLink* before, JSUPtrLink* ptr); + bool remove(JSUPtrLink* ptr); + JSUPtrLink* getNthLink(u32 i) const; + + JSUPtrLink* getFirstLink() const { return mHead; } + + JSUPtrLink* getLastLink() const { return mTail; } + + u32 getNumLinks() const { return mLength; } + +private: + JSUPtrLink* mHead; + JSUPtrLink* mTail; + u32 mLength; +}; + +template +class JSUList : public JSUPtrList { +public: + JSUList() : JSUPtrList() {} + + JSUList(bool init) : JSUPtrList(init) {} + + bool append(JSULink* link) { return this->JSUPtrList::append((JSUPtrLink*)link); } + + bool prepend(JSULink* link) { return this->JSUPtrList::prepend((JSUPtrLink*)link); } + + bool insert(JSULink* before, JSULink* link) { + return this->JSUPtrList::insert((JSUPtrLink*)before, (JSUPtrLink*)link); + } + + bool remove(JSULink* link) { return this->JSUPtrList::remove((JSUPtrLink*)link); } + + JSULink* getFirst() const { return (JSULink*)getFirstLink(); } + + JSULink* getLast() const { return (JSULink*)getLastLink(); } + + JSULink* getEnd() const { return NULL; } + + u32 getNumLinks() const { return this->JSUPtrList::getNumLinks(); } +}; + +template +class JSUListIterator { +public: + JSUListIterator() : mLink(NULL) {} + JSUListIterator(JSULink* link) : mLink(link) {} + JSUListIterator(JSUList* list) : mLink(list->getFirst()) {} + + JSUListIterator& operator=(JSULink* link) { + this->mLink = link; + return *this; + } + + T* getObject() { return this->mLink->getObject(); } + + bool operator==(JSULink const* other) const { return this->mLink == other; } + bool operator!=(JSULink const* other) const { return this->mLink != other; } + bool operator==(JSUListIterator const& other) const { return this->mLink == other.mLink; } + bool operator!=(JSUListIterator const& other) const { return this->mLink != other.other; } + + JSUListIterator operator++(int) { + JSUListIterator prev = *this; + this->mLink = this->mLink->getNext(); + return prev; + } + + JSUListIterator& operator++() { + this->mLink = this->mLink->getNext(); + return *this; + } + + JSUListIterator operator--(int) { + JSUListIterator prev = *this; + this->mLink = this->mLink->getPrev(); + return prev; + } + + JSUListIterator& operator--() { + this->mLink = this->mLink->getPrev(); + return *this; + } + + T& operator*() { return *this->getObject(); } + + T* operator->() { return this->getObject(); } + +private: + JSULink* mLink; +}; + +// +// Tree +// + +#define JSU_TREE_FROM_LINK(T, LINK) (JSUTree*)(((u8*)(LINK)) - 12) +#define JSU_TREE_LINK_IF_NOT_NULL(TREE) \ + if (TREE) { \ + TREE = (JSUTree*)(&(TREE)->mLink); \ + } + +#define _JSU_TREE_AS_LINK(TREE) ((JSULink*)(TREE)) + +template +class JSUTree { +public: + JSUTree(T* owner) : mList(), mLink(owner) {} + ~JSUTree() {} + + bool appendChild(JSUTree* child) { + JSU_TREE_LINK_IF_NOT_NULL(child); + return this->mList.append(_JSU_TREE_AS_LINK(child)); + } + + bool removeChild(JSUTree* child) { + JSU_TREE_LINK_IF_NOT_NULL(child); + return this->mList.remove(_JSU_TREE_AS_LINK(child)); + } + + bool insertChild(JSUTree* before, JSUTree* child) { + JSU_TREE_LINK_IF_NOT_NULL(before); + JSU_TREE_LINK_IF_NOT_NULL(child); + return this->mList.insert(_JSU_TREE_AS_LINK(before), _JSU_TREE_AS_LINK(child)); + } + + JSUTree* getEndChild() const { return NULL; } + + JSUTree* getFirstChild() const { + JSULink* link = this->mList.getFirst(); + return link ? JSU_TREE_FROM_LINK(T, link) : (JSUTree*)link; + } + + JSUTree* getLastChild() const { + JSULink* link = this->mList.getLast(); + return link ? JSU_TREE_FROM_LINK(T, link) : (JSUTree*)link; + } + + JSUTree* getNextChild() const { + JSULink* link = this->mLink.getNext(); + return link ? JSU_TREE_FROM_LINK(T, link) : (JSUTree*)link; + } + + JSUTree* getPrevChild() const { + JSULink* link = this->mLink.getPrev(); + return link ? JSU_TREE_FROM_LINK(T, link) : (JSUTree*)link; + } + + u32 getNumChildren() const { return this->mList.getNumLinks(); } + + T* getObject() const { return this->mLink.getObject(); } + + JSUTree* getParent() const { return (JSUTree*)this->mLink.getList(); } + +private: + JSUList mList; + JSULink mLink; +}; + +template +class JSUTreeIterator { +public: + JSUTreeIterator() : mTree(NULL) {} + JSUTreeIterator(JSUTree* tree) : mTree(tree) {} + + JSUTreeIterator& operator=(JSUTree* tree) { + this->mTree = tree; + return *this; + } + + T* getObject() { return this->mTree->getObject(); } + + bool operator==(JSUTree* other) { return this->mTree == other; } + + bool operator!=(JSUTree* other) { return this->mTree != other; } + + JSUTreeIterator operator++(int) { + JSUTreeIterator prev = *this; + this->mTree = this->mTree->getNextChild(); + return prev; + } + + JSUTreeIterator& operator++() { + this->mTree = this->mTree->getNextChild(); + return *this; + } + + T& operator*() { return *this->getObject(); } + + T* operator->() { return this->getObject(); } + +private: + JSUTree* mTree; +}; + #endif /* JSULIST_H */ diff --git a/include/JSystem/JSupport/JSURandomInputStream.h b/include/JSystem/JSupport/JSURandomInputStream.h new file mode 100644 index 0000000000..d6f56fc594 --- /dev/null +++ b/include/JSystem/JSupport/JSURandomInputStream.h @@ -0,0 +1,25 @@ +#ifndef JSURANDOMINPUTSTREAM_H_ +#define JSURANDOMINPUTSTREAM_H_ + +#include "JSystem/JSupport/JSUInputStream.h" +#include "dolphin/types.h" + +class JSURandomInputStream : public JSUInputStream { +public: + JSURandomInputStream(); + virtual ~JSURandomInputStream(); + + /* vt[3] */ virtual s32 getAvailable() const; /* override */ + /* vt[4] */ virtual s32 skip(s32); /* override */ + /* vt[5] */ virtual s32 readData(void*, s32) = 0; + /* vt[6] */ virtual s32 getLength() const = 0; + /* vt[7] */ virtual s32 getPosition() const = 0; + /* vt[7] */ virtual s32 seekPos() = 0; + + // TODO: fix return types + /* 802DC370 */ void align(s32); + /* 802DC458 */ void peek(void*, s32); + /* 802DC4DC */ void seek(s32, JSUStreamSeekFrom); +}; + +#endif diff --git a/include/JSystem/JUtility/JUTAssert.h b/include/JSystem/JUtility/JUTAssert.h index d889b094f3..e2de8d6445 100644 --- a/include/JSystem/JUtility/JUTAssert.h +++ b/include/JSystem/JUtility/JUTAssert.h @@ -3,4 +3,14 @@ #include "dolphin/types.h" +// TODO: make it a namespace +struct JUTAssertion { + /* 802E495C */ static void create(); + /* 802E4960 */ static void flush_subroutine(); + /* 802E499C */ static void flushMessage(); + /* 802E4A54 */ static void flushMessage_dbPrint(); + /* 802E4C34 */ static void setVisible(bool); + /* 802E4C3C */ static void setMessageCount(int); +}; + #endif /* JUTASSERT_H */ diff --git a/include/JSystem/JUtility/JUTException.h b/include/JSystem/JUtility/JUTException.h index 05a9031ce1..cf58121b56 100644 --- a/include/JSystem/JUtility/JUTException.h +++ b/include/JSystem/JUtility/JUTException.h @@ -1,6 +1,67 @@ #ifndef JUTEXCEPTION_H #define JUTEXCEPTION_H +#include "dolphin/gx/GX.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" +struct _GXRenderModeObj; +struct _GXGamma {}; + +struct JUTExternalFB { + /* 802E40CC */ JUTExternalFB(_GXRenderModeObj*, _GXGamma, void*, u32); +}; + +struct JUTDirectPrint { + /* 802E456C */ void changeFrameBuffer(void*, u16, u16); +}; + +struct JUTException { + struct EInfoPage {}; + + // TODO: return types are probably wrong + /* 802E1D5C */ JUTException(JUTDirectPrint*); + /* 802E1E40 */ void create(JUTDirectPrint*); + /* 802E1EA8 */ void run(); + /* 802E1FCC */ void errorHandler(u16, OSContext*, u32, u32); + /* 802E20C0 */ void panic_f_va(char const*, int, char const*, __va_list_struct*); + /* 802E21FC */ static void panic_f(char const*, int, char const*, ...); + /* 802E227C */ void setFPException(u32); + /* 802E22C4 */ void showFloatSub(int, f32); + /* 802E2454 */ void showFloat(OSContext*); + /* 802E2578 */ void searchPartialModule(u32, u32*, u32*, u32*, u32*); + /* 802E26B0 */ void showStack(OSContext*); + /* 802E27B0 */ void showMainInfo(u16, OSContext*, u32, u32); + /* 802E2A84 */ void showGPR(OSContext*); + /* 802E2B44 */ void showMapInfo_subroutine(u32, bool); + /* 802E2CA0 */ void showGPRMap(OSContext*); + /* 802E2DAC */ void showSRR0Map(OSContext*); + /* 802E2E70 */ void printDebugInfo(JUTException::EInfoPage, u16, OSContext*, u32, u32); + /* 802E2F18 */ void isEnablePad() const; + /* 802E2F54 */ void readPad(u32*, u32*); + /* 802E34C0 */ void printContext(u16, OSContext*, u32, u32); + /* 802E3980 */ void waitTime(s32); + /* 802E3A08 */ void createFB(); + /* 802E3AEC */ void setPreUserCallback(void (*)(u16, OSContext*, u32, u32)); + /* 802E3AFC */ void setPostUserCallback(void (*)(u16, OSContext*, u32, u32)); + /* 802E3B0C */ void appendMapFile(char const*); + /* 802E3BA0 */ void queryMapAddress(char*, u32, s32, u32*, u32*, char*, u32, bool, bool); + /* 802E3C90 */ void queryMapAddress_single(char*, u32, s32, u32*, u32*, char*, u32, bool, bool); + /* 802E3FEC */ void createConsole(void*, u32); + /* 802E40EC */ ~JUTException(); + + static u8 sMessageQueue[32]; + static void* sCpuExpName[17]; + static u8 sMapFileList[12 + 4 /* padding */]; + static u8 sMessageBuffer[4 + 4 /* padding */]; + static u8 sErrorManager[4]; + static u8 sPreUserCallback[4]; + static u8 sPostUserCallback[4]; + static u8 sConsoleBuffer[4]; + static u8 sConsoleBufferSize[4]; + static u8 sConsole[4]; + static u8 msr[4]; + static u8 fpscr[4]; +}; + #endif /* JUTEXCEPTION_H */ diff --git a/include/JSystem/JUtility/JUTFont.h b/include/JSystem/JUtility/JUTFont.h index 8abc640081..640143a768 100644 --- a/include/JSystem/JUtility/JUTFont.h +++ b/include/JSystem/JUtility/JUTFont.h @@ -1,7 +1,7 @@ #ifndef JUTFONT_H #define JUTFONT_H -#include "dolphin/gx/GXTexture.h" +#include "dolphin/gx/GX.h" #include "dolphin/types.h" namespace JUtility { @@ -21,4 +21,45 @@ struct TColor : _GXColor { } // namespace JUtility +class JUTFont { +public: + JUTFont(); + virtual ~JUTFont() {} + + struct TWidth {}; + + /* 0x0c */ virtual void setGX() = 0; + /* 0x10 */ virtual void setGX(JUtility::TColor col1, JUtility::TColor col2); + /* 0x14 */ virtual f32 drawChar_scale(f32 a1, f32 a2, f32 a3, f32 a4, int a5, bool a6) = 0; + /* 0x18 */ virtual u16 getLeading() const = 0; + /* 0x1c */ virtual u16 getAscent() const = 0; + /* 0x20 */ virtual u16 getDescent() const = 0; + /* 0x24 */ virtual u32 getHeight() const = 0; + /* 0x28 */ virtual u32 getWidth() const = 0; + /* 0x2c */ virtual void getWidthEntry(int i_no, TWidth* width) const; + /* 0x30 */ virtual u32 getCellWidth() const; + /* 0x34 */ virtual u32 getCellHeight() const; + /* 0x38 */ virtual u32 getFontType() const = 0; + /* 0x3c */ virtual void getResFont() const = 0; + /* 0x40 */ virtual bool isLeadByte(int a1) const = 0; + + static bool isLeadByte_1Byte(int b); + static bool isLeadByte_2Byte(int b); + static bool isLeadByte_ShiftJIS(int b); + + void initialize_state(); + void setCharColor(JUtility::TColor col1); + void setGradColor(JUtility::TColor col1, JUtility::TColor col2); + f32 drawString_size_scale(f32 a1, f32 a2, f32 a3, f32 a4, const char* a5, u32 usz, bool a7); + + u8 unk4; + bool unk5; + int unk8; + JUtility::TColor mColor1; + JUtility::TColor mColor2; + JUtility::TColor mColor3; + JUtility::TColor mColor4; + int unk1C; +}; + #endif /* JUTFONT_H */ diff --git a/include/JSystem/JUtility/JUTGamePad.h b/include/JSystem/JUtility/JUTGamePad.h index a54934dc42..5153cb08f0 100644 --- a/include/JSystem/JUtility/JUTGamePad.h +++ b/include/JSystem/JUtility/JUTGamePad.h @@ -1,6 +1,186 @@ #ifndef JUTGAMEPAD_H #define JUTGAMEPAD_H +#include "JSystem/JKernel/JKRDisposer.h" +#include "JSystem/JSupport/JSUList.h" +#include "dolphin/os/OS.h" +#include "dolphin/pad/Pad.h" #include "dolphin/types.h" +typedef void (*callbackFn)(int, void*); + +namespace CButton { +enum { + DPAD_LEFT = 0x0001, + DPAD_RIGHT = 0x0002, + DPAD_DOWN = 0x0004, + DPAD_UP = 0x0008, + Z = 0x0010, + R = 0x0020, + L = 0x0040, + A = 0x0100, + B = 0x0200, + X = 0x0400, + Y = 0x0800, + START = 0x1000, +}; +} + +struct JUTGamePad : public JKRDisposer { +public: + // TODO: fix types + // static JSUList mPadList; + static u8 mPadList[12]; + static PADStatus mPadStatus[4]; + static u8 mPadButton[192]; + static u8 mPadMStick[64]; + static u8 mPadSStick[64]; + static u32 sStickMode; + static u32 sClampMode; + static u8 mPadAssign[4]; + static u8 sSuppressPadReset[4]; + static s32 sAnalogMode; + static u8 sRumbleSupported[4]; + + enum EStickMode {}; + enum EWhichStick {}; + // typedef u32 EPadPort; + enum EPadPort { Port_1 = 0, Port_2 = 0, Port_3 = 0, Port_4 = 0 }; + JUTGamePad(JUTGamePad::EPadPort port); + virtual ~JUTGamePad(); + + void initList(); + static s32 init(); + void clear(); + void read(); + void assign(); + void checkResetCallback(OSTime unk); // todo: weird arg + void update(); + void stopPatternedRumble() { this->rumble.stopPatternedRumble(this->pad_port); } + static void checkResetSwitch(); + static void clearForReset(); + static JUTGamePad* getGamePad(int pad_index); + static bool recalibrate(/*PADMask*/ u32 pad_mask); + + struct CButton { + CButton(); + void clear(); + u32 update(PADStatus const*, u32 unk); + void setRepeat(u32 unk0, u32 unk1, u32 unk2); + + u32 mButtonFlags; + + u32 mPressedButtonFlags; + u32 mReleasedButtonFlags; + + u8 mAnalogARaw; + u8 mAnalogBRaw; + u8 mTriggerLeftRaw; + u8 mTriggerRightRaw; + f32 mTriggerLeft; + f32 mTriggerRight; + + u32 field_0x18; // padding? + u32 field_0x1c; + u32 field_0x20; + u32 field_0x24; + u32 field_0x28; + u32 field_0x2c; + }; + + struct C3ButtonReset { + // TODO: fix types + static u32 sResetPattern; + static u32 sResetMaskPattern; + static callbackFn sCallback; + static void* sCallbackArg; + static OSTime sThreshold; + static s32 sResetOccurredPort; + }; + + struct CStick { + static f32 sPressPoint; + static f32 sReleasePoint; + + CStick(); + void clear(); + void clear(JUTGamePad* pad); + u32 update(s8 unk0, s8 unk1, JUTGamePad::EStickMode mode, JUTGamePad::EWhichStick stick, + u32 unk2); + u32 getButton(u32 unk); + + float mPosX; + float mPosY; + float mValue; + s16 mAngle; + s8 field_0xe; + s8 field_0xf; + }; + + struct CRumble { + static PADMask sChannelMask[4]; + static bool mStatus[4]; + static PADMask mEnabled; + + enum ERumble { + VAL_0 = 0, + VAL_1 = 1, + VAL_2 = 2, + }; + + void clear(); + void clear(JUTGamePad* pad); + static void startMotor(int channel); + static void stopMotor(int channel, bool stop); + void update(s16 unk0); + void triggerPatternedRumble(u32 unk0); + void startPatternedRumble(void* unk0, ERumble rumble, u32 unk1); + void stopPatternedRumble(s16 pad_port); + void stopPatternedRumbleAtThePeriod(); + static void setEnabled(/*PADMask*/ u32 pad_mask); + + u32 field_0x0; + u32 field_0x4; + u8* field_0x8; + u32 field_0xc; + u8* field_0x10; + }; + + CButton buttons; + CStick control_stick; + CStick c_stick; + CRumble rumble; + s16 pad_port; + s8 error_value; + u8 pad0; + JSUPtrLink ptr_link; + u8 unk0[8]; + u8 field_0x98; + u8 unk1[3]; + u8 reset_flag; + u8 pad1[3]; + OSTime reset_time; + u8 field_0xa8; + + friend class CRumble; +}; + +struct JUTGamePadLongPress { + // TODO: fix type + // static JSUList sPatternList; + static u8 sPatternList[12]; + void checkCallback(int unk0, u32 unk2); + + u8 unk0[17]; + bool field_0x11; // bool? + u8 unk1[10]; + u32 field_0x1c; + u8 unk2[28]; + u8 field_0x3c; + u8 unk3[11]; + bool field_0x48[4]; // bool[4]? + void (*callback)(s32, JUTGamePadLongPress*, s32); + s32 field_0x50; +}; + #endif /* JUTGAMEPAD_H */ diff --git a/include/JSystem/JUtility/JUTReport.h b/include/JSystem/JUtility/JUTReport.h new file mode 100644 index 0000000000..9fd63ad99b --- /dev/null +++ b/include/JSystem/JUtility/JUTReport.h @@ -0,0 +1,7 @@ +#ifndef JSYSTEM_JUTILITY_JUTREPORT_H +#define JSYSTEM_JUTILITY_JUTREPORT_H + +void JUTReport(int, int, const char*, ...); +void JUTReport(int, int, int, const char*, ...); + +#endif \ No newline at end of file diff --git a/include/JSystem/JUtility/JUTVideo.h b/include/JSystem/JUtility/JUTVideo.h index 37637e91c0..883dc7f236 100644 --- a/include/JSystem/JUtility/JUTVideo.h +++ b/include/JSystem/JUtility/JUTVideo.h @@ -1,6 +1,52 @@ #ifndef JUTVIDEO_H #define JUTVIDEO_H +#include "dolphin/gx/GX.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" +#include "dolphin/vi/vi.h" + +// TODO: placeholder +struct _GXRenderModeObj {}; + +struct JUTVideo { + static JUTVideo* sManager; + // TODO: figure out type + static u8 sVideoLastTick[4]; + static u8 sVideoInterval[4]; + + JUTVideo(_GXRenderModeObj const*); + virtual ~JUTVideo(); + + typedef void (*CallbackFn)(void); + + // struct JUTVideo_vtable * vtable; + GXRenderModeObj* render_object; + u32 field_0x8; + u32 retrace_count; + u32 field_0x10; + u32 field_0x14; + u32 field_0x18; + VIRetraceCallback pre_retrace_callback; + VIRetraceCallback post_retrace_callback; + CallbackFn unknown_callback_1; + CallbackFn unknown_callback_2; + bool set_black; + u8 padding[3]; + s32 set_black_frame_counter; + OSMessage message; + OSMessageQueue message_queue; + + // TODO: return types not confirmed + /* 802E4C54 */ void createManager(_GXRenderModeObj const*); + /* 802E4CAC */ void destroyManager(); + /* 802E4E50 */ void preRetraceProc(u32); + /* 802E5088 */ void drawDoneStart(); + /* 802E50B0 */ void dummyNoDrawWait(); + /* 802E50BC */ void drawDoneCallback(); + /* 802E5144 */ void postRetraceProc(u32); + /* 802E5198 */ void setRenderMode(_GXRenderModeObj const*); + /* 802E5210 */ void waitRetraceIfNeed(); +}; #endif /* JUTVIDEO_H */ diff --git a/include/SSystem/SComponent/c_lib.h b/include/SSystem/SComponent/c_lib.h index 9e0780aca9..8ff0092bc1 100644 --- a/include/SSystem/SComponent/c_lib.h +++ b/include/SSystem/SComponent/c_lib.h @@ -2,6 +2,7 @@ #define C_LIB_H_ #include "SSystem/SComponent/c_xyz.h" +#include "dolphin/mtx/mtx.h" #include "dolphin/types.h" void cLib_memCpy(void* dst, const void* src, unsigned long size); diff --git a/include/SSystem/SComponent/c_m3d_g_lin.h b/include/SSystem/SComponent/c_m3d_g_lin.h index f641f75a85..b858765a9c 100644 --- a/include/SSystem/SComponent/c_m3d_g_lin.h +++ b/include/SSystem/SComponent/c_m3d_g_lin.h @@ -2,8 +2,8 @@ #define C_M3D_G_LIN_H #include "SSystem/SComponent/c_xyz.h" +#include "dolphin/mtx/vec.h" #include "dolphin/types.h" -#include "mtx_vec.h" // Line class cM3dGLin { diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h index 36e6a0208b..704b43ab7c 100644 --- a/include/SSystem/SComponent/c_xyz.h +++ b/include/SSystem/SComponent/c_xyz.h @@ -1,8 +1,8 @@ #ifndef C_XYZ_H #define C_XYZ_H +#include "dolphin/mtx/vec.h" #include "global.h" -#include "mtx_vec.h" struct cXyz : Vec { static const cXyz Zero; diff --git a/include/dolphin/ar/ar.h b/include/dolphin/ar/ar.h index 582026c85d..1a76e3b209 100644 --- a/include/dolphin/ar/ar.h +++ b/include/dolphin/ar/ar.h @@ -3,4 +3,10 @@ #include "dolphin/types.h" +extern "C" { +u32 ARInit(u32*, u32); +u32 ARAlloc(u32); +u32 ARGetSize(void); +} + #endif /* AR_H */ diff --git a/include/dolphin/ar/arq.h b/include/dolphin/ar/arq.h index 431856229c..49f8f4e08b 100644 --- a/include/dolphin/ar/arq.h +++ b/include/dolphin/ar/arq.h @@ -3,4 +3,23 @@ #include "dolphin/types.h" +typedef void (*ARQCallback)(u32 request_address); + +struct ARQRequest { + ARQRequest* next; + u32 owner; + u32 type; + u32 priority; + u32 source; + u32 destination; + u32 length; + ARQCallback callback; +}; + +extern "C" { +void ARQInit(void); +void ARQPostRequest(ARQRequest* task, u32 owner, u32 type, u32 priority, u32 source, + u32 destination, u32 length, ARQCallback callback); +} + #endif /* ARQ_H */ diff --git a/include/dolphin/dvd/dvd.h b/include/dolphin/dvd/dvd.h index f15e94ccdf..dd345442ed 100644 --- a/include/dolphin/dvd/dvd.h +++ b/include/dolphin/dvd/dvd.h @@ -3,4 +3,89 @@ #include "dolphin/types.h" +extern "C" { + +typedef enum DVDState { + DVD_STATE_END = 0x0, + DVD_STATE_BUSY = 0x1, + DVD_STATE_WAITING = 0x2, + DVD_STATE_COVER_CLOSED = 0x3, + DVD_STATE_NO_DISK = 0x4, + DVD_STATE_COVER_OPEN = 0x5, + DVD_STATE_WRONG_DISK = 0x6, + DVD_STATE_MOTOR_STOPPED = 0x7, + DVD_STATE_IGNORED = 0x8, + DVD_STATE_CANCELED = 0xa, // lmao they skipped 9 + DVD_STATE_RETRY = 0xb, + DVD_STATE_FATAL_ERROR = -1, +} DVDState; +} + +struct DVDDirectory { + u32 entry_number; + u32 location; + u32 next; +}; + +struct DVDDirectoryEntry { + u32 entry_number; + BOOL is_directory; + char* name; +}; + +struct DVDDiskID { + char game_name[4]; + char company[2]; + u8 disk_number; + u8 game_version; + u8 is_streaming; + u8 streaming_buffer_size; + u8 padding[22]; +}; + +struct DVDFileInfo; +struct DVDCommandBlock; +typedef void (*DVDCBCallback)(s32 result, DVDCommandBlock* block); +typedef void (*DVDCallback)(s32 result, DVDFileInfo* info); + +struct DVDCommandBlock { + DVDCommandBlock* next; + DVDCommandBlock* prev; + u32 command; + s32 state; + u32 offset; + u32 length; + void* buffer; + u32 current_transfer_size; + u32 transferred_size; + DVDDiskID* disk_id; + DVDCBCallback callback; + void* user_data; +}; + +struct DVDFileInfo { + DVDCommandBlock block; + u32 start_address; + u32 length; + DVDCallback callback; +}; + +extern "C" { +s32 DVDOpen(const char*, DVDFileInfo*); +s32 DVDClose(DVDFileInfo*); +void DVDReadPrio(DVDFileInfo*, void*, s32, s32, s32); +DVDDiskID* DVDGetCurrentDiskID(void); +s32 DVDFastOpen(long, DVDFileInfo*); +int DVDGetCommandBlockStatus(DVDCommandBlock*); +s32 DVDReadAsyncPrio(DVDFileInfo*, void*, long, long, DVDCallback, long); +s32 DVDConvertPathToEntrynum(const char*); +DVDState DVDGetDriveStatus(void); +s32 DVDCheckDisk(void); + +BOOL DVDChangeDir(const char*); +BOOL DVDCloseDir(DVDDirectory*); +BOOL DVDOpenDir(const char*, DVDDirectory*); +BOOL DVDReadDir(DVDDirectory*, DVDDirectoryEntry*); +} + #endif /* DVD_H */ diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h new file mode 100644 index 0000000000..c07a96f247 --- /dev/null +++ b/include/dolphin/gx/GX.h @@ -0,0 +1,168 @@ +#ifndef GX_H_ +#define GX_H_ + +#include "dolphin/gx/GXTexture.h" +#include "dolphin/types.h" + +// TODO: maybe split? + +typedef enum _GXCullMode { + GX_CULL_NONE = 0, + GX_CULL_FRONT = 1, + GX_CULL_BACK = 2, + GX_CULL_ALL = 3 +} GXCullMode; + +typedef enum _GXTexMapID { + GX_TEXMAP1 = 1, + GX_TEXMAP2 = 2, + GX_TEXMAP0 = 0, + GX_TEXMAP5 = 5, + GX_TEXMAP6 = 6, + GX_TEXMAP3 = 3, + GX_TEXMAP4 = 4, + GX_TEXMAP_NULL = 255, + GX_TEX_DISABLE = 256, + GX_TEXMAP7 = 7, + GX_MAX_TEXMAP = 8 +} GXTexMapID; + +struct GXRenderModeObj { + s32 vi_tv_mode; + u16 fb_width; + u16 efb_height; + u16 xfb_height; + u16 vi_x_origin; + u16 vi_y_origin; + u16 vi_width; + u16 vi_height; + s32 xfb_mode; + u8 field_rendering; + u8 antialiasing; + u8 sample_pattern[12][2]; + u8 vfilter[7]; +}; + +typedef enum GXTexFmt8 { /* 8-bit version of GXTexFmt for use in structures */ + GX_CTF_A8 = 39, + GX_CTF_B8 = 42, + GX_CTF_G8 = 41, + GX_CTF_GB8 = 44, + GX_CTF_R4 = 32, + GX_CTF_R8 = 40, + GX_CTF_RA4 = 34, + GX_CTF_RA8 = 35, + GX_CTF_RG8 = 43, + GX_CTF_YUVA8 = 38, + GX_CTF_Z16L = 60, + GX_CTF_Z4 = 48, + GX_CTF_Z8L = 58, + GX_CTF_Z8M = 57, + GX_TF_CMPR = 14, + GX_TF_I4 = 0, + GX_TF_I8 = 1, + GX_TF_IA4 = 2, + GX_TF_IA8 = 3, + GX_TF_RGB565 = 4, + GX_TF_RGB5A3 = 5, + GX_TF_RGBA8 = 6, + GX_TF_Z16 = 19, + GX_TF_Z24X8 = 22, + GX_TF_Z8 = 17 +} GXTexFmt8; + +typedef enum GXTexWrapMode8 { /* Same as GXTexWrapMode, but as 1 byte for use inside structures */ + GX_CLAMP = 0, + GX_MIRROR = 2, + GX_REPEAT = 1 +} GXTexWrapMode8; + +typedef enum GXTexFilter8 { /* Same as GXTexFilter, but as 1 byte for use within structures that + store the value as a byte */ + GX_LINEAR = 1, + GX_LIN_MIP_LIN = 5, + GX_LIN_MIP_NEAR = 3, + GX_NEAR = 0, + GX_NEAR_MIP_LIN = 4, + GX_NEAR_MIP_NEAR = 2 +} GXTexFilter8; + +extern "C" { +f32 GXGetYScaleFactor(u16 efb_height, u16 xfb_height); +u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale); + +void GXBegin(u8, u8, u16); +void GXLoadTexObj(u32*, s32); +void GXInitTexObjLOD(f32, f32, f32, u32*, s32, s32, u32, u8, u32); +void GXInitTexObj(u32*, u32, u32, u32, u32, u32, u8); + +void GXSetNumChans(u32); +void GXSetNumTevStages(u32); +void GXSetNumTexGens(u32); +void GXSetTevOrder(u32, u32, u32, u32); +void GXSetChanCtrl(u32, u32, u32, u32, u32, u32, s32); +void GXSetTevOp(s32, s32); +void GXSetTevColor(s32, _GXColor); +void GXSetTevColorIn(s32, u32, u32, u32, u32); +void GXSetTevAlphaIn(s32, u32, u32, u32, u32); +void GXSetTevColorOp(s32, u32, u32, u32, u32, u32); +void GXSetTevAlphaOp(s32, u32, u32, u32, u32, u32); +void GXSetBlendMode(u32, u32, u32, u32); +void GXSetVtxAttrFmt(u32, u32, u32, u32, u32); +void GXClearVtxDesc(); +void GXSetVtxDesc(u32, u32); +typedef void (*GXDrawDoneCallback)(void); +void GXSetDrawDoneCallback(GXDrawDoneCallback); +void GXDrawDone(void); +void GXAbortFrame(void); +void GXFlush(void); + +struct OSThread; +OSThread* GXSetCurrentGXThread(void); +OSThread* GXGetCurrentGXThread(void); + +// Below needs proper symbols +void GXClearVtxDesc(void); +void GXCopyTex(void); +void GXGetProjectionv(void); +u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, s32 is_mip_map, u8 max_lod); +void GXGetViewportv(void); +void GXInitLightColor(void); +void GXInitLightDir(void); +void GXInitLightDistAttn(void); +void GXInitLightPos(void); +void GXInitLightSpot(void); +void GXInvalidateTexAll(void); +void GXLoadLightObjImm(void); +void GXLoadPosMtxImm(void); +void GXLoadTexMtxImm(void); +void GXPixModeSync(void); +void GXProject(void); +void GXSetAlphaCompare(void); +void GXSetAlphaUpdate(void); +void GXSetChanMatColor(void); +void GXSetClipMode(void); +void GXSetCoPlanar(void); +void GXSetCopyFilter(void); +void GXSetCullMode(void); +void GXSetCurrentMtx(void); +void GXSetDither(void); +void GXSetFog(void); +void GXSetFogRangeAdj(void); +void GXSetNumIndStages(void); +void GXSetProjection(void); +void GXSetScissor(void); +void GXSetTevColorS10(void); +void GXSetTevKAlphaSel(void); +void GXSetTevSwapMode(void); +void GXSetTevSwapModeTable(void); +void GXSetTexCoordGen2(void); +void GXSetTexCopyDst(void); +void GXSetTexCopySrc(void); +void GXSetViewport(void); +void GXSetZCompLoc(void); +void GXSetZMode(void); +void GXSetZTexture(void); +}; + +#endif \ No newline at end of file diff --git a/include/dolphin/mtx/mtx.h b/include/dolphin/mtx/mtx.h index e62ea7ae21..8124777766 100644 --- a/include/dolphin/mtx/mtx.h +++ b/include/dolphin/mtx/mtx.h @@ -1,6 +1,32 @@ #ifndef MTX_H #define MTX_H +#include "dolphin/mtx/quat.h" +#include "dolphin/mtx/vec.h" #include "dolphin/types.h" +typedef float Mtx[3][4]; + +extern "C" { +void PSMTXIdentity(Mtx matrix); +void PSMTXCopy(const Mtx src, Mtx dst); +void PSMTXConcat(const Mtx src_a, const Mtx src_b, Mtx dst); +u32 PSMTXInverse(const Mtx src, Mtx dst); +void PSMTXRotRad(Mtx matrix, u8 axis, float rad); +void PSMTXRotTrig(Mtx matrix, u8 axis, float sin, float cos); +double __PSMTXRotAxisRadInternal(double param_1, double param_2, int param_3, int param_4); +void PSMTXRotAxisRad(Mtx matrix, const Vec* axis, float rad); +void PSMTXTrans(Mtx matrix, float x_trans, float y_trans, float z_trans); +void PSMTXTransApply(const Mtx src, Mtx dst, float x, float y, float z); +void PSMTXScale(Mtx matrix, float x_scale, float y_scale, float z_scale); +void PSMTXScaleApply(const Mtx src, Mtx dst, float x_scale, float y_scale, float z_scale); +void PSMTXQuat(Mtx matrix, const Quaternion* quat); + +void C_MTXLookAt(Mtx param_1, const Vec* param_2, const Vec* param_3, const Vec* param_4); +void C_MTXLightPerspective(Mtx matrix, float fov_y, float aspect, float scale_s, float scale_t, + float trans_s, float trans_t); +void C_MTXLightOrtho(Mtx matrix, float top, float bottom, float left, float right, float scale_s, + float scale_t, float trans_s, float trans_t); +} + #endif /* MTX_H */ diff --git a/include/dolphin/mtx/mtx44.h b/include/dolphin/mtx/mtx44.h index 5b272b01c5..12fd1b9339 100644 --- a/include/dolphin/mtx/mtx44.h +++ b/include/dolphin/mtx/mtx44.h @@ -3,4 +3,13 @@ #include "dolphin/types.h" +typedef float Mtx44[4][4]; + +extern "C" { + +void C_MTXPerspective(Mtx44 matrix, float fov_y, float aspect, float near, float far); +void C_MTXOrtho(Mtx44 matrix, float top, float bottom, float left, float right, float near, + float far); +} + #endif /* MTX44_H */ diff --git a/include/dolphin/mtx/mtxvec.h b/include/dolphin/mtx/mtxvec.h index c511ff5618..171add0e61 100644 --- a/include/dolphin/mtx/mtxvec.h +++ b/include/dolphin/mtx/mtxvec.h @@ -1,6 +1,15 @@ #ifndef MTXVEC_H #define MTXVEC_H +#include "dolphin/mtx/mtx.h" +#include "dolphin/mtx/vec.h" #include "dolphin/types.h" +extern "C" { +void PSMTXMultVec(const Mtx matrix, const Vec* src, Vec* dst); +void PSMTXMultVecArray(const Mtx matrix, const Vec* src, Vec* dst, u32 count); +void PSMTXMultVecSR(const Mtx matrix, const Vec* src, Vec* dst); +void PSMTXMultVecArraySR(const Mtx matrix, const Vec* src, Vec* dst, u32 count); +} + #endif /* MTXVEC_H */ diff --git a/include/dolphin/mtx/quat.h b/include/dolphin/mtx/quat.h index c77e2cff23..7cb4f0abe3 100644 --- a/include/dolphin/mtx/quat.h +++ b/include/dolphin/mtx/quat.h @@ -1,6 +1,17 @@ #ifndef QUAT_H #define QUAT_H +#include "dolphin/mtx/vec.h" #include "dolphin/types.h" +struct Quaternion { + float x, y, z, w; +}; + +extern "C" { +void PSQUATMultiply(const Quaternion* src_a, const Quaternion* src_b, Quaternion* dst); +void C_QUATRotAxisRad(Quaternion* quat, const Vec* axis, float rad); +void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, float t); +} + #endif /* QUAT_H */ diff --git a/include/dolphin/mtx/vec.h b/include/dolphin/mtx/vec.h index 3234768cf8..5e7a2e4541 100644 --- a/include/dolphin/mtx/vec.h +++ b/include/dolphin/mtx/vec.h @@ -13,4 +13,19 @@ struct Vec { float getZDiff(const Vec* other) const { return z - other->z; } }; +extern "C" { +void PSVECAdd(const Vec* src_a, const Vec* src_b, Vec* dst); +void PSVECSubtract(const Vec* a, const Vec* b, Vec* dst); +void PSVECScale(const Vec* src, Vec* dst, float scale); +void PSVECNormalize(const Vec* src, Vec* dst); +float PSVECSquareMag(const Vec* vec); +float PSVECMag(const Vec* data); +float PSVECDotProduct(const Vec* a, const Vec* b); +void PSVECCrossProduct(const Vec* src_a, const Vec* src_b, Vec* dst); +void C_VECHalfAngle(const Vec* incident, const Vec* line_of_sight, Vec* out_half); +void C_VECReflect(const Vec* src, const Vec* surface_normal, Vec* dst); +float PSVECSquareDistance(const Vec* a, const Vec* b); +float PSVECDistance(const Vec* a, const Vec* b); +} + #endif /* VEC_H */ diff --git a/include/dolphin/os/OS.h b/include/dolphin/os/OS.h index e36b28e71a..988d93d268 100644 --- a/include/dolphin/os/OS.h +++ b/include/dolphin/os/OS.h @@ -1,6 +1,300 @@ -#ifndef OS_H -#define OS_H +// at some point: we should split this up into various OS/... headers. but not +// yet, since barely any files include this atm. + +#ifndef OS_H_ +#define OS_H_ #include "dolphin/types.h" -#endif /* OS_H */ +/* TODO: more structs, and get rid of the ones that are faked! */ + +#define OS_MESSAGE_NON_BLOCKING 0 +#define OS_MESSAGE_BLOCKING 1 + +struct OSThread; +struct OSMutex { + u8 unk[24]; +}; + +struct OSMutexLink { + struct OSMutex* prev; + struct OSMutex* next; +}; + +struct OSMutexQueue { + struct OSMutex* prev; + struct OSMutex* next; +}; + +struct OSContext { + u32 gpr[32]; + u32 cr; + u32 lr; + u32 ctr; + u32 xer; + double fpr[32]; + u32 padding_1; + u32 fpscr; + u32 srr0; + u32 srr1; + u16 mode; + u16 state; + u32 gqr[8]; + u32 padding_2; + double ps[32]; +}; + +typedef void (*OSSwitchThreadCallback)(OSThread* from, OSThread* to); + +struct OSThreadLink { + struct OSThread* prev; + struct OSThread* next; +}; + +struct OSThreadQueue { + struct OSThread* head; + struct OSThread* tail; +}; + +struct OSCond { + struct OSThreadQueue queue; +}; + +typedef void* OSMessage; + +struct OSMessageQueue { + struct OSThreadQueue sending_queue; + struct OSThreadQueue receiving_queue; + void** message_array; + s32 num_messages; + s32 first_index; + s32 num_used; +}; + +typedef u32 OSTick; + +typedef s64 OSTime; + +struct OSCalendarTime { + s32 seconds; + s32 minutes; + s32 hours; + s32 day_of_month; + s32 month; + s32 year; + s32 week_day; + s32 year_day; + s32 milliseconds; + s32 microseconds; +}; + +typedef s32 OSHeapHandle; + +typedef enum OSSoundMode { + SOUND_MODE_MONO = 0, + SOUND_MODE_STEREO = 1, +} OSSoundMode; + +typedef u16 OSThreadState; +#define OS_THREAD_STATE_UNINITIALIZED 0 +#define OS_THREAD_STATE_READY 1 +#define OS_THREAD_STATE_RUNNING 2 +#define OS_THREAD_STATE_WAITING 4 +#define OS_THREAD_STATE_DEAD 8 + +struct OSThread { + OSContext context; + OSThreadState state; + u16 attributes; + s32 suspend_count; + u32 effective_priority; + u32 base_priority; + void* exit_value; + OSThreadQueue* queue; + OSThreadLink link; + OSThreadQueue join_queue; + OSMutex* mutex; + OSMutexQueue owned_mutexes; + OSThreadLink active_threads_link; + u8* stack_base; + u8* stack_end; + u8* error_code; + void* data[2]; +}; + +struct __va_list_struct {}; + +extern "C" { +s32 OSEnableScheduler(void); +s32 OSDisableScheduler(void); +s32 OSCheckActiveThreads(void); +OSThread* OSGetCurrentThread(void); + +s32 OSSuspendThread(OSThread* thread); +s32 OSSetThreadPriority(OSThread* thread, u32 pri); +s32 OSGetThreadPriority(OSThread* thread); +s32 OSCreateThread(OSThread* thread, void* func, void* param, void* stack, u32 stackSize, + int param_6, int param_7); +void OSCancelThread(OSThread* thread); +void OSDetachThread(OSThread* thread); +s32 OSResumeThread(OSThread* thread); +void OSExitThread(void* exit_val); +bool OSIsThreadSuspended(OSThread* thread); +BOOL OSIsThreadTerminated(OSThread* thread); +OSSwitchThreadCallback OSSetSwitchThreadCallback(OSSwitchThreadCallback* callback); + +void OSInitMessageQueue(OSMessageQueue* queue, OSMessage* messages, int message_count); +BOOL OSReceiveMessage(OSMessageQueue* queue, OSMessage* message, int flags); +BOOL OSSendMessage(OSMessageQueue* queue, OSMessage message, int flags); +BOOL OSJamMessage(OSMessageQueue* queue, OSMessage message, int flags); + +s32 OSGetConsoleType(void); +u32 OSGetResetCode(void); + +u32 OSGetSoundMode(void); +void OSSetSoundMode(OSSoundMode mode); + +void OSAttention(const char* msg, ...); +void OSPanic(const char* file, s32 line, const char* fmt, ...); +void OSReport(const char* fmt, ...); +void OSReport_Error(const char* fmt, ...); +void OSReport_FatalError(const char* fmt, ...); +void OSReport_System(const char* fmt, ...); +void OSReport_Warning(const char* fmt, ...); +void OSReportDisable(void); +void OSReportEnable(void); +void OSReportForceEnableOff(void); +void OSReportForceEnableOn(void); +void OSVReport(const char* format, __va_list_struct* list); + +void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime* out_time); +OSTime OSGetTime(void); +OSTick OSGetTick(void); + +u32 OSGetArenaLo(); +u32 OSGetArenaHi(); +u32 OSInitAlloc(u32 low, u32 high, int param_3); +void OSSetArenaLo(u32 param_1); +void OSSetArenaHi(u32 param_1); +void* OSAllocFromArenaLo(u32 size, int alignment); + +// void OSCancelAlarm(OSAlarm *alarm); + +void OSInitMutex(OSMutex* mutex); +void OSLockMutex(OSMutex* mutex); +void OSTryLockMutex(OSMutex* mutex); +void OSUnlockMutex(OSMutex* mutex); + +s32 OSDisableInterrupts(); +s32 OSEnableInterrupts(); +s32 OSRestoreInterrupts(s32 level); + +void OSResetSystem(s32 param_1, u32 param_2, s32 param_3); + +void OSSetSaveRegion(void* start, void* end); + +void LCDisable(void); + +void OSReportInit__Fv(void); // needed for inline asm + +u8* OSGetStackPointer(void); +}; // extern "C" + +void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32); + +void OSVAttention(const char* fmt, __va_list_struct* va_list); + +void OSReportInit(void); + +#include "dolphin/dvd/dvd.h" + +struct GLOBAL_MEMORY { + DVDDiskID disk; + u32 nintendo_boot_code; /* Nintendo Standard Boot Code. */ + u32 field_0x24; /* Version (set by apploader) */ + u32 memory_size; /* Memory Size (Physical) 24MB */ + u32 field_0x2c; /* Production Board Model */ + u32 arena_low; /* Arena Low */ + u32 arena_high; /* Arena High */ + u32 field_0x38; /* Start of FST (varies in all games) */ + u32 field_0x3c; /* Maximum FST Size (varies in all games) */ + u8 padding_0x40[32]; + u8 field_0x60[36]; /* Hook is PPC assembler used by Debugger. */ + u8 padding_0x84[84]; + OSContext* field_0xd8; /* Current OSContext instance. */ + OSThread* field_0xdc; /* OSThread pointer, previously created thread. */ + OSThread* field_0xe0; /* OSThread pointer, most recently created thread. */ + OSThread* field_0xe4; /* Current thread pointer. */ + u32 field_0xe8; /* Dev Debugger Monitor Address (If present) */ + u32 field_0xec; /* Simulated Memory Size */ + u32 field_0xf0; /* Pointer to data read from partition's bi2.bin, set by apploader */ + u32 field_0xf4; /* Console Bus Speed */ + u32 field_0xf8; /* Console CPU Speed */ + u8 padding_0xfc[5892]; + u8 field_0x1800[6144]; /* Unused Exception Vector */ + u8 padding_0x3000[64]; + u32 field_0x3040[34]; /* __OSInterrupt table. */ + u32 field_0x30c8; /* Pointer to the first loaded REL file. */ + u32 field_0x30cc; /* Pointer to the last loaded REL file. */ + u32 field_0x30d0; /* Pointer to a REL module name table, or 0. */ + u8 padding_0x30d8[4]; + u64 field_0x30d8; /* System time */ + u8 padding_0x30e0[4]; + u32 field_0x30e4; /* __OSPADButton */ + u8 padding_0x30ec[8]; + u32 field_0x30f0; /* DOL Execute Parameters */ + u8 padding_0x30f4[12]; + u32 field_0x3100; /* Physical MEM1 size */ + u32 field_0x3104; /* Simulated MEM1 size */ + u8 padding_0x3108[8]; + u32 field_0x3110; /* Heap pointer (end of usable memory by the game) */ + u8 padding_0x3114[4]; + u32 field_0x3118; /* Physical MEM2 size */ + u32 field_0x311c; /* Simulated MEM2 size */ + u8 padding_0x3120[16]; + u32 field_0x3130; /* IOS Heap Range (start) */ + u32 field_0x3134; /* IOS Heap Range (end) */ + u32 field_0x3138; /* Hollywood Version */ + u8 padding_0x313c[4]; + u32 field_0x3140; /* IOS version */ + u32 field_0x3144; /* IOS Build Date */ + u8 padding_0x3148[16]; + u32 field_0x3158; /* GDDR Vendor Code */ + u32 field_0x315c; /* During the boot process, */ + u32 field_0x3160; /* Init semaphore (1-2 main() waits for this to clear) */ + u32 field_0x3164; /* GC (MIOS) mode flag? */ + u8 padding_0x3168[24]; + u32 field_0x3180; /* Game ID */ + u8 field_0x3184; /* Application type. 0x80 for disc games, 0x81 for channels. */ + u8 padding_0x3185; + u8 field_0x3186; /* Application type 2 */ + u8 padding_0x3187; + u32 field_0x3188; /* Minimum IOS version */ + u32 field_0x318c; /* Title Booted from NAND (Launch Code) */ + u32 field_0x3190; /* Title Booted from NAND (Return Code) */ + u32 field_0x3194; /* While reading a disc, the system menu reads the first partition table (0x20 + bytes from 0x00040020) and stores a pointer to the data partition entry. + When launching the disc game, it copies the partition type to 0x3194. The + partition type for data partitions is 0, so typically this location always + has 0. */ + u32 field_0x3198; /* While reading a disc, the system menu reads the first partition table (0x20 + bytes from 0x00040020) and stores a pointer to the data partition entry. + When launching the disc game, it copies the partition offset to 0x3198. */ + u32 field_0x319c; /* Set by the apploader to 0x80 for single-layer discs and 0x81 for dual-layer + discs (determined by whether 0x7ed40000 is the value at offset 0x30 in the + partition's bi2.bin; it seems that that value is 0 for single-layer discs). + Early titles' apploaders do not set it at all, leaving the value as 0. This + controls the /dev/di#0x8D_DVDLowUnencryptedRead out-of-bounds Error #001 + read for titles that do make such a read: they try to read at 0x7ed40000 + for dual-layer discs and 0x460a0000 for single-layer discs. */ + u8 field_0x31a0[3424]; +}; + +#define OS_ASSERT(...) + +inline void* OSPhysicalToCached(u32 offset) { + OS_ASSERT(offset <= 0x1fffffff); + return (void*)(offset + 0x80000000); +} + +#endif \ No newline at end of file diff --git a/include/dolphin/os/OSCache.h b/include/dolphin/os/OSCache.h index 7996ae104c..fd26996f04 100644 --- a/include/dolphin/os/OSCache.h +++ b/include/dolphin/os/OSCache.h @@ -3,4 +3,9 @@ #include "dolphin/types.h" +extern "C" { +void DCInvalidateRange(void*, u32); +void DCStoreRange(void*, u32); +} + #endif /* OSCACHE_H */ diff --git a/include/dolphin/pad/Pad.h b/include/dolphin/pad/Pad.h index 7fd85dc8ba..c89ac7ed0a 100644 --- a/include/dolphin/pad/Pad.h +++ b/include/dolphin/pad/Pad.h @@ -3,4 +3,41 @@ #include "dolphin/types.h" +typedef enum PADMask { + // PAD_CHAN3_BIT = (1 << 0), + // PAD_CHAN2_BIT = (1 << 1), + // PAD_CHAN1_BIT = (1 << 2), + // PAD_CHAN0_BIT = (1 << 3), + + PAD_CHAN3_BIT = (1 << 28), + PAD_CHAN2_BIT = (1 << 29), + PAD_CHAN1_BIT = (1 << 30), + PAD_CHAN0_BIT = (1 << 31), +} PADMask; + +typedef struct PADStatus { + u16 button; + s8 stick_x; + s8 stick_y; + s8 substick_x; + s8 substick_y; + u8 trigger_left; + u8 trigger_right; + u8 analog_a; + u8 analog_b; + s8 error; +} PADStatus; + +extern "C" { +u32 PADInit(void); +void PADSetAnalogMode(u32 mode); +void PADSetSpec(int spec); +s32 PADReset(PADMask mask); +void PADClampCircle(PADStatus* status); +void PADClamp(PADStatus* status); +u32 PADRead(PADStatus* status); +void PADControlMotor(s32 channel, u32 command); +s32 PADRecalibrate(PADMask mask); +} + #endif /* PAD_H */ diff --git a/include/dolphin/vi/vi.h b/include/dolphin/vi/vi.h index 325615645a..586819f535 100644 --- a/include/dolphin/vi/vi.h +++ b/include/dolphin/vi/vi.h @@ -3,4 +3,8 @@ #include "dolphin/types.h" +typedef void (*VIRetraceCallback)(u32); + +extern "C" void VIWaitForRetrace(void); + #endif /* VI_H */ diff --git a/include/mtx_vec.h b/include/mtx_vec.h deleted file mode 100644 index feba7dbf00..0000000000 --- a/include/mtx_vec.h +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef MTX_VEC_H_ -#define MTX_VEC_H_ - -#include "dolphin/types.h" - -struct Vec { - float x, y, z; - float GetX() const { return x; } - float GetY() const { return y; } - float GetZ() const { return z; } - float getXDiff(const Vec* other) const { return x - other->x; } - float getYDiff(const Vec* other) const { return y - other->y; } - float getZDiff(const Vec* other) const { return z - other->z; } -}; - -struct Quaternion { - float x, y, z, w; -}; - -typedef float Mtx[3][4]; - -extern "C" { -void PSMTXIdentity(Mtx matrix); -void PSMTXCopy(const Mtx src, Mtx dst); -void PSMTXConcat(const Mtx src_a, const Mtx src_b, Mtx dst); -u32 PSMTXInverse(const Mtx src, Mtx dst); -void PSMTXRotRad(Mtx matrix, u8 axis, float rad); -void PSMTXRotTrig(Mtx matrix, u8 axis, float sin, float cos); -double __PSMTXRotAxisRadInternal(double param_1, double param_2, int param_3, int param_4); -void PSMTXRotAxisRad(Mtx matrix, const Vec* axis, float rad); -void PSMTXTrans(Mtx matrix, float x_trans, float y_trans, float z_trans); -void PSMTXTransApply(const Mtx src, Mtx dst, float x, float y, float z); -void PSMTXScale(Mtx matrix, float x_scale, float y_scale, float z_scale); -void PSMTXScaleApply(const Mtx src, Mtx dst, float x_scale, float y_scale, float z_scale); -void PSMTXQuat(Mtx matrix, const Quaternion* quat); -void C_MTXLookAt(Mtx param_1, const Vec* param_2, const Vec* param_3, const Vec* param_4); -void C_MTXLightPerspective(Mtx matrix, float fov_y, float aspect, float scale_s, float scale_t, - float trans_s, float trans_t); -void C_MTXLightOrtho(Mtx matrix, float top, float bottom, float left, float right, float scale_s, - float scale_t, float trans_s, float trans_t); -void PSMTXMultVec(const Mtx matrix, const Vec* src, Vec* dst); -void PSMTXMultVecArray(const Mtx matrix, const Vec* src, Vec* dst, u32 count); -void PSMTXMultVecSR(const Mtx matrix, const Vec* src, Vec* dst); -void PSMTXMultVecArraySR(const Mtx matrix, const Vec* src, Vec* dst, u32 count); -void C_MTXPerspective(Mtx matrix, float fov_y, float aspect, float near, float far); -void C_MTXOrtho(Mtx matrix, float top, float bottom, float left, float right, float near, - float far); -void PSVECAdd(const Vec* src_a, const Vec* src_b, Vec* dst); -void PSVECSubtract(const Vec* a, const Vec* b, Vec* dst); -void PSVECScale(const Vec* src, Vec* dst, float scale); -void PSVECNormalize(const Vec* src, Vec* dst); -float PSVECSquareMag(const Vec* vec); -float PSVECMag(const Vec* data); -float PSVECDotProduct(const Vec* a, const Vec* b); -void PSVECCrossProduct(const Vec* src_a, const Vec* src_b, Vec* dst); -void C_VECHalfAngle(const Vec* incident, const Vec* line_of_sight, Vec* out_half); -void C_VECReflect(const Vec* src, const Vec* surface_normal, Vec* dst); -float PSVECSquareDistance(const Vec* a, const Vec* b); -float PSVECDistance(const Vec* a, const Vec* b); -void PSQUATMultiply(const Quaternion* src_a, const Quaternion* src_b, Quaternion* dst); -void C_QUATRotAxisRad(Quaternion* quat, const Vec* axis, float rad); -void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, float t); -} - -#endif \ No newline at end of file diff --git a/libs/JSystem/JFramework/JFWDisplay.cpp b/libs/JSystem/JFramework/JFWDisplay.cpp index 78c8d1f1da..3620e4afe0 100644 --- a/libs/JSystem/JFramework/JFWDisplay.cpp +++ b/libs/JSystem/JFramework/JFWDisplay.cpp @@ -5,8 +5,8 @@ #include "JSystem/JFramework/JFWDisplay.h" #include "dol2asm.h" +#include "dolphin/mtx/mtx44.h" #include "dolphin/types.h" -#include "mtx_vec.h" // // Types: diff --git a/libs/JSystem/JKernel/JKRAram.cpp b/libs/JSystem/JKernel/JKRAram.cpp index 242a92c2ae..0cceabd354 100644 --- a/libs/JSystem/JKernel/JKRAram.cpp +++ b/libs/JSystem/JKernel/JKRAram.cpp @@ -4,87 +4,15 @@ // #include "JSystem/JKernel/JKRAram.h" +#include "JSystem/JKernel/JKRAramBlock.h" +#include "JSystem/JKernel/JKRAramHeap.h" +#include "JSystem/JKernel/JKRAramPiece.h" +#include "JSystem/JKernel/JKRAramStream.h" +#include "JSystem/JKernel/JKRExpHeap.h" +#include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JUTException { - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); -}; - -struct JSUPtrList { - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template5 { - /* 802D2DF0 */ void func_802D2DF0(void* _this); -}; - -struct JKRThread { - /* 802D1568 */ JKRThread(u32, int, int); - /* 802D1758 */ ~JKRThread(); -}; - -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE500 */ void free(void*, JKRHeap*); - - static u8 sSystemHeap[4]; - static u8 sCurrentHeap[4]; -}; - -struct JKRExpandSwitch {}; - -struct JKRDecomp { - /* 802DB680 */ void create(s32); - /* 802DB988 */ void orderSync(u8*, u8*, u32, u32); - /* 802DBCF8 */ void checkCompressed(u8*); -}; - -struct JKRAramStream { - /* 802D3B48 */ void create(s32); -}; - -struct JKRAMCommand {}; - -struct JKRAramBlock {}; - -struct JKRAramPiece { - /* 802D3838 */ void orderSync(int, u32, u32, u32, JKRAramBlock*); - /* 802D38CC */ void startDMA(JKRAMCommand*); -}; - -struct JKRAramHeap { - struct EAllocMode {}; - - /* 802D2E44 */ JKRAramHeap(u32, u32); - /* 802D2FBC */ void alloc(u32, JKRAramHeap::EAllocMode); -}; - -struct JKRAram { - /* 802D1FA4 */ void create(u32, u32, s32, s32, s32); - /* 802D2040 */ JKRAram(u32, u32, s32); - /* 802D214C */ ~JKRAram(); - /* 802D21DC */ void run(); - /* 802D2248 */ void checkOkAddress(u8*, u32, JKRAramBlock*, u32); - /* 802D22DC */ void changeGroupIdIfNeed(u8*, int); - /* 802D233C */ void mainRamToAram(u8*, u32, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); - /* 802D25B4 */ void aramToMainRam(u32, u8*, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); - - static u8 sMessageBuffer[16]; - static u8 sMessageQueue[32]; - static u8 sAramCommandList[12]; - static u32 sSZSBufferSize[1 + 1 /* padding */]; - static u8 sAramObject[4]; -}; +#include "dolphin/ar/ar.h" +#include "global.h" // // Forward References: @@ -135,17 +63,6 @@ extern "C" void __dt__10JSUPtrListFv(); extern "C" void initiate__10JSUPtrListFv(); extern "C" void panic_f__12JUTExceptionFPCciPCce(); extern "C" void DCStoreRangeNoSync(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSInitMessageQueue(); -extern "C" void OSReceiveMessage(); -extern "C" void OSInitMutex(); -extern "C" void OSLockMutex(); -extern "C" void OSUnlockMutex(); -extern "C" void OSResumeThread(); -extern "C" void ARAlloc(); -extern "C" void ARInit(); -extern "C" void ARGetSize(); extern "C" void ARQInit(); extern "C" void __register_global_object(); extern "C" void _savegpr_22(); @@ -169,98 +86,130 @@ extern "C" u8 sCurrentHeap__7JKRHeap[4]; /* ############################################################################################## */ /* 804513C8-804513CC 0008C8 0004+00 3/3 9/9 0/0 .sbss sAramObject__7JKRAram */ -u8 JKRAram::sAramObject[4]; +JKRAram* JKRAram::sAramObject; /* 802D1FA4-802D2040 2CC8E4 009C+00 0/0 1/1 0/0 .text create__7JKRAramFUlUllll */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAram::create(u32 param_0, u32 param_1, s32 param_2, s32 param_3, s32 param_4) { - nofralloc -#include "asm/JSystem/JKernel/JKRAram/create__7JKRAramFUlUllll.s" +JKRAram* JKRAram::create(u32 aram_audio_buffer_size, u32 aram_audio_graph_size, + long stream_priority, long decomp_priority, long piece_priority) { + if (!sAramObject) { + sAramObject = new (JKRHeap::getSystemHeap(), 0) + JKRAram(aram_audio_buffer_size, aram_audio_graph_size, piece_priority); + } + + JKRCreateAramStreamManager(stream_priority); + JKRCreateDecompManager(decomp_priority); + sAramObject->resume(); + return sAramObject; } -#pragma pop /* ############################################################################################## */ /* 803CC128-803CC138 029248 0010+00 1/1 0/0 0/0 .data sMessageBuffer__7JKRAram */ -SECTION_DATA u8 JKRAram::sMessageBuffer[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +OSMessage JKRAram::sMessageBuffer[4] = { + NULL, + NULL, + NULL, + NULL, }; /* 803CC138-803CC158 029258 0020+00 1/1 1/1 0/0 .data sMessageQueue__7JKRAram */ -SECTION_DATA u8 JKRAram::sMessageQueue[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803CC158-803CC168 029278 0010+00 2/2 0/0 0/0 .data __vt__7JKRAram */ -SECTION_DATA extern void* __vt__7JKRAram[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__7JKRAramFv, - (void*)run__7JKRAramFv, -}; +OSMessageQueue JKRAram::sMessageQueue = {0}; /* 802D2040-802D214C 2CC980 010C+00 1/1 0/0 0/0 .text __ct__7JKRAramFUlUll */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAram::JKRAram(u32 param_0, u32 param_1, s32 param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRAram/__ct__7JKRAramFUlUll.s" +JKRAram::JKRAram(u32 audio_buffer_size, u32 audio_graph_size, long priority) + : JKRThread(0xC00, 0x10, priority) { + u32 aramBase = ARInit(mStackArray, ARRAY_SIZE(mStackArray)); + ARQInit(); + + u32 aramSize = ARGetSize(); + + mAudioMemorySize = audio_buffer_size; + if (audio_graph_size == 0xffffffff) { + mGraphMemorySize = (aramSize - audio_buffer_size) - aramBase; + mAramMemorySize = 0; + } else { + mGraphMemorySize = audio_graph_size; + mAramMemorySize = (aramSize - (audio_buffer_size + audio_graph_size)) - aramBase; + } + + mAudioMemoryPtr = ARAlloc(mAudioMemorySize); + mGraphMemoryPtr = ARAlloc(mGraphMemorySize); + + if (mAramMemorySize) { + mAramMemoryPtr = ARAlloc(mAramMemorySize); + } else { + mAramMemoryPtr = NULL; + } + + mAramHeap = new (JKRHeap::getSystemHeap(), 0) JKRAramHeap(mGraphMemoryPtr, mGraphMemorySize); } -#pragma pop /* 802D214C-802D21DC 2CCA8C 0090+00 1/0 0/0 0/0 .text __dt__7JKRAramFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAram::~JKRAram() { - nofralloc -#include "asm/JSystem/JKernel/JKRAram/__dt__7JKRAramFv.s" +JKRAram::~JKRAram() { + sAramObject = NULL; + if (mAramHeap) + delete mAramHeap; } -#pragma pop /* 802D21DC-802D2248 2CCB1C 006C+00 1/0 0/0 0/0 .text run__7JKRAramFv */ +// almost full match +#ifdef NONMATCHING +void* JKRAram::run(void) { + int result; + JKRAMCommand* command; + JKRAMCommand::Message* message; + OSInitMessageQueue(&sMessageQueue, sMessageBuffer, 4); + do { + OSReceiveMessage(&sMessageQueue, &message, OS_MESSAGE_BLOCKING); + result = message->field_0x0; + command = message->command; + delete message; + + if (result == 1) { + JKRAramPiece::startDMA(command); + } + } while (true); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRAram::run() { +asm void* JKRAram::run() { nofralloc #include "asm/JSystem/JKernel/JKRAram/run__7JKRAramFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039D078-8039D078 0296D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D078 = "JKRAram.cpp"; -SECTION_DEAD static char const* const stringBase_8039D084 = "%s"; -SECTION_DEAD static char const* const stringBase_8039D087 = ":::address not 32Byte aligned."; -#pragma pop +// #pragma push +// #pragma force_active on +// SECTION_DEAD static char const* const stringBase_8039D078 = "JKRAram.cpp"; +// SECTION_DEAD static char const* const stringBase_8039D084 = "%s"; +// SECTION_DEAD static char const* const stringBase_8039D087 = ":::address not 32Byte aligned."; +// #pragma pop /* 802D2248-802D22DC 2CCB88 0094+00 2/2 0/0 0/0 .text * checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAram::checkOkAddress(u8* param_0, u32 param_1, JKRAramBlock* param_2, u32 param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRAram/checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl.s" +void JKRAram::checkOkAddress(u8* addr, u32 size, JKRAramBlock* block, u32 param_4) { + if (!IS_ALIGNED((u32)addr, 0x20) && !IS_ALIGNED(size, 0x20)) { + JUTException::panic_f("JKRAram.cpp", 0xdb, "%s", ":::address not 32Byte aligned."); + } + + if (block && !IS_ALIGNED((u32)block->getAddress() + param_4, 0x20)) { + JUTException::panic_f("JKRAram.cpp", 0xe3, "%s", ":::address not 32Byte aligned."); + } } -#pragma pop /* 802D22DC-802D233C 2CCC1C 0060+00 1/1 0/0 0/0 .text changeGroupIdIfNeed__7JKRAramFPUci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAram::changeGroupIdIfNeed(u8* param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRAram/changeGroupIdIfNeed__7JKRAramFPUci.s" +void JKRAram::changeGroupIdIfNeed(u8* data, int groupId) { + JKRHeap* currentHeap = JKRHeap::getCurrentHeap(); + if (currentHeap->getHeapType() == 'EXPH' && groupId >= 0) { + JKRExpHeap::CMemBlock* block = JKRExpHeap::CMemBlock::getBlock(data); + block->newGroupId(groupId); + } } -#pragma pop /* 802D233C-802D25B4 2CCC7C 0278+00 0/0 3/3 0/0 .text * mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl */ @@ -286,28 +235,20 @@ asm void JKRAram::aramToMainRam(u32 param_0, u8* param_1, u32 param_2, JKRExpand } #pragma pop -/* ############################################################################################## */ -/* 804342D0-804342DC 060FF0 000C+00 1/1 0/0 0/0 .bss @492 */ -static u8 lit_492[12]; - /* 804342DC-804342E8 060FFC 000C+00 1/1 0/0 0/0 .bss sAramCommandList__7JKRAram */ -u8 JKRAram::sAramCommandList[12]; +JSUList JKRAram::sAramCommandList; /* 804342E8-80434300 061008 0018+00 1/1 0/0 0/0 .bss decompMutex */ -static u8 decompMutex[24]; +static OSMutex decompMutex; /* 804508B8-804508C0 000338 0004+04 1/1 1/1 0/0 .sdata sSZSBufferSize__7JKRAram */ -SECTION_SDATA u32 JKRAram::sSZSBufferSize[1 + 1 /* padding */] = { - 0x00000400, - /* padding */ - 0x00000000, -}; +u32 JKRAram::sSZSBufferSize = 0x00000400; /* 804513CC-804513D0 0008CC 0004+00 3/3 0/0 0/0 .sbss szpBuf */ -static u8 szpBuf[4]; +static u8* szpBuf; /* 804513D0-804513D4 0008D0 0004+00 3/3 0/0 0/0 .sbss szpEnd */ -static u8 szpEnd[4]; +static u8* szpEnd; /* 804513D4-804513D8 0008D4 0004+00 2/2 0/0 0/0 .sbss refBuf */ static u8 refBuf[4]; @@ -319,16 +260,16 @@ static u8 refEnd[4]; static u8 refCurrent[4]; /* 804513E0-804513E4 0008E0 0004+00 3/3 0/0 0/0 .sbss srcOffset */ -static u8 srcOffset[4]; +static u32 srcOffset; /* 804513E4-804513E8 0008E4 0004+00 4/4 0/0 0/0 .sbss transLeft */ -static u8 transLeft[4]; +static u32 transLeft; /* 804513E8-804513EC 0008E8 0004+00 3/3 0/0 0/0 .sbss srcLimit */ -static u8 srcLimit[4]; +static u32 srcLimit; /* 804513EC-804513F0 0008EC 0004+00 3/3 0/0 0/0 .sbss srcAddress */ -static u8 srcAddress[4]; +static u32 srcAddress; /* 804513F0-804513F4 0008F0 0004+00 2/2 0/0 0/0 .sbss fileOffset */ static u8 fileOffset[4]; @@ -350,6 +291,70 @@ static u8 tsArea[4]; /* 802D2830-802D29A0 2CD170 0170+00 1/1 0/0 0/0 .text * JKRDecompressFromAramToMainRam__FUlPvUlUlUlPUl */ +#ifdef NONMATCHING +// full match, except: +// tsPtr = &tsArea; +// doesn't use r13 +void JKRDecompressFromAramToMainRam(u32 src, void* dst, u32 srcLength, u32 dstLength, u32 offset, + u32* resourceSize) { +#define s_is_decompress_mutex_initialized lbl_804513FC +#define decompMutex lbl_804343C0 + + // STATIC BEGIN + // This code is probably generated by the compiler for a static variable + BOOL enable = OSDisableInterrupts(); + if (s_is_decompress_mutex_initialized == false) { + OSInitMutex(&decompMutex); + s_is_decompress_mutex_initialized = true; + } + OSRestoreInterrupts(enable); + // STATIC END + + OSLockMutex(&decompMutex); + u32 szpSize = getSZSBufferSize(); + szpBuf = (u8*)JKRAllocFromSysHeap(szpSize, 0x20); + ASSERT(szpBuf != 0); + szpEnd = szpBuf + szpSize; + + if (offset != 0) { + refBuf = (u8*)JKRAllocFromSysHeap(0x1120, 0); + ASSERT(refBuf != 0); + refEnd = refBuf + 0x1120; + refCurrent = refBuf; + } else { + refBuf = NULL; + } + + srcAddress = src; + srcOffset = 0; + if (srcLength == 0) { + transLeft = -1; + } else { + transLeft = srcLength; + } + + fileOffset = offset; + readCount = 0; + maxDest = dstLength; + if (!resourceSize) { + tsPtr = &tsArea; + } else { + tsPtr = resourceSize; + } + + *tsPtr = 0; + + decompSZS_subroutine(firstSrcData(), (u8*)dst); + JKRFreeToSysHeap(szpBuf); + if (refBuf) { + JKRFreeToSysHeap(refBuf); + } + DCStoreRangeNoSync(dst, *tsPtr); + OSUnlockMutex(&decompMutex); +#undef s_is_decompress_mutex_initialized +#undef decompMutex +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -359,6 +364,7 @@ static asm void JKRDecompressFromAramToMainRam(u32 param_0, void* param_1, u32 p #include "asm/JSystem/JKernel/JKRAram/JKRDecompressFromAramToMainRam__FUlPvUlUlUlPUl.s" } #pragma pop +#endif /* 802D29A0-802D2C40 2CD2E0 02A0+00 1/1 0/0 0/0 .text decompSZS_subroutine__FPUcPUc */ #pragma push @@ -371,16 +377,66 @@ static asm void decompSZS_subroutine(u8* param_0, u8* param_1) { #pragma pop /* 802D2C40-802D2CE4 2CD580 00A4+00 1/1 0/0 0/0 .text firstSrcData__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void firstSrcData() { - nofralloc -#include "asm/JSystem/JKernel/JKRAram/firstSrcData__Fv.s" +static u8* firstSrcData(void) { + srcLimit = (u32)(szpEnd - 0x19); + u8* buffer = szpBuf; + + u32 length; + u32 size = szpEnd - szpBuf; + if (transLeft < size) { + length = transLeft; + } else { + length = size; + } + + u32 src = (u32)(srcAddress + srcOffset); + u32 dst = (u32)buffer; + u32 alignedLength = ALIGN_NEXT(length, 0x20); + JKRAramPcs(1, src, dst, alignedLength, NULL); + + srcOffset += length; + transLeft -= length; + if (!transLeft) { + srcLimit = (u32)(buffer + length); + } + + return buffer; } -#pragma pop /* 802D2CE4-802D2DAC 2CD624 00C8+00 1/1 0/0 0/0 .text nextSrcData__FPUc */ +// missing one add instruction +#ifdef NONMATCHING +inline u32 nextSrcData_MIN(u32 A, u32 B) { + if (A > B) + return B; + return A; +} + +static u8* nextSrcData(u8* current) { + u8* dest; + u32 left = (u32)(szpEnd - current); + if (!IS_NOT_ALIGNED(left, 0x20)) { + dest = szpBuf; + } else { + dest = szpBuf + 0x20 - (left & 0x1f); + } + + memcpy(dest, current, left); + u32 transSize = nextSrcData_MIN(transLeft, szpEnd - (dest + left)); + ASSERT(transSize > 0); + + JKRAramPcs(1, (u32)(srcAddress + srcOffset), (u32)(dest + left), ALIGN_NEXT(transSize, 0x20), + NULL); + srcOffset += transSize; + transLeft -= transSize; + + if (transLeft == 0) { + srcLimit = (u32)(dest + left) + transSize; + } + + return dest; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -389,32 +445,7 @@ static asm void nextSrcData(u8* param_0) { #include "asm/JSystem/JKernel/JKRAram/nextSrcData__FPUc.s" } #pragma pop - -/* 802D2DAC-802D2DF0 2CD6EC 0044+00 0/0 1/0 0/0 .text __sinit_JKRAram_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_JKRAram_cpp() { - nofralloc -#include "asm/JSystem/JKernel/JKRAram/__sinit_JKRAram_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802D2DAC, __sinit_JKRAram_cpp); -#pragma pop - -/* 802D2DF0-802D2E44 2CD730 0054+00 1/1 1/1 0/0 .text __dt__23JSUList<12JKRAMCommand>Fv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_802D2DF0(void* _this) { - nofralloc -#include "asm/JSystem/JKernel/JKRAram/func_802D2DF0.s" -} -#pragma pop +#endif /* ############################################################################################## */ /* 8039D0A6-8039D0B8 029706 000E+04 0/0 0/0 0/0 .rodata None */ diff --git a/libs/JSystem/JKernel/JKRAramArchive.cpp b/libs/JSystem/JKernel/JKRAramArchive.cpp index bb9b580702..652110fb7e 100644 --- a/libs/JSystem/JKernel/JKRAramArchive.cpp +++ b/libs/JSystem/JKernel/JKRAramArchive.cpp @@ -3,7 +3,7 @@ // Translation Unit: JKRAramArchive // -#include "JSystem/JKernel/JKRAramArchive.h" +// #include "JSystem/JKernel/JKRAramArchive.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/JSystem/JKernel/JKRAramBlock.cpp b/libs/JSystem/JKernel/JKRAramBlock.cpp index 3d2d59cda8..45c6176e0a 100644 --- a/libs/JSystem/JKernel/JKRAramBlock.cpp +++ b/libs/JSystem/JKernel/JKRAramBlock.cpp @@ -4,110 +4,73 @@ // #include "JSystem/JKernel/JKRAramBlock.h" +#include "JSystem/JKernel/JKRAramHeap.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DC094 */ void insert(JSUPtrLink*, JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -struct JKRHeap {}; - -struct JKRAramHeap {}; - -struct JKRAramBlock { - /* 802D3304 */ JKRAramBlock(u32, u32, u32, u8, bool); - /* 802D3378 */ ~JKRAramBlock(); - /* 802D3434 */ void allocHead(u32, u8, JKRAramHeap*); - /* 802D34D0 */ void allocTail(u32, u8, JKRAramHeap*); -}; - -// -// Forward References: -// - -extern "C" void __ct__12JKRAramBlockFUlUlUlUcb(); -extern "C" void __dt__12JKRAramBlockFv(); -extern "C" void allocHead__12JKRAramBlockFUlUcP11JKRAramHeap(); -extern "C" void allocTail__12JKRAramBlockFUlUcP11JKRAramHeap(); - -// -// External References: -// - -extern "C" void* __nw__FUlP7JKRHeapi(); -extern "C" void __dl__FPv(); -extern "C" void __ct__10JSUPtrLinkFPv(); -extern "C" void __dt__10JSUPtrLinkFv(); -extern "C" void insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink(); -extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); - // // Declarations: // -/* ############################################################################################## */ -/* 803CC178-803CC188 029298 000C+04 2/2 0/0 0/0 .data __vt__12JKRAramBlock */ -SECTION_DATA extern void* __vt__12JKRAramBlock[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12JKRAramBlockFv, - /* padding */ - NULL, -}; - /* 802D3304-802D3378 2CDC44 0074+00 2/2 1/1 0/0 .text __ct__12JKRAramBlockFUlUlUlUcb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAramBlock::JKRAramBlock(u32 param_0, u32 param_1, u32 param_2, u8 param_3, bool param_4) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramBlock/__ct__12JKRAramBlockFUlUlUlUcb.s" +JKRAramBlock::JKRAramBlock(u32 address, u32 size, u32 freeSize, u8 groupId, bool isTempMemory) + : mBlockLink(this) { + mAddress = address; + mSize = size; + mFreeSize = freeSize; + mGroupId = groupId; + mIsTempMemory = isTempMemory; } -#pragma pop /* 802D3378-802D3434 2CDCB8 00BC+00 1/0 0/0 0/0 .text __dt__12JKRAramBlockFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAramBlock::~JKRAramBlock() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramBlock/__dt__12JKRAramBlockFv.s" +JKRAramBlock::~JKRAramBlock() { + JSUList* list = mBlockLink.getSupervisor(); + JSULink* prev = mBlockLink.getPrev(); + if (prev) { + JKRAramBlock* block = prev->getObject(); + block->mFreeSize = mSize + mFreeSize + block->mFreeSize; + list->remove(&mBlockLink); + } else { + mFreeSize = mFreeSize + mSize; + mSize = 0; + } } -#pragma pop /* 802D3434-802D34D0 2CDD74 009C+00 0/0 1/1 0/0 .text allocHead__12JKRAramBlockFUlUcP11JKRAramHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramBlock::allocHead(u32 param_0, u8 param_1, JKRAramHeap* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramBlock/allocHead__12JKRAramBlockFUlUcP11JKRAramHeap.s" +JKRAramBlock* JKRAramBlock::allocHead(u32 size, u8 groupId, JKRAramHeap* aramHeap) { + u32 address = mAddress; + u32 usedSize = mSize; + u32 nextAddress = address + usedSize; + u32 freeSize = mFreeSize; + u32 nextFreeSize = freeSize - size; + + JKRAramBlock* block = new (aramHeap->getMgrHeap(), 0) + JKRAramBlock(nextAddress, size, nextFreeSize, groupId, false); + + mFreeSize = 0; + JSULink* next = mBlockLink.getNext(); + JSUList* list = mBlockLink.getSupervisor(); + list->insert(next, &block->mBlockLink); + return block; } -#pragma pop /* 802D34D0-802D3574 2CDE10 00A4+00 0/0 1/1 0/0 .text allocTail__12JKRAramBlockFUlUcP11JKRAramHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramBlock::allocTail(u32 param_0, u8 param_1, JKRAramHeap* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramBlock/allocTail__12JKRAramBlockFUlUcP11JKRAramHeap.s" +JKRAramBlock* JKRAramBlock::allocTail(u32 size, u8 groupId, JKRAramHeap* aramHeap) { + u32 freeSize = mFreeSize; + u32 address = mAddress; + u32 usedSize = mSize; + u32 endAddress = address + usedSize + freeSize; + u32 tailAddress = endAddress - size; + + JKRAramBlock* block = + new (aramHeap->getMgrHeap(), 0) JKRAramBlock(tailAddress, size, 0, groupId, true); + + mFreeSize -= size; + JSULink* next = mBlockLink.getNext(); + JSUList* list = mBlockLink.getSupervisor(); + list->insert(next, &block->mBlockLink); + return block; } -#pragma pop diff --git a/libs/JSystem/JKernel/JKRAramHeap.cpp b/libs/JSystem/JKernel/JKRAramHeap.cpp index 7c6e7b0524..a3d800e690 100644 --- a/libs/JSystem/JKernel/JKRAramHeap.cpp +++ b/libs/JSystem/JKernel/JKRAramHeap.cpp @@ -4,57 +4,9 @@ // #include "JSystem/JKernel/JKRAramHeap.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JSUPtrLink {}; - -struct JSUPtrList { - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template6 { - /* 802D32B0 */ void func_802D32B0(void* _this); -}; - -struct JKRHeap { - /* 802CE83C */ void findFromRoot(void*); -}; - -struct JKRDisposer { - /* 802D147C */ JKRDisposer(); - /* 802D14E4 */ ~JKRDisposer(); -}; - -struct JKRAramHeap { - struct EAllocMode {}; - - /* 802D2E44 */ JKRAramHeap(u32, u32); - /* 802D2F14 */ ~JKRAramHeap(); - /* 802D2FBC */ void alloc(u32, JKRAramHeap::EAllocMode); - /* 802D3034 */ void allocFromHead(u32); - /* 802D30BC */ void allocFromTail(u32); - /* 802D3134 */ void getFreeSize(); - /* 802D31AC */ void getTotalFreeSize(); - /* 802D3218 */ void dump(); - - static u8 sAramList[12]; -}; - -struct JKRAramBlock { - /* 802D3304 */ JKRAramBlock(u32, u32, u32, u8, bool); - /* 802D3434 */ void allocHead(u32, u8, JKRAramHeap*); - /* 802D34D0 */ void allocTail(u32, u8, JKRAramHeap*); -}; +#include "global.h" // // Forward References: @@ -72,10 +24,17 @@ extern "C" void __sinit_JKRAramHeap_cpp(); extern "C" void func_802D32B0(void* _this); extern "C" u8 sAramList__11JKRAramHeap[12]; +extern "C" void* __vt__11JKRAramHeap; + // // External References: // +// TODO: move to JKRHeap +void* operator new(u32 size); +void* operator new(u32 size, int alignment); +void* operator new(u32 size, JKRHeap* heap, int alignment); + extern "C" void findFromRoot__7JKRHeapFPv(); extern "C" void* __nw__FUlP7JKRHeapi(); extern "C" void __dl__FPv(); @@ -87,9 +46,6 @@ extern "C" void allocTail__12JKRAramBlockFUlUcP11JKRAramHeap(); extern "C" void __dt__10JSUPtrListFv(); extern "C" void initiate__10JSUPtrListFv(); extern "C" void append__10JSUPtrListFP10JSUPtrLink(); -extern "C" void OSInitMutex(); -extern "C" void OSLockMutex(); -extern "C" void OSUnlockMutex(); extern "C" void __register_global_object(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); @@ -98,33 +54,40 @@ extern "C" void _restgpr_29(); // Declarations: // -/* ############################################################################################## */ -/* 803CC168-803CC178 029288 000C+04 2/2 0/0 0/0 .data __vt__11JKRAramHeap */ -SECTION_DATA extern void* __vt__11JKRAramHeap[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__11JKRAramHeapFv, - /* padding */ - NULL, -}; - /* 80434300-8043430C 061020 000C+00 1/1 0/0 0/0 .bss @297 */ static u8 lit_297[12]; /* 8043430C-80434318 06102C 000C+00 8/8 0/0 0/0 .bss sAramList__11JKRAramHeap */ -u8 JKRAramHeap::sAramList[12]; +JSUList JKRAramHeap::sAramList; /* 802D2E44-802D2F14 2CD784 00D0+00 0/0 1/1 0/0 .text __ct__11JKRAramHeapFUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAramHeap::JKRAramHeap(u32 param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramHeap/__ct__11JKRAramHeapFUlUl.s" +JKRAramHeap::JKRAramHeap(u32 startAddress, u32 size) { + OSInitMutex(&mMutex); + + mHeap = JKRHeap::findFromRoot(this); + mSize = ALIGN_PREV(size, 0x20); + mHeadAddress = ALIGN_NEXT(startAddress, 0x20); + mTailAddress = mHeadAddress + mSize; + mGroupId = -1; + + JKRAramBlock* block = new (mHeap, 0) JKRAramBlock(mHeadAddress, 0, mSize, -1, false); + sAramList.append(&block->mBlockLink); } -#pragma pop /* 802D2F14-802D2FBC 2CD854 00A8+00 1/0 0/0 0/0 .text __dt__11JKRAramHeapFv */ +// close match, regalloc problem in the beginning of the while loop +#ifdef NONMATCHING +JKRAramHeap::~JKRAramHeap() { + JSUList* list = &lbl_8043430C; + JSUListIterator iterator = list; + + while (iterator != list->getEnd()) { + JSUListIterator prev = iterator; + JKRAramBlock* block = prev.getObject(); + delete block; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -133,91 +96,119 @@ asm JKRAramHeap::~JKRAramHeap() { #include "asm/JSystem/JKernel/JKRAramHeap/__dt__11JKRAramHeapFv.s" } #pragma pop +#endif /* 802D2FBC-802D3034 2CD8FC 0078+00 0/0 5/5 0/0 .text * alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramHeap::alloc(u32 param_0, JKRAramHeap::EAllocMode param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramHeap/alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode.s" +JKRAramBlock* JKRAramHeap::alloc(u32 size, JKRAramHeap::EAllocMode allocationMode) { + lock(); + + JKRAramBlock* block; + if (allocationMode == JKRAramHeap::HEAD) { + block = allocFromHead(size); + } else { + block = allocFromTail(size); + } + + unlock(); + return block; } -#pragma pop /* 802D3034-802D30BC 2CD974 0088+00 1/1 0/0 0/0 .text allocFromHead__11JKRAramHeapFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramHeap::allocFromHead(u32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramHeap/allocFromHead__11JKRAramHeapFUl.s" +JKRAramBlock* JKRAramHeap::allocFromHead(u32 size) { + u32 alignedSize = ALIGN_NEXT(size, 0x20); + u32 bestFreeSize = UINT32_MAX; + JKRAramBlock* bestBlock = NULL; + + JSUList* list = &sAramList; + for (JSUListIterator iterator = list; iterator != list->getEnd(); ++iterator) { + JKRAramBlock* block = iterator.getObject(); + if (block->mFreeSize < alignedSize) + continue; + if (bestFreeSize <= block->mFreeSize) + continue; + + bestFreeSize = block->mFreeSize; + bestBlock = block; + + if (block->mFreeSize == alignedSize) { + break; + } + } + + if (bestBlock) { + return bestBlock->allocHead(alignedSize, mGroupId, this); + } + + return NULL; } -#pragma pop /* 802D30BC-802D3134 2CD9FC 0078+00 1/1 0/0 0/0 .text allocFromTail__11JKRAramHeapFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramHeap::allocFromTail(u32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramHeap/allocFromTail__11JKRAramHeapFUl.s" +JKRAramBlock* JKRAramHeap::allocFromTail(u32 size) { + u32 alignedSize = ALIGN_NEXT(size, 0x20); + JKRAramBlock* tailBlock = NULL; + + JSUList* list = &sAramList; + JSUListIterator iterator = list->getLast(); + for (; iterator != list->getEnd(); --iterator) { + JKRAramBlock* block = iterator.getObject(); + if (block->mFreeSize >= alignedSize) { + tailBlock = block; + break; + } + } + + if (tailBlock) { + return tailBlock->allocTail(alignedSize, mGroupId, this); + } + + return NULL; } -#pragma pop /* 802D3134-802D31AC 2CDA74 0078+00 0/0 1/1 0/0 .text getFreeSize__11JKRAramHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramHeap::getFreeSize() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramHeap/getFreeSize__11JKRAramHeapFv.s" +u32 JKRAramHeap::getFreeSize(void) { + u32 maxFreeSize = 0; + + lock(); + + JSUList* list = &sAramList; + JSUListIterator iterator = list; + for (; iterator != list->getEnd(); ++iterator) { + if (iterator->mFreeSize > maxFreeSize) { + maxFreeSize = iterator->mFreeSize; + } + } + + unlock(); + return maxFreeSize; } -#pragma pop /* 802D31AC-802D3218 2CDAEC 006C+00 0/0 2/2 0/0 .text getTotalFreeSize__11JKRAramHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramHeap::getTotalFreeSize() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramHeap/getTotalFreeSize__11JKRAramHeapFv.s" +u32 JKRAramHeap::getTotalFreeSize(void) { + u32 totalFreeSize = 0; + + lock(); + + JSUList* list = &sAramList; + JSUListIterator iterator = list; + for (; iterator != list->getEnd(); ++iterator) { + totalFreeSize += iterator->mFreeSize; + } + + unlock(); + return totalFreeSize; } -#pragma pop /* 802D3218-802D326C 2CDB58 0054+00 0/0 2/2 0/0 .text dump__11JKRAramHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramHeap::dump() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramHeap/dump__11JKRAramHeapFv.s" -} -#pragma pop +void JKRAramHeap::dump(void) { + lock(); -/* 802D326C-802D32B0 2CDBAC 0044+00 0/0 1/0 0/0 .text __sinit_JKRAramHeap_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_JKRAramHeap_cpp() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramHeap/__sinit_JKRAramHeap_cpp.s" -} -#pragma pop + JSUList* list = &sAramList; + JSUListIterator iterator = list; + for (; iterator != list->getEnd(); ++iterator) { + // The debug version calls OSReport + } -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802D326C, __sinit_JKRAramHeap_cpp); -#pragma pop - -/* 802D32B0-802D3304 2CDBF0 0054+00 1/1 0/0 0/0 .text __dt__23JSUList<12JKRAramBlock>Fv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_802D32B0(void* _this) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramHeap/func_802D32B0.s" + unlock(); } -#pragma pop diff --git a/libs/JSystem/JKernel/JKRAramPiece.cpp b/libs/JSystem/JKernel/JKRAramPiece.cpp index 65b8d89445..0fceb9662a 100644 --- a/libs/JSystem/JKernel/JKRAramPiece.cpp +++ b/libs/JSystem/JKernel/JKRAramPiece.cpp @@ -4,259 +4,168 @@ // #include "JSystem/JKernel/JKRAramPiece.h" +#include "JSystem/JKernel/JKRAram.h" +#include "JSystem/JKernel/JKRDecomp.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" +#include "dolphin/os/OSCache.h" #include "dolphin/types.h" -// -// Types: -// - -struct JUTException { - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); -}; - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template5 { - /* 802D2DF0 */ void func_802D2DF0(void* _this); -}; - -struct JKRHeap { - /* 802CE500 */ void free(void*, JKRHeap*); - - static u8 sSystemHeap[4]; -}; - -struct JKRDecompCommand {}; - -struct JKRDecomp { - /* 802DB8D0 */ void sendCommand(JKRDecompCommand*); -}; - -struct JKRAMCommand { - /* 802D39EC */ JKRAMCommand(); - /* 802D3A5C */ ~JKRAMCommand(); -}; - -struct JKRAramBlock {}; - -struct JKRAramPiece { - /* 802D3574 */ void prepareCommand(int, u32, u32, u32, JKRAramBlock*, void (*)(u32)); - /* 802D35F4 */ void sendCommand(JKRAMCommand*); - /* 802D3614 */ void orderAsync(int, u32, u32, u32, JKRAramBlock*, void (*)(u32)); - /* 802D3770 */ void sync(JKRAMCommand*, int); - /* 802D3838 */ void orderSync(int, u32, u32, u32, JKRAramBlock*); - /* 802D38CC */ void startDMA(JKRAMCommand*); - /* 802D3944 */ void doneDMA(u32); - - static u8 sAramPieceCommandList[12]; - static u8 mMutex[24]; -}; - -struct JKRAram { - static u8 sMessageQueue[32]; -}; - -// -// Forward References: -// - -extern "C" void prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v(); -extern "C" void sendCommand__12JKRAramPieceFP12JKRAMCommand(); -extern "C" void orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v(); -extern "C" void sync__12JKRAramPieceFP12JKRAMCommandi(); -extern "C" void orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock(); -extern "C" void startDMA__12JKRAramPieceFP12JKRAMCommand(); -extern "C" void doneDMA__12JKRAramPieceFUl(); -extern "C" void __ct__12JKRAMCommandFv(); -extern "C" void __dt__12JKRAMCommandFv(); -extern "C" void __sinit_JKRAramPiece_cpp(); -extern "C" extern char const* const JKRAramPiece__stringBase0; -extern "C" u8 sAramPieceCommandList__12JKRAramPiece[12]; -extern "C" u8 mMutex__12JKRAramPiece[24]; - -// -// External References: -// - -extern "C" void OSReport(); -extern "C" void free__7JKRHeapFPvP7JKRHeap(); -extern "C" void* __nw__FUlP7JKRHeapi(); -extern "C" void __dl__FPv(); -extern "C" void func_802D2DF0(void* _this); -extern "C" void sendCommand__9JKRDecompFP16JKRDecompCommand(); -extern "C" void __ct__10JSUPtrLinkFPv(); -extern "C" void __dt__10JSUPtrLinkFv(); -extern "C" void initiate__10JSUPtrListFv(); -extern "C" void append__10JSUPtrListFP10JSUPtrLink(); -extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); -extern "C" void panic_f__12JUTExceptionFPCciPCce(); -extern "C" void DCInvalidateRange(); -extern "C" void DCStoreRange(); -extern "C" void OSInitMessageQueue(); -extern "C" void OSSendMessage(); -extern "C" void OSReceiveMessage(); -extern "C" void OSLockMutex(); -extern "C" void OSUnlockMutex(); -extern "C" void ARQPostRequest(); -extern "C" void __register_global_object(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" u8 sMessageQueue__7JKRAram[32]; -extern "C" u8 sSystemHeap__7JKRHeap[4]; - // // Declarations: // /* 802D3574-802D35F4 2CDEB4 0080+00 1/1 0/0 0/0 .text * prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramPiece::prepareCommand(int param_0, u32 param_1, u32 param_2, u32 param_3, - JKRAramBlock* param_4, void (*param_5)(u32)) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v.s" +JKRAMCommand* JKRAramPiece::prepareCommand(int direction, u32 src, u32 dst, u32 length, + JKRAramBlock* block, + JKRAMCommand::AsyncCallback callback) { + JKRAMCommand* command = new (JKRHeap::getSystemHeap(), -4) JKRAMCommand(); + command->mTransferDirection = direction; + command->mSrc = src; + command->mDst = dst; + command->mAramBlock = block; + command->mDataLength = length; + command->mCallback = callback; + return command; } -#pragma pop /* 802D35F4-802D3614 2CDF34 0020+00 0/0 1/1 0/0 .text sendCommand__12JKRAramPieceFP12JKRAMCommand */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramPiece::sendCommand(JKRAMCommand* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/sendCommand__12JKRAramPieceFP12JKRAMCommand.s" +void JKRAramPiece::sendCommand(JKRAMCommand* command) { + startDMA(command); } -#pragma pop - -/* ############################################################################################## */ -/* 8039D0B8-8039D0B8 029718 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D0B8 = "direction = %x\n"; -SECTION_DEAD static char const* const stringBase_8039D0C8 = "source = %x\n"; -SECTION_DEAD static char const* const stringBase_8039D0D5 = "destination = %x\n"; -SECTION_DEAD static char const* const stringBase_8039D0E7 = "length = %x\n"; -SECTION_DEAD static char const* const stringBase_8039D0F4 = "JKRAramPiece.cpp"; -SECTION_DEAD static char const* const stringBase_8039D105 = "%s"; -SECTION_DEAD static char const* const stringBase_8039D108 = "illegal address. abort."; -#pragma pop - -/* 80434318-80434324 061038 000C+00 1/1 0/0 0/0 .bss @492 */ -static u8 lit_492[12]; /* 80434324-80434330 061044 000C+00 3/3 0/0 0/0 .bss sAramPieceCommandList__12JKRAramPiece */ -u8 JKRAramPiece::sAramPieceCommandList[12]; +// JSUList JKRAramPiece::sAramPieceCommandList; +JSUList JKRAramPiece::sAramPieceCommandList; /* 80434330-80434348 061050 0018+00 3/3 0/0 0/0 .bss mMutex__12JKRAramPiece */ -u8 JKRAramPiece::mMutex[24]; +OSMutex JKRAramPiece::mMutex; /* 802D3614-802D3770 2CDF54 015C+00 1/1 0/0 0/0 .text * orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramPiece::orderAsync(int param_0, u32 param_1, u32 param_2, u32 param_3, - JKRAramBlock* param_4, void (*param_5)(u32)) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v.s" +JKRAMCommand* JKRAramPiece::orderAsync(int direction, u32 source, u32 destination, u32 length, + JKRAramBlock* block, JKRAMCommand::AsyncCallback callback) { + lock(); + if (((source & 0x1f) != 0) || ((destination & 0x1f) != 0)) { + OSReport("direction = %x\n", direction); + OSReport("source = %x\n", source); + OSReport("destination = %x\n", destination); + OSReport("length = %x\n", length); + JUTException::panic_f("JKRAramPiece.cpp", 0x6c, "%s", "illegal address. abort."); + } + + Message* message = new (JKRHeap::getSystemHeap(), -4) Message(); + JKRAMCommand* command = + JKRAramPiece::prepareCommand(direction, source, destination, length, block, callback); + message->field_0x00 = 1; + message->command = command; + + OSSendMessage(&JKRAram::sMessageQueue, message, OS_MESSAGE_BLOCKING); + if (command->mCallback != NULL) { + sAramPieceCommandList.append(&command->mPieceLink); + } + + unlock(); + return command; } -#pragma pop /* 802D3770-802D3838 2CE0B0 00C8+00 1/1 0/0 0/0 .text sync__12JKRAramPieceFP12JKRAMCommandi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramPiece::sync(JKRAMCommand* param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/sync__12JKRAramPieceFP12JKRAMCommandi.s" +BOOL JKRAramPiece::sync(JKRAMCommand* command, int is_non_blocking) { + OSMessage message; + + lock(); + if (is_non_blocking == 0) { + OSReceiveMessage(&command->mMessageQueue, &message, OS_MESSAGE_BLOCKING); + sAramPieceCommandList.remove(&command->mPieceLink); + unlock(); + return TRUE; + } + + BOOL result = OSReceiveMessage(&command->mMessageQueue, &message, OS_MESSAGE_NON_BLOCKING); + if (!result) { + unlock(); + return FALSE; + } + + sAramPieceCommandList.remove(&command->mPieceLink); + unlock(); + return TRUE; } -#pragma pop /* 802D3838-802D38CC 2CE178 0094+00 0/0 6/6 0/0 .text * orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramPiece::orderSync(int param_0, u32 param_1, u32 param_2, u32 param_3, - JKRAramBlock* param_4) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock.s" +BOOL JKRAramPiece::orderSync(int direction, u32 source, u32 destination, u32 length, + JKRAramBlock* block) { + lock(); + + JKRAMCommand* command = + JKRAramPiece::orderAsync(direction, source, destination, length, block, NULL); + BOOL result = JKRAramPiece::sync(command, 0); + delete command; + + unlock(); + return result; } -#pragma pop /* 802D38CC-802D3944 2CE20C 0078+00 1/1 1/1 0/0 .text startDMA__12JKRAramPieceFP12JKRAMCommand */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramPiece::startDMA(JKRAMCommand* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/startDMA__12JKRAramPieceFP12JKRAMCommand.s" +void JKRAramPiece::startDMA(JKRAMCommand* command) { + if (command->mTransferDirection == 1) { + DCInvalidateRange((void*)command->mDst, command->mDataLength); + } else { + DCStoreRange((void*)command->mSrc, command->mDataLength); + } + + ARQPostRequest(&command->mRequest, 0, command->mTransferDirection, 0, command->mSrc, + command->mDst, command->mDataLength, JKRAramPiece::doneDMA); } -#pragma pop /* 802D3944-802D39EC 2CE284 00A8+00 1/1 0/0 0/0 .text doneDMA__12JKRAramPieceFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramPiece::doneDMA(u32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/doneDMA__12JKRAramPieceFUl.s" +void JKRAramPiece::doneDMA(u32 requestAddress) { + JKRAMCommand* command = (JKRAMCommand*)requestAddress; + + if (command->mTransferDirection == 1) { + DCInvalidateRange((void*)command->mDst, command->mDataLength); + } + + if (command->field_0x60 != 0) { + if (command->field_0x60 == 2) { + JKRDecomp::sendCommand(command->mDecompCommand); + } + return; + } + + if (command->mCallback) { + (*command->mCallback)(requestAddress); + } else if (command->field_0x5C) { + OSSendMessage(command->field_0x5C, command, OS_MESSAGE_NON_BLOCKING); + } else { + OSSendMessage(&command->mMessageQueue, command, OS_MESSAGE_NON_BLOCKING); + } } -#pragma pop /* 802D39EC-802D3A5C 2CE32C 0070+00 1/1 0/0 0/0 .text __ct__12JKRAMCommandFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAMCommand::JKRAMCommand() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/__ct__12JKRAMCommandFv.s" +JKRAMCommand::JKRAMCommand() : mPieceLink(this), field_0x30(this) { + OSInitMessageQueue(&mMessageQueue, &mMessage, 1); + mCallback = NULL; + field_0x5C = NULL; + field_0x60 = 0; + field_0x8C = NULL; + field_0x90 = NULL; + field_0x94 = NULL; } -#pragma pop /* 802D3A5C-802D3B04 2CE39C 00A8+00 1/1 0/0 0/0 .text __dt__12JKRAMCommandFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAMCommand::~JKRAMCommand() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/__dt__12JKRAMCommandFv.s" -} -#pragma pop +JKRAMCommand::~JKRAMCommand() { + if (field_0x8C) + delete field_0x8C; + if (field_0x90) + delete field_0x90; -/* 802D3B04-802D3B48 2CE444 0044+00 0/0 1/0 0/0 .text __sinit_JKRAramPiece_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_JKRAramPiece_cpp() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramPiece/__sinit_JKRAramPiece_cpp.s" + if (field_0x94) + JKRHeap::free(field_0x94, NULL); } -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802D3B04, __sinit_JKRAramPiece_cpp); -#pragma pop /* 8039D0B8-8039D0B8 029718 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRAramStream.cpp b/libs/JSystem/JKernel/JKRAramStream.cpp index f87b8cbec1..2a517c965b 100644 --- a/libs/JSystem/JKernel/JKRAramStream.cpp +++ b/libs/JSystem/JKernel/JKRAramStream.cpp @@ -4,72 +4,10 @@ // #include "JSystem/JKernel/JKRAramStream.h" +#include "JSystem/JKernel/JKRAramPiece.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JUTException { - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); -}; - -struct JSUStreamSeekFrom {}; - -struct JSURandomInputStream { - /* 802D4094 */ void getAvailable() const; - /* 802DC4DC */ void seek(s32, JSUStreamSeekFrom); -}; - -struct JSUInputStream { - /* 802DC298 */ void read(void*, s32); -}; - -struct JSUFileInputStream {}; - -struct JKRThread { - /* 802D1568 */ JKRThread(u32, int, int); - /* 802D1758 */ ~JKRThread(); -}; - -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE500 */ void free(void*, JKRHeap*); - - static u8 sSystemHeap[4]; - static u8 sCurrentHeap[4]; -}; - -struct JKRAramStreamCommand { - /* 802D4088 */ JKRAramStreamCommand(); -}; - -struct JKRAramStream { - /* 802D3B48 */ void create(s32); - /* 802D3BB8 */ JKRAramStream(s32); - /* 802D3C08 */ ~JKRAramStream(); - /* 802D3C68 */ void run(); - /* 802D3CD8 */ bool readFromAram(); - /* 802D3CE0 */ void writeToAram(JKRAramStreamCommand*); - /* 802D3ED0 */ void write_StreamToAram_Async(JSUFileInputStream*, u32, u32, u32, u32*); - /* 802D3FA0 */ void sync(JKRAramStreamCommand*, int); - /* 802D4034 */ void setTransBuffer(u8*, u32, JKRHeap*); - - static u8 sMessageBuffer[16]; - static u8 sMessageQueue[32]; - static u8 sAramStreamObject[4]; - static u8 transBuffer[4]; - static u8 transSize[4]; - static u8 transHeap[4]; -}; - -struct JKRAramBlock {}; - -struct JKRAramPiece { - /* 802D3838 */ void orderSync(int, u32, u32, u32, JKRAramBlock*); -}; +#include "global.h" // // Forward References: @@ -109,10 +47,6 @@ extern "C" void orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock(); extern "C" void read__14JSUInputStreamFPvl(); extern "C" void seek__20JSURandomInputStreamFl17JSUStreamSeekFrom(); extern "C" void panic_f__12JUTExceptionFPCciPCce(); -extern "C" void OSInitMessageQueue(); -extern "C" void OSSendMessage(); -extern "C" void OSReceiveMessage(); -extern "C" void OSResumeThread(); extern "C" void _savegpr_24(); extern "C" void _savegpr_26(); extern "C" void _restgpr_24(); @@ -127,75 +61,153 @@ extern "C" u8 sCurrentHeap__7JKRHeap[4]; /* ############################################################################################## */ /* 80451408-8045140C 000908 0004+00 1/1 0/0 0/0 .sbss sAramStreamObject__13JKRAramStream */ -u8 JKRAramStream::sAramStreamObject[4]; +JKRAramStream* JKRAramStream::sAramStreamObject; /* 802D3B48-802D3BB8 2CE488 0070+00 0/0 1/1 0/0 .text create__13JKRAramStreamFl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramStream::create(s32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramStream/create__13JKRAramStreamFl.s" +JKRAramStream* JKRAramStream::create(long priority) { + if (!sAramStreamObject) { + sAramStreamObject = new (JKRGetSystemHeap(), 0) JKRAramStream(priority); + setTransBuffer(NULL, 0, NULL); + } + + return sAramStreamObject; } -#pragma pop /* ############################################################################################## */ /* 803CC188-803CC198 0292A8 0010+00 1/1 0/0 0/0 .data sMessageBuffer__13JKRAramStream */ -SECTION_DATA u8 JKRAramStream::sMessageBuffer[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +void* JKRAramStream::sMessageBuffer[4] = { + NULL, + NULL, + NULL, + NULL, }; /* 803CC198-803CC1B8 0292B8 0020+00 2/2 0/0 0/0 .data sMessageQueue__13JKRAramStream */ -SECTION_DATA u8 JKRAramStream::sMessageQueue[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803CC1B8-803CC1C8 0292D8 0010+00 2/2 0/0 0/0 .data __vt__13JKRAramStream */ -SECTION_DATA extern void* __vt__13JKRAramStream[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13JKRAramStreamFv, - (void*)run__13JKRAramStreamFv, -}; +OSMessageQueue JKRAramStream::sMessageQueue = {0}; /* 802D3BB8-802D3C08 2CE4F8 0050+00 1/1 0/0 0/0 .text __ct__13JKRAramStreamFl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAramStream::JKRAramStream(s32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramStream/__ct__13JKRAramStreamFl.s" +JKRAramStream::JKRAramStream(long priority) : JKRThread(0xc00, 0x10, priority) { + resume(); } -#pragma pop /* 802D3C08-802D3C68 2CE548 0060+00 1/0 0/0 0/0 .text __dt__13JKRAramStreamFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAramStream::~JKRAramStream() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramStream/__dt__13JKRAramStreamFv.s" -} -#pragma pop +JKRAramStream::~JKRAramStream() {} /* 802D3C68-802D3CD8 2CE5A8 0070+00 1/0 0/0 0/0 .text run__13JKRAramStreamFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramStream::run() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramStream/run__13JKRAramStreamFv.s" +void* JKRAramStream::run(void) { + OSInitMessageQueue(&sMessageQueue, sMessageBuffer, ARRAY_SIZE(sMessageBuffer)); + + for (;;) { + OSMessage message; + OSReceiveMessage(&sMessageQueue, &message, OS_MESSAGE_BLOCKING); + JKRAramStreamCommand* command = (JKRAramStreamCommand*)message; + + switch (command->mType) { + case JKRAramStreamCommand::READ: + readFromAram(); + break; + case JKRAramStreamCommand::WRITE: + writeToAram(command); + break; + } + } } -#pragma pop /* 802D3CD8-802D3CE0 2CE618 0008+00 1/1 0/0 0/0 .text readFromAram__13JKRAramStreamFv */ -bool JKRAramStream::readFromAram() { - return true; +s32 JKRAramStream::readFromAram(void) { + return 1; } /* ############################################################################################## */ /* 8039D120-8039D120 029780 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +// regalloc problems +#ifdef NONMATCHING +s32 JKRAramStream::writeToAram(JKRAramStreamCommand* command) { + u32 size; + u32 dstSize = command->mDstLength; + u32 offset = command->mOffset; + u32 writtenLength = 0; + u32 destination = command->mDst; + u8* buffer = command->mTransferBuffer; + u32 bufferSize = command->mTransferBufferSize; + JKRHeap* heap = command->mHeap; + if (buffer) { + if (bufferSize) { + size = bufferSize; + } else { + size = 0x8000; + } + + command->mTransferBufferSize = size; + command->mAllocatedTransferBuffer = false; + } else { + if (bufferSize) { + size = bufferSize; + } else { + size = 0x8000; + } + + if (heap) { + buffer = (u8*)JKRAllocFromHeap(heap, size, -0x20); + command->mTransferBuffer = buffer; + } else { + buffer = (u8*)JKRAllocFromSysHeap(size, -0x20); + command->mTransferBuffer = buffer; + } + + command->mTransferBufferSize = size; + command->mAllocatedTransferBuffer = true; + } + + if (!buffer) { + if (!heap) { + JKRGetCurrentHeap()->dump(); + } else { + heap->dump(); + } + + panic_f__12JUTExceptionFPCciPCce("JKRAramStream.cpp", 0xac, "%s", + ":::Cannot alloc memory\n"); + } + + if (buffer) { + seek__20JSURandomInputStreamFl17JSUStreamSeekFrom((JSURandomInputStream*)command->mStream, + offset, 0); + while (dstSize != 0) { + u32 length; + if (dstSize > size) { + length = size; + } else { + length = dstSize; + } + + s32 readLength = + read__14JSUInputStreamFPvl((JSUInputStream*)command->mStream, buffer, length); + if (readLength == 0) { + writtenLength = 0; + break; + } + + JKRAramPcs(0, (u32)buffer, destination, length, NULL); + dstSize -= length; + writtenLength += writtenLength; + destination += length; + + if (command->mReturnSize) { + *command->mReturnSize += length; + } + } + + if (command->mAllocatedTransferBuffer) { + JKRFree(buffer); + command->mAllocatedTransferBuffer = false; + } + } + + OSSendMessage(&command->mMessageQueue, (OSMessage)writtenLength, OS_MESSAGE_NON_BLOCKING); + return writtenLength; +} +#else #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039D120 = "JKRAramStream.cpp"; @@ -210,74 +222,103 @@ SECTION_DEAD static char const* const pad_8039D14D = "\0\0"; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRAramStream::writeToAram(JKRAramStreamCommand* param_0) { +asm s32 JKRAramStream::writeToAram(JKRAramStreamCommand* param_0) { nofralloc #include "asm/JSystem/JKernel/JKRAramStream/writeToAram__13JKRAramStreamFP20JKRAramStreamCommand.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8045140C-80451410 00090C 0004+00 2/2 0/0 0/0 .sbss transBuffer__13JKRAramStream */ -u8 JKRAramStream::transBuffer[4]; +u8* JKRAramStream::transBuffer; /* 80451410-80451414 000910 0004+00 2/2 0/0 0/0 .sbss transSize__13JKRAramStream */ -u8 JKRAramStream::transSize[4]; +u32 JKRAramStream::transSize; /* 80451414-80451418 000914 0004+00 2/2 0/0 0/0 .sbss transHeap__13JKRAramStream */ -u8 JKRAramStream::transHeap[4]; +JKRHeap* JKRAramStream::transHeap; /* 802D3ED0-802D3FA0 2CE810 00D0+00 0/0 1/1 0/0 .text * write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramStream::write_StreamToAram_Async(JSUFileInputStream* param_0, u32 param_1, - u32 param_2, u32 param_3, u32* param_4) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramStream/write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl.s" +JKRAramStreamCommand* JKRAramStream::write_StreamToAram_Async(JSUFileInputStream* stream, u32 addr, + u32 size, u32 offset, + u32* returnSize) { + JKRAramStreamCommand* command = new (JKRGetSystemHeap(), -4) JKRAramStreamCommand(); + command->mType = JKRAramStreamCommand::WRITE; + command->mAddress = addr; + command->mSize = size; + command->mStream = stream; + command->field_0x2c = 0; + command->mOffset = offset; + command->mTransferBuffer = transBuffer; + command->mHeap = transHeap; + command->mTransferBufferSize = transSize; + command->mReturnSize = returnSize; + if (returnSize) { + *returnSize = 0; + } + + OSInitMessageQueue(&command->mMessageQueue, &command->mMessage, 1); + OSSendMessage(&sMessageQueue, command, OS_MESSAGE_BLOCKING); + return command; } -#pragma pop /* 802D3FA0-802D4034 2CE8E0 0094+00 0/0 1/1 0/0 .text * sync__13JKRAramStreamFP20JKRAramStreamCommandi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramStream::sync(JKRAramStreamCommand* param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramStream/sync__13JKRAramStreamFP20JKRAramStreamCommandi.s" +JKRAramStreamCommand* JKRAramStream::sync(JKRAramStreamCommand* command, BOOL isNonBlocking) { + OSMessage message; + if (isNonBlocking == 0) { + OSReceiveMessage(&command->mMessageQueue, &message, OS_MESSAGE_BLOCKING); + if (message == NULL) { + command = NULL; + return command; + } else { + return command; + } + } else { + BOOL receiveResult = + OSReceiveMessage(&command->mMessageQueue, &message, OS_MESSAGE_NON_BLOCKING); + if (receiveResult == FALSE) { + command = NULL; + return command; + } else if (message == NULL) { + command = NULL; + return command; + } else { + return command; + } + } } -#pragma pop /* 802D4034-802D4088 2CE974 0054+00 1/1 1/1 0/0 .text * setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAramStream::setTransBuffer(u8* param_0, u32 param_1, JKRHeap* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRAramStream/setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap.s" +void JKRAramStream::setTransBuffer(u8* buffer, u32 bufferSize, JKRHeap* heap) { + transBuffer = NULL; + transSize = 0x8000; + transHeap = NULL; + + if (buffer) { + transBuffer = (u8*)ALIGN_NEXT((u32)buffer, 0x20); + } + + if (bufferSize) { + transSize = ALIGN_PREV(bufferSize, 0x20); + } + + if (heap && !buffer) { + transHeap = heap; + } } -#pragma pop /* 802D4088-802D4094 2CE9C8 000C+00 1/1 0/0 0/0 .text __ct__20JKRAramStreamCommandFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAramStreamCommand::JKRAramStreamCommand() { - nofralloc -#include "asm/JSystem/JKernel/JKRAramStream/__ct__20JKRAramStreamCommandFv.s" +JKRAramStreamCommand::JKRAramStreamCommand() { + mAllocatedTransferBuffer = false; } -#pragma pop /* 802D4094-802D40F0 2CE9D4 005C+00 0/0 3/0 0/0 .text getAvailable__20JSURandomInputStreamCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JSURandomInputStream::getAvailable() const { - nofralloc -#include "asm/JSystem/JKernel/JKRAramStream/getAvailable__20JSURandomInputStreamCFv.s" +s32 JSURandomInputStream::getAvailable() const { + return getLength() - getPosition(); } -#pragma pop /* 8039D120-8039D120 029780 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRArchivePri.cpp b/libs/JSystem/JKernel/JKRArchivePri.cpp index 63f47395e7..404d7b1440 100644 --- a/libs/JSystem/JKernel/JKRArchivePri.cpp +++ b/libs/JSystem/JKernel/JKRArchivePri.cpp @@ -3,94 +3,11 @@ // Translation Unit: JKRArchivePri // -#include "JSystem/JKernel/JKRArchivePri.h" +#include "JSystem/JKernel/JKRArchive.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct JKRHeap { - /* 802CE83C */ void findFromRoot(void*); - - static u8 sCurrentHeap[4]; -}; - -struct JKRFileLoader { - /* 802D40F0 */ JKRFileLoader(); - /* 802D4148 */ ~JKRFileLoader(); - - static u8 sCurrentVolume[4 + 4 /* padding */]; -}; - -struct JKRArchive { - struct EMountMode {}; - - struct CArcName { - /* 802D6884 */ void store(char const*, char); - /* 802D67F4 */ void store(char const*); - }; - - struct SDIFileEntry {}; - - /* 802D6294 */ JKRArchive(s32, JKRArchive::EMountMode); - /* 802D6334 */ ~JKRArchive(); - /* 802D6394 */ void isSameName(JKRArchive::CArcName&, u32, u16) const; - /* 802D63E0 */ void findResType(u32) const; - /* 802D641C */ void findDirectory(char const*, u32) const; - /* 802D64F4 */ void findTypeResource(u32, char const*) const; - /* 802D65A4 */ void findFsResource(char const*, u32) const; - /* 802D6684 */ void findIdxResource(u32) const; - /* 802D66AC */ void findNameResource(char const*) const; - /* 802D6734 */ void findPtrResource(void const*) const; - /* 802D6770 */ void findIdResource(u16) const; - /* 802D693C */ void setExpandSize(JKRArchive::SDIFileEntry*, u32); - /* 802D6978 */ void getExpandSize(JKRArchive::SDIFileEntry*) const; - - static u8 sCurrentDirID[4 + 4 /* padding */]; -}; - -// -// Forward References: -// - -extern "C" void __ct__10JKRArchiveFlQ210JKRArchive10EMountMode(); -extern "C" void __dt__10JKRArchiveFv(); -extern "C" void isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs(); -extern "C" void findResType__10JKRArchiveCFUl(); -extern "C" void findDirectory__10JKRArchiveCFPCcUl(); -extern "C" void findTypeResource__10JKRArchiveCFUlPCc(); -extern "C" void findFsResource__10JKRArchiveCFPCcUl(); -extern "C" void findIdxResource__10JKRArchiveCFUl(); -extern "C" void findNameResource__10JKRArchiveCFPCc(); -extern "C" void findPtrResource__10JKRArchiveCFPCv(); -extern "C" void findIdResource__10JKRArchiveCFUs(); -extern "C" void store__Q210JKRArchive8CArcNameFPCc(); -extern "C" void store__Q210JKRArchive8CArcNameFPCcc(); -extern "C" void setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl(); -extern "C" void getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry(); -extern "C" u8 sCurrentDirID__10JKRArchive[4 + 4 /* padding */]; - -// -// External References: -// - -extern "C" void findFromRoot__7JKRHeapFPv(); -extern "C" void __dl__FPv(); -extern "C" void __ct__13JKRFileLoaderFv(); -extern "C" void __dt__13JKRFileLoaderFv(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" void tolower(); -extern "C" void strcmp(); -extern "C" extern void* __vt__10JKRArchive[20]; -extern "C" u8 sCurrentHeap__7JKRHeap[4]; -extern "C" u8 sCurrentVolume__13JKRFileLoader[4 + 4 /* padding */]; +#include "msl_c/string.h" // // Declarations: @@ -98,165 +15,239 @@ extern "C" u8 sCurrentVolume__13JKRFileLoader[4 + 4 /* padding */]; /* ############################################################################################## */ /* 80451420-80451428 000920 0004+04 1/1 5/5 0/0 .sbss sCurrentDirID__10JKRArchive */ -u8 JKRArchive::sCurrentDirID[4 + 4 /* padding */]; +u32 JKRArchive::sCurrentDirID; /* 802D6294-802D6334 2D0BD4 00A0+00 0/0 5/5 0/0 .text * __ct__10JKRArchiveFlQ210JKRArchive10EMountMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRArchive::JKRArchive(s32 param_0, JKRArchive::EMountMode param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/__ct__10JKRArchiveFlQ210JKRArchive10EMountMode.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); + } } -#pragma pop /* 802D6334-802D6394 2D0C74 0060+00 0/0 5/4 0/0 .text __dt__10JKRArchiveFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRArchive::~JKRArchive() { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/__dt__10JKRArchiveFv.s" -} -#pragma pop +JKRArchive::~JKRArchive() {} /* 802D6394-802D63E0 2D0CD4 004C+00 4/4 0/0 0/0 .text * isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::isSameName(JKRArchive::CArcName& param_0, u32 param_1, u16 param_2) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/isSameName__10JKRArchiveCFRQ210JKRArchive8CArcNameUlUs.s" +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; } -#pragma pop /* 802D63E0-802D641C 2D0D20 003C+00 1/1 0/0 0/0 .text findResType__10JKRArchiveCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::findResType(u32 param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/findResType__10JKRArchiveCFUl.s" +JKRArchive::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; } -#pragma pop /* 802D641C-802D64F4 2D0D5C 00D8+00 0/0 3/3 0/0 .text findDirectory__10JKRArchiveCFPCcUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::findDirectory(char const* param_0, u32 param_1) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/findDirectory__10JKRArchiveCFPCcUl.s" +JKRArchive::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; } -#pragma pop /* 802D64F4-802D65A4 2D0E34 00B0+00 0/0 2/2 0/0 .text findTypeResource__10JKRArchiveCFUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::findTypeResource(u32 param_0, char const* param_1) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/findTypeResource__10JKRArchiveCFUlPCc.s" +JKRArchive::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; } -#pragma pop /* 802D65A4-802D6684 2D0EE4 00E0+00 0/0 4/4 0/0 .text findFsResource__10JKRArchiveCFPCcUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::findFsResource(char const* param_0, u32 param_1) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/findFsResource__10JKRArchiveCFPCcUl.s" +JKRArchive::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; } -#pragma pop /* 802D6684-802D66AC 2D0FC4 0028+00 0/0 7/7 0/0 .text findIdxResource__10JKRArchiveCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::findIdxResource(u32 param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/findIdxResource__10JKRArchiveCFUl.s" +JKRArchive::SDIFileEntry* JKRArchive::findIdxResource(u32 fileIndex) const { + if (fileIndex < mArcInfoBlock->num_file_entries) { + return mFiles + fileIndex; + } + + return NULL; } -#pragma pop /* 802D66AC-802D6734 2D0FEC 0088+00 0/0 4/4 0/0 .text findNameResource__10JKRArchiveCFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::findNameResource(char const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/findNameResource__10JKRArchiveCFPCc.s" +JKRArchive::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; } -#pragma pop /* 802D6734-802D6770 2D1074 003C+00 0/0 9/9 0/0 .text findPtrResource__10JKRArchiveCFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::findPtrResource(void const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/findPtrResource__10JKRArchiveCFPCv.s" +JKRArchive::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; } -#pragma pop /* 802D6770-802D67F4 2D10B0 0084+00 0/0 4/4 0/0 .text findIdResource__10JKRArchiveCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::findIdResource(u16 param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/findIdResource__10JKRArchiveCFUs.s" +JKRArchive::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; } -#pragma pop /* 802D67F4-802D6884 2D1134 0090+00 2/2 0/0 0/0 .text store__Q210JKRArchive8CArcNameFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::CArcName::store(char const* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/store__Q210JKRArchive8CArcNameFPCc.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; } -#pragma pop /* 802D6884-802D693C 2D11C4 00B8+00 2/2 0/0 0/0 .text store__Q210JKRArchive8CArcNameFPCcc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::CArcName::store(char const* param_0, char param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/store__Q210JKRArchive8CArcNameFPCcc.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; } -#pragma pop /* 802D693C-802D6978 2D127C 003C+00 0/0 5/0 0/0 .text * setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::setExpandSize(JKRArchive::SDIFileEntry* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl.s" +void JKRArchive::setExpandSize(SDIFileEntry* fileEntry, u32 expandSize) { + int index = fileEntry - mFiles; + if (!mExpandedSize || index >= mArcInfoBlock->num_file_entries) + return; + + mExpandedSize[index] = expandSize; } -#pragma pop /* 802D6978-802D69B8 2D12B8 0040+00 0/0 5/0 0/0 .text * getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getExpandSize(JKRArchive::SDIFileEntry* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePri/getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry.s" +u32 JKRArchive::getExpandSize(SDIFileEntry* fileEntry) const { + int index = fileEntry - mFiles; + if (!mExpandedSize || index >= mArcInfoBlock->num_file_entries) + return 0; + + return mExpandedSize[index]; } -#pragma pop diff --git a/libs/JSystem/JKernel/JKRArchivePub.cpp b/libs/JSystem/JKernel/JKRArchivePub.cpp index 7b20887b53..011ea781b8 100644 --- a/libs/JSystem/JKernel/JKRArchivePub.cpp +++ b/libs/JSystem/JKernel/JKRArchivePub.cpp @@ -3,434 +3,388 @@ // Translation Unit: JKRArchivePub // -#include "JSystem/JKernel/JKRArchivePub.h" +#include "JSystem/JKernel/JKRAramArchive.h" +#include "JSystem/JKernel/JKRAramPiece.h" +#include "JSystem/JKernel/JKRArchive.h" +#include "JSystem/JKernel/JKRCompArchive.h" +#include "JSystem/JKernel/JKRDvdArchive.h" +#include "JSystem/JKernel/JKRFileFinder.h" +#include "JSystem/JKernel/JKRFileLoader.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JKernel/JKRMemArchive.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JKRMemBreakFlag {}; - -struct JKRHeap { - /* 802CE500 */ void free(void*, JKRHeap*); - - static u8 sSystemHeap[4]; - static u8 sCurrentHeap[4]; -}; - -struct JKRArchive { - struct EMountMode {}; - - struct EMountDirection {}; - - struct SDirEntry {}; - - struct SDIFileEntry {}; - - /* 801CC284 */ void getExpandedResSize(void const*) const; - /* 802D5778 */ void check_mount_already(s32, JKRHeap*); - /* 802D5840 */ void mount(void*, JKRHeap*, JKRArchive::EMountDirection); - /* 802D58C8 */ void mount(s32, JKRArchive::EMountMode, JKRHeap*, JKRArchive::EMountDirection); - /* 802D57E4 */ void mount(char const*, JKRArchive::EMountMode, JKRHeap*, - JKRArchive::EMountDirection); - /* 802D5A38 */ void becomeCurrent(char const*); - /* 802D5AC0 */ void getDirEntry(JKRArchive::SDirEntry*, u32) const; - /* 802D5B38 */ void getGlbResource(u32, char const*, JKRArchive*); - /* 802D5D38 */ void getResource(u16); - /* 802D5C64 */ void getResource(u32, char const*); - /* 802D5BE8 */ void getResource(char const*); - /* 802D5CE4 */ void getIdxResource(u32); - /* 802D5D8C */ void readResource(void*, u32, u32, char const*); - /* 802D5E30 */ void readResource(void*, u32, char const*); - /* 802D5F40 */ void readResource(void*, u32, u16); - /* 802D5ECC */ void readIdxResource(void*, u32, u32); - /* 802D5FB4 */ void removeResourceAll(); - /* 802D603C */ void removeResource(void*); - /* 802D609C */ void detachResource(void*); - /* 802D60D8 */ void getResSize(void const*) const; - /* 802D610C */ void countResource() const; - /* 802D6150 */ void countFile(char const*) const; - /* 802D61B0 */ void getFirstFile(char const*) const; - /* 802D625C */ void getFileAttribute(u32) const; - /* 802D6334 */ ~JKRArchive(); - /* 802D641C */ void findDirectory(char const*, u32) const; - /* 802D64F4 */ void findTypeResource(u32, char const*) const; - /* 802D65A4 */ void findFsResource(char const*, u32) const; - /* 802D6684 */ void findIdxResource(u32) const; - /* 802D66AC */ void findNameResource(char const*) const; - /* 802D6734 */ void findPtrResource(void const*) const; - /* 802D6770 */ void findIdResource(u16) const; - /* 802D693C */ void setExpandSize(JKRArchive::SDIFileEntry*, u32); - /* 802D6978 */ void getExpandSize(JKRArchive::SDIFileEntry*) const; - - static u8 sCurrentDirID[4 + 4 /* padding */]; -}; - -struct JKRMemArchive { - /* 802D69B8 */ JKRMemArchive(s32, JKRArchive::EMountDirection); - /* 802D6A6C */ JKRMemArchive(void*, u32, JKRMemBreakFlag); -}; - -struct JKRFileLoader { - /* 802D41D4 */ void unmount(); - - static u8 sVolumeList[12]; - static u8 sCurrentVolume[4 + 4 /* padding */]; -}; - -struct JKRDvdArchive { - /* 802D7BF0 */ JKRDvdArchive(s32, JKRArchive::EMountDirection); -}; - -struct JKRCompArchive { - /* 802D87D4 */ JKRCompArchive(s32, JKRArchive::EMountDirection); -}; - -struct JKRArcFinder { - /* 802D4638 */ JKRArcFinder(JKRArchive*, s32, s32); -}; - -struct JKRAramArchive { - /* 802D70C0 */ JKRAramArchive(s32, JKRArchive::EMountDirection); -}; - -// -// Forward References: -// - -extern "C" void check_mount_already__10JKRArchiveFlP7JKRHeap(); -extern "C" void -mount__10JKRArchiveFPCcQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection(); -extern "C" void mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection(); -extern "C" void -mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection(); -extern "C" void becomeCurrent__10JKRArchiveFPCc(); -extern "C" void getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl(); -extern "C" void getGlbResource__10JKRArchiveFUlPCcP10JKRArchive(); -extern "C" void getResource__10JKRArchiveFPCc(); -extern "C" void getResource__10JKRArchiveFUlPCc(); -extern "C" void getIdxResource__10JKRArchiveFUl(); -extern "C" void getResource__10JKRArchiveFUs(); -extern "C" void readResource__10JKRArchiveFPvUlUlPCc(); -extern "C" void readResource__10JKRArchiveFPvUlPCc(); -extern "C" void readIdxResource__10JKRArchiveFPvUlUl(); -extern "C" void readResource__10JKRArchiveFPvUlUs(); -extern "C" void removeResourceAll__10JKRArchiveFv(); -extern "C" void removeResource__10JKRArchiveFPv(); -extern "C" void detachResource__10JKRArchiveFPv(); -extern "C" void getResSize__10JKRArchiveCFPCv(); -extern "C" void countResource__10JKRArchiveCFv(); -extern "C" void countFile__10JKRArchiveCFPCc(); -extern "C" void getFirstFile__10JKRArchiveCFPCc(); -extern "C" void getFileAttribute__10JKRArchiveCFUl(); -extern "C" extern void* __vt__10JKRArchive[20]; - -// -// External References: -// - -extern "C" void getExpandedResSize__10JKRArchiveCFPCv(); -extern "C" void free__7JKRHeapFPvP7JKRHeap(); -extern "C" void* __nw__FUlP7JKRHeapi(); -extern "C" void unmount__13JKRFileLoaderFv(); -extern "C" void __ct__12JKRArcFinderFP10JKRArchivell(); -extern "C" void __dt__10JKRArchiveFv(); -extern "C" void findDirectory__10JKRArchiveCFPCcUl(); -extern "C" void findTypeResource__10JKRArchiveCFUlPCc(); -extern "C" void findFsResource__10JKRArchiveCFPCcUl(); -extern "C" void findIdxResource__10JKRArchiveCFUl(); -extern "C" void findNameResource__10JKRArchiveCFPCc(); -extern "C" void findPtrResource__10JKRArchiveCFPCv(); -extern "C" void findIdResource__10JKRArchiveCFUs(); -extern "C" void setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl(); -extern "C" void getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry(); -extern "C" void __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection(); -extern "C" void __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag(); -extern "C" void __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection(); -extern "C" void __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection(); -extern "C" void __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection(); -extern "C" void DVDConvertPathToEntrynum(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" u8 sVolumeList__13JKRFileLoader[12]; -extern "C" u8 sSystemHeap__7JKRHeap[4]; -extern "C" u8 sCurrentHeap__7JKRHeap[4]; -extern "C" u8 sCurrentVolume__13JKRFileLoader[4 + 4 /* padding */]; -extern "C" u8 sCurrentDirID__10JKRArchive[4 + 4 /* padding */]; - // // Declarations: // /* 802D5778-802D57E4 2D00B8 006C+00 2/2 0/0 0/0 .text check_mount_already__10JKRArchiveFlP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::check_mount_already(s32 param_0, JKRHeap* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/check_mount_already__10JKRArchiveFlP7JKRHeap.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; } -#pragma pop /* 802D57E4-802D5840 2D0124 005C+00 0/0 1/1 0/0 .text * mount__10JKRArchiveFPCcQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::mount(char const* param_0, JKRArchive::EMountMode param_1, JKRHeap* param_2, - JKRArchive::EMountDirection param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/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); } -#pragma pop /* 802D5840-802D58C8 2D0180 0088+00 0/0 1/1 0/0 .text * mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::mount(void* param_0, JKRHeap* param_1, JKRArchive::EMountDirection param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/mount__10JKRArchiveFPvP7JKRHeapQ210JKRArchive15EMountDirection.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::MOUNT_DIRECTION_HEAD) { + alignment = 4; + } else { + alignment = -4; + } + + archive = new (heap, alignment) JKRMemArchive(ptr, 0xFFFF, JKRMEMBREAK_FLAG_UNKNOWN0); + return archive; } -#pragma pop /* 802D58C8-802D5A38 2D0208 0170+00 1/1 1/1 0/0 .text * mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::mount(s32 param_0, JKRArchive::EMountMode param_1, JKRHeap* param_2, - JKRArchive::EMountDirection param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/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::MOUNT_DIRECTION_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; + } } -#pragma pop /* 802D5A38-802D5AC0 2D0378 0088+00 1/0 4/0 0/0 .text becomeCurrent__10JKRArchiveFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::becomeCurrent(char const* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/becomeCurrent__10JKRArchiveFPCc.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; } -#pragma pop /* 802D5AC0-802D5B38 2D0400 0078+00 0/0 1/1 0/0 .text * getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getDirEntry(JKRArchive::SDirEntry* param_0, u32 param_1) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl.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; } -#pragma pop /* 802D5B38-802D5BE8 2D0478 00B0+00 0/0 9/9 0/0 .text * getGlbResource__10JKRArchiveFUlPCcP10JKRArchive */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getGlbResource(u32 param_0, char const* param_1, JKRArchive* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/getGlbResource__10JKRArchiveFUlPCcP10JKRArchive.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; } -#pragma pop /* 802D5BE8-802D5C64 2D0528 007C+00 1/0 4/0 0/0 .text getResource__10JKRArchiveFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getResource(char const* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFPCc.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; } -#pragma pop /* 802D5C64-802D5CE4 2D05A4 0080+00 1/0 4/0 0/0 .text getResource__10JKRArchiveFUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getResource(u32 param_0, char const* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFUlPCc.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; } -#pragma pop /* 802D5CE4-802D5D38 2D0624 0054+00 0/0 1/1 0/0 .text getIdxResource__10JKRArchiveFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getIdxResource(u32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/getIdxResource__10JKRArchiveFUl.s" +void* JKRArchive::getIdxResource(u32 index) { + SDIFileEntry* fileEntry = findIdxResource(index); + if (fileEntry) { + return fetchResource(fileEntry, NULL); + } + + return NULL; } -#pragma pop /* 802D5D38-802D5D8C 2D0678 0054+00 0/0 1/1 0/0 .text getResource__10JKRArchiveFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getResource(u16 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/getResource__10JKRArchiveFUs.s" +void* JKRArchive::getResource(u16 id) { + SDIFileEntry* fileEntry = findIdResource(id); + if (fileEntry) { + return fetchResource(fileEntry, NULL); + } + + return NULL; } -#pragma pop /* 802D5D8C-802D5E30 2D06CC 00A4+00 1/0 4/0 0/0 .text readResource__10JKRArchiveFPvUlUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::readResource(void* param_0, u32 param_1, u32 param_2, char const* param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlUlPCc.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; } -#pragma pop /* 802D5E30-802D5ECC 2D0770 009C+00 1/0 4/0 0/0 .text readResource__10JKRArchiveFPvUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::readResource(void* param_0, u32 param_1, char const* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlPCc.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; } -#pragma pop /* 802D5ECC-802D5F40 2D080C 0074+00 0/0 7/7 1/1 .text readIdxResource__10JKRArchiveFPvUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::readIdxResource(void* param_0, u32 param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/readIdxResource__10JKRArchiveFPvUlUl.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; } -#pragma pop /* 802D5F40-802D5FB4 2D0880 0074+00 0/0 1/1 0/0 .text readResource__10JKRArchiveFPvUlUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::readResource(void* param_0, u32 param_1, u16 param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/readResource__10JKRArchiveFPvUlUs.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; } -#pragma pop /* 802D5FB4-802D603C 2D08F4 0088+00 1/0 2/0 0/0 .text removeResourceAll__10JKRArchiveFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::removeResourceAll() { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/removeResourceAll__10JKRArchiveFv.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; + } + } + } } -#pragma pop /* 802D603C-802D609C 2D097C 0060+00 1/0 2/0 0/0 .text removeResource__10JKRArchiveFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::removeResource(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/removeResource__10JKRArchiveFPv.s" +bool JKRArchive::removeResource(void* resource) { + SDIFileEntry* fileEntry = findPtrResource(resource); + if (fileEntry == NULL) + return false; + + fileEntry->data = NULL; + JKRFreeToHeap(mHeap, resource); + return true; } -#pragma pop /* 802D609C-802D60D8 2D09DC 003C+00 1/0 4/0 0/0 .text detachResource__10JKRArchiveFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::detachResource(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/detachResource__10JKRArchiveFPv.s" +bool JKRArchive::detachResource(void* resource) { + SDIFileEntry* fileEntry = findPtrResource(resource); + if (fileEntry == NULL) + return false; + + fileEntry->data = NULL; + return true; } -#pragma pop /* 802D60D8-802D610C 2D0A18 0034+00 1/0 4/0 0/0 .text getResSize__10JKRArchiveCFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getResSize(void const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/getResSize__10JKRArchiveCFPCv.s" +u32 JKRArchive::getResSize(const void* resource) const { + SDIFileEntry* fileEntry = findPtrResource(resource); + if (fileEntry == NULL) + return -1; + + return fileEntry->data_size; } -#pragma pop /* 802D610C-802D6150 2D0A4C 0044+00 0/0 1/1 0/0 .text countResource__10JKRArchiveCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::countResource() const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/countResource__10JKRArchiveCFv.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; } -#pragma pop /* 802D6150-802D61B0 2D0A90 0060+00 1/0 4/0 0/0 .text countFile__10JKRArchiveCFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::countFile(char const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/countFile__10JKRArchiveCFPCc.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; } -#pragma pop /* 802D61B0-802D625C 2D0AF0 00AC+00 1/0 4/0 0/0 .text getFirstFile__10JKRArchiveCFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getFirstFile(char const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/getFirstFile__10JKRArchiveCFPCc.s" +JKRFileFinder* 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; } -#pragma pop /* 802D625C-802D6294 2D0B9C 0038+00 0/0 2/2 0/0 .text getFileAttribute__10JKRArchiveCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArchive::getFileAttribute(u32 param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRArchivePub/getFileAttribute__10JKRArchiveCFUl.s" -} -#pragma pop +u32 JKRArchive::getFileAttribute(u32 index) const { + SDIFileEntry* fileEntry = findIdxResource(index); + if (fileEntry) { + return fileEntry->getFlags(); + } -/* ############################################################################################## */ -/* 803CC288-803CC2D8 0293A8 0050+00 0/0 2/2 0/0 .data __vt__10JKRArchive */ -SECTION_DATA extern void* __vt__10JKRArchive[20] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10JKRArchiveFv, - (void*)unmount__13JKRFileLoaderFv, - (void*)becomeCurrent__10JKRArchiveFPCc, - (void*)getResource__10JKRArchiveFPCc, - (void*)getResource__10JKRArchiveFUlPCc, - (void*)readResource__10JKRArchiveFPvUlPCc, - (void*)readResource__10JKRArchiveFPvUlUlPCc, - (void*)removeResourceAll__10JKRArchiveFv, - (void*)removeResource__10JKRArchiveFPv, - (void*)detachResource__10JKRArchiveFPv, - (void*)getResSize__10JKRArchiveCFPCv, - (void*)countFile__10JKRArchiveCFPCc, - (void*)getFirstFile__10JKRArchiveCFPCc, - (void*)getExpandedResSize__10JKRArchiveCFPCv, - (void*)NULL, - (void*)NULL, - (void*)setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl, - (void*)getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry, -}; + return 0; +} diff --git a/libs/JSystem/JKernel/JKRAssertHeap.cpp b/libs/JSystem/JKernel/JKRAssertHeap.cpp index d2acbf59d4..6787b3b766 100644 --- a/libs/JSystem/JKernel/JKRAssertHeap.cpp +++ b/libs/JSystem/JKernel/JKRAssertHeap.cpp @@ -11,44 +11,6 @@ // Types: // -struct JKRHeap { - struct TState {}; - - /* 802CE138 */ JKRHeap(void*, u32, JKRHeap*, bool); - /* 802CE264 */ ~JKRHeap(); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE574 */ void callAllDisposer(); - /* 802CEAC0 */ void dispose(); - /* 802CED84 */ void state_register(JKRHeap::TState*, u32) const; - /* 802CED88 */ void state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; - /* 802CEDA0 */ void state_dump(JKRHeap::TState const&) const; - - static u8 sRootHeap[4]; -}; - -struct JKRAssertHeap { - /* 802D12C4 */ JKRAssertHeap(void*, u32, JKRHeap*, bool); - /* 802D1300 */ ~JKRAssertHeap(); - /* 802D1368 */ void create(JKRHeap*); - /* 802D13D8 */ void do_destroy(); - /* 802D1408 */ void getHeapType(); - /* 802D1414 */ bool check(); - /* 802D141C */ bool dump(); - /* 802D1424 */ bool dump_sort(); - /* 802D142C */ bool do_changeGroupID(u8); - /* 802D1434 */ bool do_getCurrentGroupId(); - /* 802D143C */ bool do_alloc(u32, int); - /* 802D1444 */ void do_free(void*); - /* 802D1448 */ void do_freeAll(); - /* 802D144C */ void do_freeTail(); - /* 802D1450 */ void do_fillFreeArea(); - /* 802D1454 */ bool do_resize(void*, u32); - /* 802D145C */ bool do_getSize(void*); - /* 802D1464 */ bool do_getFreeSize(); - /* 802D146C */ bool do_getMaxFreeBlock(); - /* 802D1474 */ bool do_getTotalFreeSize(); -}; - // // Forward References: // @@ -93,88 +55,45 @@ extern "C" u8 sRootHeap__7JKRHeap[4]; // Declarations: // -/* ############################################################################################## */ -/* 803CC090-803CC0F0 0291B0 0060+00 2/2 0/0 0/0 .data __vt__13JKRAssertHeap */ -SECTION_DATA extern void* __vt__13JKRAssertHeap[24] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13JKRAssertHeapFv, - (void*)callAllDisposer__7JKRHeapFv, - (void*)getHeapType__13JKRAssertHeapFv, - (void*)check__13JKRAssertHeapFv, - (void*)dump_sort__13JKRAssertHeapFv, - (void*)dump__13JKRAssertHeapFv, - (void*)do_destroy__13JKRAssertHeapFv, - (void*)do_alloc__13JKRAssertHeapFUli, - (void*)do_free__13JKRAssertHeapFPv, - (void*)do_freeAll__13JKRAssertHeapFv, - (void*)do_freeTail__13JKRAssertHeapFv, - (void*)do_fillFreeArea__13JKRAssertHeapFv, - (void*)do_resize__13JKRAssertHeapFPvUl, - (void*)do_getSize__13JKRAssertHeapFPv, - (void*)do_getFreeSize__13JKRAssertHeapFv, - (void*)do_getMaxFreeBlock__13JKRAssertHeapFv, - (void*)do_getTotalFreeSize__13JKRAssertHeapFv, - (void*)do_changeGroupID__13JKRAssertHeapFUc, - (void*)do_getCurrentGroupId__13JKRAssertHeapFv, - (void*)state_register__7JKRHeapCFPQ27JKRHeap6TStateUl, - (void*)state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState, - (void*)state_dump__7JKRHeapCFRCQ27JKRHeap6TState, -}; - /* 802D12C4-802D1300 2CBC04 003C+00 1/1 0/0 0/0 .text __ct__13JKRAssertHeapFPvUlP7JKRHeapb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAssertHeap::JKRAssertHeap(void* param_0, u32 param_1, JKRHeap* param_2, bool param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRAssertHeap/__ct__13JKRAssertHeapFPvUlP7JKRHeapb.s" -} -#pragma pop +JKRAssertHeap::JKRAssertHeap(void* data, unsigned long size, JKRHeap* parent, bool errorFlag) + : JKRHeap(data, size, parent, errorFlag) {} /* 802D1300-802D1368 2CBC40 0068+00 1/0 0/0 0/0 .text __dt__13JKRAssertHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRAssertHeap::~JKRAssertHeap() { - nofralloc -#include "asm/JSystem/JKernel/JKRAssertHeap/__dt__13JKRAssertHeapFv.s" +JKRAssertHeap::~JKRAssertHeap() { + this->dispose(); } -#pragma pop /* 802D1368-802D13D8 2CBCA8 0070+00 0/0 1/1 0/0 .text create__13JKRAssertHeapFP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAssertHeap::create(JKRHeap* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRAssertHeap/create__13JKRAssertHeapFP7JKRHeap.s" +JKRAssertHeap* JKRAssertHeap::create(JKRHeap* parent) { + if (!parent) { + parent = JKRHeap::getRootHeap(); + } + + // 0x70 is sizeof(JKRAssertHeap) aligned to 16 bytes + u32 size = 0x70; + int alignment = 16; + + void* ptr = JKRHeap::alloc(size, alignment, parent); + if (!ptr) + return NULL; + + return new (ptr) JKRAssertHeap(NULL, 0, parent, false); } -#pragma pop /* 802D13D8-802D1408 2CBD18 0030+00 1/0 0/0 0/0 .text do_destroy__13JKRAssertHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAssertHeap::do_destroy() { - nofralloc -#include "asm/JSystem/JKernel/JKRAssertHeap/do_destroy__13JKRAssertHeapFv.s" +void JKRAssertHeap::do_destroy(void) { + this->~JKRAssertHeap(); } -#pragma pop /* 802D1408-802D1414 2CBD48 000C+00 1/0 0/0 0/0 .text getHeapType__13JKRAssertHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRAssertHeap::getHeapType() { - nofralloc -#include "asm/JSystem/JKernel/JKRAssertHeap/getHeapType__13JKRAssertHeapFv.s" +u32 JKRAssertHeap::getHeapType(void) { + return 'ASTH'; } -#pragma pop /* 802D1414-802D141C 2CBD54 0008+00 1/0 0/0 0/0 .text check__13JKRAssertHeapFv */ -bool JKRAssertHeap::check() { +bool JKRAssertHeap::check(void) { return true; } @@ -189,18 +108,19 @@ bool JKRAssertHeap::dump_sort() { } /* 802D142C-802D1434 2CBD6C 0008+00 1/0 0/0 0/0 .text do_changeGroupID__13JKRAssertHeapFUc */ -bool JKRAssertHeap::do_changeGroupID(u8 param_0) { - return false; + +u8 JKRAssertHeap::do_changeGroupID(u8) { + return 0; } /* 802D1434-802D143C 2CBD74 0008+00 1/0 0/0 0/0 .text do_getCurrentGroupId__13JKRAssertHeapFv */ -bool JKRAssertHeap::do_getCurrentGroupId() { - return false; +u8 JKRAssertHeap::do_getCurrentGroupId(void) { + return 0; } /* 802D143C-802D1444 2CBD7C 0008+00 1/0 0/0 0/0 .text do_alloc__13JKRAssertHeapFUli */ -bool JKRAssertHeap::do_alloc(u32 param_0, int param_1) { - return false; +void* JKRAssertHeap::do_alloc(u32, int) { + return NULL; } /* 802D1444-802D1448 2CBD84 0004+00 1/0 0/0 0/0 .text do_free__13JKRAssertHeapFPv */ @@ -225,27 +145,27 @@ void JKRAssertHeap::do_fillFreeArea() { } /* 802D1454-802D145C 2CBD94 0008+00 1/0 0/0 0/0 .text do_resize__13JKRAssertHeapFPvUl */ -bool JKRAssertHeap::do_resize(void* param_0, u32 param_1) { - return false; +s32 JKRAssertHeap::do_resize(void*, u32) { + return 0; } /* 802D145C-802D1464 2CBD9C 0008+00 1/0 0/0 0/0 .text do_getSize__13JKRAssertHeapFPv */ -bool JKRAssertHeap::do_getSize(void* param_0) { - return false; +s32 JKRAssertHeap::do_getSize(void*) { + return 0; } /* 802D1464-802D146C 2CBDA4 0008+00 1/0 0/0 0/0 .text do_getFreeSize__13JKRAssertHeapFv */ -bool JKRAssertHeap::do_getFreeSize() { - return false; +s32 JKRAssertHeap::do_getFreeSize(void) { + return 0; } /* 802D146C-802D1474 2CBDAC 0008+00 1/0 0/0 0/0 .text do_getMaxFreeBlock__13JKRAssertHeapFv */ -bool JKRAssertHeap::do_getMaxFreeBlock() { - return false; +void* JKRAssertHeap::do_getMaxFreeBlock(void) { + return NULL; } /* 802D1474-802D147C 2CBDB4 0008+00 1/0 0/0 0/0 .text do_getTotalFreeSize__13JKRAssertHeapFv */ -bool JKRAssertHeap::do_getTotalFreeSize() { - return false; +s32 JKRAssertHeap::do_getTotalFreeSize(void) { + return 0; } diff --git a/libs/JSystem/JKernel/JKRCompArchive.cpp b/libs/JSystem/JKernel/JKRCompArchive.cpp index 3eee7883f4..6cbdb99a3e 100644 --- a/libs/JSystem/JKernel/JKRCompArchive.cpp +++ b/libs/JSystem/JKernel/JKRCompArchive.cpp @@ -3,7 +3,7 @@ // Translation Unit: JKRCompArchive // -#include "JSystem/JKernel/JKRCompArchive.h" +// #include "JSystem/JKernel/JKRCompArchive.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/JSystem/JKernel/JKRDecomp.cpp b/libs/JSystem/JKernel/JKRDecomp.cpp index 31c6a77b4e..051f2ade42 100644 --- a/libs/JSystem/JKernel/JKRDecomp.cpp +++ b/libs/JSystem/JKernel/JKRDecomp.cpp @@ -4,53 +4,11 @@ // #include "JSystem/JKernel/JKRDecomp.h" +#include "JSystem/JKernel/JKRAramPiece.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JKRThread { - /* 802D1568 */ JKRThread(u32, int, int); - /* 802D1758 */ ~JKRThread(); -}; - -struct JKRHeap { - static u8 sSystemHeap[4]; -}; - -struct JKRDecompCommand { - /* 802DBD70 */ JKRDecompCommand(); - /* 802DBDC0 */ ~JKRDecompCommand(); -}; - -struct JKRDecomp { - /* 802DB680 */ void create(s32); - /* 802DB6E0 */ JKRDecomp(s32); - /* 802DB730 */ ~JKRDecomp(); - /* 802DB790 */ void run(); - /* 802DB858 */ void prepareCommand(u8*, u8*, u32, u32, void (*)(u32)); - /* 802DB8D0 */ void sendCommand(JKRDecompCommand*); - /* 802DB900 */ void orderAsync(u8*, u8*, u32, u32, void (*)(u32)); - /* 802DB934 */ void sync(JKRDecompCommand*, int); - /* 802DB988 */ void orderSync(u8*, u8*, u32, u32); - /* 802DB9DC */ void decode(u8*, u8*, u32, u32); - /* 802DBA58 */ void decodeSZP(u8*, u8*, u32, u32); - /* 802DBC14 */ void decodeSZS(u8*, u8*, u32, u32); - /* 802DBCF8 */ void checkCompressed(u8*); - - static u8 sMessageBuffer[32]; - static u8 sMessageQueue[32]; - static u8 sDecompObject[4 + 4 /* padding */]; -}; - -struct JKRAMCommand {}; - -struct JKRAramPiece { - /* 802D35F4 */ void sendCommand(JKRAMCommand*); -}; - // // Forward References: // @@ -83,10 +41,6 @@ extern "C" void __dl__FPv(); extern "C" void __ct__9JKRThreadFUlii(); extern "C" void __dt__9JKRThreadFv(); extern "C" void sendCommand__12JKRAramPieceFP12JKRAMCommand(); -extern "C" void OSInitMessageQueue(); -extern "C" void OSSendMessage(); -extern "C" void OSReceiveMessage(); -extern "C" void OSResumeThread(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _restgpr_27(); @@ -99,134 +53,207 @@ extern "C" u8 sSystemHeap__7JKRHeap[4]; /* ############################################################################################## */ /* 804514B0-804514B8 0009B0 0004+04 1/1 0/0 0/0 .sbss sDecompObject__9JKRDecomp */ -u8 JKRDecomp::sDecompObject[4 + 4 /* padding */]; +JKRDecomp* JKRDecomp::sDecompObject; -/* 802DB680-802DB6E0 2D5FC0 0060+00 0/0 1/1 0/0 .text create__9JKRDecompFl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDecomp::create(s32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/create__9JKRDecompFl.s" +JKRDecomp* JKRDecomp::create(long priority) { + if (!sDecompObject) { + sDecompObject = new (JKRHeap::getSystemHeap(), 0) JKRDecomp(priority); + } + + return sDecompObject; } -#pragma pop /* ############################################################################################## */ /* 803CC460-803CC480 029580 0020+00 1/1 0/0 0/0 .data sMessageBuffer__9JKRDecomp */ -SECTION_DATA u8 JKRDecomp::sMessageBuffer[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +OSMessage JKRDecomp::sMessageBuffer[8] = {0}; /* 803CC480-803CC4A0 0295A0 0020+00 2/2 0/0 0/0 .data sMessageQueue__9JKRDecomp */ -SECTION_DATA u8 JKRDecomp::sMessageQueue[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803CC4A0-803CC4B0 0295C0 0010+00 2/2 0/0 0/0 .data __vt__9JKRDecomp */ -SECTION_DATA extern void* __vt__9JKRDecomp[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__9JKRDecompFv, - (void*)run__9JKRDecompFv, -}; +OSMessageQueue JKRDecomp::sMessageQueue = {0}; /* 802DB6E0-802DB730 2D6020 0050+00 1/1 0/0 0/0 .text __ct__9JKRDecompFl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDecomp::JKRDecomp(s32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/__ct__9JKRDecompFl.s" +JKRDecomp::JKRDecomp(long priority) : JKRThread(0x800, 0x10, priority) { + resume(); } -#pragma pop /* 802DB730-802DB790 2D6070 0060+00 1/0 0/0 0/0 .text __dt__9JKRDecompFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDecomp::~JKRDecomp() { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/__dt__9JKRDecompFv.s" -} -#pragma pop +JKRDecomp::~JKRDecomp() {} /* 802DB790-802DB858 2D60D0 00C8+00 1/0 0/0 0/0 .text run__9JKRDecompFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDecomp::run() { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/run__9JKRDecompFv.s" +void* JKRDecomp::run(void) { + OSInitMessageQueue(&sMessageQueue, sMessageBuffer, 8); + for (;;) { + OSMessage message; + OSReceiveMessage(&sMessageQueue, &message, OS_MESSAGE_BLOCKING); + + JKRDecompCommand* command = (JKRDecompCommand*)message; + decode(command->mSrcBuffer, command->mDstBuffer, command->mSrcLength, command->mDstLength); + + if (command->field_0x20 != 0) { + if (command->field_0x20 == 1) { + JKRAramPiece::sendCommand(command->mAMCommand); + } + continue; + } + + if (command->mCallback) { + (*command->mCallback)((u32)command); + continue; + } + + if (command->field_0x1c) { + OSSendMessage(command->field_0x1c, (OSMessage)1, OS_MESSAGE_NON_BLOCKING); + } else { + OSSendMessage(&command->mMessageQueue, (OSMessage)1, OS_MESSAGE_NON_BLOCKING); + } + } } -#pragma pop /* 802DB858-802DB8D0 2D6198 0078+00 1/1 0/0 0/0 .text prepareCommand__9JKRDecompFPUcPUcUlUlPFUl_v */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDecomp::prepareCommand(u8* param_0, u8* param_1, u32 param_2, u32 param_3, - void (*param_4)(u32)) { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/prepareCommand__9JKRDecompFPUcPUcUlUlPFUl_v.s" +JKRDecompCommand* JKRDecomp::prepareCommand(u8* srcBuffer, u8* dstBuffer, u32 srcLength, + u32 dstLength, + JKRDecompCommand::AsyncCallback callback) { + JKRDecompCommand* command = new (JKRHeap::getSystemHeap(), -4) JKRDecompCommand(); + command->mSrcBuffer = srcBuffer; + command->mDstBuffer = dstBuffer; + command->mSrcLength = srcLength; + command->mDstLength = dstLength; + command->mCallback = callback; + return command; } -#pragma pop /* 802DB8D0-802DB900 2D6210 0030+00 1/1 1/1 0/0 .text sendCommand__9JKRDecompFP16JKRDecompCommand */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDecomp::sendCommand(JKRDecompCommand* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/sendCommand__9JKRDecompFP16JKRDecompCommand.s" +void JKRDecomp::sendCommand(JKRDecompCommand* command) { + OSSendMessage(&sMessageQueue, command, OS_MESSAGE_NON_BLOCKING); } -#pragma pop /* 802DB900-802DB934 2D6240 0034+00 1/1 0/0 0/0 .text orderAsync__9JKRDecompFPUcPUcUlUlPFUl_v */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDecomp::orderAsync(u8* param_0, u8* param_1, u32 param_2, u32 param_3, - void (*param_4)(u32)) { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/orderAsync__9JKRDecompFPUcPUcUlUlPFUl_v.s" +JKRDecompCommand* JKRDecomp::orderAsync(u8* srcBuffer, u8* dstBuffer, u32 srcLength, u32 dstLength, + JKRDecompCommand::AsyncCallback callback) { + JKRDecompCommand* command = + prepareCommand(srcBuffer, dstBuffer, srcLength, dstLength, callback); + sendCommand(command); + return command; } -#pragma pop /* 802DB934-802DB988 2D6274 0054+00 1/1 0/0 0/0 .text sync__9JKRDecompFP16JKRDecompCommandi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDecomp::sync(JKRDecompCommand* param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/sync__9JKRDecompFP16JKRDecompCommandi.s" +bool JKRDecomp::sync(JKRDecompCommand* command, int isNonBlocking) { + OSMessage message; + bool result; + if (isNonBlocking == JKRDECOMP_SYNC_BLOCKING) { + OSReceiveMessage(&command->mMessageQueue, &message, OS_MESSAGE_BLOCKING); + result = true; + } else { + result = + OSReceiveMessage(&command->mMessageQueue, &message, OS_MESSAGE_NON_BLOCKING) != FALSE; + } + + return result; } -#pragma pop /* 802DB988-802DB9DC 2D62C8 0054+00 0/0 5/5 0/0 .text orderSync__9JKRDecompFPUcPUcUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDecomp::orderSync(u8* param_0, u8* param_1, u32 param_2, u32 param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/orderSync__9JKRDecompFPUcPUcUlUl.s" +bool JKRDecomp::orderSync(u8* srcBuffer, u8* dstBuffer, u32 srcLength, u32 dstLength) { + JKRDecompCommand* command = orderAsync(srcBuffer, dstBuffer, srcLength, dstLength, NULL); + bool result = sync(command, JKRDECOMP_SYNC_BLOCKING); + delete command; + return result; } -#pragma pop /* 802DB9DC-802DBA58 2D631C 007C+00 1/1 0/0 0/0 .text decode__9JKRDecompFPUcPUcUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDecomp::decode(u8* param_0, u8* param_1, u32 param_2, u32 param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/decode__9JKRDecompFPUcPUcUlUl.s" +void JKRDecomp::decode(u8* srcBuffer, u8* dstBuffer, u32 srcLength, u32 dstLength) { + JKRCompression compression = checkCompressed(srcBuffer); + if (compression == COMPRESSION_YAY0) { + decodeSZP(srcBuffer, dstBuffer, srcLength, dstLength); + } else if (compression == COMPRESSION_YAZ0) { + decodeSZS(srcBuffer, dstBuffer, srcLength, dstLength); + } } -#pragma pop /* 802DBA58-802DBC14 2D6398 01BC+00 1/1 0/0 0/0 .text decodeSZP__9JKRDecompFPUcPUcUlUl */ +// All instructions match. Wrong registers are used. +#ifdef NONMATCHING +void JKRDecomp::decodeSZP(u8* src, u8* dst, u32 srcLength, u32 dstLength) { + u32 decodedSize; + s32 srcChunkOffset; + s32 count; + s32 dstOffset; + u32 length; + u32 counter; + u32 srcDataOffset; + u32 linkTableOffset; + s32 offset; + s32 i; + + decodedSize = read_big_endian_u32(src + 4); + linkTableOffset = read_big_endian_u32(src + 8); + srcDataOffset = read_big_endian_u32(src + 12); + + dstOffset = 0; + counter = 0; + srcChunkOffset = 16; + + u32 chunkBits; + if (srcLength == 0) + return; + if (dstLength > decodedSize) + return; + + length = srcLength; + do { + if (counter == 0) { + chunkBits = read_big_endian_u32(src + srcChunkOffset); + srcChunkOffset += 4; + counter = 32; + } + + if (chunkBits & 0x80000000) { + if (dstLength == 0) { + dst[dstOffset] = src[srcDataOffset]; + length--; + if (length == 0) { + return; + } + } else { + dstLength--; + } + dstOffset++; + srcDataOffset++; + } else { + u32 linkInfo = read_big_endian_u16(src + linkTableOffset); + linkTableOffset += 2; + + offset = dstOffset - (linkInfo & 0xFFF); + count = ((s32)linkInfo) >> 12; + if (count == 0) { + count = (u32)src[srcDataOffset] + 0x12; + srcDataOffset++; + } else { + count += 2; + } + + if (count > decodedSize - dstOffset) { + count = decodedSize - dstOffset; + } + + for (i = 0; i < count; i++, dstOffset++, offset++) { + if (dstLength == 0) { + dst[dstOffset] = dst[offset - 1]; + length--; + if (length == 0) { + return; + } + } else { + dstLength--; + } + } + } + + chunkBits <<= 1; + counter--; + } while ((s32)dstLength < decodedSize); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -235,6 +262,7 @@ asm void JKRDecomp::decodeSZP(u8* param_0, u8* param_1, u32 param_2, u32 param_3 #include "asm/JSystem/JKernel/JKRDecomp/decodeSZP__9JKRDecompFPUcPUcUlUl.s" } #pragma pop +#endif /* 802DBC14-802DBCF8 2D6554 00E4+00 1/1 0/0 0/0 .text decodeSZS__9JKRDecompFPUcPUcUlUl */ #pragma push @@ -247,31 +275,29 @@ asm void JKRDecomp::decodeSZS(u8* param_0, u8* param_1, u32 param_2, u32 param_3 #pragma pop /* 802DBCF8-802DBD70 2D6638 0078+00 1/1 4/4 0/0 .text checkCompressed__9JKRDecompFPUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDecomp::checkCompressed(u8* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/checkCompressed__9JKRDecompFPUc.s" +JKRCompression JKRDecomp::checkCompressed(u8* src) { + if ((src[0] == 'Y') && (src[1] == 'a') && (src[3] == '0')) { + if (src[2] == 'y') { + return COMPRESSION_YAY0; + } + if (src[2] == 'z') { + return COMPRESSION_YAZ0; + } + } + if ((src[0] == 'A') && (src[1] == 'S') && (src[2] == 'R')) { + return COMPRESSION_ASR; + } + return COMPRESSION_NONE; } -#pragma pop /* 802DBD70-802DBDC0 2D66B0 0050+00 1/1 0/0 0/0 .text __ct__16JKRDecompCommandFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDecompCommand::JKRDecompCommand() { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/__ct__16JKRDecompCommandFv.s" +JKRDecompCommand::JKRDecompCommand() { + OSInitMessageQueue(&mMessageQueue, &mMessage, 1); + mCallback = NULL; + field_0x1c = NULL; + mThis = this; + field_0x20 = 0; } -#pragma pop /* 802DBDC0-802DBDFC 2D6700 003C+00 1/1 0/0 0/0 .text __dt__16JKRDecompCommandFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDecompCommand::~JKRDecompCommand() { - nofralloc -#include "asm/JSystem/JKernel/JKRDecomp/__dt__16JKRDecompCommandFv.s" -} -#pragma pop +JKRDecompCommand::~JKRDecompCommand() {} diff --git a/libs/JSystem/JKernel/JKRDisposer.cpp b/libs/JSystem/JKernel/JKRDisposer.cpp index 3bad021b34..bdcfcddebe 100644 --- a/libs/JSystem/JKernel/JKRDisposer.cpp +++ b/libs/JSystem/JKernel/JKRDisposer.cpp @@ -4,80 +4,26 @@ // #include "JSystem/JKernel/JKRDisposer.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -struct JKRHeap { - /* 802CE83C */ void findFromRoot(void*); -}; - -struct JKRDisposer { - /* 802D147C */ JKRDisposer(); - /* 802D14E4 */ ~JKRDisposer(); -}; - -// -// Forward References: -// - -extern "C" void __ct__11JKRDisposerFv(); -extern "C" void __dt__11JKRDisposerFv(); - -// -// External References: -// - -extern "C" void findFromRoot__7JKRHeapFPv(); -extern "C" void __dl__FPv(); -extern "C" void __ct__10JSUPtrLinkFPv(); -extern "C" void __dt__10JSUPtrLinkFv(); -extern "C" void append__10JSUPtrListFP10JSUPtrLink(); -extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); - // // Declarations: // -/* ############################################################################################## */ -/* 803CC0F0-803CC100 029210 000C+04 2/2 0/0 0/0 .data __vt__11JKRDisposer */ -SECTION_DATA extern void* __vt__11JKRDisposer[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__11JKRDisposerFv, - /* padding */ - NULL, -}; - /* 802D147C-802D14E4 2CBDBC 0068+00 0/0 12/12 0/0 .text __ct__11JKRDisposerFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDisposer::JKRDisposer() { - nofralloc -#include "asm/JSystem/JKernel/JKRDisposer/__ct__11JKRDisposerFv.s" +JKRDisposer::JKRDisposer() : mLink(this) { + mHeap = JKRHeap::findFromRoot(this); + if (mHeap) { + mHeap->appendDisposer(this); + } } -#pragma pop /* 802D14E4-802D1568 2CBE24 0084+00 1/0 10/10 0/0 .text __dt__11JKRDisposerFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDisposer::~JKRDisposer() { - nofralloc -#include "asm/JSystem/JKernel/JKRDisposer/__dt__11JKRDisposerFv.s" +JKRDisposer::~JKRDisposer() { + JKRHeap* heap = mHeap; + if (heap) { + heap->removeDisposer(this); + } } -#pragma pop diff --git a/libs/JSystem/JKernel/JKRDvdAramRipper.cpp b/libs/JSystem/JKernel/JKRDvdAramRipper.cpp index c6d302630b..a43304e75e 100644 --- a/libs/JSystem/JKernel/JKRDvdAramRipper.cpp +++ b/libs/JSystem/JKernel/JKRDvdAramRipper.cpp @@ -3,7 +3,7 @@ // Translation Unit: JKRDvdAramRipper // -#include "JSystem/JKernel/JKRDvdAramRipper.h" +// #include "JSystem/JKernel/JKRDvdAramRipper.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/JSystem/JKernel/JKRDvdArchive.cpp b/libs/JSystem/JKernel/JKRDvdArchive.cpp index 71d50e9585..9d0e0128dc 100644 --- a/libs/JSystem/JKernel/JKRDvdArchive.cpp +++ b/libs/JSystem/JKernel/JKRDvdArchive.cpp @@ -4,88 +4,12 @@ // #include "JSystem/JKernel/JKRDvdArchive.h" +#include "JSystem/JKernel/JKRDvdFile.h" +#include "JSystem/JKernel/JKRDvdRipper.h" +#include "JSystem/JKernel/JKRExpHeap.h" +#include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JUTException { - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); -}; - -struct JSUPtrLink {}; - -struct JSUPtrList { - /* 802DBFF0 */ void prepend(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE500 */ void free(void*, JKRHeap*); - /* 802CE548 */ void free(void*); - /* 802CEB18 */ void copyMemory(void*, void*, u32); - - static u8 sSystemHeap[4]; -}; - -struct JKRFileLoader { - /* 802D41D4 */ void unmount(); - - static u8 sVolumeList[12]; -}; - -struct JKRExpandSwitch {}; - -struct JKRDvdRipper { - struct EAllocDirection {}; - - /* 802D9C54 */ void loadToMainRAM(s32, u8*, JKRExpandSwitch, u32, JKRHeap*, - JKRDvdRipper::EAllocDirection, u32, int*, u32*); -}; - -struct JKRDvdFile { - /* 802D96A0 */ JKRDvdFile(s32); -}; - -struct JKRArchive { - struct EMountDirection {}; - - struct SDIFileEntry {}; - - struct EMountMode {}; - - /* 802D5A38 */ void becomeCurrent(char const*); - /* 802D5C64 */ void getResource(u32, char const*); - /* 802D5BE8 */ void getResource(char const*); - /* 802D5D8C */ void readResource(void*, u32, u32, char const*); - /* 802D5E30 */ void readResource(void*, u32, char const*); - /* 802D5FB4 */ void removeResourceAll(); - /* 802D603C */ void removeResource(void*); - /* 802D609C */ void detachResource(void*); - /* 802D60D8 */ void getResSize(void const*) const; - /* 802D6150 */ void countFile(char const*) const; - /* 802D61B0 */ void getFirstFile(char const*) const; - /* 802D6294 */ JKRArchive(s32, JKRArchive::EMountMode); - /* 802D6334 */ ~JKRArchive(); - /* 802D6734 */ void findPtrResource(void const*) const; - /* 802D693C */ void setExpandSize(JKRArchive::SDIFileEntry*, u32); - /* 802D6978 */ void getExpandSize(JKRArchive::SDIFileEntry*) const; -}; - -struct JKRDvdArchive { - /* 802D7BF0 */ JKRDvdArchive(s32, JKRArchive::EMountDirection); - /* 802D7C98 */ ~JKRDvdArchive(); - /* 802D7DB4 */ void open(s32); - /* 802D8168 */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); - /* 802D8050 */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); - /* 802D826C */ void fetchResource_subroutine(s32, u32, u32, u8*, u32, int, int); - /* 802D8474 */ void fetchResource_subroutine(s32, u32, u32, JKRHeap*, int, int, u8**); - /* 802D8698 */ void getExpandedResSize(void const*) const; -}; +#include "global.h" // // Forward References: @@ -136,7 +60,6 @@ loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15 extern "C" void prepend__10JSUPtrListFP10JSUPtrLink(); extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); extern "C" void panic_f__12JUTExceptionFPCciPCce(); -extern "C" void DCInvalidateRange(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); @@ -151,141 +74,408 @@ extern "C" void abs(); extern "C" u8 sVolumeList__13JKRFileLoader[12]; extern "C" u8 sSystemHeap__7JKRHeap[4]; +extern "C" { +void DCInvalidateRange(void*, u32); +void DCStoreRange(void*, u32); +} + // // Declarations: // -/* ############################################################################################## */ -/* 803CC398-803CC3E8 0294B8 0050+00 2/2 0/0 0/0 .data __vt__13JKRDvdArchive */ -SECTION_DATA extern void* __vt__13JKRDvdArchive[20] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13JKRDvdArchiveFv, - (void*)unmount__13JKRFileLoaderFv, - (void*)becomeCurrent__10JKRArchiveFPCc, - (void*)getResource__10JKRArchiveFPCc, - (void*)getResource__10JKRArchiveFUlPCc, - (void*)readResource__10JKRArchiveFPvUlPCc, - (void*)readResource__10JKRArchiveFPvUlUlPCc, - (void*)removeResourceAll__10JKRArchiveFv, - (void*)removeResource__10JKRArchiveFPv, - (void*)detachResource__10JKRArchiveFPv, - (void*)getResSize__10JKRArchiveCFPCv, - (void*)countFile__10JKRArchiveCFPCc, - (void*)getFirstFile__10JKRArchiveCFPCc, - (void*)getExpandedResSize__13JKRDvdArchiveCFPCv, - (void*)fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl, - (void*)fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl, - (void*)setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl, - (void*)getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry, -}; - /* 802D7BF0-802D7C98 2D2530 00A8+00 0/0 1/1 0/0 .text * __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDvdArchive::JKRDvdArchive(s32 param_0, JKRArchive::EMountDirection param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdArchive/__ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection.s" +JKRDvdArchive::JKRDvdArchive(s32 entryNum, JKRArchive::EMountDirection mountDirection) + : JKRArchive(entryNum, MOUNT_DVD), mMountDirection(mountDirection) { + if (!open(entryNum)) + return; + + mVolumeType = 'RARC'; + mVolumeName = mStringTable + (u32)mNodes->name; + getVolumeList().prepend(&mFileLoaderLink); + mIsMounted = true; } -#pragma pop /* 802D7C98-802D7DB4 2D25D8 011C+00 1/0 0/0 0/0 .text __dt__13JKRDvdArchiveFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDvdArchive::~JKRDvdArchive() { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdArchive/__dt__13JKRDvdArchiveFv.s" +JKRDvdArchive::~JKRDvdArchive() { + if (mIsMounted == true) { + if (mArcInfoBlock) { + SDIFileEntry* fileEntry = mFiles; + int i = 0; + for (; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) { + if (fileEntry->data) { + JKRFreeToHeap(mHeap, fileEntry->data); + } + } + + JKRFreeToHeap(mHeap, mArcInfoBlock); + mArcInfoBlock = NULL; + } + + if (mExpandedSize) { + JKRFree(mExpandedSize); + mExpandedSize = NULL; + } + + if (mDvdFile) { + delete mDvdFile; + } + + getVolumeList().remove(&mFileLoaderLink); + mIsMounted = false; + } } -#pragma pop /* 802D7DB4-802D8050 2D26F4 029C+00 1/1 0/0 0/0 .text open__13JKRDvdArchiveFl */ +#ifdef NONMATCHING +bool JKRDvdArchive::open(s32 entryNum) { + mArcInfoBlock = NULL; + field_0x64 = NULL; + mNodes = NULL; + mFiles = NULL; + mStringTable = NULL; + + mDvdFile = new (JKRHeap::getSystemHeap(), 0) JKRDvdFile(entryNum); + if (!mDvdFile) { + mMountMode = UNKNOWN_MOUNT_MODE; + return false; + } + + SArcHeader* arcHeader = (SArcHeader*)JKRAllocFromSysHeap(sizeof(SArcHeader), 0x20); + if (!arcHeader) { + mMountMode = UNKNOWN_MOUNT_MODE; + goto cleanup; + } + + JKRDvdToMainRam(entryNum, (u8*)arcHeader, EXPAND_SWITCH_UNKNOWN1, sizeof(SArcHeader), NULL, + JKRDvdRipper::ALLOC_DIRECTION_FORWARD, 0, &mCompression, NULL); + DCInvalidateRange(arcHeader, sizeof(SArcHeader)); + + int alignment; + if (mMountDirection == MOUNT_DIRECTION_HEAD) { + alignment = 0x20; + } else { + alignment = -0x20; + } + + mArcInfoBlock = (SArcDataInfo*)JKRAllocFromHeap(mHeap, arcHeader->file_data_offset, alignment); + if (!mArcInfoBlock) { + mMountMode = UNKNOWN_MOUNT_MODE; + goto cleanup; + } + + JKRDvdToMainRam(entryNum, (u8*)mArcInfoBlock, EXPAND_SWITCH_UNKNOWN1, + arcHeader->file_data_offset, NULL, JKRDvdRipper::ALLOC_DIRECTION_FORWARD, + sizeof(SArcHeader), NULL, NULL); + DCInvalidateRange(mArcInfoBlock, arcHeader->file_data_offset); + + mNodes = (SDirEntry*)((int)&mArcInfoBlock->num_nodes + mArcInfoBlock->node_offset); + mFiles = (SDIFileEntry*)((int)&mArcInfoBlock->num_nodes + mArcInfoBlock->file_entry_offset); + mStringTable = (char*)((int)&mArcInfoBlock->num_nodes + mArcInfoBlock->string_table_offset); + mExpandedSize = NULL; + + bool useCompression = false; + SDIFileEntry* fileEntry = mFiles; + for (u32 i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) { + if (!fileEntry->isUnknownFlag1()) { + useCompression |= fileEntry->isCompressed(); + } + } + + if (useCompression) { + mExpandedSize = (s32*)JKRAllocFromHeap(mHeap, sizeof(s32) * mArcInfoBlock->num_file_entries, + abs(alignment)); + if (mExpandedSize) { + // !@bug: mArcInfoBlock is allocated from mHeap but free'd to sSystemHeap. I don't know + // what will happen if mHeap != sSystemHeap, but it's still a bug to free to the wrong + // allocator. + JKRFreeToSysHeap(mArcInfoBlock); + mMountMode = UNKNOWN_MOUNT_MODE; + goto cleanup; + } + + memset(mExpandedSize, 0, sizeof(s32) * mArcInfoBlock->num_file_entries); + } + + field_0x64 = arcHeader->header_length + arcHeader->file_data_offset; + +cleanup: + if (arcHeader) { + JKRFreeToSysHeap(arcHeader); + } + + if (mMountMode == UNKNOWN_MOUNT_MODE) { + if (mDvdFile) { + delete mDvdFile; + } + return false; + } + + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRDvdArchive::open(s32 param_0) { +asm bool JKRDvdArchive::open(s32 param_0) { nofralloc #include "asm/JSystem/JKernel/JKRDvdArchive/open__13JKRDvdArchiveFl.s" } #pragma pop +#endif /* 802D8050-802D8168 2D2990 0118+00 1/0 0/0 0/0 .text * fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdArchive::fetchResource(JKRArchive::SDIFileEntry* param_0, u32* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdArchive/fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl.s" +void* JKRDvdArchive::fetchResource(SDIFileEntry* fileEntry, u32* returnSize) { + u32 tempReturnSize; + if (returnSize == NULL) { + returnSize = &tempReturnSize; + } + + JKRCompression fileCompression = JKRConvertAttrToCompressionType(fileEntry->getAttr()); + if (!fileEntry->data) { + u8* resourcePtr; + u32 resourceSize = fetchResource_subroutine( + mEntryNum, this->field_0x64 + fileEntry->data_offset, fileEntry->data_size, mHeap, + fileCompression, mCompression, &resourcePtr); + *returnSize = resourceSize; + if (resourceSize == 0) { + return NULL; + } + fileEntry->data = resourcePtr; + if (fileCompression == COMPRESSION_YAZ0) { + setExpandSize(fileEntry, *returnSize); + } + } else { + if (fileCompression == COMPRESSION_YAZ0) { + u32 resourceSize = getExpandSize(fileEntry); + *returnSize = resourceSize; + } else { + *returnSize = fileEntry->data_size; + } + } + + return fileEntry->data; } -#pragma pop /* 802D8168-802D826C 2D2AA8 0104+00 1/0 0/0 0/0 .text * fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl */ +// ALIGN_PREV(bufferSize, 0x20) is "inlined" in the function parameter. +#ifdef NONMATCHING +void* JKRDvdArchive::fetchResource(void* buffer, u32 bufferSize, SDIFileEntry* fileEntry, + u32* returnSize) { + ASSERT(isMounted()); + u32 otherSize; + u32 size = fileEntry->data_size; + u32 dstSize = bufferSize; + JKRCompression fileCompression = JKRConvertAttrToCompressionType(fileEntry->getAttr()); + + if (!fileEntry->data) { + dstSize = ALIGN_PREV(bufferSize, 0x20); + size = fetchResource_subroutine(mEntryNum, field_0x64 + fileEntry->data_offset, + fileEntry->data_size, (u8*)buffer, dstSize, fileCompression, + mCompression); + } else { + if (fileCompression == COMPRESSION_YAZ0) { + otherSize = getExpandSize(fileEntry); + if (otherSize) { + size = otherSize; + } + } + + if (size > bufferSize) { + size = bufferSize; + } + + JKRHeap::copyMemory(buffer, fileEntry->data, size); + } + + if (returnSize) { + *returnSize = size; + } + return buffer; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRDvdArchive::fetchResource(void* param_0, u32 param_1, JKRArchive::SDIFileEntry* param_2, - u32* param_3) { +asm void* JKRDvdArchive::fetchResource(void* param_0, u32 param_1, + JKRArchive::SDIFileEntry* param_2, u32* param_3) { nofralloc #include "asm/JSystem/JKernel/JKRDvdArchive/fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl.s" } #pragma pop - -/* ############################################################################################## */ -/* 8039D1B0-8039D1B0 029810 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D1B0 = "JKRDvdArchive.cpp"; -SECTION_DEAD static char const* const stringBase_8039D1C2 = "%s"; -SECTION_DEAD static char const* const stringBase_8039D1C5 = "Sorry, not applied for SZP archive.\n"; -SECTION_DEAD static char const* const stringBase_8039D1EA = "??? bad sequence\n"; -#pragma pop +#endif /* 802D826C-802D8474 2D2BAC 0208+00 1/1 1/1 0/0 .text * fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdArchive::fetchResource_subroutine(s32 param_0, u32 param_1, u32 param_2, u8* param_3, - u32 param_4, int param_5, int param_6) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdArchive/fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii.s" -} -#pragma pop +u32 JKRDvdArchive::fetchResource_subroutine(s32 entryNum, u32 offset, u32 size, u8* dst, + u32 dstLength, JKRCompression fileCompression, + JKRCompression archiveCompression) { + u32 alignedSize = ALIGN_NEXT(size, 0x20); + u32 alignedDstLength = ALIGN_PREV(dstLength, 0x20); -/* ############################################################################################## */ -/* 8039D1B0-8039D1B0 029810 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D1FC = "Sorry, not applied SZP archive.\n"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039D21D = "\0\0"; -#pragma pop + switch (archiveCompression) { + case COMPRESSION_NONE: { + switch (fileCompression) { + case COMPRESSION_NONE: + if (alignedSize > alignedDstLength) { + alignedSize = alignedDstLength; + } + + JKRDvdToMainRam(entryNum, dst, EXPAND_SWITCH_UNKNOWN0, alignedSize, NULL, + JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL, NULL); + DCInvalidateRange(dst, alignedSize); + return alignedSize; + case COMPRESSION_YAY0: + case COMPRESSION_YAZ0: + // The dst pointer to JKRDvdToMainRam should be aligned to 32 bytes. This will align + // arcHeader to 32 bytes on the stack. + char arcHeaderBuffer[64]; + SArcHeader* arcHeader = (SArcHeader*)ALIGN_NEXT((u32)arcHeaderBuffer, 0x20); + JKRDvdToMainRam(entryNum, (u8*)arcHeader, EXPAND_SWITCH_UNKNOWN2, sizeof(SArcHeader), + NULL, JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL, NULL); + DCInvalidateRange(arcHeader, sizeof(SArcHeader)); + + u32 decompressedSize = JKRDecompExpandSize(arcHeader); + u32 alignedDecompressedSize = ALIGN_NEXT(decompressedSize, 0x20); + if (alignedDecompressedSize > alignedDstLength) { + alignedDecompressedSize = alignedDstLength; + } + + JKRDvdToMainRam(entryNum, dst, EXPAND_SWITCH_UNKNOWN1, alignedDecompressedSize, NULL, + JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL, NULL); + DCInvalidateRange(dst, alignedDecompressedSize); + return decompressedSize; + } + } + + case COMPRESSION_YAZ0: { + if (size > alignedDstLength) { + size = alignedDstLength; + } + + JKRDvdToMainRam(entryNum, dst, EXPAND_SWITCH_UNKNOWN1, size, NULL, + JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL, NULL); + DCInvalidateRange(dst, size); + return size; + } + + case COMPRESSION_YAY0: { + JUTException::panic_f("JKRDvdArchive.cpp", 0x289, "%s", + "Sorry, not applied for SZP archive.\n"); + } + + default: { + JUTException::panic_f("JKRDvdArchive.cpp", 0x28d, "%s", "??? bad sequence\n"); + return 0; + } + } +} /* 802D8474-802D8698 2D2DB4 0224+00 1/1 1/1 0/0 .text * fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdArchive::fetchResource_subroutine(s32 param_0, u32 param_1, u32 param_2, - JKRHeap* param_3, int param_4, int param_5, - u8** param_6) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdArchive/fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc.s" +u32 JKRDvdArchive::fetchResource_subroutine(s32 entryNum, u32 offset, u32 size, JKRHeap* heap, + JKRCompression fileCompression, + JKRCompression archiveCompression, + u8** returnResource) { + u32 alignedSize = ALIGN_NEXT(size, 0x20); + u8* buffer; + + switch (archiveCompression) { + case COMPRESSION_NONE: { + switch (fileCompression) { + case COMPRESSION_NONE: + buffer = (u8*)JKRAllocFromHeap(heap, alignedSize, sizeof(SArcHeader)); + ASSERT(buffer); + + JKRDvdToMainRam(entryNum, buffer, EXPAND_SWITCH_UNKNOWN0, alignedSize, NULL, + JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL, NULL); + DCInvalidateRange(buffer, alignedSize); + + *returnResource = buffer; + return alignedSize; + case COMPRESSION_YAY0: + case COMPRESSION_YAZ0: + // The dst pointer to JKRDvdToMainRam should be aligned to 32 bytes. This will align + // arcHeader to 32 bytes on the stack. + char arcHeaderBuffer[64]; + SArcHeader* arcHeader = (SArcHeader*)ALIGN_NEXT((u32)arcHeaderBuffer, 0x20); + JKRDvdToMainRam(entryNum, (u8*)arcHeader, EXPAND_SWITCH_UNKNOWN2, sizeof(SArcHeader), + NULL, JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL, NULL); + DCInvalidateRange(arcHeader, sizeof(SArcHeader)); + + alignedSize = JKRDecompExpandSize(arcHeader); + buffer = (u8*)JKRAllocFromHeap(heap, alignedSize, sizeof(SArcHeader)); + ASSERT(buffer); + JKRDvdToMainRam(entryNum, buffer, EXPAND_SWITCH_UNKNOWN1, alignedSize, NULL, + JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL, NULL); + DCInvalidateRange(buffer, alignedSize); + + *returnResource = buffer; + return alignedSize; + } + } + + case COMPRESSION_YAZ0: { + buffer = (u8*)JKRAllocFromHeap(heap, alignedSize, sizeof(SArcHeader)); + ASSERT(buffer); + + JKRDvdToMainRam(entryNum, buffer, EXPAND_SWITCH_UNKNOWN1, size, NULL, + JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL, NULL); + DCInvalidateRange(buffer, size); + + *returnResource = buffer; + return alignedSize; + } + + case COMPRESSION_YAY0: { + JUTException::panic_f("JKRDvdArchive.cpp", 0x2f2, "%s", + "Sorry, not applied SZP archive.\n"); + } + + default: { + JUTException::panic_f("JKRDvdArchive.cpp", 0x2f6, "%s", "??? bad sequence\n"); + return 0; + } + } } -#pragma pop /* 802D8698-802D87D4 2D2FD8 013C+00 1/0 0/0 0/0 .text getExpandedResSize__13JKRDvdArchiveCFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdArchive::getExpandedResSize(void const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdArchive/getExpandedResSize__13JKRDvdArchiveCFPCv.s" +u32 JKRDvdArchive::getExpandedResSize(const void* resource) const { + u32 resourceSize; + if (!mExpandedSize) { + return getResSize(resource); + } + + SDIFileEntry* fileEntry = findPtrResource(resource); + if (!fileEntry) { + return -1; + } + + if (!fileEntry->isCompressed()) { + return getResSize(resource); + } + + resourceSize = getExpandSize(fileEntry); + if (resourceSize) { + return resourceSize; + } + + // The dst pointer to JKRDvdToMainRam should be aligned to 32 bytes. This will align arcHeader + // to 32 bytes on the stack. + char buffer[64]; + SArcHeader* arcHeader = (SArcHeader*)ALIGN_NEXT((u32)buffer, 0x20); + JKRDvdToMainRam(mEntryNum, (u8*)arcHeader, EXPAND_SWITCH_UNKNOWN2, sizeof(*arcHeader), NULL, + JKRDvdRipper::ALLOC_DIRECTION_FORWARD, + this->field_0x64 + fileEntry->data_offset, NULL, NULL); + DCInvalidateRange(arcHeader, sizeof(*arcHeader)); + + resourceSize = JKRDecompExpandSize(arcHeader); + // ??? + ((JKRDvdArchive*)this)->setExpandSize(fileEntry, resourceSize); + + return resourceSize; } -#pragma pop /* 8039D1B0-8039D1B0 029810 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRDvdFile.cpp b/libs/JSystem/JKernel/JKRDvdFile.cpp index 71138e6a35..44161d9a4a 100644 --- a/libs/JSystem/JKernel/JKRDvdFile.cpp +++ b/libs/JSystem/JKernel/JKRDvdFile.cpp @@ -4,243 +4,124 @@ // #include "JSystem/JKernel/JKRDvdFile.h" +#include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JUTException { - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); -}; - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template8 { - /* 802D9B44 */ void func_802D9B44(void* _this); -}; - -struct DVDFileInfo {}; - -struct JKRDvdFile { - /* 802D96A0 */ JKRDvdFile(s32); - /* 802D9584 */ JKRDvdFile(); - /* 802D95F8 */ JKRDvdFile(char const*); - /* 802D9748 */ ~JKRDvdFile(); - /* 802D97E4 */ void initiate(); - /* 802D98C4 */ void open(s32); - /* 802D9850 */ void open(char const*); - /* 802D9938 */ void close(); - /* 802D99B4 */ void readData(void*, s32, s32); - /* 802D9A68 */ s32 writeData(void const*, s32, s32); - /* 802D9A70 */ void sync(); - /* 802D9AC4 */ void doneProcess(s32, DVDFileInfo*); - /* 802D9AF8 */ void getFileSize() const; - - static u8 sDvdList[12]; -}; - -struct JKRDisposer { - /* 802D147C */ JKRDisposer(); - /* 802D14E4 */ ~JKRDisposer(); -}; - -// -// Forward References: -// - -extern "C" void __ct__10JKRDvdFileFv(); -extern "C" void __ct__10JKRDvdFileFPCc(); -extern "C" void __ct__10JKRDvdFileFl(); -extern "C" void __dt__10JKRDvdFileFv(); -extern "C" void initiate__10JKRDvdFileFv(); -extern "C" void open__10JKRDvdFileFPCc(); -extern "C" void open__10JKRDvdFileFl(); -extern "C" void close__10JKRDvdFileFv(); -extern "C" void readData__10JKRDvdFileFPvll(); -extern "C" s32 writeData__10JKRDvdFileFPCvll(); -extern "C" void sync__10JKRDvdFileFv(); -extern "C" void doneProcess__10JKRDvdFileFlP11DVDFileInfo(); -extern "C" void getFileSize__10JKRDvdFileCFv(); -extern "C" void __sinit_JKRDvdFile_cpp(); -extern "C" void func_802D9B44(void* _this); -extern "C" extern char const* const JKRDvdFile__stringBase0; -extern "C" u8 sDvdList__10JKRDvdFile[12]; - -// -// External References: -// - -extern "C" void __dl__FPv(); -extern "C" void __ct__11JKRDisposerFv(); -extern "C" void __dt__11JKRDisposerFv(); -extern "C" void __ct__10JSUPtrLinkFPv(); -extern "C" void __dt__10JSUPtrLinkFv(); -extern "C" void __dt__10JSUPtrListFv(); -extern "C" void initiate__10JSUPtrListFv(); -extern "C" void append__10JSUPtrListFP10JSUPtrLink(); -extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); -extern "C" void panic_f__12JUTExceptionFPCciPCce(); -extern "C" void OSInitMessageQueue(); -extern "C" void OSSendMessage(); -extern "C" void OSReceiveMessage(); -extern "C" void OSInitMutex(); -extern "C" void OSLockMutex(); -extern "C" void OSUnlockMutex(); -extern "C" void OSGetCurrentThread(); -extern "C" void DVDFastOpen(); -extern "C" void DVDOpen(); -extern "C" void DVDClose(); -extern "C" void DVDReadAsyncPrio(); -extern "C" void DVDGetCommandBlockStatus(); -extern "C" void __register_global_object(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__7JKRFile[8]; +#include "global.h" // // Declarations: // -/* ############################################################################################## */ -/* 803CC438-803CC460 029558 0024+04 4/4 0/0 0/0 .data __vt__10JKRDvdFile */ -SECTION_DATA extern void* __vt__10JKRDvdFile[9 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10JKRDvdFileFv, - (void*)open__10JKRDvdFileFPCc, - (void*)close__10JKRDvdFileFv, - (void*)readData__10JKRDvdFileFPvll, - (void*)writeData__10JKRDvdFileFPCvll, - (void*)getFileSize__10JKRDvdFileCFv, - (void*)open__10JKRDvdFileFl, - /* padding */ - NULL, -}; +/* 8043436C-80434378 06108C 000C+00 4/4 0/0 0/0 .bss sDvdList__10JKRDvdFile */ +JSUList JKRDvdFile::sDvdList; /* 802D9584-802D95F8 2D3EC4 0074+00 0/0 3/3 0/0 .text __ct__10JKRDvdFileFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDvdFile::JKRDvdFile() { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFv.s" +JKRDvdFile::JKRDvdFile() : JKRFile(), mDvdLink(this) { + initiate(); } -#pragma pop /* 802D95F8-802D96A0 2D3F38 00A8+00 0/0 2/2 0/0 .text __ct__10JKRDvdFileFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDvdFile::JKRDvdFile(char const* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFPCc.s" +JKRDvdFile::JKRDvdFile(const char* name) : JKRFile(), mDvdLink(this) { + initiate(); + bool result = open(name); + mIsAvailable = result; + // weird code. doesn't match without this, maybe remains from assert or something? + if (mIsAvailable) + return; + else + return; } -#pragma pop /* 802D96A0-802D9748 2D3FE0 00A8+00 0/0 3/3 0/0 .text __ct__10JKRDvdFileFl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDvdFile::JKRDvdFile(s32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFl.s" +JKRDvdFile::JKRDvdFile(long entryNum) : JKRFile(), mDvdLink(this) { + initiate(); + bool result = open(entryNum); + mIsAvailable = result; + // weird code. doesn't match without this, maybe remains from assert or something? + if (mIsAvailable) + return; + else + return; } -#pragma pop /* 802D9748-802D97E4 2D4088 009C+00 1/0 5/5 0/0 .text __dt__10JKRDvdFileFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDvdFile::~JKRDvdFile() { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/__dt__10JKRDvdFileFv.s" +JKRDvdFile::~JKRDvdFile() { + close(); } -#pragma pop /* 802D97E4-802D9850 2D4124 006C+00 3/3 0/0 0/0 .text initiate__10JKRDvdFileFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdFile::initiate() { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/initiate__10JKRDvdFileFv.s" +void JKRDvdFile::initiate(void) { + mDvdFile = this; + OSInitMutex(&mMutex1); + OSInitMutex(&mMutex2); + OSInitMessageQueue(&mMessageQueue2, &mMessage2, 1); + OSInitMessageQueue(&mMessageQueue1, &mMessage1, 1); + mOSThread = NULL; + field_0x50 = 0; + field_0x58 = 0; } -#pragma pop - -/* ############################################################################################## */ -/* 80434360-8043436C 061080 000C+00 1/1 0/0 0/0 .bss @657 */ -static u8 lit_657[12]; - -/* 8043436C-80434378 06108C 000C+00 4/4 0/0 0/0 .bss sDvdList__10JKRDvdFile */ -u8 JKRDvdFile::sDvdList[12]; /* 802D9850-802D98C4 2D4190 0074+00 1/0 1/1 0/0 .text open__10JKRDvdFileFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdFile::open(char const* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFPCc.s" +bool JKRDvdFile::open(const char* param_1) { + if (!mIsAvailable) { + mIsAvailable = DVDOpen(param_1, &mFileInfo); + if (mIsAvailable) { + getDvdList().append(&mDvdLink); + getStatus(); + } + } + return mIsAvailable; } -#pragma pop /* 802D98C4-802D9938 2D4204 0074+00 1/0 2/2 0/0 .text open__10JKRDvdFileFl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdFile::open(s32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFl.s" +bool JKRDvdFile::open(long entryNum) { + if (!mIsAvailable) { + mIsAvailable = DVDFastOpen(entryNum, &mFileInfo); + if (mIsAvailable) { + getDvdList().append(&mDvdLink); + getStatus(); + } + } + return mIsAvailable; } -#pragma pop - -/* ############################################################################################## */ -/* 8039D260-8039D260 0298C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D260 = "JKRDvdFile.cpp"; -SECTION_DEAD static char const* const stringBase_8039D26F = "%s"; -SECTION_DEAD static char const* const stringBase_8039D272 = "cannot close DVD file\n"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039D289 = "\0\0\0\0\0\0"; -#pragma pop /* 802D9938-802D99B4 2D4278 007C+00 1/0 0/0 0/0 .text close__10JKRDvdFileFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdFile::close() { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/close__10JKRDvdFileFv.s" +void JKRDvdFile::close() { + if (mIsAvailable) { + s32 result = DVDClose(&mFileInfo); + if (result != 0) { + mIsAvailable = false; + getDvdList().remove(&mDvdLink); + } else { + JUTException::panic_f("JKRDvdFile.cpp", 0xd5, "%s", "cannot close DVD file\n"); + } + } } -#pragma pop /* 802D99B4-802D9A68 2D42F4 00B4+00 1/0 0/0 0/0 .text readData__10JKRDvdFileFPvll */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdFile::readData(void* param_0, s32 param_1, s32 param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/readData__10JKRDvdFileFPvll.s" +s32 JKRDvdFile::readData(void* param_1, long length, long param_3) { + JUT_ASSERT((length & 0x1f) == 0); + + OSLockMutex(&mMutex1); + if (mOSThread) { + OSUnlockMutex(&mMutex1); + return -1; + } + + mOSThread = OSGetCurrentThread(); + + s32 result = -1; + s32 readAsyncResult = + DVDReadAsyncPrio(&mFileInfo, param_1, length, param_3, JKRDvdFile::doneProcess, 2); + if (readAsyncResult) { + result = sync(); + } + + mOSThread = NULL; + OSUnlockMutex(&mMutex1); + + return result; } -#pragma pop /* 802D9A68-802D9A70 2D43A8 0008+00 1/0 0/0 0/0 .text writeData__10JKRDvdFileFPCvll */ s32 JKRDvdFile::writeData(void const* param_0, s32 param_1, s32 param_2) { @@ -248,58 +129,25 @@ s32 JKRDvdFile::writeData(void const* param_0, s32 param_1, s32 param_2) { } /* 802D9A70-802D9AC4 2D43B0 0054+00 1/1 0/0 0/0 .text sync__10JKRDvdFileFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdFile::sync() { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/sync__10JKRDvdFileFv.s" +s32 JKRDvdFile::sync(void) { + OSMessage message; + OSLockMutex(&mMutex1); + OSReceiveMessage(&mMessageQueue2, &message, 1); + mOSThread = NULL; + OSUnlockMutex(&mMutex1); + return (int)message; } -#pragma pop /* 802D9AC4-802D9AF8 2D4404 0034+00 1/1 0/0 0/0 .text doneProcess__10JKRDvdFileFlP11DVDFileInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdFile::doneProcess(s32 param_0, DVDFileInfo* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/doneProcess__10JKRDvdFileFlP11DVDFileInfo.s" +void JKRDvdFile::doneProcess(long id, DVDFileInfo* fileInfo) { + // fileInfo->field_0x3c looks like some kind of user pointer? + JKRDvdFile* dvdFile = *(JKRDvdFile**)((u8*)fileInfo + 0x3c); + OSSendMessage(&dvdFile->mMessageQueue2, (OSMessage)id, OS_MESSAGE_NON_BLOCKING); } -#pragma pop /* 802D9AF8-802D9B00 2D4438 0008+00 1/0 0/0 0/0 .text getFileSize__10JKRDvdFileCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdFile::getFileSize() const { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/getFileSize__10JKRDvdFileCFv.s" +s32 JKRDvdFile::getFileSize(void) const { + return mFileInfo.length; } -#pragma pop - -/* 802D9B00-802D9B44 2D4440 0044+00 0/0 1/0 0/0 .text __sinit_JKRDvdFile_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_JKRDvdFile_cpp() { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/__sinit_JKRDvdFile_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802D9B00, __sinit_JKRDvdFile_cpp); -#pragma pop - -/* 802D9B44-802D9B98 2D4484 0054+00 1/1 0/0 0/0 .text __dt__21JSUList<10JKRDvdFile>Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_802D9B44(void* _this) { - nofralloc -#include "asm/JSystem/JKernel/JKRDvdFile/func_802D9B44.s" -} -#pragma pop /* 8039D260-8039D260 0298C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRDvdRipper.cpp b/libs/JSystem/JKernel/JKRDvdRipper.cpp index 74ba55add5..4edf25e4fe 100644 --- a/libs/JSystem/JKernel/JKRDvdRipper.cpp +++ b/libs/JSystem/JKernel/JKRDvdRipper.cpp @@ -7,63 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JUTException { - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); -}; - -struct JSUPtrList { - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template9 { - /* 802DA820 */ void func_802DA820(void* _this); -}; - -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE500 */ void free(void*, JKRHeap*); - - static u8 sSystemHeap[4]; -}; - -struct JKRExpandSwitch {}; - -struct JKRDvdFile { - /* 802D9584 */ JKRDvdFile(); - /* 802D9748 */ ~JKRDvdFile(); - /* 802D9850 */ void open(char const*); - /* 802D98C4 */ void open(s32); -}; - -struct JKRDvdRipper { - struct EAllocDirection {}; - - /* 802D9D10 */ void loadToMainRAM(JKRDvdFile*, u8*, JKRExpandSwitch, u32, JKRHeap*, - JKRDvdRipper::EAllocDirection, u32, int*, u32*); - /* 802D9C54 */ void loadToMainRAM(s32, u8*, JKRExpandSwitch, u32, JKRHeap*, - JKRDvdRipper::EAllocDirection, u32, int*, u32*); - /* 802D9B98 */ void loadToMainRAM(char const*, u8*, JKRExpandSwitch, u32, JKRHeap*, - JKRDvdRipper::EAllocDirection, u32, int*, u32*); - /* 802DA7D4 */ u8 isErrorRetry(); - - static u8 sDvdAsyncList[12]; - static u32 sSZSBufferSize; -}; - -struct JKRDecomp { - /* 802DB988 */ void orderSync(u8*, u8*, u32, u32); - /* 802DBCF8 */ void checkCompressed(u8*); -}; - // // Forward References: // @@ -105,12 +48,6 @@ extern "C" void initiate__10JSUPtrListFv(); extern "C" void panic_f__12JUTExceptionFPCciPCce(); extern "C" void DCInvalidateRange(); extern "C" void DCStoreRangeNoSync(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSInitMutex(); -extern "C" void OSLockMutex(); -extern "C" void OSUnlockMutex(); -extern "C" void DVDReadPrio(); extern "C" void VIWaitForRetrace(); extern "C" void __register_global_object(); extern "C" void _savegpr_18(); @@ -135,10 +72,10 @@ extern "C" u8 sSystemHeap__7JKRHeap[4]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRDvdRipper::loadToMainRAM(char const* param_0, u8* param_1, JKRExpandSwitch param_2, - u32 param_3, JKRHeap* param_4, - JKRDvdRipper::EAllocDirection param_5, u32 param_6, - int* param_7, u32* param_8) { +asm void* JKRDvdRipper::loadToMainRAM(char const* param_0, u8* param_1, JKRExpandSwitch param_2, + u32 param_3, JKRHeap* param_4, + JKRDvdRipper::EAllocDirection param_5, u32 param_6, + int* param_7, u32* param_8) { nofralloc #include "asm/JSystem/JKernel/JKRDvdRipper/func_802D9B98.s" } @@ -150,9 +87,10 @@ asm void JKRDvdRipper::loadToMainRAM(char const* param_0, u8* param_1, JKRExpand #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRDvdRipper::loadToMainRAM(s32 param_0, u8* param_1, JKRExpandSwitch param_2, u32 param_3, - JKRHeap* param_4, JKRDvdRipper::EAllocDirection param_5, - u32 param_6, int* param_7, u32* param_8) { +asm void* JKRDvdRipper::loadToMainRAM(s32 param_0, u8* param_1, JKRExpandSwitch param_2, + u32 param_3, JKRHeap* param_4, + JKRDvdRipper::EAllocDirection param_5, u32 param_6, + int* param_7, u32* param_8) { nofralloc #include "asm/JSystem/JKernel/JKRDvdRipper/func_802D9C54.s" } @@ -179,10 +117,10 @@ SECTION_SDATA static u32 data_804508C8 = 0x01000000; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRDvdRipper::loadToMainRAM(JKRDvdFile* param_0, u8* param_1, JKRExpandSwitch param_2, - u32 param_3, JKRHeap* param_4, - JKRDvdRipper::EAllocDirection param_5, u32 param_6, - int* param_7, u32* param_8) { +asm void* JKRDvdRipper::loadToMainRAM(JKRDvdFile* param_0, u8* param_1, JKRExpandSwitch param_2, + u32 param_3, JKRHeap* param_4, + JKRDvdRipper::EAllocDirection param_5, u32 param_6, + int* param_7, u32* param_8) { nofralloc #include "asm/JSystem/JKernel/JKRDvdRipper/func_802D9D10.s" } @@ -272,7 +210,7 @@ static asm void decompSZS_subroutine(u8* param_0, u8* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void firstSrcData() { +static asm u8* firstSrcData() { nofralloc #include "asm/JSystem/JKernel/JKRDvdRipper/firstSrcData__Fv.s" } diff --git a/libs/JSystem/JKernel/JKRExpHeap.cpp b/libs/JSystem/JKernel/JKRExpHeap.cpp index a6a1fdfc9e..cdbb8c6960 100644 --- a/libs/JSystem/JKernel/JKRExpHeap.cpp +++ b/libs/JSystem/JKernel/JKRExpHeap.cpp @@ -4,86 +4,10 @@ // #include "JSystem/JKernel/JKRExpHeap.h" +#include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JUTException { - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); -}; - -struct JKRHeap { - struct TState {}; - - /* 802CE138 */ JKRHeap(void*, u32, JKRHeap*, bool); - /* 802CE264 */ ~JKRHeap(); - /* 802CE378 */ void initArena(char**, u32*, int); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE500 */ void free(void*, JKRHeap*); - /* 802CE574 */ void callAllDisposer(); - /* 802CE784 */ void getTotalFreeSize(); - /* 802CE7DC */ void getMaxAllocatableSize(int); - /* 802CE894 */ void find(void*) const; - /* 802CEAC0 */ void dispose(); - /* 802CEA78 */ void dispose(void*, u32); - /* 802CEDA0 */ void state_dump(JKRHeap::TState const&) const; - - static u8 sCurrentHeap[4]; - static u8 sRootHeap[4]; - static u8 mErrorHandler[4]; -}; - -struct JKRExpHeap { - struct CMemBlock { - /* 802D0810 */ void initiate(JKRExpHeap::CMemBlock*, JKRExpHeap::CMemBlock*, u32, u8, u8); - /* 802D0830 */ void allocFore(u32, u8, u8, u8, u8); - /* 802D0874 */ void allocBack(u32, u8, u8, u8, u8); - /* 802D08CC */ void free(JKRExpHeap*); - /* 802D091C */ void getHeapBlock(void*); - }; - - /* 802CEDB4 */ void createRoot(int, bool); - /* 802CEF00 */ void create(void*, u32, JKRHeap*, bool); - /* 802CEE2C */ void create(u32, JKRHeap*, bool); - /* 802CEFAC */ void do_destroy(); - /* 802CF030 */ JKRExpHeap(void*, u32, JKRHeap*, bool); - /* 802CF0C0 */ ~JKRExpHeap(); - /* 802CF128 */ void do_alloc(u32, int); - /* 802CF490 */ void allocFromHead(u32); - /* 802CF234 */ void allocFromHead(u32, int); - /* 802CF6D4 */ void allocFromTail(u32); - /* 802CF574 */ void allocFromTail(u32, int); - /* 802CF7AC */ void do_free(void*); - /* 802CF820 */ void do_freeAll(); - /* 802CF89C */ void do_freeTail(); - /* 802CF924 */ void do_fillFreeArea(); - /* 802CF928 */ void do_changeGroupID(u8); - /* 802CF978 */ void do_resize(void*, u32); - /* 802CFB24 */ void do_getSize(void*); - /* 802CFBA4 */ void do_getFreeSize(); - /* 802CFC10 */ void do_getMaxFreeBlock(); - /* 802CFC84 */ void do_getTotalFreeSize(); - /* 802CFCE8 */ void getUsedSize(u8) const; - /* 802CFD64 */ void getTotalUsedSize() const; - /* 802CFDCC */ void appendUsedList(JKRExpHeap::CMemBlock*); - /* 802CFE68 */ void setFreeBlock(JKRExpHeap::CMemBlock*, JKRExpHeap::CMemBlock*, - JKRExpHeap::CMemBlock*); - /* 802CFEB4 */ void removeFreeBlock(JKRExpHeap::CMemBlock*); - /* 802CFEE8 */ void removeUsedBlock(JKRExpHeap::CMemBlock*); - /* 802CFF1C */ void recycleFreeBlock(JKRExpHeap::CMemBlock*); - /* 802D00B4 */ void joinTwoBlocks(JKRExpHeap::CMemBlock*); - /* 802D0190 */ void check(); - /* 802D03B8 */ void dump(); - /* 802D05CC */ void dump_sort(); - /* 802D0938 */ void state_register(JKRHeap::TState*, u32) const; - /* 802D09E0 */ void state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; - /* 802D0A10 */ void getHeapType(); - /* 802D0A1C */ void do_getCurrentGroupId(); -}; - // // Forward References: // @@ -155,8 +79,6 @@ extern "C" void JUTReportConsole_f(); extern "C" void JUTReportConsole(); extern "C" void JUTWarningConsole_f(); extern "C" void JUTWarningConsole(); -extern "C" void OSLockMutex(); -extern "C" void OSUnlockMutex(); extern "C" void _savegpr_25(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); @@ -276,7 +198,7 @@ SECTION_DEAD static char const* const stringBase_8039CAF0 = ":::cannot alloc mem #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::do_alloc(u32 param_0, int param_1) { +asm void* JKRExpHeap::do_alloc(u32 param_0, int param_1) { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/do_alloc__10JKRExpHeapFUli.s" } @@ -378,7 +300,7 @@ void JKRExpHeap::do_fillFreeArea() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::do_changeGroupID(u8 param_0) { +asm u8 JKRExpHeap::do_changeGroupID(u8 param_0) { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/do_changeGroupID__10JKRExpHeapFUc.s" } @@ -388,7 +310,7 @@ asm void JKRExpHeap::do_changeGroupID(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::do_resize(void* param_0, u32 param_1) { +asm s32 JKRExpHeap::do_resize(void* param_0, u32 param_1) { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/do_resize__10JKRExpHeapFPvUl.s" } @@ -398,7 +320,7 @@ asm void JKRExpHeap::do_resize(void* param_0, u32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::do_getSize(void* param_0) { +asm s32 JKRExpHeap::do_getSize(void* param_0) { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/do_getSize__10JKRExpHeapFPv.s" } @@ -408,7 +330,7 @@ asm void JKRExpHeap::do_getSize(void* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::do_getFreeSize() { +asm s32 JKRExpHeap::do_getFreeSize() { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/do_getFreeSize__10JKRExpHeapFv.s" } @@ -419,7 +341,7 @@ asm void JKRExpHeap::do_getFreeSize() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::do_getMaxFreeBlock() { +asm void* JKRExpHeap::do_getMaxFreeBlock() { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/do_getMaxFreeBlock__10JKRExpHeapFv.s" } @@ -430,7 +352,7 @@ asm void JKRExpHeap::do_getMaxFreeBlock() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::do_getTotalFreeSize() { +asm s32 JKRExpHeap::do_getTotalFreeSize() { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/do_getTotalFreeSize__10JKRExpHeapFv.s" } @@ -440,7 +362,7 @@ asm void JKRExpHeap::do_getTotalFreeSize() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::getUsedSize(u8 param_0) const { +asm s32 JKRExpHeap::getUsedSize(u8 param_0) const { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/getUsedSize__10JKRExpHeapCFUc.s" } @@ -451,7 +373,7 @@ asm void JKRExpHeap::getUsedSize(u8 param_0) const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::getTotalUsedSize() const { +asm s32 JKRExpHeap::getTotalUsedSize() const { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/getTotalUsedSize__10JKRExpHeapCFv.s" } @@ -565,7 +487,7 @@ SECTION_DEAD static char const* const stringBase_8039CC67 = #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::check() { +asm bool JKRExpHeap::check() { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/check__10JKRExpHeapFv.s" } @@ -606,7 +528,7 @@ SECTION_SDATA2 static f64 lit_1123 = 4503599627370496.0 /* cast u32 to float */; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::dump() { +asm bool JKRExpHeap::dump() { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/dump__10JKRExpHeapFv.s" } @@ -616,7 +538,7 @@ asm void JKRExpHeap::dump() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::dump_sort() { +asm bool JKRExpHeap::dump_sort() { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/dump_sort__10JKRExpHeapFv.s" } @@ -696,7 +618,7 @@ asm void JKRExpHeap::state_register(JKRHeap::TState* param_0, u32 param_1) const #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::state_compare(JKRHeap::TState const& param_0, +asm bool JKRExpHeap::state_compare(JKRHeap::TState const& param_0, JKRHeap::TState const& param_1) const { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/state_compare__10JKRExpHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState.s" @@ -707,7 +629,7 @@ asm void JKRExpHeap::state_compare(JKRHeap::TState const& param_0, #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::getHeapType() { +asm u32 JKRExpHeap::getHeapType() { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/getHeapType__10JKRExpHeapFv.s" } @@ -717,7 +639,7 @@ asm void JKRExpHeap::getHeapType() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRExpHeap::do_getCurrentGroupId() { +asm u8 JKRExpHeap::do_getCurrentGroupId() { nofralloc #include "asm/JSystem/JKernel/JKRExpHeap/do_getCurrentGroupId__10JKRExpHeapFv.s" } diff --git a/libs/JSystem/JKernel/JKRFile.cpp b/libs/JSystem/JKernel/JKRFile.cpp index 9b7dfec632..5b492c7fef 100644 --- a/libs/JSystem/JKernel/JKRFile.cpp +++ b/libs/JSystem/JKernel/JKRFile.cpp @@ -6,39 +6,19 @@ #include "JSystem/JKernel/JKRFile.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct JKRFile { - /* 802D9518 */ void read(void*, s32, s32); -}; - -// -// Forward References: -// - -extern "C" void read__7JKRFileFPvll(); - -// -// External References: -// - -extern "C" void VIWaitForRetrace(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); +#include "dolphin/vi/vi.h" // // Declarations: // /* 802D9518-802D9584 2D3E58 006C+00 0/0 2/2 0/0 .text read__7JKRFileFPvll */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFile::read(void* param_0, s32 param_1, s32 param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRFile/read__7JKRFileFPvll.s" +s32 JKRFile::read(void* data, s32 size, long offset) { + while (true) { + s32 result = readData(data, size, offset); + if (size != result) + VIWaitForRetrace(); + else + return result; + } } -#pragma pop diff --git a/libs/JSystem/JKernel/JKRFileCache.cpp b/libs/JSystem/JKernel/JKRFileCache.cpp index c0886b9936..fcb49138f4 100644 --- a/libs/JSystem/JKernel/JKRFileCache.cpp +++ b/libs/JSystem/JKernel/JKRFileCache.cpp @@ -4,87 +4,12 @@ // #include "JSystem/JKernel/JKRFileCache.h" +#include "JSystem/JKernel/JKRDvdFile.h" +#include "JSystem/JKernel/JKRFileFinder.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DBFF0 */ void prepend(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE500 */ void free(void*, JKRHeap*); - /* 802CE548 */ void free(void*); - /* 802CE83C */ void findFromRoot(void*); - - static u8 sSystemHeap[4]; -}; - -struct JKRFileLoader { - /* 802D40F0 */ JKRFileLoader(); - /* 802D4148 */ ~JKRFileLoader(); - /* 802D41D4 */ void unmount(); - - static u8 sVolumeList[12]; - static u8 sCurrentVolume[4 + 4 /* padding */]; -}; - -struct JKRFileCache { - struct CCacheBlock { - /* 802D566C */ CCacheBlock(u32, u32, void const*); - }; - - /* 802D49B4 */ void mount(char const*, JKRHeap*, char const*); - /* 802D4AB4 */ JKRFileCache(char const*, char const*); - /* 802D4C70 */ ~JKRFileCache(); - /* 802D4D44 */ void becomeCurrent(char const*); - /* 802D4DD8 */ void getResource(char const*); - /* 802D4EDC */ void getResource(u32, char const*); - /* 802D503C */ void readResource(void*, u32, u32, char const*); - /* 802D4F64 */ void readResource(void*, u32, char const*); - /* 802D50D4 */ void removeResourceAll(); - /* 802D5164 */ void removeResource(void*); - /* 802D51F8 */ void detachResource(void*); - /* 802D526C */ void getResSize(void const*) const; - /* 802D52A0 */ void countFile(char const*) const; - /* 802D531C */ void getFirstFile(char const*) const; - /* 802D53B8 */ void findCacheBlock(void const*) const; - /* 802D53E4 */ void findCacheBlock(u32) const; - /* 802D5410 */ void findFile(char*, char const*) const; - /* 802D551C */ void getDvdPathName(char const*) const; - /* 802D5624 */ void convStrLower(char*) const; - /* 802D56C8 */ void getFsResource(char const*); - /* 802D56F4 */ void getNameResource(u32, char const*); - /* 802D5720 */ void readFsResource(void*, u32, char const*); - /* 802D574C */ void readNameResource(void*, u32, u32, char const*); -}; - -struct JKRFile { - /* 802D9518 */ void read(void*, s32, s32); -}; - -struct JKRDvdFinder { - /* 802D4770 */ JKRDvdFinder(char const*); -}; - -struct JKRDvdFile { - /* 802D95F8 */ JKRDvdFile(char const*); - /* 802D9748 */ ~JKRDvdFile(); -}; +#include "global.h" +#include "msl_c/string.h" // // Forward References: @@ -120,7 +45,6 @@ extern "C" extern char const* const JKRFileCache__stringBase0; // External References: // -SECTION_INIT void memcpy(); extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); extern "C" void alloc__7JKRHeapFUli(); extern "C" void free__7JKRHeapFPvP7JKRHeap(); @@ -142,10 +66,6 @@ extern "C" void initiate__10JSUPtrListFv(); extern "C" void append__10JSUPtrListFP10JSUPtrLink(); extern "C" void prepend__10JSUPtrListFP10JSUPtrLink(); extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); -extern "C" void DVDChangeDir(); -extern "C" void DVDOpenDir(); -extern "C" void DVDReadDir(); -extern "C" bool DVDCloseDir(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); @@ -154,12 +74,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void tolower(); -extern "C" void strrchr(); -extern "C" void strcmp(); -extern "C" void strcat(); -extern "C" void strcpy(); -extern "C" void strlen(); extern "C" u8 sVolumeList__13JKRFileLoader[12]; extern "C" u8 sSystemHeap__7JKRHeap[4]; extern "C" u8 sCurrentVolume__13JKRFileLoader[4 + 4 /* padding */]; @@ -169,124 +83,248 @@ extern "C" u8 sCurrentVolume__13JKRFileLoader[4 + 4 /* padding */]; // /* 802D49B4-802D4AB4 2CF2F4 0100+00 0/0 2/2 0/0 .text mount__12JKRFileCacheFPCcP7JKRHeapPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::mount(char const* param_0, JKRHeap* param_1, char const* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/mount__12JKRFileCacheFPCcP7JKRHeapPCc.s" +JKRFileCache* JKRFileCache::mount(const char* path, JKRHeap* heap, const char* param_3) { + if (!path || *path != '/') { + return NULL; + } + + u32 pathLength = strlen(path); + if (pathLength != 1 && path[pathLength - 1] == '/') { + return NULL; + } + + JSUList& volumeList = getVolumeList(); + JSUListIterator iterator; + for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) { + if (iterator->getVolumeType() == 'CASH') { + JKRFileCache* fileCache = (JKRFileCache*)iterator.getObject(); + if (fileCache->mRootPath) { + if (strcmp(fileCache->mRootPath, path) == 0) { + fileCache->mMountCount++; + return fileCache; + } + } + } + } + + return new (heap, 0) JKRFileCache(path, param_3); } -#pragma pop /* ############################################################################################## */ /* 8039D158-8039D158 0297B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D158 = "/"; -SECTION_DEAD static char const* const stringBase_8039D15A = "dvd"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039D15E = "\0"; -#pragma pop - -/* 803CC238-803CC288 029358 004C+04 2/2 0/0 0/0 .data __vt__12JKRFileCache */ -SECTION_DATA extern void* __vt__12JKRFileCache[19 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12JKRFileCacheFv, - (void*)unmount__13JKRFileLoaderFv, - (void*)becomeCurrent__12JKRFileCacheFPCc, - (void*)getResource__12JKRFileCacheFPCc, - (void*)getResource__12JKRFileCacheFUlPCc, - (void*)readResource__12JKRFileCacheFPvUlPCc, - (void*)readResource__12JKRFileCacheFPvUlUlPCc, - (void*)removeResourceAll__12JKRFileCacheFv, - (void*)removeResource__12JKRFileCacheFPv, - (void*)detachResource__12JKRFileCacheFPv, - (void*)getResSize__12JKRFileCacheCFPCv, - (void*)countFile__12JKRFileCacheCFPCc, - (void*)getFirstFile__12JKRFileCacheCFPCc, - (void*)getFsResource__12JKRFileCacheFPCc, - (void*)getNameResource__12JKRFileCacheFUlPCc, - (void*)readFsResource__12JKRFileCacheFPvUlPCc, - (void*)readNameResource__12JKRFileCacheFPvUlUlPCc, - /* padding */ - NULL, -}; +// #pragma push +// #pragma force_active on +// SECTION_DEAD static char const* const stringBase_8039D158 = "/"; +// SECTION_DEAD static char const* const stringBase_8039D15A = "dvd"; +// /* @stringBase0 padding */ +// SECTION_DEAD static char const* const pad_8039D15E = "\0"; +// #pragma pop /* 802D4AB4-802D4C70 2CF3F4 01BC+00 1/1 0/0 0/0 .text __ct__12JKRFileCacheFPCcPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRFileCache::JKRFileCache(char const* param_0, char const* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/__ct__12JKRFileCacheFPCcPCc.s" +JKRFileCache::JKRFileCache(const char* path, const char* volume) : mCacheBlockList() { + mParentHeap = JKRHeap::findFromRoot(this); + mMountCount = 1; + mVolumeType = 'CASH'; + + u32 pathLength = strlen(path); + mRootPath = (char*)JKRAllocFromHeap(mParentHeap, pathLength + 1, 1); + mCurrentPath = (char*)JKRAllocFromSysHeap(pathLength + 2, 1); + strcpy(mRootPath, path); + strcpy(mCurrentPath, path); + + if (path[1] != '\0') { + convStrLower(mRootPath); + convStrLower(mCurrentPath); + strcat(mCurrentPath, "/"); + + const char* volumePath = volume; + if (!volume) { + volumePath = strrchr(mRootPath, '/'); + volumePath++; + } + + u32 volumeLength = strlen(volumePath) + 1; + mVolumePath = (char*)JKRAllocFromSysHeap(volumeLength, 0); + strcpy(mVolumePath, volumePath); + convStrLower(mVolumePath); + mVolumeName = mVolumePath; + } else { + const char* volumePath = volume; + if (!volume) { + volumePath = "dvd"; + } + + u32 volumeLength = strlen(volumePath) + 1; + mVolumePath = (char*)JKRAllocFromSysHeap(volumeLength, 0); + strcpy(mVolumePath, volumePath); + convStrLower(mVolumePath); + mVolumeName = mVolumePath; + } + + getVolumeList().prepend(&mFileLoaderLink); + mIsMounted = true; } -#pragma pop /* 802D4C70-802D4D44 2CF5B0 00D4+00 1/0 0/0 0/0 .text __dt__12JKRFileCacheFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRFileCache::~JKRFileCache() { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/__dt__12JKRFileCacheFv.s" +JKRFileCache::~JKRFileCache() { + removeResourceAll(); + if (mRootPath) + JKRFreeToHeap(mParentHeap, mRootPath); + if (mCurrentPath) + JKRFreeToSysHeap(mCurrentPath); + if (mVolumePath) + JKRFreeToSysHeap(mVolumePath); + + getVolumeList().remove(&mFileLoaderLink); } -#pragma pop /* 802D4D44-802D4DD8 2CF684 0094+00 1/0 0/0 0/0 .text becomeCurrent__12JKRFileCacheFPCc */ +#ifdef NONMATCHING +bool JKRFileCache::becomeCurrent(const char* path) { + char* name = getDvdPathName(path); + BOOL result = DVDChangeDir(name); + bool didChangeDir = (result != 0); + if (didChangeDir) { + setCurrentVolume(this); + JKRFreeToSysHeap(mCurrentPath); + + mCurrentPath = name; + if (mCurrentPath[1]) { + strcat(mCurrentPath, "/"); + } + } else { + JKRFreeToSysHeap(name); + } + + return didChangeDir; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRFileCache::becomeCurrent(char const* param_0) { +asm bool JKRFileCache::becomeCurrent(char const* param_0) { nofralloc #include "asm/JSystem/JKernel/JKRFileCache/becomeCurrent__12JKRFileCacheFPCc.s" } #pragma pop +#endif /* 802D4DD8-802D4EDC 2CF718 0104+00 1/0 0/0 0/0 .text getResource__12JKRFileCacheFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::getResource(char const* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/getResource__12JKRFileCacheFPCc.s" +void* JKRFileCache::getResource(const char* path) { + ASSERT(isMounted()); + + void* buffer = NULL; + char* name = getDvdPathName(path); + JKRDvdFile dvdFile(name); + if (dvdFile.isAvailable()) { + CCacheBlock* cacheBlock = findCacheBlock(dvdFile.getFileID()); + if (!cacheBlock) { + // dvdFile.getFileSize() not inlined + u32 fileSize = dvdFile.getFileInfo().length; + u32 alignedSize = ALIGN_NEXT(fileSize, 0x20); + buffer = JKRAllocFromHeap(mParentHeap, alignedSize, 0x20); + if (buffer) { + dvdFile.read(buffer, alignedSize, 0); + + cacheBlock = new (JKRHeap::getSystemHeap(), 0) + CCacheBlock(dvdFile.getFileID(), dvdFile.getFileInfo().length, buffer); + mCacheBlockList.append(&cacheBlock->mCacheBlockLink); + } + } else { + cacheBlock->mReferenceCount++; + buffer = cacheBlock->mMemoryPtr; + } + } + + JKRFreeToSysHeap(name); + return buffer; } -#pragma pop /* 802D4EDC-802D4F64 2CF81C 0088+00 1/0 0/0 0/0 .text getResource__12JKRFileCacheFUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::getResource(u32 param_0, char const* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/getResource__12JKRFileCacheFUlPCc.s" +void* JKRFileCache::getResource(u32, const char* path) { + ASSERT(isMounted()); + + char finalPath[256]; + u32 rootLength = strlen(mRootPath); + char* filePath = finalPath + rootLength; + strcpy(finalPath, mRootPath); + + bool found = findFile(finalPath, path); + if (!found) + return NULL; + + return getResource(filePath); } -#pragma pop /* 802D4F64-802D503C 2CF8A4 00D8+00 1/0 0/0 0/0 .text readResource__12JKRFileCacheFPvUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::readResource(void* param_0, u32 param_1, char const* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/readResource__12JKRFileCacheFPvUlPCc.s" +u32 JKRFileCache::readResource(void* dst, u32 dstLength, const char* path) { + ASSERT(isMounted()); + + char* name = getDvdPathName(path); + JKRDvdFile dvdFile(name); + + u32 resourceSize = 0; + +// !@bug: (maybe?) Infinite Loop: Because dvdFile.isAvailable() is never updated in the loop-body +// will would never exit the loop. +loop: + if (dvdFile.isAvailable()) { + // dvdFile.getFileSize() not inlined + u32 fileSize = dvdFile.getFileInfo().length; + resourceSize = ALIGN_NEXT(fileSize, 0x20); + dstLength = ALIGN_PREV(dstLength, 0x20); + if (resourceSize > dstLength) { + resourceSize = dstLength; + } + + CCacheBlock* cacheBlock = findCacheBlock(dvdFile.getFileID()); + if (!cacheBlock) { + dvdFile.read(dst, resourceSize, 0); + } else { + memcpy(dst, cacheBlock->mMemoryPtr, resourceSize); + } + goto loop; + } + + JKRFreeToSysHeap(name); + return resourceSize; } -#pragma pop /* 802D503C-802D50D4 2CF97C 0098+00 1/0 0/0 0/0 .text readResource__12JKRFileCacheFPvUlUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::readResource(void* param_0, u32 param_1, u32 param_2, char const* param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/readResource__12JKRFileCacheFPvUlUlPCc.s" +u32 JKRFileCache::readResource(void* dst, u32 dstLength, u32, const char* path) { + ASSERT(isMounted()); + + char finalPath[256]; + u32 rootLength = strlen(mRootPath); + char* filePath = finalPath + rootLength; + strcpy(finalPath, mRootPath); + + bool found = findFile(finalPath, path); + if (!found) + return NULL; + + return readResource(dst, dstLength, filePath); } -#pragma pop /* 802D50D4-802D5164 2CFA14 0090+00 1/0 0/0 0/0 .text removeResourceAll__12JKRFileCacheFv */ +#ifdef NONMATCHING +void JKRFileCache::removeResourceAll(void) { + ASSERT(isMounted()); + + JSUListIterator iterator; + iterator = mCacheBlockList.getFirst(); + while (iterator != mCacheBlockList.getEnd()) { + JKRFreeToHeap(mParentHeap, iterator->mMemoryPtr); + mCacheBlockList.remove(&iterator->mLink); + JSUListIterator next = iterator++; + CCacheBlock* cacheBlock = next.getObject(); + delete cacheBlock; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -295,165 +333,214 @@ asm void JKRFileCache::removeResourceAll() { #include "asm/JSystem/JKernel/JKRFileCache/removeResourceAll__12JKRFileCacheFv.s" } #pragma pop +#endif /* 802D5164-802D51F8 2CFAA4 0094+00 1/0 0/0 0/0 .text removeResource__12JKRFileCacheFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::removeResource(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/removeResource__12JKRFileCacheFPv.s" +bool JKRFileCache::removeResource(void* resource) { + ASSERT(isMounted()); + + CCacheBlock* cacheBlock = findCacheBlock(resource); + if (!cacheBlock) + return false; + + u32 referenceCount = cacheBlock->mReferenceCount - 1; + cacheBlock->mReferenceCount = referenceCount; + if (referenceCount == 0) { + JKRFreeToHeap(mParentHeap, resource); + mCacheBlockList.remove(&cacheBlock->mCacheBlockLink); + delete cacheBlock; + } + + return true; } -#pragma pop /* 802D51F8-802D526C 2CFB38 0074+00 1/0 0/0 0/0 .text detachResource__12JKRFileCacheFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::detachResource(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/detachResource__12JKRFileCacheFPv.s" +bool JKRFileCache::detachResource(void* resource) { + ASSERT(isMounted()); + + CCacheBlock* cacheBlock = findCacheBlock(resource); + if (!cacheBlock) + return false; + + mCacheBlockList.remove(&cacheBlock->mCacheBlockLink); + delete cacheBlock; + return true; } -#pragma pop /* 802D526C-802D52A0 2CFBAC 0034+00 1/0 0/0 0/0 .text getResSize__12JKRFileCacheCFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::getResSize(void const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/getResSize__12JKRFileCacheCFPCv.s" +u32 JKRFileCache::getResSize(const void* resource) const { + ASSERT(isMounted()); + + CCacheBlock* cacheBlock = findCacheBlock(resource); + if (cacheBlock == NULL) { + return -1; + } else { + return cacheBlock->mFileSize; + } } -#pragma pop /* 802D52A0-802D531C 2CFBE0 007C+00 1/0 0/0 0/0 .text countFile__12JKRFileCacheCFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::countFile(char const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/countFile__12JKRFileCacheCFPCc.s" +u32 JKRFileCache::countFile(const char* path) const { + ASSERT(isMounted()); + + DVDDirectory dir; + DVDDirectoryEntry dirEntry; + + u32 count = 0; + char* name = getDvdPathName(path); + BOOL result = DVDOpenDir(name, &dir); + if (result != 0) { + while (result = DVDReadDir(&dir, &dirEntry), result != FALSE) { + count = count + 1; + } + + DVDCloseDir(&dir); + } + + JKRFreeToSysHeap(name); + return count; } -#pragma pop /* 802D531C-802D53B8 2CFC5C 009C+00 1/0 0/0 0/0 .text getFirstFile__12JKRFileCacheCFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::getFirstFile(char const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/getFirstFile__12JKRFileCacheCFPCc.s" +JKRFileFinder* JKRFileCache::getFirstFile(const char* path) const { + char* name = getDvdPathName(path); + JKRHeap* systemHeap = JKRHeap::getSystemHeap(); + JKRDvdFinder* finder = new (systemHeap, 0) JKRDvdFinder(name); + JKRFreeToSysHeap(name); + + if (finder->isAvailable() != true) { + delete finder; + return NULL; + } + + return finder; } -#pragma pop /* 802D53B8-802D53E4 2CFCF8 002C+00 3/3 0/0 0/0 .text findCacheBlock__12JKRFileCacheCFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::findCacheBlock(void const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/findCacheBlock__12JKRFileCacheCFPCv.s" +JKRFileCache::CCacheBlock* JKRFileCache::findCacheBlock(const void* resource) const { + JSUListIterator iterator; + for (iterator = mCacheBlockList.getFirst(); iterator != mCacheBlockList.getEnd(); ++iterator) { + if (iterator->mMemoryPtr == resource) { + return iterator.getObject(); + } + } + + return NULL; } -#pragma pop /* 802D53E4-802D5410 2CFD24 002C+00 2/2 0/0 0/0 .text findCacheBlock__12JKRFileCacheCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::findCacheBlock(u32 param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/findCacheBlock__12JKRFileCacheCFUl.s" +JKRFileCache::CCacheBlock* JKRFileCache::findCacheBlock(u32 fileID) const { + JSUListIterator iterator; + for (iterator = mCacheBlockList.getFirst(); iterator != mCacheBlockList.getEnd(); ++iterator) { + if (iterator->mFileId == fileID) { + return iterator.getObject(); + } + } + + return NULL; } -#pragma pop /* 802D5410-802D551C 2CFD50 010C+00 2/2 0/0 0/0 .text findFile__12JKRFileCacheCFPcPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::findFile(char* param_0, char const* param_1) const { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/findFile__12JKRFileCacheCFPcPCc.s" +bool JKRFileCache::findFile(char* path, const char* fileName) const { + DVDDirectory dir; + DVDDirectoryEntry dirEntry; + + bool result = false; + u32 pathLength = strlen(path); + if (DVDOpenDir(path, &dir)) { + while (DVDReadDir(&dir, &dirEntry)) { + if (dirEntry.is_directory) { + char* endOfPath = path + pathLength; + *endOfPath = '/'; + strcpy(path + pathLength + 1, dirEntry.name); + result = findFile(path, fileName); + if (result) + break; + *endOfPath = '\0'; + } else { + result = (strcmp(fileName, dirEntry.name) == 0); + if (result) { + strcat(path, "/"); + strcat(path, fileName); + break; + } + } + } + + DVDCloseDir(&dir); + } + + return result; } -#pragma pop /* 802D551C-802D5624 2CFE5C 0108+00 5/5 0/0 0/0 .text getDvdPathName__12JKRFileCacheCFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::getDvdPathName(char const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/getDvdPathName__12JKRFileCacheCFPCc.s" +char* JKRFileCache::getDvdPathName(const char* path) const { + char* newPath; + if (path[0] == '/') { + u32 length = strlen(mRootPath) + strlen(path) + 2; + newPath = (char*)JKRAllocFromSysHeap(length, 1); + strcpy(newPath, mRootPath); + if (path[1]) { + if (mRootPath[1] == 0) { + strcat(newPath, path + 1); + } else { + strcat(newPath, path); + } + } + } else { + u32 length = strlen(mCurrentPath) + strlen(path) + 2; + newPath = (char*)JKRAllocFromSysHeap(length, 1); + strcpy(newPath, mCurrentPath); + strcat(newPath, path); + } + + convStrLower(newPath); + return newPath; } -#pragma pop /* 802D5624-802D566C 2CFF64 0048+00 2/2 0/0 0/0 .text convStrLower__12JKRFileCacheCFPc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::convStrLower(char* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/convStrLower__12JKRFileCacheCFPc.s" +void JKRFileCache::convStrLower(char* buffer) const { + while (*buffer) { + *buffer++ = tolower(*buffer); + } } -#pragma pop /* 802D566C-802D56C8 2CFFAC 005C+00 1/1 0/0 0/0 .text __ct__Q212JKRFileCache11CCacheBlockFUlUlPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRFileCache::CCacheBlock::CCacheBlock(u32 param_0, u32 param_1, void const* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/__ct__Q212JKRFileCache11CCacheBlockFUlUlPCv.s" +JKRFileCache::CCacheBlock::CCacheBlock(u32 fileId, u32 fileSize, const void* resource) + : mCacheBlockLink(this) { + mReferenceCount = 1; + mFileId = fileId; + mFileSize = fileSize; + mMemoryPtr = (void*)resource; // todo: don't cast away const } -#pragma pop /* 802D56C8-802D56F4 2D0008 002C+00 1/0 0/0 0/0 .text getFsResource__12JKRFileCacheFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::getFsResource(char const* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/getFsResource__12JKRFileCacheFPCc.s" +void* JKRFileCache::getFsResource(const char* path) { + return getResource(path); } -#pragma pop /* 802D56F4-802D5720 2D0034 002C+00 1/0 0/0 0/0 .text getNameResource__12JKRFileCacheFUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::getNameResource(u32 param_0, char const* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/getNameResource__12JKRFileCacheFUlPCc.s" +void* JKRFileCache::getNameResource(u32 type, const char* path) { + return getResource(type, path); } -#pragma pop /* 802D5720-802D574C 2D0060 002C+00 1/0 0/0 0/0 .text readFsResource__12JKRFileCacheFPvUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::readFsResource(void* param_0, u32 param_1, char const* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/readFsResource__12JKRFileCacheFPvUlPCc.s" +u32 JKRFileCache::readFsResource(void* dst, u32 dstLength, const char* path) { + return readResource(dst, dstLength, path); } -#pragma pop /* 802D574C-802D5778 2D008C 002C+00 1/0 0/0 0/0 .text readNameResource__12JKRFileCacheFPvUlUlPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileCache::readNameResource(void* param_0, u32 param_1, u32 param_2, - char const* param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileCache/readNameResource__12JKRFileCacheFPvUlUlPCc.s" +u32 JKRFileCache::readNameResource(void* dst, u32 dstLength, u32 type, const char* path) { + return readResource(dst, dstLength, type, path); } -#pragma pop /* 8039D158-8039D158 0297B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRFileFinder.cpp b/libs/JSystem/JKernel/JKRFileFinder.cpp index 25ac7661ce..ff805f39e5 100644 --- a/libs/JSystem/JKernel/JKRFileFinder.cpp +++ b/libs/JSystem/JKernel/JKRFileFinder.cpp @@ -4,35 +4,10 @@ // #include "JSystem/JKernel/JKRFileFinder.h" +#include "JSystem/JKernel/JKRArchive.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JKRFileFinder { - /* 802D4910 */ ~JKRFileFinder(); -}; - -struct JKRDvdFinder { - /* 802D4770 */ JKRDvdFinder(char const*); - /* 802D47F4 */ ~JKRDvdFinder(); - /* 802D4874 */ void findNextFile(); -}; - -struct JKRArchive { - struct SDirEntry {}; - - /* 802D5AC0 */ void getDirEntry(JKRArchive::SDirEntry*, u32) const; -}; - -struct JKRArcFinder { - /* 802D4638 */ JKRArcFinder(JKRArchive*, s32, s32); - /* 802D46C4 */ void findNextFile(); - /* 802D4958 */ ~JKRArcFinder(); -}; - // // Forward References: // @@ -44,6 +19,8 @@ extern "C" void __dt__12JKRDvdFinderFv(); extern "C" void findNextFile__12JKRDvdFinderFv(); extern "C" void __dt__13JKRFileFinderFv(); extern "C" void __dt__12JKRArcFinderFv(); +extern "C" void* __vt__12JKRDvdFinder; +extern "C" void* __vt__13JKRFileFinder; // // External References: @@ -51,70 +28,56 @@ extern "C" void __dt__12JKRArcFinderFv(); extern "C" void __dl__FPv(); extern "C" void getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl(); -extern "C" void DVDOpenDir(); -extern "C" void DVDReadDir(); -extern "C" bool DVDCloseDir(); // // Declarations: // -/* ############################################################################################## */ -/* 803CC208-803CC218 029328 0010+00 2/2 0/0 0/0 .data __vt__12JKRDvdFinder */ -SECTION_DATA extern void* __vt__12JKRDvdFinder[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12JKRDvdFinderFv, - (void*)findNextFile__12JKRDvdFinderFv, -}; - -/* 803CC218-803CC228 029338 0010+00 2/2 0/0 0/0 .data __vt__12JKRArcFinder */ -SECTION_DATA extern void* __vt__12JKRArcFinder[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12JKRArcFinderFv, - (void*)findNextFile__12JKRArcFinderFv, -}; - -/* 803CC228-803CC238 029348 0010+00 5/5 0/0 0/0 .data __vt__13JKRFileFinder */ -SECTION_DATA extern void* __vt__13JKRFileFinder[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13JKRFileFinderFv, - (void*)NULL, -}; - /* 802D4638-802D46C4 2CEF78 008C+00 0/0 1/1 0/0 .text __ct__12JKRArcFinderFP10JKRArchivell */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRArcFinder::JKRArcFinder(JKRArchive* param_0, s32 param_1, s32 param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRArcFinderFP10JKRArchivell.s" +JKRArcFinder::JKRArcFinder(JKRArchive* archive, s32 startIndex, s32 numEntries) : JKRFileFinder() { + mArchive = archive; + mIsAvailable = numEntries > 0; + mStartIndex = startIndex; + mEndIndex = startIndex + numEntries - 1; + mNextIndex = mStartIndex; + findNextFile(); } -#pragma pop /* 802D46C4-802D4770 2CF004 00AC+00 1/0 0/0 0/0 .text findNextFile__12JKRArcFinderFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRArcFinder::findNextFile() { - nofralloc -#include "asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRArcFinderFv.s" +bool JKRArcFinder::findNextFile(void) { + JKRArchive::SDirEntry entry; + + if (mIsAvailable) { + mIsAvailable = !(mNextIndex > mEndIndex); + if (mIsAvailable) { + mIsAvailable = mArchive->getDirEntry(&entry, mNextIndex); + mEntryName = entry.name; + mEntryFileIndex = mNextIndex; + mEntryId = entry.other.id; + mEntryTypeFlags = entry.other.flags; + mIsFileOrDirectory = (mEntryTypeFlags >> 1) & 1; + mNextIndex++; + } + } + return mIsAvailable; } -#pragma pop /* 802D4770-802D47F4 2CF0B0 0084+00 0/0 1/1 0/0 .text __ct__12JKRDvdFinderFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRDvdFinder::JKRDvdFinder(char const* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRDvdFinderFPCc.s" +JKRDvdFinder::JKRDvdFinder(const char* directory) : JKRFileFinder() { + mDvdIsOpen = DVDOpenDir(directory, &mDvdDirectory); + mIsAvailable = mDvdIsOpen; + findNextFile(); } -#pragma pop /* 802D47F4-802D4874 2CF134 0080+00 1/0 0/0 0/0 .text __dt__12JKRDvdFinderFv */ +// JKRFileFinder::~JKRFileFinder is not inlined +#ifdef NONMATCHING +JKRDvdFinder::~JKRDvdFinder() { + if (mDvdIsOpen) { + DVDCloseDir(&mDvdDirectory); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -123,33 +86,34 @@ asm JKRDvdFinder::~JKRDvdFinder() { #include "asm/JSystem/JKernel/JKRFileFinder/__dt__12JKRDvdFinderFv.s" } #pragma pop +#endif /* 802D4874-802D4910 2CF1B4 009C+00 1/0 0/0 0/0 .text findNextFile__12JKRDvdFinderFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRDvdFinder::findNextFile() { - nofralloc -#include "asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRDvdFinderFv.s" -} -#pragma pop +bool JKRDvdFinder::findNextFile(void) { + if (mIsAvailable) { + DVDDirectoryEntry directoryEntry; + mIsAvailable = DVDReadDir(&mDvdDirectory, &directoryEntry); -/* 802D4910-802D4958 2CF250 0048+00 1/0 0/0 0/0 .text __dt__13JKRFileFinderFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRFileFinder::~JKRFileFinder() { - nofralloc -#include "asm/JSystem/JKernel/JKRFileFinder/__dt__13JKRFileFinderFv.s" + if (mIsAvailable) { + mIsFileOrDirectory = directoryEntry.is_directory != 0; + mEntryName = directoryEntry.name; + mEntryFileIndex = directoryEntry.entry_number; + mEntryId = 0; + + // only matches with enum + // TODO: placeholder + enum EntryTypeFlags { + EntryTypeFlags1 = 1, + EntryTypeFlags2 = 2, + }; + mEntryTypeFlags = mIsFileOrDirectory ? EntryTypeFlags2 : EntryTypeFlags1; + } + } + + return mIsAvailable; } -#pragma pop + +inline JKRFileFinder::~JKRFileFinder() {} /* 802D4958-802D49B4 2CF298 005C+00 1/0 0/0 0/0 .text __dt__12JKRArcFinderFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRArcFinder::~JKRArcFinder() { - nofralloc -#include "asm/JSystem/JKernel/JKRFileFinder/__dt__12JKRArcFinderFv.s" -} -#pragma pop +inline JKRArcFinder::~JKRArcFinder() {} diff --git a/libs/JSystem/JKernel/JKRFileLoader.cpp b/libs/JSystem/JKernel/JKRFileLoader.cpp index 2f6ca4a894..27c3b901c0 100644 --- a/libs/JSystem/JKernel/JKRFileLoader.cpp +++ b/libs/JSystem/JKernel/JKRFileLoader.cpp @@ -5,48 +5,8 @@ #include "JSystem/JKernel/JKRFileLoader.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JSUPtrList { - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); -}; - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template7 { - /* 802D45E4 */ void func_802D45E4(void* _this); -}; - -struct JKRFileLoader { - /* 802D40F0 */ JKRFileLoader(); - /* 802D4148 */ ~JKRFileLoader(); - /* 802D41D4 */ void unmount(); - /* 802D4224 */ void getGlbResource(char const*); - /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*); - /* 802D4308 */ void removeResource(void*, JKRFileLoader*); - /* 802D43A0 */ void detachResource(void*, JKRFileLoader*); - /* 802D4438 */ void findVolume(char const**); - /* 802D44C4 */ void fetchVolumeName(char*, s32, char const*); - - static u8 sVolumeList[12]; - static u8 sCurrentVolume[4 + 4 /* padding */]; -}; - -struct JKRDisposer { - /* 802D147C */ JKRDisposer(); - /* 802D14E4 */ ~JKRDisposer(); -}; +#include "global.h" +#include "msl_c/string.h" // // Forward References: @@ -81,8 +41,6 @@ extern "C" void initiate__10JSUPtrListFv(); extern "C" void __register_global_object(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); -extern "C" void strcmp(); -extern "C" void strcpy(); extern "C" extern u8 __lower_map[256]; // @@ -90,121 +48,124 @@ extern "C" extern u8 __lower_map[256]; // /* ############################################################################################## */ -/* 803CC1C8-803CC208 0292E8 003C+04 2/2 0/0 0/0 .data __vt__13JKRFileLoader */ -SECTION_DATA extern void* __vt__13JKRFileLoader[15 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13JKRFileLoaderFv, - (void*)unmount__13JKRFileLoaderFv, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - /* padding */ - NULL, -}; +/* 80451418-80451420 000918 0004+04 2/2 3/3 0/0 .sbss sCurrentVolume__13JKRFileLoader */ +JKRFileLoader* JKRFileLoader::sCurrentVolume; +/* 80434354-80434360 061074 000C+00 5/5 14/14 0/0 .bss sVolumeList__13JKRFileLoader */ +JSUList JKRFileLoader::sVolumeList; /* 802D40F0-802D4148 2CEA30 0058+00 0/0 2/2 0/0 .text __ct__13JKRFileLoaderFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRFileLoader::JKRFileLoader() { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/__ct__13JKRFileLoaderFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80451418-80451420 000918 0004+04 2/2 3/3 0/0 .sbss sCurrentVolume__13JKRFileLoader */ -u8 JKRFileLoader::sCurrentVolume[4 + 4 /* padding */]; +JKRFileLoader::JKRFileLoader(void) + : mFileLoaderLink(this), mVolumeName(NULL), mVolumeType(0), mMountCount(0) {} /* 802D4148-802D41D4 2CEA88 008C+00 1/0 2/2 0/0 .text __dt__13JKRFileLoaderFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRFileLoader::~JKRFileLoader() { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/__dt__13JKRFileLoaderFv.s" +JKRFileLoader::~JKRFileLoader() { + if (getCurrentVolume() == this) { + setCurrentVolume(NULL); + } } -#pragma pop /* 802D41D4-802D4224 2CEB14 0050+00 1/0 6/0 0/0 .text unmount__13JKRFileLoaderFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileLoader::unmount() { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/unmount__13JKRFileLoaderFv.s" +void JKRFileLoader::unmount(void) { + s32 count = mMountCount; + if (mMountCount != 0) { + count--; + mMountCount = count; + if (count == 0) { + delete this; + } + } } -#pragma pop /* 802D4224-802D4270 2CEB64 004C+00 0/0 2/2 0/0 .text getGlbResource__13JKRFileLoaderFPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileLoader::getGlbResource(char const* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCc.s" +void* JKRFileLoader::getGlbResource(const char* name) { + const char* name_reference[1]; + name_reference[0] = name; + + JKRFileLoader* fileLoader = findVolume(name_reference); + void* resource; + if (fileLoader == NULL) { + resource = NULL; + } else { + resource = fileLoader->getResource(name_reference[0]); + } + + return resource; } -#pragma pop - -/* ############################################################################################## */ -/* 80434348-80434354 061068 000C+00 1/1 0/0 0/0 .bss @2182 */ -static u8 lit_2182[12]; - -/* 80434354-80434360 061074 000C+00 5/5 14/14 0/0 .bss sVolumeList__13JKRFileLoader */ -u8 JKRFileLoader::sVolumeList[12]; /* 802D4270-802D4308 2CEBB0 0098+00 0/0 29/29 1/1 .text * getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileLoader::getGlbResource(char const* param_0, JKRFileLoader* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader.s" +void* JKRFileLoader::getGlbResource(const char* name, JKRFileLoader* fileLoader) { + void* resource = NULL; + if (fileLoader) { + return fileLoader->getResource(0, name); + } + + JSUList& volumeList = getVolumeList(); + JSUListIterator iterator; + for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) { + resource = iterator->getResource(0, name); + if (resource) + break; + } + return resource; } -#pragma pop /* 802D4308-802D43A0 2CEC48 0098+00 0/0 1/1 0/0 .text * removeResource__13JKRFileLoaderFPvP13JKRFileLoader */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileLoader::removeResource(void* param_0, JKRFileLoader* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/removeResource__13JKRFileLoaderFPvP13JKRFileLoader.s" +bool JKRFileLoader::removeResource(void* resource, JKRFileLoader* fileLoader) { + if (fileLoader) { + return fileLoader->removeResource(resource); + } + + JSUList& volumeList = getVolumeList(); + JSUListIterator iterator; + for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) { + if (iterator->removeResource(resource)) { + return true; + } + } + + return false; } -#pragma pop /* 802D43A0-802D4438 2CECE0 0098+00 0/0 2/2 0/0 .text * detachResource__13JKRFileLoaderFPvP13JKRFileLoader */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileLoader::detachResource(void* param_0, JKRFileLoader* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/detachResource__13JKRFileLoaderFPvP13JKRFileLoader.s" +bool JKRFileLoader::detachResource(void* resource, JKRFileLoader* fileLoader) { + if (fileLoader) { + return fileLoader->detachResource(resource); + } + + JSUList& volumeList = getVolumeList(); + JSUListIterator iterator; + for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) { + if (iterator->detachResource(resource)) { + return true; + } + } + + return false; } -#pragma pop /* 802D4438-802D44C4 2CED78 008C+00 1/1 0/0 0/0 .text findVolume__13JKRFileLoaderFPPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFileLoader::findVolume(char const** param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/findVolume__13JKRFileLoaderFPPCc.s" +JKRFileLoader* JKRFileLoader::findVolume(const char** volumeName) { + if (*volumeName[0] != '/') { + return getCurrentVolume(); + } + + char volumeNameBuffer[0x101]; + *volumeName = fetchVolumeName(volumeNameBuffer, ARRAY_SIZE(volumeNameBuffer), *volumeName); + + JSUList& volumeList = getVolumeList(); + JSUListIterator iterator; + for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) { + if (strcmp(volumeNameBuffer, iterator->mVolumeName) == 0) { + return iterator.getObject(); + } + } + + return NULL; } -#pragma pop /* ############################################################################################## */ /* 8039D150-8039D150 0297B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -229,39 +190,53 @@ SECTION_SDATA static u8 rootPath[2 + 6 /* padding */] = { }; /* 802D44C4-802D45A0 2CEE04 00DC+00 1/1 0/0 0/0 .text fetchVolumeName__13JKRFileLoaderFPclPCc */ +// matches, but lbl_804508C0 is accessed through r13 +#ifdef NONMATCHING +const char* JKRFileLoader::fetchVolumeName(char* buffer, long bufferSize, const char* path) { + // lbl_803D2D18 = MSL_C.PPCEABI.bare.H::__lower_map + // lbl_8039D150 = JKernel::@stringBase0 "/" + // lbl_804508C0 = JKernel::rootPath$2498 "/" + // lbl_803D2D18 = MSL_C.PPCEABI.bare.H::__lower_map + + if (strcmp(path, lbl_8039D150) == 0) { + strcpy(buffer, lbl_804508C0); + return lbl_804508C0; + } + + path++; + while (*path != 0 && *path != '/') { + if (1 < bufferSize) { + u8 lower_char; + int ch = (int)*path; + if (ch == -1) { + lower_char = -1; + } else { + lower_char = lbl_803D2D18[ch & 0xFF]; + } + + *buffer = lower_char; + buffer++; + bufferSize--; + } + path++; + } + + *buffer = '\0'; + if (*path == '\0') { + path = lbl_804508C0; + } + + return path; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRFileLoader::fetchVolumeName(char* param_0, s32 param_1, char const* param_2) { +asm const char* JKRFileLoader::fetchVolumeName(char* param_0, s32 param_1, char const* param_2) { nofralloc #include "asm/JSystem/JKernel/JKRFileLoader/fetchVolumeName__13JKRFileLoaderFPclPCc.s" } #pragma pop - -/* 802D45A0-802D45E4 2CEEE0 0044+00 0/0 1/0 0/0 .text __sinit_JKRFileLoader_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_JKRFileLoader_cpp() { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/__sinit_JKRFileLoader_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802D45A0, __sinit_JKRFileLoader_cpp); -#pragma pop - -/* 802D45E4-802D4638 2CEF24 0054+00 1/1 0/0 0/0 .text __dt__24JSUList<13JKRFileLoader>Fv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_802D45E4(void* _this) { - nofralloc -#include "asm/JSystem/JKernel/JKRFileLoader/func_802D45E4.s" -} -#pragma pop +#endif /* 8039D150-8039D150 0297B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRHeap.cpp b/libs/JSystem/JKernel/JKRHeap.cpp index 6d7ed2cff9..80c9c2f1ee 100644 --- a/libs/JSystem/JKernel/JKRHeap.cpp +++ b/libs/JSystem/JKernel/JKRHeap.cpp @@ -4,87 +4,9 @@ // #include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JUTException { - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); -}; - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -struct JKRHeap { - struct TState {}; - - /* 800065D8 */ bool dump_sort(); - /* 802CE138 */ JKRHeap(void*, u32, JKRHeap*, bool); - /* 802CE264 */ ~JKRHeap(); - /* 802CE378 */ void initArena(char**, u32*, int); - /* 802CE428 */ void becomeSystemHeap(); - /* 802CE438 */ void becomeCurrentHeap(); - /* 802CE448 */ void destroy(); - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE500 */ void free(void*, JKRHeap*); - /* 802CE548 */ void free(void*); - /* 802CE574 */ void callAllDisposer(); - /* 802CE5CC */ void freeAll(); - /* 802CE5F8 */ void freeTail(); - /* 802CE684 */ void resize(void*, u32); - /* 802CE624 */ void resize(void*, u32, JKRHeap*); - /* 802CE700 */ void getSize(void*); - /* 802CE6B0 */ void getSize(void*, JKRHeap*); - /* 802CE72C */ void getFreeSize(); - /* 802CE758 */ void getMaxFreeBlock(); - /* 802CE784 */ void getTotalFreeSize(); - /* 802CE7B0 */ void changeGroupID(u8); - /* 802CE7DC */ void getMaxAllocatableSize(int); - /* 802CE83C */ void findFromRoot(void*); - /* 802CE894 */ void find(void*) const; - /* 802CE93C */ void findAllHeap(void*) const; - /* 802CE9E4 */ void dispose_subroutine(u32, u32); - /* 802CEAA0 */ void dispose(void*, void*); - /* 802CEA78 */ void dispose(void*, u32); - /* 802CEAC0 */ void dispose(); - /* 802CEB18 */ void copyMemory(void*, void*, u32); - /* 802CEB78 */ void setErrorFlag(bool); - /* 802CEB88 */ void setErrorHandler(void (*)(void*, u32, int)); - /* 802CEBA8 */ void isSubHeap(JKRHeap*) const; - /* 802CED84 */ void state_register(JKRHeap::TState*, u32) const; - /* 802CED88 */ void state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; - /* 802CEDA0 */ void state_dump(JKRHeap::TState const&) const; - /* 802CEDA4 */ bool do_changeGroupID(u8); - /* 802CEDAC */ bool do_getCurrentGroupId(); - - static u8 sSystemHeap[4]; - static u8 sCurrentHeap[4]; - static u8 sRootHeap[4]; - static u8 mErrorHandler[4]; - static u8 mCodeStart[4]; - static u8 mCodeEnd[4]; - static u8 mUserRamStart[4]; - static u8 mUserRamEnd[4]; - static u8 mMemorySize[4]; -}; - -struct JKRDisposer { - /* 802D147C */ JKRDisposer(); - /* 802D14E4 */ ~JKRDisposer(); -}; +#include "global.h" // // Forward References: @@ -120,7 +42,7 @@ extern "C" void dispose__7JKRHeapFPvUl(); extern "C" void dispose__7JKRHeapFPvPv(); extern "C" void dispose__7JKRHeapFv(); extern "C" void copyMemory__7JKRHeapFPvPvUl(); -extern "C" static void JKRDefaultMemoryErrorRoutine__FPvUli(); +extern "C" void JKRDefaultMemoryErrorRoutine__FPvUli(); extern "C" void setErrorFlag__7JKRHeapFb(); extern "C" void setErrorHandler__7JKRHeapFPFPvUli_v(); extern "C" void isSubHeap__7JKRHeapCFP7JKRHeap(); @@ -162,12 +84,6 @@ extern "C" void initiate__10JSUPtrListFv(); extern "C" void append__10JSUPtrListFP10JSUPtrLink(); extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); extern "C" void panic_f__12JUTExceptionFPCciPCce(); -extern "C" void OSInitAlloc(); -extern "C" void OSGetArenaHi(); -extern "C" void OSGetArenaLo(); -extern "C" void OSSetArenaHi(); -extern "C" void OSSetArenaLo(); -extern "C" void OSInitMutex(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); @@ -176,67 +92,91 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 data_804508B0[8]; +extern "C" extern bool data_804508B0; +extern "C" void* __vt__7JKRHeap; // // Declarations: // -/* ############################################################################################## */ -/* 803CBF70-803CBFD0 029090 0060+00 2/2 0/0 0/0 .data __vt__7JKRHeap */ -SECTION_DATA extern void* __vt__7JKRHeap[24] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__7JKRHeapFv, - (void*)callAllDisposer__7JKRHeapFv, - (void*)NULL, - (void*)NULL, - (void*)dump_sort__7JKRHeapFv, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)do_changeGroupID__7JKRHeapFUc, - (void*)do_getCurrentGroupId__7JKRHeapFv, - (void*)state_register__7JKRHeapCFPQ27JKRHeap6TStateUl, - (void*)state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState, - (void*)state_dump__7JKRHeapCFRCQ27JKRHeap6TState, -}; - /* 80451370-80451374 000870 0004+00 3/3 44/44 0/0 .sbss sSystemHeap__7JKRHeap */ -u8 JKRHeap::sSystemHeap[4]; +JKRHeap* JKRHeap::sSystemHeap; /* 80451374-80451378 000874 0004+00 4/4 23/22 0/0 .sbss sCurrentHeap__7JKRHeap */ -u8 JKRHeap::sCurrentHeap[4]; +JKRHeap* JKRHeap::sCurrentHeap; /* 80451378-8045137C 000878 0004+00 3/3 10/10 0/0 .sbss sRootHeap__7JKRHeap */ -u8 JKRHeap::sRootHeap[4]; +JKRHeap* JKRHeap::sRootHeap; /* 8045137C-80451380 00087C 0004+00 2/2 3/3 0/0 .sbss mErrorHandler__7JKRHeap */ -u8 JKRHeap::mErrorHandler[4]; +JKRErrorHandler JKRHeap::mErrorHandler; /* 80451380-80451384 000880 0004+00 1/1 0/0 0/0 .sbss None */ -static u8 data_80451380[4]; +static bool data_80451380; /* 802CE138-802CE264 2C8A78 012C+00 0/0 3/3 0/0 .text __ct__7JKRHeapFPvUlP7JKRHeapb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRHeap::JKRHeap(void* param_0, u32 param_1, JKRHeap* param_2, bool param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/__ct__7JKRHeapFPvUlP7JKRHeapb.s" +JKRHeap::JKRHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag) + : JKRDisposer(), mChildTree(this), mDisposerList() { + OSInitMutex(&mMutex); + mSize = size; + mStart = (u8*)data; + mEnd = (u8*)data + size; + + if (parent == NULL) { + becomeSystemHeap(); + becomeCurrentHeap(); + } else { + parent->mChildTree.appendChild(&mChildTree); + + if (getSystemHeap() == getRootHeap()) { + becomeSystemHeap(); + } + if (getCurrentHeap() == getRootHeap()) { + becomeCurrentHeap(); + } + } + + mErrorFlag = errorFlag; + if ((mErrorFlag == true) && (mErrorHandler == NULL)) { + mErrorHandler = JKRDefaultMemoryErrorRoutine; + } + + mDebugFill = data_804508B0; + mCheckMemoryFilled = data_80451380; + mInitFlag = false; } -#pragma pop /* 802CE264-802CE378 2C8BA4 0114+00 1/0 3/3 0/0 .text __dt__7JKRHeapFv */ +// using the wrong register for storing the results +#ifdef NONMATCHING +JKRHeap::~JKRHeap() { + JSUTree* parent = mChildTree.getParent(); + parent->removeChild(&mChildTree); + + JSUTree* nextRootHeap = getRootHeap()->mChildTree.getFirstChild(); + + JKRHeap* rootHeap = getRootHeap(); + JKRHeap* currentHeap = getCurrentHeap(); + if (currentHeap == this) { + if (!nextRootHeap) { + currentHeap = rootHeap; + } else { + currentHeap = nextRootHeap->getObject(); + } + } + setCurrentHeap(currentHeap); + + JKRHeap* systemHeap = getSystemHeap(); + if (systemHeap == this) { + if (!nextRootHeap) { + systemHeap = rootHeap; + } else { + systemHeap = nextRootHeap->getObject(); + } + } + setSystemHeap(systemHeap); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -245,102 +185,103 @@ asm JKRHeap::~JKRHeap() { #include "asm/JSystem/JKernel/JKRHeap/__dt__7JKRHeapFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80451384-80451388 000884 0004+00 1/1 1/1 0/0 .sbss mCodeStart__7JKRHeap */ -u8 JKRHeap::mCodeStart[4]; +void* JKRHeap::mCodeStart; /* 80451388-8045138C 000888 0004+00 1/1 1/1 0/0 .sbss mCodeEnd__7JKRHeap */ -u8 JKRHeap::mCodeEnd[4]; +void* JKRHeap::mCodeEnd; /* 8045138C-80451390 00088C 0004+00 1/1 1/1 0/0 .sbss mUserRamStart__7JKRHeap */ -u8 JKRHeap::mUserRamStart[4]; +void* JKRHeap::mUserRamStart; /* 80451390-80451394 000890 0004+00 1/1 1/1 0/0 .sbss mUserRamEnd__7JKRHeap */ -u8 JKRHeap::mUserRamEnd[4]; +void* JKRHeap::mUserRamEnd; /* 80451394-80451398 000894 0004+00 1/1 2/2 0/0 .sbss mMemorySize__7JKRHeap */ -u8 JKRHeap::mMemorySize[4]; +u32 JKRHeap::mMemorySize; /* 802CE378-802CE428 2C8CB8 00B0+00 0/0 1/1 0/0 .text initArena__7JKRHeapFPPcPUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::initArena(char** param_0, u32* param_1, int param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/initArena__7JKRHeapFPPcPUli.s" +bool JKRHeap::initArena(char** memory, u32* size, int param_3) { + u32 ram_start; + u32 ram_end; + u32 ram; + + u32 low = OSGetArenaLo(); + u32 high = OSGetArenaHi(); + if (low == high) + return false; + + ram = OSInitAlloc(low, high, param_3); + ram_start = ALIGN_NEXT(ram, 0x20); + ram_end = ALIGN_PREV(high, 0x20); + GLOBAL_MEMORY* globalMemory = (GLOBAL_MEMORY*)OSPhysicalToCached(0); + mCodeStart = globalMemory; + mCodeEnd = (void*)ram_start; + mUserRamStart = (void*)ram_start; + mUserRamEnd = (void*)ram_end; + mMemorySize = globalMemory->memory_size; + OSSetArenaLo(ram_end); + OSSetArenaHi(ram_end); + *memory = (char*)ram_start; + *size = ram_end - ram_start; + return true; } -#pragma pop /* 802CE428-802CE438 2C8D68 0010+00 1/1 0/0 0/0 .text becomeSystemHeap__7JKRHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::becomeSystemHeap() { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/becomeSystemHeap__7JKRHeapFv.s" +JKRHeap* JKRHeap::becomeSystemHeap() { + JKRHeap* prev = JKRHeap::getSystemHeap(); + setSystemHeap(this); + return prev; } -#pragma pop /* 802CE438-802CE448 2C8D78 0010+00 1/1 22/22 1/1 .text becomeCurrentHeap__7JKRHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::becomeCurrentHeap() { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/becomeCurrentHeap__7JKRHeapFv.s" +JKRHeap* JKRHeap::becomeCurrentHeap() { + JKRHeap* prev = getCurrentHeap(); + setCurrentHeap(this); + return prev; } -#pragma pop /* 802CE448-802CE474 2C8D88 002C+00 0/0 5/5 1/1 .text destroy__7JKRHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::destroy() { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/destroy__7JKRHeapFv.s" +void JKRHeap::destroy() { + do_destroy(); } -#pragma pop /* 802CE474-802CE4D4 2C8DB4 0060+00 6/6 23/23 0/0 .text alloc__7JKRHeapFUliP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::alloc(u32 param_0, int param_1, JKRHeap* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/alloc__7JKRHeapFUliP7JKRHeap.s" +void* JKRHeap::alloc(u32 size, int alignment, JKRHeap* heap) { + if (heap != NULL) { + return heap->alloc(size, alignment); + } + + if (getCurrentHeap() != NULL) { + return getCurrentHeap()->alloc(size, alignment); + } + + return NULL; } -#pragma pop /* 802CE4D4-802CE500 2C8E14 002C+00 1/1 30/30 1/1 .text alloc__7JKRHeapFUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::alloc(u32 param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/alloc__7JKRHeapFUli.s" +void* JKRHeap::alloc(u32 size, int alignment) { + return do_alloc(size, alignment); } -#pragma pop /* 802CE500-802CE548 2C8E40 0048+00 2/2 38/38 1/1 .text free__7JKRHeapFPvP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::free(void* param_0, JKRHeap* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/free__7JKRHeapFPvP7JKRHeap.s" +void JKRHeap::free(void* ptr, JKRHeap* heap) { + if (!heap) { + heap = findFromRoot(ptr); + if (!heap) + return; + } + + heap->free(ptr); } -#pragma pop /* 802CE548-802CE574 2C8E88 002C+00 1/1 29/29 0/0 .text free__7JKRHeapFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::free(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/free__7JKRHeapFPv.s" +void JKRHeap::free(void* ptr) { + do_free(ptr); } -#pragma pop /* 802CE574-802CE5CC 2C8EB4 0058+00 1/0 5/2 0/0 .text callAllDisposer__7JKRHeapFv */ #pragma push @@ -353,178 +294,200 @@ asm void JKRHeap::callAllDisposer() { #pragma pop /* 802CE5CC-802CE5F8 2C8F0C 002C+00 0/0 12/12 0/0 .text freeAll__7JKRHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::freeAll() { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/freeAll__7JKRHeapFv.s" +void JKRHeap::freeAll() { + do_freeAll(); } -#pragma pop /* 802CE5F8-802CE624 2C8F38 002C+00 0/0 1/1 0/0 .text freeTail__7JKRHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::freeTail() { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/freeTail__7JKRHeapFv.s" +void JKRHeap::freeTail() { + do_freeTail(); } -#pragma pop /* 802CE624-802CE684 2C8F64 0060+00 0/0 1/1 0/0 .text resize__7JKRHeapFPvUlP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::resize(void* param_0, u32 param_1, JKRHeap* param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/resize__7JKRHeapFPvUlP7JKRHeap.s" +s32 JKRHeap::resize(void* ptr, u32 size, JKRHeap* heap) { + if (!heap) { + heap = findFromRoot(ptr); + if (!heap) + return -1; + } + + return heap->resize(ptr, size); } -#pragma pop /* 802CE684-802CE6B0 2C8FC4 002C+00 1/1 1/1 0/0 .text resize__7JKRHeapFPvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::resize(void* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/resize__7JKRHeapFPvUl.s" +s32 JKRHeap::resize(void* ptr, u32 size) { + return do_resize(ptr, size); } -#pragma pop /* 802CE6B0-802CE700 2C8FF0 0050+00 0/0 4/4 0/0 .text getSize__7JKRHeapFPvP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::getSize(void* param_0, JKRHeap* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/getSize__7JKRHeapFPvP7JKRHeap.s" +s32 JKRHeap::getSize(void* ptr, JKRHeap* heap) { + if (!heap) { + heap = findFromRoot(ptr); + if (!heap) + return -1; + } + + return heap->getSize(ptr); } -#pragma pop /* 802CE700-802CE72C 2C9040 002C+00 1/1 1/1 0/0 .text getSize__7JKRHeapFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::getSize(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/getSize__7JKRHeapFPv.s" +s32 JKRHeap::getSize(void* ptr) { + return do_getSize(ptr); } -#pragma pop /* 802CE72C-802CE758 2C906C 002C+00 1/1 18/18 0/0 .text getFreeSize__7JKRHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::getFreeSize() { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/getFreeSize__7JKRHeapFv.s" +s32 JKRHeap::getFreeSize() { + return do_getFreeSize(); } -#pragma pop /* 802CE758-802CE784 2C9098 002C+00 1/1 0/0 0/0 .text getMaxFreeBlock__7JKRHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::getMaxFreeBlock() { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/getMaxFreeBlock__7JKRHeapFv.s" +void* JKRHeap::getMaxFreeBlock() { + return do_getMaxFreeBlock(); } -#pragma pop /* 802CE784-802CE7B0 2C90C4 002C+00 0/0 32/32 0/0 .text getTotalFreeSize__7JKRHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::getTotalFreeSize() { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/getTotalFreeSize__7JKRHeapFv.s" +s32 JKRHeap::getTotalFreeSize() { + return do_getTotalFreeSize(); } -#pragma pop /* 802CE7B0-802CE7DC 2C90F0 002C+00 0/0 1/1 0/0 .text changeGroupID__7JKRHeapFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::changeGroupID(u8 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/changeGroupID__7JKRHeapFUc.s" +u8 JKRHeap::changeGroupID(u8 param_1) { + return do_changeGroupID(param_1); } -#pragma pop /* 802CE7DC-802CE83C 2C911C 0060+00 0/0 2/2 0/0 .text getMaxAllocatableSize__7JKRHeapFi */ +// "not/nor" instruction in the wrong place +#ifdef NONMATCHING +s32 JKRHeap::getMaxAllocatableSize(int alignment) { + u32 maxFreeBlock = (u32)getMaxFreeBlock(); + s32 freeSize = getFreeSize(); + + u32 mask = alignment - 1U; + s32 ptrOffset = mask & (alignment - (maxFreeBlock & 0xf)); + s32 alignedSize = (freeSize - ptrOffset) & ~(alignment - 1U); + return alignedSize; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRHeap::getMaxAllocatableSize(int param_0) { +asm u32 JKRHeap::getMaxAllocatableSize(int param_0) { nofralloc #include "asm/JSystem/JKernel/JKRHeap/getMaxAllocatableSize__7JKRHeapFi.s" } #pragma pop +#endif /* 802CE83C-802CE894 2C917C 0058+00 3/3 8/8 0/0 .text findFromRoot__7JKRHeapFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::findFromRoot(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/findFromRoot__7JKRHeapFPv.s" +JKRHeap* JKRHeap::findFromRoot(void* ptr) { + JKRHeap* rootHeap = getRootHeap(); + if (rootHeap == NULL) { + return NULL; + } + + if (rootHeap->getStartAddr() <= ptr && ptr < rootHeap->getEndAddr()) { + return rootHeap->find(ptr); + } + + return rootHeap->findAllHeap(ptr); } -#pragma pop /* 802CE894-802CE93C 2C91D4 00A8+00 1/1 1/1 0/0 .text find__7JKRHeapCFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::find(void* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/find__7JKRHeapCFPv.s" +JKRHeap* JKRHeap::find(void* ptr) const { + if (getStartAddr() <= ptr && ptr < getEndAddr()) { + const JSUTree& tree = mChildTree; + if (tree.getNumChildren() != 0) { + JSUTreeIterator iterator; + for (iterator = tree.getFirstChild(); iterator != tree.getEndChild(); iterator++) { + JKRHeap* child = iterator.getObject(); + JKRHeap* result = child->find(ptr); + if (result) { + return result; + } + } + } + + // todo: not sure about this... casting away const for now. + return (JKRHeap*)this; + } + + return NULL; } -#pragma pop /* 802CE93C-802CE9E4 2C927C 00A8+00 1/1 0/0 0/0 .text findAllHeap__7JKRHeapCFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::findAllHeap(void* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/findAllHeap__7JKRHeapCFPv.s" +JKRHeap* JKRHeap::findAllHeap(void* ptr) const { + const JSUTree& tree = mChildTree; + if (tree.getNumChildren() != 0) { + JSUTreeIterator iterator; + for (iterator = tree.getFirstChild(); iterator != tree.getEndChild(); iterator++) { + JKRHeap* child = iterator.getObject(); + JKRHeap* result = child->findAllHeap(ptr); + if (result) { + return result; + } + } + } + + if (getStartAddr() <= ptr && ptr < getEndAddr()) { + // todo: not sure about this... casting away const for now. + return (JKRHeap*)this; + } + + return NULL; } -#pragma pop /* 802CE9E4-802CEA78 2C9324 0094+00 2/2 0/0 0/0 .text dispose_subroutine__7JKRHeapFUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::dispose_subroutine(u32 param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/dispose_subroutine__7JKRHeapFUlUl.s" +void JKRHeap::dispose_subroutine(u32 begin, u32 end) { + JSUListIterator last_iterator; + JSUListIterator next_iterator; + JSUListIterator iterator; + for (iterator = mDisposerList.getFirst(); iterator != mDisposerList.getEnd(); + iterator = next_iterator) { + JKRDisposer* disposer = iterator.getObject(); + + if ((void*)begin <= disposer && disposer < (void*)end) { + disposer->~JKRDisposer(); + if (last_iterator == NULL) { + next_iterator = mDisposerList.getFirst(); + } else { + next_iterator = last_iterator; + next_iterator++; + } + } else { + last_iterator = iterator; + next_iterator = iterator; + next_iterator++; + } + } } -#pragma pop /* 802CEA78-802CEAA0 2C93B8 0028+00 0/0 1/1 0/0 .text dispose__7JKRHeapFPvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::dispose(void* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/dispose__7JKRHeapFPvUl.s" +bool JKRHeap::dispose(void* ptr, u32 size) { + u32 begin = (u32)ptr; + u32 end = (u32)ptr + size; + dispose_subroutine(begin, end); + return false; } -#pragma pop /* 802CEAA0-802CEAC0 2C93E0 0020+00 0/0 1/1 0/0 .text dispose__7JKRHeapFPvPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::dispose(void* param_0, void* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/dispose__7JKRHeapFPvPv.s" +void JKRHeap::dispose(void* begin, void* end) { + dispose_subroutine((u32)begin, (u32)end); } -#pragma pop /* 802CEAC0-802CEB18 2C9400 0058+00 0/0 3/3 0/0 .text dispose__7JKRHeapFv */ +// missing stack variable? +#ifdef NONMATCHING +void JKRHeap::dispose() { + const JSUList& list = mDisposerList; + JSUListIterator iterator; + while (list.getFirst() != list.getEnd()) { + iterator = list.getFirst(); + iterator->~JKRDisposer(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -533,180 +496,140 @@ asm void JKRHeap::dispose() { #include "asm/JSystem/JKernel/JKRHeap/dispose__7JKRHeapFv.s" } #pragma pop +#endif /* 802CEB18-802CEB40 2C9458 0028+00 0/0 4/4 0/0 .text copyMemory__7JKRHeapFPvPvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::copyMemory(void* param_0, void* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/copyMemory__7JKRHeapFPvPvUl.s" -} -#pragma pop +void JKRHeap::copyMemory(void* dst, void* src, u32 size) { + u32 count = (size + 3) / 4; -/* ############################################################################################## */ -/* 8039CAD8-8039CAD8 029138 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CAD8 = "JKRHeap.cpp"; -SECTION_DEAD static char const* const stringBase_8039CAE4 = "%s"; -SECTION_DEAD static char const* const stringBase_8039CAE7 = "abort\n"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039CAEE = "\0"; -#pragma pop + u32* dst_32 = (u32*)dst; + u32* src_32 = (u32*)src; + while (count > 0) { + *dst_32 = *src_32; + dst_32++; + src_32++; + count--; + } +} /* 802CEB40-802CEB78 2C9480 0038+00 2/2 0/0 0/0 .text JKRDefaultMemoryErrorRoutine__FPvUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void JKRDefaultMemoryErrorRoutine(void* param_0, u32 param_1, int param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/JKRDefaultMemoryErrorRoutine__FPvUli.s" +void JKRDefaultMemoryErrorRoutine(void* heap, u32 size, int alignment) { + JUTException::panic_f("JKRHeap.cpp", 0x33f, "%s", "abort\n"); } -#pragma pop /* 802CEB78-802CEB88 2C94B8 0010+00 0/0 2/2 0/0 .text setErrorFlag__7JKRHeapFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::setErrorFlag(bool param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/setErrorFlag__7JKRHeapFb.s" +bool JKRHeap::setErrorFlag(bool errorFlag) { + bool prev = mErrorFlag; + mErrorFlag = errorFlag; + return prev; } -#pragma pop /* 802CEB88-802CEBA8 2C94C8 0020+00 0/0 1/1 0/0 .text setErrorHandler__7JKRHeapFPFPvUli_v */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::setErrorHandler(void (*param_0)(void*, u32, int)) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/setErrorHandler__7JKRHeapFPFPvUli_v.s" +JKRErrorHandler JKRHeap::setErrorHandler(JKRErrorHandler errorHandler) { + JKRErrorHandler prev = mErrorHandler; + + if (!errorHandler) { + errorHandler = JKRDefaultMemoryErrorRoutine; + } + + mErrorHandler = errorHandler; + return prev; } -#pragma pop /* 802CEBA8-802CEC4C 2C94E8 00A4+00 0/0 1/1 0/0 .text isSubHeap__7JKRHeapCFP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::isSubHeap(JKRHeap* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/isSubHeap__7JKRHeapCFP7JKRHeap.s" +bool JKRHeap::isSubHeap(JKRHeap* heap) const { + if (!heap) + return false; + + const JSUTree& tree = mChildTree; + if (tree.getNumChildren() != 0) { + JSUTreeIterator iterator; + for (iterator = tree.getFirstChild(); iterator != tree.getEndChild(); ++iterator) { + JKRHeap* child = iterator.getObject(); + if (child == heap) { + return true; + } + + bool is_sub_heap = child->isSubHeap(heap); + if (is_sub_heap) { + return true; + } + } + } + + return false; } -#pragma pop /* 802CEC4C-802CEC74 2C958C 0028+00 0/0 278/278 377/377 .text __nw__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* operator new(u32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/__nw__FUl.s" +void* operator new(u32 size) { + return JKRHeap::alloc(size, 4, NULL); } -#pragma pop /* 802CEC74-802CEC98 2C95B4 0024+00 0/0 15/15 0/0 .text __nw__FUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* operator new(u32 param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/__nw__FUli.s" +void* operator new(u32 size, int alignment) { + return JKRHeap::alloc(size, alignment, NULL); } -#pragma pop /* 802CEC98-802CECC4 2C95D8 002C+00 0/0 47/47 0/0 .text __nw__FUlP7JKRHeapi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* operator new(u32 param_0, JKRHeap* param_1, int param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/__nw__FUlP7JKRHeapi.s" +void* operator new(u32 size, JKRHeap* heap, int alignment) { + return JKRHeap::alloc(size, alignment, heap); } -#pragma pop /* 802CECC4-802CECEC 2C9604 0028+00 0/0 52/52 15/15 .text __nwa__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* operator new[](u32 param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/__nwa__FUl.s" +void* operator new[](u32 size) { + return JKRHeap::alloc(size, 4, NULL); } -#pragma pop /* 802CECEC-802CED10 2C962C 0024+00 0/0 29/29 0/0 .text __nwa__FUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* operator new[](u32 param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/__nwa__FUli.s" +void* operator new[](u32 size, int alignment) { + return JKRHeap::alloc(size, alignment, NULL); } -#pragma pop /* 802CED10-802CED3C 2C9650 002C+00 0/0 25/25 0/0 .text __nwa__FUlP7JKRHeapi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* operator new[](u32 param_0, JKRHeap* param_1, int param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/__nwa__FUlP7JKRHeapi.s" +void* operator new[](u32 size, JKRHeap* heap, int alignment) { + return JKRHeap::alloc(size, alignment, heap); } -#pragma pop /* 802CED3C-802CED60 2C967C 0024+00 1/1 847/847 4665/4665 .text __dl__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void operator delete(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/__dl__FPv.s" +void operator delete(void* ptr) { + JKRHeap::free(ptr, NULL); } -#pragma pop /* 802CED60-802CED84 2C96A0 0024+00 0/0 20/20 3/3 .text __dla__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void operator delete[](void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/__dla__FPv.s" +void operator delete[](void* ptr) { + JKRHeap::free(ptr, NULL); } -#pragma pop /* 802CED84-802CED88 2C96C4 0004+00 1/0 1/0 0/0 .text * state_register__7JKRHeapCFPQ27JKRHeap6TStateUl */ -void JKRHeap::state_register(JKRHeap::TState* param_0, u32 param_1) const { - /* empty function */ +void JKRHeap::state_register(JKRHeap::TState* p, u32 id) const { + JUT_ASSERT(p != 0); + JUT_ASSERT(p->getHeap() == this); } /* 802CED88-802CEDA0 2C96C8 0018+00 1/0 1/0 0/0 .text * state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRHeap::state_compare(JKRHeap::TState const& param_0, - JKRHeap::TState const& param_1) const { - nofralloc -#include "asm/JSystem/JKernel/JKRHeap/state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState.s" +bool JKRHeap::state_compare(JKRHeap::TState const& r1, JKRHeap::TState const& r2) const { + JUT_ASSERT(r1.getHeap() == r2.getHeap()); + return r1.getCheckCode() == r2.getCheckCode(); } -#pragma pop /* 802CEDA0-802CEDA4 2C96E0 0004+00 1/0 3/0 0/0 .text state_dump__7JKRHeapCFRCQ27JKRHeap6TState */ -void JKRHeap::state_dump(JKRHeap::TState const& param_0) const { - /* empty function */ +void JKRHeap::state_dump(JKRHeap::TState const& p) const { + LOGF("check-code : 0x%08x", p.getCheckCode()); + LOGF("id : 0x%08x", p.getId()); + LOGF("used size : %u", p.getUsedSize()); } /* 802CEDA4-802CEDAC 2C96E4 0008+00 1/0 1/0 0/0 .text do_changeGroupID__7JKRHeapFUc */ -bool JKRHeap::do_changeGroupID(u8 param_0) { - return false; +u8 JKRHeap::do_changeGroupID(u8 param_0) { + return 0; } /* 802CEDAC-802CEDB4 2C96EC 0008+00 1/0 1/0 0/0 .text do_getCurrentGroupId__7JKRHeapFv */ -bool JKRHeap::do_getCurrentGroupId() { - return false; +u8 JKRHeap::do_getCurrentGroupId() { + return 0; } /* 8039CAD8-8039CAD8 029138 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRMemArchive.cpp b/libs/JSystem/JKernel/JKRMemArchive.cpp index cee0eae32a..593bdb5c21 100644 --- a/libs/JSystem/JKernel/JKRMemArchive.cpp +++ b/libs/JSystem/JKernel/JKRMemArchive.cpp @@ -4,86 +4,90 @@ // #include "JSystem/JKernel/JKRMemArchive.h" +#include "JSystem/JKernel/JKRDvdRipper.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "msl_c/string.h" // // Types: // -struct JUTException { - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); -}; +// struct JUTException { +// /* 802E21FC */ void panic_f(char const*, int, char const*, ...); +// }; -struct JSUPtrLink {}; +// struct JSUPtrLink {}; -struct JSUPtrList { - /* 802DBFF0 */ void prepend(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; +// struct JSUPtrList { +// /* 802DBFF0 */ void prepend(JSUPtrLink*); +// /* 802DC15C */ void remove(JSUPtrLink*); +// }; -struct JKRMemBreakFlag {}; +// struct JKRMemBreakFlag {}; -struct JKRArchive { - struct EMountDirection {}; +// struct JKRArchive { +// struct EMountDirection {}; - struct SDIFileEntry {}; +// struct SDIFileEntry {}; - struct EMountMode {}; +// struct EMountMode {}; - /* 802D5A38 */ void becomeCurrent(char const*); - /* 802D5C64 */ void getResource(u32, char const*); - /* 802D5BE8 */ void getResource(char const*); - /* 802D5D8C */ void readResource(void*, u32, u32, char const*); - /* 802D5E30 */ void readResource(void*, u32, char const*); - /* 802D609C */ void detachResource(void*); - /* 802D60D8 */ void getResSize(void const*) const; - /* 802D6150 */ void countFile(char const*) const; - /* 802D61B0 */ void getFirstFile(char const*) const; - /* 802D6294 */ JKRArchive(s32, JKRArchive::EMountMode); - /* 802D6334 */ ~JKRArchive(); - /* 802D6734 */ void findPtrResource(void const*) const; - /* 802D693C */ void setExpandSize(JKRArchive::SDIFileEntry*, u32); - /* 802D6978 */ void getExpandSize(JKRArchive::SDIFileEntry*) const; -}; +// /* 802D5A38 */ void becomeCurrent(char const*); +// /* 802D5C64 */ void getResource(u32, char const*); +// /* 802D5BE8 */ void getResource(char const*); +// /* 802D5D8C */ void readResource(void*, u32, u32, char const*); +// /* 802D5E30 */ void readResource(void*, u32, char const*); +// /* 802D609C */ void detachResource(void*); +// /* 802D60D8 */ void getResSize(void const*) const; +// /* 802D6150 */ void countFile(char const*) const; +// /* 802D61B0 */ void getFirstFile(char const*) const; +// /* 802D6294 */ JKRArchive(s32, JKRArchive::EMountMode); +// /* 802D6334 */ ~JKRArchive(); +// /* 802D6734 */ void findPtrResource(void const*) const; +// /* 802D693C */ void setExpandSize(JKRArchive::SDIFileEntry*, u32); +// /* 802D6978 */ void getExpandSize(JKRArchive::SDIFileEntry*) const; +// }; -struct JKRMemArchive { - /* 802D6A6C */ JKRMemArchive(void*, u32, JKRMemBreakFlag); - /* 802D69B8 */ JKRMemArchive(s32, JKRArchive::EMountDirection); - /* 802D6B24 */ ~JKRMemArchive(); - /* 802D6BCC */ void open(s32, JKRArchive::EMountDirection); - /* 802D6D30 */ void open(void*, u32, JKRMemBreakFlag); - /* 802D6E10 */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); - /* 802D6DDC */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); - /* 802D6ED0 */ void removeResourceAll(); - /* 802D6F20 */ void removeResource(void*); - /* 802D6F5C */ void fetchResource_subroutine(u8*, u32, u8*, u32, int); - /* 802D7030 */ void getExpandedResSize(void const*) const; -}; +// struct JKRMemArchive { +// /* 802D6A6C */ JKRMemArchive(void*, u32, JKRMemBreakFlag); +// /* 802D69B8 */ JKRMemArchive(s32, JKRArchive::EMountDirection); +// /* 802D6B24 */ ~JKRMemArchive(); +// /* 802D6BCC */ void open(s32, JKRArchive::EMountDirection); +// /* 802D6D30 */ void open(void*, u32, JKRMemBreakFlag); +// /* 802D6E10 */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); +// /* 802D6DDC */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); +// /* 802D6ED0 */ void removeResourceAll(); +// /* 802D6F20 */ void removeResource(void*); +// /* 802D6F5C */ void fetchResource_subroutine(u8*, u32, u8*, u32, int); +// /* 802D7030 */ void getExpandedResSize(void const*) const; +// }; -struct JKRHeap { - /* 802CE500 */ void free(void*, JKRHeap*); - /* 802CE83C */ void findFromRoot(void*); -}; +// struct JKRHeap { +// /* 802CE500 */ void free(void*, JKRHeap*); +// /* 802CE83C */ void findFromRoot(void*); +// }; -struct JKRFileLoader { - /* 802D41D4 */ void unmount(); +// struct JKRFileLoader { +// /* 802D41D4 */ void unmount(); - static u8 sVolumeList[12]; -}; +// static u8 sVolumeList[12]; +// }; -struct JKRExpandSwitch {}; +// struct JKRExpandSwitch {}; -struct JKRDvdRipper { - struct EAllocDirection {}; +// struct JKRDvdRipper { +// struct EAllocDirection {}; - /* 802D9C54 */ void loadToMainRAM(s32, u8*, JKRExpandSwitch, u32, JKRHeap*, - JKRDvdRipper::EAllocDirection, u32, int*, u32*); -}; +// /* 802D9C54 */ void loadToMainRAM(s32, u8*, JKRExpandSwitch, u32, JKRHeap*, +// JKRDvdRipper::EAllocDirection, u32, int*, u32*); +// }; -struct JKRDecomp { - /* 802DB988 */ void orderSync(u8*, u8*, u32, u32); -}; +// struct JKRDecomp { +// /* 802DB988 */ void orderSync(u8*, u8*, u32, u32); +// }; // // Forward References: @@ -106,7 +110,6 @@ extern "C" extern char const* const JKRMemArchive__stringBase0; // External References: // -SECTION_INIT void memcpy(); extern "C" void free__7JKRHeapFPvP7JKRHeap(); extern "C" void findFromRoot__7JKRHeapFPv(); extern "C" void __dl__FPv(); @@ -142,160 +145,270 @@ extern "C" u8 sVolumeList__13JKRFileLoader[12]; // Declarations: // -/* ############################################################################################## */ -/* 803CC2D8-803CC328 0293F8 0050+00 3/3 0/0 0/0 .data __vt__13JKRMemArchive */ -SECTION_DATA extern void* __vt__13JKRMemArchive[20] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13JKRMemArchiveFv, - (void*)unmount__13JKRFileLoaderFv, - (void*)becomeCurrent__10JKRArchiveFPCc, - (void*)getResource__10JKRArchiveFPCc, - (void*)getResource__10JKRArchiveFUlPCc, - (void*)readResource__10JKRArchiveFPvUlPCc, - (void*)readResource__10JKRArchiveFPvUlUlPCc, - (void*)removeResourceAll__13JKRMemArchiveFv, - (void*)removeResource__13JKRMemArchiveFPv, - (void*)detachResource__10JKRArchiveFPv, - (void*)getResSize__10JKRArchiveCFPCv, - (void*)countFile__10JKRArchiveCFPCc, - (void*)getFirstFile__10JKRArchiveCFPCc, - (void*)getExpandedResSize__13JKRMemArchiveCFPCv, - (void*)fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl, - (void*)fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl, - (void*)setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl, - (void*)getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry, -}; - /* 802D69B8-802D6A6C 2D12F8 00B4+00 0/0 2/2 0/0 .text * __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRMemArchive::JKRMemArchive(s32 param_0, JKRArchive::EMountDirection param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection.s" +JKRMemArchive::JKRMemArchive(long entryNum, JKRArchive::EMountDirection mountDirection) + : JKRArchive(entryNum, MOUNT_MEM) { + mIsMounted = false; + mMountDirection = mountDirection; + if (!open(entryNum, mMountDirection)) { + return; + } + + mVolumeType = 'RARC'; + mVolumeName = mStringTable + (u32)mNodes->name; + + getVolumeList().prepend(&mFileLoaderLink); + mIsMounted = true; } -#pragma pop /* 802D6A6C-802D6B24 2D13AC 00B8+00 0/0 2/2 0/0 .text __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRMemArchive::JKRMemArchive(void* param_0, u32 param_1, JKRMemBreakFlag param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag.s" +JKRMemArchive::JKRMemArchive(void* buffer, u32 bufferSize, JKRMemBreakFlag param_3) + : JKRArchive((s32)buffer, MOUNT_MEM) { + mIsMounted = false; + if (!open(buffer, bufferSize, param_3)) { + return; + } + + mVolumeType = 'RARC'; + mVolumeName = mStringTable + (u32)mNodes->name; + + getVolumeList().prepend(&mFileLoaderLink); + mIsMounted = true; } -#pragma pop /* 802D6B24-802D6BCC 2D1464 00A8+00 1/0 0/0 0/0 .text __dt__13JKRMemArchiveFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRMemArchive::~JKRMemArchive() { - nofralloc -#include "asm/JSystem/JKernel/JKRMemArchive/__dt__13JKRMemArchiveFv.s" +JKRMemArchive::~JKRMemArchive() { + if (mIsMounted == true) { + if (mIsOpen) { + if (mArcHeader) + JKRFreeToHeap(mHeap, mArcHeader); + } + + getVolumeList().remove(&mFileLoaderLink); + mIsMounted = false; + } } -#pragma pop /* 802D6BCC-802D6D30 2D150C 0164+00 1/1 0/0 0/0 .text * open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection */ +// full match, except: +// mArchiveData = (u8*)(mArcHeader->file_data_offset + mArcHeader->header_length + (u32)mArcHeader); +// where the addition is swapped. +#ifdef NONMATCHING +bool JKRMemArchive::open(long entryNum, JKRArchive::EMountDirection mountDirection) { + mArcHeader = NULL; + mArcInfoBlock = NULL; + mArchiveData = NULL; + mNodes = NULL; + mFiles = NULL; + mStringTable = NULL; + mIsOpen = false; + mMountDirection = mountDirection; + + if (mMountDirection == JKRArchive::HEAD) { + u32 loadedSize; + mArcHeader = (SArcHeader*)JKRDvdRipper::loadToMainRAM( + entryNum, NULL, EXPAND_SWITCH_UNKNOWN1, 0, mHeap, JKRDvdRipper::FORWARD, 0, + &mCompression, &loadedSize); + if (mArcHeader) { + DCInvalidateRange(mArcHeader, loadedSize); + } + } else { + u32 loadedSize; + mArcHeader = (SArcHeader*)JKRDvdRipper::loadToMainRAM( + entryNum, NULL, EXPAND_SWITCH_UNKNOWN1, 0, mHeap, JKRDvdRipper::BACKWARD, 0, + &mCompression, &loadedSize); + if (mArcHeader) { + DCInvalidateRange(mArcHeader, loadedSize); + } + } + + if (!mArcHeader) { + mMountMode = UNKNOWN_MOUNT_MODE; + } else { + ASSERT(mArcHeader->signature == 'RARC'); + mArcInfoBlock = (SArcDataInfo*)((u8*)mArcHeader + mArcHeader->header_length); + mNodes = (SDirEntry*)((u8*)&mArcInfoBlock->num_nodes + mArcInfoBlock->node_offset); + mFiles = (SDIFileEntry*)((u8*)&mArcInfoBlock->num_nodes + mArcInfoBlock->file_entry_offset); + mStringTable = (char*)((u8*)&mArcInfoBlock->num_nodes + mArcInfoBlock->string_table_offset); + + mArchiveData = + (u8*)(mArcHeader->file_data_offset + mArcHeader->header_length + (u32)mArcHeader); + mIsOpen = true; + } + + return mMountMode != UNKNOWN_MOUNT_MODE; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRMemArchive::open(s32 param_0, JKRArchive::EMountDirection param_1) { +asm bool JKRMemArchive::open(s32 param_0, JKRArchive::EMountDirection param_1) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection.s" } #pragma pop +#endif /* 802D6D30-802D6DDC 2D1670 00AC+00 1/1 0/0 0/0 .text open__13JKRMemArchiveFPvUl15JKRMemBreakFlag */ +// full match, except: +// mArchiveData = (u8*)(mArcHeader->file_data_offset + mArcHeader->header_length + (u32)mArcHeader); +// where the addition is swapped. +#ifdef NONMATCHING +bool JKRMemArchive::open(void* buffer, u32 bufferSize, JKRMemBreakFlag flag) { + mArcHeader = (SArcHeader*)buffer; + + ASSERT(mArcHeader->signature == 'RARC'); + mArcInfoBlock = (SArcDataInfo*)((u8*)mArcHeader + mArcHeader->header_length); + mNodes = (SDirEntry*)((u8*)&mArcInfoBlock->num_nodes + mArcInfoBlock->node_offset); + mFiles = (SDIFileEntry*)((u8*)&mArcInfoBlock->num_nodes + mArcInfoBlock->file_entry_offset); + mStringTable = (char*)((u8*)&mArcInfoBlock->num_nodes + mArcInfoBlock->string_table_offset); + mArchiveData = + (u8*)(mArcHeader->file_data_offset + mArcHeader->header_length + (u32)mArcHeader); + mIsOpen = (flag == JKRMEMBREAK_FLAG_UNKNOWN1); + mHeap = JKRHeap::findFromRoot(buffer); + mCompression = JKRDecomp::NONE; + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRMemArchive::open(void* param_0, u32 param_1, JKRMemBreakFlag param_2) { +asm bool JKRMemArchive::open(void* param_0, u32 param_1, JKRMemBreakFlag param_2) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/open__13JKRMemArchiveFPvUl15JKRMemBreakFlag.s" } #pragma pop +#endif /* 802D6DDC-802D6E10 2D171C 0034+00 1/0 0/0 0/0 .text * fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRMemArchive::fetchResource(JKRArchive::SDIFileEntry* param_0, u32* param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl.s" +void* JKRMemArchive::fetchResource(SDIFileEntry* fileEntry, u32* resourceSize) { + if (!fileEntry->data) { + fileEntry->data = mArchiveData + fileEntry->data_offset; + } + + if (resourceSize) { + *resourceSize = fileEntry->data_size; + } + + return fileEntry->data; } -#pragma pop /* 802D6E10-802D6ED0 2D1750 00C0+00 1/0 0/0 0/0 .text * fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRMemArchive::fetchResource(void* param_0, u32 param_1, JKRArchive::SDIFileEntry* param_2, - u32* param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl.s" +void* JKRMemArchive::fetchResource(void* buffer, u32 bufferSize, SDIFileEntry* fileEntry, + u32* resourceSize) { + u32 srcLength = fileEntry->data_size; + if (srcLength > bufferSize) { + srcLength = bufferSize; + } + + if (fileEntry->data != NULL) { + memcpy(buffer, fileEntry->data, srcLength); + } else { + JKRCompression compression = JKRConvertAttrToCompressionType(fileEntry->getAttr()); + void* data = mArchiveData + fileEntry->data_offset; + srcLength = + fetchResource_subroutine((u8*)data, srcLength, (u8*)buffer, bufferSize, compression); + } + + if (resourceSize) { + *resourceSize = srcLength; + } + + return buffer; } -#pragma pop /* 802D6ED0-802D6F20 2D1810 0050+00 1/0 0/0 0/0 .text removeResourceAll__13JKRMemArchiveFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRMemArchive::removeResourceAll() { - nofralloc -#include "asm/JSystem/JKernel/JKRMemArchive/removeResourceAll__13JKRMemArchiveFv.s" +void JKRMemArchive::removeResourceAll(void) { + ASSERT(isMounted()); + + if (mArcInfoBlock == NULL) + return; + if (mMountMode == MOUNT_MEM) + return; + + // !@bug: looping over file entries without incrementing the fileEntry pointer. Thus, only the + // first fileEntry will clear/remove the resource data. + SDIFileEntry* fileEntry = mFiles; + for (int i = 0; i < mArcInfoBlock->num_file_entries; i++) { + if (fileEntry->data) { + fileEntry->data = NULL; + } + } } -#pragma pop /* 802D6F20-802D6F5C 2D1860 003C+00 1/0 0/0 0/0 .text removeResource__13JKRMemArchiveFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRMemArchive::removeResource(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRMemArchive/removeResource__13JKRMemArchiveFPv.s" +bool JKRMemArchive::removeResource(void* resource) { + ASSERT(isMounted()); + + SDIFileEntry* fileEntry = findPtrResource(resource); + if (!fileEntry) + return false; + + fileEntry->data = NULL; + return true; } -#pragma pop /* ############################################################################################## */ /* 8039D160-8039D160 0297C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D160 = "JKRMemArchive.cpp"; -SECTION_DEAD static char const* const stringBase_8039D172 = "%s"; -SECTION_DEAD static char const* const stringBase_8039D175 = "??? bad sequence\n"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039D187 = ""; -#pragma pop +// #pragma push +// #pragma force_active on +// SECTION_DEAD static char const* const stringBase_8039D160 = "JKRMemArchive.cpp"; +// SECTION_DEAD static char const* const stringBase_8039D172 = "%s"; +// SECTION_DEAD static char const* const stringBase_8039D175 = "??? bad sequence\n"; +// /* @stringBase0 padding */ +// SECTION_DEAD static char const* const pad_8039D187 = ""; +// #pragma pop /* 802D6F5C-802D7030 2D189C 00D4+00 1/1 1/1 0/0 .text * fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRMemArchive::fetchResource_subroutine(u8* param_0, u32 param_1, u8* param_2, u32 param_3, - int param_4) { - nofralloc -#include "asm/JSystem/JKernel/JKRMemArchive/fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli.s" +u32 JKRMemArchive::fetchResource_subroutine(u8* src, u32 srcLength, u8* dst, u32 dstLength, + JKRCompression compression) { + switch (compression) { + case COMPRESSION_NONE: + if (srcLength > dstLength) { + srcLength = dstLength; + } + + memcpy(dst, src, srcLength); + return srcLength; + + case COMPRESSION_YAY0: + case COMPRESSION_YAZ0: + u32 expendedSize = JKRDecompExpandSize((SArcHeader*)src); + srcLength = expendedSize; + if (expendedSize > dstLength) { + srcLength = dstLength; + } + + JKRDecompress(src, dst, srcLength, 0); + return srcLength; + + default: { + JUTException::panic_f("JKRMemArchive.cpp", 0x2d3, "%s", "??? bad sequence\n"); + } break; + } + + return 0; } -#pragma pop /* 802D7030-802D70C0 2D1970 0090+00 1/0 0/0 0/0 .text getExpandedResSize__13JKRMemArchiveCFPCv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRMemArchive::getExpandedResSize(void const* param_0) const { - nofralloc -#include "asm/JSystem/JKernel/JKRMemArchive/getExpandedResSize__13JKRMemArchiveCFPCv.s" +u32 JKRMemArchive::getExpandedResSize(const void* resource) const { + SDIFileEntry* fileEntry = findPtrResource(resource); + if (fileEntry == NULL) + return -1; + + if (fileEntry->isCompressed() == false) { + return getResSize(resource); + } else { + return JKRDecompExpandSize((SArcHeader*)resource); + } } -#pragma pop /* 8039D160-8039D160 0297C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRSolidHeap.cpp b/libs/JSystem/JKernel/JKRSolidHeap.cpp index 75ca1c2971..511dacd087 100644 --- a/libs/JSystem/JKernel/JKRSolidHeap.cpp +++ b/libs/JSystem/JKernel/JKRSolidHeap.cpp @@ -5,59 +5,7 @@ #include "JSystem/JKernel/JKRSolidHeap.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JKRHeap { - struct TState {}; - - /* 800065D8 */ bool dump_sort(); - /* 802CE138 */ JKRHeap(void*, u32, JKRHeap*, bool); - /* 802CE264 */ ~JKRHeap(); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE500 */ void free(void*, JKRHeap*); - /* 802CE574 */ void callAllDisposer(); - /* 802CE684 */ void resize(void*, u32); - /* 802CE72C */ void getFreeSize(); - /* 802CE784 */ void getTotalFreeSize(); - /* 802CE7DC */ void getMaxAllocatableSize(int); - /* 802CEAA0 */ void dispose(void*, void*); - /* 802CEAC0 */ void dispose(); - /* 802CEDA0 */ void state_dump(JKRHeap::TState const&) const; - /* 802CEDA4 */ bool do_changeGroupID(u8); - /* 802CEDAC */ bool do_getCurrentGroupId(); - - static u8 sRootHeap[4]; - static u8 mErrorHandler[4]; -}; - -struct JKRSolidHeap { - /* 802D0A24 */ void create(u32, JKRHeap*, bool); - /* 802D0AD0 */ void do_destroy(); - /* 802D0B30 */ JKRSolidHeap(void*, u32, JKRHeap*, bool); - /* 802D0B8C */ ~JKRSolidHeap(); - /* 802D0BF4 */ void adjustSize(); - /* 802D0CB0 */ void do_alloc(u32, int); - /* 802D0D58 */ void allocFromHead(u32, int); - /* 802D0E20 */ void allocFromTail(u32, int); - /* 802D0EE4 */ void do_free(void*); - /* 802D0F14 */ void do_freeAll(); - /* 802D0F74 */ void do_freeTail(); - /* 802D1000 */ void do_fillFreeArea(); - /* 802D1004 */ void do_resize(void*, u32); - /* 802D1038 */ void do_getSize(void*); - /* 802D106C */ void check(); - /* 802D10FC */ void dump(); - /* 802D11FC */ void state_register(JKRHeap::TState*, u32) const; - /* 802D1258 */ void state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; - /* 802D1288 */ void getHeapType(); - /* 802D1294 */ void do_getFreeSize(); - /* 802D129C */ void do_getMaxFreeBlock(); - /* 802D12A4 */ void do_getTotalFreeSize(); -}; +#include "global.h" // // Forward References: @@ -107,10 +55,8 @@ extern "C" void __dl__FPv(); extern "C" void state_dump__7JKRHeapCFRCQ27JKRHeap6TState(); extern "C" bool do_changeGroupID__7JKRHeapFUc(); extern "C" bool do_getCurrentGroupId__7JKRHeapFv(); -extern "C" void JUTReportConsole_f(); -extern "C" void JUTWarningConsole_f(); -extern "C" void OSLockMutex(); -extern "C" void OSUnlockMutex(); +extern "C" void JUTReportConsole_f(const char*, ...); +extern "C" void JUTWarningConsole_f(const char*, ...); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_28(); @@ -124,94 +70,119 @@ extern "C" u8 mErrorHandler__7JKRHeap[4]; /* 802D0A24-802D0AD0 2CB364 00AC+00 0/0 4/4 1/1 .text create__12JKRSolidHeapFUlP7JKRHeapb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::create(u32 param_0, JKRHeap* param_1, bool param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/create__12JKRSolidHeapFUlP7JKRHeapb.s" +JKRSolidHeap* JKRSolidHeap::create(u32 size, JKRHeap* heap, bool useErrorHandler) { + if (!heap) { + heap = getRootHeap(); + } + + if (size == 0xffffffff) { + size = heap->getMaxAllocatableSize(0x10); + } + + u32 alignedSize = ALIGN_PREV(size, 0x10); + u32 solidHeapSize = ALIGN_NEXT(sizeof(JKRSolidHeap), 0x10); + if (alignedSize < solidHeapSize) + return NULL; + + JKRSolidHeap* solidHeap = (JKRSolidHeap*)JKRAllocFromHeap(heap, alignedSize, 0x10); + void* dataPtr = (u8*)solidHeap + solidHeapSize; + if (!solidHeap) + return NULL; + + solidHeap = + new (solidHeap) JKRSolidHeap(dataPtr, alignedSize - solidHeapSize, heap, useErrorHandler); + return solidHeap; } -#pragma pop /* 802D0AD0-802D0B30 2CB410 0060+00 1/0 0/0 0/0 .text do_destroy__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_destroy() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_destroy__12JKRSolidHeapFv.s" +void JKRSolidHeap::do_destroy(void) { + JKRHeap* parent = getParent(); + if (parent) { + this->~JKRSolidHeap(); + JKRFreeToHeap(parent, this); + } } -#pragma pop - -/* ############################################################################################## */ -/* 803CC030-803CC090 029150 0060+00 2/2 0/0 0/0 .data __vt__12JKRSolidHeap */ -SECTION_DATA extern void* __vt__12JKRSolidHeap[24] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12JKRSolidHeapFv, - (void*)callAllDisposer__7JKRHeapFv, - (void*)getHeapType__12JKRSolidHeapFv, - (void*)check__12JKRSolidHeapFv, - (void*)dump_sort__7JKRHeapFv, - (void*)dump__12JKRSolidHeapFv, - (void*)do_destroy__12JKRSolidHeapFv, - (void*)do_alloc__12JKRSolidHeapFUli, - (void*)do_free__12JKRSolidHeapFPv, - (void*)do_freeAll__12JKRSolidHeapFv, - (void*)do_freeTail__12JKRSolidHeapFv, - (void*)do_fillFreeArea__12JKRSolidHeapFv, - (void*)do_resize__12JKRSolidHeapFPvUl, - (void*)do_getSize__12JKRSolidHeapFPv, - (void*)do_getFreeSize__12JKRSolidHeapFv, - (void*)do_getMaxFreeBlock__12JKRSolidHeapFv, - (void*)do_getTotalFreeSize__12JKRSolidHeapFv, - (void*)do_changeGroupID__7JKRHeapFUc, - (void*)do_getCurrentGroupId__7JKRHeapFv, - (void*)state_register__12JKRSolidHeapCFPQ27JKRHeap6TStateUl, - (void*)state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState, - (void*)state_dump__7JKRHeapCFRCQ27JKRHeap6TState, -}; /* 802D0B30-802D0B8C 2CB470 005C+00 1/1 0/0 0/0 .text __ct__12JKRSolidHeapFPvUlP7JKRHeapb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRSolidHeap::JKRSolidHeap(void* param_0, u32 param_1, JKRHeap* param_2, bool param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/__ct__12JKRSolidHeapFPvUlP7JKRHeapb.s" +JKRSolidHeap::JKRSolidHeap(void* start, u32 size, JKRHeap* parent, bool useErrorHandler) + : JKRHeap(start, size, parent, useErrorHandler) { + mFreeSize = mSize; + mSolidHead = (u8*)mStart; + mSolidTail = (u8*)mEnd; + field_0x78 = NULL; } -#pragma pop /* 802D0B8C-802D0BF4 2CB4CC 0068+00 1/0 0/0 0/0 .text __dt__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRSolidHeap::~JKRSolidHeap() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/__dt__12JKRSolidHeapFv.s" +JKRSolidHeap::~JKRSolidHeap(void) { + dispose(); } -#pragma pop /* 802D0BF4-802D0CB0 2CB534 00BC+00 0/0 5/5 1/1 .text adjustSize__12JKRSolidHeapFv */ +#ifdef NONMATCHING +s32 JKRSolidHeap::adjustSize(void) { + JKRHeap* parent = getParent(); + if (parent) { + lock(); + s32 start = mStart; + s32 newSize = (s32)this->mSolidHead - ALIGN_NEXT(start, 0x20); + s32 newSizeThis = newSize + (start - (s32)this); + s32 actualSize = parent->resize(this, newSizeThis); + if (actualSize != -1) { + mFreeSize = 0; + mSize = newSize; + mEnd = mStart + mSize; + mSolidHead = (void*)mEnd; + mSolidTail = (void*)mEnd; + } + + unlock(); + + return newSizeThis; + } + + return -1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRSolidHeap::adjustSize() { +asm s32 JKRSolidHeap::adjustSize() { nofralloc #include "asm/JSystem/JKernel/JKRSolidHeap/adjustSize__12JKRSolidHeapFv.s" } #pragma pop +#endif /* 802D0CB0-802D0D58 2CB5F0 00A8+00 1/0 0/0 0/0 .text do_alloc__12JKRSolidHeapFUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_alloc(u32 param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_alloc__12JKRSolidHeapFUli.s" +void* JKRSolidHeap::do_alloc(u32 size, int alignment) { + if (alignment != 0) { + JUT_ASSERT(abs(alignment)); + JUT_ASSERT(isPower2(alignment)); + } + + lock(); + + if (size < 4) { + size = 4; + } + + void* ptr; + if (alignment >= 0) { + ptr = allocFromHead(size, alignment < 4 ? 4 : alignment); + } else { + if (-alignment < 4) { + alignment = 4; + } else { + alignment = -alignment; + } + + ptr = allocFromTail(size, alignment); + } + + unlock(); + return ptr; } -#pragma pop /* ############################################################################################## */ /* 8039CE50-8039CE50 0294B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -223,14 +194,41 @@ SECTION_DEAD static char const* const stringBase_8039CE50 = /* 802D0D58-802D0E20 2CB698 00C8+00 1/1 0/0 0/0 .text allocFromHead__12JKRSolidHeapFUli */ +#ifdef NONMATCHING +void* JKRSolidHeap::allocFromHead(u32 size, int alignment) { + void* ptr; + u32 offset; + u32 alignedSize; + u32 alignedStart; + u32 totalSize; + alignedSize = ALIGN_NEXT(size, 0x4); + ptr = NULL; + alignedStart = (alignment - 1 + (u32)mSolidHead) & ~(alignment - 1); + offset = alignedStart - (u32)mSolidHead; + totalSize = alignedSize + offset; + if (totalSize <= mFreeSize) { + ptr = (void*)alignedStart; + mSolidHead += totalSize; + mFreeSize -= totalSize; + } else { + JUTWarningConsole_f("allocFromHead: cannot alloc memory (0x%x byte).\n", totalSize); + if (getErrorFlag() == true) { + callErrorHandler(this, alignedSize, alignment); + } + } + + return ptr; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRSolidHeap::allocFromHead(u32 param_0, int param_1) { +asm void* JKRSolidHeap::allocFromHead(u32 param_0, int param_1) { nofralloc #include "asm/JSystem/JKernel/JKRSolidHeap/allocFromHead__12JKRSolidHeapFUli.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039CE50-8039CE50 0294B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -245,146 +243,120 @@ SECTION_DEAD static char const* const stringBase_8039CE81 = #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRSolidHeap::allocFromTail(u32 param_0, int param_1) { +asm void* JKRSolidHeap::allocFromTail(u32 param_0, int param_1) { nofralloc #include "asm/JSystem/JKernel/JKRSolidHeap/allocFromTail__12JKRSolidHeapFUli.s" } #pragma pop -/* ############################################################################################## */ -/* 8039CE50-8039CE50 0294B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CEB2 = - "free: cannot free memory block (%08x)\n"; -#pragma pop - /* 802D0EE4-802D0F14 2CB824 0030+00 1/0 0/0 0/0 .text do_free__12JKRSolidHeapFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_free(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_free__12JKRSolidHeapFPv.s" +void JKRSolidHeap::do_free(void* ptr) { + JUTWarningConsole_f("free: cannot free memory block (%08x)\n", ptr); } -#pragma pop /* 802D0F14-802D0F74 2CB854 0060+00 1/0 0/0 0/0 .text do_freeAll__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_freeAll() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_freeAll__12JKRSolidHeapFv.s" +void JKRSolidHeap::do_freeAll(void) { + lock(); + + this->JKRHeap::callAllDisposer(); + mFreeSize = mSize; + mSolidHead = (u8*)mStart; + mSolidTail = (u8*)mEnd; + field_0x78 = NULL; + + unlock(); } -#pragma pop /* 802D0F74-802D1000 2CB8B4 008C+00 1/0 0/0 0/0 .text do_freeTail__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_freeTail() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_freeTail__12JKRSolidHeapFv.s" +void JKRSolidHeap::do_freeTail(void) { + lock(); + + if (mSolidTail != mEnd) { + dispose(mSolidTail, mEnd); + } + + this->mFreeSize = ((u32)mEnd - (u32)mSolidTail + mFreeSize); + this->mSolidTail = mEnd; + + JKRSolidHeap::Unknown* unknown = field_0x78; + while (unknown) { + unknown->field_0xc = mEnd; + unknown = unknown->mNext; + } + + unlock(); } -#pragma pop /* 802D1000-802D1004 2CB940 0004+00 1/0 0/0 0/0 .text do_fillFreeArea__12JKRSolidHeapFv */ void JKRSolidHeap::do_fillFreeArea() { - /* empty function */ +#if DEBUG + fillMemory(mSolidHead, mEnd - mSolidHead, (uint)DAT_8074a8ba); +#endif } -/* ############################################################################################## */ -/* 8039CE50-8039CE50 0294B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CED9 = - "resize: cannot resize memory block (%08x: %d)\n"; -#pragma pop - /* 802D1004-802D1038 2CB944 0034+00 1/0 0/0 0/0 .text do_resize__12JKRSolidHeapFPvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_resize(void* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_resize__12JKRSolidHeapFPvUl.s" +s32 JKRSolidHeap::do_resize(void* ptr, u32 newSize) { + JUTWarningConsole_f("resize: cannot resize memory block (%08x: %d)\n", ptr, newSize); + return -1; } -#pragma pop - -/* ############################################################################################## */ -/* 8039CE50-8039CE50 0294B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CF08 = - "getSize: cannot get memory block size (%08x)\n"; -#pragma pop /* 802D1038-802D106C 2CB978 0034+00 1/0 0/0 0/0 .text do_getSize__12JKRSolidHeapFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_getSize(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_getSize__12JKRSolidHeapFPv.s" +s32 JKRSolidHeap::do_getSize(void* ptr) { + JUTWarningConsole_f("getSize: cannot get memory block size (%08x)\n", ptr); + return -1; } -#pragma pop - -/* ############################################################################################## */ -/* 8039CE50-8039CE50 0294B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CF36 = - "check: bad total memory block size (%08X, %08X)\n"; -#pragma pop /* 802D106C-802D10FC 2CB9AC 0090+00 1/0 0/0 0/0 .text check__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::check() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/check__12JKRSolidHeapFv.s" +bool JKRSolidHeap::check(void) { + lock(); + + bool result = true; + u32 calculatedSize = + ((u32)mSolidHead - (u32)mStart) + mFreeSize + ((u32)mEnd - (u32)mSolidTail); + u32 availableSize = mSize; + if (calculatedSize != availableSize) { + result = false; + JUTWarningConsole_f("check: bad total memory block size (%08X, %08X)\n", availableSize, + calculatedSize); + } + + unlock(); + return result; } -#pragma pop - -/* ############################################################################################## */ -/* 8039CE50-8039CE50 0294B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CF67 = "head %08x: %08x\n"; -SECTION_DEAD static char const* const stringBase_8039CF78 = "tail %08x: %08x\n"; -SECTION_DEAD static char const* const stringBase_8039CF89 = "%d / %d bytes (%6.2f%%) used\n"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039CFA7 = ""; -#pragma pop - -/* 80455FA8-80455FB0 0045A8 0004+04 1/1 0/0 0/0 .sdata2 @693 */ -SECTION_SDATA2 static f32 lit_693[1 + 1 /* padding */] = { - 100.0f, - /* padding */ - 0.0f, -}; - -/* 80455FB0-80455FB8 0045B0 0008+00 1/1 0/0 0/0 .sdata2 @695 */ -SECTION_SDATA2 static f64 lit_695 = 4503601774854144.0 /* cast s32 to float */; - -/* 80455FB8-80455FC0 0045B8 0008+00 1/1 0/0 0/0 .sdata2 @697 */ -SECTION_SDATA2 static f64 lit_697 = 4503599627370496.0 /* cast u32 to float */; /* 802D10FC-802D11FC 2CBA3C 0100+00 1/0 0/0 0/0 .text dump__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::dump() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/dump__12JKRSolidHeapFv.s" -} -#pragma pop +bool JKRSolidHeap::dump(void) { + bool result = check(); + lock(); + u32 headSize = ((u32)mSolidHead - (u32)mStart); + u32 tailSize = ((u32)mEnd - (u32)mSolidTail); + s32 htSize = headSize + tailSize; + JUTReportConsole_f("head %08x: %08x\n", mStart, headSize); + JUTReportConsole_f("tail %08x: %08x\n", mSolidTail, ((u32)mEnd - (u32)mSolidTail)); + + u32 totalSize = mSize; + float percentage = (float)htSize / (float)totalSize * 100.0f; + JUTReportConsole_f("%d / %d bytes (%6.2f%%) used\n", htSize, totalSize, percentage); + unlock(); + + return result; +} /* 802D11FC-802D1258 2CBB3C 005C+00 1/0 0/0 0/0 .text * state_register__12JKRSolidHeapCFPQ27JKRHeap6TStateUl */ +// full match expect using the wrong register +#ifdef NONMATCHING +void JKRSolidHeap::state_register(JKRHeap::TState* p, u32 id) const { + JUT_ASSERT(p != 0); + JUT_ASSERT(p->getHeap() == this); + + getState_(p); + setState_u32ID_(p, id); + setState_uUsedSize_(p, getUsedSize()); + setState_u32CheckCode_(p, (u32)mSolidHead + (u32)mSolidTail * 3); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -393,57 +365,43 @@ asm void JKRSolidHeap::state_register(JKRHeap::TState* param_0, u32 param_1) con #include "asm/JSystem/JKernel/JKRSolidHeap/state_register__12JKRSolidHeapCFPQ27JKRHeap6TStateUl.s" } #pragma pop +#endif /* 802D1258-802D1288 2CBB98 0030+00 1/0 0/0 0/0 .text * state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::state_compare(JKRHeap::TState const& param_0, - JKRHeap::TState const& param_1) const { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState.s" +bool JKRSolidHeap::state_compare(JKRHeap::TState const& r1, JKRHeap::TState const& r2) const { + JUT_ASSERT(r1.getHeap() == r2.getHeap()); + + bool result = true; + if (r1.getCheckCode() != r2.getCheckCode()) { + result = false; + } + + if (r1.getUsedSize() != r2.getUsedSize()) { + result = false; + } + + return result; } -#pragma pop /* 802D1288-802D1294 2CBBC8 000C+00 1/0 0/0 0/0 .text getHeapType__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::getHeapType() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/getHeapType__12JKRSolidHeapFv.s" +u32 JKRSolidHeap::getHeapType(void) { + return 'SLID'; } -#pragma pop /* 802D1294-802D129C 2CBBD4 0008+00 1/0 0/0 0/0 .text do_getFreeSize__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_getFreeSize() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_getFreeSize__12JKRSolidHeapFv.s" +s32 JKRSolidHeap::do_getFreeSize(void) { + return mFreeSize; } -#pragma pop /* 802D129C-802D12A4 2CBBDC 0008+00 1/0 0/0 0/0 .text do_getMaxFreeBlock__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_getMaxFreeBlock() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_getMaxFreeBlock__12JKRSolidHeapFv.s" +void* JKRSolidHeap::do_getMaxFreeBlock(void) { + return mSolidHead; } -#pragma pop /* 802D12A4-802D12C4 2CBBE4 0020+00 1/0 0/0 0/0 .text do_getTotalFreeSize__12JKRSolidHeapFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRSolidHeap::do_getTotalFreeSize() { - nofralloc -#include "asm/JSystem/JKernel/JKRSolidHeap/do_getTotalFreeSize__12JKRSolidHeapFv.s" +s32 JKRSolidHeap::do_getTotalFreeSize(void) { + return getFreeSize(); } -#pragma pop /* 8039CE50-8039CE50 0294B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRThread.cpp b/libs/JSystem/JKernel/JKRThread.cpp index 277bd90d7a..93562391fb 100644 --- a/libs/JSystem/JKernel/JKRThread.cpp +++ b/libs/JSystem/JKernel/JKRThread.cpp @@ -4,6 +4,7 @@ // #include "JSystem/JKernel/JKRThread.h" +#include "JSystem/JKernel/JKRExpHeap.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,93 +12,12 @@ // Types: // -struct OSThread {}; - struct JUTConsole { /* 802E75EC */ void clear(); /* 802E7BB8 */ void print_f(char const*, ...); /* 802E7C38 */ void print(char const*); }; -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBE74 */ JSUPtrList(bool); - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template3 { - /* 802D1EFC */ void func_802D1EFC(void* _this); -}; - -/* JSUList */ -struct JSUList__template4 { - /* 802D1F50 */ void func_802D1F50(void* _this); -}; - -struct JKRHeap { - /* 802CE438 */ void becomeCurrentHeap(); - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - /* 802CE500 */ void free(void*, JKRHeap*); - /* 802CE83C */ void findFromRoot(void*); - /* 802CEBA8 */ void isSubHeap(JKRHeap*) const; - - static u8 sSystemHeap[4]; - static u8 sCurrentHeap[4]; - static u8 sRootHeap[4]; -}; - -struct JKRThread { - /* 802D1568 */ JKRThread(u32, int, int); - /* 802D16B8 */ JKRThread(OSThread*, int); - /* 802D1610 */ JKRThread(JKRHeap*, u32, int, int); - /* 802D1758 */ ~JKRThread(); - /* 802D1830 */ void setCommon_mesgQueue(JKRHeap*, int); - /* 802D18A4 */ void setCommon_heapSpecified(JKRHeap*, u32, int); - /* 802D1934 */ void start(void*); - /* 802D1960 */ void searchThread(OSThread*); - /* 802D1E14 */ bool run(); - - static u8 sThreadList[12]; -}; - -struct JKRThreadName_ {}; - -struct JKRThreadSwitch { - /* 802D199C */ JKRThreadSwitch(JKRHeap*); - /* 802D1A14 */ void createManager(JKRHeap*); - /* 802D1A70 */ void enter(JKRThread*, int); - /* 802D1AE4 */ void callback(OSThread*, OSThread*); - /* 802D1C74 */ void draw(JKRThreadName_*, JUTConsole*); - /* 802D1E1C */ void draw(JKRThreadName_*); - /* 802D1E4C */ ~JKRThreadSwitch(); - - static u8 sManager[4]; - static u8 sTotalCount[4]; - static u8 sTotalStart[4]; - static u8 mUserPreCallback[4]; - static u8 mUserPostCallback[4]; -}; - -struct JKRTask { - static u8 sTaskList[12]; - static u8 sEndMesgQueue[32]; -}; - -struct JKRDisposer { - /* 802D147C */ JKRDisposer(); - /* 802D14E4 */ ~JKRDisposer(); -}; - // // Forward References: // @@ -155,13 +75,6 @@ extern "C" void clear__10JUTConsoleFv(); extern "C" void print_f__10JUTConsoleFPCce(); extern "C" void print__10JUTConsoleFPCc(); extern "C" void JUTWarningConsole(); -extern "C" void OSInitMessageQueue(); -extern "C" void OSSetSwitchThreadCallback(); -extern "C" void OSIsThreadTerminated(); -extern "C" void OSCreateThread(); -extern "C" void OSCancelThread(); -extern "C" void OSDetachThread(); -extern "C" void OSGetTick(); extern "C" void __register_global_object(); extern "C" void __cvt_fp2unsigned(); extern "C" void _savegpr_25(); @@ -177,120 +90,124 @@ extern "C" void sprintf(); extern "C" u8 sSystemHeap__7JKRHeap[4]; extern "C" u8 sCurrentHeap__7JKRHeap[4]; extern "C" u8 sRootHeap__7JKRHeap[4]; +extern "C" void* __vt__15JKRThreadSwitch; // // Declarations: // -/* ############################################################################################## */ -/* 803CC100-803CC114 029220 0014+00 2/2 0/0 0/0 .data __vt__15JKRThreadSwitch */ -SECTION_DATA extern void* __vt__15JKRThreadSwitch[5] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)draw__15JKRThreadSwitchFP14JKRThreadName_P10JUTConsole, - (void*)draw__15JKRThreadSwitchFP14JKRThreadName_, - (void*)__dt__15JKRThreadSwitchFv, -}; - -/* 803CC114-803CC128 029234 0010+04 4/4 0/0 0/0 .data __vt__9JKRThread */ -SECTION_DATA extern void* __vt__9JKRThread[4 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__9JKRThreadFv, - (void*)run__9JKRThreadFv, - /* padding */ - NULL, -}; - /* 802D1568-802D1610 2CBEA8 00A8+00 0/0 4/4 0/0 .text __ct__9JKRThreadFUlii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRThread::JKRThread(u32 param_0, int param_1, int param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFUlii.s" +JKRThread::JKRThread(u32 stack_size, int message_count, int param_3) : mThreadListLink(this) { + mSwitchCount = 0; + mCost = 0; + field_0x6c = 0; + field_0x60 = 0; + field_0x70 = 0; + + JKRHeap* heap = JKRHeap::findFromRoot(this); + if (heap == NULL) { + heap = JKRHeap::getSystemHeap(); + } + + setCommon_heapSpecified(heap, stack_size, param_3); + setCommon_mesgQueue(mHeap, message_count); } -#pragma pop /* 802D1610-802D16B8 2CBF50 00A8+00 0/0 2/2 0/0 .text __ct__9JKRThreadFP7JKRHeapUlii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRThread::JKRThread(JKRHeap* param_0, u32 param_1, int param_2, int param_3) { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFP7JKRHeapUlii.s" +JKRThread::JKRThread(JKRHeap* heap, u32 stack_size, int message_count, int param_4) + : mThreadListLink(this) { + mSwitchCount = 0; + mCost = 0; + field_0x6c = 0; + field_0x60 = 0; + field_0x70 = 0; + + if (heap == NULL) { + heap = JKRHeap::getCurrentHeap(); + } + + setCommon_heapSpecified(heap, stack_size, param_4); + setCommon_mesgQueue(mHeap, message_count); } -#pragma pop /* 802D16B8-802D1758 2CBFF8 00A0+00 0/0 5/5 0/0 .text __ct__9JKRThreadFP8OSThreadi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRThread::JKRThread(OSThread* param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/__ct__9JKRThreadFP8OSThreadi.s" -} -#pragma pop +JKRThread::JKRThread(OSThread* thread, int message_count) : mThreadListLink(this) { + mSwitchCount = 0; + mCost = 0; + field_0x6c = 0; + field_0x60 = 0; + field_0x70 = 0; + mHeap = NULL; + mThreadRecord = thread; + mStackSize = (u32)thread->stack_end - (u32)thread->stack_base; + mStackMemory = thread->stack_base; -/* ############################################################################################## */ -/* 80434280-8043428C 060FA0 000C+00 1/1 0/0 0/0 .bss @481 */ -static u8 lit_481[12]; + setCommon_mesgQueue(JKRHeap::getSystemHeap(), message_count); +} /* 8043428C-80434298 060FAC 000C+00 5/6 0/0 0/0 .bss sThreadList__9JKRThread */ -u8 JKRThread::sThreadList[12]; +JSUList JKRThread::sThreadList(0); /* 802D1758-802D1830 2CC098 00D8+00 1/0 9/9 0/0 .text __dt__9JKRThreadFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRThread::~JKRThread() { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/__dt__9JKRThreadFv.s" +JKRThread::~JKRThread() { + getList().remove(&mThreadListLink); + + if (mHeap) { + BOOL result = OSIsThreadTerminated(mThreadRecord); + if (result == FALSE) { + OSDetachThread(mThreadRecord); + OSCancelThread(mThreadRecord); + } + JKRFreeToHeap(mHeap, mStackMemory); + JKRFreeToHeap(mHeap, mThreadRecord); + } + JKRFree(mMessages); } -#pragma pop /* 802D1830-802D18A4 2CC170 0074+00 3/3 0/0 0/0 .text setCommon_mesgQueue__9JKRThreadFP7JKRHeapi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRThread::setCommon_mesgQueue(JKRHeap* param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/setCommon_mesgQueue__9JKRThreadFP7JKRHeapi.s" +void JKRThread::setCommon_mesgQueue(JKRHeap* heap, int message_count) { + mMessageCount = message_count; + mMessages = (OSMessage*)JKRHeap::alloc(mMessageCount * sizeof(OSMessage), 0, heap); + + OSInitMessageQueue(&mMessageQueue, mMessages, mMessageCount); + getList().append(&mThreadListLink); + + mCurrentHeap = NULL; + mCurrentHeapError = NULL; } -#pragma pop /* 802D18A4-802D1934 2CC1E4 0090+00 2/2 0/0 0/0 .text * setCommon_heapSpecified__9JKRThreadFP7JKRHeapUli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRThread::setCommon_heapSpecified(JKRHeap* param_0, u32 param_1, int param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/setCommon_heapSpecified__9JKRThreadFP7JKRHeapUli.s" +void JKRThread::setCommon_heapSpecified(JKRHeap* heap, u32 stack_size, int param_3) { + mHeap = heap; + mStackSize = stack_size & 0xffffffe0; + mStackMemory = JKRAllocFromHeap(mHeap, mStackSize, 0x20); + mThreadRecord = (OSThread*)JKRAllocFromHeap(mHeap, sizeof(OSThread), 0x20); + + void* stackBase = (void*)((int)mStackMemory + mStackSize); + OSCreateThread(mThreadRecord, start, this, stackBase, mStackSize, param_3, 1); } -#pragma pop /* 802D1934-802D1960 2CC274 002C+00 1/1 0/0 0/0 .text start__9JKRThreadFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRThread::start(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/start__9JKRThreadFPv.s" +void* JKRThread::start(void* param) { + JKRThread* thread = (JKRThread*)param; + return thread->run(); } -#pragma pop /* 802D1960-802D199C 2CC2A0 003C+00 1/1 0/0 0/0 .text searchThread__9JKRThreadFP8OSThread */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRThread::searchThread(OSThread* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/searchThread__9JKRThreadFP8OSThread.s" +JKRThread* JKRThread::searchThread(OSThread* thread) { + JSUList& threadList = getList(); + JSUListIterator iterator; + for (iterator = threadList.getFirst(); iterator != threadList.getEnd(); ++iterator) { + if (iterator->getThreadRecord() == thread) { + return iterator.getObject(); + } + } + + return NULL; } -#pragma pop /* ############################################################################################## */ /* 804513B0-804513B4 0008B0 0004+00 2/2 1/1 0/0 .sbss sManager__15JKRThreadSwitch */ @@ -321,7 +238,7 @@ asm JKRThreadSwitch::JKRThreadSwitch(JKRHeap* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRThreadSwitch::createManager(JKRHeap* param_0) { +asm JKRThreadSwitch* JKRThreadSwitch::createManager(JKRHeap* param_0) { nofralloc #include "asm/JSystem/JKernel/JKRThread/createManager__15JKRThreadSwitchFP7JKRHeap.s" } @@ -331,7 +248,7 @@ asm void JKRThreadSwitch::createManager(JKRHeap* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRThreadSwitch::enter(JKRThread* param_0, int param_1) { +asm JKRThread* JKRThreadSwitch::enter(JKRThread* param_0, int param_1) { nofralloc #include "asm/JSystem/JKernel/JKRThread/enter__15JKRThreadSwitchFP9JKRThreadi.s" } @@ -394,6 +311,7 @@ SECTION_SDATA2 static f64 lit_937 = 4503599627370496.0 /* cast u32 to float */; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off +#pragma force_active on asm void JKRThreadSwitch::draw(JKRThreadName_* param_0, JUTConsole* param_1) { nofralloc #include "asm/JSystem/JKernel/JKRThread/draw__15JKRThreadSwitchFP14JKRThreadName_P10JUTConsole.s" @@ -401,14 +319,15 @@ asm void JKRThreadSwitch::draw(JKRThreadName_* param_0, JUTConsole* param_1) { #pragma pop /* 802D1E14-802D1E1C 2CC754 0008+00 1/0 0/0 0/0 .text run__9JKRThreadFv */ -bool JKRThread::run() { - return false; +void* JKRThread::run() { + return NULL; } /* 802D1E1C-802D1E4C 2CC75C 0030+00 1/0 0/0 0/0 .text draw__15JKRThreadSwitchFP14JKRThreadName_ */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off +#pragma force_active on asm void JKRThreadSwitch::draw(JKRThreadName_* param_0) { nofralloc #include "asm/JSystem/JKernel/JKRThread/draw__15JKRThreadSwitchFP14JKRThreadName_.s" @@ -427,50 +346,15 @@ asm JKRThreadSwitch::~JKRThreadSwitch() { /* ############################################################################################## */ /* 80434298-804342A4 060FB8 000C+00 0/1 0/0 0/0 .bss @989 */ -#pragma push -#pragma force_active on -static u8 lit_989[12]; -#pragma pop +// #pragma push +// #pragma force_active on +// static u8 lit_989[12]; +// #pragma pop /* 804342A4-804342B0 060FC4 000C+00 0/1 0/0 0/0 .bss sTaskList__7JKRTask */ #pragma push #pragma force_active on -u8 JKRTask::sTaskList[12]; -#pragma pop - -/* 802D1E94-802D1EFC 2CC7D4 0068+00 0/0 1/0 0/0 .text __sinit_JKRThread_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_JKRThread_cpp() { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/__sinit_JKRThread_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802D1E94, __sinit_JKRThread_cpp); -#pragma pop - -/* 802D1EFC-802D1F50 2CC83C 0054+00 1/1 0/0 0/0 .text __dt__17JSUList<7JKRTask>Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_802D1EFC(void* _this) { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/func_802D1EFC.s" -} -#pragma pop - -/* 802D1F50-802D1FA4 2CC890 0054+00 1/1 0/0 0/0 .text __dt__19JSUList<9JKRThread>Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_802D1F50(void* _this) { - nofralloc -#include "asm/JSystem/JKernel/JKRThread/func_802D1F50.s" -} +JSUList JKRTask::sTaskList; #pragma pop /* ############################################################################################## */ diff --git a/libs/JSystem/JSupport/JSUFileStream.cpp b/libs/JSystem/JSupport/JSUFileStream.cpp index 68e852a0ac..8e4ff56930 100644 --- a/libs/JSystem/JSupport/JSUFileStream.cpp +++ b/libs/JSystem/JSupport/JSUFileStream.cpp @@ -7,28 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JSUStreamSeekFrom {}; - -struct JSURandomInputStream { - /* 802D4094 */ void getAvailable() const; - /* 802DC3FC */ void skip(s32); -}; - -struct JKRFile {}; - -struct JSUFileInputStream { - /* 802DADD8 */ ~JSUFileInputStream(); - /* 802DC638 */ JSUFileInputStream(JKRFile*); - /* 802DC67C */ void readData(void*, s32); - /* 802DC74C */ void seekPos(s32, JSUStreamSeekFrom); - /* 802DC82C */ void getLength() const; - /* 802DC85C */ void getPosition() const; -}; - // // Forward References: // @@ -89,7 +67,7 @@ asm JSUFileInputStream::JSUFileInputStream(JKRFile* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JSUFileInputStream::readData(void* param_0, s32 param_1) { +asm s32 JSUFileInputStream::readData(void* param_0, s32 param_1) { nofralloc #include "asm/JSystem/JSupport/JSUFileStream/readData__18JSUFileInputStreamFPvl.s" } @@ -111,7 +89,7 @@ asm void JSUFileInputStream::seekPos(s32 param_0, JSUStreamSeekFrom param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JSUFileInputStream::getLength() const { +asm s32 JSUFileInputStream::getLength() const { nofralloc #include "asm/JSystem/JSupport/JSUFileStream/getLength__18JSUFileInputStreamCFv.s" } @@ -121,7 +99,7 @@ asm void JSUFileInputStream::getLength() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JSUFileInputStream::getPosition() const { +asm s32 JSUFileInputStream::getPosition() const { nofralloc #include "asm/JSystem/JSupport/JSUFileStream/getPosition__18JSUFileInputStreamCFv.s" } diff --git a/libs/JSystem/JSupport/JSUInputStream.cpp b/libs/JSystem/JSupport/JSUInputStream.cpp index e19905c5e5..2f0b4ae36a 100644 --- a/libs/JSystem/JSupport/JSUInputStream.cpp +++ b/libs/JSystem/JSupport/JSUInputStream.cpp @@ -4,6 +4,7 @@ // #include "JSystem/JSupport/JSUInputStream.h" +#include "JSystem/JSupport/JSURandomInputStream.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,23 +12,6 @@ // Types: // -struct JSUStreamSeekFrom {}; - -struct JSURandomInputStream { - /* 80255328 */ ~JSURandomInputStream(); - /* 802D4094 */ void getAvailable() const; - /* 802DC370 */ void align(s32); - /* 802DC3FC */ void skip(s32); - /* 802DC458 */ void peek(void*, s32); - /* 802DC4DC */ void seek(s32, JSUStreamSeekFrom); -}; - -struct JSUInputStream { - /* 802DC23C */ ~JSUInputStream(); - /* 802DC298 */ void read(void*, s32); - /* 802DC2F0 */ void skip(s32); -}; - // // Forward References: // @@ -107,7 +91,7 @@ asm void JSUInputStream::read(void* param_0, s32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JSUInputStream::skip(s32 param_0) { +asm s32 JSUInputStream::skip(s32 param_0) { nofralloc #include "asm/JSystem/JSupport/JSUInputStream/skip__14JSUInputStreamFl.s" } @@ -127,7 +111,7 @@ asm void JSURandomInputStream::align(s32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JSURandomInputStream::skip(s32 param_0) { +asm s32 JSURandomInputStream::skip(s32 param_0) { nofralloc #include "asm/JSystem/JSupport/JSUInputStream/skip__20JSURandomInputStreamFl.s" } diff --git a/libs/JSystem/JSupport/JSUList.cpp b/libs/JSystem/JSupport/JSUList.cpp index 371c61b73a..7111ffd9b9 100644 --- a/libs/JSystem/JSupport/JSUList.cpp +++ b/libs/JSystem/JSupport/JSUList.cpp @@ -7,163 +7,158 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBE74 */ JSUPtrList(bool); - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); - /* 802DBF28 */ void setFirst(JSUPtrLink*); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DBFF0 */ void prepend(JSUPtrLink*); - /* 802DC094 */ void insert(JSUPtrLink*, JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); - /* 802DC20C */ void getNthLink(u32) const; -}; - -// -// Forward References: -// - -extern "C" void __ct__10JSUPtrLinkFPv(); -extern "C" void __dt__10JSUPtrLinkFv(); -extern "C" void __ct__10JSUPtrListFb(); -extern "C" void __dt__10JSUPtrListFv(); -extern "C" void initiate__10JSUPtrListFv(); -extern "C" void setFirst__10JSUPtrListFP10JSUPtrLink(); -extern "C" void append__10JSUPtrListFP10JSUPtrLink(); -extern "C" void prepend__10JSUPtrListFP10JSUPtrLink(); -extern "C" void insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink(); -extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); -extern "C" void getNthLink__10JSUPtrListCFUl(); - -// -// External References: -// - -extern "C" void __dl__FPv(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); - -// -// Declarations: -// - -/* 802DBDFC-802DBE14 2D673C 0018+00 0/0 34/34 0/0 .text __ct__10JSUPtrLinkFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JSUPtrLink::JSUPtrLink(void* param_0) { - nofralloc -#include "asm/JSystem/JSupport/JSUList/__ct__10JSUPtrLinkFPv.s" +JSUPtrLink::JSUPtrLink(void* object) { + this->mList = NULL; + this->mObject = object; + this->mPrev = NULL; + this->mNext = NULL; } -#pragma pop -/* 802DBE14-802DBE74 2D6754 0060+00 0/0 27/27 0/0 .text __dt__10JSUPtrLinkFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JSUPtrLink::~JSUPtrLink() { - nofralloc -#include "asm/JSystem/JSupport/JSUList/__dt__10JSUPtrLinkFv.s" +JSUPtrLink::~JSUPtrLink() { + if (this->mList != NULL) { + this->mList->remove(this); + } } -#pragma pop -/* 802DBE74-802DBEAC 2D67B4 0038+00 0/0 4/4 0/0 .text __ct__10JSUPtrListFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JSUPtrList::JSUPtrList(bool param_0) { - nofralloc -#include "asm/JSystem/JSupport/JSUList/__ct__10JSUPtrListFb.s" +JSUPtrList::JSUPtrList(bool init) { + if (init) { + this->initiate(); + } } -#pragma pop -/* 802DBEAC-802DBF14 2D67EC 0068+00 0/0 25/25 0/0 .text __dt__10JSUPtrListFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JSUPtrList::~JSUPtrList() { - nofralloc -#include "asm/JSystem/JSupport/JSUList/__dt__10JSUPtrListFv.s" +JSUPtrList::~JSUPtrList() { + JSUPtrLink* node = this->mHead; + s32 removed = 0; + while (this->mLength > removed) { + node->mList = NULL; + node = node->getNext(); + removed += 1; + } } -#pragma pop -/* 802DBF14-802DBF28 2D6854 0014+00 1/1 27/27 0/0 .text initiate__10JSUPtrListFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JSUPtrList::initiate() { - nofralloc -#include "asm/JSystem/JSupport/JSUList/initiate__10JSUPtrListFv.s" +void JSUPtrList::initiate() { + this->mHead = NULL; + this->mTail = NULL; + this->mLength = 0; } -#pragma pop -/* 802DBF28-802DBF4C 2D6868 0024+00 2/2 0/0 0/0 .text setFirst__10JSUPtrListFP10JSUPtrLink */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JSUPtrList::setFirst(JSUPtrLink* param_0) { - nofralloc -#include "asm/JSystem/JSupport/JSUList/setFirst__10JSUPtrListFP10JSUPtrLink.s" +void JSUPtrList::setFirst(JSUPtrLink* first) { + first->mList = this; + first->mPrev = NULL; + first->mNext = NULL; + this->mTail = first; + this->mHead = first; + this->mLength = 1; } -#pragma pop -/* 802DBF4C-802DBFF0 2D688C 00A4+00 1/1 29/29 0/0 .text append__10JSUPtrListFP10JSUPtrLink */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JSUPtrList::append(JSUPtrLink* param_0) { - nofralloc -#include "asm/JSystem/JSupport/JSUList/append__10JSUPtrListFP10JSUPtrLink.s" -} -#pragma pop +bool JSUPtrList::append(JSUPtrLink* ptr) { + JSUPtrList* list = ptr->mList; + bool result = (NULL == list); + if (!result) { + result = list->remove(ptr); + } -/* 802DBFF0-802DC094 2D6930 00A4+00 1/1 8/8 0/0 .text prepend__10JSUPtrListFP10JSUPtrLink - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JSUPtrList::prepend(JSUPtrLink* param_0) { - nofralloc -#include "asm/JSystem/JSupport/JSUList/prepend__10JSUPtrListFP10JSUPtrLink.s" -} -#pragma pop + if (result) { + if (this->mLength == 0) { + this->setFirst(ptr); + } else { + ptr->mList = this; + ptr->mPrev = this->mTail; + ptr->mNext = NULL; + this->mTail->mNext = ptr; + this->mTail = ptr; + this->mLength++; + } + } -/* 802DC094-802DC15C 2D69D4 00C8+00 0/0 4/4 0/0 .text - * insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JSUPtrList::insert(JSUPtrLink* param_0, JSUPtrLink* param_1) { - nofralloc -#include "asm/JSystem/JSupport/JSUList/insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink.s" + return result; } -#pragma pop -/* 802DC15C-802DC20C 2D6A9C 00B0+00 4/4 31/31 0/0 .text remove__10JSUPtrListFP10JSUPtrLink */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JSUPtrList::remove(JSUPtrLink* param_0) { - nofralloc -#include "asm/JSystem/JSupport/JSUList/remove__10JSUPtrListFP10JSUPtrLink.s" -} -#pragma pop +bool JSUPtrList::prepend(JSUPtrLink* ptr) { + JSUPtrList* list = ptr->mList; + bool result = (NULL == list); + if (!result) { + result = list->remove(ptr); + } -/* 802DC20C-802DC23C 2D6B4C 0030+00 0/0 3/3 0/0 .text getNthLink__10JSUPtrListCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JSUPtrList::getNthLink(u32 param_0) const { - nofralloc -#include "asm/JSystem/JSupport/JSUList/getNthLink__10JSUPtrListCFUl.s" + if (result) { + if (this->mLength == 0) { + this->setFirst(ptr); + } else { + ptr->mList = this; + ptr->mPrev = NULL; + ptr->mNext = this->mHead; + this->mHead->mPrev = ptr; + this->mHead = ptr; + this->mLength++; + } + } + + return result; } -#pragma pop + +bool JSUPtrList::insert(JSUPtrLink* before, JSUPtrLink* ptr) { + if (before == this->mHead) { + return this->prepend(ptr); + } else if (before == NULL) { + return this->append(ptr); + } + + if (before->mList != this) { + return false; + } + + bool result = (NULL == ptr->mList); + if (!result) { + result = ptr->mList->remove(ptr); + } + + if (result) { + JSUPtrLink* prev = before->mPrev; + ptr->mList = this; + ptr->mPrev = prev; + ptr->mNext = before; + prev->mNext = ptr; + before->mPrev = ptr; + this->mLength++; + } + + return result; +} + +bool JSUPtrList::remove(JSUPtrLink* ptr) { + bool is_parent = (ptr->mList == this); + if (is_parent) { + if (this->mLength == 1) { + this->mHead = NULL; + this->mTail = NULL; + } else if (ptr == this->mHead) { + ptr->mNext->mPrev = NULL; + this->mHead = ptr->mNext; + } else if (ptr == this->mTail) { + ptr->mPrev->mNext = NULL; + this->mTail = ptr->mPrev; + } else { + ptr->mPrev->mNext = ptr->mNext; + ptr->mNext->mPrev = ptr->mPrev; + } + + ptr->mList = NULL; + this->mLength--; + } + + return is_parent; +} + +JSUPtrLink* JSUPtrList::getNthLink(u32 index) const { + if (index >= this->mLength) { + return NULL; + } + + JSUPtrLink* node = this->mHead; + for (u32 i = 0; i < index; i++) { + node = node->getNext(); + } + + return node; +} \ No newline at end of file diff --git a/libs/JSystem/JUtility/JUTAssert.cpp b/libs/JSystem/JUtility/JUTAssert.cpp index 4d6dd64350..20ac123bae 100644 --- a/libs/JSystem/JUtility/JUTAssert.cpp +++ b/libs/JSystem/JUtility/JUTAssert.cpp @@ -31,15 +31,6 @@ struct JUTDbPrint { static u8 sDebugPrint[4 + 4 /* padding */]; }; -struct JUTAssertion { - /* 802E495C */ void create(); - /* 802E4960 */ void flush_subroutine(); - /* 802E499C */ void flushMessage(); - /* 802E4A54 */ void flushMessage_dbPrint(); - /* 802E4C34 */ void setVisible(bool); - /* 802E4C3C */ void setMessageCount(int); -}; - // // Forward References: // diff --git a/libs/JSystem/JUtility/JUTException.cpp b/libs/JSystem/JUtility/JUTException.cpp index 6ba5f2fb0b..4cda129a81 100644 --- a/libs/JSystem/JUtility/JUTException.cpp +++ b/libs/JSystem/JUtility/JUTException.cpp @@ -11,14 +11,6 @@ // Types: // -struct __va_list_struct {}; - -struct _GXRenderModeObj {}; - -struct _GXGamma {}; - -struct OSContext {}; - struct JUTGamePad { struct EPadPort {}; @@ -28,61 +20,6 @@ struct JUTGamePad { /* 802E0C6C */ void checkResetCallback(s64); }; -struct JUTExternalFB { - /* 802E40CC */ JUTExternalFB(_GXRenderModeObj*, _GXGamma, void*, u32); -}; - -struct JUTDirectPrint { - /* 802E456C */ void changeFrameBuffer(void*, u16, u16); -}; - -struct JUTException { - struct EInfoPage {}; - - /* 802E1D5C */ JUTException(JUTDirectPrint*); - /* 802E1E40 */ void create(JUTDirectPrint*); - /* 802E1EA8 */ void run(); - /* 802E1FCC */ void errorHandler(u16, OSContext*, u32, u32); - /* 802E20C0 */ void panic_f_va(char const*, int, char const*, __va_list_struct*); - /* 802E21FC */ void panic_f(char const*, int, char const*, ...); - /* 802E227C */ void setFPException(u32); - /* 802E22C4 */ void showFloatSub(int, f32); - /* 802E2454 */ void showFloat(OSContext*); - /* 802E2578 */ void searchPartialModule(u32, u32*, u32*, u32*, u32*); - /* 802E26B0 */ void showStack(OSContext*); - /* 802E27B0 */ void showMainInfo(u16, OSContext*, u32, u32); - /* 802E2A84 */ void showGPR(OSContext*); - /* 802E2B44 */ void showMapInfo_subroutine(u32, bool); - /* 802E2CA0 */ void showGPRMap(OSContext*); - /* 802E2DAC */ void showSRR0Map(OSContext*); - /* 802E2E70 */ void printDebugInfo(JUTException::EInfoPage, u16, OSContext*, u32, u32); - /* 802E2F18 */ void isEnablePad() const; - /* 802E2F54 */ void readPad(u32*, u32*); - /* 802E34C0 */ void printContext(u16, OSContext*, u32, u32); - /* 802E3980 */ void waitTime(s32); - /* 802E3A08 */ void createFB(); - /* 802E3AEC */ void setPreUserCallback(void (*)(u16, OSContext*, u32, u32)); - /* 802E3AFC */ void setPostUserCallback(void (*)(u16, OSContext*, u32, u32)); - /* 802E3B0C */ void appendMapFile(char const*); - /* 802E3BA0 */ void queryMapAddress(char*, u32, s32, u32*, u32*, char*, u32, bool, bool); - /* 802E3C90 */ void queryMapAddress_single(char*, u32, s32, u32*, u32*, char*, u32, bool, bool); - /* 802E3FEC */ void createConsole(void*, u32); - /* 802E40EC */ ~JUTException(); - - static u8 sMessageQueue[32]; - static void* sCpuExpName[17]; - static u8 sMapFileList[12 + 4 /* padding */]; - static u8 sMessageBuffer[4 + 4 /* padding */]; - static u8 sErrorManager[4]; - static u8 sPreUserCallback[4]; - static u8 sPostUserCallback[4]; - static u8 sConsoleBuffer[4]; - static u8 sConsoleBufferSize[4]; - static u8 sConsole[4]; - static u8 msr[4]; - static u8 fpscr[4]; -}; - struct JUTDirectFile { /* 802E87F8 */ JUTDirectFile(); /* 802E881C */ ~JUTDirectFile(); @@ -191,8 +128,6 @@ extern "C" u8 fpscr__12JUTException[4]; // SECTION_INIT void memcpy(); -extern "C" void OSReport(); -extern "C" void OSPanic(); extern "C" void* __nw__FUl(); extern "C" void* __nw__FUlP7JKRHeapi(); extern "C" void __dl__FPv(); @@ -223,24 +158,11 @@ extern "C" void fclose__13JUTDirectFileFv(); extern "C" void fgets__13JUTDirectFileFPvi(); extern "C" void PPCMfmsr(); extern "C" void PPCMtmsr(); -extern "C" void OSGetArenaHi(); extern "C" void OSGetCurrentContext(); -extern "C" void OSGetStackPointer(); extern "C" void OSFillFPUContext(); extern "C" void OSSetErrorHandler(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSEnableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSInitMessageQueue(); -extern "C" void OSSendMessage(); -extern "C" void OSReceiveMessage(); extern "C" void OSProtectRange(); -extern "C" void OSGetCurrentThread(); -extern "C" void OSEnableScheduler(); extern "C" void OSYieldThread(); -extern "C" void OSResumeThread(); -extern "C" void OSSuspendThread(); -extern "C" void OSGetTime(); extern "C" void VISetPreRetraceCallback(); extern "C" void VISetPostRetraceCallback(); extern "C" void VIConfigure(); diff --git a/libs/JSystem/JUtility/JUTFont.cpp b/libs/JSystem/JUtility/JUTFont.cpp index aeb7dd46e4..6d3a9d433c 100644 --- a/libs/JSystem/JUtility/JUTFont.cpp +++ b/libs/JSystem/JUtility/JUTFont.cpp @@ -7,18 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JUTFont { - /* 802DECF8 */ JUTFont(); - /* 802DED24 */ void initialize_state(); - /* 802DED70 */ void setCharColor(JUtility::TColor); - /* 802DEDC4 */ void setGradColor(JUtility::TColor, JUtility::TColor); - /* 802DEE28 */ void drawString_size_scale(f32, f32, f32, f32, char const*, u32, bool); -}; - // // Forward References: // @@ -42,54 +30,64 @@ extern "C" extern void* __vt__7JUTFont[17]; // /* 802DECF8-802DED24 2D9638 002C+00 0/0 2/2 0/0 .text __ct__7JUTFontFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JUTFont::JUTFont() { - nofralloc -#include "asm/JSystem/JUtility/JUTFont/__ct__7JUTFontFv.s" +JUTFont::JUTFont() : mColor1(), mColor2(), mColor3(), mColor4() { + unk4 = 0; } -#pragma pop /* 802DED24-802DED70 2D9664 004C+00 0/0 9/9 0/0 .text initialize_state__7JUTFontFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTFont::initialize_state() { - nofralloc -#include "asm/JSystem/JUtility/JUTFont/initialize_state__7JUTFontFv.s" +void JUTFont::initialize_state() { + setCharColor(JUtility::TColor()); + unk5 = false; + unk8 = 0; + unk4 = false; } -#pragma pop /* 802DED70-802DEDC4 2D96B0 0054+00 1/1 3/3 0/0 .text setCharColor__7JUTFontFQ28JUtility6TColor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTFont::setCharColor(JUtility::TColor param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTFont/setCharColor__7JUTFontFQ28JUtility6TColor.s" +void JUTFont::setCharColor(JUtility::TColor col1) { + mColor1 = col1; + mColor2 = col1; + mColor3 = col1; + mColor4 = col1; } -#pragma pop /* 802DEDC4-802DEE28 2D9704 0064+00 0/0 2/2 0/0 .text * setGradColor__7JUTFontFQ28JUtility6TColorQ28JUtility6TColor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTFont::setGradColor(JUtility::TColor param_0, JUtility::TColor param_1) { - nofralloc -#include "asm/JSystem/JUtility/JUTFont/setGradColor__7JUTFontFQ28JUtility6TColorQ28JUtility6TColor.s" +void JUTFont::setGradColor(JUtility::TColor col1, JUtility::TColor col2) { + mColor1 = col1; + mColor2 = col1; + mColor3 = col2; + mColor4 = col2; } -#pragma pop /* 802DEE28-802DEF48 2D9768 0120+00 0/0 3/3 0/0 .text drawString_size_scale__7JUTFontFffffPCcUlb */ +#ifdef NON_MATCHING +f32 JUTFont::drawString_size_scale(f32 a1, f32 a2, f32 a3, f32 a4, const char* str, u32 usz, + bool a7) { + f32 temp = a1; + + for (; usz > 0; usz--, str++) { + u32 b = *(u8*)str; + if (isLeadByte(b)) { + str++; + b = (b << 8 | *(u8*)str); + usz--; + } + + a1 += drawChar_scale(temp, a2, a3, a4, b, a7); + a7 = 1; + } + + return a1 - temp; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JUTFont::drawString_size_scale(f32 param_0, f32 param_1, f32 param_2, f32 param_3, - char const* param_4, u32 param_5, bool param_6) { +asm f32 JUTFont::drawString_size_scale(f32 param_0, f32 param_1, f32 param_2, f32 param_3, + char const* param_4, u32 param_5, bool param_6) { nofralloc #include "asm/JSystem/JUtility/JUTFont/drawString_size_scale__7JUTFontFffffPCcUlb.s" } #pragma pop +#endif diff --git a/libs/JSystem/JUtility/JUTGamePad.cpp b/libs/JSystem/JUtility/JUTGamePad.cpp index 9c3ad14637..5f7febaa63 100644 --- a/libs/JSystem/JUtility/JUTGamePad.cpp +++ b/libs/JSystem/JUtility/JUTGamePad.cpp @@ -7,127 +7,14 @@ #include "dol2asm.h" #include "dolphin/types.h" +// can't type mPadList correctly because of __sinit +// remove this once __sinit is decompiled +#define mPadListHack (*(JSUList*)&mPadList) + // // Types: // -struct PADStatus {}; - -struct JUTGamePadLongPress { - /* 802E1AFC */ void checkCallback(int, u32); - - static u8 sPatternList[12]; -}; - -struct JUTGamePad { - struct EPadPort {}; - - struct CButton { - /* 802E1050 */ void clear(); - /* 802E108C */ void update(PADStatus const*, u32); - /* 802E1A7C */ void setRepeat(u32, u32, u32); - /* 802E1CD8 */ CButton(); - }; - - struct EStickMode {}; - - struct EWhichStick {}; - - struct CStick { - /* 802E121C */ void clear(); - /* 802E1238 */ void update(s8, s8, JUTGamePad::EStickMode, JUTGamePad::EWhichStick, u32); - /* 802E1500 */ void getButton(u32); - /* 802E1CA8 */ CStick(); - - static f32 sPressPoint; - static f32 sReleasePoint; - }; - - struct CRumble { - struct ERumble {}; - - /* 802E15B4 */ void clear(); - /* 802E15D8 */ void clear(JUTGamePad*); - /* 802E1634 */ void startMotor(int); - /* 802E168C */ void stopMotor(int, bool); - /* 802E1720 */ void update(s16); - /* 802E18A4 */ void triggerPatternedRumble(u32); - /* 802E18CC */ void startPatternedRumble(void*, JUTGamePad::CRumble::ERumble, u32); - /* 802E1948 */ void stopPatternedRumble(s16); - /* 802E1978 */ void stopPatternedRumbleAtThePeriod(); - /* 802E19D8 */ void setEnabled(u32); - - static u8 sChannelMask[16]; - static u8 mStatus[4]; - static u8 mEnabled[4]; - }; - - struct C3ButtonReset { - static u32 sResetPattern; - static u32 sResetMaskPattern; - static u8 sCallback[4]; - static u8 sCallbackArg[4 + 4 /* padding */]; - static u8 sThreshold[4]; - static u8 sResetOccurredPort[4]; - }; - - /* 802E06DC */ JUTGamePad(JUTGamePad::EPadPort); - /* 802E07B0 */ ~JUTGamePad(); - /* 802E085C */ void initList(); - /* 802E0898 */ void init(); - /* 802E08D0 */ void clear(); - /* 802E08E4 */ void read(); - /* 802E0BBC */ void assign(); - /* 802E0C6C */ void checkResetCallback(s64); - /* 802E0CD8 */ void update(); - /* 802E0FA4 */ void checkResetSwitch(); - /* 802E1024 */ void clearForReset(); - /* 802E199C */ void getGamePad(int); - /* 802E1A98 */ void recalibrate(u32); - - static u8 mPadList[12]; - static u8 mPadStatus[48]; - static u8 mPadButton[192]; - static u8 mPadMStick[64]; - static u8 mPadSStick[64]; - static u32 sStickMode; - static u32 sClampMode; - static u8 mPadAssign[4]; - static u8 sSuppressPadReset[4]; - static u8 sAnalogMode[4]; - static u8 sRumbleSupported[4]; -}; - -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBE74 */ JSUPtrList(bool); - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template11 { - /* 802E1C54 */ void func_802E1C54(void* _this); -}; - -/* JSUList */ -struct JSUList__template12 { - /* 802E1D08 */ void func_802E1D08(void* _this); -}; - -struct JKRDisposer { - /* 802D147C */ JKRDisposer(); - /* 802D14E4 */ ~JKRDisposer(); -}; - // // Forward References: // @@ -208,16 +95,6 @@ extern "C" void initiate__10JSUPtrListFv(); extern "C" void append__10JSUPtrListFP10JSUPtrLink(); extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); extern "C" void OSGetResetSwitchState(); -extern "C" void OSGetTime(); -extern "C" void PADClamp(); -extern "C" void PADClampCircle(); -extern "C" void PADReset(); -extern "C" void PADRecalibrate(); -extern "C" void PADInit(); -extern "C" void PADRead(); -extern "C" void PADControlMotor(); -extern "C" void PADSetSpec(); -extern "C" void PADSetAnalogMode(); extern "C" void __register_global_object(); extern "C" void __construct_array(); extern "C" void _savegpr_22(); @@ -237,8 +114,11 @@ extern "C" extern u32 __float_nan; /* ############################################################################################## */ /* 803CC5F0-803CC600 029710 0010+00 3/3 0/0 0/0 .data sChannelMask__Q210JUTGamePad7CRumble */ -SECTION_DATA u8 JUTGamePad::CRumble::sChannelMask[16] = { - 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, +SECTION_DATA PADMask JUTGamePad::CRumble::sChannelMask[4] = { + PAD_CHAN0_BIT, + PAD_CHAN1_BIT, + PAD_CHAN2_BIT, + PAD_CHAN3_BIT, }; /* 803CC600-803CC610 029720 0010+00 2/2 0/0 0/0 .data channel_mask */ @@ -262,13 +142,22 @@ static u8 lit_525[12]; u8 JUTGamePad::mPadList[12]; /* 804514D0-804514D4 0009D0 0004+00 1/1 0/0 0/0 .sbss None */ -static u8 data_804514D0[4]; +static bool data_804514D0; /* 804514D4-804514D8 0009D4 0004+00 3/3 0/0 0/0 .sbss mPadAssign__10JUTGamePad */ u8 JUTGamePad::mPadAssign[4]; /* 802E06DC-802E07B0 2DB01C 00D4+00 0/0 4/4 0/0 .text __ct__10JUTGamePadFQ210JUTGamePad8EPadPort */ +#ifdef NONMATCHING +// TODO(erin): probably ~easy to do, i just didn't do it yet :) +JUTGamePad::JUTGamePad(EPadPort port) : ptr_link(this) { + this->buttons.clear(); + this->control_stick.clear(); + this->c_stick.clear(); + this->rumble.clear(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -277,6 +166,7 @@ asm JUTGamePad::JUTGamePad(JUTGamePad::EPadPort param_0) { #include "asm/JSystem/JUtility/JUTGamePad/__ct__10JUTGamePadFQ210JUTGamePad8EPadPort.s" } #pragma pop +#endif /* 802E07B0-802E085C 2DB0F0 00AC+00 1/0 2/2 0/0 .text __dt__10JUTGamePadFv */ #pragma push @@ -289,45 +179,38 @@ asm JUTGamePad::~JUTGamePad() { #pragma pop /* 802E085C-802E0898 2DB19C 003C+00 1/1 0/0 0/0 .text initList__10JUTGamePadFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTGamePad::initList() { - nofralloc -#include "asm/JSystem/JUtility/JUTGamePad/initList__10JUTGamePadFv.s" +void JUTGamePad::initList() { + if (/* mIsPadListInitialized */ data_804514D0 == false) { + mPadListHack.initiate(); + data_804514D0 = true; + } } -#pragma pop /* ############################################################################################## */ /* 804514D8-804514DC 0009D8 0004+00 2/2 0/0 0/0 .sbss sSuppressPadReset__10JUTGamePad */ u8 JUTGamePad::sSuppressPadReset[4]; /* 804514DC-804514E0 0009DC 0004+00 1/1 1/1 0/0 .sbss sAnalogMode__10JUTGamePad */ -u8 JUTGamePad::sAnalogMode[4]; +s32 JUTGamePad::sAnalogMode; /* 802E0898-802E08D0 2DB1D8 0038+00 0/0 1/1 0/0 .text init__10JUTGamePadFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTGamePad::init() { - nofralloc -#include "asm/JSystem/JUtility/JUTGamePad/init__10JUTGamePadFv.s" +s32 JUTGamePad::init() { + PADSetSpec(5); + sAnalogMode = 3; + PADSetAnalogMode(3); + + return PADInit(); } -#pragma pop /* 802E08D0-802E08E4 2DB210 0014+00 1/1 0/0 0/0 .text clear__10JUTGamePadFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTGamePad::clear() { - nofralloc -#include "asm/JSystem/JUtility/JUTGamePad/clear__10JUTGamePadFv.s" +void JUTGamePad::clear() { + this->field_0x98 = 0; + this->field_0xa8 = 1; } -#pragma pop /* ############################################################################################## */ /* 804343F0-80434420 061110 0030+00 1/3 1/1 0/0 .bss mPadStatus__10JUTGamePad */ -u8 JUTGamePad::mPadStatus[48]; +PADStatus JUTGamePad::mPadStatus[4]; /* 80434420-804344E0 061140 00C0+00 1/4 0/0 0/0 .bss mPadButton__10JUTGamePad */ u8 JUTGamePad::mPadButton[192]; @@ -364,6 +247,27 @@ asm void JUTGamePad::read() { #pragma pop /* 802E0BBC-802E0C6C 2DB4FC 00B0+00 1/1 0/0 0/0 .text assign__10JUTGamePadFv */ +#if 0 +// matches if all static variables have their proper type +void JUTGamePad::assign() { + s32 iVar3 = 0; + + for (s32 i = 4; i > 0; i--) { + if ((/* mPadStatus */ lbl_804343F0[iVar3].error == 0) && + (/* *puVar2 */ lbl_804514D4[iVar3] == 0)) { + this->pad_port = iVar3; + /* JUTGamePad::mPadAssign[iVar3] */ /* *puVar2 */ lbl_804514D4[iVar3] = 1; + /* JUTGamePad::mPadButton */ lbl_80434420[iVar3].setRepeat( + this->buttons.field_0x24, this->buttons.field_0x28, this->buttons.field_0x2c); + this->rumble.clear(this); + + return; + } + + iVar3++; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -372,47 +276,49 @@ asm void JUTGamePad::assign() { #include "asm/JSystem/JUtility/JUTGamePad/assign__10JUTGamePadFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804514E4-804514E8 0009E4 0004+00 5/5 0/0 0/0 .sbss mStatus__Q210JUTGamePad7CRumble */ -u8 JUTGamePad::CRumble::mStatus[4]; +bool JUTGamePad::CRumble::mStatus[4]; /* 804514E8-804514EC 0009E8 0004+00 5/5 0/0 0/0 .sbss mEnabled__Q210JUTGamePad7CRumble */ -u8 JUTGamePad::CRumble::mEnabled[4]; +PADMask JUTGamePad::CRumble::mEnabled; /* 804514EC-804514F0 0009EC 0004+00 2/2 4/4 0/0 .sbss sCallback__Q210JUTGamePad13C3ButtonReset */ -u8 JUTGamePad::C3ButtonReset::sCallback[4]; +callbackFn JUTGamePad::C3ButtonReset::sCallback; /* 804514F0-804514F8 0009F0 0004+04 2/2 4/4 0/0 .sbss sCallbackArg__Q210JUTGamePad13C3ButtonReset */ -u8 JUTGamePad::C3ButtonReset::sCallbackArg[4 + 4 /* padding */]; +void* JUTGamePad::C3ButtonReset::sCallbackArg; -/* 804514F8-804514FC 0009F8 0004+00 2/2 0/0 0/0 .sbss sThreshold__Q210JUTGamePad13C3ButtonReset */ -u8 JUTGamePad::C3ButtonReset::sThreshold[4]; - -/* 804514FC-80451500 0009FC 0004+00 2/2 0/0 0/0 .sbss None */ -static u8 data_804514FC[4]; +/* 804514F8-80451500 0009F8 0008+00 2/2 0/0 0/0 .sbss sThreshold__Q210JUTGamePad13C3ButtonReset */ +OSTime JUTGamePad::C3ButtonReset::sThreshold; /* 80451500-80451504 -00001 0004+00 3/3 6/6 0/0 .sbss None */ /* 80451500 0001+00 data_80451500 None */ /* 80451501 0003+00 data_80451501 None */ -extern u8 struct_80451500[4]; -u8 struct_80451500[4]; +extern bool struct_80451500; +bool struct_80451500; +bool struct_80451501; /* 80451504-80451508 000A04 0004+00 2/2 0/0 0/0 .sbss * sResetOccurredPort__Q210JUTGamePad13C3ButtonReset */ -u8 JUTGamePad::C3ButtonReset::sResetOccurredPort[4]; +s32 JUTGamePad::C3ButtonReset::sResetOccurredPort; /* 802E0C6C-802E0CD8 2DB5AC 006C+00 1/1 1/1 0/0 .text checkResetCallback__10JUTGamePadFx */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTGamePad::checkResetCallback(s64 param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTGamePad/checkResetCallback__10JUTGamePadFx.s" +void JUTGamePad::checkResetCallback(OSTime unk) { + if (unk < JUTGamePad::C3ButtonReset::sThreshold) + return; + + struct_80451501 = true; + JUTGamePad::C3ButtonReset::sResetOccurredPort = this->pad_port; + if (JUTGamePad::C3ButtonReset::sCallback != NULL) { + JUTGamePad::C3ButtonReset::sCallback(this->pad_port, + JUTGamePad::C3ButtonReset::sCallbackArg); + } } -#pragma pop /* ############################################################################################## */ /* 80434560-8043456C 061280 000C+00 0/1 0/0 0/0 .bss @1373 */ @@ -496,7 +402,7 @@ SECTION_SDATA2 static f64 lit_1050 = 4503601774854144.0 /* cast s32 to float */; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JUTGamePad::CButton::update(PADStatus const* param_0, u32 param_1) { +asm u32 JUTGamePad::CButton::update(PADStatus const* param_0, u32 param_1) { nofralloc #include "asm/JSystem/JUtility/JUTGamePad/update__Q210JUTGamePad7CButtonFPC9PADStatusUl.s" } @@ -543,8 +449,8 @@ SECTION_SDATA2 static f32 lit_1121 = 10430.37890625f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JUTGamePad::CStick::update(s8 param_0, s8 param_1, JUTGamePad::EStickMode param_2, - JUTGamePad::EWhichStick param_3, u32 param_4) { +asm u32 JUTGamePad::CStick::update(s8 param_0, s8 param_1, JUTGamePad::EStickMode param_2, + JUTGamePad::EWhichStick param_3, u32 param_4) { nofralloc #include "asm/JSystem/JUtility/JUTGamePad/func_802E1238.s" } @@ -555,7 +461,7 @@ asm void JUTGamePad::CStick::update(s8 param_0, s8 param_1, JUTGamePad::EStickMo #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JUTGamePad::CStick::getButton(u32 param_0) { +asm u32 JUTGamePad::CStick::getButton(u32 param_0) { nofralloc #include "asm/JSystem/JUtility/JUTGamePad/getButton__Q210JUTGamePad6CStickFUl.s" } @@ -672,7 +578,7 @@ asm void JUTGamePad::CRumble::stopPatternedRumbleAtThePeriod() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JUTGamePad::getGamePad(int param_0) { +asm JUTGamePad* JUTGamePad::getGamePad(int param_0) { nofralloc #include "asm/JSystem/JUtility/JUTGamePad/getGamePad__10JUTGamePadFi.s" } @@ -702,7 +608,7 @@ asm void JUTGamePad::CButton::setRepeat(u32 param_0, u32 param_1, u32 param_2) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JUTGamePad::recalibrate(u32 param_0) { +asm bool JUTGamePad::recalibrate(u32 param_0) { nofralloc #include "asm/JSystem/JUtility/JUTGamePad/recalibrate__10JUTGamePadFUl.s" } diff --git a/libs/JSystem/JUtility/JUTVideo.cpp b/libs/JSystem/JUtility/JUTVideo.cpp index 5750905a55..689fa976bd 100644 --- a/libs/JSystem/JUtility/JUTVideo.cpp +++ b/libs/JSystem/JUtility/JUTVideo.cpp @@ -11,30 +11,10 @@ // Types: // -struct _GXRenderModeObj {}; - struct JUTXfb { static u8 sManager[4 + 4 /* padding */]; }; -struct JUTVideo { - /* 802E4C54 */ void createManager(_GXRenderModeObj const*); - /* 802E4CAC */ void destroyManager(); - /* 802E4CF4 */ JUTVideo(_GXRenderModeObj const*); - /* 802E4DE8 */ ~JUTVideo(); - /* 802E4E50 */ void preRetraceProc(u32); - /* 802E5088 */ void drawDoneStart(); - /* 802E50B0 */ void dummyNoDrawWait(); - /* 802E50BC */ void drawDoneCallback(); - /* 802E5144 */ void postRetraceProc(u32); - /* 802E5198 */ void setRenderMode(_GXRenderModeObj const*); - /* 802E5210 */ void waitRetraceIfNeed(); - - static u8 sManager[4]; - static u8 sVideoLastTick[4]; - static u8 sVideoInterval[4]; -}; - struct JUTDirectPrint { /* 802E456C */ void changeFrameBuffer(void*, u16, u16); @@ -67,9 +47,6 @@ extern "C" u8 sVideoInterval__8JUTVideo[4]; extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void changeFrameBuffer__14JUTDirectPrintFPvUsUs(); -extern "C" void OSInitMessageQueue(); -extern "C" void OSSendMessage(); -extern "C" void OSGetTick(); extern "C" void VISetPreRetraceCallback(); extern "C" void VISetPostRetraceCallback(); extern "C" void VIInit(); @@ -80,9 +57,7 @@ extern "C" void VISetNextFrameBuffer(); extern "C" void VIGetNextFrameBuffer(); extern "C" void VISetBlack(); extern "C" void VIGetRetraceCount(); -extern "C" void GXFlush(); extern "C" void GXSetDrawDone(); -extern "C" void GXSetDrawDoneCallback(); extern "C" void GXCopyDisp(); extern "C" u8 sDirectPrint__14JUTDirectPrint[4 + 4 /* padding */]; extern "C" u8 sManager__6JUTXfb[4 + 4 /* padding */]; @@ -93,7 +68,7 @@ extern "C" u8 sManager__6JUTXfb[4 + 4 /* padding */]; /* ############################################################################################## */ /* 80451538-8045153C 000A38 0004+00 4/4 18/18 1/1 .sbss sManager__8JUTVideo */ -u8 JUTVideo::sManager[4]; +JUTVideo* JUTVideo::sManager; /* 802E4C54-802E4CAC 2DF594 0058+00 0/0 1/1 0/0 .text * createManager__8JUTVideoFPC16_GXRenderModeObj */ diff --git a/libs/SSystem/SComponent/c_lib.cpp b/libs/SSystem/SComponent/c_lib.cpp index 21aec1cc0f..8de99fe557 100644 --- a/libs/SSystem/SComponent/c_lib.cpp +++ b/libs/SSystem/SComponent/c_lib.cpp @@ -8,6 +8,7 @@ #include "SSystem/SComponent/c_math.h" #include "SSystem/SComponent/c_xyz.h" #include "dol2asm.h" +#include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" #include "msl_c/math.h" #include "msl_c/string.h" diff --git a/libs/SSystem/SComponent/c_m3d_g_aab.cpp b/libs/SSystem/SComponent/c_m3d_g_aab.cpp index 40edb3cb99..ed535664d6 100644 --- a/libs/SSystem/SComponent/c_m3d_g_aab.cpp +++ b/libs/SSystem/SComponent/c_m3d_g_aab.cpp @@ -5,8 +5,8 @@ #include "SSystem/SComponent/c_m3d_g_aab.h" #include "dol2asm.h" +#include "dolphin/mtx/vec.h" #include "dolphin/types.h" -#include "mtx_vec.h" // // Declarations: diff --git a/libs/SSystem/SComponent/c_xyz.cpp b/libs/SSystem/SComponent/c_xyz.cpp index 72699c10b5..da21b45141 100644 --- a/libs/SSystem/SComponent/c_xyz.cpp +++ b/libs/SSystem/SComponent/c_xyz.cpp @@ -8,7 +8,6 @@ #include "dol2asm.h" #include "global.h" #include "msl_c/math.h" -#include "mtx_vec.h" // // Declarations: diff --git a/libs/dolphin/ar/ar.cpp b/libs/dolphin/ar/ar.cpp index a2025ad6ab..68c93cc222 100644 --- a/libs/dolphin/ar/ar.cpp +++ b/libs/dolphin/ar/ar.cpp @@ -14,9 +14,6 @@ extern "C" void ARRegisterDMACallback(); extern "C" void ARGetDMAStatus(); extern "C" void ARStartDMA(); -extern "C" void ARAlloc(); -extern "C" void ARInit(); -extern "C" u32 ARGetSize(); extern "C" void __ARHandler(); extern "C" void __ARClearInterrupt(); extern "C" void __ARGetInterruptStatus(); @@ -99,7 +96,7 @@ static u8 __AR_BlockLength[4]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void ARAlloc() { +asm u32 ARAlloc(u32) { nofralloc #include "asm/dolphin/ar/ar/ARAlloc.s" } @@ -197,7 +194,7 @@ static u8 __AR_init_flag[4]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void ARInit() { +asm u32 ARInit(u32*, u32) { nofralloc #include "asm/dolphin/ar/ar/ARInit.s" } diff --git a/libs/dolphin/ar/arq.cpp b/libs/dolphin/ar/arq.cpp index 88b7a48679..2c268c9efb 100644 --- a/libs/dolphin/ar/arq.cpp +++ b/libs/dolphin/ar/arq.cpp @@ -15,7 +15,6 @@ extern "C" void __ARQServiceQueueLo(); extern "C" void __ARQCallbackHack(); extern "C" void __ARQInterruptServiceRoutine(); extern "C" void ARQInit(); -extern "C" void ARQPostRequest(); // // External References: @@ -186,7 +185,8 @@ asm void ARQInit() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void ARQPostRequest() { +asm void ARQPostRequest(ARQRequest* task, u32 owner, u32 type, u32 priority, u32 source, + u32 destination, u32 length, ARQCallback callback) { nofralloc #include "asm/dolphin/ar/arq/ARQPostRequest.s" } diff --git a/libs/dolphin/dvd/dvd.cpp b/libs/dolphin/dvd/dvd.cpp index 6b5ec8f3aa..8c1c9b20bc 100644 --- a/libs/dolphin/dvd/dvd.cpp +++ b/libs/dolphin/dvd/dvd.cpp @@ -47,15 +47,11 @@ extern "C" void DVDReadDiskID(); extern "C" void DVDCancelStreamAsync(); extern "C" void DVDInquiryAsync(); extern "C" void DVDReset(); -extern "C" void DVDGetCommandBlockStatus(); -extern "C" void DVDGetDriveStatus(); extern "C" void DVDSetAutoInvalidation(); extern "C" void DVDResume(); extern "C" static void DVDCancelAsync(); extern "C" void DVDCancel(); extern "C" static void cbForCancelSync(); -extern "C" void DVDGetCurrentDiskID(); -extern "C" void DVDCheckDisk(); extern "C" void __DVDPrepareResetAsync(); extern "C" void __DVDTestAlarm(); @@ -689,7 +685,7 @@ asm void DVDReset() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void DVDGetCommandBlockStatus() { +asm int DVDGetCommandBlockStatus(DVDCommandBlock*) { nofralloc #include "asm/dolphin/dvd/dvd/DVDGetCommandBlockStatus.s" } @@ -699,7 +695,7 @@ asm void DVDGetCommandBlockStatus() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void DVDGetDriveStatus() { +asm DVDState DVDGetDriveStatus() { nofralloc #include "asm/dolphin/dvd/dvd/DVDGetDriveStatus.s" } @@ -847,7 +843,7 @@ static asm void cbForCancelSync() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void DVDGetCurrentDiskID() { +asm DVDDiskID* DVDGetCurrentDiskID() { nofralloc #include "asm/dolphin/dvd/dvd/DVDGetCurrentDiskID.s" } @@ -877,7 +873,7 @@ SECTION_DATA static void* lit_1060[13 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void DVDCheckDisk() { +asm s32 DVDCheckDisk() { nofralloc #include "asm/dolphin/dvd/dvd/DVDCheckDisk.s" } diff --git a/libs/dolphin/mtx/mtx.cpp b/libs/dolphin/mtx/mtx.cpp index 15e84deacc..5e1e2339c9 100644 --- a/libs/dolphin/mtx/mtx.cpp +++ b/libs/dolphin/mtx/mtx.cpp @@ -5,38 +5,9 @@ #include "dolphin/mtx/mtx.h" #include "dol2asm.h" +#include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void PSMTXIdentity(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXInverse(); -extern "C" void PSMTXRotRad(); -extern "C" static void PSMTXRotTrig(); -extern "C" void __PSMTXRotAxisRadInternal(); -extern "C" void PSMTXRotAxisRad(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXTransApply(); -extern "C" void PSMTXScale(); -extern "C" void PSMTXScaleApply(); -extern "C" void PSMTXQuat(); -extern "C" void C_MTXLookAt(); -extern "C" void C_MTXLightPerspective(); -extern "C" void C_MTXLightOrtho(); - -// -// External References: -// - -extern "C" void PSVECNormalize(); -extern "C" void PSVECCrossProduct(); -extern "C" void tanf(); -extern "C" void sinf(); -extern "C" void cosf(); +#include "msl_c/math.h" // // Declarations: @@ -58,7 +29,7 @@ SECTION_SDATA2 static u8 lit_97[4] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXIdentity() { +asm void PSMTXIdentity(Mtx matrix) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXIdentity.s" } @@ -68,7 +39,7 @@ asm void PSMTXIdentity() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXCopy() { +asm void PSMTXCopy(const Mtx src, Mtx dst) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXCopy.s" } @@ -84,7 +55,7 @@ SECTION_SDATA static u8 Unit01[8] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXConcat() { +asm void PSMTXConcat(const Mtx src_a, const Mtx src_b, Mtx dst) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXConcat.s" } @@ -94,7 +65,7 @@ asm void PSMTXConcat() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXInverse() { +asm u32 PSMTXInverse(const Mtx src, Mtx dst) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXInverse.s" } @@ -104,7 +75,7 @@ asm void PSMTXInverse() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXRotRad() { +asm void PSMTXRotRad(Mtx matrix, u8 axis, float rad) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXRotRad.s" } @@ -114,7 +85,7 @@ asm void PSMTXRotRad() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void PSMTXRotTrig() { +asm void PSMTXRotTrig(Mtx matrix, u8 axis, float sin, float cos) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXRotTrig.s" } @@ -131,7 +102,7 @@ SECTION_SDATA2 static f32 lit_191 = 3.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __PSMTXRotAxisRadInternal() { +asm double __PSMTXRotAxisRadInternal(double param_1, double param_2, int param_3, int param_4) { nofralloc #include "asm/dolphin/mtx/mtx/__PSMTXRotAxisRadInternal.s" } @@ -141,7 +112,7 @@ asm void __PSMTXRotAxisRadInternal() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXRotAxisRad() { +asm void PSMTXRotAxisRad(Mtx matrix, const Vec* axis, float rad) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXRotAxisRad.s" } @@ -151,7 +122,7 @@ asm void PSMTXRotAxisRad() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXTrans() { +asm void PSMTXTrans(Mtx matrix, float x_trans, float y_trans, float z_trans) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXTrans.s" } @@ -161,7 +132,7 @@ asm void PSMTXTrans() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXTransApply() { +asm void PSMTXTransApply(const Mtx src, Mtx dst, float x, float y, float z) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXTransApply.s" } @@ -171,7 +142,7 @@ asm void PSMTXTransApply() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXScale() { +asm void PSMTXScale(Mtx matrix, float x_scale, float y_scale, float z_scale) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXScale.s" } @@ -181,7 +152,7 @@ asm void PSMTXScale() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXScaleApply() { +asm void PSMTXScaleApply(const Mtx src, Mtx dst, float x_scale, float y_scale, float z_scale) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXScaleApply.s" } @@ -191,7 +162,7 @@ asm void PSMTXScaleApply() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXQuat() { +asm void PSMTXQuat(Mtx matrix, const Quaternion* quat) { nofralloc #include "asm/dolphin/mtx/mtx/PSMTXQuat.s" } @@ -201,7 +172,7 @@ asm void PSMTXQuat() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_MTXLookAt() { +asm void C_MTXLookAt(Mtx param_1, const Vec* param_2, const Vec* param_3, const Vec* param_4) { nofralloc #include "asm/dolphin/mtx/mtx/C_MTXLookAt.s" } @@ -225,7 +196,8 @@ SECTION_SDATA2 static f32 lit_230[1 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_MTXLightPerspective() { +asm void C_MTXLightPerspective(Mtx matrix, float fov_y, float aspect, float scale_s, float scale_t, + float trans_s, float trans_t) { nofralloc #include "asm/dolphin/mtx/mtx/C_MTXLightPerspective.s" } @@ -235,7 +207,8 @@ asm void C_MTXLightPerspective() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_MTXLightOrtho() { +asm void C_MTXLightOrtho(Mtx matrix, float top, float bottom, float left, float right, + float scale_s, float scale_t, float trans_s, float trans_t) { nofralloc #include "asm/dolphin/mtx/mtx/C_MTXLightOrtho.s" } diff --git a/libs/dolphin/mtx/mtx44.cpp b/libs/dolphin/mtx/mtx44.cpp index ca121df35c..b53a738579 100644 --- a/libs/dolphin/mtx/mtx44.cpp +++ b/libs/dolphin/mtx/mtx44.cpp @@ -6,19 +6,7 @@ #include "dolphin/mtx/mtx44.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void C_MTXPerspective(); -extern "C" void C_MTXOrtho(); - -// -// External References: -// - -extern "C" void tanf(); +#include "msl_c/math.h" // // Declarations: @@ -52,7 +40,7 @@ SECTION_SDATA2 static f32 lit_106 = 0.01745329238474369f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_MTXPerspective() { +asm void C_MTXPerspective(Mtx44 matrix, float fov_y, float aspect, float near, float far) { nofralloc #include "asm/dolphin/mtx/mtx44/C_MTXPerspective.s" } @@ -62,7 +50,8 @@ asm void C_MTXPerspective() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_MTXOrtho() { +asm void C_MTXOrtho(Mtx44 matrix, float top, float bottom, float left, float right, float near, + float far) { nofralloc #include "asm/dolphin/mtx/mtx44/C_MTXOrtho.s" } diff --git a/libs/dolphin/mtx/mtxvec.cpp b/libs/dolphin/mtx/mtxvec.cpp index e7996408c8..b23654fa58 100644 --- a/libs/dolphin/mtx/mtxvec.cpp +++ b/libs/dolphin/mtx/mtxvec.cpp @@ -7,19 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Forward References: -// - -extern "C" void PSMTXMultVec(); -extern "C" void PSMTXMultVecArray(); -extern "C" void PSMTXMultVecSR(); -extern "C" void PSMTXMultVecArraySR(); - -// -// External References: -// - // // Declarations: // @@ -28,7 +15,7 @@ extern "C" void PSMTXMultVecArraySR(); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXMultVec() { +asm void PSMTXMultVec(const Mtx matrix, const Vec* src, Vec* dst) { nofralloc #include "asm/dolphin/mtx/mtxvec/PSMTXMultVec.s" } @@ -38,7 +25,7 @@ asm void PSMTXMultVec() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXMultVecArray() { +asm void PSMTXMultVecArray(const Mtx matrix, const Vec* src, Vec* dst, u32 count) { nofralloc #include "asm/dolphin/mtx/mtxvec/PSMTXMultVecArray.s" } @@ -48,7 +35,7 @@ asm void PSMTXMultVecArray() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXMultVecSR() { +asm void PSMTXMultVecSR(const Mtx matrix, const Vec* src, Vec* dst) { nofralloc #include "asm/dolphin/mtx/mtxvec/PSMTXMultVecSR.s" } @@ -58,7 +45,7 @@ asm void PSMTXMultVecSR() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSMTXMultVecArraySR() { +asm void PSMTXMultVecArraySR(const Mtx matrix, const Vec* src, Vec* dst, u32 count) { nofralloc #include "asm/dolphin/mtx/mtxvec/PSMTXMultVecArraySR.s" } diff --git a/libs/dolphin/mtx/quat.cpp b/libs/dolphin/mtx/quat.cpp index f1ef33ba55..e4e83b3881 100644 --- a/libs/dolphin/mtx/quat.cpp +++ b/libs/dolphin/mtx/quat.cpp @@ -6,23 +6,7 @@ #include "dolphin/mtx/quat.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void PSQUATMultiply(); -extern "C" void C_QUATRotAxisRad(); -extern "C" void C_QUATSlerp(); - -// -// External References: -// - -extern "C" void PSVECNormalize(); -extern "C" void sinf(); -extern "C" void cosf(); -extern "C" void acosf(); +#include "msl_c/math.h" // // Declarations: @@ -32,7 +16,7 @@ extern "C" void acosf(); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSQUATMultiply() { +asm void PSQUATMultiply(const Quaternion* src_a, const Quaternion* src_b, Quaternion* dst) { nofralloc #include "asm/dolphin/mtx/quat/PSQUATMultiply.s" } @@ -57,7 +41,7 @@ SECTION_SDATA2 static f32 lit_135 = 0.5f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_QUATRotAxisRad() { +asm void C_QUATRotAxisRad(Quaternion* quat, const Vec* axis, float rad) { nofralloc #include "asm/dolphin/mtx/quat/C_QUATRotAxisRad.s" } @@ -71,7 +55,7 @@ SECTION_SDATA2 static f32 lit_261 = 0.9999899864196777f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_QUATSlerp() { +asm void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, float t) { nofralloc #include "asm/dolphin/mtx/quat/C_QUATSlerp.s" } diff --git a/libs/dolphin/mtx/vec.cpp b/libs/dolphin/mtx/vec.cpp index 736afee2e5..603490abce 100644 --- a/libs/dolphin/mtx/vec.cpp +++ b/libs/dolphin/mtx/vec.cpp @@ -7,27 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Forward References: -// - -extern "C" void PSVECAdd(); -extern "C" void PSVECSubtract(); -extern "C" void PSVECScale(); -extern "C" void PSVECNormalize(); -extern "C" void PSVECSquareMag(); -extern "C" void PSVECMag(); -extern "C" void PSVECDotProduct(); -extern "C" void PSVECCrossProduct(); -extern "C" void C_VECHalfAngle(); -extern "C" void C_VECReflect(); -extern "C" void PSVECSquareDistance(); -extern "C" void PSVECDistance(); - -// -// External References: -// - // // Declarations: // @@ -36,7 +15,7 @@ extern "C" void PSVECDistance(); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECAdd() { +asm void PSVECAdd(const Vec* src_a, const Vec* src_b, Vec* dst) { nofralloc #include "asm/dolphin/mtx/vec/PSVECAdd.s" } @@ -46,7 +25,7 @@ asm void PSVECAdd() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECSubtract() { +asm void PSVECSubtract(const Vec* a, const Vec* b, Vec* dst) { nofralloc #include "asm/dolphin/mtx/vec/PSVECSubtract.s" } @@ -56,7 +35,7 @@ asm void PSVECSubtract() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECScale() { +asm void PSVECScale(const Vec* src, Vec* dst, float scale) { nofralloc #include "asm/dolphin/mtx/vec/PSVECScale.s" } @@ -81,7 +60,7 @@ SECTION_SDATA2 static f32 lit_119 = 3.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECNormalize() { +asm void PSVECNormalize(const Vec* src, Vec* dst) { nofralloc #include "asm/dolphin/mtx/vec/PSVECNormalize.s" } @@ -91,7 +70,7 @@ asm void PSVECNormalize() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECSquareMag() { +asm float PSVECSquareMag(const Vec* vec) { nofralloc #include "asm/dolphin/mtx/vec/PSVECSquareMag.s" } @@ -101,7 +80,7 @@ asm void PSVECSquareMag() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECMag() { +asm float PSVECMag(const Vec* data) { nofralloc #include "asm/dolphin/mtx/vec/PSVECMag.s" } @@ -111,7 +90,7 @@ asm void PSVECMag() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECDotProduct() { +asm float PSVECDotProduct(const Vec* a, const Vec* b) { nofralloc #include "asm/dolphin/mtx/vec/PSVECDotProduct.s" } @@ -121,7 +100,7 @@ asm void PSVECDotProduct() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECCrossProduct() { +asm void PSVECCrossProduct(const Vec* src_a, const Vec* src_b, Vec* dst) { nofralloc #include "asm/dolphin/mtx/vec/PSVECCrossProduct.s" } @@ -131,7 +110,7 @@ asm void PSVECCrossProduct() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_VECHalfAngle() { +asm void C_VECHalfAngle(const Vec* incident, const Vec* line_of_sight, Vec* out_half) { nofralloc #include "asm/dolphin/mtx/vec/C_VECHalfAngle.s" } @@ -145,7 +124,7 @@ SECTION_SDATA2 static f32 lit_161 = 2.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void C_VECReflect() { +asm void C_VECReflect(const Vec* src, const Vec* surface_normal, Vec* dst) { nofralloc #include "asm/dolphin/mtx/vec/C_VECReflect.s" } @@ -155,7 +134,7 @@ asm void C_VECReflect() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECSquareDistance() { +asm float PSVECSquareDistance(const Vec* a, const Vec* b) { nofralloc #include "asm/dolphin/mtx/vec/PSVECSquareDistance.s" } @@ -165,7 +144,7 @@ asm void PSVECSquareDistance() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PSVECDistance() { +asm float PSVECDistance(const Vec* a, const Vec* b) { nofralloc #include "asm/dolphin/mtx/vec/PSVECDistance.s" } diff --git a/libs/dolphin/os/OS.cpp b/libs/dolphin/os/OS.cpp index 65d05a8fb3..51e546482c 100644 --- a/libs/dolphin/os/OS.cpp +++ b/libs/dolphin/os/OS.cpp @@ -22,7 +22,6 @@ struct daBgObj_c { // extern "C" void __OSFPRInit(); -extern "C" void OSGetConsoleType(); extern "C" static void InquiryCallback(); extern "C" void OSInit(); extern "C" static void OSExceptionInit(); @@ -45,7 +44,6 @@ extern "C" void OSRegisterVersion(); SECTION_INIT void memset(); SECTION_INIT void memcpy(); -extern "C" void OSReport(); extern "C" void PPCMtmmcr0(); extern "C" void PPCMtmmcr1(); extern "C" void PPCMtpmc1(); @@ -57,10 +55,6 @@ extern "C" void PPCMthid2(); extern "C" void PPCDisableSpeculation(); extern "C" void PPCSetFpNonIEEEMode(); extern "C" void OSInitAlarm(); -extern "C" void OSGetArenaHi(); -extern "C" void OSGetArenaLo(); -extern "C" void OSSetArenaHi(); -extern "C" void OSSetArenaLo(); extern "C" void __OSInitAudioSystem(); extern "C" void DCInvalidateRange(); extern "C" void DCFlushRangeNoSync(); @@ -70,13 +64,10 @@ extern "C" void __OSCacheInit(); extern "C" void __OSContextInit(); extern "C" void __OSUnhandledException(); extern "C" void __OSGetExecParams(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSEnableInterrupts(); extern "C" void __OSSetInterruptHandler(); extern "C" void __OSInterruptInit(); extern "C" void __OSModuleInit(); extern "C" void __OSInitMemoryProtection(); -extern "C" void OSGetResetCode(); extern "C" void __OSResetSWInterruptHandler(); extern "C" void __OSInitSram(); extern "C" void __OSInitSystemCall(); @@ -132,7 +123,7 @@ asm void __OSFPRInit() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void OSGetConsoleType() { +asm s32 OSGetConsoleType() { nofralloc #include "asm/dolphin/os/OS/OSGetConsoleType.s" } diff --git a/libs/dolphin/os/OSCache.cpp b/libs/dolphin/os/OSCache.cpp index 4f48c96773..01cedfc94f 100644 --- a/libs/dolphin/os/OSCache.cpp +++ b/libs/dolphin/os/OSCache.cpp @@ -12,9 +12,7 @@ // extern "C" static void DCEnable(); -extern "C" void DCInvalidateRange(); extern "C" void DCFlushRange(); -extern "C" void DCStoreRange(); extern "C" void DCFlushRangeNoSync(); extern "C" void DCStoreRangeNoSync(); extern "C" void DCZeroRange(); @@ -68,7 +66,7 @@ static asm void DCEnable() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void DCInvalidateRange() { +asm void DCInvalidateRange(void*, u32) { nofralloc #include "asm/dolphin/os/OSCache/DCInvalidateRange.s" } @@ -88,7 +86,7 @@ asm void DCFlushRange() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void DCStoreRange() { +asm void DCStoreRange(void*, u32) { nofralloc #include "asm/dolphin/os/OSCache/DCStoreRange.s" } diff --git a/libs/dolphin/pad/Pad.cpp b/libs/dolphin/pad/Pad.cpp index 45632cb7e7..da12bfaa2e 100644 --- a/libs/dolphin/pad/Pad.cpp +++ b/libs/dolphin/pad/Pad.cpp @@ -17,16 +17,9 @@ extern "C" static void PADOriginUpdateCallback(); extern "C" static void PADProbeCallback(); extern "C" static void PADTypeAndStatusCallback(); extern "C" static void PADReceiveCheckCallback(); -extern "C" void PADReset(); -extern "C" void PADRecalibrate(); -extern "C" void PADInit(); -extern "C" void PADRead(); -extern "C" void PADControlMotor(); -extern "C" void PADSetSpec(); extern "C" static void SPEC0_MakeStatus(); extern "C" static void SPEC1_MakeStatus(); extern "C" static void SPEC2_MakeStatus(); -extern "C" void PADSetAnalogMode(); extern "C" static void OnReset(); extern "C" static void SamplingHandler(); extern "C" static void PADSetSamplingCallback(); @@ -265,7 +258,7 @@ static asm void PADReceiveCheckCallback() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PADReset() { +asm s32 PADReset(PADMask mask) { nofralloc #include "asm/dolphin/pad/Pad/PADReset.s" } @@ -275,7 +268,7 @@ asm void PADReset() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PADRecalibrate() { +asm s32 PADRecalibrate(PADMask mask) { nofralloc #include "asm/dolphin/pad/Pad/PADRecalibrate.s" } @@ -310,7 +303,7 @@ u8 __PADSpec[4 + 4 /* padding */]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PADInit() { +asm u32 PADInit() { nofralloc #include "asm/dolphin/pad/Pad/PADInit.s" } @@ -320,7 +313,7 @@ asm void PADInit() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PADRead() { +asm u32 PADRead(PADStatus*) { nofralloc #include "asm/dolphin/pad/Pad/PADRead.s" } @@ -330,7 +323,7 @@ asm void PADRead() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PADControlMotor() { +asm void PADControlMotor(s32 channel, u32 command) { nofralloc #include "asm/dolphin/pad/Pad/PADControlMotor.s" } @@ -340,7 +333,7 @@ asm void PADControlMotor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PADSetSpec() { +asm void PADSetSpec(int spec) { nofralloc #include "asm/dolphin/pad/Pad/PADSetSpec.s" } @@ -380,7 +373,7 @@ static asm void SPEC2_MakeStatus() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void PADSetAnalogMode() { +asm void PADSetAnalogMode(u32 mode) { nofralloc #include "asm/dolphin/pad/Pad/PADSetAnalogMode.s" } diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index 06e3e9b823..72d3ffe802 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -5,6 +5,7 @@ #include "d/a/d_a_player.h" #include "dol2asm.h" +#include "dolphin/mtx/mtx.h" #include "dolphin/types.h" // diff --git a/src/d/bg/d_bg_s.cpp b/src/d/bg/d_bg_s.cpp index 874d4d9d06..b1895a8342 100644 --- a/src/d/bg/d_bg_s.cpp +++ b/src/d/bg/d_bg_s.cpp @@ -5,6 +5,7 @@ #include "d/bg/d_bg_s.h" #include "dol2asm.h" +#include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" // diff --git a/src/d/bg/d_bg_w.cpp b/src/d/bg/d_bg_w.cpp index d61171e328..581a6392a3 100644 --- a/src/d/bg/d_bg_w.cpp +++ b/src/d/bg/d_bg_w.cpp @@ -5,6 +5,7 @@ #include "d/bg/d_bg_w.h" #include "dol2asm.h" +#include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" // diff --git a/src/d/d_attention.cpp b/src/d/d_attention.cpp index fbb3255147..7349d946f6 100644 --- a/src/d/d_attention.cpp +++ b/src/d/d_attention.cpp @@ -5,6 +5,7 @@ #include "d/d_attention.h" #include "dol2asm.h" +#include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" // diff --git a/src/f_op/f_op_actor.cpp b/src/f_op/f_op_actor.cpp index ddaa231eb7..3f2426f572 100644 --- a/src/f_op/f_op_actor.cpp +++ b/src/f_op/f_op_actor.cpp @@ -5,6 +5,7 @@ #include "f_op/f_op_actor.h" #include "dol2asm.h" +#include "dolphin/mtx/mtx.h" #include "dolphin/types.h" //