diff --git a/Progress.md b/Progress.md index fb779e8bd8..30bb0aedf0 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 24.821940% | 892732 | 3596544 +.text | 25.173611% | 905380 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 32.747461% | 1316668 | 4020672 +Total | 33.062035% | 1329316 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 32.747461% | 1316668 | 4020672 +main.dol | 33.062035% | 1329316 | 4020672 RELs | 33.385425% | 3839432 | 11500324 -Total | 33.220162% | 5156100 | 15520996 +Total | 33.301652% | 5168748 | 15520996 ## RELs diff --git a/asm/JSystem/JKernel/JKRAramStream/writeToAram__13JKRAramStreamFP20JKRAramStreamCommand.s b/asm/JSystem/JKernel/JKRAramStream/writeToAram__13JKRAramStreamFP20JKRAramStreamCommand.s deleted file mode 100644 index 2fb79e6392..0000000000 --- a/asm/JSystem/JKernel/JKRAramStream/writeToAram__13JKRAramStreamFP20JKRAramStreamCommand.s +++ /dev/null @@ -1,140 +0,0 @@ -lbl_802D3CE0: -/* 802D3CE0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D3CE4 7C 08 02 A6 */ mflr r0 -/* 802D3CE8 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D3CEC 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D3CF0 48 08 E4 D9 */ bl _savegpr_24 -/* 802D3CF4 7C 78 1B 78 */ mr r24, r3 -/* 802D3CF8 83 C3 00 08 */ lwz r30, 8(r3) -/* 802D3CFC 83 A3 00 14 */ lwz r29, 0x14(r3) -/* 802D3D00 3B 80 00 00 */ li r28, 0 -/* 802D3D04 83 63 00 04 */ lwz r27, 4(r3) -/* 802D3D08 83 43 00 1C */ lwz r26, 0x1c(r3) -/* 802D3D0C 80 03 00 20 */ lwz r0, 0x20(r3) -/* 802D3D10 83 23 00 24 */ lwz r25, 0x24(r3) -/* 802D3D14 28 1A 00 00 */ cmplwi r26, 0 -/* 802D3D18 41 82 00 28 */ beq lbl_802D3D40 -/* 802D3D1C 28 00 00 00 */ cmplwi r0, 0 -/* 802D3D20 3C 60 00 01 */ lis r3, 0x0001 /* 0x00008000@ha */ -/* 802D3D24 3B E3 80 00 */ addi r31, r3, 0x8000 /* 0x00008000@l */ -/* 802D3D28 41 82 00 08 */ beq lbl_802D3D30 -/* 802D3D2C 7C 1F 03 78 */ mr r31, r0 -lbl_802D3D30: -/* 802D3D30 93 F8 00 20 */ stw r31, 0x20(r24) -/* 802D3D34 38 00 00 00 */ li r0, 0 -/* 802D3D38 98 18 00 28 */ stb r0, 0x28(r24) -/* 802D3D3C 48 00 00 60 */ b lbl_802D3D9C -lbl_802D3D40: -/* 802D3D40 28 00 00 00 */ cmplwi r0, 0 -/* 802D3D44 3C 60 00 01 */ lis r3, 0x0001 /* 0x00008000@ha */ -/* 802D3D48 3B E3 80 00 */ addi r31, r3, 0x8000 /* 0x00008000@l */ -/* 802D3D4C 41 82 00 08 */ beq lbl_802D3D54 -/* 802D3D50 7C 1F 03 78 */ mr r31, r0 -lbl_802D3D54: -/* 802D3D54 28 19 00 00 */ cmplwi r25, 0 -/* 802D3D58 41 82 00 20 */ beq lbl_802D3D78 -/* 802D3D5C 7F E3 FB 78 */ mr r3, r31 -/* 802D3D60 38 80 FF E0 */ li r4, -32 -/* 802D3D64 7F 25 CB 78 */ mr r5, r25 -/* 802D3D68 4B FF A7 0D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D3D6C 7C 7A 1B 78 */ mr r26, r3 -/* 802D3D70 93 58 00 1C */ stw r26, 0x1c(r24) -/* 802D3D74 48 00 00 1C */ b lbl_802D3D90 -lbl_802D3D78: -/* 802D3D78 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D3D7C 7F E4 FB 78 */ mr r4, r31 -/* 802D3D80 38 A0 FF E0 */ li r5, -32 -/* 802D3D84 4B FF A7 51 */ bl alloc__7JKRHeapFUli -/* 802D3D88 7C 7A 1B 78 */ mr r26, r3 -/* 802D3D8C 93 58 00 1C */ stw r26, 0x1c(r24) -lbl_802D3D90: -/* 802D3D90 93 F8 00 20 */ stw r31, 0x20(r24) -/* 802D3D94 38 00 00 01 */ li r0, 1 -/* 802D3D98 98 18 00 28 */ stb r0, 0x28(r24) -lbl_802D3D9C: -/* 802D3D9C 28 1A 00 00 */ cmplwi r26, 0 -/* 802D3DA0 40 82 00 54 */ bne lbl_802D3DF4 -/* 802D3DA4 28 19 00 00 */ cmplwi r25, 0 -/* 802D3DA8 40 82 00 1C */ bne lbl_802D3DC4 -/* 802D3DAC 80 6D 8D F4 */ lwz r3, sCurrentHeap__7JKRHeap(r13) -/* 802D3DB0 81 83 00 00 */ lwz r12, 0(r3) -/* 802D3DB4 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D3DB8 7D 89 03 A6 */ mtctr r12 -/* 802D3DBC 4E 80 04 21 */ bctrl -/* 802D3DC0 48 00 00 18 */ b lbl_802D3DD8 -lbl_802D3DC4: -/* 802D3DC4 7F 23 CB 78 */ mr r3, r25 -/* 802D3DC8 81 99 00 00 */ lwz r12, 0(r25) -/* 802D3DCC 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D3DD0 7D 89 03 A6 */ mtctr r12 -/* 802D3DD4 4E 80 04 21 */ bctrl -lbl_802D3DD8: -/* 802D3DD8 3C 60 80 3A */ lis r3, JKRAramStream__stringBase0@ha /* 0x8039D120@ha */ -/* 802D3DDC 38 63 D1 20 */ addi r3, r3, JKRAramStream__stringBase0@l /* 0x8039D120@l */ -/* 802D3DE0 38 80 00 AC */ li r4, 0xac -/* 802D3DE4 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D3DE8 38 C3 00 15 */ addi r6, r3, 0x15 -/* 802D3DEC 4C C6 31 82 */ crclr 6 -/* 802D3DF0 48 00 E4 0D */ bl panic_f__12JUTExceptionFPCciPCce -lbl_802D3DF4: -/* 802D3DF4 28 1A 00 00 */ cmplwi r26, 0 -/* 802D3DF8 41 82 00 AC */ beq lbl_802D3EA4 -/* 802D3DFC 80 78 00 10 */ lwz r3, 0x10(r24) -/* 802D3E00 7F A4 EB 78 */ mr r4, r29 -/* 802D3E04 38 A0 00 00 */ li r5, 0 -/* 802D3E08 48 00 86 D5 */ bl seek__20JSURandomInputStreamFl17JSUStreamSeekFrom -/* 802D3E0C 48 00 00 70 */ b lbl_802D3E7C -lbl_802D3E10: -/* 802D3E10 7C 1E F8 40 */ cmplw r30, r31 -/* 802D3E14 7F D9 F3 78 */ mr r25, r30 -/* 802D3E18 40 81 00 08 */ ble lbl_802D3E20 -/* 802D3E1C 7F F9 FB 78 */ mr r25, r31 -lbl_802D3E20: -/* 802D3E20 80 78 00 10 */ lwz r3, 0x10(r24) -/* 802D3E24 7F 44 D3 78 */ mr r4, r26 -/* 802D3E28 7F 25 CB 78 */ mr r5, r25 -/* 802D3E2C 48 00 84 6D */ bl read__14JSUInputStreamFPvl -/* 802D3E30 2C 03 00 00 */ cmpwi r3, 0 -/* 802D3E34 40 82 00 0C */ bne lbl_802D3E40 -/* 802D3E38 3B 80 00 00 */ li r28, 0 -/* 802D3E3C 48 00 00 48 */ b lbl_802D3E84 -lbl_802D3E40: -/* 802D3E40 38 60 00 00 */ li r3, 0 -/* 802D3E44 7F 44 D3 78 */ mr r4, r26 -/* 802D3E48 7F 65 DB 78 */ mr r5, r27 -/* 802D3E4C 7F 26 CB 78 */ mr r6, r25 -/* 802D3E50 38 E0 00 00 */ li r7, 0 -/* 802D3E54 4B FF F9 E5 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock -/* 802D3E58 7F D9 F0 50 */ subf r30, r25, r30 -/* 802D3E5C 7F 9C CA 14 */ add r28, r28, r25 -/* 802D3E60 7F 7B CA 14 */ add r27, r27, r25 -/* 802D3E64 80 78 00 18 */ lwz r3, 0x18(r24) -/* 802D3E68 28 03 00 00 */ cmplwi r3, 0 -/* 802D3E6C 41 82 00 10 */ beq lbl_802D3E7C -/* 802D3E70 80 03 00 00 */ lwz r0, 0(r3) -/* 802D3E74 7C 00 CA 14 */ add r0, r0, r25 -/* 802D3E78 90 03 00 00 */ stw r0, 0(r3) -lbl_802D3E7C: -/* 802D3E7C 28 1E 00 00 */ cmplwi r30, 0 -/* 802D3E80 40 82 FF 90 */ bne lbl_802D3E10 -lbl_802D3E84: -/* 802D3E84 88 18 00 28 */ lbz r0, 0x28(r24) -/* 802D3E88 28 00 00 00 */ cmplwi r0, 0 -/* 802D3E8C 41 82 00 18 */ beq lbl_802D3EA4 -/* 802D3E90 7F 43 D3 78 */ mr r3, r26 -/* 802D3E94 38 80 00 00 */ li r4, 0 -/* 802D3E98 4B FF A6 69 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D3E9C 38 00 00 00 */ li r0, 0 -/* 802D3EA0 98 18 00 28 */ stb r0, 0x28(r24) -lbl_802D3EA4: -/* 802D3EA4 38 78 00 30 */ addi r3, r24, 0x30 -/* 802D3EA8 7F 84 E3 78 */ mr r4, r28 -/* 802D3EAC 38 A0 00 00 */ li r5, 0 -/* 802D3EB0 48 06 AB 45 */ bl OSSendMessage -/* 802D3EB4 7F 83 E3 78 */ mr r3, r28 -/* 802D3EB8 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D3EBC 48 08 E3 59 */ bl _restgpr_24 -/* 802D3EC0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D3EC4 7C 08 03 A6 */ mtlr r0 -/* 802D3EC8 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D3ECC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRCompArchive/__ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection.s b/asm/JSystem/JKernel/JKRCompArchive/__ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection.s deleted file mode 100644 index 5700c913a9..0000000000 --- a/asm/JSystem/JKernel/JKRCompArchive/__ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_802D87D4: -/* 802D87D4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D87D8 7C 08 02 A6 */ mflr r0 -/* 802D87DC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D87E0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D87E4 48 08 99 F9 */ bl _savegpr_29 -/* 802D87E8 7C 7D 1B 78 */ mr r29, r3 -/* 802D87EC 7C 9E 23 78 */ mr r30, r4 -/* 802D87F0 7C BF 2B 78 */ mr r31, r5 -/* 802D87F4 38 A0 00 04 */ li r5, 4 -/* 802D87F8 4B FF DA 9D */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode -/* 802D87FC 3C 60 80 3D */ lis r3, __vt__14JKRCompArchive@ha /* 0x803CC3E8@ha */ -/* 802D8800 38 03 C3 E8 */ addi r0, r3, __vt__14JKRCompArchive@l /* 0x803CC3E8@l */ -/* 802D8804 90 1D 00 00 */ stw r0, 0(r29) -/* 802D8808 93 FD 00 60 */ stw r31, 0x60(r29) -/* 802D880C 7F A3 EB 78 */ mr r3, r29 -/* 802D8810 7F C4 F3 78 */ mr r4, r30 -/* 802D8814 48 00 01 A9 */ bl open__14JKRCompArchiveFl -/* 802D8818 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D881C 40 82 00 0C */ bne lbl_802D8828 -/* 802D8820 7F A3 EB 78 */ mr r3, r29 -/* 802D8824 48 00 00 40 */ b lbl_802D8864 -lbl_802D8828: -/* 802D8828 3C 60 52 41 */ lis r3, 0x5241 /* 0x52415243@ha */ -/* 802D882C 38 03 52 43 */ addi r0, r3, 0x5243 /* 0x52415243@l */ -/* 802D8830 90 1D 00 2C */ stw r0, 0x2c(r29) -/* 802D8834 80 9D 00 54 */ lwz r4, 0x54(r29) -/* 802D8838 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 802D883C 80 03 00 04 */ lwz r0, 4(r3) -/* 802D8840 7C 04 02 14 */ add r0, r4, r0 -/* 802D8844 90 1D 00 28 */ stw r0, 0x28(r29) -/* 802D8848 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D884C 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D8850 38 9D 00 18 */ addi r4, r29, 0x18 -/* 802D8854 48 00 37 9D */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D8858 38 00 00 01 */ li r0, 1 -/* 802D885C 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D8860 7F A3 EB 78 */ mr r3, r29 -lbl_802D8864: -/* 802D8864 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D8868 48 08 99 C1 */ bl _restgpr_29 -/* 802D886C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D8870 7C 08 03 A6 */ mtlr r0 -/* 802D8874 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D8878 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRCompArchive/__dt__14JKRCompArchiveFv.s b/asm/JSystem/JKernel/JKRCompArchive/__dt__14JKRCompArchiveFv.s deleted file mode 100644 index b7ad876679..0000000000 --- a/asm/JSystem/JKernel/JKRCompArchive/__dt__14JKRCompArchiveFv.s +++ /dev/null @@ -1,89 +0,0 @@ -lbl_802D887C: -/* 802D887C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D8880 7C 08 02 A6 */ mflr r0 -/* 802D8884 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D8888 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D888C 48 08 99 4D */ bl _savegpr_28 -/* 802D8890 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D8894 7C 9F 23 78 */ mr r31, r4 -/* 802D8898 41 82 01 08 */ beq lbl_802D89A0 -/* 802D889C 3C 60 80 3D */ lis r3, __vt__14JKRCompArchive@ha /* 0x803CC3E8@ha */ -/* 802D88A0 38 03 C3 E8 */ addi r0, r3, __vt__14JKRCompArchive@l /* 0x803CC3E8@l */ -/* 802D88A4 90 1E 00 00 */ stw r0, 0(r30) -/* 802D88A8 80 1E 00 44 */ lwz r0, 0x44(r30) -/* 802D88AC 28 00 00 00 */ cmplwi r0, 0 -/* 802D88B0 41 82 00 58 */ beq lbl_802D8908 -/* 802D88B4 83 BE 00 4C */ lwz r29, 0x4c(r30) -/* 802D88B8 3B 80 00 00 */ li r28, 0 -/* 802D88BC 48 00 00 2C */ b lbl_802D88E8 -lbl_802D88C0: -/* 802D88C0 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D88C4 54 00 46 F7 */ rlwinm. r0, r0, 8, 0x1b, 0x1b -/* 802D88C8 40 82 00 18 */ bne lbl_802D88E0 -/* 802D88CC 80 7D 00 10 */ lwz r3, 0x10(r29) -/* 802D88D0 28 03 00 00 */ cmplwi r3, 0 -/* 802D88D4 41 82 00 0C */ beq lbl_802D88E0 -/* 802D88D8 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D88DC 4B FF 5C 25 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D88E0: -/* 802D88E0 3B BD 00 14 */ addi r29, r29, 0x14 -/* 802D88E4 3B 9C 00 01 */ addi r28, r28, 1 -lbl_802D88E8: -/* 802D88E8 80 7E 00 44 */ lwz r3, 0x44(r30) -/* 802D88EC 80 03 00 08 */ lwz r0, 8(r3) -/* 802D88F0 7C 1C 00 40 */ cmplw r28, r0 -/* 802D88F4 41 80 FF CC */ blt lbl_802D88C0 -/* 802D88F8 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D88FC 4B FF 5C 05 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D8900 38 00 00 00 */ li r0, 0 -/* 802D8904 90 1E 00 44 */ stw r0, 0x44(r30) -lbl_802D8908: -/* 802D8908 80 7E 00 68 */ lwz r3, 0x68(r30) -/* 802D890C 28 03 00 00 */ cmplwi r3, 0 -/* 802D8910 41 82 00 1C */ beq lbl_802D892C -/* 802D8914 41 82 00 18 */ beq lbl_802D892C -/* 802D8918 38 80 00 01 */ li r4, 1 -/* 802D891C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D8920 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D8924 7D 89 03 A6 */ mtctr r12 -/* 802D8928 4E 80 04 21 */ bctrl -lbl_802D892C: -/* 802D892C 80 7E 00 50 */ lwz r3, 0x50(r30) -/* 802D8930 28 03 00 00 */ cmplwi r3, 0 -/* 802D8934 41 82 00 14 */ beq lbl_802D8948 -/* 802D8938 38 80 00 00 */ li r4, 0 -/* 802D893C 4B FF 5B C5 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D8940 38 00 00 00 */ li r0, 0 -/* 802D8944 90 1E 00 50 */ stw r0, 0x50(r30) -lbl_802D8948: -/* 802D8948 80 7E 00 70 */ lwz r3, 0x70(r30) -/* 802D894C 28 03 00 00 */ cmplwi r3, 0 -/* 802D8950 41 82 00 1C */ beq lbl_802D896C -/* 802D8954 41 82 00 18 */ beq lbl_802D896C -/* 802D8958 38 80 00 01 */ li r4, 1 -/* 802D895C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D8960 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D8964 7D 89 03 A6 */ mtctr r12 -/* 802D8968 4E 80 04 21 */ bctrl -lbl_802D896C: -/* 802D896C 3C 60 80 43 */ lis r3, sVolumeList__13JKRFileLoader@ha /* 0x80434354@ha */ -/* 802D8970 38 63 43 54 */ addi r3, r3, sVolumeList__13JKRFileLoader@l /* 0x80434354@l */ -/* 802D8974 38 9E 00 18 */ addi r4, r30, 0x18 -/* 802D8978 48 00 37 E5 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D897C 38 00 00 00 */ li r0, 0 -/* 802D8980 98 1E 00 30 */ stb r0, 0x30(r30) -/* 802D8984 7F C3 F3 78 */ mr r3, r30 -/* 802D8988 38 80 00 00 */ li r4, 0 -/* 802D898C 4B FF D9 A9 */ bl __dt__10JKRArchiveFv -/* 802D8990 7F E0 07 35 */ extsh. r0, r31 -/* 802D8994 40 81 00 0C */ ble lbl_802D89A0 -/* 802D8998 7F C3 F3 78 */ mr r3, r30 -/* 802D899C 4B FF 63 A1 */ bl __dl__FPv -lbl_802D89A0: -/* 802D89A0 7F C3 F3 78 */ mr r3, r30 -/* 802D89A4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D89A8 48 08 98 7D */ bl _restgpr_28 -/* 802D89AC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D89B0 7C 08 03 A6 */ mtlr r0 -/* 802D89B4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D89B8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRCompArchive/removeResourceAll__14JKRCompArchiveFv.s b/asm/JSystem/JKernel/JKRCompArchive/removeResourceAll__14JKRCompArchiveFv.s deleted file mode 100644 index efa7c2399b..0000000000 --- a/asm/JSystem/JKernel/JKRCompArchive/removeResourceAll__14JKRCompArchiveFv.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_802D9260: -/* 802D9260 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D9264 7C 08 02 A6 */ mflr r0 -/* 802D9268 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D926C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D9270 48 08 8F 69 */ bl _savegpr_28 -/* 802D9274 7C 7C 1B 78 */ mr r28, r3 -/* 802D9278 80 03 00 44 */ lwz r0, 0x44(r3) -/* 802D927C 28 00 00 00 */ cmplwi r0, 0 -/* 802D9280 41 82 00 5C */ beq lbl_802D92DC -/* 802D9284 88 1C 00 3C */ lbz r0, 0x3c(r28) -/* 802D9288 28 00 00 01 */ cmplwi r0, 1 -/* 802D928C 41 82 00 50 */ beq lbl_802D92DC -/* 802D9290 83 DC 00 4C */ lwz r30, 0x4c(r28) -/* 802D9294 3B A0 00 00 */ li r29, 0 -/* 802D9298 3B E0 00 00 */ li r31, 0 -/* 802D929C 48 00 00 30 */ b lbl_802D92CC -lbl_802D92A0: -/* 802D92A0 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D92A4 54 00 46 3E */ srwi r0, r0, 0x18 -/* 802D92A8 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 802D92AC 28 03 00 00 */ cmplwi r3, 0 -/* 802D92B0 41 82 00 18 */ beq lbl_802D92C8 -/* 802D92B4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 802D92B8 40 82 00 0C */ bne lbl_802D92C4 -/* 802D92BC 80 9C 00 38 */ lwz r4, 0x38(r28) -/* 802D92C0 4B FF 52 41 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D92C4: -/* 802D92C4 93 FE 00 10 */ stw r31, 0x10(r30) -lbl_802D92C8: -/* 802D92C8 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D92CC: -/* 802D92CC 80 7C 00 44 */ lwz r3, 0x44(r28) -/* 802D92D0 80 03 00 08 */ lwz r0, 8(r3) -/* 802D92D4 7C 1D 00 40 */ cmplw r29, r0 -/* 802D92D8 41 80 FF C8 */ blt lbl_802D92A0 -lbl_802D92DC: -/* 802D92DC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D92E0 48 08 8F 45 */ bl _restgpr_28 -/* 802D92E4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D92E8 7C 08 03 A6 */ mtlr r0 -/* 802D92EC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D92F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRCompArchive/removeResource__14JKRCompArchiveFPv.s b/asm/JSystem/JKernel/JKRCompArchive/removeResource__14JKRCompArchiveFPv.s deleted file mode 100644 index 3fdc60bcc9..0000000000 --- a/asm/JSystem/JKernel/JKRCompArchive/removeResource__14JKRCompArchiveFPv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_802D92F4: -/* 802D92F4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D92F8 7C 08 02 A6 */ mflr r0 -/* 802D92FC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D9300 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D9304 48 08 8E D9 */ bl _savegpr_29 -/* 802D9308 7C 7D 1B 78 */ mr r29, r3 -/* 802D930C 7C 9E 23 78 */ mr r30, r4 -/* 802D9310 4B FF D4 25 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D9314 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D9318 40 82 00 0C */ bne lbl_802D9324 -/* 802D931C 38 60 00 00 */ li r3, 0 -/* 802D9320 48 00 00 28 */ b lbl_802D9348 -lbl_802D9324: -/* 802D9324 80 1F 00 04 */ lwz r0, 4(r31) -/* 802D9328 54 00 46 F7 */ rlwinm. r0, r0, 8, 0x1b, 0x1b -/* 802D932C 40 82 00 10 */ bne lbl_802D933C -/* 802D9330 7F C3 F3 78 */ mr r3, r30 -/* 802D9334 80 9D 00 38 */ lwz r4, 0x38(r29) -/* 802D9338 4B FF 51 C9 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D933C: -/* 802D933C 38 00 00 00 */ li r0, 0 -/* 802D9340 90 1F 00 10 */ stw r0, 0x10(r31) -/* 802D9344 38 60 00 01 */ li r3, 1 -lbl_802D9348: -/* 802D9348 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D934C 48 08 8E DD */ bl _restgpr_29 -/* 802D9350 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D9354 7C 08 03 A6 */ mtlr r0 -/* 802D9358 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D935C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRExpHeap/allocFromTail__10JKRExpHeapFUli.s b/asm/JSystem/JKernel/JKRExpHeap/allocFromTail__10JKRExpHeapFUli.s deleted file mode 100644 index 098eba8d08..0000000000 --- a/asm/JSystem/JKernel/JKRExpHeap/allocFromTail__10JKRExpHeapFUli.s +++ /dev/null @@ -1,97 +0,0 @@ -lbl_802CF574: -/* 802CF574 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CF578 7C 08 02 A6 */ mflr r0 -/* 802CF57C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CF580 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CF584 48 09 2C 51 */ bl _savegpr_27 -/* 802CF588 7C 7B 1B 78 */ mr r27, r3 -/* 802CF58C 3B E0 00 00 */ li r31, 0 -/* 802CF590 3B C0 00 00 */ li r30, 0 -/* 802CF594 3B A0 00 00 */ li r29, 0 -/* 802CF598 81 03 00 7C */ lwz r8, 0x7c(r3) -/* 802CF59C 38 05 FF FF */ addi r0, r5, -1 -/* 802CF5A0 7C 03 00 F8 */ nor r3, r0, r0 -/* 802CF5A4 48 00 00 38 */ b lbl_802CF5DC -lbl_802CF5A8: -/* 802CF5A8 80 C8 00 04 */ lwz r6, 4(r8) -/* 802CF5AC 7C A8 32 14 */ add r5, r8, r6 -/* 802CF5B0 38 A5 00 10 */ addi r5, r5, 0x10 -/* 802CF5B4 7C 04 28 50 */ subf r0, r4, r5 -/* 802CF5B8 7C 67 00 38 */ and r7, r3, r0 -/* 802CF5BC 7F 87 28 50 */ subf r28, r7, r5 -/* 802CF5C0 7C 06 E0 40 */ cmplw r6, r28 -/* 802CF5C4 41 80 00 14 */ blt lbl_802CF5D8 -/* 802CF5C8 7D 1E 43 78 */ mr r30, r8 -/* 802CF5CC 7F FC 30 50 */ subf r31, r28, r6 -/* 802CF5D0 3B A7 FF F0 */ addi r29, r7, -16 -/* 802CF5D4 48 00 00 10 */ b lbl_802CF5E4 -lbl_802CF5D8: -/* 802CF5D8 81 08 00 08 */ lwz r8, 8(r8) -lbl_802CF5DC: -/* 802CF5DC 28 08 00 00 */ cmplwi r8, 0 -/* 802CF5E0 40 82 FF C8 */ bne lbl_802CF5A8 -lbl_802CF5E4: -/* 802CF5E4 28 1E 00 00 */ cmplwi r30, 0 -/* 802CF5E8 41 82 00 D0 */ beq lbl_802CF6B8 -/* 802CF5EC 28 1F 00 10 */ cmplwi r31, 0x10 -/* 802CF5F0 41 80 00 44 */ blt lbl_802CF634 -/* 802CF5F4 7F A3 EB 78 */ mr r3, r29 -/* 802CF5F8 38 80 00 00 */ li r4, 0 -/* 802CF5FC 38 A0 00 00 */ li r5, 0 -/* 802CF600 7F 86 E3 78 */ mr r6, r28 -/* 802CF604 88 FB 00 6D */ lbz r7, 0x6d(r27) -/* 802CF608 39 00 00 80 */ li r8, 0x80 -/* 802CF60C 48 00 12 05 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc -/* 802CF610 80 1E 00 04 */ lwz r0, 4(r30) -/* 802CF614 7C 7C 00 50 */ subf r3, r28, r0 -/* 802CF618 38 03 FF F0 */ addi r0, r3, -16 -/* 802CF61C 90 1E 00 04 */ stw r0, 4(r30) -/* 802CF620 7F 63 DB 78 */ mr r3, r27 -/* 802CF624 7F A4 EB 78 */ mr r4, r29 -/* 802CF628 48 00 07 A5 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802CF62C 38 7D 00 10 */ addi r3, r29, 0x10 -/* 802CF630 48 00 00 8C */ b lbl_802CF6BC -lbl_802CF634: -/* 802CF634 28 1F 00 00 */ cmplwi r31, 0 -/* 802CF638 41 82 00 44 */ beq lbl_802CF67C -/* 802CF63C 7F 63 DB 78 */ mr r3, r27 -/* 802CF640 7F C4 F3 78 */ mr r4, r30 -/* 802CF644 48 00 08 71 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802CF648 7F A3 EB 78 */ mr r3, r29 -/* 802CF64C 38 80 00 00 */ li r4, 0 -/* 802CF650 38 A0 00 00 */ li r5, 0 -/* 802CF654 7F 86 E3 78 */ mr r6, r28 -/* 802CF658 88 FB 00 6D */ lbz r7, 0x6d(r27) -/* 802CF65C 63 E0 00 80 */ ori r0, r31, 0x80 -/* 802CF660 54 08 06 3E */ clrlwi r8, r0, 0x18 -/* 802CF664 48 00 11 AD */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc -/* 802CF668 7F 63 DB 78 */ mr r3, r27 -/* 802CF66C 7F A4 EB 78 */ mr r4, r29 -/* 802CF670 48 00 07 5D */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802CF674 38 7D 00 10 */ addi r3, r29, 0x10 -/* 802CF678 48 00 00 44 */ b lbl_802CF6BC -lbl_802CF67C: -/* 802CF67C 7F 63 DB 78 */ mr r3, r27 -/* 802CF680 7F C4 F3 78 */ mr r4, r30 -/* 802CF684 48 00 08 31 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802CF688 7F A3 EB 78 */ mr r3, r29 -/* 802CF68C 38 80 00 00 */ li r4, 0 -/* 802CF690 38 A0 00 00 */ li r5, 0 -/* 802CF694 7F 86 E3 78 */ mr r6, r28 -/* 802CF698 88 FB 00 6D */ lbz r7, 0x6d(r27) -/* 802CF69C 39 00 00 80 */ li r8, 0x80 -/* 802CF6A0 48 00 11 71 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc -/* 802CF6A4 7F 63 DB 78 */ mr r3, r27 -/* 802CF6A8 7F A4 EB 78 */ mr r4, r29 -/* 802CF6AC 48 00 07 21 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802CF6B0 38 7D 00 10 */ addi r3, r29, 0x10 -/* 802CF6B4 48 00 00 08 */ b lbl_802CF6BC -lbl_802CF6B8: -/* 802CF6B8 38 60 00 00 */ li r3, 0 -lbl_802CF6BC: -/* 802CF6BC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CF6C0 48 09 2B 61 */ bl _restgpr_27 -/* 802CF6C4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CF6C8 7C 08 03 A6 */ mtlr r0 -/* 802CF6CC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CF6D0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRExpHeap/check__10JKRExpHeapFv.s b/asm/JSystem/JKernel/JKRExpHeap/check__10JKRExpHeapFv.s deleted file mode 100644 index b56371adf6..0000000000 --- a/asm/JSystem/JKernel/JKRExpHeap/check__10JKRExpHeapFv.s +++ /dev/null @@ -1,153 +0,0 @@ -lbl_802D0190: -/* 802D0190 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D0194 7C 08 02 A6 */ mflr r0 -/* 802D0198 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D019C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D01A0 48 09 20 39 */ bl _savegpr_28 -/* 802D01A4 7C 7C 1B 78 */ mr r28, r3 -/* 802D01A8 38 7C 00 18 */ addi r3, r28, 0x18 -/* 802D01AC 48 06 EE 95 */ bl OSLockMutex -/* 802D01B0 3B E0 00 00 */ li r31, 0 -/* 802D01B4 3B C0 00 01 */ li r30, 1 -/* 802D01B8 83 BC 00 80 */ lwz r29, 0x80(r28) -/* 802D01BC 48 00 00 E0 */ b lbl_802D029C -lbl_802D01C0: -/* 802D01C0 A0 1D 00 00 */ lhz r0, 0(r29) -/* 802D01C4 28 00 48 4D */ cmplwi r0, 0x484d -/* 802D01C8 41 82 00 28 */ beq lbl_802D01F0 -/* 802D01CC 3B C0 00 00 */ li r30, 0 -/* 802D01D0 54 06 06 3E */ clrlwi r6, r0, 0x18 -/* 802D01D4 54 05 C6 3E */ rlwinm r5, r0, 0x18, 0x18, 0x1f -/* 802D01D8 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D01DC 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D01E0 38 63 00 7A */ addi r3, r3, 0x7a -/* 802D01E4 7F A4 EB 78 */ mr r4, r29 -/* 802D01E8 4C C6 31 82 */ crclr 6 -/* 802D01EC 48 01 84 91 */ bl JUTWarningConsole_f -lbl_802D01F0: -/* 802D01F0 80 BD 00 0C */ lwz r5, 0xc(r29) -/* 802D01F4 28 05 00 00 */ cmplwi r5, 0 -/* 802D01F8 41 82 00 60 */ beq lbl_802D0258 -/* 802D01FC A0 05 00 00 */ lhz r0, 0(r5) -/* 802D0200 28 00 48 4D */ cmplwi r0, 0x484d -/* 802D0204 41 82 00 24 */ beq lbl_802D0228 -/* 802D0208 3B C0 00 00 */ li r30, 0 -/* 802D020C 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0210 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0214 38 63 00 A4 */ addi r3, r3, 0xa4 -/* 802D0218 7F A4 EB 78 */ mr r4, r29 -/* 802D021C 4C C6 31 82 */ crclr 6 -/* 802D0220 48 01 84 5D */ bl JUTWarningConsole_f -/* 802D0224 48 00 00 80 */ b lbl_802D02A4 -lbl_802D0228: -/* 802D0228 80 05 00 08 */ lwz r0, 8(r5) -/* 802D022C 7C 00 E8 40 */ cmplw r0, r29 -/* 802D0230 41 82 00 50 */ beq lbl_802D0280 -/* 802D0234 3B C0 00 00 */ li r30, 0 -/* 802D0238 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D023C 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0240 38 63 00 D1 */ addi r3, r3, 0xd1 -/* 802D0244 7C A4 2B 78 */ mr r4, r5 -/* 802D0248 7C 05 03 78 */ mr r5, r0 -/* 802D024C 4C C6 31 82 */ crclr 6 -/* 802D0250 48 01 84 2D */ bl JUTWarningConsole_f -/* 802D0254 48 00 00 2C */ b lbl_802D0280 -lbl_802D0258: -/* 802D0258 80 BC 00 84 */ lwz r5, 0x84(r28) -/* 802D025C 7C 05 E8 40 */ cmplw r5, r29 -/* 802D0260 41 82 00 20 */ beq lbl_802D0280 -/* 802D0264 3B C0 00 00 */ li r30, 0 -/* 802D0268 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D026C 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0270 38 63 00 FC */ addi r3, r3, 0xfc -/* 802D0274 7F A4 EB 78 */ mr r4, r29 -/* 802D0278 4C C6 31 82 */ crclr 6 -/* 802D027C 48 01 84 01 */ bl JUTWarningConsole_f -lbl_802D0280: -/* 802D0280 80 7D 00 04 */ lwz r3, 4(r29) -/* 802D0284 88 1D 00 02 */ lbz r0, 2(r29) -/* 802D0288 54 00 06 7E */ clrlwi r0, r0, 0x19 -/* 802D028C 7C 03 02 14 */ add r0, r3, r0 -/* 802D0290 7F E0 FA 14 */ add r31, r0, r31 -/* 802D0294 83 BD 00 0C */ lwz r29, 0xc(r29) -/* 802D0298 3B FF 00 10 */ addi r31, r31, 0x10 -lbl_802D029C: -/* 802D029C 28 1D 00 00 */ cmplwi r29, 0 -/* 802D02A0 40 82 FF 20 */ bne lbl_802D01C0 -lbl_802D02A4: -/* 802D02A4 83 BC 00 78 */ lwz r29, 0x78(r28) -/* 802D02A8 48 00 00 A4 */ b lbl_802D034C -lbl_802D02AC: -/* 802D02AC 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D02B0 7F E0 FA 14 */ add r31, r0, r31 -/* 802D02B4 80 9D 00 0C */ lwz r4, 0xc(r29) -/* 802D02B8 28 04 00 00 */ cmplwi r4, 0 -/* 802D02BC 3B FF 00 10 */ addi r31, r31, 0x10 -/* 802D02C0 41 82 00 60 */ beq lbl_802D0320 -/* 802D02C4 80 A4 00 08 */ lwz r5, 8(r4) -/* 802D02C8 7C 05 E8 40 */ cmplw r5, r29 -/* 802D02CC 41 82 00 1C */ beq lbl_802D02E8 -/* 802D02D0 3B C0 00 00 */ li r30, 0 -/* 802D02D4 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D02D8 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D02DC 38 63 00 D1 */ addi r3, r3, 0xd1 -/* 802D02E0 4C C6 31 82 */ crclr 6 -/* 802D02E4 48 01 83 99 */ bl JUTWarningConsole_f -lbl_802D02E8: -/* 802D02E8 80 BD 00 04 */ lwz r5, 4(r29) -/* 802D02EC 38 05 00 10 */ addi r0, r5, 0x10 -/* 802D02F0 7C 7D 02 14 */ add r3, r29, r0 -/* 802D02F4 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 802D02F8 7C 03 00 40 */ cmplw r3, r0 -/* 802D02FC 40 81 00 4C */ ble lbl_802D0348 -/* 802D0300 3B C0 00 00 */ li r30, 0 -/* 802D0304 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0308 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D030C 38 63 01 25 */ addi r3, r3, 0x125 -/* 802D0310 7F A4 EB 78 */ mr r4, r29 -/* 802D0314 4C C6 31 82 */ crclr 6 -/* 802D0318 48 01 83 65 */ bl JUTWarningConsole_f -/* 802D031C 48 00 00 2C */ b lbl_802D0348 -lbl_802D0320: -/* 802D0320 80 BC 00 7C */ lwz r5, 0x7c(r28) -/* 802D0324 7C 05 E8 40 */ cmplw r5, r29 -/* 802D0328 41 82 00 20 */ beq lbl_802D0348 -/* 802D032C 3B C0 00 00 */ li r30, 0 -/* 802D0330 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0334 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0338 38 63 00 FC */ addi r3, r3, 0xfc -/* 802D033C 7F A4 EB 78 */ mr r4, r29 -/* 802D0340 4C C6 31 82 */ crclr 6 -/* 802D0344 48 01 83 39 */ bl JUTWarningConsole_f -lbl_802D0348: -/* 802D0348 83 BD 00 0C */ lwz r29, 0xc(r29) -lbl_802D034C: -/* 802D034C 28 1D 00 00 */ cmplwi r29, 0 -/* 802D0350 40 82 FF 5C */ bne lbl_802D02AC -/* 802D0354 80 9C 00 38 */ lwz r4, 0x38(r28) -/* 802D0358 7C 1F 20 40 */ cmplw r31, r4 -/* 802D035C 41 82 00 20 */ beq lbl_802D037C -/* 802D0360 3B C0 00 00 */ li r30, 0 -/* 802D0364 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0368 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D036C 38 63 01 4A */ addi r3, r3, 0x14a -/* 802D0370 7F E5 FB 78 */ mr r5, r31 -/* 802D0374 4C C6 31 82 */ crclr 6 -/* 802D0378 48 01 83 05 */ bl JUTWarningConsole_f -lbl_802D037C: -/* 802D037C 57 C0 06 3F */ clrlwi. r0, r30, 0x18 -/* 802D0380 40 82 00 14 */ bne lbl_802D0394 -/* 802D0384 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0388 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D038C 38 63 01 77 */ addi r3, r3, 0x177 -/* 802D0390 48 01 83 6D */ bl JUTWarningConsole -lbl_802D0394: -/* 802D0394 38 7C 00 18 */ addi r3, r28, 0x18 -/* 802D0398 48 06 ED 85 */ bl OSUnlockMutex -/* 802D039C 7F C3 F3 78 */ mr r3, r30 -/* 802D03A0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D03A4 48 09 1E 81 */ bl _restgpr_28 -/* 802D03A8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D03AC 7C 08 03 A6 */ mtlr r0 -/* 802D03B0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D03B4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRExpHeap/create__10JKRExpHeapFUlP7JKRHeapb.s b/asm/JSystem/JKernel/JKRExpHeap/create__10JKRExpHeapFUlP7JKRHeapb.s deleted file mode 100644 index 5fe71bee3c..0000000000 --- a/asm/JSystem/JKernel/JKRExpHeap/create__10JKRExpHeapFUlP7JKRHeapb.s +++ /dev/null @@ -1,61 +0,0 @@ -lbl_802CEE2C: -/* 802CEE2C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CEE30 7C 08 02 A6 */ mflr r0 -/* 802CEE34 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CEE38 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CEE3C 48 09 33 9D */ bl _savegpr_28 -/* 802CEE40 7C 9C 23 79 */ or. r28, r4, r4 -/* 802CEE44 7C BD 2B 78 */ mr r29, r5 -/* 802CEE48 40 82 00 08 */ bne lbl_802CEE50 -/* 802CEE4C 83 8D 8D F8 */ lwz r28, sRootHeap__7JKRHeap(r13) -lbl_802CEE50: -/* 802CEE50 3C 03 00 01 */ addis r0, r3, 1 -/* 802CEE54 28 00 FF FF */ cmplwi r0, 0xffff -/* 802CEE58 40 82 00 10 */ bne lbl_802CEE68 -/* 802CEE5C 7F 83 E3 78 */ mr r3, r28 -/* 802CEE60 38 80 00 10 */ li r4, 0x10 -/* 802CEE64 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapFi -lbl_802CEE68: -/* 802CEE68 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b -/* 802CEE6C 28 1F 00 A0 */ cmplwi r31, 0xa0 -/* 802CEE70 40 80 00 0C */ bge lbl_802CEE7C -/* 802CEE74 38 60 00 00 */ li r3, 0 -/* 802CEE78 48 00 00 70 */ b lbl_802CEEE8 -lbl_802CEE7C: -/* 802CEE7C 7F E3 FB 78 */ mr r3, r31 -/* 802CEE80 38 80 00 10 */ li r4, 0x10 -/* 802CEE84 7F 85 E3 78 */ mr r5, r28 -/* 802CEE88 4B FF F5 ED */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802CEE8C 7C 60 1B 78 */ mr r0, r3 -/* 802CEE90 7C 1E 03 79 */ or. r30, r0, r0 -/* 802CEE94 38 9E 00 90 */ addi r4, r30, 0x90 -/* 802CEE98 40 82 00 0C */ bne lbl_802CEEA4 -/* 802CEE9C 38 60 00 00 */ li r3, 0 -/* 802CEEA0 48 00 00 48 */ b lbl_802CEEE8 -lbl_802CEEA4: -/* 802CEEA4 7F C5 F3 78 */ mr r5, r30 -/* 802CEEA8 41 82 00 18 */ beq lbl_802CEEC0 -/* 802CEEAC 38 BF FF 70 */ addi r5, r31, -144 -/* 802CEEB0 7F 86 E3 78 */ mr r6, r28 -/* 802CEEB4 7F A7 EB 78 */ mr r7, r29 -/* 802CEEB8 48 00 01 79 */ bl __ct__10JKRExpHeapFPvUlP7JKRHeapb -/* 802CEEBC 7C 65 1B 78 */ mr r5, r3 -lbl_802CEEC0: -/* 802CEEC0 28 05 00 00 */ cmplwi r5, 0 -/* 802CEEC4 40 82 00 18 */ bne lbl_802CEEDC -/* 802CEEC8 7F C3 F3 78 */ mr r3, r30 -/* 802CEECC 38 80 00 00 */ li r4, 0 -/* 802CEED0 4B FF F6 31 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802CEED4 38 60 00 00 */ li r3, 0 -/* 802CEED8 48 00 00 10 */ b lbl_802CEEE8 -lbl_802CEEDC: -/* 802CEEDC 38 00 00 00 */ li r0, 0 -/* 802CEEE0 98 05 00 6E */ stb r0, 0x6e(r5) -/* 802CEEE4 7C A3 2B 78 */ mr r3, r5 -lbl_802CEEE8: -/* 802CEEE8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CEEEC 48 09 33 39 */ bl _restgpr_28 -/* 802CEEF0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CEEF4 7C 08 03 A6 */ mtlr r0 -/* 802CEEF8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CEEFC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRExpHeap/do_freeTail__10JKRExpHeapFv.s b/asm/JSystem/JKernel/JKRExpHeap/do_freeTail__10JKRExpHeapFv.s deleted file mode 100644 index 40cd5a41f8..0000000000 --- a/asm/JSystem/JKernel/JKRExpHeap/do_freeTail__10JKRExpHeapFv.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_802CF89C: -/* 802CF89C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CF8A0 7C 08 02 A6 */ mflr r0 -/* 802CF8A4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CF8A8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CF8AC 48 09 29 31 */ bl _savegpr_29 -/* 802CF8B0 7C 7D 1B 78 */ mr r29, r3 -/* 802CF8B4 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802CF8B8 48 06 F7 89 */ bl OSLockMutex -/* 802CF8BC 83 FD 00 80 */ lwz r31, 0x80(r29) -/* 802CF8C0 48 00 00 3C */ b lbl_802CF8FC -lbl_802CF8C4: -/* 802CF8C4 88 1F 00 02 */ lbz r0, 2(r31) -/* 802CF8C8 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 -/* 802CF8CC 41 82 00 2C */ beq lbl_802CF8F8 -/* 802CF8D0 7F A3 EB 78 */ mr r3, r29 -/* 802CF8D4 38 9F 00 10 */ addi r4, r31, 0x10 -/* 802CF8D8 80 BF 00 04 */ lwz r5, 4(r31) -/* 802CF8DC 4B FF F1 9D */ bl dispose__7JKRHeapFPvUl -/* 802CF8E0 83 DF 00 0C */ lwz r30, 0xc(r31) -/* 802CF8E4 7F E3 FB 78 */ mr r3, r31 -/* 802CF8E8 7F A4 EB 78 */ mr r4, r29 -/* 802CF8EC 48 00 0F E1 */ bl free__Q210JKRExpHeap9CMemBlockFP10JKRExpHeap -/* 802CF8F0 7F DF F3 78 */ mr r31, r30 -/* 802CF8F4 48 00 00 08 */ b lbl_802CF8FC -lbl_802CF8F8: -/* 802CF8F8 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_802CF8FC: -/* 802CF8FC 28 1F 00 00 */ cmplwi r31, 0 -/* 802CF900 40 82 FF C4 */ bne lbl_802CF8C4 -/* 802CF904 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802CF908 48 06 F8 15 */ bl OSUnlockMutex -/* 802CF90C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CF910 48 09 29 19 */ bl _restgpr_29 -/* 802CF914 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CF918 7C 08 03 A6 */ mtlr r0 -/* 802CF91C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CF920 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRExpHeap/do_resize__10JKRExpHeapFPvUl.s b/asm/JSystem/JKernel/JKRExpHeap/do_resize__10JKRExpHeapFPvUl.s deleted file mode 100644 index c788ee4d02..0000000000 --- a/asm/JSystem/JKernel/JKRExpHeap/do_resize__10JKRExpHeapFPvUl.s +++ /dev/null @@ -1,120 +0,0 @@ -lbl_802CF978: -/* 802CF978 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CF97C 7C 08 02 A6 */ mflr r0 -/* 802CF980 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CF984 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CF988 48 09 28 51 */ bl _savegpr_28 -/* 802CF98C 7C 7D 1B 78 */ mr r29, r3 -/* 802CF990 7C 9C 23 78 */ mr r28, r4 -/* 802CF994 7C BE 2B 78 */ mr r30, r5 -/* 802CF998 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802CF99C 48 06 F6 A5 */ bl OSLockMutex -/* 802CF9A0 7F 83 E3 78 */ mr r3, r28 -/* 802CF9A4 48 00 0F 79 */ bl getHeapBlock__Q210JKRExpHeap9CMemBlockFPv -/* 802CF9A8 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802CF9AC 41 82 00 1C */ beq lbl_802CF9C8 -/* 802CF9B0 80 1D 00 30 */ lwz r0, 0x30(r29) -/* 802CF9B4 7C 1C 00 40 */ cmplw r28, r0 -/* 802CF9B8 41 80 00 10 */ blt lbl_802CF9C8 -/* 802CF9BC 80 1D 00 34 */ lwz r0, 0x34(r29) -/* 802CF9C0 7C 00 E0 40 */ cmplw r0, r28 -/* 802CF9C4 40 80 00 14 */ bge lbl_802CF9D8 -lbl_802CF9C8: -/* 802CF9C8 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802CF9CC 48 06 F7 51 */ bl OSUnlockMutex -/* 802CF9D0 38 60 FF FF */ li r3, -1 -/* 802CF9D4 48 00 01 38 */ b lbl_802CFB0C -lbl_802CF9D8: -/* 802CF9D8 38 1E 00 03 */ addi r0, r30, 3 -/* 802CF9DC 54 1E 00 3A */ rlwinm r30, r0, 0, 0, 0x1d -/* 802CF9E0 80 9F 00 04 */ lwz r4, 4(r31) -/* 802CF9E4 7C 1E 20 40 */ cmplw r30, r4 -/* 802CF9E8 40 82 00 14 */ bne lbl_802CF9FC -/* 802CF9EC 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802CF9F0 48 06 F7 2D */ bl OSUnlockMutex -/* 802CF9F4 7F C3 F3 78 */ mr r3, r30 -/* 802CF9F8 48 00 01 14 */ b lbl_802CFB0C -lbl_802CF9FC: -/* 802CF9FC 40 81 00 D0 */ ble lbl_802CFACC -/* 802CFA00 3B 80 00 00 */ li r28, 0 -/* 802CFA04 80 7D 00 78 */ lwz r3, 0x78(r29) -/* 802CFA08 38 1F 00 10 */ addi r0, r31, 0x10 -/* 802CFA0C 7C 00 22 14 */ add r0, r0, r4 -/* 802CFA10 48 00 00 18 */ b lbl_802CFA28 -lbl_802CFA14: -/* 802CFA14 7C 03 00 40 */ cmplw r3, r0 -/* 802CFA18 40 82 00 0C */ bne lbl_802CFA24 -/* 802CFA1C 7C 7C 1B 78 */ mr r28, r3 -/* 802CFA20 48 00 00 10 */ b lbl_802CFA30 -lbl_802CFA24: -/* 802CFA24 80 63 00 0C */ lwz r3, 0xc(r3) -lbl_802CFA28: -/* 802CFA28 28 03 00 00 */ cmplwi r3, 0 -/* 802CFA2C 40 82 FF E8 */ bne lbl_802CFA14 -lbl_802CFA30: -/* 802CFA30 28 1C 00 00 */ cmplwi r28, 0 -/* 802CFA34 40 82 00 14 */ bne lbl_802CFA48 -/* 802CFA38 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802CFA3C 48 06 F6 E1 */ bl OSUnlockMutex -/* 802CFA40 38 60 FF FF */ li r3, -1 -/* 802CFA44 48 00 00 C8 */ b lbl_802CFB0C -lbl_802CFA48: -/* 802CFA48 80 1C 00 04 */ lwz r0, 4(r28) -/* 802CFA4C 7C 64 02 14 */ add r3, r4, r0 -/* 802CFA50 38 03 00 10 */ addi r0, r3, 0x10 -/* 802CFA54 7C 1E 00 40 */ cmplw r30, r0 -/* 802CFA58 40 81 00 14 */ ble lbl_802CFA6C -/* 802CFA5C 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802CFA60 48 06 F6 BD */ bl OSUnlockMutex -/* 802CFA64 38 60 FF FF */ li r3, -1 -/* 802CFA68 48 00 00 A4 */ b lbl_802CFB0C -lbl_802CFA6C: -/* 802CFA6C 7F A3 EB 78 */ mr r3, r29 -/* 802CFA70 7F 84 E3 78 */ mr r4, r28 -/* 802CFA74 48 00 04 41 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802CFA78 80 7F 00 04 */ lwz r3, 4(r31) -/* 802CFA7C 80 1C 00 04 */ lwz r0, 4(r28) -/* 802CFA80 7C 60 1A 14 */ add r3, r0, r3 -/* 802CFA84 38 03 00 10 */ addi r0, r3, 0x10 -/* 802CFA88 90 1F 00 04 */ stw r0, 4(r31) -/* 802CFA8C 80 1F 00 04 */ lwz r0, 4(r31) -/* 802CFA90 7C 1E 00 50 */ subf r0, r30, r0 -/* 802CFA94 28 00 00 10 */ cmplwi r0, 0x10 -/* 802CFA98 40 81 00 68 */ ble lbl_802CFB00 -/* 802CFA9C 7F E3 FB 78 */ mr r3, r31 -/* 802CFAA0 7F C4 F3 78 */ mr r4, r30 -/* 802CFAA4 88 BF 00 03 */ lbz r5, 3(r31) -/* 802CFAA8 88 DF 00 02 */ lbz r6, 2(r31) -/* 802CFAAC 38 E0 00 00 */ li r7, 0 -/* 802CFAB0 39 00 00 00 */ li r8, 0 -/* 802CFAB4 48 00 0D 7D */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc -/* 802CFAB8 7C 64 1B 79 */ or. r4, r3, r3 -/* 802CFABC 41 82 00 44 */ beq lbl_802CFB00 -/* 802CFAC0 7F A3 EB 78 */ mr r3, r29 -/* 802CFAC4 48 00 04 59 */ bl recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802CFAC8 48 00 00 38 */ b lbl_802CFB00 -lbl_802CFACC: -/* 802CFACC 7C 1E 20 50 */ subf r0, r30, r4 -/* 802CFAD0 28 00 00 10 */ cmplwi r0, 0x10 -/* 802CFAD4 40 81 00 2C */ ble lbl_802CFB00 -/* 802CFAD8 7F C4 F3 78 */ mr r4, r30 -/* 802CFADC 88 BF 00 03 */ lbz r5, 3(r31) -/* 802CFAE0 88 DF 00 02 */ lbz r6, 2(r31) -/* 802CFAE4 38 E0 00 00 */ li r7, 0 -/* 802CFAE8 39 00 00 00 */ li r8, 0 -/* 802CFAEC 48 00 0D 45 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc -/* 802CFAF0 7C 64 1B 79 */ or. r4, r3, r3 -/* 802CFAF4 41 82 00 0C */ beq lbl_802CFB00 -/* 802CFAF8 7F A3 EB 78 */ mr r3, r29 -/* 802CFAFC 48 00 04 21 */ bl recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -lbl_802CFB00: -/* 802CFB00 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802CFB04 48 06 F6 19 */ bl OSUnlockMutex -/* 802CFB08 80 7F 00 04 */ lwz r3, 4(r31) -lbl_802CFB0C: -/* 802CFB0C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CFB10 48 09 27 15 */ bl _restgpr_28 -/* 802CFB14 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CFB18 7C 08 03 A6 */ mtlr r0 -/* 802CFB1C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CFB20 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRExpHeap/dump__10JKRExpHeapFv.s b/asm/JSystem/JKernel/JKRExpHeap/dump__10JKRExpHeapFv.s deleted file mode 100644 index a0b52801df..0000000000 --- a/asm/JSystem/JKernel/JKRExpHeap/dump__10JKRExpHeapFv.s +++ /dev/null @@ -1,143 +0,0 @@ -lbl_802D03B8: -/* 802D03B8 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 802D03BC 7C 08 02 A6 */ mflr r0 -/* 802D03C0 90 01 00 44 */ stw r0, 0x44(r1) -/* 802D03C4 39 61 00 40 */ addi r11, r1, 0x40 -/* 802D03C8 48 09 1E 05 */ bl _savegpr_25 -/* 802D03CC 7C 7A 1B 78 */ mr r26, r3 -/* 802D03D0 38 7A 00 18 */ addi r3, r26, 0x18 -/* 802D03D4 48 06 EC 6D */ bl OSLockMutex -/* 802D03D8 7F 43 D3 78 */ mr r3, r26 -/* 802D03DC 81 9A 00 00 */ lwz r12, 0(r26) -/* 802D03E0 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802D03E4 7D 89 03 A6 */ mtctr r12 -/* 802D03E8 4E 80 04 21 */ bctrl -/* 802D03EC 7C 7F 1B 78 */ mr r31, r3 -/* 802D03F0 3B C0 00 00 */ li r30, 0 -/* 802D03F4 3B A0 00 00 */ li r29, 0 -/* 802D03F8 3B 80 00 00 */ li r28, 0 -/* 802D03FC 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0400 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0404 38 63 01 9D */ addi r3, r3, 0x19d -/* 802D0408 48 01 82 41 */ bl JUTReportConsole -/* 802D040C 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0410 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0414 38 63 01 D4 */ addi r3, r3, 0x1d4 -/* 802D0418 48 01 82 31 */ bl JUTReportConsole -/* 802D041C 80 1A 00 80 */ lwz r0, 0x80(r26) -/* 802D0420 28 00 00 00 */ cmplwi r0, 0 -/* 802D0424 40 82 00 14 */ bne lbl_802D0438 -/* 802D0428 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D042C 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0430 38 63 01 E3 */ addi r3, r3, 0x1e3 -/* 802D0434 48 01 82 15 */ bl JUTReportConsole -lbl_802D0438: -/* 802D0438 83 7A 00 80 */ lwz r27, 0x80(r26) -/* 802D043C 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0440 3B 23 CA F0 */ addi r25, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0444 48 00 00 8C */ b lbl_802D04D0 -lbl_802D0448: -/* 802D0448 A0 1B 00 00 */ lhz r0, 0(r27) -/* 802D044C 28 00 48 4D */ cmplwi r0, 0x484d -/* 802D0450 41 82 00 20 */ beq lbl_802D0470 -/* 802D0454 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0458 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D045C 38 63 01 EA */ addi r3, r3, 0x1ea -/* 802D0460 7F 64 DB 78 */ mr r4, r27 -/* 802D0464 4C C6 31 82 */ crclr 6 -/* 802D0468 48 01 81 61 */ bl JUTReportConsole_f -/* 802D046C 48 00 00 6C */ b lbl_802D04D8 -lbl_802D0470: -/* 802D0470 88 1B 00 02 */ lbz r0, 2(r27) -/* 802D0474 54 08 06 7E */ clrlwi r8, r0, 0x19 -/* 802D0478 38 BB 00 10 */ addi r5, r27, 0x10 -/* 802D047C 38 79 02 24 */ addi r3, r25, 0x224 -/* 802D0480 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 -/* 802D0484 38 99 02 4F */ addi r4, r25, 0x24f -/* 802D0488 41 82 00 10 */ beq lbl_802D0498 -/* 802D048C 3C 80 80 3A */ lis r4, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0490 38 84 CA F0 */ addi r4, r4, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0494 38 84 02 49 */ addi r4, r4, 0x249 -lbl_802D0498: -/* 802D0498 80 DB 00 04 */ lwz r6, 4(r27) -/* 802D049C 88 FB 00 03 */ lbz r7, 3(r27) -/* 802D04A0 81 3B 00 08 */ lwz r9, 8(r27) -/* 802D04A4 81 5B 00 0C */ lwz r10, 0xc(r27) -/* 802D04A8 4C C6 31 82 */ crclr 6 -/* 802D04AC 48 01 81 1D */ bl JUTReportConsole_f -/* 802D04B0 80 7B 00 04 */ lwz r3, 4(r27) -/* 802D04B4 88 1B 00 02 */ lbz r0, 2(r27) -/* 802D04B8 54 00 06 7E */ clrlwi r0, r0, 0x19 -/* 802D04BC 7C 03 02 14 */ add r0, r3, r0 -/* 802D04C0 7F C0 F2 14 */ add r30, r0, r30 -/* 802D04C4 83 7B 00 0C */ lwz r27, 0xc(r27) -/* 802D04C8 3B DE 00 10 */ addi r30, r30, 0x10 -/* 802D04CC 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D04D0: -/* 802D04D0 28 1B 00 00 */ cmplwi r27, 0 -/* 802D04D4 40 82 FF 74 */ bne lbl_802D0448 -lbl_802D04D8: -/* 802D04D8 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D04DC 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D04E0 38 63 02 55 */ addi r3, r3, 0x255 -/* 802D04E4 48 01 81 65 */ bl JUTReportConsole -/* 802D04E8 80 1A 00 78 */ lwz r0, 0x78(r26) -/* 802D04EC 28 00 00 00 */ cmplwi r0, 0 -/* 802D04F0 40 82 00 14 */ bne lbl_802D0504 -/* 802D04F4 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D04F8 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D04FC 38 63 01 E3 */ addi r3, r3, 0x1e3 -/* 802D0500 48 01 81 49 */ bl JUTReportConsole -lbl_802D0504: -/* 802D0504 83 3A 00 78 */ lwz r25, 0x78(r26) -/* 802D0508 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D050C 3B 63 CA F0 */ addi r27, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0510 48 00 00 38 */ b lbl_802D0548 -lbl_802D0514: -/* 802D0514 38 7B 02 24 */ addi r3, r27, 0x224 -/* 802D0518 38 9B 02 64 */ addi r4, r27, 0x264 -/* 802D051C 38 B9 00 10 */ addi r5, r25, 0x10 -/* 802D0520 80 D9 00 04 */ lwz r6, 4(r25) -/* 802D0524 88 F9 00 03 */ lbz r7, 3(r25) -/* 802D0528 88 19 00 02 */ lbz r0, 2(r25) -/* 802D052C 54 08 06 7E */ clrlwi r8, r0, 0x19 -/* 802D0530 81 39 00 08 */ lwz r9, 8(r25) -/* 802D0534 81 59 00 0C */ lwz r10, 0xc(r25) -/* 802D0538 4C C6 31 82 */ crclr 6 -/* 802D053C 48 01 80 8D */ bl JUTReportConsole_f -/* 802D0540 83 39 00 0C */ lwz r25, 0xc(r25) -/* 802D0544 3B 9C 00 01 */ addi r28, r28, 1 -lbl_802D0548: -/* 802D0548 28 19 00 00 */ cmplwi r25, 0 -/* 802D054C 40 82 FF C8 */ bne lbl_802D0514 -/* 802D0550 80 BA 00 38 */ lwz r5, 0x38(r26) -/* 802D0554 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0558 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D055C 38 63 02 6A */ addi r3, r3, 0x26a -/* 802D0560 7F C4 F3 78 */ mr r4, r30 -/* 802D0564 C0 62 C5 98 */ lfs f3, lit_1121(r2) -/* 802D0568 C8 42 C5 A0 */ lfd f2, lit_1123(r2) -/* 802D056C 93 C1 00 0C */ stw r30, 0xc(r1) -/* 802D0570 3C 00 43 30 */ lis r0, 0x4330 -/* 802D0574 90 01 00 08 */ stw r0, 8(r1) -/* 802D0578 C8 01 00 08 */ lfd f0, 8(r1) -/* 802D057C EC 20 10 28 */ fsubs f1, f0, f2 -/* 802D0580 90 A1 00 14 */ stw r5, 0x14(r1) -/* 802D0584 90 01 00 10 */ stw r0, 0x10(r1) -/* 802D0588 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 802D058C EC 00 10 28 */ fsubs f0, f0, f2 -/* 802D0590 EC 01 00 24 */ fdivs f0, f1, f0 -/* 802D0594 EC 23 00 32 */ fmuls f1, f3, f0 -/* 802D0598 7F A6 EB 78 */ mr r6, r29 -/* 802D059C 7F 87 E3 78 */ mr r7, r28 -/* 802D05A0 4C C6 32 42 */ crset 6 -/* 802D05A4 48 01 80 25 */ bl JUTReportConsole_f -/* 802D05A8 38 7A 00 18 */ addi r3, r26, 0x18 -/* 802D05AC 48 06 EB 71 */ bl OSUnlockMutex -/* 802D05B0 7F E3 FB 78 */ mr r3, r31 -/* 802D05B4 39 61 00 40 */ addi r11, r1, 0x40 -/* 802D05B8 48 09 1C 61 */ bl _restgpr_25 -/* 802D05BC 80 01 00 44 */ lwz r0, 0x44(r1) -/* 802D05C0 7C 08 03 A6 */ mtlr r0 -/* 802D05C4 38 21 00 40 */ addi r1, r1, 0x40 -/* 802D05C8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRExpHeap/dump_sort__10JKRExpHeapFv.s b/asm/JSystem/JKernel/JKRExpHeap/dump_sort__10JKRExpHeapFv.s deleted file mode 100644 index 96f04d66de..0000000000 --- a/asm/JSystem/JKernel/JKRExpHeap/dump_sort__10JKRExpHeapFv.s +++ /dev/null @@ -1,157 +0,0 @@ -lbl_802D05CC: -/* 802D05CC 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 802D05D0 7C 08 02 A6 */ mflr r0 -/* 802D05D4 90 01 00 44 */ stw r0, 0x44(r1) -/* 802D05D8 39 61 00 40 */ addi r11, r1, 0x40 -/* 802D05DC 48 09 1B F1 */ bl _savegpr_25 -/* 802D05E0 7C 79 1B 78 */ mr r25, r3 -/* 802D05E4 38 79 00 18 */ addi r3, r25, 0x18 -/* 802D05E8 48 06 EA 59 */ bl OSLockMutex -/* 802D05EC 7F 23 CB 78 */ mr r3, r25 -/* 802D05F0 81 99 00 00 */ lwz r12, 0(r25) -/* 802D05F4 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802D05F8 7D 89 03 A6 */ mtctr r12 -/* 802D05FC 4E 80 04 21 */ bctrl -/* 802D0600 7C 7E 1B 78 */ mr r30, r3 -/* 802D0604 3B A0 00 00 */ li r29, 0 -/* 802D0608 3B 80 00 00 */ li r28, 0 -/* 802D060C 3B 60 00 00 */ li r27, 0 -/* 802D0610 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0614 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0618 38 63 01 9D */ addi r3, r3, 0x19d -/* 802D061C 48 01 80 2D */ bl JUTReportConsole -/* 802D0620 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0624 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0628 38 63 01 D4 */ addi r3, r3, 0x1d4 -/* 802D062C 48 01 80 1D */ bl JUTReportConsole -/* 802D0630 80 19 00 80 */ lwz r0, 0x80(r25) -/* 802D0634 28 00 00 00 */ cmplwi r0, 0 -/* 802D0638 40 82 00 18 */ bne lbl_802D0650 -/* 802D063C 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0640 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0644 38 63 01 E3 */ addi r3, r3, 0x1e3 -/* 802D0648 48 01 80 01 */ bl JUTReportConsole -/* 802D064C 48 00 00 D0 */ b lbl_802D071C -lbl_802D0650: -/* 802D0650 38 80 00 00 */ li r4, 0 -/* 802D0654 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0658 3B E3 CA F0 */ addi r31, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -lbl_802D065C: -/* 802D065C 3B 40 FF FF */ li r26, -1 -/* 802D0660 80 79 00 80 */ lwz r3, 0x80(r25) -/* 802D0664 48 00 00 1C */ b lbl_802D0680 -lbl_802D0668: -/* 802D0668 7C 04 18 40 */ cmplw r4, r3 -/* 802D066C 40 80 00 10 */ bge lbl_802D067C -/* 802D0670 7C 03 D0 40 */ cmplw r3, r26 -/* 802D0674 40 80 00 08 */ bge lbl_802D067C -/* 802D0678 7C 7A 1B 78 */ mr r26, r3 -lbl_802D067C: -/* 802D067C 80 63 00 0C */ lwz r3, 0xc(r3) -lbl_802D0680: -/* 802D0680 28 03 00 00 */ cmplwi r3, 0 -/* 802D0684 40 82 FF E4 */ bne lbl_802D0668 -/* 802D0688 3C 1A 00 01 */ addis r0, r26, 1 -/* 802D068C 28 00 FF FF */ cmplwi r0, 0xffff -/* 802D0690 41 82 00 8C */ beq lbl_802D071C -/* 802D0694 A0 1A 00 00 */ lhz r0, 0(r26) -/* 802D0698 28 00 48 4D */ cmplwi r0, 0x484d -/* 802D069C 41 82 00 1C */ beq lbl_802D06B8 -/* 802D06A0 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D06A4 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D06A8 38 63 01 EA */ addi r3, r3, 0x1ea -/* 802D06AC 4C C6 31 82 */ crclr 6 -/* 802D06B0 48 01 7F 19 */ bl JUTReportConsole_f -/* 802D06B4 48 00 00 68 */ b lbl_802D071C -lbl_802D06B8: -/* 802D06B8 88 1A 00 02 */ lbz r0, 2(r26) -/* 802D06BC 54 08 06 7E */ clrlwi r8, r0, 0x19 -/* 802D06C0 38 BA 00 10 */ addi r5, r26, 0x10 -/* 802D06C4 38 7F 02 24 */ addi r3, r31, 0x224 -/* 802D06C8 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 -/* 802D06CC 38 9F 02 4F */ addi r4, r31, 0x24f -/* 802D06D0 41 82 00 10 */ beq lbl_802D06E0 -/* 802D06D4 3C 80 80 3A */ lis r4, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D06D8 38 84 CA F0 */ addi r4, r4, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D06DC 38 84 02 49 */ addi r4, r4, 0x249 -lbl_802D06E0: -/* 802D06E0 80 DA 00 04 */ lwz r6, 4(r26) -/* 802D06E4 88 FA 00 03 */ lbz r7, 3(r26) -/* 802D06E8 81 3A 00 08 */ lwz r9, 8(r26) -/* 802D06EC 81 5A 00 0C */ lwz r10, 0xc(r26) -/* 802D06F0 4C C6 31 82 */ crclr 6 -/* 802D06F4 48 01 7E D5 */ bl JUTReportConsole_f -/* 802D06F8 80 7A 00 04 */ lwz r3, 4(r26) -/* 802D06FC 88 1A 00 02 */ lbz r0, 2(r26) -/* 802D0700 54 00 06 7E */ clrlwi r0, r0, 0x19 -/* 802D0704 7C 03 02 14 */ add r0, r3, r0 -/* 802D0708 7F A0 EA 14 */ add r29, r0, r29 -/* 802D070C 7F 44 D3 78 */ mr r4, r26 -/* 802D0710 3B BD 00 10 */ addi r29, r29, 0x10 -/* 802D0714 3B 9C 00 01 */ addi r28, r28, 1 -/* 802D0718 4B FF FF 44 */ b lbl_802D065C -lbl_802D071C: -/* 802D071C 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0720 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0724 38 63 02 55 */ addi r3, r3, 0x255 -/* 802D0728 48 01 7F 21 */ bl JUTReportConsole -/* 802D072C 80 19 00 78 */ lwz r0, 0x78(r25) -/* 802D0730 28 00 00 00 */ cmplwi r0, 0 -/* 802D0734 40 82 00 14 */ bne lbl_802D0748 -/* 802D0738 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D073C 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0740 38 63 01 E3 */ addi r3, r3, 0x1e3 -/* 802D0744 48 01 7F 05 */ bl JUTReportConsole -lbl_802D0748: -/* 802D0748 83 F9 00 78 */ lwz r31, 0x78(r25) -/* 802D074C 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0750 3B 43 CA F0 */ addi r26, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0754 48 00 00 38 */ b lbl_802D078C -lbl_802D0758: -/* 802D0758 38 7A 02 24 */ addi r3, r26, 0x224 -/* 802D075C 38 9A 02 64 */ addi r4, r26, 0x264 -/* 802D0760 38 BF 00 10 */ addi r5, r31, 0x10 -/* 802D0764 80 DF 00 04 */ lwz r6, 4(r31) -/* 802D0768 88 FF 00 03 */ lbz r7, 3(r31) -/* 802D076C 88 1F 00 02 */ lbz r0, 2(r31) -/* 802D0770 54 08 06 7E */ clrlwi r8, r0, 0x19 -/* 802D0774 81 3F 00 08 */ lwz r9, 8(r31) -/* 802D0778 81 5F 00 0C */ lwz r10, 0xc(r31) -/* 802D077C 4C C6 31 82 */ crclr 6 -/* 802D0780 48 01 7E 49 */ bl JUTReportConsole_f -/* 802D0784 83 FF 00 0C */ lwz r31, 0xc(r31) -/* 802D0788 3B 7B 00 01 */ addi r27, r27, 1 -lbl_802D078C: -/* 802D078C 28 1F 00 00 */ cmplwi r31, 0 -/* 802D0790 40 82 FF C8 */ bne lbl_802D0758 -/* 802D0794 80 B9 00 38 */ lwz r5, 0x38(r25) -/* 802D0798 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D079C 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D07A0 38 63 02 6A */ addi r3, r3, 0x26a -/* 802D07A4 7F A4 EB 78 */ mr r4, r29 -/* 802D07A8 C0 62 C5 98 */ lfs f3, lit_1121(r2) -/* 802D07AC C8 42 C5 A0 */ lfd f2, lit_1123(r2) -/* 802D07B0 93 A1 00 0C */ stw r29, 0xc(r1) -/* 802D07B4 3C 00 43 30 */ lis r0, 0x4330 -/* 802D07B8 90 01 00 08 */ stw r0, 8(r1) -/* 802D07BC C8 01 00 08 */ lfd f0, 8(r1) -/* 802D07C0 EC 20 10 28 */ fsubs f1, f0, f2 -/* 802D07C4 90 A1 00 14 */ stw r5, 0x14(r1) -/* 802D07C8 90 01 00 10 */ stw r0, 0x10(r1) -/* 802D07CC C8 01 00 10 */ lfd f0, 0x10(r1) -/* 802D07D0 EC 00 10 28 */ fsubs f0, f0, f2 -/* 802D07D4 EC 01 00 24 */ fdivs f0, f1, f0 -/* 802D07D8 EC 23 00 32 */ fmuls f1, f3, f0 -/* 802D07DC 7F 86 E3 78 */ mr r6, r28 -/* 802D07E0 7F 67 DB 78 */ mr r7, r27 -/* 802D07E4 4C C6 32 42 */ crset 6 -/* 802D07E8 48 01 7D E1 */ bl JUTReportConsole_f -/* 802D07EC 38 79 00 18 */ addi r3, r25, 0x18 -/* 802D07F0 48 06 E9 2D */ bl OSUnlockMutex -/* 802D07F4 7F C3 F3 78 */ mr r3, r30 -/* 802D07F8 39 61 00 40 */ addi r11, r1, 0x40 -/* 802D07FC 48 09 1A 1D */ bl _restgpr_25 -/* 802D0800 80 01 00 44 */ lwz r0, 0x44(r1) -/* 802D0804 7C 08 03 A6 */ mtlr r0 -/* 802D0808 38 21 00 40 */ addi r1, r1, 0x40 -/* 802D080C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRExpHeap/joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock.s b/asm/JSystem/JKernel/JKRExpHeap/joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock.s deleted file mode 100644 index abae213327..0000000000 --- a/asm/JSystem/JKernel/JKRExpHeap/joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock.s +++ /dev/null @@ -1,58 +0,0 @@ -lbl_802D00B4: -/* 802D00B4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D00B8 7C 08 02 A6 */ mflr r0 -/* 802D00BC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D00C0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D00C4 48 09 21 11 */ bl _savegpr_27 -/* 802D00C8 7C 7E 1B 78 */ mr r30, r3 -/* 802D00CC 7C 9F 23 78 */ mr r31, r4 -/* 802D00D0 80 04 00 04 */ lwz r0, 4(r4) -/* 802D00D4 7F BF 02 14 */ add r29, r31, r0 -/* 802D00D8 83 84 00 0C */ lwz r28, 0xc(r4) -/* 802D00DC 88 1C 00 02 */ lbz r0, 2(r28) -/* 802D00E0 54 00 06 7E */ clrlwi r0, r0, 0x19 -/* 802D00E4 7F 60 E0 50 */ subf r27, r0, r28 -/* 802D00E8 3B BD 00 10 */ addi r29, r29, 0x10 -/* 802D00EC 7C 1D D8 40 */ cmplw r29, r27 -/* 802D00F0 40 81 00 4C */ ble lbl_802D013C -/* 802D00F4 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D00F8 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D00FC 38 63 00 4B */ addi r3, r3, 0x4b -/* 802D0100 4C C6 31 82 */ crclr 6 -/* 802D0104 48 01 85 79 */ bl JUTWarningConsole_f -/* 802D0108 80 6D 8D F4 */ lwz r3, sCurrentHeap__7JKRHeap(r13) -/* 802D010C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D0110 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D0114 7D 89 03 A6 */ mtctr r12 -/* 802D0118 4E 80 04 21 */ bctrl -/* 802D011C 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */ -/* 802D0120 38 C3 CA F0 */ addi r6, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */ -/* 802D0124 38 66 00 25 */ addi r3, r6, 0x25 -/* 802D0128 38 80 07 1C */ li r4, 0x71c -/* 802D012C 38 A6 00 34 */ addi r5, r6, 0x34 -/* 802D0130 38 C6 00 6F */ addi r6, r6, 0x6f -/* 802D0134 4C C6 31 82 */ crclr 6 -/* 802D0138 48 01 20 C5 */ bl panic_f__12JUTExceptionFPCciPCce -lbl_802D013C: -/* 802D013C 7C 1D D8 40 */ cmplw r29, r27 -/* 802D0140 40 82 00 38 */ bne lbl_802D0178 -/* 802D0144 80 9F 00 04 */ lwz r4, 4(r31) -/* 802D0148 80 7C 00 04 */ lwz r3, 4(r28) -/* 802D014C 88 1C 00 02 */ lbz r0, 2(r28) -/* 802D0150 54 00 06 7E */ clrlwi r0, r0, 0x19 -/* 802D0154 7C 03 02 14 */ add r0, r3, r0 -/* 802D0158 7C 60 22 14 */ add r3, r0, r4 -/* 802D015C 38 03 00 10 */ addi r0, r3, 0x10 -/* 802D0160 90 1F 00 04 */ stw r0, 4(r31) -/* 802D0164 7F C3 F3 78 */ mr r3, r30 -/* 802D0168 7F E4 FB 78 */ mr r4, r31 -/* 802D016C 80 BF 00 08 */ lwz r5, 8(r31) -/* 802D0170 80 DC 00 0C */ lwz r6, 0xc(r28) -/* 802D0174 4B FF FC F5 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock -lbl_802D0178: -/* 802D0178 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D017C 48 09 20 A5 */ bl _restgpr_27 -/* 802D0180 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D0184 7C 08 03 A6 */ mtlr r0 -/* 802D0188 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D018C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRExpHeap/recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock.s b/asm/JSystem/JKernel/JKRExpHeap/recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock.s deleted file mode 100644 index c2d0a3882a..0000000000 --- a/asm/JSystem/JKernel/JKRExpHeap/recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock.s +++ /dev/null @@ -1,111 +0,0 @@ -lbl_802CFF1C: -/* 802CFF1C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802CFF20 7C 08 02 A6 */ mflr r0 -/* 802CFF24 90 01 00 24 */ stw r0, 0x24(r1) -/* 802CFF28 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CFF2C 48 09 22 B1 */ bl _savegpr_29 -/* 802CFF30 7C 7D 1B 78 */ mr r29, r3 -/* 802CFF34 7C 9F 23 78 */ mr r31, r4 -/* 802CFF38 80 C4 00 04 */ lwz r6, 4(r4) -/* 802CFF3C 7C A4 32 14 */ add r5, r4, r6 -/* 802CFF40 38 60 00 00 */ li r3, 0 -/* 802CFF44 B0 64 00 00 */ sth r3, 0(r4) -/* 802CFF48 88 04 00 02 */ lbz r0, 2(r4) -/* 802CFF4C 54 00 06 7F */ clrlwi. r0, r0, 0x19 -/* 802CFF50 41 82 00 1C */ beq lbl_802CFF6C -/* 802CFF54 7F E0 20 50 */ subf r31, r0, r4 -/* 802CFF58 7C C6 02 14 */ add r6, r6, r0 -/* 802CFF5C 7C BF 32 14 */ add r5, r31, r6 -/* 802CFF60 98 7F 00 03 */ stb r3, 3(r31) -/* 802CFF64 98 7F 00 02 */ stb r3, 2(r31) -/* 802CFF68 90 DF 00 04 */ stw r6, 4(r31) -lbl_802CFF6C: -/* 802CFF6C 80 7D 00 78 */ lwz r3, 0x78(r29) -/* 802CFF70 28 03 00 00 */ cmplwi r3, 0 -/* 802CFF74 40 82 00 3C */ bne lbl_802CFFB0 -/* 802CFF78 7F E3 FB 78 */ mr r3, r31 -/* 802CFF7C 38 80 00 00 */ li r4, 0 -/* 802CFF80 38 A0 00 00 */ li r5, 0 -/* 802CFF84 38 E0 00 00 */ li r7, 0 -/* 802CFF88 39 00 00 00 */ li r8, 0 -/* 802CFF8C 48 00 08 85 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc -/* 802CFF90 93 FD 00 78 */ stw r31, 0x78(r29) -/* 802CFF94 93 FD 00 7C */ stw r31, 0x7c(r29) -/* 802CFF98 7F A3 EB 78 */ mr r3, r29 -/* 802CFF9C 7F E4 FB 78 */ mr r4, r31 -/* 802CFFA0 38 A0 00 00 */ li r5, 0 -/* 802CFFA4 38 C0 00 00 */ li r6, 0 -/* 802CFFA8 4B FF FE C1 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock -/* 802CFFAC 48 00 00 F0 */ b lbl_802D009C -lbl_802CFFB0: -/* 802CFFB0 7C 03 28 40 */ cmplw r3, r5 -/* 802CFFB4 41 80 00 40 */ blt lbl_802CFFF4 -/* 802CFFB8 7F E3 FB 78 */ mr r3, r31 -/* 802CFFBC 38 80 00 00 */ li r4, 0 -/* 802CFFC0 38 A0 00 00 */ li r5, 0 -/* 802CFFC4 38 E0 00 00 */ li r7, 0 -/* 802CFFC8 39 00 00 00 */ li r8, 0 -/* 802CFFCC 48 00 08 45 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc -/* 802CFFD0 7F A3 EB 78 */ mr r3, r29 -/* 802CFFD4 7F E4 FB 78 */ mr r4, r31 -/* 802CFFD8 38 A0 00 00 */ li r5, 0 -/* 802CFFDC 80 DD 00 78 */ lwz r6, 0x78(r29) -/* 802CFFE0 4B FF FE 89 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock -/* 802CFFE4 7F A3 EB 78 */ mr r3, r29 -/* 802CFFE8 7F E4 FB 78 */ mr r4, r31 -/* 802CFFEC 48 00 00 C9 */ bl joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802CFFF0 48 00 00 AC */ b lbl_802D009C -lbl_802CFFF4: -/* 802CFFF4 80 1D 00 7C */ lwz r0, 0x7c(r29) -/* 802CFFF8 7C 00 F8 40 */ cmplw r0, r31 -/* 802CFFFC 41 81 00 40 */ bgt lbl_802D003C -/* 802D0000 7F E3 FB 78 */ mr r3, r31 -/* 802D0004 38 80 00 00 */ li r4, 0 -/* 802D0008 38 A0 00 00 */ li r5, 0 -/* 802D000C 38 E0 00 00 */ li r7, 0 -/* 802D0010 39 00 00 00 */ li r8, 0 -/* 802D0014 48 00 07 FD */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc -/* 802D0018 7F A3 EB 78 */ mr r3, r29 -/* 802D001C 7F E4 FB 78 */ mr r4, r31 -/* 802D0020 80 BD 00 7C */ lwz r5, 0x7c(r29) -/* 802D0024 38 C0 00 00 */ li r6, 0 -/* 802D0028 4B FF FE 41 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock -/* 802D002C 7F A3 EB 78 */ mr r3, r29 -/* 802D0030 80 9F 00 08 */ lwz r4, 8(r31) -/* 802D0034 48 00 00 81 */ bl joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802D0038 48 00 00 64 */ b lbl_802D009C -lbl_802D003C: -/* 802D003C 7C 7E 1B 78 */ mr r30, r3 -/* 802D0040 48 00 00 54 */ b lbl_802D0094 -lbl_802D0044: -/* 802D0044 7C 1E F8 40 */ cmplw r30, r31 -/* 802D0048 40 80 00 48 */ bge lbl_802D0090 -/* 802D004C 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 802D0050 7C 1F 00 40 */ cmplw r31, r0 -/* 802D0054 40 80 00 3C */ bge lbl_802D0090 -/* 802D0058 90 1F 00 0C */ stw r0, 0xc(r31) -/* 802D005C 93 DF 00 08 */ stw r30, 8(r31) -/* 802D0060 93 FE 00 0C */ stw r31, 0xc(r30) -/* 802D0064 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 802D0068 93 E3 00 08 */ stw r31, 8(r3) -/* 802D006C 38 00 00 00 */ li r0, 0 -/* 802D0070 98 1F 00 03 */ stb r0, 3(r31) -/* 802D0074 7F A3 EB 78 */ mr r3, r29 -/* 802D0078 7F E4 FB 78 */ mr r4, r31 -/* 802D007C 48 00 00 39 */ bl joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802D0080 7F A3 EB 78 */ mr r3, r29 -/* 802D0084 7F C4 F3 78 */ mr r4, r30 -/* 802D0088 48 00 00 2D */ bl joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock -/* 802D008C 48 00 00 10 */ b lbl_802D009C -lbl_802D0090: -/* 802D0090 83 DE 00 0C */ lwz r30, 0xc(r30) -lbl_802D0094: -/* 802D0094 28 1E 00 00 */ cmplwi r30, 0 -/* 802D0098 40 82 FF AC */ bne lbl_802D0044 -lbl_802D009C: -/* 802D009C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D00A0 48 09 21 89 */ bl _restgpr_29 -/* 802D00A4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D00A8 7C 08 03 A6 */ mtlr r0 -/* 802D00AC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D00B0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRFileCache/becomeCurrent__12JKRFileCacheFPCc.s b/asm/JSystem/JKernel/JKRFileCache/becomeCurrent__12JKRFileCacheFPCc.s deleted file mode 100644 index 75c86e7d9f..0000000000 --- a/asm/JSystem/JKernel/JKRFileCache/becomeCurrent__12JKRFileCacheFPCc.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_802D4D44: -/* 802D4D44 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D4D48 7C 08 02 A6 */ mflr r0 -/* 802D4D4C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D4D50 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D4D54 48 08 D4 89 */ bl _savegpr_29 -/* 802D4D58 7C 7D 1B 78 */ mr r29, r3 -/* 802D4D5C 48 00 07 C1 */ bl getDvdPathName__12JKRFileCacheCFPCc -/* 802D4D60 7C 7F 1B 78 */ mr r31, r3 -/* 802D4D64 48 07 3F 91 */ bl DVDChangeDir -/* 802D4D68 30 03 FF FF */ addic r0, r3, -1 -/* 802D4D6C 7C 00 19 10 */ subfe r0, r0, r3 -/* 802D4D70 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 802D4D74 7C 1E 03 78 */ mr r30, r0 -/* 802D4D78 41 82 00 38 */ beq lbl_802D4DB0 -/* 802D4D7C 93 AD 8E 98 */ stw r29, sCurrentVolume__13JKRFileLoader(r13) -/* 802D4D80 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D4D84 80 9D 00 4C */ lwz r4, 0x4c(r29) -/* 802D4D88 4B FF 97 C1 */ bl free__7JKRHeapFPv -/* 802D4D8C 93 FD 00 4C */ stw r31, 0x4c(r29) -/* 802D4D90 80 7D 00 4C */ lwz r3, 0x4c(r29) -/* 802D4D94 88 03 00 01 */ lbz r0, 1(r3) -/* 802D4D98 7C 00 07 75 */ extsb. r0, r0 -/* 802D4D9C 41 82 00 20 */ beq lbl_802D4DBC -/* 802D4DA0 3C 80 80 3A */ lis r4, JKRFileCache__stringBase0@ha /* 0x8039D158@ha */ -/* 802D4DA4 38 84 D1 58 */ addi r4, r4, JKRFileCache__stringBase0@l /* 0x8039D158@l */ -/* 802D4DA8 48 09 3D 15 */ bl strcat -/* 802D4DAC 48 00 00 10 */ b lbl_802D4DBC -lbl_802D4DB0: -/* 802D4DB0 80 6D 8D F0 */ lwz r3, sSystemHeap__7JKRHeap(r13) -/* 802D4DB4 7F E4 FB 78 */ mr r4, r31 -/* 802D4DB8 4B FF 97 91 */ bl free__7JKRHeapFPv -lbl_802D4DBC: -/* 802D4DBC 7F C3 F3 78 */ mr r3, r30 -/* 802D4DC0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D4DC4 48 08 D4 65 */ bl _restgpr_29 -/* 802D4DC8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D4DCC 7C 08 03 A6 */ mtlr r0 -/* 802D4DD0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D4DD4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JKernel/JKRHeap/__dt__7JKRHeapFv.s b/asm/JSystem/JKernel/JKRHeap/__dt__7JKRHeapFv.s deleted file mode 100644 index 766500d5b0..0000000000 --- a/asm/JSystem/JKernel/JKRHeap/__dt__7JKRHeapFv.s +++ /dev/null @@ -1,82 +0,0 @@ -lbl_802CE264: -/* 802CE264 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802CE268 7C 08 02 A6 */ mflr r0 -/* 802CE26C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802CE270 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802CE274 93 C1 00 08 */ stw r30, 8(r1) -/* 802CE278 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802CE27C 7C 9F 23 78 */ mr r31, r4 -/* 802CE280 41 82 00 DC */ beq lbl_802CE35C -/* 802CE284 3C 60 80 3D */ lis r3, __vt__7JKRHeap@ha /* 0x803CBF70@ha */ -/* 802CE288 38 03 BF 70 */ addi r0, r3, __vt__7JKRHeap@l /* 0x803CBF70@l */ -/* 802CE28C 90 1E 00 00 */ stw r0, 0(r30) -/* 802CE290 80 7E 00 50 */ lwz r3, 0x50(r30) -/* 802CE294 34 9E 00 40 */ addic. r4, r30, 0x40 -/* 802CE298 41 82 00 08 */ beq lbl_802CE2A0 -/* 802CE29C 38 84 00 0C */ addi r4, r4, 0xc -lbl_802CE2A0: -/* 802CE2A0 48 00 DE BD */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802CE2A4 80 8D 8D F8 */ lwz r4, sRootHeap__7JKRHeap(r13) -/* 802CE2A8 80 64 00 40 */ lwz r3, 0x40(r4) -/* 802CE2AC 28 03 00 00 */ cmplwi r3, 0 -/* 802CE2B0 41 82 00 08 */ beq lbl_802CE2B8 -/* 802CE2B4 38 63 FF F4 */ addi r3, r3, -12 -lbl_802CE2B8: -/* 802CE2B8 80 0D 8D F4 */ lwz r0, sCurrentHeap__7JKRHeap(r13) -/* 802CE2BC 7C 00 F0 40 */ cmplw r0, r30 -/* 802CE2C0 40 82 00 1C */ bne lbl_802CE2DC -/* 802CE2C4 28 03 00 00 */ cmplwi r3, 0 -/* 802CE2C8 40 82 00 0C */ bne lbl_802CE2D4 -/* 802CE2CC 7C 80 23 78 */ mr r0, r4 -/* 802CE2D0 48 00 00 08 */ b lbl_802CE2D8 -lbl_802CE2D4: -/* 802CE2D4 80 03 00 0C */ lwz r0, 0xc(r3) -lbl_802CE2D8: -/* 802CE2D8 90 0D 8D F4 */ stw r0, sCurrentHeap__7JKRHeap(r13) -lbl_802CE2DC: -/* 802CE2DC 80 0D 8D F0 */ lwz r0, sSystemHeap__7JKRHeap(r13) -/* 802CE2E0 7C 00 F0 40 */ cmplw r0, r30 -/* 802CE2E4 40 82 00 18 */ bne lbl_802CE2FC -/* 802CE2E8 28 03 00 00 */ cmplwi r3, 0 -/* 802CE2EC 40 82 00 08 */ bne lbl_802CE2F4 -/* 802CE2F0 48 00 00 08 */ b lbl_802CE2F8 -lbl_802CE2F4: -/* 802CE2F4 80 83 00 0C */ lwz r4, 0xc(r3) -lbl_802CE2F8: -/* 802CE2F8 90 8D 8D F0 */ stw r4, sSystemHeap__7JKRHeap(r13) -lbl_802CE2FC: -/* 802CE2FC 34 1E 00 5C */ addic. r0, r30, 0x5c -/* 802CE300 41 82 00 10 */ beq lbl_802CE310 -/* 802CE304 38 7E 00 5C */ addi r3, r30, 0x5c -/* 802CE308 38 80 00 00 */ li r4, 0 -/* 802CE30C 48 00 DB A1 */ bl __dt__10JSUPtrListFv -lbl_802CE310: -/* 802CE310 34 1E 00 40 */ addic. r0, r30, 0x40 -/* 802CE314 41 82 00 2C */ beq lbl_802CE340 -/* 802CE318 34 1E 00 4C */ addic. r0, r30, 0x4c -/* 802CE31C 41 82 00 10 */ beq lbl_802CE32C -/* 802CE320 38 7E 00 4C */ addi r3, r30, 0x4c -/* 802CE324 38 80 00 00 */ li r4, 0 -/* 802CE328 48 00 DA ED */ bl __dt__10JSUPtrLinkFv -lbl_802CE32C: -/* 802CE32C 34 1E 00 40 */ addic. r0, r30, 0x40 -/* 802CE330 41 82 00 10 */ beq lbl_802CE340 -/* 802CE334 38 7E 00 40 */ addi r3, r30, 0x40 -/* 802CE338 38 80 00 00 */ li r4, 0 -/* 802CE33C 48 00 DB 71 */ bl __dt__10JSUPtrListFv -lbl_802CE340: -/* 802CE340 7F C3 F3 78 */ mr r3, r30 -/* 802CE344 38 80 00 00 */ li r4, 0 -/* 802CE348 48 00 31 9D */ bl __dt__11JKRDisposerFv -/* 802CE34C 7F E0 07 35 */ extsh. r0, r31 -/* 802CE350 40 81 00 0C */ ble lbl_802CE35C -/* 802CE354 7F C3 F3 78 */ mr r3, r30 -/* 802CE358 48 00 09 E5 */ bl __dl__FPv -lbl_802CE35C: -/* 802CE35C 7F C3 F3 78 */ mr r3, r30 -/* 802CE360 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802CE364 83 C1 00 08 */ lwz r30, 8(r1) -/* 802CE368 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802CE36C 7C 08 03 A6 */ mtlr r0 -/* 802CE370 38 21 00 10 */ addi r1, r1, 0x10 -/* 802CE374 4E 80 00 20 */ blr diff --git a/asm/JSystem/JMath/JMath/JMAQuatLerp__FPC10QuaternionPC10QuaternionfP10Quaternion.s b/asm/JSystem/JMath/JMath/JMAQuatLerp__FPC10QuaternionPC10QuaternionfP10Quaternion.s deleted file mode 100644 index 0c64beabb7..0000000000 --- a/asm/JSystem/JMath/JMath/JMAQuatLerp__FPC10QuaternionPC10QuaternionfP10Quaternion.s +++ /dev/null @@ -1,64 +0,0 @@ -lbl_80339938: -/* 80339938 E0 03 00 00 */ psq_l f0, 0(r3), 0, 0 /* qr0 */ -/* 8033993C E0 44 00 00 */ psq_l f2, 0(r4), 0, 0 /* qr0 */ -/* 80339940 10 60 00 B2 */ ps_mul f3, f0, f2 -/* 80339944 E0 03 00 08 */ psq_l f0, 8(r3), 0, 0 /* qr0 */ -/* 80339948 E0 44 00 08 */ psq_l f2, 8(r4), 0, 0 /* qr0 */ -/* 8033994C 10 60 18 BA */ ps_madd f3, f0, f2, f3 -/* 80339950 10 63 18 D4 */ ps_sum0 f3, f3, f3, f3 -/* 80339954 C8 02 CA C8 */ lfd f0, lit_376(r2) -/* 80339958 FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 8033995C 40 80 00 6C */ bge lbl_803399C8 -/* 80339960 C0 43 00 00 */ lfs f2, 0(r3) -/* 80339964 FC 20 08 50 */ fneg f1, f1 -/* 80339968 C0 04 00 00 */ lfs f0, 0(r4) -/* 8033996C EC 02 00 2A */ fadds f0, f2, f0 -/* 80339970 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80339974 EC 02 00 2A */ fadds f0, f2, f0 -/* 80339978 D0 05 00 00 */ stfs f0, 0(r5) -/* 8033997C C0 43 00 04 */ lfs f2, 4(r3) -/* 80339980 C0 04 00 04 */ lfs f0, 4(r4) -/* 80339984 EC 02 00 2A */ fadds f0, f2, f0 -/* 80339988 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8033998C EC 02 00 2A */ fadds f0, f2, f0 -/* 80339990 D0 05 00 04 */ stfs f0, 4(r5) -/* 80339994 C0 43 00 08 */ lfs f2, 8(r3) -/* 80339998 C0 04 00 08 */ lfs f0, 8(r4) -/* 8033999C EC 02 00 2A */ fadds f0, f2, f0 -/* 803399A0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 803399A4 EC 02 00 2A */ fadds f0, f2, f0 -/* 803399A8 D0 05 00 08 */ stfs f0, 8(r5) -/* 803399AC C0 43 00 0C */ lfs f2, 0xc(r3) -/* 803399B0 C0 04 00 0C */ lfs f0, 0xc(r4) -/* 803399B4 EC 02 00 2A */ fadds f0, f2, f0 -/* 803399B8 EC 01 00 32 */ fmuls f0, f1, f0 -/* 803399BC EC 02 00 2A */ fadds f0, f2, f0 -/* 803399C0 D0 05 00 0C */ stfs f0, 0xc(r5) -/* 803399C4 4E 80 00 20 */ blr -lbl_803399C8: -/* 803399C8 C0 43 00 00 */ lfs f2, 0(r3) -/* 803399CC FC 20 08 50 */ fneg f1, f1 -/* 803399D0 C0 04 00 00 */ lfs f0, 0(r4) -/* 803399D4 EC 02 00 28 */ fsubs f0, f2, f0 -/* 803399D8 EC 01 00 32 */ fmuls f0, f1, f0 -/* 803399DC EC 02 00 2A */ fadds f0, f2, f0 -/* 803399E0 D0 05 00 00 */ stfs f0, 0(r5) -/* 803399E4 C0 43 00 04 */ lfs f2, 4(r3) -/* 803399E8 C0 04 00 04 */ lfs f0, 4(r4) -/* 803399EC EC 02 00 28 */ fsubs f0, f2, f0 -/* 803399F0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 803399F4 EC 02 00 2A */ fadds f0, f2, f0 -/* 803399F8 D0 05 00 04 */ stfs f0, 4(r5) -/* 803399FC C0 43 00 08 */ lfs f2, 8(r3) -/* 80339A00 C0 04 00 08 */ lfs f0, 8(r4) -/* 80339A04 EC 02 00 28 */ fsubs f0, f2, f0 -/* 80339A08 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80339A0C EC 02 00 2A */ fadds f0, f2, f0 -/* 80339A10 D0 05 00 08 */ stfs f0, 8(r5) -/* 80339A14 C0 43 00 0C */ lfs f2, 0xc(r3) -/* 80339A18 C0 04 00 0C */ lfs f0, 0xc(r4) -/* 80339A1C EC 02 00 28 */ fsubs f0, f2, f0 -/* 80339A20 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80339A24 EC 02 00 2A */ fadds f0, f2, f0 -/* 80339A28 D0 05 00 0C */ stfs f0, 0xc(r5) -/* 80339A2C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/allocArea__12JUTCacheFontFPvUlP7JKRHeap.s b/asm/JSystem/JUtility/JUTCacheFont/allocArea__12JUTCacheFontFPvUlP7JKRHeap.s deleted file mode 100644 index 5f69e3f38e..0000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/allocArea__12JUTCacheFontFPvUlP7JKRHeap.s +++ /dev/null @@ -1,120 +0,0 @@ -lbl_802DD650: -/* 802DD650 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DD654 7C 08 02 A6 */ mflr r0 -/* 802DD658 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DD65C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DD660 48 08 4B 79 */ bl _savegpr_28 -/* 802DD664 7C 7C 1B 78 */ mr r28, r3 -/* 802DD668 7C 9D 23 78 */ mr r29, r4 -/* 802DD66C 7C BE 2B 78 */ mr r30, r5 -/* 802DD670 7C DF 33 78 */ mr r31, r6 -/* 802DD674 38 60 00 20 */ li r3, 0x20 -/* 802DD678 7F E4 FB 78 */ mr r4, r31 -/* 802DD67C 38 A0 00 00 */ li r5, 0 -/* 802DD680 4B FF 16 19 */ bl __nw__FUlP7JKRHeapi -/* 802DD684 90 7C 00 4C */ stw r3, 0x4c(r28) -/* 802DD688 80 1C 00 4C */ lwz r0, 0x4c(r28) -/* 802DD68C 28 00 00 00 */ cmplwi r0, 0 -/* 802DD690 40 82 00 0C */ bne lbl_802DD69C -/* 802DD694 38 60 00 00 */ li r3, 0 -/* 802DD698 48 00 01 54 */ b lbl_802DD7EC -lbl_802DD69C: -/* 802DD69C 80 7C 00 70 */ lwz r3, 0x70(r28) -/* 802DD6A0 28 03 00 00 */ cmplwi r3, 0 -/* 802DD6A4 41 82 00 28 */ beq lbl_802DD6CC -/* 802DD6A8 7F E4 FB 78 */ mr r4, r31 -/* 802DD6AC 38 A0 00 00 */ li r5, 0 -/* 802DD6B0 4B FF 16 61 */ bl __nwa__FUlP7JKRHeapi -/* 802DD6B4 90 7C 00 7C */ stw r3, 0x7c(r28) -/* 802DD6B8 80 1C 00 7C */ lwz r0, 0x7c(r28) -/* 802DD6BC 28 00 00 00 */ cmplwi r0, 0 -/* 802DD6C0 40 82 00 0C */ bne lbl_802DD6CC -/* 802DD6C4 38 60 00 00 */ li r3, 0 -/* 802DD6C8 48 00 01 24 */ b lbl_802DD7EC -lbl_802DD6CC: -/* 802DD6CC A0 1C 00 62 */ lhz r0, 0x62(r28) -/* 802DD6D0 28 00 00 00 */ cmplwi r0, 0 -/* 802DD6D4 41 82 00 64 */ beq lbl_802DD738 -/* 802DD6D8 54 03 2A F4 */ rlwinm r3, r0, 5, 0xb, 0x1a -/* 802DD6DC 7F E4 FB 78 */ mr r4, r31 -/* 802DD6E0 38 A0 00 00 */ li r5, 0 -/* 802DD6E4 4B FF 16 2D */ bl __nwa__FUlP7JKRHeapi -/* 802DD6E8 90 7C 00 80 */ stw r3, 0x80(r28) -/* 802DD6EC 80 1C 00 80 */ lwz r0, 0x80(r28) -/* 802DD6F0 28 00 00 00 */ cmplwi r0, 0 -/* 802DD6F4 40 82 00 0C */ bne lbl_802DD700 -/* 802DD6F8 38 60 00 00 */ li r3, 0 -/* 802DD6FC 48 00 00 F0 */ b lbl_802DD7EC -lbl_802DD700: -/* 802DD700 80 6D 8E 48 */ lwz r3, sAramObject__7JKRAram(r13) -/* 802DD704 80 63 00 94 */ lwz r3, 0x94(r3) -/* 802DD708 A0 1C 00 62 */ lhz r0, 0x62(r28) -/* 802DD70C 54 04 28 34 */ slwi r4, r0, 5 -/* 802DD710 80 1C 00 74 */ lwz r0, 0x74(r28) -/* 802DD714 7C 84 00 50 */ subf r4, r4, r0 -/* 802DD718 38 A0 00 00 */ li r5, 0 -/* 802DD71C 4B FF 58 A1 */ bl alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode -/* 802DD720 90 7C 00 AC */ stw r3, 0xac(r28) -/* 802DD724 80 1C 00 AC */ lwz r0, 0xac(r28) -/* 802DD728 28 00 00 00 */ cmplwi r0, 0 -/* 802DD72C 40 82 00 0C */ bne lbl_802DD738 -/* 802DD730 38 60 00 00 */ li r3, 0 -/* 802DD734 48 00 00 B8 */ b lbl_802DD7EC -lbl_802DD738: -/* 802DD738 80 7C 00 78 */ lwz r3, 0x78(r28) -/* 802DD73C 28 03 00 00 */ cmplwi r3, 0 -/* 802DD740 41 82 00 28 */ beq lbl_802DD768 -/* 802DD744 7F E4 FB 78 */ mr r4, r31 -/* 802DD748 38 A0 00 00 */ li r5, 0 -/* 802DD74C 4B FF 15 C5 */ bl __nwa__FUlP7JKRHeapi -/* 802DD750 90 7C 00 84 */ stw r3, 0x84(r28) -/* 802DD754 80 1C 00 84 */ lwz r0, 0x84(r28) -/* 802DD758 28 00 00 00 */ cmplwi r0, 0 -/* 802DD75C 40 82 00 0C */ bne lbl_802DD768 -/* 802DD760 38 60 00 00 */ li r3, 0 -/* 802DD764 48 00 00 88 */ b lbl_802DD7EC -lbl_802DD768: -/* 802DD768 80 7C 00 88 */ lwz r3, 0x88(r28) -/* 802DD76C 38 03 00 40 */ addi r0, r3, 0x40 -/* 802DD770 90 1C 00 94 */ stw r0, 0x94(r28) -/* 802DD774 80 1C 00 94 */ lwz r0, 0x94(r28) -/* 802DD778 7C 1E 03 96 */ divwu r0, r30, r0 -/* 802DD77C 90 1C 00 98 */ stw r0, 0x98(r28) -/* 802DD780 80 1C 00 94 */ lwz r0, 0x94(r28) -/* 802DD784 80 9C 00 98 */ lwz r4, 0x98(r28) -/* 802DD788 7C 60 21 D6 */ mullw r3, r0, r4 -/* 802DD78C 28 04 00 00 */ cmplwi r4, 0 -/* 802DD790 40 82 00 0C */ bne lbl_802DD79C -/* 802DD794 38 60 00 00 */ li r3, 0 -/* 802DD798 48 00 00 54 */ b lbl_802DD7EC -lbl_802DD79C: -/* 802DD79C 28 1D 00 00 */ cmplwi r29, 0 -/* 802DD7A0 41 82 00 14 */ beq lbl_802DD7B4 -/* 802DD7A4 93 BC 00 90 */ stw r29, 0x90(r28) -/* 802DD7A8 38 00 00 00 */ li r0, 0 -/* 802DD7AC 98 1C 00 B0 */ stb r0, 0xb0(r28) -/* 802DD7B0 48 00 00 30 */ b lbl_802DD7E0 -lbl_802DD7B4: -/* 802DD7B4 7F E4 FB 78 */ mr r4, r31 -/* 802DD7B8 38 A0 00 20 */ li r5, 0x20 -/* 802DD7BC 4B FF 15 55 */ bl __nwa__FUlP7JKRHeapi -/* 802DD7C0 90 7C 00 90 */ stw r3, 0x90(r28) -/* 802DD7C4 80 1C 00 90 */ lwz r0, 0x90(r28) -/* 802DD7C8 28 00 00 00 */ cmplwi r0, 0 -/* 802DD7CC 40 82 00 0C */ bne lbl_802DD7D8 -/* 802DD7D0 38 60 00 00 */ li r3, 0 -/* 802DD7D4 48 00 00 18 */ b lbl_802DD7EC -lbl_802DD7D8: -/* 802DD7D8 38 00 00 01 */ li r0, 1 -/* 802DD7DC 98 1C 00 B0 */ stb r0, 0xb0(r28) -lbl_802DD7E0: -/* 802DD7E0 7F 83 E3 78 */ mr r3, r28 -/* 802DD7E4 48 00 06 FD */ bl invalidiateAllCache__12JUTCacheFontFv -/* 802DD7E8 38 60 00 01 */ li r3, 1 -lbl_802DD7EC: -/* 802DD7EC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DD7F0 48 08 4A 35 */ bl _restgpr_28 -/* 802DD7F4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DD7F8 7C 08 03 A6 */ mtlr r0 -/* 802DD7FC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DD800 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/prepend__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo.s b/asm/JSystem/JUtility/JUTCacheFont/prepend__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo.s deleted file mode 100644 index 4ef3148409..0000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/prepend__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802DDFAC: -/* 802DDFAC 80 A3 00 9C */ lwz r5, 0x9c(r3) -/* 802DDFB0 90 83 00 9C */ stw r4, 0x9c(r3) -/* 802DDFB4 38 00 00 00 */ li r0, 0 -/* 802DDFB8 90 04 00 00 */ stw r0, 0(r4) -/* 802DDFBC 90 A4 00 04 */ stw r5, 4(r4) -/* 802DDFC0 28 05 00 00 */ cmplwi r5, 0 -/* 802DDFC4 40 82 00 0C */ bne lbl_802DDFD0 -/* 802DDFC8 90 83 00 A0 */ stw r4, 0xa0(r3) -/* 802DDFCC 4E 80 00 20 */ blr -lbl_802DDFD0: -/* 802DDFD0 90 85 00 00 */ stw r4, 0(r5) -/* 802DDFD4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/unlink__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo.s b/asm/JSystem/JUtility/JUTCacheFont/unlink__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo.s deleted file mode 100644 index 2ceee49dc4..0000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/unlink__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_802DDF68: -/* 802DDF68 80 A4 00 00 */ lwz r5, 0(r4) -/* 802DDF6C 28 05 00 00 */ cmplwi r5, 0 -/* 802DDF70 40 82 00 10 */ bne lbl_802DDF80 -/* 802DDF74 80 04 00 04 */ lwz r0, 4(r4) -/* 802DDF78 90 03 00 9C */ stw r0, 0x9c(r3) -/* 802DDF7C 48 00 00 0C */ b lbl_802DDF88 -lbl_802DDF80: -/* 802DDF80 80 04 00 04 */ lwz r0, 4(r4) -/* 802DDF84 90 05 00 04 */ stw r0, 4(r5) -lbl_802DDF88: -/* 802DDF88 80 A4 00 04 */ lwz r5, 4(r4) -/* 802DDF8C 28 05 00 00 */ cmplwi r5, 0 -/* 802DDF90 40 82 00 10 */ bne lbl_802DDFA0 -/* 802DDF94 80 04 00 00 */ lwz r0, 0(r4) -/* 802DDF98 90 03 00 A0 */ stw r0, 0xa0(r3) -/* 802DDF9C 4E 80 00 20 */ blr -lbl_802DDFA0: -/* 802DDFA0 80 04 00 00 */ lwz r0, 0(r4) -/* 802DDFA4 90 05 00 00 */ stw r0, 0(r5) -/* 802DDFA8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTResFont/countBlock__10JUTResFontFv.s b/asm/JSystem/JUtility/JUTResFont/countBlock__10JUTResFontFv.s deleted file mode 100644 index 84a3bf419e..0000000000 --- a/asm/JSystem/JUtility/JUTResFont/countBlock__10JUTResFontFv.s +++ /dev/null @@ -1,72 +0,0 @@ -lbl_802DF248: -/* 802DF248 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DF24C 7C 08 02 A6 */ mflr r0 -/* 802DF250 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DF254 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DF258 48 08 2F 81 */ bl _savegpr_28 -/* 802DF25C 7C 7C 1B 78 */ mr r28, r3 -/* 802DF260 38 00 00 00 */ li r0, 0 -/* 802DF264 B0 03 00 60 */ sth r0, 0x60(r3) -/* 802DF268 B0 03 00 62 */ sth r0, 0x62(r3) -/* 802DF26C B0 03 00 64 */ sth r0, 0x64(r3) -/* 802DF270 80 63 00 48 */ lwz r3, 0x48(r3) -/* 802DF274 3B C3 00 20 */ addi r30, r3, 0x20 -/* 802DF278 3B A0 00 00 */ li r29, 0 -/* 802DF27C 3C 60 4D 41 */ lis r3, 0x4D41 /* 0x4D415031@ha */ -/* 802DF280 3B E3 50 31 */ addi r31, r3, 0x5031 /* 0x4D415031@l */ -/* 802DF284 48 00 00 98 */ b lbl_802DF31C -lbl_802DF288: -/* 802DF288 80 9E 00 00 */ lwz r4, 0(r30) -/* 802DF28C 7C 04 F8 00 */ cmpw r4, r31 -/* 802DF290 41 82 00 64 */ beq lbl_802DF2F4 -/* 802DF294 40 80 00 2C */ bge lbl_802DF2C0 -/* 802DF298 3C 60 49 4E */ lis r3, 0x494E /* 0x494E4631@ha */ -/* 802DF29C 38 03 46 31 */ addi r0, r3, 0x4631 /* 0x494E4631@l */ -/* 802DF2A0 7C 04 00 00 */ cmpw r4, r0 -/* 802DF2A4 41 82 00 6C */ beq lbl_802DF310 -/* 802DF2A8 40 80 00 5C */ bge lbl_802DF304 -/* 802DF2AC 3C 60 47 4C */ lis r3, 0x474C /* 0x474C5931@ha */ -/* 802DF2B0 38 03 59 31 */ addi r0, r3, 0x5931 /* 0x474C5931@l */ -/* 802DF2B4 7C 04 00 00 */ cmpw r4, r0 -/* 802DF2B8 41 82 00 2C */ beq lbl_802DF2E4 -/* 802DF2BC 48 00 00 48 */ b lbl_802DF304 -lbl_802DF2C0: -/* 802DF2C0 3C 60 57 49 */ lis r3, 0x5749 /* 0x57494431@ha */ -/* 802DF2C4 38 03 44 31 */ addi r0, r3, 0x4431 /* 0x57494431@l */ -/* 802DF2C8 7C 04 00 00 */ cmpw r4, r0 -/* 802DF2CC 41 82 00 08 */ beq lbl_802DF2D4 -/* 802DF2D0 48 00 00 34 */ b lbl_802DF304 -lbl_802DF2D4: -/* 802DF2D4 A0 7C 00 60 */ lhz r3, 0x60(r28) -/* 802DF2D8 38 03 00 01 */ addi r0, r3, 1 -/* 802DF2DC B0 1C 00 60 */ sth r0, 0x60(r28) -/* 802DF2E0 48 00 00 30 */ b lbl_802DF310 -lbl_802DF2E4: -/* 802DF2E4 A0 7C 00 62 */ lhz r3, 0x62(r28) -/* 802DF2E8 38 03 00 01 */ addi r0, r3, 1 -/* 802DF2EC B0 1C 00 62 */ sth r0, 0x62(r28) -/* 802DF2F0 48 00 00 20 */ b lbl_802DF310 -lbl_802DF2F4: -/* 802DF2F4 A0 7C 00 64 */ lhz r3, 0x64(r28) -/* 802DF2F8 38 03 00 01 */ addi r0, r3, 1 -/* 802DF2FC B0 1C 00 64 */ sth r0, 0x64(r28) -/* 802DF300 48 00 00 10 */ b lbl_802DF310 -lbl_802DF304: -/* 802DF304 3C 60 80 3A */ lis r3, JUTResFont__stringBase0@ha /* 0x8039D45C@ha */ -/* 802DF308 38 63 D4 5C */ addi r3, r3, JUTResFont__stringBase0@l /* 0x8039D45C@l */ -/* 802DF30C 48 00 93 3D */ bl JUTReportConsole -lbl_802DF310: -/* 802DF310 80 1E 00 04 */ lwz r0, 4(r30) -/* 802DF314 7F DE 02 14 */ add r30, r30, r0 -/* 802DF318 3B BD 00 01 */ addi r29, r29, 1 -lbl_802DF31C: -/* 802DF31C 80 7C 00 48 */ lwz r3, 0x48(r28) -/* 802DF320 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802DF324 7C 1D 00 40 */ cmplw r29, r0 -/* 802DF328 41 80 FF 60 */ blt lbl_802DF288 -/* 802DF32C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DF330 48 08 2E F5 */ bl _restgpr_28 -/* 802DF334 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DF338 7C 08 03 A6 */ mtlr r0 -/* 802DF33C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DF340 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/changeDragonActor__9daAlink_cFP10fopAc_ac_c.s b/asm/d/a/d_a_alink/changeDragonActor__9daAlink_cFP10fopAc_ac_c.s deleted file mode 100644 index 21364a1ca9..0000000000 --- a/asm/d/a/d_a_alink/changeDragonActor__9daAlink_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_800FC568: -/* 800FC568 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FC56C 7C 08 02 A6 */ mflr r0 -/* 800FC570 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FC574 80 A3 28 10 */ lwz r5, 0x2810(r3) -/* 800FC578 28 05 00 00 */ cmplwi r5, 0 -/* 800FC57C 41 82 00 18 */ beq lbl_800FC594 -/* 800FC580 A8 05 00 08 */ lha r0, 8(r5) -/* 800FC584 2C 00 00 F7 */ cmpwi r0, 0xf7 -/* 800FC588 40 82 00 0C */ bne lbl_800FC594 -/* 800FC58C 38 63 28 0C */ addi r3, r3, 0x280c -/* 800FC590 48 06 27 29 */ bl setData__16daPy_actorKeep_cFP10fopAc_ac_c -lbl_800FC594: -/* 800FC594 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FC598 7C 08 03 A6 */ mtlr r0 -/* 800FC59C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FC5A0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/changeHangEndProc__9daAlink_cFv.s b/asm/d/a/d_a_alink/changeHangEndProc__9daAlink_cFv.s deleted file mode 100644 index 2ede55f5c3..0000000000 --- a/asm/d/a/d_a_alink/changeHangEndProc__9daAlink_cFv.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_800FA78C: -/* 800FA78C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FA790 7C 08 02 A6 */ mflr r0 -/* 800FA794 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FA798 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FA79C 7C 7F 1B 78 */ mr r31, r3 -/* 800FA7A0 4B FF FF 45 */ bl setHangGroundY__9daAlink_cFv -/* 800FA7A4 C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 800FA7A8 C0 7F 33 D8 */ lfs f3, 0x33d8(r31) -/* 800FA7AC 3C 60 80 39 */ lis r3, m__22daAlinkHIO_wallHang_c0@ha /* 0x8038E1F4@ha */ -/* 800FA7B0 38 63 E1 F4 */ addi r3, r3, m__22daAlinkHIO_wallHang_c0@l /* 0x8038E1F4@l */ -/* 800FA7B4 C0 03 00 18 */ lfs f0, 0x18(r3) -/* 800FA7B8 EC 23 00 2A */ fadds f1, f3, f0 -/* 800FA7BC C0 02 92 B8 */ lfs f0, lit_6040(r2) -/* 800FA7C0 EC 01 00 28 */ fsubs f0, f1, f0 -/* 800FA7C4 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 800FA7C8 40 80 00 40 */ bge lbl_800FA808 -/* 800FA7CC A0 1F 2F E8 */ lhz r0, 0x2fe8(r31) -/* 800FA7D0 28 00 00 56 */ cmplwi r0, 0x56 -/* 800FA7D4 40 82 00 14 */ bne lbl_800FA7E8 -/* 800FA7D8 C0 3F 1F E0 */ lfs f1, 0x1fe0(r31) -/* 800FA7DC C0 02 92 C4 */ lfs f0, lit_6109(r2) -/* 800FA7E0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FA7E4 41 80 00 24 */ blt lbl_800FA808 -lbl_800FA7E8: -/* 800FA7E8 C0 02 93 3C */ lfs f0, lit_7808(r2) -/* 800FA7EC EC 02 00 28 */ fsubs f0, f2, f0 -/* 800FA7F0 FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 800FA7F4 40 80 00 14 */ bge lbl_800FA808 -/* 800FA7F8 7F E3 FB 78 */ mr r3, r31 -/* 800FA7FC C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 800FA800 4B FC C7 19 */ bl procLandInit__9daAlink_cFf -/* 800FA804 48 00 00 44 */ b lbl_800FA848 -lbl_800FA808: -/* 800FA808 7F E3 FB 78 */ mr r3, r31 -/* 800FA80C 38 80 00 33 */ li r4, 0x33 -/* 800FA810 4B FB 8A 41 */ bl setDoStatus__9daAlink_cFUc -/* 800FA814 88 1F 2F 8D */ lbz r0, 0x2f8d(r31) -/* 800FA818 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 800FA81C 41 82 00 28 */ beq lbl_800FA844 -/* 800FA820 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800FA824 D0 1F 04 FC */ stfs f0, 0x4fc(r31) -/* 800FA828 7F E3 FB 78 */ mr r3, r31 -/* 800FA82C 38 80 00 01 */ li r4, 1 -/* 800FA830 3C A0 80 39 */ lis r5, m__22daAlinkHIO_autoJump_c0@ha /* 0x8038E068@ha */ -/* 800FA834 38 A5 E0 68 */ addi r5, r5, m__22daAlinkHIO_autoJump_c0@l /* 0x8038E068@l */ -/* 800FA838 C0 25 00 70 */ lfs f1, 0x70(r5) -/* 800FA83C 4B FC C2 0D */ bl procFallInit__9daAlink_cFif -/* 800FA840 48 00 00 08 */ b lbl_800FA848 -lbl_800FA844: -/* 800FA844 38 60 00 00 */ li r3, 0 -lbl_800FA848: -/* 800FA848 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FA84C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FA850 7C 08 03 A6 */ mtlr r0 -/* 800FA854 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FA858 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkClimbCode__9daAlink_cFR13cBgS_PolyInfo.s b/asm/d/a/d_a_alink/checkClimbCode__9daAlink_cFR13cBgS_PolyInfo.s deleted file mode 100644 index 2daf94d3df..0000000000 --- a/asm/d/a/d_a_alink/checkClimbCode__9daAlink_cFR13cBgS_PolyInfo.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_800FE058: -/* 800FE058 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800FE05C 7C 08 02 A6 */ mflr r0 -/* 800FE060 90 01 00 24 */ stw r0, 0x24(r1) -/* 800FE064 39 61 00 20 */ addi r11, r1, 0x20 -/* 800FE068 48 26 41 69 */ bl _savegpr_26 -/* 800FE06C 7C 9A 23 78 */ mr r26, r4 -/* 800FE070 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800FE074 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800FE078 3B 63 0F 38 */ addi r27, r3, 0xf38 -/* 800FE07C 7F 63 DB 78 */ mr r3, r27 -/* 800FE080 4B F7 65 A9 */ bl GetBgWBasePointer__4cBgSCFRC13cBgS_PolyInfo -/* 800FE084 7C 7F 1B 78 */ mr r31, r3 -/* 800FE088 3B C0 00 00 */ li r30, 0 -/* 800FE08C 7F DD F3 78 */ mr r29, r30 -/* 800FE090 7F DC F3 78 */ mr r28, r30 -/* 800FE094 7F 63 DB 78 */ mr r3, r27 -/* 800FE098 7F 44 D3 78 */ mr r4, r26 -/* 800FE09C 4B F7 6D 65 */ bl GetWallCode__4dBgSFRC13cBgS_PolyInfo -/* 800FE0A0 2C 03 00 01 */ cmpwi r3, 1 -/* 800FE0A4 40 82 00 28 */ bne lbl_800FE0CC -/* 800FE0A8 7F 43 D3 78 */ mr r3, r26 -/* 800FE0AC 4B F7 7D B1 */ bl dBgS_GetNY__FRC13cBgS_PolyInfo -/* 800FE0B0 FC 00 0A 10 */ fabs f0, f1 -/* 800FE0B4 FC 20 00 18 */ frsp f1, f0 -/* 800FE0B8 C0 02 92 A4 */ lfs f0, lit_6021(r2) -/* 800FE0BC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FE0C0 4C 40 13 82 */ cror 2, 0, 2 -/* 800FE0C4 40 82 00 08 */ bne lbl_800FE0CC -/* 800FE0C8 3B 80 00 01 */ li r28, 1 -lbl_800FE0CC: -/* 800FE0CC 57 80 06 3F */ clrlwi. r0, r28, 0x18 -/* 800FE0D0 41 82 00 10 */ beq lbl_800FE0E0 -/* 800FE0D4 28 1F 00 00 */ cmplwi r31, 0 -/* 800FE0D8 41 82 00 08 */ beq lbl_800FE0E0 -/* 800FE0DC 3B A0 00 01 */ li r29, 1 -lbl_800FE0E0: -/* 800FE0E0 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 800FE0E4 41 82 00 14 */ beq lbl_800FE0F8 -/* 800FE0E8 88 1F 00 14 */ lbz r0, 0x14(r31) -/* 800FE0EC 28 00 00 00 */ cmplwi r0, 0 -/* 800FE0F0 41 82 00 08 */ beq lbl_800FE0F8 -/* 800FE0F4 3B C0 00 01 */ li r30, 1 -lbl_800FE0F8: -/* 800FE0F8 57 C3 06 3E */ clrlwi r3, r30, 0x18 -/* 800FE0FC 39 61 00 20 */ addi r11, r1, 0x20 -/* 800FE100 48 26 41 1D */ bl _restgpr_26 -/* 800FE104 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800FE108 7C 08 03 A6 */ mtlr r0 -/* 800FE10C 38 21 00 20 */ addi r1, r1, 0x20 -/* 800FE110 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/checkLadderFall__9daAlink_cFv.s b/asm/d/a/d_a_alink/checkLadderFall__9daAlink_cFv.s deleted file mode 100644 index 09f2d4d6de..0000000000 --- a/asm/d/a/d_a_alink/checkLadderFall__9daAlink_cFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_800FD5E4: -/* 800FD5E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FD5E8 7C 08 02 A6 */ mflr r0 -/* 800FD5EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FD5F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FD5F4 7C 7F 1B 78 */ mr r31, r3 -/* 800FD5F8 38 80 00 33 */ li r4, 0x33 -/* 800FD5FC 4B FB 5C 55 */ bl setDoStatus__9daAlink_cFUc -/* 800FD600 88 1F 2F 8D */ lbz r0, 0x2f8d(r31) -/* 800FD604 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 800FD608 41 82 00 28 */ beq lbl_800FD630 -/* 800FD60C 38 00 00 00 */ li r0, 0 -/* 800FD610 98 1F 2F 99 */ stb r0, 0x2f99(r31) -/* 800FD614 7F E3 FB 78 */ mr r3, r31 -/* 800FD618 38 80 00 01 */ li r4, 1 -/* 800FD61C 3C A0 80 39 */ lis r5, m__22daAlinkHIO_autoJump_c0@ha /* 0x8038E068@ha */ -/* 800FD620 38 A5 E0 68 */ addi r5, r5, m__22daAlinkHIO_autoJump_c0@l /* 0x8038E068@l */ -/* 800FD624 C0 25 00 70 */ lfs f1, 0x70(r5) -/* 800FD628 4B FC 94 21 */ bl procFallInit__9daAlink_cFif -/* 800FD62C 48 00 00 08 */ b lbl_800FD634 -lbl_800FD630: -/* 800FD630 38 60 00 00 */ li r3, 0 -lbl_800FD634: -/* 800FD634 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FD638 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FD63C 7C 08 03 A6 */ mtlr r0 -/* 800FD640 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FD644 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getClimbDirectionFromAngle__9daAlink_cFv.s b/asm/d/a/d_a_alink/getClimbDirectionFromAngle__9daAlink_cFv.s deleted file mode 100644 index 844a3844c5..0000000000 --- a/asm/d/a/d_a_alink/getClimbDirectionFromAngle__9daAlink_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_800FE3C4: -/* 800FE3C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FE3C8 7C 08 02 A6 */ mflr r0 -/* 800FE3CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FE3D0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FE3D4 A8 83 04 E6 */ lha r4, 0x4e6(r3) -/* 800FE3D8 A8 03 2F E2 */ lha r0, 0x2fe2(r3) -/* 800FE3DC 7C 04 00 50 */ subf r0, r4, r0 -/* 800FE3E0 7C 1F 07 34 */ extsh r31, r0 -/* 800FE3E4 7F E3 FB 78 */ mr r3, r31 -/* 800FE3E8 48 26 6C E9 */ bl abs -/* 800FE3EC 2C 03 70 00 */ cmpwi r3, 0x7000 -/* 800FE3F0 40 81 00 0C */ ble lbl_800FE3FC -/* 800FE3F4 38 60 00 01 */ li r3, 1 -/* 800FE3F8 48 00 00 2C */ b lbl_800FE424 -lbl_800FE3FC: -/* 800FE3FC 2C 1F 10 00 */ cmpwi r31, 0x1000 -/* 800FE400 41 80 00 0C */ blt lbl_800FE40C -/* 800FE404 38 60 00 02 */ li r3, 2 -/* 800FE408 48 00 00 1C */ b lbl_800FE424 -lbl_800FE40C: -/* 800FE40C 6F E3 80 00 */ xoris r3, r31, 0x8000 -/* 800FE410 20 1F F0 00 */ subfic r0, r31, -4096 -/* 800FE414 7C 00 18 14 */ addc r0, r0, r3 -/* 800FE418 7C 60 01 10 */ subfe r3, r0, r0 -/* 800FE41C 38 00 00 03 */ li r0, 3 -/* 800FE420 7C 03 18 38 */ and r3, r0, r3 -lbl_800FE424: -/* 800FE424 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FE428 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FE42C 7C 08 03 A6 */ mtlr r0 -/* 800FE430 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FE434 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getClimbMoveSideAnmSpeed__9daAlink_cFv.s b/asm/d/a/d_a_alink/getClimbMoveSideAnmSpeed__9daAlink_cFv.s deleted file mode 100644 index af0e516285..0000000000 --- a/asm/d/a/d_a_alink/getClimbMoveSideAnmSpeed__9daAlink_cFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_800FE034: -/* 800FE034 3C 80 80 39 */ lis r4, m__20daAlinkHIO_ladder_c0@ha /* 0x8038EB8C@ha */ -/* 800FE038 38 84 EB 8C */ addi r4, r4, m__20daAlinkHIO_ladder_c0@l /* 0x8038EB8C@l */ -/* 800FE03C C0 44 00 5C */ lfs f2, 0x5c(r4) -/* 800FE040 C0 23 33 A8 */ lfs f1, 0x33a8(r3) -/* 800FE044 C0 04 00 60 */ lfs f0, 0x60(r4) -/* 800FE048 EC 00 10 28 */ fsubs f0, f0, f2 -/* 800FE04C EC 01 00 32 */ fmuls f0, f1, f0 -/* 800FE050 EC 22 00 2A */ fadds f1, f2, f0 -/* 800FE054 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getClimbMoveUpDownAnmSpeed__9daAlink_cFv.s b/asm/d/a/d_a_alink/getClimbMoveUpDownAnmSpeed__9daAlink_cFv.s deleted file mode 100644 index 1d69ac4a4b..0000000000 --- a/asm/d/a/d_a_alink/getClimbMoveUpDownAnmSpeed__9daAlink_cFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_800FE010: -/* 800FE010 3C 80 80 39 */ lis r4, m__20daAlinkHIO_ladder_c0@ha /* 0x8038EB8C@ha */ -/* 800FE014 38 84 EB 8C */ addi r4, r4, m__20daAlinkHIO_ladder_c0@l /* 0x8038EB8C@l */ -/* 800FE018 C0 44 00 64 */ lfs f2, 0x64(r4) -/* 800FE01C C0 23 33 A8 */ lfs f1, 0x33a8(r3) -/* 800FE020 C0 04 00 68 */ lfs f0, 0x68(r4) -/* 800FE024 EC 00 10 28 */ fsubs f0, f0, f2 -/* 800FE028 EC 01 00 32 */ fmuls f0, f1, f0 -/* 800FE02C EC 22 00 2A */ fadds f1, f2, f0 -/* 800FE030 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getHangDirectionFromAngle__9daAlink_cFv.s b/asm/d/a/d_a_alink/getHangDirectionFromAngle__9daAlink_cFv.s deleted file mode 100644 index 34c927d7a1..0000000000 --- a/asm/d/a/d_a_alink/getHangDirectionFromAngle__9daAlink_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_800F9FFC: -/* 800F9FFC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FA000 7C 08 02 A6 */ mflr r0 -/* 800FA004 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FA008 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FA00C A8 83 04 E6 */ lha r4, 0x4e6(r3) -/* 800FA010 A8 03 2F E2 */ lha r0, 0x2fe2(r3) -/* 800FA014 7C 04 00 50 */ subf r0, r4, r0 -/* 800FA018 7C 1F 07 34 */ extsh r31, r0 -/* 800FA01C 7F E3 FB 78 */ mr r3, r31 -/* 800FA020 48 26 B0 B1 */ bl abs -/* 800FA024 2C 03 78 E4 */ cmpwi r3, 0x78e4 -/* 800FA028 40 81 00 0C */ ble lbl_800FA034 -/* 800FA02C 38 60 00 01 */ li r3, 1 -/* 800FA030 48 00 00 2C */ b lbl_800FA05C -lbl_800FA034: -/* 800FA034 2C 1F 07 1C */ cmpwi r31, 0x71c -/* 800FA038 41 80 00 0C */ blt lbl_800FA044 -/* 800FA03C 38 60 00 02 */ li r3, 2 -/* 800FA040 48 00 00 1C */ b lbl_800FA05C -lbl_800FA044: -/* 800FA044 6F E3 80 00 */ xoris r3, r31, 0x8000 -/* 800FA048 20 1F F8 E4 */ subfic r0, r31, -1820 -/* 800FA04C 7C 00 18 14 */ addc r0, r0, r3 -/* 800FA050 7C 60 01 10 */ subfe r3, r0, r0 -/* 800FA054 38 00 00 03 */ li r0, 3 -/* 800FA058 7C 03 18 38 */ and r3, r0, r3 -lbl_800FA05C: -/* 800FA05C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FA060 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FA064 7C 08 03 A6 */ mtlr r0 -/* 800FA068 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FA06C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getHangMoveAnmSpeed__9daAlink_cFv.s b/asm/d/a/d_a_alink/getHangMoveAnmSpeed__9daAlink_cFv.s deleted file mode 100644 index 5b37a6176a..0000000000 --- a/asm/d/a/d_a_alink/getHangMoveAnmSpeed__9daAlink_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_800F9FDC: -/* 800F9FDC 3C 80 80 39 */ lis r4, m__22daAlinkHIO_wallMove_c0@ha /* 0x8038E1E0@ha */ -/* 800F9FE0 C4 44 E1 E0 */ lfsu f2, m__22daAlinkHIO_wallMove_c0@l(r4) /* 0x8038E1E0@l */ -/* 800F9FE4 C0 23 33 A8 */ lfs f1, 0x33a8(r3) -/* 800F9FE8 C0 04 00 04 */ lfs f0, 4(r4) -/* 800F9FEC EC 00 10 28 */ fsubs f0, f0, f2 -/* 800F9FF0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 800F9FF4 EC 22 00 2A */ fadds f1, f2, f0 -/* 800F9FF8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getHangPos__13daObjSwHang_cFv.s b/asm/d/a/d_a_alink/getHangPos__13daObjSwHang_cFv.s deleted file mode 100644 index b5006e55aa..0000000000 --- a/asm/d/a/d_a_alink/getHangPos__13daObjSwHang_cFv.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_80101874: -/* 80101874 C0 04 07 70 */ lfs f0, 0x770(r4) -/* 80101878 D0 03 00 00 */ stfs f0, 0(r3) -/* 8010187C C0 04 07 74 */ lfs f0, 0x774(r4) -/* 80101880 D0 03 00 04 */ stfs f0, 4(r3) -/* 80101884 C0 04 07 78 */ lfs f0, 0x778(r4) -/* 80101888 D0 03 00 08 */ stfs f0, 8(r3) -/* 8010188C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getLadderMoveAnmSpeed__9daAlink_cFv.s b/asm/d/a/d_a_alink/getLadderMoveAnmSpeed__9daAlink_cFv.s deleted file mode 100644 index 422ff68b35..0000000000 --- a/asm/d/a/d_a_alink/getLadderMoveAnmSpeed__9daAlink_cFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_800FD288: -/* 800FD288 3C 80 80 39 */ lis r4, m__20daAlinkHIO_ladder_c0@ha /* 0x8038EB8C@ha */ -/* 800FD28C 38 84 EB 8C */ addi r4, r4, m__20daAlinkHIO_ladder_c0@l /* 0x8038EB8C@l */ -/* 800FD290 C0 44 00 48 */ lfs f2, 0x48(r4) -/* 800FD294 C0 23 33 A8 */ lfs f1, 0x33a8(r3) -/* 800FD298 C0 04 00 4C */ lfs f0, 0x4c(r4) -/* 800FD29C EC 00 10 28 */ fsubs f0, f0, f2 -/* 800FD2A0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 800FD2A4 EC 22 00 2A */ fadds f1, f2, f0 -/* 800FD2A8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getLadderUnitCount__9daAlink_cCFv.s b/asm/d/a/d_a_alink/getLadderUnitCount__9daAlink_cCFv.s deleted file mode 100644 index eeee12acba..0000000000 --- a/asm/d/a/d_a_alink/getLadderUnitCount__9daAlink_cCFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_800FCF58: -/* 800FCF58 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FCF5C C0 42 95 80 */ lfs f2, lit_24600(r2) -/* 800FCF60 C0 23 04 D4 */ lfs f1, 0x4d4(r3) -/* 800FCF64 C0 03 34 F0 */ lfs f0, 0x34f0(r3) -/* 800FCF68 EC 01 00 28 */ fsubs f0, f1, f0 -/* 800FCF6C EC 02 00 32 */ fmuls f0, f2, f0 -/* 800FCF70 FC 00 00 1E */ fctiwz f0, f0 -/* 800FCF74 D8 01 00 08 */ stfd f0, 8(r1) -/* 800FCF78 80 61 00 0C */ lwz r3, 0xc(r1) -/* 800FCF7C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FCF80 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getRoofHangFMoveAnmSpeed__9daAlink_cCFv.s b/asm/d/a/d_a_alink/getRoofHangFMoveAnmSpeed__9daAlink_cCFv.s deleted file mode 100644 index 407d69b858..0000000000 --- a/asm/d/a/d_a_alink/getRoofHangFMoveAnmSpeed__9daAlink_cCFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_801005CC: -/* 801005CC 3C 80 80 39 */ lis r4, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 801005D0 38 84 EB FC */ addi r4, r4, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 801005D4 C0 44 00 24 */ lfs f2, 0x24(r4) -/* 801005D8 C0 23 33 A8 */ lfs f1, 0x33a8(r3) -/* 801005DC C0 04 00 28 */ lfs f0, 0x28(r4) -/* 801005E0 EC 00 10 28 */ fsubs f0, f0, f2 -/* 801005E4 EC 01 00 32 */ fmuls f0, f1, f0 -/* 801005E8 EC 22 00 2A */ fadds f1, f2, f0 -/* 801005EC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/getRoofHangSMoveAnmSpeed__9daAlink_cCFv.s b/asm/d/a/d_a_alink/getRoofHangSMoveAnmSpeed__9daAlink_cCFv.s deleted file mode 100644 index 71d115bbe2..0000000000 --- a/asm/d/a/d_a_alink/getRoofHangSMoveAnmSpeed__9daAlink_cCFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_801005F0: -/* 801005F0 3C 80 80 39 */ lis r4, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 801005F4 38 84 EB FC */ addi r4, r4, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 801005F8 C0 44 00 38 */ lfs f2, 0x38(r4) -/* 801005FC C0 23 33 A8 */ lfs f1, 0x33a8(r3) -/* 80100600 C0 04 00 3C */ lfs f0, 0x3c(r4) -/* 80100604 EC 00 10 28 */ fsubs f0, f0, f2 -/* 80100608 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8010060C EC 22 00 2A */ fadds f1, f2, f0 -/* 80100610 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procBossBodyHangInit__9daAlink_cFP10fopAc_ac_c.s b/asm/d/a/d_a_alink/procBossBodyHangInit__9daAlink_cFP10fopAc_ac_c.s deleted file mode 100644 index bccfb1356c..0000000000 --- a/asm/d/a/d_a_alink/procBossBodyHangInit__9daAlink_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,64 +0,0 @@ -lbl_800FC77C: -/* 800FC77C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FC780 7C 08 02 A6 */ mflr r0 -/* 800FC784 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FC788 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FC78C 93 C1 00 08 */ stw r30, 8(r1) -/* 800FC790 7C 7E 1B 78 */ mr r30, r3 -/* 800FC794 7C 9F 23 78 */ mr r31, r4 -/* 800FC798 38 80 00 DC */ li r4, 0xdc -/* 800FC79C 4B FC 57 D1 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800FC7A0 A8 1F 00 08 */ lha r0, 8(r31) -/* 800FC7A4 2C 00 00 F7 */ cmpwi r0, 0xf7 -/* 800FC7A8 40 82 00 24 */ bne lbl_800FC7CC -/* 800FC7AC 38 00 00 01 */ li r0, 1 -/* 800FC7B0 90 1E 32 CC */ stw r0, 0x32cc(r30) -/* 800FC7B4 7F C3 F3 78 */ mr r3, r30 -/* 800FC7B8 38 80 01 72 */ li r4, 0x172 -/* 800FC7BC 4B FB 07 C5 */ bl setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM -/* 800FC7C0 7F C3 F3 78 */ mr r3, r30 -/* 800FC7C4 4B FB 81 0D */ bl setJumpMode__9daAlink_cFv -/* 800FC7C8 48 00 00 18 */ b lbl_800FC7E0 -lbl_800FC7CC: -/* 800FC7CC 38 00 00 00 */ li r0, 0 -/* 800FC7D0 90 1E 32 CC */ stw r0, 0x32cc(r30) -/* 800FC7D4 7F C3 F3 78 */ mr r3, r30 -/* 800FC7D8 38 80 01 69 */ li r4, 0x169 -/* 800FC7DC 4B FB 07 A5 */ bl setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM -lbl_800FC7E0: -/* 800FC7E0 38 00 01 69 */ li r0, 0x169 -/* 800FC7E4 90 1E 31 98 */ stw r0, 0x3198(r30) -/* 800FC7E8 7F C3 F3 78 */ mr r3, r30 -/* 800FC7EC 38 80 00 01 */ li r4, 1 -/* 800FC7F0 38 A0 00 00 */ li r5, 0 -/* 800FC7F4 4B FC 4A E9 */ bl deleteEquipItem__9daAlink_cFii -/* 800FC7F8 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 800FC7FC D0 3E 33 98 */ stfs f1, 0x3398(r30) -/* 800FC800 7F C3 F3 78 */ mr r3, r30 -/* 800FC804 C0 5E 05 34 */ lfs f2, 0x534(r30) -/* 800FC808 38 80 00 00 */ li r4, 0 -/* 800FC80C 4B FB EF 65 */ bl setSpecialGravity__9daAlink_cFffi -/* 800FC810 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800FC814 D0 1E 04 FC */ stfs f0, 0x4fc(r30) -/* 800FC818 38 00 00 00 */ li r0, 0 -/* 800FC81C B0 1E 30 0C */ sth r0, 0x300c(r30) -/* 800FC820 B0 1E 30 0E */ sth r0, 0x300e(r30) -/* 800FC824 B0 1E 30 10 */ sth r0, 0x3010(r30) -/* 800FC828 B0 1E 30 08 */ sth r0, 0x3008(r30) -/* 800FC82C B0 1E 30 12 */ sth r0, 0x3012(r30) -/* 800FC830 B0 1E 30 80 */ sth r0, 0x3080(r30) -/* 800FC834 38 7E 28 0C */ addi r3, r30, 0x280c -/* 800FC838 7F E4 FB 78 */ mr r4, r31 -/* 800FC83C 48 06 24 7D */ bl setData__16daPy_actorKeep_cFP10fopAc_ac_c -/* 800FC840 7F C3 F3 78 */ mr r3, r30 -/* 800FC844 4B FF FF 05 */ bl setBossBodyHangPos__9daAlink_cFv -/* 800FC848 80 1E 05 8C */ lwz r0, 0x58c(r30) -/* 800FC84C 64 00 80 00 */ oris r0, r0, 0x8000 -/* 800FC850 90 1E 05 8C */ stw r0, 0x58c(r30) -/* 800FC854 38 60 00 01 */ li r3, 1 -/* 800FC858 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FC85C 83 C1 00 08 */ lwz r30, 8(r1) -/* 800FC860 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FC864 7C 08 03 A6 */ mtlr r0 -/* 800FC868 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FC86C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procClimbToRoofInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procClimbToRoofInit__9daAlink_cFv.s deleted file mode 100644 index 51198dd34e..0000000000 --- a/asm/d/a/d_a_alink/procClimbToRoofInit__9daAlink_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_801003E4: -/* 801003E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801003E8 7C 08 02 A6 */ mflr r0 -/* 801003EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 801003F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801003F4 7C 7F 1B 78 */ mr r31, r3 -/* 801003F8 38 80 00 85 */ li r4, 0x85 -/* 801003FC 4B FC 1B 71 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 80100400 7F E3 FB 78 */ mr r3, r31 -/* 80100404 38 80 00 A8 */ li r4, 0xa8 -/* 80100408 4B FA CB 79 */ bl setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM -/* 8010040C 7F E3 FB 78 */ mr r3, r31 -/* 80100410 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 80100414 C0 5F 05 34 */ lfs f2, 0x534(r31) -/* 80100418 38 80 00 00 */ li r4, 0 -/* 8010041C 4B FB B3 55 */ bl setSpecialGravity__9daAlink_cFffi -/* 80100420 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 80100424 D0 1F 04 FC */ stfs f0, 0x4fc(r31) -/* 80100428 D0 1F 33 98 */ stfs f0, 0x3398(r31) -/* 8010042C D0 1F 05 2C */ stfs f0, 0x52c(r31) -/* 80100430 38 00 00 0A */ li r0, 0xa -/* 80100434 98 1F 2F 99 */ stb r0, 0x2f99(r31) -/* 80100438 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8010043C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80100440 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 80100444 60 00 00 08 */ ori r0, r0, 8 -/* 80100448 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 8010044C 38 60 00 01 */ li r3, 1 -/* 80100450 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80100454 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80100458 7C 08 03 A6 */ mtlr r0 -/* 8010045C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80100460 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHangFallStart__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHangFallStart__9daAlink_cFv.s deleted file mode 100644 index c526d4d9f5..0000000000 --- a/asm/d/a/d_a_alink/procHangFallStart__9daAlink_cFv.s +++ /dev/null @@ -1,71 +0,0 @@ -lbl_800FB1A4: -/* 800FB1A4 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 800FB1A8 7C 08 02 A6 */ mflr r0 -/* 800FB1AC 90 01 00 34 */ stw r0, 0x34(r1) -/* 800FB1B0 39 61 00 30 */ addi r11, r1, 0x30 -/* 800FB1B4 48 26 70 29 */ bl _savegpr_29 -/* 800FB1B8 7C 7D 1B 78 */ mr r29, r3 -/* 800FB1BC 3B FD 1F D0 */ addi r31, r29, 0x1fd0 -/* 800FB1C0 7F E3 FB 78 */ mr r3, r31 -/* 800FB1C4 48 06 33 09 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800FB1C8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800FB1CC 40 82 00 1C */ bne lbl_800FB1E8 -/* 800FB1D0 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 800FB1D4 3C 60 80 39 */ lis r3, m__22daAlinkHIO_wallFall_c0@ha /* 0x8038E1B8@ha */ -/* 800FB1D8 38 63 E1 B8 */ addi r3, r3, m__22daAlinkHIO_wallFall_c0@l /* 0x8038E1B8@l */ -/* 800FB1DC C0 03 00 10 */ lfs f0, 0x10(r3) -/* 800FB1E0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FB1E4 40 81 00 0C */ ble lbl_800FB1F0 -lbl_800FB1E8: -/* 800FB1E8 3B C0 00 01 */ li r30, 1 -/* 800FB1EC 48 00 00 08 */ b lbl_800FB1F4 -lbl_800FB1F0: -/* 800FB1F0 3B C0 00 00 */ li r30, 0 -lbl_800FB1F4: -/* 800FB1F4 7F A3 EB 78 */ mr r3, r29 -/* 800FB1F8 4B FF F5 95 */ bl changeHangEndProc__9daAlink_cFv -/* 800FB1FC 2C 03 00 00 */ cmpwi r3, 0 -/* 800FB200 41 82 00 0C */ beq lbl_800FB20C -/* 800FB204 38 60 00 01 */ li r3, 1 -/* 800FB208 48 00 00 80 */ b lbl_800FB288 -lbl_800FB20C: -/* 800FB20C 7F E3 FB 78 */ mr r3, r31 -/* 800FB210 C0 22 93 3C */ lfs f1, lit_7808(r2) -/* 800FB214 48 22 D2 19 */ bl checkPass__12J3DFrameCtrlFf -/* 800FB218 2C 03 00 00 */ cmpwi r3, 0 -/* 800FB21C 41 82 00 34 */ beq lbl_800FB250 -/* 800FB220 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 800FB224 D0 21 00 08 */ stfs f1, 8(r1) -/* 800FB228 C0 02 92 B8 */ lfs f0, lit_6040(r2) -/* 800FB22C D0 01 00 0C */ stfs f0, 0xc(r1) -/* 800FB230 D0 21 00 10 */ stfs f1, 0x10(r1) -/* 800FB234 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800FB238 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800FB23C 38 63 5B D4 */ addi r3, r3, 0x5bd4 -/* 800FB240 38 80 00 01 */ li r4, 1 -/* 800FB244 38 A0 00 01 */ li r5, 1 -/* 800FB248 38 C1 00 08 */ addi r6, r1, 8 -/* 800FB24C 4B F7 47 D9 */ bl StartShock__12dVibration_cFii4cXyz -lbl_800FB250: -/* 800FB250 2C 1E 00 00 */ cmpwi r30, 0 -/* 800FB254 41 82 00 30 */ beq lbl_800FB284 -/* 800FB258 7F A3 EB 78 */ mr r3, r29 -/* 800FB25C 4B FF ED A1 */ bl getHangDirectionFromAngle__9daAlink_cFv -/* 800FB260 7C 64 1B 78 */ mr r4, r3 -/* 800FB264 C0 3D 33 AC */ lfs f1, 0x33ac(r29) -/* 800FB268 C0 02 92 A4 */ lfs f0, lit_6021(r2) -/* 800FB26C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FB270 40 81 00 14 */ ble lbl_800FB284 -/* 800FB274 2C 04 00 01 */ cmpwi r4, 1 -/* 800FB278 41 82 00 0C */ beq lbl_800FB284 -/* 800FB27C 7F A3 EB 78 */ mr r3, r29 -/* 800FB280 48 00 00 21 */ bl procHangUpInit__9daAlink_cFi -lbl_800FB284: -/* 800FB284 38 60 00 01 */ li r3, 1 -lbl_800FB288: -/* 800FB288 39 61 00 30 */ addi r11, r1, 0x30 -/* 800FB28C 48 26 6F 9D */ bl _restgpr_29 -/* 800FB290 80 01 00 34 */ lwz r0, 0x34(r1) -/* 800FB294 7C 08 03 A6 */ mtlr r0 -/* 800FB298 38 21 00 30 */ addi r1, r1, 0x30 -/* 800FB29C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHangLeverDownInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHangLeverDownInit__9daAlink_cFv.s deleted file mode 100644 index b17bda7a46..0000000000 --- a/asm/d/a/d_a_alink/procHangLeverDownInit__9daAlink_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_800FC2F4: -/* 800FC2F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FC2F8 7C 08 02 A6 */ mflr r0 -/* 800FC2FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FC300 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FC304 7C 7F 1B 78 */ mr r31, r3 -/* 800FC308 A0 03 2F DC */ lhz r0, 0x2fdc(r3) -/* 800FC30C 28 00 00 FF */ cmplwi r0, 0xff -/* 800FC310 41 82 00 14 */ beq lbl_800FC324 -/* 800FC314 38 80 00 5D */ li r4, 0x5d -/* 800FC318 80 BF 27 F4 */ lwz r5, 0x27f4(r31) -/* 800FC31C 4B FC 6A C1 */ bl procPreActionUnequipInit__9daAlink_cFiP10fopAc_ac_c -/* 800FC320 48 00 00 5C */ b lbl_800FC37C -lbl_800FC324: -/* 800FC324 38 80 00 5D */ li r4, 0x5d -/* 800FC328 4B FC 5C 45 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800FC32C 38 7F 28 0C */ addi r3, r31, 0x280c -/* 800FC330 80 9F 27 F4 */ lwz r4, 0x27f4(r31) -/* 800FC334 48 06 29 85 */ bl setData__16daPy_actorKeep_cFP10fopAc_ac_c -/* 800FC338 7F E3 FB 78 */ mr r3, r31 -/* 800FC33C 38 80 00 91 */ li r4, 0x91 -/* 800FC340 3C A0 80 39 */ lis r5, m__23daAlinkHIO_wallCatch_c0@ha /* 0x8038E164@ha */ -/* 800FC344 38 A5 E1 64 */ addi r5, r5, m__23daAlinkHIO_wallCatch_c0@l /* 0x8038E164@l */ -/* 800FC348 38 A5 00 3C */ addi r5, r5, 0x3c -/* 800FC34C 4B FB 0D A9 */ bl setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c -/* 800FC350 80 7F 27 F4 */ lwz r3, 0x27f4(r31) -/* 800FC354 A8 63 04 E6 */ lha r3, 0x4e6(r3) -/* 800FC358 3C 63 00 01 */ addis r3, r3, 1 -/* 800FC35C 38 03 80 00 */ addi r0, r3, -32768 -/* 800FC360 B0 1F 30 0C */ sth r0, 0x300c(r31) -/* 800FC364 38 00 00 91 */ li r0, 0x91 -/* 800FC368 90 1F 31 98 */ stw r0, 0x3198(r31) -/* 800FC36C C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800FC370 D0 1F 04 FC */ stfs f0, 0x4fc(r31) -/* 800FC374 D0 1F 33 98 */ stfs f0, 0x3398(r31) -/* 800FC378 38 60 00 01 */ li r3, 1 -lbl_800FC37C: -/* 800FC37C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FC380 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FC384 7C 08 03 A6 */ mtlr r0 -/* 800FC388 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FC38C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHangReadyInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHangReadyInit__9daAlink_cFv.s deleted file mode 100644 index 712343ac87..0000000000 --- a/asm/d/a/d_a_alink/procHangReadyInit__9daAlink_cFv.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_800FC178: -/* 800FC178 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FC17C 7C 08 02 A6 */ mflr r0 -/* 800FC180 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FC184 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FC188 7C 7F 1B 78 */ mr r31, r3 -/* 800FC18C 88 03 2F 91 */ lbz r0, 0x2f91(r3) -/* 800FC190 28 00 00 03 */ cmplwi r0, 3 -/* 800FC194 40 82 00 20 */ bne lbl_800FC1B4 -/* 800FC198 A0 1F 2F DC */ lhz r0, 0x2fdc(r31) -/* 800FC19C 28 00 00 FF */ cmplwi r0, 0xff -/* 800FC1A0 41 82 00 14 */ beq lbl_800FC1B4 -/* 800FC1A4 38 80 00 5C */ li r4, 0x5c -/* 800FC1A8 38 A0 00 00 */ li r5, 0 -/* 800FC1AC 4B FC 6C 31 */ bl procPreActionUnequipInit__9daAlink_cFiP10fopAc_ac_c -/* 800FC1B0 48 00 00 7C */ b lbl_800FC22C -lbl_800FC1B4: -/* 800FC1B4 A0 1F 2F E8 */ lhz r0, 0x2fe8(r31) -/* 800FC1B8 28 00 00 00 */ cmplwi r0, 0 -/* 800FC1BC 40 82 00 24 */ bne lbl_800FC1E0 -/* 800FC1C0 7F E3 FB 78 */ mr r3, r31 -/* 800FC1C4 4B FB 40 F9 */ bl setFrontWallType__9daAlink_cFv -/* 800FC1C8 88 1F 2F 91 */ lbz r0, 0x2f91(r31) -/* 800FC1CC 28 00 00 03 */ cmplwi r0, 3 -/* 800FC1D0 41 82 00 10 */ beq lbl_800FC1E0 -/* 800FC1D4 7F E3 FB 78 */ mr r3, r31 -/* 800FC1D8 4B FB 97 15 */ bl checkWaitAction__9daAlink_cFv -/* 800FC1DC 48 00 00 50 */ b lbl_800FC22C -lbl_800FC1E0: -/* 800FC1E0 7F E3 FB 78 */ mr r3, r31 -/* 800FC1E4 38 80 00 5C */ li r4, 0x5c -/* 800FC1E8 4B FC 5D 85 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800FC1EC 7F E3 FB 78 */ mr r3, r31 -/* 800FC1F0 38 80 00 91 */ li r4, 0x91 -/* 800FC1F4 3C A0 80 39 */ lis r5, m__23daAlinkHIO_wallCatch_c0@ha /* 0x8038E164@ha */ -/* 800FC1F8 38 A5 E1 64 */ addi r5, r5, m__23daAlinkHIO_wallCatch_c0@l /* 0x8038E164@l */ -/* 800FC1FC 38 A5 00 3C */ addi r5, r5, 0x3c -/* 800FC200 4B FB 0E F5 */ bl setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c -/* 800FC204 A8 7F 30 6E */ lha r3, 0x306e(r31) -/* 800FC208 3C 63 00 01 */ addis r3, r3, 1 -/* 800FC20C 38 03 80 00 */ addi r0, r3, -32768 -/* 800FC210 B0 1F 30 0C */ sth r0, 0x300c(r31) -/* 800FC214 88 1F 2F 91 */ lbz r0, 0x2f91(r31) -/* 800FC218 90 1F 31 98 */ stw r0, 0x3198(r31) -/* 800FC21C C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800FC220 D0 1F 33 98 */ stfs f0, 0x3398(r31) -/* 800FC224 D0 1F 04 FC */ stfs f0, 0x4fc(r31) -/* 800FC228 38 60 00 01 */ li r3, 1 -lbl_800FC22C: -/* 800FC22C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FC230 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FC234 7C 08 03 A6 */ mtlr r0 -/* 800FC238 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FC23C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHangReady__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHangReady__9daAlink_cFv.s deleted file mode 100644 index 24293e9519..0000000000 --- a/asm/d/a/d_a_alink/procHangReady__9daAlink_cFv.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_800FC240: -/* 800FC240 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FC244 7C 08 02 A6 */ mflr r0 -/* 800FC248 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FC24C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FC250 7C 7F 1B 78 */ mr r31, r3 -/* 800FC254 38 7F 04 E6 */ addi r3, r31, 0x4e6 -/* 800FC258 A8 9F 30 0C */ lha r4, 0x300c(r31) -/* 800FC25C 38 A0 00 02 */ li r5, 2 -/* 800FC260 38 C0 10 00 */ li r6, 0x1000 -/* 800FC264 38 E0 04 00 */ li r7, 0x400 -/* 800FC268 48 17 42 D9 */ bl cLib_addCalcAngleS__FPsssss -/* 800FC26C A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 800FC270 B0 1F 04 DE */ sth r0, 0x4de(r31) -/* 800FC274 38 7F 1F D0 */ addi r3, r31, 0x1fd0 -/* 800FC278 48 06 22 55 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800FC27C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800FC280 41 82 00 5C */ beq lbl_800FC2DC -/* 800FC284 A8 1F 30 0C */ lha r0, 0x300c(r31) -/* 800FC288 B0 1F 04 E6 */ sth r0, 0x4e6(r31) -/* 800FC28C A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 800FC290 B0 1F 04 DE */ sth r0, 0x4de(r31) -/* 800FC294 80 1F 31 98 */ lwz r0, 0x3198(r31) -/* 800FC298 2C 00 00 03 */ cmpwi r0, 3 -/* 800FC29C 40 82 00 14 */ bne lbl_800FC2B0 -/* 800FC2A0 7F E3 FB 78 */ mr r3, r31 -/* 800FC2A4 38 80 00 01 */ li r4, 1 -/* 800FC2A8 48 00 31 A9 */ bl procClimbUpStartInit__9daAlink_cFi -/* 800FC2AC 48 00 00 20 */ b lbl_800FC2CC -lbl_800FC2B0: -/* 800FC2B0 2C 00 00 09 */ cmpwi r0, 9 -/* 800FC2B4 40 82 00 10 */ bne lbl_800FC2C4 -/* 800FC2B8 7F E3 FB 78 */ mr r3, r31 -/* 800FC2BC 4B FF E7 C1 */ bl procHangStartInit__9daAlink_cFv -/* 800FC2C0 48 00 00 0C */ b lbl_800FC2CC -lbl_800FC2C4: -/* 800FC2C4 7F E3 FB 78 */ mr r3, r31 -/* 800FC2C8 4B FF FB 3D */ bl procHangWallCatchInit__9daAlink_cFv -lbl_800FC2CC: -/* 800FC2CC 2C 03 00 00 */ cmpwi r3, 0 -/* 800FC2D0 40 82 00 0C */ bne lbl_800FC2DC -/* 800FC2D4 7F E3 FB 78 */ mr r3, r31 -/* 800FC2D8 4B FC 70 E1 */ bl procWaitInit__9daAlink_cFv -lbl_800FC2DC: -/* 800FC2DC 38 60 00 01 */ li r3, 1 -/* 800FC2E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FC2E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FC2E8 7C 08 03 A6 */ mtlr r0 -/* 800FC2EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FC2F0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHangStart__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHangStart__9daAlink_cFv.s deleted file mode 100644 index 377b6bfeda..0000000000 --- a/asm/d/a/d_a_alink/procHangStart__9daAlink_cFv.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_800FAE14: -/* 800FAE14 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FAE18 7C 08 02 A6 */ mflr r0 -/* 800FAE1C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FAE20 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FAE24 93 C1 00 08 */ stw r30, 8(r1) -/* 800FAE28 7C 7E 1B 78 */ mr r30, r3 -/* 800FAE2C 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 800FAE30 4B FF F9 5D */ bl changeHangEndProc__9daAlink_cFv -/* 800FAE34 2C 03 00 00 */ cmpwi r3, 0 -/* 800FAE38 41 82 00 0C */ beq lbl_800FAE44 -/* 800FAE3C 38 60 00 01 */ li r3, 1 -/* 800FAE40 48 00 00 74 */ b lbl_800FAEB4 -lbl_800FAE44: -/* 800FAE44 7F E3 FB 78 */ mr r3, r31 -/* 800FAE48 48 06 36 85 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800FAE4C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800FAE50 41 82 00 10 */ beq lbl_800FAE60 -/* 800FAE54 7F C3 F3 78 */ mr r3, r30 -/* 800FAE58 48 00 05 E5 */ bl procHangWaitInit__9daAlink_cFv -/* 800FAE5C 48 00 00 54 */ b lbl_800FAEB0 -lbl_800FAE60: -/* 800FAE60 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 800FAE64 C0 1E 34 78 */ lfs f0, 0x3478(r30) -/* 800FAE68 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FAE6C 40 81 00 44 */ ble lbl_800FAEB0 -/* 800FAE70 C0 3E 33 AC */ lfs f1, 0x33ac(r30) -/* 800FAE74 C0 02 92 A4 */ lfs f0, lit_6021(r2) -/* 800FAE78 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FAE7C 40 81 00 34 */ ble lbl_800FAEB0 -/* 800FAE80 A8 7E 04 E6 */ lha r3, 0x4e6(r30) -/* 800FAE84 A8 1E 2F E2 */ lha r0, 0x2fe2(r30) -/* 800FAE88 7C 03 00 50 */ subf r0, r3, r0 -/* 800FAE8C 7C 03 07 34 */ extsh r3, r0 -/* 800FAE90 4B FB 86 05 */ bl getDirectionFromAngle__9daAlink_cFs -/* 800FAE94 2C 03 00 00 */ cmpwi r3, 0 -/* 800FAE98 40 82 00 18 */ bne lbl_800FAEB0 -/* 800FAE9C 7F C3 F3 78 */ mr r3, r30 -/* 800FAEA0 3C 80 80 39 */ lis r4, m__23daAlinkHIO_wallCatch_c0@ha /* 0x8038E164@ha */ -/* 800FAEA4 38 84 E1 64 */ addi r4, r4, m__23daAlinkHIO_wallCatch_c0@l /* 0x8038E164@l */ -/* 800FAEA8 C0 24 00 30 */ lfs f1, 0x30(r4) -/* 800FAEAC 48 00 0D 1D */ bl procHangClimbInit__9daAlink_cFf -lbl_800FAEB0: -/* 800FAEB0 38 60 00 01 */ li r3, 1 -lbl_800FAEB4: -/* 800FAEB4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FAEB8 83 C1 00 08 */ lwz r30, 8(r1) -/* 800FAEBC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FAEC0 7C 08 03 A6 */ mtlr r0 -/* 800FAEC4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FAEC8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHangUpInit__9daAlink_cFi.s b/asm/d/a/d_a_alink/procHangUpInit__9daAlink_cFi.s deleted file mode 100644 index dbe854939d..0000000000 --- a/asm/d/a/d_a_alink/procHangUpInit__9daAlink_cFi.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_800FB2A0: -/* 800FB2A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FB2A4 7C 08 02 A6 */ mflr r0 -/* 800FB2A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FB2AC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FB2B0 93 C1 00 08 */ stw r30, 8(r1) -/* 800FB2B4 7C 7E 1B 78 */ mr r30, r3 -/* 800FB2B8 7C 9F 23 78 */ mr r31, r4 -/* 800FB2BC 38 80 00 57 */ li r4, 0x57 -/* 800FB2C0 4B FC 6C AD */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800FB2C4 7F C3 F3 78 */ mr r3, r30 -/* 800FB2C8 38 80 00 96 */ li r4, 0x96 -/* 800FB2CC 3C A0 80 39 */ lis r5, m__22daAlinkHIO_wallFall_c0@ha /* 0x8038E1B8@ha */ -/* 800FB2D0 38 A5 E1 B8 */ addi r5, r5, m__22daAlinkHIO_wallFall_c0@l /* 0x8038E1B8@l */ -/* 800FB2D4 38 A5 00 14 */ addi r5, r5, 0x14 -/* 800FB2D8 4B FB 1E 1D */ bl setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c -/* 800FB2DC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800FB2E0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800FB2E4 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 800FB2E8 60 00 01 00 */ ori r0, r0, 0x100 -/* 800FB2EC 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 800FB2F0 7F C3 F3 78 */ mr r3, r30 -/* 800FB2F4 4B FE 49 35 */ bl setBowHangAnime__9daAlink_cFv -/* 800FB2F8 93 FE 31 98 */ stw r31, 0x3198(r30) -/* 800FB2FC C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800FB300 D0 1E 33 98 */ stfs f0, 0x3398(r30) -/* 800FB304 7F C3 F3 78 */ mr r3, r30 -/* 800FB308 4B FF F3 DD */ bl setHangGroundY__9daAlink_cFv -/* 800FB30C 38 60 00 01 */ li r3, 1 -/* 800FB310 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FB314 83 C1 00 08 */ lwz r30, 8(r1) -/* 800FB318 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FB31C 7C 08 03 A6 */ mtlr r0 -/* 800FB320 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FB324 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procHangWallCatch__9daAlink_cFv.s b/asm/d/a/d_a_alink/procHangWallCatch__9daAlink_cFv.s deleted file mode 100644 index 83dbd08c5c..0000000000 --- a/asm/d/a/d_a_alink/procHangWallCatch__9daAlink_cFv.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_800FC0D8: -/* 800FC0D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FC0DC 7C 08 02 A6 */ mflr r0 -/* 800FC0E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FC0E4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FC0E8 7C 7F 1B 78 */ mr r31, r3 -/* 800FC0EC 4B FF E5 F9 */ bl setHangGroundY__9daAlink_cFv -/* 800FC0F0 C0 5F 33 D8 */ lfs f2, 0x33d8(r31) -/* 800FC0F4 C0 3F 38 38 */ lfs f1, 0x3838(r31) -/* 800FC0F8 C0 02 93 00 */ lfs f0, lit_6895(r2) -/* 800FC0FC EC 01 00 28 */ fsubs f0, f1, f0 -/* 800FC100 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 800FC104 40 81 00 14 */ ble lbl_800FC118 -/* 800FC108 7F E3 FB 78 */ mr r3, r31 -/* 800FC10C C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 800FC110 4B FC AE 09 */ bl procLandInit__9daAlink_cFf -/* 800FC114 48 00 00 50 */ b lbl_800FC164 -lbl_800FC118: -/* 800FC118 38 7F 1F D0 */ addi r3, r31, 0x1fd0 -/* 800FC11C 48 06 23 B1 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800FC120 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800FC124 41 82 00 3C */ beq lbl_800FC160 -/* 800FC128 7F E3 FB 78 */ mr r3, r31 -/* 800FC12C 3C 80 80 39 */ lis r4, m__23daAlinkHIO_wallCatch_c0@ha /* 0x8038E164@ha */ -/* 800FC130 38 84 E1 64 */ addi r4, r4, m__23daAlinkHIO_wallCatch_c0@l /* 0x8038E164@l */ -/* 800FC134 C0 24 00 50 */ lfs f1, 0x50(r4) -/* 800FC138 4B FF FA 91 */ bl procHangClimbInit__9daAlink_cFf -/* 800FC13C 2C 03 00 00 */ cmpwi r3, 0 -/* 800FC140 40 82 00 20 */ bne lbl_800FC160 -/* 800FC144 7F E3 FB 78 */ mr r3, r31 -/* 800FC148 38 80 00 01 */ li r4, 1 -/* 800FC14C 3C A0 80 39 */ lis r5, m__22daAlinkHIO_autoJump_c0@ha /* 0x8038E068@ha */ -/* 800FC150 38 A5 E0 68 */ addi r5, r5, m__22daAlinkHIO_autoJump_c0@l /* 0x8038E068@l */ -/* 800FC154 C0 25 00 70 */ lfs f1, 0x70(r5) -/* 800FC158 4B FC A8 F1 */ bl procFallInit__9daAlink_cFif -/* 800FC15C 48 00 00 08 */ b lbl_800FC164 -lbl_800FC160: -/* 800FC160 38 60 00 01 */ li r3, 1 -lbl_800FC164: -/* 800FC164 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FC168 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FC16C 7C 08 03 A6 */ mtlr r0 -/* 800FC170 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FC174 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procLadderDownEndInit__9daAlink_cFi.s b/asm/d/a/d_a_alink/procLadderDownEndInit__9daAlink_cFi.s deleted file mode 100644 index 1a99c76d74..0000000000 --- a/asm/d/a/d_a_alink/procLadderDownEndInit__9daAlink_cFi.s +++ /dev/null @@ -1,47 +0,0 @@ -lbl_800FDC18: -/* 800FDC18 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FDC1C 7C 08 02 A6 */ mflr r0 -/* 800FDC20 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FDC24 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FDC28 93 C1 00 08 */ stw r30, 8(r1) -/* 800FDC2C 7C 7E 1B 78 */ mr r30, r3 -/* 800FDC30 7C 9F 23 78 */ mr r31, r4 -/* 800FDC34 38 80 00 6A */ li r4, 0x6a -/* 800FDC38 4B FC 43 35 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800FDC3C 7F C3 F3 78 */ mr r3, r30 -/* 800FDC40 2C 1F 00 00 */ cmpwi r31, 0 -/* 800FDC44 38 80 00 9E */ li r4, 0x9e -/* 800FDC48 41 82 00 08 */ beq lbl_800FDC50 -/* 800FDC4C 38 80 00 9D */ li r4, 0x9d -lbl_800FDC50: -/* 800FDC50 3C A0 80 39 */ lis r5, m__20daAlinkHIO_ladder_c0@ha /* 0x8038EB8C@ha */ -/* 800FDC54 38 A5 EB 8C */ addi r5, r5, m__20daAlinkHIO_ladder_c0@l /* 0x8038EB8C@l */ -/* 800FDC58 C0 25 00 40 */ lfs f1, 0x40(r5) -/* 800FDC5C C0 45 00 44 */ lfs f2, 0x44(r5) -/* 800FDC60 4B FA F3 81 */ bl setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff -/* 800FDC64 38 00 00 0E */ li r0, 0xe -/* 800FDC68 98 1E 2F 99 */ stb r0, 0x2f99(r30) -/* 800FDC6C 7F C3 F3 78 */ mr r3, r30 -/* 800FDC70 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 800FDC74 C0 5E 05 34 */ lfs f2, 0x534(r30) -/* 800FDC78 38 80 00 00 */ li r4, 0 -/* 800FDC7C 4B FB DA F5 */ bl setSpecialGravity__9daAlink_cFffi -/* 800FDC80 38 00 28 00 */ li r0, 0x2800 -/* 800FDC84 B0 1E 30 A0 */ sth r0, 0x30a0(r30) -/* 800FDC88 C0 02 92 B8 */ lfs f0, lit_6040(r2) -/* 800FDC8C D0 1E 33 F4 */ stfs f0, 0x33f4(r30) -/* 800FDC90 38 00 00 00 */ li r0, 0 -/* 800FDC94 B0 1E 30 0C */ sth r0, 0x300c(r30) -/* 800FDC98 B0 1E 30 10 */ sth r0, 0x3010(r30) -/* 800FDC9C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800FDCA0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800FDCA4 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 800FDCA8 64 00 02 00 */ oris r0, r0, 0x200 -/* 800FDCAC 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 800FDCB0 38 60 00 01 */ li r3, 1 -/* 800FDCB4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FDCB8 83 C1 00 08 */ lwz r30, 8(r1) -/* 800FDCBC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FDCC0 7C 08 03 A6 */ mtlr r0 -/* 800FDCC4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FDCC8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procLadderDownEnd__9daAlink_cFv.s b/asm/d/a/d_a_alink/procLadderDownEnd__9daAlink_cFv.s deleted file mode 100644 index 29b0b23bdb..0000000000 --- a/asm/d/a/d_a_alink/procLadderDownEnd__9daAlink_cFv.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_800FDCCC: -/* 800FDCCC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FDCD0 7C 08 02 A6 */ mflr r0 -/* 800FDCD4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FDCD8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FDCDC 93 C1 00 08 */ stw r30, 8(r1) -/* 800FDCE0 7C 7E 1B 78 */ mr r30, r3 -/* 800FDCE4 4B FF F7 C5 */ bl setMoveBGLadderCorrect__9daAlink_cFv -/* 800FDCE8 2C 03 00 00 */ cmpwi r3, 0 -/* 800FDCEC 41 82 00 0C */ beq lbl_800FDCF8 -/* 800FDCF0 38 60 00 01 */ li r3, 1 -/* 800FDCF4 48 00 00 84 */ b lbl_800FDD78 -lbl_800FDCF8: -/* 800FDCF8 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 800FDCFC 7F E3 FB 78 */ mr r3, r31 -/* 800FDD00 48 06 07 CD */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800FDD04 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800FDD08 41 82 00 14 */ beq lbl_800FDD1C -/* 800FDD0C 7F C3 F3 78 */ mr r3, r30 -/* 800FDD10 38 80 00 00 */ li r4, 0 -/* 800FDD14 4B FB C3 BD */ bl checkNextAction__9daAlink_cFi -/* 800FDD18 48 00 00 5C */ b lbl_800FDD74 -lbl_800FDD1C: -/* 800FDD1C C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 800FDD20 3C 60 80 39 */ lis r3, m__20daAlinkHIO_ladder_c0@ha /* 0x8038EB8C@ha */ -/* 800FDD24 38 63 EB 8C */ addi r3, r3, m__20daAlinkHIO_ladder_c0@l /* 0x8038EB8C@l */ -/* 800FDD28 C0 03 00 54 */ lfs f0, 0x54(r3) -/* 800FDD2C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FDD30 40 81 00 18 */ ble lbl_800FDD48 -/* 800FDD34 7F C3 F3 78 */ mr r3, r30 -/* 800FDD38 38 80 00 01 */ li r4, 1 -/* 800FDD3C 4B FB C3 95 */ bl checkNextAction__9daAlink_cFi -/* 800FDD40 2C 03 00 00 */ cmpwi r3, 0 -/* 800FDD44 40 82 00 30 */ bne lbl_800FDD74 -lbl_800FDD48: -/* 800FDD48 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 800FDD4C C0 02 94 B4 */ lfs f0, lit_17382(r2) -/* 800FDD50 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FDD54 4C 41 13 82 */ cror 2, 1, 2 -/* 800FDD58 40 82 00 14 */ bne lbl_800FDD6C -/* 800FDD5C 38 00 00 00 */ li r0, 0 -/* 800FDD60 B0 1E 30 A0 */ sth r0, 0x30a0(r30) -/* 800FDD64 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800FDD68 D0 1E 33 F4 */ stfs f0, 0x33f4(r30) -lbl_800FDD6C: -/* 800FDD6C 38 00 00 06 */ li r0, 6 -/* 800FDD70 98 1E 2F 99 */ stb r0, 0x2f99(r30) -lbl_800FDD74: -/* 800FDD74 38 60 00 01 */ li r3, 1 -lbl_800FDD78: -/* 800FDD78 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FDD7C 83 C1 00 08 */ lwz r30, 8(r1) -/* 800FDD80 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FDD84 7C 08 03 A6 */ mtlr r0 -/* 800FDD88 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FDD8C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procLadderDownStart__9daAlink_cFv.s b/asm/d/a/d_a_alink/procLadderDownStart__9daAlink_cFv.s deleted file mode 100644 index cd437de208..0000000000 --- a/asm/d/a/d_a_alink/procLadderDownStart__9daAlink_cFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_800FDB74: -/* 800FDB74 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FDB78 7C 08 02 A6 */ mflr r0 -/* 800FDB7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FDB80 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FDB84 93 C1 00 08 */ stw r30, 8(r1) -/* 800FDB88 7C 7E 1B 78 */ mr r30, r3 -/* 800FDB8C 4B FF F9 1D */ bl setMoveBGLadderCorrect__9daAlink_cFv -/* 800FDB90 2C 03 00 00 */ cmpwi r3, 0 -/* 800FDB94 41 82 00 0C */ beq lbl_800FDBA0 -/* 800FDB98 38 60 00 01 */ li r3, 1 -/* 800FDB9C 48 00 00 64 */ b lbl_800FDC00 -lbl_800FDBA0: -/* 800FDBA0 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 800FDBA4 38 00 00 06 */ li r0, 6 -/* 800FDBA8 98 1E 2F 99 */ stb r0, 0x2f99(r30) -/* 800FDBAC 7F E3 FB 78 */ mr r3, r31 -/* 800FDBB0 48 06 09 1D */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800FDBB4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800FDBB8 41 82 00 24 */ beq lbl_800FDBDC -/* 800FDBBC 7F C3 F3 78 */ mr r3, r30 -/* 800FDBC0 4B FF FA 25 */ bl checkLadderFall__9daAlink_cFv -/* 800FDBC4 2C 03 00 00 */ cmpwi r3, 0 -/* 800FDBC8 40 82 00 34 */ bne lbl_800FDBFC -/* 800FDBCC 7F C3 F3 78 */ mr r3, r30 -/* 800FDBD0 38 80 00 00 */ li r4, 0 -/* 800FDBD4 4B FF F6 D9 */ bl changeLadderMoveProc__9daAlink_cFi -/* 800FDBD8 48 00 00 24 */ b lbl_800FDBFC -lbl_800FDBDC: -/* 800FDBDC C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 800FDBE0 C0 02 93 C8 */ lfs f0, lit_10286(r2) -/* 800FDBE4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FDBE8 4C 41 13 82 */ cror 2, 1, 2 -/* 800FDBEC 40 82 00 10 */ bne lbl_800FDBFC -/* 800FDBF0 38 00 00 01 */ li r0, 1 -/* 800FDBF4 B0 1E 30 0C */ sth r0, 0x300c(r30) -/* 800FDBF8 B0 1E 30 10 */ sth r0, 0x3010(r30) -lbl_800FDBFC: -/* 800FDBFC 38 60 00 01 */ li r3, 1 -lbl_800FDC00: -/* 800FDC00 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FDC04 83 C1 00 08 */ lwz r30, 8(r1) -/* 800FDC08 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FDC0C 7C 08 03 A6 */ mtlr r0 -/* 800FDC10 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FDC14 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procLadderMove__9daAlink_cFv.s b/asm/d/a/d_a_alink/procLadderMove__9daAlink_cFv.s deleted file mode 100644 index 7064dd9baa..0000000000 --- a/asm/d/a/d_a_alink/procLadderMove__9daAlink_cFv.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_800FDF50: -/* 800FDF50 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FDF54 7C 08 02 A6 */ mflr r0 -/* 800FDF58 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FDF5C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FDF60 93 C1 00 08 */ stw r30, 8(r1) -/* 800FDF64 7C 7E 1B 78 */ mr r30, r3 -/* 800FDF68 4B FF F5 41 */ bl setMoveBGLadderCorrect__9daAlink_cFv -/* 800FDF6C 2C 03 00 00 */ cmpwi r3, 0 -/* 800FDF70 41 82 00 0C */ beq lbl_800FDF7C -/* 800FDF74 38 60 00 01 */ li r3, 1 -/* 800FDF78 48 00 00 80 */ b lbl_800FDFF8 -lbl_800FDF7C: -/* 800FDF7C 38 00 00 06 */ li r0, 6 -/* 800FDF80 98 1E 2F 99 */ stb r0, 0x2f99(r30) -/* 800FDF84 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 800FDF88 7F C3 F3 78 */ mr r3, r30 -/* 800FDF8C 4B FF F6 59 */ bl checkLadderFall__9daAlink_cFv -/* 800FDF90 2C 03 00 00 */ cmpwi r3, 0 -/* 800FDF94 40 82 00 60 */ bne lbl_800FDFF4 -/* 800FDF98 7F E3 FB 78 */ mr r3, r31 -/* 800FDF9C 48 06 05 31 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800FDFA0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800FDFA4 41 82 00 14 */ beq lbl_800FDFB8 -/* 800FDFA8 7F C3 F3 78 */ mr r3, r30 -/* 800FDFAC 80 9E 31 98 */ lwz r4, 0x3198(r30) -/* 800FDFB0 4B FF F2 FD */ bl changeLadderMoveProc__9daAlink_cFi -/* 800FDFB4 48 00 00 40 */ b lbl_800FDFF4 -lbl_800FDFB8: -/* 800FDFB8 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 800FDFBC C0 1F 00 0C */ lfs f0, 0xc(r31) -/* 800FDFC0 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 800FDFC4 41 82 00 30 */ beq lbl_800FDFF4 -/* 800FDFC8 7F C3 F3 78 */ mr r3, r30 -/* 800FDFCC 4B FF F2 BD */ bl getLadderMoveAnmSpeed__9daAlink_cFv -/* 800FDFD0 C0 5F 00 0C */ lfs f2, 0xc(r31) -/* 800FDFD4 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800FDFD8 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 800FDFDC 40 80 00 0C */ bge lbl_800FDFE8 -/* 800FDFE0 C0 02 92 BC */ lfs f0, lit_6041(r2) -/* 800FDFE4 EC 21 00 32 */ fmuls f1, f1, f0 -lbl_800FDFE8: -/* 800FDFE8 7F C3 F3 78 */ mr r3, r30 -/* 800FDFEC 7F E4 FB 78 */ mr r4, r31 -/* 800FDFF0 48 00 3D 05 */ bl setWaterInAnmRate__9daAlink_cFP16daPy_frameCtrl_cf -lbl_800FDFF4: -/* 800FDFF4 38 60 00 01 */ li r3, 1 -lbl_800FDFF8: -/* 800FDFF8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FDFFC 83 C1 00 08 */ lwz r30, 8(r1) -/* 800FE000 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FE004 7C 08 03 A6 */ mtlr r0 -/* 800FE008 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FE00C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procLadderUpEndInit__9daAlink_cFi.s b/asm/d/a/d_a_alink/procLadderUpEndInit__9daAlink_cFi.s deleted file mode 100644 index d86f6b5c35..0000000000 --- a/asm/d/a/d_a_alink/procLadderUpEndInit__9daAlink_cFi.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_800FD824: -/* 800FD824 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FD828 7C 08 02 A6 */ mflr r0 -/* 800FD82C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FD830 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FD834 93 C1 00 08 */ stw r30, 8(r1) -/* 800FD838 7C 7E 1B 78 */ mr r30, r3 -/* 800FD83C 7C 9F 23 78 */ mr r31, r4 -/* 800FD840 38 80 00 68 */ li r4, 0x68 -/* 800FD844 4B FC 47 29 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 800FD848 7F C3 F3 78 */ mr r3, r30 -/* 800FD84C 2C 1F 00 00 */ cmpwi r31, 0 -/* 800FD850 38 80 00 9B */ li r4, 0x9b -/* 800FD854 41 82 00 08 */ beq lbl_800FD85C -/* 800FD858 38 80 00 9A */ li r4, 0x9a -lbl_800FD85C: -/* 800FD85C 3C A0 80 39 */ lis r5, m__20daAlinkHIO_ladder_c0@ha /* 0x8038EB8C@ha */ -/* 800FD860 38 A5 EB 8C */ addi r5, r5, m__20daAlinkHIO_ladder_c0@l /* 0x8038EB8C@l */ -/* 800FD864 C0 25 00 30 */ lfs f1, 0x30(r5) -/* 800FD868 C0 45 00 34 */ lfs f2, 0x34(r5) -/* 800FD86C 4B FA F7 75 */ bl setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff -/* 800FD870 38 00 00 0E */ li r0, 0xe -/* 800FD874 98 1E 2F 99 */ stb r0, 0x2f99(r30) -/* 800FD878 7F C3 F3 78 */ mr r3, r30 -/* 800FD87C C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 800FD880 C0 5E 05 34 */ lfs f2, 0x534(r30) -/* 800FD884 38 80 00 00 */ li r4, 0 -/* 800FD888 4B FB DE E9 */ bl setSpecialGravity__9daAlink_cFffi -/* 800FD88C C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800FD890 D0 1E 04 FC */ stfs f0, 0x4fc(r30) -/* 800FD894 D0 1E 33 98 */ stfs f0, 0x3398(r30) -/* 800FD898 D0 1E 05 2C */ stfs f0, 0x52c(r30) -/* 800FD89C 38 00 F8 00 */ li r0, -2048 -/* 800FD8A0 B0 1E 30 A0 */ sth r0, 0x30a0(r30) -/* 800FD8A4 C0 02 92 BC */ lfs f0, lit_6041(r2) -/* 800FD8A8 D0 1E 33 F4 */ stfs f0, 0x33f4(r30) -/* 800FD8AC 38 00 00 01 */ li r0, 1 -/* 800FD8B0 B0 1E 30 0C */ sth r0, 0x300c(r30) -/* 800FD8B4 B0 1E 30 10 */ sth r0, 0x3010(r30) -/* 800FD8B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800FD8BC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800FD8C0 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 800FD8C4 64 00 02 00 */ oris r0, r0, 0x200 -/* 800FD8C8 90 03 5F 18 */ stw r0, 0x5f18(r3) -/* 800FD8CC 38 60 00 01 */ li r3, 1 -/* 800FD8D0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FD8D4 83 C1 00 08 */ lwz r30, 8(r1) -/* 800FD8D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FD8DC 7C 08 03 A6 */ mtlr r0 -/* 800FD8E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FD8E4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procLadderUpEnd__9daAlink_cFv.s b/asm/d/a/d_a_alink/procLadderUpEnd__9daAlink_cFv.s deleted file mode 100644 index da2b3f8ee5..0000000000 --- a/asm/d/a/d_a_alink/procLadderUpEnd__9daAlink_cFv.s +++ /dev/null @@ -1,65 +0,0 @@ -lbl_800FD8E8: -/* 800FD8E8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FD8EC 7C 08 02 A6 */ mflr r0 -/* 800FD8F0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FD8F4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FD8F8 93 C1 00 08 */ stw r30, 8(r1) -/* 800FD8FC 7C 7E 1B 78 */ mr r30, r3 -/* 800FD900 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 800FD904 4B FF FB A5 */ bl setMoveBGLadderCorrect__9daAlink_cFv -/* 800FD908 2C 03 00 00 */ cmpwi r3, 0 -/* 800FD90C 41 82 00 0C */ beq lbl_800FD918 -/* 800FD910 38 60 00 01 */ li r3, 1 -/* 800FD914 48 00 00 A0 */ b lbl_800FD9B4 -lbl_800FD918: -/* 800FD918 7F E3 FB 78 */ mr r3, r31 -/* 800FD91C 48 06 0B B1 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800FD920 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800FD924 41 82 00 14 */ beq lbl_800FD938 -/* 800FD928 7F C3 F3 78 */ mr r3, r30 -/* 800FD92C 38 80 00 00 */ li r4, 0 -/* 800FD930 4B FB C7 A1 */ bl checkNextAction__9daAlink_cFi -/* 800FD934 48 00 00 7C */ b lbl_800FD9B0 -lbl_800FD938: -/* 800FD938 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 800FD93C 3C 60 80 39 */ lis r3, m__20daAlinkHIO_ladder_c0@ha /* 0x8038EB8C@ha */ -/* 800FD940 38 63 EB 8C */ addi r3, r3, m__20daAlinkHIO_ladder_c0@l /* 0x8038EB8C@l */ -/* 800FD944 C0 03 00 58 */ lfs f0, 0x58(r3) -/* 800FD948 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FD94C 40 81 00 18 */ ble lbl_800FD964 -/* 800FD950 7F C3 F3 78 */ mr r3, r30 -/* 800FD954 38 80 00 01 */ li r4, 1 -/* 800FD958 4B FB C7 79 */ bl checkNextAction__9daAlink_cFi -/* 800FD95C 2C 03 00 00 */ cmpwi r3, 0 -/* 800FD960 40 82 00 50 */ bne lbl_800FD9B0 -lbl_800FD964: -/* 800FD964 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 800FD968 C0 02 94 74 */ lfs f0, lit_15341(r2) -/* 800FD96C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FD970 4C 41 13 82 */ cror 2, 1, 2 -/* 800FD974 40 82 00 14 */ bne lbl_800FD988 -/* 800FD978 38 00 00 00 */ li r0, 0 -/* 800FD97C B0 1E 30 0C */ sth r0, 0x300c(r30) -/* 800FD980 B0 1E 30 10 */ sth r0, 0x3010(r30) -/* 800FD984 48 00 00 24 */ b lbl_800FD9A8 -lbl_800FD988: -/* 800FD988 C0 02 94 B4 */ lfs f0, lit_17382(r2) -/* 800FD98C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800FD990 4C 41 13 82 */ cror 2, 1, 2 -/* 800FD994 40 82 00 14 */ bne lbl_800FD9A8 -/* 800FD998 38 00 00 00 */ li r0, 0 -/* 800FD99C B0 1E 30 A0 */ sth r0, 0x30a0(r30) -/* 800FD9A0 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 800FD9A4 D0 1E 33 F4 */ stfs f0, 0x33f4(r30) -lbl_800FD9A8: -/* 800FD9A8 38 00 00 06 */ li r0, 6 -/* 800FD9AC 98 1E 2F 99 */ stb r0, 0x2f99(r30) -lbl_800FD9B0: -/* 800FD9B0 38 60 00 01 */ li r3, 1 -lbl_800FD9B4: -/* 800FD9B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FD9B8 83 C1 00 08 */ lwz r30, 8(r1) -/* 800FD9BC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FD9C0 7C 08 03 A6 */ mtlr r0 -/* 800FD9C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FD9C8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procLadderUpStart__9daAlink_cFv.s b/asm/d/a/d_a_alink/procLadderUpStart__9daAlink_cFv.s deleted file mode 100644 index 55cbea6aa7..0000000000 --- a/asm/d/a/d_a_alink/procLadderUpStart__9daAlink_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_800FD7B0: -/* 800FD7B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FD7B4 7C 08 02 A6 */ mflr r0 -/* 800FD7B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FD7BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FD7C0 7C 7F 1B 78 */ mr r31, r3 -/* 800FD7C4 4B FF FC E5 */ bl setMoveBGLadderCorrect__9daAlink_cFv -/* 800FD7C8 2C 03 00 00 */ cmpwi r3, 0 -/* 800FD7CC 41 82 00 0C */ beq lbl_800FD7D8 -/* 800FD7D0 38 60 00 01 */ li r3, 1 -/* 800FD7D4 48 00 00 3C */ b lbl_800FD810 -lbl_800FD7D8: -/* 800FD7D8 38 00 00 06 */ li r0, 6 -/* 800FD7DC 98 1F 2F 99 */ stb r0, 0x2f99(r31) -/* 800FD7E0 38 7F 1F D0 */ addi r3, r31, 0x1fd0 -/* 800FD7E4 48 06 0C E9 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 800FD7E8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800FD7EC 41 82 00 20 */ beq lbl_800FD80C -/* 800FD7F0 7F E3 FB 78 */ mr r3, r31 -/* 800FD7F4 4B FF FD F1 */ bl checkLadderFall__9daAlink_cFv -/* 800FD7F8 2C 03 00 00 */ cmpwi r3, 0 -/* 800FD7FC 40 82 00 10 */ bne lbl_800FD80C -/* 800FD800 7F E3 FB 78 */ mr r3, r31 -/* 800FD804 38 80 00 01 */ li r4, 1 -/* 800FD808 4B FF FA A5 */ bl changeLadderMoveProc__9daAlink_cFi -lbl_800FD80C: -/* 800FD80C 38 60 00 01 */ li r3, 1 -lbl_800FD810: -/* 800FD810 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FD814 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FD818 7C 08 03 A6 */ mtlr r0 -/* 800FD81C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FD820 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procRoofHangSideMoveInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procRoofHangSideMoveInit__9daAlink_cFv.s deleted file mode 100644 index c6c4c5caec..0000000000 --- a/asm/d/a/d_a_alink/procRoofHangSideMoveInit__9daAlink_cFv.s +++ /dev/null @@ -1,62 +0,0 @@ -lbl_8010121C: -/* 8010121C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80101220 7C 08 02 A6 */ mflr r0 -/* 80101224 90 01 00 14 */ stw r0, 0x14(r1) -/* 80101228 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8010122C 93 C1 00 08 */ stw r30, 8(r1) -/* 80101230 7C 7E 1B 78 */ mr r30, r3 -/* 80101234 38 80 00 89 */ li r4, 0x89 -/* 80101238 4B FC 0D 35 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 8010123C 88 1E 2F 98 */ lbz r0, 0x2f98(r30) -/* 80101240 28 00 00 02 */ cmplwi r0, 2 -/* 80101244 40 82 00 18 */ bne lbl_8010125C -/* 80101248 3B E0 00 AB */ li r31, 0xab -/* 8010124C A8 7E 04 E6 */ lha r3, 0x4e6(r30) -/* 80101250 38 03 40 00 */ addi r0, r3, 0x4000 -/* 80101254 B0 1E 04 DE */ sth r0, 0x4de(r30) -/* 80101258 48 00 00 14 */ b lbl_8010126C -lbl_8010125C: -/* 8010125C 3B E0 00 AC */ li r31, 0xac -/* 80101260 A8 7E 04 E6 */ lha r3, 0x4e6(r30) -/* 80101264 38 03 C0 00 */ addi r0, r3, -16384 -/* 80101268 B0 1E 04 DE */ sth r0, 0x4de(r30) -lbl_8010126C: -/* 8010126C 7F C3 F3 78 */ mr r3, r30 -/* 80101270 4B FF F3 81 */ bl getRoofHangSMoveAnmSpeed__9daAlink_cCFv -/* 80101274 7F C3 F3 78 */ mr r3, r30 -/* 80101278 7F E4 FB 78 */ mr r4, r31 -/* 8010127C 3C A0 80 39 */ lis r5, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 80101280 38 A5 EB FC */ addi r5, r5, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 80101284 C0 45 00 40 */ lfs f2, 0x40(r5) -/* 80101288 4B FA BD 59 */ bl setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff -/* 8010128C 7F C3 F3 78 */ mr r3, r30 -/* 80101290 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 80101294 C0 5E 05 34 */ lfs f2, 0x534(r30) -/* 80101298 38 80 00 00 */ li r4, 0 -/* 8010129C 4B FB A4 D5 */ bl setSpecialGravity__9daAlink_cFffi -/* 801012A0 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 801012A4 D0 1E 33 98 */ stfs f0, 0x3398(r30) -/* 801012A8 D0 1E 04 FC */ stfs f0, 0x4fc(r30) -/* 801012AC C0 02 94 64 */ lfs f0, lit_14954(r2) -/* 801012B0 D0 1E 34 78 */ stfs f0, 0x3478(r30) -/* 801012B4 C0 02 93 90 */ lfs f0, lit_8784(r2) -/* 801012B8 D0 1E 34 7C */ stfs f0, 0x347c(r30) -/* 801012BC 3C 60 80 42 */ lis r3, l_waitBaseAnime@ha /* 0x80425514@ha */ -/* 801012C0 C4 03 55 14 */ lfsu f0, l_waitBaseAnime@l(r3) /* 0x80425514@l */ -/* 801012C4 D0 1E 35 88 */ stfs f0, 0x3588(r30) -/* 801012C8 C0 03 00 04 */ lfs f0, 4(r3) -/* 801012CC D0 1E 35 8C */ stfs f0, 0x358c(r30) -/* 801012D0 C0 03 00 08 */ lfs f0, 8(r3) -/* 801012D4 D0 1E 35 90 */ stfs f0, 0x3590(r30) -/* 801012D8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801012DC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801012E0 80 03 5F 1C */ lwz r0, 0x5f1c(r3) -/* 801012E4 64 00 00 10 */ oris r0, r0, 0x10 -/* 801012E8 90 03 5F 1C */ stw r0, 0x5f1c(r3) -/* 801012EC 38 60 00 01 */ li r3, 1 -/* 801012F0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801012F4 83 C1 00 08 */ lwz r30, 8(r1) -/* 801012F8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801012FC 7C 08 03 A6 */ mtlr r0 -/* 80101300 38 21 00 10 */ addi r1, r1, 0x10 -/* 80101304 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procRoofHangSideMove__9daAlink_cFv.s b/asm/d/a/d_a_alink/procRoofHangSideMove__9daAlink_cFv.s deleted file mode 100644 index e355785093..0000000000 --- a/asm/d/a/d_a_alink/procRoofHangSideMove__9daAlink_cFv.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_80101308: -/* 80101308 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8010130C 7C 08 02 A6 */ mflr r0 -/* 80101310 90 01 00 14 */ stw r0, 0x14(r1) -/* 80101314 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80101318 93 C1 00 08 */ stw r30, 8(r1) -/* 8010131C 7C 7E 1B 78 */ mr r30, r3 -/* 80101320 4B FF F4 51 */ bl commonRoofHangProc__9daAlink_cFv -/* 80101324 2C 03 00 00 */ cmpwi r3, 0 -/* 80101328 41 82 00 0C */ beq lbl_80101334 -/* 8010132C 38 60 00 01 */ li r3, 1 -/* 80101330 48 00 00 70 */ b lbl_801013A0 -lbl_80101334: -/* 80101334 38 00 00 05 */ li r0, 5 -/* 80101338 98 1E 2F 99 */ stb r0, 0x2f99(r30) -/* 8010133C 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 80101340 7F E3 FB 78 */ mr r3, r31 -/* 80101344 48 05 D1 89 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 80101348 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8010134C 41 82 00 10 */ beq lbl_8010135C -/* 80101350 7F C3 F3 78 */ mr r3, r30 -/* 80101354 4B FF F5 99 */ bl checkNextActionRoofHang__9daAlink_cFv -/* 80101358 48 00 00 44 */ b lbl_8010139C -lbl_8010135C: -/* 8010135C 7F C3 F3 78 */ mr r3, r30 -/* 80101360 4B FF F2 91 */ bl getRoofHangSMoveAnmSpeed__9daAlink_cCFv -/* 80101364 7F C3 F3 78 */ mr r3, r30 -/* 80101368 7F E4 FB 78 */ mr r4, r31 -/* 8010136C 48 00 09 89 */ bl setWaterInAnmRate__9daAlink_cFP16daPy_frameCtrl_cf -/* 80101370 7F C3 F3 78 */ mr r3, r30 -/* 80101374 38 9E 1E 2C */ addi r4, r30, 0x1e2c -/* 80101378 4B FF F2 9D */ bl setRoofHangHandOnSE__9daAlink_cFP13cBgS_PolyInfo -/* 8010137C 7F C3 F3 78 */ mr r3, r30 -/* 80101380 4B FF F2 E9 */ bl checkRoofHangMovePos__9daAlink_cFv -/* 80101384 2C 03 00 00 */ cmpwi r3, 0 -/* 80101388 40 82 00 14 */ bne lbl_8010139C -/* 8010138C 7F C3 F3 78 */ mr r3, r30 -/* 80101390 38 80 00 00 */ li r4, 0 -/* 80101394 4B FF F8 21 */ bl procRoofHangWaitInit__9daAlink_cFi -/* 80101398 48 00 00 08 */ b lbl_801013A0 -lbl_8010139C: -/* 8010139C 38 60 00 01 */ li r3, 1 -lbl_801013A0: -/* 801013A0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801013A4 83 C1 00 08 */ lwz r30, 8(r1) -/* 801013A8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801013AC 7C 08 03 A6 */ mtlr r0 -/* 801013B0 38 21 00 10 */ addi r1, r1, 0x10 -/* 801013B4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procRoofHangStartInit__9daAlink_cFRC13cBgS_PolyInfoRC4cXyzi.s b/asm/d/a/d_a_alink/procRoofHangStartInit__9daAlink_cFRC13cBgS_PolyInfoRC4cXyzi.s deleted file mode 100644 index 2267d9e6b2..0000000000 --- a/asm/d/a/d_a_alink/procRoofHangStartInit__9daAlink_cFRC13cBgS_PolyInfoRC4cXyzi.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_80100A10: -/* 80100A10 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80100A14 7C 08 02 A6 */ mflr r0 -/* 80100A18 90 01 00 24 */ stw r0, 0x24(r1) -/* 80100A1C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80100A20 48 26 17 B9 */ bl _savegpr_28 -/* 80100A24 7C 7C 1B 78 */ mr r28, r3 -/* 80100A28 7C 9D 23 78 */ mr r29, r4 -/* 80100A2C 7C BE 2B 78 */ mr r30, r5 -/* 80100A30 7C DF 33 78 */ mr r31, r6 -/* 80100A34 38 80 00 86 */ li r4, 0x86 -/* 80100A38 4B FC 15 35 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 80100A3C 7F 83 E3 78 */ mr r3, r28 -/* 80100A40 38 80 00 AE */ li r4, 0xae -/* 80100A44 3C A0 80 39 */ lis r5, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 80100A48 38 A5 EB FC */ addi r5, r5, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 80100A4C 4B FA C6 A9 */ bl setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c -/* 80100A50 38 7C 1E 2C */ addi r3, r28, 0x1e2c -/* 80100A54 7F A4 EB 78 */ mr r4, r29 -/* 80100A58 48 16 76 F1 */ bl SetPolyInfo__13cBgS_PolyInfoFRC13cBgS_PolyInfo -/* 80100A5C C0 1E 00 00 */ lfs f0, 0(r30) -/* 80100A60 D0 1C 04 D0 */ stfs f0, 0x4d0(r28) -/* 80100A64 C0 1E 00 04 */ lfs f0, 4(r30) -/* 80100A68 D0 1C 04 D4 */ stfs f0, 0x4d4(r28) -/* 80100A6C C0 1E 00 08 */ lfs f0, 8(r30) -/* 80100A70 D0 1C 04 D8 */ stfs f0, 0x4d8(r28) -/* 80100A74 C0 3C 04 D4 */ lfs f1, 0x4d4(r28) -/* 80100A78 C0 02 95 A4 */ lfs f0, lit_25916(r2) -/* 80100A7C EC 01 00 28 */ fsubs f0, f1, f0 -/* 80100A80 D0 1C 04 D4 */ stfs f0, 0x4d4(r28) -/* 80100A84 38 00 00 04 */ li r0, 4 -/* 80100A88 98 1C 2F 98 */ stb r0, 0x2f98(r28) -/* 80100A8C 7F 83 E3 78 */ mr r3, r28 -/* 80100A90 38 80 00 01 */ li r4, 1 -/* 80100A94 38 A0 00 00 */ li r5, 0 -/* 80100A98 4B FC 08 45 */ bl deleteEquipItem__9daAlink_cFii -/* 80100A9C 7F 83 E3 78 */ mr r3, r28 -/* 80100AA0 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 80100AA4 C0 5C 05 34 */ lfs f2, 0x534(r28) -/* 80100AA8 38 80 00 00 */ li r4, 0 -/* 80100AAC 4B FB AC C5 */ bl setSpecialGravity__9daAlink_cFffi -/* 80100AB0 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 80100AB4 D0 1C 33 98 */ stfs f0, 0x3398(r28) -/* 80100AB8 D0 1C 04 FC */ stfs f0, 0x4fc(r28) -/* 80100ABC 38 00 00 50 */ li r0, 0x50 -/* 80100AC0 98 1C 2F 99 */ stb r0, 0x2f99(r28) -/* 80100AC4 B3 FC 30 08 */ sth r31, 0x3008(r28) -/* 80100AC8 38 60 00 01 */ li r3, 1 -/* 80100ACC 39 61 00 20 */ addi r11, r1, 0x20 -/* 80100AD0 48 26 17 55 */ bl _restgpr_28 -/* 80100AD4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80100AD8 7C 08 03 A6 */ mtlr r0 -/* 80100ADC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80100AE0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procRoofHangStart__9daAlink_cFv.s b/asm/d/a/d_a_alink/procRoofHangStart__9daAlink_cFv.s deleted file mode 100644 index 19fbf5afe5..0000000000 --- a/asm/d/a/d_a_alink/procRoofHangStart__9daAlink_cFv.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_80100AE4: -/* 80100AE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80100AE8 7C 08 02 A6 */ mflr r0 -/* 80100AEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80100AF0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80100AF4 93 C1 00 08 */ stw r30, 8(r1) -/* 80100AF8 7C 7E 1B 78 */ mr r30, r3 -/* 80100AFC 4B FF FC 75 */ bl commonRoofHangProc__9daAlink_cFv -/* 80100B00 2C 03 00 00 */ cmpwi r3, 0 -/* 80100B04 41 82 00 0C */ beq lbl_80100B10 -/* 80100B08 38 60 00 01 */ li r3, 1 -/* 80100B0C 48 00 00 90 */ b lbl_80100B9C -lbl_80100B10: -/* 80100B10 C0 3E 33 A8 */ lfs f1, 0x33a8(r30) -/* 80100B14 C0 02 93 F8 */ lfs f0, lit_13700(r2) -/* 80100B18 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80100B1C 40 80 00 0C */ bge lbl_80100B28 -/* 80100B20 38 00 00 00 */ li r0, 0 -/* 80100B24 B0 1E 30 08 */ sth r0, 0x3008(r30) -lbl_80100B28: -/* 80100B28 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 80100B2C A8 1E 30 08 */ lha r0, 0x3008(r30) -/* 80100B30 2C 00 00 00 */ cmpwi r0, 0 -/* 80100B34 40 82 00 48 */ bne lbl_80100B7C -/* 80100B38 7F E3 FB 78 */ mr r3, r31 -/* 80100B3C 48 05 D9 91 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 80100B40 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80100B44 40 82 00 2C */ bne lbl_80100B70 -/* 80100B48 C0 3E 33 AC */ lfs f1, 0x33ac(r30) -/* 80100B4C C0 02 92 A4 */ lfs f0, lit_6021(r2) -/* 80100B50 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80100B54 40 81 00 28 */ ble lbl_80100B7C -/* 80100B58 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 80100B5C 3C 60 80 39 */ lis r3, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 80100B60 38 63 EB FC */ addi r3, r3, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 80100B64 C0 03 00 10 */ lfs f0, 0x10(r3) -/* 80100B68 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80100B6C 40 81 00 10 */ ble lbl_80100B7C -lbl_80100B70: -/* 80100B70 7F C3 F3 78 */ mr r3, r30 -/* 80100B74 4B FF FD 79 */ bl checkNextActionRoofHang__9daAlink_cFv -/* 80100B78 48 00 00 20 */ b lbl_80100B98 -lbl_80100B7C: -/* 80100B7C 7F E3 FB 78 */ mr r3, r31 -/* 80100B80 48 05 D9 4D */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 80100B84 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80100B88 41 82 00 10 */ beq lbl_80100B98 -/* 80100B8C 7F C3 F3 78 */ mr r3, r30 -/* 80100B90 38 80 00 01 */ li r4, 1 -/* 80100B94 48 00 00 21 */ bl procRoofHangWaitInit__9daAlink_cFi -lbl_80100B98: -/* 80100B98 38 60 00 01 */ li r3, 1 -lbl_80100B9C: -/* 80100B9C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80100BA0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80100BA4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80100BA8 7C 08 03 A6 */ mtlr r0 -/* 80100BAC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80100BB0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procRoofHangTurnInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/procRoofHangTurnInit__9daAlink_cFv.s deleted file mode 100644 index dd5af7d6b9..0000000000 --- a/asm/d/a/d_a_alink/procRoofHangTurnInit__9daAlink_cFv.s +++ /dev/null @@ -1,100 +0,0 @@ -lbl_801013B8: -/* 801013B8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801013BC 7C 08 02 A6 */ mflr r0 -/* 801013C0 90 01 00 24 */ stw r0, 0x24(r1) -/* 801013C4 DB E1 00 10 */ stfd f31, 0x10(r1) -/* 801013C8 F3 E1 00 18 */ psq_st f31, 24(r1), 0, 0 /* qr0 */ -/* 801013CC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801013D0 7C 7F 1B 78 */ mr r31, r3 -/* 801013D4 38 80 00 8A */ li r4, 0x8a -/* 801013D8 4B FC 0B 95 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 801013DC A8 7F 04 E6 */ lha r3, 0x4e6(r31) -/* 801013E0 A8 1F 2F E2 */ lha r0, 0x2fe2(r31) -/* 801013E4 7C 03 00 50 */ subf r0, r3, r0 -/* 801013E8 7C 00 07 35 */ extsh. r0, r0 -/* 801013EC 40 80 00 6C */ bge lbl_80101458 -/* 801013F0 3C 60 80 39 */ lis r3, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 801013F4 38 63 EB FC */ addi r3, r3, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 801013F8 C0 03 00 44 */ lfs f0, 0x44(r3) -/* 801013FC FF E0 00 50 */ fneg f31, f0 -/* 80101400 38 00 00 01 */ li r0, 1 -/* 80101404 B0 1F 30 08 */ sth r0, 0x3008(r31) -/* 80101408 A8 7F 04 E6 */ lha r3, 0x4e6(r31) -/* 8010140C 3C 63 00 01 */ addis r3, r3, 1 -/* 80101410 38 03 80 00 */ addi r0, r3, -32768 -/* 80101414 B0 1F 04 E6 */ sth r0, 0x4e6(r31) -/* 80101418 7F E3 FB 78 */ mr r3, r31 -/* 8010141C 38 80 00 00 */ li r4, 0 -/* 80101420 38 A0 80 00 */ li r5, -32768 -/* 80101424 38 C0 00 00 */ li r6, 0 -/* 80101428 4B FA C7 51 */ bl setOldRootQuaternion__9daAlink_cFsss -/* 8010142C 80 7F 20 60 */ lwz r3, 0x2060(r31) -/* 80101430 80 63 00 1C */ lwz r3, 0x1c(r3) -/* 80101434 C0 02 95 B4 */ lfs f0, lit_26275(r2) -/* 80101438 D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 8010143C A8 1F 2F E2 */ lha r0, 0x2fe2(r31) -/* 80101440 B0 1F 30 0C */ sth r0, 0x300c(r31) -/* 80101444 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 80101448 D0 1F 34 78 */ stfs f0, 0x3478(r31) -/* 8010144C C0 02 93 30 */ lfs f0, lit_7625(r2) -/* 80101450 D0 1F 34 7C */ stfs f0, 0x347c(r31) -/* 80101454 48 00 00 38 */ b lbl_8010148C -lbl_80101458: -/* 80101458 3C 60 80 39 */ lis r3, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 8010145C 38 63 EB FC */ addi r3, r3, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 80101460 C3 E3 00 44 */ lfs f31, 0x44(r3) -/* 80101464 38 00 00 00 */ li r0, 0 -/* 80101468 B0 1F 30 08 */ sth r0, 0x3008(r31) -/* 8010146C A8 7F 2F E2 */ lha r3, 0x2fe2(r31) -/* 80101470 3C 63 00 01 */ addis r3, r3, 1 -/* 80101474 38 03 80 00 */ addi r0, r3, -32768 -/* 80101478 B0 1F 30 0C */ sth r0, 0x300c(r31) -/* 8010147C C0 02 93 30 */ lfs f0, lit_7625(r2) -/* 80101480 D0 1F 34 78 */ stfs f0, 0x3478(r31) -/* 80101484 C0 02 95 B8 */ lfs f0, lit_26276(r2) -/* 80101488 D0 1F 34 7C */ stfs f0, 0x347c(r31) -lbl_8010148C: -/* 8010148C A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 80101490 B0 1F 04 DE */ sth r0, 0x4de(r31) -/* 80101494 7F E3 FB 78 */ mr r3, r31 -/* 80101498 38 80 00 AD */ li r4, 0xad -/* 8010149C FC 20 F8 90 */ fmr f1, f31 -/* 801014A0 3C A0 80 39 */ lis r5, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 801014A4 38 A5 EB FC */ addi r5, r5, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 801014A8 C0 45 00 48 */ lfs f2, 0x48(r5) -/* 801014AC 4B FA BB 35 */ bl setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff -/* 801014B0 A8 1F 30 08 */ lha r0, 0x3008(r31) -/* 801014B4 2C 00 00 00 */ cmpwi r0, 0 -/* 801014B8 41 82 00 14 */ beq lbl_801014CC -/* 801014BC 7F E3 FB 78 */ mr r3, r31 -/* 801014C0 38 80 00 04 */ li r4, 4 -/* 801014C4 4B FA E3 DD */ bl setFaceBasicTexture__9daAlink_cFQ29daAlink_c13daAlink_FTANM -/* 801014C8 48 00 00 10 */ b lbl_801014D8 -lbl_801014CC: -/* 801014CC 7F E3 FB 78 */ mr r3, r31 -/* 801014D0 38 80 00 03 */ li r4, 3 -/* 801014D4 4B FA E3 CD */ bl setFaceBasicTexture__9daAlink_cFQ29daAlink_c13daAlink_FTANM -lbl_801014D8: -/* 801014D8 38 00 00 04 */ li r0, 4 -/* 801014DC 98 1F 2F 98 */ stb r0, 0x2f98(r31) -/* 801014E0 7F E3 FB 78 */ mr r3, r31 -/* 801014E4 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 801014E8 C0 5F 05 34 */ lfs f2, 0x534(r31) -/* 801014EC 38 80 00 00 */ li r4, 0 -/* 801014F0 4B FB A2 81 */ bl setSpecialGravity__9daAlink_cFffi -/* 801014F4 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 801014F8 D0 1F 33 98 */ stfs f0, 0x3398(r31) -/* 801014FC D0 1F 04 FC */ stfs f0, 0x4fc(r31) -/* 80101500 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80101504 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80101508 80 03 5F 1C */ lwz r0, 0x5f1c(r3) -/* 8010150C 64 00 00 10 */ oris r0, r0, 0x10 -/* 80101510 90 03 5F 1C */ stw r0, 0x5f1c(r3) -/* 80101514 38 60 00 01 */ li r3, 1 -/* 80101518 E3 E1 00 18 */ psq_l f31, 24(r1), 0, 0 /* qr0 */ -/* 8010151C CB E1 00 10 */ lfd f31, 0x10(r1) -/* 80101520 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80101524 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80101528 7C 08 03 A6 */ mtlr r0 -/* 8010152C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80101530 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procRoofHangTurn__9daAlink_cFv.s b/asm/d/a/d_a_alink/procRoofHangTurn__9daAlink_cFv.s deleted file mode 100644 index da7fdf3779..0000000000 --- a/asm/d/a/d_a_alink/procRoofHangTurn__9daAlink_cFv.s +++ /dev/null @@ -1,73 +0,0 @@ -lbl_80101534: -/* 80101534 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80101538 7C 08 02 A6 */ mflr r0 -/* 8010153C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80101540 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80101544 93 C1 00 08 */ stw r30, 8(r1) -/* 80101548 7C 7E 1B 78 */ mr r30, r3 -/* 8010154C 4B FF F2 25 */ bl commonRoofHangProc__9daAlink_cFv -/* 80101550 2C 03 00 00 */ cmpwi r3, 0 -/* 80101554 41 82 00 0C */ beq lbl_80101560 -/* 80101558 38 60 00 01 */ li r3, 1 -/* 8010155C 48 00 00 C8 */ b lbl_80101624 -lbl_80101560: -/* 80101560 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 80101564 7F E3 FB 78 */ mr r3, r31 -/* 80101568 48 05 CF 65 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 8010156C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80101570 41 82 00 60 */ beq lbl_801015D0 -/* 80101574 A8 1E 30 08 */ lha r0, 0x3008(r30) -/* 80101578 2C 00 00 00 */ cmpwi r0, 0 -/* 8010157C 40 82 00 48 */ bne lbl_801015C4 -/* 80101580 A8 7E 04 E6 */ lha r3, 0x4e6(r30) -/* 80101584 3C 63 00 01 */ addis r3, r3, 1 -/* 80101588 38 03 80 00 */ addi r0, r3, -32768 -/* 8010158C B0 1E 04 E6 */ sth r0, 0x4e6(r30) -/* 80101590 A8 1E 04 E6 */ lha r0, 0x4e6(r30) -/* 80101594 B0 1E 04 DE */ sth r0, 0x4de(r30) -/* 80101598 7F C3 F3 78 */ mr r3, r30 -/* 8010159C 38 80 00 00 */ li r4, 0 -/* 801015A0 38 A0 80 00 */ li r5, -32768 -/* 801015A4 38 C0 00 00 */ li r6, 0 -/* 801015A8 4B FA C5 D1 */ bl setOldRootQuaternion__9daAlink_cFsss -/* 801015AC 80 7E 20 60 */ lwz r3, 0x2060(r30) -/* 801015B0 80 63 00 1C */ lwz r3, 0x1c(r3) -/* 801015B4 C0 23 00 1C */ lfs f1, 0x1c(r3) -/* 801015B8 C0 02 95 BC */ lfs f0, lit_26297(r2) -/* 801015BC EC 01 00 2A */ fadds f0, f1, f0 -/* 801015C0 D0 03 00 1C */ stfs f0, 0x1c(r3) -lbl_801015C4: -/* 801015C4 7F C3 F3 78 */ mr r3, r30 -/* 801015C8 4B FF F3 25 */ bl checkNextActionRoofHang__9daAlink_cFv -/* 801015CC 48 00 00 54 */ b lbl_80101620 -lbl_801015D0: -/* 801015D0 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 801015D4 C0 1E 34 78 */ lfs f0, 0x3478(r30) -/* 801015D8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 801015DC 4C 41 13 82 */ cror 2, 1, 2 -/* 801015E0 40 82 00 34 */ bne lbl_80101614 -/* 801015E4 C0 1E 34 7C */ lfs f0, 0x347c(r30) -/* 801015E8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 801015EC 4C 40 13 82 */ cror 2, 0, 2 -/* 801015F0 40 82 00 24 */ bne lbl_80101614 -/* 801015F4 38 7E 04 E6 */ addi r3, r30, 0x4e6 -/* 801015F8 A8 9E 30 0C */ lha r4, 0x300c(r30) -/* 801015FC 38 A0 00 03 */ li r5, 3 -/* 80101600 38 C0 02 00 */ li r6, 0x200 -/* 80101604 38 E0 01 00 */ li r7, 0x100 -/* 80101608 48 16 EF 39 */ bl cLib_addCalcAngleS__FPsssss -/* 8010160C A8 1E 04 E6 */ lha r0, 0x4e6(r30) -/* 80101610 B0 1E 04 DE */ sth r0, 0x4de(r30) -lbl_80101614: -/* 80101614 7F C3 F3 78 */ mr r3, r30 -/* 80101618 38 9E 1E 2C */ addi r4, r30, 0x1e2c -/* 8010161C 4B FF EF F9 */ bl setRoofHangHandOnSE__9daAlink_cFP13cBgS_PolyInfo -lbl_80101620: -/* 80101620 38 60 00 01 */ li r3, 1 -lbl_80101624: -/* 80101624 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80101628 83 C1 00 08 */ lwz r30, 8(r1) -/* 8010162C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80101630 7C 08 03 A6 */ mtlr r0 -/* 80101634 38 21 00 10 */ addi r1, r1, 0x10 -/* 80101638 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procRoofHangWait__9daAlink_cFv.s b/asm/d/a/d_a_alink/procRoofHangWait__9daAlink_cFv.s deleted file mode 100644 index 2f5d44522b..0000000000 --- a/asm/d/a/d_a_alink/procRoofHangWait__9daAlink_cFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_80100D38: -/* 80100D38 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80100D3C 7C 08 02 A6 */ mflr r0 -/* 80100D40 90 01 00 14 */ stw r0, 0x14(r1) -/* 80100D44 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80100D48 7C 7F 1B 78 */ mr r31, r3 -/* 80100D4C 4B FF FA 25 */ bl commonRoofHangProc__9daAlink_cFv -/* 80100D50 2C 03 00 00 */ cmpwi r3, 0 -/* 80100D54 41 82 00 0C */ beq lbl_80100D60 -/* 80100D58 38 60 00 01 */ li r3, 1 -/* 80100D5C 48 00 00 34 */ b lbl_80100D90 -lbl_80100D60: -/* 80100D60 C0 3F 33 A8 */ lfs f1, 0x33a8(r31) -/* 80100D64 C0 02 93 F8 */ lfs f0, lit_13700(r2) -/* 80100D68 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80100D6C 40 80 00 0C */ bge lbl_80100D78 -/* 80100D70 38 00 00 00 */ li r0, 0 -/* 80100D74 B0 1F 30 08 */ sth r0, 0x3008(r31) -lbl_80100D78: -/* 80100D78 A8 1F 30 08 */ lha r0, 0x3008(r31) -/* 80100D7C 2C 00 00 00 */ cmpwi r0, 0 -/* 80100D80 40 82 00 0C */ bne lbl_80100D8C -/* 80100D84 7F E3 FB 78 */ mr r3, r31 -/* 80100D88 4B FF FB 65 */ bl checkNextActionRoofHang__9daAlink_cFv -lbl_80100D8C: -/* 80100D8C 38 60 00 01 */ li r3, 1 -lbl_80100D90: -/* 80100D90 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80100D94 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80100D98 7C 08 03 A6 */ mtlr r0 -/* 80100D9C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80100DA0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procRoofSwitchHangInit__9daAlink_cFP10fopAc_ac_c.s b/asm/d/a/d_a_alink/procRoofSwitchHangInit__9daAlink_cFP10fopAc_ac_c.s deleted file mode 100644 index 78d1ee83ae..0000000000 --- a/asm/d/a/d_a_alink/procRoofSwitchHangInit__9daAlink_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_801016AC: -/* 801016AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801016B0 7C 08 02 A6 */ mflr r0 -/* 801016B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 801016B8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801016BC 93 C1 00 08 */ stw r30, 8(r1) -/* 801016C0 7C 7E 1B 78 */ mr r30, r3 -/* 801016C4 7C 9F 23 78 */ mr r31, r4 -/* 801016C8 38 80 00 8B */ li r4, 0x8b -/* 801016CC 4B FC 08 A1 */ bl commonProcInit__9daAlink_cFQ29daAlink_c12daAlink_PROC -/* 801016D0 7F C3 F3 78 */ mr r3, r30 -/* 801016D4 38 80 00 01 */ li r4, 1 -/* 801016D8 38 A0 00 00 */ li r5, 0 -/* 801016DC 4B FB FC 01 */ bl deleteEquipItem__9daAlink_cFii -/* 801016E0 7F C3 F3 78 */ mr r3, r30 -/* 801016E4 38 80 00 AE */ li r4, 0xae -/* 801016E8 3C A0 80 39 */ lis r5, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 801016EC 38 A5 EB FC */ addi r5, r5, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 801016F0 4B FA BA 05 */ bl setSingleAnimeParam__9daAlink_cFQ29daAlink_c11daAlink_ANMPC16daAlinkHIO_anm_c -/* 801016F4 7F C3 F3 78 */ mr r3, r30 -/* 801016F8 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 801016FC C0 5E 05 34 */ lfs f2, 0x534(r30) -/* 80101700 38 80 00 00 */ li r4, 0 -/* 80101704 4B FB A0 6D */ bl setSpecialGravity__9daAlink_cFffi -/* 80101708 C0 02 92 C0 */ lfs f0, lit_6108(r2) -/* 8010170C D0 1E 04 FC */ stfs f0, 0x4fc(r30) -/* 80101710 D0 1E 33 98 */ stfs f0, 0x3398(r30) -/* 80101714 38 7E 28 0C */ addi r3, r30, 0x280c -/* 80101718 7F E4 FB 78 */ mr r4, r31 -/* 8010171C 48 05 D5 9D */ bl setData__16daPy_actorKeep_cFP10fopAc_ac_c -/* 80101720 7F C3 F3 78 */ mr r3, r30 -/* 80101724 4B FF FF 19 */ bl setRoofHangSwitch__9daAlink_cFv -/* 80101728 A8 7F 04 E6 */ lha r3, 0x4e6(r31) -/* 8010172C A8 9E 04 E6 */ lha r4, 0x4e6(r30) -/* 80101730 48 16 F6 F5 */ bl cLib_distanceAngleS__Fss -/* 80101734 2C 03 40 00 */ cmpwi r3, 0x4000 -/* 80101738 40 81 00 18 */ ble lbl_80101750 -/* 8010173C A8 7F 04 E6 */ lha r3, 0x4e6(r31) -/* 80101740 3C 63 00 01 */ addis r3, r3, 1 -/* 80101744 38 03 80 00 */ addi r0, r3, -32768 -/* 80101748 B0 1E 04 DE */ sth r0, 0x4de(r30) -/* 8010174C 48 00 00 0C */ b lbl_80101758 -lbl_80101750: -/* 80101750 A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 80101754 B0 1E 04 DE */ sth r0, 0x4de(r30) -lbl_80101758: -/* 80101758 7F C3 F3 78 */ mr r3, r30 -/* 8010175C 38 80 00 00 */ li r4, 0 -/* 80101760 A8 BE 04 E6 */ lha r5, 0x4e6(r30) -/* 80101764 A8 1E 04 DE */ lha r0, 0x4de(r30) -/* 80101768 7C 05 00 50 */ subf r0, r5, r0 -/* 8010176C 7C 05 07 34 */ extsh r5, r0 -/* 80101770 38 C0 00 00 */ li r6, 0 -/* 80101774 4B FA C4 05 */ bl setOldRootQuaternion__9daAlink_cFsss -/* 80101778 A8 1E 04 DE */ lha r0, 0x4de(r30) -/* 8010177C B0 1E 04 E6 */ sth r0, 0x4e6(r30) -/* 80101780 38 00 00 50 */ li r0, 0x50 -/* 80101784 98 1E 2F 99 */ stb r0, 0x2f99(r30) -/* 80101788 38 00 00 00 */ li r0, 0 -/* 8010178C B0 1E 30 0C */ sth r0, 0x300c(r30) -/* 80101790 38 60 00 01 */ li r3, 1 -/* 80101794 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80101798 83 C1 00 08 */ lwz r30, 8(r1) -/* 8010179C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801017A0 7C 08 03 A6 */ mtlr r0 -/* 801017A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 801017A8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/procRoofSwitchHang__9daAlink_cFv.s b/asm/d/a/d_a_alink/procRoofSwitchHang__9daAlink_cFv.s deleted file mode 100644 index 7faee99e48..0000000000 --- a/asm/d/a/d_a_alink/procRoofSwitchHang__9daAlink_cFv.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_801017AC: -/* 801017AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801017B0 7C 08 02 A6 */ mflr r0 -/* 801017B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 801017B8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801017BC 7C 7F 1B 78 */ mr r31, r3 -/* 801017C0 80 03 28 10 */ lwz r0, 0x2810(r3) -/* 801017C4 28 00 00 00 */ cmplwi r0, 0 -/* 801017C8 40 82 00 1C */ bne lbl_801017E4 -/* 801017CC 38 80 00 01 */ li r4, 1 -/* 801017D0 3C A0 80 39 */ lis r5, m__22daAlinkHIO_autoJump_c0@ha /* 0x8038E068@ha */ -/* 801017D4 38 A5 E0 68 */ addi r5, r5, m__22daAlinkHIO_autoJump_c0@l /* 0x8038E068@l */ -/* 801017D8 C0 25 00 70 */ lfs f1, 0x70(r5) -/* 801017DC 4B FC 52 6D */ bl procFallInit__9daAlink_cFif -/* 801017E0 48 00 00 80 */ b lbl_80101860 -lbl_801017E4: -/* 801017E4 4B FF FE 59 */ bl setRoofHangSwitch__9daAlink_cFv -/* 801017E8 38 7F 1F D0 */ addi r3, r31, 0x1fd0 -/* 801017EC 48 05 CC E1 */ bl checkAnmEnd__16daPy_frameCtrl_cFv -/* 801017F0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 801017F4 41 82 00 2C */ beq lbl_80101820 -/* 801017F8 7F E3 FB 78 */ mr r3, r31 -/* 801017FC 38 80 00 A9 */ li r4, 0xa9 -/* 80101800 3C A0 80 39 */ lis r5, m__22daAlinkHIO_roofHang_c0@ha /* 0x8038EBFC@ha */ -/* 80101804 38 A5 EB FC */ addi r5, r5, m__22daAlinkHIO_roofHang_c0@l /* 0x8038EBFC@l */ -/* 80101808 C0 25 00 1C */ lfs f1, 0x1c(r5) -/* 8010180C C0 45 00 20 */ lfs f2, 0x20(r5) -/* 80101810 4B FA B7 D1 */ bl setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff -/* 80101814 38 00 00 01 */ li r0, 1 -/* 80101818 B0 1F 30 0C */ sth r0, 0x300c(r31) -/* 8010181C 48 00 00 40 */ b lbl_8010185C -lbl_80101820: -/* 80101820 A8 1F 30 0C */ lha r0, 0x300c(r31) -/* 80101824 2C 00 00 00 */ cmpwi r0, 0 -/* 80101828 41 82 00 34 */ beq lbl_8010185C -/* 8010182C 7F E3 FB 78 */ mr r3, r31 -/* 80101830 38 80 00 33 */ li r4, 0x33 -/* 80101834 4B FB 1A 1D */ bl setDoStatus__9daAlink_cFUc -/* 80101838 88 1F 2F 8D */ lbz r0, 0x2f8d(r31) -/* 8010183C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 80101840 41 82 00 1C */ beq lbl_8010185C -/* 80101844 7F E3 FB 78 */ mr r3, r31 -/* 80101848 38 80 00 01 */ li r4, 1 -/* 8010184C 3C A0 80 39 */ lis r5, m__22daAlinkHIO_autoJump_c0@ha /* 0x8038E068@ha */ -/* 80101850 38 A5 E0 68 */ addi r5, r5, m__22daAlinkHIO_autoJump_c0@l /* 0x8038E068@l */ -/* 80101854 C0 25 00 70 */ lfs f1, 0x70(r5) -/* 80101858 4B FC 51 F1 */ bl procFallInit__9daAlink_cFif -lbl_8010185C: -/* 8010185C 38 60 00 01 */ li r3, 1 -lbl_80101860: -/* 80101860 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80101864 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80101868 7C 08 03 A6 */ mtlr r0 -/* 8010186C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80101870 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setBossBodyHangPos__9daAlink_cFv.s b/asm/d/a/d_a_alink/setBossBodyHangPos__9daAlink_cFv.s deleted file mode 100644 index 1b28f739e0..0000000000 --- a/asm/d/a/d_a_alink/setBossBodyHangPos__9daAlink_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_800FC748: -/* 800FC748 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FC74C 7C 08 02 A6 */ mflr r0 -/* 800FC750 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FC754 80 03 32 CC */ lwz r0, 0x32cc(r3) -/* 800FC758 28 00 00 00 */ cmplwi r0, 0 -/* 800FC75C 41 82 00 0C */ beq lbl_800FC768 -/* 800FC760 4B FF FE 45 */ bl setDragonHangPos__9daAlink_cFv -/* 800FC764 48 00 00 08 */ b lbl_800FC76C -lbl_800FC768: -/* 800FC768 4B FF FF 4D */ bl setOctaIealHangPos__9daAlink_cFv -lbl_800FC76C: -/* 800FC76C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FC770 7C 08 03 A6 */ mtlr r0 -/* 800FC774 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FC778 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setClimbInit__9daAlink_cFv.s b/asm/d/a/d_a_alink/setClimbInit__9daAlink_cFv.s deleted file mode 100644 index f344d1fd3e..0000000000 --- a/asm/d/a/d_a_alink/setClimbInit__9daAlink_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_800FE114: -/* 800FE114 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FE118 7C 08 02 A6 */ mflr r0 -/* 800FE11C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FE120 80 03 05 7C */ lwz r0, 0x57c(r3) -/* 800FE124 64 00 00 40 */ oris r0, r0, 0x40 -/* 800FE128 90 03 05 7C */ stw r0, 0x57c(r3) -/* 800FE12C 80 03 31 A0 */ lwz r0, 0x31a0(r3) -/* 800FE130 54 00 03 5B */ rlwinm. r0, r0, 0, 0xd, 0xd -/* 800FE134 41 82 00 2C */ beq lbl_800FE160 -/* 800FE138 A8 83 30 6E */ lha r4, 0x306e(r3) -/* 800FE13C 3C 84 00 01 */ addis r4, r4, 1 -/* 800FE140 38 04 80 00 */ addi r0, r4, -32768 -/* 800FE144 B0 03 04 E6 */ sth r0, 0x4e6(r3) -/* 800FE148 C0 23 04 D4 */ lfs f1, 0x4d4(r3) -/* 800FE14C C0 02 95 50 */ lfs f0, lit_23595(r2) -/* 800FE150 EC 01 00 28 */ fsubs f0, f1, f0 -/* 800FE154 D0 03 04 D4 */ stfs f0, 0x4d4(r3) -/* 800FE158 48 00 11 35 */ bl setClimbStartNotGround__9daAlink_cFv -/* 800FE15C 48 00 00 08 */ b lbl_800FE164 -lbl_800FE160: -/* 800FE160 4B FF E0 19 */ bl procHangReadyInit__9daAlink_cFv -lbl_800FE164: -/* 800FE164 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FE168 7C 08 03 A6 */ mtlr r0 -/* 800FE16C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FE170 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setOctaIealHangPos__9daAlink_cFv.s b/asm/d/a/d_a_alink/setOctaIealHangPos__9daAlink_cFv.s deleted file mode 100644 index 8dfb2566ea..0000000000 --- a/asm/d/a/d_a_alink/setOctaIealHangPos__9daAlink_cFv.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_800FC6B4: -/* 800FC6B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800FC6B8 7C 08 02 A6 */ mflr r0 -/* 800FC6BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800FC6C0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800FC6C4 7C 7F 1B 78 */ mr r31, r3 -/* 800FC6C8 80 63 28 10 */ lwz r3, 0x2810(r3) -/* 800FC6CC 28 03 00 00 */ cmplwi r3, 0 -/* 800FC6D0 40 82 00 0C */ bne lbl_800FC6DC -/* 800FC6D4 38 60 00 00 */ li r3, 0 -/* 800FC6D8 48 00 00 5C */ b lbl_800FC734 -lbl_800FC6DC: -/* 800FC6DC 80 63 05 C0 */ lwz r3, 0x5c0(r3) -/* 800FC6E0 80 63 00 04 */ lwz r3, 4(r3) -/* 800FC6E4 80 63 00 84 */ lwz r3, 0x84(r3) -/* 800FC6E8 80 63 00 0C */ lwz r3, 0xc(r3) -/* 800FC6EC 3C 80 80 3E */ lis r4, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 800FC6F0 38 84 D4 70 */ addi r4, r4, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 800FC6F4 48 24 9D BD */ bl PSMTXCopy -/* 800FC6F8 C0 22 92 C0 */ lfs f1, lit_6108(r2) -/* 800FC6FC C0 42 95 5C */ lfs f2, lit_24400(r2) -/* 800FC700 C0 62 95 60 */ lfs f3, lit_24401(r2) -/* 800FC704 4B F1 06 99 */ bl transM__14mDoMtx_stack_cFfff -/* 800FC708 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 800FC70C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 800FC710 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 800FC714 D0 1F 04 D0 */ stfs f0, 0x4d0(r31) -/* 800FC718 C0 03 00 1C */ lfs f0, 0x1c(r3) -/* 800FC71C D0 1F 04 D4 */ stfs f0, 0x4d4(r31) -/* 800FC720 C0 03 00 2C */ lfs f0, 0x2c(r3) -/* 800FC724 D0 1F 04 D8 */ stfs f0, 0x4d8(r31) -/* 800FC728 38 9F 04 E4 */ addi r4, r31, 0x4e4 -/* 800FC72C 4B F1 04 D5 */ bl mDoMtx_MtxToRot__FPA4_CfP5csXyz -/* 800FC730 38 60 00 01 */ li r3, 1 -lbl_800FC734: -/* 800FC734 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800FC738 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800FC73C 7C 08 03 A6 */ mtlr r0 -/* 800FC740 38 21 00 10 */ addi r1, r1, 0x10 -/* 800FC744 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setRoofHangHandOnSE__9daAlink_cFP13cBgS_PolyInfo.s b/asm/d/a/d_a_alink/setRoofHangHandOnSE__9daAlink_cFP13cBgS_PolyInfo.s deleted file mode 100644 index b17558ad69..0000000000 --- a/asm/d/a/d_a_alink/setRoofHangHandOnSE__9daAlink_cFP13cBgS_PolyInfo.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80100614: -/* 80100614 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80100618 7C 08 02 A6 */ mflr r0 -/* 8010061C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80100620 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80100624 93 C1 00 08 */ stw r30, 8(r1) -/* 80100628 7C 7E 1B 78 */ mr r30, r3 -/* 8010062C 3B FE 1F D0 */ addi r31, r30, 0x1fd0 -/* 80100630 7F E3 FB 78 */ mr r3, r31 -/* 80100634 C0 3E 34 78 */ lfs f1, 0x3478(r30) -/* 80100638 48 22 7D F5 */ bl checkPass__12J3DFrameCtrlFf -/* 8010063C 2C 03 00 00 */ cmpwi r3, 0 -/* 80100640 40 82 00 10 */ bne lbl_80100650 -/* 80100644 7F E3 FB 78 */ mr r3, r31 -/* 80100648 C0 3E 34 7C */ lfs f1, 0x347c(r30) -/* 8010064C 48 22 7D E1 */ bl checkPass__12J3DFrameCtrlFf -lbl_80100650: -/* 80100650 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80100654 83 C1 00 08 */ lwz r30, 8(r1) -/* 80100658 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8010065C 7C 08 03 A6 */ mtlr r0 -/* 80100660 38 21 00 10 */ addi r1, r1, 0x10 -/* 80100664 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_alink/setRoofHangSwitch__9daAlink_cFv.s b/asm/d/a/d_a_alink/setRoofHangSwitch__9daAlink_cFv.s deleted file mode 100644 index bcbb0ff1d6..0000000000 --- a/asm/d/a/d_a_alink/setRoofHangSwitch__9daAlink_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_8010163C: -/* 8010163C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80101640 7C 08 02 A6 */ mflr r0 -/* 80101644 90 01 00 24 */ stw r0, 0x24(r1) -/* 80101648 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8010164C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80101650 7C 7E 1B 78 */ mr r30, r3 -/* 80101654 83 E3 28 10 */ lwz r31, 0x2810(r3) -/* 80101658 38 61 00 08 */ addi r3, r1, 8 -/* 8010165C 7F E4 FB 78 */ mr r4, r31 -/* 80101660 48 00 02 15 */ bl getHangPos__13daObjSwHang_cFv -/* 80101664 C0 01 00 08 */ lfs f0, 8(r1) -/* 80101668 D0 1E 04 D0 */ stfs f0, 0x4d0(r30) -/* 8010166C C0 01 00 0C */ lfs f0, 0xc(r1) -/* 80101670 D0 1E 04 D4 */ stfs f0, 0x4d4(r30) -/* 80101674 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 80101678 D0 1E 04 D8 */ stfs f0, 0x4d8(r30) -/* 8010167C C0 3E 04 D4 */ lfs f1, 0x4d4(r30) -/* 80101680 C0 02 95 A4 */ lfs f0, lit_25916(r2) -/* 80101684 EC 01 00 28 */ fsubs f0, f1, f0 -/* 80101688 D0 1E 04 D4 */ stfs f0, 0x4d4(r30) -/* 8010168C 38 00 00 01 */ li r0, 1 -/* 80101690 98 1F 07 7C */ stb r0, 0x77c(r31) -/* 80101694 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80101698 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8010169C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801016A0 7C 08 03 A6 */ mtlr r0 -/* 801016A4 38 21 00 20 */ addi r1, r1, 0x20 -/* 801016A8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram.h b/include/JSystem/JKernel/JKRAram.h index 5468519ba1..80975eba93 100644 --- a/include/JSystem/JKernel/JKRAram.h +++ b/include/JSystem/JKernel/JKRAram.h @@ -22,7 +22,7 @@ public: u32 getGraphMemory() const { return mGraphMemoryPtr; } u32 getGraphMemSize() const { return mGraphMemorySize; } -private: +//private: /* 0x00 */ // vtable /* 0x04 */ // JKRThread /* 0x7C */ u32 mAudioMemoryPtr; diff --git a/include/JSystem/JKernel/JKRCompArchive.h b/include/JSystem/JKernel/JKRCompArchive.h index 3becd55f1f..f5fcb31999 100644 --- a/include/JSystem/JKernel/JKRCompArchive.h +++ b/include/JSystem/JKernel/JKRCompArchive.h @@ -9,12 +9,12 @@ public: JKRCompArchive(long, JKRArchive::EMountDirection); virtual ~JKRCompArchive(); - void open(long); + bool open(long); /* vt[09] */ void removeResourceAll(void); /* override */ /* vt[10] */ bool removeResource(void*); /* override */ - /* vt[15] */ u32 getExpandedResSize(const 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 */ @@ -23,9 +23,9 @@ private: /* 0x00 */ // vtable /* 0x04 */ // JKRArchive /* 0x5C */ int field_0x5c; - /* 0x60 */ int field_0x60; + /* 0x60 */ EMountDirection mMountDirection; /* 0x64 */ int field_0x64; - /* 0x68 */ int field_0x68; + /* 0x68 */ JKRAramBlock* field_0x68; /* 0x6C */ int field_0x6c; /* 0x70 */ JKRDvdFile* field_0x70; /* 0x74 */ u32 mSizeOfMemPart; diff --git a/include/JSystem/JMath/JMATrigonometric.h b/include/JSystem/JMath/JMATrigonometric.h index a01b717ca8..027eafb092 100644 --- a/include/JSystem/JMath/JMATrigonometric.h +++ b/include/JSystem/JMath/JMATrigonometric.h @@ -38,12 +38,18 @@ extern TAtanTable atanTable_; extern TAsinAcosTable asinAcosTable_; }; // namespace JMath -inline f32 JMASSin(s16 s) { - return JMath::sincosTable_.sinShort(s); +inline f32 JMASCosShort(s16 v) { + return JMath::sincosTable_.cosShort(v); +} +inline f32 JMASinShort(s16 v) { + return JMath::sincosTable_.sinShort(v); } -inline f32 JMASCos(s16 s) { - return JMath::sincosTable_.cosShort(s); +inline f32 JMASCos(s16 v) { + return JMASCosShort(v); +} +inline f32 JMASSin(s16 v) { + return JMASinShort(v); } #endif /* JMATRIGONOMETRIC_H */ diff --git a/include/JSystem/JSupport/JSupport.h b/include/JSystem/JSupport/JSupport.h index e98dee1f98..cec1508163 100644 --- a/include/JSystem/JSupport/JSupport.h +++ b/include/JSystem/JSupport/JSupport.h @@ -1,6 +1,8 @@ #ifndef JSUPPORT_H #define JSUPPORT_H +#include "dolphin/types.h" + template T* JSUConvertOffsetToPtr(const void* ptr, const void* offset) { if (offset == NULL) { @@ -10,4 +12,12 @@ T* JSUConvertOffsetToPtr(const void* ptr, const void* offset) { } } +inline u8 JSULoByte(u16 in) { + return in & 0xff; +} + +inline u8 JSUHiByte(u16 in) { + return in >> 8; +} + #endif diff --git a/include/JSystem/JUtility/JUTAssert.h b/include/JSystem/JUtility/JUTAssert.h index c9d9f3c86f..61edbfbee3 100644 --- a/include/JSystem/JUtility/JUTAssert.h +++ b/include/JSystem/JUtility/JUTAssert.h @@ -23,14 +23,13 @@ #define JUT_PANIC(...) #endif -// TODO: make it a namespace -struct JUTAssertion { - /* 802E495C */ static void create(); - /* 802E4960 */ static u32 flush_subroutine(); - /* 802E499C */ static void flushMessage(); - /* 802E4A54 */ static void flushMessage_dbPrint(); - /* 802E4C34 */ static void setVisible(bool); - /* 802E4C3C */ static void setMessageCount(int); +namespace JUTAssertion { + /* 802E495C */ void create(); + /* 802E4960 */ u32 flush_subroutine(); + /* 802E499C */ void flushMessage(); + /* 802E4A54 */ void flushMessage_dbPrint(); + /* 802E4C34 */ void setVisible(bool); + /* 802E4C3C */ void setMessageCount(int); }; extern bool sAssertVisible; diff --git a/include/JSystem/JUtility/JUTCacheFont.h b/include/JSystem/JUtility/JUTCacheFont.h index 53a6dcf30b..c244852aeb 100644 --- a/include/JSystem/JUtility/JUTCacheFont.h +++ b/include/JSystem/JUtility/JUTCacheFont.h @@ -8,8 +8,8 @@ class JUTCacheFont : public JUTResFont { public: struct TGlyphCacheInfo { - /* 0x0 */ TGlyphCacheInfo* field_0x0; - /* 0x4 */ TGlyphCacheInfo** field_0x4; + /* 0x0 */ TGlyphCacheInfo* mPrev; + /* 0x4 */ TGlyphCacheInfo* mNext; }; struct TCachePage { @@ -64,7 +64,7 @@ private: /* 0x84 */ void* field_0x84; /* 0x88 */ u32 mMaxSheetSize; /* 0x8C */ EPagingType mPagingType; - /* 0x90 */ void** mCacheBuffer; + /* 0x90 */ void* mCacheBuffer; /* 0x94 */ int field_0x94; /* 0x98 */ u32 mCachePage; /* 0x9C */ TGlyphCacheInfo* field_0x9c; diff --git a/include/JSystem/JUtility/JUTConsole.h b/include/JSystem/JUtility/JUTConsole.h index c1c2a5adfa..1fe9467b99 100644 --- a/include/JSystem/JUtility/JUTConsole.h +++ b/include/JSystem/JUtility/JUTConsole.h @@ -147,5 +147,7 @@ extern "C" void JUTSetWarningConsole(JUTConsole*); extern "C" JUTConsole* JUTGetWarningConsole(); extern "C" void JUTReportConsole_f_va(const char*, va_list); extern "C" void JUTReportConsole_f(const char*, ...); +extern "C" void JUTWarningConsole(const char* message); +extern "C" void JUTReportConsole(const char* message); #endif /* JUTCONSOLE_H */ diff --git a/include/JSystem/JUtility/JUTFont.h b/include/JSystem/JUtility/JUTFont.h index 6346dea95e..d1d88b1417 100644 --- a/include/JSystem/JUtility/JUTFont.h +++ b/include/JSystem/JUtility/JUTFont.h @@ -55,6 +55,7 @@ struct ResFONT { /* 0x08 */ u32 filesize; /* 0x0C */ u32 numBlocks; /* 0x10 */ u8 padding[0x10]; + /* 0x20 */ u8 data[]; }; class JUTFont { diff --git a/include/JSystem/JUtility/JUTResFont.h b/include/JSystem/JUtility/JUTResFont.h index b79483d146..3a7a067b46 100644 --- a/include/JSystem/JUtility/JUTResFont.h +++ b/include/JSystem/JUtility/JUTResFont.h @@ -3,9 +3,13 @@ #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTFont.h" -#include "dolphin/types.h" -typedef bool (*IsLeadByte)(int); +typedef bool (*IsLeadByte_func)(int); + +struct BlockHeader { + u32 magic; + u32 size; +}; class JUTResFont : public JUTFont { public: @@ -43,7 +47,7 @@ public: initialize_state(); } - static void* const saoAboutEncoding_[3]; + static IsLeadByte_func const saoAboutEncoding_[3]; // some types uncertain, may need to be fixed /* 0x1C */ int mWidth; @@ -61,7 +65,7 @@ public: /* 0x64 */ u16 mMap1BlockNum; /* 0x66 */ u16 field_0x66; /* 0x68 */ u16 mMaxCode; - /* 0x6C */ IsLeadByte* mIsLeadByte; + /* 0x6C */ IsLeadByte_func* mIsLeadByte; }; #endif /* JUTRESFONT_H */ diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 1ca2dabef2..bec8d8f2ad 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -641,6 +641,8 @@ public: }; enum daAlink_FTANM { + FTANM_UNK_3 = 3, + FTANM_UNK_4 = 4, FTANM_UNK_8 = 8, FTANM_UNK_13 = 0x13, FTANM_UNK_14 = 0x14, @@ -2212,13 +2214,13 @@ public: /* 800F9ABC */ int procCrawlAutoMove(); /* 800F9D7C */ int procCrawlEndInit(int, s16, s16); /* 800F9F30 */ int procCrawlEnd(); - /* 800F9FDC */ void getHangMoveAnmSpeed(); - /* 800F9FFC */ void getHangDirectionFromAngle(); + /* 800F9FDC */ f32 getHangMoveAnmSpeed(); + /* 800F9FFC */ int getHangDirectionFromAngle(); /* 800FA070 */ BOOL hangMoveBgCheck(s16, cXyz*); - /* 800FA338 */ void changeHangMoveProc(int); - /* 800FA5C8 */ void checkHangFootWall(); + /* 800FA338 */ BOOL changeHangMoveProc(int); + /* 800FA5C8 */ bool checkHangFootWall(); /* 800FA6E4 */ void setHangGroundY(); - /* 800FA78C */ void changeHangEndProc(); + /* 800FA78C */ int changeHangEndProc(); /* 800FA85C */ void checkHangStartSideWall(s16); /* 800FAA7C */ int procHangStartInit(); /* 800FAE14 */ int procHangStart(); @@ -2239,18 +2241,18 @@ public: /* 800FC2F4 */ int procHangLeverDownInit(); /* 800FC390 */ int procHangLeverDown(); /* 800FC5A4 */ void setDragonHangPos(); - /* 800FC6B4 */ void setOctaIealHangPos(); + /* 800FC6B4 */ int setOctaIealHangPos(); /* 800FC748 */ void setBossBodyHangPos(); /* 800FC77C */ int procBossBodyHangInit(fopAc_ac_c*); /* 800FC870 */ int procBossBodyHang(); - /* 800FCF58 */ void getLadderUnitCount() const; - /* 800FCF84 */ void setLadderInit(); + /* 800FCF58 */ int getLadderUnitCount() const; + /* 800FCF84 */ int setLadderInit(); /* 800FD048 */ void setLadderPosInit(); /* 800FD1F0 */ void setLadderPos(int); - /* 800FD288 */ void getLadderMoveAnmSpeed(); + /* 800FD288 */ f32 getLadderMoveAnmSpeed(); /* 800FD2AC */ void changeLadderMoveProc(int); - /* 800FD4A8 */ void setMoveBGLadderCorrect(); - /* 800FD5E4 */ void checkLadderFall(); + /* 800FD4A8 */ int setMoveBGLadderCorrect(); + /* 800FD5E4 */ int checkLadderFall(); /* 800FD648 */ int procLadderUpStartInit(); /* 800FD7B0 */ int procLadderUpStart(); /* 800FD824 */ int procLadderUpEndInit(int); @@ -2261,17 +2263,17 @@ public: /* 800FDCCC */ int procLadderDownEnd(); /* 800FDD90 */ int procLadderMoveInit(int, int, cXyz*); /* 800FDF50 */ int procLadderMove(); - /* 800FE010 */ void getClimbMoveUpDownAnmSpeed(); - /* 800FE034 */ void getClimbMoveSideAnmSpeed(); - /* 800FE058 */ void checkClimbCode(cBgS_PolyInfo&); + /* 800FE010 */ f32 getClimbMoveUpDownAnmSpeed(); + /* 800FE034 */ f32 getClimbMoveSideAnmSpeed(); + /* 800FE058 */ BOOL checkClimbCode(cBgS_PolyInfo&); /* 800FE114 */ void setClimbInit(); /* 800FE174 */ void setClimbShapeOffset(); - /* 800FE3C4 */ void getClimbDirectionFromAngle(); + /* 800FE3C4 */ int getClimbDirectionFromAngle(); /* 800FE438 */ void changeClimbMoveProc(int); /* 800FE5A0 */ void checkClimbMoveUpDownProc(int); /* 800FE6E8 */ void checkClimbMoveSideProc(int); /* 800FE868 */ void setMoveBGClimbCorrect(); - /* 800FEB90 */ void checkBgCorrectClimbMove(cXyz*, cXyz*); + /* 800FEB90 */ int checkBgCorrectClimbMove(cXyz*, cXyz*); /* 800FEC70 */ void checkClimbRoof(f32); /* 800FED50 */ void checkClimbGround(cXyz*, f32); /* 800FEEC0 */ void checkBgClimbMove(int); @@ -2288,11 +2290,11 @@ public: /* 80100258 */ int procClimbWait(); /* 801003E4 */ int procClimbToRoofInit(); /* 80100464 */ int procClimbToRoof(); - /* 801005CC */ void getRoofHangFMoveAnmSpeed() const; - /* 801005F0 */ void getRoofHangSMoveAnmSpeed() const; + /* 801005CC */ f32 getRoofHangFMoveAnmSpeed() const; + /* 801005F0 */ f32 getRoofHangSMoveAnmSpeed() const; /* 80100614 */ void setRoofHangHandOnSE(cBgS_PolyInfo*); - /* 80100668 */ void checkRoofHangMovePos(); - /* 80100770 */ void commonRoofHangProc(); + /* 80100668 */ int checkRoofHangMovePos(); + /* 80100770 */ int commonRoofHangProc(); /* 801008EC */ void checkNextActionRoofHang(); /* 80100A10 */ int procRoofHangStartInit(cBgS_PolyInfo const&, cXyz const&, int); /* 80100AE4 */ int procRoofHangStart(); diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 6ebfbd8526..b0c0d56308 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -270,6 +270,7 @@ public: FLG2_UNK_20000 = 0x20000, FLG2_SCN_CHG_START = 0x8000, FLG2_UNK_4000 = 0x4000, + FLG2_UNK_2000 = 0x2000, FLG2_UNK_1000 = 0x1000, FLG2_UNK_200 = 0x200, FLG2_UNK_80 = 0x80, @@ -289,6 +290,7 @@ public: FLG3_UNK_4000000 = 0x4000000, FLG3_UNK_2000000 = 0x2000000, FLG3_UNK_1000000 = 0x1000000, + FLG3_UNK_400000 = 0x400000, FLG3_UNK_100000 = 0x100000, FLG3_UNK_80000 = 0x80000, FLG3_COPY_ROD_THROW_AFTER = 0x40000, diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index 93680c27b9..0335ebe8d7 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -111,5 +111,6 @@ bool dBgS_CheckBGroundPoly(cBgS_PolyInfo const&); bool dBgS_CheckBWallPoly(cBgS_PolyInfo const&); void dBgS_MoveBGProc_Typical(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2, bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6); +f32 dBgS_GetNY(cBgS_PolyInfo const& poly); #endif /* D_BG_D_BG_S_H */ diff --git a/include/d/event/d_event_lib.h b/include/d/event/d_event_lib.h index 4594bc142c..48728cb2e8 100644 --- a/include/d/event/d_event_lib.h +++ b/include/d/event/d_event_lib.h @@ -37,9 +37,9 @@ struct dEvLib_callback_c { virtual BOOL eventRun() { return TRUE; } virtual BOOL eventEnd() { return TRUE; } - fopAc_ac_c* mActor; - action_class* mAction; - u16 _C; + /* 0x4 */ fopAc_ac_c* mActor; + /* 0x8 */ action_class* mAction; + /* 0xC */ u16 _C; }; #endif /* D_EVENT_D_EVENT_LIB_H */ diff --git a/include/dolphin/os/OSAlloc.h b/include/dolphin/os/OSAlloc.h index 7a74b1e4bc..ffb5e0c9c0 100644 --- a/include/dolphin/os/OSAlloc.h +++ b/include/dolphin/os/OSAlloc.h @@ -26,7 +26,8 @@ typedef u32 OSHeapHandle; extern volatile s32 __OSCurrHeap; -#define OSRoundUp32B(v) (((u32)(v + 31) & ~31)) +#define OSRoundUp32B(x) (((u32)(x) + 0x1F) & ~(0x1F)) +#define OSRoundDown32B(x) (((u32)(x)) & ~(0x1F)) #define OSRoundUp(x, align) (((x) + (align)-1) & (-(align))) #define OSRoundUpPtr(x, align) ((void*)((((u32)(x)) + (align)-1) & (~((align)-1)))) diff --git a/include/rel/d/a/b/d_a_b_ob/d_a_b_ob.h b/include/rel/d/a/b/d_a_b_ob/d_a_b_ob.h index 06ef41adc4..d00d3ce40c 100644 --- a/include/rel/d/a/b/d_a_b_ob/d_a_b_ob.h +++ b/include/rel/d/a/b/d_a_b_ob/d_a_b_ob.h @@ -1,6 +1,181 @@ #ifndef D_A_B_OB_H #define D_A_B_OB_H -#include "dolphin/types.h" +#include "d/cc/d_cc_uty.h" +#include "d/com/d_com_inf_game.h" + +struct Z2CreatureOI : public Z2CreatureEnemy { + /* 802C2578 */ Z2CreatureOI(); + /* 802C2670 */ void init(Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, + Vec*); + /* 802C2C84 */ void startTentacleSound(JAISoundID, u8, u32, s8); + /* 802C2CD4 */ void startTentacleSoundLevel(JAISoundID, u8, f32, u32, s8); + + /* 802C25EC */ virtual void deleteObject(); + /* 802C2864 */ virtual void framework(u32, s8); + /* 802C29D4 */ virtual void startCreatureSoundLevel(JAISoundID, u32, s8); + + /* 0x0A4 */ Z2SoundObjSimple field_0xa4; + /* 0x0C4 */ Z2SoundObjSimple field_0xc4; + /* 0x0E4 */ Z2SoundObjSimple field_0xe4; + /* 0x104 */ Z2SoundObjSimple field_0x104[8]; +}; + +struct ob_part_s { + /* 8061A658 */ ~ob_part_s(); + /* 8061A72C */ ob_part_s(); + + /* 0x00 */ mDoExt_McaMorf* field_0x0; + /* 0x04 */ mDoExt_McaMorf* field_0x4; + /* 0x08 */ mDoExt_McaMorf* field_0x8; + /* 0x0C */ mDoExt_McaMorf* field_0xc; + /* 0x10 */ mDoExt_McaMorf* field_0x10; + /* 0x14 */ cXyz field_0x14; + /* 0x20 */ csXyz field_0x20; + /* 0x26 */ s16 field_0x26; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ csXyz field_0x2c; + /* 0x32 */ csXyz field_0x32; + /* 0x38 */ csXyz field_0x38; + /* 0x40 */ dCcD_Sph mSph; +}; // Size: 0x178 + +struct ob_ke_s { + /* 8061A3A0 */ ~ob_ke_s(); + /* 8061A41C */ ob_ke_s(); + + /* 0x000 */ cXyz field_0x0[20]; + /* 0x0F0 */ cXyz field_0xf0[20]; + /* 0x1E0 */ cXyz field_0x1e0; +}; // Size: 0x1EC + +class b_ob_class : public fopEn_enemy_c { +public: + /* 8061A0C0 */ b_ob_class(); + + /* 0x05AC */ request_of_phase_process_class mPhase; + /* 0x05B4 */ mDoExt_McaMorfSO* field_0x5b4; + /* 0x05B8 */ u8 field_0x5b8[0x5BC - 0x5B8]; + /* 0x05BC */ f32 field_0x5bc; + /* 0x05C0 */ ob_part_s mParts[20]; + /* 0x2320 */ int field_0x2320; + /* 0x2324 */ cXyz field_0x2324[512]; + /* 0x3B24 */ csXyz field_0x3b24[512]; + /* 0x4724 */ J3DModel* field_0x4724; + /* 0x4728 */ mDoExt_btkAnm* field_0x4728; + /* 0x472C */ mDoExt_brkAnm* field_0x472c; + /* 0x4730 */ f32 field_0x4730; + /* 0x4734 */ int mAnmResID; + /* 0x4738 */ int field_0x4738; + /* 0x4738 */ u8 field_0x473c; + /* 0x4740 */ f32 field_0x4740; + /* 0x4744 */ u8 field_0x4744; + /* 0x4745 */ u8 field_0x4745; + /* 0x4748 */ u32 field_0x4748; + /* 0x474C */ u8 field_0x474c; + /* 0x474D */ u8 field_0x474d; + /* 0x474E */ u8 field_0x474e[0x4750 - 0x474e]; + /* 0x4750 */ s16 field_0x4750; + /* 0x4752 */ s16 field_0x4752; + /* 0x4754 */ s16 field_0x4754; + /* 0x4756 */ s16 field_0x4756; + /* 0x4758 */ cXyz field_0x4758; + /* 0x4764 */ csXyz field_0x4764; + /* 0x476A */ s16 field_0x476a; + /* 0x476C */ s16 mYAngleToPlayer; + /* 0x476E */ s16 mXAngleToPlayer; + /* 0x4770 */ f32 mDistToPlayer; + /* 0x4774 */ u8 field_0x4774[0x4778 - 0x4774]; + /* 0x4778 */ s16 field_0x4778; + /* 0x477A */ s16 field_0x477a; + /* 0x477C */ s16 field_0x477c; + /* 0x477E */ s16 field_0x477e; + /* 0x4780 */ s16 field_0x4780; + /* 0x4782 */ u8 field_0x4782[0x4784 - 0x4782]; + /* 0x05AC */ s16 field_0x4784; + /* 0x4786 */ u8 field_0x4786[0x4788 - 0x4786]; + /* 0x4788 */ int field_0x4788; + /* 0x478C */ int field_0x478c; + /* 0x4790 */ int field_0x4790; + /* 0x4794 */ s16 field_0x4794; + /* 0x4798 */ f32 field_0x4798; + /* 0x479C */ f32 field_0x479c; + /* 0x47A0 */ f32 field_0x47a0; + /* 0x47A4 */ u8 field_0x47a4[0x47aa - 0x47a4]; + /* 0x47AA */ s16 field_0x47aa; + /* 0x47AC */ s16 field_0x47ac; + /* 0x47AE */ s16 field_0x47ae; + /* 0x47B0 */ s16 field_0x47b0; + /* 0x47B4 */ int field_0x47b4; + /* 0x47B8 */ s16 field_0x47b8; + /* 0x47BA */ s16 field_0x47ba; + /* 0x47BC */ s16 field_0x47bc; + /* 0x47C0 */ f32 field_0x47c0; + /* 0x47C4 */ s16 field_0x47c4; + /* 0x47C8 */ int field_0x47c8; + /* 0x47CC */ dCcD_Stts field_0x47cc; + /* 0x4808 */ dCcD_Sph mCcSph; + /* 0x4940 */ dCcD_Sph mCoreSph; + /* 0x4A78 */ dCcU_AtInfo mAtInfo; + /* 0x4A9C */ u8 field_0x4a9c[0x4aa0 - 0x4a9c]; + /* 0x4AA0 */ dCcD_Stts field_0x4aa0; + /* 0x4ADC */ dCcD_Sph mBodySph; + /* 0x4C14 */ dCcD_Sph field_0x4c14; + /* 0x4D4C */ dBgS_AcchCir field_0x4d4c; + /* 0x4D8C */ dBgS_ObjAcch field_0x4d8c; + /* 0x4F64 */ u32 mTentacleActorIDs[8]; + /* 0x4F84 */ ob_ke_s field_0x4f84[5]; + /* 0x5920 */ mDoExt_3DlineMat0_c field_0x5920; + /* 0x593C */ Z2CreatureEnemy field_0x593c; + /* 0x59E0 */ Z2CreatureOI field_0x59e0; + /* 0x5BE4 */ cXyz field_0x5be4[13]; + /* 0x5C80 */ s16 mDemoAction; + /* 0x5C82 */ s16 field_0x5c82; + /* 0x5C84 */ cXyz field_0x5c84; + /* 0x5C90 */ cXyz field_0x5c90; + /* 0x5C9C */ cXyz field_0x5c9c; + /* 0x5CA8 */ cXyz field_0x5ca8; + /* 0x5CB4 */ f32 field_0x5cb4; + /* 0x5CB8 */ f32 field_0x5cb8; + /* 0x5CBC */ f32 field_0x5cbc; + /* 0x5CC0 */ f32 field_0x5cc0; + /* 0x5CC4 */ f32 field_0x5cc4; + /* 0x5CC8 */ f32 field_0x5cc8; + /* 0x5CCC */ f32 field_0x5ccc; + /* 0x5CD0 */ f32 field_0x5cd0; + /* 0x5CD4 */ f32 field_0x5cd4; + /* 0x5CD8 */ f32 field_0x5cd8; + /* 0x5CDC */ f32 field_0x5cdc; + /* 0x5CE0 */ s16 field_0x5ce0; + /* 0x5CE4 */ f32 field_0x5ce4; + /* 0x5CE8 */ int field_0x5ce8; + /* 0x5CEC */ cXyz field_0x5cec; + /* 0x5CF8 */ s16 field_0x5cf8; + /* 0x5CFC */ f32 field_0x5cfc; + /* 0x5D00 */ f32 field_0x5d00; + /* 0x5D04 */ f32 field_0x5d04; + /* 0x5D08 */ s16 field_0x5d08; + /* 0x5D0A */ s16 field_0x5d0a; + /* 0x5D0C */ s16 field_0x5d0c; + /* 0x5D0E */ u8 field_0x5d0e[0x5d11 - 0x5d0e]; + /* 0x5D11 */ s8 field_0x5d11; + /* 0x5D12 */ s8 field_0x5d12; + /* 0x5D14 */ f32 field_0x5d14; + /* 0x5D18 */ u8 field_0x5d18; + /* 0x5D19 */ u8 field_0x5d19[0x5d24 - 0x5d19]; + /* 0x5D24 */ u32 field_0x5d24[3]; + /* 0x5D30 */ u8 field_0x5d30[0x5d38 - 0x5D30]; + /* 0x5D38 */ u32 field_0x5d38; + /* 0x5D3C */ s16 field_0x5d3c; + /* 0x5D40 */ u32 field_0x5d40; + /* 0x5D44 */ u8 field_0x5d44[0x5d88 - 0x5d44]; + /* 0x5D88 */ u32 field_0x5d88; + /* 0x5D8C */ u32 field_0x5d8c; + /* 0x5D90 */ u8 field_0x5d90[0x5dd4 - 0x5d90]; + /* 0x5DD4 */ u32 field_0x5dd4; + /* 0x5DD8 */ int field_0x5dd8; + /* 0x5DDC */ f32 field_0x5ddc; + /* 0x5DE0 */ u8 field_0x5de0; +}; #endif /* D_A_B_OB_H */ diff --git a/include/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h b/include/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h index 9dae6051e7..c88fe408c6 100644 --- a/include/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h +++ b/include/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h @@ -1,20 +1,7 @@ #ifndef D_A_B_OH2_H #define D_A_B_OH2_H -#include "d/com/d_com_inf_game.h" - -// fix/move to d_a_b_ob later -class b_ob_class : public fopEn_enemy_c { -public: - /* 0x05AC */ u8 field_0x5ac[0x5c0 - 0x5ac]; - /* 0x05C0 */ mDoExt_McaMorf* field_0x5c0; - /* 0x05C4 */ u8 field_0x5c4[0x4752 - 0x5c4]; - /* 0x4752 */ s16 field_0x4752; - /* 0x4754 */ u8 field_0x4754[0x47a0 - 0x4754]; - /* 0x47A0 */ f32 field_0x47a0; - /* 0x47A4 */ u8 field_0x47a4[0x5d04 - 0x47a4]; - /* 0x5D04 */ f32 field_0x5d04; -}; +#include "rel/d/a/b/d_a_b_ob/d_a_b_ob.h" class b_oh2_class : public fopEn_enemy_c { public: diff --git a/include/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h b/include/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h index 415263beb7..247d1fbbe7 100644 --- a/include/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h +++ b/include/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h @@ -1,6 +1,57 @@ #ifndef D_A_OBJ_SWHANG_H #define D_A_OBJ_SWHANG_H -#include "dolphin/types.h" +#include "SSystem/SComponent/c_phase.h" +#include "d/bg/d_bg_s_movebg_actor.h" +#include "d/cc/d_cc_d.h" +#include "d/event/d_event_lib.h" + +class daObjSwHang_c : public dBgS_MoveBgActor { +public: + /* 80101874 */ cXyz getHangPos(); + /* 80CFB9D8 */ void initBaseMtx(); + /* 80CFBA60 */ void setBaseMtx(); + /* 80CFBDD0 */ void create1st(); + /* 80CFC04C */ void calcHangPos(); + /* 80CFC114 */ void checkDown(); + /* 80CFC194 */ void changeOnStatus(); + /* 80CFC1F4 */ void changeOffStatus(); + /* 80CFC4C4 */ void action(); + /* 80CFC550 */ void checkDownSw(); + /* 80CFC698 */ void init_modeOffWait(); + /* 80CFC6AC */ void modeOffWait(); + /* 80CFCA34 */ void init_modeOnWait(); + /* 80CFCA40 */ void modeOnWait(); + /* 80CFCCE0 */ void eventStart(); + /* 80CFD034 */ ~daObjSwHang_c(); + + /* 80CFBCB8 */ virtual int CreateHeap(); + /* 80CFBAC8 */ virtual int Create(); + /* 80CFC254 */ virtual int Execute(f32 (**)[3][4]); + /* 80CFCD04 */ virtual int Draw(); + /* 80CFCD98 */ virtual int Delete(); + + void setHangPlayer() { mHangPlayer = 1; } + + /* 0x5A0 */ dEvLib_callback_c field_0x5a0; + /* 0x5B0 */ request_of_phase_process_class mPhase; + /* 0x5B8 */ J3DModel* mpModel; + /* 0x5BC */ dCcD_Stts mCcStts; + /* 0x5F8 */ dCcD_Sph mCcSph; + /* 0x730 */ u8 field_0x730; + /* 0x731 */ u8 mType; + /* 0x734 */ dBgW* mpBgW; + /* 0x738 */ Mtx field_0x738; + /* 0x768 */ int mTotteJointNo; + /* 0x76C */ f32 mHangLength; + /* 0x770 */ cXyz mHangPos; + /* 0x77C */ u8 mHangPlayer; + /* 0x77D */ u8 field_0x77d; + /* 0x77E */ u8 field_0x77e; + /* 0x780 */ u16 mFlags; + /* 0x784 */ f32 field_0x784; + /* 0x788 */ f32 field_0x788; + /* 0x78C */ s16 field_0x78c; +}; // Size: 0x790 #endif /* D_A_OBJ_SWHANG_H */ diff --git a/libs/JSystem/JKernel/JKRAram.cpp b/libs/JSystem/JKernel/JKRAram.cpp index 87601d4035..6a2c20f0ad 100644 --- a/libs/JSystem/JKernel/JKRAram.cpp +++ b/libs/JSystem/JKernel/JKRAram.cpp @@ -124,7 +124,7 @@ JKRAram::JKRAram(u32 audio_buffer_size, u32 audio_graph_size, long priority) u32 aramSize = ARGetSize(); mAudioMemorySize = audio_buffer_size; - if (audio_graph_size == 0xffffffff) { + if (audio_graph_size == 0xFFFFFFFF) { mGraphMemorySize = (aramSize - audio_buffer_size) - aramBase; mAramMemorySize = 0; } else { @@ -171,24 +171,15 @@ void* JKRAram::run(void) { } while (true); } -/* ############################################################################################## */ -/* 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 - /* 802D2248-802D22DC 2CCB88 0094+00 2/2 0/0 0/0 .text * checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl */ 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."); + JUTException::panic_f(__FILE__, 219, "%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."); + JUTException::panic_f(__FILE__, 227, "%s", ":::address not 32Byte aligned."); } } @@ -445,5 +436,3 @@ SECTION_DEAD static char const* const stringBase_8039D0A6 = "bad aramSync\n"; /* @stringBase0 padding */ SECTION_DEAD static char const* const pad_8039D0B4 = "\0\0\0"; #pragma pop - -/* 8039D078-8039D078 0296D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRAramArchive.cpp b/libs/JSystem/JKernel/JKRAramArchive.cpp index ec8ca228cc..b6482fc77c 100644 --- a/libs/JSystem/JKernel/JKRAramArchive.cpp +++ b/libs/JSystem/JKernel/JKRAramArchive.cpp @@ -8,19 +8,11 @@ #include "JSystem/JKernel/JKRDvdAramRipper.h" #include "JSystem/JKernel/JKRDvdRipper.h" #include "JSystem/JKernel/JKRFile.h" +#include "JSystem/JUtility/JUTException.h" #include "MSL_C/MSL_Common/Src/string.h" #include "MSL_C/math.h" #include "dol2asm.h" #include "dolphin/os/OSCache.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JUTException { - /* 802E21FC */ static void panic_f(char const*, int, char const*, ...); -}; // // Forward References: @@ -112,9 +104,11 @@ SECTION_DATA extern void* __vt__7JKRFile[8] = { JKRAramArchive::JKRAramArchive(s32 param_0, JKRArchive::EMountDirection mountDirection) : JKRArchive(param_0, MOUNT_ARAM) { mMountDirection = mountDirection; + if (!this->open(param_0)) { return; } + mVolumeType = 'RARC'; mVolumeName = mStringTable + mNodes->name_offset; JKRFileLoader::sVolumeList.prepend(&mFileLoaderLink); @@ -131,19 +125,24 @@ JKRAramArchive::~JKRAramArchive() { JKRHeap::free(entry->data, mHeap); } } + JKRHeap::free(mArcInfoBlock, mHeap); mArcInfoBlock = NULL; } + if (mExpandedSize != NULL) { JKRHeap::free(mExpandedSize, NULL); mExpandedSize = NULL; } + if (mDvdFile != NULL) { delete mDvdFile; } + if (mBlock != NULL) { delete mBlock; } + JKRFileLoader::sVolumeList.remove(&mFileLoaderLink); mIsMounted = false; } @@ -174,6 +173,7 @@ bool JKRAramArchive::open(s32 entryNum) { mMountMode = UNKNOWN_MOUNT_MODE; return false; } + SArcHeader* header = static_cast(JKRAllocFromSysHeap(0x20, -0x20)); if (header == NULL) { mMountMode = UNKNOWN_MOUNT_MODE; @@ -263,15 +263,18 @@ void* JKRAramArchive::fetchResource(JKRArchive::SDIFileEntry* pEntry, u32* pOutS if (pOutSize == NULL) { pOutSize = &outSize; } + JKRCompression compression = JKRConvertAttrToCompressionType(pEntry->getFlags()); if (pEntry->data == NULL) { u32 size = JKRAramArchive::fetchResource_subroutine( pEntry->data_offset + mBlock->getAddress(), pEntry->data_size, mHeap, compression, &outBuf); + *pOutSize = size; if (size == NULL) { return NULL; } + pEntry->data = outBuf; if (compression == COMPRESSION_YAZ0) { this->setExpandSize(pEntry, *pOutSize); @@ -283,6 +286,7 @@ void* JKRAramArchive::fetchResource(JKRArchive::SDIFileEntry* pEntry, u32* pOutS *pOutSize = pEntry->data_size; } } + return pEntry->data; } @@ -352,6 +356,7 @@ u32 JKRAramArchive::fetchResource_subroutine(u32 src, u32 srcLength, u8* dst, u3 u32 outLen; u32 srcSize = ALIGN_NEXT(srcLength, 0x20); u32 dstSize = ALIGN_PREV(dstLength, 0x20); + switch (compression) { case COMPRESSION_NONE: if (srcSize > dstSize) { @@ -366,7 +371,7 @@ u32 JKRAramArchive::fetchResource_subroutine(u32 src, u32 srcLength, u8* dst, u3 &outLen); return outLen; default: - JUTException::panic_f("JKRAramArchive.cpp", 0x28F, "%s", "??? bad sequence\n"); + JUTException::panic_f(__FILE__, 655, "%s", "??? bad sequence\n"); return 0; } } @@ -400,7 +405,7 @@ u32 JKRAramArchive::fetchResource_subroutine(u32 entryNum, u32 length, JKRHeap* *out = tmpBufAligned; return readLen; default: - JUTException::panic_f("JKRAramArchive.cpp", 0x2c9, "%s", "??? bad sequence\n"); + JUTException::panic_f(__FILE__, 0x2c9, "%s", "??? bad sequence\n"); return 0; } } @@ -420,29 +425,30 @@ asm u32 JKRAramArchive::fetchResource_subroutine(u32 param_0, u32 param_1, JKRHe u32 JKRAramArchive::getExpandedResSize(void const* ptr) const { if (mExpandedSize == NULL) { return this->getResSize(ptr); - } else { - JKRArchive::SDIFileEntry* entry = this->findPtrResource(ptr); - if (entry == NULL) { - return 0xFFFFFFFF; - } else { - if (entry->getCompressFlag() == 0) { - return this->getResSize(ptr); - } else { - u32 expandSize = this->getExpandSize(entry); - if (expandSize != 0) { - return expandSize; - } - u8 tmpBuf[0x40]; - SArcHeader* buf = (SArcHeader*)ALIGN_PREV((s32)&tmpBuf[0x1F], 0x20); - JKRAramToMainRam(entry->data_offset + mBlock->getAddress(), (u8*)buf, 0x20, - EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL); - expandSize = JKRDecompExpandSize(buf); - // ??? casting away const? - ((JKRArchive*)this)->setExpandSize(entry, expandSize); - return expandSize; - } - } } + + JKRArchive::SDIFileEntry* entry = this->findPtrResource(ptr); + if (entry == NULL) { + return 0xFFFFFFFF; + } + + if (entry->getCompressFlag() == 0) { + return this->getResSize(ptr); + } + + u32 expandSize = this->getExpandSize(entry); + if (expandSize != 0) { + return expandSize; + } + + u8 tmpBuf[0x40]; + SArcHeader* buf = (SArcHeader*)ALIGN_PREV((s32)&tmpBuf[0x1F], 0x20); + JKRAramToMainRam(entry->data_offset + mBlock->getAddress(), (u8*)buf, 0x20, + EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL); + expandSize = JKRDecompExpandSize(buf); + // ??? casting away const? + ((JKRArchive*)this)->setExpandSize(entry, expandSize); + return expandSize; } /* 802D7B90-802D7BF0 2D24D0 0060+00 1/0 0/0 0/0 .text __dt__7JKRFileFv */ @@ -455,5 +461,3 @@ extern "C" asm void __dt__7JKRFileFv() { #include "asm/JSystem/JKernel/JKRAramArchive/__dt__7JKRFileFv.s" } #pragma pop - -/* 8039D188-8039D188 0297E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRAramBlock.cpp b/libs/JSystem/JKernel/JKRAramBlock.cpp index 45c6176e0a..58a3919ee3 100644 --- a/libs/JSystem/JKernel/JKRAramBlock.cpp +++ b/libs/JSystem/JKernel/JKRAramBlock.cpp @@ -6,12 +6,6 @@ #include "JSystem/JKernel/JKRAramBlock.h" #include "JSystem/JKernel/JKRAramHeap.h" #include "JSystem/JKernel/JKRHeap.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// /* 802D3304-802D3378 2CDC44 0074+00 2/2 1/1 0/0 .text __ct__12JKRAramBlockFUlUlUlUcb */ JKRAramBlock::JKRAramBlock(u32 address, u32 size, u32 freeSize, u8 groupId, bool isTempMemory) @@ -27,6 +21,7 @@ JKRAramBlock::JKRAramBlock(u32 address, u32 size, u32 freeSize, u8 groupId, bool JKRAramBlock::~JKRAramBlock() { JSUList* list = mBlockLink.getSupervisor(); JSULink* prev = mBlockLink.getPrev(); + if (prev) { JKRAramBlock* block = prev->getObject(); block->mFreeSize = mSize + mFreeSize + block->mFreeSize; diff --git a/libs/JSystem/JKernel/JKRAramHeap.cpp b/libs/JSystem/JKernel/JKRAramHeap.cpp index 0e04176dc3..8adf0080c2 100644 --- a/libs/JSystem/JKernel/JKRAramHeap.cpp +++ b/libs/JSystem/JKernel/JKRAramHeap.cpp @@ -5,48 +5,20 @@ #include "JSystem/JKernel/JKRAramHeap.h" #include "JSystem/JKernel/JKRHeap.h" -#include "dol2asm.h" -#include "global.h" // // Forward References: // -extern "C" void __ct__11JKRAramHeapFUlUl(); -extern "C" void __dt__11JKRAramHeapFv(); -extern "C" void alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode(); -extern "C" void allocFromHead__11JKRAramHeapFUl(); -extern "C" void allocFromTail__11JKRAramHeapFUl(); -extern "C" void getFreeSize__11JKRAramHeapFv(); -extern "C" void getTotalFreeSize__11JKRAramHeapFv(); -extern "C" void dump__11JKRAramHeapFv(); -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(); -extern "C" void __ct__11JKRDisposerFv(); extern "C" void __dt__11JKRDisposerFv(); -extern "C" void __ct__12JKRAramBlockFUlUlUlUcb(); -extern "C" void allocHead__12JKRAramBlockFUlUcP11JKRAramHeap(); -extern "C" void allocTail__12JKRAramBlockFUlUcP11JKRAramHeap(); -extern "C" void __dt__10JSUPtrListFv(); -extern "C" void initiate__10JSUPtrListFv(); -extern "C" void append__10JSUPtrListFP10JSUPtrLink(); -extern "C" void __register_global_object(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); @@ -54,9 +26,6 @@ extern "C" void _restgpr_29(); // Declarations: // -/* 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 */ JSUList JKRAramHeap::sAramList; @@ -206,9 +175,7 @@ void JKRAramHeap::dump(void) { JSUList* list = &sAramList; JSUListIterator iterator = list; - for (; iterator != list->getEnd(); ++iterator) { - // The debug version calls OSReport - } + for (; iterator != list->getEnd(); ++iterator) {} unlock(); } diff --git a/libs/JSystem/JKernel/JKRAramPiece.cpp b/libs/JSystem/JKernel/JKRAramPiece.cpp index 0fceb9662a..fb837ae66c 100644 --- a/libs/JSystem/JKernel/JKRAramPiece.cpp +++ b/libs/JSystem/JKernel/JKRAramPiece.cpp @@ -8,13 +8,7 @@ #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" - -// -// Declarations: -// /* 802D3574-802D35F4 2CDEB4 0080+00 1/1 0/0 0/0 .text * prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v */ @@ -49,12 +43,12 @@ OSMutex JKRAramPiece::mMutex; JKRAMCommand* JKRAramPiece::orderAsync(int direction, u32 source, u32 destination, u32 length, JKRAramBlock* block, JKRAMCommand::AsyncCallback callback) { lock(); - if (((source & 0x1f) != 0) || ((destination & 0x1f) != 0)) { + 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."); + JUTException::panic_f(__FILE__, 108, "%s", "illegal address. abort."); } Message* message = new (JKRHeap::getSystemHeap(), -4) Message(); @@ -167,5 +161,3 @@ JKRAMCommand::~JKRAMCommand() { if (field_0x94) JKRHeap::free(field_0x94, NULL); } - -/* 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 90b754a50f..d9a243a97c 100644 --- a/libs/JSystem/JKernel/JKRAramStream.cpp +++ b/libs/JSystem/JKernel/JKRAramStream.cpp @@ -9,57 +9,6 @@ #include "JSystem/JSupport/JSUFileStream.h" #include "JSystem/JSupport/JSURandomInputStream.h" #include "JSystem/JUtility/JUTException.h" -#include "dol2asm.h" -#include "global.h" - -// -// Forward References: -// - -extern "C" void create__13JKRAramStreamFl(); -extern "C" void __ct__13JKRAramStreamFl(); -extern "C" void __dt__13JKRAramStreamFv(); -extern "C" void run__13JKRAramStreamFv(); -extern "C" bool readFromAram__13JKRAramStreamFv(); -extern "C" void writeToAram__13JKRAramStreamFP20JKRAramStreamCommand(); -extern "C" void write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl(); -extern "C" void sync__13JKRAramStreamFP20JKRAramStreamCommandi(); -extern "C" void setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap(); -extern "C" void __ct__20JKRAramStreamCommandFv(); -extern "C" s32 getAvailable__20JSURandomInputStreamCFv(JSURandomInputStream*); -extern "C" extern char const* const JKRAramStream__stringBase0; -extern "C" u8 sMessageBuffer__13JKRAramStream[16]; -extern "C" u8 sMessageQueue__13JKRAramStream[32]; -extern "C" u8 sAramStreamObject__13JKRAramStream[4]; -extern "C" u8 transBuffer__13JKRAramStream[4]; -extern "C" u8 transSize__13JKRAramStream[4]; -extern "C" u8 transHeap__13JKRAramStream[4]; - -// -// External References: -// - -extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); -extern "C" void alloc__7JKRHeapFUli(); -extern "C" void free__7JKRHeapFPvP7JKRHeap(); -extern "C" void* __nw__FUlP7JKRHeapi(); -extern "C" void __dl__FPv(); -extern "C" void __ct__9JKRThreadFUlii(); -extern "C" void __dt__9JKRThreadFv(); -extern "C" void orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock(); -extern "C" void read__14JSUInputStreamFPvl(); -extern "C" void seek__20JSURandomInputStreamFl17JSUStreamSeekFrom(); -extern "C" void panic_f__12JUTExceptionFPCciPCce(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_26(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_26(); -extern "C" u8 sSystemHeap__7JKRHeap[4]; -extern "C" u8 sCurrentHeap__7JKRHeap[4]; - -// -// Declarations: -// /* ############################################################################################## */ /* 80451408-8045140C 000908 0004+00 1/1 0/0 0/0 .sbss sAramStreamObject__13JKRAramStream @@ -97,7 +46,7 @@ JKRAramStream::JKRAramStream(long priority) : JKRThread(0xc00, 0x10, priority) { JKRAramStream::~JKRAramStream() {} /* 802D3C68-802D3CD8 2CE5A8 0070+00 1/0 0/0 0/0 .text run__13JKRAramStreamFv */ -void* JKRAramStream::run(void) { +void* JKRAramStream::run() { OSInitMessageQueue(&sMessageQueue, sMessageBuffer, ARRAY_SIZE(sMessageBuffer)); for (;;) { @@ -117,16 +66,13 @@ void* JKRAramStream::run(void) { } /* 802D3CD8-802D3CE0 2CE618 0008+00 1/1 0/0 0/0 .text readFromAram__13JKRAramStreamFv */ -s32 JKRAramStream::readFromAram(void) { +s32 JKRAramStream::readFromAram() { 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->mSize; u32 offset = command->mOffset; u32 writtenLength = 0; @@ -134,31 +80,24 @@ s32 JKRAramStream::writeToAram(JKRAramStreamCommand* command) { u8* buffer = command->mTransferBuffer; u32 bufferSize = command->mTransferBufferSize; JKRHeap* heap = command->mHeap; - if (buffer) { - if (bufferSize) { - size = bufferSize; - } else { - size = 0x8000; - } - command->mTransferBufferSize = size; + if (buffer) { + bufferSize = (bufferSize) ? bufferSize : 0x8000; + + command->mTransferBufferSize = bufferSize; command->mAllocatedTransferBuffer = false; } else { - if (bufferSize) { - size = bufferSize; - } else { - size = 0x8000; - } + bufferSize = (bufferSize) ? bufferSize : 0x8000; if (heap) { - buffer = (u8*)JKRAllocFromHeap(heap, size, -0x20); + buffer = (u8*)JKRAllocFromHeap(heap, bufferSize, -0x20); command->mTransferBuffer = buffer; } else { - buffer = (u8*)JKRAllocFromSysHeap(size, -0x20); + buffer = (u8*)JKRAllocFromSysHeap(bufferSize, -0x20); command->mTransferBuffer = buffer; } - command->mTransferBufferSize = size; + command->mTransferBufferSize = bufferSize; command->mAllocatedTransferBuffer = true; } @@ -169,20 +108,15 @@ s32 JKRAramStream::writeToAram(JKRAramStreamCommand* command) { heap->dump(); } - JUTException::panic_f("JKRAramStream.cpp", 0xac, "%s", ":::Cannot alloc memory\n"); + JUTException::panic_f(__FILE__, 172, "%s", ":::Cannot alloc memory\n"); } if (buffer) { - ((JSURandomInputStream*)command->mStream)->seek(offset, JSUStreamSeekFrom_SET); + command->mStream->seek(offset, JSUStreamSeekFrom_SET); while (dstSize != 0) { - u32 length; - if (dstSize > size) { - length = size; - } else { - length = dstSize; - } + u32 length = (dstSize > bufferSize) ? bufferSize : dstSize; - s32 readLength = ((JSURandomInputStream*)command->mStream)->read(buffer, length); + s32 readLength = command->mStream->read(buffer, length); if (readLength == 0) { writtenLength = 0; break; @@ -190,7 +124,7 @@ s32 JKRAramStream::writeToAram(JKRAramStreamCommand* command) { JKRAramPcs(0, (u32)buffer, destination, length, NULL); dstSize -= length; - writtenLength += writtenLength; + writtenLength += length; destination += length; if (command->mReturnSize) { @@ -204,30 +138,9 @@ s32 JKRAramStream::writeToAram(JKRAramStreamCommand* command) { } } - OSSendMessage(&command->mMessageQueue, (OSMessage)writtenLength, OS_MESSAGE_NON_BLOCKING); + OSSendMessage(&command->mMessageQueue, (OSMessage)writtenLength, OS_MESSAGE_NOBLOCK); return writtenLength; } -#else -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D120 = "JKRAramStream.cpp"; -SECTION_DEAD static char const* const stringBase_8039D132 = "%s"; -SECTION_DEAD static char const* const stringBase_8039D135 = ":::Cannot alloc memory\n"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039D14D = "\0\0"; -#pragma pop - -/* 802D3CE0-802D3ED0 2CE620 01F0+00 1/1 0/0 0/0 .text - * writeToAram__13JKRAramStreamFP20JKRAramStreamCommand */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -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 */ @@ -322,5 +235,3 @@ JKRAramStreamCommand::JKRAramStreamCommand() { extern "C" s32 getAvailable__20JSURandomInputStreamCFv(JSURandomInputStream* self) { return self->getLength() - self->getPosition(); } - -/* 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 238268884d..988c461361 100644 --- a/libs/JSystem/JKernel/JKRArchivePri.cpp +++ b/libs/JSystem/JKernel/JKRArchivePri.cpp @@ -7,12 +7,6 @@ #include "JSystem/JKernel/JKRHeap.h" #include "MSL_C/MSL_Common/Src/ctype.h" #include "MSL_C/MSL_Common/Src/string.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// /* ############################################################################################## */ /* 80451420-80451428 000920 0004+04 1/1 5/5 0/0 .sbss sCurrentDirID__10JKRArchive */ @@ -78,7 +72,6 @@ JKRArchive::SDIDirEntry* JKRArchive::findDirectory(const char* name, u32 directo 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); @@ -95,6 +88,7 @@ JKRArchive::SDIFileEntry* JKRArchive::findTypeResource(u32 type, const char* nam if (type) { CArcName arcName(name); SDIDirEntry* dirEntry = findResType(type); + if (dirEntry) { SDIFileEntry* fileEntry = mFiles + dirEntry->first_file_index; for (int i = 0; i < dirEntry->num_entries; fileEntry++, i++) { @@ -115,8 +109,8 @@ JKRArchive::SDIFileEntry* JKRArchive::findFsResource(const char* name, u32 direc CArcName arcName(&name, '/'); SDIDirEntry* 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); diff --git a/libs/JSystem/JKernel/JKRArchivePub.cpp b/libs/JSystem/JKernel/JKRArchivePub.cpp index cae7cb8d58..73a69ddc99 100644 --- a/libs/JSystem/JKernel/JKRArchivePub.cpp +++ b/libs/JSystem/JKernel/JKRArchivePub.cpp @@ -12,12 +12,6 @@ #include "JSystem/JKernel/JKRFileLoader.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JKernel/JKRMemArchive.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// /* 802D5778-802D57E4 2D00B8 006C+00 2/2 0/0 0/0 .text check_mount_already__10JKRArchiveFlP7JKRHeap */ @@ -283,7 +277,7 @@ u32 JKRArchive::readResource(void* buffer, u32 bufferSize, u16 id) { /* 802D5FB4-802D603C 2D08F4 0088+00 1/0 2/0 0/0 .text removeResourceAll__10JKRArchiveFv */ -void JKRArchive::removeResourceAll(void) { +void JKRArchive::removeResourceAll() { if (mArcInfoBlock && mMountMode != MOUNT_MEM) { SDIFileEntry* fileEntry = mFiles; for (int i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) { @@ -326,7 +320,7 @@ u32 JKRArchive::getResSize(const void* resource) const { } /* 802D610C-802D6150 2D0A4C 0044+00 0/0 1/1 0/0 .text countResource__10JKRArchiveCFv */ -u32 JKRArchive::countResource(void) const { +u32 JKRArchive::countResource() const { u32 count = 0; for (int i = 0; i < mArcInfoBlock->num_file_entries; i++) { if (mFiles[i].isUnknownFlag1()) { diff --git a/libs/JSystem/JKernel/JKRAssertHeap.cpp b/libs/JSystem/JKernel/JKRAssertHeap.cpp index 0054cd87a4..21ebb2226b 100644 --- a/libs/JSystem/JKernel/JKRAssertHeap.cpp +++ b/libs/JSystem/JKernel/JKRAssertHeap.cpp @@ -4,56 +4,6 @@ // #include "JSystem/JKernel/JKRAssertHeap.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -// -// Forward References: -// - -extern "C" void __ct__13JKRAssertHeapFPvUlP7JKRHeapb(); -extern "C" void __dt__13JKRAssertHeapFv(); -extern "C" void create__13JKRAssertHeapFP7JKRHeap(); -extern "C" void do_destroy__13JKRAssertHeapFv(); -extern "C" void getHeapType__13JKRAssertHeapFv(); -extern "C" bool check__13JKRAssertHeapFv(); -extern "C" bool dump__13JKRAssertHeapFv(); -extern "C" bool dump_sort__13JKRAssertHeapFv(); -extern "C" bool do_changeGroupID__13JKRAssertHeapFUc(); -extern "C" bool do_getCurrentGroupId__13JKRAssertHeapFv(); -extern "C" bool do_alloc__13JKRAssertHeapFUli(); -extern "C" void do_free__13JKRAssertHeapFPv(); -extern "C" void do_freeAll__13JKRAssertHeapFv(); -extern "C" void do_freeTail__13JKRAssertHeapFv(); -extern "C" void do_fillFreeArea__13JKRAssertHeapFv(); -extern "C" bool do_resize__13JKRAssertHeapFPvUl(); -extern "C" bool do_getSize__13JKRAssertHeapFPv(); -extern "C" bool do_getFreeSize__13JKRAssertHeapFv(); -extern "C" bool do_getMaxFreeBlock__13JKRAssertHeapFv(); -extern "C" bool do_getTotalFreeSize__13JKRAssertHeapFv(); - -// -// External References: -// - -extern "C" void __ct__7JKRHeapFPvUlP7JKRHeapb(); -extern "C" void __dt__7JKRHeapFv(); -extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); -extern "C" void callAllDisposer__7JKRHeapFv(); -extern "C" void dispose__7JKRHeapFv(); -extern "C" void __dl__FPv(); -extern "C" void state_register__7JKRHeapCFPQ27JKRHeap6TStateUl(); -extern "C" void state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState(); -extern "C" void state_dump__7JKRHeapCFRCQ27JKRHeap6TState(); -extern "C" u8 sRootHeap__7JKRHeap[4]; - -// -// Declarations: -// /* 802D12C4-802D1300 2CBC04 003C+00 1/1 0/0 0/0 .text __ct__13JKRAssertHeapFPvUlP7JKRHeapb */ JKRAssertHeap::JKRAssertHeap(void* data, unsigned long size, JKRHeap* parent, bool errorFlag) @@ -83,17 +33,17 @@ JKRAssertHeap* JKRAssertHeap::create(JKRHeap* parent) { } /* 802D13D8-802D1408 2CBD18 0030+00 1/0 0/0 0/0 .text do_destroy__13JKRAssertHeapFv */ -void JKRAssertHeap::do_destroy(void) { +void JKRAssertHeap::do_destroy() { this->~JKRAssertHeap(); } /* 802D1408-802D1414 2CBD48 000C+00 1/0 0/0 0/0 .text getHeapType__13JKRAssertHeapFv */ -u32 JKRAssertHeap::getHeapType(void) { +u32 JKRAssertHeap::getHeapType() { return 'ASTH'; } /* 802D1414-802D141C 2CBD54 0008+00 1/0 0/0 0/0 .text check__13JKRAssertHeapFv */ -bool JKRAssertHeap::check(void) { +bool JKRAssertHeap::check() { return true; } @@ -114,7 +64,7 @@ s32 JKRAssertHeap::do_changeGroupID(u8) { } /* 802D1434-802D143C 2CBD74 0008+00 1/0 0/0 0/0 .text do_getCurrentGroupId__13JKRAssertHeapFv */ -u8 JKRAssertHeap::do_getCurrentGroupId(void) { +u8 JKRAssertHeap::do_getCurrentGroupId() { return 0; } @@ -124,25 +74,17 @@ void* JKRAssertHeap::do_alloc(u32, int) { } /* 802D1444-802D1448 2CBD84 0004+00 1/0 0/0 0/0 .text do_free__13JKRAssertHeapFPv */ -void JKRAssertHeap::do_free(void* param_0) { - /* empty function */ -} +void JKRAssertHeap::do_free(void* param_0) {} /* 802D1448-802D144C 2CBD88 0004+00 1/0 0/0 0/0 .text do_freeAll__13JKRAssertHeapFv */ -void JKRAssertHeap::do_freeAll() { - /* empty function */ -} +void JKRAssertHeap::do_freeAll() {} /* 802D144C-802D1450 2CBD8C 0004+00 1/0 0/0 0/0 .text do_freeTail__13JKRAssertHeapFv */ -void JKRAssertHeap::do_freeTail() { - /* empty function */ -} +void JKRAssertHeap::do_freeTail() {} /* 802D1450-802D1454 2CBD90 0004+00 1/0 0/0 0/0 .text do_fillFreeArea__13JKRAssertHeapFv */ -void JKRAssertHeap::do_fillFreeArea() { - /* empty function */ -} +void JKRAssertHeap::do_fillFreeArea() {} /* 802D1454-802D145C 2CBD94 0008+00 1/0 0/0 0/0 .text do_resize__13JKRAssertHeapFPvUl */ s32 JKRAssertHeap::do_resize(void*, u32) { @@ -156,16 +98,16 @@ s32 JKRAssertHeap::do_getSize(void*) { /* 802D1464-802D146C 2CBDA4 0008+00 1/0 0/0 0/0 .text do_getFreeSize__13JKRAssertHeapFv */ -s32 JKRAssertHeap::do_getFreeSize(void) { +s32 JKRAssertHeap::do_getFreeSize() { return 0; } /* 802D146C-802D1474 2CBDAC 0008+00 1/0 0/0 0/0 .text do_getMaxFreeBlock__13JKRAssertHeapFv */ -void* JKRAssertHeap::do_getMaxFreeBlock(void) { +void* JKRAssertHeap::do_getMaxFreeBlock() { return NULL; } /* 802D1474-802D147C 2CBDB4 0008+00 1/0 0/0 0/0 .text do_getTotalFreeSize__13JKRAssertHeapFv */ -s32 JKRAssertHeap::do_getTotalFreeSize(void) { +s32 JKRAssertHeap::do_getTotalFreeSize() { return 0; } diff --git a/libs/JSystem/JKernel/JKRCompArchive.cpp b/libs/JSystem/JKernel/JKRCompArchive.cpp index 6cbdb99a3e..8597e6727e 100644 --- a/libs/JSystem/JKernel/JKRCompArchive.cpp +++ b/libs/JSystem/JKernel/JKRCompArchive.cpp @@ -3,122 +3,15 @@ // Translation Unit: JKRCompArchive // -// #include "JSystem/JKernel/JKRCompArchive.h" +#include "JSystem/JKernel/JKRCompArchive.h" +#include "JSystem/JKernel/JKRAram.h" +#include "JSystem/JKernel/JKRDvdAramRipper.h" +#include "JSystem/JKernel/JKRDvdArchive.h" +#include "JSystem/JKernel/JKRMemArchive.h" +#include "JSystem/JUtility/JUTException.h" +#include "MSL_C/MSL_Common/Src/string.h" +#include "MSL_C/math.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 JKRMemArchive { - /* 802D6F5C */ void fetchResource_subroutine(u8*, u32, u8*, u32, int); -}; - -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 JKRDvdArchive { - /* 802D8474 */ void fetchResource_subroutine(s32, u32, u32, JKRHeap*, int, int, u8**); - /* 802D826C */ void fetchResource_subroutine(s32, u32, u32, u8*, u32, int, int); -}; - -struct JKRDvdAramRipper { - /* 802DA874 */ void loadToAram(s32, u32, JKRExpandSwitch, u32, u32, u32*); -}; - -struct JKRDecomp { - /* 802DB988 */ void orderSync(u8*, u8*, u32, u32); -}; - -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*); - /* 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 JKRCompArchive { - /* 802D87D4 */ JKRCompArchive(s32, JKRArchive::EMountDirection); - /* 802D887C */ ~JKRCompArchive(); - /* 802D89BC */ void open(s32); - /* 802D8F40 */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); - /* 802D90C0 */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); - /* 802D9260 */ void removeResourceAll(); - /* 802D92F4 */ void removeResource(void*); - /* 802D9360 */ void getExpandedResSize(void const*) const; -}; - -struct JKRAramHeap { - struct EAllocMode {}; - - /* 802D2FBC */ void alloc(u32, JKRAramHeap::EAllocMode); -}; - -struct JKRAramArchive { - /* 802D7858 */ void fetchResource_subroutine(u32, u32, u8*, u32, int); - /* 802D7914 */ void fetchResource_subroutine(u32, u32, JKRHeap*, int, u8**); -}; - -struct JKRAram { - /* 802D233C */ void mainRamToAram(u8*, u32, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); - /* 802D25B4 */ void aramToMainRam(u32, u8*, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); - - static u8 sAramObject[4]; -}; // // Forward References: @@ -138,7 +31,6 @@ extern "C" extern char const* const JKRCompArchive__stringBase0; // External References: // -SECTION_INIT void memset(); extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); extern "C" void alloc__7JKRHeapFUli(); extern "C" void free__7JKRHeapFPvP7JKRHeap(); @@ -177,7 +69,6 @@ extern "C" void orderSync__9JKRDecompFPUcPUcUlUl(); 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_28(); @@ -186,7 +77,6 @@ extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void abs(); extern "C" u8 sVolumeList__13JKRFileLoader[12]; extern "C" u8 sSystemHeap__7JKRHeap[4]; extern "C" u8 sAramObject__7JKRAram[4]; @@ -195,57 +85,60 @@ extern "C" u8 sAramObject__7JKRAram[4]; // Declarations: // -/* ############################################################################################## */ -/* 803CC3E8-803CC438 029508 0050+00 2/2 0/0 0/0 .data __vt__14JKRCompArchive */ -SECTION_DATA extern void* __vt__14JKRCompArchive[20] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14JKRCompArchiveFv, - (void*)unmount__13JKRFileLoaderFv, - (void*)becomeCurrent__10JKRArchiveFPCc, - (void*)getResource__10JKRArchiveFPCc, - (void*)getResource__10JKRArchiveFUlPCc, - (void*)readResource__10JKRArchiveFPvUlPCc, - (void*)readResource__10JKRArchiveFPvUlUlPCc, - (void*)removeResourceAll__14JKRCompArchiveFv, - (void*)removeResource__14JKRCompArchiveFPv, - (void*)detachResource__10JKRArchiveFPv, - (void*)getResSize__10JKRArchiveCFPCv, - (void*)countFile__10JKRArchiveCFPCc, - (void*)getFirstFile__10JKRArchiveCFPCc, - (void*)getExpandedResSize__14JKRCompArchiveCFPCv, - (void*)fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl, - (void*)fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl, - (void*)setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl, - (void*)getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry, -}; - /* 802D87D4-802D887C 2D3114 00A8+00 0/0 1/1 0/0 .text * __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRCompArchive::JKRCompArchive(s32 param_0, JKRArchive::EMountDirection param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRCompArchive/__ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection.s" +JKRCompArchive::JKRCompArchive(s32 entryNum, JKRArchive::EMountDirection eMountDirection) + : JKRArchive(entryNum, MOUNT_COMP) { + mMountDirection = eMountDirection; + + if (!open(entryNum)) { + return; + } + + mVolumeType = 'RARC'; + mVolumeName = &mStringTable[mNodes->name_offset]; + sVolumeList.prepend(&mFileLoaderLink); + mIsMounted = true; } -#pragma pop /* 802D887C-802D89BC 2D31BC 0140+00 1/0 0/0 0/0 .text __dt__14JKRCompArchiveFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRCompArchive::~JKRCompArchive() { - nofralloc -#include "asm/JSystem/JKernel/JKRCompArchive/__dt__14JKRCompArchiveFv.s" +JKRCompArchive::~JKRCompArchive() { + if (mArcInfoBlock != NULL) { + SDIFileEntry* file = mFiles; + for (int i = 0; i < mArcInfoBlock->num_file_entries; i++) { + if (!((file->type_flags_and_name_offset >> 0x18) & 0x10) && file->data != NULL) { + JKRFreeToHeap(mHeap, file->data); + } + + file++; + } + + JKRFreeToHeap(mHeap, mArcInfoBlock); + mArcInfoBlock = NULL; + } + + if (field_0x68 != NULL) { + delete field_0x68; + } + + if (mExpandedSize != NULL) { + i_JKRFree(mExpandedSize); + mExpandedSize = NULL; + } + + if (field_0x70 != NULL) { + delete field_0x70; + } + + sVolumeList.remove(&mFileLoaderLink); + mIsMounted = false; } -#pragma pop /* 802D89BC-802D8F40 2D32FC 0584+00 1/1 0/0 0/0 .text open__14JKRCompArchiveFl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRCompArchive::open(s32 param_0) { +asm bool JKRCompArchive::open(s32 param_0) { nofralloc #include "asm/JSystem/JKernel/JKRCompArchive/open__14JKRCompArchiveFl.s" } @@ -256,7 +149,7 @@ asm void JKRCompArchive::open(s32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRCompArchive::fetchResource(JKRArchive::SDIFileEntry* param_0, u32* param_1) { +asm void* JKRCompArchive::fetchResource(JKRArchive::SDIFileEntry* param_0, u32* param_1) { nofralloc #include "asm/JSystem/JKernel/JKRCompArchive/fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl.s" } @@ -276,33 +169,45 @@ SECTION_DEAD static char const* const stringBase_8039D236 = "illegal archive."; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRCompArchive::fetchResource(void* param_0, u32 param_1, - JKRArchive::SDIFileEntry* param_2, u32* param_3) { +asm void* JKRCompArchive::fetchResource(void* param_0, u32 param_1, + JKRArchive::SDIFileEntry* param_2, u32* param_3) { nofralloc #include "asm/JSystem/JKernel/JKRCompArchive/fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl.s" } #pragma pop /* 802D9260-802D92F4 2D3BA0 0094+00 1/0 0/0 0/0 .text removeResourceAll__14JKRCompArchiveFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRCompArchive::removeResourceAll() { - nofralloc -#include "asm/JSystem/JKernel/JKRCompArchive/removeResourceAll__14JKRCompArchiveFv.s" +void JKRCompArchive::removeResourceAll() { + if (mArcInfoBlock != NULL && mMountMode != MOUNT_MEM) { + SDIFileEntry* fileEntry = mFiles; + for (int i = 0; i < mArcInfoBlock->num_file_entries; i++) { + int tmp = fileEntry->type_flags_and_name_offset >> 0x18; + + if (fileEntry->data != NULL) { + if (!(tmp & 0x10)) { + JKRFreeToHeap(mHeap, fileEntry->data); + } + + fileEntry->data = NULL; + } + } + } } -#pragma pop /* 802D92F4-802D9360 2D3C34 006C+00 1/0 0/0 0/0 .text removeResource__14JKRCompArchiveFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRCompArchive::removeResource(void* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRCompArchive/removeResource__14JKRCompArchiveFPv.s" +bool JKRCompArchive::removeResource(void* resource) { + SDIFileEntry* fileEntry = findPtrResource(resource); + if (!fileEntry) + return false; + + if (!((fileEntry->type_flags_and_name_offset >> 0x18) & 0x10)) { + JKRFreeToHeap(mHeap, resource); + } + + fileEntry->data = NULL; + return true; } -#pragma pop /* ############################################################################################## */ /* 8039D220-8039D220 029880 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -317,7 +222,7 @@ SECTION_DEAD static char const* const pad_8039D259 = "\0\0\0\0\0\0"; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JKRCompArchive::getExpandedResSize(void const* param_0) const { +asm u32 JKRCompArchive::getExpandedResSize(void const* param_0) const { nofralloc #include "asm/JSystem/JKernel/JKRCompArchive/getExpandedResSize__14JKRCompArchiveCFPCv.s" } diff --git a/libs/JSystem/JKernel/JKRDecomp.cpp b/libs/JSystem/JKernel/JKRDecomp.cpp index f1f2a1799b..12994b94a7 100644 --- a/libs/JSystem/JKernel/JKRDecomp.cpp +++ b/libs/JSystem/JKernel/JKRDecomp.cpp @@ -5,10 +5,9 @@ #include "JSystem/JKernel/JKRDecomp.h" #include "JSystem/JKernel/JKRAramPiece.h" -#include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JKernel/JKRArchive.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Forward References: @@ -80,7 +79,7 @@ JKRDecomp::JKRDecomp(long priority) : JKRThread(0x800, 0x10, priority) { JKRDecomp::~JKRDecomp() {} /* 802DB790-802DB858 2D60D0 00C8+00 1/0 0/0 0/0 .text run__9JKRDecompFv */ -void* JKRDecomp::run(void) { +void* JKRDecomp::run() { OSInitMessageQueue(&sMessageQueue, sMessageBuffer, 8); for (;;) { OSMessage message; @@ -172,26 +171,23 @@ void JKRDecomp::decode(u8* srcBuffer, u8* dstBuffer, u32 srcLength, u32 dstLengt } /* 802DBA58-802DBC14 2D6398 01BC+00 1/1 0/0 0/0 .text decodeSZP__9JKRDecompFPUcPUcUlUl */ -// All instructions match. Wrong registers are used. +// 2 extra mr instructions #ifdef NONMATCHING void JKRDecomp::decodeSZP(u8* src, u8* dst, u32 srcLength, u32 dstLength) { - u32 decodedSize; + // s32 decodedSize; s32 srcChunkOffset; - s32 count; + u32 count; s32 dstOffset; u32 length; - u32 counter; - u32 srcDataOffset; - u32 linkTableOffset; + s32 linkInfo; 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); + s32 decodedSize = read_big_endian_u32(src + 4); + s32 linkTableOffset = read_big_endian_u32(src + 8); + s32 srcDataOffset = read_big_endian_u32(src + 12); dstOffset = 0; - counter = 0; + u32 counter = 0; srcChunkOffset = 16; u32 chunkBits; @@ -204,55 +200,50 @@ void JKRDecomp::decodeSZP(u8* src, u8* dst, u32 srcLength, u32 dstLength) { do { if (counter == 0) { chunkBits = read_big_endian_u32(src + srcChunkOffset); - srcChunkOffset += 4; - counter = 32; + srcChunkOffset += sizeof(u32); + counter = sizeof(u32) * 8; } if (chunkBits & 0x80000000) { if (dstLength == 0) { dst[dstOffset] = src[srcDataOffset]; length--; - if (length == 0) { + if (length == 0) return; - } } else { dstLength--; } dstOffset++; srcDataOffset++; } else { - u32 linkInfo = read_big_endian_u16(src + linkTableOffset); - linkTableOffset += 2; + linkInfo = src[linkTableOffset] << 8 | src[linkTableOffset + 1]; + linkTableOffset += sizeof(u16); offset = dstOffset - (linkInfo & 0xFFF); - count = ((s32)linkInfo) >> 12; + count = (linkInfo >> 12); if (count == 0) { count = (u32)src[srcDataOffset] + 0x12; srcDataOffset++; - } else { + } else count += 2; - } - if (count > decodedSize - dstOffset) { + if ((s32)count > decodedSize - dstOffset) count = decodedSize - dstOffset; - } - for (i = 0; i < count; i++, dstOffset++, offset++) { + for (i = 0; i < (s32)count; i++, dstOffset++, offset++) { if (dstLength == 0) { dst[dstOffset] = dst[offset - 1]; length--; - if (length == 0) { + if (length == 0) return; - } - } else { + } else dstLength--; - } } } chunkBits <<= 1; counter--; - } while ((s32)dstLength < decodedSize); + } while (dstOffset < decodedSize); } #else #pragma push @@ -267,19 +258,20 @@ asm void JKRDecomp::decodeSZP(u8* param_0, u8* param_1, u32 param_2, u32 param_3 /* 802DBC14-802DBCF8 2D6554 00E4+00 1/1 0/0 0/0 .text decodeSZS__9JKRDecompFPUcPUcUlUl */ #ifdef NONMATCHING -void JKRDecomp::decodeSZS(u8* src_buffer, u8* dst_buffer, u32 param_3, u32 param_4) { - int copyByteCount; +void JKRDecomp::decodeSZS(u8* src_buffer, u8* dst_buffer, u32 srcSize, u32 dstSize) { u8* decompEnd; u8* copyStart; - int chunkBitsLeft = 0; - int chunkBits; - decompEnd = dst_buffer + *(int*)(src_buffer + 4) - param_4; - if (param_3 == 0) { + s32 copyByteCount; + s32 chunkBitsLeft = 0; + s32 chunkBits; + + decompEnd = dst_buffer + *(int*)(src_buffer + 4) - dstSize; + + if (srcSize == 0) return; - } - if (param_4 > *(u32*)src_buffer) { + if (dstSize > *(u32*)src_buffer) return; - } + u8* curSrcPos = src_buffer + 0x10; do { if (chunkBitsLeft == 0) { @@ -288,19 +280,18 @@ void JKRDecomp::decodeSZS(u8* src_buffer, u8* dst_buffer, u32 param_3, u32 param curSrcPos++; } if ((chunkBits & 0x80) != 0) { - if (param_4 == 0) { + if (dstSize == 0) { *dst_buffer = *curSrcPos; - param_3--; + srcSize--; dst_buffer++; - if (param_3 == 0) { + if (srcSize == 0) return; - } } else { - param_4--; + dstSize--; } curSrcPos++; } else { - int curVal = *curSrcPos; + u8 curVal = *curSrcPos; // load is inversed copyStart = dst_buffer - ((curVal & 0xF) << 8 | curSrcPos[1]); // copyByteCount = ; @@ -313,15 +304,14 @@ void JKRDecomp::decodeSZS(u8* src_buffer, u8* dst_buffer, u32 param_3, u32 param copyByteCount = (curVal >> 4) + 2; } do { - if (param_4 == 0) { + if (dstSize == 0) { *dst_buffer = *(copyStart - 1); - param_3--; + srcSize--; dst_buffer++; - if (param_3 == 0) { + if (srcSize == 0) return; - } } else { - param_4--; + dstSize--; } copyByteCount--; copyStart++; @@ -348,13 +338,16 @@ JKRCompression JKRDecomp::checkCompressed(u8* src) { 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; } diff --git a/libs/JSystem/JKernel/JKRDisposer.cpp b/libs/JSystem/JKernel/JKRDisposer.cpp index bdcfcddebe..ddacb95443 100644 --- a/libs/JSystem/JKernel/JKRDisposer.cpp +++ b/libs/JSystem/JKernel/JKRDisposer.cpp @@ -5,12 +5,6 @@ #include "JSystem/JKernel/JKRDisposer.h" #include "JSystem/JKernel/JKRHeap.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// /* 802D147C-802D14E4 2CBDBC 0068+00 0/0 12/12 0/0 .text __ct__11JKRDisposerFv */ JKRDisposer::JKRDisposer() : mLink(this) { diff --git a/libs/JSystem/JKernel/JKRDvdAramRipper.cpp b/libs/JSystem/JKernel/JKRDvdAramRipper.cpp index 03b107e8f0..aa0375b7aa 100644 --- a/libs/JSystem/JKernel/JKRDvdAramRipper.cpp +++ b/libs/JSystem/JKernel/JKRDvdAramRipper.cpp @@ -7,10 +7,10 @@ #include "JSystem/JKernel/JKRAram.h" #include "JSystem/JKernel/JKRAramStream.h" #include "JSystem/JKernel/JKRDvdFile.h" -// #include "JSystem/JSupport/JSUFileStream.h" +#include "JSystem/JSupport/JSUFileStream.h" +#include "JSystem/JSupport/JSUList.h" #include "dol2asm.h" #include "dolphin/os/OSCache.h" -#include "dolphin/types.h" #include "dolphin/vi/vi.h" #include "global.h" @@ -23,16 +23,6 @@ struct JSUList__template10 { /* 802DB62C */ void func_802DB62C(void* _this); }; -struct JSUInputStream { - /* 802DC23C */ ~JSUInputStream(); -}; - -struct JSUFileInputStream { - /* 802DADD8 */ ~JSUFileInputStream(); - /* 802DC638 */ JSUFileInputStream(JKRFile*); - int padding[4]; -}; - struct JKRAramPiece { /* 802D3838 */ void orderSync(int, u32, u32, u32, JKRAramBlock*); }; @@ -120,14 +110,17 @@ JKRAramBlock* JKRDvdAramRipper::loadToAram(JKRDvdFile* dvdFile, u32 param_1, JKRADCommand* command = loadToAram_Async(dvdFile, param_1, param_2, NULL, param_3, param_4, param_5); syncAram(command, 0); + if (command->field_0x48 < 0) { delete command; return NULL; } + if (param_1) { delete command; return (JKRAramBlock*)-1; } + JKRAramBlock* result = command->mBlock; delete command; return result; @@ -147,10 +140,12 @@ JKRADCommand* JKRDvdAramRipper::loadToAram_Async(JKRDvdFile* dvdFile, u32 param_ command->field_0x3c = param_4; command->field_0x40 = param_5; command->field_0x44 = param_6; + if (!callCommand_Async(command)) { delete command; return NULL; } + return command; } @@ -176,6 +171,7 @@ JKRADCommand* JKRDvdAramRipper::callCommand_Async(JKRADCommand* command) { if (command->field_0x44) { *command->field_0x44 = 0; } + if (dvdFile->field_0x50) { bVar1 = false; } else { @@ -194,17 +190,21 @@ JKRADCommand* JKRDvdAramRipper::callCommand_Async(JKRADCommand* command) { if (DVDReadPrio(&dvdFile->mFileInfo, bufPtr, 0x20, 0, 2) >= 0) { break; } + if (data_804508D0 == 0) { delete stream; return NULL; } + VIWaitForRetrace(); } DCInvalidateRange(bufPtr, 0x20); JKRCompression tmpCompression = JKRDecomp::checkCompressed(bufPtr); + if (tmpCompression == 3) { tmpCompression = 0; } + compression = tmpCompression; uncompressedSize = bufPtr[4] << 0x18 | bufPtr[5] << 0x10 | bufPtr[6] << 0x08 | bufPtr[7]; @@ -212,9 +212,11 @@ JKRADCommand* JKRDvdAramRipper::callCommand_Async(JKRADCommand* command) { uncompressedSize = command->field_0x40; } } + if (compression == 0) { command->field_0x34 = 0; } + if (command->field_0x34 == 1) { if (command->field_0x2c == 0 && command->mBlock == NULL) { command->mBlock = @@ -224,9 +226,11 @@ JKRADCommand* JKRDvdAramRipper::callCommand_Async(JKRADCommand* command) { } dvdFile->mBlock = command->mBlock; } + if (command->mBlock) { command->field_0x2c = command->mBlock->mAddress; } + if (command->field_0x2c == 0) { dvdFile->field_0x50 = NULL; return NULL; @@ -235,14 +239,17 @@ JKRADCommand* JKRDvdAramRipper::callCommand_Async(JKRADCommand* command) { if (command->field_0x2c == 0 && !command->mBlock) { command->mBlock = JKRAram::getAramHeap()->alloc(fileSize, JKRAramHeap::HEAD); } + if (command->mBlock) { command->field_0x2c = command->mBlock->mAddress; } + if (command->field_0x2c == 0) { dvdFile->field_0x50 = NULL; return NULL; } } + if (compression == 0) { command->mStreamCommand = JKRAramStream::write_StreamToAram_Async( stream, command->field_0x2c, fileSize - command->field_0x3c, command->field_0x3c, @@ -257,12 +264,14 @@ JKRADCommand* JKRDvdAramRipper::callCommand_Async(JKRADCommand* command) { uncompressedSize, command->field_0x3c, 0, command->field_0x44); } + if (!command->field_0x38) { (*((JSUList*)&sDvdAramAsyncList)).append(&command->mLink); } else { command->field_0x38((u32)command); } } + OSUnlockMutex(&dvdFile->mMutex2); return bVar1 == true ? command : NULL; } @@ -281,7 +290,8 @@ asm JKRADCommand* JKRDvdAramRipper::callCommand_Async(JKRADCommand* command) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm JSUFileInputStream::~JSUFileInputStream() { +// asm JSUFileInputStream::~JSUFileInputStream() { +extern "C" asm void __dt__18JSUFileInputStreamFv() { nofralloc #include "asm/JSystem/JKernel/JKRDvdAramRipper/__dt__18JSUFileInputStreamFv.s" } @@ -289,22 +299,27 @@ asm JSUFileInputStream::~JSUFileInputStream() { /* 802DAE48-802DAF1C 2D5788 00D4+00 1/1 0/0 0/0 .text * syncAram__16JKRDvdAramRipperFP12JKRADCommandi */ +// should match when other functions using sDvdAramAsyncList are decompiled #ifdef NONMATCHING bool JKRDvdAramRipper::syncAram(JKRADCommand* command, int param_1) { JKRDvdFile* dvdFile = command->mDvdFile; OSLockMutex(&dvdFile->mMutex2); + if (command->mStreamCommand) { JKRAramStreamCommand* var1 = JKRAramStream::sync(command->mStreamCommand, param_1); command->field_0x48 = -(var1 == NULL); + if (param_1 != 0 && var1 == NULL) { OSUnlockMutex(&dvdFile->mMutex2); return false; } } + (*((JSUList*)&sDvdAramAsyncList)).remove(&command->mLink); if (command->mStreamCommand) { delete command->mStreamCommand; } + delete dvdFile->mFileStream; dvdFile->field_0x50 = NULL; OSUnlockMutex(&dvdFile->mMutex2); @@ -405,6 +420,7 @@ int JKRDecompressFromDVDToAram(JKRDvdFile* dvdFile, u32 param_1, u32 fileSize, u OSInitMutex(&decompMutex); data_804514A4 = true; } + OSRestoreInterrupts(level); OSLockMutex(&decompMutex); u32 bufferSize = JKRDvdAramRipper::sSZSBufferSize; @@ -478,8 +494,7 @@ static asm int dmaBufferFlush(u32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __sinit_JKRDvdAramRipper_cpp() { - nofralloc +asm void __sinit_JKRDvdAramRipper_cpp(){nofralloc #include "asm/JSystem/JKernel/JKRDvdAramRipper/__sinit_JKRDvdAramRipper_cpp.s" } #pragma pop diff --git a/libs/JSystem/JKernel/JKRDvdArchive.cpp b/libs/JSystem/JKernel/JKRDvdArchive.cpp index c2d094fac3..b29451d035 100644 --- a/libs/JSystem/JKernel/JKRDvdArchive.cpp +++ b/libs/JSystem/JKernel/JKRDvdArchive.cpp @@ -11,6 +11,7 @@ #include "MSL_C/math.h" #include "MSL_C/string.h" #include "dol2asm.h" +#include "dolphin/os/OS.h" #include "global.h" // @@ -74,11 +75,6 @@ extern "C" void _restgpr_29(); extern "C" u8 sVolumeList__13JKRFileLoader[12]; extern "C" u8 sSystemHeap__7JKRHeap[4]; -extern "C" { -void DCInvalidateRange(void*, u32); -void DCStoreRange(void*, u32); -} - // // Declarations: // @@ -226,6 +222,7 @@ void* JKRDvdArchive::fetchResource(SDIFileEntry* fileEntry, u32* returnSize) { if (resourceSize == 0) { return NULL; } + fileEntry->data = resourcePtr; if (fileCompression == COMPRESSION_YAZ0) { setExpandSize(fileEntry, *returnSize); @@ -346,12 +343,11 @@ u32 JKRDvdArchive::fetchResource_subroutine(s32 entryNum, u32 offset, u32 size, } case COMPRESSION_YAY0: { - JUTException::panic_f("JKRDvdArchive.cpp", 0x289, "%s", - "Sorry, not applied for SZP archive.\n"); + JUTException::panic_f(__FILE__, 649, "%s", "Sorry, not applied for SZP archive.\n"); } default: { - JUTException::panic_f("JKRDvdArchive.cpp", 0x28d, "%s", "??? bad sequence\n"); + JUTException::panic_f(__FILE__, 653, "%s", "??? bad sequence\n"); return 0; } } @@ -414,12 +410,11 @@ u32 JKRDvdArchive::fetchResource_subroutine(s32 entryNum, u32 offset, u32 size, } case COMPRESSION_YAY0: { - JUTException::panic_f("JKRDvdArchive.cpp", 0x2f2, "%s", - "Sorry, not applied SZP archive.\n"); + JUTException::panic_f(__FILE__, 754, "%s", "Sorry, not applied SZP archive.\n"); } default: { - JUTException::panic_f("JKRDvdArchive.cpp", 0x2f6, "%s", "??? bad sequence\n"); + JUTException::panic_f(__FILE__, 758, "%s", "??? bad sequence\n"); return 0; } } @@ -461,5 +456,3 @@ u32 JKRDvdArchive::getExpandedResSize(const void* resource) const { return resourceSize; } - -/* 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 211259d7a5..83356b1ee2 100644 --- a/libs/JSystem/JKernel/JKRDvdFile.cpp +++ b/libs/JSystem/JKernel/JKRDvdFile.cpp @@ -9,10 +9,6 @@ #include "dol2asm.h" #include "global.h" -// -// Declarations: -// - /* 8043436C-80434378 06108C 000C+00 4/4 0/0 0/0 .bss sDvdList__10JKRDvdFile */ JSUList JKRDvdFile::sDvdList; @@ -94,7 +90,7 @@ void JKRDvdFile::close() { mIsAvailable = false; getDvdList().remove(&mDvdLink); } else { - JUTException::panic_f("JKRDvdFile.cpp", 0xd5, "%s", "cannot close DVD file\n"); + JUTException::panic_f(__FILE__, 213, "%s", "cannot close DVD file\n"); } } } @@ -105,7 +101,7 @@ s32 JKRDvdFile::readData(void* param_1, long length, long param_3) { // The assert condition gets stringified as "( length & 0x1f ) == 0", // with out disabling clang-format the spaces in the condition will // get removed and the string will be incorrect. - JUT_ASSERT("JKRDvdFile.cpp", 0xee, ( length & 0x1f ) == 0); + JUT_ASSERT(__FILE__, 238, ( length & 0x1f ) == 0); /* clang-format on */ OSLockMutex(&mMutex1); @@ -155,5 +151,3 @@ void JKRDvdFile::doneProcess(long id, DVDFileInfo* fileInfo) { s32 JKRDvdFile::getFileSize(void) const { return mFileInfo.length; } - -/* 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 ac61b87dec..405214c384 100644 --- a/libs/JSystem/JKernel/JKRDvdRipper.cpp +++ b/libs/JSystem/JKernel/JKRDvdRipper.cpp @@ -9,7 +9,6 @@ #include "MSL_C/MSL_Common/Src/string.h" #include "dol2asm.h" #include "dolphin/os/OSCache.h" -#include "dolphin/types.h" #include "global.h" // @@ -107,7 +106,7 @@ void* JKRDvdRipper::loadToMainRAM(s32 entryNumber, u8* dst, JKRExpandSwitch expa /* 8039D290-8039D290 0298F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D290 = "JKRDvdRipper.cpp"; +SECTION_DEAD static char const* const stringBase_8039D290 = __FILE__; SECTION_DEAD static char const* const stringBase_8039D2A1 = "%s"; SECTION_DEAD static char const* const stringBase_8039D2A4 = "Sorry, not applied for SZP archive."; SECTION_DEAD static char const* const stringBase_8039D2C8 = "Not support SZP with offset read"; @@ -151,21 +150,26 @@ void* JKRDvdRipper::loadToMainRAM(JKRDvdFile* dvdFile, u8* dst, JKRExpandSwitch } r26 = (bufPtr[4] << 0x18) | (bufPtr[5] << 0x10) | (bufPtr[6] << 0x08) | (bufPtr[7]); } + if (pCompression) { *pCompression = compression; } + if (expandSwitch == EXPAND_SWITCH_UNKNOWN1 && compression) { if (dstLength != 0 && r26 > dstLength) { r26 = dstLength; } + if (!dst) { dst = (u8*)JKRHeap::alloc(r26, allocDirection == ALLOC_DIRECTION_FORWARD ? 0x20 : -0x20, heap); did_alloc = true; } + if (!dst) { return NULL; } + if (compression == 1) { mem = (u8*)JKRHeap::alloc(fileSizeAligned, 0x20, heap); if (mem == NULL && did_alloc == true) { @@ -183,10 +187,12 @@ void* JKRDvdRipper::loadToMainRAM(JKRDvdFile* dvdFile, u8* dst, JKRExpandSwitch var2, allocDirection == ALLOC_DIRECTION_FORWARD ? 0x20 : -0x20, heap); did_alloc = true; } + if (!dst) { return NULL; } } + if (compression == 0) { int count = 0; if (offset != 0) { @@ -197,31 +203,38 @@ void* JKRDvdRipper::loadToMainRAM(JKRDvdFile* dvdFile, u8* dst, JKRExpandSwitch if (count >= 0) { break; } + if (count == -3 || !data_804508C8) { if (did_alloc == true) { JKRHeap::free(dst, NULL); } return NULL; } + VIWaitForRetrace(); } + DCInvalidateRange(bufPtr, 0x20); count = JKRDecomp::checkCompressed(bufPtr); if (count == 3) { count = 0; } } + if (count == 0 || expandSwitch == EXPAND_SWITCH_UNKNOWN2 || - expandSwitch == EXPAND_SWITCH_UNKNOWN0) { + expandSwitch == EXPAND_SWITCH_UNKNOWN0) + { fileSizeAligned -= offset; if (dstLength != 0 && dstLength < fileSizeAligned) { fileSizeAligned = dstLength; } + while (true) { count = DVDReadPrio(dvdFile->getFileInfo(), dst, fileSizeAligned, offset, 2); if (count >= 0) { break; } + if (count == -3 || !data_804508C8) { if (did_alloc == true) { JKRHeap::free(dst, NULL); @@ -230,6 +243,7 @@ void* JKRDvdRipper::loadToMainRAM(JKRDvdFile* dvdFile, u8* dst, JKRExpandSwitch } VIWaitForRetrace(); } + if (param_8) { *param_8 = fileSizeAligned; } @@ -237,24 +251,25 @@ void* JKRDvdRipper::loadToMainRAM(JKRDvdFile* dvdFile, u8* dst, JKRExpandSwitch } else if (count == 2) { JKRDecompressFromDVD(dvdFile, dst, fileSizeAligned, dstLength, 0, offset, param_8); } else { - JUTException::panic_f("JKRDvdRipper.cpp", 0x143, "%s", - "Sorry, not applied for SZP archive."); + JUTException::panic_f(__FILE__, 0x143, "%s", "Sorry, not applied for SZP archive."); } return dst; } else if (compression == 1) { if (offset) { - JUTException::panic_f("JKRDvdRipper.cpp", 0x14d, "%s", - "Not support SZP with offset read"); + JUTException::panic_f(__FILE__, 0x14d, "%s", "Not support SZP with offset read"); } + while (true) { int count = DVDReadPrio(dvdFile->getFileInfo(), mem, fileSizeAligned, 0, 2); if (count >= 0) { break; } + if (count == -3 || !data_804508C8) { if (did_alloc == true) { JKRHeap::free(dst, NULL); } + JKRHeap::free(mem, NULL); return NULL; } @@ -356,6 +371,7 @@ static u32 tsArea; /* 802DA1E4-802DA35C 2D4B24 0178+00 1/1 0/0 0/0 .text * JKRDecompressFromDVD__FP10JKRDvdFilePvUlUlUlUlPUl */ +// wrong reg at the end #ifdef NONMATCHING static int JKRDecompressFromDVD(JKRDvdFile* dvdFile, void* dst, u32 fileSize, u32 param_3, u32 param_4, u32 param_5, u32* param_6) { @@ -364,11 +380,13 @@ static int JKRDecompressFromDVD(JKRDvdFile* dvdFile, void* dst, u32 fileSize, u3 OSInitMutex(&decompMutex); data_80451458 = true; } + OSRestoreInterrupts(level); OSLockMutex(&decompMutex); u32 bufferSize = JKRDvdRipper::sSZSBufferSize; szpBuf = (u8*)JKRHeap::sSystemHeap->alloc(bufferSize, -0x20); szpEnd = szpBuf + bufferSize; + if (param_4) { refBuf = (u8*)JKRHeap::sSystemHeap->alloc(0x1120, -4); refEnd = refBuf + 0x1120; @@ -376,24 +394,29 @@ static int JKRDecompressFromDVD(JKRDvdFile* dvdFile, void* dst, u32 fileSize, u3 } else { refBuf = NULL; } + srcFile = dvdFile; srcOffset = param_5; transLeft = fileSize - param_5; fileOffset = param_4; readCount = 0; maxDest = param_3; + if (!param_6) { tsPtr = &tsArea; } else { tsPtr = param_6; } + *tsPtr = 0; u8* first = firstSrcData(); int result = first ? decompSZS_subroutine(first, (u8*)dst) : -1; - JKRHeap::free(szpBuf, 0); + i_JKRFree(szpBuf); + if (refBuf) { - JKRHeap::free(refBuf, 0); + i_JKRFree(refBuf); } + DCStoreRangeNoSync(dst, *tsPtr); OSUnlockMutex(&decompMutex); return result; @@ -542,16 +565,19 @@ static u8* firstSrcData() { u8* buffer = szpBuf; u32 bufSize = szpEnd - buffer; u32 length = transLeft < bufSize ? transLeft : bufSize; + while (true) { int result = DVDReadPrio(srcFile->getFileInfo(), buffer, length, srcOffset, 2); if (result >= 0) { break; } + if (result == -3 || !data_804508C8) { return NULL; } VIWaitForRetrace(); } + DCInvalidateRange(buffer, length); srcOffset += length; transLeft -= length; @@ -566,9 +592,11 @@ static u8* nextSrcData(u8* param_0) { memcpy(dest, param_0, size); u8* end = dest + size; u32 transSize = szpEnd - end; + if (transSize > transLeft) { transSize = transLeft; } + while (true) { s32 result = DVDReadPrio(srcFile->getFileInfo(), end, transSize, srcOffset, 2); if (result >= 0) { @@ -580,12 +608,15 @@ static u8* nextSrcData(u8* param_0) { } VIWaitForRetrace(); } + DCInvalidateRange(end, transSize); srcOffset += transSize; transLeft -= transSize; + if (transLeft == 0) { srcLimit = end + transSize; } + return dest; } #else @@ -608,8 +639,7 @@ u8 JKRDvdRipper::isErrorRetry() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void __sinit_JKRDvdRipper_cpp() { - nofralloc +asm void __sinit_JKRDvdRipper_cpp(){nofralloc #include "asm/JSystem/JKernel/JKRDvdRipper/__sinit_JKRDvdRipper_cpp.s" } #pragma pop @@ -629,5 +659,3 @@ extern "C" asm void func_802DA820(void* _this) { #include "asm/JSystem/JKernel/JKRDvdRipper/func_802DA820.s" } #pragma pop - -/* 8039D290-8039D290 0298F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRExpHeap.cpp b/libs/JSystem/JKernel/JKRExpHeap.cpp index 5c656d0f38..62177a250c 100644 --- a/libs/JSystem/JKernel/JKRExpHeap.cpp +++ b/libs/JSystem/JKernel/JKRExpHeap.cpp @@ -4,9 +4,9 @@ // #include "JSystem/JKernel/JKRExpHeap.h" +#include "JSystem/JSupport/JSupport.h" #include "JSystem/JUtility/JUTException.h" #include "dol2asm.h" -#include "dolphin/types.h" #include "global.h" // @@ -114,7 +114,6 @@ JKRExpHeap* JKRExpHeap::createRoot(int maxHeaps, bool errorFlag) { /* 802CEE2C-802CEF00 2C976C 00D4+00 0/0 19/19 1/1 .text create__10JKRExpHeapFUlP7JKRHeapb */ -#ifdef NONMATCHING JKRExpHeap* JKRExpHeap::create(u32 size, JKRHeap* parent, bool errorFlag) { if (!parent) { parent = sRootHeap; @@ -129,30 +128,23 @@ JKRExpHeap* JKRExpHeap::create(u32 size, JKRHeap* parent, bool errorFlag) { if (alignedSize < 0xa0) return NULL; - void* memory = alloc(alignedSize, 0x10, parent); - void* dataPtr = (u8*)memory + expHeapSize; + u8* memory = (u8*)JKRAllocFromHeap(parent, alignedSize, 0x10); + u8* dataPtr = (memory + expHeapSize); if (!memory) { return NULL; } + JKRExpHeap* newHeap = new (memory) JKRExpHeap(dataPtr, alignedSize - expHeapSize, parent, errorFlag); + if (newHeap == NULL) { - free(memory, NULL); + i_JKRFree(memory); return NULL; - }; + } + newHeap->field_0x6e = false; return newHeap; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRExpHeap* JKRExpHeap::create(u32 param_0, JKRHeap* param_1, bool param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRExpHeap/create__10JKRExpHeapFUlP7JKRHeapb.s" -} -#pragma pop -#endif /* 802CEF00-802CEFAC 2C9840 00AC+00 0/0 1/1 0/0 .text create__10JKRExpHeapFPvUlP7JKRHeapb */ @@ -165,15 +157,18 @@ JKRExpHeap* JKRExpHeap::create(void* ptr, u32 size, JKRHeap* parent, bool errorF } else { parent2 = parent; } + JKRExpHeap* newHeap = NULL; u32 expHeapSize = ALIGN_NEXT(sizeof(JKRExpHeap), 0x10); if (size < expHeapSize) return NULL; + void* dataPtr = (u8*)ptr + expHeapSize; u32 alignedSize = ALIGN_PREV((u32)ptr + size - (u32)dataPtr, 0x10); if (ptr) { newHeap = new (ptr) JKRExpHeap(dataPtr, alignedSize, parent2, errorFlag); } + newHeap->field_0x6e = true; newHeap->field_0x70 = ptr; newHeap->field_0x74 = size; @@ -193,35 +188,6 @@ void JKRExpHeap::do_destroy() { } } -/* ############################################################################################## */ -/* 803CBFD0-803CC030 0290F0 0060+00 2/2 0/0 0/0 .data __vt__10JKRExpHeap */ -SECTION_DATA extern void* __vt__10JKRExpHeap[24] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10JKRExpHeapFv, - (void*)callAllDisposer__7JKRHeapFv, - (void*)getHeapType__10JKRExpHeapFv, - (void*)check__10JKRExpHeapFv, - (void*)dump_sort__10JKRExpHeapFv, - (void*)dump__10JKRExpHeapFv, - (void*)do_destroy__10JKRExpHeapFv, - (void*)do_alloc__10JKRExpHeapFUli, - (void*)do_free__10JKRExpHeapFPv, - (void*)do_freeAll__10JKRExpHeapFv, - (void*)do_freeTail__10JKRExpHeapFv, - (void*)do_fillFreeArea__10JKRExpHeapFv, - (void*)do_resize__10JKRExpHeapFPvUl, - (void*)do_getSize__10JKRExpHeapFPv, - (void*)do_getFreeSize__10JKRExpHeapFv, - (void*)do_getMaxFreeBlock__10JKRExpHeapFv, - (void*)do_getTotalFreeSize__10JKRExpHeapFv, - (void*)do_changeGroupID__10JKRExpHeapFUc, - (void*)do_getCurrentGroupId__10JKRExpHeapFv, - (void*)state_register__10JKRExpHeapCFPQ27JKRHeap6TStateUl, - (void*)state_compare__10JKRExpHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState, - (void*)state_dump__7JKRHeapCFRCQ27JKRHeap6TState, -}; - /* 802CF030-802CF0C0 2C9970 0090+00 3/3 0/0 0/0 .text __ct__10JKRExpHeapFPvUlP7JKRHeapb */ JKRExpHeap::JKRExpHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag) @@ -248,6 +214,7 @@ void* JKRExpHeap::do_alloc(u32 size, int alignment) { if (size < 4) { size = 4; } + if (alignment >= 0) { if (alignment <= 4) { ptr = allocFromHead(size); @@ -261,6 +228,7 @@ void* JKRExpHeap::do_alloc(u32 size, int alignment) { ptr = allocFromTail(size, -alignment); } } + if (ptr == NULL) { JUTWarningConsole_f(":::cannot alloc memory (0x%x byte).\n", size); if (mErrorFlag == true) { @@ -289,68 +257,82 @@ static JKRExpHeap::CMemBlock* DBnewFreeBlock; static JKRExpHeap::CMemBlock* DBnewUsedBlock; /* 802CF234-802CF490 2C9B74 025C+00 1/1 0/0 0/0 .text allocFromHead__10JKRExpHeapFUli */ +// wrong register at end #ifdef NONMATCHING void* JKRExpHeap::allocFromHead(u32 size, int align) { - size = ALIGN_NEXT(size, 4); - s32 foundSize = -1; - u32 foundOffset = 0; - CMemBlock* foundBlock = NULL; + u32 foundOffset; + int foundSize; + CMemBlock* newFreeBlock; + CMemBlock* newUsedBlock; + CMemBlock* foundBlock; - for (CMemBlock* block = mHeadFreeList; block; block = block->getNextBlock()) { - u32 start = (u32)(block->getContent()); - u32 offset = ALIGN_PREV(align - 1 + start, align) - start; - if (block->getSize() < size + offset) { + size = ALIGN_NEXT(size, 4); + foundSize = -1; + foundOffset = 0; + foundBlock = NULL; + + for (CMemBlock* block = mHeadFreeList; block; block = block->mNext) { + u32 offset = + ALIGN_PREV(align - 1 + (u32)block->getContent(), align) - (u32)block->getContent(); + if (block->size < size + offset) { continue; } - if (foundSize <= block->getSize()) { + + if (foundSize <= (u32)block->size) { continue; } - foundSize = block->getSize(); + + foundSize = block->size; foundBlock = block; foundOffset = offset; if (mAllocMode != 0) { break; } - u32 blockSize = block->getSize(); + + u32 blockSize = block->size; if (blockSize == size) { break; } } + DBfoundSize = foundSize; DBfoundOffset = foundOffset; DBfoundBlock = foundBlock; + if (foundBlock) { if (foundOffset >= sizeof(CMemBlock)) { - CMemBlock* prev = foundBlock->getPrevBlock(); - CMemBlock* next = foundBlock->getNextBlock(); - CMemBlock* newUsedBlock = - foundBlock->allocFore(foundOffset - sizeof(CMemBlock), 0, 0, 0, 0); - CMemBlock* newFreeBlock; + CMemBlock* prev = foundBlock->mPrev; + CMemBlock* next = foundBlock->mNext; + newUsedBlock = foundBlock->allocFore(foundOffset - sizeof(CMemBlock), 0, 0, 0, 0); + if (newUsedBlock) { newFreeBlock = newUsedBlock->allocFore(size, mCurrentGroupId, 0, 0, 0); } else { newFreeBlock = NULL; } + if (newFreeBlock) { setFreeBlock(foundBlock, prev, newFreeBlock); } else { setFreeBlock(foundBlock, prev, next); } + if (newFreeBlock) { setFreeBlock(newFreeBlock, foundBlock, next); } + appendUsedList(newUsedBlock); DBnewFreeBlock = newFreeBlock; DBnewUsedBlock = newUsedBlock; return newUsedBlock->getContent(); } else { if (foundOffset != 0) { - CMemBlock* prev = foundBlock->getPrevBlock(); - CMemBlock* next = foundBlock->getNextBlock(); + CMemBlock* prev = foundBlock->mPrev; + CMemBlock* next = foundBlock->mNext; removeFreeBlock(foundBlock); - CMemBlock* newUsedBlock = (CMemBlock*)((u32)foundBlock + foundOffset); - newUsedBlock->size = foundBlock->getSize() - foundOffset; - CMemBlock* newFreeBlock = + newUsedBlock = (CMemBlock*)((u32)foundBlock + foundOffset); + newUsedBlock->size = foundBlock->size - foundOffset; + newFreeBlock = newUsedBlock->allocFore(size, mCurrentGroupId, (u8)foundOffset, 0, 0); if (newFreeBlock) { setFreeBlock(newFreeBlock, prev, next); @@ -358,9 +340,9 @@ void* JKRExpHeap::allocFromHead(u32 size, int align) { appendUsedList(newUsedBlock); return newUsedBlock->getContent(); } else { - CMemBlock* prev = foundBlock->getPrevBlock(); - CMemBlock* next = foundBlock->getNextBlock(); - CMemBlock* newFreeBlock = foundBlock->allocFore(size, mCurrentGroupId, 0, 0, 0); + CMemBlock* prev = foundBlock->mPrev; + CMemBlock* next = foundBlock->mNext; + newFreeBlock = foundBlock->allocFore(size, mCurrentGroupId, 0, 0, 0); removeFreeBlock(foundBlock); if (newFreeBlock) { setFreeBlock(newFreeBlock, prev, next); @@ -370,6 +352,7 @@ void* JKRExpHeap::allocFromHead(u32 size, int align) { } } } + return NULL; } #else @@ -392,18 +375,22 @@ void* JKRExpHeap::allocFromHead(u32 size) { if (block->getSize() < size) { continue; } + if (foundSize <= block->getSize()) { continue; } + foundSize = block->getSize(); foundBlock = block; if (mAllocMode != 0) { break; } + if (foundSize == size) { break; } } + if (foundBlock) { CMemBlock* newblock = foundBlock->allocFore(size, mCurrentGroupId, 0, 0, 0); if (newblock) { @@ -418,25 +405,24 @@ void* JKRExpHeap::allocFromHead(u32 size) { } /* 802CF574-802CF6D4 2C9EB4 0160+00 1/1 0/0 0/0 .text allocFromTail__10JKRExpHeapFUli */ -#ifdef NONMATCHING void* JKRExpHeap::allocFromTail(u32 size, int align) { u32 offset = 0; CMemBlock* foundBlock = NULL; CMemBlock* newBlock = NULL; - u32 end; - u32 start; u32 usedSize; - for (CMemBlock* block = mTailFreeList; block; block = block->getPrevBlock()) { - end = (u32)block->getContent() + block->getSize(); - start = ALIGN_PREV(end - size, align); - usedSize = end - start; - if (block->getSize() >= usedSize) { + u32 start; + + for (CMemBlock* block = mTailFreeList; block; block = block->mPrev) { + start = ALIGN_PREV((u32)block->getContent() + block->size - size, align); + usedSize = (u32)block->getContent() + block->size - start; + if (block->size >= usedSize) { foundBlock = block; - offset = block->getSize() - usedSize; + offset = block->size - usedSize; newBlock = (CMemBlock*)start - 1; break; } } + if (foundBlock != NULL) { if (offset >= sizeof(CMemBlock)) { newBlock->initiate(NULL, NULL, usedSize, mCurrentGroupId, -0x80); @@ -457,18 +443,9 @@ void* JKRExpHeap::allocFromTail(u32 size, int align) { } } } + return NULL; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void* JKRExpHeap::allocFromTail(u32 param_0, int param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRExpHeap/allocFromTail__10JKRExpHeapFUli.s" -} -#pragma pop -#endif /* 802CF6D4-802CF7AC 2CA014 00D8+00 1/1 0/0 0/0 .text allocFromTail__10JKRExpHeapFUl */ void* JKRExpHeap::allocFromTail(u32 size) { @@ -480,6 +457,7 @@ void* JKRExpHeap::allocFromTail(u32 size) { break; } } + if (foundBlock != NULL) { CMemBlock* usedBlock = foundBlock->allocBack(size2, 0, 0, mCurrentGroupId, 0); CMemBlock* freeBlock; @@ -490,6 +468,7 @@ void* JKRExpHeap::allocFromTail(u32 size) { usedBlock = foundBlock; freeBlock = NULL; } + if (freeBlock) { setFreeBlock(freeBlock, foundBlock->getPrevBlock(), foundBlock->getNextBlock()); } @@ -524,37 +503,23 @@ void JKRExpHeap::do_freeAll() { } /* 802CF89C-802CF924 2CA1DC 0088+00 1/0 0/0 0/0 .text do_freeTail__10JKRExpHeapFv */ -#ifdef NONMATCHING void JKRExpHeap::do_freeTail() { lock(); - CMemBlock* block = mHeadUsedList; - while (block) { - if (block->_isTempMemBlock()) { - dispose(block->getContent(), block->getSize()); - CMemBlock* next = block->getNextBlock(); + for (CMemBlock* block = mHeadUsedList; block != NULL;) { + if ((block->mFlags & 0x80) != 0) { + dispose(block + 1, block->size); + CMemBlock* temp = block->mNext; block->free(this); - block = next; + block = temp; } else { - block = block->getNextBlock(); + block = block->mNext; } } unlock(); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRExpHeap::do_freeTail() { - nofralloc -#include "asm/JSystem/JKernel/JKRExpHeap/do_freeTail__10JKRExpHeapFv.s" -} -#pragma pop -#endif /* 802CF924-802CF928 2CA264 0004+00 1/0 0/0 0/0 .text do_fillFreeArea__10JKRExpHeapFv */ -void JKRExpHeap::do_fillFreeArea() { - /* empty function */ -} +void JKRExpHeap::do_fillFreeArea() {} /* 802CF928-802CF978 2CA268 0050+00 1/0 0/0 0/0 .text do_changeGroupID__10JKRExpHeapFUc */ @@ -567,67 +532,59 @@ s32 JKRExpHeap::do_changeGroupID(u8 param_0) { } /* 802CF978-802CFB24 2CA2B8 01AC+00 1/0 0/0 0/0 .text do_resize__10JKRExpHeapFPvUl */ -#ifdef NONMATCHING s32 JKRExpHeap::do_resize(void* ptr, u32 size) { lock(); CMemBlock* block = CMemBlock::getHeapBlock(ptr); - if (block == NULL || ptr < getStartAddr() || getEndAddr() < ptr) { + if (block == NULL || ptr < mStart || mEnd < ptr) { unlock(); return -1; } - u32 newSize = ALIGN_NEXT(size, 4); - if (newSize == block->getSize()) { + + size = ALIGN_NEXT(size, 4); + if (size == block->size) { unlock(); - return newSize; + return size; } - if (newSize > block->getSize()) { + + if (size > block->size) { CMemBlock* foundBlock = NULL; - for (CMemBlock* freeBlock = mHeadFreeList; freeBlock; - freeBlock = freeBlock->getNextBlock()) { - if (freeBlock == (CMemBlock*)((u32)block->getContent() + block->getSize())) { + for (CMemBlock* freeBlock = mHeadFreeList; freeBlock; freeBlock = freeBlock->mNext) { + if (freeBlock == (CMemBlock*)((u32)(block + 1) + block->size)) { foundBlock = freeBlock; break; } } + if (foundBlock == NULL) { unlock(); return -1; } - if (newSize > block->getSize() + sizeof(CMemBlock) + foundBlock->getSize()) { + + if (size > block->size + sizeof(CMemBlock) + foundBlock->size) { unlock(); return -1; } + removeFreeBlock(foundBlock); - block->size += foundBlock->getSize() + sizeof(CMemBlock); - if (block->getSize() - newSize > sizeof(CMemBlock)) { - CMemBlock* newBlock = - block->allocFore(newSize, block->getGroupId(), block->mFlags, 0, 0); + block->size += foundBlock->size + sizeof(CMemBlock); + if (block->size - size > sizeof(CMemBlock)) { + CMemBlock* newBlock = block->allocFore(size, block->mGroupId, block->mFlags, 0, 0); if (newBlock) { recycleFreeBlock(newBlock); } } } else { - if (block->getSize() - newSize > 0x10) { - CMemBlock* freeBlock = - block->allocFore(newSize, block->getGroupId(), block->mFlags, 0, 0); + if (block->size - size > sizeof(CMemBlock)) { + CMemBlock* freeBlock = block->allocFore(size, block->mGroupId, block->mFlags, 0, 0); if (freeBlock) { recycleFreeBlock(freeBlock); } } } + unlock(); - return block->getSize(); + return block->size; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 JKRExpHeap::do_resize(void* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JKernel/JKRExpHeap/do_resize__10JKRExpHeapFPvUl.s" -} -#pragma pop -#endif /* 802CFB24-802CFBA4 2CA464 0080+00 1/0 0/0 0/0 .text do_getSize__10JKRExpHeapFPv */ s32 JKRExpHeap::do_getSize(void* ptr) { @@ -687,12 +644,14 @@ s32 JKRExpHeap::getUsedSize(u8 groupId) const { JKRExpHeap* this2 = const_cast(this); this2->lock(); u32 size = 0; + for (CMemBlock* block = mHeadUsedList; block; block = block->getNextBlock()) { u8 blockGroupId = block->getGroupId(); if (blockGroupId == groupId) { size += block->getSize() + sizeof(CMemBlock); } } + this2->unlock(); return size; } @@ -703,9 +662,11 @@ s32 JKRExpHeap::getTotalUsedSize() const { JKRExpHeap* this2 = const_cast(this); this2->lock(); u32 size = 0; + for (CMemBlock* block = mHeadUsedList; block; block = block->getNextBlock()) { size += block->getSize() + sizeof(CMemBlock); } + this2->unlock(); return size; } @@ -714,16 +675,19 @@ s32 JKRExpHeap::getTotalUsedSize() const { * appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock */ void JKRExpHeap::appendUsedList(JKRExpHeap::CMemBlock* newblock) { if (!newblock) { - JUTException::panic_f("JKRExpHeap.cpp", 0x620, "%s", "bad appendUsedList\n"); + JUTException::panic_f(__FILE__, 1568, "%s", "bad appendUsedList\n"); } + CMemBlock* block = mTailUsedList; newblock->mMagic = 'HM'; + if (block) { block->mNext = newblock; newblock->mPrev = block; } else { newblock->mPrev = NULL; } + mTailUsedList = newblock; if (!mHeadUsedList) { mHeadUsedList = newblock; @@ -742,6 +706,7 @@ void JKRExpHeap::setFreeBlock(CMemBlock* block, CMemBlock* prev, CMemBlock* next prev->mNext = block; block->mPrev = prev; } + if (next == NULL) { mTailFreeList = block; block->mNext = NULL; @@ -749,6 +714,7 @@ void JKRExpHeap::setFreeBlock(CMemBlock* block, CMemBlock* prev, CMemBlock* next next->mPrev = block; block->mNext = next; } + block->mMagic = 0; } @@ -757,11 +723,13 @@ void JKRExpHeap::setFreeBlock(CMemBlock* block, CMemBlock* prev, CMemBlock* next void JKRExpHeap::removeFreeBlock(CMemBlock* block) { CMemBlock* prev = block->mPrev; CMemBlock* next = block->mNext; + if (prev == NULL) { mHeadFreeList = next; } else { prev->mNext = next; } + if (next == NULL) { mTailFreeList = prev; } else { @@ -774,11 +742,13 @@ void JKRExpHeap::removeFreeBlock(CMemBlock* block) { void JKRExpHeap::removeUsedBlock(JKRExpHeap::CMemBlock* block) { CMemBlock* prev = block->mPrev; CMemBlock* next = block->mNext; + if (prev == NULL) { mHeadUsedList = next; } else { prev->mNext = next; } + if (next == NULL) { mTailUsedList = prev; } else { @@ -788,143 +758,99 @@ void JKRExpHeap::removeUsedBlock(JKRExpHeap::CMemBlock* block) { /* 802CFF1C-802D00B4 2CA85C 0198+00 2/2 0/0 0/0 .text * recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock */ -#ifdef NONMATCHING void JKRExpHeap::recycleFreeBlock(JKRExpHeap::CMemBlock* block) { - u32 size = block->size; + JKRExpHeap::CMemBlock* newBlock = block; + int size = block->size; void* blockEnd = (u8*)block + size; block->mMagic = 0; - u32 offset = block->getAlignment(); - if (offset) { - block = (CMemBlock*)((u8*)block - offset); - size += offset; - blockEnd = (u8*)block + size; - block->mGroupId = 0; - block->mFlags = 0; - block->size = size; + + if ((block->mFlags & 0x7f) != 0) { + newBlock = (CMemBlock*)((u8*)block - (block->mFlags & 0x7f)); + size += (block->mFlags & 0x7f); + blockEnd = (u8*)newBlock + size; + newBlock->mGroupId = 0; + newBlock->mFlags = 0; + newBlock->size = size; } if (!mHeadFreeList) { - block->initiate(NULL, NULL, size, 0, 0); - mHeadFreeList = block; - mTailFreeList = block; - setFreeBlock(block, NULL, NULL); + newBlock->initiate(NULL, NULL, size, 0, 0); + mHeadFreeList = newBlock; + mTailFreeList = newBlock; + setFreeBlock(newBlock, NULL, NULL); return; } + if (mHeadFreeList >= blockEnd) { - block->initiate(NULL, NULL, size, 0, 0); - setFreeBlock(block, NULL, mHeadFreeList); - joinTwoBlocks(block); + newBlock->initiate(NULL, NULL, size, 0, 0); + setFreeBlock(newBlock, NULL, mHeadFreeList); + joinTwoBlocks(newBlock); return; } - if (mTailFreeList <= block) { - block->initiate(NULL, NULL, size, 0, 0); - setFreeBlock(block, mTailFreeList, NULL); - joinTwoBlocks(block->getPrevBlock()); + + if (mTailFreeList <= newBlock) { + newBlock->initiate(NULL, NULL, size, 0, 0); + setFreeBlock(newBlock, mTailFreeList, NULL); + joinTwoBlocks(newBlock->mPrev); return; } - for (CMemBlock* freeBlock = mHeadFreeList; freeBlock; freeBlock = freeBlock->getNextBlock()) { - if (freeBlock >= block || block >= freeBlock->getNextBlock()) { + + for (CMemBlock* freeBlock = mHeadFreeList; freeBlock; freeBlock = freeBlock->mNext) { + if (freeBlock >= newBlock || newBlock >= freeBlock->mNext) { continue; } - block->mNext = freeBlock->getNextBlock(); - block->mPrev = freeBlock; - freeBlock->mNext = block; - block->mNext->mPrev = block; - block->mGroupId = 0; - joinTwoBlocks(block); + newBlock->mNext = freeBlock->mNext; + newBlock->mPrev = freeBlock; + freeBlock->mNext = newBlock; + newBlock->mNext->mPrev = newBlock; + newBlock->mGroupId = 0; + joinTwoBlocks(newBlock); joinTwoBlocks(freeBlock); return; } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRExpHeap::recycleFreeBlock(JKRExpHeap::CMemBlock* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRExpHeap/recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock.s" -} -#pragma pop -#endif - -/* ############################################################################################## */ -/* 8039CAF0-8039CAF0 029150 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CB3B = ":::Heap may be broken. (block = %x)"; -SECTION_DEAD static char const* const stringBase_8039CB5F = "Bad Block\n"; -#pragma pop /* 802D00B4-802D0190 2CA9F4 00DC+00 1/1 0/0 0/0 .text * joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock */ -#ifdef NONMATCHING void JKRExpHeap::joinTwoBlocks(CMemBlock* block) { - u32 endAddr = (u32)block->getContent() + block->getSize(); - CMemBlock* next = block->getNextBlock(); - u32 nextAddr = (u32)next - next->getAlignment(); + u32 endAddr = (u32)(block + 1) + block->size; + CMemBlock* next = block->mNext; + u32 nextAddr = (u32)next - (next->mFlags & 0x7f); if (endAddr > nextAddr) { JUTWarningConsole_f(":::Heap may be broken. (block = %x)", block); - getCurrentHeap()->dump(); - JUTException::panic_f("JKRExpHeap.cpp", 0x71c, "%s", "Bad Block\n"); + JKRGetCurrentHeap()->dump(); + JUTException::panic_f(__FILE__, 1820, "%s", "Bad Block\n"); } - if (endAddr == nextAddr) { - block->size = next->getSize() + sizeof(CMemBlock) + next->getAlignment() + block->getSize(); - setFreeBlock(block, block->getPrevBlock(), next->getNextBlock()); - } -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRExpHeap::joinTwoBlocks(JKRExpHeap::CMemBlock* param_0) { - nofralloc -#include "asm/JSystem/JKernel/JKRExpHeap/joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock.s" -} -#pragma pop -#endif -/* ############################################################################################## */ -/* 8039CAF0-8039CAF0 029150 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CB6A = - ":::addr %08x: bad heap signature. (%c%c)\n"; -SECTION_DEAD static char const* const stringBase_8039CB94 = - ":::addr %08x: bad next pointer (%08x)\nabort\n"; -SECTION_DEAD static char const* const stringBase_8039CBC1 = - ":::addr %08x: bad previous pointer (%08x)\n"; -SECTION_DEAD static char const* const stringBase_8039CBEC = - ":::addr %08x: bad used list(REV) (%08x)\n"; -SECTION_DEAD static char const* const stringBase_8039CC15 = ":::addr %08x: bad block size (%08x)\n"; -SECTION_DEAD static char const* const stringBase_8039CC3A = - ":::bad total memory block size (%08X, %08X)\n"; -SECTION_DEAD static char const* const stringBase_8039CC67 = - ":::there is some error in this heap!\n"; -#pragma pop + if (endAddr == nextAddr) { + block->size = next->size + sizeof(CMemBlock) + next->getAlignment() + block->size; + setFreeBlock(block, block->mPrev, next->mNext); + } +} /* 802D0190-802D03B8 2CAAD0 0228+00 1/0 0/0 0/0 .text check__10JKRExpHeapFv */ -#ifdef NONMATCHING bool JKRExpHeap::check() { lock(); int totalBytes = 0; bool ok = true; - for (CMemBlock* block = mHeadUsedList; block; block = block->getNextBlock()) { + for (CMemBlock* block = mHeadUsedList; block; block = block->mNext) { if (!block->isValid()) { ok = false; JUTWarningConsole_f(":::addr %08x: bad heap signature. (%c%c)\n", block, - block->mMagic >> 8, block->mMagic & 0xff); + JSUHiByte(block->mMagic), JSULoByte(block->mMagic)); } - if (block->getNextBlock()) { - if (!block->getNextBlock()->isValid()) { + + if (block->mNext) { + if (!block->mNext->isValid()) { ok = false; JUTWarningConsole_f(":::addr %08x: bad next pointer (%08x)\nabort\n", block, - block->getNextBlock()); + block->mNext); break; } - if (block->getNextBlock()->getPrevBlock() != block) { + if (block->mNext->mPrev != block) { ok = false; - JUTWarningConsole_f(":::addr %08x: bad previous pointer (%08x)\n", - block->getNextBlock(), block->getNextBlock()->getPrevBlock()); + JUTWarningConsole_f(":::addr %08x: bad previous pointer (%08x)\n", block->mNext, + block->mNext->mPrev); } } else { if (mTailUsedList != block) { @@ -933,20 +859,21 @@ bool JKRExpHeap::check() { mTailUsedList); } } - totalBytes += sizeof(CMemBlock) + block->getSize() + block->getAlignment(); + totalBytes += sizeof(CMemBlock) + block->size + block->getAlignment(); } - for (CMemBlock* block = mHeadFreeList; block; block = block->getNextBlock()) { - totalBytes += block->getSize() + sizeof(CMemBlock); - if (block->getNextBlock()) { - if (block->getNextBlock()->getPrevBlock() != block) { + + for (CMemBlock* block = mHeadFreeList; block; block = block->mNext) { + totalBytes += block->size + sizeof(CMemBlock); + if (block->mNext) { + if (block->mNext->mPrev != block) { ok = false; - JUTWarningConsole_f(":::addr %08x: bad previous pointer (%08x)\n", - block->getNextBlock(), block->getNextBlock()->getPrevBlock()); + JUTWarningConsole_f(":::addr %08x: bad previous pointer (%08x)\n", block->mNext, + block->mNext->mPrev); } - if ((u32)block + block->getSize() + sizeof(CMemBlock) > (u32)block->getNextBlock()) { + + if ((u32)block + block->size + sizeof(CMemBlock) > (u32)block->mNext) { ok = false; - JUTWarningConsole_f(":::addr %08x: bad block size (%08x)\n", block, - block->getSize()); + JUTWarningConsole_f(":::addr %08x: bad block size (%08x)\n", block, block->size); } } else { if (mTailFreeList != block) { @@ -956,9 +883,10 @@ bool JKRExpHeap::check() { } } } - if (totalBytes != getSize()) { + + if (totalBytes != mSize) { ok = false; - JUTWarningConsole_f(":::bad total memory block size (%08X, %08X)\n", getSize(), totalBytes); + JUTWarningConsole_f(":::bad total memory block size (%08X, %08X)\n", mSize, totalBytes); } if (!ok) { @@ -968,106 +896,56 @@ bool JKRExpHeap::check() { unlock(); return ok; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JKRExpHeap::check() { - nofralloc -#include "asm/JSystem/JKernel/JKRExpHeap/check__10JKRExpHeapFv.s" -} -#pragma pop -#endif - -/* ############################################################################################## */ -/* 8039CAF0-8039CAF0 029150 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CC8D = - " attr address: size gid aln prev_ptr nex" - "t_ptr\n"; -SECTION_DEAD static char const* const stringBase_8039CCC4 = "(Used Blocks)\n"; -SECTION_DEAD static char const* const stringBase_8039CCD3 = " NONE\n"; -SECTION_DEAD static char const* const stringBase_8039CCDA = - "xxxxx %08x: -------- --- --- (-------- -------" - "-)\nabort\n"; -SECTION_DEAD static char const* const stringBase_8039CD14 = "%s %08x: %08x %3d %3d (%08x %08x)\n"; -SECTION_DEAD static char const* const stringBase_8039CD39 = " temp"; -SECTION_DEAD static char const* const stringBase_8039CD3F = "alloc"; -SECTION_DEAD static char const* const stringBase_8039CD45 = "(Free Blocks)\n"; -SECTION_DEAD static char const* const stringBase_8039CD54 = " free"; -SECTION_DEAD static char const* const stringBase_8039CD5A = - "%d / %d bytes (%6.2f%%) used (U:%d F:%d)\n"; -#pragma pop - -/* 80455F98-80455FA0 004598 0004+04 2/2 0/0 0/0 .sdata2 @1121 */ -SECTION_SDATA2 static f32 lit_1121[1 + 1 /* padding */] = { - 100.0f, - /* padding */ - 0.0f, -}; - -/* 80455FA0-80455FA8 0045A0 0008+00 2/2 0/0 0/0 .sdata2 @1123 */ -SECTION_SDATA2 static f64 lit_1123 = 4503599627370496.0 /* cast u32 to float */; /* 802D03B8-802D05CC 2CACF8 0214+00 1/0 0/0 0/0 .text dump__10JKRExpHeapFv */ -#ifdef NONMATCHING bool JKRExpHeap::dump() { lock(); bool result = check(); u32 usedBytes = 0; u32 usedCount = 0; u32 freeCount = 0; + JUTReportConsole(" attr address: size gid aln prev_ptr next_ptr\n"); JUTReportConsole("(Used Blocks)\n"); if (!mHeadUsedList) { JUTReportConsole(" NONE\n"); } - for (CMemBlock* block = mHeadUsedList; block; block = block->getNextBlock()) { + + for (CMemBlock* block = mHeadUsedList; block; block = block->mNext) { if (!block->isValid()) { JUTReportConsole_f("xxxxx %08x: -------- --- --- (-------- --------)\nabort\n", block); break; } - int offset = block->getAlignment(); - void* content = block->getContent(); - const char* type = block->_isTempMemBlock() ? " temp" : "alloc"; - JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n", type, content, block->getSize(), - block->getGroupId(), offset, block->getPrevBlock(), - block->getNextBlock()); - usedBytes += sizeof(CMemBlock) + block->getSize() + block->getAlignment(); + JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n", + block->_isTempMemBlock() ? " temp" : "alloc", block->getContent(), + block->size, block->mGroupId, block->getAlignment(), block->mPrev, + block->mNext); + usedBytes += sizeof(CMemBlock) + block->size + block->getAlignment(); usedCount++; } + JUTReportConsole("(Free Blocks)\n"); if (!mHeadFreeList) { JUTReportConsole(" NONE\n"); } - for (CMemBlock* block = mHeadFreeList; block; block = block->getNextBlock()) { + + for (CMemBlock* block = mHeadFreeList; block; block = block->mNext) { JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n", " free", block->getContent(), - block->getSize(), block->getGroupId(), block->getAlignment(), - block->getPrevBlock(), block->getNextBlock()); + block->size, block->mGroupId, block->getAlignment(), block->mPrev, + block->mNext); freeCount++; } - float percent = ((float)usedBytes / (float)getSize()) * 100.0f; - JUTReportConsole_f("%d / %d bytes (%6.2f%%) used (U:%d F:%d)\n", usedBytes, getSize(), percent, + + float percent = ((float)usedBytes / (float)mSize) * 100.0f; + JUTReportConsole_f("%d / %d bytes (%6.2f%%) used (U:%d F:%d)\n", usedBytes, mSize, percent, usedCount, freeCount); unlock(); return result; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JKRExpHeap::dump() { - nofralloc -#include "asm/JSystem/JKernel/JKRExpHeap/dump__10JKRExpHeapFv.s" -} -#pragma pop -#endif /* 802D05CC-802D0810 2CAF0C 0244+00 1/0 0/0 0/0 .text dump_sort__10JKRExpHeapFv */ -#ifdef NONMATCHING bool JKRExpHeap::dump_sort() { lock(); bool result = check(); @@ -1076,62 +954,58 @@ bool JKRExpHeap::dump_sort() { u32 freeCount = 0; JUTReportConsole(" attr address: size gid aln prev_ptr next_ptr\n"); JUTReportConsole("(Used Blocks)\n"); + if (mHeadUsedList == NULL) { JUTReportConsole(" NONE\n"); } else { CMemBlock* var1 = NULL; while (true) { CMemBlock* block = (CMemBlock*)0xffffffff; - for (CMemBlock* iterBlock = mHeadUsedList; iterBlock; - iterBlock = iterBlock->getNextBlock()) { + for (CMemBlock* iterBlock = mHeadUsedList; iterBlock; iterBlock = iterBlock->mNext) { if (var1 < iterBlock && iterBlock < block) { block = iterBlock; } } + if (block == (CMemBlock*)0xffffffff) { break; } + if (!block->isValid()) { - JUTReportConsole_f("xxxxx %08x: -------- --- --- (-------- --------)\nabort\n"); + JUTReportConsole_f("xxxxx %08x: -------- --- --- (-------- --------)\nabort\n", + var1); break; } + int offset = block->getAlignment(); void* content = block->getContent(); const char* type = block->_isTempMemBlock() ? " temp" : "alloc"; - JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n", type, content, - block->getSize(), block->getGroupId(), offset, block->getPrevBlock(), - block->getNextBlock()); - usedBytes += sizeof(CMemBlock) + block->getSize() + block->getAlignment(); + JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n", type, content, block->size, + block->getGroupId(), offset, block->mPrev, block->mNext); + usedBytes += sizeof(CMemBlock) + block->size + block->getAlignment(); usedCount++; var1 = block; } } + JUTReportConsole("(Free Blocks)\n"); if (mHeadFreeList == NULL) { JUTReportConsole(" NONE\n"); } - for (CMemBlock* block = mHeadFreeList; block; block = block->getNextBlock()) { + + for (CMemBlock* block = mHeadFreeList; block; block = block->mNext) { JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n", " free", block->getContent(), - block->getSize(), block->getGroupId(), block->getAlignment(), - block->getPrevBlock(), block->getNextBlock()); + block->size, block->getGroupId(), block->getAlignment(), block->mPrev, + block->mNext); freeCount++; } - float percent = ((float)usedBytes / (float)getSize()) * 100.0f; - JUTReportConsole_f("%d / %d bytes (%6.2f%%) used (U:%d F:%d)\n", usedBytes, getSize(), percent, + + float percent = ((float)usedBytes / (float)mSize) * 100.0f; + JUTReportConsole_f("%d / %d bytes (%6.2f%%) used (U:%d F:%d)\n", usedBytes, mSize, percent, usedCount, freeCount); unlock(); return result; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JKRExpHeap::dump_sort() { - nofralloc -#include "asm/JSystem/JKernel/JKRExpHeap/dump_sort__10JKRExpHeapFv.s" -} -#pragma pop -#endif /* 802D0810-802D0830 2CB150 0020+00 4/4 0/0 0/0 .text * initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc */ @@ -1212,6 +1086,7 @@ void JKRExpHeap::state_register(JKRHeap::TState* p, u32 param_1) const { s32 freeSize = const_cast(this)->getTotalFreeSize(); p->mUsedSize = getSize() - freeSize; } + u32 checkCode = 0; for (CMemBlock* block = mHeadUsedList; block; block = block->getNextBlock()) { if (param_1 <= 0xff) { @@ -1233,9 +1108,11 @@ bool JKRExpHeap::state_compare(JKRHeap::TState const& r1, JKRHeap::TState const& if (r1.mCheckCode != r2.mCheckCode) { result = false; } + if (r1.mUsedSize != r2.mUsedSize) { result = false; } + return result; } @@ -1304,5 +1181,3 @@ SECTION_DEAD static char const* const stringBase_8039CE2A = "| ---- UsedLast\n"; #pragma force_active on SECTION_DEAD static char const* const stringBase_8039CE3B = "+---------------End\n"; #pragma pop - -/* 8039CAF0-8039CAF0 029150 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JKernel/JKRFile.cpp b/libs/JSystem/JKernel/JKRFile.cpp index 5b492c7fef..ab585d6586 100644 --- a/libs/JSystem/JKernel/JKRFile.cpp +++ b/libs/JSystem/JKernel/JKRFile.cpp @@ -4,14 +4,8 @@ // #include "JSystem/JKernel/JKRFile.h" -#include "dol2asm.h" -#include "dolphin/types.h" #include "dolphin/vi/vi.h" -// -// Declarations: -// - /* 802D9518-802D9584 2D3E58 006C+00 0/0 2/2 0/0 .text read__7JKRFileFPvll */ s32 JKRFile::read(void* data, s32 size, long offset) { while (true) { diff --git a/libs/JSystem/JKernel/JKRFileCache.cpp b/libs/JSystem/JKernel/JKRFileCache.cpp index b89aeaefde..24da35f07f 100644 --- a/libs/JSystem/JKernel/JKRFileCache.cpp +++ b/libs/JSystem/JKernel/JKRFileCache.cpp @@ -9,80 +9,8 @@ #include "JSystem/JKernel/JKRHeap.h" #include "MSL_C/MSL_Common/Src/ctype.h" #include "MSL_C/MSL_Common/Src/string.h" -#include "dol2asm.h" #include "global.h" -// -// Forward References: -// - -extern "C" void mount__12JKRFileCacheFPCcP7JKRHeapPCc(); -extern "C" void __ct__12JKRFileCacheFPCcPCc(); -extern "C" void __dt__12JKRFileCacheFv(); -extern "C" void becomeCurrent__12JKRFileCacheFPCc(); -extern "C" void getResource__12JKRFileCacheFPCc(); -extern "C" void getResource__12JKRFileCacheFUlPCc(); -extern "C" void readResource__12JKRFileCacheFPvUlPCc(); -extern "C" void readResource__12JKRFileCacheFPvUlUlPCc(); -extern "C" void removeResourceAll__12JKRFileCacheFv(); -extern "C" void removeResource__12JKRFileCacheFPv(); -extern "C" void detachResource__12JKRFileCacheFPv(); -extern "C" void getResSize__12JKRFileCacheCFPCv(); -extern "C" void countFile__12JKRFileCacheCFPCc(); -extern "C" void getFirstFile__12JKRFileCacheCFPCc(); -extern "C" void findCacheBlock__12JKRFileCacheCFPCv(); -extern "C" void findCacheBlock__12JKRFileCacheCFUl(); -extern "C" void findFile__12JKRFileCacheCFPcPCc(); -extern "C" void getDvdPathName__12JKRFileCacheCFPCc(); -extern "C" void convStrLower__12JKRFileCacheCFPc(); -extern "C" void __ct__Q212JKRFileCache11CCacheBlockFUlUlPCv(); -extern "C" void getFsResource__12JKRFileCacheFPCc(); -extern "C" void getNameResource__12JKRFileCacheFUlPCc(); -extern "C" void readFsResource__12JKRFileCacheFPvUlPCc(); -extern "C" void readNameResource__12JKRFileCacheFPvUlUlPCc(); -extern "C" extern char const* const JKRFileCache__stringBase0; - -// -// External References: -// - -extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); -extern "C" void alloc__7JKRHeapFUli(); -extern "C" void free__7JKRHeapFPvP7JKRHeap(); -extern "C" void free__7JKRHeapFPv(); -extern "C" void findFromRoot__7JKRHeapFPv(); -extern "C" void* __nw__FUlP7JKRHeapi(); -extern "C" void __dl__FPv(); -extern "C" void __ct__13JKRFileLoaderFv(); -extern "C" void __dt__13JKRFileLoaderFv(); -extern "C" void unmount__13JKRFileLoaderFv(); -extern "C" void __ct__12JKRDvdFinderFPCc(); -extern "C" void read__7JKRFileFPvll(); -extern "C" void __ct__10JKRDvdFileFPCc(); -extern "C" void __dt__10JKRDvdFileFv(); -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 prepend__10JSUPtrListFP10JSUPtrLink(); -extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -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 sCurrentVolume__13JKRFileLoader[4 + 4 /* padding */]; - -// -// Declarations: -// - /* 802D49B4-802D4AB4 2CF2F4 0100+00 0/0 2/2 0/0 .text mount__12JKRFileCacheFPCcP7JKRHeapPCc */ JKRFileCache* JKRFileCache::mount(const char* path, JKRHeap* heap, const char* param_3) { if (!path || *path != '/') { @@ -111,16 +39,6 @@ JKRFileCache* JKRFileCache::mount(const char* path, JKRHeap* heap, const char* p return new (heap, 0) JKRFileCache(path, param_3); } -/* ############################################################################################## */ -/* 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 - /* 802D4AB4-802D4C70 2CF3F4 01BC+00 1/1 0/0 0/0 .text __ct__12JKRFileCacheFPCcPCc */ JKRFileCache::JKRFileCache(const char* path, const char* volume) : mCacheBlockList() { mParentHeap = JKRHeap::findFromRoot(this); @@ -181,35 +99,23 @@ JKRFileCache::~JKRFileCache() { /* 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); + char* dvdPathName = getDvdPathName(path); - mCurrentPath = name; - if (mCurrentPath[1]) { + bool result = DVDChangeDir(dvdPathName); + if (result) { + sCurrentVolume = this; + JKRHeap::sSystemHeap->free(mCurrentPath); + mCurrentPath = dvdPathName; + if (mCurrentPath[1] != '\0') { strcat(mCurrentPath, "/"); } } else { - JKRFreeToSysHeap(name); + JKRHeap::sSystemHeap->free(dvdPathName); } - return didChangeDir; + return result; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -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 */ void* JKRFileCache::getResource(const char* path) { @@ -217,11 +123,11 @@ void* JKRFileCache::getResource(const char* path) { 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); @@ -272,7 +178,6 @@ u32 JKRFileCache::readResource(void* dst, u32 dstLength, const char* path) { // 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); @@ -531,5 +436,3 @@ u32 JKRFileCache::readFsResource(void* dst, u32 dstLength, const char* path) { u32 JKRFileCache::readNameResource(void* dst, u32 dstLength, u32 type, const char* path) { return readResource(dst, dstLength, type, path); } - -/* 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 57c7120e71..7835a5fac3 100644 --- a/libs/JSystem/JKernel/JKRFileFinder.cpp +++ b/libs/JSystem/JKernel/JKRFileFinder.cpp @@ -6,7 +6,6 @@ #include "JSystem/JKernel/JKRFileFinder.h" #include "JSystem/JKernel/JKRArchive.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Forward References: diff --git a/libs/JSystem/JKernel/JKRFileLoader.cpp b/libs/JSystem/JKernel/JKRFileLoader.cpp index 7570bec016..c019a58b0c 100644 --- a/libs/JSystem/JKernel/JKRFileLoader.cpp +++ b/libs/JSystem/JKernel/JKRFileLoader.cpp @@ -180,14 +180,9 @@ SECTION_DEAD static char const* const pad_8039D152 = "\0\0\0\0\0"; SECTION_SDATA static char rootPath[2] = "/"; /* 802D44C4-802D45A0 2CEE04 00DC+00 1/1 0/0 0/0 .text fetchVolumeName__13JKRFileLoaderFPclPCc */ -// matches, but lbl_804508C0 is accessed through r13 +// matches, but rootPath is accessed through r13 #ifdef NONMATCHING const char* JKRFileLoader::fetchVolumeName(char* buffer, long bufferSize, const char* path) { - // lbl_803D2D18 = MSL_C::__lower_map - // lbl_8039D150 = JKernel::@stringBase0 "/" - // lbl_804508C0 = JKernel::rootPath$2498 "/" - // lbl_803D2D18 = MSL_C::__lower_map - if (strcmp(path, "/") == 0) { strcpy(buffer, rootPath); return rootPath; @@ -228,5 +223,3 @@ asm const char* JKRFileLoader::fetchVolumeName(char* param_0, s32 param_1, char } #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 71455819d9..edc5fd935a 100644 --- a/libs/JSystem/JKernel/JKRHeap.cpp +++ b/libs/JSystem/JKernel/JKRHeap.cpp @@ -1,99 +1,25 @@ -// -// Generated By: dol2asm -// Translation Unit: JKRHeap -// +/** + * JKRHeap.cpp + * JSystem Heap Framework + */ #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" #include "JSystem/JUtility/JUTException.h" -#include "dol2asm.h" -#include "global.h" // // Forward References: // -extern "C" void __ct__7JKRHeapFPvUlP7JKRHeapb(); -extern "C" void __dt__7JKRHeapFv(); -extern "C" void initArena__7JKRHeapFPPcPUli(); -extern "C" void becomeSystemHeap__7JKRHeapFv(); -extern "C" void becomeCurrentHeap__7JKRHeapFv(); -extern "C" void destroy__7JKRHeapFv(); -extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); -extern "C" void alloc__7JKRHeapFUli(); -extern "C" void free__7JKRHeapFPvP7JKRHeap(); -extern "C" void free__7JKRHeapFPv(); -extern "C" void callAllDisposer__7JKRHeapFv(); -extern "C" void freeAll__7JKRHeapFv(); -extern "C" void freeTail__7JKRHeapFv(); -extern "C" void resize__7JKRHeapFPvUlP7JKRHeap(); -extern "C" void resize__7JKRHeapFPvUl(); -extern "C" void getSize__7JKRHeapFPvP7JKRHeap(); -extern "C" void getSize__7JKRHeapFPv(); extern "C" void getFreeSize__7JKRHeapFv(); extern "C" void getMaxFreeBlock__7JKRHeapFv(); -extern "C" void getTotalFreeSize__7JKRHeapFv(); -extern "C" void changeGroupID__7JKRHeapFUc(); -extern "C" void getMaxAllocatableSize__7JKRHeapFi(); -extern "C" void findFromRoot__7JKRHeapFPv(); -extern "C" void find__7JKRHeapCFPv(); -extern "C" void findAllHeap__7JKRHeapCFPv(); -extern "C" void dispose_subroutine__7JKRHeapFUlUl(); -extern "C" void dispose__7JKRHeapFPvUl(); -extern "C" void dispose__7JKRHeapFPvPv(); -extern "C" void dispose__7JKRHeapFv(); -extern "C" void copyMemory__7JKRHeapFPvPvUl(); -extern "C" void JKRDefaultMemoryErrorRoutine__FPvUli(); -extern "C" void setErrorFlag__7JKRHeapFb(); -extern "C" void setErrorHandler__7JKRHeapFPFPvUli_v(); -extern "C" void isSubHeap__7JKRHeapCFP7JKRHeap(); -extern "C" void* __nw__FUl(); -extern "C" void* __nw__FUli(); -extern "C" void* __nw__FUlP7JKRHeapi(); -extern "C" void* __nwa__FUl(); -extern "C" void* __nwa__FUli(); -extern "C" void* __nwa__FUlP7JKRHeapi(); -extern "C" void __dl__FPv(); -extern "C" void __dla__FPv(); -extern "C" void state_register__7JKRHeapCFPQ27JKRHeap6TStateUl(); -extern "C" void state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState(); -extern "C" void state_dump__7JKRHeapCFRCQ27JKRHeap6TState(); -extern "C" bool do_changeGroupID__7JKRHeapFUc(); -extern "C" bool do_getCurrentGroupId__7JKRHeapFv(); -extern "C" extern char const* const JKRHeap__stringBase0; -extern "C" u8 sSystemHeap__7JKRHeap[4]; -extern "C" u8 sCurrentHeap__7JKRHeap[4]; -extern "C" u8 sRootHeap__7JKRHeap[4]; -extern "C" u8 mErrorHandler__7JKRHeap[4]; -extern "C" u8 mCodeStart__7JKRHeap[4]; -extern "C" u8 mCodeEnd__7JKRHeap[4]; -extern "C" u8 mUserRamStart__7JKRHeap[4]; -extern "C" u8 mUserRamEnd__7JKRHeap[4]; -extern "C" u8 mMemorySize__7JKRHeap[4]; // // External References: // -extern "C" bool dump_sort__7JKRHeapFv(); -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 _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void* __vt__7JKRHeap; // // Declarations: @@ -131,13 +57,14 @@ JKRHeap::JKRHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag) if (getSystemHeap() == getRootHeap()) { becomeSystemHeap(); } + if (getCurrentHeap() == getRootHeap()) { becomeCurrentHeap(); } } mErrorFlag = errorFlag; - if ((mErrorFlag == true) && (mErrorHandler == NULL)) { + if (mErrorFlag == true && mErrorHandler == NULL) { mErrorHandler = JKRDefaultMemoryErrorRoutine; } @@ -147,45 +74,16 @@ JKRHeap::JKRHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag) } /* 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); + mChildTree.getParent()->removeChild(&mChildTree); + JSUTree* nextRootHeap = sRootHeap->mChildTree.getFirstChild(); - JSUTree* nextRootHeap = getRootHeap()->mChildTree.getFirstChild(); + if (sCurrentHeap == this) + sCurrentHeap = !nextRootHeap ? sRootHeap : nextRootHeap->getObject(); - 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); + if (sSystemHeap == this) + sSystemHeap = !nextRootHeap ? sRootHeap : nextRootHeap->getObject(); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRHeap::~JKRHeap() { - nofralloc -#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 */ @@ -205,42 +103,46 @@ u32 JKRHeap::mMemorySize; /* 802CE378-802CE428 2C8CB8 00B0+00 0/0 1/1 0/0 .text initArena__7JKRHeapFPPcPUli */ bool JKRHeap::initArena(char** memory, u32* size, int maxHeaps) { - u32 ram_start; - u32 ram_end; - void* ram; + void* ram_start; + void* ram_end; + void* arenaStart; - void* low = OSGetArenaLo(); - void* high = OSGetArenaHi(); - if (low == high) + void* arenaLo = OSGetArenaLo(); + void* arenaHi = OSGetArenaHi(); + if (arenaLo == arenaHi) return false; - ram = OSInitAlloc(low, high, maxHeaps); - ram_start = ALIGN_NEXT((u32)ram, 0x20); - ram_end = ALIGN_PREV((u32)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((void*)ram_end); - OSSetArenaHi((void*)ram_end); + arenaStart = OSInitAlloc(arenaLo, arenaHi, maxHeaps); + ram_start = (void*)ALIGN_NEXT((u32)arenaStart, 0x20); + ram_end = (void*)ALIGN_PREV((u32)arenaHi, 0x20); + + GLOBAL_MEMORY* codeStart = (GLOBAL_MEMORY*)OSPhysicalToCached(0); + mCodeStart = codeStart; + mCodeEnd = ram_start; + + mUserRamStart = ram_start; + mUserRamEnd = ram_end; + mMemorySize = codeStart->memory_size; + + OSSetArenaLo(ram_end); + OSSetArenaHi(ram_end); + *memory = (char*)ram_start; - *size = ram_end - ram_start; + *size = (u32)ram_end - (u32)ram_start; return true; } /* 802CE428-802CE438 2C8D68 0010+00 1/1 0/0 0/0 .text becomeSystemHeap__7JKRHeapFv */ JKRHeap* JKRHeap::becomeSystemHeap() { - JKRHeap* prev = JKRHeap::getSystemHeap(); - setSystemHeap(this); + JKRHeap* prev = sSystemHeap; + sSystemHeap = this; return prev; } /* 802CE438-802CE448 2C8D78 0010+00 1/1 22/22 1/1 .text becomeCurrentHeap__7JKRHeapFv */ JKRHeap* JKRHeap::becomeCurrentHeap() { - JKRHeap* prev = getCurrentHeap(); - setCurrentHeap(this); + JKRHeap* prev = sCurrentHeap; + sCurrentHeap = this; return prev; } @@ -255,8 +157,8 @@ void* JKRHeap::alloc(u32 size, int alignment, JKRHeap* heap) { return heap->alloc(size, alignment); } - if (getCurrentHeap() != NULL) { - return getCurrentHeap()->alloc(size, alignment); + if (sCurrentHeap != NULL) { + return sCurrentHeap->alloc(size, alignment); } return NULL; @@ -284,6 +186,16 @@ void JKRHeap::free(void* ptr) { } /* 802CE574-802CE5CC 2C8EB4 0058+00 1/0 5/2 0/0 .text callAllDisposer__7JKRHeapFv */ +// missing stack var +#ifdef NONMATCHING +void JKRHeap::callAllDisposer() { + JSUListIterator iterator; + + while (iterator = mDisposerList.getFirst(), iterator != mDisposerList.getEnd()) { + iterator->~JKRDisposer(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -292,6 +204,7 @@ asm void JKRHeap::callAllDisposer() { #include "asm/JSystem/JKernel/JKRHeap/callAllDisposer__7JKRHeapFv.s" } #pragma pop +#endif /* 802CE5CC-802CE5F8 2C8F0C 002C+00 0/0 12/12 0/0 .text freeAll__7JKRHeapFv */ void JKRHeap::freeAll() { @@ -351,8 +264,8 @@ s32 JKRHeap::getTotalFreeSize() { } /* 802CE7B0-802CE7DC 2C90F0 002C+00 0/0 1/1 0/0 .text changeGroupID__7JKRHeapFUc */ -s32 JKRHeap::changeGroupID(u8 param_1) { - return do_changeGroupID(param_1); +s32 JKRHeap::changeGroupID(u8 groupID) { + return do_changeGroupID(groupID); } /* 802CE7DC-802CE83C 2C911C 0060+00 0/0 2/2 0/0 .text getMaxAllocatableSize__7JKRHeapFi @@ -381,16 +294,15 @@ asm u32 JKRHeap::getMaxAllocatableSize(int param_0) { /* 802CE83C-802CE894 2C917C 0058+00 3/3 8/8 0/0 .text findFromRoot__7JKRHeapFPv */ JKRHeap* JKRHeap::findFromRoot(void* ptr) { - JKRHeap* rootHeap = getRootHeap(); - if (rootHeap == NULL) { + if (sRootHeap == NULL) { return NULL; } - if (rootHeap->getStartAddr() <= ptr && ptr < rootHeap->getEndAddr()) { - return rootHeap->find(ptr); + if (sRootHeap->mStart <= ptr && ptr < sRootHeap->mEnd) { + return sRootHeap->find(ptr); } - return rootHeap->findAllHeap(ptr); + return sRootHeap->findAllHeap(ptr); } /* 802CE894-802CE93C 2C91D4 00A8+00 1/1 1/1 0/0 .text find__7JKRHeapCFPv */ @@ -415,21 +327,20 @@ JKRHeap* JKRHeap::find(void* memory) const { /* 802CE93C-802CE9E4 2C927C 00A8+00 1/1 0/0 0/0 .text findAllHeap__7JKRHeapCFPv */ 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 (mChildTree.getNumChildren() != 0) { + for (JSUTreeIterator iterator(mChildTree.getFirstChild()); + iterator != mChildTree.getEndChild(); ++iterator) + { + JKRHeap* result = iterator->findAllHeap(ptr); + if (result) { return result; } } } - if (getStartAddr() <= ptr && ptr < getEndAddr()) { - // todo: not sure about this... casting away const for now. - return (JKRHeap*)this; + if (mStart <= ptr && ptr < mEnd) { + return const_cast(this); } return NULL; @@ -441,6 +352,7 @@ 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) { @@ -448,6 +360,7 @@ void JKRHeap::dispose_subroutine(u32 begin, u32 end) { if ((void*)begin <= disposer && disposer < (void*)end) { disposer->~JKRDisposer(); + if (last_iterator == NULL) { next_iterator = mDisposerList.getFirst(); } else { @@ -513,7 +426,7 @@ void JKRHeap::copyMemory(void* dst, void* src, u32 size) { /* 802CEB40-802CEB78 2C9480 0038+00 2/2 0/0 0/0 .text JKRDefaultMemoryErrorRoutine__FPvUli */ void JKRDefaultMemoryErrorRoutine(void* heap, u32 size, int alignment) { - JUTException::panic_f("JKRHeap.cpp", 0x33f, "%s", "abort\n"); + JUTException::panic_f(__FILE__, 831, "%s", "abort\n"); } /* 802CEB78-802CEB88 2C94B8 0010+00 0/0 2/2 0/0 .text setErrorFlag__7JKRHeapFb */ @@ -541,17 +454,16 @@ bool JKRHeap::isSubHeap(JKRHeap* heap) const { if (!heap) return false; - const JSUTree& tree = mChildTree; - if (tree.getNumChildren() != 0) { + if (mChildTree.getNumChildren() != 0) { JSUTreeIterator iterator; - for (iterator = tree.getFirstChild(); iterator != tree.getEndChild(); ++iterator) { - JKRHeap* child = iterator.getObject(); - if (child == heap) { + for (iterator = mChildTree.getFirstChild(); iterator != mChildTree.getEndChild(); + ++iterator) + { + if (iterator.getObject() == heap) { return true; } - bool is_sub_heap = child->isSubHeap(heap); - if (is_sub_heap) { + if (iterator.getObject()->isSubHeap(heap)) { return true; } } @@ -603,14 +515,14 @@ void operator delete[](void* ptr) { /* 802CED84-802CED88 2C96C4 0004+00 1/0 1/0 0/0 .text * state_register__7JKRHeapCFPQ27JKRHeap6TStateUl */ void JKRHeap::state_register(JKRHeap::TState* p, u32 id) const { - JUT_ASSERT("JKRHeap.cpp", 0x4bd, p != 0); - JUT_ASSERT("JKRHeap.cpp", 0x4be, p->getHeap() == this); + JUT_ASSERT(__FILE__, 1213, p != 0); + JUT_ASSERT(__FILE__, 1214, p->getHeap() == this); } /* 802CED88-802CEDA0 2C96C8 0018+00 1/0 1/0 0/0 .text * state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState */ bool JKRHeap::state_compare(JKRHeap::TState const& r1, JKRHeap::TState const& r2) const { - JUT_ASSERT("JKRHeap.cpp", 0x4c6, r1.getHeap() == r2.getHeap()); + JUT_ASSERT(__FILE__, 1222, r1.getHeap() == r2.getHeap()); return r1.getCheckCode() == r2.getCheckCode(); } @@ -630,5 +542,3 @@ s32 JKRHeap::do_changeGroupID(u8 param_0) { 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 4d834d4dba..5ec3502403 100644 --- a/libs/JSystem/JKernel/JKRMemArchive.cpp +++ b/libs/JSystem/JKernel/JKRMemArchive.cpp @@ -9,85 +9,6 @@ #include "JSystem/JUtility/JUTException.h" #include "MSL_C/MSL_Common/Src/string.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 JKRMemBreakFlag {}; - -// 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*); -// /* 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 JKRHeap { -// /* 802CE500 */ void free(void*, JKRHeap*); -// /* 802CE83C */ void findFromRoot(void*); -// }; - -// 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 JKRDecomp { -// /* 802DB988 */ void orderSync(u8*, u8*, u32, u32); -// }; // // Forward References: @@ -209,16 +130,16 @@ bool JKRMemArchive::open(long entryNum, JKRArchive::EMountDirection mountDirecti if (mMountDirection == JKRArchive::MOUNT_DIRECTION_HEAD) { u32 loadedSize; mArcHeader = (SArcHeader*)JKRDvdRipper::loadToMainRAM( - entryNum, NULL, EXPAND_SWITCH_UNKNOWN1, 0, mHeap, JKRDvdRipper::ALLOC_DIRECTION_FORWARD, 0, - &mCompression, &loadedSize); + entryNum, NULL, EXPAND_SWITCH_UNKNOWN1, 0, mHeap, JKRDvdRipper::ALLOC_DIRECTION_FORWARD, + 0, &mCompression, &loadedSize); if (mArcHeader) { DCInvalidateRange(mArcHeader, loadedSize); } } else { u32 loadedSize; mArcHeader = (SArcHeader*)JKRDvdRipper::loadToMainRAM( - entryNum, NULL, EXPAND_SWITCH_UNKNOWN1, 0, mHeap, JKRDvdRipper::ALLOC_DIRECTION_BACKWARD, 0, - &mCompression, &loadedSize); + entryNum, NULL, EXPAND_SWITCH_UNKNOWN1, 0, mHeap, + JKRDvdRipper::ALLOC_DIRECTION_BACKWARD, 0, &mCompression, &loadedSize); if (mArcHeader) { DCInvalidateRange(mArcHeader, loadedSize); } @@ -354,17 +275,6 @@ bool JKRMemArchive::removeResource(void* resource) { return true; } -/* ############################################################################################## */ -/* 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 - /* 802D6F5C-802D7030 2D189C 00D4+00 1/1 1/1 0/0 .text * fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli */ u32 JKRMemArchive::fetchResource_subroutine(u8* src, u32 srcLength, u8* dst, u32 dstLength, @@ -390,7 +300,7 @@ u32 JKRMemArchive::fetchResource_subroutine(u8* src, u32 srcLength, u8* dst, u32 return srcLength; default: { - JUTException::panic_f("JKRMemArchive.cpp", 0x2d3, "%s", "??? bad sequence\n"); + JUTException::panic_f(__FILE__, 723, "%s", "??? bad sequence\n"); } break; } @@ -409,5 +319,3 @@ u32 JKRMemArchive::getExpandedResSize(const void* resource) const { return JKRDecompExpandSize((SArcHeader*)resource); } } - -/* 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 ab4185671a..dc64429e7b 100644 --- a/libs/JSystem/JKernel/JKRSolidHeap.cpp +++ b/libs/JSystem/JKernel/JKRSolidHeap.cpp @@ -149,8 +149,8 @@ void* JKRSolidHeap::do_alloc(u32 size, int alignment) { // TODO(Julgodis): JUTAssertion::setConfirmMessage if (alignment != 0) { int u = abs(alignment); - JUT_ASSERT("JKRSolidHeap.cpp", 0xdb, u < 0x80); - JUT_ASSERT("JKRSolidHeap.cpp", 0xdc, JGadget::binary::isPower2(u)); + JUT_ASSERT(__FILE__, 0xdb, u < 0x80); + JUT_ASSERT(__FILE__, 0xdc, JGadget::binary::isPower2(u)); } #endif @@ -318,8 +318,8 @@ bool JKRSolidHeap::dump(void) { // full match expect using the wrong register #ifdef NONMATCHING void JKRSolidHeap::state_register(JKRHeap::TState* p, u32 id) const { - JUT_ASSERT("JKRSolidHeap.cpp", 0x25c, p != 0); - JUT_ASSERT("JKRSolidHeap.cpp", 0x25d, p->getHeap() == this); + JUT_ASSERT(__FILE__, 0x25c, p != 0); + JUT_ASSERT(__FILE__, 0x25d, p->getHeap() == this); getState_(p); setState_u32ID_(p, id); @@ -340,7 +340,7 @@ asm void JKRSolidHeap::state_register(JKRHeap::TState* param_0, u32 param_1) con /* 802D1258-802D1288 2CBB98 0030+00 1/0 0/0 0/0 .text * state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState */ bool JKRSolidHeap::state_compare(JKRHeap::TState const& r1, JKRHeap::TState const& r2) const { - JUT_ASSERT("JKRSolidHeap.cpp", 0x278, r1.getHeap() == r2.getHeap()); + JUT_ASSERT(__FILE__, 632, r1.getHeap() == r2.getHeap()); bool result = true; if (r1.getCheckCode() != r2.getCheckCode()) { @@ -373,5 +373,3 @@ void* JKRSolidHeap::do_getMaxFreeBlock(void) { s32 JKRSolidHeap::do_getTotalFreeSize(void) { return getFreeSize(); } - -/* 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 a59da1fc76..7235ed8799 100644 --- a/libs/JSystem/JKernel/JKRThread.cpp +++ b/libs/JSystem/JKernel/JKRThread.cpp @@ -6,29 +6,9 @@ #include "JSystem/JKernel/JKRThread.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JUtility/JUTAssert.h" +#include "JSystem/JUtility/JUTConsole.h" #include "MSL_C/MSL_Common/Src/printf.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct JUTConsole { - /* 802E75EC */ void clear(); - /* 802E7BB8 */ void print_f(char const*, ...); - /* 802E7C38 */ void print(char const*); -}; - -// -// External References: -// - -extern "C" void JUTWarningConsole(const char*); - -// -// Declarations: -// /* 8043428C-80434298 060FAC 000C+00 5/6 0/0 0/0 .bss sThreadList__9JKRThread */ JSUList JKRThread::sThreadList(0); @@ -164,7 +144,7 @@ JKRThreadSwitch::JKRThreadSwitch(JKRHeap* param_0) { /* 802D1A14-802D1A70 2CC354 005C+00 0/0 1/1 0/0 .text createManager__15JKRThreadSwitchFP7JKRHeap */ JKRThreadSwitch* JKRThreadSwitch::createManager(JKRHeap* heap) { - JUT_ASSERT("JKRThread.cpp", 0x157, sManager == 0); + JUT_ASSERT(__FILE__, 343, sManager == 0); if (!heap) { heap = JKRGetCurrentHeap(); @@ -245,8 +225,7 @@ void JKRThreadSwitch::callback(OSThread* current, OSThread* next) { } else { switch (thread->getCurrentHeapError()) { case 0: - JUT_PANIC("JKRThread.cpp", 0x1fc, - "JKRThreadSwitch: currentHeap destroyed."); + JUT_PANIC(__FILE__, 508, "JKRThreadSwitch: currentHeap destroyed."); break; case 1: JUTWarningConsole("JKRThreadSwitch: currentHeap destroyed.\n"); @@ -345,13 +324,6 @@ void JKRThreadSwitch::draw(JKRThreadName_* thread_name_list) { /* 802D1E4C-802D1E94 2CC78C 0048+00 1/0 0/0 0/0 .text __dt__15JKRThreadSwitchFv */ 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 - /* 804342A4-804342B0 060FC4 000C+00 0/1 0/0 0/0 .bss sTaskList__7JKRTask */ #pragma push #pragma force_active on @@ -364,5 +336,3 @@ JSUList JKRTask::sTaskList; #pragma force_active on u8 JKRTask::sEndMesgQueue[32]; #pragma pop - -/* 8039CFA8-8039CFA8 029608 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JMath/JMath.cpp b/libs/JSystem/JMath/JMath.cpp index 46215f9527..5ae6b8767b 100644 --- a/libs/JSystem/JMath/JMath.cpp +++ b/libs/JSystem/JMath/JMath.cpp @@ -4,8 +4,8 @@ // #include "JSystem/JMath/JMath.h" +#include "JSystem/JMath/JMATrigonometric.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Forward References: @@ -29,6 +29,21 @@ extern "C" u8 sincosTable___5JMath[65536]; /* 80339878-80339938 3341B8 00C0+00 0/0 11/11 2/2 .text JMAEulerToQuat__FsssP10Quaternion */ +#ifdef NONMATCHING +void JMAEulerToQuat(s16 x, s16 y, s16 z, Quaternion* quat) { + f32 cosX = JMASCos(x / 2); + f32 cosY = JMASCos(y / 2); + f32 cosZ = JMASCos(z / 2); + f32 sinX = JMASSin(x / 2); + f32 sinY = JMASSin(y / 2); + f32 sinZ = JMASSin(z / 2); + + quat->w = cosX * (cosY * cosZ) + sinX * (sinY * sinZ); + quat->x = sinX * (cosY * cosZ) - cosX * (sinY * sinZ); + quat->y = cosZ * (cosX * sinY) + sinZ * (sinX * cosY); + quat->z = sinZ * (cosX * cosY) - cosZ * (sinX * sinY); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -37,24 +52,40 @@ asm void JMAEulerToQuat(s16 param_0, s16 param_1, s16 param_2, Quaternion* param #include "asm/JSystem/JMath/JMath/JMAEulerToQuat__FsssP10Quaternion.s" } #pragma pop - -/* ############################################################################################## */ -/* 804564C8-804564D0 004AC8 0008+00 1/1 0/0 0/0 .sdata2 @376 */ -SECTION_SDATA2 static u8 lit_376[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +#endif /* 80339938-80339A30 334278 00F8+00 0/0 5/5 0/0 .text * JMAQuatLerp__FPC10QuaternionPC10QuaternionfP10Quaternion */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JMAQuatLerp(Quaternion const* param_0, Quaternion const* param_1, f32 param_2, - Quaternion* param_3) { - nofralloc -#include "asm/JSystem/JMath/JMath/JMAQuatLerp__FPC10QuaternionPC10QuaternionfP10Quaternion.s" +void JMAQuatLerp(register const Quaternion* p, register const Quaternion* q, f32 t, + Quaternion* dst) { + register f32 pxy, pzw, qxy, qzw; + register f32 dp; + __asm // compute dot product + { + psq_l pxy, 0(p), 0, 0 + psq_l qxy, 0(q), 0, 0 + ps_mul dp, pxy, qxy + + psq_l pzw, 8(p), 0, 0 + psq_l qzw, 8(q), 0, 0 + ps_madd dp, pzw, qzw, dp + + ps_sum0 dp, dp, dp, dp + } + + if (dp < 0.0) { + dst->x = -t * (p->x + q->x) + p->x; + dst->y = -t * (p->y + q->y) + p->y; + dst->z = -t * (p->z + q->z) + p->z; + dst->w = -t * (p->w + q->w) + p->w; + } + else { + dst->x = -t * (p->x - q->x) + p->x; + dst->y = -t * (p->y - q->y) + p->y; + dst->z = -t * (p->z - q->z) + p->z; + dst->w = -t * (p->w - q->w) + p->w; + } } -#pragma pop /* 80339A30-80339A5C 334370 002C+00 0/0 1/1 0/0 .text JMAFastVECNormalize__FPC3VecP3Vec */ diff --git a/libs/JSystem/JMath/random.cpp b/libs/JSystem/JMath/random.cpp index a93fa31ef1..78532ed98c 100644 --- a/libs/JSystem/JMath/random.cpp +++ b/libs/JSystem/JMath/random.cpp @@ -4,12 +4,6 @@ // #include "JSystem/JMath/random.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// /* 80339AE4-80339AEC -00001 0008+00 0/0 0/0 0/0 .text __ct__Q25JMath13TRandom_fast_FUl */ JMath::TRandom_fast_::TRandom_fast_(u32 param_0) { diff --git a/libs/JSystem/JSupport/JSUFileStream.cpp b/libs/JSystem/JSupport/JSUFileStream.cpp index 08d9584690..afd5e3316e 100644 --- a/libs/JSystem/JSupport/JSUFileStream.cpp +++ b/libs/JSystem/JSupport/JSUFileStream.cpp @@ -4,12 +4,6 @@ // #include "JSystem/JSupport/JSUFileStream.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// /* 802DC638-802DC67C 2D6F78 0044+00 0/0 1/1 0/0 .text __ct__18JSUFileInputStreamFP7JKRFile */ JSUFileInputStream::JSUFileInputStream(JKRFile* pFile) { @@ -22,11 +16,10 @@ JSUFileInputStream::JSUFileInputStream(JKRFile* pFile) { u32 JSUFileInputStream::readData(void* pBuffer, s32 length) { s32 lenRead = 0; if (mFile->isAvailable()) { - // TODO: the function probably returns u32 - // there are probably more functions that return u32 instead of s32 if (mPosition + length > (u32)mFile->getFileSize()) { length = mFile->getFileSize() - mPosition; } + if (length > 0) { lenRead = mFile->readData(pBuffer, length, mPosition); if (lenRead < 0) { @@ -36,6 +29,7 @@ u32 JSUFileInputStream::readData(void* pBuffer, s32 length) { } } } + return lenRead; } @@ -43,6 +37,7 @@ u32 JSUFileInputStream::readData(void* pBuffer, s32 length) { * seekPos__18JSUFileInputStreamFl17JSUStreamSeekFrom */ s32 JSUFileInputStream::seekPos(s32 pos, JSUStreamSeekFrom seekFrom) { s32 oldPos = mPosition; + switch (seekFrom) { case JSUStreamSeekFrom_SET: mPosition = pos; @@ -54,12 +49,15 @@ s32 JSUFileInputStream::seekPos(s32 pos, JSUStreamSeekFrom seekFrom) { mPosition += pos; break; } + if (mPosition < 0) { mPosition = 0; } + if (mPosition > mFile->getFileSize()) { mPosition = mFile->getFileSize(); } + return mPosition - oldPos; } diff --git a/libs/JSystem/JSupport/JSUInputStream.cpp b/libs/JSystem/JSupport/JSUInputStream.cpp index 0d69d733a2..ce0eee7598 100644 --- a/libs/JSystem/JSupport/JSUInputStream.cpp +++ b/libs/JSystem/JSupport/JSUInputStream.cpp @@ -5,37 +5,19 @@ #include "JSystem/JSupport/JSUInputStream.h" #include "JSystem/JSupport/JSURandomInputStream.h" -#include "dol2asm.h" -#include "global.h" - -// -// Types: -// // // Forward References: // -extern "C" void __dt__14JSUInputStreamFv(); -extern "C" void read__14JSUInputStreamFPvl(); -extern "C" void skip__14JSUInputStreamFl(); -extern "C" void align__20JSURandomInputStreamFl(); extern "C" void skip__20JSURandomInputStreamFl(); -extern "C" void peek__20JSURandomInputStreamFPvl(); -extern "C" void seek__20JSURandomInputStreamFl17JSUStreamSeekFrom(); // // External References: // extern "C" void __dt__20JSURandomInputStreamFv(); -extern "C" void __dl__FPv(); extern "C" void getAvailable__20JSURandomInputStreamCFv(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__10JSUIosBase[3]; // // Declarations: @@ -43,7 +25,7 @@ extern "C" extern void* __vt__10JSUIosBase[3]; /* ############################################################################################## */ /* 803CC4B0-803CC4D4 0295D0 0024+00 0/0 7/7 0/0 .data __vt__20JSURandomInputStream */ -SECTION_DATA extern void* __vt__20JSURandomInputStream[9] = { +extern void* __vt__20JSURandomInputStream[9] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__20JSURandomInputStreamFv, @@ -55,26 +37,14 @@ SECTION_DATA extern void* __vt__20JSURandomInputStream[9] = { (void*)NULL, }; -/* 803CC4D4-803CC4F0 0295F4 0018+04 1/1 4/4 0/0 .data __vt__14JSUInputStream */ -SECTION_DATA extern void* __vt__14JSUInputStream[6 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14JSUInputStreamFv, - (void*)NULL, - (void*)skip__14JSUInputStreamFl, - (void*)NULL, - /* padding */ - NULL, -}; - /* 802DC23C-802DC298 2D6B7C 005C+00 1/0 6/6 0/0 .text __dt__14JSUInputStreamFv */ JSUInputStream::~JSUInputStream() {} /* 802DC298-802DC2F0 2D6BD8 0058+00 1/1 20/20 0/0 .text read__14JSUInputStreamFPvl */ s32 JSUInputStream::read(void* buffer, s32 numBytes) { - s32 bytesRead = this->readData(buffer, numBytes); + s32 bytesRead = readData(buffer, numBytes); if (bytesRead != numBytes) { - this->setState(IOS_STATE_1); + setState(IOS_STATE_1); } return bytesRead; } @@ -84,7 +54,7 @@ s32 JSUInputStream::skip(s32 count) { s32 skipCount = 0; u8 buffer[1]; while (count > skipCount) { - if (this->readData(&buffer, 1) != 1) { + if (readData(&buffer, 1) != 1) { setState(IOS_STATE_1); break; } @@ -95,15 +65,15 @@ s32 JSUInputStream::skip(s32 count) { /* 802DC370-802DC3FC 2D6CB0 008C+00 0/0 1/1 0/0 .text align__20JSURandomInputStreamFl */ s32 JSURandomInputStream::align(s32 alignment) { - s32 currentPos = this->getPosition(); + s32 currentPos = getPosition(); s32 offset = (alignment + currentPos); offset -= 1; offset &= ~(alignment - 1); s32 alignmentOffset = offset - currentPos; if (alignmentOffset != 0) { - s32 seekLen = this->seekPos(offset, JSUStreamSeekFrom_SET); + s32 seekLen = seekPos(offset, JSUStreamSeekFrom_SET); if (seekLen != alignmentOffset) { - this->setState(IOS_STATE_1); + setState(IOS_STATE_1); } } return alignmentOffset; @@ -111,19 +81,19 @@ s32 JSURandomInputStream::align(s32 alignment) { /* 802DC3FC-802DC458 2D6D3C 005C+00 1/0 2/0 0/0 .text skip__20JSURandomInputStreamFl */ s32 JSURandomInputStream::skip(s32 param_0) { - s32 val = this->seekPos(param_0, JSUStreamSeekFrom_CUR); + s32 val = seekPos(param_0, JSUStreamSeekFrom_CUR); if (val != param_0) { - this->setState(IOS_STATE_1); + setState(IOS_STATE_1); } return val; } /* 802DC458-802DC4DC 2D6D98 0084+00 0/0 8/8 0/0 .text peek__20JSURandomInputStreamFPvl */ s32 JSURandomInputStream::peek(void* buffer, s32 numBytes) { - s32 oldPos = this->getPosition(); - s32 bytesRead = this->read(buffer, numBytes); + s32 oldPos = getPosition(); + s32 bytesRead = read(buffer, numBytes); if (bytesRead != 0) { - this->seekPos(oldPos, JSUStreamSeekFrom_SET); + seekPos(oldPos, JSUStreamSeekFrom_SET); } return bytesRead; } @@ -131,7 +101,7 @@ s32 JSURandomInputStream::peek(void* buffer, s32 numBytes) { /* 802DC4DC-802DC520 2D6E1C 0044+00 0/0 16/16 0/0 .text * seek__20JSURandomInputStreamFl17JSUStreamSeekFrom */ s32 JSURandomInputStream::seek(s32 param_0, JSUStreamSeekFrom param_1) { - s32 seekResult = this->seekPos(param_0, param_1); - this->clrState(IOS_STATE_1); + s32 seekResult = seekPos(param_0, param_1); + clrState(IOS_STATE_1); return seekResult; } diff --git a/libs/JSystem/JSupport/JSUList.cpp b/libs/JSystem/JSupport/JSUList.cpp index 2577679b30..887a3eaeee 100644 --- a/libs/JSystem/JSupport/JSUList.cpp +++ b/libs/JSystem/JSupport/JSUList.cpp @@ -4,32 +4,30 @@ // #include "JSystem/JSupport/JSUList.h" -#include "dol2asm.h" -#include "dolphin/types.h" JSUPtrLink::JSUPtrLink(void* object) { - this->mList = NULL; - this->mObject = object; - this->mPrev = NULL; - this->mNext = NULL; + mList = NULL; + mObject = object; + mPrev = NULL; + mNext = NULL; } JSUPtrLink::~JSUPtrLink() { - if (this->mList != NULL) { - this->mList->remove(this); + if (mList != NULL) { + mList->remove(this); } } JSUPtrList::JSUPtrList(bool init) { if (init) { - this->initiate(); + initiate(); } } JSUPtrList::~JSUPtrList() { - JSUPtrLink* node = this->mHead; + JSUPtrLink* node = mHead; s32 removed = 0; - while (this->mLength > removed) { + while (mLength > removed) { node->mList = NULL; node = node->getNext(); removed += 1; @@ -37,18 +35,18 @@ JSUPtrList::~JSUPtrList() { } void JSUPtrList::initiate() { - this->mHead = NULL; - this->mTail = NULL; - this->mLength = 0; + mHead = NULL; + mTail = NULL; + mLength = 0; } void JSUPtrList::setFirst(JSUPtrLink* first) { first->mList = this; first->mPrev = NULL; first->mNext = NULL; - this->mTail = first; - this->mHead = first; - this->mLength = 1; + mTail = first; + mHead = first; + mLength = 1; } bool JSUPtrList::append(JSUPtrLink* ptr) { @@ -59,15 +57,15 @@ bool JSUPtrList::append(JSUPtrLink* ptr) { } if (result) { - if (this->mLength == 0) { - this->setFirst(ptr); + if (mLength == 0) { + setFirst(ptr); } else { ptr->mList = this; - ptr->mPrev = this->mTail; + ptr->mPrev = mTail; ptr->mNext = NULL; - this->mTail->mNext = ptr; - this->mTail = ptr; - this->mLength++; + mTail->mNext = ptr; + mTail = ptr; + mLength++; } } @@ -82,15 +80,15 @@ bool JSUPtrList::prepend(JSUPtrLink* ptr) { } if (result) { - if (this->mLength == 0) { - this->setFirst(ptr); + if (mLength == 0) { + setFirst(ptr); } else { ptr->mList = this; ptr->mPrev = NULL; - ptr->mNext = this->mHead; - this->mHead->mPrev = ptr; - this->mHead = ptr; - this->mLength++; + ptr->mNext = mHead; + mHead->mPrev = ptr; + mHead = ptr; + mLength++; } } @@ -98,10 +96,10 @@ bool JSUPtrList::prepend(JSUPtrLink* ptr) { } bool JSUPtrList::insert(JSUPtrLink* before, JSUPtrLink* ptr) { - if (before == this->mHead) { - return this->prepend(ptr); + if (before == mHead) { + return prepend(ptr); } else if (before == NULL) { - return this->append(ptr); + return append(ptr); } if (before->mList != this) { @@ -120,7 +118,7 @@ bool JSUPtrList::insert(JSUPtrLink* before, JSUPtrLink* ptr) { ptr->mNext = before; prev->mNext = ptr; before->mPrev = ptr; - this->mLength++; + mLength++; } return result; @@ -129,33 +127,33 @@ bool JSUPtrList::insert(JSUPtrLink* before, JSUPtrLink* ptr) { 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) { + if (mLength == 1) { + mHead = NULL; + mTail = NULL; + } else if (ptr == mHead) { ptr->mNext->mPrev = NULL; - this->mHead = ptr->mNext; - } else if (ptr == this->mTail) { + mHead = ptr->mNext; + } else if (ptr == mTail) { ptr->mPrev->mNext = NULL; - this->mTail = ptr->mPrev; + mTail = ptr->mPrev; } else { ptr->mPrev->mNext = ptr->mNext; ptr->mNext->mPrev = ptr->mPrev; } ptr->mList = NULL; - this->mLength--; + mLength--; } return is_parent; } JSUPtrLink* JSUPtrList::getNthLink(u32 index) const { - if (index >= this->mLength) { + if (index >= mLength) { return NULL; } - JSUPtrLink* node = this->mHead; + JSUPtrLink* node = mHead; for (u32 i = 0; i < index; i++) { node = node->getNext(); } diff --git a/libs/JSystem/JSupport/JSUMemoryStream.cpp b/libs/JSystem/JSupport/JSUMemoryStream.cpp index 0e03c38f78..7b4e6f5812 100644 --- a/libs/JSystem/JSupport/JSUMemoryStream.cpp +++ b/libs/JSystem/JSupport/JSUMemoryStream.cpp @@ -5,12 +5,6 @@ #include "JSystem/JSupport/JSUMemoryStream.h" #include "MSL_C/MSL_Common/Src/string.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// /* 802DC520-802DC534 2D6E60 0014+00 0/0 3/3 0/0 .text setBuffer__20JSUMemoryInputStreamFPCvl */ void JSUMemoryInputStream::setBuffer(void const* pBuffer, s32 length) { @@ -24,10 +18,12 @@ u32 JSUMemoryInputStream::readData(void* pData, s32 length) { if (mPosition + length > mLength) { length = mLength - mPosition; } + if (length > 0) { memcpy(pData, (void*)((s32)mBuffer + mPosition), length); mPosition += length; } + return length; } @@ -35,6 +31,7 @@ u32 JSUMemoryInputStream::readData(void* pData, s32 length) { * seekPos__20JSUMemoryInputStreamFl17JSUStreamSeekFrom */ s32 JSUMemoryInputStream::seekPos(s32 pos, JSUStreamSeekFrom seekFrom) { s32 oldPos = mPosition; + switch (seekFrom) { case JSUStreamSeekFrom_SET: mPosition = pos; @@ -46,12 +43,15 @@ s32 JSUMemoryInputStream::seekPos(s32 pos, JSUStreamSeekFrom seekFrom) { mPosition += pos; break; } + if (mPosition < 0) { mPosition = 0; } + if (mPosition > mLength) { mPosition = mLength; } + return mPosition - oldPos; } diff --git a/libs/JSystem/JUtility/JUTAssert.cpp b/libs/JSystem/JUtility/JUTAssert.cpp index 94b47865ff..d9f7d2427e 100644 --- a/libs/JSystem/JUtility/JUTAssert.cpp +++ b/libs/JSystem/JUtility/JUTAssert.cpp @@ -6,27 +6,30 @@ #include "JSystem/JUtility/JUTAssert.h" #include "JSystem/JUtility/JUTDbPrint.h" #include "JSystem/JUtility/JUTDirectPrint.h" -#include "dol2asm.h" -#include "dolphin/types.h" #include "dolphin/vi/vi.h" -// -// Declarations: -// +namespace JUTAssertion { /* 802E495C-802E4960 2DF29C 0004+00 0/0 1/1 0/0 .text create__12JUTAssertionFv */ -void JUTAssertion::create() { - /* empty function */ -} +void create() {} -/* ############################################################################################## */ +namespace { /* 80451530-80451538 000A30 0004+04 2/2 0/0 0/0 .sbss * sMessageLife__Q212JUTAssertion23@unnamed@JUTAssert_cpp@ */ static u32 sMessageLife; +/* 80434870-804348B0 061590 0040+00 2/2 0/0 0/0 .bss + * sMessageFileLine__Q212JUTAssertion23@unnamed@JUTAssert_cpp@ */ +static char sMessageFileLine[64]; + +/* 804348B0-804349B0 0615D0 0100+00 2/2 0/0 0/0 .bss + * sMessageString__Q212JUTAssertion23@unnamed@JUTAssert_cpp@ */ +static char sMessageString[256]; +}; // namespace + /* 802E4960-802E499C 2DF2A0 003C+00 2/2 0/0 0/0 .text flush_subroutine__12JUTAssertionFv */ -u32 JUTAssertion::flush_subroutine() { +u32 flush_subroutine() { if (sMessageLife == 0) { return 0; } @@ -38,20 +41,12 @@ u32 JUTAssertion::flush_subroutine() { if (sMessageLife >= 5) { return sMessageLife; } + return 0; } -/* ############################################################################################## */ -/* 80434870-804348B0 061590 0040+00 2/2 0/0 0/0 .bss - * sMessageFileLine__Q212JUTAssertion23@unnamed@JUTAssert_cpp@ */ -static char sMessageFileLine[64]; - -/* 804348B0-804349B0 0615D0 0100+00 2/2 0/0 0/0 .bss - * sMessageString__Q212JUTAssertion23@unnamed@JUTAssert_cpp@ */ -static char sMessageString[256]; - /* 802E499C-802E4A54 2DF2DC 00B8+00 0/0 1/1 0/0 .text flushMessage__12JUTAssertionFv */ -void JUTAssertion::flushMessage() { +void flushMessage() { if (flush_subroutine() && sAssertVisible == true) { JUTDirectPrint* manager = JUTDirectPrint::getManager(); JUtility::TColor color = manager->getCharColor(); @@ -63,7 +58,7 @@ void JUTAssertion::flushMessage() { } /* 802E4A54-802E4C34 2DF394 01E0+00 0/0 1/1 0/0 .text flushMessage_dbPrint__12JUTAssertionFv */ -void JUTAssertion::flushMessage_dbPrint() { +void flushMessage_dbPrint() { if (flush_subroutine() && sAssertVisible == true && JUTDbPrint::getManager() != NULL) { JUTFont* font = JUTDbPrint::getManager()->getFont(); if (font != NULL) { @@ -77,12 +72,14 @@ void JUTAssertion::flushMessage_dbPrint() { } /* 802E4C34-802E4C3C 2DF574 0008+00 0/0 2/2 0/0 .text setVisible__12JUTAssertionFb */ -void JUTAssertion::setVisible(bool visible) { +void setVisible(bool visible) { sAssertVisible = visible; } /* 802E4C3C-802E4C54 2DF57C 0018+00 0/0 2/2 0/0 .text setMessageCount__12JUTAssertionFi */ -void JUTAssertion::setMessageCount(int msg_count) { +void setMessageCount(int msg_count) { sMessageLife = msg_count <= 0 ? 0 : msg_count; } + +}; // namespace JUTAssertion diff --git a/libs/JSystem/JUtility/JUTCacheFont.cpp b/libs/JSystem/JUtility/JUTCacheFont.cpp index b24c871447..4cde5591b5 100644 --- a/libs/JSystem/JUtility/JUTCacheFont.cpp +++ b/libs/JSystem/JUtility/JUTCacheFont.cpp @@ -4,16 +4,8 @@ // #include "JSystem/JUtility/JUTCacheFont.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*, ...); -}; // // Forward References: @@ -164,8 +156,8 @@ struct BlockHeader { }; int JUTCacheFont::getMemorySize(ResFONT const* p_font, u16* o_widCount, u32* o_widSize, - u16* o_glyCount, u32* o_glySize, u16* o_mapCount, u32* o_mapSize, - u32* o_glyTexSize) { + u16* o_glyCount, u32* o_glySize, u16* o_mapCount, u32* o_mapSize, + u32* o_glyTexSize) { if (p_font == NULL) { return 0; } @@ -235,7 +227,7 @@ int JUTCacheFont::getMemorySize(ResFONT const* p_font, u16* o_widCount, u32* o_w if (o_glyTexSize != NULL) { *o_glyTexSize = maxGlyTexSize; } - + return 1; } #else @@ -243,8 +235,8 @@ int JUTCacheFont::getMemorySize(ResFONT const* p_font, u16* o_widCount, u32* o_w #pragma optimization_level 0 #pragma optimizewithasm off asm int JUTCacheFont::getMemorySize(ResFONT const* param_0, u16* param_1, u32* param_2, - u16* param_3, u32* param_4, u16* param_5, u32* param_6, - u32* param_7) { + u16* param_3, u32* param_4, u16* param_5, u32* param_6, + u32* param_7) { nofralloc #include "asm/JSystem/JUtility/JUTCacheFont/getMemorySize__12JUTCacheFontFPC7ResFONTPUsPUlPUsPUlPUsPUlPUl.s" } @@ -253,8 +245,7 @@ asm int JUTCacheFont::getMemorySize(ResFONT const* param_0, u16* param_1, u32* p /* 802DD4EC-802DD54C 2D7E2C 0060+00 1/1 0/0 0/0 .text * initiate__12JUTCacheFontFPC7ResFONTPvUlP7JKRHeap */ -int JUTCacheFont::initiate(ResFONT const* p_fontRes, void* param_1, u32 param_2, - JKRHeap* p_heap) { +int JUTCacheFont::initiate(ResFONT const* p_fontRes, void* param_1, u32 param_2, JKRHeap* p_heap) { if (!internal_initiate(p_fontRes, param_1, param_2, p_heap)) { deleteMemBlocks_CacheFont(); deleteMemBlocks_ResFont(); @@ -269,20 +260,21 @@ int JUTCacheFont::initiate(ResFONT const* p_fontRes, void* param_1, u32 param_2, /* 802DD54C-802DD650 2D7E8C 0104+00 1/1 0/0 0/0 .text * internal_initiate__12JUTCacheFontFPC7ResFONTPvUlP7JKRHeap */ bool JUTCacheFont::internal_initiate(ResFONT const* p_fontRes, void* param_1, u32 param_2, - JKRHeap* param_3) { + JKRHeap* param_3) { deleteMemBlocks_CacheFont(); initialize_state(); deleteMemBlocks_ResFont(); JUTResFont::initialize_state(); JUTFont::initialize_state(); - + if (p_fontRes == NULL) { return false; } mResFont = p_fontRes; mValid = true; - getMemorySize(p_fontRes, &mWid1BlockNum, &mTotalWidSize, &mGly1BlockNum, &mTotalGlySize, &mMap1BlockNum, &mTotalMapSize, &mMaxSheetSize); + getMemorySize(p_fontRes, &mWid1BlockNum, &mTotalWidSize, &mGly1BlockNum, &mTotalGlySize, + &mMap1BlockNum, &mTotalMapSize, &mMaxSheetSize); if (!allocArea(param_1, param_2, param_3)) { return false; @@ -295,14 +287,60 @@ bool JUTCacheFont::internal_initiate(ResFONT const* p_fontRes, void* param_1, u3 } /* 802DD650-802DD804 2D7F90 01B4+00 1/1 0/0 0/0 .text allocArea__12JUTCacheFontFPvUlP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JUTCacheFont::allocArea(void* param_0, u32 param_1, JKRHeap* param_2) { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/allocArea__12JUTCacheFontFPvUlP7JKRHeap.s" +bool JUTCacheFont::allocArea(void* param_0, u32 param_1, JKRHeap* heap) { + mInf1Ptr = (ResFONT::INF1*)new (heap, 0) ResFONT(); + if (mInf1Ptr == NULL) { + return false; + } + + if (mTotalWidSize != 0) { + field_0x7c = new (heap, 0) u8[mTotalWidSize]; + if (field_0x7c == NULL) { + return false; + } + } + + if (mGly1BlockNum != 0) { + field_0x80 = new (heap, 0) ResFONT::GLY1[mGly1BlockNum]; + if (field_0x80 == NULL) { + return false; + } + + field_0xac = JKRAram::getManager()->mAramHeap->alloc( + mTotalGlySize - (mGly1BlockNum * sizeof(ResFONT::GLY1)), JKRAramHeap::HEAD); + if (field_0xac == NULL) { + return false; + } + } + + if (mTotalMapSize != 0) { + field_0x84 = new (heap, 0) u8[mTotalMapSize]; + if (field_0x84 == NULL) { + return false; + } + } + + field_0x94 = mMaxSheetSize + 0x40; + mCachePage = param_1 / field_0x94; + u32 v1 = field_0x94 * mCachePage; + if (mCachePage == 0) { + return false; + } + + if (param_0 != NULL) { + mCacheBuffer = param_0; + field_0xb0 = 0; + } else { + mCacheBuffer = new (heap, 0x20) u8[v1]; + if (mCacheBuffer == NULL) { + return false; + } + field_0xb0 = 1; + } + + invalidiateAllCache(); + return true; } -#pragma pop /* 802DD804-802DD8EC 2D8144 00E8+00 1/1 0/0 0/0 .text allocArray__12JUTCacheFontFP7JKRHeap */ #pragma push @@ -399,25 +437,34 @@ asm void JUTCacheFont::invalidiateAllCache() { /* 802DDF68-802DDFAC 2D88A8 0044+00 2/2 0/0 0/0 .text * unlink__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTCacheFont::unlink(JUTCacheFont::TGlyphCacheInfo* param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/unlink__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo.s" +void JUTCacheFont::unlink(JUTCacheFont::TGlyphCacheInfo* cacheInfo) { + if (cacheInfo->mPrev == NULL) { + field_0x9c = cacheInfo->mNext; + } else { + cacheInfo->mPrev->mNext = cacheInfo->mNext; + } + + if (cacheInfo->mNext == NULL) { + field_0xa0 = cacheInfo->mPrev; + } else { + cacheInfo->mNext->mPrev = cacheInfo->mPrev; + } } -#pragma pop /* 802DDFAC-802DDFD8 2D88EC 002C+00 2/2 0/0 0/0 .text * prepend__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTCacheFont::prepend(JUTCacheFont::TGlyphCacheInfo* param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/prepend__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo.s" +void JUTCacheFont::prepend(JUTCacheFont::TGlyphCacheInfo* cacheInfo) { + TGlyphCacheInfo* oldHead = field_0x9c; + field_0x9c = cacheInfo; + cacheInfo->mPrev = NULL; + cacheInfo->mNext = oldHead; + + if (oldHead == NULL) { + field_0xa0 = cacheInfo; + } else { + oldHead->mPrev = cacheInfo; + } } -#pragma pop /* 802DDFD8-802DDFE0 2D8918 0008+00 1/0 1/0 0/0 .text getResFont__10JUTResFontCFv */ #pragma push @@ -488,5 +535,3 @@ asm s32 JUTResFont::getHeight() const { #include "asm/JSystem/JUtility/JUTCacheFont/getHeight__10JUTResFontCFv.s" } #pragma pop - -/* 8039D2F0-8039D2F0 029950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JUtility/JUTConsole.cpp b/libs/JSystem/JUtility/JUTConsole.cpp index 7c3a5d3dfd..f104b08f59 100644 --- a/libs/JSystem/JUtility/JUTConsole.cpp +++ b/libs/JSystem/JUtility/JUTConsole.cpp @@ -10,7 +10,6 @@ #include "JSystem/JUtility/JUTVideo.h" #include "MSL_C/MSL_Common/Src/printf.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Forward References: @@ -315,10 +314,12 @@ void JUTConsole::scroll(int scrollAmnt) { } } } + field_0x30 += scrollAmnt; if (field_0x30 < 0) { field_0x30 += mMaxLines; } + if (field_0x30 >= mMaxLines) { field_0x30 -= mMaxLines; } @@ -346,6 +347,7 @@ JUTConsoleManager* JUTConsoleManager::createManager(JKRHeap* pHeap) { if (pHeap == NULL) { pHeap = JKRHeap::sCurrentHeap; } + JUTConsoleManager* manager = new (pHeap, 0) JUTConsoleManager(); sManager = manager; return manager; @@ -457,7 +459,8 @@ extern "C" void JUTReportConsole_f_va(const char* fmt, va_list args) { if (JUTGetReportConsole() == NULL) { vsnprintf(buf, sizeof(buf), fmt, args); } else if (JUTGetReportConsole()->getOutput() & - (JUTConsole::OUTPUT_CONSOLE | JUTConsole::OUTPUT_OSREPORT)) { + (JUTConsole::OUTPUT_CONSOLE | JUTConsole::OUTPUT_OSREPORT)) + { vsnprintf(buf, sizeof(buf), fmt, args); JUTGetReportConsole()->print(buf); } @@ -501,5 +504,3 @@ void JUTWarningConsole_f(const char* fmt, ...) { void JUTWarningConsole(const char* message) { JUTReportConsole_f("%s", message); } - -/* 8039D9A8-8039D9A8 02A008 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JUtility/JUTDbPrint.cpp b/libs/JSystem/JUtility/JUTDbPrint.cpp index 38427fe21f..facc851fd4 100644 --- a/libs/JSystem/JUtility/JUTDbPrint.cpp +++ b/libs/JSystem/JUtility/JUTDbPrint.cpp @@ -8,8 +8,6 @@ #include "JSystem/JUtility/JUTVideo.h" #include "MSL_C/MSL_Common/Src/printf.h" #include "MSL_C/MSL_Common/Src/string.h" -#include "dol2asm.h" -#include "dolphin/types.h" /* 802E0148-802E0190 2DAA88 0048+00 1/1 0/0 0/0 .text __ct__10JUTDbPrintFP7JUTFontP7JKRHeap */ JUTDbPrint::JUTDbPrint(JUTFont* pFont, JKRHeap* pHeap) { @@ -32,6 +30,7 @@ JUTDbPrint* JUTDbPrint::start(JUTFont* pFont, JKRHeap* pHeap) { } sDebugPrint = new JUTDbPrint(pFont, pHeap); } + return sDebugPrint; } @@ -81,6 +80,7 @@ void JUTDbPrint::flush(int param_0, int param_1, int param_2, int param_3) { if (mVisible) { this->drawString(cur->unk_0x04, cur->unk_0x06, cur->unk_0x0A, (u8*)cur->unk_0x0C); } + if (--cur->unk_0x08 <= 0) { unk_print* next = cur->mNext; JKRFreeToHeap(mHeap, cur); @@ -105,9 +105,11 @@ void JUTDbPrint::drawString(int param_0, int param_1, int param_2, u8 const* par void JUTReport(int param_0, int param_1, char const* fmt, ...) { va_list args; va_start(args, fmt); + char buf[0x100]; int ret = vsnprintf(buf, 0x100, fmt, args); va_end(args); + if (ret < 0) { return; } @@ -118,9 +120,11 @@ void JUTReport(int param_0, int param_1, char const* fmt, ...) { void JUTReport(int param_0, int param_1, int param_2, char const* fmt, ...) { va_list args; va_start(args, fmt); + char buf[0x100]; int ret = vsnprintf(buf, 0x100, fmt, args); va_end(args); + if (ret < 0) { return; } diff --git a/libs/JSystem/JUtility/JUTDirectPrint.cpp b/libs/JSystem/JUtility/JUTDirectPrint.cpp index bd019b7bf9..ba56b7f3be 100644 --- a/libs/JSystem/JUtility/JUTDirectPrint.cpp +++ b/libs/JSystem/JUtility/JUTDirectPrint.cpp @@ -8,7 +8,6 @@ #include "Runtime.PPCEABI.H/__va_arg.h" #include "dol2asm.h" #include "dolphin/os/OSCache.h" -#include "dolphin/types.h" #include "global.h" // diff --git a/libs/JSystem/JUtility/JUTException.cpp b/libs/JSystem/JUtility/JUTException.cpp index 36bee8c826..bb6b89b20b 100644 --- a/libs/JSystem/JUtility/JUTException.cpp +++ b/libs/JSystem/JUtility/JUTException.cpp @@ -5,13 +5,12 @@ #include "JSystem/JUtility/JUTException.h" #include "JSystem/JUtility/JUTConsole.h" -#include "JSystem/JUtility/JUTDirectPrint.h" #include "JSystem/JUtility/JUTDirectFile.h" +#include "JSystem/JUtility/JUTDirectPrint.h" #include "MSL_C/MSL_Common/Src/float.h" #include "MSL_C/MSL_Common/Src/printf.h" #include "Runtime.PPCEABI.H/__va_arg.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Forward References: @@ -110,7 +109,7 @@ OSErrorHandler JUTException::sPostUserCallback; /* 802E1D5C-802E1E40 2DC69C 00E4+00 1/1 0/0 0/0 .text __ct__12JUTExceptionFP14JUTDirectPrint */ JUTException::JUTException(JUTDirectPrint* directPrint) - : JKRThread(0x1C00 /* 0x4000 in DEBUG */, 0x10, 0), mDirectPrint(directPrint) { + : JKRThread(0x1C00, 0x10, 0), mDirectPrint(directPrint) { OSSetErrorHandler(EXCEPTION_DSI, errorHandler); OSSetErrorHandler(EXCEPTION_ISI, errorHandler); OSSetErrorHandler(EXCEPTION_PROGRAM, errorHandler); @@ -945,13 +944,15 @@ bool JUTException::queryMapAddress(char* mapPath, u32 address, s32 section_id, u strcpy(buffer, mapPath); strcat(buffer, ".map"); if (queryMapAddress_single(buffer, address, section_id, out_addr, out_size, out_line, - line_length, print, begin_with_newline) == true) { + line_length, print, begin_with_newline) == true) + { return true; } } else if (sMapFileList.getFirst() != sMapFileList.getEnd()) { if (queryMapAddress_single(sMapFileList.getFirst()->getObject()->mPath, address, -1, out_addr, out_size, out_line, line_length, print, - begin_with_newline) == true) { + begin_with_newline) == true) + { return true; } } @@ -1147,5 +1148,3 @@ JUTException::~JUTException() {} */ /* 804508F8-80450900 000378 0008+00 0/0 3/3 0/0 .sdata None */ SECTION_SDATA extern bool sAssertVisible = true; - -/* 8039D490-8039D490 029AF0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JUtility/JUTFontData_Ascfont_fix12.cpp b/libs/JSystem/JUtility/JUTFontData_Ascfont_fix12.cpp index 5968732e53..e04241e93c 100644 --- a/libs/JSystem/JUtility/JUTFontData_Ascfont_fix12.cpp +++ b/libs/JSystem/JUtility/JUTFontData_Ascfont_fix12.cpp @@ -5,7 +5,6 @@ #include "JSystem/JUtility/JUTFontData_Ascfont_fix12.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Forward References: diff --git a/libs/JSystem/JUtility/JUTGamePad.cpp b/libs/JSystem/JUtility/JUTGamePad.cpp index 97e8e1fff9..fc30108667 100644 --- a/libs/JSystem/JUtility/JUTGamePad.cpp +++ b/libs/JSystem/JUtility/JUTGamePad.cpp @@ -377,7 +377,8 @@ void JUTGamePad::update() { } if (field_0xa8 == 0 || - (mButton.mButton & C3ButtonReset::sResetMaskPattern) != C3ButtonReset::sResetPattern) { + (mButton.mButton & C3ButtonReset::sResetMaskPattern) != C3ButtonReset::sResetPattern) + { mButtonReset.mReset = false; } else if (!JUTGamePad::C3ButtonReset::sResetOccurred) { if (mButtonReset.mReset == true) { @@ -488,7 +489,8 @@ void JUTGamePad::CButton::update(PADStatus const* padStatus, u32 stickStatus) { field_0x1c++; if (field_0x1c == field_0x28 || - (field_0x1c > field_0x28 && (field_0x1c - field_0x28) % field_0x2c == 0)) { + (field_0x1c > field_0x28 && (field_0x1c - field_0x28) % field_0x2c == 0)) + { mRepeat = repeatButton; } } else { diff --git a/libs/JSystem/JUtility/JUTGraphFifo.cpp b/libs/JSystem/JUtility/JUTGraphFifo.cpp index 782708926b..bc23716ef4 100644 --- a/libs/JSystem/JUtility/JUTGraphFifo.cpp +++ b/libs/JSystem/JUtility/JUTGraphFifo.cpp @@ -5,12 +5,6 @@ #include "JSystem/JUtility/JUTGraphFifo.h" #include "JSystem/JKernel/JKRHeap.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Declarations: -// /* 804514B8-804514BC 0009B8 0004+00 1/1 0/0 0/0 .sbss None */ static bool data_804514B8; diff --git a/libs/JSystem/JUtility/JUTNameTab.cpp b/libs/JSystem/JUtility/JUTNameTab.cpp index 2c600618db..00cc32b420 100644 --- a/libs/JSystem/JUtility/JUTNameTab.cpp +++ b/libs/JSystem/JUtility/JUTNameTab.cpp @@ -5,8 +5,6 @@ #include "JSystem/JUtility/JUTNameTab.h" #include "MSL_C/MSL_Common/Src/string.h" -#include "dol2asm.h" -#include "dolphin/types.h" JUTNameTab::JUTNameTab() { setResource(NULL); diff --git a/libs/JSystem/JUtility/JUTProcBar.cpp b/libs/JSystem/JUtility/JUTProcBar.cpp index 5ab793abd2..578b1351bf 100644 --- a/libs/JSystem/JUtility/JUTProcBar.cpp +++ b/libs/JSystem/JUtility/JUTProcBar.cpp @@ -224,30 +224,32 @@ SECTION_SDATA2 static f64 lit_2315 = 4503599627370496.0 /* cast u32 to float */; #ifdef NONMATCHING // float literals void JUTProcBar::adjustMeterLength(u32 param_0, f32* param_1, f32 param_2, f32 param_3, int* param_4) { - BOOL var2 = false; - float var1 = *param_1; - while (var1 > param_2) { - if (param_0 * var1 * FLOAT_LABEL(lit_2308) / FLOAT_LABEL(lit_2309) <= field_0x114.mWidth - FLOAT_LABEL(lit_2310)) - break; + BOOL var2 = false; + float var1 = *param_1; + while (var1 > param_2) { + if (param_0 * var1 * FLOAT_LABEL(lit_2308) / FLOAT_LABEL(lit_2309) <= + field_0x114.mWidth - FLOAT_LABEL(lit_2310)) + break; - var1 -= FLOAT_LABEL(lit_2311); - var2 = true; - } + var1 -= FLOAT_LABEL(lit_2311); + var2 = true; + } - if (var1 >= param_3) - *param_4 = 0; - if (var1 > param_3 - FLOAT_LABEL(lit_2312)) - var1 = param_3; + if (var1 >= param_3) + *param_4 = 0; + if (var1 > param_3 - FLOAT_LABEL(lit_2312)) + var1 = param_3; - while (!var2 && var1 < param_3) { - (*param_4)++; - if (*param_4 < 0x1e) - break; - if ((param_0 * var1 * FLOAT_LABEL(lit_2308) / FLOAT_LABEL(lit_2309)) < (field_0x114.mWidth - FLOAT_LABEL(lit_2313))) - var1 += FLOAT_LABEL(lit_2312); - break; - } - *param_1 = var1; + while (!var2 && var1 < param_3) { + (*param_4)++; + if (*param_4 < 0x1e) + break; + if ((param_0 * var1 * FLOAT_LABEL(lit_2308) / FLOAT_LABEL(lit_2309)) < + (field_0x114.mWidth - FLOAT_LABEL(lit_2313))) + var1 += FLOAT_LABEL(lit_2312); + break; + } + *param_1 = var1; } #else #pragma push @@ -294,7 +296,8 @@ void JUTProcBar::drawProcessBar() { } int r29 = 16666; if (JUTGetVideoManager() && - ((JUTGetVideoManager()->getRenderMode()->vi_tv_mode >> 2) & 0x0f) == 1) { + ((JUTGetVideoManager()->getRenderMode()->vi_tv_mode >> 2) & 0x0f) == 1) + { r29 = 20000; } static int cnt = 0; diff --git a/libs/JSystem/JUtility/JUTResFont.cpp b/libs/JSystem/JUtility/JUTResFont.cpp index ed053194e2..e5786a5339 100644 --- a/libs/JSystem/JUtility/JUTResFont.cpp +++ b/libs/JSystem/JUtility/JUTResFont.cpp @@ -4,8 +4,8 @@ // #include "JSystem/JUtility/JUTResFont.h" +#include "JSystem/JUtility/JUTConsole.h" #include "dol2asm.h" -#include "dolphin/types.h" #include "dolphin/gx/GX.h" // @@ -54,7 +54,6 @@ extern "C" void getDescent__10JUTResFontCFv(); extern "C" void getHeight__10JUTResFontCFv(); extern "C" void __ct__7JUTFontFv(); extern "C" void initialize_state__7JUTFontFv(); -extern "C" void JUTReportConsole(); extern "C" void GXClearVtxDesc(); extern "C" void _savegpr_25(); extern "C" void _savegpr_27(); @@ -158,7 +157,6 @@ bool JUTResFont::protected_initiate(ResFONT const* param_0, JKRHeap* param_1) { if (!param_0) { return false; - } mResFont = param_0; mValid = true; @@ -186,59 +184,40 @@ bool JUTResFont::protected_initiate(ResFONT const* param_0, JKRHeap* param_1) { } } -/* ############################################################################################## */ -/* 8039D45C-8039D45C 029ABC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D45C = "JUTResFont: Unknown data block\n"; -#pragma pop - /* 802DF248-802DF344 2D9B88 00FC+00 1/1 0/0 0/0 .text countBlock__10JUTResFontFv */ -#ifdef NONMATCHING void JUTResFont::countBlock() { - mWidthBlockCount = 0; - mGlyphBlockCount = 0; - mMapBlockCount = 0; - u8* pData = (u8*)&mResource->mData; - for (u32 i = 0; i < mResource->mChunkNum; i++, pData += ((BlockHeader*)pData)->mSize) { - int magic = ((BlockHeader*)pData)->mMagic; - switch (magic) { - case 'WID1': - mWidthBlockCount++; - break; - case 'GLY1': - mGlyphBlockCount++; - break; - case 'MAP1': - mMapBlockCount++; - break; - case 'INF1': - // mInf1Ptr; - break; - default: - JUTReportConsole("JUTResFont: Unknown data block\n"); - } - }; + mWid1BlockNum = 0; + mGly1BlockNum = 0; + mMap1BlockNum = 0; + + u8* pData = (u8*)&mResFont->data; + for (u32 i = 0; i < mResFont->numBlocks; i++, pData += ((BlockHeader*)pData)->size) { + int magic = ((BlockHeader*)pData)->magic; + switch (magic) { + case 'WID1': + mWid1BlockNum++; + break; + case 'GLY1': + mGly1BlockNum++; + break; + case 'MAP1': + mMap1BlockNum++; + break; + case 'INF1': + break; + default: + JUTReportConsole("JUTResFont: Unknown data block\n"); + } + } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTResFont::countBlock() { - nofralloc -#include "asm/JSystem/JUtility/JUTResFont/countBlock__10JUTResFontFv.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 8039D390-8039D39C -00001 000C+00 1/1 1/1 0/0 .rodata saoAboutEncoding___10JUTResFont */ -SECTION_RODATA void* const JUTResFont::saoAboutEncoding_[3] = { - (void*)isLeadByte_1Byte__7JUTFontFi, - (void*)isLeadByte_2Byte__7JUTFontFi, - (void*)isLeadByte_ShiftJIS__7JUTFontFi, +IsLeadByte_func const JUTResFont::saoAboutEncoding_[3] = { + JUTFont::isLeadByte_1Byte, + JUTFont::isLeadByte_2Byte, + JUTFont::isLeadByte_ShiftJIS, }; -COMPILER_STRIP_GATE(0x8039D390, &JUTResFont::saoAboutEncoding_); /* 8039D45C-8039D45C 029ABC 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push @@ -328,70 +307,70 @@ SECTION_SDATA2 static f64 lit_651 = 4503599627370496.0 /* cast u32 to float */; #ifdef NONMATCHING // still missing a bunch of stuff f32 JUTResFont::drawChar_scale(f32 pos_x, f32 pos_y, f32 scale_x, f32 scale_y, int str_int, - bool flag) { + bool flag) { JUTFont::TWidth width; - f32 width_val; - f32 pos_height, ascent, ascent_val, scaled_height; - f32 sca_wid; + f32 width_val; + f32 pos_height, ascent, ascent_val, scaled_height; + f32 sca_wid; - loadFont(str_int, GX_TEXMAP0, &width); + loadFont(str_int, GX_TEXMAP0, &width); - if ((mFixed) || (!flag)) { - width_val = pos_x; - } else { - width_val = (pos_x - width.field_0x0 * (scale_x / getCellWidth())); - } - f32 retval = mFixedWidth * (scale_x / getCellWidth()); - if (mFixed == false) { - if (!flag) { - retval = (width.field_0x1 + width.field_0x0) * (scale_x / getCellWidth()); - } else { - retval = width.field_0x1 * (scale_x / getCellWidth()); - } - } - sca_wid = width_val + scale_x; - ascent_val = pos_y - getAscent() * (scale_y / getHeight()); - scaled_height = scale_y / getHeight(); - f32 descent = getDescent(); - f32 ascent_calc = descent * ascent_val; - f32 deshei = descent * scaled_height + pos_y; + if ((mFixed) || (!flag)) { + width_val = pos_x; + } else { + width_val = (pos_x - width.field_0x0 * (scale_x / getCellWidth())); + } + f32 retval = mFixedWidth * (scale_x / getCellWidth()); + if (mFixed == false) { + if (!flag) { + retval = (width.field_0x1 + width.field_0x0) * (scale_x / getCellWidth()); + } else { + retval = width.field_0x1 * (scale_x / getCellWidth()); + } + } + sca_wid = width_val + scale_x; + ascent_val = pos_y - getAscent() * (scale_y / getHeight()); + scaled_height = scale_y / getHeight(); + f32 descent = getDescent(); + f32 ascent_calc = descent * ascent_val; + f32 deshei = descent * scaled_height + pos_y; - ResFONT::GLY1* used_glyphs = mpGlyphBlocks[field_0x66]; - u16 tex_width = used_glyphs->textureWidth; - u16 tex_height = used_glyphs->textureHeight; - int t_width = mWidth; - int t_height = mHeight; - int shift_width = (t_width + used_glyphs->cellHeight) << 15; - int div_width = (t_width << 15) / tex_width; - int div_height = (t_height << 15) / tex_height; - u16 sumWidth = t_width + used_glyphs->cellWidth; - int shift_height = t_height + used_glyphs->cellHeight << 15; - u16 sumHeight = t_height + used_glyphs->cellHeight; - s32 width_ratio = shift_width / tex_width; - s32 height_ratio = shift_height / tex_height; + ResFONT::GLY1* used_glyphs = mpGlyphBlocks[field_0x66]; + u16 tex_width = used_glyphs->textureWidth; + u16 tex_height = used_glyphs->textureHeight; + int t_width = mWidth; + int t_height = mHeight; + int shift_width = (t_width + used_glyphs->cellHeight) << 15; + int div_width = (t_width << 15) / tex_width; + int div_height = (t_height << 15) / tex_height; + u16 sumWidth = t_width + used_glyphs->cellWidth; + int shift_height = t_height + used_glyphs->cellHeight << 15; + u16 sumHeight = t_height + used_glyphs->cellHeight; + s32 width_ratio = shift_width / tex_width; + s32 height_ratio = shift_height / tex_height; - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(width_val,ascent_val,0.0f); + GXPosition3f32(width_val, ascent_val, 0.0f); GXColor1u32(mColor1); - i_GXTexCoord2u16(div_width,div_height); + i_GXTexCoord2u16(div_width, div_height); - GXPosition3f32(sca_wid,ascent_val,0.0f); + GXPosition3f32(sca_wid, ascent_val, 0.0f); GXColor1u32(mColor2); - i_GXTexCoord2u16(width_ratio,div_height); + i_GXTexCoord2u16(width_ratio, div_height); - GXPosition3f32(sca_wid,deshei,0.0f); + GXPosition3f32(sca_wid, deshei, 0.0f); GXColor1u32(mColor4); - i_GXTexCoord2u16(width_ratio,height_ratio); + i_GXTexCoord2u16(width_ratio, height_ratio); - GXPosition3f32(width_val,deshei,0.0f); + GXPosition3f32(width_val, deshei, 0.0f); GXColor1u32(mColor3); - i_GXTexCoord2u16(div_width,height_ratio); + i_GXTexCoord2u16(div_width, height_ratio); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0); - return retval; + return retval; } #else #pragma push @@ -425,10 +404,10 @@ void JUTResFont::getWidthEntry(int param_0, JUTFont::TWidth* i_width) const { for (int i = 0; i < mWid1BlockNum; i++) { if (mpWidthBlocks[i]->startCode <= code && code <= mpWidthBlocks[i]->endCode) { - u8* ptr = &mpWidthBlocks[i]->mChunkNum[(code - mpWidthBlocks[i]->startCode) * 2]; - i_width->field_0x0 = ptr[0]; - i_width->field_0x1 = ptr[1]; - break; + u8* ptr = &mpWidthBlocks[i]->mChunkNum[(code - mpWidthBlocks[i]->startCode) * 2]; + i_width->field_0x0 = ptr[0]; + i_width->field_0x1 = ptr[1]; + break; } } } @@ -443,7 +422,6 @@ int JUTResFont::getCellWidth() const { if (glyphBlock) { return glyphBlock->cellWidth; } - } return getWidth(); @@ -460,7 +438,6 @@ int JUTResFont::getCellHeight() const { if (glyphBlock) { return glyphBlock->cellHeight; } - } return getHeight(); @@ -476,8 +453,6 @@ asm u16 JUTResFont::getCellHeight() const { #pragma pop #endif - - /* 802DFDA4-802DFDD8 2DA6E4 0034+00 1/0 1/0 0/0 .text isLeadByte__10JUTResFontCFi */ bool JUTResFont::isLeadByte(int param_0) const { return (*mIsLeadByte)(param_0); @@ -486,22 +461,14 @@ bool JUTResFont::isLeadByte(int param_0) const { /* ############################################################################################## */ /* 8039D39C-8039D45C 0299FC 00BE+02 1/1 0/0 0/0 .rodata halftofull$726 */ static const u16 halftofull[95] = { - 0x8140, 0x8149, 0x8168, 0x8194, 0x8190, 0x8193, - 0x8195, 0x8166, 0x8169, 0x816A, 0x8196, 0x817B, - 0x8143, 0x817C, 0x8144, 0x815E, 0x824F, 0x8250, - 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256, - 0x8257, 0x8258, 0x8146, 0x8147, 0x8183, 0x8181, - 0x8184, 0x8148, 0x8197, 0x8260, 0x8261, 0x8262, - 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8268, - 0x8269, 0x826A, 0x826B, 0x826C, 0x826D, 0x826E, - 0x826F, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, - 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x816D, - 0x818F, 0x816E, 0x814F, 0x8151, 0x8165, 0x8281, - 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, - 0x8288, 0x8289, 0x828A, 0x828B, 0x828C, 0x828D, - 0x828E, 0x828F, 0x8290, 0x8291, 0x8292, 0x8293, - 0x8294, 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, - 0x829A, 0x816F, 0x8162, 0x8170, 0x8160, + 0x8140, 0x8149, 0x8168, 0x8194, 0x8190, 0x8193, 0x8195, 0x8166, 0x8169, 0x816A, 0x8196, 0x817B, + 0x8143, 0x817C, 0x8144, 0x815E, 0x824F, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256, + 0x8257, 0x8258, 0x8146, 0x8147, 0x8183, 0x8181, 0x8184, 0x8148, 0x8197, 0x8260, 0x8261, 0x8262, + 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8268, 0x8269, 0x826A, 0x826B, 0x826C, 0x826D, 0x826E, + 0x826F, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x816D, + 0x818F, 0x816E, 0x814F, 0x8151, 0x8165, 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, + 0x8288, 0x8289, 0x828A, 0x828B, 0x828C, 0x828D, 0x828E, 0x828F, 0x8290, 0x8291, 0x8292, 0x8293, + 0x8294, 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, 0x829A, 0x816F, 0x8162, 0x8170, 0x8160, }; /* 802DFDD8-802DFF60 2DA718 0188+00 2/2 0/0 0/0 .text getFontCode__10JUTResFontCFi */ @@ -509,54 +476,53 @@ static const u16 halftofull[95] = { // still many issues int JUTResFont::getFontCode(int param_0) const { int ret = mInf1Ptr->width; - if ((getFontType() == 2) && (mMaxCode >= 0x8000U) && (param_0 >= 0x20) && (param_0 < 0x7FU)) { - param_0 = halftofull[param_0 - 32]; - } - int j = 0; - for (int i = mMap1BlockNum; i > 0; j++, i--) { - if ((mpMapBlocks[j]->endCode <= param_0) && (param_0 <= mpMapBlocks[j]->numEntries)) { - ResFONT::MAP1* temp_r4 = mpMapBlocks[j]; - if (temp_r4->startCode == 0) { - ret = param_0 - temp_r4->endCode; - break; - } else if (temp_r4->startCode == 2) { - ret = *(&mpMapBlocks[j]->mLeading + ((param_0 - mpMapBlocks[j]->endCode))); - break; - } else if (temp_r4->startCode == 3) { - u16* leading_temp = &temp_r4->mLeading; - int phi_r5 = 0; - int phi_r6_2 = temp_r4->numEntries - 1; + if ((getFontType() == 2) && (mMaxCode >= 0x8000U) && (param_0 >= 0x20) && (param_0 < 0x7FU)) { + param_0 = halftofull[param_0 - 32]; + } + int j = 0; + for (int i = mMap1BlockNum; i > 0; j++, i--) { + if ((mpMapBlocks[j]->endCode <= param_0) && (param_0 <= mpMapBlocks[j]->numEntries)) { + ResFONT::MAP1* temp_r4 = mpMapBlocks[j]; + if (temp_r4->startCode == 0) { + ret = param_0 - temp_r4->endCode; + break; + } else if (temp_r4->startCode == 2) { + ret = *(&mpMapBlocks[j]->mLeading + ((param_0 - mpMapBlocks[j]->endCode))); + break; + } else if (temp_r4->startCode == 3) { + u16* leading_temp = &temp_r4->mLeading; + int phi_r5 = 0; + int phi_r6_2 = temp_r4->numEntries - 1; - while (phi_r6_2 >= phi_r5) { + while (phi_r6_2 >= phi_r5) { + u32 temp_r3 = phi_r6_2 + phi_r5; + int temp_r7 = (int)((temp_r3 >> 0x1FU) + phi_r6_2 + phi_r5) >> 1; - u32 temp_r3 = phi_r6_2 + phi_r5; - int temp_r7 = (int)((temp_r3 >> 0x1FU) + phi_r6_2 + phi_r5) >> 1; + if (param_0 < leading_temp[temp_r7 * 2]) { + phi_r6_2 = temp_r7 - 1; + continue; + } - if (param_0 < leading_temp[temp_r7 * 2]) { - phi_r6_2 = temp_r7 - 1; - continue; - } + if (param_0 > leading_temp[temp_r7 * 2]) { + phi_r5 = temp_r7 + 1; + continue; + } - if (param_0 > leading_temp[temp_r7 * 2]) { - phi_r5 = temp_r7 + 1; - continue; - } - - ret = leading_temp[temp_r7 * 2 + 1]; - break; - } - } else if (temp_r4->startCode == 1) { - u16* phi_r5_2 = NULL; - if (temp_r4->numEntries == 1) { - phi_r5_2 = &temp_r4->mLeading; - } - ret = convertSjis(param_0, phi_r5_2); - break; - } - break; - } - } - return ret; + ret = leading_temp[temp_r7 * 2 + 1]; + break; + } + } else if (temp_r4->startCode == 1) { + u16* phi_r5_2 = NULL; + if (temp_r4->numEntries == 1) { + phi_r5_2 = &temp_r4->mLeading; + } + ret = convertSjis(param_0, phi_r5_2); + break; + } + break; + } + } + return ret; } #else #pragma push @@ -571,9 +537,7 @@ asm int JUTResFont::getFontCode(int param_0) const { /* 802DFF60-802E00C4 2DA8A0 0164+00 1/0 0/0 0/0 .text loadImage__10JUTResFontFi11_GXTexMapID */ #ifdef NONMATCHING -asm void JUTResFont::loadImage(int param_0, _GXTexMapID param_1) { - -} +asm void JUTResFont::loadImage(int param_0, _GXTexMapID param_1) {} #else #pragma push #pragma optimization_level 0 @@ -590,17 +554,17 @@ int JUTResFont::convertSjis(int inChr, u16* inLead) const { int tmp = inChr >> 8 & 0xFF; int tmp2 = (u8)inChr - 0x40; - if (0x40 <= tmp2) { - tmp2--; - } + if (0x40 <= tmp2) { + tmp2--; + } - u16 lead = 0x31c; + u16 lead = 0x31c; - if (inLead) { - lead = *inLead; - } + if (inLead) { + lead = *inLead; + } - return tmp2 + (tmp - 0x88) * 0xbc + -0x5e + lead; + return tmp2 + (tmp - 0x88) * 0xbc + -0x5e + lead; } /* 802E0108-802E0110 2DAA48 0008+00 1/0 0/0 0/0 .text isLeadByte_1Byte__7JUTFontFi */ diff --git a/libs/JSystem/JUtility/JUTVideo.cpp b/libs/JSystem/JUtility/JUTVideo.cpp index 99d30ede73..ed80236798 100644 --- a/libs/JSystem/JUtility/JUTVideo.cpp +++ b/libs/JSystem/JUtility/JUTVideo.cpp @@ -6,20 +6,8 @@ #include "JSystem/JUtility/JUTVideo.h" #include "JSystem/JUtility/JUTDirectPrint.h" #include "JSystem/JUtility/JUTXfb.h" -#include "dol2asm.h" -#include "dolphin/types.h" #include "dolphin/vi/vi.h" -// -// External References: -// - -extern "C" void GXSetDrawDone(); - -// -// Declarations: -// - /* 80451538-8045153C 000A38 0004+00 4/4 18/18 1/1 .sbss sManager__8JUTVideo */ JUTVideo* JUTVideo::sManager; @@ -32,12 +20,6 @@ OSTick JUTVideo::sVideoInterval; /* 80451544-80451548 000A44 0004+00 4/4 0/0 0/0 .sbss None */ static bool data_80451544; -/* 80451548-8045154C 000A48 0004+00 1/1 0/0 0/0 .sbss frameBuffer$2222 */ -static void* frameBuffer; - -/* 8045154C-80451550 000A4C 0004+00 1/1 0/0 0/0 .sbss None */ -static s8 data_8045154C; - /* 802E4C54-802E4CAC 2DF594 0058+00 0/0 1/1 0/0 .text * createManager__8JUTVideoFPC16_GXRenderModeObj */ JUTVideo* JUTVideo::createManager(_GXRenderModeObj const* param_0) { @@ -105,10 +87,7 @@ void JUTVideo::preRetraceProc(u32 retrace_count) { return; } - if (!data_8045154C) { - frameBuffer = NULL; - data_8045154C = true; - } + static void* frameBuffer = NULL; if (frameBuffer) { JUTVideo* videoManager = JUTGetVideoManager(); @@ -234,6 +213,4 @@ void JUTVideo::setRenderMode(GXRenderModeObj const* pObj) { } /* 802E5210-802E5214 2DFB50 0004+00 0/0 1/1 0/0 .text waitRetraceIfNeed__8JUTVideoFv */ -void JUTVideo::waitRetraceIfNeed() { - /* empty function */ -} +void JUTVideo::waitRetraceIfNeed() {} diff --git a/libs/JSystem/JUtility/JUTXfb.cpp b/libs/JSystem/JUtility/JUTXfb.cpp index 260136ef5d..8c71e430da 100644 --- a/libs/JSystem/JUtility/JUTXfb.cpp +++ b/libs/JSystem/JUtility/JUTXfb.cpp @@ -6,7 +6,6 @@ #include "JSystem/JUtility/JUTXfb.h" #include "dol2asm.h" #include "dolphin/gx/GX.h" -#include "dolphin/types.h" // // Forward References: @@ -76,8 +75,8 @@ JUTXfb::JUTXfb(_GXRenderModeObj const* pObj, JKRHeap* pHeap, JUTXfb::EXfbNumber #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm JUTXfb::JUTXfb(_GXRenderModeObj const* param_0, JKRHeap* param_1, JUTXfb::EXfbNumber param_2) { - nofralloc +asm JUTXfb::JUTXfb(_GXRenderModeObj const* param_0, JKRHeap* param_1, + JUTXfb::EXfbNumber param_2){nofralloc #include "asm/JSystem/JUtility/JUTXfb/__ct__6JUTXfbFPC16_GXRenderModeObjP7JKRHeapQ26JUTXfb10EXfbNumber.s" } #pragma pop diff --git a/rel/d/a/b/d_a_b_ob/d_a_b_ob.cpp b/rel/d/a/b/d_a_b_ob/d_a_b_ob.cpp index 5b8dbf5ddd..4afdfce59f 100644 --- a/rel/d/a/b/d_a_b_ob/d_a_b_ob.cpp +++ b/rel/d/a/b/d_a_b_ob/d_a_b_ob.cpp @@ -5,7 +5,6 @@ #include "rel/d/a/b/d_a_b_ob/d_a_b_ob.h" #include "dol2asm.h" -#include "dolphin/types.h" // // Types: @@ -15,346 +14,15 @@ namespace std { /* 8061AACC */ void fabsf(f32); }; -struct request_of_phase_process_class {}; - -struct Vec {}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - /* 80266B34 */ void operator-(Vec const&) const; - /* 80266B84 */ void operator*(f32) const; - /* 80611408 */ ~cXyz(); - /* 8061AD60 */ cXyz(f32, f32, f32); - /* 8061AA8C */ cXyz(cXyz const&); - /* 8061A654 */ cXyz(); - /* 8061A95C */ void operator+=(Vec const&); - /* 8061A9AC */ void operator=(cXyz const&); - /* 8061ABF4 */ void set(f32, f32, f32); - /* 8061AC0C */ void abs() const; -}; - struct obj_ystone_class { /* 8061AA70 */ void setCurrentPos(cXyz); }; -struct ob_part_s { - /* 8061A658 */ ~ob_part_s(); - /* 8061A72C */ ob_part_s(); -}; - -struct ob_ke_s { - /* 8061A3A0 */ ~ob_ke_s(); - /* 8061A41C */ ob_ke_s(); -}; - -struct mDoMtx_stack_c { - /* 8000CCC8 */ void push(); - /* 8000CD14 */ void pop(); - /* 8000CD9C */ void transM(f32, f32, f32); - /* 8000CE38 */ void scaleM(f32, f32, f32); - /* 8061A924 */ void multVecZero(Vec*); - - static u8 now[48]; -}; - -struct mDoGph_gInf_c { - /* 80008078 */ void onBlure(); -}; - -struct mDoExt_morf_c { - /* 8061AB4C */ void setPlaySpeed(f32); - /* 8061AD20 */ void isStop(); -}; - -struct J3DMaterialTable {}; - -struct J3DAnmTextureSRTKey {}; - -struct mDoExt_btkAnm { - /* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16); - /* 8000D6D8 */ void entry(J3DMaterialTable*, f32); -}; - -struct J3DAnmTevRegKey {}; - -struct mDoExt_brkAnm { - /* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16); - /* 8000D7A8 */ void entry(J3DMaterialTable*, f32); -}; - -struct mDoExt_baseAnm { - /* 8000D428 */ void play(); -}; - -struct mDoExt_McaMorfCallBack2_c {}; - -struct mDoExt_McaMorfCallBack1_c {}; - -struct J3DAnmTransform {}; - -struct J3DModelData {}; - -struct Z2Creature { - /* 802C06F4 */ void stopAnime(); -}; - -struct mDoExt_McaMorfSO { - /* 800107D0 */ mDoExt_McaMorfSO(J3DModelData*, mDoExt_McaMorfCallBack1_c*, - mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int, - int, Z2Creature*, u32, u32); - /* 800111C0 */ void entryDL(); - /* 800111EC */ void modelCalc(); -}; - -struct mDoExt_McaMorf { - /* 8000FC4C */ mDoExt_McaMorf(J3DModelData*, mDoExt_McaMorfCallBack1_c*, - mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int, int, - int, void*, u32, u32); - /* 8001037C */ void setAnm(J3DAnmTransform*, int, f32, f32, f32, f32, void*); - /* 800105C8 */ void play(Vec*, u32, s8); - /* 80010680 */ void entryDL(); - /* 800106AC */ void modelCalc(); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daPy_py_c { - /* 8061A89C */ void cancelOriginalDemo(); - /* 8061A9C8 */ void changeDemoMode(u32, int, int, s16); - /* 8061A9DC */ void changeOriginalDemo(); -}; - struct daB_OB_HIO_c { /* 8061056C */ daB_OB_HIO_c(); /* 8061A808 */ ~daB_OB_HIO_c(); }; -struct dVibration_c { - /* 8006FA24 */ void StartShock(int, int, cXyz); - /* 8006FB10 */ void StartQuake(int, int, cXyz); - /* 8006FD94 */ void StopQuake(int); -}; - -struct dSv_memBit_c { - /* 80034918 */ void onDungeonItem(int); - /* 80034934 */ void isDungeonItem(int) const; -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dKy_tevstr_c {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dPa_levelEcallBack {}; - -struct csXyz { - /* 8061AAB8 */ csXyz(csXyz const&); - /* 8061A650 */ csXyz(); - /* 802673F4 */ csXyz(s16, s16, s16); - /* 80611EF8 */ ~csXyz(); - /* 8061A990 */ void operator=(csXyz const&); -}; - -struct _GXColor {}; - -struct dPa_control_c { - struct level_c { - /* 8004B918 */ void getEmitter(u32); - }; - - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); - /* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, - cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*, - _GXColor const*, cXyz const*, f32); -}; - -struct dEvt_info_c { - /* 8061AA00 */ void onCondition(u16); - /* 8061AA10 */ void checkCommandDemoAccrpt(); -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); - /* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int); - /* 806185F4 */ void checkSkipEdge(); - /* 8061AB54 */ void startCheckSkipEdge(void*); -}; - -struct dDlst_shadowControl_c { - static u8 mSimpleTexObj[32]; -}; - -struct dCcU_AtInfo {}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcSph {}; - -struct dCcD_Sph { - /* 80084A34 */ void Set(dCcD_SrcSph const&); -}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 80083830 */ void Move(); - /* 8061A5F4 */ ~dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800840E4 */ ~dCcD_GObjInf(); - /* 80084460 */ void ChkTgHit(); - /* 800844F8 */ void GetTgHitObj(); -}; - -struct dCamera_c { - /* 801614AC */ void Start(); - /* 801614D0 */ void Stop(); - /* 8016300C */ void SetTrimSize(s32); - /* 80180B40 */ void Set(cXyz, cXyz, s16, f32); - /* 80180C18 */ void Reset(cXyz, cXyz); -}; - -struct dBgS_PolyPassChk { - /* 80078E68 */ void SetObj(); -}; - -struct dBgS_ObjAcch { - /* 8061A484 */ ~dBgS_ObjAcch(); -}; - -struct dBgS_AcchCir { - /* 80075EAC */ dBgS_AcchCir(); - /* 80075F58 */ void SetWall(f32, f32); - /* 8061A4F4 */ ~dBgS_AcchCir(); -}; - -struct dBgS {}; - -struct dBgS_Acch { - /* 80075F94 */ ~dBgS_Acch(); - /* 800760A0 */ dBgS_Acch(); - /* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*); - /* 80076AAC */ void CrrPos(dBgS&); -}; - -struct cM3dGSph { - /* 8026F648 */ void SetC(cXyz const&); - /* 8026F708 */ void SetR(f32); - /* 8061A564 */ ~cM3dGSph(); -}; - -struct cM3dGCir { - /* 8026EF18 */ ~cM3dGCir(); -}; - -struct cM3dGAab { - /* 8061A5AC */ ~cM3dGAab(); -}; - -struct cCcD_Obj {}; - -struct cCcS { - /* 80264BA8 */ void Set(cCcD_Obj*); -}; - -struct cCcD_GStts { - /* 8061A7C0 */ ~cCcD_GStts(); -}; - -struct cBgS_PolyInfo { - /* 802680B0 */ ~cBgS_PolyInfo(); -}; - -struct b_ob_class { - /* 8061A0C0 */ b_ob_class(); -}; - -struct _GXTexObj {}; - -struct Z2SeqMgr { - /* 802AF010 */ void bgmStart(u32, u32, s32); - /* 802AF408 */ void bgmStop(u32, s32); - /* 802AF49C */ void subBgmStart(u32); - /* 802AFB94 */ void bgmStreamPrepare(u32); - /* 802AFE18 */ void bgmStreamPlay(); - /* 802AFF8C */ void changeBgmStatus(s32); -}; - -struct JAISoundID { - /* 8061AC04 */ JAISoundID(u32); -}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2CreatureOI { - /* 802C2578 */ Z2CreatureOI(); - /* 802C2670 */ void init(Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, Vec*, - Vec*); - /* 802C2CD4 */ void startTentacleSoundLevel(JAISoundID, u8, f32, u32, s8); -}; - -struct Z2CreatureEnemy { - /* 802C0F64 */ Z2CreatureEnemy(); - /* 802C1094 */ void init(Vec*, Vec*, u8, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct JPABaseEmitter { - /* 8061AAA8 */ void becomeDeleteEmitter(); -}; - -struct JMath { - static u8 sincosTable_[65536]; -}; - -struct JGeometry { - template - struct TVec3 {}; - /* TVec3 */ - struct TVec3__template0 {}; -}; - -struct J3DSys { - static u8 mCurrentMtx[48]; -}; - -struct J3DModel { - /* 8061A948 */ void getAnmMtx(int); -}; - -struct J3DJoint {}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 8032842C */ void checkPass(f32); - /* 80619C14 */ ~J3DFrameCtrl(); -}; - // // Forward References: // @@ -448,7 +116,7 @@ extern "C" void startCheckSkipEdge__14dEvt_control_cFPv(); extern "C" static void dComIfGp_getEvent__Fv(); extern "C" static void mDoAud_seStart__FUlPC3VecUlSc(); extern "C" void set__4cXyzFfff(); -extern "C" void __ct__10JAISoundIDFUl(); +extern "C" void __ct__10JAISoundIDFUl(JAISoundID* this_, u32 param_0); extern "C" void abs__4cXyzCFv(); extern "C" void isStop__13mDoExt_morf_cFv(); extern "C" static void dComIfGp_getVibration__Fv(); @@ -593,11 +261,6 @@ extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void init__12J3DFrameCtrlFs(); extern "C" void checkPass__12J3DFrameCtrlFf(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECAdd(); -extern "C" void PSVECSquareMag(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void __cvt_fp2unsigned(); @@ -620,23 +283,15 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" extern void* __vt__19mDoExt_3DlineMat0_c[5]; -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__8dCcD_Sph[36]; extern "C" extern void* __vt__9dCcD_Stts[11]; extern "C" extern void* __vt__12cCcD_SphAttr[25]; extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; extern "C" extern void* __vt__9cCcD_Stts[8]; extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 mCurrentMtx__6J3DSys[48]; extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern void* calc_mtx[1 + 1 /* padding */]; -extern "C" extern u32 __float_nan; -extern "C" extern u8 mBlureFlag__13mDoGph_gInf_c[4]; extern "C" extern u8 struct_80450C98[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; extern "C" void __register_global_object(); @@ -1289,7 +944,8 @@ static asm void daB_OB_Draw(b_ob_class* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::~cXyz() { +// asm cXyz::~cXyz() { +extern "C" asm void __dt__4cXyzFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__dt__4cXyzFv.s" } @@ -1443,7 +1099,8 @@ static asm void bombfishset(b_ob_class* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm csXyz::~csXyz() { +// asm csXyz::~csXyz() { +extern "C" asm void __dt__5csXyzFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__dt__5csXyzFv.s" } @@ -2157,7 +1814,8 @@ static asm void demo_camera(b_ob_class* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_particle_getEmitter(u32 param_0) { +// static asm void dComIfGp_particle_getEmitter(u32 param_0) { +extern "C" asm void dComIfGp_particle_getEmitter__FUl() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/dComIfGp_particle_getEmitter__FUl.s" } @@ -2168,8 +1826,9 @@ static asm void dComIfGp_particle_getEmitter(u32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_particle_set(u32 param_0, u16 param_1, cXyz const* param_2, - csXyz const* param_3, cXyz const* param_4) { +/* static asm void dComIfGp_particle_set(u32 param_0, u16 param_1, cXyz const* param_2, + csXyz const* param_3, cXyz const* param_4) { */ +extern "C" asm void dComIfGp_particle_set__FUlUsPC4cXyzPC5csXyzPC4cXyz() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/dComIfGp_particle_set__FUlUsPC4cXyzPC5csXyzPC4cXyz.s" } @@ -2907,7 +2566,8 @@ static asm void useHeapInit(fopAc_ac_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DFrameCtrl::~J3DFrameCtrl() { +// asm J3DFrameCtrl::~J3DFrameCtrl() { +extern "C" asm void __dt__12J3DFrameCtrlFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__dt__12J3DFrameCtrlFv.s" } @@ -2986,7 +2646,8 @@ asm ob_ke_s::ob_ke_s() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_ObjAcch::~dBgS_ObjAcch() { +// asm dBgS_ObjAcch::~dBgS_ObjAcch() { +extern "C" asm void __dt__12dBgS_ObjAcchFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__dt__12dBgS_ObjAcchFv.s" } @@ -2996,7 +2657,8 @@ asm dBgS_ObjAcch::~dBgS_ObjAcch() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_AcchCir::~dBgS_AcchCir() { +// asm dBgS_AcchCir::~dBgS_AcchCir() { +extern "C" asm void __dt__12dBgS_AcchCirFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__dt__12dBgS_AcchCirFv.s" } @@ -3006,7 +2668,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGSph::~cM3dGSph() { +// asm cM3dGSph::~cM3dGSph() { +extern "C" asm void __dt__8cM3dGSphFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__dt__8cM3dGSphFv.s" } @@ -3016,7 +2679,8 @@ asm cM3dGSph::~cM3dGSph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__dt__8cM3dGAabFv.s" } @@ -3026,19 +2690,22 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__dt__10dCcD_GSttsFv.s" } #pragma pop /* 8061A650-8061A654 00A1D0 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -csXyz::csXyz() { +// csXyz::csXyz() { +extern "C" void __ct__5csXyzFv() { /* empty function */ } /* 8061A654-8061A658 00A1D4 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -cXyz::cXyz() { +// cXyz::cXyz() { +extern "C" void __ct__4cXyzFv() { /* empty function */ } @@ -3066,7 +2733,8 @@ asm ob_part_s::ob_part_s() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__dt__10cCcD_GSttsFv.s" } @@ -3141,7 +2809,8 @@ static asm void dComIfGp_event_reset() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGs_onStageBossEnemy() { +// static asm void dComIfGs_onStageBossEnemy() { +extern "C" asm void dComIfGs_onStageBossEnemy__Fv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/dComIfGs_onStageBossEnemy__Fv.s" } @@ -3152,7 +2821,8 @@ static asm void dComIfGs_onStageBossEnemy() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoMtx_stack_c::multVecZero(Vec* param_0) { +// asm void mDoMtx_stack_c::multVecZero(Vec* param_0) { +extern "C" asm void multVecZero__14mDoMtx_stack_cFP3Vec() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/multVecZero__14mDoMtx_stack_cFP3Vec.s" } @@ -3162,7 +2832,8 @@ asm void mDoMtx_stack_c::multVecZero(Vec* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J3DModel::getAnmMtx(int param_0) { +// asm void J3DModel::getAnmMtx(int param_0) { +extern "C" asm void getAnmMtx__8J3DModelFi() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/getAnmMtx__8J3DModelFi.s" } @@ -3172,7 +2843,8 @@ asm void J3DModel::getAnmMtx(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cXyz::operator+=(Vec const& param_0) { +// asm void cXyz::operator+=(Vec const& param_0) { +extern "C" asm void __apl__4cXyzFRC3Vec() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__apl__4cXyzFRC3Vec.s" } @@ -3182,7 +2854,8 @@ asm void cXyz::operator+=(Vec const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void csXyz::operator=(csXyz const& param_0) { +// asm void csXyz::operator=(csXyz const& param_0) { +extern "C" asm void __as__5csXyzFRC5csXyz() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__as__5csXyzFRC5csXyz.s" } @@ -3192,7 +2865,8 @@ asm void csXyz::operator=(csXyz const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cXyz::operator=(cXyz const& param_0) { +// asm void cXyz::operator=(cXyz const& param_0) { +extern "C" asm void __as__4cXyzFRC4cXyz() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__as__4cXyzFRC4cXyz.s" } @@ -3222,7 +2896,8 @@ asm void daPy_py_c::changeOriginalDemo() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void daPy_getPlayerActorClass() { +// static asm void daPy_getPlayerActorClass() { +extern "C" asm void daPy_getPlayerActorClass__Fv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/daPy_getPlayerActorClass__Fv.s" } @@ -3242,7 +2917,8 @@ asm void dEvt_info_c::onCondition(u16 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dEvt_info_c::checkCommandDemoAccrpt() { +// asm void dEvt_info_c::checkCommandDemoAccrpt() { +extern "C" asm void checkCommandDemoAccrpt__11dEvt_info_cFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/checkCommandDemoAccrpt__11dEvt_info_cFv.s" } @@ -3252,7 +2928,8 @@ asm void dEvt_info_c::checkCommandDemoAccrpt() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getCamera(int param_0) { +// static asm void dComIfGp_getCamera(int param_0) { +extern "C" asm void dComIfGp_getCamera__Fi() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/dComIfGp_getCamera__Fi.s" } @@ -3262,7 +2939,8 @@ static asm void dComIfGp_getCamera(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getPlayerCameraID(int param_0) { +// static asm void dComIfGp_getPlayerCameraID(int param_0) { +extern "C" asm void dComIfGp_getPlayerCameraID__Fi() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/dComIfGp_getPlayerCameraID__Fi.s" } @@ -3272,7 +2950,8 @@ static asm void dComIfGp_getPlayerCameraID(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getPlayer(int param_0) { +// static asm void dComIfGp_getPlayer(int param_0) { +extern "C" asm void dComIfGp_getPlayer__Fi() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/dComIfGp_getPlayer__Fi.s" } @@ -3292,7 +2971,8 @@ asm void obj_ystone_class::setCurrentPos(cXyz param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::cXyz(cXyz const& param_0) { +// asm cXyz::cXyz(cXyz const& param_0) { +extern "C" asm void __ct__4cXyzFRC4cXyz() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__ct__4cXyzFRC4cXyz.s" } @@ -3302,7 +2982,8 @@ asm cXyz::cXyz(cXyz const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JPABaseEmitter::becomeDeleteEmitter() { +// asm void JPABaseEmitter::becomeDeleteEmitter() { +extern "C" asm void becomeDeleteEmitter__14JPABaseEmitterFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/becomeDeleteEmitter__14JPABaseEmitterFv.s" } @@ -3312,7 +2993,8 @@ asm void JPABaseEmitter::becomeDeleteEmitter() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm csXyz::csXyz(csXyz const& param_0) { +// asm csXyz::csXyz(csXyz const& param_0) { +extern "C" asm void __ct__5csXyzFRC5csXyz() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__ct__5csXyzFRC5csXyz.s" } @@ -3322,7 +3004,8 @@ asm csXyz::csXyz(csXyz const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void std::fabsf(f32 param_0) { +// asm void std::fabsf(f32 param_0) { +extern "C" asm void fabsf__3stdFf() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/fabsf__3stdFf.s" } @@ -3333,8 +3016,9 @@ asm void std::fabsf(f32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_particle_set(u16 param_0, cXyz const* param_1, csXyz const* param_2, - cXyz const* param_3) { +/* static asm void dComIfGp_particle_set(u16 param_0, cXyz const* param_1, csXyz const* param_2, + cXyz const* param_3) { */ +extern "C" asm void dComIfGp_particle_set__FUsPC4cXyzPC5csXyzPC4cXyz() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/dComIfGp_particle_set__FUsPC4cXyzPC5csXyzPC4cXyz.s" } @@ -3344,7 +3028,8 @@ static asm void dComIfGp_particle_set(u16 param_0, cXyz const* param_1, csXyz co #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoExt_morf_c::setPlaySpeed(f32 param_0) { +// asm void mDoExt_morf_c::setPlaySpeed(f32 param_0) { +extern "C" asm void setPlaySpeed__13mDoExt_morf_cFf() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/setPlaySpeed__13mDoExt_morf_cFf.s" } @@ -3354,7 +3039,8 @@ asm void mDoExt_morf_c::setPlaySpeed(f32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dEvt_control_c::startCheckSkipEdge(void* param_0) { +// asm void dEvt_control_c::startCheckSkipEdge(void* param_0) { +extern "C" asm void startCheckSkipEdge__14dEvt_control_cFPv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/startCheckSkipEdge__14dEvt_control_cFPv.s" } @@ -3364,7 +3050,8 @@ asm void dEvt_control_c::startCheckSkipEdge(void* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getEvent() { +// static asm void dComIfGp_getEvent() { +extern "C" asm void dComIfGp_getEvent__Fv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/dComIfGp_getEvent__Fv.s" } @@ -3374,7 +3061,8 @@ static asm void dComIfGp_getEvent() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void mDoAud_seStart(u32 param_0, Vec const* param_1, u32 param_2, s8 param_3) { +// static asm void mDoAud_seStart(u32 param_0, Vec const* param_1, u32 param_2, s8 param_3) { +extern "C" asm void mDoAud_seStart__FUlPC3VecUlSc() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/mDoAud_seStart__FUlPC3VecUlSc.s" } @@ -3384,22 +3072,25 @@ static asm void mDoAud_seStart(u32 param_0, Vec const* param_1, u32 param_2, s8 #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cXyz::set(f32 param_0, f32 param_1, f32 param_2) { +// asm void cXyz::set(f32 param_0, f32 param_1, f32 param_2) { +extern "C" asm void set__4cXyzFfff() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/set__4cXyzFfff.s" } #pragma pop /* 8061AC04-8061AC0C -00001 0008+00 0/0 0/0 0/0 .text __ct__10JAISoundIDFUl */ -JAISoundID::JAISoundID(u32 param_0) { - *(u32*)this = (u32)(param_0); +// JAISoundID::JAISoundID(u32 param_0) { +extern "C" void __ct__10JAISoundIDFUl(JAISoundID* this_, u32 param_0) { + *(u32*)this_ = (u32)(param_0); } /* 8061AC0C-8061AD20 00A78C 0114+00 1/1 0/0 0/0 .text abs__4cXyzCFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void cXyz::abs() const { +// asm void cXyz::abs() const { +extern "C" asm void abs__4cXyzCFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/abs__4cXyzCFv.s" } @@ -3409,7 +3100,8 @@ asm void cXyz::abs() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoExt_morf_c::isStop() { +// asm void mDoExt_morf_c::isStop() { +extern "C" asm void isStop__13mDoExt_morf_cFv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/isStop__13mDoExt_morf_cFv.s" } @@ -3419,7 +3111,8 @@ asm void mDoExt_morf_c::isStop() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dComIfGp_getVibration() { +// static asm void dComIfGp_getVibration() { +extern "C" asm void dComIfGp_getVibration__Fv() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/dComIfGp_getVibration__Fv.s" } @@ -3429,7 +3122,8 @@ static asm void dComIfGp_getVibration() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::cXyz(f32 param_0, f32 param_1, f32 param_2) { +// asm cXyz::cXyz(f32 param_0, f32 param_1, f32 param_2) { +extern "C" asm void __ct__4cXyzFfff() { nofralloc #include "asm/rel/d/a/b/d_a_b_ob/d_a_b_ob/__ct__4cXyzFfff.s" } diff --git a/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.cpp b/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.cpp index 3e1294891a..ce2bae1892 100644 --- a/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.cpp +++ b/rel/d/a/b/d_a_b_oh2/d_a_b_oh2.cpp @@ -139,10 +139,10 @@ static void action(b_oh2_class* i_this) { break; } - PSMTXCopy(boss->field_0x5c0->getModel()->i_getAnmMtx(i_this->field_0x5c8 + 8), + PSMTXCopy(boss->mParts[0].field_0x0->getModel()->i_getAnmMtx(i_this->field_0x5c8 + 8), mDoMtx_stack_c::get()); mDoMtx_stack_c::multVecZero(&i_this->current.pos); - PSMTXCopy(boss->field_0x5c0->getModel()->i_getAnmMtx(0), mDoMtx_stack_c::get()); + PSMTXCopy(boss->mParts[0].field_0x0->getModel()->i_getAnmMtx(0), mDoMtx_stack_c::get()); local_20.set(0.0f, 0.0f, i_this->field_0x5c8 * 20.0f + 650.0f); mDoMtx_stack_c::multVec(&local_20, &vstack_2C); diff --git a/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.cpp b/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.cpp index 81bd469d31..13d28d60e0 100644 --- a/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.cpp +++ b/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.cpp @@ -4,192 +4,8 @@ // #include "rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct cXyz {}; - -struct mDoMtx_stack_c { - /* 8000CD64 */ void transS(cXyz const&); - /* 8000CD9C */ void transM(f32, f32, f32); - - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daObjSwHang_c { - /* 80CFB9D8 */ void initBaseMtx(); - /* 80CFBA60 */ void setBaseMtx(); - /* 80CFBAC8 */ void Create(); - /* 80CFBCB8 */ void CreateHeap(); - /* 80CFBDD0 */ void create1st(); - /* 80CFC04C */ void calcHangPos(); - /* 80CFC114 */ void checkDown(); - /* 80CFC194 */ void changeOnStatus(); - /* 80CFC1F4 */ void changeOffStatus(); - /* 80CFC254 */ void Execute(f32 (**)[3][4]); - /* 80CFC4C4 */ void action(); - /* 80CFC550 */ void checkDownSw(); - /* 80CFC698 */ void init_modeOffWait(); - /* 80CFC6AC */ void modeOffWait(); - /* 80CFCA34 */ void init_modeOnWait(); - /* 80CFCA40 */ void modeOnWait(); - /* 80CFCCE0 */ void eventStart(); - /* 80CFCD04 */ void Draw(); - /* 80CFCD98 */ void Delete(); - /* 80CFD034 */ ~daObjSwHang_c(); -}; - -struct dVibration_c { - /* 8006FA24 */ void StartShock(int, int, cXyz); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 800352B0 */ void offSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dEvLib_callback_c { - /* 8004886C */ void eventUpdate(); - /* 80048940 */ void orderEvent(int, int, int); - /* 80CFCFD4 */ ~dEvLib_callback_c(); - /* 80CFD01C */ bool eventStart(); - /* 80CFD024 */ bool eventRun(); - /* 80CFD02C */ bool eventEnd(); -}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcSph {}; - -struct dCcD_Sph { - /* 80084A34 */ void Set(dCcD_SrcSph const&); -}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 80CFBFF0 */ ~dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800840E4 */ ~dCcD_GObjInf(); - /* 80084460 */ void ChkTgHit(); - /* 800844F8 */ void GetTgHitObj(); -}; - -struct dBgW_Base {}; - -struct dBgW { - /* 8007B970 */ dBgW(); - /* 8007B9C0 */ void Move(); -}; - -struct cBgS_PolyInfo {}; - -struct csXyz {}; - -struct dBgS_MoveBgActor { - /* 80078624 */ dBgS_MoveBgActor(); - /* 800786B0 */ bool IsDelete(); - /* 800786B8 */ bool ToFore(); - /* 800786C0 */ bool ToBack(); - /* 800787BC */ void MoveBGCreate(char const*, int, - void (*)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, - csXyz*, csXyz*), - u32, f32 (*)[3][4]); - /* 800788DC */ void MoveBGDelete(); - /* 80078950 */ void MoveBGExecute(); -}; - -struct dBgS { - /* 80074A08 */ void Regist(dBgW_Base*, fopAc_ac_c*); -}; - -struct cM3dGSph { - /* 8026F648 */ void SetC(cXyz const&); - /* 8026F708 */ void SetR(f32); - /* 80CFBF60 */ ~cM3dGSph(); -}; - -struct cM3dGAab { - /* 80CFBFA8 */ ~cM3dGAab(); -}; - -struct cCcD_Obj {}; - -struct cCcS { - /* 80264BA8 */ void Set(cCcD_Obj*); -}; - -struct cCcD_GStts { - /* 80CFCF8C */ ~cCcD_GStts(); -}; - -struct cBgW_BgId { - /* 802681D4 */ void ChkUsed() const; -}; - -struct cBgD_t {}; - -struct cBgW { - /* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]); -}; - -struct cBgS { - /* 80074250 */ void Release(dBgW_Base*); -}; - -struct JAISoundID {}; - -struct Vec {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct JUTNameTab { - /* 802DEAF8 */ void getName(u16) const; -}; - -struct JMath { - static u8 sincosTable_[65536]; -}; - -struct J3DModel {}; - -struct J3DJoint {}; // // Forward References: @@ -285,17 +101,11 @@ extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void getName__10JUTNameTabCFUs(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcmp(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__16dBgS_MoveBgActor[10]; extern "C" extern void* __vt__8dCcD_Sph[36]; extern "C" extern void* __vt__9dCcD_Stts[11]; @@ -303,9 +113,6 @@ extern "C" extern void* __vt__12cCcD_SphAttr[25]; extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; extern "C" extern void* __vt__9cCcD_Stts[8]; extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; extern "C" extern u8 data_80CFD4D0[4]; @@ -476,7 +283,7 @@ SECTION_DATA static u8 l_sph_src2[64] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjSwHang_c::Create() { +asm int daObjSwHang_c::Create() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/Create__13daObjSwHang_cFv.s" } @@ -486,7 +293,8 @@ asm void daObjSwHang_c::Create() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjSwHang_c::CreateHeap() { +// asm int daObjSwHang_c::CreateHeap() { +extern "C" asm void CreateHeap__13daObjSwHang_cFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/CreateHeap__13daObjSwHang_cFv.s" } @@ -618,7 +426,8 @@ asm void daObjSwHang_c::create1st() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGSph::~cM3dGSph() { +// asm cM3dGSph::~cM3dGSph() { +extern "C" asm void __dt__8cM3dGSphFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/__dt__8cM3dGSphFv.s" } @@ -628,7 +437,8 @@ asm cM3dGSph::~cM3dGSph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/__dt__8cM3dGAabFv.s" } @@ -638,7 +448,8 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/__dt__10dCcD_GSttsFv.s" } @@ -720,7 +531,7 @@ COMPILER_STRIP_GATE(0x80CFD250, &lit_4059); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjSwHang_c::Execute(f32 (**param_0)[3][4]) { +asm int daObjSwHang_c::Execute(f32 (**param_0)[3][4]) { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/Execute__13daObjSwHang_cFPPA3_A4_f.s" } @@ -854,7 +665,7 @@ asm void daObjSwHang_c::eventStart() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjSwHang_c::Draw() { +asm int daObjSwHang_c::Draw() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/Draw__13daObjSwHang_cFv.s" } @@ -864,7 +675,7 @@ asm void daObjSwHang_c::Draw() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjSwHang_c::Delete() { +asm int daObjSwHang_c::Delete() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/Delete__13daObjSwHang_cFv.s" } @@ -916,7 +727,8 @@ static asm void daObjSwHang_MoveBGDraw(daObjSwHang_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/__dt__10cCcD_GSttsFv.s" } @@ -926,7 +738,8 @@ asm cCcD_GStts::~cCcD_GStts() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dEvLib_callback_c::~dEvLib_callback_c() { +// asm dEvLib_callback_c::~dEvLib_callback_c() { +extern "C" asm void __dt__17dEvLib_callback_cFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang/__dt__17dEvLib_callback_cFv.s" } @@ -934,17 +747,20 @@ asm dEvLib_callback_c::~dEvLib_callback_c() { /* 80CFD01C-80CFD024 00175C 0008+00 1/0 0/0 0/0 .text eventStart__17dEvLib_callback_cFv */ -bool dEvLib_callback_c::eventStart() { +// int dEvLib_callback_c::eventStart() { +extern "C" bool eventStart__17dEvLib_callback_cFv() { return true; } /* 80CFD024-80CFD02C 001764 0008+00 2/0 0/0 0/0 .text eventRun__17dEvLib_callback_cFv */ -bool dEvLib_callback_c::eventRun() { +// int dEvLib_callback_c::eventRun() { +extern "C" bool eventRun__17dEvLib_callback_cFv() { return true; } /* 80CFD02C-80CFD034 00176C 0008+00 2/0 0/0 0/0 .text eventEnd__17dEvLib_callback_cFv */ -bool dEvLib_callback_c::eventEnd() { +// int dEvLib_callback_c::eventEnd() { +extern "C" bool eventEnd__17dEvLib_callback_cFv() { return true; } diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index f0f9f14f34..57231ab88c 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -44,10 +44,6 @@ struct daObj_Sekizoa_c { /* 801312C8 */ void setWolfHowling(); }; -struct daObjSwHang_c { - /* 80101874 */ void getHangPos(); -}; - struct daObjMovebox { struct Act_c { struct Prm_e {}; diff --git a/src/d/a/d_a_alink_hang.inc b/src/d/a/d_a_alink_hang.inc index 72ce24aeeb..fea7a305d8 100644 --- a/src/d/a/d_a_alink_hang.inc +++ b/src/d/a/d_a_alink_hang.inc @@ -1,23 +1,30 @@ +#include "rel/d/a/b/d_a_b_ob/d_a_b_ob.h" +#include "rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h" + /* 800F9FDC-800F9FFC 0F491C 0020+00 2/2 0/0 0/0 .text getHangMoveAnmSpeed__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getHangMoveAnmSpeed() { - nofralloc -#include "asm/d/a/d_a_alink/getHangMoveAnmSpeed__9daAlink_cFv.s" +f32 daAlink_c::getHangMoveAnmSpeed() { + return getAnmSpeedStickRate(daAlinkHIO_wallMove_c0::m.mMinAnmSpeed, + daAlinkHIO_wallMove_c0::m.mMaxAnmSpeed); } -#pragma pop /* 800F9FFC-800FA070 0F493C 0074+00 3/3 0/0 0/0 .text getHangDirectionFromAngle__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getHangDirectionFromAngle() { - nofralloc -#include "asm/d/a/d_a_alink/getHangDirectionFromAngle__9daAlink_cFv.s" +int daAlink_c::getHangDirectionFromAngle() { + s16 angle = field_0x2fe2 - shape_angle.y; + if (abs(angle) > 0x78E4) { + return DIR_BACKWARD; + } + + if (angle >= 0x071C) { + return DIR_LEFT; + } + + if (angle <= -0x071C) { + return DIR_RIGHT; + } + + return DIR_FORWARD; } -#pragma pop /* 800FA070-800FA338 0F49B0 02C8+00 2/2 0/0 0/0 .text hangMoveBgCheck__9daAlink_cFsP4cXyz */ @@ -34,7 +41,7 @@ asm BOOL daAlink_c::hangMoveBgCheck(s16 param_0, cXyz* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::changeHangMoveProc(int param_0) { +asm BOOL daAlink_c::changeHangMoveProc(int param_0) { nofralloc #include "asm/d/a/d_a_alink/changeHangMoveProc__9daAlink_cFi.s" } @@ -44,13 +51,26 @@ asm void daAlink_c::changeHangMoveProc(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkHangFootWall() { +asm bool daAlink_c::checkHangFootWall() { nofralloc #include "asm/d/a/d_a_alink/checkHangFootWall__9daAlink_cFv.s" } #pragma pop /* 800FA6E4-800FA78C 0F5024 00A8+00 10/10 0/0 0/0 .text setHangGroundY__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +void daAlink_c::setHangGroundY() { + cXyz pos; + mDoMtx_multVecZero(mpLinkModel->i_getAnmMtx(0), &pos); + + pos.x -= cM_ssin(shape_angle.y) * 15.0f; + pos.z -= cM_scos(shape_angle.y) * 15.0f; + + mLinkGndChk.SetPos(&pos); + field_0x33d8 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -59,16 +79,28 @@ asm void daAlink_c::setHangGroundY() { #include "asm/d/a/d_a_alink/setHangGroundY__9daAlink_cFv.s" } #pragma pop +#endif /* 800FA78C-800FA85C 0F50CC 00D0+00 5/5 0/0 0/0 .text changeHangEndProc__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::changeHangEndProc() { - nofralloc -#include "asm/d/a/d_a_alink/changeHangEndProc__9daAlink_cFv.s" +int daAlink_c::changeHangEndProc() { + setHangGroundY(); + + if (current.pos.y < field_0x33d8 + daAlinkHIO_wallHang_c0::m.field_0x18 - lit_6040 && + (mProcID != PROC_HANG_FALL_START || !(mUnderFrameCtrl->getFrame() < lit_6109)) && + field_0x33d8 < current.pos.y - lit_7808) + { + return procLandInit(FLOAT_LABEL(lit_6108)); + } + + setDoStatus(0x33); + + if (doTrigger()) { + speed.y = FLOAT_LABEL(lit_6108); + return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation); + } + + return 0; } -#pragma pop /* 800FA85C-800FAA7C 0F519C 0220+00 3/3 0/0 0/0 .text checkHangStartSideWall__9daAlink_cFs */ #pragma push @@ -81,6 +113,62 @@ asm void daAlink_c::checkHangStartSideWall(s16 param_0) { #pragma pop /* 800FAA7C-800FAE14 0F53BC 0398+00 3/3 0/0 0/0 .text procHangStartInit__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHangStartInit() { + cXyz sp2C = field_0x34ec - current.pos; + + if (sp2C.absXZ() > field_0x18B0[0].GetWallR() + 20.0f) { + return 0; + } + + cXyz sp38; + sp38.set(field_0x34ec.x - cM_ssin(field_0x306e) * 1.5f, field_0x34ec.y + 10.0f, + field_0x34ec.z - cM_scos(field_0x306e) * 1.5f); + mLinkGndChk.SetPos(&sp38); + + sp38.y = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + + if (fabsf(sp38.y - field_0x34ec.y) > l_autoUpHeight) { + return 0; + } + + BOOL hang_ready = mProcID == PROC_HANG_READY; + commonProcInit(PROC_HANG_START); + current.pos = sp38; + i_offNoResetFlg2(FLG2_UNK_2000); + + if (checkHangFootWall()) { + if (!hang_ready && cM_rnd() < 0.7f) { + setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.field_0x14); + field_0x3478 = daAlinkHIO_ladder_c0::m.field_0x14.mCheckFrame; + voiceStart(Z2SE_AL_V_FOOT_MISS); + } else { + setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.field_0x0); + field_0x3478 = daAlinkHIO_ladder_c0::m.field_0x0.mCheckFrame; + voiceStart(Z2SE_AL_V_JUMP_HANG); + } + + field_0x2f92 = 0xFE; + field_0x2f93 = 0xFE; + } else { + setSingleAnimeParam(ANM_HANG_READY, &daAlinkHIO_wallCatch_c0::m.mGrabAAnm); + field_0x3478 = daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mCheckFrame; + voiceStart(Z2SE_AL_V_JUMP_HANG); + } + + setBowHangAnime(); + shape_angle.y = field_0x306e - 0x8000; + current.angle.y = shape_angle.y; + + f32 tmp_0 = FLOAT_LABEL(lit_6108); + mNormalSpeed = tmp_0; + speed.y = tmp_0; + dComIfGp_setPlayerStatus0(0, 0x100); + setHangGroundY(); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -89,16 +177,26 @@ asm int daAlink_c::procHangStartInit() { #include "asm/d/a/d_a_alink/procHangStartInit__9daAlink_cFv.s" } #pragma pop +#endif /* 800FAE14-800FAECC 0F5754 00B8+00 1/0 0/0 0/0 .text procHangStart__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHangStart() { - nofralloc -#include "asm/d/a/d_a_alink/procHangStart__9daAlink_cFv.s" +int daAlink_c::procHangStart() { + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + + if (changeHangEndProc()) { + return 1; + } + + if (checkAnmEnd(frame_ctrl)) { + procHangWaitInit(); + } else if (frame_ctrl->getFrame() > field_0x3478 && checkInputOnR() && + getDirectionFromShapeAngle() == DIR_FORWARD) + { + procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame); + } + + return 1; } -#pragma pop /* 800FAECC-800FB1A4 0F580C 02D8+00 1/1 0/0 0/0 .text procHangFallStartInit__9daAlink_cFP8cM3dGPla */ @@ -112,26 +210,77 @@ asm int daAlink_c::procHangFallStartInit(cM3dGPla* param_0) { #pragma pop /* 800FB1A4-800FB2A0 0F5AE4 00FC+00 1/0 0/0 0/0 .text procHangFallStart__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHangFallStart() { - nofralloc -#include "asm/d/a/d_a_alink/procHangFallStart__9daAlink_cFv.s" +int daAlink_c::procHangFallStart() { + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + + BOOL bvar; + if (checkAnmEnd(frame_ctrl) || + frame_ctrl->getFrame() > daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mCheckFrame) + { + bvar = true; + } else { + bvar = false; + } + + if (changeHangEndProc()) { + return 1; + } + + if (frame_ctrl->checkPass(lit_7808)) { + f32 tmp_0 = FLOAT_LABEL(lit_6108); + dComIfGp_getVibration().StartShock(1, 1, cXyz(tmp_0, lit_6040, tmp_0)); + } + + if (bvar) { + int hang_dir = getHangDirectionFromAngle(); + if (checkInputOnR() && hang_dir != DIR_BACKWARD) { + procHangUpInit(hang_dir); + } + } + + return 1; } -#pragma pop /* 800FB2A0-800FB328 0F5BE0 0088+00 1/1 0/0 0/0 .text procHangUpInit__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHangUpInit(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procHangUpInit__9daAlink_cFi.s" +int daAlink_c::procHangUpInit(int param_0) { + commonProcInit(PROC_HANG_UP); + setSingleAnimeParam(ANM_HANG_ONE_HAND_MOVE, &daAlinkHIO_wallFall_c0::m.mTwoHandGrabAnm); + dComIfGp_setPlayerStatus0(0, 0x100); + setBowHangAnime(); + field_0x3198 = param_0; + mNormalSpeed = FLOAT_LABEL(lit_6108); + setHangGroundY(); + + return 1; } -#pragma pop /* 800FB328-800FB43C 0F5C68 0114+00 1/0 0/0 0/0 .text procHangUp__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +int daAlink_c::procHangUp() { + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + + if (changeHangEndProc()) { + if (mProcID == PROC_FALL) { + current.pos.x -= cM_ssin(shape_angle.y) * 8.0f; + current.pos.z -= cM_scos(shape_angle.y) * 8.0f; + } + return 1; + } else if (checkAnmEnd(frame_ctrl) || + frame_ctrl->getFrame() > daAlinkHIO_wallFall_c0::m.mTwoHandGrabAnm.mCheckFrame) + { + if (field_0x3198 == 0) { + procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame); + } else if (changeHangMoveProc(field_0x3198)) { + procHangMoveInit(field_0x3198); + } else { + procHangWaitInit(); + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -140,6 +289,7 @@ asm int daAlink_c::procHangUp() { #include "asm/d/a/d_a_alink/procHangUp__9daAlink_cFv.s" } #pragma pop +#endif /* 800FB43C-800FB544 0F5D7C 0108+00 3/3 0/0 0/0 .text procHangWaitInit__9daAlink_cFv */ #pragma push @@ -213,45 +363,89 @@ asm int daAlink_c::procHangWallCatchInit() { #pragma pop /* 800FC0D8-800FC178 0F6A18 00A0+00 1/0 0/0 0/0 .text procHangWallCatch__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHangWallCatch() { - nofralloc -#include "asm/d/a/d_a_alink/procHangWallCatch__9daAlink_cFv.s" +int daAlink_c::procHangWallCatch() { + setHangGroundY(); + + if (field_0x33d8 > field_0x3834.y - lit_6895) { + return procLandInit(FLOAT_LABEL(lit_6108)); + } + + if (checkAnmEnd(mUnderFrameCtrl) && + !procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbStartFrame)) + { + return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation); + } + + return 1; } -#pragma pop /* 800FC178-800FC240 0F6AB8 00C8+00 4/4 0/0 0/0 .text procHangReadyInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHangReadyInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHangReadyInit__9daAlink_cFv.s" +int daAlink_c::procHangReadyInit() { + if (field_0x2f91 == 3 && mEquipItem != NO_ITEM) { + return procPreActionUnequipInit(0x5C, NULL); + } else if (mProcID == PROC_PREACTION_UNEQUIP) { + setFrontWallType(); + + if (field_0x2f91 != 3) { + return checkWaitAction(); + } + } + + commonProcInit(PROC_HANG_READY); + setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm); + field_0x300c = field_0x306e + 0x8000; + field_0x3198 = field_0x2f91; + + f32 tmp_0 = FLOAT_LABEL(lit_6108); + mNormalSpeed = tmp_0; + speed.y = tmp_0; + return 1; } -#pragma pop /* 800FC240-800FC2F4 0F6B80 00B4+00 1/0 0/0 0/0 .text procHangReady__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHangReady() { - nofralloc -#include "asm/d/a/d_a_alink/procHangReady__9daAlink_cFv.s" +int daAlink_c::procHangReady() { + cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 2, 0x1000, 0x400); + current.angle.y = shape_angle.y; + + if (checkAnmEnd(mUnderFrameCtrl)) { + shape_angle.y = field_0x300c; + current.angle.y = shape_angle.y; + + int hang_init; + if (field_0x3198 == 3) { + hang_init = procClimbUpStartInit(1); + } else if (field_0x3198 == 9) { + hang_init = procHangStartInit(); + } else { + hang_init = procHangWallCatchInit(); + } + + if (!hang_init) { + procWaitInit(); + } + } + + return 1; } -#pragma pop /* 800FC2F4-800FC390 0F6C34 009C+00 2/2 0/0 0/0 .text procHangLeverDownInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procHangLeverDownInit() { - nofralloc -#include "asm/d/a/d_a_alink/procHangLeverDownInit__9daAlink_cFv.s" +int daAlink_c::procHangLeverDownInit() { + if (mEquipItem != NO_ITEM) { + return procPreActionUnequipInit(0x5D, field_0x27f4); + } + + commonProcInit(PROC_HANG_LEVER_DOWN); + field_0x280c.setData(field_0x27f4); + setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm); + field_0x300c = field_0x27f4->shape_angle.y + 0x8000; + field_0x3198 = 145; + + f32 tmp_0 = FLOAT_LABEL(lit_6108); + speed.y = tmp_0; + mNormalSpeed = tmp_0; + return 1; } -#pragma pop /* 800FC390-800FC568 0F6CD0 01D8+00 1/0 0/0 0/0 .text procHangLeverDown__9daAlink_cFv */ #pragma push @@ -265,14 +459,11 @@ asm int daAlink_c::procHangLeverDown() { /* 800FC568-800FC5A4 0F6EA8 003C+00 1/0 0/0 0/0 .text changeDragonActor__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::changeDragonActor(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/changeDragonActor__9daAlink_cFP10fopAc_ac_c.s" +void daAlink_c::changeDragonActor(fopAc_ac_c* param_0) { + if (field_0x280c.getActor() != NULL && fopAcM_GetName(field_0x280c.getActor()) == PROC_B_DR) { + field_0x280c.setData(param_0); + } } -#pragma pop /* 800FC5A4-800FC6B4 0F6EE4 0110+00 1/1 0/0 0/0 .text setDragonHangPos__9daAlink_cFv */ #pragma push @@ -285,35 +476,63 @@ asm void daAlink_c::setDragonHangPos() { #pragma pop /* 800FC6B4-800FC748 0F6FF4 0094+00 1/1 0/0 0/0 .text setOctaIealHangPos__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setOctaIealHangPos() { - nofralloc -#include "asm/d/a/d_a_alink/setOctaIealHangPos__9daAlink_cFv.s" +int daAlink_c::setOctaIealHangPos() { + b_ob_class* ob_p = (b_ob_class*)field_0x280c.getActor(); + if (ob_p == NULL) { + return 0; + } + + mDoMtx_stack_c::copy(ob_p->mParts[0].field_0x0->getModel()->i_getAnmMtx(0)); + mDoMtx_stack_c::transM(FLOAT_LABEL(lit_6108), lit_24400, lit_24401); + mDoMtx_stack_c::multVecZero(¤t.pos); + mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &shape_angle); + return 1; } -#pragma pop /* 800FC748-800FC77C 0F7088 0034+00 2/2 0/0 0/0 .text setBossBodyHangPos__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setBossBodyHangPos() { - nofralloc -#include "asm/d/a/d_a_alink/setBossBodyHangPos__9daAlink_cFv.s" +void daAlink_c::setBossBodyHangPos() { + if (field_0x32cc != 0) { + setDragonHangPos(); + } else { + setOctaIealHangPos(); + } } -#pragma pop /* 800FC77C-800FC870 0F70BC 00F4+00 1/1 0/0 0/0 .text * procBossBodyHangInit__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procBossBodyHangInit__9daAlink_cFP10fopAc_ac_c.s" +int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) { + commonProcInit(PROC_BOSS_BODY_HANG); + + if (fopAcM_GetName(param_0) == PROC_B_DR) { + field_0x32cc = 1; + setSingleAnimeBase(ANM_DRAGON_HANG); + setJumpMode(); + } else { + field_0x32cc = 0; + setSingleAnimeBase(ANM_MORPHEEL_HANG_MISS); + } + + field_0x3198 = 0x169; + deleteEquipItem(TRUE, FALSE); + + f32 tmp_0 = FLOAT_LABEL(lit_6108); + mNormalSpeed = tmp_0; + setSpecialGravity(tmp_0, mMaxFallSpeed, 0); + speed.y = FLOAT_LABEL(lit_6108); + + field_0x300c = 0; + field_0x300e = 0; + field_0x3010 = 0; + field_0x3008 = 0; + field_0x3012 = 0; + field_0x3080 = 0; + + field_0x280c.setData(param_0); + setBossBodyHangPos(); + + i_onEndResetFlg1(ERFLG1_GANON_FINISH); + return 1; } -#pragma pop /* 800FC870-800FCF58 0F71B0 06E8+00 1/0 0/0 0/0 .text procBossBodyHang__9daAlink_cFv */ #pragma push @@ -327,24 +546,41 @@ asm int daAlink_c::procBossBodyHang() { /* 800FCF58-800FCF84 0F7898 002C+00 2/2 0/0 0/0 .text getLadderUnitCount__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getLadderUnitCount() const { - nofralloc -#include "asm/d/a/d_a_alink/getLadderUnitCount__9daAlink_cCFv.s" +int daAlink_c::getLadderUnitCount() const { + return (current.pos.y - field_0x34ec.y) * lit_24600; } -#pragma pop /* 800FCF84-800FD048 0F78C4 00C4+00 1/1 0/0 0/0 .text setLadderInit__9daAlink_cFv */ +// loop issue +#ifdef NONMATCHING +int daAlink_c::setLadderInit() { + i_onNoResetFlg3(FLG3_UNK_400000); + + if (i_checkModeFlg(0x40000)) { + setLadderPos(getLadderUnitCount() - 2); + + while (mWaterY - current.pos.y > daAlinkHIO_swim_c0::m.mInitHeight) { + current.pos.y += lit_24618; + } + + procLadderMoveInit(1, 0, ¤t.pos); + field_0x33b0 = l_ladderAnmBaseTransY; + field_0x2060->initOldFrameMorf(lit_7808, 0, 35); + return 1; + } + + return procLadderUpStartInit(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setLadderInit() { +asm int daAlink_c::setLadderInit() { nofralloc #include "asm/d/a/d_a_alink/setLadderInit__9daAlink_cFv.s" } #pragma pop +#endif /* 800FD048-800FD1F0 0F7988 01A8+00 1/1 0/0 0/0 .text setLadderPosInit__9daAlink_cFv */ #pragma push @@ -368,14 +604,10 @@ asm void daAlink_c::setLadderPos(int param_0) { /* 800FD288-800FD2AC 0F7BC8 0024+00 2/2 0/0 0/0 .text getLadderMoveAnmSpeed__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getLadderMoveAnmSpeed() { - nofralloc -#include "asm/d/a/d_a_alink/getLadderMoveAnmSpeed__9daAlink_cFv.s" +f32 daAlink_c::getLadderMoveAnmSpeed() { + return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.field_0x48, + daAlinkHIO_ladder_c0::m.field_0x4C); } -#pragma pop /* 800FD2AC-800FD4A8 0F7BEC 01FC+00 3/3 0/0 0/0 .text changeLadderMoveProc__9daAlink_cFi */ @@ -392,21 +624,23 @@ asm void daAlink_c::changeLadderMoveProc(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setMoveBGLadderCorrect() { +asm int daAlink_c::setMoveBGLadderCorrect() { nofralloc #include "asm/d/a/d_a_alink/setMoveBGLadderCorrect__9daAlink_cFv.s" } #pragma pop /* 800FD5E4-800FD648 0F7F24 0064+00 8/8 0/0 0/0 .text checkLadderFall__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkLadderFall() { - nofralloc -#include "asm/d/a/d_a_alink/checkLadderFall__9daAlink_cFv.s" +int daAlink_c::checkLadderFall() { + setDoStatus(0x33); + + if (doTrigger()) { + field_0x2f99 = 0; + return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation); + } + + return 0; } -#pragma pop /* 800FD648-800FD7B0 0F7F88 0168+00 2/2 0/0 0/0 .text procLadderUpStartInit__9daAlink_cFv */ @@ -420,35 +654,70 @@ asm int daAlink_c::procLadderUpStartInit() { #pragma pop /* 800FD7B0-800FD824 0F80F0 0074+00 1/0 0/0 0/0 .text procLadderUpStart__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procLadderUpStart() { - nofralloc -#include "asm/d/a/d_a_alink/procLadderUpStart__9daAlink_cFv.s" +int daAlink_c::procLadderUpStart() { + if (setMoveBGLadderCorrect()) { + return 1; + } + + field_0x2f99 = 6; + + if (checkAnmEnd(mUnderFrameCtrl) && !checkLadderFall()) { + changeLadderMoveProc(1); + } + + return 1; } -#pragma pop /* 800FD824-800FD8E8 0F8164 00C4+00 2/2 0/0 0/0 .text procLadderUpEndInit__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procLadderUpEndInit(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procLadderUpEndInit__9daAlink_cFi.s" +int daAlink_c::procLadderUpEndInit(int param_0) { + commonProcInit(PROC_LADDER_UP_END); + + daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_UP_END_LEFT : ANM_LADDER_UP_END_RIGHT; + setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.field_0x30, + daAlinkHIO_ladder_c0::m.field_0x34); + field_0x2f99 = 14; + setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0); + + f32 tmp_0 = FLOAT_LABEL(lit_6108); + speed.y = tmp_0; + mNormalSpeed = tmp_0; + speedF = tmp_0; + + field_0x30a0 = -0x0800; + field_0x33f4 = lit_6041; + field_0x300c = 1; + field_0x3010 = 1; + dComIfGp_setPlayerStatus0(0, 0x2000000); + return 1; } -#pragma pop /* 800FD8E8-800FD9CC 0F8228 00E4+00 1/0 0/0 0/0 .text procLadderUpEnd__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procLadderUpEnd() { - nofralloc -#include "asm/d/a/d_a_alink/procLadderUpEnd__9daAlink_cFv.s" +int daAlink_c::procLadderUpEnd() { + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + + if (setMoveBGLadderCorrect()) { + return 1; + } + + if (checkAnmEnd(frame_ctrl)) { + checkNextAction(0); + } else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.field_0x58) || + !checkNextAction(1)) + { + if (frame_ctrl->getFrame() >= lit_15341) { + field_0x300c = 0; + field_0x3010 = 0; + } else if (frame_ctrl->getFrame() >= lit_17382) { + field_0x30a0 = 0; + field_0x33f4 = FLOAT_LABEL(lit_6108); + } + + field_0x2f99 = 6; + } + + return 1; } -#pragma pop /* 800FD9CC-800FDB74 0F830C 01A8+00 2/2 0/0 0/0 .text procLadderDownStartInit__9daAlink_cFv */ #pragma push @@ -462,35 +731,68 @@ asm int daAlink_c::procLadderDownStartInit() { /* 800FDB74-800FDC18 0F84B4 00A4+00 1/0 0/0 0/0 .text procLadderDownStart__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procLadderDownStart() { - nofralloc -#include "asm/d/a/d_a_alink/procLadderDownStart__9daAlink_cFv.s" +int daAlink_c::procLadderDownStart() { + if (setMoveBGLadderCorrect()) { + return 1; + } + + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + field_0x2f99 = 6; + + if (checkAnmEnd(frame_ctrl)) { + if (!checkLadderFall()) { + changeLadderMoveProc(0); + } + } else if (frame_ctrl->getFrame() >= lit_10286) { + field_0x300c = 1; + field_0x3010 = 1; + } + + return 1; } -#pragma pop /* 800FDC18-800FDCCC 0F8558 00B4+00 1/1 0/0 0/0 .text procLadderDownEndInit__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procLadderDownEndInit(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procLadderDownEndInit__9daAlink_cFi.s" +int daAlink_c::procLadderDownEndInit(int param_0) { + commonProcInit(PROC_LADDER_DOWN_END); + + daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_DOWN_END_LEFT : ANM_LADDER_DOWN_END_RIGHT; + setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.field_0x40, + daAlinkHIO_ladder_c0::m.field_0x44); + field_0x2f99 = 14; + setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0); + + field_0x30a0 = 0x2800; + field_0x33f4 = lit_6040; + field_0x300c = 0; + field_0x3010 = 0; + dComIfGp_setPlayerStatus0(0, 0x2000000); + return 1; } -#pragma pop /* 800FDCCC-800FDD90 0F860C 00C4+00 1/0 0/0 0/0 .text procLadderDownEnd__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procLadderDownEnd() { - nofralloc -#include "asm/d/a/d_a_alink/procLadderDownEnd__9daAlink_cFv.s" +int daAlink_c::procLadderDownEnd() { + if (setMoveBGLadderCorrect()) { + return 1; + } + + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + + if (checkAnmEnd(frame_ctrl)) { + checkNextAction(0); + } else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.field_0x54) || + !checkNextAction(1)) + { + if (frame_ctrl->getFrame() >= lit_17382) { + field_0x30a0 = 0; + field_0x33f4 = FLOAT_LABEL(lit_6108); + } + + field_0x2f99 = 6; + } + + return 1; } -#pragma pop /* 800FDD90-800FDF50 0F86D0 01C0+00 3/3 0/0 0/0 .text procLadderMoveInit__9daAlink_cFiiP4cXyz */ #pragma push @@ -503,55 +805,64 @@ asm int daAlink_c::procLadderMoveInit(int param_0, int param_1, cXyz* param_2) { #pragma pop /* 800FDF50-800FE010 0F8890 00C0+00 1/0 0/0 0/0 .text procLadderMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procLadderMove() { - nofralloc -#include "asm/d/a/d_a_alink/procLadderMove__9daAlink_cFv.s" +int daAlink_c::procLadderMove() { + if (setMoveBGLadderCorrect()) { + return 1; + } + + field_0x2f99 = 6; + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + + if (!checkLadderFall()) { + if (checkAnmEnd(frame_ctrl)) { + changeLadderMoveProc(field_0x3198); + } else if (frame_ctrl->getRate() != FLOAT_LABEL(lit_6108)) { + f32 anm_speed = getLadderMoveAnmSpeed(); + if (frame_ctrl->getRate() < FLOAT_LABEL(lit_6108)) { + anm_speed *= lit_6041; + } + + setWaterInAnmRate(frame_ctrl, anm_speed); + } + } + + return 1; } -#pragma pop /* 800FE010-800FE034 0F8950 0024+00 3/3 0/0 0/0 .text getClimbMoveUpDownAnmSpeed__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getClimbMoveUpDownAnmSpeed() { - nofralloc -#include "asm/d/a/d_a_alink/getClimbMoveUpDownAnmSpeed__9daAlink_cFv.s" +f32 daAlink_c::getClimbMoveUpDownAnmSpeed() { + return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.field_0x64, + daAlinkHIO_ladder_c0::m.field_0x68); } -#pragma pop /* 800FE034-800FE058 0F8974 0024+00 4/4 0/0 0/0 .text getClimbMoveSideAnmSpeed__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getClimbMoveSideAnmSpeed() { - nofralloc -#include "asm/d/a/d_a_alink/getClimbMoveSideAnmSpeed__9daAlink_cFv.s" +f32 daAlink_c::getClimbMoveSideAnmSpeed() { + return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.field_0x5C, + daAlinkHIO_ladder_c0::m.field_0x60); } -#pragma pop /* 800FE058-800FE114 0F8998 00BC+00 9/9 0/0 0/0 .text checkClimbCode__9daAlink_cFR13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkClimbCode(cBgS_PolyInfo& param_0) { - nofralloc -#include "asm/d/a/d_a_alink/checkClimbCode__9daAlink_cFR13cBgS_PolyInfo.s" +BOOL daAlink_c::checkClimbCode(cBgS_PolyInfo& i_poly) { + dBgW_Base* bgw_p = dComIfG_Bgsp().GetBgWBasePointer(i_poly); + + return ((dComIfG_Bgsp().GetWallCode(i_poly) == 1 && fabsf(dBgS_GetNY(i_poly)) <= lit_6021) && + bgw_p != NULL) && + bgw_p->ChkPushPullOk(); } -#pragma pop /* 800FE114-800FE174 0F8A54 0060+00 1/1 0/0 0/0 .text setClimbInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setClimbInit() { - nofralloc -#include "asm/d/a/d_a_alink/setClimbInit__9daAlink_cFv.s" +void daAlink_c::setClimbInit() { + i_onNoResetFlg3(FLG3_UNK_400000); + + if (i_checkModeFlg(0x40000)) { + shape_angle.y = field_0x306e + 0x8000; + current.pos.y -= lit_23595; + setClimbStartNotGround(); + } else { + procHangReadyInit(); + } } -#pragma pop /* 800FE174-800FE3C4 0F8AB4 0250+00 8/8 0/0 0/0 .text setClimbShapeOffset__9daAlink_cFv */ @@ -565,14 +876,22 @@ asm void daAlink_c::setClimbShapeOffset() { #pragma pop /* 800FE3C4-800FE438 0F8D04 0074+00 1/1 0/0 0/0 .text getClimbDirectionFromAngle__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getClimbDirectionFromAngle() { - nofralloc -#include "asm/d/a/d_a_alink/getClimbDirectionFromAngle__9daAlink_cFv.s" +int daAlink_c::getClimbDirectionFromAngle() { + s16 angle = field_0x2fe2 - shape_angle.y; + if (abs(angle) > 0x7000) { + return DIR_BACKWARD; + } + + if (angle >= 0x1000) { + return DIR_LEFT; + } + + if (angle <= -0x1000) { + return DIR_RIGHT; + } + + return DIR_FORWARD; } -#pragma pop /* 800FE438-800FE5A0 0F8D78 0168+00 3/3 0/0 0/0 .text changeClimbMoveProc__9daAlink_cFi */ @@ -618,14 +937,33 @@ asm void daAlink_c::setMoveBGClimbCorrect() { /* 800FEB90-800FEC70 0F94D0 00E0+00 1/1 0/0 0/0 .text * checkBgCorrectClimbMove__9daAlink_cFP4cXyzP4cXyz */ +// matches with cM3dGPla vtable in the correct spot +#ifdef NONMATCHING +int daAlink_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) { + if (commonLineCheck(i_startPos, i_endPos)) { + cM3dGPla tri_plane; + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tri_plane); + + if (cLib_distanceAngleS(tri_plane.mNormal.atan2sX_Z(), shape_angle.y) < 0x549F || + (i_checkModeFlg(0x10000) && !checkClimbCode(mLinkLinChk))) + { + current.pos += mLinkLinChk.i_GetCross() - *i_endPos; + return 1; + } + } + + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkBgCorrectClimbMove(cXyz* param_0, cXyz* param_1) { +asm int daAlink_c::checkBgCorrectClimbMove(cXyz* param_0, cXyz* param_1) { nofralloc #include "asm/d/a/d_a_alink/checkBgCorrectClimbMove__9daAlink_cFP4cXyzP4cXyz.s" } #pragma pop +#endif /* 800FEC70-800FED50 0F95B0 00E0+00 2/2 0/0 0/0 .text checkClimbRoof__9daAlink_cFf */ #pragma push @@ -772,14 +1110,19 @@ asm int daAlink_c::procClimbWait() { /* 801003E4-80100464 0FAD24 0080+00 2/2 0/0 0/0 .text procClimbToRoofInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procClimbToRoofInit() { - nofralloc -#include "asm/d/a/d_a_alink/procClimbToRoofInit__9daAlink_cFv.s" +int daAlink_c::procClimbToRoofInit() { + commonProcInit(PROC_CLIMB_TO_ROOF); + setSingleAnimeBase(ANM_ROOF_UP); + setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0); + + f32 tmp_0 = FLOAT_LABEL(lit_6108); + speed.y = tmp_0; + mNormalSpeed = tmp_0; + speedF = tmp_0; + field_0x2f99 = 10; + dComIfGp_setPlayerStatus0(0, 8); + return 1; } -#pragma pop /* 80100464-801005CC 0FADA4 0168+00 1/0 0/0 0/0 .text procClimbToRoof__9daAlink_cFv */ #pragma push @@ -792,42 +1135,33 @@ asm int daAlink_c::procClimbToRoof() { #pragma pop /* 801005CC-801005F0 0FAF0C 0024+00 2/2 0/0 0/0 .text getRoofHangFMoveAnmSpeed__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getRoofHangFMoveAnmSpeed() const { - nofralloc -#include "asm/d/a/d_a_alink/getRoofHangFMoveAnmSpeed__9daAlink_cCFv.s" +f32 daAlink_c::getRoofHangFMoveAnmSpeed() const { + return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.field_0x24, + daAlinkHIO_roofHang_c0::m.field_0x28); } -#pragma pop /* 801005F0-80100614 0FAF30 0024+00 2/2 0/0 0/0 .text getRoofHangSMoveAnmSpeed__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getRoofHangSMoveAnmSpeed() const { - nofralloc -#include "asm/d/a/d_a_alink/getRoofHangSMoveAnmSpeed__9daAlink_cCFv.s" +f32 daAlink_c::getRoofHangSMoveAnmSpeed() const { + return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.field_0x38, + daAlinkHIO_roofHang_c0::m.field_0x3C); } -#pragma pop /* 80100614-80100668 0FAF54 0054+00 3/3 0/0 0/0 .text * setRoofHangHandOnSE__9daAlink_cFP13cBgS_PolyInfo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setRoofHangHandOnSE(cBgS_PolyInfo* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setRoofHangHandOnSE__9daAlink_cFP13cBgS_PolyInfo.s" +void daAlink_c::setRoofHangHandOnSE(cBgS_PolyInfo* unused) { + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + + if (!frame_ctrl->checkPass(field_0x3478)) { + frame_ctrl->checkPass(field_0x347c); + } } -#pragma pop /* 80100668-80100770 0FAFA8 0108+00 3/3 0/0 0/0 .text checkRoofHangMovePos__9daAlink_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkRoofHangMovePos() { +asm int daAlink_c::checkRoofHangMovePos() { nofralloc #include "asm/d/a/d_a_alink/checkRoofHangMovePos__9daAlink_cFv.s" } @@ -837,7 +1171,7 @@ asm void daAlink_c::checkRoofHangMovePos() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::commonRoofHangProc() { +asm int daAlink_c::commonRoofHangProc() { nofralloc #include "asm/d/a/d_a_alink/commonRoofHangProc__9daAlink_cFv.s" } @@ -855,25 +1189,50 @@ asm void daAlink_c::checkNextActionRoofHang() { /* 80100A10-80100AE4 0FB350 00D4+00 2/2 0/0 0/0 .text * procRoofHangStartInit__9daAlink_cFRC13cBgS_PolyInfoRC4cXyzi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& param_1, - int param_2) { - nofralloc -#include "asm/d/a/d_a_alink/procRoofHangStartInit__9daAlink_cFRC13cBgS_PolyInfoRC4cXyzi.s" +int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& param_1, + int param_2) { + commonProcInit(PROC_ROOF_HANG_START); + setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.field_0x0); + mPolyInfo2.SetPolyInfo(param_0); + + current.pos = param_1; + current.pos.y -= lit_25916; + field_0x2f98 = 4; + + deleteEquipItem(TRUE, FALSE); + setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0); + + f32 tmp_0 = FLOAT_LABEL(lit_6108); + mNormalSpeed = tmp_0; + speed.y = tmp_0; + field_0x2f99 = 0x50; + field_0x3008 = param_2; + return 1; } -#pragma pop /* 80100AE4-80100BB4 0FB424 00D0+00 1/0 0/0 0/0 .text procRoofHangStart__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procRoofHangStart() { - nofralloc -#include "asm/d/a/d_a_alink/procRoofHangStart__9daAlink_cFv.s" +int daAlink_c::procRoofHangStart() { + if (commonRoofHangProc()) { + return 1; + } + + if (field_0x33a8 < lit_13700) { + field_0x3008 = 0; + } + + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + if (field_0x3008 == 0 && + (checkAnmEnd(frame_ctrl) || + (checkInputOnR() && + frame_ctrl->getFrame() > daAlinkHIO_roofHang_c0::m.field_0x0.mCheckFrame))) + { + checkNextActionRoofHang(); + } else if (checkAnmEnd(frame_ctrl)) { + procRoofHangWaitInit(1); + } + + return 1; } -#pragma pop /* 80100BB4-80100D38 0FB4F4 0184+00 4/4 0/0 0/0 .text procRoofHangWaitInit__9daAlink_cFi */ @@ -887,14 +1246,21 @@ asm int daAlink_c::procRoofHangWaitInit(int param_0) { #pragma pop /* 80100D38-80100DA4 0FB678 006C+00 1/0 0/0 0/0 .text procRoofHangWait__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procRoofHangWait() { - nofralloc -#include "asm/d/a/d_a_alink/procRoofHangWait__9daAlink_cFv.s" +int daAlink_c::procRoofHangWait() { + if (commonRoofHangProc()) { + return 1; + } + + if (field_0x33a8 < lit_13700) { + field_0x3008 = 0; + } + + if (field_0x3008 == 0) { + checkNextActionRoofHang(); + } + + return 1; } -#pragma pop /* 80100DA4-80100EEC 0FB6E4 0148+00 1/1 0/0 0/0 .text procRoofHangFrontMoveInit__9daAlink_cFv */ #pragma push @@ -918,84 +1284,186 @@ asm int daAlink_c::procRoofHangFrontMove() { #pragma pop /* 8010121C-80101308 0FBB5C 00EC+00 1/1 0/0 0/0 .text procRoofHangSideMoveInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procRoofHangSideMoveInit() { - nofralloc -#include "asm/d/a/d_a_alink/procRoofHangSideMoveInit__9daAlink_cFv.s" +int daAlink_c::procRoofHangSideMoveInit() { + commonProcInit(PROC_ROOF_HANG_SIDE_MOVE); + + daAlink_ANM anm_id; + if (field_0x2f98 == 2) { + anm_id = ANM_ROOF_HANG_LEFT; + current.angle.y = shape_angle.y + 0x4000; + } else { + anm_id = ANM_ROOF_HANG_RIGHT; + current.angle.y = shape_angle.y + -0x4000; + } + + setSingleAnimeBaseSpeed(anm_id, getRoofHangSMoveAnmSpeed(), + daAlinkHIO_roofHang_c0::m.field_0x40); + setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0); + + f32 tmp_0 = FLOAT_LABEL(lit_6108); + mNormalSpeed = tmp_0; + speed.y = tmp_0; + field_0x3478 = lit_14954; + field_0x347c = lit_8784; + + field_0x3588 = l_waitBaseAnime; + dComIfGp_setPlayerStatus1(0, 0x100000); + return 1; } -#pragma pop /* 80101308-801013B8 0FBC48 00B0+00 1/0 0/0 0/0 .text procRoofHangSideMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procRoofHangSideMove() { - nofralloc -#include "asm/d/a/d_a_alink/procRoofHangSideMove__9daAlink_cFv.s" +int daAlink_c::procRoofHangSideMove() { + if (commonRoofHangProc()) { + return 1; + } + + field_0x2f99 = 5; + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + + if (checkAnmEnd(frame_ctrl)) { + checkNextActionRoofHang(); + } else { + setWaterInAnmRate(frame_ctrl, getRoofHangSMoveAnmSpeed()); + setRoofHangHandOnSE(&mPolyInfo2); + + if (!checkRoofHangMovePos()) { + return procRoofHangWaitInit(0); + } + } + + return 1; } -#pragma pop /* 801013B8-80101534 0FBCF8 017C+00 1/1 0/0 0/0 .text procRoofHangTurnInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procRoofHangTurnInit() { - nofralloc -#include "asm/d/a/d_a_alink/procRoofHangTurnInit__9daAlink_cFv.s" +int daAlink_c::procRoofHangTurnInit() { + commonProcInit(PROC_ROOF_HANG_TURN); + + f32 anm_speed; + if ((s16)(field_0x2fe2 - shape_angle.y) < 0) { + anm_speed = -daAlinkHIO_roofHang_c0::m.field_0x44; + field_0x3008 = 1; + shape_angle.y += 0x8000; + setOldRootQuaternion(0, -0x8000, 0); + field_0x2060->getOldFrameTransInfo(0)->mTranslate.z = lit_26275; + field_0x300c = field_0x2fe2; + field_0x3478 = FLOAT_LABEL(lit_6108); + field_0x347c = lit_7625; + } else { + anm_speed = daAlinkHIO_roofHang_c0::m.field_0x44; + field_0x3008 = 0; + field_0x300c = field_0x2fe2 + 0x8000; + field_0x3478 = lit_7625; + field_0x347c = lit_26276; + } + + current.angle.y = shape_angle.y; + setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, daAlinkHIO_roofHang_c0::m.field_0x48); + + if (field_0x3008 != 0) { + setFaceBasicTexture(FTANM_UNK_4); + } else { + setFaceBasicTexture(FTANM_UNK_3); + } + + field_0x2f98 = 4; + setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0); + f32 tmp_0 = FLOAT_LABEL(lit_6108); + mNormalSpeed = tmp_0; + speed.y = tmp_0; + dComIfGp_setPlayerStatus1(0, 0x100000); + return 1; } -#pragma pop /* 80101534-8010163C 0FBE74 0108+00 1/0 0/0 0/0 .text procRoofHangTurn__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procRoofHangTurn() { - nofralloc -#include "asm/d/a/d_a_alink/procRoofHangTurn__9daAlink_cFv.s" +int daAlink_c::procRoofHangTurn() { + if (commonRoofHangProc()) { + return 1; + } + + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + if (checkAnmEnd(frame_ctrl)) { + if (field_0x3008 == 0) { + shape_angle.y += 0x8000; + current.angle.y = shape_angle.y; + setOldRootQuaternion(0, -0x8000, 0); + field_0x2060->getOldFrameTransInfo(0)->mTranslate.z += lit_26297; + } + + checkNextActionRoofHang(); + } else { + if (frame_ctrl->getFrame() >= field_0x3478 && frame_ctrl->getFrame() <= field_0x347c) { + cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 3, 0x200, 0x100); + current.angle.y = shape_angle.y; + } + + setRoofHangHandOnSE(&mPolyInfo2); + } + + return 1; } -#pragma pop /* 8010163C-801016AC 0FBF7C 0070+00 2/2 0/0 0/0 .text setRoofHangSwitch__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setRoofHangSwitch() { - nofralloc -#include "asm/d/a/d_a_alink/setRoofHangSwitch__9daAlink_cFv.s" +void daAlink_c::setRoofHangSwitch() { + daObjSwHang_c* swhang_p = (daObjSwHang_c*)field_0x280c.getActor(); + current.pos = swhang_p->getHangPos(); + current.pos.y -= lit_25916; + swhang_p->setHangPlayer(); } -#pragma pop /* 801016AC-801017AC 0FBFEC 0100+00 1/1 0/0 0/0 .text * procRoofSwitchHangInit__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procRoofSwitchHangInit__9daAlink_cFP10fopAc_ac_c.s" +int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) { + commonProcInit(PROC_ROOF_SWITCH_HANG); + deleteEquipItem(TRUE, FALSE); + setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.field_0x0); + + setSpecialGravity(FLOAT_LABEL(lit_6108), mMaxFallSpeed, 0); + f32 tmp_0 = FLOAT_LABEL(lit_6108); + speed.y = tmp_0; + mNormalSpeed = tmp_0; + + field_0x280c.setData(param_0); + setRoofHangSwitch(); + + if (cLib_distanceAngleS(param_0->shape_angle.y, shape_angle.y) > 0x4000) { + current.angle.y = param_0->shape_angle.y + 0x8000; + } else { + current.angle.y = param_0->shape_angle.y; + } + + setOldRootQuaternion(0, current.angle.y - shape_angle.y, 0); + shape_angle.y = current.angle.y; + field_0x2f99 = 0x50; + field_0x300c = 0; + return 1; } -#pragma pop /* 801017AC-80101874 0FC0EC 00C8+00 1/0 0/0 0/0 .text procRoofSwitchHang__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daAlink_c::procRoofSwitchHang() { - nofralloc -#include "asm/d/a/d_a_alink/procRoofSwitchHang__9daAlink_cFv.s" +int daAlink_c::procRoofSwitchHang() { + if (field_0x280c.getActor() == NULL) { + return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation); + } + + setRoofHangSwitch(); + + if (checkAnmEnd(mUnderFrameCtrl)) { + setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.field_0x1C, + daAlinkHIO_roofHang_c0::m.field_0x20); + field_0x300c = 1; + } else if (field_0x300c != 0) { + setDoStatus(0x33); + + if (doTrigger()) { + procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation); + } + } + + return 1; } -#pragma pop /* 80101874-80101890 0FC1B4 001C+00 2/2 0/0 0/0 .text getHangPos__13daObjSwHang_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSwHang_c::getHangPos() { - nofralloc -#include "asm/d/a/d_a_alink/getHangPos__13daObjSwHang_cFv.s" +cXyz daObjSwHang_c::getHangPos() { + return mHangPos; } -#pragma pop \ No newline at end of file