From 6d554264432040969b9392241ac885f9661989ea Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Sun, 31 Jan 2021 16:16:06 -0500 Subject: [PATCH] split m_Do_MemCard --- asm/m/Do/m_Do_MemCard.s | 1012 ----------------- include/m_Do/m_Do_MemCard/asm/func_8001672C.s | 1 + include/m_Do/m_Do_MemCard/asm/func_80016730.s | 42 + include/m_Do/m_Do_MemCard/asm/func_800167D0.s | 59 + include/m_Do/m_Do_MemCard/asm/func_80016894.s | 75 ++ include/m_Do/m_Do_MemCard/asm/func_800169B4.s | 23 + include/m_Do/m_Do_MemCard/asm/func_80016A0C.s | 45 + include/m_Do/m_Do_MemCard/asm/func_80016AB0.s | 47 + include/m_Do/m_Do_MemCard/asm/func_80016B58.s | 32 + include/m_Do/m_Do_MemCard/asm/func_80016BD4.s | 75 ++ include/m_Do/m_Do_MemCard/asm/func_80016CE0.s | 43 + include/m_Do/m_Do_MemCard/asm/func_80016D74.s | 60 + include/m_Do/m_Do_MemCard/asm/func_80016E58.s | 21 + include/m_Do/m_Do_MemCard/asm/func_80016EA8.s | 36 + include/m_Do/m_Do_MemCard/asm/func_80016F2C.s | 40 + include/m_Do/m_Do_MemCard/asm/func_80016FB8.s | 73 ++ include/m_Do/m_Do_MemCard/asm/func_800170B8.s | 23 + include/m_Do/m_Do_MemCard/asm/func_80017110.s | 14 + include/m_Do/m_Do_MemCard/asm/func_80017148.s | 83 ++ include/m_Do/m_Do_MemCard/asm/func_80017274.s | 26 + include/m_Do/m_Do_MemCard/asm/func_800172D4.s | 38 + include/m_Do/m_Do_MemCard/asm/func_80017360.s | 55 + include/m_Do/m_Do_MemCard/asm/func_8001741C.s | 21 + include/m_Do/m_Do_MemCard/asm/func_80017470.s | 10 + ldscript.lcf | 1 + obj_files.mk | 2 +- src/m_Do/m_Do_MemCard.cpp | 230 +++- 27 files changed, 1173 insertions(+), 1014 deletions(-) delete mode 100644 asm/m/Do/m_Do_MemCard.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_8001672C.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016730.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_800167D0.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016894.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_800169B4.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016A0C.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016AB0.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016B58.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016BD4.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016CE0.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016D74.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016E58.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016EA8.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016F2C.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80016FB8.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_800170B8.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80017110.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80017148.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80017274.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_800172D4.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80017360.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_8001741C.s create mode 100644 include/m_Do/m_Do_MemCard/asm/func_80017470.s diff --git a/asm/m/Do/m_Do_MemCard.s b/asm/m/Do/m_Do_MemCard.s deleted file mode 100644 index 57ac7c43c01..00000000000 --- a/asm/m/Do/m_Do_MemCard.s +++ /dev/null @@ -1,1012 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 8001672c - - -.global mDoMemCd_Ctrl_c -mDoMemCd_Ctrl_c: -/* 8001672C 0001366C 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_ThdInit -mDoMemCd_Ctrl_c_NS_ThdInit: -/* 80016730 00013670 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80016734 00013674 7C 08 02 A6 */ mflr r0 -/* 80016738 00013678 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001673C 0001367C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80016740 00013680 7C 7F 1B 78 */ mr r31, r3 -/* 80016744 00013684 48 33 D3 85 */ bl CARDInit -/* 80016748 00013688 38 60 00 00 */ li r3, 0 -/* 8001674C 0001368C 98 7F 1F BD */ stb r3, 0x1fbd(r31) -/* 80016750 00013690 38 00 00 02 */ li r0, 2 -/* 80016754 00013694 98 1F 1F BE */ stb r0, 0x1fbe(r31) -/* 80016758 00013698 90 7F 1F C4 */ stw r3, 0x1fc4(r31) -/* 8001675C 0001369C 90 7F 1F C0 */ stw r3, 0x1fc0(r31) -/* 80016760 000136A0 98 7F 1F BC */ stb r3, 0x1fbc(r31) -/* 80016764 000136A4 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 80016768 000136A8 48 32 88 A1 */ bl OSInitMutex -/* 8001676C 000136AC 38 7F 1F E4 */ addi r3, r31, 0x1fe4 -/* 80016770 000136B0 48 32 8B A1 */ bl OSInitCond -/* 80016774 000136B4 48 32 A5 11 */ bl OSGetCurrentThread -/* 80016778 000136B8 48 32 B6 E5 */ bl OSGetThreadPriority -/* 8001677C 000136BC 7C 68 1B 78 */ mr r8, r3 -/* 80016780 000136C0 3C 60 80 3E */ lis r3, lbl_803E0C20@ha -/* 80016784 000136C4 38 63 0C 20 */ addi r3, r3, lbl_803E0C20@l -.global mDoMemCd_main -/* 80016788 000136C8 3C 80 80 01 */ lis r4, mDoMemCd_main@ha -.global mDoMemCd_main -/* 8001678C 000136CC 38 84 74 1C */ addi r4, r4, mDoMemCd_main@l -/* 80016790 000136D0 38 A0 00 00 */ li r5, 0 -/* 80016794 000136D4 3C C0 80 3E */ lis r6, lbl_803DFC20@ha -/* 80016798 000136D8 38 C6 FC 20 */ addi r6, r6, lbl_803DFC20@l -/* 8001679C 000136DC 38 C6 10 00 */ addi r6, r6, 0x1000 -/* 800167A0 000136E0 38 E0 10 00 */ li r7, 0x1000 -/* 800167A4 000136E4 39 08 00 01 */ addi r8, r8, 1 -/* 800167A8 000136E8 39 20 00 01 */ li r9, 1 -/* 800167AC 000136EC 48 32 AA E1 */ bl OSCreateThread -/* 800167B0 000136F0 3C 60 80 3E */ lis r3, lbl_803E0C20@ha -/* 800167B4 000136F4 38 63 0C 20 */ addi r3, r3, lbl_803E0C20@l -/* 800167B8 000136F8 48 32 AF FD */ bl OSResumeThread -/* 800167BC 000136FC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800167C0 00013700 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800167C4 00013704 7C 08 03 A6 */ mtlr r0 -/* 800167C8 00013708 38 21 00 10 */ addi r1, r1, 0x10 -/* 800167CC 0001370C 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_main -mDoMemCd_Ctrl_c_NS_main: -/* 800167D0 00013710 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800167D4 00013714 7C 08 02 A6 */ mflr r0 -/* 800167D8 00013718 90 01 00 14 */ stw r0, 0x14(r1) -/* 800167DC 0001371C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800167E0 00013720 7C 7F 1B 78 */ mr r31, r3 -lbl_800167E4: -/* 800167E4 00013724 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 800167E8 00013728 48 32 88 59 */ bl OSLockMutex -/* 800167EC 0001372C 48 00 00 10 */ b lbl_800167FC -lbl_800167F0: -/* 800167F0 00013730 38 7F 1F E4 */ addi r3, r31, 0x1fe4 -/* 800167F4 00013734 38 9F 1F CC */ addi r4, r31, 0x1fcc -/* 800167F8 00013738 48 32 8B 39 */ bl OSWaitCond -lbl_800167FC: -/* 800167FC 0001373C 80 1F 1F C0 */ lwz r0, 0x1fc0(r31) -/* 80016800 00013740 2C 00 00 00 */ cmpwi r0, 0 -/* 80016804 00013744 41 82 FF EC */ beq lbl_800167F0 -/* 80016808 00013748 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 8001680C 0001374C 48 32 89 11 */ bl OSUnlockMutex -/* 80016810 00013750 80 1F 1F C0 */ lwz r0, 0x1fc0(r31) -/* 80016814 00013754 2C 00 00 03 */ cmpwi r0, 3 -/* 80016818 00013758 41 82 00 40 */ beq lbl_80016858 -/* 8001681C 0001375C 40 80 00 14 */ bge lbl_80016830 -/* 80016820 00013760 2C 00 00 01 */ cmpwi r0, 1 -/* 80016824 00013764 41 82 00 1C */ beq lbl_80016840 -/* 80016828 00013768 40 80 00 24 */ bge lbl_8001684C -/* 8001682C 0001376C 48 00 00 4C */ b lbl_80016878 -lbl_80016830: -/* 80016830 00013770 2C 00 00 05 */ cmpwi r0, 5 -/* 80016834 00013774 41 82 00 3C */ beq lbl_80016870 -/* 80016838 00013778 40 80 00 40 */ bge lbl_80016878 -/* 8001683C 0001377C 48 00 00 28 */ b lbl_80016864 -lbl_80016840: -/* 80016840 00013780 7F E3 FB 78 */ mr r3, r31 -/* 80016844 00013784 48 00 01 C9 */ bl mDoMemCd_Ctrl_c_NS_restore -/* 80016848 00013788 48 00 00 30 */ b lbl_80016878 -lbl_8001684C: -/* 8001684C 0001378C 7F E3 FB 78 */ mr r3, r31 -/* 80016850 00013790 48 00 03 85 */ bl mDoMemCd_Ctrl_c_NS_store -/* 80016854 00013794 48 00 00 24 */ b lbl_80016878 -lbl_80016858: -/* 80016858 00013798 7F E3 FB 78 */ mr r3, r31 -/* 8001685C 0001379C 48 00 06 4D */ bl mDoMemCd_Ctrl_c_NS_format -/* 80016860 000137A0 48 00 00 18 */ b lbl_80016878 -lbl_80016864: -/* 80016864 000137A4 7F E3 FB 78 */ mr r3, r31 -/* 80016868 000137A8 48 00 07 51 */ bl mDoMemCd_Ctrl_c_NS_attach -/* 8001686C 000137AC 48 00 00 0C */ b lbl_80016878 -lbl_80016870: -/* 80016870 000137B0 7F E3 FB 78 */ mr r3, r31 -/* 80016874 000137B4 48 00 08 9D */ bl mDoMemCd_Ctrl_c_NS_detach -lbl_80016878: -/* 80016878 000137B8 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 8001687C 000137BC 48 32 87 C5 */ bl OSLockMutex -/* 80016880 000137C0 38 00 00 00 */ li r0, 0 -/* 80016884 000137C4 90 1F 1F C0 */ stw r0, 0x1fc0(r31) -/* 80016888 000137C8 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 8001688C 000137CC 48 32 88 91 */ bl OSUnlockMutex -/* 80016890 000137D0 4B FF FF 54 */ b lbl_800167E4 - -.global mDoMemCd_Ctrl_c_NS_update -mDoMemCd_Ctrl_c_NS_update: -/* 80016894 000137D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80016898 000137D8 7C 08 02 A6 */ mflr r0 -/* 8001689C 000137DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800168A0 000137E0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800168A4 000137E4 7C 7F 1B 78 */ mr r31, r3 -/* 800168A8 000137E8 80 8D 86 F8 */ lwz r4, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) -/* 800168AC 000137EC 80 04 00 00 */ lwz r0, 0(r4) -/* 800168B0 000137F0 2C 00 00 00 */ cmpwi r0, 0 -/* 800168B4 000137F4 41 82 00 30 */ beq lbl_800168E4 -/* 800168B8 000137F8 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 800168BC 000137FC 48 32 87 85 */ bl OSLockMutex -/* 800168C0 00013800 38 00 00 05 */ li r0, 5 -/* 800168C4 00013804 90 1F 1F C0 */ stw r0, 0x1fc0(r31) -/* 800168C8 00013808 38 00 00 03 */ li r0, 3 -/* 800168CC 0001380C 98 1F 1F BE */ stb r0, 0x1fbe(r31) -/* 800168D0 00013810 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 800168D4 00013814 48 32 88 49 */ bl OSUnlockMutex -/* 800168D8 00013818 38 7F 1F E4 */ addi r3, r31, 0x1fe4 -/* 800168DC 0001381C 48 32 8B 29 */ bl OSSignalCond -/* 800168E0 00013820 48 00 00 C0 */ b lbl_800169A0 -lbl_800168E4: -/* 800168E4 00013824 38 80 00 00 */ li r4, 0 -/* 800168E8 00013828 48 00 04 8D */ bl mDoMemCd_Ctrl_c_NS_getStatus -/* 800168EC 0001382C 28 03 00 0E */ cmplwi r3, 0xe -/* 800168F0 00013830 41 82 00 B0 */ beq lbl_800169A0 -/* 800168F4 00013834 38 60 00 00 */ li r3, 0 -/* 800168F8 00013838 48 34 01 1D */ bl CARDProbe -/* 800168FC 0001383C 2C 03 00 00 */ cmpwi r3, 0 -/* 80016900 00013840 41 82 00 4C */ beq lbl_8001694C -/* 80016904 00013844 7F E3 FB 78 */ mr r3, r31 -/* 80016908 00013848 38 80 00 00 */ li r4, 0 -/* 8001690C 0001384C 48 00 04 69 */ bl mDoMemCd_Ctrl_c_NS_getStatus -/* 80016910 00013850 28 03 00 00 */ cmplwi r3, 0 -/* 80016914 00013854 40 82 00 38 */ bne lbl_8001694C -/* 80016918 00013858 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 8001691C 0001385C 48 32 87 25 */ bl OSLockMutex -/* 80016920 00013860 38 00 00 00 */ li r0, 0 -/* 80016924 00013864 98 1F 1F BE */ stb r0, 0x1fbe(r31) -/* 80016928 00013868 38 00 00 0D */ li r0, 0xd -/* 8001692C 0001386C 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80016930 00013870 38 00 00 04 */ li r0, 4 -/* 80016934 00013874 90 1F 1F C0 */ stw r0, 0x1fc0(r31) -/* 80016938 00013878 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 8001693C 0001387C 48 32 87 E1 */ bl OSUnlockMutex -/* 80016940 00013880 38 7F 1F E4 */ addi r3, r31, 0x1fe4 -/* 80016944 00013884 48 32 8A C1 */ bl OSSignalCond -/* 80016948 00013888 48 00 00 58 */ b lbl_800169A0 -lbl_8001694C: -/* 8001694C 0001388C 38 60 00 00 */ li r3, 0 -/* 80016950 00013890 48 34 00 C5 */ bl CARDProbe -/* 80016954 00013894 2C 03 00 00 */ cmpwi r3, 0 -/* 80016958 00013898 40 82 00 48 */ bne lbl_800169A0 -/* 8001695C 0001389C 7F E3 FB 78 */ mr r3, r31 -/* 80016960 000138A0 38 80 00 00 */ li r4, 0 -/* 80016964 000138A4 48 00 04 11 */ bl mDoMemCd_Ctrl_c_NS_getStatus -/* 80016968 000138A8 28 03 00 00 */ cmplwi r3, 0 -/* 8001696C 000138AC 41 82 00 34 */ beq lbl_800169A0 -/* 80016970 000138B0 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 80016974 000138B4 48 32 86 CD */ bl OSLockMutex -/* 80016978 000138B8 38 00 00 01 */ li r0, 1 -/* 8001697C 000138BC 98 1F 1F BE */ stb r0, 0x1fbe(r31) -/* 80016980 000138C0 38 00 00 0D */ li r0, 0xd -/* 80016984 000138C4 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80016988 000138C8 38 00 00 05 */ li r0, 5 -/* 8001698C 000138CC 90 1F 1F C0 */ stw r0, 0x1fc0(r31) -/* 80016990 000138D0 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 80016994 000138D4 48 32 87 89 */ bl OSUnlockMutex -/* 80016998 000138D8 38 7F 1F E4 */ addi r3, r31, 0x1fe4 -/* 8001699C 000138DC 48 32 8A 69 */ bl OSSignalCond -lbl_800169A0: -/* 800169A0 000138E0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800169A4 000138E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800169A8 000138E8 7C 08 03 A6 */ mtlr r0 -/* 800169AC 000138EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800169B0 000138F0 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_load -mDoMemCd_Ctrl_c_NS_load: -/* 800169B4 000138F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800169B8 000138F8 7C 08 02 A6 */ mflr r0 -/* 800169BC 000138FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800169C0 00013900 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800169C4 00013904 7C 7F 1B 78 */ mr r31, r3 -/* 800169C8 00013908 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 800169CC 0001390C 48 32 88 89 */ bl OSTryLockMutex -/* 800169D0 00013910 2C 03 00 00 */ cmpwi r3, 0 -/* 800169D4 00013914 41 82 00 24 */ beq lbl_800169F8 -/* 800169D8 00013918 38 00 00 00 */ li r0, 0 -/* 800169DC 0001391C 90 1F 1F C8 */ stw r0, 0x1fc8(r31) -/* 800169E0 00013920 38 00 00 01 */ li r0, 1 -/* 800169E4 00013924 90 1F 1F C0 */ stw r0, 0x1fc0(r31) -/* 800169E8 00013928 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 800169EC 0001392C 48 32 87 31 */ bl OSUnlockMutex -/* 800169F0 00013930 38 7F 1F E4 */ addi r3, r31, 0x1fe4 -/* 800169F4 00013934 48 32 8A 11 */ bl OSSignalCond -lbl_800169F8: -/* 800169F8 00013938 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800169FC 0001393C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80016A00 00013940 7C 08 03 A6 */ mtlr r0 -/* 80016A04 00013944 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016A08 00013948 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_restore -mDoMemCd_Ctrl_c_NS_restore: -/* 80016A0C 0001394C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80016A10 00013950 7C 08 02 A6 */ mflr r0 -/* 80016A14 00013954 90 01 00 34 */ stw r0, 0x34(r1) -/* 80016A18 00013958 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80016A1C 0001395C 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80016A20 00013960 7C 7E 1B 78 */ mr r30, r3 -/* 80016A24 00013964 38 00 00 00 */ li r0, 0 -/* 80016A28 00013968 90 03 1F C8 */ stw r0, 0x1fc8(r3) -/* 80016A2C 0001396C 88 63 1F BC */ lbz r3, 0x1fbc(r3) -/* 80016A30 00013970 3C 80 80 37 */ lis r4, lbl_803743F8@ha -/* 80016A34 00013974 38 84 43 F8 */ addi r4, r4, lbl_803743F8@l -/* 80016A38 00013978 38 A1 00 08 */ addi r5, r1, 8 -/* 80016A3C 0001397C 48 34 15 5D */ bl CARDOpen -/* 80016A40 00013980 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80016A44 00013984 40 82 00 40 */ bne lbl_80016A84 -/* 80016A48 00013988 38 61 00 08 */ addi r3, r1, 8 -/* 80016A4C 0001398C 7F C4 F3 78 */ mr r4, r30 -/* 80016A50 00013990 38 A0 1F BC */ li r5, 0x1fbc -/* 80016A54 00013994 48 00 0C 49 */ bl mDoMemCdRWm_Restore -/* 80016A58 00013998 2C 03 00 00 */ cmpwi r3, 0 -/* 80016A5C 0001399C 40 82 00 10 */ bne lbl_80016A6C -/* 80016A60 000139A0 38 00 00 03 */ li r0, 3 -/* 80016A64 000139A4 90 1E 1F C4 */ stw r0, 0x1fc4(r30) -/* 80016A68 000139A8 48 00 00 10 */ b lbl_80016A78 -lbl_80016A6C: -/* 80016A6C 000139AC 7F C3 F3 78 */ mr r3, r30 -/* 80016A70 000139B0 7F E4 FB 78 */ mr r4, r31 -/* 80016A74 000139B4 48 00 08 ED */ bl mDoMemCd_Ctrl_c_NS_setCardState -lbl_80016A78: -/* 80016A78 000139B8 38 61 00 08 */ addi r3, r1, 8 -/* 80016A7C 000139BC 48 34 16 39 */ bl CARDClose -/* 80016A80 000139C0 48 00 00 10 */ b lbl_80016A90 -lbl_80016A84: -/* 80016A84 000139C4 7F C3 F3 78 */ mr r3, r30 -/* 80016A88 000139C8 7F E4 FB 78 */ mr r4, r31 -/* 80016A8C 000139CC 48 00 08 D5 */ bl mDoMemCd_Ctrl_c_NS_setCardState -lbl_80016A90: -/* 80016A90 000139D0 38 00 00 01 */ li r0, 1 -/* 80016A94 000139D4 90 1E 1F C8 */ stw r0, 0x1fc8(r30) -/* 80016A98 000139D8 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80016A9C 000139DC 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 80016AA0 000139E0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80016AA4 000139E4 7C 08 03 A6 */ mtlr r0 -/* 80016AA8 000139E8 38 21 00 30 */ addi r1, r1, 0x30 -/* 80016AAC 000139EC 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_LoadSync -mDoMemCd_Ctrl_c_NS_LoadSync: -/* 80016AB0 000139F0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80016AB4 000139F4 7C 08 02 A6 */ mflr r0 -/* 80016AB8 000139F8 90 01 00 24 */ stw r0, 0x24(r1) -/* 80016ABC 000139FC 39 61 00 20 */ addi r11, r1, 0x20 -/* 80016AC0 00013A00 48 34 B7 15 */ bl _savegpr_27 -/* 80016AC4 00013A04 7C 7B 1B 78 */ mr r27, r3 -/* 80016AC8 00013A08 7C 9C 23 78 */ mr r28, r4 -/* 80016ACC 00013A0C 7C BD 2B 78 */ mr r29, r5 -/* 80016AD0 00013A10 7C DE 33 78 */ mr r30, r6 -/* 80016AD4 00013A14 3B E0 00 00 */ li r31, 0 -/* 80016AD8 00013A18 80 03 1F C8 */ lwz r0, 0x1fc8(r3) -/* 80016ADC 00013A1C 2C 00 00 00 */ cmpwi r0, 0 -/* 80016AE0 00013A20 40 82 00 0C */ bne lbl_80016AEC -/* 80016AE4 00013A24 38 60 00 00 */ li r3, 0 -/* 80016AE8 00013A28 48 00 00 58 */ b lbl_80016B40 -lbl_80016AEC: -/* 80016AEC 00013A2C 38 7B 1F CC */ addi r3, r27, 0x1fcc -/* 80016AF0 00013A30 48 32 87 65 */ bl OSTryLockMutex -/* 80016AF4 00013A34 2C 03 00 00 */ cmpwi r3, 0 -/* 80016AF8 00013A38 41 82 00 44 */ beq lbl_80016B3C -/* 80016AFC 00013A3C 80 1B 1F C4 */ lwz r0, 0x1fc4(r27) -/* 80016B00 00013A40 2C 00 00 03 */ cmpwi r0, 3 -/* 80016B04 00013A44 40 82 00 24 */ bne lbl_80016B28 -/* 80016B08 00013A48 7F 83 E3 78 */ mr r3, r28 -/* 80016B0C 00013A4C 7C 9B F2 14 */ add r4, r27, r30 -/* 80016B10 00013A50 7F A5 EB 78 */ mr r5, r29 -/* 80016B14 00013A54 4B FE CA 2D */ bl memcpy -/* 80016B18 00013A58 38 00 00 01 */ li r0, 1 -/* 80016B1C 00013A5C 90 1B 1F C4 */ stw r0, 0x1fc4(r27) -/* 80016B20 00013A60 3B E0 00 01 */ li r31, 1 -/* 80016B24 00013A64 48 00 00 10 */ b lbl_80016B34 -lbl_80016B28: -/* 80016B28 00013A68 38 00 00 02 */ li r0, 2 -/* 80016B2C 00013A6C 90 1B 1F C4 */ stw r0, 0x1fc4(r27) -/* 80016B30 00013A70 3B E0 00 02 */ li r31, 2 -lbl_80016B34: -/* 80016B34 00013A74 38 7B 1F CC */ addi r3, r27, 0x1fcc -/* 80016B38 00013A78 48 32 85 E5 */ bl OSUnlockMutex -lbl_80016B3C: -/* 80016B3C 00013A7C 7F E3 FB 78 */ mr r3, r31 -lbl_80016B40: -/* 80016B40 00013A80 39 61 00 20 */ addi r11, r1, 0x20 -/* 80016B44 00013A84 48 34 B6 DD */ bl _restgpr_27 -/* 80016B48 00013A88 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80016B4C 00013A8C 7C 08 03 A6 */ mtlr r0 -/* 80016B50 00013A90 38 21 00 20 */ addi r1, r1, 0x20 -/* 80016B54 00013A94 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_save -mDoMemCd_Ctrl_c_NS_save: -/* 80016B58 00013A98 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80016B5C 00013A9C 7C 08 02 A6 */ mflr r0 -/* 80016B60 00013AA0 90 01 00 24 */ stw r0, 0x24(r1) -/* 80016B64 00013AA4 39 61 00 20 */ addi r11, r1, 0x20 -/* 80016B68 00013AA8 48 34 B6 71 */ bl _savegpr_28 -/* 80016B6C 00013AAC 7C 7C 1B 78 */ mr r28, r3 -/* 80016B70 00013AB0 7C 9D 23 78 */ mr r29, r4 -/* 80016B74 00013AB4 7C BE 2B 78 */ mr r30, r5 -/* 80016B78 00013AB8 7C DF 33 78 */ mr r31, r6 -/* 80016B7C 00013ABC 38 7C 1F CC */ addi r3, r28, 0x1fcc -/* 80016B80 00013AC0 48 32 86 D5 */ bl OSTryLockMutex -/* 80016B84 00013AC4 2C 03 00 00 */ cmpwi r3, 0 -/* 80016B88 00013AC8 41 82 00 34 */ beq lbl_80016BBC -/* 80016B8C 00013ACC 7C 7C FA 14 */ add r3, r28, r31 -/* 80016B90 00013AD0 7F A4 EB 78 */ mr r4, r29 -/* 80016B94 00013AD4 7F C5 F3 78 */ mr r5, r30 -/* 80016B98 00013AD8 4B FE C9 A9 */ bl memcpy -/* 80016B9C 00013ADC 38 00 00 00 */ li r0, 0 -/* 80016BA0 00013AE0 90 1C 1F C8 */ stw r0, 0x1fc8(r28) -/* 80016BA4 00013AE4 38 00 00 02 */ li r0, 2 -/* 80016BA8 00013AE8 90 1C 1F C0 */ stw r0, 0x1fc0(r28) -/* 80016BAC 00013AEC 38 7C 1F CC */ addi r3, r28, 0x1fcc -/* 80016BB0 00013AF0 48 32 85 6D */ bl OSUnlockMutex -/* 80016BB4 00013AF4 38 7C 1F E4 */ addi r3, r28, 0x1fe4 -/* 80016BB8 00013AF8 48 32 88 4D */ bl OSSignalCond -lbl_80016BBC: -/* 80016BBC 00013AFC 39 61 00 20 */ addi r11, r1, 0x20 -/* 80016BC0 00013B00 48 34 B6 65 */ bl _restgpr_28 -/* 80016BC4 00013B04 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80016BC8 00013B08 7C 08 03 A6 */ mtlr r0 -/* 80016BCC 00013B0C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80016BD0 00013B10 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_store -mDoMemCd_Ctrl_c_NS_store: -/* 80016BD4 00013B14 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80016BD8 00013B18 7C 08 02 A6 */ mflr r0 -/* 80016BDC 00013B1C 90 01 00 34 */ stw r0, 0x34(r1) -/* 80016BE0 00013B20 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80016BE4 00013B24 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80016BE8 00013B28 7C 7E 1B 78 */ mr r30, r3 -/* 80016BEC 00013B2C 38 00 00 00 */ li r0, 0 -/* 80016BF0 00013B30 90 03 1F C8 */ stw r0, 0x1fc8(r3) -/* 80016BF4 00013B34 80 03 1F C4 */ lwz r0, 0x1fc4(r3) -/* 80016BF8 00013B38 2C 00 00 02 */ cmpwi r0, 2 -/* 80016BFC 00013B3C 40 82 00 48 */ bne lbl_80016C44 -/* 80016C00 00013B40 88 7E 1F BC */ lbz r3, 0x1fbc(r30) -/* 80016C04 00013B44 3C 80 80 37 */ lis r4, lbl_803743F8@ha -/* 80016C08 00013B48 38 84 43 F8 */ addi r4, r4, lbl_803743F8@l -/* 80016C0C 00013B4C 3C A0 00 01 */ lis r5, 0x00008000@ha -/* 80016C10 00013B50 38 A5 80 00 */ addi r5, r5, 0x00008000@l -/* 80016C14 00013B54 38 C1 00 08 */ addi r6, r1, 8 -/* 80016C18 00013B58 48 34 18 41 */ bl CARDCreate -/* 80016C1C 00013B5C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80016C20 00013B60 41 82 00 0C */ beq lbl_80016C2C -/* 80016C24 00013B64 2C 1F FF F9 */ cmpwi r31, -7 -/* 80016C28 00013B68 40 82 00 10 */ bne lbl_80016C38 -lbl_80016C2C: -/* 80016C2C 00013B6C 38 00 00 01 */ li r0, 1 -/* 80016C30 00013B70 90 1E 1F C4 */ stw r0, 0x1fc4(r30) -/* 80016C34 00013B74 48 00 00 10 */ b lbl_80016C44 -lbl_80016C38: -/* 80016C38 00013B78 7F C3 F3 78 */ mr r3, r30 -/* 80016C3C 00013B7C 7F E4 FB 78 */ mr r4, r31 -/* 80016C40 00013B80 48 00 07 21 */ bl mDoMemCd_Ctrl_c_NS_setCardState -lbl_80016C44: -/* 80016C44 00013B84 80 1E 1F C4 */ lwz r0, 0x1fc4(r30) -/* 80016C48 00013B88 2C 00 00 01 */ cmpwi r0, 1 -/* 80016C4C 00013B8C 40 82 00 68 */ bne lbl_80016CB4 -/* 80016C50 00013B90 88 7E 1F BC */ lbz r3, 0x1fbc(r30) -/* 80016C54 00013B94 3C 80 80 37 */ lis r4, lbl_803743F8@ha -/* 80016C58 00013B98 38 84 43 F8 */ addi r4, r4, lbl_803743F8@l -/* 80016C5C 00013B9C 38 A1 00 08 */ addi r5, r1, 8 -/* 80016C60 00013BA0 48 34 13 39 */ bl CARDOpen -/* 80016C64 00013BA4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80016C68 00013BA8 40 82 00 3C */ bne lbl_80016CA4 -/* 80016C6C 00013BAC 38 61 00 08 */ addi r3, r1, 8 -/* 80016C70 00013BB0 7F C4 F3 78 */ mr r4, r30 -/* 80016C74 00013BB4 38 A0 1F BC */ li r5, 0x1fbc -/* 80016C78 00013BB8 48 00 08 21 */ bl mDoMemCdRWm_Store -/* 80016C7C 00013BBC 7C 64 1B 79 */ or. r4, r3, r3 -/* 80016C80 00013BC0 41 82 00 10 */ beq lbl_80016C90 -/* 80016C84 00013BC4 7F C3 F3 78 */ mr r3, r30 -/* 80016C88 00013BC8 48 00 06 D9 */ bl mDoMemCd_Ctrl_c_NS_setCardState -/* 80016C8C 00013BCC 48 00 00 0C */ b lbl_80016C98 -lbl_80016C90: -/* 80016C90 00013BD0 38 00 00 04 */ li r0, 4 -/* 80016C94 00013BD4 90 1E 1F C4 */ stw r0, 0x1fc4(r30) -lbl_80016C98: -/* 80016C98 00013BD8 38 61 00 08 */ addi r3, r1, 8 -/* 80016C9C 00013BDC 48 34 14 19 */ bl CARDClose -/* 80016CA0 00013BE0 48 00 00 20 */ b lbl_80016CC0 -lbl_80016CA4: -/* 80016CA4 00013BE4 7F C3 F3 78 */ mr r3, r30 -/* 80016CA8 00013BE8 7F E4 FB 78 */ mr r4, r31 -/* 80016CAC 00013BEC 48 00 06 B5 */ bl mDoMemCd_Ctrl_c_NS_setCardState -/* 80016CB0 00013BF0 48 00 00 10 */ b lbl_80016CC0 -lbl_80016CB4: -/* 80016CB4 00013BF4 7F C3 F3 78 */ mr r3, r30 -/* 80016CB8 00013BF8 7F E4 FB 78 */ mr r4, r31 -/* 80016CBC 00013BFC 48 00 06 A5 */ bl mDoMemCd_Ctrl_c_NS_setCardState -lbl_80016CC0: -/* 80016CC0 00013C00 38 00 00 01 */ li r0, 1 -/* 80016CC4 00013C04 90 1E 1F C8 */ stw r0, 0x1fc8(r30) -/* 80016CC8 00013C08 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80016CCC 00013C0C 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 80016CD0 00013C10 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80016CD4 00013C14 7C 08 03 A6 */ mtlr r0 -/* 80016CD8 00013C18 38 21 00 30 */ addi r1, r1, 0x30 -/* 80016CDC 00013C1C 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_SaveSync -mDoMemCd_Ctrl_c_NS_SaveSync: -/* 80016CE0 00013C20 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80016CE4 00013C24 7C 08 02 A6 */ mflr r0 -/* 80016CE8 00013C28 90 01 00 14 */ stw r0, 0x14(r1) -/* 80016CEC 00013C2C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80016CF0 00013C30 93 C1 00 08 */ stw r30, 8(r1) -/* 80016CF4 00013C34 7C 7E 1B 78 */ mr r30, r3 -/* 80016CF8 00013C38 3B E0 00 00 */ li r31, 0 -/* 80016CFC 00013C3C 80 03 1F C8 */ lwz r0, 0x1fc8(r3) -/* 80016D00 00013C40 2C 00 00 00 */ cmpwi r0, 0 -/* 80016D04 00013C44 40 82 00 0C */ bne lbl_80016D10 -/* 80016D08 00013C48 38 60 00 00 */ li r3, 0 -/* 80016D0C 00013C4C 48 00 00 50 */ b lbl_80016D5C -lbl_80016D10: -/* 80016D10 00013C50 38 7E 1F CC */ addi r3, r30, 0x1fcc -/* 80016D14 00013C54 48 32 85 41 */ bl OSTryLockMutex -/* 80016D18 00013C58 2C 03 00 00 */ cmpwi r3, 0 -/* 80016D1C 00013C5C 41 82 00 3C */ beq lbl_80016D58 -/* 80016D20 00013C60 80 1E 1F C4 */ lwz r0, 0x1fc4(r30) -/* 80016D24 00013C64 2C 00 00 04 */ cmpwi r0, 4 -/* 80016D28 00013C68 40 82 00 14 */ bne lbl_80016D3C -/* 80016D2C 00013C6C 38 00 00 01 */ li r0, 1 -/* 80016D30 00013C70 90 1E 1F C4 */ stw r0, 0x1fc4(r30) -/* 80016D34 00013C74 3B E0 00 01 */ li r31, 1 -/* 80016D38 00013C78 48 00 00 18 */ b lbl_80016D50 -lbl_80016D3C: -/* 80016D3C 00013C7C 2C 00 00 01 */ cmpwi r0, 1 -/* 80016D40 00013C80 40 82 00 0C */ bne lbl_80016D4C -/* 80016D44 00013C84 3B E0 00 00 */ li r31, 0 -/* 80016D48 00013C88 48 00 00 08 */ b lbl_80016D50 -lbl_80016D4C: -/* 80016D4C 00013C8C 3B E0 00 02 */ li r31, 2 -lbl_80016D50: -/* 80016D50 00013C90 38 7E 1F CC */ addi r3, r30, 0x1fcc -/* 80016D54 00013C94 48 32 83 C9 */ bl OSUnlockMutex -lbl_80016D58: -/* 80016D58 00013C98 7F E3 FB 78 */ mr r3, r31 -lbl_80016D5C: -/* 80016D5C 00013C9C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80016D60 00013CA0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80016D64 00013CA4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80016D68 00013CA8 7C 08 03 A6 */ mtlr r0 -/* 80016D6C 00013CAC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016D70 00013CB0 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_getStatus -mDoMemCd_Ctrl_c_NS_getStatus: -/* 80016D74 00013CB4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80016D78 00013CB8 7C 08 02 A6 */ mflr r0 -/* 80016D7C 00013CBC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80016D80 00013CC0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80016D84 00013CC4 93 C1 00 08 */ stw r30, 8(r1) -/* 80016D88 00013CC8 7C 7E 1B 78 */ mr r30, r3 -/* 80016D8C 00013CCC 38 7E 1F CC */ addi r3, r30, 0x1fcc -/* 80016D90 00013CD0 48 32 84 C5 */ bl OSTryLockMutex -/* 80016D94 00013CD4 2C 03 00 00 */ cmpwi r3, 0 -/* 80016D98 00013CD8 41 82 00 A4 */ beq lbl_80016E3C -/* 80016D9C 00013CDC 80 1E 1F C4 */ lwz r0, 0x1fc4(r30) -/* 80016DA0 00013CE0 28 00 00 0D */ cmplwi r0, 0xd -/* 80016DA4 00013CE4 41 81 00 88 */ bgt lbl_80016E2C -/* 80016DA8 00013CE8 3C 60 80 3A */ lis r3, lbl_803A34F8@ha -/* 80016DAC 00013CEC 38 63 34 F8 */ addi r3, r3, lbl_803A34F8@l -/* 80016DB0 00013CF0 54 00 10 3A */ slwi r0, r0, 2 -/* 80016DB4 00013CF4 7C 03 00 2E */ lwzx r0, r3, r0 -/* 80016DB8 00013CF8 7C 09 03 A6 */ mtctr r0 -/* 80016DBC 00013CFC 4E 80 04 20 */ bctr -/* 80016DC0 00013D00 3B E0 00 02 */ li r31, 2 -/* 80016DC4 00013D04 48 00 00 68 */ b lbl_80016E2C -/* 80016DC8 00013D08 3B E0 00 01 */ li r31, 1 -/* 80016DCC 00013D0C 48 00 00 60 */ b lbl_80016E2C -/* 80016DD0 00013D10 3B E0 00 03 */ li r31, 3 -/* 80016DD4 00013D14 48 00 00 58 */ b lbl_80016E2C -/* 80016DD8 00013D18 3B E0 00 04 */ li r31, 4 -/* 80016DDC 00013D1C 48 00 00 50 */ b lbl_80016E2C -/* 80016DE0 00013D20 3B E0 00 05 */ li r31, 5 -/* 80016DE4 00013D24 48 00 00 48 */ b lbl_80016E2C -/* 80016DE8 00013D28 3B E0 00 00 */ li r31, 0 -/* 80016DEC 00013D2C 48 00 00 40 */ b lbl_80016E2C -/* 80016DF0 00013D30 3B E0 00 07 */ li r31, 7 -/* 80016DF4 00013D34 48 00 00 38 */ b lbl_80016E2C -/* 80016DF8 00013D38 3B E0 00 06 */ li r31, 6 -/* 80016DFC 00013D3C 48 00 00 30 */ b lbl_80016E2C -/* 80016E00 00013D40 3B E0 00 0B */ li r31, 0xb -/* 80016E04 00013D44 48 00 00 28 */ b lbl_80016E2C -/* 80016E08 00013D48 3B E0 00 0C */ li r31, 0xc -/* 80016E0C 00013D4C 48 00 00 20 */ b lbl_80016E2C -/* 80016E10 00013D50 3B E0 00 09 */ li r31, 9 -/* 80016E14 00013D54 48 00 00 18 */ b lbl_80016E2C -/* 80016E18 00013D58 3B E0 00 0A */ li r31, 0xa -/* 80016E1C 00013D5C 48 00 00 10 */ b lbl_80016E2C -/* 80016E20 00013D60 3B E0 00 08 */ li r31, 8 -/* 80016E24 00013D64 48 00 00 08 */ b lbl_80016E2C -/* 80016E28 00013D68 3B E0 00 0E */ li r31, 0xe -lbl_80016E2C: -/* 80016E2C 00013D6C 38 7E 1F CC */ addi r3, r30, 0x1fcc -/* 80016E30 00013D70 48 32 82 ED */ bl OSUnlockMutex -/* 80016E34 00013D74 7F E3 FB 78 */ mr r3, r31 -/* 80016E38 00013D78 48 00 00 08 */ b lbl_80016E40 -lbl_80016E3C: -/* 80016E3C 00013D7C 38 60 00 0E */ li r3, 0xe -lbl_80016E40: -/* 80016E40 00013D80 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80016E44 00013D84 83 C1 00 08 */ lwz r30, 8(r1) -/* 80016E48 00013D88 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80016E4C 00013D8C 7C 08 03 A6 */ mtlr r0 -/* 80016E50 00013D90 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016E54 00013D94 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_command_format -mDoMemCd_Ctrl_c_NS_command_format: -/* 80016E58 00013D98 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80016E5C 00013D9C 7C 08 02 A6 */ mflr r0 -/* 80016E60 00013DA0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80016E64 00013DA4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80016E68 00013DA8 7C 7F 1B 78 */ mr r31, r3 -/* 80016E6C 00013DAC 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 80016E70 00013DB0 48 32 83 E5 */ bl OSTryLockMutex -/* 80016E74 00013DB4 2C 03 00 00 */ cmpwi r3, 0 -/* 80016E78 00013DB8 41 82 00 1C */ beq lbl_80016E94 -/* 80016E7C 00013DBC 38 00 00 03 */ li r0, 3 -/* 80016E80 00013DC0 90 1F 1F C0 */ stw r0, 0x1fc0(r31) -/* 80016E84 00013DC4 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 80016E88 00013DC8 48 32 82 95 */ bl OSUnlockMutex -/* 80016E8C 00013DCC 38 7F 1F E4 */ addi r3, r31, 0x1fe4 -/* 80016E90 00013DD0 48 32 85 75 */ bl OSSignalCond -lbl_80016E94: -/* 80016E94 00013DD4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80016E98 00013DD8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80016E9C 00013DDC 7C 08 03 A6 */ mtlr r0 -/* 80016EA0 00013DE0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016EA4 00013DE4 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_format -mDoMemCd_Ctrl_c_NS_format: -/* 80016EA8 00013DE8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80016EAC 00013DEC 7C 08 02 A6 */ mflr r0 -/* 80016EB0 00013DF0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80016EB4 00013DF4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80016EB8 00013DF8 93 C1 00 08 */ stw r30, 8(r1) -/* 80016EBC 00013DFC 7C 7E 1B 78 */ mr r30, r3 -/* 80016EC0 00013E00 38 00 00 00 */ li r0, 0 -/* 80016EC4 00013E04 90 03 1F C8 */ stw r0, 0x1fc8(r3) -/* 80016EC8 00013E08 88 63 1F BC */ lbz r3, 0x1fbc(r3) -/* 80016ECC 00013E0C 48 34 0D 55 */ bl CARDFormat -/* 80016ED0 00013E10 7C 7F 1B 78 */ mr r31, r3 -/* 80016ED4 00013E14 38 7E 1F CC */ addi r3, r30, 0x1fcc -/* 80016ED8 00013E18 48 32 83 7D */ bl OSTryLockMutex -/* 80016EDC 00013E1C 2C 03 00 00 */ cmpwi r3, 0 -/* 80016EE0 00013E20 41 82 00 34 */ beq lbl_80016F14 -/* 80016EE4 00013E24 2C 1F 00 00 */ cmpwi r31, 0 -/* 80016EE8 00013E28 40 82 00 10 */ bne lbl_80016EF8 -/* 80016EEC 00013E2C 38 00 00 05 */ li r0, 5 -/* 80016EF0 00013E30 90 1E 1F C4 */ stw r0, 0x1fc4(r30) -/* 80016EF4 00013E34 48 00 00 10 */ b lbl_80016F04 -lbl_80016EF8: -/* 80016EF8 00013E38 7F C3 F3 78 */ mr r3, r30 -/* 80016EFC 00013E3C 7F E4 FB 78 */ mr r4, r31 -/* 80016F00 00013E40 48 00 04 61 */ bl mDoMemCd_Ctrl_c_NS_setCardState -lbl_80016F04: -/* 80016F04 00013E44 38 00 00 01 */ li r0, 1 -/* 80016F08 00013E48 90 1E 1F C8 */ stw r0, 0x1fc8(r30) -/* 80016F0C 00013E4C 38 7E 1F CC */ addi r3, r30, 0x1fcc -/* 80016F10 00013E50 48 32 82 0D */ bl OSUnlockMutex -lbl_80016F14: -/* 80016F14 00013E54 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80016F18 00013E58 83 C1 00 08 */ lwz r30, 8(r1) -/* 80016F1C 00013E5C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80016F20 00013E60 7C 08 03 A6 */ mtlr r0 -/* 80016F24 00013E64 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016F28 00013E68 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_FormatSync -mDoMemCd_Ctrl_c_NS_FormatSync: -/* 80016F2C 00013E6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80016F30 00013E70 7C 08 02 A6 */ mflr r0 -/* 80016F34 00013E74 90 01 00 14 */ stw r0, 0x14(r1) -/* 80016F38 00013E78 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80016F3C 00013E7C 93 C1 00 08 */ stw r30, 8(r1) -/* 80016F40 00013E80 7C 7E 1B 78 */ mr r30, r3 -/* 80016F44 00013E84 3B E0 00 00 */ li r31, 0 -/* 80016F48 00013E88 80 03 1F C8 */ lwz r0, 0x1fc8(r3) -/* 80016F4C 00013E8C 2C 00 00 00 */ cmpwi r0, 0 -/* 80016F50 00013E90 40 82 00 0C */ bne lbl_80016F5C -/* 80016F54 00013E94 38 60 00 00 */ li r3, 0 -/* 80016F58 00013E98 48 00 00 48 */ b lbl_80016FA0 -lbl_80016F5C: -/* 80016F5C 00013E9C 38 7E 1F CC */ addi r3, r30, 0x1fcc -/* 80016F60 00013EA0 48 32 82 F5 */ bl OSTryLockMutex -/* 80016F64 00013EA4 2C 03 00 00 */ cmpwi r3, 0 -/* 80016F68 00013EA8 41 82 00 34 */ beq lbl_80016F9C -/* 80016F6C 00013EAC 80 1E 1F C4 */ lwz r0, 0x1fc4(r30) -/* 80016F70 00013EB0 2C 00 00 0D */ cmpwi r0, 0xd -/* 80016F74 00013EB4 41 82 00 20 */ beq lbl_80016F94 -/* 80016F78 00013EB8 2C 00 00 05 */ cmpwi r0, 5 -/* 80016F7C 00013EBC 40 82 00 14 */ bne lbl_80016F90 -/* 80016F80 00013EC0 38 00 00 02 */ li r0, 2 -/* 80016F84 00013EC4 90 1E 1F C4 */ stw r0, 0x1fc4(r30) -/* 80016F88 00013EC8 3B E0 00 01 */ li r31, 1 -/* 80016F8C 00013ECC 48 00 00 08 */ b lbl_80016F94 -lbl_80016F90: -/* 80016F90 00013ED0 3B E0 00 02 */ li r31, 2 -lbl_80016F94: -/* 80016F94 00013ED4 38 7E 1F CC */ addi r3, r30, 0x1fcc -/* 80016F98 00013ED8 48 32 81 85 */ bl OSUnlockMutex -lbl_80016F9C: -/* 80016F9C 00013EDC 7F E3 FB 78 */ mr r3, r31 -lbl_80016FA0: -/* 80016FA0 00013EE0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80016FA4 00013EE4 83 C1 00 08 */ lwz r30, 8(r1) -/* 80016FA8 00013EE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80016FAC 00013EEC 7C 08 03 A6 */ mtlr r0 -/* 80016FB0 00013EF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80016FB4 00013EF4 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_attach -mDoMemCd_Ctrl_c_NS_attach: -/* 80016FB8 00013EF8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80016FBC 00013EFC 7C 08 02 A6 */ mflr r0 -/* 80016FC0 00013F00 90 01 00 24 */ stw r0, 0x24(r1) -/* 80016FC4 00013F04 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80016FC8 00013F08 7C 7F 1B 78 */ mr r31, r3 -/* 80016FCC 00013F0C 88 63 1F BC */ lbz r3, 0x1fbc(r3) -/* 80016FD0 00013F10 38 81 00 0C */ addi r4, r1, 0xc -/* 80016FD4 00013F14 38 A1 00 08 */ addi r5, r1, 8 -/* 80016FD8 00013F18 48 33 FA 75 */ bl CARDProbeEx -/* 80016FDC 00013F1C 2C 03 FF FD */ cmpwi r3, -3 -/* 80016FE0 00013F20 40 82 00 10 */ bne lbl_80016FF0 -/* 80016FE4 00013F24 38 00 00 00 */ li r0, 0 -/* 80016FE8 00013F28 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80016FEC 00013F2C 48 00 00 B8 */ b lbl_800170A4 -lbl_80016FF0: -/* 80016FF0 00013F30 2C 03 FF 80 */ cmpwi r3, -128 -/* 80016FF4 00013F34 40 82 00 10 */ bne lbl_80017004 -/* 80016FF8 00013F38 38 00 00 0C */ li r0, 0xc -/* 80016FFC 00013F3C 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017000 00013F40 48 00 00 A4 */ b lbl_800170A4 -lbl_80017004: -/* 80017004 00013F44 2C 03 FF FE */ cmpwi r3, -2 -/* 80017008 00013F48 40 82 00 10 */ bne lbl_80017018 -/* 8001700C 00013F4C 38 00 00 0A */ li r0, 0xa -/* 80017010 00013F50 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017014 00013F54 48 00 00 90 */ b lbl_800170A4 -lbl_80017018: -/* 80017018 00013F58 80 01 00 08 */ lwz r0, 8(r1) -/* 8001701C 00013F5C 2C 00 20 00 */ cmpwi r0, 0x2000 -/* 80017020 00013F60 41 82 00 10 */ beq lbl_80017030 -/* 80017024 00013F64 38 00 00 0B */ li r0, 0xb -/* 80017028 00013F68 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 8001702C 00013F6C 48 00 00 78 */ b lbl_800170A4 -lbl_80017030: -/* 80017030 00013F70 7F E3 FB 78 */ mr r3, r31 -/* 80017034 00013F74 48 00 01 15 */ bl mDoMemCd_Ctrl_c_NS_mount -/* 80017038 00013F78 2C 03 00 00 */ cmpwi r3, 0 -/* 8001703C 00013F7C 41 82 00 68 */ beq lbl_800170A4 -/* 80017040 00013F80 7F E3 FB 78 */ mr r3, r31 -/* 80017044 00013F84 48 00 02 31 */ bl mDoMemCd_Ctrl_c_NS_loadfile -/* 80017048 00013F88 2C 03 00 00 */ cmpwi r3, 0 -/* 8001704C 00013F8C 41 82 00 10 */ beq lbl_8001705C -/* 80017050 00013F90 38 00 00 01 */ li r0, 1 -/* 80017054 00013F94 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017058 00013F98 48 00 00 4C */ b lbl_800170A4 -lbl_8001705C: -/* 8001705C 00013F9C 7F E3 FB 78 */ mr r3, r31 -/* 80017060 00013FA0 48 00 02 75 */ bl mDoMemCd_Ctrl_c_NS_checkspace -/* 80017064 00013FA4 2C 03 00 02 */ cmpwi r3, 2 -/* 80017068 00013FA8 41 82 00 34 */ beq lbl_8001709C -/* 8001706C 00013FAC 40 80 00 38 */ bge lbl_800170A4 -/* 80017070 00013FB0 2C 03 00 00 */ cmpwi r3, 0 -/* 80017074 00013FB4 41 82 00 10 */ beq lbl_80017084 -/* 80017078 00013FB8 40 80 00 18 */ bge lbl_80017090 -/* 8001707C 00013FBC 48 00 00 28 */ b lbl_800170A4 -/* 80017080 00013FC0 48 00 00 24 */ b lbl_800170A4 -lbl_80017084: -/* 80017084 00013FC4 38 00 00 02 */ li r0, 2 -/* 80017088 00013FC8 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 8001708C 00013FCC 48 00 00 18 */ b lbl_800170A4 -lbl_80017090: -/* 80017090 00013FD0 38 00 00 08 */ li r0, 8 -/* 80017094 00013FD4 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017098 00013FD8 48 00 00 0C */ b lbl_800170A4 -lbl_8001709C: -/* 8001709C 00013FDC 38 00 00 09 */ li r0, 9 -/* 800170A0 00013FE0 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -lbl_800170A4: -/* 800170A4 00013FE4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 800170A8 00013FE8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800170AC 00013FEC 7C 08 03 A6 */ mtlr r0 -/* 800170B0 00013FF0 38 21 00 20 */ addi r1, r1, 0x20 -/* 800170B4 00013FF4 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_command_attach -mDoMemCd_Ctrl_c_NS_command_attach: -/* 800170B8 00013FF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800170BC 00013FFC 7C 08 02 A6 */ mflr r0 -/* 800170C0 00014000 90 01 00 14 */ stw r0, 0x14(r1) -/* 800170C4 00014004 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800170C8 00014008 7C 7F 1B 78 */ mr r31, r3 -/* 800170CC 0001400C 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 800170D0 00014010 48 32 81 85 */ bl OSTryLockMutex -/* 800170D4 00014014 2C 03 00 00 */ cmpwi r3, 0 -/* 800170D8 00014018 41 82 00 24 */ beq lbl_800170FC -/* 800170DC 0001401C 38 00 00 0D */ li r0, 0xd -/* 800170E0 00014020 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 800170E4 00014024 38 00 00 04 */ li r0, 4 -/* 800170E8 00014028 90 1F 1F C0 */ stw r0, 0x1fc0(r31) -/* 800170EC 0001402C 38 7F 1F CC */ addi r3, r31, 0x1fcc -/* 800170F0 00014030 48 32 80 2D */ bl OSUnlockMutex -/* 800170F4 00014034 38 7F 1F E4 */ addi r3, r31, 0x1fe4 -/* 800170F8 00014038 48 32 83 0D */ bl OSSignalCond -lbl_800170FC: -/* 800170FC 0001403C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80017100 00014040 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80017104 00014044 7C 08 03 A6 */ mtlr r0 -/* 80017108 00014048 38 21 00 10 */ addi r1, r1, 0x10 -/* 8001710C 0001404C 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_detach -mDoMemCd_Ctrl_c_NS_detach: -/* 80017110 00014050 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80017114 00014054 7C 08 02 A6 */ mflr r0 -/* 80017118 00014058 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001711C 0001405C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80017120 00014060 7C 7F 1B 78 */ mr r31, r3 -/* 80017124 00014064 88 63 1F BC */ lbz r3, 0x1fbc(r3) -/* 80017128 00014068 48 34 02 B1 */ bl CARDUnmount -/* 8001712C 0001406C 38 00 00 00 */ li r0, 0 -/* 80017130 00014070 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017134 00014074 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80017138 00014078 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001713C 0001407C 7C 08 03 A6 */ mtlr r0 -/* 80017140 00014080 38 21 00 10 */ addi r1, r1, 0x10 -/* 80017144 00014084 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_mount -mDoMemCd_Ctrl_c_NS_mount: -/* 80017148 00014088 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8001714C 0001408C 7C 08 02 A6 */ mflr r0 -/* 80017150 00014090 90 01 00 14 */ stw r0, 0x14(r1) -/* 80017154 00014094 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80017158 00014098 7C 7F 1B 78 */ mr r31, r3 -/* 8001715C 0001409C 88 63 1F BC */ lbz r3, 0x1fbc(r3) -/* 80017160 000140A0 3C 80 80 3E */ lis r4, lbl_803E0F40@ha -/* 80017164 000140A4 38 84 0F 40 */ addi r4, r4, lbl_803E0F40@l -/* 80017168 000140A8 38 A0 00 00 */ li r5, 0 -/* 8001716C 000140AC 48 34 01 89 */ bl CARDMount -/* 80017170 000140B0 2C 03 FF FB */ cmpwi r3, -5 -/* 80017174 000140B4 41 82 00 44 */ beq lbl_800171B8 -/* 80017178 000140B8 40 80 00 28 */ bge lbl_800171A0 -/* 8001717C 000140BC 2C 03 FF F3 */ cmpwi r3, -13 -/* 80017180 000140C0 41 82 00 CC */ beq lbl_8001724C -/* 80017184 000140C4 40 80 00 10 */ bge lbl_80017194 -/* 80017188 000140C8 2C 03 FF 80 */ cmpwi r3, -128 -/* 8001718C 000140CC 41 82 00 2C */ beq lbl_800171B8 -/* 80017190 000140D0 48 00 00 CC */ b lbl_8001725C -lbl_80017194: -/* 80017194 000140D4 2C 03 FF FA */ cmpwi r3, -6 -/* 80017198 000140D8 40 80 00 40 */ bge lbl_800171D8 -/* 8001719C 000140DC 48 00 00 C0 */ b lbl_8001725C -lbl_800171A0: -/* 800171A0 000140E0 2C 03 00 00 */ cmpwi r3, 0 -/* 800171A4 000140E4 41 82 00 34 */ beq lbl_800171D8 -/* 800171A8 000140E8 40 80 00 B4 */ bge lbl_8001725C -/* 800171AC 000140EC 2C 03 FF FD */ cmpwi r3, -3 -/* 800171B0 000140F0 41 82 00 18 */ beq lbl_800171C8 -/* 800171B4 000140F4 48 00 00 A8 */ b lbl_8001725C -lbl_800171B8: -/* 800171B8 000140F8 38 00 00 0C */ li r0, 0xc -/* 800171BC 000140FC 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 800171C0 00014100 38 60 00 00 */ li r3, 0 -/* 800171C4 00014104 48 00 00 9C */ b lbl_80017260 -lbl_800171C8: -/* 800171C8 00014108 38 00 00 00 */ li r0, 0 -/* 800171CC 0001410C 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 800171D0 00014110 38 60 00 00 */ li r3, 0 -/* 800171D4 00014114 48 00 00 8C */ b lbl_80017260 -lbl_800171D8: -/* 800171D8 00014118 88 7F 1F BC */ lbz r3, 0x1fbc(r31) -/* 800171DC 0001411C 48 33 F7 19 */ bl CARDCheck -/* 800171E0 00014120 38 03 00 0D */ addi r0, r3, 0xd -/* 800171E4 00014124 28 00 00 0D */ cmplwi r0, 0xd -/* 800171E8 00014128 41 81 00 74 */ bgt lbl_8001725C -/* 800171EC 0001412C 3C 60 80 3A */ lis r3, lbl_803A3530@ha -/* 800171F0 00014130 38 63 35 30 */ addi r3, r3, lbl_803A3530@l -/* 800171F4 00014134 54 00 10 3A */ slwi r0, r0, 2 -/* 800171F8 00014138 7C 03 00 2E */ lwzx r0, r3, r0 -/* 800171FC 0001413C 7C 09 03 A6 */ mtctr r0 -/* 80017200 00014140 4E 80 04 20 */ bctr -/* 80017204 00014144 38 60 00 01 */ li r3, 1 -/* 80017208 00014148 48 00 00 58 */ b lbl_80017260 -/* 8001720C 0001414C 38 00 00 07 */ li r0, 7 -/* 80017210 00014150 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017214 00014154 38 60 00 00 */ li r3, 0 -/* 80017218 00014158 48 00 00 48 */ b lbl_80017260 -/* 8001721C 0001415C 38 00 00 0C */ li r0, 0xc -/* 80017220 00014160 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017224 00014164 38 60 00 00 */ li r3, 0 -/* 80017228 00014168 48 00 00 38 */ b lbl_80017260 -/* 8001722C 0001416C 38 00 00 00 */ li r0, 0 -/* 80017230 00014170 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017234 00014174 38 60 00 00 */ li r3, 0 -/* 80017238 00014178 48 00 00 28 */ b lbl_80017260 -/* 8001723C 0001417C 38 00 00 06 */ li r0, 6 -/* 80017240 00014180 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017244 00014184 38 60 00 00 */ li r3, 0 -/* 80017248 00014188 48 00 00 18 */ b lbl_80017260 -lbl_8001724C: -/* 8001724C 0001418C 38 00 00 06 */ li r0, 6 -/* 80017250 00014190 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 80017254 00014194 38 60 00 00 */ li r3, 0 -/* 80017258 00014198 48 00 00 08 */ b lbl_80017260 -lbl_8001725C: -/* 8001725C 0001419C 38 60 00 00 */ li r3, 0 -lbl_80017260: -/* 80017260 000141A0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80017264 000141A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80017268 000141A8 7C 08 03 A6 */ mtlr r0 -/* 8001726C 000141AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80017270 000141B0 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_loadfile -mDoMemCd_Ctrl_c_NS_loadfile: -/* 80017274 000141B4 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80017278 000141B8 7C 08 02 A6 */ mflr r0 -/* 8001727C 000141BC 90 01 00 34 */ stw r0, 0x34(r1) -/* 80017280 000141C0 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80017284 000141C4 7C 7F 1B 78 */ mr r31, r3 -/* 80017288 000141C8 88 63 1F BC */ lbz r3, 0x1fbc(r3) -/* 8001728C 000141CC 3C 80 80 37 */ lis r4, lbl_803743F8@ha -/* 80017290 000141D0 38 84 43 F8 */ addi r4, r4, lbl_803743F8@l -/* 80017294 000141D4 38 A1 00 08 */ addi r5, r1, 8 -/* 80017298 000141D8 48 34 0D 01 */ bl CARDOpen -/* 8001729C 000141DC 7C 64 1B 79 */ or. r4, r3, r3 -/* 800172A0 000141E0 40 82 00 14 */ bne lbl_800172B4 -/* 800172A4 000141E4 38 61 00 08 */ addi r3, r1, 8 -/* 800172A8 000141E8 48 34 0E 0D */ bl CARDClose -/* 800172AC 000141EC 38 60 00 01 */ li r3, 1 -/* 800172B0 000141F0 48 00 00 10 */ b lbl_800172C0 -lbl_800172B4: -/* 800172B4 000141F4 7F E3 FB 78 */ mr r3, r31 -/* 800172B8 000141F8 48 00 00 A9 */ bl mDoMemCd_Ctrl_c_NS_setCardState -/* 800172BC 000141FC 38 60 00 00 */ li r3, 0 -lbl_800172C0: -/* 800172C0 00014200 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 800172C4 00014204 80 01 00 34 */ lwz r0, 0x34(r1) -/* 800172C8 00014208 7C 08 03 A6 */ mtlr r0 -/* 800172CC 0001420C 38 21 00 30 */ addi r1, r1, 0x30 -/* 800172D0 00014210 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_checkspace -mDoMemCd_Ctrl_c_NS_checkspace: -/* 800172D4 00014214 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800172D8 00014218 7C 08 02 A6 */ mflr r0 -/* 800172DC 0001421C 90 01 00 24 */ stw r0, 0x24(r1) -/* 800172E0 00014220 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 800172E4 00014224 7C 7F 1B 78 */ mr r31, r3 -/* 800172E8 00014228 88 63 1F BC */ lbz r3, 0x1fbc(r3) -/* 800172EC 0001422C 38 81 00 0C */ addi r4, r1, 0xc -/* 800172F0 00014230 38 A1 00 08 */ addi r5, r1, 8 -/* 800172F4 00014234 48 33 C9 DD */ bl CARDFreeBlocks -/* 800172F8 00014238 7C 64 1B 79 */ or. r4, r3, r3 -/* 800172FC 0001423C 41 82 00 14 */ beq lbl_80017310 -/* 80017300 00014240 7F E3 FB 78 */ mr r3, r31 -/* 80017304 00014244 48 00 00 5D */ bl mDoMemCd_Ctrl_c_NS_setCardState -/* 80017308 00014248 38 60 00 03 */ li r3, 3 -/* 8001730C 0001424C 48 00 00 40 */ b lbl_8001734C -lbl_80017310: -/* 80017310 00014250 80 81 00 0C */ lwz r4, 0xc(r1) -/* 80017314 00014254 3C 60 00 01 */ lis r3, 0x00008000@ha -/* 80017318 00014258 38 03 80 00 */ addi r0, r3, 0x00008000@l -/* 8001731C 0001425C 7C 04 00 00 */ cmpw r4, r0 -/* 80017320 00014260 40 80 00 0C */ bge lbl_8001732C -/* 80017324 00014264 38 60 00 01 */ li r3, 1 -/* 80017328 00014268 48 00 00 24 */ b lbl_8001734C -lbl_8001732C: -/* 8001732C 0001426C 80 81 00 08 */ lwz r4, 8(r1) -/* 80017330 00014270 38 60 00 01 */ li r3, 1 -/* 80017334 00014274 7C 03 20 10 */ subfc r0, r3, r4 -/* 80017338 00014278 54 63 0F FE */ srwi r3, r3, 0x1f -/* 8001733C 0001427C 54 80 0F FE */ srwi r0, r4, 0x1f -/* 80017340 00014280 7C 60 19 10 */ subfe r3, r0, r3 -/* 80017344 00014284 38 00 00 02 */ li r0, 2 -/* 80017348 00014288 7C 03 18 38 */ and r3, r0, r3 -lbl_8001734C: -/* 8001734C 0001428C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80017350 00014290 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80017354 00014294 7C 08 03 A6 */ mtlr r0 -/* 80017358 00014298 38 21 00 20 */ addi r1, r1, 0x20 -/* 8001735C 0001429C 4E 80 00 20 */ blr - -.global mDoMemCd_Ctrl_c_NS_setCardState -mDoMemCd_Ctrl_c_NS_setCardState: -/* 80017360 000142A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80017364 000142A4 7C 08 02 A6 */ mflr r0 -/* 80017368 000142A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001736C 000142AC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80017370 000142B0 7C 7F 1B 78 */ mr r31, r3 -/* 80017374 000142B4 2C 04 FF FB */ cmpwi r4, -5 -/* 80017378 000142B8 41 82 00 48 */ beq lbl_800173C0 -/* 8001737C 000142BC 40 80 00 28 */ bge lbl_800173A4 -/* 80017380 000142C0 2C 04 FF F3 */ cmpwi r4, -13 -/* 80017384 000142C4 41 82 00 70 */ beq lbl_800173F4 -/* 80017388 000142C8 40 80 00 10 */ bge lbl_80017398 -/* 8001738C 000142CC 2C 04 FF 80 */ cmpwi r4, -128 -/* 80017390 000142D0 41 82 00 30 */ beq lbl_800173C0 -/* 80017394 000142D4 48 00 00 74 */ b lbl_80017408 -lbl_80017398: -/* 80017398 000142D8 2C 04 FF FA */ cmpwi r4, -6 -/* 8001739C 000142DC 40 80 00 3C */ bge lbl_800173D8 -/* 800173A0 000142E0 48 00 00 68 */ b lbl_80017408 -lbl_800173A4: -/* 800173A4 000142E4 2C 04 00 00 */ cmpwi r4, 0 -/* 800173A8 000142E8 41 82 00 30 */ beq lbl_800173D8 -/* 800173AC 000142EC 40 80 00 5C */ bge lbl_80017408 -/* 800173B0 000142F0 2C 04 FF FD */ cmpwi r4, -3 -/* 800173B4 000142F4 41 82 00 18 */ beq lbl_800173CC -/* 800173B8 000142F8 40 80 00 50 */ bge lbl_80017408 -/* 800173BC 000142FC 48 00 00 44 */ b lbl_80017400 -lbl_800173C0: -/* 800173C0 00014300 38 00 00 0C */ li r0, 0xc -/* 800173C4 00014304 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 800173C8 00014308 48 00 00 40 */ b lbl_80017408 -lbl_800173CC: -/* 800173CC 0001430C 38 00 00 00 */ li r0, 0 -/* 800173D0 00014310 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 800173D4 00014314 48 00 00 34 */ b lbl_80017408 -lbl_800173D8: -/* 800173D8 00014318 88 7F 1F BC */ lbz r3, 0x1fbc(r31) -/* 800173DC 0001431C 48 33 F5 19 */ bl CARDCheck -/* 800173E0 00014320 2C 03 00 00 */ cmpwi r3, 0 -/* 800173E4 00014324 41 82 00 24 */ beq lbl_80017408 -/* 800173E8 00014328 38 00 00 07 */ li r0, 7 -/* 800173EC 0001432C 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 800173F0 00014330 48 00 00 18 */ b lbl_80017408 -lbl_800173F4: -/* 800173F4 00014334 38 00 00 06 */ li r0, 6 -/* 800173F8 00014338 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -/* 800173FC 0001433C 48 00 00 0C */ b lbl_80017408 -lbl_80017400: -/* 80017400 00014340 38 00 00 02 */ li r0, 2 -/* 80017404 00014344 90 1F 1F C4 */ stw r0, 0x1fc4(r31) -lbl_80017408: -/* 80017408 00014348 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8001740C 0001434C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80017410 00014350 7C 08 03 A6 */ mtlr r0 -/* 80017414 00014354 38 21 00 10 */ addi r1, r1, 0x10 -/* 80017418 00014358 4E 80 00 20 */ blr -.global mDoMemCd_main -mDoMemCd_main: -/* 8001741C 0001435C 94 21 FF 70 */ stwu r1, -0x90(r1) -/* 80017420 00014360 7C 08 02 A6 */ mflr r0 -/* 80017424 00014364 90 01 00 94 */ stw r0, 0x94(r1) -/* 80017428 00014368 48 32 98 5D */ bl OSGetCurrentThread -/* 8001742C 0001436C 7C 64 1B 78 */ mr r4, r3 -/* 80017430 00014370 38 61 00 08 */ addi r3, r1, 8 -/* 80017434 00014374 38 A0 00 00 */ li r5, 0 -/* 80017438 00014378 48 2B A2 81 */ bl __ct__9JKRThreadFP8OSThreadi -/* 8001743C 0001437C 38 61 00 08 */ addi r3, r1, 8 -/* 80017440 00014380 38 80 FF FF */ li r4, -1 -/* 80017444 00014384 48 2B A3 15 */ bl __dt__9JKRThreadFv -/* 80017448 00014388 4B FF 78 9D */ bl mDoExt_getAssertHeap -/* 8001744C 0001438C 48 2B 6F ED */ bl becomeCurrentHeap__7JKRHeapFv -/* 80017450 00014390 3C 60 80 3F */ lis r3, lbl_803EAF40@ha -/* 80017454 00014394 38 63 AF 40 */ addi r3, r3, lbl_803EAF40@l -/* 80017458 00014398 4B FF F3 79 */ bl mDoMemCd_Ctrl_c_NS_main -/* 8001745C 0001439C 38 60 00 00 */ li r3, 0 -/* 80017460 000143A0 80 01 00 94 */ lwz r0, 0x94(r1) -/* 80017464 000143A4 7C 08 03 A6 */ mtlr r0 -/* 80017468 000143A8 38 21 00 90 */ addi r1, r1, 0x90 -/* 8001746C 000143AC 4E 80 00 20 */ blr -/* 80017470 000143B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80017474 000143B4 7C 08 02 A6 */ mflr r0 -/* 80017478 000143B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8001747C 000143BC 3C 60 80 3F */ lis r3, lbl_803EAF40@ha -/* 80017480 000143C0 38 63 AF 40 */ addi r3, r3, lbl_803EAF40@l -/* 80017484 000143C4 4B FF F2 A9 */ bl mDoMemCd_Ctrl_c -/* 80017488 000143C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8001748C 000143CC 7C 08 03 A6 */ mtlr r0 -/* 80017490 000143D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80017494 000143D4 4E 80 00 20 */ blr - diff --git a/include/m_Do/m_Do_MemCard/asm/func_8001672C.s b/include/m_Do/m_Do_MemCard/asm/func_8001672C.s new file mode 100644 index 00000000000..9dce9f83256 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_8001672C.s @@ -0,0 +1 @@ +/* 8001672C 0001366C 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016730.s b/include/m_Do/m_Do_MemCard/asm/func_80016730.s new file mode 100644 index 00000000000..461fd6e4db4 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016730.s @@ -0,0 +1,42 @@ +/* 80016730 00013670 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80016734 00013674 7C 08 02 A6 */ mflr r0 +/* 80016738 00013678 90 01 00 14 */ stw r0, 0x14(r1) +/* 8001673C 0001367C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80016740 00013680 7C 7F 1B 78 */ mr r31, r3 +/* 80016744 00013684 48 33 D3 85 */ bl CARDInit +/* 80016748 00013688 38 60 00 00 */ li r3, 0 +/* 8001674C 0001368C 98 7F 1F BD */ stb r3, 0x1fbd(r31) +/* 80016750 00013690 38 00 00 02 */ li r0, 2 +/* 80016754 00013694 98 1F 1F BE */ stb r0, 0x1fbe(r31) +/* 80016758 00013698 90 7F 1F C4 */ stw r3, 0x1fc4(r31) +/* 8001675C 0001369C 90 7F 1F C0 */ stw r3, 0x1fc0(r31) +/* 80016760 000136A0 98 7F 1F BC */ stb r3, 0x1fbc(r31) +/* 80016764 000136A4 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 80016768 000136A8 48 32 88 A1 */ bl OSInitMutex +/* 8001676C 000136AC 38 7F 1F E4 */ addi r3, r31, 0x1fe4 +/* 80016770 000136B0 48 32 8B A1 */ bl OSInitCond +/* 80016774 000136B4 48 32 A5 11 */ bl OSGetCurrentThread +/* 80016778 000136B8 48 32 B6 E5 */ bl OSGetThreadPriority +/* 8001677C 000136BC 7C 68 1B 78 */ mr r8, r3 +/* 80016780 000136C0 3C 60 80 3E */ lis r3, lbl_803E0C20@ha +/* 80016784 000136C4 38 63 0C 20 */ addi r3, r3, lbl_803E0C20@l +/*.global mDoMemCd_main*/ +/* 80016788 000136C8 3C 80 80 01 */ lis r4, mDoMemCd_main@ha +/*.global mDoMemCd_main*/ +/* 8001678C 000136CC 38 84 74 1C */ addi r4, r4, mDoMemCd_main@l +/* 80016790 000136D0 38 A0 00 00 */ li r5, 0 +/* 80016794 000136D4 3C C0 80 3E */ lis r6, lbl_803DFC20@ha +/* 80016798 000136D8 38 C6 FC 20 */ addi r6, r6, lbl_803DFC20@l +/* 8001679C 000136DC 38 C6 10 00 */ addi r6, r6, 0x1000 +/* 800167A0 000136E0 38 E0 10 00 */ li r7, 0x1000 +/* 800167A4 000136E4 39 08 00 01 */ addi r8, r8, 1 +/* 800167A8 000136E8 39 20 00 01 */ li r9, 1 +/* 800167AC 000136EC 48 32 AA E1 */ bl OSCreateThread +/* 800167B0 000136F0 3C 60 80 3E */ lis r3, lbl_803E0C20@ha +/* 800167B4 000136F4 38 63 0C 20 */ addi r3, r3, lbl_803E0C20@l +/* 800167B8 000136F8 48 32 AF FD */ bl OSResumeThread +/* 800167BC 000136FC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800167C0 00013700 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800167C4 00013704 7C 08 03 A6 */ mtlr r0 +/* 800167C8 00013708 38 21 00 10 */ addi r1, r1, 0x10 +/* 800167CC 0001370C 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_800167D0.s b/include/m_Do/m_Do_MemCard/asm/func_800167D0.s new file mode 100644 index 00000000000..815407ab5f0 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_800167D0.s @@ -0,0 +1,59 @@ +/* 800167D0 00013710 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800167D4 00013714 7C 08 02 A6 */ mflr r0 +/* 800167D8 00013718 90 01 00 14 */ stw r0, 0x14(r1) +/* 800167DC 0001371C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800167E0 00013720 7C 7F 1B 78 */ mr r31, r3 +lbl_800167E4: +/* 800167E4 00013724 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 800167E8 00013728 48 32 88 59 */ bl OSLockMutex +/* 800167EC 0001372C 48 00 00 10 */ b lbl_800167FC +lbl_800167F0: +/* 800167F0 00013730 38 7F 1F E4 */ addi r3, r31, 0x1fe4 +/* 800167F4 00013734 38 9F 1F CC */ addi r4, r31, 0x1fcc +/* 800167F8 00013738 48 32 8B 39 */ bl OSWaitCond +lbl_800167FC: +/* 800167FC 0001373C 80 1F 1F C0 */ lwz r0, 0x1fc0(r31) +/* 80016800 00013740 2C 00 00 00 */ cmpwi r0, 0 +/* 80016804 00013744 41 82 FF EC */ beq lbl_800167F0 +/* 80016808 00013748 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 8001680C 0001374C 48 32 89 11 */ bl OSUnlockMutex +/* 80016810 00013750 80 1F 1F C0 */ lwz r0, 0x1fc0(r31) +/* 80016814 00013754 2C 00 00 03 */ cmpwi r0, 3 +/* 80016818 00013758 41 82 00 40 */ beq lbl_80016858 +/* 8001681C 0001375C 40 80 00 14 */ bge lbl_80016830 +/* 80016820 00013760 2C 00 00 01 */ cmpwi r0, 1 +/* 80016824 00013764 41 82 00 1C */ beq lbl_80016840 +/* 80016828 00013768 40 80 00 24 */ bge lbl_8001684C +/* 8001682C 0001376C 48 00 00 4C */ b lbl_80016878 +lbl_80016830: +/* 80016830 00013770 2C 00 00 05 */ cmpwi r0, 5 +/* 80016834 00013774 41 82 00 3C */ beq lbl_80016870 +/* 80016838 00013778 40 80 00 40 */ bge lbl_80016878 +/* 8001683C 0001377C 48 00 00 28 */ b lbl_80016864 +lbl_80016840: +/* 80016840 00013780 7F E3 FB 78 */ mr r3, r31 +/* 80016844 00013784 48 00 01 C9 */ bl mDoMemCd_Ctrl_c_NS_restore +/* 80016848 00013788 48 00 00 30 */ b lbl_80016878 +lbl_8001684C: +/* 8001684C 0001378C 7F E3 FB 78 */ mr r3, r31 +/* 80016850 00013790 48 00 03 85 */ bl mDoMemCd_Ctrl_c_NS_store +/* 80016854 00013794 48 00 00 24 */ b lbl_80016878 +lbl_80016858: +/* 80016858 00013798 7F E3 FB 78 */ mr r3, r31 +/* 8001685C 0001379C 48 00 06 4D */ bl mDoMemCd_Ctrl_c_NS_format +/* 80016860 000137A0 48 00 00 18 */ b lbl_80016878 +lbl_80016864: +/* 80016864 000137A4 7F E3 FB 78 */ mr r3, r31 +/* 80016868 000137A8 48 00 07 51 */ bl mDoMemCd_Ctrl_c_NS_attach +/* 8001686C 000137AC 48 00 00 0C */ b lbl_80016878 +lbl_80016870: +/* 80016870 000137B0 7F E3 FB 78 */ mr r3, r31 +/* 80016874 000137B4 48 00 08 9D */ bl mDoMemCd_Ctrl_c_NS_detach +lbl_80016878: +/* 80016878 000137B8 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 8001687C 000137BC 48 32 87 C5 */ bl OSLockMutex +/* 80016880 000137C0 38 00 00 00 */ li r0, 0 +/* 80016884 000137C4 90 1F 1F C0 */ stw r0, 0x1fc0(r31) +/* 80016888 000137C8 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 8001688C 000137CC 48 32 88 91 */ bl OSUnlockMutex +/* 80016890 000137D0 4B FF FF 54 */ b lbl_800167E4 diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016894.s b/include/m_Do/m_Do_MemCard/asm/func_80016894.s new file mode 100644 index 00000000000..465d700a49d --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016894.s @@ -0,0 +1,75 @@ +/* 80016894 000137D4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80016898 000137D8 7C 08 02 A6 */ mflr r0 +/* 8001689C 000137DC 90 01 00 14 */ stw r0, 0x14(r1) +/* 800168A0 000137E0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800168A4 000137E4 7C 7F 1B 78 */ mr r31, r3 +/* 800168A8 000137E8 80 8D 86 F8 */ lwz r4, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) +/* 800168AC 000137EC 80 04 00 00 */ lwz r0, 0(r4) +/* 800168B0 000137F0 2C 00 00 00 */ cmpwi r0, 0 +/* 800168B4 000137F4 41 82 00 30 */ beq lbl_800168E4 +/* 800168B8 000137F8 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 800168BC 000137FC 48 32 87 85 */ bl OSLockMutex +/* 800168C0 00013800 38 00 00 05 */ li r0, 5 +/* 800168C4 00013804 90 1F 1F C0 */ stw r0, 0x1fc0(r31) +/* 800168C8 00013808 38 00 00 03 */ li r0, 3 +/* 800168CC 0001380C 98 1F 1F BE */ stb r0, 0x1fbe(r31) +/* 800168D0 00013810 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 800168D4 00013814 48 32 88 49 */ bl OSUnlockMutex +/* 800168D8 00013818 38 7F 1F E4 */ addi r3, r31, 0x1fe4 +/* 800168DC 0001381C 48 32 8B 29 */ bl OSSignalCond +/* 800168E0 00013820 48 00 00 C0 */ b lbl_800169A0 +lbl_800168E4: +/* 800168E4 00013824 38 80 00 00 */ li r4, 0 +/* 800168E8 00013828 48 00 04 8D */ bl mDoMemCd_Ctrl_c_NS_getStatus +/* 800168EC 0001382C 28 03 00 0E */ cmplwi r3, 0xe +/* 800168F0 00013830 41 82 00 B0 */ beq lbl_800169A0 +/* 800168F4 00013834 38 60 00 00 */ li r3, 0 +/* 800168F8 00013838 48 34 01 1D */ bl CARDProbe +/* 800168FC 0001383C 2C 03 00 00 */ cmpwi r3, 0 +/* 80016900 00013840 41 82 00 4C */ beq lbl_8001694C +/* 80016904 00013844 7F E3 FB 78 */ mr r3, r31 +/* 80016908 00013848 38 80 00 00 */ li r4, 0 +/* 8001690C 0001384C 48 00 04 69 */ bl mDoMemCd_Ctrl_c_NS_getStatus +/* 80016910 00013850 28 03 00 00 */ cmplwi r3, 0 +/* 80016914 00013854 40 82 00 38 */ bne lbl_8001694C +/* 80016918 00013858 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 8001691C 0001385C 48 32 87 25 */ bl OSLockMutex +/* 80016920 00013860 38 00 00 00 */ li r0, 0 +/* 80016924 00013864 98 1F 1F BE */ stb r0, 0x1fbe(r31) +/* 80016928 00013868 38 00 00 0D */ li r0, 0xd +/* 8001692C 0001386C 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80016930 00013870 38 00 00 04 */ li r0, 4 +/* 80016934 00013874 90 1F 1F C0 */ stw r0, 0x1fc0(r31) +/* 80016938 00013878 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 8001693C 0001387C 48 32 87 E1 */ bl OSUnlockMutex +/* 80016940 00013880 38 7F 1F E4 */ addi r3, r31, 0x1fe4 +/* 80016944 00013884 48 32 8A C1 */ bl OSSignalCond +/* 80016948 00013888 48 00 00 58 */ b lbl_800169A0 +lbl_8001694C: +/* 8001694C 0001388C 38 60 00 00 */ li r3, 0 +/* 80016950 00013890 48 34 00 C5 */ bl CARDProbe +/* 80016954 00013894 2C 03 00 00 */ cmpwi r3, 0 +/* 80016958 00013898 40 82 00 48 */ bne lbl_800169A0 +/* 8001695C 0001389C 7F E3 FB 78 */ mr r3, r31 +/* 80016960 000138A0 38 80 00 00 */ li r4, 0 +/* 80016964 000138A4 48 00 04 11 */ bl mDoMemCd_Ctrl_c_NS_getStatus +/* 80016968 000138A8 28 03 00 00 */ cmplwi r3, 0 +/* 8001696C 000138AC 41 82 00 34 */ beq lbl_800169A0 +/* 80016970 000138B0 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 80016974 000138B4 48 32 86 CD */ bl OSLockMutex +/* 80016978 000138B8 38 00 00 01 */ li r0, 1 +/* 8001697C 000138BC 98 1F 1F BE */ stb r0, 0x1fbe(r31) +/* 80016980 000138C0 38 00 00 0D */ li r0, 0xd +/* 80016984 000138C4 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80016988 000138C8 38 00 00 05 */ li r0, 5 +/* 8001698C 000138CC 90 1F 1F C0 */ stw r0, 0x1fc0(r31) +/* 80016990 000138D0 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 80016994 000138D4 48 32 87 89 */ bl OSUnlockMutex +/* 80016998 000138D8 38 7F 1F E4 */ addi r3, r31, 0x1fe4 +/* 8001699C 000138DC 48 32 8A 69 */ bl OSSignalCond +lbl_800169A0: +/* 800169A0 000138E0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800169A4 000138E4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800169A8 000138E8 7C 08 03 A6 */ mtlr r0 +/* 800169AC 000138EC 38 21 00 10 */ addi r1, r1, 0x10 +/* 800169B0 000138F0 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_800169B4.s b/include/m_Do/m_Do_MemCard/asm/func_800169B4.s new file mode 100644 index 00000000000..975a7fb0d6c --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_800169B4.s @@ -0,0 +1,23 @@ +/* 800169B4 000138F4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800169B8 000138F8 7C 08 02 A6 */ mflr r0 +/* 800169BC 000138FC 90 01 00 14 */ stw r0, 0x14(r1) +/* 800169C0 00013900 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800169C4 00013904 7C 7F 1B 78 */ mr r31, r3 +/* 800169C8 00013908 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 800169CC 0001390C 48 32 88 89 */ bl OSTryLockMutex +/* 800169D0 00013910 2C 03 00 00 */ cmpwi r3, 0 +/* 800169D4 00013914 41 82 00 24 */ beq lbl_800169F8 +/* 800169D8 00013918 38 00 00 00 */ li r0, 0 +/* 800169DC 0001391C 90 1F 1F C8 */ stw r0, 0x1fc8(r31) +/* 800169E0 00013920 38 00 00 01 */ li r0, 1 +/* 800169E4 00013924 90 1F 1F C0 */ stw r0, 0x1fc0(r31) +/* 800169E8 00013928 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 800169EC 0001392C 48 32 87 31 */ bl OSUnlockMutex +/* 800169F0 00013930 38 7F 1F E4 */ addi r3, r31, 0x1fe4 +/* 800169F4 00013934 48 32 8A 11 */ bl OSSignalCond +lbl_800169F8: +/* 800169F8 00013938 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800169FC 0001393C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80016A00 00013940 7C 08 03 A6 */ mtlr r0 +/* 80016A04 00013944 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016A08 00013948 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016A0C.s b/include/m_Do/m_Do_MemCard/asm/func_80016A0C.s new file mode 100644 index 00000000000..05cf47e4d1b --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016A0C.s @@ -0,0 +1,45 @@ +/* 80016A0C 0001394C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80016A10 00013950 7C 08 02 A6 */ mflr r0 +/* 80016A14 00013954 90 01 00 34 */ stw r0, 0x34(r1) +/* 80016A18 00013958 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 80016A1C 0001395C 93 C1 00 28 */ stw r30, 0x28(r1) +/* 80016A20 00013960 7C 7E 1B 78 */ mr r30, r3 +/* 80016A24 00013964 38 00 00 00 */ li r0, 0 +/* 80016A28 00013968 90 03 1F C8 */ stw r0, 0x1fc8(r3) +/* 80016A2C 0001396C 88 63 1F BC */ lbz r3, 0x1fbc(r3) +/* 80016A30 00013970 3C 80 80 37 */ lis r4, lbl_803743F8@ha +/* 80016A34 00013974 38 84 43 F8 */ addi r4, r4, lbl_803743F8@l +/* 80016A38 00013978 38 A1 00 08 */ addi r5, r1, 8 +/* 80016A3C 0001397C 48 34 15 5D */ bl CARDOpen +/* 80016A40 00013980 7C 7F 1B 79 */ or. r31, r3, r3 +/* 80016A44 00013984 40 82 00 40 */ bne lbl_80016A84 +/* 80016A48 00013988 38 61 00 08 */ addi r3, r1, 8 +/* 80016A4C 0001398C 7F C4 F3 78 */ mr r4, r30 +/* 80016A50 00013990 38 A0 1F BC */ li r5, 0x1fbc +/* 80016A54 00013994 48 00 0C 49 */ bl mDoMemCdRWm_Restore +/* 80016A58 00013998 2C 03 00 00 */ cmpwi r3, 0 +/* 80016A5C 0001399C 40 82 00 10 */ bne lbl_80016A6C +/* 80016A60 000139A0 38 00 00 03 */ li r0, 3 +/* 80016A64 000139A4 90 1E 1F C4 */ stw r0, 0x1fc4(r30) +/* 80016A68 000139A8 48 00 00 10 */ b lbl_80016A78 +lbl_80016A6C: +/* 80016A6C 000139AC 7F C3 F3 78 */ mr r3, r30 +/* 80016A70 000139B0 7F E4 FB 78 */ mr r4, r31 +/* 80016A74 000139B4 48 00 08 ED */ bl mDoMemCd_Ctrl_c_NS_setCardState +lbl_80016A78: +/* 80016A78 000139B8 38 61 00 08 */ addi r3, r1, 8 +/* 80016A7C 000139BC 48 34 16 39 */ bl CARDClose +/* 80016A80 000139C0 48 00 00 10 */ b lbl_80016A90 +lbl_80016A84: +/* 80016A84 000139C4 7F C3 F3 78 */ mr r3, r30 +/* 80016A88 000139C8 7F E4 FB 78 */ mr r4, r31 +/* 80016A8C 000139CC 48 00 08 D5 */ bl mDoMemCd_Ctrl_c_NS_setCardState +lbl_80016A90: +/* 80016A90 000139D0 38 00 00 01 */ li r0, 1 +/* 80016A94 000139D4 90 1E 1F C8 */ stw r0, 0x1fc8(r30) +/* 80016A98 000139D8 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 80016A9C 000139DC 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 80016AA0 000139E0 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80016AA4 000139E4 7C 08 03 A6 */ mtlr r0 +/* 80016AA8 000139E8 38 21 00 30 */ addi r1, r1, 0x30 +/* 80016AAC 000139EC 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016AB0.s b/include/m_Do/m_Do_MemCard/asm/func_80016AB0.s new file mode 100644 index 00000000000..1ea7fba8b7d --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016AB0.s @@ -0,0 +1,47 @@ +/* 80016AB0 000139F0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80016AB4 000139F4 7C 08 02 A6 */ mflr r0 +/* 80016AB8 000139F8 90 01 00 24 */ stw r0, 0x24(r1) +/* 80016ABC 000139FC 39 61 00 20 */ addi r11, r1, 0x20 +/* 80016AC0 00013A00 48 34 B7 15 */ bl _savegpr_27 +/* 80016AC4 00013A04 7C 7B 1B 78 */ mr r27, r3 +/* 80016AC8 00013A08 7C 9C 23 78 */ mr r28, r4 +/* 80016ACC 00013A0C 7C BD 2B 78 */ mr r29, r5 +/* 80016AD0 00013A10 7C DE 33 78 */ mr r30, r6 +/* 80016AD4 00013A14 3B E0 00 00 */ li r31, 0 +/* 80016AD8 00013A18 80 03 1F C8 */ lwz r0, 0x1fc8(r3) +/* 80016ADC 00013A1C 2C 00 00 00 */ cmpwi r0, 0 +/* 80016AE0 00013A20 40 82 00 0C */ bne lbl_80016AEC +/* 80016AE4 00013A24 38 60 00 00 */ li r3, 0 +/* 80016AE8 00013A28 48 00 00 58 */ b lbl_80016B40 +lbl_80016AEC: +/* 80016AEC 00013A2C 38 7B 1F CC */ addi r3, r27, 0x1fcc +/* 80016AF0 00013A30 48 32 87 65 */ bl OSTryLockMutex +/* 80016AF4 00013A34 2C 03 00 00 */ cmpwi r3, 0 +/* 80016AF8 00013A38 41 82 00 44 */ beq lbl_80016B3C +/* 80016AFC 00013A3C 80 1B 1F C4 */ lwz r0, 0x1fc4(r27) +/* 80016B00 00013A40 2C 00 00 03 */ cmpwi r0, 3 +/* 80016B04 00013A44 40 82 00 24 */ bne lbl_80016B28 +/* 80016B08 00013A48 7F 83 E3 78 */ mr r3, r28 +/* 80016B0C 00013A4C 7C 9B F2 14 */ add r4, r27, r30 +/* 80016B10 00013A50 7F A5 EB 78 */ mr r5, r29 +/* 80016B14 00013A54 4B FE CA 2D */ bl memcpy +/* 80016B18 00013A58 38 00 00 01 */ li r0, 1 +/* 80016B1C 00013A5C 90 1B 1F C4 */ stw r0, 0x1fc4(r27) +/* 80016B20 00013A60 3B E0 00 01 */ li r31, 1 +/* 80016B24 00013A64 48 00 00 10 */ b lbl_80016B34 +lbl_80016B28: +/* 80016B28 00013A68 38 00 00 02 */ li r0, 2 +/* 80016B2C 00013A6C 90 1B 1F C4 */ stw r0, 0x1fc4(r27) +/* 80016B30 00013A70 3B E0 00 02 */ li r31, 2 +lbl_80016B34: +/* 80016B34 00013A74 38 7B 1F CC */ addi r3, r27, 0x1fcc +/* 80016B38 00013A78 48 32 85 E5 */ bl OSUnlockMutex +lbl_80016B3C: +/* 80016B3C 00013A7C 7F E3 FB 78 */ mr r3, r31 +lbl_80016B40: +/* 80016B40 00013A80 39 61 00 20 */ addi r11, r1, 0x20 +/* 80016B44 00013A84 48 34 B6 DD */ bl _restgpr_27 +/* 80016B48 00013A88 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80016B4C 00013A8C 7C 08 03 A6 */ mtlr r0 +/* 80016B50 00013A90 38 21 00 20 */ addi r1, r1, 0x20 +/* 80016B54 00013A94 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016B58.s b/include/m_Do/m_Do_MemCard/asm/func_80016B58.s new file mode 100644 index 00000000000..2f7c7f7b744 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016B58.s @@ -0,0 +1,32 @@ +/* 80016B58 00013A98 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80016B5C 00013A9C 7C 08 02 A6 */ mflr r0 +/* 80016B60 00013AA0 90 01 00 24 */ stw r0, 0x24(r1) +/* 80016B64 00013AA4 39 61 00 20 */ addi r11, r1, 0x20 +/* 80016B68 00013AA8 48 34 B6 71 */ bl _savegpr_28 +/* 80016B6C 00013AAC 7C 7C 1B 78 */ mr r28, r3 +/* 80016B70 00013AB0 7C 9D 23 78 */ mr r29, r4 +/* 80016B74 00013AB4 7C BE 2B 78 */ mr r30, r5 +/* 80016B78 00013AB8 7C DF 33 78 */ mr r31, r6 +/* 80016B7C 00013ABC 38 7C 1F CC */ addi r3, r28, 0x1fcc +/* 80016B80 00013AC0 48 32 86 D5 */ bl OSTryLockMutex +/* 80016B84 00013AC4 2C 03 00 00 */ cmpwi r3, 0 +/* 80016B88 00013AC8 41 82 00 34 */ beq lbl_80016BBC +/* 80016B8C 00013ACC 7C 7C FA 14 */ add r3, r28, r31 +/* 80016B90 00013AD0 7F A4 EB 78 */ mr r4, r29 +/* 80016B94 00013AD4 7F C5 F3 78 */ mr r5, r30 +/* 80016B98 00013AD8 4B FE C9 A9 */ bl memcpy +/* 80016B9C 00013ADC 38 00 00 00 */ li r0, 0 +/* 80016BA0 00013AE0 90 1C 1F C8 */ stw r0, 0x1fc8(r28) +/* 80016BA4 00013AE4 38 00 00 02 */ li r0, 2 +/* 80016BA8 00013AE8 90 1C 1F C0 */ stw r0, 0x1fc0(r28) +/* 80016BAC 00013AEC 38 7C 1F CC */ addi r3, r28, 0x1fcc +/* 80016BB0 00013AF0 48 32 85 6D */ bl OSUnlockMutex +/* 80016BB4 00013AF4 38 7C 1F E4 */ addi r3, r28, 0x1fe4 +/* 80016BB8 00013AF8 48 32 88 4D */ bl OSSignalCond +lbl_80016BBC: +/* 80016BBC 00013AFC 39 61 00 20 */ addi r11, r1, 0x20 +/* 80016BC0 00013B00 48 34 B6 65 */ bl _restgpr_28 +/* 80016BC4 00013B04 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80016BC8 00013B08 7C 08 03 A6 */ mtlr r0 +/* 80016BCC 00013B0C 38 21 00 20 */ addi r1, r1, 0x20 +/* 80016BD0 00013B10 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016BD4.s b/include/m_Do/m_Do_MemCard/asm/func_80016BD4.s new file mode 100644 index 00000000000..5ca2ee76881 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016BD4.s @@ -0,0 +1,75 @@ +/* 80016BD4 00013B14 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80016BD8 00013B18 7C 08 02 A6 */ mflr r0 +/* 80016BDC 00013B1C 90 01 00 34 */ stw r0, 0x34(r1) +/* 80016BE0 00013B20 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 80016BE4 00013B24 93 C1 00 28 */ stw r30, 0x28(r1) +/* 80016BE8 00013B28 7C 7E 1B 78 */ mr r30, r3 +/* 80016BEC 00013B2C 38 00 00 00 */ li r0, 0 +/* 80016BF0 00013B30 90 03 1F C8 */ stw r0, 0x1fc8(r3) +/* 80016BF4 00013B34 80 03 1F C4 */ lwz r0, 0x1fc4(r3) +/* 80016BF8 00013B38 2C 00 00 02 */ cmpwi r0, 2 +/* 80016BFC 00013B3C 40 82 00 48 */ bne lbl_80016C44 +/* 80016C00 00013B40 88 7E 1F BC */ lbz r3, 0x1fbc(r30) +/* 80016C04 00013B44 3C 80 80 37 */ lis r4, lbl_803743F8@ha +/* 80016C08 00013B48 38 84 43 F8 */ addi r4, r4, lbl_803743F8@l +/* 80016C0C 00013B4C 3C A0 00 01 */ lis r5, 0x00008000@ha +/* 80016C10 00013B50 38 A5 80 00 */ addi r5, r5, 0x00008000@l +/* 80016C14 00013B54 38 C1 00 08 */ addi r6, r1, 8 +/* 80016C18 00013B58 48 34 18 41 */ bl CARDCreate +/* 80016C1C 00013B5C 7C 7F 1B 79 */ or. r31, r3, r3 +/* 80016C20 00013B60 41 82 00 0C */ beq lbl_80016C2C +/* 80016C24 00013B64 2C 1F FF F9 */ cmpwi r31, -7 +/* 80016C28 00013B68 40 82 00 10 */ bne lbl_80016C38 +lbl_80016C2C: +/* 80016C2C 00013B6C 38 00 00 01 */ li r0, 1 +/* 80016C30 00013B70 90 1E 1F C4 */ stw r0, 0x1fc4(r30) +/* 80016C34 00013B74 48 00 00 10 */ b lbl_80016C44 +lbl_80016C38: +/* 80016C38 00013B78 7F C3 F3 78 */ mr r3, r30 +/* 80016C3C 00013B7C 7F E4 FB 78 */ mr r4, r31 +/* 80016C40 00013B80 48 00 07 21 */ bl mDoMemCd_Ctrl_c_NS_setCardState +lbl_80016C44: +/* 80016C44 00013B84 80 1E 1F C4 */ lwz r0, 0x1fc4(r30) +/* 80016C48 00013B88 2C 00 00 01 */ cmpwi r0, 1 +/* 80016C4C 00013B8C 40 82 00 68 */ bne lbl_80016CB4 +/* 80016C50 00013B90 88 7E 1F BC */ lbz r3, 0x1fbc(r30) +/* 80016C54 00013B94 3C 80 80 37 */ lis r4, lbl_803743F8@ha +/* 80016C58 00013B98 38 84 43 F8 */ addi r4, r4, lbl_803743F8@l +/* 80016C5C 00013B9C 38 A1 00 08 */ addi r5, r1, 8 +/* 80016C60 00013BA0 48 34 13 39 */ bl CARDOpen +/* 80016C64 00013BA4 7C 7F 1B 79 */ or. r31, r3, r3 +/* 80016C68 00013BA8 40 82 00 3C */ bne lbl_80016CA4 +/* 80016C6C 00013BAC 38 61 00 08 */ addi r3, r1, 8 +/* 80016C70 00013BB0 7F C4 F3 78 */ mr r4, r30 +/* 80016C74 00013BB4 38 A0 1F BC */ li r5, 0x1fbc +/* 80016C78 00013BB8 48 00 08 21 */ bl mDoMemCdRWm_Store +/* 80016C7C 00013BBC 7C 64 1B 79 */ or. r4, r3, r3 +/* 80016C80 00013BC0 41 82 00 10 */ beq lbl_80016C90 +/* 80016C84 00013BC4 7F C3 F3 78 */ mr r3, r30 +/* 80016C88 00013BC8 48 00 06 D9 */ bl mDoMemCd_Ctrl_c_NS_setCardState +/* 80016C8C 00013BCC 48 00 00 0C */ b lbl_80016C98 +lbl_80016C90: +/* 80016C90 00013BD0 38 00 00 04 */ li r0, 4 +/* 80016C94 00013BD4 90 1E 1F C4 */ stw r0, 0x1fc4(r30) +lbl_80016C98: +/* 80016C98 00013BD8 38 61 00 08 */ addi r3, r1, 8 +/* 80016C9C 00013BDC 48 34 14 19 */ bl CARDClose +/* 80016CA0 00013BE0 48 00 00 20 */ b lbl_80016CC0 +lbl_80016CA4: +/* 80016CA4 00013BE4 7F C3 F3 78 */ mr r3, r30 +/* 80016CA8 00013BE8 7F E4 FB 78 */ mr r4, r31 +/* 80016CAC 00013BEC 48 00 06 B5 */ bl mDoMemCd_Ctrl_c_NS_setCardState +/* 80016CB0 00013BF0 48 00 00 10 */ b lbl_80016CC0 +lbl_80016CB4: +/* 80016CB4 00013BF4 7F C3 F3 78 */ mr r3, r30 +/* 80016CB8 00013BF8 7F E4 FB 78 */ mr r4, r31 +/* 80016CBC 00013BFC 48 00 06 A5 */ bl mDoMemCd_Ctrl_c_NS_setCardState +lbl_80016CC0: +/* 80016CC0 00013C00 38 00 00 01 */ li r0, 1 +/* 80016CC4 00013C04 90 1E 1F C8 */ stw r0, 0x1fc8(r30) +/* 80016CC8 00013C08 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 80016CCC 00013C0C 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 80016CD0 00013C10 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80016CD4 00013C14 7C 08 03 A6 */ mtlr r0 +/* 80016CD8 00013C18 38 21 00 30 */ addi r1, r1, 0x30 +/* 80016CDC 00013C1C 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016CE0.s b/include/m_Do/m_Do_MemCard/asm/func_80016CE0.s new file mode 100644 index 00000000000..61446244acd --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016CE0.s @@ -0,0 +1,43 @@ +/* 80016CE0 00013C20 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80016CE4 00013C24 7C 08 02 A6 */ mflr r0 +/* 80016CE8 00013C28 90 01 00 14 */ stw r0, 0x14(r1) +/* 80016CEC 00013C2C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80016CF0 00013C30 93 C1 00 08 */ stw r30, 8(r1) +/* 80016CF4 00013C34 7C 7E 1B 78 */ mr r30, r3 +/* 80016CF8 00013C38 3B E0 00 00 */ li r31, 0 +/* 80016CFC 00013C3C 80 03 1F C8 */ lwz r0, 0x1fc8(r3) +/* 80016D00 00013C40 2C 00 00 00 */ cmpwi r0, 0 +/* 80016D04 00013C44 40 82 00 0C */ bne lbl_80016D10 +/* 80016D08 00013C48 38 60 00 00 */ li r3, 0 +/* 80016D0C 00013C4C 48 00 00 50 */ b lbl_80016D5C +lbl_80016D10: +/* 80016D10 00013C50 38 7E 1F CC */ addi r3, r30, 0x1fcc +/* 80016D14 00013C54 48 32 85 41 */ bl OSTryLockMutex +/* 80016D18 00013C58 2C 03 00 00 */ cmpwi r3, 0 +/* 80016D1C 00013C5C 41 82 00 3C */ beq lbl_80016D58 +/* 80016D20 00013C60 80 1E 1F C4 */ lwz r0, 0x1fc4(r30) +/* 80016D24 00013C64 2C 00 00 04 */ cmpwi r0, 4 +/* 80016D28 00013C68 40 82 00 14 */ bne lbl_80016D3C +/* 80016D2C 00013C6C 38 00 00 01 */ li r0, 1 +/* 80016D30 00013C70 90 1E 1F C4 */ stw r0, 0x1fc4(r30) +/* 80016D34 00013C74 3B E0 00 01 */ li r31, 1 +/* 80016D38 00013C78 48 00 00 18 */ b lbl_80016D50 +lbl_80016D3C: +/* 80016D3C 00013C7C 2C 00 00 01 */ cmpwi r0, 1 +/* 80016D40 00013C80 40 82 00 0C */ bne lbl_80016D4C +/* 80016D44 00013C84 3B E0 00 00 */ li r31, 0 +/* 80016D48 00013C88 48 00 00 08 */ b lbl_80016D50 +lbl_80016D4C: +/* 80016D4C 00013C8C 3B E0 00 02 */ li r31, 2 +lbl_80016D50: +/* 80016D50 00013C90 38 7E 1F CC */ addi r3, r30, 0x1fcc +/* 80016D54 00013C94 48 32 83 C9 */ bl OSUnlockMutex +lbl_80016D58: +/* 80016D58 00013C98 7F E3 FB 78 */ mr r3, r31 +lbl_80016D5C: +/* 80016D5C 00013C9C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80016D60 00013CA0 83 C1 00 08 */ lwz r30, 8(r1) +/* 80016D64 00013CA4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80016D68 00013CA8 7C 08 03 A6 */ mtlr r0 +/* 80016D6C 00013CAC 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016D70 00013CB0 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016D74.s b/include/m_Do/m_Do_MemCard/asm/func_80016D74.s new file mode 100644 index 00000000000..f4b0ffce709 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016D74.s @@ -0,0 +1,60 @@ +/* 80016D74 00013CB4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80016D78 00013CB8 7C 08 02 A6 */ mflr r0 +/* 80016D7C 00013CBC 90 01 00 14 */ stw r0, 0x14(r1) +/* 80016D80 00013CC0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80016D84 00013CC4 93 C1 00 08 */ stw r30, 8(r1) +/* 80016D88 00013CC8 7C 7E 1B 78 */ mr r30, r3 +/* 80016D8C 00013CCC 38 7E 1F CC */ addi r3, r30, 0x1fcc +/* 80016D90 00013CD0 48 32 84 C5 */ bl OSTryLockMutex +/* 80016D94 00013CD4 2C 03 00 00 */ cmpwi r3, 0 +/* 80016D98 00013CD8 41 82 00 A4 */ beq lbl_80016E3C +/* 80016D9C 00013CDC 80 1E 1F C4 */ lwz r0, 0x1fc4(r30) +/* 80016DA0 00013CE0 28 00 00 0D */ cmplwi r0, 0xd +/* 80016DA4 00013CE4 41 81 00 88 */ bgt lbl_80016E2C +/* 80016DA8 00013CE8 3C 60 80 3A */ lis r3, lbl_803A34F8@ha +/* 80016DAC 00013CEC 38 63 34 F8 */ addi r3, r3, lbl_803A34F8@l +/* 80016DB0 00013CF0 54 00 10 3A */ slwi r0, r0, 2 +/* 80016DB4 00013CF4 7C 03 00 2E */ lwzx r0, r3, r0 +/* 80016DB8 00013CF8 7C 09 03 A6 */ mtctr r0 +/* 80016DBC 00013CFC 4E 80 04 20 */ bctr +/* 80016DC0 00013D00 3B E0 00 02 */ li r31, 2 +/* 80016DC4 00013D04 48 00 00 68 */ b lbl_80016E2C +/* 80016DC8 00013D08 3B E0 00 01 */ li r31, 1 +/* 80016DCC 00013D0C 48 00 00 60 */ b lbl_80016E2C +/* 80016DD0 00013D10 3B E0 00 03 */ li r31, 3 +/* 80016DD4 00013D14 48 00 00 58 */ b lbl_80016E2C +/* 80016DD8 00013D18 3B E0 00 04 */ li r31, 4 +/* 80016DDC 00013D1C 48 00 00 50 */ b lbl_80016E2C +/* 80016DE0 00013D20 3B E0 00 05 */ li r31, 5 +/* 80016DE4 00013D24 48 00 00 48 */ b lbl_80016E2C +/* 80016DE8 00013D28 3B E0 00 00 */ li r31, 0 +/* 80016DEC 00013D2C 48 00 00 40 */ b lbl_80016E2C +/* 80016DF0 00013D30 3B E0 00 07 */ li r31, 7 +/* 80016DF4 00013D34 48 00 00 38 */ b lbl_80016E2C +/* 80016DF8 00013D38 3B E0 00 06 */ li r31, 6 +/* 80016DFC 00013D3C 48 00 00 30 */ b lbl_80016E2C +/* 80016E00 00013D40 3B E0 00 0B */ li r31, 0xb +/* 80016E04 00013D44 48 00 00 28 */ b lbl_80016E2C +/* 80016E08 00013D48 3B E0 00 0C */ li r31, 0xc +/* 80016E0C 00013D4C 48 00 00 20 */ b lbl_80016E2C +/* 80016E10 00013D50 3B E0 00 09 */ li r31, 9 +/* 80016E14 00013D54 48 00 00 18 */ b lbl_80016E2C +/* 80016E18 00013D58 3B E0 00 0A */ li r31, 0xa +/* 80016E1C 00013D5C 48 00 00 10 */ b lbl_80016E2C +/* 80016E20 00013D60 3B E0 00 08 */ li r31, 8 +/* 80016E24 00013D64 48 00 00 08 */ b lbl_80016E2C +/* 80016E28 00013D68 3B E0 00 0E */ li r31, 0xe +lbl_80016E2C: +/* 80016E2C 00013D6C 38 7E 1F CC */ addi r3, r30, 0x1fcc +/* 80016E30 00013D70 48 32 82 ED */ bl OSUnlockMutex +/* 80016E34 00013D74 7F E3 FB 78 */ mr r3, r31 +/* 80016E38 00013D78 48 00 00 08 */ b lbl_80016E40 +lbl_80016E3C: +/* 80016E3C 00013D7C 38 60 00 0E */ li r3, 0xe +lbl_80016E40: +/* 80016E40 00013D80 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80016E44 00013D84 83 C1 00 08 */ lwz r30, 8(r1) +/* 80016E48 00013D88 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80016E4C 00013D8C 7C 08 03 A6 */ mtlr r0 +/* 80016E50 00013D90 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016E54 00013D94 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016E58.s b/include/m_Do/m_Do_MemCard/asm/func_80016E58.s new file mode 100644 index 00000000000..0aaf670c635 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016E58.s @@ -0,0 +1,21 @@ +/* 80016E58 00013D98 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80016E5C 00013D9C 7C 08 02 A6 */ mflr r0 +/* 80016E60 00013DA0 90 01 00 14 */ stw r0, 0x14(r1) +/* 80016E64 00013DA4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80016E68 00013DA8 7C 7F 1B 78 */ mr r31, r3 +/* 80016E6C 00013DAC 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 80016E70 00013DB0 48 32 83 E5 */ bl OSTryLockMutex +/* 80016E74 00013DB4 2C 03 00 00 */ cmpwi r3, 0 +/* 80016E78 00013DB8 41 82 00 1C */ beq lbl_80016E94 +/* 80016E7C 00013DBC 38 00 00 03 */ li r0, 3 +/* 80016E80 00013DC0 90 1F 1F C0 */ stw r0, 0x1fc0(r31) +/* 80016E84 00013DC4 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 80016E88 00013DC8 48 32 82 95 */ bl OSUnlockMutex +/* 80016E8C 00013DCC 38 7F 1F E4 */ addi r3, r31, 0x1fe4 +/* 80016E90 00013DD0 48 32 85 75 */ bl OSSignalCond +lbl_80016E94: +/* 80016E94 00013DD4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80016E98 00013DD8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80016E9C 00013DDC 7C 08 03 A6 */ mtlr r0 +/* 80016EA0 00013DE0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016EA4 00013DE4 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016EA8.s b/include/m_Do/m_Do_MemCard/asm/func_80016EA8.s new file mode 100644 index 00000000000..f98e03144ef --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016EA8.s @@ -0,0 +1,36 @@ +/* 80016EA8 00013DE8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80016EAC 00013DEC 7C 08 02 A6 */ mflr r0 +/* 80016EB0 00013DF0 90 01 00 14 */ stw r0, 0x14(r1) +/* 80016EB4 00013DF4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80016EB8 00013DF8 93 C1 00 08 */ stw r30, 8(r1) +/* 80016EBC 00013DFC 7C 7E 1B 78 */ mr r30, r3 +/* 80016EC0 00013E00 38 00 00 00 */ li r0, 0 +/* 80016EC4 00013E04 90 03 1F C8 */ stw r0, 0x1fc8(r3) +/* 80016EC8 00013E08 88 63 1F BC */ lbz r3, 0x1fbc(r3) +/* 80016ECC 00013E0C 48 34 0D 55 */ bl CARDFormat +/* 80016ED0 00013E10 7C 7F 1B 78 */ mr r31, r3 +/* 80016ED4 00013E14 38 7E 1F CC */ addi r3, r30, 0x1fcc +/* 80016ED8 00013E18 48 32 83 7D */ bl OSTryLockMutex +/* 80016EDC 00013E1C 2C 03 00 00 */ cmpwi r3, 0 +/* 80016EE0 00013E20 41 82 00 34 */ beq lbl_80016F14 +/* 80016EE4 00013E24 2C 1F 00 00 */ cmpwi r31, 0 +/* 80016EE8 00013E28 40 82 00 10 */ bne lbl_80016EF8 +/* 80016EEC 00013E2C 38 00 00 05 */ li r0, 5 +/* 80016EF0 00013E30 90 1E 1F C4 */ stw r0, 0x1fc4(r30) +/* 80016EF4 00013E34 48 00 00 10 */ b lbl_80016F04 +lbl_80016EF8: +/* 80016EF8 00013E38 7F C3 F3 78 */ mr r3, r30 +/* 80016EFC 00013E3C 7F E4 FB 78 */ mr r4, r31 +/* 80016F00 00013E40 48 00 04 61 */ bl mDoMemCd_Ctrl_c_NS_setCardState +lbl_80016F04: +/* 80016F04 00013E44 38 00 00 01 */ li r0, 1 +/* 80016F08 00013E48 90 1E 1F C8 */ stw r0, 0x1fc8(r30) +/* 80016F0C 00013E4C 38 7E 1F CC */ addi r3, r30, 0x1fcc +/* 80016F10 00013E50 48 32 82 0D */ bl OSUnlockMutex +lbl_80016F14: +/* 80016F14 00013E54 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80016F18 00013E58 83 C1 00 08 */ lwz r30, 8(r1) +/* 80016F1C 00013E5C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80016F20 00013E60 7C 08 03 A6 */ mtlr r0 +/* 80016F24 00013E64 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016F28 00013E68 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016F2C.s b/include/m_Do/m_Do_MemCard/asm/func_80016F2C.s new file mode 100644 index 00000000000..ef9ba7cd662 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016F2C.s @@ -0,0 +1,40 @@ +/* 80016F2C 00013E6C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80016F30 00013E70 7C 08 02 A6 */ mflr r0 +/* 80016F34 00013E74 90 01 00 14 */ stw r0, 0x14(r1) +/* 80016F38 00013E78 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80016F3C 00013E7C 93 C1 00 08 */ stw r30, 8(r1) +/* 80016F40 00013E80 7C 7E 1B 78 */ mr r30, r3 +/* 80016F44 00013E84 3B E0 00 00 */ li r31, 0 +/* 80016F48 00013E88 80 03 1F C8 */ lwz r0, 0x1fc8(r3) +/* 80016F4C 00013E8C 2C 00 00 00 */ cmpwi r0, 0 +/* 80016F50 00013E90 40 82 00 0C */ bne lbl_80016F5C +/* 80016F54 00013E94 38 60 00 00 */ li r3, 0 +/* 80016F58 00013E98 48 00 00 48 */ b lbl_80016FA0 +lbl_80016F5C: +/* 80016F5C 00013E9C 38 7E 1F CC */ addi r3, r30, 0x1fcc +/* 80016F60 00013EA0 48 32 82 F5 */ bl OSTryLockMutex +/* 80016F64 00013EA4 2C 03 00 00 */ cmpwi r3, 0 +/* 80016F68 00013EA8 41 82 00 34 */ beq lbl_80016F9C +/* 80016F6C 00013EAC 80 1E 1F C4 */ lwz r0, 0x1fc4(r30) +/* 80016F70 00013EB0 2C 00 00 0D */ cmpwi r0, 0xd +/* 80016F74 00013EB4 41 82 00 20 */ beq lbl_80016F94 +/* 80016F78 00013EB8 2C 00 00 05 */ cmpwi r0, 5 +/* 80016F7C 00013EBC 40 82 00 14 */ bne lbl_80016F90 +/* 80016F80 00013EC0 38 00 00 02 */ li r0, 2 +/* 80016F84 00013EC4 90 1E 1F C4 */ stw r0, 0x1fc4(r30) +/* 80016F88 00013EC8 3B E0 00 01 */ li r31, 1 +/* 80016F8C 00013ECC 48 00 00 08 */ b lbl_80016F94 +lbl_80016F90: +/* 80016F90 00013ED0 3B E0 00 02 */ li r31, 2 +lbl_80016F94: +/* 80016F94 00013ED4 38 7E 1F CC */ addi r3, r30, 0x1fcc +/* 80016F98 00013ED8 48 32 81 85 */ bl OSUnlockMutex +lbl_80016F9C: +/* 80016F9C 00013EDC 7F E3 FB 78 */ mr r3, r31 +lbl_80016FA0: +/* 80016FA0 00013EE0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80016FA4 00013EE4 83 C1 00 08 */ lwz r30, 8(r1) +/* 80016FA8 00013EE8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80016FAC 00013EEC 7C 08 03 A6 */ mtlr r0 +/* 80016FB0 00013EF0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80016FB4 00013EF4 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80016FB8.s b/include/m_Do/m_Do_MemCard/asm/func_80016FB8.s new file mode 100644 index 00000000000..92072579020 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80016FB8.s @@ -0,0 +1,73 @@ +/* 80016FB8 00013EF8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80016FBC 00013EFC 7C 08 02 A6 */ mflr r0 +/* 80016FC0 00013F00 90 01 00 24 */ stw r0, 0x24(r1) +/* 80016FC4 00013F04 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80016FC8 00013F08 7C 7F 1B 78 */ mr r31, r3 +/* 80016FCC 00013F0C 88 63 1F BC */ lbz r3, 0x1fbc(r3) +/* 80016FD0 00013F10 38 81 00 0C */ addi r4, r1, 0xc +/* 80016FD4 00013F14 38 A1 00 08 */ addi r5, r1, 8 +/* 80016FD8 00013F18 48 33 FA 75 */ bl CARDProbeEx +/* 80016FDC 00013F1C 2C 03 FF FD */ cmpwi r3, -3 +/* 80016FE0 00013F20 40 82 00 10 */ bne lbl_80016FF0 +/* 80016FE4 00013F24 38 00 00 00 */ li r0, 0 +/* 80016FE8 00013F28 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80016FEC 00013F2C 48 00 00 B8 */ b lbl_800170A4 +lbl_80016FF0: +/* 80016FF0 00013F30 2C 03 FF 80 */ cmpwi r3, -128 +/* 80016FF4 00013F34 40 82 00 10 */ bne lbl_80017004 +/* 80016FF8 00013F38 38 00 00 0C */ li r0, 0xc +/* 80016FFC 00013F3C 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017000 00013F40 48 00 00 A4 */ b lbl_800170A4 +lbl_80017004: +/* 80017004 00013F44 2C 03 FF FE */ cmpwi r3, -2 +/* 80017008 00013F48 40 82 00 10 */ bne lbl_80017018 +/* 8001700C 00013F4C 38 00 00 0A */ li r0, 0xa +/* 80017010 00013F50 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017014 00013F54 48 00 00 90 */ b lbl_800170A4 +lbl_80017018: +/* 80017018 00013F58 80 01 00 08 */ lwz r0, 8(r1) +/* 8001701C 00013F5C 2C 00 20 00 */ cmpwi r0, 0x2000 +/* 80017020 00013F60 41 82 00 10 */ beq lbl_80017030 +/* 80017024 00013F64 38 00 00 0B */ li r0, 0xb +/* 80017028 00013F68 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 8001702C 00013F6C 48 00 00 78 */ b lbl_800170A4 +lbl_80017030: +/* 80017030 00013F70 7F E3 FB 78 */ mr r3, r31 +/* 80017034 00013F74 48 00 01 15 */ bl mDoMemCd_Ctrl_c_NS_mount +/* 80017038 00013F78 2C 03 00 00 */ cmpwi r3, 0 +/* 8001703C 00013F7C 41 82 00 68 */ beq lbl_800170A4 +/* 80017040 00013F80 7F E3 FB 78 */ mr r3, r31 +/* 80017044 00013F84 48 00 02 31 */ bl mDoMemCd_Ctrl_c_NS_loadfile +/* 80017048 00013F88 2C 03 00 00 */ cmpwi r3, 0 +/* 8001704C 00013F8C 41 82 00 10 */ beq lbl_8001705C +/* 80017050 00013F90 38 00 00 01 */ li r0, 1 +/* 80017054 00013F94 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017058 00013F98 48 00 00 4C */ b lbl_800170A4 +lbl_8001705C: +/* 8001705C 00013F9C 7F E3 FB 78 */ mr r3, r31 +/* 80017060 00013FA0 48 00 02 75 */ bl mDoMemCd_Ctrl_c_NS_checkspace +/* 80017064 00013FA4 2C 03 00 02 */ cmpwi r3, 2 +/* 80017068 00013FA8 41 82 00 34 */ beq lbl_8001709C +/* 8001706C 00013FAC 40 80 00 38 */ bge lbl_800170A4 +/* 80017070 00013FB0 2C 03 00 00 */ cmpwi r3, 0 +/* 80017074 00013FB4 41 82 00 10 */ beq lbl_80017084 +/* 80017078 00013FB8 40 80 00 18 */ bge lbl_80017090 +/* 8001707C 00013FBC 48 00 00 28 */ b lbl_800170A4 +/* 80017080 00013FC0 48 00 00 24 */ b lbl_800170A4 +lbl_80017084: +/* 80017084 00013FC4 38 00 00 02 */ li r0, 2 +/* 80017088 00013FC8 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 8001708C 00013FCC 48 00 00 18 */ b lbl_800170A4 +lbl_80017090: +/* 80017090 00013FD0 38 00 00 08 */ li r0, 8 +/* 80017094 00013FD4 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017098 00013FD8 48 00 00 0C */ b lbl_800170A4 +lbl_8001709C: +/* 8001709C 00013FDC 38 00 00 09 */ li r0, 9 +/* 800170A0 00013FE0 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +lbl_800170A4: +/* 800170A4 00013FE4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 800170A8 00013FE8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800170AC 00013FEC 7C 08 03 A6 */ mtlr r0 +/* 800170B0 00013FF0 38 21 00 20 */ addi r1, r1, 0x20 +/* 800170B4 00013FF4 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_800170B8.s b/include/m_Do/m_Do_MemCard/asm/func_800170B8.s new file mode 100644 index 00000000000..e5372448925 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_800170B8.s @@ -0,0 +1,23 @@ +/* 800170B8 00013FF8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800170BC 00013FFC 7C 08 02 A6 */ mflr r0 +/* 800170C0 00014000 90 01 00 14 */ stw r0, 0x14(r1) +/* 800170C4 00014004 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800170C8 00014008 7C 7F 1B 78 */ mr r31, r3 +/* 800170CC 0001400C 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 800170D0 00014010 48 32 81 85 */ bl OSTryLockMutex +/* 800170D4 00014014 2C 03 00 00 */ cmpwi r3, 0 +/* 800170D8 00014018 41 82 00 24 */ beq lbl_800170FC +/* 800170DC 0001401C 38 00 00 0D */ li r0, 0xd +/* 800170E0 00014020 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 800170E4 00014024 38 00 00 04 */ li r0, 4 +/* 800170E8 00014028 90 1F 1F C0 */ stw r0, 0x1fc0(r31) +/* 800170EC 0001402C 38 7F 1F CC */ addi r3, r31, 0x1fcc +/* 800170F0 00014030 48 32 80 2D */ bl OSUnlockMutex +/* 800170F4 00014034 38 7F 1F E4 */ addi r3, r31, 0x1fe4 +/* 800170F8 00014038 48 32 83 0D */ bl OSSignalCond +lbl_800170FC: +/* 800170FC 0001403C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80017100 00014040 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80017104 00014044 7C 08 03 A6 */ mtlr r0 +/* 80017108 00014048 38 21 00 10 */ addi r1, r1, 0x10 +/* 8001710C 0001404C 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80017110.s b/include/m_Do/m_Do_MemCard/asm/func_80017110.s new file mode 100644 index 00000000000..d0494ed9779 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80017110.s @@ -0,0 +1,14 @@ +/* 80017110 00014050 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80017114 00014054 7C 08 02 A6 */ mflr r0 +/* 80017118 00014058 90 01 00 14 */ stw r0, 0x14(r1) +/* 8001711C 0001405C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80017120 00014060 7C 7F 1B 78 */ mr r31, r3 +/* 80017124 00014064 88 63 1F BC */ lbz r3, 0x1fbc(r3) +/* 80017128 00014068 48 34 02 B1 */ bl CARDUnmount +/* 8001712C 0001406C 38 00 00 00 */ li r0, 0 +/* 80017130 00014070 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017134 00014074 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80017138 00014078 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8001713C 0001407C 7C 08 03 A6 */ mtlr r0 +/* 80017140 00014080 38 21 00 10 */ addi r1, r1, 0x10 +/* 80017144 00014084 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80017148.s b/include/m_Do/m_Do_MemCard/asm/func_80017148.s new file mode 100644 index 00000000000..7b2418c71eb --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80017148.s @@ -0,0 +1,83 @@ +/* 80017148 00014088 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8001714C 0001408C 7C 08 02 A6 */ mflr r0 +/* 80017150 00014090 90 01 00 14 */ stw r0, 0x14(r1) +/* 80017154 00014094 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80017158 00014098 7C 7F 1B 78 */ mr r31, r3 +/* 8001715C 0001409C 88 63 1F BC */ lbz r3, 0x1fbc(r3) +/* 80017160 000140A0 3C 80 80 3E */ lis r4, lbl_803E0F40@ha +/* 80017164 000140A4 38 84 0F 40 */ addi r4, r4, lbl_803E0F40@l +/* 80017168 000140A8 38 A0 00 00 */ li r5, 0 +/* 8001716C 000140AC 48 34 01 89 */ bl CARDMount +/* 80017170 000140B0 2C 03 FF FB */ cmpwi r3, -5 +/* 80017174 000140B4 41 82 00 44 */ beq lbl_800171B8 +/* 80017178 000140B8 40 80 00 28 */ bge lbl_800171A0 +/* 8001717C 000140BC 2C 03 FF F3 */ cmpwi r3, -13 +/* 80017180 000140C0 41 82 00 CC */ beq lbl_8001724C +/* 80017184 000140C4 40 80 00 10 */ bge lbl_80017194 +/* 80017188 000140C8 2C 03 FF 80 */ cmpwi r3, -128 +/* 8001718C 000140CC 41 82 00 2C */ beq lbl_800171B8 +/* 80017190 000140D0 48 00 00 CC */ b lbl_8001725C +lbl_80017194: +/* 80017194 000140D4 2C 03 FF FA */ cmpwi r3, -6 +/* 80017198 000140D8 40 80 00 40 */ bge lbl_800171D8 +/* 8001719C 000140DC 48 00 00 C0 */ b lbl_8001725C +lbl_800171A0: +/* 800171A0 000140E0 2C 03 00 00 */ cmpwi r3, 0 +/* 800171A4 000140E4 41 82 00 34 */ beq lbl_800171D8 +/* 800171A8 000140E8 40 80 00 B4 */ bge lbl_8001725C +/* 800171AC 000140EC 2C 03 FF FD */ cmpwi r3, -3 +/* 800171B0 000140F0 41 82 00 18 */ beq lbl_800171C8 +/* 800171B4 000140F4 48 00 00 A8 */ b lbl_8001725C +lbl_800171B8: +/* 800171B8 000140F8 38 00 00 0C */ li r0, 0xc +/* 800171BC 000140FC 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 800171C0 00014100 38 60 00 00 */ li r3, 0 +/* 800171C4 00014104 48 00 00 9C */ b lbl_80017260 +lbl_800171C8: +/* 800171C8 00014108 38 00 00 00 */ li r0, 0 +/* 800171CC 0001410C 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 800171D0 00014110 38 60 00 00 */ li r3, 0 +/* 800171D4 00014114 48 00 00 8C */ b lbl_80017260 +lbl_800171D8: +/* 800171D8 00014118 88 7F 1F BC */ lbz r3, 0x1fbc(r31) +/* 800171DC 0001411C 48 33 F7 19 */ bl CARDCheck +/* 800171E0 00014120 38 03 00 0D */ addi r0, r3, 0xd +/* 800171E4 00014124 28 00 00 0D */ cmplwi r0, 0xd +/* 800171E8 00014128 41 81 00 74 */ bgt lbl_8001725C +/* 800171EC 0001412C 3C 60 80 3A */ lis r3, lbl_803A3530@ha +/* 800171F0 00014130 38 63 35 30 */ addi r3, r3, lbl_803A3530@l +/* 800171F4 00014134 54 00 10 3A */ slwi r0, r0, 2 +/* 800171F8 00014138 7C 03 00 2E */ lwzx r0, r3, r0 +/* 800171FC 0001413C 7C 09 03 A6 */ mtctr r0 +/* 80017200 00014140 4E 80 04 20 */ bctr +/* 80017204 00014144 38 60 00 01 */ li r3, 1 +/* 80017208 00014148 48 00 00 58 */ b lbl_80017260 +/* 8001720C 0001414C 38 00 00 07 */ li r0, 7 +/* 80017210 00014150 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017214 00014154 38 60 00 00 */ li r3, 0 +/* 80017218 00014158 48 00 00 48 */ b lbl_80017260 +/* 8001721C 0001415C 38 00 00 0C */ li r0, 0xc +/* 80017220 00014160 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017224 00014164 38 60 00 00 */ li r3, 0 +/* 80017228 00014168 48 00 00 38 */ b lbl_80017260 +/* 8001722C 0001416C 38 00 00 00 */ li r0, 0 +/* 80017230 00014170 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017234 00014174 38 60 00 00 */ li r3, 0 +/* 80017238 00014178 48 00 00 28 */ b lbl_80017260 +/* 8001723C 0001417C 38 00 00 06 */ li r0, 6 +/* 80017240 00014180 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017244 00014184 38 60 00 00 */ li r3, 0 +/* 80017248 00014188 48 00 00 18 */ b lbl_80017260 +lbl_8001724C: +/* 8001724C 0001418C 38 00 00 06 */ li r0, 6 +/* 80017250 00014190 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 80017254 00014194 38 60 00 00 */ li r3, 0 +/* 80017258 00014198 48 00 00 08 */ b lbl_80017260 +lbl_8001725C: +/* 8001725C 0001419C 38 60 00 00 */ li r3, 0 +lbl_80017260: +/* 80017260 000141A0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80017264 000141A4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80017268 000141A8 7C 08 03 A6 */ mtlr r0 +/* 8001726C 000141AC 38 21 00 10 */ addi r1, r1, 0x10 +/* 80017270 000141B0 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80017274.s b/include/m_Do/m_Do_MemCard/asm/func_80017274.s new file mode 100644 index 00000000000..4756fb7a3a0 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80017274.s @@ -0,0 +1,26 @@ +/* 80017274 000141B4 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80017278 000141B8 7C 08 02 A6 */ mflr r0 +/* 8001727C 000141BC 90 01 00 34 */ stw r0, 0x34(r1) +/* 80017280 000141C0 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 80017284 000141C4 7C 7F 1B 78 */ mr r31, r3 +/* 80017288 000141C8 88 63 1F BC */ lbz r3, 0x1fbc(r3) +/* 8001728C 000141CC 3C 80 80 37 */ lis r4, lbl_803743F8@ha +/* 80017290 000141D0 38 84 43 F8 */ addi r4, r4, lbl_803743F8@l +/* 80017294 000141D4 38 A1 00 08 */ addi r5, r1, 8 +/* 80017298 000141D8 48 34 0D 01 */ bl CARDOpen +/* 8001729C 000141DC 7C 64 1B 79 */ or. r4, r3, r3 +/* 800172A0 000141E0 40 82 00 14 */ bne lbl_800172B4 +/* 800172A4 000141E4 38 61 00 08 */ addi r3, r1, 8 +/* 800172A8 000141E8 48 34 0E 0D */ bl CARDClose +/* 800172AC 000141EC 38 60 00 01 */ li r3, 1 +/* 800172B0 000141F0 48 00 00 10 */ b lbl_800172C0 +lbl_800172B4: +/* 800172B4 000141F4 7F E3 FB 78 */ mr r3, r31 +/* 800172B8 000141F8 48 00 00 A9 */ bl mDoMemCd_Ctrl_c_NS_setCardState +/* 800172BC 000141FC 38 60 00 00 */ li r3, 0 +lbl_800172C0: +/* 800172C0 00014200 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 800172C4 00014204 80 01 00 34 */ lwz r0, 0x34(r1) +/* 800172C8 00014208 7C 08 03 A6 */ mtlr r0 +/* 800172CC 0001420C 38 21 00 30 */ addi r1, r1, 0x30 +/* 800172D0 00014210 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_800172D4.s b/include/m_Do/m_Do_MemCard/asm/func_800172D4.s new file mode 100644 index 00000000000..8484f0ba43d --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_800172D4.s @@ -0,0 +1,38 @@ +/* 800172D4 00014214 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800172D8 00014218 7C 08 02 A6 */ mflr r0 +/* 800172DC 0001421C 90 01 00 24 */ stw r0, 0x24(r1) +/* 800172E0 00014220 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800172E4 00014224 7C 7F 1B 78 */ mr r31, r3 +/* 800172E8 00014228 88 63 1F BC */ lbz r3, 0x1fbc(r3) +/* 800172EC 0001422C 38 81 00 0C */ addi r4, r1, 0xc +/* 800172F0 00014230 38 A1 00 08 */ addi r5, r1, 8 +/* 800172F4 00014234 48 33 C9 DD */ bl CARDFreeBlocks +/* 800172F8 00014238 7C 64 1B 79 */ or. r4, r3, r3 +/* 800172FC 0001423C 41 82 00 14 */ beq lbl_80017310 +/* 80017300 00014240 7F E3 FB 78 */ mr r3, r31 +/* 80017304 00014244 48 00 00 5D */ bl mDoMemCd_Ctrl_c_NS_setCardState +/* 80017308 00014248 38 60 00 03 */ li r3, 3 +/* 8001730C 0001424C 48 00 00 40 */ b lbl_8001734C +lbl_80017310: +/* 80017310 00014250 80 81 00 0C */ lwz r4, 0xc(r1) +/* 80017314 00014254 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 80017318 00014258 38 03 80 00 */ addi r0, r3, 0x00008000@l +/* 8001731C 0001425C 7C 04 00 00 */ cmpw r4, r0 +/* 80017320 00014260 40 80 00 0C */ bge lbl_8001732C +/* 80017324 00014264 38 60 00 01 */ li r3, 1 +/* 80017328 00014268 48 00 00 24 */ b lbl_8001734C +lbl_8001732C: +/* 8001732C 0001426C 80 81 00 08 */ lwz r4, 8(r1) +/* 80017330 00014270 38 60 00 01 */ li r3, 1 +/* 80017334 00014274 7C 03 20 10 */ subfc r0, r3, r4 +/* 80017338 00014278 54 63 0F FE */ srwi r3, r3, 0x1f +/* 8001733C 0001427C 54 80 0F FE */ srwi r0, r4, 0x1f +/* 80017340 00014280 7C 60 19 10 */ subfe r3, r0, r3 +/* 80017344 00014284 38 00 00 02 */ li r0, 2 +/* 80017348 00014288 7C 03 18 38 */ and r3, r0, r3 +lbl_8001734C: +/* 8001734C 0001428C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80017350 00014290 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80017354 00014294 7C 08 03 A6 */ mtlr r0 +/* 80017358 00014298 38 21 00 20 */ addi r1, r1, 0x20 +/* 8001735C 0001429C 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_MemCard/asm/func_80017360.s b/include/m_Do/m_Do_MemCard/asm/func_80017360.s new file mode 100644 index 00000000000..f1179cf4497 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80017360.s @@ -0,0 +1,55 @@ +/* 80017360 000142A0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80017364 000142A4 7C 08 02 A6 */ mflr r0 +/* 80017368 000142A8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8001736C 000142AC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80017370 000142B0 7C 7F 1B 78 */ mr r31, r3 +/* 80017374 000142B4 2C 04 FF FB */ cmpwi r4, -5 +/* 80017378 000142B8 41 82 00 48 */ beq lbl_800173C0 +/* 8001737C 000142BC 40 80 00 28 */ bge lbl_800173A4 +/* 80017380 000142C0 2C 04 FF F3 */ cmpwi r4, -13 +/* 80017384 000142C4 41 82 00 70 */ beq lbl_800173F4 +/* 80017388 000142C8 40 80 00 10 */ bge lbl_80017398 +/* 8001738C 000142CC 2C 04 FF 80 */ cmpwi r4, -128 +/* 80017390 000142D0 41 82 00 30 */ beq lbl_800173C0 +/* 80017394 000142D4 48 00 00 74 */ b lbl_80017408 +lbl_80017398: +/* 80017398 000142D8 2C 04 FF FA */ cmpwi r4, -6 +/* 8001739C 000142DC 40 80 00 3C */ bge lbl_800173D8 +/* 800173A0 000142E0 48 00 00 68 */ b lbl_80017408 +lbl_800173A4: +/* 800173A4 000142E4 2C 04 00 00 */ cmpwi r4, 0 +/* 800173A8 000142E8 41 82 00 30 */ beq lbl_800173D8 +/* 800173AC 000142EC 40 80 00 5C */ bge lbl_80017408 +/* 800173B0 000142F0 2C 04 FF FD */ cmpwi r4, -3 +/* 800173B4 000142F4 41 82 00 18 */ beq lbl_800173CC +/* 800173B8 000142F8 40 80 00 50 */ bge lbl_80017408 +/* 800173BC 000142FC 48 00 00 44 */ b lbl_80017400 +lbl_800173C0: +/* 800173C0 00014300 38 00 00 0C */ li r0, 0xc +/* 800173C4 00014304 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 800173C8 00014308 48 00 00 40 */ b lbl_80017408 +lbl_800173CC: +/* 800173CC 0001430C 38 00 00 00 */ li r0, 0 +/* 800173D0 00014310 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 800173D4 00014314 48 00 00 34 */ b lbl_80017408 +lbl_800173D8: +/* 800173D8 00014318 88 7F 1F BC */ lbz r3, 0x1fbc(r31) +/* 800173DC 0001431C 48 33 F5 19 */ bl CARDCheck +/* 800173E0 00014320 2C 03 00 00 */ cmpwi r3, 0 +/* 800173E4 00014324 41 82 00 24 */ beq lbl_80017408 +/* 800173E8 00014328 38 00 00 07 */ li r0, 7 +/* 800173EC 0001432C 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 800173F0 00014330 48 00 00 18 */ b lbl_80017408 +lbl_800173F4: +/* 800173F4 00014334 38 00 00 06 */ li r0, 6 +/* 800173F8 00014338 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +/* 800173FC 0001433C 48 00 00 0C */ b lbl_80017408 +lbl_80017400: +/* 80017400 00014340 38 00 00 02 */ li r0, 2 +/* 80017404 00014344 90 1F 1F C4 */ stw r0, 0x1fc4(r31) +lbl_80017408: +/* 80017408 00014348 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8001740C 0001434C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80017410 00014350 7C 08 03 A6 */ mtlr r0 +/* 80017414 00014354 38 21 00 10 */ addi r1, r1, 0x10 +/* 80017418 00014358 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_MemCard/asm/func_8001741C.s b/include/m_Do/m_Do_MemCard/asm/func_8001741C.s new file mode 100644 index 00000000000..64a6df8941e --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_8001741C.s @@ -0,0 +1,21 @@ +/* 8001741C 0001435C 94 21 FF 70 */ stwu r1, -0x90(r1) +/* 80017420 00014360 7C 08 02 A6 */ mflr r0 +/* 80017424 00014364 90 01 00 94 */ stw r0, 0x94(r1) +/* 80017428 00014368 48 32 98 5D */ bl OSGetCurrentThread +/* 8001742C 0001436C 7C 64 1B 78 */ mr r4, r3 +/* 80017430 00014370 38 61 00 08 */ addi r3, r1, 8 +/* 80017434 00014374 38 A0 00 00 */ li r5, 0 +/* 80017438 00014378 48 2B A2 81 */ bl __ct__9JKRThreadFP8OSThreadi +/* 8001743C 0001437C 38 61 00 08 */ addi r3, r1, 8 +/* 80017440 00014380 38 80 FF FF */ li r4, -1 +/* 80017444 00014384 48 2B A3 15 */ bl __dt__9JKRThreadFv +/* 80017448 00014388 4B FF 78 9D */ bl mDoExt_getAssertHeap +/* 8001744C 0001438C 48 2B 6F ED */ bl becomeCurrentHeap__7JKRHeapFv +/* 80017450 00014390 3C 60 80 3F */ lis r3, lbl_803EAF40@ha +/* 80017454 00014394 38 63 AF 40 */ addi r3, r3, lbl_803EAF40@l +/* 80017458 00014398 4B FF F3 79 */ bl mDoMemCd_Ctrl_c_NS_main +/* 8001745C 0001439C 38 60 00 00 */ li r3, 0 +/* 80017460 000143A0 80 01 00 94 */ lwz r0, 0x94(r1) +/* 80017464 000143A4 7C 08 03 A6 */ mtlr r0 +/* 80017468 000143A8 38 21 00 90 */ addi r1, r1, 0x90 +/* 8001746C 000143AC 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/m_Do/m_Do_MemCard/asm/func_80017470.s b/include/m_Do/m_Do_MemCard/asm/func_80017470.s new file mode 100644 index 00000000000..04bd0c3fbb8 --- /dev/null +++ b/include/m_Do/m_Do_MemCard/asm/func_80017470.s @@ -0,0 +1,10 @@ +/* 80017470 000143B0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80017474 000143B4 7C 08 02 A6 */ mflr r0 +/* 80017478 000143B8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8001747C 000143BC 3C 60 80 3F */ lis r3, lbl_803EAF40@ha +/* 80017480 000143C0 38 63 AF 40 */ addi r3, r3, lbl_803EAF40@l +/* 80017484 000143C4 4B FF F2 A9 */ bl mDoMemCd_Ctrl_c +/* 80017488 000143C8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8001748C 000143CC 7C 08 03 A6 */ mtlr r0 +/* 80017490 000143D0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80017494 000143D4 4E 80 00 20 */ blr diff --git a/ldscript.lcf b/ldscript.lcf index 55de4fac1e4..bc59374dea1 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -3298,6 +3298,7 @@ func_8000D8EC func_8000D8E4 __dt__7JUTFontFv func_80015544 +func_80017470 } /* .init 80003100 - 80005600 diff --git a/obj_files.mk b/obj_files.mk index 20a404ac9dc..ea8134672e5 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -38,7 +38,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/m/Do/dvd/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)/asm/m/Do/m_Do_MemCard.o \ + $(BUILD_DIR)/src/m_Do/m_Do_MemCard.o \ $(BUILD_DIR)/asm/rodata/rodata_m_Do_MemCardRWmng.o \ $(BUILD_DIR)/asm/m/Do/m_Do_MemCardRWmng.o \ $(BUILD_DIR)/asm/rodata/rodata_m_Do_machine_exception.o \ diff --git a/src/m_Do/m_Do_MemCard.cpp b/src/m_Do/m_Do_MemCard.cpp index 4bf93c8658d..5611244cf80 100644 --- a/src/m_Do/m_Do_MemCard.cpp +++ b/src/m_Do/m_Do_MemCard.cpp @@ -1 +1,229 @@ -// ok +/* m_Do_MemCard.cpp autogenerated by split.py v0.4 at 2021-01-31 21:14:24.930153 */ + +#include "global.h" +#include "m_Do/m_Do_Reset/m_Do_Reset.h" + +// additional symbols needed for m_Do_MemCard.cpp +// autogenerated by split.py v0.4 at 2021-01-31 21:14:24.930190 +extern "C" { +void CARDCheck(void); +void CARDClose(void); +void CARDCreate(void); +void CARDFormat(void); +void CARDFreeBlocks(void); +void CARDInit(void); +void CARDMount(void); +void CARDOpen(void); +void CARDProbe(void); +void CARDProbeEx(void); +void CARDUnmount(void); +void OSInitCond(void); +void OSSignalCond(void); +void OSWaitCond(void); +void __ct__9JKRThreadFP8OSThreadi(void); +void __dt__9JKRThreadFv(void); +void _restgpr_27(void); +void _restgpr_28(void); +void _savegpr_27(void); +void _savegpr_28(void); +void becomeCurrentHeap__7JKRHeapFv(void); +void func_80017470(void); +void mDoExt_getAssertHeap(void); +void mDoMemCdRWm_Restore(void); +void mDoMemCdRWm_Store(void); +void mDoMemCd_Ctrl_c(void); +void mDoMemCd_Ctrl_c_NS_FormatSync(void); +void mDoMemCd_Ctrl_c_NS_LoadSync(void); +void mDoMemCd_Ctrl_c_NS_SaveSync(void); +void mDoMemCd_Ctrl_c_NS_ThdInit(void); +void mDoMemCd_Ctrl_c_NS_attach(void); +void mDoMemCd_Ctrl_c_NS_checkspace(void); +void mDoMemCd_Ctrl_c_NS_command_attach(void); +void mDoMemCd_Ctrl_c_NS_command_format(void); +void mDoMemCd_Ctrl_c_NS_detach(void); +void mDoMemCd_Ctrl_c_NS_format(void); +void mDoMemCd_Ctrl_c_NS_getStatus(void); +void mDoMemCd_Ctrl_c_NS_load(void); +void mDoMemCd_Ctrl_c_NS_loadfile(void); +void mDoMemCd_Ctrl_c_NS_main(void); +void mDoMemCd_Ctrl_c_NS_mount(void); +void mDoMemCd_Ctrl_c_NS_restore(void); +void mDoMemCd_Ctrl_c_NS_save(void); +void mDoMemCd_Ctrl_c_NS_setCardState(void); +void mDoMemCd_Ctrl_c_NS_store(void); +void mDoMemCd_Ctrl_c_NS_update(void); +void mDoMemCd_main(void); +void memcpy(void); +} + +// additional symbols needed for m_Do_MemCard.cpp +// autogenerated by split.py v0.4 at 2021-01-31 21:14:24.930195 +extern u8 lbl_803743F8; +extern u8 lbl_803A34F8; +extern u8 lbl_803A3530; +extern u8 lbl_803DFC20; +extern u8 lbl_803E0C20; +extern u8 lbl_803E0F40; + +extern "C" { +// __ct__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::mDoMemCd_Ctrl_c(void) +asm void mDoMemCd_Ctrl_c(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_8001672C.s" +} + +// ThdInit__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::ThdInit(void) +asm void mDoMemCd_Ctrl_c_NS_ThdInit(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016730.s" +} + +// main__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::main(void) +asm void mDoMemCd_Ctrl_c_NS_main(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_800167D0.s" +} + +// update__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::update(void) +asm void mDoMemCd_Ctrl_c_NS_update(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016894.s" +} + +// load__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::load(void) +asm void mDoMemCd_Ctrl_c_NS_load(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_800169B4.s" +} + +// restore__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::restore(void) +asm void mDoMemCd_Ctrl_c_NS_restore(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016A0C.s" +} + +// LoadSync__15mDoMemCd_Ctrl_cFPvUlUl +// mDoMemCd_Ctrl_c::LoadSync(void*, u32, u32) +asm void mDoMemCd_Ctrl_c_NS_LoadSync(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016AB0.s" +} + +// save__15mDoMemCd_Ctrl_cFPvUlUl +// mDoMemCd_Ctrl_c::save(void*, u32, u32) +asm void mDoMemCd_Ctrl_c_NS_save(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016B58.s" +} + +// store__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::store(void) +asm void mDoMemCd_Ctrl_c_NS_store(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016BD4.s" +} + +// SaveSync__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::SaveSync(void) +asm void mDoMemCd_Ctrl_c_NS_SaveSync(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016CE0.s" +} + +// getStatus__15mDoMemCd_Ctrl_cFUl +// mDoMemCd_Ctrl_c::getStatus(u32) +asm void mDoMemCd_Ctrl_c_NS_getStatus(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016D74.s" +} + +// command_format__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::command_format(void) +asm void mDoMemCd_Ctrl_c_NS_command_format(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016E58.s" +} + +// format__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::format(void) +asm void mDoMemCd_Ctrl_c_NS_format(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016EA8.s" +} + +// FormatSync__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::FormatSync(void) +asm void mDoMemCd_Ctrl_c_NS_FormatSync(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016F2C.s" +} + +// attach__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::attach(void) +asm void mDoMemCd_Ctrl_c_NS_attach(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80016FB8.s" +} + +// command_attach__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::command_attach(void) +asm void mDoMemCd_Ctrl_c_NS_command_attach(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_800170B8.s" +} + +// detach__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::detach(void) +asm void mDoMemCd_Ctrl_c_NS_detach(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80017110.s" +} + +// mount__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::mount(void) +asm void mDoMemCd_Ctrl_c_NS_mount(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80017148.s" +} + +// loadfile__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::loadfile(void) +asm void mDoMemCd_Ctrl_c_NS_loadfile(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80017274.s" +} + +// checkspace__15mDoMemCd_Ctrl_cFv +// mDoMemCd_Ctrl_c::checkspace(void) +asm void mDoMemCd_Ctrl_c_NS_checkspace(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_800172D4.s" +} + +// setCardState__15mDoMemCd_Ctrl_cFl +// mDoMemCd_Ctrl_c::setCardState(s32) +asm void mDoMemCd_Ctrl_c_NS_setCardState(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80017360.s" +} + +// mDoMemCd_main__FPv +// mDoMemCd_main(void*) +asm void mDoMemCd_main(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_8001741C.s" +} + +// __sinit_m_Do_MemCard_cpp +// +asm void func_80017470(void) { + nofralloc +#include "m_Do/m_Do_MemCard/asm/func_80017470.s" +} +};