Merge pull request #302 from TakaRikka/jclean

cleanup JSystem files / d_a_alink_hang first pass
This commit is contained in:
hatal175
2023-03-02 16:33:59 +02:00
committed by GitHub
133 changed files with 2203 additions and 6234 deletions
+4 -4
View File
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
+1 -1
View File
@@ -22,7 +22,7 @@ public:
u32 getGraphMemory() const { return mGraphMemoryPtr; }
u32 getGraphMemSize() const { return mGraphMemorySize; }
private:
//private:
/* 0x00 */ // vtable
/* 0x04 */ // JKRThread
/* 0x7C */ u32 mAudioMemoryPtr;
+4 -4
View File
@@ -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;
+10 -4
View File
@@ -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 */
+10
View File
@@ -1,6 +1,8 @@
#ifndef JSUPPORT_H
#define JSUPPORT_H
#include "dolphin/types.h"
template <typename T>
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
+7 -8
View File
@@ -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;
+3 -3
View File
@@ -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;
+2
View File
@@ -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 */
+1
View File
@@ -55,6 +55,7 @@ struct ResFONT {
/* 0x08 */ u32 filesize;
/* 0x0C */ u32 numBlocks;
/* 0x10 */ u8 padding[0x10];
/* 0x20 */ u8 data[];
};
class JUTFont {
+8 -4
View File
@@ -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 */
+22 -20
View File
@@ -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();
+2
View File
@@ -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,
+1
View File
@@ -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 */
+3 -3
View File
@@ -37,9 +37,9 @@ struct dEvLib_callback_c {
virtual BOOL eventRun() { return TRUE; }
virtual BOOL eventEnd() { return TRUE; }
fopAc_ac_c* mActor;
action_class<dEvLib_callback_c>* mAction;
u16 _C;
/* 0x4 */ fopAc_ac_c* mActor;
/* 0x8 */ action_class<dEvLib_callback_c>* mAction;
/* 0xC */ u16 _C;
};
#endif /* D_EVENT_D_EVENT_LIB_H */
+2 -1
View File
@@ -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))))
+176 -1
View File
@@ -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 */
+1 -14
View File
@@ -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:
@@ -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 */
+3 -14
View File
@@ -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 */
+39 -35
View File
@@ -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<SArcHeader*>(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 */
+1 -6
View File
@@ -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<JKRAramBlock>* list = mBlockLink.getSupervisor();
JSULink<JKRAramBlock>* prev = mBlockLink.getPrev();
if (prev) {
JKRAramBlock* block = prev->getObject();
block->mFreeSize = mSize + mFreeSize + block->mFreeSize;
+1 -34
View File
@@ -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<JKRAramBlock> JKRAramHeap::sAramList;
@@ -206,9 +175,7 @@ void JKRAramHeap::dump(void) {
JSUList<JKRAramBlock>* list = &sAramList;
JSUListIterator<JKRAramBlock> iterator = list;
for (; iterator != list->getEnd(); ++iterator) {
// The debug version calls OSReport
}
for (; iterator != list->getEnd(); ++iterator) {}
unlock();
}
+2 -10
View File
@@ -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 */
+16 -105
View File
@@ -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 */
+2 -8
View File
@@ -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);
+2 -8
View File
@@ -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()) {
+11 -69
View File
@@ -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;
}
+81 -176
View File
@@ -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"
}
+44 -51
View File
@@ -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;
}
-6
View File
@@ -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) {
+30 -15
View File
@@ -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<JKRADCommand>*)&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<JKRADCommand>*)&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
+6 -13
View File
@@ -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 */
+2 -8
View File
@@ -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> 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 */
+41 -13
View File
@@ -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 */
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More