diff --git a/asm/m/Do/dvd/m_Do_dvd_thread.s b/asm/m/Do/dvd/m_Do_dvd_thread.s deleted file mode 100644 index abfa1ab38c..0000000000 --- a/asm/m/Do/dvd/m_Do_dvd_thread.s +++ /dev/null @@ -1,997 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 800157fc - - -.global mDoDvdThd_NS_main -mDoDvdThd_NS_main: -/* 800157FC 0001273C 94 21 FF 70 */ stwu r1, -0x90(r1) -/* 80015800 00012740 7C 08 02 A6 */ mflr r0 -/* 80015804 00012744 90 01 00 94 */ stw r0, 0x94(r1) -/* 80015808 00012748 93 E1 00 8C */ stw r31, 0x8c(r1) -/* 8001580C 0001274C 7C 7F 1B 78 */ mr r31, r3 -/* 80015810 00012750 48 32 B4 75 */ bl OSGetCurrentThread -/* 80015814 00012754 7C 64 1B 78 */ mr r4, r3 -/* 80015818 00012758 38 61 00 08 */ addi r3, r1, 8 -/* 8001581C 0001275C 38 A0 00 00 */ li r5, 0 -/* 80015820 00012760 48 2B BE 99 */ bl __ct__9JKRThreadFP8OSThreadi -/* 80015824 00012764 38 61 00 08 */ addi r3, r1, 8 -/* 80015828 00012768 38 80 FF FF */ li r4, -1 -/* 8001582C 0001276C 48 2B BF 2D */ bl __dt__9JKRThreadFv -/* 80015830 00012770 4B FF 94 B5 */ bl mDoExt_getAssertHeap -/* 80015834 00012774 48 2B 8C 05 */ bl becomeCurrentHeap__7JKRHeapFv -/* 80015838 00012778 7F E3 FB 78 */ mr r3, r31 -/* 8001583C 0001277C 48 00 02 9D */ bl mDoDvdThd_param_c_NS_mainLoop -/* 80015840 00012780 38 60 00 00 */ li r3, 0 -/* 80015844 00012784 83 E1 00 8C */ lwz r31, 0x8c(r1) -/* 80015848 00012788 80 01 00 94 */ lwz r0, 0x94(r1) -/* 8001584C 0001278C 7C 08 03 A6 */ mtlr r0 -/* 80015850 00012790 38 21 00 90 */ addi r1, r1, 0x90 -/* 80015854 00012794 4E 80 00 20 */ blr - -.global mDoDvdThd_NS_create -mDoDvdThd_NS_create: -/* 80015858 00012798 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001585C 0001279C 7C 08 02 A6 */ mflr r0 -/* 80015860 000127A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015864 000127A4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80015868 000127A8 7C 68 1B 78 */ mr r8, r3 -/* 8001586C 000127AC 3C 60 80 3E */ lis r3, lbl_803DD940@ha -/* 80015870 000127B0 3B E3 D9 40 */ addi r31, r3, lbl_803DD940@l -/* 80015874 000127B4 38 7F 00 00 */ addi r3, r31, 0 -.global mDoDvdThd_NS_main -/* 80015878 000127B8 3C 80 80 01 */ lis r4, mDoDvdThd_NS_main@ha -.global mDoDvdThd_NS_main -/* 8001587C 000127BC 38 84 57 FC */ addi r4, r4, mDoDvdThd_NS_main@l -/* 80015880 000127C0 38 BF 13 20 */ addi r5, r31, 0x1320 -/* 80015884 000127C4 38 DF 03 20 */ addi r6, r31, 0x320 -/* 80015888 000127C8 38 E0 10 00 */ li r7, 0x1000 -/* 8001588C 000127CC 39 20 00 01 */ li r9, 1 -/* 80015890 000127D0 38 C6 10 00 */ addi r6, r6, 0x1000 -/* 80015894 000127D4 48 32 B9 F9 */ bl OSCreateThread -/* 80015898 000127D8 38 7F 00 00 */ addi r3, r31, 0 -/* 8001589C 000127DC 48 32 BF 19 */ bl OSResumeThread -/* 800158A0 000127E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800158A4 000127E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800158A8 000127E8 7C 08 03 A6 */ mtlr r0 -/* 800158AC 000127EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800158B0 000127F0 4E 80 00 20 */ blr - -.global mDoDvdThd_NS_suspend -mDoDvdThd_NS_suspend: -/* 800158B4 000127F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800158B8 000127F8 7C 08 02 A6 */ mflr r0 -/* 800158BC 000127FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800158C0 00012800 3C 60 80 3E */ lis r3, lbl_803DD940@ha -/* 800158C4 00012804 38 63 D9 40 */ addi r3, r3, lbl_803DD940@l -/* 800158C8 00012808 48 32 C1 75 */ bl OSSuspendThread -/* 800158CC 0001280C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800158D0 00012810 7C 08 03 A6 */ mtlr r0 -/* 800158D4 00012814 38 21 00 10 */ addi r1, r1, 0x10 -/* 800158D8 00012818 4E 80 00 20 */ blr - -.global my_DVDConvertPathToEntrynum -my_DVDConvertPathToEntrynum: -/* 800158DC 0001281C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800158E0 00012820 7C 08 02 A6 */ mflr r0 -/* 800158E4 00012824 90 01 00 14 */ stw r0, 0x14(r1) -/* 800158E8 00012828 48 33 2C 41 */ bl DVDConvertPathToEntrynum -/* 800158EC 0001282C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800158F0 00012830 7C 08 03 A6 */ mtlr r0 -/* 800158F4 00012834 38 21 00 10 */ addi r1, r1, 0x10 -/* 800158F8 00012838 4E 80 00 20 */ blr - -.global mDoDvdThd_command_c_NS_dtor -mDoDvdThd_command_c_NS_dtor: -/* 800158FC 0001283C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015900 00012840 7C 08 02 A6 */ mflr r0 -/* 80015904 00012844 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015908 00012848 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8001590C 0001284C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80015910 00012850 41 82 00 1C */ beq lbl_8001592C -/* 80015914 00012854 3C A0 80 3A */ lis r5, lbl_803A34E8@ha -/* 80015918 00012858 38 05 34 E8 */ addi r0, r5, lbl_803A34E8@l -/* 8001591C 0001285C 90 1F 00 10 */ stw r0, 0x10(r31) -/* 80015920 00012860 7C 80 07 35 */ extsh. r0, r4 -/* 80015924 00012864 40 81 00 08 */ ble lbl_8001592C -/* 80015928 00012868 48 2B 94 15 */ bl __dl__FPv -lbl_8001592C: -/* 8001592C 0001286C 7F E3 FB 78 */ mr r3, r31 -/* 80015930 00012870 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80015934 00012874 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015938 00012878 7C 08 03 A6 */ mtlr r0 -/* 8001593C 0001287C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015940 00012880 4E 80 00 20 */ blr - -.global mDoDvdThd_param_c -mDoDvdThd_param_c: -/* 80015944 00012884 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015948 00012888 7C 08 02 A6 */ mflr r0 -/* 8001594C 0001288C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015950 00012890 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80015954 00012894 7C 7F 1B 78 */ mr r31, r3 -/* 80015958 00012898 38 9F 00 20 */ addi r4, r31, 0x20 -/* 8001595C 0001289C 38 A0 00 01 */ li r5, 1 -/* 80015960 000128A0 48 32 90 35 */ bl OSInitMessageQueue -/* 80015964 000128A4 38 7F 00 30 */ addi r3, r31, 0x30 -/* 80015968 000128A8 48 32 96 A1 */ bl OSInitMutex -/* 8001596C 000128AC 38 7F 00 24 */ addi r3, r31, 0x24 -/* 80015970 000128B0 48 25 06 D1 */ bl cLs_Create -/* 80015974 000128B4 7F E3 FB 78 */ mr r3, r31 -/* 80015978 000128B8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8001597C 000128BC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015980 000128C0 7C 08 03 A6 */ mtlr r0 -/* 80015984 000128C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015988 000128C8 4E 80 00 20 */ blr - -.global mDoDvdThd_param_c_NS_kick -mDoDvdThd_param_c_NS_kick: -/* 8001598C 000128CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015990 000128D0 7C 08 02 A6 */ mflr r0 -/* 80015994 000128D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015998 000128D8 38 80 00 00 */ li r4, 0 -/* 8001599C 000128DC 38 A0 00 00 */ li r5, 0 -/* 800159A0 000128E0 48 32 90 55 */ bl OSSendMessage -/* 800159A4 000128E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800159A8 000128E8 7C 08 03 A6 */ mtlr r0 -/* 800159AC 000128EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800159B0 000128F0 4E 80 00 20 */ blr - -.global mDoDvdThd_param_c_NS_waitForKick -mDoDvdThd_param_c_NS_waitForKick: -/* 800159B4 000128F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800159B8 000128F8 7C 08 02 A6 */ mflr r0 -/* 800159BC 000128FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800159C0 00012900 38 80 00 00 */ li r4, 0 -/* 800159C4 00012904 38 A0 00 01 */ li r5, 1 -/* 800159C8 00012908 48 32 90 F5 */ bl OSReceiveMessage -/* 800159CC 0001290C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800159D0 00012910 7C 08 03 A6 */ mtlr r0 -/* 800159D4 00012914 38 21 00 10 */ addi r1, r1, 0x10 -/* 800159D8 00012918 4E 80 00 20 */ blr - -.global mDoDvdThd_param_c_NS_getFirstCommand -mDoDvdThd_param_c_NS_getFirstCommand: -/* 800159DC 0001291C 80 63 00 24 */ lwz r3, 0x24(r3) -/* 800159E0 00012920 4E 80 00 20 */ blr - -.global mDoDvdThd_param_c_NS_addition -mDoDvdThd_param_c_NS_addition: -/* 800159E4 00012924 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800159E8 00012928 7C 08 02 A6 */ mflr r0 -/* 800159EC 0001292C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800159F0 00012930 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800159F4 00012934 93 C1 00 08 */ stw r30, 8(r1) -/* 800159F8 00012938 7C 7E 1B 78 */ mr r30, r3 -/* 800159FC 0001293C 7C 9F 23 78 */ mr r31, r4 -/* 80015A00 00012940 38 7E 00 30 */ addi r3, r30, 0x30 -/* 80015A04 00012944 48 32 96 3D */ bl OSLockMutex -/* 80015A08 00012948 38 7E 00 24 */ addi r3, r30, 0x24 -/* 80015A0C 0001294C 7F E4 FB 78 */ mr r4, r31 -/* 80015A10 00012950 48 25 04 ED */ bl cLs_Addition -/* 80015A14 00012954 38 7E 00 30 */ addi r3, r30, 0x30 -/* 80015A18 00012958 48 32 97 05 */ bl OSUnlockMutex -/* 80015A1C 0001295C 7F C3 F3 78 */ mr r3, r30 -/* 80015A20 00012960 4B FF FF 6D */ bl mDoDvdThd_param_c_NS_kick -/* 80015A24 00012964 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80015A28 00012968 83 C1 00 08 */ lwz r30, 8(r1) -/* 80015A2C 0001296C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015A30 00012970 7C 08 03 A6 */ mtlr r0 -/* 80015A34 00012974 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015A38 00012978 4E 80 00 20 */ blr - -.global mDoDvdThd_param_c_NS_cut -mDoDvdThd_param_c_NS_cut: -/* 80015A3C 0001297C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015A40 00012980 7C 08 02 A6 */ mflr r0 -/* 80015A44 00012984 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015A48 00012988 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80015A4C 0001298C 93 C1 00 08 */ stw r30, 8(r1) -/* 80015A50 00012990 7C 7E 1B 78 */ mr r30, r3 -/* 80015A54 00012994 7C 9F 23 78 */ mr r31, r4 -/* 80015A58 00012998 38 7E 00 30 */ addi r3, r30, 0x30 -/* 80015A5C 0001299C 48 32 95 E5 */ bl OSLockMutex -/* 80015A60 000129A0 7F E3 FB 78 */ mr r3, r31 -/* 80015A64 000129A4 48 25 04 15 */ bl cLs_SingleCut -/* 80015A68 000129A8 38 7E 00 30 */ addi r3, r30, 0x30 -/* 80015A6C 000129AC 48 32 96 B1 */ bl OSUnlockMutex -/* 80015A70 000129B0 7F C3 F3 78 */ mr r3, r30 -/* 80015A74 000129B4 4B FF FF 19 */ bl mDoDvdThd_param_c_NS_kick -/* 80015A78 000129B8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80015A7C 000129BC 83 C1 00 08 */ lwz r30, 8(r1) -/* 80015A80 000129C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015A84 000129C4 7C 08 03 A6 */ mtlr r0 -/* 80015A88 000129C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015A8C 000129CC 4E 80 00 20 */ blr - -.global cb -cb: -/* 80015A90 000129D0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015A94 000129D4 7C 08 02 A6 */ mflr r0 -/* 80015A98 000129D8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015A9C 000129DC 80 63 00 00 */ lwz r3, 0(r3) -/* 80015AA0 000129E0 81 83 00 10 */ lwz r12, 0x10(r3) -/* 80015AA4 000129E4 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 80015AA8 000129E8 7D 89 03 A6 */ mtctr r12 -/* 80015AAC 000129EC 4E 80 04 21 */ bctrl -/* 80015AB0 000129F0 2C 03 00 01 */ cmpwi r3, 1 -/* 80015AB4 000129F4 41 82 00 14 */ beq lbl_80015AC8 -/* 80015AB8 000129F8 3C 60 80 37 */ lis r3, lbl_803741A8@ha -/* 80015ABC 000129FC 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l -/* 80015AC0 00012A00 4C C6 31 82 */ crclr 6 -/* 80015AC4 00012A04 4B FF 11 49 */ bl OSReport_Error -lbl_80015AC8: -/* 80015AC8 00012A08 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015ACC 00012A0C 7C 08 03 A6 */ mtlr r0 -/* 80015AD0 00012A10 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015AD4 00012A14 4E 80 00 20 */ blr - -.global mDoDvdThd_param_c_NS_mainLoop -mDoDvdThd_param_c_NS_mainLoop: -/* 80015AD8 00012A18 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80015ADC 00012A1C 7C 08 02 A6 */ mflr r0 -/* 80015AE0 00012A20 90 01 00 24 */ stw r0, 0x24(r1) -/* 80015AE4 00012A24 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80015AE8 00012A28 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80015AEC 00012A2C 7C 7E 1B 78 */ mr r30, r3 -/* 80015AF0 00012A30 3C 60 80 01 */ lis r3, cb@ha -/* 80015AF4 00012A34 3B E3 5A 90 */ addi r31, r3, cb@l -/* 80015AF8 00012A38 48 00 00 54 */ b lbl_80015B4C -/* 80015AFC 00012A3C 48 00 00 3C */ b lbl_80015B38 -lbl_80015B00: -/* 80015B00 00012A40 7F C3 F3 78 */ mr r3, r30 -/* 80015B04 00012A44 80 81 00 08 */ lwz r4, 8(r1) -/* 80015B08 00012A48 4B FF FF 35 */ bl mDoDvdThd_param_c_NS_cut -/* 80015B0C 00012A4C 88 0D 87 00 */ lbz r0, lbl_80450C80-_SDA_BASE_(r13) -/* 80015B10 00012A50 28 00 00 00 */ cmplwi r0, 0 -/* 80015B14 00012A54 41 82 00 1C */ beq lbl_80015B30 -/* 80015B18 00012A58 48 27 A3 E5 */ bl JASDvd_NS_getThreadPointer -/* 80015B1C 00012A5C 7F E4 FB 78 */ mr r4, r31 -/* 80015B20 00012A60 38 A1 00 08 */ addi r5, r1, 8 -/* 80015B24 00012A64 38 C0 00 04 */ li r6, 4 -/* 80015B28 00012A68 48 27 A0 35 */ bl JASTaskThread_NS_sendCmdMsg -/* 80015B2C 00012A6C 48 00 00 0C */ b lbl_80015B38 -lbl_80015B30: -/* 80015B30 00012A70 38 61 00 08 */ addi r3, r1, 8 -/* 80015B34 00012A74 4B FF FF 5D */ bl cb -lbl_80015B38: -/* 80015B38 00012A78 7F C3 F3 78 */ mr r3, r30 -/* 80015B3C 00012A7C 4B FF FE A1 */ bl mDoDvdThd_param_c_NS_getFirstCommand -/* 80015B40 00012A80 90 61 00 08 */ stw r3, 8(r1) -/* 80015B44 00012A84 28 03 00 00 */ cmplwi r3, 0 -/* 80015B48 00012A88 40 82 FF B8 */ bne lbl_80015B00 -lbl_80015B4C: -/* 80015B4C 00012A8C 7F C3 F3 78 */ mr r3, r30 -/* 80015B50 00012A90 4B FF FE 65 */ bl mDoDvdThd_param_c_NS_waitForKick -/* 80015B54 00012A94 2C 03 00 00 */ cmpwi r3, 0 -/* 80015B58 00012A98 40 82 FF E0 */ bne lbl_80015B38 -/* 80015B5C 00012A9C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80015B60 00012AA0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80015B64 00012AA4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80015B68 00012AA8 7C 08 03 A6 */ mtlr r0 -/* 80015B6C 00012AAC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80015B70 00012AB0 4E 80 00 20 */ blr - -.global mDoDvdThd_command_c -mDoDvdThd_command_c: -/* 80015B74 00012AB4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015B78 00012AB8 7C 08 02 A6 */ mflr r0 -/* 80015B7C 00012ABC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015B80 00012AC0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80015B84 00012AC4 7C 7F 1B 78 */ mr r31, r3 -/* 80015B88 00012AC8 3C 80 80 3A */ lis r4, lbl_803A34E8@ha -/* 80015B8C 00012ACC 38 04 34 E8 */ addi r0, r4, lbl_803A34E8@l -/* 80015B90 00012AD0 90 03 00 10 */ stw r0, 0x10(r3) -/* 80015B94 00012AD4 38 00 00 00 */ li r0, 0 -/* 80015B98 00012AD8 98 03 00 0C */ stb r0, 0xc(r3) -/* 80015B9C 00012ADC 48 25 07 61 */ bl cNd_ForcedClear -/* 80015BA0 00012AE0 7F E3 FB 78 */ mr r3, r31 -/* 80015BA4 00012AE4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80015BA8 00012AE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015BAC 00012AEC 7C 08 03 A6 */ mtlr r0 -/* 80015BB0 00012AF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015BB4 00012AF4 4E 80 00 20 */ blr -/* 80015BB8 00012AF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015BBC 00012AFC 7C 08 02 A6 */ mflr r0 -/* 80015BC0 00012B00 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015BC4 00012B04 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80015BC8 00012B08 93 C1 00 08 */ stw r30, 8(r1) -/* 80015BCC 00012B0C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80015BD0 00012B10 7C 9F 23 78 */ mr r31, r4 -/* 80015BD4 00012B14 41 82 00 28 */ beq lbl_80015BFC -/* 80015BD8 00012B18 3C 80 80 3A */ lis r4, lbl_803A34D8@ha -/* 80015BDC 00012B1C 38 04 34 D8 */ addi r0, r4, lbl_803A34D8@l -/* 80015BE0 00012B20 90 1E 00 10 */ stw r0, 0x10(r30) -/* 80015BE4 00012B24 38 80 00 00 */ li r4, 0 -/* 80015BE8 00012B28 4B FF FD 15 */ bl mDoDvdThd_command_c_NS_dtor -/* 80015BEC 00012B2C 7F E0 07 35 */ extsh. r0, r31 -/* 80015BF0 00012B30 40 81 00 0C */ ble lbl_80015BFC -/* 80015BF4 00012B34 7F C3 F3 78 */ mr r3, r30 -/* 80015BF8 00012B38 48 2B 91 45 */ bl __dl__FPv -lbl_80015BFC: -/* 80015BFC 00012B3C 7F C3 F3 78 */ mr r3, r30 -/* 80015C00 00012B40 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80015C04 00012B44 83 C1 00 08 */ lwz r30, 8(r1) -/* 80015C08 00012B48 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015C0C 00012B4C 7C 08 03 A6 */ mtlr r0 -/* 80015C10 00012B50 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015C14 00012B54 4E 80 00 20 */ blr - -.global mDoDvdThd_callback_c -mDoDvdThd_callback_c: -/* 80015C18 00012B58 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80015C1C 00012B5C 7C 08 02 A6 */ mflr r0 -/* 80015C20 00012B60 90 01 00 24 */ stw r0, 0x24(r1) -/* 80015C24 00012B64 39 61 00 20 */ addi r11, r1, 0x20 -/* 80015C28 00012B68 48 34 C5 B5 */ bl _savegpr_29 -/* 80015C2C 00012B6C 7C 7D 1B 78 */ mr r29, r3 -/* 80015C30 00012B70 7C 9E 23 78 */ mr r30, r4 -/* 80015C34 00012B74 7C BF 2B 78 */ mr r31, r5 -/* 80015C38 00012B78 4B FF FF 3D */ bl mDoDvdThd_command_c -/* 80015C3C 00012B7C 3C 60 80 3A */ lis r3, lbl_803A34D8@ha -/* 80015C40 00012B80 38 03 34 D8 */ addi r0, r3, lbl_803A34D8@l -/* 80015C44 00012B84 90 1D 00 10 */ stw r0, 0x10(r29) -/* 80015C48 00012B88 93 DD 00 14 */ stw r30, 0x14(r29) -/* 80015C4C 00012B8C 93 FD 00 18 */ stw r31, 0x18(r29) -/* 80015C50 00012B90 38 00 00 00 */ li r0, 0 -/* 80015C54 00012B94 90 1D 00 1C */ stw r0, 0x1c(r29) -/* 80015C58 00012B98 7F A3 EB 78 */ mr r3, r29 -/* 80015C5C 00012B9C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80015C60 00012BA0 48 34 C5 C9 */ bl _restgpr_29 -/* 80015C64 00012BA4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80015C68 00012BA8 7C 08 03 A6 */ mtlr r0 -/* 80015C6C 00012BAC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80015C70 00012BB0 4E 80 00 20 */ blr - -.global mDoDvdThd_callback_c_NS_create -mDoDvdThd_callback_c_NS_create: -/* 80015C74 00012BB4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80015C78 00012BB8 7C 08 02 A6 */ mflr r0 -/* 80015C7C 00012BBC 90 01 00 24 */ stw r0, 0x24(r1) -/* 80015C80 00012BC0 39 61 00 20 */ addi r11, r1, 0x20 -/* 80015C84 00012BC4 48 34 C5 59 */ bl _savegpr_29 -/* 80015C88 00012BC8 7C 7D 1B 78 */ mr r29, r3 -/* 80015C8C 00012BCC 7C 9E 23 78 */ mr r30, r4 -/* 80015C90 00012BD0 4B FF 91 21 */ bl mDoExt_getCommandHeap -/* 80015C94 00012BD4 7C 64 1B 78 */ mr r4, r3 -/* 80015C98 00012BD8 38 60 00 20 */ li r3, 0x20 -/* 80015C9C 00012BDC 38 A0 FF FC */ li r5, -4 -/* 80015CA0 00012BE0 48 2B 8F F9 */ bl __nw__FUlP7JKRHeapi -/* 80015CA4 00012BE4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80015CA8 00012BE8 41 82 00 14 */ beq lbl_80015CBC -/* 80015CAC 00012BEC 7F A4 EB 78 */ mr r4, r29 -/* 80015CB0 00012BF0 7F C5 F3 78 */ mr r5, r30 -/* 80015CB4 00012BF4 4B FF FF 65 */ bl mDoDvdThd_callback_c -/* 80015CB8 00012BF8 7C 7F 1B 78 */ mr r31, r3 -lbl_80015CBC: -/* 80015CBC 00012BFC 28 1F 00 00 */ cmplwi r31, 0 -/* 80015CC0 00012C00 41 82 00 14 */ beq lbl_80015CD4 -/* 80015CC4 00012C04 3C 60 80 3E */ lis r3, lbl_803DEC60@ha -/* 80015CC8 00012C08 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l -/* 80015CCC 00012C0C 7F E4 FB 78 */ mr r4, r31 -/* 80015CD0 00012C10 4B FF FD 15 */ bl mDoDvdThd_param_c_NS_addition -lbl_80015CD4: -/* 80015CD4 00012C14 7F E3 FB 78 */ mr r3, r31 -/* 80015CD8 00012C18 39 61 00 20 */ addi r11, r1, 0x20 -/* 80015CDC 00012C1C 48 34 C5 4D */ bl _restgpr_29 -/* 80015CE0 00012C20 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80015CE4 00012C24 7C 08 03 A6 */ mtlr r0 -/* 80015CE8 00012C28 38 21 00 20 */ addi r1, r1, 0x20 -/* 80015CEC 00012C2C 4E 80 00 20 */ blr -/* 80015CF0 00012C30 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015CF4 00012C34 7C 08 02 A6 */ mflr r0 -/* 80015CF8 00012C38 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015CFC 00012C3C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80015D00 00012C40 7C 7F 1B 78 */ mr r31, r3 -/* 80015D04 00012C44 80 63 00 18 */ lwz r3, 0x18(r3) -/* 80015D08 00012C48 81 9F 00 14 */ lwz r12, 0x14(r31) -/* 80015D0C 00012C4C 7D 89 03 A6 */ mtctr r12 -/* 80015D10 00012C50 4E 80 04 21 */ bctrl -/* 80015D14 00012C54 90 7F 00 1C */ stw r3, 0x1c(r31) -/* 80015D18 00012C58 38 00 00 01 */ li r0, 1 -/* 80015D1C 00012C5C 98 1F 00 0C */ stb r0, 0xc(r31) -/* 80015D20 00012C60 80 7F 00 1C */ lwz r3, 0x1c(r31) -/* 80015D24 00012C64 30 03 FF FF */ addic r0, r3, -1 -/* 80015D28 00012C68 7C 00 19 10 */ subfe r0, r0, r3 -/* 80015D2C 00012C6C 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80015D30 00012C70 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80015D34 00012C74 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015D38 00012C78 7C 08 03 A6 */ mtlr r0 -/* 80015D3C 00012C7C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015D40 00012C80 4E 80 00 20 */ blr -/* 80015D44 00012C84 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015D48 00012C88 7C 08 02 A6 */ mflr r0 -/* 80015D4C 00012C8C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015D50 00012C90 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80015D54 00012C94 93 C1 00 08 */ stw r30, 8(r1) -/* 80015D58 00012C98 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80015D5C 00012C9C 7C 9F 23 78 */ mr r31, r4 -/* 80015D60 00012CA0 41 82 00 28 */ beq lbl_80015D88 -/* 80015D64 00012CA4 3C 80 80 3A */ lis r4, lbl_803A34C8@ha -/* 80015D68 00012CA8 38 04 34 C8 */ addi r0, r4, lbl_803A34C8@l -/* 80015D6C 00012CAC 90 1E 00 10 */ stw r0, 0x10(r30) -/* 80015D70 00012CB0 38 80 00 00 */ li r4, 0 -/* 80015D74 00012CB4 4B FF FB 89 */ bl mDoDvdThd_command_c_NS_dtor -/* 80015D78 00012CB8 7F E0 07 35 */ extsh. r0, r31 -/* 80015D7C 00012CBC 40 81 00 0C */ ble lbl_80015D88 -/* 80015D80 00012CC0 7F C3 F3 78 */ mr r3, r30 -/* 80015D84 00012CC4 48 2B 8F B9 */ bl __dl__FPv -lbl_80015D88: -/* 80015D88 00012CC8 7F C3 F3 78 */ mr r3, r30 -/* 80015D8C 00012CCC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80015D90 00012CD0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80015D94 00012CD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015D98 00012CD8 7C 08 03 A6 */ mtlr r0 -/* 80015D9C 00012CDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015DA0 00012CE0 4E 80 00 20 */ blr - -.global mDoDvdThd_mountArchive_c -mDoDvdThd_mountArchive_c: -/* 80015DA4 00012CE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015DA8 00012CE8 7C 08 02 A6 */ mflr r0 -/* 80015DAC 00012CEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015DB0 00012CF0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80015DB4 00012CF4 93 C1 00 08 */ stw r30, 8(r1) -/* 80015DB8 00012CF8 7C 7E 1B 78 */ mr r30, r3 -/* 80015DBC 00012CFC 7C 9F 23 78 */ mr r31, r4 -/* 80015DC0 00012D00 4B FF FD B5 */ bl mDoDvdThd_command_c -/* 80015DC4 00012D04 3C 60 80 3A */ lis r3, lbl_803A34C8@ha -/* 80015DC8 00012D08 38 03 34 C8 */ addi r0, r3, lbl_803A34C8@l -/* 80015DCC 00012D0C 90 1E 00 10 */ stw r0, 0x10(r30) -/* 80015DD0 00012D10 9B FE 00 14 */ stb r31, 0x14(r30) -/* 80015DD4 00012D14 38 00 FF FF */ li r0, -1 -/* 80015DD8 00012D18 90 1E 00 18 */ stw r0, 0x18(r30) -/* 80015DDC 00012D1C 38 00 00 00 */ li r0, 0 -/* 80015DE0 00012D20 90 1E 00 1C */ stw r0, 0x1c(r30) -/* 80015DE4 00012D24 90 1E 00 20 */ stw r0, 0x20(r30) -/* 80015DE8 00012D28 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 80015DEC 00012D2C 40 82 00 0C */ bne lbl_80015DF8 -/* 80015DF0 00012D30 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13) -/* 80015DF4 00012D34 98 1E 00 14 */ stb r0, 0x14(r30) -lbl_80015DF8: -/* 80015DF8 00012D38 7F C3 F3 78 */ mr r3, r30 -/* 80015DFC 00012D3C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80015E00 00012D40 83 C1 00 08 */ lwz r30, 8(r1) -/* 80015E04 00012D44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015E08 00012D48 7C 08 03 A6 */ mtlr r0 -/* 80015E0C 00012D4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015E10 00012D50 4E 80 00 20 */ blr - -.global mDoDvdThd_mountArchive_c_NS_create -mDoDvdThd_mountArchive_c_NS_create: -/* 80015E14 00012D54 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80015E18 00012D58 7C 08 02 A6 */ mflr r0 -/* 80015E1C 00012D5C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80015E20 00012D60 39 61 00 20 */ addi r11, r1, 0x20 -/* 80015E24 00012D64 48 34 C3 B5 */ bl _savegpr_28 -/* 80015E28 00012D68 7C 7C 1B 78 */ mr r28, r3 -/* 80015E2C 00012D6C 7C 9D 23 78 */ mr r29, r4 -/* 80015E30 00012D70 7C BE 2B 78 */ mr r30, r5 -/* 80015E34 00012D74 4B FF 8F 7D */ bl mDoExt_getCommandHeap -/* 80015E38 00012D78 7C 64 1B 78 */ mr r4, r3 -/* 80015E3C 00012D7C 38 60 00 24 */ li r3, 0x24 -/* 80015E40 00012D80 38 A0 FF FC */ li r5, -4 -/* 80015E44 00012D84 48 2B 8E 55 */ bl __nw__FUlP7JKRHeapi -/* 80015E48 00012D88 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80015E4C 00012D8C 41 82 00 10 */ beq lbl_80015E5C -/* 80015E50 00012D90 7F A4 EB 78 */ mr r4, r29 -/* 80015E54 00012D94 4B FF FF 51 */ bl mDoDvdThd_mountArchive_c -/* 80015E58 00012D98 7C 7F 1B 78 */ mr r31, r3 -lbl_80015E5C: -/* 80015E5C 00012D9C 28 1F 00 00 */ cmplwi r31, 0 -/* 80015E60 00012DA0 41 82 00 60 */ beq lbl_80015EC0 -/* 80015E64 00012DA4 7F 83 E3 78 */ mr r3, r28 -/* 80015E68 00012DA8 4B FF FA 75 */ bl my_DVDConvertPathToEntrynum -/* 80015E6C 00012DAC 90 7F 00 18 */ stw r3, 0x18(r31) -/* 80015E70 00012DB0 80 1F 00 18 */ lwz r0, 0x18(r31) -/* 80015E74 00012DB4 2C 00 FF FF */ cmpwi r0, -1 -/* 80015E78 00012DB8 40 82 00 34 */ bne lbl_80015EAC -/* 80015E7C 00012DBC 38 00 00 01 */ li r0, 1 -/* 80015E80 00012DC0 98 1F 00 0C */ stb r0, 0xc(r31) -/* 80015E84 00012DC4 28 1F 00 00 */ cmplwi r31, 0 -/* 80015E88 00012DC8 41 82 00 1C */ beq lbl_80015EA4 -/* 80015E8C 00012DCC 7F E3 FB 78 */ mr r3, r31 -/* 80015E90 00012DD0 38 80 00 01 */ li r4, 1 -/* 80015E94 00012DD4 81 9F 00 10 */ lwz r12, 0x10(r31) -/* 80015E98 00012DD8 81 8C 00 08 */ lwz r12, 8(r12) -/* 80015E9C 00012DDC 7D 89 03 A6 */ mtctr r12 -/* 80015EA0 00012DE0 4E 80 04 21 */ bctrl -lbl_80015EA4: -/* 80015EA4 00012DE4 3B E0 00 00 */ li r31, 0 -/* 80015EA8 00012DE8 48 00 00 18 */ b lbl_80015EC0 -lbl_80015EAC: -/* 80015EAC 00012DEC 93 DF 00 20 */ stw r30, 0x20(r31) -/* 80015EB0 00012DF0 3C 60 80 3E */ lis r3, lbl_803DEC60@ha -/* 80015EB4 00012DF4 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l -/* 80015EB8 00012DF8 7F E4 FB 78 */ mr r4, r31 -/* 80015EBC 00012DFC 4B FF FB 29 */ bl mDoDvdThd_param_c_NS_addition -lbl_80015EC0: -/* 80015EC0 00012E00 7F E3 FB 78 */ mr r3, r31 -/* 80015EC4 00012E04 39 61 00 20 */ addi r11, r1, 0x20 -/* 80015EC8 00012E08 48 34 C3 5D */ bl _restgpr_28 -/* 80015ECC 00012E0C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80015ED0 00012E10 7C 08 03 A6 */ mtlr r0 -/* 80015ED4 00012E14 38 21 00 20 */ addi r1, r1, 0x20 -/* 80015ED8 00012E18 4E 80 00 20 */ blr -/* 80015EDC 00012E1C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80015EE0 00012E20 7C 08 02 A6 */ mflr r0 -/* 80015EE4 00012E24 90 01 00 34 */ stw r0, 0x34(r1) -/* 80015EE8 00012E28 39 61 00 30 */ addi r11, r1, 0x30 -/* 80015EEC 00012E2C 48 34 C2 E1 */ bl _savegpr_25 -/* 80015EF0 00012E30 7C 7A 1B 78 */ mr r26, r3 -/* 80015EF4 00012E34 3B C0 00 00 */ li r30, 0 -/* 80015EF8 00012E38 3B A0 00 00 */ li r29, 0 -/* 80015EFC 00012E3C 3B 80 00 00 */ li r28, 0 -/* 80015F00 00012E40 3B 60 00 00 */ li r27, 0 -/* 80015F04 00012E44 80 63 00 20 */ lwz r3, 0x20(r3) -/* 80015F08 00012E48 28 03 00 00 */ cmplwi r3, 0 -/* 80015F0C 00012E4C 41 82 00 08 */ beq lbl_80015F14 -/* 80015F10 00012E50 48 00 00 08 */ b lbl_80015F18 -lbl_80015F14: -/* 80015F14 00012E54 4B FF 8E D9 */ bl mDoExt_getArchiveHeap -lbl_80015F18: -/* 80015F18 00012E58 7C 79 1B 78 */ mr r25, r3 -/* 80015F1C 00012E5C 3C 60 80 37 */ lis r3, lbl_803741A8@ha -/* 80015F20 00012E60 3B E3 41 A8 */ addi r31, r3, lbl_803741A8@l -lbl_80015F24: -/* 80015F24 00012E64 4B FF 8E D1 */ bl mDoExt_getArchiveHeapPtr -/* 80015F28 00012E68 7C 19 18 40 */ cmplw r25, r3 -/* 80015F2C 00012E6C 40 82 00 0C */ bne lbl_80015F38 -/* 80015F30 00012E70 3B 80 00 01 */ li r28, 1 -/* 80015F34 00012E74 48 00 00 3C */ b lbl_80015F70 -lbl_80015F38: -/* 80015F38 00012E78 4B FF 8E 49 */ bl mDoExt_getZeldaHeap -/* 80015F3C 00012E7C 7C 19 18 40 */ cmplw r25, r3 -/* 80015F40 00012E80 40 82 00 0C */ bne lbl_80015F4C -/* 80015F44 00012E84 3B C0 00 01 */ li r30, 1 -/* 80015F48 00012E88 48 00 00 28 */ b lbl_80015F70 -lbl_80015F4C: -/* 80015F4C 00012E8C 4B FF 8E 05 */ bl mDoExt_getGameHeap -/* 80015F50 00012E90 7C 19 18 40 */ cmplw r25, r3 -/* 80015F54 00012E94 40 82 00 0C */ bne lbl_80015F60 -/* 80015F58 00012E98 3B A0 00 01 */ li r29, 1 -/* 80015F5C 00012E9C 48 00 00 14 */ b lbl_80015F70 -lbl_80015F60: -/* 80015F60 00012EA0 4B FF 8E D1 */ bl mDoExt_getJ2dHeap -/* 80015F64 00012EA4 7C 19 18 40 */ cmplw r25, r3 -/* 80015F68 00012EA8 40 82 00 08 */ bne lbl_80015F70 -/* 80015F6C 00012EAC 3B 60 00 01 */ li r27, 1 -lbl_80015F70: -/* 80015F70 00012EB0 88 1A 00 14 */ lbz r0, 0x14(r26) -/* 80015F74 00012EB4 28 00 00 00 */ cmplwi r0, 0 -/* 80015F78 00012EB8 40 82 00 34 */ bne lbl_80015FAC -/* 80015F7C 00012EBC 38 60 00 70 */ li r3, 0x70 -/* 80015F80 00012EC0 7F 24 CB 78 */ mr r4, r25 -/* 80015F84 00012EC4 38 A0 00 00 */ li r5, 0 -/* 80015F88 00012EC8 48 2B 8D 11 */ bl __nw__FUlP7JKRHeapi -/* 80015F8C 00012ECC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80015F90 00012ED0 41 82 00 14 */ beq lbl_80015FA4 -/* 80015F94 00012ED4 80 9A 00 18 */ lwz r4, 0x18(r26) -/* 80015F98 00012ED8 38 A0 00 01 */ li r5, 1 -/* 80015F9C 00012EDC 48 2C 0A 1D */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection -/* 80015FA0 00012EE0 7C 60 1B 78 */ mr r0, r3 -lbl_80015FA4: -/* 80015FA4 00012EE4 7C 19 03 78 */ mr r25, r0 -/* 80015FA8 00012EE8 48 00 00 30 */ b lbl_80015FD8 -lbl_80015FAC: -/* 80015FAC 00012EEC 38 60 00 70 */ li r3, 0x70 -/* 80015FB0 00012EF0 7F 24 CB 78 */ mr r4, r25 -/* 80015FB4 00012EF4 38 A0 FF FC */ li r5, -4 -/* 80015FB8 00012EF8 48 2B 8C E1 */ bl __nw__FUlP7JKRHeapi -/* 80015FBC 00012EFC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80015FC0 00012F00 41 82 00 14 */ beq lbl_80015FD4 -/* 80015FC4 00012F04 80 9A 00 18 */ lwz r4, 0x18(r26) -/* 80015FC8 00012F08 38 A0 00 02 */ li r5, 2 -/* 80015FCC 00012F0C 48 2C 09 ED */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection -/* 80015FD0 00012F10 7C 60 1B 78 */ mr r0, r3 -lbl_80015FD4: -/* 80015FD4 00012F14 7C 19 03 78 */ mr r25, r0 -lbl_80015FD8: -/* 80015FD8 00012F18 28 19 00 00 */ cmplwi r25, 0 -/* 80015FDC 00012F1C 41 82 00 18 */ beq lbl_80015FF4 -/* 80015FE0 00012F20 88 19 00 30 */ lbz r0, 0x30(r25) -/* 80015FE4 00012F24 28 00 00 00 */ cmplwi r0, 0 -/* 80015FE8 00012F28 41 82 00 0C */ beq lbl_80015FF4 -/* 80015FEC 00012F2C 93 3A 00 1C */ stw r25, 0x1c(r26) -/* 80015FF0 00012F30 48 00 00 E8 */ b lbl_800160D8 -lbl_80015FF4: -/* 80015FF4 00012F34 38 7F 00 3E */ addi r3, r31, 0x3e -/* 80015FF8 00012F38 4C C6 31 82 */ crclr 6 -/* 80015FFC 00012F3C 4B FF 0C 11 */ bl OSReport_Error -/* 80016000 00012F40 28 19 00 00 */ cmplwi r25, 0 -/* 80016004 00012F44 41 82 00 20 */ beq lbl_80016024 -/* 80016008 00012F48 41 82 00 1C */ beq lbl_80016024 -/* 8001600C 00012F4C 7F 23 CB 78 */ mr r3, r25 -/* 80016010 00012F50 38 80 00 01 */ li r4, 1 -/* 80016014 00012F54 81 99 00 00 */ lwz r12, 0(r25) -/* 80016018 00012F58 81 8C 00 08 */ lwz r12, 8(r12) -/* 8001601C 00012F5C 7D 89 03 A6 */ mtctr r12 -/* 80016020 00012F60 4E 80 04 21 */ bctrl -lbl_80016024: -/* 80016024 00012F64 57 C0 06 3F */ clrlwi. r0, r30, 0x18 -/* 80016028 00012F68 40 82 00 24 */ bne lbl_8001604C -/* 8001602C 00012F6C 3C 60 80 37 */ lis r3, lbl_803741A8@ha -/* 80016030 00012F70 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l -/* 80016034 00012F74 38 63 00 6E */ addi r3, r3, 0x6e -/* 80016038 00012F78 4C C6 31 82 */ crclr 6 -/* 8001603C 00012F7C 4B FF 0B D1 */ bl OSReport_Error -/* 80016040 00012F80 4B FF 8D 41 */ bl mDoExt_getZeldaHeap -/* 80016044 00012F84 7C 79 1B 78 */ mr r25, r3 -/* 80016048 00012F88 4B FF FE DC */ b lbl_80015F24 -lbl_8001604C: -/* 8001604C 00012F8C 57 80 06 3F */ clrlwi. r0, r28, 0x18 -/* 80016050 00012F90 40 82 00 24 */ bne lbl_80016074 -/* 80016054 00012F94 3C 60 80 37 */ lis r3, lbl_803741A8@ha -/* 80016058 00012F98 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l -/* 8001605C 00012F9C 38 63 00 AE */ addi r3, r3, 0xae -/* 80016060 00012FA0 4C C6 31 82 */ crclr 6 -/* 80016064 00012FA4 4B FF 0B A9 */ bl OSReport_Error -/* 80016068 00012FA8 4B FF 8D 8D */ bl mDoExt_getArchiveHeapPtr -/* 8001606C 00012FAC 7C 79 1B 78 */ mr r25, r3 -/* 80016070 00012FB0 4B FF FE B4 */ b lbl_80015F24 -lbl_80016074: -/* 80016074 00012FB4 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 80016078 00012FB8 40 82 00 24 */ bne lbl_8001609C -/* 8001607C 00012FBC 3C 60 80 37 */ lis r3, lbl_803741A8@ha -/* 80016080 00012FC0 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l -/* 80016084 00012FC4 38 63 00 F2 */ addi r3, r3, 0xf2 -/* 80016088 00012FC8 4C C6 31 82 */ crclr 6 -/* 8001608C 00012FCC 4B FF 0B 81 */ bl OSReport_Error -/* 80016090 00012FD0 4B FF 8C C1 */ bl mDoExt_getGameHeap -/* 80016094 00012FD4 7C 79 1B 78 */ mr r25, r3 -/* 80016098 00012FD8 4B FF FE 8C */ b lbl_80015F24 -lbl_8001609C: -/* 8001609C 00012FDC 57 60 06 3F */ clrlwi. r0, r27, 0x18 -/* 800160A0 00012FE0 40 82 00 24 */ bne lbl_800160C4 -/* 800160A4 00012FE4 3C 60 80 37 */ lis r3, lbl_803741A8@ha -/* 800160A8 00012FE8 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l -/* 800160AC 00012FEC 38 63 01 32 */ addi r3, r3, 0x132 -/* 800160B0 00012FF0 4C C6 31 82 */ crclr 6 -/* 800160B4 00012FF4 4B FF 0B 59 */ bl OSReport_Error -/* 800160B8 00012FF8 4B FF 8D 79 */ bl mDoExt_getJ2dHeap -/* 800160BC 00012FFC 7C 79 1B 78 */ mr r25, r3 -/* 800160C0 00013000 4B FF FE 64 */ b lbl_80015F24 -lbl_800160C4: -/* 800160C4 00013004 3C 60 80 37 */ lis r3, lbl_803741A8@ha -/* 800160C8 00013008 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l -/* 800160CC 0001300C 38 63 01 6F */ addi r3, r3, 0x16f -/* 800160D0 00013010 4C C6 31 82 */ crclr 6 -/* 800160D4 00013014 4B FF 0A 69 */ bl OSReport_FatalError -lbl_800160D8: -/* 800160D8 00013018 38 00 00 01 */ li r0, 1 -/* 800160DC 0001301C 98 1A 00 0C */ stb r0, 0xc(r26) -/* 800160E0 00013020 80 7A 00 1C */ lwz r3, 0x1c(r26) -/* 800160E4 00013024 30 03 FF FF */ addic r0, r3, -1 -/* 800160E8 00013028 7C 00 19 10 */ subfe r0, r0, r3 -/* 800160EC 0001302C 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 800160F0 00013030 39 61 00 30 */ addi r11, r1, 0x30 -/* 800160F4 00013034 48 34 C1 25 */ bl _restgpr_25 -/* 800160F8 00013038 80 01 00 34 */ lwz r0, 0x34(r1) -/* 800160FC 0001303C 7C 08 03 A6 */ mtlr r0 -/* 80016100 00013040 38 21 00 30 */ addi r1, r1, 0x30 -/* 80016104 00013044 4E 80 00 20 */ blr -/* 80016108 00013048 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001610C 0001304C 7C 08 02 A6 */ mflr r0 -/* 80016110 00013050 90 01 00 14 */ stw r0, 0x14(r1) -/* 80016114 00013054 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80016118 00013058 93 C1 00 08 */ stw r30, 8(r1) -/* 8001611C 0001305C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80016120 00013060 7C 9F 23 78 */ mr r31, r4 -/* 80016124 00013064 41 82 00 28 */ beq lbl_8001614C -/* 80016128 00013068 3C 80 80 3A */ lis r4, lbl_803A34B8@ha -/* 8001612C 0001306C 38 04 34 B8 */ addi r0, r4, lbl_803A34B8@l -/* 80016130 00013070 90 1E 00 10 */ stw r0, 0x10(r30) -/* 80016134 00013074 38 80 00 00 */ li r4, 0 -/* 80016138 00013078 4B FF F7 C5 */ bl mDoDvdThd_command_c_NS_dtor -/* 8001613C 0001307C 7F E0 07 35 */ extsh. r0, r31 -/* 80016140 00013080 40 81 00 0C */ ble lbl_8001614C -/* 80016144 00013084 7F C3 F3 78 */ mr r3, r30 -/* 80016148 00013088 48 2B 8B F5 */ bl __dl__FPv -lbl_8001614C: -/* 8001614C 0001308C 7F C3 F3 78 */ mr r3, r30 -/* 80016150 00013090 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80016154 00013094 83 C1 00 08 */ lwz r30, 8(r1) -/* 80016158 00013098 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001615C 0001309C 7C 08 03 A6 */ mtlr r0 -/* 80016160 000130A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016164 000130A4 4E 80 00 20 */ blr - -.global mDoDvdThd_mountXArchive_c -mDoDvdThd_mountXArchive_c: -/* 80016168 000130A8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8001616C 000130AC 7C 08 02 A6 */ mflr r0 -/* 80016170 000130B0 90 01 00 24 */ stw r0, 0x24(r1) -/* 80016174 000130B4 39 61 00 20 */ addi r11, r1, 0x20 -/* 80016178 000130B8 48 34 C0 65 */ bl _savegpr_29 -/* 8001617C 000130BC 7C 7D 1B 78 */ mr r29, r3 -/* 80016180 000130C0 7C 9E 23 78 */ mr r30, r4 -/* 80016184 000130C4 7C BF 2B 78 */ mr r31, r5 -/* 80016188 000130C8 4B FF F9 ED */ bl mDoDvdThd_command_c -/* 8001618C 000130CC 3C 60 80 3A */ lis r3, lbl_803A34B8@ha -/* 80016190 000130D0 38 03 34 B8 */ addi r0, r3, lbl_803A34B8@l -/* 80016194 000130D4 90 1D 00 10 */ stw r0, 0x10(r29) -/* 80016198 000130D8 9B DD 00 14 */ stb r30, 0x14(r29) -/* 8001619C 000130DC 38 00 FF FF */ li r0, -1 -/* 800161A0 000130E0 90 1D 00 18 */ stw r0, 0x18(r29) -/* 800161A4 000130E4 38 00 00 00 */ li r0, 0 -/* 800161A8 000130E8 90 1D 00 1C */ stw r0, 0x1c(r29) -/* 800161AC 000130EC 93 FD 00 20 */ stw r31, 0x20(r29) -/* 800161B0 000130F0 90 1D 00 24 */ stw r0, 0x24(r29) -/* 800161B4 000130F4 57 C0 06 3F */ clrlwi. r0, r30, 0x18 -/* 800161B8 000130F8 40 82 00 0C */ bne lbl_800161C4 -/* 800161BC 000130FC 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13) -/* 800161C0 00013100 98 1D 00 14 */ stb r0, 0x14(r29) -lbl_800161C4: -/* 800161C4 00013104 7F A3 EB 78 */ mr r3, r29 -/* 800161C8 00013108 39 61 00 20 */ addi r11, r1, 0x20 -/* 800161CC 0001310C 48 34 C0 5D */ bl _restgpr_29 -/* 800161D0 00013110 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800161D4 00013114 7C 08 03 A6 */ mtlr r0 -/* 800161D8 00013118 38 21 00 20 */ addi r1, r1, 0x20 -/* 800161DC 0001311C 4E 80 00 20 */ blr - -.global mDoDvdThd_mountXArchive_c_NS_create -mDoDvdThd_mountXArchive_c_NS_create: -/* 800161E0 00013120 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800161E4 00013124 7C 08 02 A6 */ mflr r0 -/* 800161E8 00013128 90 01 00 24 */ stw r0, 0x24(r1) -/* 800161EC 0001312C 39 61 00 20 */ addi r11, r1, 0x20 -/* 800161F0 00013130 48 34 BF E5 */ bl _savegpr_27 -/* 800161F4 00013134 7C 7B 1B 78 */ mr r27, r3 -/* 800161F8 00013138 7C 9C 23 78 */ mr r28, r4 -/* 800161FC 0001313C 7C BD 2B 78 */ mr r29, r5 -/* 80016200 00013140 7C DE 33 78 */ mr r30, r6 -/* 80016204 00013144 4B FF 8B AD */ bl mDoExt_getCommandHeap -/* 80016208 00013148 7C 64 1B 78 */ mr r4, r3 -/* 8001620C 0001314C 38 60 00 28 */ li r3, 0x28 -/* 80016210 00013150 38 A0 FF FC */ li r5, -4 -/* 80016214 00013154 48 2B 8A 85 */ bl __nw__FUlP7JKRHeapi -/* 80016218 00013158 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8001621C 0001315C 41 82 00 14 */ beq lbl_80016230 -/* 80016220 00013160 7F 84 E3 78 */ mr r4, r28 -/* 80016224 00013164 7F A5 EB 78 */ mr r5, r29 -/* 80016228 00013168 4B FF FF 41 */ bl mDoDvdThd_mountXArchive_c -/* 8001622C 0001316C 7C 7F 1B 78 */ mr r31, r3 -lbl_80016230: -/* 80016230 00013170 28 1F 00 00 */ cmplwi r31, 0 -/* 80016234 00013174 41 82 00 60 */ beq lbl_80016294 -/* 80016238 00013178 7F 63 DB 78 */ mr r3, r27 -/* 8001623C 0001317C 4B FF F6 A1 */ bl my_DVDConvertPathToEntrynum -/* 80016240 00013180 90 7F 00 18 */ stw r3, 0x18(r31) -/* 80016244 00013184 80 1F 00 18 */ lwz r0, 0x18(r31) -/* 80016248 00013188 2C 00 FF FF */ cmpwi r0, -1 -/* 8001624C 0001318C 40 82 00 34 */ bne lbl_80016280 -/* 80016250 00013190 38 00 00 01 */ li r0, 1 -/* 80016254 00013194 98 1F 00 0C */ stb r0, 0xc(r31) -/* 80016258 00013198 28 1F 00 00 */ cmplwi r31, 0 -/* 8001625C 0001319C 41 82 00 1C */ beq lbl_80016278 -/* 80016260 000131A0 7F E3 FB 78 */ mr r3, r31 -/* 80016264 000131A4 38 80 00 01 */ li r4, 1 -/* 80016268 000131A8 81 9F 00 10 */ lwz r12, 0x10(r31) -/* 8001626C 000131AC 81 8C 00 08 */ lwz r12, 8(r12) -/* 80016270 000131B0 7D 89 03 A6 */ mtctr r12 -/* 80016274 000131B4 4E 80 04 21 */ bctrl -lbl_80016278: -/* 80016278 000131B8 3B E0 00 00 */ li r31, 0 -/* 8001627C 000131BC 48 00 00 18 */ b lbl_80016294 -lbl_80016280: -/* 80016280 000131C0 93 DF 00 24 */ stw r30, 0x24(r31) -/* 80016284 000131C4 3C 60 80 3E */ lis r3, lbl_803DEC60@ha -/* 80016288 000131C8 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l -/* 8001628C 000131CC 7F E4 FB 78 */ mr r4, r31 -/* 80016290 000131D0 4B FF F7 55 */ bl mDoDvdThd_param_c_NS_addition -lbl_80016294: -/* 80016294 000131D4 7F E3 FB 78 */ mr r3, r31 -/* 80016298 000131D8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8001629C 000131DC 48 34 BF 85 */ bl _restgpr_27 -/* 800162A0 000131E0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800162A4 000131E4 7C 08 03 A6 */ mtlr r0 -/* 800162A8 000131E8 38 21 00 20 */ addi r1, r1, 0x20 -/* 800162AC 000131EC 4E 80 00 20 */ blr -/* 800162B0 000131F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800162B4 000131F4 7C 08 02 A6 */ mflr r0 -/* 800162B8 000131F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 800162BC 000131FC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800162C0 00013200 93 C1 00 08 */ stw r30, 8(r1) -/* 800162C4 00013204 7C 7E 1B 78 */ mr r30, r3 -/* 800162C8 00013208 88 03 00 14 */ lbz r0, 0x14(r3) -/* 800162CC 0001320C 28 00 00 00 */ cmplwi r0, 0 -/* 800162D0 00013210 3B E0 00 02 */ li r31, 2 -/* 800162D4 00013214 40 82 00 08 */ bne lbl_800162DC -/* 800162D8 00013218 3B E0 00 01 */ li r31, 1 -lbl_800162DC: -/* 800162DC 0001321C 80 BE 00 24 */ lwz r5, 0x24(r30) -/* 800162E0 00013220 28 05 00 00 */ cmplwi r5, 0 -/* 800162E4 00013224 41 82 00 08 */ beq lbl_800162EC -/* 800162E8 00013228 48 00 00 0C */ b lbl_800162F4 -lbl_800162EC: -/* 800162EC 0001322C 4B FF 8B 01 */ bl mDoExt_getArchiveHeap -/* 800162F0 00013230 7C 65 1B 78 */ mr r5, r3 -lbl_800162F4: -/* 800162F4 00013234 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 800162F8 00013238 80 9E 00 20 */ lwz r4, 0x20(r30) -/* 800162FC 0001323C 7F E6 FB 78 */ mr r6, r31 -/* 80016300 00013240 48 2B F5 C9 */ bl mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection -/* 80016304 00013244 90 7E 00 1C */ stw r3, 0x1c(r30) -/* 80016308 00013248 80 7E 00 1C */ lwz r3, 0x1c(r30) -/* 8001630C 0001324C 30 03 FF FF */ addic r0, r3, -1 -/* 80016310 00013250 7C 00 19 10 */ subfe r0, r0, r3 -/* 80016314 00013254 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80016318 00013258 38 00 00 01 */ li r0, 1 -/* 8001631C 0001325C 98 1E 00 0C */ stb r0, 0xc(r30) -/* 80016320 00013260 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80016324 00013264 83 C1 00 08 */ lwz r30, 8(r1) -/* 80016328 00013268 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001632C 0001326C 7C 08 03 A6 */ mtlr r0 -/* 80016330 00013270 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016334 00013274 4E 80 00 20 */ blr - -.global mDoDvdThd_toMainRam_c -mDoDvdThd_toMainRam_c: -/* 80016338 00013278 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001633C 0001327C 7C 08 02 A6 */ mflr r0 -/* 80016340 00013280 90 01 00 14 */ stw r0, 0x14(r1) -/* 80016344 00013284 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80016348 00013288 93 C1 00 08 */ stw r30, 8(r1) -/* 8001634C 0001328C 7C 7E 1B 78 */ mr r30, r3 -/* 80016350 00013290 7C 9F 23 78 */ mr r31, r4 -/* 80016354 00013294 4B FF F8 21 */ bl mDoDvdThd_command_c -/* 80016358 00013298 3C 60 80 3A */ lis r3, lbl_803A34A8@ha -/* 8001635C 0001329C 38 03 34 A8 */ addi r0, r3, lbl_803A34A8@l -/* 80016360 000132A0 90 1E 00 10 */ stw r0, 0x10(r30) -/* 80016364 000132A4 9B FE 00 14 */ stb r31, 0x14(r30) -/* 80016368 000132A8 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 8001636C 000132AC 40 82 00 0C */ bne lbl_80016378 -/* 80016370 000132B0 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13) -/* 80016374 000132B4 98 1E 00 14 */ stb r0, 0x14(r30) -lbl_80016378: -/* 80016378 000132B8 7F C3 F3 78 */ mr r3, r30 -/* 8001637C 000132BC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80016380 000132C0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80016384 000132C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80016388 000132C8 7C 08 03 A6 */ mtlr r0 -/* 8001638C 000132CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016390 000132D0 4E 80 00 20 */ blr - -.global mDoDvdThd_toMainRam_c_NS_create -mDoDvdThd_toMainRam_c_NS_create: -/* 80016394 000132D4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80016398 000132D8 7C 08 02 A6 */ mflr r0 -/* 8001639C 000132DC 90 01 00 24 */ stw r0, 0x24(r1) -/* 800163A0 000132E0 39 61 00 20 */ addi r11, r1, 0x20 -/* 800163A4 000132E4 48 34 BE 35 */ bl _savegpr_28 -/* 800163A8 000132E8 7C 7C 1B 78 */ mr r28, r3 -/* 800163AC 000132EC 7C 9D 23 78 */ mr r29, r4 -/* 800163B0 000132F0 7C BE 2B 78 */ mr r30, r5 -/* 800163B4 000132F4 4B FF 89 FD */ bl mDoExt_getCommandHeap -/* 800163B8 000132F8 7C 64 1B 78 */ mr r4, r3 -/* 800163BC 000132FC 38 60 00 28 */ li r3, 0x28 -/* 800163C0 00013300 38 A0 FF FC */ li r5, -4 -/* 800163C4 00013304 48 2B 88 D5 */ bl __nw__FUlP7JKRHeapi -/* 800163C8 00013308 7C 7F 1B 79 */ or. r31, r3, r3 -/* 800163CC 0001330C 41 82 00 10 */ beq lbl_800163DC -/* 800163D0 00013310 7F A4 EB 78 */ mr r4, r29 -/* 800163D4 00013314 4B FF FF 65 */ bl mDoDvdThd_toMainRam_c -/* 800163D8 00013318 7C 7F 1B 78 */ mr r31, r3 -lbl_800163DC: -/* 800163DC 0001331C 28 1F 00 00 */ cmplwi r31, 0 -/* 800163E0 00013320 41 82 00 60 */ beq lbl_80016440 -/* 800163E4 00013324 7F 83 E3 78 */ mr r3, r28 -/* 800163E8 00013328 4B FF F4 F5 */ bl my_DVDConvertPathToEntrynum -/* 800163EC 0001332C 90 7F 00 18 */ stw r3, 0x18(r31) -/* 800163F0 00013330 80 1F 00 18 */ lwz r0, 0x18(r31) -/* 800163F4 00013334 2C 00 FF FF */ cmpwi r0, -1 -/* 800163F8 00013338 40 82 00 34 */ bne lbl_8001642C -/* 800163FC 0001333C 38 00 00 01 */ li r0, 1 -/* 80016400 00013340 98 1F 00 0C */ stb r0, 0xc(r31) -/* 80016404 00013344 28 1F 00 00 */ cmplwi r31, 0 -/* 80016408 00013348 41 82 00 1C */ beq lbl_80016424 -/* 8001640C 0001334C 7F E3 FB 78 */ mr r3, r31 -/* 80016410 00013350 38 80 00 01 */ li r4, 1 -/* 80016414 00013354 81 9F 00 10 */ lwz r12, 0x10(r31) -/* 80016418 00013358 81 8C 00 08 */ lwz r12, 8(r12) -/* 8001641C 0001335C 7D 89 03 A6 */ mtctr r12 -/* 80016420 00013360 4E 80 04 21 */ bctrl -lbl_80016424: -/* 80016424 00013364 3B E0 00 00 */ li r31, 0 -/* 80016428 00013368 48 00 00 18 */ b lbl_80016440 -lbl_8001642C: -/* 8001642C 0001336C 93 DF 00 24 */ stw r30, 0x24(r31) -/* 80016430 00013370 3C 60 80 3E */ lis r3, lbl_803DEC60@ha -/* 80016434 00013374 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l -/* 80016438 00013378 7F E4 FB 78 */ mr r4, r31 -/* 8001643C 0001337C 4B FF F5 A9 */ bl mDoDvdThd_param_c_NS_addition -lbl_80016440: -/* 80016440 00013380 7F E3 FB 78 */ mr r3, r31 -/* 80016444 00013384 39 61 00 20 */ addi r11, r1, 0x20 -/* 80016448 00013388 48 34 BD DD */ bl _restgpr_28 -/* 8001644C 0001338C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80016450 00013390 7C 08 03 A6 */ mtlr r0 -/* 80016454 00013394 38 21 00 20 */ addi r1, r1, 0x20 -/* 80016458 00013398 4E 80 00 20 */ blr -/* 8001645C 0001339C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80016460 000133A0 7C 08 02 A6 */ mflr r0 -/* 80016464 000133A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80016468 000133A8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8001646C 000133AC 93 C1 00 08 */ stw r30, 8(r1) -/* 80016470 000133B0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80016474 000133B4 7C 9F 23 78 */ mr r31, r4 -/* 80016478 000133B8 41 82 00 28 */ beq lbl_800164A0 -/* 8001647C 000133BC 3C 80 80 3A */ lis r4, lbl_803A34A8@ha -/* 80016480 000133C0 38 04 34 A8 */ addi r0, r4, lbl_803A34A8@l -/* 80016484 000133C4 90 1E 00 10 */ stw r0, 0x10(r30) -/* 80016488 000133C8 38 80 00 00 */ li r4, 0 -/* 8001648C 000133CC 4B FF F4 71 */ bl mDoDvdThd_command_c_NS_dtor -/* 80016490 000133D0 7F E0 07 35 */ extsh. r0, r31 -/* 80016494 000133D4 40 81 00 0C */ ble lbl_800164A0 -/* 80016498 000133D8 7F C3 F3 78 */ mr r3, r30 -/* 8001649C 000133DC 48 2B 88 A1 */ bl __dl__FPv -lbl_800164A0: -/* 800164A0 000133E0 7F C3 F3 78 */ mr r3, r30 -/* 800164A4 000133E4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800164A8 000133E8 83 C1 00 08 */ lwz r30, 8(r1) -/* 800164AC 000133EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800164B0 000133F0 7C 08 03 A6 */ mtlr r0 -/* 800164B4 000133F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800164B8 000133F8 4E 80 00 20 */ blr -/* 800164BC 000133FC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800164C0 00013400 7C 08 02 A6 */ mflr r0 -/* 800164C4 00013404 90 01 00 24 */ stw r0, 0x24(r1) -/* 800164C8 00013408 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 800164CC 0001340C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 800164D0 00013410 7C 7E 1B 78 */ mr r30, r3 -/* 800164D4 00013414 80 E3 00 24 */ lwz r7, 0x24(r3) -/* 800164D8 00013418 28 07 00 00 */ cmplwi r7, 0 -/* 800164DC 0001341C 41 82 00 08 */ beq lbl_800164E4 -/* 800164E0 00013420 48 00 00 0C */ b lbl_800164EC -lbl_800164E4: -/* 800164E4 00013424 4B FF 89 09 */ bl mDoExt_getArchiveHeap -/* 800164E8 00013428 7C 67 1B 78 */ mr r7, r3 -lbl_800164EC: -/* 800164EC 0001342C 7C FF 3B 78 */ mr r31, r7 -/* 800164F0 00013430 38 00 00 00 */ li r0, 0 -/* 800164F4 00013434 90 01 00 08 */ stw r0, 8(r1) -/* 800164F8 00013438 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 800164FC 0001343C 38 80 00 00 */ li r4, 0 -/* 80016500 00013440 38 A0 00 01 */ li r5, 1 -/* 80016504 00013444 38 C0 00 00 */ li r6, 0 -/* 80016508 00013448 88 1E 00 14 */ lbz r0, 0x14(r30) -/* 8001650C 0001344C 28 00 00 00 */ cmplwi r0, 0 -/* 80016510 00013450 39 00 00 02 */ li r8, 2 -/* 80016514 00013454 40 82 00 08 */ bne lbl_8001651C -/* 80016518 00013458 39 00 00 01 */ li r8, 1 -lbl_8001651C: -/* 8001651C 0001345C 39 20 00 00 */ li r9, 0 -/* 80016520 00013460 39 40 00 00 */ li r10, 0 -/* 80016524 00013464 48 2C 37 31 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl -/* 80016528 00013468 90 7E 00 1C */ stw r3, 0x1c(r30) -/* 8001652C 0001346C 80 9E 00 1C */ lwz r4, 0x1c(r30) -/* 80016530 00013470 28 04 00 00 */ cmplwi r4, 0 -/* 80016534 00013474 41 82 00 10 */ beq lbl_80016544 -/* 80016538 00013478 7F E3 FB 78 */ mr r3, r31 -/* 8001653C 0001347C 48 2B 81 C5 */ bl getSize__7JKRHeapCFPv -/* 80016540 00013480 90 7E 00 20 */ stw r3, 0x20(r30) -lbl_80016544: -/* 80016544 00013484 38 00 00 01 */ li r0, 1 -/* 80016548 00013488 98 1E 00 0C */ stb r0, 0xc(r30) -/* 8001654C 0001348C 80 7E 00 1C */ lwz r3, 0x1c(r30) -/* 80016550 00013490 30 03 FF FF */ addic r0, r3, -1 -/* 80016554 00013494 7C 00 19 10 */ subfe r0, r0, r3 -/* 80016558 00013498 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8001655C 0001349C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80016560 000134A0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80016564 000134A4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80016568 000134A8 7C 08 03 A6 */ mtlr r0 -/* 8001656C 000134AC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80016570 000134B0 4E 80 00 20 */ blr -/* 80016574 000134B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80016578 000134B8 7C 08 02 A6 */ mflr r0 -/* 8001657C 000134BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80016580 000134C0 3C 60 80 3E */ lis r3, lbl_803DEC60@ha -/* 80016584 000134C4 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l -/* 80016588 000134C8 4B FF F3 BD */ bl mDoDvdThd_param_c -/* 8001658C 000134CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80016590 000134D0 7C 08 03 A6 */ mtlr r0 -/* 80016594 000134D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016598 000134D8 4E 80 00 20 */ blr - diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800157FC.s b/include/m_Do/m_Do_dvd_thread/asm/func_800157FC.s new file mode 100644 index 0000000000..e43c4b170b --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800157FC.s @@ -0,0 +1,23 @@ +/* 800157FC 0001273C 94 21 FF 70 */ stwu r1, -0x90(r1) +/* 80015800 00012740 7C 08 02 A6 */ mflr r0 +/* 80015804 00012744 90 01 00 94 */ stw r0, 0x94(r1) +/* 80015808 00012748 93 E1 00 8C */ stw r31, 0x8c(r1) +/* 8001580C 0001274C 7C 7F 1B 78 */ mr r31, r3 +/* 80015810 00012750 48 32 B4 75 */ bl OSGetCurrentThread +/* 80015814 00012754 7C 64 1B 78 */ mr r4, r3 +/* 80015818 00012758 38 61 00 08 */ addi r3, r1, 8 +/* 8001581C 0001275C 38 A0 00 00 */ li r5, 0 +/* 80015820 00012760 48 2B BE 99 */ bl __ct__9JKRThreadFP8OSThreadi +/* 80015824 00012764 38 61 00 08 */ addi r3, r1, 8 +/* 80015828 00012768 38 80 FF FF */ li r4, -1 +/* 8001582C 0001276C 48 2B BF 2D */ bl __dt__9JKRThreadFv +/* 80015830 00012770 4B FF 94 B5 */ bl mDoExt_getAssertHeap +/* 80015834 00012774 48 2B 8C 05 */ bl becomeCurrentHeap__7JKRHeapFv +/* 80015838 00012778 7F E3 FB 78 */ mr r3, r31 +/* 8001583C 0001277C 48 00 02 9D */ bl mDoDvdThd_param_c_NS_mainLoop +/* 80015840 00012780 38 60 00 00 */ li r3, 0 +/* 80015844 00012784 83 E1 00 8C */ lwz r31, 0x8c(r1) +/* 80015848 00012788 80 01 00 94 */ lwz r0, 0x94(r1) +/* 8001584C 0001278C 7C 08 03 A6 */ mtlr r0 +/* 80015850 00012790 38 21 00 90 */ addi r1, r1, 0x90 +/* 80015854 00012794 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015858.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015858.s new file mode 100644 index 0000000000..84457bcb6a --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015858.s @@ -0,0 +1,25 @@ +/* 80015858 00012798 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8001585C 0001279C 7C 08 02 A6 */ mflr r0 +/* 80015860 000127A0 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015864 000127A4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80015868 000127A8 7C 68 1B 78 */ mr r8, r3 +/* 8001586C 000127AC 3C 60 80 3E */ lis r3, lbl_803DD940@ha +/* 80015870 000127B0 3B E3 D9 40 */ addi r31, r3, lbl_803DD940@l +/* 80015874 000127B4 38 7F 00 00 */ addi r3, r31, 0 +/*.global mDoDvdThd_NS_main*/ +/* 80015878 000127B8 3C 80 80 01 */ lis r4, mDoDvdThd_NS_main@ha +/*.global mDoDvdThd_NS_main*/ +/* 8001587C 000127BC 38 84 57 FC */ addi r4, r4, mDoDvdThd_NS_main@l +/* 80015880 000127C0 38 BF 13 20 */ addi r5, r31, 0x1320 +/* 80015884 000127C4 38 DF 03 20 */ addi r6, r31, 0x320 +/* 80015888 000127C8 38 E0 10 00 */ li r7, 0x1000 +/* 8001588C 000127CC 39 20 00 01 */ li r9, 1 +/* 80015890 000127D0 38 C6 10 00 */ addi r6, r6, 0x1000 +/* 80015894 000127D4 48 32 B9 F9 */ bl OSCreateThread +/* 80015898 000127D8 38 7F 00 00 */ addi r3, r31, 0 +/* 8001589C 000127DC 48 32 BF 19 */ bl OSResumeThread +/* 800158A0 000127E0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800158A4 000127E4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800158A8 000127E8 7C 08 03 A6 */ mtlr r0 +/* 800158AC 000127EC 38 21 00 10 */ addi r1, r1, 0x10 +/* 800158B0 000127F0 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800158B4.s b/include/m_Do/m_Do_dvd_thread/asm/func_800158B4.s new file mode 100644 index 0000000000..73a2e979e7 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800158B4.s @@ -0,0 +1,10 @@ +/* 800158B4 000127F4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800158B8 000127F8 7C 08 02 A6 */ mflr r0 +/* 800158BC 000127FC 90 01 00 14 */ stw r0, 0x14(r1) +/* 800158C0 00012800 3C 60 80 3E */ lis r3, lbl_803DD940@ha +/* 800158C4 00012804 38 63 D9 40 */ addi r3, r3, lbl_803DD940@l +/* 800158C8 00012808 48 32 C1 75 */ bl OSSuspendThread +/* 800158CC 0001280C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800158D0 00012810 7C 08 03 A6 */ mtlr r0 +/* 800158D4 00012814 38 21 00 10 */ addi r1, r1, 0x10 +/* 800158D8 00012818 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800158DC.s b/include/m_Do/m_Do_dvd_thread/asm/func_800158DC.s new file mode 100644 index 0000000000..f0495468f3 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800158DC.s @@ -0,0 +1,8 @@ +/* 800158DC 0001281C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800158E0 00012820 7C 08 02 A6 */ mflr r0 +/* 800158E4 00012824 90 01 00 14 */ stw r0, 0x14(r1) +/* 800158E8 00012828 48 33 2C 41 */ bl DVDConvertPathToEntrynum +/* 800158EC 0001282C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800158F0 00012830 7C 08 03 A6 */ mtlr r0 +/* 800158F4 00012834 38 21 00 10 */ addi r1, r1, 0x10 +/* 800158F8 00012838 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800158FC.s b/include/m_Do/m_Do_dvd_thread/asm/func_800158FC.s new file mode 100644 index 0000000000..e54ea21307 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800158FC.s @@ -0,0 +1,19 @@ +/* 800158FC 0001283C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015900 00012840 7C 08 02 A6 */ mflr r0 +/* 80015904 00012844 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015908 00012848 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8001590C 0001284C 7C 7F 1B 79 */ or. r31, r3, r3 +/* 80015910 00012850 41 82 00 1C */ beq lbl_8001592C +/* 80015914 00012854 3C A0 80 3A */ lis r5, lbl_803A34E8@ha +/* 80015918 00012858 38 05 34 E8 */ addi r0, r5, lbl_803A34E8@l +/* 8001591C 0001285C 90 1F 00 10 */ stw r0, 0x10(r31) +/* 80015920 00012860 7C 80 07 35 */ extsh. r0, r4 +/* 80015924 00012864 40 81 00 08 */ ble lbl_8001592C +/* 80015928 00012868 48 2B 94 15 */ bl __dl__FPv +lbl_8001592C: +/* 8001592C 0001286C 7F E3 FB 78 */ mr r3, r31 +/* 80015930 00012870 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80015934 00012874 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015938 00012878 7C 08 03 A6 */ mtlr r0 +/* 8001593C 0001287C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015940 00012880 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015944.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015944.s new file mode 100644 index 0000000000..faec262063 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015944.s @@ -0,0 +1,18 @@ +/* 80015944 00012884 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015948 00012888 7C 08 02 A6 */ mflr r0 +/* 8001594C 0001288C 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015950 00012890 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80015954 00012894 7C 7F 1B 78 */ mr r31, r3 +/* 80015958 00012898 38 9F 00 20 */ addi r4, r31, 0x20 +/* 8001595C 0001289C 38 A0 00 01 */ li r5, 1 +/* 80015960 000128A0 48 32 90 35 */ bl OSInitMessageQueue +/* 80015964 000128A4 38 7F 00 30 */ addi r3, r31, 0x30 +/* 80015968 000128A8 48 32 96 A1 */ bl OSInitMutex +/* 8001596C 000128AC 38 7F 00 24 */ addi r3, r31, 0x24 +/* 80015970 000128B0 48 25 06 D1 */ bl cLs_Create +/* 80015974 000128B4 7F E3 FB 78 */ mr r3, r31 +/* 80015978 000128B8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8001597C 000128BC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015980 000128C0 7C 08 03 A6 */ mtlr r0 +/* 80015984 000128C4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015988 000128C8 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_8001598C.s b/include/m_Do/m_Do_dvd_thread/asm/func_8001598C.s new file mode 100644 index 0000000000..0c33901205 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_8001598C.s @@ -0,0 +1,10 @@ +/* 8001598C 000128CC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015990 000128D0 7C 08 02 A6 */ mflr r0 +/* 80015994 000128D4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015998 000128D8 38 80 00 00 */ li r4, 0 +/* 8001599C 000128DC 38 A0 00 00 */ li r5, 0 +/* 800159A0 000128E0 48 32 90 55 */ bl OSSendMessage +/* 800159A4 000128E4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800159A8 000128E8 7C 08 03 A6 */ mtlr r0 +/* 800159AC 000128EC 38 21 00 10 */ addi r1, r1, 0x10 +/* 800159B0 000128F0 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800159B4.s b/include/m_Do/m_Do_dvd_thread/asm/func_800159B4.s new file mode 100644 index 0000000000..d64350eb11 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800159B4.s @@ -0,0 +1,10 @@ +/* 800159B4 000128F4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800159B8 000128F8 7C 08 02 A6 */ mflr r0 +/* 800159BC 000128FC 90 01 00 14 */ stw r0, 0x14(r1) +/* 800159C0 00012900 38 80 00 00 */ li r4, 0 +/* 800159C4 00012904 38 A0 00 01 */ li r5, 1 +/* 800159C8 00012908 48 32 90 F5 */ bl OSReceiveMessage +/* 800159CC 0001290C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800159D0 00012910 7C 08 03 A6 */ mtlr r0 +/* 800159D4 00012914 38 21 00 10 */ addi r1, r1, 0x10 +/* 800159D8 00012918 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800159DC.s b/include/m_Do/m_Do_dvd_thread/asm/func_800159DC.s new file mode 100644 index 0000000000..12a2711576 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800159DC.s @@ -0,0 +1,2 @@ +/* 800159DC 0001291C 80 63 00 24 */ lwz r3, 0x24(r3) +/* 800159E0 00012920 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800159E4.s b/include/m_Do/m_Do_dvd_thread/asm/func_800159E4.s new file mode 100644 index 0000000000..3e26b8f103 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800159E4.s @@ -0,0 +1,22 @@ +/* 800159E4 00012924 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800159E8 00012928 7C 08 02 A6 */ mflr r0 +/* 800159EC 0001292C 90 01 00 14 */ stw r0, 0x14(r1) +/* 800159F0 00012930 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800159F4 00012934 93 C1 00 08 */ stw r30, 8(r1) +/* 800159F8 00012938 7C 7E 1B 78 */ mr r30, r3 +/* 800159FC 0001293C 7C 9F 23 78 */ mr r31, r4 +/* 80015A00 00012940 38 7E 00 30 */ addi r3, r30, 0x30 +/* 80015A04 00012944 48 32 96 3D */ bl OSLockMutex +/* 80015A08 00012948 38 7E 00 24 */ addi r3, r30, 0x24 +/* 80015A0C 0001294C 7F E4 FB 78 */ mr r4, r31 +/* 80015A10 00012950 48 25 04 ED */ bl cLs_Addition +/* 80015A14 00012954 38 7E 00 30 */ addi r3, r30, 0x30 +/* 80015A18 00012958 48 32 97 05 */ bl OSUnlockMutex +/* 80015A1C 0001295C 7F C3 F3 78 */ mr r3, r30 +/* 80015A20 00012960 4B FF FF 6D */ bl mDoDvdThd_param_c_NS_kick +/* 80015A24 00012964 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80015A28 00012968 83 C1 00 08 */ lwz r30, 8(r1) +/* 80015A2C 0001296C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015A30 00012970 7C 08 03 A6 */ mtlr r0 +/* 80015A34 00012974 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015A38 00012978 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015A3C.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015A3C.s new file mode 100644 index 0000000000..4becb448f9 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015A3C.s @@ -0,0 +1,21 @@ +/* 80015A3C 0001297C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015A40 00012980 7C 08 02 A6 */ mflr r0 +/* 80015A44 00012984 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015A48 00012988 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80015A4C 0001298C 93 C1 00 08 */ stw r30, 8(r1) +/* 80015A50 00012990 7C 7E 1B 78 */ mr r30, r3 +/* 80015A54 00012994 7C 9F 23 78 */ mr r31, r4 +/* 80015A58 00012998 38 7E 00 30 */ addi r3, r30, 0x30 +/* 80015A5C 0001299C 48 32 95 E5 */ bl OSLockMutex +/* 80015A60 000129A0 7F E3 FB 78 */ mr r3, r31 +/* 80015A64 000129A4 48 25 04 15 */ bl cLs_SingleCut +/* 80015A68 000129A8 38 7E 00 30 */ addi r3, r30, 0x30 +/* 80015A6C 000129AC 48 32 96 B1 */ bl OSUnlockMutex +/* 80015A70 000129B0 7F C3 F3 78 */ mr r3, r30 +/* 80015A74 000129B4 4B FF FF 19 */ bl mDoDvdThd_param_c_NS_kick +/* 80015A78 000129B8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80015A7C 000129BC 83 C1 00 08 */ lwz r30, 8(r1) +/* 80015A80 000129C0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015A84 000129C4 7C 08 03 A6 */ mtlr r0 +/* 80015A88 000129C8 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015A8C 000129CC 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015A90.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015A90.s new file mode 100644 index 0000000000..c902d83e9d --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015A90.s @@ -0,0 +1,19 @@ +/* 80015A90 000129D0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015A94 000129D4 7C 08 02 A6 */ mflr r0 +/* 80015A98 000129D8 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015A9C 000129DC 80 63 00 00 */ lwz r3, 0(r3) +/* 80015AA0 000129E0 81 83 00 10 */ lwz r12, 0x10(r3) +/* 80015AA4 000129E4 81 8C 00 0C */ lwz r12, 0xc(r12) +/* 80015AA8 000129E8 7D 89 03 A6 */ mtctr r12 +/* 80015AAC 000129EC 4E 80 04 21 */ bctrl +/* 80015AB0 000129F0 2C 03 00 01 */ cmpwi r3, 1 +/* 80015AB4 000129F4 41 82 00 14 */ beq lbl_80015AC8 +/* 80015AB8 000129F8 3C 60 80 37 */ lis r3, lbl_803741A8@ha +/* 80015ABC 000129FC 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l +/* 80015AC0 00012A00 4C C6 31 82 */ crclr 6 +/* 80015AC4 00012A04 4B FF 11 49 */ bl OSReport_Error +lbl_80015AC8: +/* 80015AC8 00012A08 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015ACC 00012A0C 7C 08 03 A6 */ mtlr r0 +/* 80015AD0 00012A10 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015AD4 00012A14 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015AD8.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015AD8.s new file mode 100644 index 0000000000..19fe62af57 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015AD8.s @@ -0,0 +1,43 @@ +/* 80015AD8 00012A18 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80015ADC 00012A1C 7C 08 02 A6 */ mflr r0 +/* 80015AE0 00012A20 90 01 00 24 */ stw r0, 0x24(r1) +/* 80015AE4 00012A24 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80015AE8 00012A28 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80015AEC 00012A2C 7C 7E 1B 78 */ mr r30, r3 +/* 80015AF0 00012A30 3C 60 80 01 */ lis r3, cb@ha +/* 80015AF4 00012A34 3B E3 5A 90 */ addi r31, r3, cb@l +/* 80015AF8 00012A38 48 00 00 54 */ b lbl_80015B4C +/* 80015AFC 00012A3C 48 00 00 3C */ b lbl_80015B38 +lbl_80015B00: +/* 80015B00 00012A40 7F C3 F3 78 */ mr r3, r30 +/* 80015B04 00012A44 80 81 00 08 */ lwz r4, 8(r1) +/* 80015B08 00012A48 4B FF FF 35 */ bl mDoDvdThd_param_c_NS_cut +/* 80015B0C 00012A4C 88 0D 87 00 */ lbz r0, lbl_80450C80-_SDA_BASE_(r13) +/* 80015B10 00012A50 28 00 00 00 */ cmplwi r0, 0 +/* 80015B14 00012A54 41 82 00 1C */ beq lbl_80015B30 +/* 80015B18 00012A58 48 27 A3 E5 */ bl JASDvd_NS_getThreadPointer +/* 80015B1C 00012A5C 7F E4 FB 78 */ mr r4, r31 +/* 80015B20 00012A60 38 A1 00 08 */ addi r5, r1, 8 +/* 80015B24 00012A64 38 C0 00 04 */ li r6, 4 +/* 80015B28 00012A68 48 27 A0 35 */ bl JASTaskThread_NS_sendCmdMsg +/* 80015B2C 00012A6C 48 00 00 0C */ b lbl_80015B38 +lbl_80015B30: +/* 80015B30 00012A70 38 61 00 08 */ addi r3, r1, 8 +/* 80015B34 00012A74 4B FF FF 5D */ bl cb +lbl_80015B38: +/* 80015B38 00012A78 7F C3 F3 78 */ mr r3, r30 +/* 80015B3C 00012A7C 4B FF FE A1 */ bl mDoDvdThd_param_c_NS_getFirstCommand +/* 80015B40 00012A80 90 61 00 08 */ stw r3, 8(r1) +/* 80015B44 00012A84 28 03 00 00 */ cmplwi r3, 0 +/* 80015B48 00012A88 40 82 FF B8 */ bne lbl_80015B00 +lbl_80015B4C: +/* 80015B4C 00012A8C 7F C3 F3 78 */ mr r3, r30 +/* 80015B50 00012A90 4B FF FE 65 */ bl mDoDvdThd_param_c_NS_waitForKick +/* 80015B54 00012A94 2C 03 00 00 */ cmpwi r3, 0 +/* 80015B58 00012A98 40 82 FF E0 */ bne lbl_80015B38 +/* 80015B5C 00012A9C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80015B60 00012AA0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80015B64 00012AA4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80015B68 00012AA8 7C 08 03 A6 */ mtlr r0 +/* 80015B6C 00012AAC 38 21 00 20 */ addi r1, r1, 0x20 +/* 80015B70 00012AB0 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015B74.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015B74.s new file mode 100644 index 0000000000..405f33aa47 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015B74.s @@ -0,0 +1,17 @@ +/* 80015B74 00012AB4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015B78 00012AB8 7C 08 02 A6 */ mflr r0 +/* 80015B7C 00012ABC 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015B80 00012AC0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80015B84 00012AC4 7C 7F 1B 78 */ mr r31, r3 +/* 80015B88 00012AC8 3C 80 80 3A */ lis r4, lbl_803A34E8@ha +/* 80015B8C 00012ACC 38 04 34 E8 */ addi r0, r4, lbl_803A34E8@l +/* 80015B90 00012AD0 90 03 00 10 */ stw r0, 0x10(r3) +/* 80015B94 00012AD4 38 00 00 00 */ li r0, 0 +/* 80015B98 00012AD8 98 03 00 0C */ stb r0, 0xc(r3) +/* 80015B9C 00012ADC 48 25 07 61 */ bl cNd_ForcedClear +/* 80015BA0 00012AE0 7F E3 FB 78 */ mr r3, r31 +/* 80015BA4 00012AE4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80015BA8 00012AE8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015BAC 00012AEC 7C 08 03 A6 */ mtlr r0 +/* 80015BB0 00012AF0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015BB4 00012AF4 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015BB8.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015BB8.s new file mode 100644 index 0000000000..6b81e042b3 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015BB8.s @@ -0,0 +1,25 @@ +/* 80015BB8 00012AF8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015BBC 00012AFC 7C 08 02 A6 */ mflr r0 +/* 80015BC0 00012B00 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015BC4 00012B04 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80015BC8 00012B08 93 C1 00 08 */ stw r30, 8(r1) +/* 80015BCC 00012B0C 7C 7E 1B 79 */ or. r30, r3, r3 +/* 80015BD0 00012B10 7C 9F 23 78 */ mr r31, r4 +/* 80015BD4 00012B14 41 82 00 28 */ beq lbl_80015BFC +/* 80015BD8 00012B18 3C 80 80 3A */ lis r4, lbl_803A34D8@ha +/* 80015BDC 00012B1C 38 04 34 D8 */ addi r0, r4, lbl_803A34D8@l +/* 80015BE0 00012B20 90 1E 00 10 */ stw r0, 0x10(r30) +/* 80015BE4 00012B24 38 80 00 00 */ li r4, 0 +/* 80015BE8 00012B28 4B FF FD 15 */ bl mDoDvdThd_command_c_NS_dtor +/* 80015BEC 00012B2C 7F E0 07 35 */ extsh. r0, r31 +/* 80015BF0 00012B30 40 81 00 0C */ ble lbl_80015BFC +/* 80015BF4 00012B34 7F C3 F3 78 */ mr r3, r30 +/* 80015BF8 00012B38 48 2B 91 45 */ bl __dl__FPv +lbl_80015BFC: +/* 80015BFC 00012B3C 7F C3 F3 78 */ mr r3, r30 +/* 80015C00 00012B40 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80015C04 00012B44 83 C1 00 08 */ lwz r30, 8(r1) +/* 80015C08 00012B48 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015C0C 00012B4C 7C 08 03 A6 */ mtlr r0 +/* 80015C10 00012B50 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015C14 00012B54 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015C18.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015C18.s new file mode 100644 index 0000000000..7e2ae6a173 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015C18.s @@ -0,0 +1,23 @@ +/* 80015C18 00012B58 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80015C1C 00012B5C 7C 08 02 A6 */ mflr r0 +/* 80015C20 00012B60 90 01 00 24 */ stw r0, 0x24(r1) +/* 80015C24 00012B64 39 61 00 20 */ addi r11, r1, 0x20 +/* 80015C28 00012B68 48 34 C5 B5 */ bl _savegpr_29 +/* 80015C2C 00012B6C 7C 7D 1B 78 */ mr r29, r3 +/* 80015C30 00012B70 7C 9E 23 78 */ mr r30, r4 +/* 80015C34 00012B74 7C BF 2B 78 */ mr r31, r5 +/* 80015C38 00012B78 4B FF FF 3D */ bl mDoDvdThd_command_c +/* 80015C3C 00012B7C 3C 60 80 3A */ lis r3, lbl_803A34D8@ha +/* 80015C40 00012B80 38 03 34 D8 */ addi r0, r3, lbl_803A34D8@l +/* 80015C44 00012B84 90 1D 00 10 */ stw r0, 0x10(r29) +/* 80015C48 00012B88 93 DD 00 14 */ stw r30, 0x14(r29) +/* 80015C4C 00012B8C 93 FD 00 18 */ stw r31, 0x18(r29) +/* 80015C50 00012B90 38 00 00 00 */ li r0, 0 +/* 80015C54 00012B94 90 1D 00 1C */ stw r0, 0x1c(r29) +/* 80015C58 00012B98 7F A3 EB 78 */ mr r3, r29 +/* 80015C5C 00012B9C 39 61 00 20 */ addi r11, r1, 0x20 +/* 80015C60 00012BA0 48 34 C5 C9 */ bl _restgpr_29 +/* 80015C64 00012BA4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80015C68 00012BA8 7C 08 03 A6 */ mtlr r0 +/* 80015C6C 00012BAC 38 21 00 20 */ addi r1, r1, 0x20 +/* 80015C70 00012BB0 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015C74.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015C74.s new file mode 100644 index 0000000000..7101345615 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015C74.s @@ -0,0 +1,33 @@ +/* 80015C74 00012BB4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80015C78 00012BB8 7C 08 02 A6 */ mflr r0 +/* 80015C7C 00012BBC 90 01 00 24 */ stw r0, 0x24(r1) +/* 80015C80 00012BC0 39 61 00 20 */ addi r11, r1, 0x20 +/* 80015C84 00012BC4 48 34 C5 59 */ bl _savegpr_29 +/* 80015C88 00012BC8 7C 7D 1B 78 */ mr r29, r3 +/* 80015C8C 00012BCC 7C 9E 23 78 */ mr r30, r4 +/* 80015C90 00012BD0 4B FF 91 21 */ bl mDoExt_getCommandHeap +/* 80015C94 00012BD4 7C 64 1B 78 */ mr r4, r3 +/* 80015C98 00012BD8 38 60 00 20 */ li r3, 0x20 +/* 80015C9C 00012BDC 38 A0 FF FC */ li r5, -4 +/* 80015CA0 00012BE0 48 2B 8F F9 */ bl __nw__FUlP7JKRHeapi +/* 80015CA4 00012BE4 7C 7F 1B 79 */ or. r31, r3, r3 +/* 80015CA8 00012BE8 41 82 00 14 */ beq lbl_80015CBC +/* 80015CAC 00012BEC 7F A4 EB 78 */ mr r4, r29 +/* 80015CB0 00012BF0 7F C5 F3 78 */ mr r5, r30 +/* 80015CB4 00012BF4 4B FF FF 65 */ bl mDoDvdThd_callback_c +/* 80015CB8 00012BF8 7C 7F 1B 78 */ mr r31, r3 +lbl_80015CBC: +/* 80015CBC 00012BFC 28 1F 00 00 */ cmplwi r31, 0 +/* 80015CC0 00012C00 41 82 00 14 */ beq lbl_80015CD4 +/* 80015CC4 00012C04 3C 60 80 3E */ lis r3, lbl_803DEC60@ha +/* 80015CC8 00012C08 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l +/* 80015CCC 00012C0C 7F E4 FB 78 */ mr r4, r31 +/* 80015CD0 00012C10 4B FF FD 15 */ bl mDoDvdThd_param_c_NS_addition +lbl_80015CD4: +/* 80015CD4 00012C14 7F E3 FB 78 */ mr r3, r31 +/* 80015CD8 00012C18 39 61 00 20 */ addi r11, r1, 0x20 +/* 80015CDC 00012C1C 48 34 C5 4D */ bl _restgpr_29 +/* 80015CE0 00012C20 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80015CE4 00012C24 7C 08 03 A6 */ mtlr r0 +/* 80015CE8 00012C28 38 21 00 20 */ addi r1, r1, 0x20 +/* 80015CEC 00012C2C 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015CF0.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015CF0.s new file mode 100644 index 0000000000..262adb391c --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015CF0.s @@ -0,0 +1,21 @@ +/* 80015CF0 00012C30 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015CF4 00012C34 7C 08 02 A6 */ mflr r0 +/* 80015CF8 00012C38 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015CFC 00012C3C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80015D00 00012C40 7C 7F 1B 78 */ mr r31, r3 +/* 80015D04 00012C44 80 63 00 18 */ lwz r3, 0x18(r3) +/* 80015D08 00012C48 81 9F 00 14 */ lwz r12, 0x14(r31) +/* 80015D0C 00012C4C 7D 89 03 A6 */ mtctr r12 +/* 80015D10 00012C50 4E 80 04 21 */ bctrl +/* 80015D14 00012C54 90 7F 00 1C */ stw r3, 0x1c(r31) +/* 80015D18 00012C58 38 00 00 01 */ li r0, 1 +/* 80015D1C 00012C5C 98 1F 00 0C */ stb r0, 0xc(r31) +/* 80015D20 00012C60 80 7F 00 1C */ lwz r3, 0x1c(r31) +/* 80015D24 00012C64 30 03 FF FF */ addic r0, r3, -1 +/* 80015D28 00012C68 7C 00 19 10 */ subfe r0, r0, r3 +/* 80015D2C 00012C6C 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 80015D30 00012C70 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80015D34 00012C74 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015D38 00012C78 7C 08 03 A6 */ mtlr r0 +/* 80015D3C 00012C7C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015D40 00012C80 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015D44.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015D44.s new file mode 100644 index 0000000000..e244c7b169 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015D44.s @@ -0,0 +1,25 @@ +/* 80015D44 00012C84 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015D48 00012C88 7C 08 02 A6 */ mflr r0 +/* 80015D4C 00012C8C 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015D50 00012C90 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80015D54 00012C94 93 C1 00 08 */ stw r30, 8(r1) +/* 80015D58 00012C98 7C 7E 1B 79 */ or. r30, r3, r3 +/* 80015D5C 00012C9C 7C 9F 23 78 */ mr r31, r4 +/* 80015D60 00012CA0 41 82 00 28 */ beq lbl_80015D88 +/* 80015D64 00012CA4 3C 80 80 3A */ lis r4, lbl_803A34C8@ha +/* 80015D68 00012CA8 38 04 34 C8 */ addi r0, r4, lbl_803A34C8@l +/* 80015D6C 00012CAC 90 1E 00 10 */ stw r0, 0x10(r30) +/* 80015D70 00012CB0 38 80 00 00 */ li r4, 0 +/* 80015D74 00012CB4 4B FF FB 89 */ bl mDoDvdThd_command_c_NS_dtor +/* 80015D78 00012CB8 7F E0 07 35 */ extsh. r0, r31 +/* 80015D7C 00012CBC 40 81 00 0C */ ble lbl_80015D88 +/* 80015D80 00012CC0 7F C3 F3 78 */ mr r3, r30 +/* 80015D84 00012CC4 48 2B 8F B9 */ bl __dl__FPv +lbl_80015D88: +/* 80015D88 00012CC8 7F C3 F3 78 */ mr r3, r30 +/* 80015D8C 00012CCC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80015D90 00012CD0 83 C1 00 08 */ lwz r30, 8(r1) +/* 80015D94 00012CD4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015D98 00012CD8 7C 08 03 A6 */ mtlr r0 +/* 80015D9C 00012CDC 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015DA0 00012CE0 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015DA4.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015DA4.s new file mode 100644 index 0000000000..c9042ac02d --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015DA4.s @@ -0,0 +1,29 @@ +/* 80015DA4 00012CE4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80015DA8 00012CE8 7C 08 02 A6 */ mflr r0 +/* 80015DAC 00012CEC 90 01 00 14 */ stw r0, 0x14(r1) +/* 80015DB0 00012CF0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80015DB4 00012CF4 93 C1 00 08 */ stw r30, 8(r1) +/* 80015DB8 00012CF8 7C 7E 1B 78 */ mr r30, r3 +/* 80015DBC 00012CFC 7C 9F 23 78 */ mr r31, r4 +/* 80015DC0 00012D00 4B FF FD B5 */ bl mDoDvdThd_command_c +/* 80015DC4 00012D04 3C 60 80 3A */ lis r3, lbl_803A34C8@ha +/* 80015DC8 00012D08 38 03 34 C8 */ addi r0, r3, lbl_803A34C8@l +/* 80015DCC 00012D0C 90 1E 00 10 */ stw r0, 0x10(r30) +/* 80015DD0 00012D10 9B FE 00 14 */ stb r31, 0x14(r30) +/* 80015DD4 00012D14 38 00 FF FF */ li r0, -1 +/* 80015DD8 00012D18 90 1E 00 18 */ stw r0, 0x18(r30) +/* 80015DDC 00012D1C 38 00 00 00 */ li r0, 0 +/* 80015DE0 00012D20 90 1E 00 1C */ stw r0, 0x1c(r30) +/* 80015DE4 00012D24 90 1E 00 20 */ stw r0, 0x20(r30) +/* 80015DE8 00012D28 57 E0 06 3F */ clrlwi. r0, r31, 0x18 +/* 80015DEC 00012D2C 40 82 00 0C */ bne lbl_80015DF8 +/* 80015DF0 00012D30 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13) +/* 80015DF4 00012D34 98 1E 00 14 */ stb r0, 0x14(r30) +lbl_80015DF8: +/* 80015DF8 00012D38 7F C3 F3 78 */ mr r3, r30 +/* 80015DFC 00012D3C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80015E00 00012D40 83 C1 00 08 */ lwz r30, 8(r1) +/* 80015E04 00012D44 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80015E08 00012D48 7C 08 03 A6 */ mtlr r0 +/* 80015E0C 00012D4C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80015E10 00012D50 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015E14.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015E14.s new file mode 100644 index 0000000000..99ca6cca9c --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015E14.s @@ -0,0 +1,54 @@ +/* 80015E14 00012D54 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80015E18 00012D58 7C 08 02 A6 */ mflr r0 +/* 80015E1C 00012D5C 90 01 00 24 */ stw r0, 0x24(r1) +/* 80015E20 00012D60 39 61 00 20 */ addi r11, r1, 0x20 +/* 80015E24 00012D64 48 34 C3 B5 */ bl _savegpr_28 +/* 80015E28 00012D68 7C 7C 1B 78 */ mr r28, r3 +/* 80015E2C 00012D6C 7C 9D 23 78 */ mr r29, r4 +/* 80015E30 00012D70 7C BE 2B 78 */ mr r30, r5 +/* 80015E34 00012D74 4B FF 8F 7D */ bl mDoExt_getCommandHeap +/* 80015E38 00012D78 7C 64 1B 78 */ mr r4, r3 +/* 80015E3C 00012D7C 38 60 00 24 */ li r3, 0x24 +/* 80015E40 00012D80 38 A0 FF FC */ li r5, -4 +/* 80015E44 00012D84 48 2B 8E 55 */ bl __nw__FUlP7JKRHeapi +/* 80015E48 00012D88 7C 7F 1B 79 */ or. r31, r3, r3 +/* 80015E4C 00012D8C 41 82 00 10 */ beq lbl_80015E5C +/* 80015E50 00012D90 7F A4 EB 78 */ mr r4, r29 +/* 80015E54 00012D94 4B FF FF 51 */ bl mDoDvdThd_mountArchive_c +/* 80015E58 00012D98 7C 7F 1B 78 */ mr r31, r3 +lbl_80015E5C: +/* 80015E5C 00012D9C 28 1F 00 00 */ cmplwi r31, 0 +/* 80015E60 00012DA0 41 82 00 60 */ beq lbl_80015EC0 +/* 80015E64 00012DA4 7F 83 E3 78 */ mr r3, r28 +/* 80015E68 00012DA8 4B FF FA 75 */ bl my_DVDConvertPathToEntrynum +/* 80015E6C 00012DAC 90 7F 00 18 */ stw r3, 0x18(r31) +/* 80015E70 00012DB0 80 1F 00 18 */ lwz r0, 0x18(r31) +/* 80015E74 00012DB4 2C 00 FF FF */ cmpwi r0, -1 +/* 80015E78 00012DB8 40 82 00 34 */ bne lbl_80015EAC +/* 80015E7C 00012DBC 38 00 00 01 */ li r0, 1 +/* 80015E80 00012DC0 98 1F 00 0C */ stb r0, 0xc(r31) +/* 80015E84 00012DC4 28 1F 00 00 */ cmplwi r31, 0 +/* 80015E88 00012DC8 41 82 00 1C */ beq lbl_80015EA4 +/* 80015E8C 00012DCC 7F E3 FB 78 */ mr r3, r31 +/* 80015E90 00012DD0 38 80 00 01 */ li r4, 1 +/* 80015E94 00012DD4 81 9F 00 10 */ lwz r12, 0x10(r31) +/* 80015E98 00012DD8 81 8C 00 08 */ lwz r12, 8(r12) +/* 80015E9C 00012DDC 7D 89 03 A6 */ mtctr r12 +/* 80015EA0 00012DE0 4E 80 04 21 */ bctrl +lbl_80015EA4: +/* 80015EA4 00012DE4 3B E0 00 00 */ li r31, 0 +/* 80015EA8 00012DE8 48 00 00 18 */ b lbl_80015EC0 +lbl_80015EAC: +/* 80015EAC 00012DEC 93 DF 00 20 */ stw r30, 0x20(r31) +/* 80015EB0 00012DF0 3C 60 80 3E */ lis r3, lbl_803DEC60@ha +/* 80015EB4 00012DF4 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l +/* 80015EB8 00012DF8 7F E4 FB 78 */ mr r4, r31 +/* 80015EBC 00012DFC 4B FF FB 29 */ bl mDoDvdThd_param_c_NS_addition +lbl_80015EC0: +/* 80015EC0 00012E00 7F E3 FB 78 */ mr r3, r31 +/* 80015EC4 00012E04 39 61 00 20 */ addi r11, r1, 0x20 +/* 80015EC8 00012E08 48 34 C3 5D */ bl _restgpr_28 +/* 80015ECC 00012E0C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80015ED0 00012E10 7C 08 03 A6 */ mtlr r0 +/* 80015ED4 00012E14 38 21 00 20 */ addi r1, r1, 0x20 +/* 80015ED8 00012E18 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80015EDC.s b/include/m_Do/m_Do_dvd_thread/asm/func_80015EDC.s new file mode 100644 index 0000000000..073a2faa9e --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80015EDC.s @@ -0,0 +1,157 @@ +/* 80015EDC 00012E1C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80015EE0 00012E20 7C 08 02 A6 */ mflr r0 +/* 80015EE4 00012E24 90 01 00 34 */ stw r0, 0x34(r1) +/* 80015EE8 00012E28 39 61 00 30 */ addi r11, r1, 0x30 +/* 80015EEC 00012E2C 48 34 C2 E1 */ bl _savegpr_25 +/* 80015EF0 00012E30 7C 7A 1B 78 */ mr r26, r3 +/* 80015EF4 00012E34 3B C0 00 00 */ li r30, 0 +/* 80015EF8 00012E38 3B A0 00 00 */ li r29, 0 +/* 80015EFC 00012E3C 3B 80 00 00 */ li r28, 0 +/* 80015F00 00012E40 3B 60 00 00 */ li r27, 0 +/* 80015F04 00012E44 80 63 00 20 */ lwz r3, 0x20(r3) +/* 80015F08 00012E48 28 03 00 00 */ cmplwi r3, 0 +/* 80015F0C 00012E4C 41 82 00 08 */ beq lbl_80015F14 +/* 80015F10 00012E50 48 00 00 08 */ b lbl_80015F18 +lbl_80015F14: +/* 80015F14 00012E54 4B FF 8E D9 */ bl mDoExt_getArchiveHeap +lbl_80015F18: +/* 80015F18 00012E58 7C 79 1B 78 */ mr r25, r3 +/* 80015F1C 00012E5C 3C 60 80 37 */ lis r3, lbl_803741A8@ha +/* 80015F20 00012E60 3B E3 41 A8 */ addi r31, r3, lbl_803741A8@l +lbl_80015F24: +/* 80015F24 00012E64 4B FF 8E D1 */ bl mDoExt_getArchiveHeapPtr +/* 80015F28 00012E68 7C 19 18 40 */ cmplw r25, r3 +/* 80015F2C 00012E6C 40 82 00 0C */ bne lbl_80015F38 +/* 80015F30 00012E70 3B 80 00 01 */ li r28, 1 +/* 80015F34 00012E74 48 00 00 3C */ b lbl_80015F70 +lbl_80015F38: +/* 80015F38 00012E78 4B FF 8E 49 */ bl mDoExt_getZeldaHeap +/* 80015F3C 00012E7C 7C 19 18 40 */ cmplw r25, r3 +/* 80015F40 00012E80 40 82 00 0C */ bne lbl_80015F4C +/* 80015F44 00012E84 3B C0 00 01 */ li r30, 1 +/* 80015F48 00012E88 48 00 00 28 */ b lbl_80015F70 +lbl_80015F4C: +/* 80015F4C 00012E8C 4B FF 8E 05 */ bl mDoExt_getGameHeap +/* 80015F50 00012E90 7C 19 18 40 */ cmplw r25, r3 +/* 80015F54 00012E94 40 82 00 0C */ bne lbl_80015F60 +/* 80015F58 00012E98 3B A0 00 01 */ li r29, 1 +/* 80015F5C 00012E9C 48 00 00 14 */ b lbl_80015F70 +lbl_80015F60: +/* 80015F60 00012EA0 4B FF 8E D1 */ bl mDoExt_getJ2dHeap +/* 80015F64 00012EA4 7C 19 18 40 */ cmplw r25, r3 +/* 80015F68 00012EA8 40 82 00 08 */ bne lbl_80015F70 +/* 80015F6C 00012EAC 3B 60 00 01 */ li r27, 1 +lbl_80015F70: +/* 80015F70 00012EB0 88 1A 00 14 */ lbz r0, 0x14(r26) +/* 80015F74 00012EB4 28 00 00 00 */ cmplwi r0, 0 +/* 80015F78 00012EB8 40 82 00 34 */ bne lbl_80015FAC +/* 80015F7C 00012EBC 38 60 00 70 */ li r3, 0x70 +/* 80015F80 00012EC0 7F 24 CB 78 */ mr r4, r25 +/* 80015F84 00012EC4 38 A0 00 00 */ li r5, 0 +/* 80015F88 00012EC8 48 2B 8D 11 */ bl __nw__FUlP7JKRHeapi +/* 80015F8C 00012ECC 7C 60 1B 79 */ or. r0, r3, r3 +/* 80015F90 00012ED0 41 82 00 14 */ beq lbl_80015FA4 +/* 80015F94 00012ED4 80 9A 00 18 */ lwz r4, 0x18(r26) +/* 80015F98 00012ED8 38 A0 00 01 */ li r5, 1 +/* 80015F9C 00012EDC 48 2C 0A 1D */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection +/* 80015FA0 00012EE0 7C 60 1B 78 */ mr r0, r3 +lbl_80015FA4: +/* 80015FA4 00012EE4 7C 19 03 78 */ mr r25, r0 +/* 80015FA8 00012EE8 48 00 00 30 */ b lbl_80015FD8 +lbl_80015FAC: +/* 80015FAC 00012EEC 38 60 00 70 */ li r3, 0x70 +/* 80015FB0 00012EF0 7F 24 CB 78 */ mr r4, r25 +/* 80015FB4 00012EF4 38 A0 FF FC */ li r5, -4 +/* 80015FB8 00012EF8 48 2B 8C E1 */ bl __nw__FUlP7JKRHeapi +/* 80015FBC 00012EFC 7C 60 1B 79 */ or. r0, r3, r3 +/* 80015FC0 00012F00 41 82 00 14 */ beq lbl_80015FD4 +/* 80015FC4 00012F04 80 9A 00 18 */ lwz r4, 0x18(r26) +/* 80015FC8 00012F08 38 A0 00 02 */ li r5, 2 +/* 80015FCC 00012F0C 48 2C 09 ED */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection +/* 80015FD0 00012F10 7C 60 1B 78 */ mr r0, r3 +lbl_80015FD4: +/* 80015FD4 00012F14 7C 19 03 78 */ mr r25, r0 +lbl_80015FD8: +/* 80015FD8 00012F18 28 19 00 00 */ cmplwi r25, 0 +/* 80015FDC 00012F1C 41 82 00 18 */ beq lbl_80015FF4 +/* 80015FE0 00012F20 88 19 00 30 */ lbz r0, 0x30(r25) +/* 80015FE4 00012F24 28 00 00 00 */ cmplwi r0, 0 +/* 80015FE8 00012F28 41 82 00 0C */ beq lbl_80015FF4 +/* 80015FEC 00012F2C 93 3A 00 1C */ stw r25, 0x1c(r26) +/* 80015FF0 00012F30 48 00 00 E8 */ b lbl_800160D8 +lbl_80015FF4: +/* 80015FF4 00012F34 38 7F 00 3E */ addi r3, r31, 0x3e +/* 80015FF8 00012F38 4C C6 31 82 */ crclr 6 +/* 80015FFC 00012F3C 4B FF 0C 11 */ bl OSReport_Error +/* 80016000 00012F40 28 19 00 00 */ cmplwi r25, 0 +/* 80016004 00012F44 41 82 00 20 */ beq lbl_80016024 +/* 80016008 00012F48 41 82 00 1C */ beq lbl_80016024 +/* 8001600C 00012F4C 7F 23 CB 78 */ mr r3, r25 +/* 80016010 00012F50 38 80 00 01 */ li r4, 1 +/* 80016014 00012F54 81 99 00 00 */ lwz r12, 0(r25) +/* 80016018 00012F58 81 8C 00 08 */ lwz r12, 8(r12) +/* 8001601C 00012F5C 7D 89 03 A6 */ mtctr r12 +/* 80016020 00012F60 4E 80 04 21 */ bctrl +lbl_80016024: +/* 80016024 00012F64 57 C0 06 3F */ clrlwi. r0, r30, 0x18 +/* 80016028 00012F68 40 82 00 24 */ bne lbl_8001604C +/* 8001602C 00012F6C 3C 60 80 37 */ lis r3, lbl_803741A8@ha +/* 80016030 00012F70 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l +/* 80016034 00012F74 38 63 00 6E */ addi r3, r3, 0x6e +/* 80016038 00012F78 4C C6 31 82 */ crclr 6 +/* 8001603C 00012F7C 4B FF 0B D1 */ bl OSReport_Error +/* 80016040 00012F80 4B FF 8D 41 */ bl mDoExt_getZeldaHeap +/* 80016044 00012F84 7C 79 1B 78 */ mr r25, r3 +/* 80016048 00012F88 4B FF FE DC */ b lbl_80015F24 +lbl_8001604C: +/* 8001604C 00012F8C 57 80 06 3F */ clrlwi. r0, r28, 0x18 +/* 80016050 00012F90 40 82 00 24 */ bne lbl_80016074 +/* 80016054 00012F94 3C 60 80 37 */ lis r3, lbl_803741A8@ha +/* 80016058 00012F98 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l +/* 8001605C 00012F9C 38 63 00 AE */ addi r3, r3, 0xae +/* 80016060 00012FA0 4C C6 31 82 */ crclr 6 +/* 80016064 00012FA4 4B FF 0B A9 */ bl OSReport_Error +/* 80016068 00012FA8 4B FF 8D 8D */ bl mDoExt_getArchiveHeapPtr +/* 8001606C 00012FAC 7C 79 1B 78 */ mr r25, r3 +/* 80016070 00012FB0 4B FF FE B4 */ b lbl_80015F24 +lbl_80016074: +/* 80016074 00012FB4 57 A0 06 3F */ clrlwi. r0, r29, 0x18 +/* 80016078 00012FB8 40 82 00 24 */ bne lbl_8001609C +/* 8001607C 00012FBC 3C 60 80 37 */ lis r3, lbl_803741A8@ha +/* 80016080 00012FC0 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l +/* 80016084 00012FC4 38 63 00 F2 */ addi r3, r3, 0xf2 +/* 80016088 00012FC8 4C C6 31 82 */ crclr 6 +/* 8001608C 00012FCC 4B FF 0B 81 */ bl OSReport_Error +/* 80016090 00012FD0 4B FF 8C C1 */ bl mDoExt_getGameHeap +/* 80016094 00012FD4 7C 79 1B 78 */ mr r25, r3 +/* 80016098 00012FD8 4B FF FE 8C */ b lbl_80015F24 +lbl_8001609C: +/* 8001609C 00012FDC 57 60 06 3F */ clrlwi. r0, r27, 0x18 +/* 800160A0 00012FE0 40 82 00 24 */ bne lbl_800160C4 +/* 800160A4 00012FE4 3C 60 80 37 */ lis r3, lbl_803741A8@ha +/* 800160A8 00012FE8 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l +/* 800160AC 00012FEC 38 63 01 32 */ addi r3, r3, 0x132 +/* 800160B0 00012FF0 4C C6 31 82 */ crclr 6 +/* 800160B4 00012FF4 4B FF 0B 59 */ bl OSReport_Error +/* 800160B8 00012FF8 4B FF 8D 79 */ bl mDoExt_getJ2dHeap +/* 800160BC 00012FFC 7C 79 1B 78 */ mr r25, r3 +/* 800160C0 00013000 4B FF FE 64 */ b lbl_80015F24 +lbl_800160C4: +/* 800160C4 00013004 3C 60 80 37 */ lis r3, lbl_803741A8@ha +/* 800160C8 00013008 38 63 41 A8 */ addi r3, r3, lbl_803741A8@l +/* 800160CC 0001300C 38 63 01 6F */ addi r3, r3, 0x16f +/* 800160D0 00013010 4C C6 31 82 */ crclr 6 +/* 800160D4 00013014 4B FF 0A 69 */ bl OSReport_FatalError +lbl_800160D8: +/* 800160D8 00013018 38 00 00 01 */ li r0, 1 +/* 800160DC 0001301C 98 1A 00 0C */ stb r0, 0xc(r26) +/* 800160E0 00013020 80 7A 00 1C */ lwz r3, 0x1c(r26) +/* 800160E4 00013024 30 03 FF FF */ addic r0, r3, -1 +/* 800160E8 00013028 7C 00 19 10 */ subfe r0, r0, r3 +/* 800160EC 0001302C 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 800160F0 00013030 39 61 00 30 */ addi r11, r1, 0x30 +/* 800160F4 00013034 48 34 C1 25 */ bl _restgpr_25 +/* 800160F8 00013038 80 01 00 34 */ lwz r0, 0x34(r1) +/* 800160FC 0001303C 7C 08 03 A6 */ mtlr r0 +/* 80016100 00013040 38 21 00 30 */ addi r1, r1, 0x30 +/* 80016104 00013044 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80016108.s b/include/m_Do/m_Do_dvd_thread/asm/func_80016108.s new file mode 100644 index 0000000000..cc691a03d6 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80016108.s @@ -0,0 +1,25 @@ +/* 80016108 00013048 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8001610C 0001304C 7C 08 02 A6 */ mflr r0 +/* 80016110 00013050 90 01 00 14 */ stw r0, 0x14(r1) +/* 80016114 00013054 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80016118 00013058 93 C1 00 08 */ stw r30, 8(r1) +/* 8001611C 0001305C 7C 7E 1B 79 */ or. r30, r3, r3 +/* 80016120 00013060 7C 9F 23 78 */ mr r31, r4 +/* 80016124 00013064 41 82 00 28 */ beq lbl_8001614C +/* 80016128 00013068 3C 80 80 3A */ lis r4, lbl_803A34B8@ha +/* 8001612C 0001306C 38 04 34 B8 */ addi r0, r4, lbl_803A34B8@l +/* 80016130 00013070 90 1E 00 10 */ stw r0, 0x10(r30) +/* 80016134 00013074 38 80 00 00 */ li r4, 0 +/* 80016138 00013078 4B FF F7 C5 */ bl mDoDvdThd_command_c_NS_dtor +/* 8001613C 0001307C 7F E0 07 35 */ extsh. r0, r31 +/* 80016140 00013080 40 81 00 0C */ ble lbl_8001614C +/* 80016144 00013084 7F C3 F3 78 */ mr r3, r30 +/* 80016148 00013088 48 2B 8B F5 */ bl __dl__FPv +lbl_8001614C: +/* 8001614C 0001308C 7F C3 F3 78 */ mr r3, r30 +/* 80016150 00013090 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80016154 00013094 83 C1 00 08 */ lwz r30, 8(r1) +/* 80016158 00013098 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8001615C 0001309C 7C 08 03 A6 */ mtlr r0 +/* 80016160 000130A0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016164 000130A4 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80016168.s b/include/m_Do/m_Do_dvd_thread/asm/func_80016168.s new file mode 100644 index 0000000000..9a920c0a24 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80016168.s @@ -0,0 +1,31 @@ +/* 80016168 000130A8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8001616C 000130AC 7C 08 02 A6 */ mflr r0 +/* 80016170 000130B0 90 01 00 24 */ stw r0, 0x24(r1) +/* 80016174 000130B4 39 61 00 20 */ addi r11, r1, 0x20 +/* 80016178 000130B8 48 34 C0 65 */ bl _savegpr_29 +/* 8001617C 000130BC 7C 7D 1B 78 */ mr r29, r3 +/* 80016180 000130C0 7C 9E 23 78 */ mr r30, r4 +/* 80016184 000130C4 7C BF 2B 78 */ mr r31, r5 +/* 80016188 000130C8 4B FF F9 ED */ bl mDoDvdThd_command_c +/* 8001618C 000130CC 3C 60 80 3A */ lis r3, lbl_803A34B8@ha +/* 80016190 000130D0 38 03 34 B8 */ addi r0, r3, lbl_803A34B8@l +/* 80016194 000130D4 90 1D 00 10 */ stw r0, 0x10(r29) +/* 80016198 000130D8 9B DD 00 14 */ stb r30, 0x14(r29) +/* 8001619C 000130DC 38 00 FF FF */ li r0, -1 +/* 800161A0 000130E0 90 1D 00 18 */ stw r0, 0x18(r29) +/* 800161A4 000130E4 38 00 00 00 */ li r0, 0 +/* 800161A8 000130E8 90 1D 00 1C */ stw r0, 0x1c(r29) +/* 800161AC 000130EC 93 FD 00 20 */ stw r31, 0x20(r29) +/* 800161B0 000130F0 90 1D 00 24 */ stw r0, 0x24(r29) +/* 800161B4 000130F4 57 C0 06 3F */ clrlwi. r0, r30, 0x18 +/* 800161B8 000130F8 40 82 00 0C */ bne lbl_800161C4 +/* 800161BC 000130FC 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13) +/* 800161C0 00013100 98 1D 00 14 */ stb r0, 0x14(r29) +lbl_800161C4: +/* 800161C4 00013104 7F A3 EB 78 */ mr r3, r29 +/* 800161C8 00013108 39 61 00 20 */ addi r11, r1, 0x20 +/* 800161CC 0001310C 48 34 C0 5D */ bl _restgpr_29 +/* 800161D0 00013110 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800161D4 00013114 7C 08 03 A6 */ mtlr r0 +/* 800161D8 00013118 38 21 00 20 */ addi r1, r1, 0x20 +/* 800161DC 0001311C 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800161E0.s b/include/m_Do/m_Do_dvd_thread/asm/func_800161E0.s new file mode 100644 index 0000000000..969b4b5738 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800161E0.s @@ -0,0 +1,56 @@ +/* 800161E0 00013120 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800161E4 00013124 7C 08 02 A6 */ mflr r0 +/* 800161E8 00013128 90 01 00 24 */ stw r0, 0x24(r1) +/* 800161EC 0001312C 39 61 00 20 */ addi r11, r1, 0x20 +/* 800161F0 00013130 48 34 BF E5 */ bl _savegpr_27 +/* 800161F4 00013134 7C 7B 1B 78 */ mr r27, r3 +/* 800161F8 00013138 7C 9C 23 78 */ mr r28, r4 +/* 800161FC 0001313C 7C BD 2B 78 */ mr r29, r5 +/* 80016200 00013140 7C DE 33 78 */ mr r30, r6 +/* 80016204 00013144 4B FF 8B AD */ bl mDoExt_getCommandHeap +/* 80016208 00013148 7C 64 1B 78 */ mr r4, r3 +/* 8001620C 0001314C 38 60 00 28 */ li r3, 0x28 +/* 80016210 00013150 38 A0 FF FC */ li r5, -4 +/* 80016214 00013154 48 2B 8A 85 */ bl __nw__FUlP7JKRHeapi +/* 80016218 00013158 7C 7F 1B 79 */ or. r31, r3, r3 +/* 8001621C 0001315C 41 82 00 14 */ beq lbl_80016230 +/* 80016220 00013160 7F 84 E3 78 */ mr r4, r28 +/* 80016224 00013164 7F A5 EB 78 */ mr r5, r29 +/* 80016228 00013168 4B FF FF 41 */ bl mDoDvdThd_mountXArchive_c +/* 8001622C 0001316C 7C 7F 1B 78 */ mr r31, r3 +lbl_80016230: +/* 80016230 00013170 28 1F 00 00 */ cmplwi r31, 0 +/* 80016234 00013174 41 82 00 60 */ beq lbl_80016294 +/* 80016238 00013178 7F 63 DB 78 */ mr r3, r27 +/* 8001623C 0001317C 4B FF F6 A1 */ bl my_DVDConvertPathToEntrynum +/* 80016240 00013180 90 7F 00 18 */ stw r3, 0x18(r31) +/* 80016244 00013184 80 1F 00 18 */ lwz r0, 0x18(r31) +/* 80016248 00013188 2C 00 FF FF */ cmpwi r0, -1 +/* 8001624C 0001318C 40 82 00 34 */ bne lbl_80016280 +/* 80016250 00013190 38 00 00 01 */ li r0, 1 +/* 80016254 00013194 98 1F 00 0C */ stb r0, 0xc(r31) +/* 80016258 00013198 28 1F 00 00 */ cmplwi r31, 0 +/* 8001625C 0001319C 41 82 00 1C */ beq lbl_80016278 +/* 80016260 000131A0 7F E3 FB 78 */ mr r3, r31 +/* 80016264 000131A4 38 80 00 01 */ li r4, 1 +/* 80016268 000131A8 81 9F 00 10 */ lwz r12, 0x10(r31) +/* 8001626C 000131AC 81 8C 00 08 */ lwz r12, 8(r12) +/* 80016270 000131B0 7D 89 03 A6 */ mtctr r12 +/* 80016274 000131B4 4E 80 04 21 */ bctrl +lbl_80016278: +/* 80016278 000131B8 3B E0 00 00 */ li r31, 0 +/* 8001627C 000131BC 48 00 00 18 */ b lbl_80016294 +lbl_80016280: +/* 80016280 000131C0 93 DF 00 24 */ stw r30, 0x24(r31) +/* 80016284 000131C4 3C 60 80 3E */ lis r3, lbl_803DEC60@ha +/* 80016288 000131C8 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l +/* 8001628C 000131CC 7F E4 FB 78 */ mr r4, r31 +/* 80016290 000131D0 4B FF F7 55 */ bl mDoDvdThd_param_c_NS_addition +lbl_80016294: +/* 80016294 000131D4 7F E3 FB 78 */ mr r3, r31 +/* 80016298 000131D8 39 61 00 20 */ addi r11, r1, 0x20 +/* 8001629C 000131DC 48 34 BF 85 */ bl _restgpr_27 +/* 800162A0 000131E0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800162A4 000131E4 7C 08 03 A6 */ mtlr r0 +/* 800162A8 000131E8 38 21 00 20 */ addi r1, r1, 0x20 +/* 800162AC 000131EC 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800162B0.s b/include/m_Do/m_Do_dvd_thread/asm/func_800162B0.s new file mode 100644 index 0000000000..65ebe54f08 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800162B0.s @@ -0,0 +1,37 @@ +/* 800162B0 000131F0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800162B4 000131F4 7C 08 02 A6 */ mflr r0 +/* 800162B8 000131F8 90 01 00 14 */ stw r0, 0x14(r1) +/* 800162BC 000131FC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800162C0 00013200 93 C1 00 08 */ stw r30, 8(r1) +/* 800162C4 00013204 7C 7E 1B 78 */ mr r30, r3 +/* 800162C8 00013208 88 03 00 14 */ lbz r0, 0x14(r3) +/* 800162CC 0001320C 28 00 00 00 */ cmplwi r0, 0 +/* 800162D0 00013210 3B E0 00 02 */ li r31, 2 +/* 800162D4 00013214 40 82 00 08 */ bne lbl_800162DC +/* 800162D8 00013218 3B E0 00 01 */ li r31, 1 +lbl_800162DC: +/* 800162DC 0001321C 80 BE 00 24 */ lwz r5, 0x24(r30) +/* 800162E0 00013220 28 05 00 00 */ cmplwi r5, 0 +/* 800162E4 00013224 41 82 00 08 */ beq lbl_800162EC +/* 800162E8 00013228 48 00 00 0C */ b lbl_800162F4 +lbl_800162EC: +/* 800162EC 0001322C 4B FF 8B 01 */ bl mDoExt_getArchiveHeap +/* 800162F0 00013230 7C 65 1B 78 */ mr r5, r3 +lbl_800162F4: +/* 800162F4 00013234 80 7E 00 18 */ lwz r3, 0x18(r30) +/* 800162F8 00013238 80 9E 00 20 */ lwz r4, 0x20(r30) +/* 800162FC 0001323C 7F E6 FB 78 */ mr r6, r31 +/* 80016300 00013240 48 2B F5 C9 */ bl mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection +/* 80016304 00013244 90 7E 00 1C */ stw r3, 0x1c(r30) +/* 80016308 00013248 80 7E 00 1C */ lwz r3, 0x1c(r30) +/* 8001630C 0001324C 30 03 FF FF */ addic r0, r3, -1 +/* 80016310 00013250 7C 00 19 10 */ subfe r0, r0, r3 +/* 80016314 00013254 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 80016318 00013258 38 00 00 01 */ li r0, 1 +/* 8001631C 0001325C 98 1E 00 0C */ stb r0, 0xc(r30) +/* 80016320 00013260 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80016324 00013264 83 C1 00 08 */ lwz r30, 8(r1) +/* 80016328 00013268 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8001632C 0001326C 7C 08 03 A6 */ mtlr r0 +/* 80016330 00013270 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016334 00013274 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80016338.s b/include/m_Do/m_Do_dvd_thread/asm/func_80016338.s new file mode 100644 index 0000000000..dbc219c2a9 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80016338.s @@ -0,0 +1,24 @@ +/* 80016338 00013278 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8001633C 0001327C 7C 08 02 A6 */ mflr r0 +/* 80016340 00013280 90 01 00 14 */ stw r0, 0x14(r1) +/* 80016344 00013284 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80016348 00013288 93 C1 00 08 */ stw r30, 8(r1) +/* 8001634C 0001328C 7C 7E 1B 78 */ mr r30, r3 +/* 80016350 00013290 7C 9F 23 78 */ mr r31, r4 +/* 80016354 00013294 4B FF F8 21 */ bl mDoDvdThd_command_c +/* 80016358 00013298 3C 60 80 3A */ lis r3, lbl_803A34A8@ha +/* 8001635C 0001329C 38 03 34 A8 */ addi r0, r3, lbl_803A34A8@l +/* 80016360 000132A0 90 1E 00 10 */ stw r0, 0x10(r30) +/* 80016364 000132A4 9B FE 00 14 */ stb r31, 0x14(r30) +/* 80016368 000132A8 57 E0 06 3F */ clrlwi. r0, r31, 0x18 +/* 8001636C 000132AC 40 82 00 0C */ bne lbl_80016378 +/* 80016370 000132B0 88 0D 87 01 */ lbz r0, lbl_80450C81-_SDA_BASE_(r13) +/* 80016374 000132B4 98 1E 00 14 */ stb r0, 0x14(r30) +lbl_80016378: +/* 80016378 000132B8 7F C3 F3 78 */ mr r3, r30 +/* 8001637C 000132BC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80016380 000132C0 83 C1 00 08 */ lwz r30, 8(r1) +/* 80016384 000132C4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80016388 000132C8 7C 08 03 A6 */ mtlr r0 +/* 8001638C 000132CC 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016390 000132D0 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80016394.s b/include/m_Do/m_Do_dvd_thread/asm/func_80016394.s new file mode 100644 index 0000000000..d0c3bbdf20 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80016394.s @@ -0,0 +1,54 @@ +/* 80016394 000132D4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80016398 000132D8 7C 08 02 A6 */ mflr r0 +/* 8001639C 000132DC 90 01 00 24 */ stw r0, 0x24(r1) +/* 800163A0 000132E0 39 61 00 20 */ addi r11, r1, 0x20 +/* 800163A4 000132E4 48 34 BE 35 */ bl _savegpr_28 +/* 800163A8 000132E8 7C 7C 1B 78 */ mr r28, r3 +/* 800163AC 000132EC 7C 9D 23 78 */ mr r29, r4 +/* 800163B0 000132F0 7C BE 2B 78 */ mr r30, r5 +/* 800163B4 000132F4 4B FF 89 FD */ bl mDoExt_getCommandHeap +/* 800163B8 000132F8 7C 64 1B 78 */ mr r4, r3 +/* 800163BC 000132FC 38 60 00 28 */ li r3, 0x28 +/* 800163C0 00013300 38 A0 FF FC */ li r5, -4 +/* 800163C4 00013304 48 2B 88 D5 */ bl __nw__FUlP7JKRHeapi +/* 800163C8 00013308 7C 7F 1B 79 */ or. r31, r3, r3 +/* 800163CC 0001330C 41 82 00 10 */ beq lbl_800163DC +/* 800163D0 00013310 7F A4 EB 78 */ mr r4, r29 +/* 800163D4 00013314 4B FF FF 65 */ bl mDoDvdThd_toMainRam_c +/* 800163D8 00013318 7C 7F 1B 78 */ mr r31, r3 +lbl_800163DC: +/* 800163DC 0001331C 28 1F 00 00 */ cmplwi r31, 0 +/* 800163E0 00013320 41 82 00 60 */ beq lbl_80016440 +/* 800163E4 00013324 7F 83 E3 78 */ mr r3, r28 +/* 800163E8 00013328 4B FF F4 F5 */ bl my_DVDConvertPathToEntrynum +/* 800163EC 0001332C 90 7F 00 18 */ stw r3, 0x18(r31) +/* 800163F0 00013330 80 1F 00 18 */ lwz r0, 0x18(r31) +/* 800163F4 00013334 2C 00 FF FF */ cmpwi r0, -1 +/* 800163F8 00013338 40 82 00 34 */ bne lbl_8001642C +/* 800163FC 0001333C 38 00 00 01 */ li r0, 1 +/* 80016400 00013340 98 1F 00 0C */ stb r0, 0xc(r31) +/* 80016404 00013344 28 1F 00 00 */ cmplwi r31, 0 +/* 80016408 00013348 41 82 00 1C */ beq lbl_80016424 +/* 8001640C 0001334C 7F E3 FB 78 */ mr r3, r31 +/* 80016410 00013350 38 80 00 01 */ li r4, 1 +/* 80016414 00013354 81 9F 00 10 */ lwz r12, 0x10(r31) +/* 80016418 00013358 81 8C 00 08 */ lwz r12, 8(r12) +/* 8001641C 0001335C 7D 89 03 A6 */ mtctr r12 +/* 80016420 00013360 4E 80 04 21 */ bctrl +lbl_80016424: +/* 80016424 00013364 3B E0 00 00 */ li r31, 0 +/* 80016428 00013368 48 00 00 18 */ b lbl_80016440 +lbl_8001642C: +/* 8001642C 0001336C 93 DF 00 24 */ stw r30, 0x24(r31) +/* 80016430 00013370 3C 60 80 3E */ lis r3, lbl_803DEC60@ha +/* 80016434 00013374 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l +/* 80016438 00013378 7F E4 FB 78 */ mr r4, r31 +/* 8001643C 0001337C 4B FF F5 A9 */ bl mDoDvdThd_param_c_NS_addition +lbl_80016440: +/* 80016440 00013380 7F E3 FB 78 */ mr r3, r31 +/* 80016444 00013384 39 61 00 20 */ addi r11, r1, 0x20 +/* 80016448 00013388 48 34 BD DD */ bl _restgpr_28 +/* 8001644C 0001338C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80016450 00013390 7C 08 03 A6 */ mtlr r0 +/* 80016454 00013394 38 21 00 20 */ addi r1, r1, 0x20 +/* 80016458 00013398 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_8001645C.s b/include/m_Do/m_Do_dvd_thread/asm/func_8001645C.s new file mode 100644 index 0000000000..bf282646aa --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_8001645C.s @@ -0,0 +1,25 @@ +/* 8001645C 0001339C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80016460 000133A0 7C 08 02 A6 */ mflr r0 +/* 80016464 000133A4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80016468 000133A8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8001646C 000133AC 93 C1 00 08 */ stw r30, 8(r1) +/* 80016470 000133B0 7C 7E 1B 79 */ or. r30, r3, r3 +/* 80016474 000133B4 7C 9F 23 78 */ mr r31, r4 +/* 80016478 000133B8 41 82 00 28 */ beq lbl_800164A0 +/* 8001647C 000133BC 3C 80 80 3A */ lis r4, lbl_803A34A8@ha +/* 80016480 000133C0 38 04 34 A8 */ addi r0, r4, lbl_803A34A8@l +/* 80016484 000133C4 90 1E 00 10 */ stw r0, 0x10(r30) +/* 80016488 000133C8 38 80 00 00 */ li r4, 0 +/* 8001648C 000133CC 4B FF F4 71 */ bl mDoDvdThd_command_c_NS_dtor +/* 80016490 000133D0 7F E0 07 35 */ extsh. r0, r31 +/* 80016494 000133D4 40 81 00 0C */ ble lbl_800164A0 +/* 80016498 000133D8 7F C3 F3 78 */ mr r3, r30 +/* 8001649C 000133DC 48 2B 88 A1 */ bl __dl__FPv +lbl_800164A0: +/* 800164A0 000133E0 7F C3 F3 78 */ mr r3, r30 +/* 800164A4 000133E4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800164A8 000133E8 83 C1 00 08 */ lwz r30, 8(r1) +/* 800164AC 000133EC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800164B0 000133F0 7C 08 03 A6 */ mtlr r0 +/* 800164B4 000133F4 38 21 00 10 */ addi r1, r1, 0x10 +/* 800164B8 000133F8 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_800164BC.s b/include/m_Do/m_Do_dvd_thread/asm/func_800164BC.s new file mode 100644 index 0000000000..7ff668816f --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_800164BC.s @@ -0,0 +1,50 @@ +/* 800164BC 000133FC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800164C0 00013400 7C 08 02 A6 */ mflr r0 +/* 800164C4 00013404 90 01 00 24 */ stw r0, 0x24(r1) +/* 800164C8 00013408 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800164CC 0001340C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 800164D0 00013410 7C 7E 1B 78 */ mr r30, r3 +/* 800164D4 00013414 80 E3 00 24 */ lwz r7, 0x24(r3) +/* 800164D8 00013418 28 07 00 00 */ cmplwi r7, 0 +/* 800164DC 0001341C 41 82 00 08 */ beq lbl_800164E4 +/* 800164E0 00013420 48 00 00 0C */ b lbl_800164EC +lbl_800164E4: +/* 800164E4 00013424 4B FF 89 09 */ bl mDoExt_getArchiveHeap +/* 800164E8 00013428 7C 67 1B 78 */ mr r7, r3 +lbl_800164EC: +/* 800164EC 0001342C 7C FF 3B 78 */ mr r31, r7 +/* 800164F0 00013430 38 00 00 00 */ li r0, 0 +/* 800164F4 00013434 90 01 00 08 */ stw r0, 8(r1) +/* 800164F8 00013438 80 7E 00 18 */ lwz r3, 0x18(r30) +/* 800164FC 0001343C 38 80 00 00 */ li r4, 0 +/* 80016500 00013440 38 A0 00 01 */ li r5, 1 +/* 80016504 00013444 38 C0 00 00 */ li r6, 0 +/* 80016508 00013448 88 1E 00 14 */ lbz r0, 0x14(r30) +/* 8001650C 0001344C 28 00 00 00 */ cmplwi r0, 0 +/* 80016510 00013450 39 00 00 02 */ li r8, 2 +/* 80016514 00013454 40 82 00 08 */ bne lbl_8001651C +/* 80016518 00013458 39 00 00 01 */ li r8, 1 +lbl_8001651C: +/* 8001651C 0001345C 39 20 00 00 */ li r9, 0 +/* 80016520 00013460 39 40 00 00 */ li r10, 0 +/* 80016524 00013464 48 2C 37 31 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 80016528 00013468 90 7E 00 1C */ stw r3, 0x1c(r30) +/* 8001652C 0001346C 80 9E 00 1C */ lwz r4, 0x1c(r30) +/* 80016530 00013470 28 04 00 00 */ cmplwi r4, 0 +/* 80016534 00013474 41 82 00 10 */ beq lbl_80016544 +/* 80016538 00013478 7F E3 FB 78 */ mr r3, r31 +/* 8001653C 0001347C 48 2B 81 C5 */ bl getSize__7JKRHeapCFPv +/* 80016540 00013480 90 7E 00 20 */ stw r3, 0x20(r30) +lbl_80016544: +/* 80016544 00013484 38 00 00 01 */ li r0, 1 +/* 80016548 00013488 98 1E 00 0C */ stb r0, 0xc(r30) +/* 8001654C 0001348C 80 7E 00 1C */ lwz r3, 0x1c(r30) +/* 80016550 00013490 30 03 FF FF */ addic r0, r3, -1 +/* 80016554 00013494 7C 00 19 10 */ subfe r0, r0, r3 +/* 80016558 00013498 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 8001655C 0001349C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80016560 000134A0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80016564 000134A4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80016568 000134A8 7C 08 03 A6 */ mtlr r0 +/* 8001656C 000134AC 38 21 00 20 */ addi r1, r1, 0x20 +/* 80016570 000134B0 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_dvd_thread/asm/func_80016574.s b/include/m_Do/m_Do_dvd_thread/asm/func_80016574.s new file mode 100644 index 0000000000..605baa98a5 --- /dev/null +++ b/include/m_Do/m_Do_dvd_thread/asm/func_80016574.s @@ -0,0 +1,10 @@ +/* 80016574 000134B4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80016578 000134B8 7C 08 02 A6 */ mflr r0 +/* 8001657C 000134BC 90 01 00 14 */ stw r0, 0x14(r1) +/* 80016580 000134C0 3C 60 80 3E */ lis r3, lbl_803DEC60@ha +/* 80016584 000134C4 38 63 EC 60 */ addi r3, r3, lbl_803DEC60@l +/* 80016588 000134C8 4B FF F3 BD */ bl mDoDvdThd_param_c +/* 8001658C 000134CC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80016590 000134D0 7C 08 03 A6 */ mtlr r0 +/* 80016594 000134D4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016598 000134D8 4E 80 00 20 */ blr diff --git a/ldscript.lcf b/ldscript.lcf index fcfb70af89..65d2511368 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -3303,6 +3303,15 @@ func_8000CFB8 func_8000CE00 func_8000CD14 func_8000CCC8 +func_80016574 +func_800164BC +func_8001645C +func_800162B0 +func_80016108 +func_80015EDC +func_80015D44 +func_80015CF0 +func_80015BB8 } /* .init 80003100 - 80005600 diff --git a/obj_files.mk b/obj_files.mk index 576127b5fc..6e3ac2449f 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -35,7 +35,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/rodata/rodata_m_Do_Reset.o \ $(BUILD_DIR)/src/m_Do/m_Do_Reset.o \ $(BUILD_DIR)/asm/rodata/rodata_m_Do_dvd_thread.o \ - $(BUILD_DIR)/asm/m/Do/dvd/m_Do_dvd_thread.o \ + $(BUILD_DIR)/src/m_Do/m_Do_dvd_thread.o \ $(BUILD_DIR)/src/m_Do/m_Do_DVDError.o \ $(BUILD_DIR)/asm/rodata/rodata_m_Do_MemCard.o \ $(BUILD_DIR)/src/m_Do/m_Do_MemCard.o \ diff --git a/src/m_Do/m_Do_dvd_thread.cpp b/src/m_Do/m_Do_dvd_thread.cpp index 4bf93c8658..9420d970ce 100644 --- a/src/m_Do/m_Do_dvd_thread.cpp +++ b/src/m_Do/m_Do_dvd_thread.cpp @@ -1 +1,302 @@ -// ok +/* m_Do_dvd_thread.cpp autogenerated by split.py v0.4 at 2021-01-31 21:23:39.416871 */ + +#include "global.h" + +// additional symbols needed for m_Do_dvd_thread.cpp +// autogenerated by split.py v0.4 at 2021-01-31 21:23:39.416919 +extern "C" { +void JASDvd_NS_getThreadPointer(void); +void JASTaskThread_NS_sendCmdMsg(void); +void __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection(void); +void __ct__9JKRThreadFP8OSThreadi(void); +void __dl__FPv(void); +void __dt__9JKRThreadFv(void); +void __nw__FUlP7JKRHeapi(void); +void _restgpr_25(void); +void _restgpr_27(void); +void _restgpr_28(void); +void _restgpr_29(void); +void _savegpr_25(void); +void _savegpr_27(void); +void _savegpr_28(void); +void _savegpr_29(void); +void becomeCurrentHeap__7JKRHeapFv(void); +void cLs_Addition(void); +void cLs_Create(void); +void cLs_SingleCut(void); +void cNd_ForcedClear(void); +void cb(void); +void func_80015BB8(void); +void func_80015CF0(void); +void func_80015D44(void); +void func_80015EDC(void); +void func_80016108(void); +void func_800162B0(void); +void func_8001645C(void); +void func_800164BC(void); +void func_80016574(void); +void getSize__7JKRHeapCFPv(void); +void loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl( + void); +void mDoDvdThd_NS_create(void); +void mDoDvdThd_NS_main(void); +void mDoDvdThd_NS_suspend(void); +void mDoDvdThd_callback_c(void); +void mDoDvdThd_callback_c_NS_create(void); +void mDoDvdThd_command_c(void); +void mDoDvdThd_command_c_NS_dtor(void); +void mDoDvdThd_mountArchive_c(void); +void mDoDvdThd_mountArchive_c_NS_create(void); +void mDoDvdThd_mountXArchive_c(void); +void mDoDvdThd_mountXArchive_c_NS_create(void); +void mDoDvdThd_param_c(void); +void mDoDvdThd_param_c_NS_addition(void); +void mDoDvdThd_param_c_NS_cut(void); +void mDoDvdThd_param_c_NS_getFirstCommand(void); +void mDoDvdThd_param_c_NS_kick(void); +void mDoDvdThd_param_c_NS_mainLoop(void); +void mDoDvdThd_param_c_NS_waitForKick(void); +void mDoDvdThd_toMainRam_c(void); +void mDoDvdThd_toMainRam_c_NS_create(void); +void mDoExt_getArchiveHeap(void); +void mDoExt_getArchiveHeapPtr(void); +void mDoExt_getAssertHeap(void); +void mDoExt_getCommandHeap(void); +void mDoExt_getGameHeap(void); +void mDoExt_getJ2dHeap(void); +void mDoExt_getZeldaHeap(void); +void mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection(void); +void my_DVDConvertPathToEntrynum(void); +} + +// additional symbols needed for m_Do_dvd_thread.cpp +// autogenerated by split.py v0.4 at 2021-01-31 21:23:39.416924 +extern u8 lbl_803741A8; +extern u8 lbl_803A34A8; +extern u8 lbl_803A34B8; +extern u8 lbl_803A34C8; +extern u8 lbl_803A34D8; +extern u8 lbl_803A34E8; +extern u8 lbl_803DD940; +extern u8 lbl_803DEC60; +extern u8 lbl_80450C80; +extern u8 lbl_80450C81; + +extern "C" { +// main__9mDoDvdThdFPv +// mDoDvdThd::main(void*) +asm void mDoDvdThd_NS_main(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800157FC.s" +} + +// create__9mDoDvdThdFl +// mDoDvdThd::create(s32) +asm void mDoDvdThd_NS_create(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015858.s" +} + +// suspend__9mDoDvdThdFv +// mDoDvdThd::suspend(void) +asm void mDoDvdThd_NS_suspend(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800158B4.s" +} + +// my_DVDConvertPathToEntrynum__FPCc +// my_DVDConvertPathToEntrynum(const s8*) +asm void my_DVDConvertPathToEntrynum(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800158DC.s" +} + +// __dt__19mDoDvdThd_command_cFv +// mDoDvdThd_command_c::~mDoDvdThd_command_c(void) +asm void mDoDvdThd_command_c_NS_dtor(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800158FC.s" +} + +// __ct__17mDoDvdThd_param_cFv +// mDoDvdThd_param_c::mDoDvdThd_param_c(void) +asm void mDoDvdThd_param_c(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015944.s" +} + +// kick__17mDoDvdThd_param_cFv +// mDoDvdThd_param_c::kick(void) +asm void mDoDvdThd_param_c_NS_kick(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_8001598C.s" +} + +// waitForKick__17mDoDvdThd_param_cFv +// mDoDvdThd_param_c::waitForKick(void) +asm void mDoDvdThd_param_c_NS_waitForKick(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800159B4.s" +} + +// getFirstCommand__17mDoDvdThd_param_cFv +// mDoDvdThd_param_c::getFirstCommand(void) +asm void mDoDvdThd_param_c_NS_getFirstCommand(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800159DC.s" +} + +// addition__17mDoDvdThd_param_cFP19mDoDvdThd_command_c +// mDoDvdThd_param_c::addition(mDoDvdThd_command_c*) +asm void mDoDvdThd_param_c_NS_addition(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800159E4.s" +} + +// cut__17mDoDvdThd_param_cFP19mDoDvdThd_command_c +// mDoDvdThd_param_c::cut(mDoDvdThd_command_c*) +asm void mDoDvdThd_param_c_NS_cut(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015A3C.s" +} + +// cb__FPv +// cb(void*) +asm void cb(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015A90.s" +} + +// mainLoop__17mDoDvdThd_param_cFv +// mDoDvdThd_param_c::mainLoop(void) +asm void mDoDvdThd_param_c_NS_mainLoop(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015AD8.s" +} + +// __ct__19mDoDvdThd_command_cFv +// mDoDvdThd_command_c::mDoDvdThd_command_c(void) +asm void mDoDvdThd_command_c(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015B74.s" +} + +// __dt__20mDoDvdThd_callback_cFv +// mDoDvdThd_callback_c::~mDoDvdThd_callback_c(void) +asm void func_80015BB8(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015BB8.s" +} + +// __ct__20mDoDvdThd_callback_cFPFPv_PvPv +// mDoDvdThd_callback_c::mDoDvdThd_callback_c(void* (*)(void*), void*) +asm void mDoDvdThd_callback_c(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015C18.s" +} + +// create__20mDoDvdThd_callback_cFPFPv_PvPv +// mDoDvdThd_callback_c::create(void* (*)(void*), void*) +asm void mDoDvdThd_callback_c_NS_create(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015C74.s" +} + +// execute__20mDoDvdThd_callback_cFv +// mDoDvdThd_callback_c::execute(void) +asm void func_80015CF0(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015CF0.s" +} + +// __dt__24mDoDvdThd_mountArchive_cFv +// mDoDvdThd_mountArchive_c::~mDoDvdThd_mountArchive_c(void) +asm void func_80015D44(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015D44.s" +} + +// __ct__24mDoDvdThd_mountArchive_cFUc +// mDoDvdThd_mountArchive_c::mDoDvdThd_mountArchive_c(u8) +asm void mDoDvdThd_mountArchive_c(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015DA4.s" +} + +// create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap +// mDoDvdThd_mountArchive_c::create(const s8*, u8, JKRHeap*) +asm void mDoDvdThd_mountArchive_c_NS_create(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015E14.s" +} + +// execute__24mDoDvdThd_mountArchive_cFv +// mDoDvdThd_mountArchive_c::execute(void) +asm void func_80015EDC(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80015EDC.s" +} + +// __dt__25mDoDvdThd_mountXArchive_cFv +// mDoDvdThd_mountXArchive_c::~mDoDvdThd_mountXArchive_c(void) +asm void func_80016108(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80016108.s" +} + +// __ct__25mDoDvdThd_mountXArchive_cFUcQ210JKRArchive10EMountMode +// mDoDvdThd_mountXArchive_c::mDoDvdThd_mountXArchive_c(u8, JKRArchive::EMountMode) +asm void mDoDvdThd_mountXArchive_c(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80016168.s" +} + +// create__25mDoDvdThd_mountXArchive_cFPCcUcQ210JKRArchive10EMountModeP7JKRHeap +// mDoDvdThd_mountXArchive_c::create(const s8*, u8, JKRArchive::EMountMode, JKRHeap*) +asm void mDoDvdThd_mountXArchive_c_NS_create(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800161E0.s" +} + +// execute__25mDoDvdThd_mountXArchive_cFv +// mDoDvdThd_mountXArchive_c::execute(void) +asm void func_800162B0(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800162B0.s" +} + +// __ct__21mDoDvdThd_toMainRam_cFUc +// mDoDvdThd_toMainRam_c::mDoDvdThd_toMainRam_c(u8) +asm void mDoDvdThd_toMainRam_c(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80016338.s" +} + +// create__21mDoDvdThd_toMainRam_cFPCcUcP7JKRHeap +// mDoDvdThd_toMainRam_c::create(const s8*, u8, JKRHeap*) +asm void mDoDvdThd_toMainRam_c_NS_create(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80016394.s" +} + +// __dt__21mDoDvdThd_toMainRam_cFv +// mDoDvdThd_toMainRam_c::~mDoDvdThd_toMainRam_c(void) +asm void func_8001645C(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_8001645C.s" +} + +// execute__21mDoDvdThd_toMainRam_cFv +// mDoDvdThd_toMainRam_c::execute(void) +asm void func_800164BC(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_800164BC.s" +} + +// __sinit_m_Do_dvd_thread_cpp +// +asm void func_80016574(void) { + nofralloc +#include "m_Do/m_Do_dvd_thread/asm/func_80016574.s" +} +};