From 7825666971f79f8b589da1f9c60088261370386d Mon Sep 17 00:00:00 2001 From: hatal175 Date: Fri, 20 Jan 2023 19:51:21 +0200 Subject: [PATCH] Add 1.2.5e to several makefiles and matching dolphin lib stuff (#247) * Fix select_occurence in diff.py * Use 1.2.5e and metroid prime decomp to match dlphin lib funcs * Fix FRANK_COMPILER WINE typo * Double WINE use removal * Organize dolphin compiler makefile names * Use inline auto instead of special inline where applicable I couldn't make CARDOpen work with the flag though --- Makefile | 2 + Progress.md | 8 +- README.md | 2 +- asm/dolphin/ar/ar/ARAlloc.s | 27 - asm/dolphin/ar/ar/ARGetDMAStatus.s | 16 - asm/dolphin/ar/ar/ARInit.s | 52 -- asm/dolphin/ar/ar/ARRegisterDMACallback.s | 18 - asm/dolphin/ar/ar/__ARClearInterrupt.s | 9 - asm/dolphin/ar/ar/__ARGetInterruptStatus.s | 5 - asm/dolphin/ar/arq/ARQInit.s | 30 - asm/dolphin/ar/arq/ARQPostRequest.s | 101 --- .../ar/arq/__ARQInterruptServiceRoutine.s | 58 -- asm/dolphin/ar/arq/__ARQServiceQueueLo.s | 72 -- asm/dolphin/card/CARDBios/CARDFreeBlocks.s | 98 --- asm/dolphin/card/CARDBios/Retry.s | 182 ----- .../card/CARDBios/__CARDPutControlBlock.s | 28 - .../card/CARDBios/__CARDReadVendorID.s | 64 -- asm/dolphin/card/CARDBios/__CARDStart.s | 149 ---- asm/dolphin/card/CARDBios/__CARDWritePage.s | 86 -- asm/dolphin/card/CARDBlock/EraseCallback.s | 54 -- asm/dolphin/card/CARDBlock/__CARDAllocBlock.s | 81 -- .../card/CARDBlock/__CARDUpdateFatBlock.s | 44 -- asm/dolphin/card/CARDCheck/CARDCheckExAsync.s | 391 --------- asm/dolphin/card/CARDCheck/VerifyDir.s | 161 ---- asm/dolphin/card/CARDCheck/VerifyFAT.s | 182 ----- asm/dolphin/card/CARDCheck/VerifyID.s | 176 ----- asm/dolphin/card/CARDDir/EraseCallback.s | 54 -- asm/dolphin/card/CARDDir/__CARDUpdateDir.s | 52 -- .../card/CARDFormat/__CARDFormatRegionAsync.s | 422 ---------- asm/dolphin/card/CARDMount/CARDUnmount.s | 47 -- asm/dolphin/card/CARDMount/DoMount.s | 300 ------- asm/dolphin/card/CARDOpen/CARDOpen.s | 81 -- asm/dolphin/card/CARDOpen/__CARDAccess.s | 42 - asm/dolphin/card/CARDOpen/__CARDIsReadable.s | 66 -- asm/dolphin/card/CARDOpen/__CARDIsWritable.s | 85 -- .../card/CARDRdwr/BlockWriteCallback.s | 62 -- asm/dolphin/card/CARDRead/CARDReadAsync.s | 91 --- asm/dolphin/card/CARDStat/CARDGetStatus.s | 75 -- .../card/CARDStat/CARDSetStatusAsync.s | 102 --- asm/dolphin/card/CARDUnlock/DoneCallback.s | 212 ----- asm/dolphin/card/CARDUnlock/DummyLen.s | 55 -- asm/dolphin/card/CARDUnlock/InitCallback.s | 32 - asm/dolphin/card/CARDUnlock/__CARDUnlock.s | 745 ------------------ asm/dolphin/card/CARDWrite/EraseCallback.s | 47 -- asm/dolphin/card/CARDWrite/WriteCallback.s | 100 --- asm/dolphin/dvd/dvd/DVDCancelAsync.s | 177 ----- asm/dolphin/dvd/dvd/DVDCancelStreamAsync.s | 51 -- asm/dolphin/dvd/dvd/DVDCheckDisk.s | 72 -- .../dvd/dvd/DVDGetCommandBlockStatus.s | 22 - asm/dolphin/dvd/dvd/DVDGetDriveStatus.s | 50 -- asm/dolphin/dvd/dvd/DVDInquiryAsync.s | 56 -- asm/dolphin/dvd/dvd/DVDReadAbsAsyncForBS.s | 56 -- asm/dolphin/dvd/dvd/DVDReadAbsAsyncPrio.s | 59 -- asm/dolphin/dvd/dvd/DVDReadDiskID.s | 57 -- asm/dolphin/dvd/dvd/__DVDPrepareResetAsync.s | 81 -- asm/dolphin/dvd/dvd/cbForStateBusy.s | 462 ----------- asm/dolphin/dvd/dvd/cbForStateCheckID2.s | 59 -- asm/dolphin/dvd/dvd/stateReadingFST.s | 39 - asm/dolphin/dvd/dvd/stateReady.s | 209 ----- asm/dolphin/dvd/dvdlow/DVDLowClearCallback.s | 8 - asm/dolphin/pad/Pad/PADReceiveCheckCallback.s | 83 -- asm/dolphin/pad/Pad/PADSetSamplingCallback.s | 24 - .../pad/Pad/__PADDisableRecalibration.s | 35 - diff.py | 24 +- include/dolphin/ar/arq.h | 12 + include/dolphin/card/CARDPriv.h | 2 +- include/dolphin/dvd/dvd.h | 3 - include/dolphin/dvd/dvdlow.h | 3 + include/dolphin/os/OS.h | 2 +- libs/dolphin/ai/Makefile | 6 +- libs/dolphin/ai/ai.c | 36 +- libs/dolphin/ar/Makefile | 5 +- libs/dolphin/ar/ar.c | 281 +++++-- libs/dolphin/ar/arq.c | 211 +++-- libs/dolphin/base/Makefile | 2 +- libs/dolphin/card/CARDBios.c | 286 +++++-- libs/dolphin/card/CARDBlock.c | 67 +- libs/dolphin/card/CARDCheck.c | 162 +++- libs/dolphin/card/CARDDir.c | 23 - libs/dolphin/card/CARDFormat.c | 83 +- libs/dolphin/card/CARDMount.c | 152 +++- libs/dolphin/card/CARDNet.c | 4 +- libs/dolphin/card/CARDOpen.c | 140 +++- libs/dolphin/card/CARDRdwr.c | 39 +- libs/dolphin/card/CARDRead.c | 17 +- libs/dolphin/card/CARDStat.c | 31 +- libs/dolphin/card/CARDUnlock.c | 327 +++++++- libs/dolphin/card/CARDWrite.c | 85 +- libs/dolphin/card/Makefile | 10 +- libs/dolphin/db/Makefile | 2 +- libs/dolphin/dsp/Makefile | 2 +- libs/dolphin/dvd/Makefile | 6 +- libs/dolphin/dvd/dvd.c | 564 ++++++++----- libs/dolphin/dvd/dvdlow.c | 20 +- libs/dolphin/exi/Makefile | 2 +- libs/dolphin/gd/Makefile | 2 +- libs/dolphin/gx/Makefile | 2 +- libs/dolphin/mtx/Makefile | 2 +- libs/dolphin/os/Makefile | 2 +- libs/dolphin/os/OS.c | 2 +- libs/dolphin/pad/Makefile | 5 +- libs/dolphin/pad/Pad.c | 96 ++- libs/dolphin/si/Makefile | 2 +- libs/dolphin/vi/Makefile | 2 +- tools/tp.py | 10 + 105 files changed, 2072 insertions(+), 7028 deletions(-) delete mode 100644 asm/dolphin/ar/ar/ARAlloc.s delete mode 100644 asm/dolphin/ar/ar/ARGetDMAStatus.s delete mode 100644 asm/dolphin/ar/ar/ARInit.s delete mode 100644 asm/dolphin/ar/ar/ARRegisterDMACallback.s delete mode 100644 asm/dolphin/ar/ar/__ARClearInterrupt.s delete mode 100644 asm/dolphin/ar/ar/__ARGetInterruptStatus.s delete mode 100644 asm/dolphin/ar/arq/ARQInit.s delete mode 100644 asm/dolphin/ar/arq/ARQPostRequest.s delete mode 100644 asm/dolphin/ar/arq/__ARQInterruptServiceRoutine.s delete mode 100644 asm/dolphin/ar/arq/__ARQServiceQueueLo.s delete mode 100644 asm/dolphin/card/CARDBios/CARDFreeBlocks.s delete mode 100644 asm/dolphin/card/CARDBios/Retry.s delete mode 100644 asm/dolphin/card/CARDBios/__CARDPutControlBlock.s delete mode 100644 asm/dolphin/card/CARDBios/__CARDReadVendorID.s delete mode 100644 asm/dolphin/card/CARDBios/__CARDStart.s delete mode 100644 asm/dolphin/card/CARDBios/__CARDWritePage.s delete mode 100644 asm/dolphin/card/CARDBlock/EraseCallback.s delete mode 100644 asm/dolphin/card/CARDBlock/__CARDAllocBlock.s delete mode 100644 asm/dolphin/card/CARDBlock/__CARDUpdateFatBlock.s delete mode 100644 asm/dolphin/card/CARDCheck/CARDCheckExAsync.s delete mode 100644 asm/dolphin/card/CARDCheck/VerifyDir.s delete mode 100644 asm/dolphin/card/CARDCheck/VerifyFAT.s delete mode 100644 asm/dolphin/card/CARDCheck/VerifyID.s delete mode 100644 asm/dolphin/card/CARDDir/EraseCallback.s delete mode 100644 asm/dolphin/card/CARDDir/__CARDUpdateDir.s delete mode 100644 asm/dolphin/card/CARDFormat/__CARDFormatRegionAsync.s delete mode 100644 asm/dolphin/card/CARDMount/CARDUnmount.s delete mode 100644 asm/dolphin/card/CARDMount/DoMount.s delete mode 100644 asm/dolphin/card/CARDOpen/CARDOpen.s delete mode 100644 asm/dolphin/card/CARDOpen/__CARDAccess.s delete mode 100644 asm/dolphin/card/CARDOpen/__CARDIsReadable.s delete mode 100644 asm/dolphin/card/CARDOpen/__CARDIsWritable.s delete mode 100644 asm/dolphin/card/CARDRdwr/BlockWriteCallback.s delete mode 100644 asm/dolphin/card/CARDRead/CARDReadAsync.s delete mode 100644 asm/dolphin/card/CARDStat/CARDGetStatus.s delete mode 100644 asm/dolphin/card/CARDStat/CARDSetStatusAsync.s delete mode 100644 asm/dolphin/card/CARDUnlock/DoneCallback.s delete mode 100644 asm/dolphin/card/CARDUnlock/DummyLen.s delete mode 100644 asm/dolphin/card/CARDUnlock/InitCallback.s delete mode 100644 asm/dolphin/card/CARDUnlock/__CARDUnlock.s delete mode 100644 asm/dolphin/card/CARDWrite/EraseCallback.s delete mode 100644 asm/dolphin/card/CARDWrite/WriteCallback.s delete mode 100644 asm/dolphin/dvd/dvd/DVDCancelAsync.s delete mode 100644 asm/dolphin/dvd/dvd/DVDCancelStreamAsync.s delete mode 100644 asm/dolphin/dvd/dvd/DVDCheckDisk.s delete mode 100644 asm/dolphin/dvd/dvd/DVDGetCommandBlockStatus.s delete mode 100644 asm/dolphin/dvd/dvd/DVDGetDriveStatus.s delete mode 100644 asm/dolphin/dvd/dvd/DVDInquiryAsync.s delete mode 100644 asm/dolphin/dvd/dvd/DVDReadAbsAsyncForBS.s delete mode 100644 asm/dolphin/dvd/dvd/DVDReadAbsAsyncPrio.s delete mode 100644 asm/dolphin/dvd/dvd/DVDReadDiskID.s delete mode 100644 asm/dolphin/dvd/dvd/__DVDPrepareResetAsync.s delete mode 100644 asm/dolphin/dvd/dvd/cbForStateBusy.s delete mode 100644 asm/dolphin/dvd/dvd/cbForStateCheckID2.s delete mode 100644 asm/dolphin/dvd/dvd/stateReadingFST.s delete mode 100644 asm/dolphin/dvd/dvd/stateReady.s delete mode 100644 asm/dolphin/dvd/dvdlow/DVDLowClearCallback.s delete mode 100644 asm/dolphin/pad/Pad/PADReceiveCheckCallback.s delete mode 100644 asm/dolphin/pad/Pad/PADSetSamplingCallback.s delete mode 100644 asm/dolphin/pad/Pad/__PADDisableRecalibration.s diff --git a/Makefile b/Makefile index 2ff44c50cf..2cd79d6bfa 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,8 @@ AS := $(DEVKITPPC)/bin/powerpc-eabi-as OBJCOPY := $(DEVKITPPC)/bin/powerpc-eabi-objcopy STRIP := $(DEVKITPPC)/bin/powerpc-eabi-strip CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_patched.exe +DOLPHIN_LIB_CC := $(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe +FRANK_CC := $(WINE) tools/mwcc_compiler/1.2.5e/mwcceppc.exe LD := $(WINE_LD) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe ELF2DOL := $(BUILD_PATH)/elf2dol PYTHON := python3 diff --git a/Progress.md b/Progress.md index c66944acf8..25fbc2edf4 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 22.077750% | 794036 | 3596544 +.text | 22.734158% | 817644 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 30.292747% | 1217972 | 4020672 +Total | 30.879913% | 1241580 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 30.292747% | 1217972 | 4020672 +main.dol | 30.879913% | 1241580 | 4020672 RELs | 33.041295% | 3799856 | 11500324 -Total | 32.329291% | 5017828 | 15520996 +Total | 32.481395% | 5041436 | 15520996 ## RELs diff --git a/README.md b/README.md index 6d753df2cd..61b52feb52 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ git clone https://github.com/zeldaret/tp mkdir -p tools/mwcc_compiler/ ``` -3. Download `GC_COMPILERS.zip` from the [Discord](https://discord.gg/Nshw5pHS4h) server. See the pins in the `#tp-decomp` channel under the Twilight Princess group. +3. Download [GC_WII_COMPILERS.zip](https://cdn.discordapp.com/attachments/727918646525165659/917185027656286218/GC_WII_COMPILERS.zip). 4. Extract `GC_COMPILERS.zip` into the previously created `mwcc_compiler` directory diff --git a/asm/dolphin/ar/ar/ARAlloc.s b/asm/dolphin/ar/ar/ARAlloc.s deleted file mode 100644 index b71ef79763..0000000000 --- a/asm/dolphin/ar/ar/ARAlloc.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_803506C4: -/* 803506C4 7C 08 02 A6 */ mflr r0 -/* 803506C8 90 01 00 04 */ stw r0, 4(r1) -/* 803506CC 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 803506D0 93 E1 00 14 */ stw r31, 0x14(r1) -/* 803506D4 93 C1 00 10 */ stw r30, 0x10(r1) -/* 803506D8 7C 7E 1B 78 */ mr r30, r3 -/* 803506DC 4B FE D0 19 */ bl OSDisableInterrupts -/* 803506E0 83 ED 93 48 */ lwz r31, __AR_StackPointer(r13) -/* 803506E4 80 8D 93 50 */ lwz r4, __AR_BlockLength(r13) -/* 803506E8 7C 1F F2 14 */ add r0, r31, r30 -/* 803506EC 90 0D 93 48 */ stw r0, __AR_StackPointer(r13) -/* 803506F0 93 C4 00 00 */ stw r30, 0(r4) -/* 803506F4 80 AD 93 50 */ lwz r5, __AR_BlockLength(r13) -/* 803506F8 80 8D 93 4C */ lwz r4, __AR_FreeBlocks(r13) -/* 803506FC 38 A5 00 04 */ addi r5, r5, 4 -/* 80350700 38 04 FF FF */ addi r0, r4, -1 -/* 80350704 90 AD 93 50 */ stw r5, __AR_BlockLength(r13) -/* 80350708 90 0D 93 4C */ stw r0, __AR_FreeBlocks(r13) -/* 8035070C 4B FE D0 11 */ bl OSRestoreInterrupts -/* 80350710 7F E3 FB 78 */ mr r3, r31 -/* 80350714 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80350718 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8035071C 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 80350720 38 21 00 18 */ addi r1, r1, 0x18 -/* 80350724 7C 08 03 A6 */ mtlr r0 -/* 80350728 4E 80 00 20 */ blr diff --git a/asm/dolphin/ar/ar/ARGetDMAStatus.s b/asm/dolphin/ar/ar/ARGetDMAStatus.s deleted file mode 100644 index 3fe00537dd..0000000000 --- a/asm/dolphin/ar/ar/ARGetDMAStatus.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80350598: -/* 80350598 7C 08 02 A6 */ mflr r0 -/* 8035059C 90 01 00 04 */ stw r0, 4(r1) -/* 803505A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803505A4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803505A8 4B FE D1 4D */ bl OSDisableInterrupts -/* 803505AC 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC00500A@ha */ -/* 803505B0 A0 04 50 0A */ lhz r0, 0x500A(r4) /* 0xCC00500A@l */ -/* 803505B4 54 1F 05 AC */ rlwinm r31, r0, 0, 0x16, 0x16 -/* 803505B8 4B FE D1 65 */ bl OSRestoreInterrupts -/* 803505BC 7F E3 FB 78 */ mr r3, r31 -/* 803505C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803505C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803505C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 803505CC 7C 08 03 A6 */ mtlr r0 -/* 803505D0 4E 80 00 20 */ blr diff --git a/asm/dolphin/ar/ar/ARInit.s b/asm/dolphin/ar/ar/ARInit.s deleted file mode 100644 index 905a62ce33..0000000000 --- a/asm/dolphin/ar/ar/ARInit.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_8035072C: -/* 8035072C 7C 08 02 A6 */ mflr r0 -/* 80350730 90 01 00 04 */ stw r0, 4(r1) -/* 80350734 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80350738 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8035073C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80350740 3B C4 00 00 */ addi r30, r4, 0 -/* 80350744 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80350748 3B A3 00 00 */ addi r29, r3, 0 -/* 8035074C 80 0D 93 54 */ lwz r0, __AR_init_flag(r13) -/* 80350750 2C 00 00 01 */ cmpwi r0, 1 -/* 80350754 40 82 00 0C */ bne lbl_80350760 -/* 80350758 38 60 40 00 */ li r3, 0x4000 -/* 8035075C 48 00 00 78 */ b lbl_803507D4 -lbl_80350760: -/* 80350760 80 6D 84 C8 */ lwz r3, __ARVersion(r13) -/* 80350764 4B FE A1 11 */ bl OSRegisterVersion -/* 80350768 4B FE CF 8D */ bl OSDisableInterrupts -/* 8035076C 38 00 00 00 */ li r0, 0 -/* 80350770 3C 80 80 35 */ lis r4, __ARHandler@ha /* 0x803507F8@ha */ -/* 80350774 90 0D 93 38 */ stw r0, __AR_Callback(r13) -/* 80350778 3B E3 00 00 */ addi r31, r3, 0 -/* 8035077C 38 84 07 F8 */ addi r4, r4, __ARHandler@l /* 0x803507F8@l */ -/* 80350780 38 60 00 06 */ li r3, 6 -/* 80350784 4B FE CF BD */ bl __OSSetInterruptHandler -/* 80350788 3C 60 02 00 */ lis r3, 0x200 -/* 8035078C 4B FE D3 B9 */ bl __OSUnmaskInterrupts -/* 80350790 38 00 40 00 */ li r0, 0x4000 -/* 80350794 93 CD 93 4C */ stw r30, __AR_FreeBlocks(r13) -/* 80350798 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC005000@ha */ -/* 8035079C 90 0D 93 48 */ stw r0, __AR_StackPointer(r13) -/* 803507A0 38 83 50 00 */ addi r4, r3, 0x5000 /* 0xCC005000@l */ -/* 803507A4 93 AD 93 50 */ stw r29, __AR_BlockLength(r13) -/* 803507A8 A0 04 00 1A */ lhz r0, 0x1a(r4) -/* 803507AC A0 63 50 1A */ lhz r3, 0x501a(r3) -/* 803507B0 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17 -/* 803507B4 50 60 06 3E */ rlwimi r0, r3, 0, 0x18, 0x1f -/* 803507B8 B0 04 00 1A */ sth r0, 0x1a(r4) -/* 803507BC 48 00 00 E5 */ bl __ARChecksize -/* 803507C0 38 00 00 01 */ li r0, 1 -/* 803507C4 90 0D 93 54 */ stw r0, __AR_init_flag(r13) -/* 803507C8 7F E3 FB 78 */ mr r3, r31 -/* 803507CC 4B FE CF 51 */ bl OSRestoreInterrupts -/* 803507D0 80 6D 93 48 */ lwz r3, __AR_StackPointer(r13) -lbl_803507D4: -/* 803507D4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803507D8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803507DC 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803507E0 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 803507E4 38 21 00 20 */ addi r1, r1, 0x20 -/* 803507E8 7C 08 03 A6 */ mtlr r0 -/* 803507EC 4E 80 00 20 */ blr diff --git a/asm/dolphin/ar/ar/ARRegisterDMACallback.s b/asm/dolphin/ar/ar/ARRegisterDMACallback.s deleted file mode 100644 index f50162e884..0000000000 --- a/asm/dolphin/ar/ar/ARRegisterDMACallback.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_80350554: -/* 80350554 7C 08 02 A6 */ mflr r0 -/* 80350558 90 01 00 04 */ stw r0, 4(r1) -/* 8035055C 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80350560 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80350564 93 C1 00 10 */ stw r30, 0x10(r1) -/* 80350568 7C 7E 1B 78 */ mr r30, r3 -/* 8035056C 83 ED 93 38 */ lwz r31, __AR_Callback(r13) -/* 80350570 4B FE D1 85 */ bl OSDisableInterrupts -/* 80350574 93 CD 93 38 */ stw r30, __AR_Callback(r13) -/* 80350578 4B FE D1 A5 */ bl OSRestoreInterrupts -/* 8035057C 7F E3 FB 78 */ mr r3, r31 -/* 80350580 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80350584 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80350588 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8035058C 38 21 00 18 */ addi r1, r1, 0x18 -/* 80350590 7C 08 03 A6 */ mtlr r0 -/* 80350594 4E 80 00 20 */ blr diff --git a/asm/dolphin/ar/ar/__ARClearInterrupt.s b/asm/dolphin/ar/ar/__ARClearInterrupt.s deleted file mode 100644 index 503b64907c..0000000000 --- a/asm/dolphin/ar/ar/__ARClearInterrupt.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80350870: -/* 80350870 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC005000@ha */ -/* 80350874 38 63 50 00 */ addi r3, r3, 0x5000 /* 0xCC005000@l */ -/* 80350878 A0 83 00 0A */ lhz r4, 0xa(r3) -/* 8035087C 38 00 FF 77 */ li r0, -137 -/* 80350880 7C 80 00 38 */ and r0, r4, r0 -/* 80350884 60 00 00 20 */ ori r0, r0, 0x20 -/* 80350888 B0 03 00 0A */ sth r0, 0xa(r3) -/* 8035088C 4E 80 00 20 */ blr diff --git a/asm/dolphin/ar/ar/__ARGetInterruptStatus.s b/asm/dolphin/ar/ar/__ARGetInterruptStatus.s deleted file mode 100644 index 2b0c13eaa0..0000000000 --- a/asm/dolphin/ar/ar/__ARGetInterruptStatus.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80350890: -/* 80350890 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC00500A@ha */ -/* 80350894 A0 03 50 0A */ lhz r0, 0x500A(r3) /* 0xCC00500A@l */ -/* 80350898 54 03 06 B4 */ rlwinm r3, r0, 0, 0x1a, 0x1a -/* 8035089C 4E 80 00 20 */ blr diff --git a/asm/dolphin/ar/arq/ARQInit.s b/asm/dolphin/ar/arq/ARQInit.s deleted file mode 100644 index ae1ba37c7c..0000000000 --- a/asm/dolphin/ar/arq/ARQInit.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80352264: -/* 80352264 7C 08 02 A6 */ mflr r0 -/* 80352268 90 01 00 04 */ stw r0, 4(r1) -/* 8035226C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80352270 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80352274 80 0D 93 7C */ lwz r0, __ARQ_init_flag(r13) -/* 80352278 2C 00 00 01 */ cmpwi r0, 1 -/* 8035227C 41 82 00 44 */ beq lbl_803522C0 -/* 80352280 80 6D 84 D0 */ lwz r3, __ARQVersion(r13) -/* 80352284 4B FE 85 F1 */ bl OSRegisterVersion -/* 80352288 3B E0 00 00 */ li r31, 0 -/* 8035228C 38 00 10 00 */ li r0, 0x1000 -/* 80352290 93 ED 93 60 */ stw r31, __ARQRequestQueueLo(r13) -/* 80352294 3C 60 80 35 */ lis r3, __ARQInterruptServiceRoutine@ha /* 0x80352198@ha */ -/* 80352298 93 ED 93 58 */ stw r31, __ARQRequestQueueHi(r13) -/* 8035229C 38 63 21 98 */ addi r3, r3, __ARQInterruptServiceRoutine@l /* 0x80352198@l */ -/* 803522A0 90 0D 93 78 */ stw r0, __ARQChunkSize(r13) -/* 803522A4 4B FF E2 B1 */ bl ARRegisterDMACallback -/* 803522A8 38 00 00 01 */ li r0, 1 -/* 803522AC 93 ED 93 68 */ stw r31, __ARQRequestPendingHi(r13) -/* 803522B0 93 ED 93 6C */ stw r31, __ARQRequestPendingLo(r13) -/* 803522B4 93 ED 93 70 */ stw r31, __ARQCallbackHi(r13) -/* 803522B8 93 ED 93 74 */ stw r31, __ARQCallbackLo(r13) -/* 803522BC 90 0D 93 7C */ stw r0, __ARQ_init_flag(r13) -lbl_803522C0: -/* 803522C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803522C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803522C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 803522CC 7C 08 03 A6 */ mtlr r0 -/* 803522D0 4E 80 00 20 */ blr diff --git a/asm/dolphin/ar/arq/ARQPostRequest.s b/asm/dolphin/ar/arq/ARQPostRequest.s deleted file mode 100644 index c38fe5bce9..0000000000 --- a/asm/dolphin/ar/arq/ARQPostRequest.s +++ /dev/null @@ -1,101 +0,0 @@ -lbl_803522D4: -/* 803522D4 7C 08 02 A6 */ mflr r0 -/* 803522D8 28 0A 00 00 */ cmplwi r10, 0 -/* 803522DC 90 01 00 04 */ stw r0, 4(r1) -/* 803522E0 38 00 00 00 */ li r0, 0 -/* 803522E4 94 21 FF C8 */ stwu r1, -0x38(r1) -/* 803522E8 93 E1 00 34 */ stw r31, 0x34(r1) -/* 803522EC 93 C1 00 30 */ stw r30, 0x30(r1) -/* 803522F0 3B C6 00 00 */ addi r30, r6, 0 -/* 803522F4 93 A1 00 2C */ stw r29, 0x2c(r1) -/* 803522F8 3B A3 00 00 */ addi r29, r3, 0 -/* 803522FC 90 03 00 00 */ stw r0, 0(r3) -/* 80352300 90 83 00 04 */ stw r4, 4(r3) -/* 80352304 90 A3 00 08 */ stw r5, 8(r3) -/* 80352308 90 E3 00 10 */ stw r7, 0x10(r3) -/* 8035230C 91 03 00 14 */ stw r8, 0x14(r3) -/* 80352310 91 23 00 18 */ stw r9, 0x18(r3) -/* 80352314 41 82 00 0C */ beq lbl_80352320 -/* 80352318 91 5D 00 1C */ stw r10, 0x1c(r29) -/* 8035231C 48 00 00 10 */ b lbl_8035232C -lbl_80352320: -/* 80352320 3C 60 80 35 */ lis r3, __ARQCallbackHack@ha /* 0x80352194@ha */ -/* 80352324 38 03 21 94 */ addi r0, r3, __ARQCallbackHack@l /* 0x80352194@l */ -/* 80352328 90 1D 00 1C */ stw r0, 0x1c(r29) -lbl_8035232C: -/* 8035232C 4B FE B3 C9 */ bl OSDisableInterrupts -/* 80352330 2C 1E 00 01 */ cmpwi r30, 1 -/* 80352334 3B E3 00 00 */ addi r31, r3, 0 -/* 80352338 41 82 00 38 */ beq lbl_80352370 -/* 8035233C 40 80 00 54 */ bge lbl_80352390 -/* 80352340 2C 1E 00 00 */ cmpwi r30, 0 -/* 80352344 40 80 00 08 */ bge lbl_8035234C -/* 80352348 48 00 00 48 */ b lbl_80352390 -lbl_8035234C: -/* 8035234C 80 0D 93 60 */ lwz r0, __ARQRequestQueueLo(r13) -/* 80352350 28 00 00 00 */ cmplwi r0, 0 -/* 80352354 41 82 00 10 */ beq lbl_80352364 -/* 80352358 80 6D 93 64 */ lwz r3, __ARQRequestTailLo(r13) -/* 8035235C 93 A3 00 00 */ stw r29, 0(r3) -/* 80352360 48 00 00 08 */ b lbl_80352368 -lbl_80352364: -/* 80352364 93 AD 93 60 */ stw r29, __ARQRequestQueueLo(r13) -lbl_80352368: -/* 80352368 93 AD 93 64 */ stw r29, __ARQRequestTailLo(r13) -/* 8035236C 48 00 00 24 */ b lbl_80352390 -lbl_80352370: -/* 80352370 80 0D 93 58 */ lwz r0, __ARQRequestQueueHi(r13) -/* 80352374 28 00 00 00 */ cmplwi r0, 0 -/* 80352378 41 82 00 10 */ beq lbl_80352388 -/* 8035237C 80 6D 93 5C */ lwz r3, __ARQRequestTailHi(r13) -/* 80352380 93 A3 00 00 */ stw r29, 0(r3) -/* 80352384 48 00 00 08 */ b lbl_8035238C -lbl_80352388: -/* 80352388 93 AD 93 58 */ stw r29, __ARQRequestQueueHi(r13) -lbl_8035238C: -/* 8035238C 93 AD 93 5C */ stw r29, __ARQRequestTailHi(r13) -lbl_80352390: -/* 80352390 80 0D 93 68 */ lwz r0, __ARQRequestPendingHi(r13) -/* 80352394 28 00 00 00 */ cmplwi r0, 0 -/* 80352398 40 82 00 74 */ bne lbl_8035240C -/* 8035239C 80 0D 93 6C */ lwz r0, __ARQRequestPendingLo(r13) -/* 803523A0 28 00 00 00 */ cmplwi r0, 0 -/* 803523A4 40 82 00 68 */ bne lbl_8035240C -/* 803523A8 80 CD 93 58 */ lwz r6, __ARQRequestQueueHi(r13) -/* 803523AC 28 06 00 00 */ cmplwi r6, 0 -/* 803523B0 41 82 00 4C */ beq lbl_803523FC -/* 803523B4 80 66 00 08 */ lwz r3, 8(r6) -/* 803523B8 28 03 00 00 */ cmplwi r3, 0 -/* 803523BC 40 82 00 18 */ bne lbl_803523D4 -/* 803523C0 80 86 00 10 */ lwz r4, 0x10(r6) -/* 803523C4 80 A6 00 14 */ lwz r5, 0x14(r6) -/* 803523C8 80 C6 00 18 */ lwz r6, 0x18(r6) -/* 803523CC 4B FF E2 09 */ bl ARStartDMA -/* 803523D0 48 00 00 14 */ b lbl_803523E4 -lbl_803523D4: -/* 803523D4 80 86 00 14 */ lwz r4, 0x14(r6) -/* 803523D8 80 A6 00 10 */ lwz r5, 0x10(r6) -/* 803523DC 80 C6 00 18 */ lwz r6, 0x18(r6) -/* 803523E0 4B FF E1 F5 */ bl ARStartDMA -lbl_803523E4: -/* 803523E4 80 6D 93 58 */ lwz r3, __ARQRequestQueueHi(r13) -/* 803523E8 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 803523EC 90 0D 93 70 */ stw r0, __ARQCallbackHi(r13) -/* 803523F0 90 6D 93 68 */ stw r3, __ARQRequestPendingHi(r13) -/* 803523F4 80 03 00 00 */ lwz r0, 0(r3) -/* 803523F8 90 0D 93 58 */ stw r0, __ARQRequestQueueHi(r13) -lbl_803523FC: -/* 803523FC 80 0D 93 68 */ lwz r0, __ARQRequestPendingHi(r13) -/* 80352400 28 00 00 00 */ cmplwi r0, 0 -/* 80352404 40 82 00 08 */ bne lbl_8035240C -/* 80352408 4B FF FC 8D */ bl __ARQServiceQueueLo -lbl_8035240C: -/* 8035240C 7F E3 FB 78 */ mr r3, r31 -/* 80352410 4B FE B3 0D */ bl OSRestoreInterrupts -/* 80352414 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 80352418 83 E1 00 34 */ lwz r31, 0x34(r1) -/* 8035241C 83 C1 00 30 */ lwz r30, 0x30(r1) -/* 80352420 83 A1 00 2C */ lwz r29, 0x2c(r1) -/* 80352424 38 21 00 38 */ addi r1, r1, 0x38 -/* 80352428 7C 08 03 A6 */ mtlr r0 -/* 8035242C 4E 80 00 20 */ blr diff --git a/asm/dolphin/ar/arq/__ARQInterruptServiceRoutine.s b/asm/dolphin/ar/arq/__ARQInterruptServiceRoutine.s deleted file mode 100644 index 849d6fcb06..0000000000 --- a/asm/dolphin/ar/arq/__ARQInterruptServiceRoutine.s +++ /dev/null @@ -1,58 +0,0 @@ -lbl_80352198: -/* 80352198 7C 08 02 A6 */ mflr r0 -/* 8035219C 90 01 00 04 */ stw r0, 4(r1) -/* 803521A0 94 21 FF F8 */ stwu r1, -8(r1) -/* 803521A4 81 8D 93 70 */ lwz r12, __ARQCallbackHi(r13) -/* 803521A8 28 0C 00 00 */ cmplwi r12, 0 -/* 803521AC 41 82 00 20 */ beq lbl_803521CC -/* 803521B0 80 6D 93 68 */ lwz r3, __ARQRequestPendingHi(r13) -/* 803521B4 7D 88 03 A6 */ mtlr r12 -/* 803521B8 4E 80 00 21 */ blrl -/* 803521BC 38 00 00 00 */ li r0, 0 -/* 803521C0 90 0D 93 68 */ stw r0, __ARQRequestPendingHi(r13) -/* 803521C4 90 0D 93 70 */ stw r0, __ARQCallbackHi(r13) -/* 803521C8 48 00 00 28 */ b lbl_803521F0 -lbl_803521CC: -/* 803521CC 81 8D 93 74 */ lwz r12, __ARQCallbackLo(r13) -/* 803521D0 28 0C 00 00 */ cmplwi r12, 0 -/* 803521D4 41 82 00 1C */ beq lbl_803521F0 -/* 803521D8 80 6D 93 6C */ lwz r3, __ARQRequestPendingLo(r13) -/* 803521DC 7D 88 03 A6 */ mtlr r12 -/* 803521E0 4E 80 00 21 */ blrl -/* 803521E4 38 00 00 00 */ li r0, 0 -/* 803521E8 90 0D 93 6C */ stw r0, __ARQRequestPendingLo(r13) -/* 803521EC 90 0D 93 74 */ stw r0, __ARQCallbackLo(r13) -lbl_803521F0: -/* 803521F0 80 CD 93 58 */ lwz r6, __ARQRequestQueueHi(r13) -/* 803521F4 28 06 00 00 */ cmplwi r6, 0 -/* 803521F8 41 82 00 4C */ beq lbl_80352244 -/* 803521FC 80 66 00 08 */ lwz r3, 8(r6) -/* 80352200 28 03 00 00 */ cmplwi r3, 0 -/* 80352204 40 82 00 18 */ bne lbl_8035221C -/* 80352208 80 86 00 10 */ lwz r4, 0x10(r6) -/* 8035220C 80 A6 00 14 */ lwz r5, 0x14(r6) -/* 80352210 80 C6 00 18 */ lwz r6, 0x18(r6) -/* 80352214 4B FF E3 C1 */ bl ARStartDMA -/* 80352218 48 00 00 14 */ b lbl_8035222C -lbl_8035221C: -/* 8035221C 80 86 00 14 */ lwz r4, 0x14(r6) -/* 80352220 80 A6 00 10 */ lwz r5, 0x10(r6) -/* 80352224 80 C6 00 18 */ lwz r6, 0x18(r6) -/* 80352228 4B FF E3 AD */ bl ARStartDMA -lbl_8035222C: -/* 8035222C 80 6D 93 58 */ lwz r3, __ARQRequestQueueHi(r13) -/* 80352230 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 80352234 90 0D 93 70 */ stw r0, __ARQCallbackHi(r13) -/* 80352238 90 6D 93 68 */ stw r3, __ARQRequestPendingHi(r13) -/* 8035223C 80 03 00 00 */ lwz r0, 0(r3) -/* 80352240 90 0D 93 58 */ stw r0, __ARQRequestQueueHi(r13) -lbl_80352244: -/* 80352244 80 0D 93 68 */ lwz r0, __ARQRequestPendingHi(r13) -/* 80352248 28 00 00 00 */ cmplwi r0, 0 -/* 8035224C 40 82 00 08 */ bne lbl_80352254 -/* 80352250 4B FF FE 45 */ bl __ARQServiceQueueLo -lbl_80352254: -/* 80352254 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80352258 38 21 00 08 */ addi r1, r1, 8 -/* 8035225C 7C 08 03 A6 */ mtlr r0 -/* 80352260 4E 80 00 20 */ blr diff --git a/asm/dolphin/ar/arq/__ARQServiceQueueLo.s b/asm/dolphin/ar/arq/__ARQServiceQueueLo.s deleted file mode 100644 index 8fa2e93442..0000000000 --- a/asm/dolphin/ar/arq/__ARQServiceQueueLo.s +++ /dev/null @@ -1,72 +0,0 @@ -lbl_80352094: -/* 80352094 7C 08 02 A6 */ mflr r0 -/* 80352098 90 01 00 04 */ stw r0, 4(r1) -/* 8035209C 94 21 FF F8 */ stwu r1, -8(r1) -/* 803520A0 80 0D 93 6C */ lwz r0, __ARQRequestPendingLo(r13) -/* 803520A4 28 00 00 00 */ cmplwi r0, 0 -/* 803520A8 40 82 00 1C */ bne lbl_803520C4 -/* 803520AC 80 6D 93 60 */ lwz r3, __ARQRequestQueueLo(r13) -/* 803520B0 28 03 00 00 */ cmplwi r3, 0 -/* 803520B4 41 82 00 10 */ beq lbl_803520C4 -/* 803520B8 90 6D 93 6C */ stw r3, __ARQRequestPendingLo(r13) -/* 803520BC 80 03 00 00 */ lwz r0, 0(r3) -/* 803520C0 90 0D 93 60 */ stw r0, __ARQRequestQueueLo(r13) -lbl_803520C4: -/* 803520C4 80 AD 93 6C */ lwz r5, __ARQRequestPendingLo(r13) -/* 803520C8 28 05 00 00 */ cmplwi r5, 0 -/* 803520CC 41 82 00 B8 */ beq lbl_80352184 -/* 803520D0 80 C5 00 18 */ lwz r6, 0x18(r5) -/* 803520D4 80 0D 93 78 */ lwz r0, __ARQChunkSize(r13) -/* 803520D8 7C 06 00 40 */ cmplw r6, r0 -/* 803520DC 41 81 00 3C */ bgt lbl_80352118 -/* 803520E0 80 65 00 08 */ lwz r3, 8(r5) -/* 803520E4 28 03 00 00 */ cmplwi r3, 0 -/* 803520E8 40 82 00 14 */ bne lbl_803520FC -/* 803520EC 80 85 00 10 */ lwz r4, 0x10(r5) -/* 803520F0 80 A5 00 14 */ lwz r5, 0x14(r5) -/* 803520F4 4B FF E4 E1 */ bl ARStartDMA -/* 803520F8 48 00 00 10 */ b lbl_80352108 -lbl_803520FC: -/* 803520FC 80 85 00 14 */ lwz r4, 0x14(r5) -/* 80352100 80 A5 00 10 */ lwz r5, 0x10(r5) -/* 80352104 4B FF E4 D1 */ bl ARStartDMA -lbl_80352108: -/* 80352108 80 6D 93 6C */ lwz r3, __ARQRequestPendingLo(r13) -/* 8035210C 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 80352110 90 0D 93 74 */ stw r0, __ARQCallbackLo(r13) -/* 80352114 48 00 00 34 */ b lbl_80352148 -lbl_80352118: -/* 80352118 80 65 00 08 */ lwz r3, 8(r5) -/* 8035211C 28 03 00 00 */ cmplwi r3, 0 -/* 80352120 40 82 00 18 */ bne lbl_80352138 -/* 80352124 80 85 00 10 */ lwz r4, 0x10(r5) -/* 80352128 7C 06 03 78 */ mr r6, r0 -/* 8035212C 80 A5 00 14 */ lwz r5, 0x14(r5) -/* 80352130 4B FF E4 A5 */ bl ARStartDMA -/* 80352134 48 00 00 14 */ b lbl_80352148 -lbl_80352138: -/* 80352138 80 85 00 14 */ lwz r4, 0x14(r5) -/* 8035213C 7C 06 03 78 */ mr r6, r0 -/* 80352140 80 A5 00 10 */ lwz r5, 0x10(r5) -/* 80352144 4B FF E4 91 */ bl ARStartDMA -lbl_80352148: -/* 80352148 80 6D 93 6C */ lwz r3, __ARQRequestPendingLo(r13) -/* 8035214C 80 8D 93 78 */ lwz r4, __ARQChunkSize(r13) -/* 80352150 80 03 00 18 */ lwz r0, 0x18(r3) -/* 80352154 7C 04 00 50 */ subf r0, r4, r0 -/* 80352158 90 03 00 18 */ stw r0, 0x18(r3) -/* 8035215C 80 8D 93 6C */ lwz r4, __ARQRequestPendingLo(r13) -/* 80352160 80 0D 93 78 */ lwz r0, __ARQChunkSize(r13) -/* 80352164 80 64 00 10 */ lwz r3, 0x10(r4) -/* 80352168 7C 03 02 14 */ add r0, r3, r0 -/* 8035216C 90 04 00 10 */ stw r0, 0x10(r4) -/* 80352170 80 8D 93 6C */ lwz r4, __ARQRequestPendingLo(r13) -/* 80352174 80 0D 93 78 */ lwz r0, __ARQChunkSize(r13) -/* 80352178 80 64 00 14 */ lwz r3, 0x14(r4) -/* 8035217C 7C 03 02 14 */ add r0, r3, r0 -/* 80352180 90 04 00 14 */ stw r0, 0x14(r4) -lbl_80352184: -/* 80352184 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80352188 38 21 00 08 */ addi r1, r1, 8 -/* 8035218C 7C 08 03 A6 */ mtlr r0 -/* 80352190 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDBios/CARDFreeBlocks.s b/asm/dolphin/card/CARDBios/CARDFreeBlocks.s deleted file mode 100644 index 5ad7ae37cc..0000000000 --- a/asm/dolphin/card/CARDBios/CARDFreeBlocks.s +++ /dev/null @@ -1,98 +0,0 @@ -lbl_80353CD0: -/* 80353CD0 7C 08 02 A6 */ mflr r0 -/* 80353CD4 90 01 00 04 */ stw r0, 4(r1) -/* 80353CD8 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80353CDC 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80353CE0 3B E5 00 00 */ addi r31, r5, 0 -/* 80353CE4 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80353CE8 93 A1 00 24 */ stw r29, 0x24(r1) -/* 80353CEC 3B A4 00 00 */ addi r29, r4, 0 -/* 80353CF0 38 81 00 18 */ addi r4, r1, 0x18 -/* 80353CF4 4B FF FE C1 */ bl __CARDGetControlBlock -/* 80353CF8 2C 03 00 00 */ cmpwi r3, 0 -/* 80353CFC 40 80 00 08 */ bge lbl_80353D04 -/* 80353D00 48 00 01 04 */ b lbl_80353E04 -lbl_80353D04: -/* 80353D04 80 61 00 18 */ lwz r3, 0x18(r1) -/* 80353D08 48 00 17 0D */ bl __CARDGetFatBlock -/* 80353D0C 7C 7E 1B 78 */ mr r30, r3 -/* 80353D10 80 61 00 18 */ lwz r3, 0x18(r1) -/* 80353D14 48 00 1A 69 */ bl __CARDGetDirBlock -/* 80353D18 28 1E 00 00 */ cmplwi r30, 0 -/* 80353D1C 41 82 00 0C */ beq lbl_80353D28 -/* 80353D20 28 03 00 00 */ cmplwi r3, 0 -/* 80353D24 40 82 00 44 */ bne lbl_80353D68 -lbl_80353D28: -/* 80353D28 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80353D2C 4B FE 99 C9 */ bl OSDisableInterrupts -/* 80353D30 80 1E 00 00 */ lwz r0, 0(r30) -/* 80353D34 2C 00 00 00 */ cmpwi r0, 0 -/* 80353D38 41 82 00 10 */ beq lbl_80353D48 -/* 80353D3C 38 00 FF FA */ li r0, -6 -/* 80353D40 90 1E 00 04 */ stw r0, 4(r30) -/* 80353D44 48 00 00 18 */ b lbl_80353D5C -lbl_80353D48: -/* 80353D48 80 1E 00 04 */ lwz r0, 4(r30) -/* 80353D4C 2C 00 FF FF */ cmpwi r0, -1 -/* 80353D50 40 82 00 0C */ bne lbl_80353D5C -/* 80353D54 38 00 FF FA */ li r0, -6 -/* 80353D58 90 1E 00 04 */ stw r0, 4(r30) -lbl_80353D5C: -/* 80353D5C 4B FE 99 C1 */ bl OSRestoreInterrupts -/* 80353D60 38 60 FF FA */ li r3, -6 -/* 80353D64 48 00 00 A0 */ b lbl_80353E04 -lbl_80353D68: -/* 80353D68 28 1D 00 00 */ cmplwi r29, 0 -/* 80353D6C 41 82 00 18 */ beq lbl_80353D84 -/* 80353D70 80 81 00 18 */ lwz r4, 0x18(r1) -/* 80353D74 A0 1E 00 06 */ lhz r0, 6(r30) -/* 80353D78 80 84 00 0C */ lwz r4, 0xc(r4) -/* 80353D7C 7C 04 01 D6 */ mullw r0, r4, r0 -/* 80353D80 90 1D 00 00 */ stw r0, 0(r29) -lbl_80353D84: -/* 80353D84 28 1F 00 00 */ cmplwi r31, 0 -/* 80353D88 41 82 00 40 */ beq lbl_80353DC8 -/* 80353D8C 38 00 00 00 */ li r0, 0 -/* 80353D90 90 1F 00 00 */ stw r0, 0(r31) -/* 80353D94 38 A0 00 00 */ li r5, 0 -/* 80353D98 48 00 00 24 */ b lbl_80353DBC -lbl_80353D9C: -/* 80353D9C 88 03 00 08 */ lbz r0, 8(r3) -/* 80353DA0 28 00 00 FF */ cmplwi r0, 0xff -/* 80353DA4 40 82 00 10 */ bne lbl_80353DB4 -/* 80353DA8 80 9F 00 00 */ lwz r4, 0(r31) -/* 80353DAC 38 04 00 01 */ addi r0, r4, 1 -/* 80353DB0 90 1F 00 00 */ stw r0, 0(r31) -lbl_80353DB4: -/* 80353DB4 38 63 00 40 */ addi r3, r3, 0x40 -/* 80353DB8 38 A5 00 01 */ addi r5, r5, 1 -lbl_80353DBC: -/* 80353DBC 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 80353DC0 28 00 00 7F */ cmplwi r0, 0x7f -/* 80353DC4 41 80 FF D8 */ blt lbl_80353D9C -lbl_80353DC8: -/* 80353DC8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80353DCC 4B FE 99 29 */ bl OSDisableInterrupts -/* 80353DD0 80 1E 00 00 */ lwz r0, 0(r30) -/* 80353DD4 2C 00 00 00 */ cmpwi r0, 0 -/* 80353DD8 41 82 00 10 */ beq lbl_80353DE8 -/* 80353DDC 38 00 00 00 */ li r0, 0 -/* 80353DE0 90 1E 00 04 */ stw r0, 4(r30) -/* 80353DE4 48 00 00 18 */ b lbl_80353DFC -lbl_80353DE8: -/* 80353DE8 80 1E 00 04 */ lwz r0, 4(r30) -/* 80353DEC 2C 00 FF FF */ cmpwi r0, -1 -/* 80353DF0 40 82 00 0C */ bne lbl_80353DFC -/* 80353DF4 38 00 00 00 */ li r0, 0 -/* 80353DF8 90 1E 00 04 */ stw r0, 4(r30) -lbl_80353DFC: -/* 80353DFC 4B FE 99 21 */ bl OSRestoreInterrupts -/* 80353E00 38 60 00 00 */ li r3, 0 -lbl_80353E04: -/* 80353E04 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80353E08 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80353E0C 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 80353E10 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 80353E14 38 21 00 30 */ addi r1, r1, 0x30 -/* 80353E18 7C 08 03 A6 */ mtlr r0 -/* 80353E1C 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDBios/Retry.s b/asm/dolphin/card/CARDBios/Retry.s deleted file mode 100644 index 2aed7de700..0000000000 --- a/asm/dolphin/card/CARDBios/Retry.s +++ /dev/null @@ -1,182 +0,0 @@ -lbl_80353174: -/* 80353174 7C 08 02 A6 */ mflr r0 -/* 80353178 38 A0 00 04 */ li r5, 4 -/* 8035317C 90 01 00 04 */ stw r0, 4(r1) -/* 80353180 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80353184 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80353188 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8035318C 3B C3 00 00 */ addi r30, r3, 0 -/* 80353190 1C 9E 01 10 */ mulli r4, r30, 0x110 -/* 80353194 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80353198 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 8035319C 7F E0 22 14 */ add r31, r0, r4 -/* 803531A0 38 7E 00 00 */ addi r3, r30, 0 -/* 803531A4 38 80 00 00 */ li r4, 0 -/* 803531A8 4B FF 06 C1 */ bl EXISelect -/* 803531AC 2C 03 00 00 */ cmpwi r3, 0 -/* 803531B0 40 82 00 14 */ bne lbl_803531C4 -/* 803531B4 7F C3 F3 78 */ mr r3, r30 -/* 803531B8 4B FF 0F 65 */ bl EXIUnlock -/* 803531BC 38 60 FF FD */ li r3, -3 -/* 803531C0 48 00 02 3C */ b lbl_803533FC -lbl_803531C4: -/* 803531C4 38 7F 00 E0 */ addi r3, r31, 0xe0 -/* 803531C8 4B FE 7A 75 */ bl OSCancelAlarm -/* 803531CC 88 1F 00 94 */ lbz r0, 0x94(r31) -/* 803531D0 2C 00 00 F3 */ cmpwi r0, 0xf3 -/* 803531D4 41 82 01 34 */ beq lbl_80353308 -/* 803531D8 40 80 00 14 */ bge lbl_803531EC -/* 803531DC 2C 00 00 F1 */ cmpwi r0, 0xf1 -/* 803531E0 41 82 00 C4 */ beq lbl_803532A4 -/* 803531E4 40 80 00 14 */ bge lbl_803531F8 -/* 803531E8 48 00 01 20 */ b lbl_80353308 -lbl_803531EC: -/* 803531EC 2C 00 00 F5 */ cmpwi r0, 0xf5 -/* 803531F0 40 80 01 18 */ bge lbl_80353308 -/* 803531F4 48 00 00 3C */ b lbl_80353230 -lbl_803531F8: -/* 803531F8 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 803531FC 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */ -/* 80353200 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */ -/* 80353204 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */ -/* 80353208 54 00 F0 BE */ srwi r0, r0, 2 -/* 8035320C 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */ -/* 80353210 7C 04 00 16 */ mulhwu r0, r4, r0 -/* 80353214 54 00 D1 BE */ srwi r0, r0, 6 -/* 80353218 1C C0 00 64 */ mulli r6, r0, 0x64 -/* 8035321C 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */ -/* 80353220 38 7F 00 E0 */ addi r3, r31, 0xe0 -/* 80353224 38 A0 00 00 */ li r5, 0 -/* 80353228 4B FE 79 31 */ bl OSSetAlarm -/* 8035322C 48 00 00 DC */ b lbl_80353308 -lbl_80353230: -/* 80353230 A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 80353234 28 00 00 80 */ cmplwi r0, 0x80 -/* 80353238 40 81 00 6C */ ble lbl_803532A4 -/* 8035323C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 80353240 A0 9F 00 10 */ lhz r4, 0x10(r31) -/* 80353244 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */ -/* 80353248 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */ -/* 8035324C 7C 89 36 70 */ srawi r9, r4, 6 -/* 80353250 54 07 F0 BE */ srwi r7, r0, 2 -/* 80353254 38 00 00 02 */ li r0, 2 -/* 80353258 38 80 00 00 */ li r4, 0 -/* 8035325C 7D 04 01 D6 */ mullw r8, r4, r0 -/* 80353260 7C C7 00 16 */ mulhwu r6, r7, r0 -/* 80353264 7D 08 32 14 */ add r8, r8, r6 -/* 80353268 7C A7 01 D6 */ mullw r5, r7, r0 -/* 8035326C 7D 29 01 94 */ addze r9, r9 -/* 80353270 7C C7 21 D6 */ mullw r6, r7, r4 -/* 80353274 7D 20 FE 70 */ srawi r0, r9, 0x1f -/* 80353278 7C 80 29 D6 */ mullw r4, r0, r5 -/* 8035327C 7C 09 28 16 */ mulhwu r0, r9, r5 -/* 80353280 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */ -/* 80353284 7C 68 32 14 */ add r3, r8, r6 -/* 80353288 7C 84 02 14 */ add r4, r4, r0 -/* 8035328C 7C 09 19 D6 */ mullw r0, r9, r3 -/* 80353290 7C C9 29 D6 */ mullw r6, r9, r5 -/* 80353294 38 7F 00 E0 */ addi r3, r31, 0xe0 -/* 80353298 7C A4 02 14 */ add r5, r4, r0 -/* 8035329C 4B FE 78 BD */ bl OSSetAlarm -/* 803532A0 48 00 00 68 */ b lbl_80353308 -lbl_803532A4: -/* 803532A4 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 803532A8 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 803532AC 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */ -/* 803532B0 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */ -/* 803532B4 7C 89 6E 70 */ srawi r9, r4, 0xd -/* 803532B8 54 07 F0 BE */ srwi r7, r0, 2 -/* 803532BC 38 00 00 02 */ li r0, 2 -/* 803532C0 38 80 00 00 */ li r4, 0 -/* 803532C4 7D 04 01 D6 */ mullw r8, r4, r0 -/* 803532C8 7C C7 00 16 */ mulhwu r6, r7, r0 -/* 803532CC 7D 08 32 14 */ add r8, r8, r6 -/* 803532D0 7C A7 01 D6 */ mullw r5, r7, r0 -/* 803532D4 7D 29 01 94 */ addze r9, r9 -/* 803532D8 7C C7 21 D6 */ mullw r6, r7, r4 -/* 803532DC 7D 20 FE 70 */ srawi r0, r9, 0x1f -/* 803532E0 7C 80 29 D6 */ mullw r4, r0, r5 -/* 803532E4 7C 09 28 16 */ mulhwu r0, r9, r5 -/* 803532E8 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */ -/* 803532EC 7C 68 32 14 */ add r3, r8, r6 -/* 803532F0 7C 84 02 14 */ add r4, r4, r0 -/* 803532F4 7C 09 19 D6 */ mullw r0, r9, r3 -/* 803532F8 7C C9 29 D6 */ mullw r6, r9, r5 -/* 803532FC 38 7F 00 E0 */ addi r3, r31, 0xe0 -/* 80353300 7C A4 02 14 */ add r5, r4, r0 -/* 80353304 4B FE 78 55 */ bl OSSetAlarm -lbl_80353308: -/* 80353308 80 BF 00 A0 */ lwz r5, 0xa0(r31) -/* 8035330C 38 7E 00 00 */ addi r3, r30, 0 -/* 80353310 38 9F 00 94 */ addi r4, r31, 0x94 -/* 80353314 38 C0 00 01 */ li r6, 1 -/* 80353318 4B FE FC 45 */ bl EXIImmEx -/* 8035331C 2C 03 00 00 */ cmpwi r3, 0 -/* 80353320 40 82 00 1C */ bne lbl_8035333C -/* 80353324 7F C3 F3 78 */ mr r3, r30 -/* 80353328 4B FF 06 6D */ bl EXIDeselect -/* 8035332C 7F C3 F3 78 */ mr r3, r30 -/* 80353330 4B FF 0D ED */ bl EXIUnlock -/* 80353334 38 60 FF FD */ li r3, -3 -/* 80353338 48 00 00 C4 */ b lbl_803533FC -lbl_8035333C: -/* 8035333C 88 1F 00 94 */ lbz r0, 0x94(r31) -/* 80353340 28 00 00 52 */ cmplwi r0, 0x52 -/* 80353344 40 82 00 3C */ bne lbl_80353380 -/* 80353348 80 9F 00 80 */ lwz r4, 0x80(r31) -/* 8035334C 7F C3 F3 78 */ mr r3, r30 -/* 80353350 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 80353354 38 C0 00 01 */ li r6, 1 -/* 80353358 38 84 02 00 */ addi r4, r4, 0x200 -/* 8035335C 4B FE FC 01 */ bl EXIImmEx -/* 80353360 2C 03 00 00 */ cmpwi r3, 0 -/* 80353364 40 82 00 1C */ bne lbl_80353380 -/* 80353368 7F C3 F3 78 */ mr r3, r30 -/* 8035336C 4B FF 06 29 */ bl EXIDeselect -/* 80353370 7F C3 F3 78 */ mr r3, r30 -/* 80353374 4B FF 0D A9 */ bl EXIUnlock -/* 80353378 38 60 FF FD */ li r3, -3 -/* 8035337C 48 00 00 80 */ b lbl_803533FC -lbl_80353380: -/* 80353380 80 7F 00 A4 */ lwz r3, 0xa4(r31) -/* 80353384 3C 03 00 01 */ addis r0, r3, 1 -/* 80353388 28 00 FF FF */ cmplwi r0, 0xffff -/* 8035338C 40 82 00 1C */ bne lbl_803533A8 -/* 80353390 7F C3 F3 78 */ mr r3, r30 -/* 80353394 4B FF 06 01 */ bl EXIDeselect -/* 80353398 7F C3 F3 78 */ mr r3, r30 -/* 8035339C 4B FF 0D 81 */ bl EXIUnlock -/* 803533A0 38 60 00 00 */ li r3, 0 -/* 803533A4 48 00 00 58 */ b lbl_803533FC -lbl_803533A8: -/* 803533A8 88 1F 00 94 */ lbz r0, 0x94(r31) -/* 803533AC 28 00 00 52 */ cmplwi r0, 0x52 -/* 803533B0 40 82 00 0C */ bne lbl_803533BC -/* 803533B4 38 A0 02 00 */ li r5, 0x200 -/* 803533B8 48 00 00 08 */ b lbl_803533C0 -lbl_803533BC: -/* 803533BC A0 BF 00 0A */ lhz r5, 0xa(r31) -lbl_803533C0: -/* 803533C0 3C 60 80 35 */ lis r3, __CARDTxHandler@ha /* 0x80352C58@ha */ -/* 803533C4 80 9F 00 B4 */ lwz r4, 0xb4(r31) -/* 803533C8 38 E3 2C 58 */ addi r7, r3, __CARDTxHandler@l /* 0x80352C58@l */ -/* 803533CC 80 DF 00 A4 */ lwz r6, 0xa4(r31) -/* 803533D0 7F C3 F3 78 */ mr r3, r30 -/* 803533D4 4B FE FC 29 */ bl EXIDma -/* 803533D8 2C 03 00 00 */ cmpwi r3, 0 -/* 803533DC 40 82 00 1C */ bne lbl_803533F8 -/* 803533E0 7F C3 F3 78 */ mr r3, r30 -/* 803533E4 4B FF 05 B1 */ bl EXIDeselect -/* 803533E8 7F C3 F3 78 */ mr r3, r30 -/* 803533EC 4B FF 0D 31 */ bl EXIUnlock -/* 803533F0 38 60 FF FD */ li r3, -3 -/* 803533F4 48 00 00 08 */ b lbl_803533FC -lbl_803533F8: -/* 803533F8 38 60 00 00 */ li r3, 0 -lbl_803533FC: -/* 803533FC 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80353400 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80353404 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 80353408 38 21 00 18 */ addi r1, r1, 0x18 -/* 8035340C 7C 08 03 A6 */ mtlr r0 -/* 80353410 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDBios/__CARDPutControlBlock.s b/asm/dolphin/card/CARDBios/__CARDPutControlBlock.s deleted file mode 100644 index af6ccaf7e0..0000000000 --- a/asm/dolphin/card/CARDBios/__CARDPutControlBlock.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_80353C6C: -/* 80353C6C 7C 08 02 A6 */ mflr r0 -/* 80353C70 90 01 00 04 */ stw r0, 4(r1) -/* 80353C74 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80353C78 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80353C7C 3B E4 00 00 */ addi r31, r4, 0 -/* 80353C80 93 C1 00 10 */ stw r30, 0x10(r1) -/* 80353C84 3B C3 00 00 */ addi r30, r3, 0 -/* 80353C88 4B FE 9A 6D */ bl OSDisableInterrupts -/* 80353C8C 80 1E 00 00 */ lwz r0, 0(r30) -/* 80353C90 2C 00 00 00 */ cmpwi r0, 0 -/* 80353C94 41 82 00 0C */ beq lbl_80353CA0 -/* 80353C98 93 FE 00 04 */ stw r31, 4(r30) -/* 80353C9C 48 00 00 14 */ b lbl_80353CB0 -lbl_80353CA0: -/* 80353CA0 80 1E 00 04 */ lwz r0, 4(r30) -/* 80353CA4 2C 00 FF FF */ cmpwi r0, -1 -/* 80353CA8 40 82 00 08 */ bne lbl_80353CB0 -/* 80353CAC 93 FE 00 04 */ stw r31, 4(r30) -lbl_80353CB0: -/* 80353CB0 4B FE 9A 6D */ bl OSRestoreInterrupts -/* 80353CB4 7F E3 FB 78 */ mr r3, r31 -/* 80353CB8 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80353CBC 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80353CC0 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 80353CC4 38 21 00 18 */ addi r1, r1, 0x18 -/* 80353CC8 7C 08 03 A6 */ mtlr r0 -/* 80353CCC 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDBios/__CARDReadVendorID.s b/asm/dolphin/card/CARDBios/__CARDReadVendorID.s deleted file mode 100644 index 4405d449ba..0000000000 --- a/asm/dolphin/card/CARDBios/__CARDReadVendorID.s +++ /dev/null @@ -1,64 +0,0 @@ -lbl_80352F34: -/* 80352F34 7C 08 02 A6 */ mflr r0 -/* 80352F38 38 A0 00 04 */ li r5, 4 -/* 80352F3C 90 01 00 04 */ stw r0, 4(r1) -/* 80352F40 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80352F44 93 E1 00 24 */ stw r31, 0x24(r1) -/* 80352F48 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80352F4C 3B C4 00 00 */ addi r30, r4, 0 -/* 80352F50 38 80 00 00 */ li r4, 0 -/* 80352F54 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 80352F58 3B A3 00 00 */ addi r29, r3, 0 -/* 80352F5C 4B FF 09 0D */ bl EXISelect -/* 80352F60 2C 03 00 00 */ cmpwi r3, 0 -/* 80352F64 40 82 00 0C */ bne lbl_80352F70 -/* 80352F68 38 60 FF FD */ li r3, -3 -/* 80352F6C 48 00 00 9C */ b lbl_80353008 -lbl_80352F70: -/* 80352F70 3C 00 85 00 */ lis r0, 0x8500 -/* 80352F74 90 01 00 10 */ stw r0, 0x10(r1) -/* 80352F78 38 7D 00 00 */ addi r3, r29, 0 -/* 80352F7C 38 81 00 10 */ addi r4, r1, 0x10 -/* 80352F80 38 A0 00 02 */ li r5, 2 -/* 80352F84 38 C0 00 01 */ li r6, 1 -/* 80352F88 38 E0 00 00 */ li r7, 0 -/* 80352F8C 4B FE FD 75 */ bl EXIImm -/* 80352F90 7C 60 00 34 */ cntlzw r0, r3 -/* 80352F94 38 7D 00 00 */ addi r3, r29, 0 -/* 80352F98 54 1F D9 7E */ srwi r31, r0, 5 -/* 80352F9C 4B FF 01 4D */ bl EXISync -/* 80352FA0 7C 60 00 34 */ cntlzw r0, r3 -/* 80352FA4 54 00 D9 7E */ srwi r0, r0, 5 -/* 80352FA8 38 7D 00 00 */ addi r3, r29, 0 -/* 80352FAC 38 9E 00 00 */ addi r4, r30, 0 -/* 80352FB0 7F FF 03 78 */ or r31, r31, r0 -/* 80352FB4 38 A0 00 02 */ li r5, 2 -/* 80352FB8 38 C0 00 00 */ li r6, 0 -/* 80352FBC 38 E0 00 00 */ li r7, 0 -/* 80352FC0 4B FE FD 41 */ bl EXIImm -/* 80352FC4 7C 60 00 34 */ cntlzw r0, r3 -/* 80352FC8 54 00 D9 7E */ srwi r0, r0, 5 -/* 80352FCC 38 7D 00 00 */ addi r3, r29, 0 -/* 80352FD0 7F FF 03 78 */ or r31, r31, r0 -/* 80352FD4 4B FF 01 15 */ bl EXISync -/* 80352FD8 7C 60 00 34 */ cntlzw r0, r3 -/* 80352FDC 54 00 D9 7E */ srwi r0, r0, 5 -/* 80352FE0 38 7D 00 00 */ addi r3, r29, 0 -/* 80352FE4 7F FF 03 78 */ or r31, r31, r0 -/* 80352FE8 4B FF 09 AD */ bl EXIDeselect -/* 80352FEC 7C 60 00 34 */ cntlzw r0, r3 -/* 80352FF0 54 00 D9 7E */ srwi r0, r0, 5 -/* 80352FF4 7F FF 03 79 */ or. r31, r31, r0 -/* 80352FF8 41 82 00 0C */ beq lbl_80353004 -/* 80352FFC 38 60 FF FD */ li r3, -3 -/* 80353000 48 00 00 08 */ b lbl_80353008 -lbl_80353004: -/* 80353004 38 60 00 00 */ li r3, 0 -lbl_80353008: -/* 80353008 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8035300C 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 80353010 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 80353014 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 80353018 38 21 00 28 */ addi r1, r1, 0x28 -/* 8035301C 7C 08 03 A6 */ mtlr r0 -/* 80353020 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDBios/__CARDStart.s b/asm/dolphin/card/CARDBios/__CARDStart.s deleted file mode 100644 index ab557843f7..0000000000 --- a/asm/dolphin/card/CARDBios/__CARDStart.s +++ /dev/null @@ -1,149 +0,0 @@ -lbl_80353524: -/* 80353524 7C 08 02 A6 */ mflr r0 -/* 80353528 90 01 00 04 */ stw r0, 4(r1) -/* 8035352C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80353530 BF 61 00 1C */ stmw r27, 0x1c(r1) -/* 80353534 3B 63 00 00 */ addi r27, r3, 0 -/* 80353538 3B 84 00 00 */ addi r28, r4, 0 -/* 8035353C 3B A5 00 00 */ addi r29, r5, 0 -/* 80353540 4B FE A1 B5 */ bl OSDisableInterrupts -/* 80353544 1C BB 01 10 */ mulli r5, r27, 0x110 -/* 80353548 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 8035354C 38 04 CB C0 */ addi r0, r4, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80353550 7F E0 2A 14 */ add r31, r0, r5 -/* 80353554 80 1F 00 00 */ lwz r0, 0(r31) -/* 80353558 3B C3 00 00 */ addi r30, r3, 0 -/* 8035355C 2C 00 00 00 */ cmpwi r0, 0 -/* 80353560 40 82 00 0C */ bne lbl_8035356C -/* 80353564 3B A0 FF FD */ li r29, -3 -/* 80353568 48 00 01 C0 */ b lbl_80353728 -lbl_8035356C: -/* 8035356C 28 1C 00 00 */ cmplwi r28, 0 -/* 80353570 41 82 00 08 */ beq lbl_80353578 -/* 80353574 93 9F 00 C8 */ stw r28, 0xc8(r31) -lbl_80353578: -/* 80353578 28 1D 00 00 */ cmplwi r29, 0 -/* 8035357C 41 82 00 08 */ beq lbl_80353584 -/* 80353580 93 BF 00 CC */ stw r29, 0xcc(r31) -lbl_80353584: -/* 80353584 3C 60 80 35 */ lis r3, UnlockedCallback@ha /* 0x80353414@ha */ -/* 80353588 38 03 34 14 */ addi r0, r3, UnlockedCallback@l /* 0x80353414@l */ -/* 8035358C 3C 60 80 35 */ lis r3, __CARDUnlockedHandler@ha /* 0x80352D00@ha */ -/* 80353590 90 1F 00 DC */ stw r0, 0xdc(r31) -/* 80353594 38 A3 2D 00 */ addi r5, r3, __CARDUnlockedHandler@l /* 0x80352D00@l */ -/* 80353598 38 7B 00 00 */ addi r3, r27, 0 -/* 8035359C 38 80 00 00 */ li r4, 0 -/* 803535A0 4B FF 0A 89 */ bl EXILock -/* 803535A4 2C 03 00 00 */ cmpwi r3, 0 -/* 803535A8 40 82 00 0C */ bne lbl_803535B4 -/* 803535AC 3B A0 FF FF */ li r29, -1 -/* 803535B0 48 00 01 78 */ b lbl_80353728 -lbl_803535B4: -/* 803535B4 3B A0 00 00 */ li r29, 0 -/* 803535B8 93 BF 00 DC */ stw r29, 0xdc(r31) -/* 803535BC 38 7B 00 00 */ addi r3, r27, 0 -/* 803535C0 38 80 00 00 */ li r4, 0 -/* 803535C4 38 A0 00 04 */ li r5, 4 -/* 803535C8 4B FF 02 A1 */ bl EXISelect -/* 803535CC 2C 03 00 00 */ cmpwi r3, 0 -/* 803535D0 40 82 00 14 */ bne lbl_803535E4 -/* 803535D4 7F 63 DB 78 */ mr r3, r27 -/* 803535D8 4B FF 0B 45 */ bl EXIUnlock -/* 803535DC 3B A0 FF FD */ li r29, -3 -/* 803535E0 48 00 01 48 */ b lbl_80353728 -lbl_803535E4: -/* 803535E4 38 7F 00 E0 */ addi r3, r31, 0xe0 -/* 803535E8 4B FE 76 55 */ bl OSCancelAlarm -/* 803535EC 88 1F 00 94 */ lbz r0, 0x94(r31) -/* 803535F0 2C 00 00 F3 */ cmpwi r0, 0xf3 -/* 803535F4 41 82 01 30 */ beq lbl_80353724 -/* 803535F8 40 80 00 14 */ bge lbl_8035360C -/* 803535FC 2C 00 00 F1 */ cmpwi r0, 0xf1 -/* 80353600 41 82 00 C0 */ beq lbl_803536C0 -/* 80353604 40 80 00 14 */ bge lbl_80353618 -/* 80353608 48 00 01 1C */ b lbl_80353724 -lbl_8035360C: -/* 8035360C 2C 00 00 F5 */ cmpwi r0, 0xf5 -/* 80353610 40 80 01 14 */ bge lbl_80353724 -/* 80353614 48 00 00 3C */ b lbl_80353650 -lbl_80353618: -/* 80353618 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 8035361C 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */ -/* 80353620 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */ -/* 80353624 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */ -/* 80353628 54 00 F0 BE */ srwi r0, r0, 2 -/* 8035362C 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */ -/* 80353630 7C 04 00 16 */ mulhwu r0, r4, r0 -/* 80353634 54 00 D1 BE */ srwi r0, r0, 6 -/* 80353638 1C C0 00 64 */ mulli r6, r0, 0x64 -/* 8035363C 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */ -/* 80353640 38 7F 00 E0 */ addi r3, r31, 0xe0 -/* 80353644 38 A0 00 00 */ li r5, 0 -/* 80353648 4B FE 75 11 */ bl OSSetAlarm -/* 8035364C 48 00 00 D8 */ b lbl_80353724 -lbl_80353650: -/* 80353650 A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 80353654 28 00 00 80 */ cmplwi r0, 0x80 -/* 80353658 40 81 00 68 */ ble lbl_803536C0 -/* 8035365C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 80353660 A0 9F 00 10 */ lhz r4, 0x10(r31) -/* 80353664 80 63 00 F8 */ lwz r3, 0x00F8(r3) /* 0x800000F8@l */ -/* 80353668 38 00 00 02 */ li r0, 2 -/* 8035366C 7C 89 36 70 */ srawi r9, r4, 6 -/* 80353670 54 63 F0 BE */ srwi r3, r3, 2 -/* 80353674 7D 1D 01 D6 */ mullw r8, r29, r0 -/* 80353678 7C C3 00 16 */ mulhwu r6, r3, r0 -/* 8035367C 7D 08 32 14 */ add r8, r8, r6 -/* 80353680 7C A3 01 D6 */ mullw r5, r3, r0 -/* 80353684 7D 29 01 94 */ addze r9, r9 -/* 80353688 7D 20 FE 70 */ srawi r0, r9, 0x1f -/* 8035368C 7C C3 E9 D6 */ mullw r6, r3, r29 -/* 80353690 7C 80 29 D6 */ mullw r4, r0, r5 -/* 80353694 7C 09 28 16 */ mulhwu r0, r9, r5 -/* 80353698 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */ -/* 8035369C 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */ -/* 803536A0 7C 68 32 14 */ add r3, r8, r6 -/* 803536A4 7C 84 02 14 */ add r4, r4, r0 -/* 803536A8 7C 09 19 D6 */ mullw r0, r9, r3 -/* 803536AC 7C C9 29 D6 */ mullw r6, r9, r5 -/* 803536B0 38 7F 00 E0 */ addi r3, r31, 0xe0 -/* 803536B4 7C A4 02 14 */ add r5, r4, r0 -/* 803536B8 4B FE 74 A1 */ bl OSSetAlarm -/* 803536BC 48 00 00 68 */ b lbl_80353724 -lbl_803536C0: -/* 803536C0 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 803536C4 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 803536C8 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */ -/* 803536CC 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */ -/* 803536D0 7C 89 6E 70 */ srawi r9, r4, 0xd -/* 803536D4 54 07 F0 BE */ srwi r7, r0, 2 -/* 803536D8 38 00 00 02 */ li r0, 2 -/* 803536DC 38 80 00 00 */ li r4, 0 -/* 803536E0 7D 04 01 D6 */ mullw r8, r4, r0 -/* 803536E4 7C C7 00 16 */ mulhwu r6, r7, r0 -/* 803536E8 7D 08 32 14 */ add r8, r8, r6 -/* 803536EC 7C A7 01 D6 */ mullw r5, r7, r0 -/* 803536F0 7D 29 01 94 */ addze r9, r9 -/* 803536F4 7C C7 21 D6 */ mullw r6, r7, r4 -/* 803536F8 7D 20 FE 70 */ srawi r0, r9, 0x1f -/* 803536FC 7C 80 29 D6 */ mullw r4, r0, r5 -/* 80353700 7C 09 28 16 */ mulhwu r0, r9, r5 -/* 80353704 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */ -/* 80353708 7C 68 32 14 */ add r3, r8, r6 -/* 8035370C 7C 84 02 14 */ add r4, r4, r0 -/* 80353710 7C 09 19 D6 */ mullw r0, r9, r3 -/* 80353714 7C C9 29 D6 */ mullw r6, r9, r5 -/* 80353718 38 7F 00 E0 */ addi r3, r31, 0xe0 -/* 8035371C 7C A4 02 14 */ add r5, r4, r0 -/* 80353720 4B FE 74 39 */ bl OSSetAlarm -lbl_80353724: -/* 80353724 3B A0 00 00 */ li r29, 0 -lbl_80353728: -/* 80353728 7F C3 F3 78 */ mr r3, r30 -/* 8035372C 4B FE 9F F1 */ bl OSRestoreInterrupts -/* 80353730 7F A3 EB 78 */ mr r3, r29 -/* 80353734 BB 61 00 1C */ lmw r27, 0x1c(r1) -/* 80353738 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8035373C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80353740 7C 08 03 A6 */ mtlr r0 -/* 80353744 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDBios/__CARDWritePage.s b/asm/dolphin/card/CARDBios/__CARDWritePage.s deleted file mode 100644 index 8eee8dec70..0000000000 --- a/asm/dolphin/card/CARDBios/__CARDWritePage.s +++ /dev/null @@ -1,86 +0,0 @@ -lbl_8035387C: -/* 8035387C 7C 08 02 A6 */ mflr r0 -/* 80353880 90 01 00 04 */ stw r0, 4(r1) -/* 80353884 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80353888 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8035388C 93 C1 00 10 */ stw r30, 0x10(r1) -/* 80353890 3B C3 00 00 */ addi r30, r3, 0 -/* 80353894 1C BE 01 10 */ mulli r5, r30, 0x110 -/* 80353898 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 8035389C 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 803538A0 7F E0 2A 14 */ add r31, r0, r5 -/* 803538A4 38 00 00 F2 */ li r0, 0xf2 -/* 803538A8 98 1F 00 94 */ stb r0, 0x94(r31) -/* 803538AC A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 803538B0 28 00 00 80 */ cmplwi r0, 0x80 -/* 803538B4 40 81 00 18 */ ble lbl_803538CC -/* 803538B8 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 803538BC 54 00 7E 7E */ rlwinm r0, r0, 0xf, 0x19, 0x1f -/* 803538C0 60 00 00 80 */ ori r0, r0, 0x80 -/* 803538C4 98 1F 00 95 */ stb r0, 0x95(r31) -/* 803538C8 48 00 00 10 */ b lbl_803538D8 -lbl_803538CC: -/* 803538CC 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 803538D0 54 00 7E 7E */ rlwinm r0, r0, 0xf, 0x19, 0x1f -/* 803538D4 98 1F 00 95 */ stb r0, 0x95(r31) -lbl_803538D8: -/* 803538D8 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 803538DC 38 E0 00 05 */ li r7, 5 -/* 803538E0 38 C0 00 01 */ li r6, 1 -/* 803538E4 54 00 BE 3E */ rlwinm r0, r0, 0x17, 0x18, 0x1f -/* 803538E8 98 1F 00 96 */ stb r0, 0x96(r31) -/* 803538EC 38 00 00 03 */ li r0, 3 -/* 803538F0 38 7E 00 00 */ addi r3, r30, 0 -/* 803538F4 81 1F 00 B0 */ lwz r8, 0xb0(r31) -/* 803538F8 38 A4 00 00 */ addi r5, r4, 0 -/* 803538FC 38 80 00 00 */ li r4, 0 -/* 80353900 55 08 CF BE */ rlwinm r8, r8, 0x19, 0x1e, 0x1f -/* 80353904 99 1F 00 97 */ stb r8, 0x97(r31) -/* 80353908 81 1F 00 B0 */ lwz r8, 0xb0(r31) -/* 8035390C 55 08 06 7E */ clrlwi r8, r8, 0x19 -/* 80353910 99 1F 00 98 */ stb r8, 0x98(r31) -/* 80353914 90 FF 00 A0 */ stw r7, 0xa0(r31) -/* 80353918 90 DF 00 A4 */ stw r6, 0xa4(r31) -/* 8035391C 90 1F 00 A8 */ stw r0, 0xa8(r31) -/* 80353920 4B FF FC 05 */ bl __CARDStart -/* 80353924 2C 03 FF FF */ cmpwi r3, -1 -/* 80353928 40 82 00 0C */ bne lbl_80353934 -/* 8035392C 38 60 00 00 */ li r3, 0 -/* 80353930 48 00 00 70 */ b lbl_803539A0 -lbl_80353934: -/* 80353934 2C 03 00 00 */ cmpwi r3, 0 -/* 80353938 41 80 00 68 */ blt lbl_803539A0 -/* 8035393C 80 BF 00 A0 */ lwz r5, 0xa0(r31) -/* 80353940 38 7E 00 00 */ addi r3, r30, 0 -/* 80353944 38 9F 00 94 */ addi r4, r31, 0x94 -/* 80353948 38 C0 00 01 */ li r6, 1 -/* 8035394C 4B FE F6 11 */ bl EXIImmEx -/* 80353950 2C 03 00 00 */ cmpwi r3, 0 -/* 80353954 41 82 00 28 */ beq lbl_8035397C -/* 80353958 3C 60 80 35 */ lis r3, __CARDTxHandler@ha /* 0x80352C58@ha */ -/* 8035395C 80 9F 00 B4 */ lwz r4, 0xb4(r31) -/* 80353960 38 E3 2C 58 */ addi r7, r3, __CARDTxHandler@l /* 0x80352C58@l */ -/* 80353964 A0 BF 00 0A */ lhz r5, 0xa(r31) -/* 80353968 80 DF 00 A4 */ lwz r6, 0xa4(r31) -/* 8035396C 7F C3 F3 78 */ mr r3, r30 -/* 80353970 4B FE F6 8D */ bl EXIDma -/* 80353974 2C 03 00 00 */ cmpwi r3, 0 -/* 80353978 40 82 00 24 */ bne lbl_8035399C -lbl_8035397C: -/* 8035397C 38 00 00 00 */ li r0, 0 -/* 80353980 90 1F 00 CC */ stw r0, 0xcc(r31) -/* 80353984 7F C3 F3 78 */ mr r3, r30 -/* 80353988 4B FF 00 0D */ bl EXIDeselect -/* 8035398C 7F C3 F3 78 */ mr r3, r30 -/* 80353990 4B FF 07 8D */ bl EXIUnlock -/* 80353994 38 60 FF FD */ li r3, -3 -/* 80353998 48 00 00 08 */ b lbl_803539A0 -lbl_8035399C: -/* 8035399C 38 60 00 00 */ li r3, 0 -lbl_803539A0: -/* 803539A0 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 803539A4 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 803539A8 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 803539AC 38 21 00 18 */ addi r1, r1, 0x18 -/* 803539B0 7C 08 03 A6 */ mtlr r0 -/* 803539B4 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDBlock/EraseCallback.s b/asm/dolphin/card/CARDBlock/EraseCallback.s deleted file mode 100644 index 52823a17b4..0000000000 --- a/asm/dolphin/card/CARDBlock/EraseCallback.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_803554F0: -/* 803554F0 7C 08 02 A6 */ mflr r0 -/* 803554F4 90 01 00 04 */ stw r0, 4(r1) -/* 803554F8 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803554FC 93 E1 00 24 */ stw r31, 0x24(r1) -/* 80355500 3B E3 00 00 */ addi r31, r3, 0 -/* 80355504 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80355508 93 C1 00 20 */ stw r30, 0x20(r1) -/* 8035550C 1C BF 01 10 */ mulli r5, r31, 0x110 -/* 80355510 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 80355514 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80355518 7C 9D 23 79 */ or. r29, r4, r4 -/* 8035551C 7F C0 2A 14 */ add r30, r0, r5 -/* 80355520 41 80 00 3C */ blt lbl_8035555C -/* 80355524 80 BE 00 88 */ lwz r5, 0x88(r30) -/* 80355528 3C 60 80 35 */ lis r3, WriteCallback@ha /* 0x8035541C@ha */ -/* 8035552C 80 1E 00 80 */ lwz r0, 0x80(r30) -/* 80355530 38 E3 54 1C */ addi r7, r3, WriteCallback@l /* 0x8035541C@l */ -/* 80355534 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 80355538 7C 00 28 50 */ subf r0, r0, r5 -/* 8035553C 54 00 9B 7E */ srwi r0, r0, 0xd -/* 80355540 7C 83 01 D6 */ mullw r4, r3, r0 -/* 80355544 38 C5 00 00 */ addi r6, r5, 0 -/* 80355548 38 7F 00 00 */ addi r3, r31, 0 -/* 8035554C 38 A0 20 00 */ li r5, 0x2000 -/* 80355550 4B FF FE 5D */ bl __CARDWrite -/* 80355554 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80355558 40 80 00 44 */ bge lbl_8035559C -lbl_8035555C: -/* 8035555C 80 1E 00 D0 */ lwz r0, 0xd0(r30) -/* 80355560 28 00 00 00 */ cmplwi r0, 0 -/* 80355564 40 82 00 10 */ bne lbl_80355574 -/* 80355568 38 7E 00 00 */ addi r3, r30, 0 -/* 8035556C 38 9D 00 00 */ addi r4, r29, 0 -/* 80355570 4B FF E6 FD */ bl __CARDPutControlBlock -lbl_80355574: -/* 80355574 80 1E 00 D8 */ lwz r0, 0xd8(r30) -/* 80355578 28 00 00 00 */ cmplwi r0, 0 -/* 8035557C 7C 0C 03 78 */ mr r12, r0 -/* 80355580 41 82 00 1C */ beq lbl_8035559C -/* 80355584 38 00 00 00 */ li r0, 0 -/* 80355588 7D 88 03 A6 */ mtlr r12 -/* 8035558C 90 1E 00 D8 */ stw r0, 0xd8(r30) -/* 80355590 38 7F 00 00 */ addi r3, r31, 0 -/* 80355594 38 9D 00 00 */ addi r4, r29, 0 -/* 80355598 4E 80 00 21 */ blrl -lbl_8035559C: -/* 8035559C 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803555A0 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803555A4 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803555A8 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803555AC 38 21 00 28 */ addi r1, r1, 0x28 -/* 803555B0 7C 08 03 A6 */ mtlr r0 -/* 803555B4 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDBlock/__CARDAllocBlock.s b/asm/dolphin/card/CARDBlock/__CARDAllocBlock.s deleted file mode 100644 index 64482bbaf1..0000000000 --- a/asm/dolphin/card/CARDBlock/__CARDAllocBlock.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_803555B8: -/* 803555B8 7C 08 02 A6 */ mflr r0 -/* 803555BC 1C E3 01 10 */ mulli r7, r3, 0x110 -/* 803555C0 90 01 00 04 */ stw r0, 4(r1) -/* 803555C4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803555C8 3C C0 80 45 */ lis r6, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 803555CC 38 06 CB C0 */ addi r0, r6, __CARDBlock@l /* 0x8044CBC0@l */ -/* 803555D0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803555D4 7D 20 3A 14 */ add r9, r0, r7 -/* 803555D8 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803555DC 80 09 00 00 */ lwz r0, 0(r9) -/* 803555E0 2C 00 00 00 */ cmpwi r0, 0 -/* 803555E4 40 82 00 0C */ bne lbl_803555F0 -/* 803555E8 38 60 FF FD */ li r3, -3 -/* 803555EC 48 00 00 CC */ b lbl_803556B8 -lbl_803555F0: -/* 803555F0 81 09 00 88 */ lwz r8, 0x88(r9) -/* 803555F4 A0 08 00 06 */ lhz r0, 6(r8) -/* 803555F8 7C 00 20 40 */ cmplw r0, r4 -/* 803555FC 40 80 00 0C */ bge lbl_80355608 -/* 80355600 38 60 FF F7 */ li r3, -9 -/* 80355604 48 00 00 B4 */ b lbl_803556B8 -lbl_80355608: -/* 80355608 7C 04 00 50 */ subf r0, r4, r0 -/* 8035560C B0 08 00 06 */ sth r0, 6(r8) -/* 80355610 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 80355614 39 86 FF FF */ addi r12, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 80355618 A1 68 00 08 */ lhz r11, 8(r8) -/* 8035561C 38 0C 00 00 */ addi r0, r12, 0 -/* 80355620 3B C0 00 00 */ li r30, 0 -/* 80355624 48 00 00 7C */ b lbl_803556A0 -lbl_80355628: -/* 80355628 A1 49 00 10 */ lhz r10, 0x10(r9) -/* 8035562C 3B DE 00 01 */ addi r30, r30, 1 -/* 80355630 57 C6 04 3E */ clrlwi r6, r30, 0x10 -/* 80355634 38 EA FF FB */ addi r7, r10, -5 -/* 80355638 7C 07 30 00 */ cmpw r7, r6 -/* 8035563C 40 80 00 0C */ bge lbl_80355648 -/* 80355640 38 60 FF FA */ li r3, -6 -/* 80355644 48 00 00 74 */ b lbl_803556B8 -lbl_80355648: -/* 80355648 39 6B 00 01 */ addi r11, r11, 1 -/* 8035564C 55 66 04 3E */ clrlwi r6, r11, 0x10 -/* 80355650 28 06 00 05 */ cmplwi r6, 5 -/* 80355654 41 80 00 0C */ blt lbl_80355660 -/* 80355658 7C 06 50 40 */ cmplw r6, r10 -/* 8035565C 41 80 00 08 */ blt lbl_80355664 -lbl_80355660: -/* 80355660 39 60 00 05 */ li r11, 5 -lbl_80355664: -/* 80355664 55 66 0B FC */ rlwinm r6, r11, 1, 0xf, 0x1e -/* 80355668 7C E8 32 14 */ add r7, r8, r6 -/* 8035566C A0 C7 00 00 */ lhz r6, 0(r7) -/* 80355670 28 06 00 00 */ cmplwi r6, 0 -/* 80355674 40 82 00 2C */ bne lbl_803556A0 -/* 80355678 55 86 04 3E */ clrlwi r6, r12, 0x10 -/* 8035567C 28 06 FF FF */ cmplwi r6, 0xffff -/* 80355680 40 82 00 0C */ bne lbl_8035568C -/* 80355684 7D 6C 5B 78 */ mr r12, r11 -/* 80355688 48 00 00 0C */ b lbl_80355694 -lbl_8035568C: -/* 8035568C 57 E6 0B FC */ rlwinm r6, r31, 1, 0xf, 0x1e -/* 80355690 7D 68 33 2E */ sthx r11, r8, r6 -lbl_80355694: -/* 80355694 B0 07 00 00 */ sth r0, 0(r7) -/* 80355698 3B EB 00 00 */ addi r31, r11, 0 -/* 8035569C 38 84 FF FF */ addi r4, r4, -1 -lbl_803556A0: -/* 803556A0 28 04 00 00 */ cmplwi r4, 0 -/* 803556A4 40 82 FF 84 */ bne lbl_80355628 -/* 803556A8 B1 68 00 08 */ sth r11, 8(r8) -/* 803556AC 7D 04 43 78 */ mr r4, r8 -/* 803556B0 B1 89 00 BE */ sth r12, 0xbe(r9) -/* 803556B4 48 00 00 1D */ bl __CARDUpdateFatBlock -lbl_803556B8: -/* 803556B8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803556BC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803556C0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803556C4 38 21 00 20 */ addi r1, r1, 0x20 -/* 803556C8 7C 08 03 A6 */ mtlr r0 -/* 803556CC 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDBlock/__CARDUpdateFatBlock.s b/asm/dolphin/card/CARDBlock/__CARDUpdateFatBlock.s deleted file mode 100644 index 12d03f0e8a..0000000000 --- a/asm/dolphin/card/CARDBlock/__CARDUpdateFatBlock.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_803556D0: -/* 803556D0 7C 08 02 A6 */ mflr r0 -/* 803556D4 90 01 00 04 */ stw r0, 4(r1) -/* 803556D8 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803556DC 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803556E0 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803556E4 3B C5 00 00 */ addi r30, r5, 0 -/* 803556E8 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803556EC 3B A4 00 00 */ addi r29, r4, 0 -/* 803556F0 38 BD 00 00 */ addi r5, r29, 0 -/* 803556F4 93 81 00 18 */ stw r28, 0x18(r1) -/* 803556F8 3B 83 00 00 */ addi r28, r3, 0 -/* 803556FC 38 DD 00 02 */ addi r6, r29, 2 -/* 80355700 A0 64 00 04 */ lhz r3, 4(r4) -/* 80355704 1C 9C 01 10 */ mulli r4, r28, 0x110 -/* 80355708 38 03 00 01 */ addi r0, r3, 1 -/* 8035570C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80355710 B0 1D 00 04 */ sth r0, 4(r29) -/* 80355714 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80355718 7F E0 22 14 */ add r31, r0, r4 -/* 8035571C 38 7D 00 04 */ addi r3, r29, 4 -/* 80355720 38 80 1F FC */ li r4, 0x1ffc -/* 80355724 48 00 02 BD */ bl __CARDCheckSum -/* 80355728 38 7D 00 00 */ addi r3, r29, 0 -/* 8035572C 38 80 20 00 */ li r4, 0x2000 -/* 80355730 4B FE 5E AD */ bl DCStoreRange -/* 80355734 93 DF 00 D8 */ stw r30, 0xd8(r31) -/* 80355738 3C 60 80 35 */ lis r3, EraseCallback@ha /* 0x803554F0@ha */ -/* 8035573C 38 A3 54 F0 */ addi r5, r3, EraseCallback@l /* 0x803554F0@l */ -/* 80355740 80 1F 00 80 */ lwz r0, 0x80(r31) -/* 80355744 7F 83 E3 78 */ mr r3, r28 -/* 80355748 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 8035574C 7C 00 E8 50 */ subf r0, r0, r29 -/* 80355750 54 00 9B 7E */ srwi r0, r0, 0xd -/* 80355754 7C 84 01 D6 */ mullw r4, r4, r0 -/* 80355758 4B FF E2 61 */ bl __CARDEraseSector -/* 8035575C 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80355760 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 80355764 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 80355768 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 8035576C 83 81 00 18 */ lwz r28, 0x18(r1) -/* 80355770 38 21 00 28 */ addi r1, r1, 0x28 -/* 80355774 7C 08 03 A6 */ mtlr r0 -/* 80355778 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDCheck/CARDCheckExAsync.s b/asm/dolphin/card/CARDCheck/CARDCheckExAsync.s deleted file mode 100644 index 5f521af028..0000000000 --- a/asm/dolphin/card/CARDCheck/CARDCheckExAsync.s +++ /dev/null @@ -1,391 +0,0 @@ -lbl_80356364: -/* 80356364 7C 08 02 A6 */ mflr r0 -/* 80356368 90 01 00 04 */ stw r0, 4(r1) -/* 8035636C 94 21 FF A8 */ stwu r1, -0x58(r1) -/* 80356370 BF 21 00 3C */ stmw r25, 0x3c(r1) -/* 80356374 7C 9A 23 79 */ or. r26, r4, r4 -/* 80356378 3B 23 00 00 */ addi r25, r3, 0 -/* 8035637C 3B 65 00 00 */ addi r27, r5, 0 -/* 80356380 3B C0 00 00 */ li r30, 0 -/* 80356384 3B A0 00 00 */ li r29, 0 -/* 80356388 3B 80 00 00 */ li r28, 0 -/* 8035638C 41 82 00 0C */ beq lbl_80356398 -/* 80356390 38 00 00 00 */ li r0, 0 -/* 80356394 90 1A 00 00 */ stw r0, 0(r26) -lbl_80356398: -/* 80356398 38 79 00 00 */ addi r3, r25, 0 -/* 8035639C 38 81 00 30 */ addi r4, r1, 0x30 -/* 803563A0 4B FF D8 15 */ bl __CARDGetControlBlock -/* 803563A4 2C 03 00 00 */ cmpwi r3, 0 -/* 803563A8 40 80 00 08 */ bge lbl_803563B0 -/* 803563AC 48 00 05 34 */ b lbl_803568E0 -lbl_803563B0: -/* 803563B0 80 61 00 30 */ lwz r3, 0x30(r1) -/* 803563B4 4B FF F7 DD */ bl VerifyID -/* 803563B8 7C 64 1B 79 */ or. r4, r3, r3 -/* 803563BC 40 80 00 10 */ bge lbl_803563CC -/* 803563C0 80 61 00 30 */ lwz r3, 0x30(r1) -/* 803563C4 4B FF D8 A9 */ bl __CARDPutControlBlock -/* 803563C8 48 00 05 18 */ b lbl_803568E0 -lbl_803563CC: -/* 803563CC 80 61 00 30 */ lwz r3, 0x30(r1) -/* 803563D0 38 81 00 18 */ addi r4, r1, 0x18 -/* 803563D4 4B FF FA 41 */ bl VerifyDir -/* 803563D8 7C 7F 1B 78 */ mr r31, r3 -/* 803563DC 80 61 00 30 */ lwz r3, 0x30(r1) -/* 803563E0 38 81 00 1C */ addi r4, r1, 0x1c -/* 803563E4 4B FF FC 71 */ bl VerifyFAT -/* 803563E8 7C BF 1A 14 */ add r5, r31, r3 -/* 803563EC 2C 05 00 01 */ cmpwi r5, 1 -/* 803563F0 40 81 00 14 */ ble lbl_80356404 -/* 803563F4 80 61 00 30 */ lwz r3, 0x30(r1) -/* 803563F8 38 80 FF FA */ li r4, -6 -/* 803563FC 4B FF D8 71 */ bl __CARDPutControlBlock -/* 80356400 48 00 04 E0 */ b lbl_803568E0 -lbl_80356404: -/* 80356404 80 C1 00 30 */ lwz r6, 0x30(r1) -/* 80356408 80 86 00 80 */ lwz r4, 0x80(r6) -/* 8035640C 38 64 20 00 */ addi r3, r4, 0x2000 -/* 80356410 38 04 60 00 */ addi r0, r4, 0x6000 -/* 80356414 90 61 00 28 */ stw r3, 0x28(r1) -/* 80356418 3C 64 00 01 */ addis r3, r4, 1 -/* 8035641C 38 84 40 00 */ addi r4, r4, 0x4000 -/* 80356420 90 01 00 20 */ stw r0, 0x20(r1) -/* 80356424 38 03 80 00 */ addi r0, r3, -32768 -/* 80356428 90 81 00 2C */ stw r4, 0x2c(r1) -/* 8035642C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80356430 41 82 00 0C */ beq lbl_8035643C -/* 80356434 40 80 00 8C */ bge lbl_803564C0 -/* 80356438 48 00 00 88 */ b lbl_803564C0 -lbl_8035643C: -/* 8035643C 38 66 00 84 */ addi r3, r6, 0x84 -/* 80356440 80 06 00 84 */ lwz r0, 0x84(r6) -/* 80356444 28 00 00 00 */ cmplwi r0, 0 -/* 80356448 40 82 00 40 */ bne lbl_80356488 -/* 8035644C 80 01 00 18 */ lwz r0, 0x18(r1) -/* 80356450 38 81 00 28 */ addi r4, r1, 0x28 -/* 80356454 38 A0 20 00 */ li r5, 0x2000 -/* 80356458 54 00 10 3A */ slwi r0, r0, 2 -/* 8035645C 7C 04 00 2E */ lwzx r0, r4, r0 -/* 80356460 90 03 00 00 */ stw r0, 0(r3) -/* 80356464 80 61 00 18 */ lwz r3, 0x18(r1) -/* 80356468 68 60 00 01 */ xori r0, r3, 1 -/* 8035646C 54 63 10 3A */ slwi r3, r3, 2 -/* 80356470 54 00 10 3A */ slwi r0, r0, 2 -/* 80356474 7C 64 18 2E */ lwzx r3, r4, r3 -/* 80356478 7C 84 00 2E */ lwzx r4, r4, r0 -/* 8035647C 4B CA D0 C5 */ bl memcpy -/* 80356480 3B A0 00 01 */ li r29, 1 -/* 80356484 48 00 00 3C */ b lbl_803564C0 -lbl_80356488: -/* 80356488 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8035648C 38 81 00 20 */ addi r4, r1, 0x20 -/* 80356490 38 A0 20 00 */ li r5, 0x2000 -/* 80356494 54 00 10 3A */ slwi r0, r0, 2 -/* 80356498 7C 04 00 2E */ lwzx r0, r4, r0 -/* 8035649C 90 06 00 88 */ stw r0, 0x88(r6) -/* 803564A0 80 61 00 1C */ lwz r3, 0x1c(r1) -/* 803564A4 68 60 00 01 */ xori r0, r3, 1 -/* 803564A8 54 63 10 3A */ slwi r3, r3, 2 -/* 803564AC 54 00 10 3A */ slwi r0, r0, 2 -/* 803564B0 7C 64 18 2E */ lwzx r3, r4, r3 -/* 803564B4 7C 84 00 2E */ lwzx r4, r4, r0 -/* 803564B8 4B CA D0 89 */ bl memcpy -/* 803564BC 3B C0 00 01 */ li r30, 1 -lbl_803564C0: -/* 803564C0 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 803564C4 38 61 00 20 */ addi r3, r1, 0x20 -/* 803564C8 38 80 00 00 */ li r4, 0 -/* 803564CC 68 00 00 01 */ xori r0, r0, 1 -/* 803564D0 54 00 10 3A */ slwi r0, r0, 2 -/* 803564D4 7F E3 00 2E */ lwzx r31, r3, r0 -/* 803564D8 38 A0 20 00 */ li r5, 0x2000 -/* 803564DC 38 7F 00 00 */ addi r3, r31, 0 -/* 803564E0 4B CA CF 79 */ bl memset -/* 803564E4 38 00 00 7F */ li r0, 0x7f -/* 803564E8 80 A1 00 30 */ lwz r5, 0x30(r1) -/* 803564EC 7C 09 03 A6 */ mtctr r0 -/* 803564F0 38 C0 00 00 */ li r6, 0 -lbl_803564F4: -/* 803564F4 80 05 00 84 */ lwz r0, 0x84(r5) -/* 803564F8 7C E0 32 14 */ add r7, r0, r6 -/* 803564FC 88 07 00 00 */ lbz r0, 0(r7) -/* 80356500 28 00 00 FF */ cmplwi r0, 0xff -/* 80356504 41 82 00 A8 */ beq lbl_803565AC -/* 80356508 A0 87 00 36 */ lhz r4, 0x36(r7) -/* 8035650C 39 00 00 00 */ li r8, 0 -/* 80356510 48 00 00 54 */ b lbl_80356564 -lbl_80356514: -/* 80356514 54 83 04 3E */ clrlwi r3, r4, 0x10 -/* 80356518 28 03 00 05 */ cmplwi r3, 5 -/* 8035651C 41 80 00 2C */ blt lbl_80356548 -/* 80356520 A0 05 00 10 */ lhz r0, 0x10(r5) -/* 80356524 7C 03 00 40 */ cmplw r3, r0 -/* 80356528 40 80 00 20 */ bge lbl_80356548 -/* 8035652C 54 64 08 3C */ slwi r4, r3, 1 -/* 80356530 7C 7F 22 2E */ lhzx r3, r31, r4 -/* 80356534 38 63 00 01 */ addi r3, r3, 1 -/* 80356538 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 8035653C 7C 7F 23 2E */ sthx r3, r31, r4 -/* 80356540 28 00 00 01 */ cmplwi r0, 1 -/* 80356544 40 81 00 14 */ ble lbl_80356558 -lbl_80356548: -/* 80356548 80 61 00 30 */ lwz r3, 0x30(r1) -/* 8035654C 38 80 FF FA */ li r4, -6 -/* 80356550 4B FF D7 1D */ bl __CARDPutControlBlock -/* 80356554 48 00 03 8C */ b lbl_803568E0 -lbl_80356558: -/* 80356558 80 65 00 88 */ lwz r3, 0x88(r5) -/* 8035655C 39 08 00 01 */ addi r8, r8, 1 -/* 80356560 7C 83 22 2E */ lhzx r4, r3, r4 -lbl_80356564: -/* 80356564 54 80 04 3E */ clrlwi r0, r4, 0x10 -/* 80356568 28 00 FF FF */ cmplwi r0, 0xffff -/* 8035656C 41 82 00 14 */ beq lbl_80356580 -/* 80356570 A0 07 00 38 */ lhz r0, 0x38(r7) -/* 80356574 55 03 04 3E */ clrlwi r3, r8, 0x10 -/* 80356578 7C 03 00 40 */ cmplw r3, r0 -/* 8035657C 41 80 FF 98 */ blt lbl_80356514 -lbl_80356580: -/* 80356580 A0 07 00 38 */ lhz r0, 0x38(r7) -/* 80356584 55 03 04 3E */ clrlwi r3, r8, 0x10 -/* 80356588 7C 03 00 40 */ cmplw r3, r0 -/* 8035658C 40 82 00 10 */ bne lbl_8035659C -/* 80356590 54 80 04 3E */ clrlwi r0, r4, 0x10 -/* 80356594 28 00 FF FF */ cmplwi r0, 0xffff -/* 80356598 41 82 00 14 */ beq lbl_803565AC -lbl_8035659C: -/* 8035659C 80 61 00 30 */ lwz r3, 0x30(r1) -/* 803565A0 38 80 FF FA */ li r4, -6 -/* 803565A4 4B FF D6 C9 */ bl __CARDPutControlBlock -/* 803565A8 48 00 03 38 */ b lbl_803568E0 -lbl_803565AC: -/* 803565AC 38 C6 00 40 */ addi r6, r6, 0x40 -/* 803565B0 42 00 FF 44 */ bdnz lbl_803564F4 -/* 803565B4 80 61 00 30 */ lwz r3, 0x30(r1) -/* 803565B8 38 DF 00 0A */ addi r6, r31, 0xa -/* 803565BC 39 20 00 00 */ li r9, 0 -/* 803565C0 39 00 00 05 */ li r8, 5 -/* 803565C4 38 A0 00 0A */ li r5, 0xa -/* 803565C8 48 00 00 68 */ b lbl_80356630 -lbl_803565CC: -/* 803565CC 80 83 00 88 */ lwz r4, 0x88(r3) -/* 803565D0 A0 06 00 00 */ lhz r0, 0(r6) -/* 803565D4 7C 84 2A 14 */ add r4, r4, r5 -/* 803565D8 28 00 00 00 */ cmplwi r0, 0 -/* 803565DC A0 04 00 00 */ lhz r0, 0(r4) -/* 803565E0 40 82 00 20 */ bne lbl_80356600 -/* 803565E4 28 00 00 00 */ cmplwi r0, 0 -/* 803565E8 41 82 00 10 */ beq lbl_803565F8 -/* 803565EC 38 00 00 00 */ li r0, 0 -/* 803565F0 B0 04 00 00 */ sth r0, 0(r4) -/* 803565F4 3B 80 00 01 */ li r28, 1 -lbl_803565F8: -/* 803565F8 39 29 00 01 */ addi r9, r9, 1 -/* 803565FC 48 00 00 28 */ b lbl_80356624 -lbl_80356600: -/* 80356600 28 00 00 05 */ cmplwi r0, 5 -/* 80356604 41 80 00 0C */ blt lbl_80356610 -/* 80356608 7C 00 38 40 */ cmplw r0, r7 -/* 8035660C 41 80 00 18 */ blt lbl_80356624 -lbl_80356610: -/* 80356610 28 00 FF FF */ cmplwi r0, 0xffff -/* 80356614 41 82 00 10 */ beq lbl_80356624 -/* 80356618 38 80 FF FA */ li r4, -6 -/* 8035661C 4B FF D6 51 */ bl __CARDPutControlBlock -/* 80356620 48 00 02 C0 */ b lbl_803568E0 -lbl_80356624: -/* 80356624 38 A5 00 02 */ addi r5, r5, 2 -/* 80356628 38 C6 00 02 */ addi r6, r6, 2 -/* 8035662C 39 08 00 01 */ addi r8, r8, 1 -lbl_80356630: -/* 80356630 A0 E3 00 10 */ lhz r7, 0x10(r3) -/* 80356634 55 00 04 3E */ clrlwi r0, r8, 0x10 -/* 80356638 7C 00 38 40 */ cmplw r0, r7 -/* 8035663C 41 80 FF 90 */ blt lbl_803565CC -/* 80356640 80 63 00 88 */ lwz r3, 0x88(r3) -/* 80356644 55 24 04 3E */ clrlwi r4, r9, 0x10 -/* 80356648 A4 03 00 06 */ lhzu r0, 6(r3) -/* 8035664C 7C 04 00 40 */ cmplw r4, r0 -/* 80356650 41 82 00 0C */ beq lbl_8035665C -/* 80356654 B1 23 00 00 */ sth r9, 0(r3) -/* 80356658 3B 80 00 01 */ li r28, 1 -lbl_8035665C: -/* 8035665C 2C 1C 00 00 */ cmpwi r28, 0 -/* 80356660 41 82 01 C8 */ beq lbl_80356828 -/* 80356664 80 61 00 30 */ lwz r3, 0x30(r1) -/* 80356668 38 80 1F FC */ li r4, 0x1ffc -/* 8035666C 7C 84 0E 70 */ srawi r4, r4, 1 -/* 80356670 80 C3 00 88 */ lwz r6, 0x88(r3) -/* 80356674 38 00 00 00 */ li r0, 0 -/* 80356678 7C 84 01 95 */ addze. r4, r4 -/* 8035667C B0 06 00 02 */ sth r0, 2(r6) -/* 80356680 38 E6 00 02 */ addi r7, r6, 2 -/* 80356684 38 A6 00 04 */ addi r5, r6, 4 -/* 80356688 B0 06 00 00 */ sth r0, 0(r6) -/* 8035668C 38 64 00 00 */ addi r3, r4, 0 -/* 80356690 40 81 01 70 */ ble lbl_80356800 -/* 80356694 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f -/* 80356698 7C 09 03 A6 */ mtctr r0 -/* 8035669C 41 82 01 34 */ beq lbl_803567D0 -lbl_803566A0: -/* 803566A0 A0 86 00 00 */ lhz r4, 0(r6) -/* 803566A4 A0 05 00 00 */ lhz r0, 0(r5) -/* 803566A8 7C 04 02 14 */ add r0, r4, r0 -/* 803566AC B0 06 00 00 */ sth r0, 0(r6) -/* 803566B0 A0 05 00 00 */ lhz r0, 0(r5) -/* 803566B4 A0 87 00 00 */ lhz r4, 0(r7) -/* 803566B8 7C 00 00 F8 */ nor r0, r0, r0 -/* 803566BC 7C 04 02 14 */ add r0, r4, r0 -/* 803566C0 B0 07 00 00 */ sth r0, 0(r7) -/* 803566C4 A0 86 00 00 */ lhz r4, 0(r6) -/* 803566C8 A0 05 00 02 */ lhz r0, 2(r5) -/* 803566CC 7C 04 02 14 */ add r0, r4, r0 -/* 803566D0 B0 06 00 00 */ sth r0, 0(r6) -/* 803566D4 A0 05 00 02 */ lhz r0, 2(r5) -/* 803566D8 A0 87 00 00 */ lhz r4, 0(r7) -/* 803566DC 7C 00 00 F8 */ nor r0, r0, r0 -/* 803566E0 7C 04 02 14 */ add r0, r4, r0 -/* 803566E4 B0 07 00 00 */ sth r0, 0(r7) -/* 803566E8 A0 86 00 00 */ lhz r4, 0(r6) -/* 803566EC A0 05 00 04 */ lhz r0, 4(r5) -/* 803566F0 7C 04 02 14 */ add r0, r4, r0 -/* 803566F4 B0 06 00 00 */ sth r0, 0(r6) -/* 803566F8 A0 05 00 04 */ lhz r0, 4(r5) -/* 803566FC A0 87 00 00 */ lhz r4, 0(r7) -/* 80356700 7C 00 00 F8 */ nor r0, r0, r0 -/* 80356704 7C 04 02 14 */ add r0, r4, r0 -/* 80356708 B0 07 00 00 */ sth r0, 0(r7) -/* 8035670C A0 86 00 00 */ lhz r4, 0(r6) -/* 80356710 A0 05 00 06 */ lhz r0, 6(r5) -/* 80356714 7C 04 02 14 */ add r0, r4, r0 -/* 80356718 B0 06 00 00 */ sth r0, 0(r6) -/* 8035671C A0 05 00 06 */ lhz r0, 6(r5) -/* 80356720 A0 87 00 00 */ lhz r4, 0(r7) -/* 80356724 7C 00 00 F8 */ nor r0, r0, r0 -/* 80356728 7C 04 02 14 */ add r0, r4, r0 -/* 8035672C B0 07 00 00 */ sth r0, 0(r7) -/* 80356730 A0 86 00 00 */ lhz r4, 0(r6) -/* 80356734 A0 05 00 08 */ lhz r0, 8(r5) -/* 80356738 7C 04 02 14 */ add r0, r4, r0 -/* 8035673C B0 06 00 00 */ sth r0, 0(r6) -/* 80356740 A0 05 00 08 */ lhz r0, 8(r5) -/* 80356744 A0 87 00 00 */ lhz r4, 0(r7) -/* 80356748 7C 00 00 F8 */ nor r0, r0, r0 -/* 8035674C 7C 04 02 14 */ add r0, r4, r0 -/* 80356750 B0 07 00 00 */ sth r0, 0(r7) -/* 80356754 A0 86 00 00 */ lhz r4, 0(r6) -/* 80356758 A0 05 00 0A */ lhz r0, 0xa(r5) -/* 8035675C 7C 04 02 14 */ add r0, r4, r0 -/* 80356760 B0 06 00 00 */ sth r0, 0(r6) -/* 80356764 A0 05 00 0A */ lhz r0, 0xa(r5) -/* 80356768 A0 87 00 00 */ lhz r4, 0(r7) -/* 8035676C 7C 00 00 F8 */ nor r0, r0, r0 -/* 80356770 7C 04 02 14 */ add r0, r4, r0 -/* 80356774 B0 07 00 00 */ sth r0, 0(r7) -/* 80356778 A0 86 00 00 */ lhz r4, 0(r6) -/* 8035677C A0 05 00 0C */ lhz r0, 0xc(r5) -/* 80356780 7C 04 02 14 */ add r0, r4, r0 -/* 80356784 B0 06 00 00 */ sth r0, 0(r6) -/* 80356788 A0 05 00 0C */ lhz r0, 0xc(r5) -/* 8035678C A0 87 00 00 */ lhz r4, 0(r7) -/* 80356790 7C 00 00 F8 */ nor r0, r0, r0 -/* 80356794 7C 04 02 14 */ add r0, r4, r0 -/* 80356798 B0 07 00 00 */ sth r0, 0(r7) -/* 8035679C A0 86 00 00 */ lhz r4, 0(r6) -/* 803567A0 A0 05 00 0E */ lhz r0, 0xe(r5) -/* 803567A4 7C 04 02 14 */ add r0, r4, r0 -/* 803567A8 B0 06 00 00 */ sth r0, 0(r6) -/* 803567AC A0 05 00 0E */ lhz r0, 0xe(r5) -/* 803567B0 38 A5 00 10 */ addi r5, r5, 0x10 -/* 803567B4 A0 87 00 00 */ lhz r4, 0(r7) -/* 803567B8 7C 00 00 F8 */ nor r0, r0, r0 -/* 803567BC 7C 04 02 14 */ add r0, r4, r0 -/* 803567C0 B0 07 00 00 */ sth r0, 0(r7) -/* 803567C4 42 00 FE DC */ bdnz lbl_803566A0 -/* 803567C8 70 63 00 07 */ andi. r3, r3, 7 -/* 803567CC 41 82 00 34 */ beq lbl_80356800 -lbl_803567D0: -/* 803567D0 7C 69 03 A6 */ mtctr r3 -lbl_803567D4: -/* 803567D4 A0 86 00 00 */ lhz r4, 0(r6) -/* 803567D8 A0 05 00 00 */ lhz r0, 0(r5) -/* 803567DC 7C 04 02 14 */ add r0, r4, r0 -/* 803567E0 B0 06 00 00 */ sth r0, 0(r6) -/* 803567E4 A0 05 00 00 */ lhz r0, 0(r5) -/* 803567E8 38 A5 00 02 */ addi r5, r5, 2 -/* 803567EC A0 87 00 00 */ lhz r4, 0(r7) -/* 803567F0 7C 00 00 F8 */ nor r0, r0, r0 -/* 803567F4 7C 04 02 14 */ add r0, r4, r0 -/* 803567F8 B0 07 00 00 */ sth r0, 0(r7) -/* 803567FC 42 00 FF D8 */ bdnz lbl_803567D4 -lbl_80356800: -/* 80356800 A0 06 00 00 */ lhz r0, 0(r6) -/* 80356804 28 00 FF FF */ cmplwi r0, 0xffff -/* 80356808 40 82 00 0C */ bne lbl_80356814 -/* 8035680C 38 00 00 00 */ li r0, 0 -/* 80356810 B0 06 00 00 */ sth r0, 0(r6) -lbl_80356814: -/* 80356814 A0 07 00 00 */ lhz r0, 0(r7) -/* 80356818 28 00 FF FF */ cmplwi r0, 0xffff -/* 8035681C 40 82 00 0C */ bne lbl_80356828 -/* 80356820 38 00 00 00 */ li r0, 0 -/* 80356824 B0 07 00 00 */ sth r0, 0(r7) -lbl_80356828: -/* 80356828 80 C1 00 1C */ lwz r6, 0x1c(r1) -/* 8035682C 38 81 00 20 */ addi r4, r1, 0x20 -/* 80356830 38 A0 20 00 */ li r5, 0x2000 -/* 80356834 68 C0 00 01 */ xori r0, r6, 1 -/* 80356838 54 03 10 3A */ slwi r3, r0, 2 -/* 8035683C 54 C0 10 3A */ slwi r0, r6, 2 -/* 80356840 7C 64 18 2E */ lwzx r3, r4, r3 -/* 80356844 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80356848 4B CA CC F9 */ bl memcpy -/* 8035684C 2C 1D 00 00 */ cmpwi r29, 0 -/* 80356850 41 82 00 24 */ beq lbl_80356874 -/* 80356854 28 1A 00 00 */ cmplwi r26, 0 -/* 80356858 41 82 00 0C */ beq lbl_80356864 -/* 8035685C 38 00 20 00 */ li r0, 0x2000 -/* 80356860 90 1A 00 00 */ stw r0, 0(r26) -lbl_80356864: -/* 80356864 38 79 00 00 */ addi r3, r25, 0 -/* 80356868 38 9B 00 00 */ addi r4, r27, 0 -/* 8035686C 4B FF F0 B1 */ bl __CARDUpdateDir -/* 80356870 48 00 00 70 */ b lbl_803568E0 -lbl_80356874: -/* 80356874 7F C0 E3 79 */ or. r0, r30, r28 -/* 80356878 41 82 00 2C */ beq lbl_803568A4 -/* 8035687C 28 1A 00 00 */ cmplwi r26, 0 -/* 80356880 41 82 00 0C */ beq lbl_8035688C -/* 80356884 38 00 20 00 */ li r0, 0x2000 -/* 80356888 90 1A 00 00 */ stw r0, 0(r26) -lbl_8035688C: -/* 8035688C 80 81 00 30 */ lwz r4, 0x30(r1) -/* 80356890 38 79 00 00 */ addi r3, r25, 0 -/* 80356894 38 BB 00 00 */ addi r5, r27, 0 -/* 80356898 80 84 00 88 */ lwz r4, 0x88(r4) -/* 8035689C 4B FF EE 35 */ bl __CARDUpdateFatBlock -/* 803568A0 48 00 00 40 */ b lbl_803568E0 -lbl_803568A4: -/* 803568A4 80 61 00 30 */ lwz r3, 0x30(r1) -/* 803568A8 38 80 00 00 */ li r4, 0 -/* 803568AC 4B FF D3 C1 */ bl __CARDPutControlBlock -/* 803568B0 28 1B 00 00 */ cmplwi r27, 0 -/* 803568B4 41 82 00 28 */ beq lbl_803568DC -/* 803568B8 4B FE 6E 3D */ bl OSDisableInterrupts -/* 803568BC 39 9B 00 00 */ addi r12, r27, 0 -/* 803568C0 7D 88 03 A6 */ mtlr r12 -/* 803568C4 3B 43 00 00 */ addi r26, r3, 0 -/* 803568C8 38 79 00 00 */ addi r3, r25, 0 -/* 803568CC 38 80 00 00 */ li r4, 0 -/* 803568D0 4E 80 00 21 */ blrl -/* 803568D4 7F 43 D3 78 */ mr r3, r26 -/* 803568D8 4B FE 6E 45 */ bl OSRestoreInterrupts -lbl_803568DC: -/* 803568DC 38 60 00 00 */ li r3, 0 -lbl_803568E0: -/* 803568E0 BB 21 00 3C */ lmw r25, 0x3c(r1) -/* 803568E4 80 01 00 5C */ lwz r0, 0x5c(r1) -/* 803568E8 38 21 00 58 */ addi r1, r1, 0x58 -/* 803568EC 7C 08 03 A6 */ mtlr r0 -/* 803568F0 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDCheck/VerifyDir.s b/asm/dolphin/card/CARDCheck/VerifyDir.s deleted file mode 100644 index 844d07eab9..0000000000 --- a/asm/dolphin/card/CARDCheck/VerifyDir.s +++ /dev/null @@ -1,161 +0,0 @@ -lbl_80355E14: -/* 80355E14 7C 08 02 A6 */ mflr r0 -/* 80355E18 90 01 00 04 */ stw r0, 4(r1) -/* 80355E1C 94 21 FF C8 */ stwu r1, -0x38(r1) -/* 80355E20 93 E1 00 34 */ stw r31, 0x34(r1) -/* 80355E24 38 E1 00 1C */ addi r7, r1, 0x1c -/* 80355E28 39 01 00 14 */ addi r8, r1, 0x14 -/* 80355E2C 93 C1 00 30 */ stw r30, 0x30(r1) -/* 80355E30 3B E0 00 00 */ li r31, 0 -/* 80355E34 3B C0 00 00 */ li r30, 0 -/* 80355E38 93 A1 00 2C */ stw r29, 0x2c(r1) -/* 80355E3C 3B A4 00 00 */ addi r29, r4, 0 -/* 80355E40 38 80 00 00 */ li r4, 0 -lbl_80355E44: -/* 80355E44 38 04 00 01 */ addi r0, r4, 1 -/* 80355E48 80 A3 00 80 */ lwz r5, 0x80(r3) -/* 80355E4C 54 00 68 24 */ slwi r0, r0, 0xd -/* 80355E50 7C 05 02 14 */ add r0, r5, r0 -/* 80355E54 90 07 00 00 */ stw r0, 0(r7) -/* 80355E58 38 C0 1F FC */ li r6, 0x1ffc -/* 80355E5C 7C C6 0E 70 */ srawi r6, r6, 1 -/* 80355E60 80 A7 00 00 */ lwz r5, 0(r7) -/* 80355E64 7C C6 01 95 */ addze. r6, r6 -/* 80355E68 39 60 00 00 */ li r11, 0 -/* 80355E6C 38 05 1F C0 */ addi r0, r5, 0x1fc0 -/* 80355E70 90 08 00 00 */ stw r0, 0(r8) -/* 80355E74 39 40 00 00 */ li r10, 0 -/* 80355E78 80 A7 00 00 */ lwz r5, 0(r7) -/* 80355E7C 40 81 00 BC */ ble lbl_80355F38 -/* 80355E80 54 C0 E8 FF */ rlwinm. r0, r6, 0x1d, 3, 0x1f -/* 80355E84 7C 09 03 A6 */ mtctr r0 -/* 80355E88 41 82 00 94 */ beq lbl_80355F1C -lbl_80355E8C: -/* 80355E8C A1 25 00 00 */ lhz r9, 0(r5) -/* 80355E90 7D 20 48 F8 */ nor r0, r9, r9 -/* 80355E94 7D 4A 4A 14 */ add r10, r10, r9 -/* 80355E98 A1 25 00 02 */ lhz r9, 2(r5) -/* 80355E9C 7D 6B 02 14 */ add r11, r11, r0 -/* 80355EA0 7D 20 48 F8 */ nor r0, r9, r9 -/* 80355EA4 7D 4A 4A 14 */ add r10, r10, r9 -/* 80355EA8 A1 25 00 04 */ lhz r9, 4(r5) -/* 80355EAC 7D 6B 02 14 */ add r11, r11, r0 -/* 80355EB0 7D 20 48 F8 */ nor r0, r9, r9 -/* 80355EB4 7D 4A 4A 14 */ add r10, r10, r9 -/* 80355EB8 A1 25 00 06 */ lhz r9, 6(r5) -/* 80355EBC 7D 6B 02 14 */ add r11, r11, r0 -/* 80355EC0 7D 20 48 F8 */ nor r0, r9, r9 -/* 80355EC4 7D 4A 4A 14 */ add r10, r10, r9 -/* 80355EC8 A1 25 00 08 */ lhz r9, 8(r5) -/* 80355ECC 7D 6B 02 14 */ add r11, r11, r0 -/* 80355ED0 7D 20 48 F8 */ nor r0, r9, r9 -/* 80355ED4 7D 4A 4A 14 */ add r10, r10, r9 -/* 80355ED8 A1 25 00 0A */ lhz r9, 0xa(r5) -/* 80355EDC 7D 6B 02 14 */ add r11, r11, r0 -/* 80355EE0 7D 20 48 F8 */ nor r0, r9, r9 -/* 80355EE4 7D 4A 4A 14 */ add r10, r10, r9 -/* 80355EE8 A1 25 00 0C */ lhz r9, 0xc(r5) -/* 80355EEC 7D 6B 02 14 */ add r11, r11, r0 -/* 80355EF0 7D 20 48 F8 */ nor r0, r9, r9 -/* 80355EF4 7D 4A 4A 14 */ add r10, r10, r9 -/* 80355EF8 A1 25 00 0E */ lhz r9, 0xe(r5) -/* 80355EFC 7D 6B 02 14 */ add r11, r11, r0 -/* 80355F00 7D 20 48 F8 */ nor r0, r9, r9 -/* 80355F04 7D 4A 4A 14 */ add r10, r10, r9 -/* 80355F08 7D 6B 02 14 */ add r11, r11, r0 -/* 80355F0C 38 A5 00 10 */ addi r5, r5, 0x10 -/* 80355F10 42 00 FF 7C */ bdnz lbl_80355E8C -/* 80355F14 70 C6 00 07 */ andi. r6, r6, 7 -/* 80355F18 41 82 00 20 */ beq lbl_80355F38 -lbl_80355F1C: -/* 80355F1C 7C C9 03 A6 */ mtctr r6 -lbl_80355F20: -/* 80355F20 A1 25 00 00 */ lhz r9, 0(r5) -/* 80355F24 38 A5 00 02 */ addi r5, r5, 2 -/* 80355F28 7D 20 48 F8 */ nor r0, r9, r9 -/* 80355F2C 7D 4A 4A 14 */ add r10, r10, r9 -/* 80355F30 7D 6B 02 14 */ add r11, r11, r0 -/* 80355F34 42 00 FF EC */ bdnz lbl_80355F20 -lbl_80355F38: -/* 80355F38 55 40 04 3E */ clrlwi r0, r10, 0x10 -/* 80355F3C 28 00 FF FF */ cmplwi r0, 0xffff -/* 80355F40 40 82 00 08 */ bne lbl_80355F48 -/* 80355F44 39 40 00 00 */ li r10, 0 -lbl_80355F48: -/* 80355F48 55 60 04 3E */ clrlwi r0, r11, 0x10 -/* 80355F4C 28 00 FF FF */ cmplwi r0, 0xffff -/* 80355F50 40 82 00 08 */ bne lbl_80355F58 -/* 80355F54 39 60 00 00 */ li r11, 0 -lbl_80355F58: -/* 80355F58 80 C8 00 00 */ lwz r6, 0(r8) -/* 80355F5C 55 45 04 3E */ clrlwi r5, r10, 0x10 -/* 80355F60 A0 06 00 3C */ lhz r0, 0x3c(r6) -/* 80355F64 7C 05 00 40 */ cmplw r5, r0 -/* 80355F68 40 82 00 14 */ bne lbl_80355F7C -/* 80355F6C A0 06 00 3E */ lhz r0, 0x3e(r6) -/* 80355F70 55 65 04 3E */ clrlwi r5, r11, 0x10 -/* 80355F74 7C 05 00 40 */ cmplw r5, r0 -/* 80355F78 41 82 00 14 */ beq lbl_80355F8C -lbl_80355F7C: -/* 80355F7C 38 00 00 00 */ li r0, 0 -/* 80355F80 90 03 00 84 */ stw r0, 0x84(r3) -/* 80355F84 3B C4 00 00 */ addi r30, r4, 0 -/* 80355F88 3B FF 00 01 */ addi r31, r31, 1 -lbl_80355F8C: -/* 80355F8C 38 84 00 01 */ addi r4, r4, 1 -/* 80355F90 2C 04 00 02 */ cmpwi r4, 2 -/* 80355F94 38 E7 00 04 */ addi r7, r7, 4 -/* 80355F98 39 08 00 04 */ addi r8, r8, 4 -/* 80355F9C 41 80 FE A8 */ blt lbl_80355E44 -/* 80355FA0 2C 1F 00 00 */ cmpwi r31, 0 -/* 80355FA4 40 82 00 84 */ bne lbl_80356028 -/* 80355FA8 80 83 00 84 */ lwz r4, 0x84(r3) -/* 80355FAC 28 04 00 00 */ cmplwi r4, 0 -/* 80355FB0 40 82 00 5C */ bne lbl_8035600C -/* 80355FB4 80 A1 00 18 */ lwz r5, 0x18(r1) -/* 80355FB8 80 81 00 14 */ lwz r4, 0x14(r1) -/* 80355FBC A8 A5 00 3A */ lha r5, 0x3a(r5) -/* 80355FC0 A8 04 00 3A */ lha r0, 0x3a(r4) -/* 80355FC4 7C 05 00 51 */ subf. r0, r5, r0 -/* 80355FC8 40 80 00 0C */ bge lbl_80355FD4 -/* 80355FCC 3B C0 00 00 */ li r30, 0 -/* 80355FD0 48 00 00 08 */ b lbl_80355FD8 -lbl_80355FD4: -/* 80355FD4 3B C0 00 01 */ li r30, 1 -lbl_80355FD8: -/* 80355FD8 57 C0 10 3A */ slwi r0, r30, 2 -/* 80355FDC 38 C1 00 1C */ addi r6, r1, 0x1c -/* 80355FE0 7C C6 02 14 */ add r6, r6, r0 -/* 80355FE4 80 86 00 00 */ lwz r4, 0(r6) -/* 80355FE8 6B C0 00 01 */ xori r0, r30, 1 -/* 80355FEC 54 00 10 3A */ slwi r0, r0, 2 -/* 80355FF0 90 83 00 84 */ stw r4, 0x84(r3) -/* 80355FF4 38 81 00 1C */ addi r4, r1, 0x1c -/* 80355FF8 38 A0 20 00 */ li r5, 0x2000 -/* 80355FFC 80 66 00 00 */ lwz r3, 0(r6) -/* 80356000 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80356004 4B CA D5 3D */ bl memcpy -/* 80356008 48 00 00 20 */ b lbl_80356028 -lbl_8035600C: -/* 8035600C 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80356010 7C 04 00 40 */ cmplw r4, r0 -/* 80356014 40 82 00 0C */ bne lbl_80356020 -/* 80356018 38 00 00 00 */ li r0, 0 -/* 8035601C 48 00 00 08 */ b lbl_80356024 -lbl_80356020: -/* 80356020 38 00 00 01 */ li r0, 1 -lbl_80356024: -/* 80356024 7C 1E 03 78 */ mr r30, r0 -lbl_80356028: -/* 80356028 28 1D 00 00 */ cmplwi r29, 0 -/* 8035602C 41 82 00 08 */ beq lbl_80356034 -/* 80356030 93 DD 00 00 */ stw r30, 0(r29) -lbl_80356034: -/* 80356034 7F E3 FB 78 */ mr r3, r31 -/* 80356038 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 8035603C 83 E1 00 34 */ lwz r31, 0x34(r1) -/* 80356040 83 C1 00 30 */ lwz r30, 0x30(r1) -/* 80356044 83 A1 00 2C */ lwz r29, 0x2c(r1) -/* 80356048 38 21 00 38 */ addi r1, r1, 0x38 -/* 8035604C 7C 08 03 A6 */ mtlr r0 -/* 80356050 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDCheck/VerifyFAT.s b/asm/dolphin/card/CARDCheck/VerifyFAT.s deleted file mode 100644 index fc93a2c5cb..0000000000 --- a/asm/dolphin/card/CARDCheck/VerifyFAT.s +++ /dev/null @@ -1,182 +0,0 @@ -lbl_80356054: -/* 80356054 7C 08 02 A6 */ mflr r0 -/* 80356058 38 A0 00 00 */ li r5, 0 -/* 8035605C 90 01 00 04 */ stw r0, 4(r1) -/* 80356060 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80356064 93 E1 00 24 */ stw r31, 0x24(r1) -/* 80356068 3B E0 00 00 */ li r31, 0 -/* 8035606C 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80356070 3B C0 00 00 */ li r30, 0 -/* 80356074 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 80356078 3B A4 00 00 */ addi r29, r4, 0 -/* 8035607C 38 81 00 10 */ addi r4, r1, 0x10 -lbl_80356080: -/* 80356080 39 00 1F FC */ li r8, 0x1ffc -/* 80356084 80 C3 00 80 */ lwz r6, 0x80(r3) -/* 80356088 38 05 00 03 */ addi r0, r5, 3 -/* 8035608C 7D 08 0E 70 */ srawi r8, r8, 1 -/* 80356090 54 00 68 24 */ slwi r0, r0, 0xd -/* 80356094 7C E6 02 14 */ add r7, r6, r0 -/* 80356098 7D 08 01 95 */ addze. r8, r8 -/* 8035609C 90 E4 00 00 */ stw r7, 0(r4) -/* 803560A0 38 C7 00 04 */ addi r6, r7, 4 -/* 803560A4 39 60 00 00 */ li r11, 0 -/* 803560A8 39 40 00 00 */ li r10, 0 -/* 803560AC 40 81 00 BC */ ble lbl_80356168 -/* 803560B0 55 00 E8 FF */ rlwinm. r0, r8, 0x1d, 3, 0x1f -/* 803560B4 7C 09 03 A6 */ mtctr r0 -/* 803560B8 41 82 00 94 */ beq lbl_8035614C -lbl_803560BC: -/* 803560BC A1 26 00 00 */ lhz r9, 0(r6) -/* 803560C0 7D 20 48 F8 */ nor r0, r9, r9 -/* 803560C4 7D 4A 4A 14 */ add r10, r10, r9 -/* 803560C8 A1 26 00 02 */ lhz r9, 2(r6) -/* 803560CC 7D 6B 02 14 */ add r11, r11, r0 -/* 803560D0 7D 20 48 F8 */ nor r0, r9, r9 -/* 803560D4 7D 4A 4A 14 */ add r10, r10, r9 -/* 803560D8 A1 26 00 04 */ lhz r9, 4(r6) -/* 803560DC 7D 6B 02 14 */ add r11, r11, r0 -/* 803560E0 7D 20 48 F8 */ nor r0, r9, r9 -/* 803560E4 7D 4A 4A 14 */ add r10, r10, r9 -/* 803560E8 A1 26 00 06 */ lhz r9, 6(r6) -/* 803560EC 7D 6B 02 14 */ add r11, r11, r0 -/* 803560F0 7D 20 48 F8 */ nor r0, r9, r9 -/* 803560F4 7D 4A 4A 14 */ add r10, r10, r9 -/* 803560F8 A1 26 00 08 */ lhz r9, 8(r6) -/* 803560FC 7D 6B 02 14 */ add r11, r11, r0 -/* 80356100 7D 20 48 F8 */ nor r0, r9, r9 -/* 80356104 7D 4A 4A 14 */ add r10, r10, r9 -/* 80356108 A1 26 00 0A */ lhz r9, 0xa(r6) -/* 8035610C 7D 6B 02 14 */ add r11, r11, r0 -/* 80356110 7D 20 48 F8 */ nor r0, r9, r9 -/* 80356114 7D 4A 4A 14 */ add r10, r10, r9 -/* 80356118 A1 26 00 0C */ lhz r9, 0xc(r6) -/* 8035611C 7D 6B 02 14 */ add r11, r11, r0 -/* 80356120 7D 20 48 F8 */ nor r0, r9, r9 -/* 80356124 7D 4A 4A 14 */ add r10, r10, r9 -/* 80356128 A1 26 00 0E */ lhz r9, 0xe(r6) -/* 8035612C 7D 6B 02 14 */ add r11, r11, r0 -/* 80356130 7D 20 48 F8 */ nor r0, r9, r9 -/* 80356134 7D 4A 4A 14 */ add r10, r10, r9 -/* 80356138 7D 6B 02 14 */ add r11, r11, r0 -/* 8035613C 38 C6 00 10 */ addi r6, r6, 0x10 -/* 80356140 42 00 FF 7C */ bdnz lbl_803560BC -/* 80356144 71 08 00 07 */ andi. r8, r8, 7 -/* 80356148 41 82 00 20 */ beq lbl_80356168 -lbl_8035614C: -/* 8035614C 7D 09 03 A6 */ mtctr r8 -lbl_80356150: -/* 80356150 A1 26 00 00 */ lhz r9, 0(r6) -/* 80356154 38 C6 00 02 */ addi r6, r6, 2 -/* 80356158 7D 20 48 F8 */ nor r0, r9, r9 -/* 8035615C 7D 4A 4A 14 */ add r10, r10, r9 -/* 80356160 7D 6B 02 14 */ add r11, r11, r0 -/* 80356164 42 00 FF EC */ bdnz lbl_80356150 -lbl_80356168: -/* 80356168 55 40 04 3E */ clrlwi r0, r10, 0x10 -/* 8035616C 28 00 FF FF */ cmplwi r0, 0xffff -/* 80356170 40 82 00 08 */ bne lbl_80356178 -/* 80356174 39 40 00 00 */ li r10, 0 -lbl_80356178: -/* 80356178 55 60 04 3E */ clrlwi r0, r11, 0x10 -/* 8035617C 28 00 FF FF */ cmplwi r0, 0xffff -/* 80356180 40 82 00 08 */ bne lbl_80356188 -/* 80356184 39 60 00 00 */ li r11, 0 -lbl_80356188: -/* 80356188 A0 C7 00 00 */ lhz r6, 0(r7) -/* 8035618C 55 40 04 3E */ clrlwi r0, r10, 0x10 -/* 80356190 7C 06 00 40 */ cmplw r6, r0 -/* 80356194 40 82 00 14 */ bne lbl_803561A8 -/* 80356198 A0 C7 00 02 */ lhz r6, 2(r7) -/* 8035619C 55 60 04 3E */ clrlwi r0, r11, 0x10 -/* 803561A0 7C 06 00 40 */ cmplw r6, r0 -/* 803561A4 41 82 00 18 */ beq lbl_803561BC -lbl_803561A8: -/* 803561A8 38 00 00 00 */ li r0, 0 -/* 803561AC 90 03 00 88 */ stw r0, 0x88(r3) -/* 803561B0 3B C5 00 00 */ addi r30, r5, 0 -/* 803561B4 3B FF 00 01 */ addi r31, r31, 1 -/* 803561B8 48 00 00 5C */ b lbl_80356214 -lbl_803561BC: -/* 803561BC A1 03 00 10 */ lhz r8, 0x10(r3) -/* 803561C0 38 C7 00 0A */ addi r6, r7, 0xa -/* 803561C4 39 40 00 00 */ li r10, 0 -/* 803561C8 39 20 00 05 */ li r9, 5 -/* 803561CC 48 00 00 1C */ b lbl_803561E8 -lbl_803561D0: -/* 803561D0 A0 06 00 00 */ lhz r0, 0(r6) -/* 803561D4 28 00 00 00 */ cmplwi r0, 0 -/* 803561D8 40 82 00 08 */ bne lbl_803561E0 -/* 803561DC 39 4A 00 01 */ addi r10, r10, 1 -lbl_803561E0: -/* 803561E0 38 C6 00 02 */ addi r6, r6, 2 -/* 803561E4 39 29 00 01 */ addi r9, r9, 1 -lbl_803561E8: -/* 803561E8 55 20 04 3E */ clrlwi r0, r9, 0x10 -/* 803561EC 7C 00 40 40 */ cmplw r0, r8 -/* 803561F0 41 80 FF E0 */ blt lbl_803561D0 -/* 803561F4 A0 07 00 06 */ lhz r0, 6(r7) -/* 803561F8 55 46 04 3E */ clrlwi r6, r10, 0x10 -/* 803561FC 7C 06 00 40 */ cmplw r6, r0 -/* 80356200 41 82 00 14 */ beq lbl_80356214 -/* 80356204 38 00 00 00 */ li r0, 0 -/* 80356208 90 03 00 88 */ stw r0, 0x88(r3) -/* 8035620C 3B C5 00 00 */ addi r30, r5, 0 -/* 80356210 3B FF 00 01 */ addi r31, r31, 1 -lbl_80356214: -/* 80356214 38 A5 00 01 */ addi r5, r5, 1 -/* 80356218 2C 05 00 02 */ cmpwi r5, 2 -/* 8035621C 38 84 00 04 */ addi r4, r4, 4 -/* 80356220 41 80 FE 60 */ blt lbl_80356080 -/* 80356224 2C 1F 00 00 */ cmpwi r31, 0 -/* 80356228 40 82 00 84 */ bne lbl_803562AC -/* 8035622C 80 83 00 88 */ lwz r4, 0x88(r3) -/* 80356230 28 04 00 00 */ cmplwi r4, 0 -/* 80356234 40 82 00 5C */ bne lbl_80356290 -/* 80356238 80 A1 00 14 */ lwz r5, 0x14(r1) -/* 8035623C 80 81 00 10 */ lwz r4, 0x10(r1) -/* 80356240 A8 A5 00 04 */ lha r5, 4(r5) -/* 80356244 A8 04 00 04 */ lha r0, 4(r4) -/* 80356248 7C 05 00 51 */ subf. r0, r5, r0 -/* 8035624C 40 80 00 0C */ bge lbl_80356258 -/* 80356250 3B C0 00 00 */ li r30, 0 -/* 80356254 48 00 00 08 */ b lbl_8035625C -lbl_80356258: -/* 80356258 3B C0 00 01 */ li r30, 1 -lbl_8035625C: -/* 8035625C 57 C0 10 3A */ slwi r0, r30, 2 -/* 80356260 38 C1 00 10 */ addi r6, r1, 0x10 -/* 80356264 7C C6 02 14 */ add r6, r6, r0 -/* 80356268 80 86 00 00 */ lwz r4, 0(r6) -/* 8035626C 6B C0 00 01 */ xori r0, r30, 1 -/* 80356270 54 00 10 3A */ slwi r0, r0, 2 -/* 80356274 90 83 00 88 */ stw r4, 0x88(r3) -/* 80356278 38 81 00 10 */ addi r4, r1, 0x10 -/* 8035627C 38 A0 20 00 */ li r5, 0x2000 -/* 80356280 80 66 00 00 */ lwz r3, 0(r6) -/* 80356284 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80356288 4B CA D2 B9 */ bl memcpy -/* 8035628C 48 00 00 20 */ b lbl_803562AC -lbl_80356290: -/* 80356290 80 01 00 10 */ lwz r0, 0x10(r1) -/* 80356294 7C 04 00 40 */ cmplw r4, r0 -/* 80356298 40 82 00 0C */ bne lbl_803562A4 -/* 8035629C 38 00 00 00 */ li r0, 0 -/* 803562A0 48 00 00 08 */ b lbl_803562A8 -lbl_803562A4: -/* 803562A4 38 00 00 01 */ li r0, 1 -lbl_803562A8: -/* 803562A8 7C 1E 03 78 */ mr r30, r0 -lbl_803562AC: -/* 803562AC 28 1D 00 00 */ cmplwi r29, 0 -/* 803562B0 41 82 00 08 */ beq lbl_803562B8 -/* 803562B4 93 DD 00 00 */ stw r30, 0(r29) -lbl_803562B8: -/* 803562B8 7F E3 FB 78 */ mr r3, r31 -/* 803562BC 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803562C0 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803562C4 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803562C8 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803562CC 38 21 00 28 */ addi r1, r1, 0x28 -/* 803562D0 7C 08 03 A6 */ mtlr r0 -/* 803562D4 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDCheck/VerifyID.s b/asm/dolphin/card/CARDCheck/VerifyID.s deleted file mode 100644 index d83d40f558..0000000000 --- a/asm/dolphin/card/CARDCheck/VerifyID.s +++ /dev/null @@ -1,176 +0,0 @@ -lbl_80355B90: -/* 80355B90 7C 08 02 A6 */ mflr r0 -/* 80355B94 90 01 00 04 */ stw r0, 4(r1) -/* 80355B98 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80355B9C BF 21 00 14 */ stmw r25, 0x14(r1) -/* 80355BA0 7C 7A 1B 78 */ mr r26, r3 -/* 80355BA4 80 63 00 80 */ lwz r3, 0x80(r3) -/* 80355BA8 A0 03 00 20 */ lhz r0, 0x20(r3) -/* 80355BAC 3B 63 00 00 */ addi r27, r3, 0 -/* 80355BB0 28 00 00 00 */ cmplwi r0, 0 -/* 80355BB4 40 82 00 14 */ bne lbl_80355BC8 -/* 80355BB8 A0 7B 00 22 */ lhz r3, 0x22(r27) -/* 80355BBC A0 1A 00 08 */ lhz r0, 8(r26) -/* 80355BC0 7C 03 00 40 */ cmplw r3, r0 -/* 80355BC4 41 82 00 0C */ beq lbl_80355BD0 -lbl_80355BC8: -/* 80355BC8 38 60 FF FA */ li r3, -6 -/* 80355BCC 48 00 02 34 */ b lbl_80355E00 -lbl_80355BD0: -/* 80355BD0 38 00 01 FC */ li r0, 0x1fc -/* 80355BD4 7C 00 0E 70 */ srawi r0, r0, 1 -/* 80355BD8 7C 00 01 95 */ addze. r0, r0 -/* 80355BDC 38 9B 00 00 */ addi r4, r27, 0 -/* 80355BE0 38 E0 00 00 */ li r7, 0 -/* 80355BE4 7C 03 03 78 */ mr r3, r0 -/* 80355BE8 38 C0 00 00 */ li r6, 0 -/* 80355BEC 40 81 00 BC */ ble lbl_80355CA8 -/* 80355BF0 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f -/* 80355BF4 7C 09 03 A6 */ mtctr r0 -/* 80355BF8 41 82 00 94 */ beq lbl_80355C8C -lbl_80355BFC: -/* 80355BFC A0 A4 00 00 */ lhz r5, 0(r4) -/* 80355C00 7C A0 28 F8 */ nor r0, r5, r5 -/* 80355C04 7C C6 2A 14 */ add r6, r6, r5 -/* 80355C08 A0 A4 00 02 */ lhz r5, 2(r4) -/* 80355C0C 7C E7 02 14 */ add r7, r7, r0 -/* 80355C10 7C A0 28 F8 */ nor r0, r5, r5 -/* 80355C14 7C C6 2A 14 */ add r6, r6, r5 -/* 80355C18 A0 A4 00 04 */ lhz r5, 4(r4) -/* 80355C1C 7C E7 02 14 */ add r7, r7, r0 -/* 80355C20 7C A0 28 F8 */ nor r0, r5, r5 -/* 80355C24 7C C6 2A 14 */ add r6, r6, r5 -/* 80355C28 A0 A4 00 06 */ lhz r5, 6(r4) -/* 80355C2C 7C E7 02 14 */ add r7, r7, r0 -/* 80355C30 7C A0 28 F8 */ nor r0, r5, r5 -/* 80355C34 7C C6 2A 14 */ add r6, r6, r5 -/* 80355C38 A0 A4 00 08 */ lhz r5, 8(r4) -/* 80355C3C 7C E7 02 14 */ add r7, r7, r0 -/* 80355C40 7C A0 28 F8 */ nor r0, r5, r5 -/* 80355C44 7C C6 2A 14 */ add r6, r6, r5 -/* 80355C48 A0 A4 00 0A */ lhz r5, 0xa(r4) -/* 80355C4C 7C E7 02 14 */ add r7, r7, r0 -/* 80355C50 7C A0 28 F8 */ nor r0, r5, r5 -/* 80355C54 7C C6 2A 14 */ add r6, r6, r5 -/* 80355C58 A0 A4 00 0C */ lhz r5, 0xc(r4) -/* 80355C5C 7C E7 02 14 */ add r7, r7, r0 -/* 80355C60 7C A0 28 F8 */ nor r0, r5, r5 -/* 80355C64 7C C6 2A 14 */ add r6, r6, r5 -/* 80355C68 A0 A4 00 0E */ lhz r5, 0xe(r4) -/* 80355C6C 7C E7 02 14 */ add r7, r7, r0 -/* 80355C70 7C A0 28 F8 */ nor r0, r5, r5 -/* 80355C74 7C C6 2A 14 */ add r6, r6, r5 -/* 80355C78 7C E7 02 14 */ add r7, r7, r0 -/* 80355C7C 38 84 00 10 */ addi r4, r4, 0x10 -/* 80355C80 42 00 FF 7C */ bdnz lbl_80355BFC -/* 80355C84 70 63 00 07 */ andi. r3, r3, 7 -/* 80355C88 41 82 00 20 */ beq lbl_80355CA8 -lbl_80355C8C: -/* 80355C8C 7C 69 03 A6 */ mtctr r3 -lbl_80355C90: -/* 80355C90 A0 A4 00 00 */ lhz r5, 0(r4) -/* 80355C94 38 84 00 02 */ addi r4, r4, 2 -/* 80355C98 7C A0 28 F8 */ nor r0, r5, r5 -/* 80355C9C 7C C6 2A 14 */ add r6, r6, r5 -/* 80355CA0 7C E7 02 14 */ add r7, r7, r0 -/* 80355CA4 42 00 FF EC */ bdnz lbl_80355C90 -lbl_80355CA8: -/* 80355CA8 54 C0 04 3E */ clrlwi r0, r6, 0x10 -/* 80355CAC 28 00 FF FF */ cmplwi r0, 0xffff -/* 80355CB0 40 82 00 08 */ bne lbl_80355CB8 -/* 80355CB4 38 C0 00 00 */ li r6, 0 -lbl_80355CB8: -/* 80355CB8 54 E0 04 3E */ clrlwi r0, r7, 0x10 -/* 80355CBC 28 00 FF FF */ cmplwi r0, 0xffff -/* 80355CC0 40 82 00 08 */ bne lbl_80355CC8 -/* 80355CC4 38 E0 00 00 */ li r7, 0 -lbl_80355CC8: -/* 80355CC8 A0 7B 01 FC */ lhz r3, 0x1fc(r27) -/* 80355CCC 54 C0 04 3E */ clrlwi r0, r6, 0x10 -/* 80355CD0 7C 03 00 40 */ cmplw r3, r0 -/* 80355CD4 40 82 00 14 */ bne lbl_80355CE8 -/* 80355CD8 A0 7B 01 FE */ lhz r3, 0x1fe(r27) -/* 80355CDC 54 E0 04 3E */ clrlwi r0, r7, 0x10 -/* 80355CE0 7C 03 00 40 */ cmplw r3, r0 -/* 80355CE4 41 82 00 0C */ beq lbl_80355CF0 -lbl_80355CE8: -/* 80355CE8 38 60 FF FA */ li r3, -6 -/* 80355CEC 48 00 01 14 */ b lbl_80355E00 -lbl_80355CF0: -/* 80355CF0 83 FB 00 0C */ lwz r31, 0xc(r27) -/* 80355CF4 83 9B 00 10 */ lwz r28, 0x10(r27) -/* 80355CF8 4B FE A4 A9 */ bl __OSLockSramEx -/* 80355CFC 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80355D00 38 04 CB C0 */ addi r0, r4, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80355D04 3C 80 78 78 */ lis r4, 0x7878 /* 0x78787879@ha */ -/* 80355D08 7C 00 D0 50 */ subf r0, r0, r26 -/* 80355D0C 38 84 78 79 */ addi r4, r4, 0x7879 /* 0x78787879@l */ -/* 80355D10 7C 04 00 96 */ mulhw r0, r4, r0 -/* 80355D14 7C 00 3E 70 */ srawi r0, r0, 7 -/* 80355D18 54 04 0F FE */ srwi r4, r0, 0x1f -/* 80355D1C 7C 00 22 14 */ add r0, r0, r4 -/* 80355D20 1C 00 00 0C */ mulli r0, r0, 0xc -/* 80355D24 3C 80 41 C6 */ lis r4, 0x41C6 /* 0x41C64E6D@ha */ -/* 80355D28 3B 3B 00 00 */ addi r25, r27, 0 -/* 80355D2C 7F A3 02 14 */ add r29, r3, r0 -/* 80355D30 3B C4 4E 6D */ addi r30, r4, 0x4E6D /* 0x41C64E6D@l */ -/* 80355D34 3B 40 00 00 */ li r26, 0 -lbl_80355D38: -/* 80355D38 7C BF F1 D6 */ mullw r5, r31, r30 -/* 80355D3C 7C 7C F0 16 */ mulhwu r3, r28, r30 -/* 80355D40 3B E0 00 00 */ li r31, 0 -/* 80355D44 7C A5 1A 14 */ add r5, r5, r3 -/* 80355D48 7C 7C F9 D6 */ mullw r3, r28, r31 -/* 80355D4C 7C 1C F1 D6 */ mullw r0, r28, r30 -/* 80355D50 3B 80 30 39 */ li r28, 0x3039 -/* 80355D54 7C 80 E0 14 */ addc r4, r0, r28 -/* 80355D58 7C 05 1A 14 */ add r0, r5, r3 -/* 80355D5C 7C 60 F9 14 */ adde r3, r0, r31 -/* 80355D60 38 A0 00 10 */ li r5, 0x10 -/* 80355D64 48 00 C9 31 */ bl __shr2i -/* 80355D68 88 1D 00 00 */ lbz r0, 0(r29) -/* 80355D6C 88 D9 00 00 */ lbz r6, 0(r25) -/* 80355D70 7C 04 00 14 */ addc r0, r4, r0 -/* 80355D74 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 80355D78 7C 06 00 40 */ cmplw r6, r0 -/* 80355D7C 41 82 00 14 */ beq lbl_80355D90 -/* 80355D80 38 60 00 00 */ li r3, 0 -/* 80355D84 4B FE A7 D9 */ bl __OSUnlockSramEx -/* 80355D88 38 60 FF FA */ li r3, -6 -/* 80355D8C 48 00 00 74 */ b lbl_80355E00 -lbl_80355D90: -/* 80355D90 7C A3 F1 D6 */ mullw r5, r3, r30 -/* 80355D94 7C 64 F0 16 */ mulhwu r3, r4, r30 -/* 80355D98 7C A5 1A 14 */ add r5, r5, r3 -/* 80355D9C 7C 64 F9 D6 */ mullw r3, r4, r31 -/* 80355DA0 7C 04 F1 D6 */ mullw r0, r4, r30 -/* 80355DA4 7C 80 E0 14 */ addc r4, r0, r28 -/* 80355DA8 7C 05 1A 14 */ add r0, r5, r3 -/* 80355DAC 7C 60 F9 14 */ adde r3, r0, r31 -/* 80355DB0 38 A0 00 10 */ li r5, 0x10 -/* 80355DB4 48 00 C8 E1 */ bl __shr2i -/* 80355DB8 3B 5A 00 01 */ addi r26, r26, 1 -/* 80355DBC 2C 1A 00 0C */ cmpwi r26, 0xc -/* 80355DC0 38 00 7F FF */ li r0, 0x7fff -/* 80355DC4 7C 9C 00 38 */ and r28, r4, r0 -/* 80355DC8 7C 7F F8 38 */ and r31, r3, r31 -/* 80355DCC 3B BD 00 01 */ addi r29, r29, 1 -/* 80355DD0 3B 39 00 01 */ addi r25, r25, 1 -/* 80355DD4 41 80 FF 64 */ blt lbl_80355D38 -/* 80355DD8 38 60 00 00 */ li r3, 0 -/* 80355DDC 4B FE A7 81 */ bl __OSUnlockSramEx -/* 80355DE0 4B FF DD 95 */ bl __CARDGetFontEncode -/* 80355DE4 A0 1B 00 24 */ lhz r0, 0x24(r27) -/* 80355DE8 54 63 04 3E */ clrlwi r3, r3, 0x10 -/* 80355DEC 7C 00 18 40 */ cmplw r0, r3 -/* 80355DF0 41 82 00 0C */ beq lbl_80355DFC -/* 80355DF4 38 60 FF F3 */ li r3, -13 -/* 80355DF8 48 00 00 08 */ b lbl_80355E00 -lbl_80355DFC: -/* 80355DFC 38 60 00 00 */ li r3, 0 -lbl_80355E00: -/* 80355E00 BB 21 00 14 */ lmw r25, 0x14(r1) -/* 80355E04 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80355E08 38 21 00 30 */ addi r1, r1, 0x30 -/* 80355E0C 7C 08 03 A6 */ mtlr r0 -/* 80355E10 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDDir/EraseCallback.s b/asm/dolphin/card/CARDDir/EraseCallback.s deleted file mode 100644 index 9bfe6fc35b..0000000000 --- a/asm/dolphin/card/CARDDir/EraseCallback.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_80355854: -/* 80355854 7C 08 02 A6 */ mflr r0 -/* 80355858 90 01 00 04 */ stw r0, 4(r1) -/* 8035585C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80355860 93 E1 00 24 */ stw r31, 0x24(r1) -/* 80355864 3B E3 00 00 */ addi r31, r3, 0 -/* 80355868 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 8035586C 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80355870 1C BF 01 10 */ mulli r5, r31, 0x110 -/* 80355874 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 80355878 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 8035587C 7C 9D 23 79 */ or. r29, r4, r4 -/* 80355880 7F C0 2A 14 */ add r30, r0, r5 -/* 80355884 41 80 00 3C */ blt lbl_803558C0 -/* 80355888 80 BE 00 84 */ lwz r5, 0x84(r30) -/* 8035588C 3C 60 80 35 */ lis r3, WriteCallback@ha /* 0x80355784@ha */ -/* 80355890 80 1E 00 80 */ lwz r0, 0x80(r30) -/* 80355894 38 E3 57 84 */ addi r7, r3, WriteCallback@l /* 0x80355784@l */ -/* 80355898 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 8035589C 7C 00 28 50 */ subf r0, r0, r5 -/* 803558A0 54 00 9B 7E */ srwi r0, r0, 0xd -/* 803558A4 7C 83 01 D6 */ mullw r4, r3, r0 -/* 803558A8 38 C5 00 00 */ addi r6, r5, 0 -/* 803558AC 38 7F 00 00 */ addi r3, r31, 0 -/* 803558B0 38 A0 20 00 */ li r5, 0x2000 -/* 803558B4 4B FF FA F9 */ bl __CARDWrite -/* 803558B8 7C 7D 1B 79 */ or. r29, r3, r3 -/* 803558BC 40 80 00 44 */ bge lbl_80355900 -lbl_803558C0: -/* 803558C0 80 1E 00 D0 */ lwz r0, 0xd0(r30) -/* 803558C4 28 00 00 00 */ cmplwi r0, 0 -/* 803558C8 40 82 00 10 */ bne lbl_803558D8 -/* 803558CC 38 7E 00 00 */ addi r3, r30, 0 -/* 803558D0 38 9D 00 00 */ addi r4, r29, 0 -/* 803558D4 4B FF E3 99 */ bl __CARDPutControlBlock -lbl_803558D8: -/* 803558D8 80 1E 00 D8 */ lwz r0, 0xd8(r30) -/* 803558DC 28 00 00 00 */ cmplwi r0, 0 -/* 803558E0 7C 0C 03 78 */ mr r12, r0 -/* 803558E4 41 82 00 1C */ beq lbl_80355900 -/* 803558E8 38 00 00 00 */ li r0, 0 -/* 803558EC 7D 88 03 A6 */ mtlr r12 -/* 803558F0 90 1E 00 D8 */ stw r0, 0xd8(r30) -/* 803558F4 38 7F 00 00 */ addi r3, r31, 0 -/* 803558F8 38 9D 00 00 */ addi r4, r29, 0 -/* 803558FC 4E 80 00 21 */ blrl -lbl_80355900: -/* 80355900 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80355904 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 80355908 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 8035590C 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 80355910 38 21 00 28 */ addi r1, r1, 0x28 -/* 80355914 7C 08 03 A6 */ mtlr r0 -/* 80355918 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDDir/__CARDUpdateDir.s b/asm/dolphin/card/CARDDir/__CARDUpdateDir.s deleted file mode 100644 index 6443e8a40a..0000000000 --- a/asm/dolphin/card/CARDDir/__CARDUpdateDir.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_8035591C: -/* 8035591C 7C 08 02 A6 */ mflr r0 -/* 80355920 90 01 00 04 */ stw r0, 4(r1) -/* 80355924 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80355928 93 E1 00 24 */ stw r31, 0x24(r1) -/* 8035592C 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80355930 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 80355934 3B A4 00 00 */ addi r29, r4, 0 -/* 80355938 93 81 00 18 */ stw r28, 0x18(r1) -/* 8035593C 3B 83 00 00 */ addi r28, r3, 0 -/* 80355940 1C BC 01 10 */ mulli r5, r28, 0x110 -/* 80355944 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80355948 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 8035594C 7F C0 2A 14 */ add r30, r0, r5 -/* 80355950 80 1E 00 00 */ lwz r0, 0(r30) -/* 80355954 2C 00 00 00 */ cmpwi r0, 0 -/* 80355958 40 82 00 0C */ bne lbl_80355964 -/* 8035595C 38 60 FF FD */ li r3, -3 -/* 80355960 48 00 00 60 */ b lbl_803559C0 -lbl_80355964: -/* 80355964 83 FE 00 84 */ lwz r31, 0x84(r30) -/* 80355968 38 80 1F FC */ li r4, 0x1ffc -/* 8035596C A8 BF 1F FA */ lha r5, 0x1ffa(r31) -/* 80355970 38 DF 1F C0 */ addi r6, r31, 0x1fc0 -/* 80355974 38 7F 00 00 */ addi r3, r31, 0 -/* 80355978 38 05 00 01 */ addi r0, r5, 1 -/* 8035597C B0 1F 1F FA */ sth r0, 0x1ffa(r31) -/* 80355980 38 A6 00 3C */ addi r5, r6, 0x3c -/* 80355984 38 C6 00 3E */ addi r6, r6, 0x3e -/* 80355988 48 00 00 59 */ bl __CARDCheckSum -/* 8035598C 38 7F 00 00 */ addi r3, r31, 0 -/* 80355990 38 80 20 00 */ li r4, 0x2000 -/* 80355994 4B FE 5C 49 */ bl DCStoreRange -/* 80355998 93 BE 00 D8 */ stw r29, 0xd8(r30) -/* 8035599C 3C 60 80 35 */ lis r3, EraseCallback@ha /* 0x80355854@ha */ -/* 803559A0 38 A3 58 54 */ addi r5, r3, EraseCallback@l /* 0x80355854@l */ -/* 803559A4 80 1E 00 80 */ lwz r0, 0x80(r30) -/* 803559A8 7F 83 E3 78 */ mr r3, r28 -/* 803559AC 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 803559B0 7C 00 F8 50 */ subf r0, r0, r31 -/* 803559B4 54 00 9B 7E */ srwi r0, r0, 0xd -/* 803559B8 7C 84 01 D6 */ mullw r4, r4, r0 -/* 803559BC 4B FF DF FD */ bl __CARDEraseSector -lbl_803559C0: -/* 803559C0 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803559C4 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803559C8 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803559CC 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803559D0 83 81 00 18 */ lwz r28, 0x18(r1) -/* 803559D4 38 21 00 28 */ addi r1, r1, 0x28 -/* 803559D8 7C 08 03 A6 */ mtlr r0 -/* 803559DC 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDFormat/__CARDFormatRegionAsync.s b/asm/dolphin/card/CARDFormat/__CARDFormatRegionAsync.s deleted file mode 100644 index 5ed8cbb428..0000000000 --- a/asm/dolphin/card/CARDFormat/__CARDFormatRegionAsync.s +++ /dev/null @@ -1,422 +0,0 @@ -lbl_803575C8: -/* 803575C8 7C 08 02 A6 */ mflr r0 -/* 803575CC 90 01 00 04 */ stw r0, 4(r1) -/* 803575D0 94 21 FF A8 */ stwu r1, -0x58(r1) -/* 803575D4 BE 41 00 20 */ stmw r18, 0x20(r1) -/* 803575D8 3A 84 00 00 */ addi r20, r4, 0 -/* 803575DC 3A C3 00 00 */ addi r22, r3, 0 -/* 803575E0 3A 65 00 00 */ addi r19, r5, 0 -/* 803575E4 38 81 00 18 */ addi r4, r1, 0x18 -/* 803575E8 4B FF C5 CD */ bl __CARDGetControlBlock -/* 803575EC 2C 03 00 00 */ cmpwi r3, 0 -/* 803575F0 40 80 00 08 */ bge lbl_803575F8 -/* 803575F4 48 00 06 18 */ b lbl_80357C0C -lbl_803575F8: -/* 803575F8 80 61 00 18 */ lwz r3, 0x18(r1) -/* 803575FC 38 80 00 FF */ li r4, 0xff -/* 80357600 38 A0 20 00 */ li r5, 0x2000 -/* 80357604 83 63 00 80 */ lwz r27, 0x80(r3) -/* 80357608 7F 63 DB 78 */ mr r3, r27 -/* 8035760C 4B CA BE 4D */ bl memset -/* 80357610 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC00206E@ha */ -/* 80357614 A2 43 20 6E */ lhz r18, 0x206E(r3) /* 0xCC00206E@l */ -/* 80357618 B2 9B 00 24 */ sth r20, 0x24(r27) -/* 8035761C 4B FE 8B 29 */ bl __OSLockSram -/* 80357620 80 03 00 0C */ lwz r0, 0xc(r3) -/* 80357624 90 1B 00 14 */ stw r0, 0x14(r27) -/* 80357628 88 03 00 12 */ lbz r0, 0x12(r3) -/* 8035762C 38 60 00 00 */ li r3, 0 -/* 80357630 90 1B 00 18 */ stw r0, 0x18(r27) -/* 80357634 4B FE 8F 05 */ bl __OSUnlockSram -/* 80357638 4B FE B0 C5 */ bl OSGetTime -/* 8035763C 3A A4 00 00 */ addi r21, r4, 0 -/* 80357640 3A 83 00 00 */ addi r20, r3, 0 -/* 80357644 3B 55 00 00 */ addi r26, r21, 0 -/* 80357648 3B D4 00 00 */ addi r30, r20, 0 -/* 8035764C 4B FE 8B 55 */ bl __OSLockSramEx -/* 80357650 1C 16 00 0C */ mulli r0, r22, 0xc -/* 80357654 7F 23 02 14 */ add r25, r3, r0 -/* 80357658 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */ -/* 8035765C 3B 19 00 00 */ addi r24, r25, 0 -/* 80357660 3B E3 4E 6D */ addi r31, r3, 0x4E6D /* 0x41C64E6D@l */ -/* 80357664 3B 80 00 00 */ li r28, 0 -/* 80357668 3A E0 00 04 */ li r23, 4 -/* 8035766C 48 00 03 74 */ b lbl_803579E0 -lbl_80357670: -/* 80357670 7C BE F9 D6 */ mullw r5, r30, r31 -/* 80357674 7C 7A F8 16 */ mulhwu r3, r26, r31 -/* 80357678 3B C0 00 00 */ li r30, 0 -/* 8035767C 7C A5 1A 14 */ add r5, r5, r3 -/* 80357680 7C 7A F1 D6 */ mullw r3, r26, r30 -/* 80357684 7C 1A F9 D6 */ mullw r0, r26, r31 -/* 80357688 3B A0 30 39 */ li r29, 0x3039 -/* 8035768C 7C 80 E8 14 */ addc r4, r0, r29 -/* 80357690 7C 05 1A 14 */ add r0, r5, r3 -/* 80357694 7C 60 F1 14 */ adde r3, r0, r30 -/* 80357698 38 A0 00 10 */ li r5, 0x10 -/* 8035769C 48 00 AF F9 */ bl __shr2i -/* 803576A0 7C C3 F9 D6 */ mullw r6, r3, r31 -/* 803576A4 88 18 00 00 */ lbz r0, 0(r24) -/* 803576A8 7C A4 F8 16 */ mulhwu r5, r4, r31 -/* 803576AC 7C C6 2A 14 */ add r6, r6, r5 -/* 803576B0 7D 04 00 14 */ addc r8, r4, r0 -/* 803576B4 7F 87 07 34 */ extsh r7, r28 -/* 803576B8 7C A4 F1 D6 */ mullw r5, r4, r30 -/* 803576BC 7D 1B 39 AE */ stbx r8, r27, r7 -/* 803576C0 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 803576C4 7C 80 E8 14 */ addc r4, r0, r29 -/* 803576C8 7C 06 2A 14 */ add r0, r6, r5 -/* 803576CC 7C 60 F1 14 */ adde r3, r0, r30 -/* 803576D0 38 A0 00 10 */ li r5, 0x10 -/* 803576D4 48 00 AF C1 */ bl __shr2i -/* 803576D8 3B 40 7F FF */ li r26, 0x7fff -/* 803576DC 7C 60 F0 38 */ and r0, r3, r30 -/* 803576E0 7C 84 D0 38 */ and r4, r4, r26 -/* 803576E4 7C A0 F9 D6 */ mullw r5, r0, r31 -/* 803576E8 7C 64 F8 16 */ mulhwu r3, r4, r31 -/* 803576EC 7C A5 1A 14 */ add r5, r5, r3 -/* 803576F0 7C 64 F1 D6 */ mullw r3, r4, r30 -/* 803576F4 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 803576F8 7C 80 E8 14 */ addc r4, r0, r29 -/* 803576FC 7C 05 1A 14 */ add r0, r5, r3 -/* 80357700 7C 60 F1 14 */ adde r3, r0, r30 -/* 80357704 38 A0 00 10 */ li r5, 0x10 -/* 80357708 48 00 AF 8D */ bl __shr2i -/* 8035770C 7C C3 F9 D6 */ mullw r6, r3, r31 -/* 80357710 7C A4 F8 16 */ mulhwu r5, r4, r31 -/* 80357714 39 3C 00 01 */ addi r9, r28, 1 -/* 80357718 7D 29 07 34 */ extsh r9, r9 -/* 8035771C 7C 19 48 AE */ lbzx r0, r25, r9 -/* 80357720 7C C6 2A 14 */ add r6, r6, r5 -/* 80357724 7C A4 F1 D6 */ mullw r5, r4, r30 -/* 80357728 7C E4 00 14 */ addc r7, r4, r0 -/* 8035772C 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 80357730 7C FB 49 AE */ stbx r7, r27, r9 -/* 80357734 7C 80 E8 14 */ addc r4, r0, r29 -/* 80357738 7C 06 2A 14 */ add r0, r6, r5 -/* 8035773C 7C 60 F1 14 */ adde r3, r0, r30 -/* 80357740 38 A0 00 10 */ li r5, 0x10 -/* 80357744 48 00 AF 51 */ bl __shr2i -/* 80357748 7C 60 F0 38 */ and r0, r3, r30 -/* 8035774C 7C 84 D0 38 */ and r4, r4, r26 -/* 80357750 7C A0 F9 D6 */ mullw r5, r0, r31 -/* 80357754 7C 64 F8 16 */ mulhwu r3, r4, r31 -/* 80357758 7C A5 1A 14 */ add r5, r5, r3 -/* 8035775C 7C 64 F1 D6 */ mullw r3, r4, r30 -/* 80357760 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 80357764 7C 80 E8 14 */ addc r4, r0, r29 -/* 80357768 7C 05 1A 14 */ add r0, r5, r3 -/* 8035776C 7C 60 F1 14 */ adde r3, r0, r30 -/* 80357770 38 A0 00 10 */ li r5, 0x10 -/* 80357774 48 00 AF 21 */ bl __shr2i -/* 80357778 7C C3 F9 D6 */ mullw r6, r3, r31 -/* 8035777C 7C A4 F8 16 */ mulhwu r5, r4, r31 -/* 80357780 39 3C 00 02 */ addi r9, r28, 2 -/* 80357784 7D 29 07 34 */ extsh r9, r9 -/* 80357788 7C 19 48 AE */ lbzx r0, r25, r9 -/* 8035778C 7C C6 2A 14 */ add r6, r6, r5 -/* 80357790 7C A4 F1 D6 */ mullw r5, r4, r30 -/* 80357794 7C E4 00 14 */ addc r7, r4, r0 -/* 80357798 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 8035779C 7C FB 49 AE */ stbx r7, r27, r9 -/* 803577A0 7C 80 E8 14 */ addc r4, r0, r29 -/* 803577A4 7C 06 2A 14 */ add r0, r6, r5 -/* 803577A8 7C 60 F1 14 */ adde r3, r0, r30 -/* 803577AC 38 A0 00 10 */ li r5, 0x10 -/* 803577B0 48 00 AE E5 */ bl __shr2i -/* 803577B4 7C 60 F0 38 */ and r0, r3, r30 -/* 803577B8 7C 84 D0 38 */ and r4, r4, r26 -/* 803577BC 7C A0 F9 D6 */ mullw r5, r0, r31 -/* 803577C0 7C 64 F8 16 */ mulhwu r3, r4, r31 -/* 803577C4 7C A5 1A 14 */ add r5, r5, r3 -/* 803577C8 7C 64 F1 D6 */ mullw r3, r4, r30 -/* 803577CC 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 803577D0 7C 80 E8 14 */ addc r4, r0, r29 -/* 803577D4 7C 05 1A 14 */ add r0, r5, r3 -/* 803577D8 7C 60 F1 14 */ adde r3, r0, r30 -/* 803577DC 38 A0 00 10 */ li r5, 0x10 -/* 803577E0 48 00 AE B5 */ bl __shr2i -/* 803577E4 7C C3 F9 D6 */ mullw r6, r3, r31 -/* 803577E8 7C A4 F8 16 */ mulhwu r5, r4, r31 -/* 803577EC 39 3C 00 03 */ addi r9, r28, 3 -/* 803577F0 7D 29 07 34 */ extsh r9, r9 -/* 803577F4 7C 19 48 AE */ lbzx r0, r25, r9 -/* 803577F8 7C C6 2A 14 */ add r6, r6, r5 -/* 803577FC 7C A4 F1 D6 */ mullw r5, r4, r30 -/* 80357800 7C E4 00 14 */ addc r7, r4, r0 -/* 80357804 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 80357808 7C FB 49 AE */ stbx r7, r27, r9 -/* 8035780C 7C 80 E8 14 */ addc r4, r0, r29 -/* 80357810 7C 06 2A 14 */ add r0, r6, r5 -/* 80357814 7C 60 F1 14 */ adde r3, r0, r30 -/* 80357818 38 A0 00 10 */ li r5, 0x10 -/* 8035781C 48 00 AE 79 */ bl __shr2i -/* 80357820 7C 60 F0 38 */ and r0, r3, r30 -/* 80357824 7C 84 D0 38 */ and r4, r4, r26 -/* 80357828 7C A0 F9 D6 */ mullw r5, r0, r31 -/* 8035782C 7C 64 F8 16 */ mulhwu r3, r4, r31 -/* 80357830 7C A5 1A 14 */ add r5, r5, r3 -/* 80357834 7C 64 F1 D6 */ mullw r3, r4, r30 -/* 80357838 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 8035783C 7C 80 E8 14 */ addc r4, r0, r29 -/* 80357840 7C 05 1A 14 */ add r0, r5, r3 -/* 80357844 7C 60 F1 14 */ adde r3, r0, r30 -/* 80357848 38 A0 00 10 */ li r5, 0x10 -/* 8035784C 48 00 AE 49 */ bl __shr2i -/* 80357850 7C C3 F9 D6 */ mullw r6, r3, r31 -/* 80357854 7C A4 F8 16 */ mulhwu r5, r4, r31 -/* 80357858 39 3C 00 04 */ addi r9, r28, 4 -/* 8035785C 7D 29 07 34 */ extsh r9, r9 -/* 80357860 7C 19 48 AE */ lbzx r0, r25, r9 -/* 80357864 7C C6 2A 14 */ add r6, r6, r5 -/* 80357868 7C A4 F1 D6 */ mullw r5, r4, r30 -/* 8035786C 7C E4 00 14 */ addc r7, r4, r0 -/* 80357870 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 80357874 7C FB 49 AE */ stbx r7, r27, r9 -/* 80357878 7C 80 E8 14 */ addc r4, r0, r29 -/* 8035787C 7C 06 2A 14 */ add r0, r6, r5 -/* 80357880 7C 60 F1 14 */ adde r3, r0, r30 -/* 80357884 38 A0 00 10 */ li r5, 0x10 -/* 80357888 48 00 AE 0D */ bl __shr2i -/* 8035788C 7C 60 F0 38 */ and r0, r3, r30 -/* 80357890 7C 84 D0 38 */ and r4, r4, r26 -/* 80357894 7C A0 F9 D6 */ mullw r5, r0, r31 -/* 80357898 7C 64 F8 16 */ mulhwu r3, r4, r31 -/* 8035789C 7C A5 1A 14 */ add r5, r5, r3 -/* 803578A0 7C 64 F1 D6 */ mullw r3, r4, r30 -/* 803578A4 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 803578A8 7C 80 E8 14 */ addc r4, r0, r29 -/* 803578AC 7C 05 1A 14 */ add r0, r5, r3 -/* 803578B0 7C 60 F1 14 */ adde r3, r0, r30 -/* 803578B4 38 A0 00 10 */ li r5, 0x10 -/* 803578B8 48 00 AD DD */ bl __shr2i -/* 803578BC 7C C3 F9 D6 */ mullw r6, r3, r31 -/* 803578C0 7C A4 F8 16 */ mulhwu r5, r4, r31 -/* 803578C4 39 3C 00 05 */ addi r9, r28, 5 -/* 803578C8 7D 29 07 34 */ extsh r9, r9 -/* 803578CC 7C 19 48 AE */ lbzx r0, r25, r9 -/* 803578D0 7C C6 2A 14 */ add r6, r6, r5 -/* 803578D4 7C A4 F1 D6 */ mullw r5, r4, r30 -/* 803578D8 7C E4 00 14 */ addc r7, r4, r0 -/* 803578DC 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 803578E0 7C FB 49 AE */ stbx r7, r27, r9 -/* 803578E4 7C 80 E8 14 */ addc r4, r0, r29 -/* 803578E8 7C 06 2A 14 */ add r0, r6, r5 -/* 803578EC 7C 60 F1 14 */ adde r3, r0, r30 -/* 803578F0 38 A0 00 10 */ li r5, 0x10 -/* 803578F4 48 00 AD A1 */ bl __shr2i -/* 803578F8 7C 60 F0 38 */ and r0, r3, r30 -/* 803578FC 7C 84 D0 38 */ and r4, r4, r26 -/* 80357900 7C A0 F9 D6 */ mullw r5, r0, r31 -/* 80357904 7C 64 F8 16 */ mulhwu r3, r4, r31 -/* 80357908 7C A5 1A 14 */ add r5, r5, r3 -/* 8035790C 7C 64 F1 D6 */ mullw r3, r4, r30 -/* 80357910 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 80357914 7C 80 E8 14 */ addc r4, r0, r29 -/* 80357918 7C 05 1A 14 */ add r0, r5, r3 -/* 8035791C 7C 60 F1 14 */ adde r3, r0, r30 -/* 80357920 38 A0 00 10 */ li r5, 0x10 -/* 80357924 48 00 AD 71 */ bl __shr2i -/* 80357928 7C C3 F9 D6 */ mullw r6, r3, r31 -/* 8035792C 7C A4 F8 16 */ mulhwu r5, r4, r31 -/* 80357930 39 3C 00 06 */ addi r9, r28, 6 -/* 80357934 7D 29 07 34 */ extsh r9, r9 -/* 80357938 7C 19 48 AE */ lbzx r0, r25, r9 -/* 8035793C 7C C6 2A 14 */ add r6, r6, r5 -/* 80357940 7C A4 F1 D6 */ mullw r5, r4, r30 -/* 80357944 7C E4 00 14 */ addc r7, r4, r0 -/* 80357948 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 8035794C 7C FB 49 AE */ stbx r7, r27, r9 -/* 80357950 7C 80 E8 14 */ addc r4, r0, r29 -/* 80357954 7C 06 2A 14 */ add r0, r6, r5 -/* 80357958 7C 60 F1 14 */ adde r3, r0, r30 -/* 8035795C 38 A0 00 10 */ li r5, 0x10 -/* 80357960 48 00 AD 35 */ bl __shr2i -/* 80357964 7C 60 F0 38 */ and r0, r3, r30 -/* 80357968 7C 84 D0 38 */ and r4, r4, r26 -/* 8035796C 7C A0 F9 D6 */ mullw r5, r0, r31 -/* 80357970 7C 64 F8 16 */ mulhwu r3, r4, r31 -/* 80357974 7C A5 1A 14 */ add r5, r5, r3 -/* 80357978 7C 64 F1 D6 */ mullw r3, r4, r30 -/* 8035797C 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 80357980 7C 80 E8 14 */ addc r4, r0, r29 -/* 80357984 7C 05 1A 14 */ add r0, r5, r3 -/* 80357988 7C 60 F1 14 */ adde r3, r0, r30 -/* 8035798C 38 A0 00 10 */ li r5, 0x10 -/* 80357990 48 00 AD 05 */ bl __shr2i -/* 80357994 7C C3 F9 D6 */ mullw r6, r3, r31 -/* 80357998 7C A4 F8 16 */ mulhwu r5, r4, r31 -/* 8035799C 39 3C 00 07 */ addi r9, r28, 7 -/* 803579A0 7D 29 07 34 */ extsh r9, r9 -/* 803579A4 7C 19 48 AE */ lbzx r0, r25, r9 -/* 803579A8 7C C6 2A 14 */ add r6, r6, r5 -/* 803579AC 7C A4 F1 D6 */ mullw r5, r4, r30 -/* 803579B0 7C E4 00 14 */ addc r7, r4, r0 -/* 803579B4 7C 04 F9 D6 */ mullw r0, r4, r31 -/* 803579B8 7C FB 49 AE */ stbx r7, r27, r9 -/* 803579BC 7C 80 E8 14 */ addc r4, r0, r29 -/* 803579C0 7C 06 2A 14 */ add r0, r6, r5 -/* 803579C4 7C 60 F1 14 */ adde r3, r0, r30 -/* 803579C8 38 A0 00 10 */ li r5, 0x10 -/* 803579CC 48 00 AC C9 */ bl __shr2i -/* 803579D0 7C 9A D0 38 */ and r26, r4, r26 -/* 803579D4 7C 7E F0 38 */ and r30, r3, r30 -/* 803579D8 3B 18 00 08 */ addi r24, r24, 8 -/* 803579DC 3B 9C 00 08 */ addi r28, r28, 8 -lbl_803579E0: -/* 803579E0 7F 80 07 34 */ extsh r0, r28 -/* 803579E4 7C 00 B8 00 */ cmpw r0, r23 -/* 803579E8 41 80 FC 88 */ blt lbl_80357670 -/* 803579EC 48 00 02 18 */ b lbl_80357C04 -lbl_803579F0: -/* 803579F0 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */ -/* 803579F4 3B 23 4E 6D */ addi r25, r3, 0x4E6D /* 0x41C64E6D@l */ -/* 803579F8 48 00 00 80 */ b lbl_80357A78 -lbl_803579FC: -/* 803579FC 7C BE C9 D6 */ mullw r5, r30, r25 -/* 80357A00 7C 7A C8 16 */ mulhwu r3, r26, r25 -/* 80357A04 3B 00 00 00 */ li r24, 0 -/* 80357A08 7C A5 1A 14 */ add r5, r5, r3 -/* 80357A0C 7C 7A C1 D6 */ mullw r3, r26, r24 -/* 80357A10 7C 1A C9 D6 */ mullw r0, r26, r25 -/* 80357A14 3A E0 30 39 */ li r23, 0x3039 -/* 80357A18 7C 80 B8 14 */ addc r4, r0, r23 -/* 80357A1C 7C 05 1A 14 */ add r0, r5, r3 -/* 80357A20 7C 60 C1 14 */ adde r3, r0, r24 -/* 80357A24 38 A0 00 10 */ li r5, 0x10 -/* 80357A28 48 00 AC 6D */ bl __shr2i -/* 80357A2C 7C C3 C9 D6 */ mullw r6, r3, r25 -/* 80357A30 88 1D 00 00 */ lbz r0, 0(r29) -/* 80357A34 7C A4 C8 16 */ mulhwu r5, r4, r25 -/* 80357A38 7C C6 2A 14 */ add r6, r6, r5 -/* 80357A3C 7D 04 00 14 */ addc r8, r4, r0 -/* 80357A40 7F 87 07 34 */ extsh r7, r28 -/* 80357A44 7C A4 C1 D6 */ mullw r5, r4, r24 -/* 80357A48 7D 1B 39 AE */ stbx r8, r27, r7 -/* 80357A4C 7C 04 C9 D6 */ mullw r0, r4, r25 -/* 80357A50 7C 80 B8 14 */ addc r4, r0, r23 -/* 80357A54 7C 06 2A 14 */ add r0, r6, r5 -/* 80357A58 7C 60 C1 14 */ adde r3, r0, r24 -/* 80357A5C 38 A0 00 10 */ li r5, 0x10 -/* 80357A60 48 00 AC 35 */ bl __shr2i -/* 80357A64 38 00 7F FF */ li r0, 0x7fff -/* 80357A68 7C 9A 00 38 */ and r26, r4, r0 -/* 80357A6C 7C 7E C0 38 */ and r30, r3, r24 -/* 80357A70 3B BD 00 01 */ addi r29, r29, 1 -/* 80357A74 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80357A78: -/* 80357A78 7F 80 07 34 */ extsh r0, r28 -/* 80357A7C 2C 00 00 0C */ cmpwi r0, 0xc -/* 80357A80 41 80 FF 7C */ blt lbl_803579FC -/* 80357A84 38 60 00 00 */ li r3, 0 -/* 80357A88 4B FE 8A D5 */ bl __OSUnlockSramEx -/* 80357A8C 92 5B 00 1C */ stw r18, 0x1c(r27) -/* 80357A90 3A 40 00 00 */ li r18, 0 -/* 80357A94 38 7B 00 00 */ addi r3, r27, 0 -/* 80357A98 92 BB 00 10 */ stw r21, 0x10(r27) -/* 80357A9C 38 BB 01 FC */ addi r5, r27, 0x1fc -/* 80357AA0 38 DB 01 FE */ addi r6, r27, 0x1fe -/* 80357AA4 92 9B 00 0C */ stw r20, 0xc(r27) -/* 80357AA8 38 80 01 FC */ li r4, 0x1fc -/* 80357AAC B2 5B 00 20 */ sth r18, 0x20(r27) -/* 80357AB0 80 E1 00 18 */ lwz r7, 0x18(r1) -/* 80357AB4 A0 07 00 08 */ lhz r0, 8(r7) -/* 80357AB8 B0 1B 00 22 */ sth r0, 0x22(r27) -/* 80357ABC 4B FF DF 25 */ bl __CARDCheckSum -/* 80357AC0 48 00 00 4C */ b lbl_80357B0C -lbl_80357AC4: -/* 80357AC4 80 81 00 18 */ lwz r4, 0x18(r1) -/* 80357AC8 7E 43 07 34 */ extsh r3, r18 -/* 80357ACC 38 03 00 01 */ addi r0, r3, 1 -/* 80357AD0 80 64 00 80 */ lwz r3, 0x80(r4) -/* 80357AD4 54 00 68 24 */ slwi r0, r0, 0xd -/* 80357AD8 38 80 00 FF */ li r4, 0xff -/* 80357ADC 7E 83 02 14 */ add r20, r3, r0 -/* 80357AE0 38 74 00 00 */ addi r3, r20, 0 -/* 80357AE4 38 A0 20 00 */ li r5, 0x2000 -/* 80357AE8 4B CA B9 71 */ bl memset -/* 80357AEC 38 94 1F C0 */ addi r4, r20, 0x1fc0 -/* 80357AF0 B2 54 1F FA */ sth r18, 0x1ffa(r20) -/* 80357AF4 38 74 00 00 */ addi r3, r20, 0 -/* 80357AF8 38 A4 00 3C */ addi r5, r4, 0x3c -/* 80357AFC 38 C4 00 3E */ addi r6, r4, 0x3e -/* 80357B00 38 80 1F FC */ li r4, 0x1ffc -/* 80357B04 4B FF DE DD */ bl __CARDCheckSum -/* 80357B08 3A 52 00 01 */ addi r18, r18, 1 -lbl_80357B0C: -/* 80357B0C 7E 40 07 34 */ extsh r0, r18 -/* 80357B10 2C 00 00 02 */ cmpwi r0, 2 -/* 80357B14 41 80 FF B0 */ blt lbl_80357AC4 -/* 80357B18 3A 40 00 00 */ li r18, 0 -/* 80357B1C 48 00 00 60 */ b lbl_80357B7C -lbl_80357B20: -/* 80357B20 80 81 00 18 */ lwz r4, 0x18(r1) -/* 80357B24 7E 43 07 34 */ extsh r3, r18 -/* 80357B28 38 03 00 03 */ addi r0, r3, 3 -/* 80357B2C 80 64 00 80 */ lwz r3, 0x80(r4) -/* 80357B30 54 00 68 24 */ slwi r0, r0, 0xd -/* 80357B34 38 80 00 00 */ li r4, 0 -/* 80357B38 7E 83 02 14 */ add r20, r3, r0 -/* 80357B3C 38 74 00 00 */ addi r3, r20, 0 -/* 80357B40 38 A0 20 00 */ li r5, 0x2000 -/* 80357B44 4B CA B9 15 */ bl memset -/* 80357B48 B2 54 00 04 */ sth r18, 4(r20) -/* 80357B4C 38 00 00 04 */ li r0, 4 -/* 80357B50 38 B4 00 00 */ addi r5, r20, 0 -/* 80357B54 80 81 00 18 */ lwz r4, 0x18(r1) -/* 80357B58 38 74 00 04 */ addi r3, r20, 4 -/* 80357B5C 38 D4 00 02 */ addi r6, r20, 2 -/* 80357B60 A0 E4 00 10 */ lhz r7, 0x10(r4) -/* 80357B64 38 80 1F FC */ li r4, 0x1ffc -/* 80357B68 38 E7 FF FB */ addi r7, r7, -5 -/* 80357B6C B0 F4 00 06 */ sth r7, 6(r20) -/* 80357B70 B0 14 00 08 */ sth r0, 8(r20) -/* 80357B74 4B FF DE 6D */ bl __CARDCheckSum -/* 80357B78 3A 52 00 01 */ addi r18, r18, 1 -lbl_80357B7C: -/* 80357B7C 7E 40 07 34 */ extsh r0, r18 -/* 80357B80 2C 00 00 02 */ cmpwi r0, 2 -/* 80357B84 41 80 FF 9C */ blt lbl_80357B20 -/* 80357B88 28 13 00 00 */ cmplwi r19, 0 -/* 80357B8C 41 82 00 0C */ beq lbl_80357B98 -/* 80357B90 7E 60 9B 78 */ mr r0, r19 -/* 80357B94 48 00 00 0C */ b lbl_80357BA0 -lbl_80357B98: -/* 80357B98 3C 60 80 35 */ lis r3, __CARDDefaultApiCallback@ha /* 0x80352A30@ha */ -/* 80357B9C 38 03 2A 30 */ addi r0, r3, __CARDDefaultApiCallback@l /* 0x80352A30@l */ -lbl_80357BA0: -/* 80357BA0 80 A1 00 18 */ lwz r5, 0x18(r1) -/* 80357BA4 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000A000@ha */ -/* 80357BA8 38 83 A0 00 */ addi r4, r3, 0xA000 /* 0x0000A000@l */ -/* 80357BAC 90 05 00 D0 */ stw r0, 0xd0(r5) -/* 80357BB0 80 61 00 18 */ lwz r3, 0x18(r1) -/* 80357BB4 80 63 00 80 */ lwz r3, 0x80(r3) -/* 80357BB8 4B FE 3A 25 */ bl DCStoreRange -/* 80357BBC 80 81 00 18 */ lwz r4, 0x18(r1) -/* 80357BC0 38 00 00 00 */ li r0, 0 -/* 80357BC4 3C 60 80 35 */ lis r3, FormatCallback@ha /* 0x80357484@ha */ -/* 80357BC8 90 04 00 28 */ stw r0, 0x28(r4) -/* 80357BCC 38 A3 74 84 */ addi r5, r3, FormatCallback@l /* 0x80357484@l */ -/* 80357BD0 38 76 00 00 */ addi r3, r22, 0 -/* 80357BD4 80 C1 00 18 */ lwz r6, 0x18(r1) -/* 80357BD8 80 86 00 0C */ lwz r4, 0xc(r6) -/* 80357BDC 80 06 00 28 */ lwz r0, 0x28(r6) -/* 80357BE0 7C 84 01 D6 */ mullw r4, r4, r0 -/* 80357BE4 4B FF BD D5 */ bl __CARDEraseSector -/* 80357BE8 7C 72 1B 79 */ or. r18, r3, r3 -/* 80357BEC 40 80 00 10 */ bge lbl_80357BFC -/* 80357BF0 80 61 00 18 */ lwz r3, 0x18(r1) -/* 80357BF4 7E 44 93 78 */ mr r4, r18 -/* 80357BF8 4B FF C0 75 */ bl __CARDPutControlBlock -lbl_80357BFC: -/* 80357BFC 7E 43 93 78 */ mr r3, r18 -/* 80357C00 48 00 00 0C */ b lbl_80357C0C -lbl_80357C04: -/* 80357C04 7F B9 02 14 */ add r29, r25, r0 -/* 80357C08 4B FF FD E8 */ b lbl_803579F0 -lbl_80357C0C: -/* 80357C0C BA 41 00 20 */ lmw r18, 0x20(r1) -/* 80357C10 80 01 00 5C */ lwz r0, 0x5c(r1) -/* 80357C14 38 21 00 58 */ addi r1, r1, 0x58 -/* 80357C18 7C 08 03 A6 */ mtlr r0 -/* 80357C1C 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDMount/CARDUnmount.s b/asm/dolphin/card/CARDMount/CARDUnmount.s deleted file mode 100644 index 2caacfa119..0000000000 --- a/asm/dolphin/card/CARDMount/CARDUnmount.s +++ /dev/null @@ -1,47 +0,0 @@ -lbl_803573D8: -/* 803573D8 7C 08 02 A6 */ mflr r0 -/* 803573DC 90 01 00 04 */ stw r0, 4(r1) -/* 803573E0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803573E4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803573E8 38 81 00 0C */ addi r4, r1, 0xc -/* 803573EC 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803573F0 93 A1 00 14 */ stw r29, 0x14(r1) -/* 803573F4 3B A3 00 00 */ addi r29, r3, 0 -/* 803573F8 4B FF C7 BD */ bl __CARDGetControlBlock -/* 803573FC 2C 03 00 00 */ cmpwi r3, 0 -/* 80357400 40 80 00 08 */ bge lbl_80357408 -/* 80357404 48 00 00 64 */ b lbl_80357468 -lbl_80357408: -/* 80357408 1C 9D 01 10 */ mulli r4, r29, 0x110 -/* 8035740C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80357410 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80357414 7F C0 22 14 */ add r30, r0, r4 -/* 80357418 4B FE 62 DD */ bl OSDisableInterrupts -/* 8035741C 80 1E 00 00 */ lwz r0, 0(r30) -/* 80357420 3B E3 00 00 */ addi r31, r3, 0 -/* 80357424 2C 00 00 00 */ cmpwi r0, 0 -/* 80357428 41 82 00 34 */ beq lbl_8035745C -/* 8035742C 38 7D 00 00 */ addi r3, r29, 0 -/* 80357430 38 80 00 00 */ li r4, 0 -/* 80357434 4B FE BF 49 */ bl EXISetExiCallback -/* 80357438 7F A3 EB 78 */ mr r3, r29 -/* 8035743C 4B FE C3 71 */ bl EXIDetach -/* 80357440 38 7E 00 E0 */ addi r3, r30, 0xe0 -/* 80357444 4B FE 37 F9 */ bl OSCancelAlarm -/* 80357448 38 60 00 00 */ li r3, 0 -/* 8035744C 90 7E 00 00 */ stw r3, 0(r30) -/* 80357450 38 00 FF FD */ li r0, -3 -/* 80357454 90 1E 00 04 */ stw r0, 4(r30) -/* 80357458 90 7E 00 24 */ stw r3, 0x24(r30) -lbl_8035745C: -/* 8035745C 7F E3 FB 78 */ mr r3, r31 -/* 80357460 4B FE 62 BD */ bl OSRestoreInterrupts -/* 80357464 38 60 00 00 */ li r3, 0 -lbl_80357468: -/* 80357468 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8035746C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80357470 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80357474 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80357478 38 21 00 20 */ addi r1, r1, 0x20 -/* 8035747C 7C 08 03 A6 */ mtlr r0 -/* 80357480 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDMount/DoMount.s b/asm/dolphin/card/CARDMount/DoMount.s deleted file mode 100644 index 8076d24992..0000000000 --- a/asm/dolphin/card/CARDMount/DoMount.s +++ /dev/null @@ -1,300 +0,0 @@ -lbl_80356BC8: -/* 80356BC8 7C 08 02 A6 */ mflr r0 -/* 80356BCC 90 01 00 04 */ stw r0, 4(r1) -/* 80356BD0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80356BD4 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80356BD8 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80356BDC 93 A1 00 24 */ stw r29, 0x24(r1) -/* 80356BE0 3B A3 00 00 */ addi r29, r3, 0 -/* 80356BE4 1C 9D 01 10 */ mulli r4, r29, 0x110 -/* 80356BE8 93 81 00 20 */ stw r28, 0x20(r1) -/* 80356BEC 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80356BF0 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80356BF4 7C 60 22 14 */ add r3, r0, r4 -/* 80356BF8 80 03 00 24 */ lwz r0, 0x24(r3) -/* 80356BFC 3B E3 00 00 */ addi r31, r3, 0 -/* 80356C00 2C 00 00 00 */ cmpwi r0, 0 -/* 80356C04 40 82 02 F0 */ bne lbl_80356EF4 -/* 80356C08 38 7D 00 00 */ addi r3, r29, 0 -/* 80356C0C 38 A1 00 18 */ addi r5, r1, 0x18 -/* 80356C10 38 80 00 00 */ li r4, 0 -/* 80356C14 4B FE D6 25 */ bl EXIGetID -/* 80356C18 2C 03 00 00 */ cmpwi r3, 0 -/* 80356C1C 40 82 00 0C */ bne lbl_80356C28 -/* 80356C20 3B C0 FF FD */ li r30, -3 -/* 80356C24 48 00 00 20 */ b lbl_80356C44 -lbl_80356C28: -/* 80356C28 80 61 00 18 */ lwz r3, 0x18(r1) -/* 80356C2C 4B FF FD 1D */ bl IsCard -/* 80356C30 2C 03 00 00 */ cmpwi r3, 0 -/* 80356C34 41 82 00 0C */ beq lbl_80356C40 -/* 80356C38 3B C0 00 00 */ li r30, 0 -/* 80356C3C 48 00 00 08 */ b lbl_80356C44 -lbl_80356C40: -/* 80356C40 3B C0 FF FE */ li r30, -2 -lbl_80356C44: -/* 80356C44 2C 1E 00 00 */ cmpwi r30, 0 -/* 80356C48 41 80 03 88 */ blt lbl_80356FD0 -/* 80356C4C 80 01 00 18 */ lwz r0, 0x18(r1) -/* 80356C50 3C 80 80 3D */ lis r4, SectorSizeTable@ha /* 0x803D2000@ha */ -/* 80356C54 38 A4 20 00 */ addi r5, r4, SectorSizeTable@l /* 0x803D2000@l */ -/* 80356C58 90 1F 01 08 */ stw r0, 0x108(r31) -/* 80356C5C 3C 60 80 3D */ lis r3, LatencyTable@ha /* 0x803D2020@ha */ -/* 80356C60 38 03 20 20 */ addi r0, r3, LatencyTable@l /* 0x803D2020@l */ -/* 80356C64 80 C1 00 18 */ lwz r6, 0x18(r1) -/* 80356C68 38 7D 00 00 */ addi r3, r29, 0 -/* 80356C6C 38 9F 00 12 */ addi r4, r31, 0x12 -/* 80356C70 54 C6 06 3A */ rlwinm r6, r6, 0, 0x18, 0x1d -/* 80356C74 B0 DF 00 08 */ sth r6, 8(r31) -/* 80356C78 80 C1 00 18 */ lwz r6, 0x18(r1) -/* 80356C7C 54 C6 BE FA */ rlwinm r6, r6, 0x17, 0x1b, 0x1d -/* 80356C80 7C A5 32 14 */ add r5, r5, r6 -/* 80356C84 80 A5 00 00 */ lwz r5, 0(r5) -/* 80356C88 90 BF 00 0C */ stw r5, 0xc(r31) -/* 80356C8C A0 DF 00 08 */ lhz r6, 8(r31) -/* 80356C90 80 BF 00 0C */ lwz r5, 0xc(r31) -/* 80356C94 54 C6 A0 16 */ slwi r6, r6, 0x14 -/* 80356C98 7C C6 1E 70 */ srawi r6, r6, 3 -/* 80356C9C 7C C6 01 94 */ addze r6, r6 -/* 80356CA0 7C A6 2B D6 */ divw r5, r6, r5 -/* 80356CA4 B0 BF 00 10 */ sth r5, 0x10(r31) -/* 80356CA8 80 A1 00 18 */ lwz r5, 0x18(r1) -/* 80356CAC 54 A5 D6 FA */ rlwinm r5, r5, 0x1a, 0x1b, 0x1d -/* 80356CB0 7C A0 2A 14 */ add r5, r0, r5 -/* 80356CB4 80 05 00 00 */ lwz r0, 0(r5) -/* 80356CB8 90 1F 00 14 */ stw r0, 0x14(r31) -/* 80356CBC 4B FF C2 79 */ bl __CARDReadVendorID -/* 80356CC0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80356CC4 41 80 03 0C */ blt lbl_80356FD0 -/* 80356CC8 4B FF D2 41 */ bl CARDGetFastMode -/* 80356CCC 2C 03 00 00 */ cmpwi r3, 0 -/* 80356CD0 41 82 00 20 */ beq lbl_80356CF0 -/* 80356CD4 A0 1F 00 12 */ lhz r0, 0x12(r31) -/* 80356CD8 7C 00 46 70 */ srawi r0, r0, 8 -/* 80356CDC 2C 00 00 EC */ cmpwi r0, 0xec -/* 80356CE0 40 82 00 10 */ bne lbl_80356CF0 -/* 80356CE4 38 00 02 00 */ li r0, 0x200 -/* 80356CE8 B0 1F 00 0A */ sth r0, 0xa(r31) -/* 80356CEC 48 00 00 0C */ b lbl_80356CF8 -lbl_80356CF0: -/* 80356CF0 38 00 00 80 */ li r0, 0x80 -/* 80356CF4 B0 1F 00 0A */ sth r0, 0xa(r31) -lbl_80356CF8: -/* 80356CF8 7F A3 EB 78 */ mr r3, r29 -/* 80356CFC 4B FF C3 29 */ bl __CARDClearStatus -/* 80356D00 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80356D04 41 80 02 CC */ blt lbl_80356FD0 -/* 80356D08 38 7D 00 00 */ addi r3, r29, 0 -/* 80356D0C 38 81 00 14 */ addi r4, r1, 0x14 -/* 80356D10 4B FF C1 35 */ bl __CARDReadStatus -/* 80356D14 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80356D18 41 80 02 B8 */ blt lbl_80356FD0 -/* 80356D1C 7F A3 EB 78 */ mr r3, r29 -/* 80356D20 4B FE C8 4D */ bl EXIProbe -/* 80356D24 2C 03 00 00 */ cmpwi r3, 0 -/* 80356D28 40 82 00 0C */ bne lbl_80356D34 -/* 80356D2C 3B C0 FF FD */ li r30, -3 -/* 80356D30 48 00 02 A0 */ b lbl_80356FD0 -lbl_80356D34: -/* 80356D34 88 01 00 14 */ lbz r0, 0x14(r1) -/* 80356D38 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 -/* 80356D3C 40 82 01 14 */ bne lbl_80356E50 -/* 80356D40 38 7D 00 00 */ addi r3, r29, 0 -/* 80356D44 38 9F 00 18 */ addi r4, r31, 0x18 -/* 80356D48 4B FF D5 51 */ bl __CARDUnlock -/* 80356D4C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80356D50 41 80 02 80 */ blt lbl_80356FD0 -/* 80356D54 4B FE 94 4D */ bl __OSLockSramEx -/* 80356D58 1C 1D 00 0C */ mulli r0, r29, 0xc -/* 80356D5C 7C 83 02 14 */ add r4, r3, r0 -/* 80356D60 88 1F 00 18 */ lbz r0, 0x18(r31) -/* 80356D64 38 BF 00 18 */ addi r5, r31, 0x18 -/* 80356D68 98 04 00 00 */ stb r0, 0(r4) -/* 80356D6C 39 05 00 02 */ addi r8, r5, 2 -/* 80356D70 39 25 00 03 */ addi r9, r5, 3 -/* 80356D74 88 FF 00 18 */ lbz r7, 0x18(r31) -/* 80356D78 39 45 00 04 */ addi r10, r5, 4 -/* 80356D7C 88 1F 00 19 */ lbz r0, 0x19(r31) -/* 80356D80 39 65 00 05 */ addi r11, r5, 5 -/* 80356D84 39 85 00 06 */ addi r12, r5, 6 -/* 80356D88 98 04 00 01 */ stb r0, 1(r4) -/* 80356D8C 3B 85 00 07 */ addi r28, r5, 7 -/* 80356D90 38 A0 00 08 */ li r5, 8 -/* 80356D94 88 1F 00 19 */ lbz r0, 0x19(r31) -/* 80356D98 88 C8 00 00 */ lbz r6, 0(r8) -/* 80356D9C 7C 07 02 14 */ add r0, r7, r0 -/* 80356DA0 98 C4 00 02 */ stb r6, 2(r4) -/* 80356DA4 88 E8 00 00 */ lbz r7, 0(r8) -/* 80356DA8 88 C9 00 00 */ lbz r6, 0(r9) -/* 80356DAC 7C 00 3A 14 */ add r0, r0, r7 -/* 80356DB0 98 C4 00 03 */ stb r6, 3(r4) -/* 80356DB4 88 E9 00 00 */ lbz r7, 0(r9) -/* 80356DB8 88 CA 00 00 */ lbz r6, 0(r10) -/* 80356DBC 7C 00 3A 14 */ add r0, r0, r7 -/* 80356DC0 98 C4 00 04 */ stb r6, 4(r4) -/* 80356DC4 88 EA 00 00 */ lbz r7, 0(r10) -/* 80356DC8 88 CB 00 00 */ lbz r6, 0(r11) -/* 80356DCC 7C 00 3A 14 */ add r0, r0, r7 -/* 80356DD0 98 C4 00 05 */ stb r6, 5(r4) -/* 80356DD4 88 EB 00 00 */ lbz r7, 0(r11) -/* 80356DD8 88 CC 00 00 */ lbz r6, 0(r12) -/* 80356DDC 7C 00 3A 14 */ add r0, r0, r7 -/* 80356DE0 98 C4 00 06 */ stb r6, 6(r4) -/* 80356DE4 88 EC 00 00 */ lbz r7, 0(r12) -/* 80356DE8 88 DC 00 00 */ lbz r6, 0(r28) -/* 80356DEC 7C 00 3A 14 */ add r0, r0, r7 -/* 80356DF0 98 C4 00 07 */ stb r6, 7(r4) -/* 80356DF4 88 DC 00 00 */ lbz r6, 0(r28) -/* 80356DF8 7C 00 32 14 */ add r0, r0, r6 -/* 80356DFC 48 00 01 F0 */ b lbl_80356FEC -lbl_80356E00: -/* 80356E00 20 85 00 0C */ subfic r4, r5, 0xc -/* 80356E04 2C 05 00 0C */ cmpwi r5, 0xc -/* 80356E08 7C 89 03 A6 */ mtctr r4 -/* 80356E0C 40 80 00 28 */ bge lbl_80356E34 -lbl_80356E10: -/* 80356E10 38 E5 00 18 */ addi r7, r5, 0x18 -/* 80356E14 7C FF 3A 14 */ add r7, r31, r7 -/* 80356E18 88 87 00 00 */ lbz r4, 0(r7) -/* 80356E1C 38 A5 00 01 */ addi r5, r5, 1 -/* 80356E20 98 86 00 00 */ stb r4, 0(r6) -/* 80356E24 38 C6 00 01 */ addi r6, r6, 1 -/* 80356E28 88 87 00 00 */ lbz r4, 0(r7) -/* 80356E2C 7C 00 22 14 */ add r0, r0, r4 -/* 80356E30 42 00 FF E0 */ bdnz lbl_80356E10 -lbl_80356E34: -/* 80356E34 7C 63 EA 14 */ add r3, r3, r29 -/* 80356E38 7C 00 00 F8 */ nor r0, r0, r0 -/* 80356E3C 98 03 00 26 */ stb r0, 0x26(r3) -/* 80356E40 38 60 00 01 */ li r3, 1 -/* 80356E44 4B FE 97 19 */ bl __OSUnlockSramEx -/* 80356E48 7F C3 F3 78 */ mr r3, r30 -/* 80356E4C 48 00 01 B0 */ b lbl_80356FFC -lbl_80356E50: -/* 80356E50 38 00 00 01 */ li r0, 1 -/* 80356E54 90 1F 00 24 */ stw r0, 0x24(r31) -/* 80356E58 4B FE 93 49 */ bl __OSLockSramEx -/* 80356E5C 1C 1D 00 0C */ mulli r0, r29, 0xc -/* 80356E60 3B C3 00 00 */ addi r30, r3, 0 -/* 80356E64 7C BE 02 14 */ add r5, r30, r0 -/* 80356E68 88 85 00 00 */ lbz r4, 0(r5) -/* 80356E6C 38 C0 00 08 */ li r6, 8 -/* 80356E70 88 05 00 01 */ lbz r0, 1(r5) -/* 80356E74 88 65 00 02 */ lbz r3, 2(r5) -/* 80356E78 7F 84 02 14 */ add r28, r4, r0 -/* 80356E7C 88 05 00 03 */ lbz r0, 3(r5) -/* 80356E80 7F 9C 1A 14 */ add r28, r28, r3 -/* 80356E84 88 65 00 04 */ lbz r3, 4(r5) -/* 80356E88 7F 9C 02 14 */ add r28, r28, r0 -/* 80356E8C 88 05 00 05 */ lbz r0, 5(r5) -/* 80356E90 7F 9C 1A 14 */ add r28, r28, r3 -/* 80356E94 88 65 00 06 */ lbz r3, 6(r5) -/* 80356E98 7F 9C 02 14 */ add r28, r28, r0 -/* 80356E9C 88 05 00 07 */ lbz r0, 7(r5) -/* 80356EA0 7F 9C 1A 14 */ add r28, r28, r3 -/* 80356EA4 7F 9C 02 14 */ add r28, r28, r0 -/* 80356EA8 48 00 01 4C */ b lbl_80356FF4 -lbl_80356EAC: -/* 80356EAC 20 06 00 0C */ subfic r0, r6, 0xc -/* 80356EB0 2C 06 00 0C */ cmpwi r6, 0xc -/* 80356EB4 7C 09 03 A6 */ mtctr r0 -/* 80356EB8 40 80 00 14 */ bge lbl_80356ECC -lbl_80356EBC: -/* 80356EBC 88 03 00 00 */ lbz r0, 0(r3) -/* 80356EC0 38 63 00 01 */ addi r3, r3, 1 -/* 80356EC4 7F 9C 02 14 */ add r28, r28, r0 -/* 80356EC8 42 00 FF F4 */ bdnz lbl_80356EBC -lbl_80356ECC: -/* 80356ECC 38 60 00 00 */ li r3, 0 -/* 80356ED0 4B FE 96 8D */ bl __OSUnlockSramEx -/* 80356ED4 7C 7E EA 14 */ add r3, r30, r29 -/* 80356ED8 7F 80 E0 F8 */ nor r0, r28, r28 -/* 80356EDC 88 63 00 26 */ lbz r3, 0x26(r3) -/* 80356EE0 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 80356EE4 7C 03 00 40 */ cmplw r3, r0 -/* 80356EE8 41 82 00 0C */ beq lbl_80356EF4 -/* 80356EEC 3B C0 FF FB */ li r30, -5 -/* 80356EF0 48 00 00 E0 */ b lbl_80356FD0 -lbl_80356EF4: -/* 80356EF4 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 80356EF8 2C 00 00 01 */ cmpwi r0, 1 -/* 80356EFC 40 82 00 88 */ bne lbl_80356F84 -/* 80356F00 80 7F 01 08 */ lwz r3, 0x108(r31) -/* 80356F04 3C 03 80 00 */ addis r0, r3, 0x8000 -/* 80356F08 28 00 00 04 */ cmplwi r0, 4 -/* 80356F0C 40 82 00 34 */ bne lbl_80356F40 -/* 80356F10 4B FE 92 91 */ bl __OSLockSramEx -/* 80356F14 1C 1D 00 0C */ mulli r0, r29, 0xc -/* 80356F18 7F 83 02 2E */ lhzx r28, r3, r0 -/* 80356F1C 38 60 00 00 */ li r3, 0 -/* 80356F20 4B FE 96 3D */ bl __OSUnlockSramEx -/* 80356F24 A0 0D 84 F0 */ lhz r0, __CARDVendorID+0x0(r13) -/* 80356F28 28 00 FF FF */ cmplwi r0, 0xffff -/* 80356F2C 41 82 00 0C */ beq lbl_80356F38 -/* 80356F30 7C 1C 00 40 */ cmplw r28, r0 -/* 80356F34 41 82 00 0C */ beq lbl_80356F40 -lbl_80356F38: -/* 80356F38 3B C0 FF FE */ li r30, -2 -/* 80356F3C 48 00 00 94 */ b lbl_80356FD0 -lbl_80356F40: -/* 80356F40 38 00 00 02 */ li r0, 2 -/* 80356F44 90 1F 00 24 */ stw r0, 0x24(r31) -/* 80356F48 38 7D 00 00 */ addi r3, r29, 0 -/* 80356F4C 38 80 00 01 */ li r4, 1 -/* 80356F50 4B FF BE 35 */ bl __CARDEnableInterrupt -/* 80356F54 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80356F58 41 80 00 78 */ blt lbl_80356FD0 -/* 80356F5C 3C 60 80 35 */ lis r3, __CARDExiHandler@ha /* 0x80352B40@ha */ -/* 80356F60 38 83 2B 40 */ addi r4, r3, __CARDExiHandler@l /* 0x80352B40@l */ -/* 80356F64 38 7D 00 00 */ addi r3, r29, 0 -/* 80356F68 4B FE C4 15 */ bl EXISetExiCallback -/* 80356F6C 7F A3 EB 78 */ mr r3, r29 -/* 80356F70 4B FE D1 AD */ bl EXIUnlock -/* 80356F74 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000A000@ha */ -/* 80356F78 80 7F 00 80 */ lwz r3, 0x80(r31) -/* 80356F7C 38 84 A0 00 */ addi r4, r4, 0xA000 /* 0x0000A000@l */ -/* 80356F80 4B FE 46 01 */ bl DCInvalidateRange -lbl_80356F84: -/* 80356F84 80 9F 00 24 */ lwz r4, 0x24(r31) -/* 80356F88 3C 60 80 35 */ lis r3, __CARDMountCallback@ha /* 0x8035701C@ha */ -/* 80356F8C 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80356F90 38 E3 70 1C */ addi r7, r3, __CARDMountCallback@l /* 0x8035701C@l */ -/* 80356F94 38 64 FF FE */ addi r3, r4, -2 -/* 80356F98 7C 80 19 D6 */ mullw r4, r0, r3 -/* 80356F9C 80 BF 00 80 */ lwz r5, 0x80(r31) -/* 80356FA0 54 60 68 24 */ slwi r0, r3, 0xd -/* 80356FA4 7C C5 02 14 */ add r6, r5, r0 -/* 80356FA8 38 7D 00 00 */ addi r3, r29, 0 -/* 80356FAC 38 A0 20 00 */ li r5, 0x2000 -/* 80356FB0 4B FF E2 B1 */ bl __CARDRead -/* 80356FB4 7C 7C 1B 79 */ or. r28, r3, r3 -/* 80356FB8 40 80 00 10 */ bge lbl_80356FC8 -/* 80356FBC 38 7F 00 00 */ addi r3, r31, 0 -/* 80356FC0 38 9C 00 00 */ addi r4, r28, 0 -/* 80356FC4 4B FF CC A9 */ bl __CARDPutControlBlock -lbl_80356FC8: -/* 80356FC8 7F 83 E3 78 */ mr r3, r28 -/* 80356FCC 48 00 00 30 */ b lbl_80356FFC -lbl_80356FD0: -/* 80356FD0 7F A3 EB 78 */ mr r3, r29 -/* 80356FD4 4B FE D1 49 */ bl EXIUnlock -/* 80356FD8 38 7D 00 00 */ addi r3, r29, 0 -/* 80356FDC 38 9E 00 00 */ addi r4, r30, 0 -/* 80356FE0 48 00 03 5D */ bl DoUnmount -/* 80356FE4 7F C3 F3 78 */ mr r3, r30 -/* 80356FE8 48 00 00 14 */ b lbl_80356FFC -lbl_80356FEC: -/* 80356FEC 38 C4 00 08 */ addi r6, r4, 8 -/* 80356FF0 4B FF FE 10 */ b lbl_80356E00 -lbl_80356FF4: -/* 80356FF4 38 65 00 08 */ addi r3, r5, 8 -/* 80356FF8 4B FF FE B4 */ b lbl_80356EAC -lbl_80356FFC: -/* 80356FFC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80357000 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80357004 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 80357008 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 8035700C 83 81 00 20 */ lwz r28, 0x20(r1) -/* 80357010 38 21 00 30 */ addi r1, r1, 0x30 -/* 80357014 7C 08 03 A6 */ mtlr r0 -/* 80357018 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDOpen/CARDOpen.s b/asm/dolphin/card/CARDOpen/CARDOpen.s deleted file mode 100644 index 9c8a7fd9c5..0000000000 --- a/asm/dolphin/card/CARDOpen/CARDOpen.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_80357F98: -/* 80357F98 7C 08 02 A6 */ mflr r0 -/* 80357F9C 90 01 00 04 */ stw r0, 4(r1) -/* 80357FA0 38 00 FF FF */ li r0, -1 -/* 80357FA4 94 21 FF C8 */ stwu r1, -0x38(r1) -/* 80357FA8 BF 21 00 1C */ stmw r25, 0x1c(r1) -/* 80357FAC 3B 24 00 00 */ addi r25, r4, 0 -/* 80357FB0 3B C5 00 00 */ addi r30, r5, 0 -/* 80357FB4 3B A3 00 00 */ addi r29, r3, 0 -/* 80357FB8 38 81 00 14 */ addi r4, r1, 0x14 -/* 80357FBC 90 05 00 00 */ stw r0, 0(r5) -/* 80357FC0 4B FF BB F5 */ bl __CARDGetControlBlock -/* 80357FC4 2C 03 00 00 */ cmpwi r3, 0 -/* 80357FC8 40 80 00 08 */ bge lbl_80357FD0 -/* 80357FCC 48 00 00 D4 */ b lbl_803580A0 -lbl_80357FD0: -/* 80357FD0 83 41 00 14 */ lwz r26, 0x14(r1) -/* 80357FD4 80 1A 00 00 */ lwz r0, 0(r26) -/* 80357FD8 2C 00 00 00 */ cmpwi r0, 0 -/* 80357FDC 40 82 00 0C */ bne lbl_80357FE8 -/* 80357FE0 3B 40 FF FD */ li r26, -3 -/* 80357FE4 48 00 00 5C */ b lbl_80358040 -lbl_80357FE8: -/* 80357FE8 7F 43 D3 78 */ mr r3, r26 -/* 80357FEC 4B FF D7 91 */ bl __CARDGetDirBlock -/* 80357FF0 3B 63 00 00 */ addi r27, r3, 0 -/* 80357FF4 3B 80 00 00 */ li r28, 0 -lbl_80357FF8: -/* 80357FF8 38 7A 00 00 */ addi r3, r26, 0 -/* 80357FFC 38 9B 00 00 */ addi r4, r27, 0 -/* 80358000 4B FF FC DD */ bl __CARDAccess -/* 80358004 2C 03 00 00 */ cmpwi r3, 0 -/* 80358008 41 80 00 24 */ blt lbl_8035802C -/* 8035800C 38 7B 00 00 */ addi r3, r27, 0 -/* 80358010 38 99 00 00 */ addi r4, r25, 0 -/* 80358014 4B FF FC 61 */ bl __CARDCompareFileName -/* 80358018 2C 03 00 00 */ cmpwi r3, 0 -/* 8035801C 41 82 00 10 */ beq lbl_8035802C -/* 80358020 3B FC 00 00 */ addi r31, r28, 0 -/* 80358024 3B 40 00 00 */ li r26, 0 -/* 80358028 48 00 00 18 */ b lbl_80358040 -lbl_8035802C: -/* 8035802C 3B 9C 00 01 */ addi r28, r28, 1 -/* 80358030 2C 1C 00 7F */ cmpwi r28, 0x7f -/* 80358034 3B 7B 00 40 */ addi r27, r27, 0x40 -/* 80358038 41 80 FF C0 */ blt lbl_80357FF8 -/* 8035803C 3B 40 FF FC */ li r26, -4 -lbl_80358040: -/* 80358040 2C 1A 00 00 */ cmpwi r26, 0 -/* 80358044 41 80 00 50 */ blt lbl_80358094 -/* 80358048 80 61 00 14 */ lwz r3, 0x14(r1) -/* 8035804C 4B FF D7 31 */ bl __CARDGetDirBlock -/* 80358050 57 E0 30 32 */ slwi r0, r31, 6 -/* 80358054 7C A3 02 14 */ add r5, r3, r0 -/* 80358058 A0 85 00 36 */ lhz r4, 0x36(r5) -/* 8035805C 28 04 00 05 */ cmplwi r4, 5 -/* 80358060 41 80 00 14 */ blt lbl_80358074 -/* 80358064 80 61 00 14 */ lwz r3, 0x14(r1) -/* 80358068 A0 03 00 10 */ lhz r0, 0x10(r3) -/* 8035806C 7C 04 00 40 */ cmplw r4, r0 -/* 80358070 41 80 00 0C */ blt lbl_8035807C -lbl_80358074: -/* 80358074 3B 40 FF FA */ li r26, -6 -/* 80358078 48 00 00 1C */ b lbl_80358094 -lbl_8035807C: -/* 8035807C 93 BE 00 00 */ stw r29, 0(r30) -/* 80358080 38 00 00 00 */ li r0, 0 -/* 80358084 93 FE 00 04 */ stw r31, 4(r30) -/* 80358088 90 1E 00 08 */ stw r0, 8(r30) -/* 8035808C A0 05 00 36 */ lhz r0, 0x36(r5) -/* 80358090 B0 1E 00 10 */ sth r0, 0x10(r30) -lbl_80358094: -/* 80358094 80 61 00 14 */ lwz r3, 0x14(r1) -/* 80358098 7F 44 D3 78 */ mr r4, r26 -/* 8035809C 4B FF BB D1 */ bl __CARDPutControlBlock -lbl_803580A0: -/* 803580A0 BB 21 00 1C */ lmw r25, 0x1c(r1) -/* 803580A4 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 803580A8 38 21 00 38 */ addi r1, r1, 0x38 -/* 803580AC 7C 08 03 A6 */ mtlr r0 -/* 803580B0 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDOpen/__CARDAccess.s b/asm/dolphin/card/CARDOpen/__CARDAccess.s deleted file mode 100644 index c750724d3e..0000000000 --- a/asm/dolphin/card/CARDOpen/__CARDAccess.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_80357CDC: -/* 80357CDC 7C 08 02 A6 */ mflr r0 -/* 80357CE0 90 01 00 04 */ stw r0, 4(r1) -/* 80357CE4 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80357CE8 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80357CEC 93 C1 00 10 */ stw r30, 0x10(r1) -/* 80357CF0 7C 9E 23 78 */ mr r30, r4 -/* 80357CF4 88 04 00 00 */ lbz r0, 0(r4) -/* 80357CF8 83 E3 01 0C */ lwz r31, 0x10c(r3) -/* 80357CFC 28 00 00 FF */ cmplwi r0, 0xff -/* 80357D00 40 82 00 0C */ bne lbl_80357D0C -/* 80357D04 38 60 FF FC */ li r3, -4 -/* 80357D08 48 00 00 50 */ b lbl_80357D58 -lbl_80357D0C: -/* 80357D0C 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */ -/* 80357D10 38 03 CD E0 */ addi r0, r3, __CARDDiskNone@l /* 0x8044CDE0@l */ -/* 80357D14 7C 1F 00 40 */ cmplw r31, r0 -/* 80357D18 41 82 00 34 */ beq lbl_80357D4C -/* 80357D1C 38 7E 00 00 */ addi r3, r30, 0 -/* 80357D20 38 9F 00 00 */ addi r4, r31, 0 -/* 80357D24 38 A0 00 04 */ li r5, 4 -/* 80357D28 48 00 E3 65 */ bl memcmp -/* 80357D2C 2C 03 00 00 */ cmpwi r3, 0 -/* 80357D30 40 82 00 24 */ bne lbl_80357D54 -/* 80357D34 38 7E 00 04 */ addi r3, r30, 4 -/* 80357D38 38 9F 00 04 */ addi r4, r31, 4 -/* 80357D3C 38 A0 00 02 */ li r5, 2 -/* 80357D40 48 00 E3 4D */ bl memcmp -/* 80357D44 2C 03 00 00 */ cmpwi r3, 0 -/* 80357D48 40 82 00 0C */ bne lbl_80357D54 -lbl_80357D4C: -/* 80357D4C 38 60 00 00 */ li r3, 0 -/* 80357D50 48 00 00 08 */ b lbl_80357D58 -lbl_80357D54: -/* 80357D54 38 60 FF F6 */ li r3, -10 -lbl_80357D58: -/* 80357D58 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80357D5C 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80357D60 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 80357D64 38 21 00 18 */ addi r1, r1, 0x18 -/* 80357D68 7C 08 03 A6 */ mtlr r0 -/* 80357D6C 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDOpen/__CARDIsReadable.s b/asm/dolphin/card/CARDOpen/__CARDIsReadable.s deleted file mode 100644 index 2b70786171..0000000000 --- a/asm/dolphin/card/CARDOpen/__CARDIsReadable.s +++ /dev/null @@ -1,66 +0,0 @@ -lbl_80357EA4: -/* 80357EA4 7C 08 02 A6 */ mflr r0 -/* 80357EA8 90 01 00 04 */ stw r0, 4(r1) -/* 80357EAC 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80357EB0 BF 61 00 14 */ stmw r27, 0x14(r1) -/* 80357EB4 7C 9B 23 78 */ mr r27, r4 -/* 80357EB8 83 83 01 0C */ lwz r28, 0x10c(r3) -/* 80357EBC 4B FF FE 21 */ bl __CARDAccess -/* 80357EC0 3B A3 00 00 */ addi r29, r3, 0 -/* 80357EC4 2C 1D FF F6 */ cmpwi r29, -10 -/* 80357EC8 40 82 00 9C */ bne lbl_80357F64 -/* 80357ECC 88 7B 00 34 */ lbz r3, 0x34(r27) -/* 80357ED0 88 0D 84 F2 */ lbz r0, data_80450A72(r13) -/* 80357ED4 7C 60 00 38 */ and r0, r3, r0 -/* 80357ED8 54 1E 06 3E */ clrlwi r30, r0, 0x18 -/* 80357EDC 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a -/* 80357EE0 41 82 00 44 */ beq lbl_80357F24 -/* 80357EE4 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */ -/* 80357EE8 3B E3 CD E0 */ addi r31, r3, __CARDDiskNone@l /* 0x8044CDE0@l */ -/* 80357EEC 38 7B 00 00 */ addi r3, r27, 0 -/* 80357EF0 38 9F 00 00 */ addi r4, r31, 0 -/* 80357EF4 38 A0 00 04 */ li r5, 4 -/* 80357EF8 48 00 E1 95 */ bl memcmp -/* 80357EFC 2C 03 00 00 */ cmpwi r3, 0 -/* 80357F00 40 82 00 24 */ bne lbl_80357F24 -/* 80357F04 38 7B 00 04 */ addi r3, r27, 4 -/* 80357F08 38 9F 00 04 */ addi r4, r31, 4 -/* 80357F0C 38 A0 00 02 */ li r5, 2 -/* 80357F10 48 00 E1 7D */ bl memcmp -/* 80357F14 2C 03 00 00 */ cmpwi r3, 0 -/* 80357F18 40 82 00 0C */ bne lbl_80357F24 -/* 80357F1C 3B A0 00 00 */ li r29, 0 -/* 80357F20 48 00 00 44 */ b lbl_80357F64 -lbl_80357F24: -/* 80357F24 57 C0 06 73 */ rlwinm. r0, r30, 0, 0x19, 0x19 -/* 80357F28 41 82 00 3C */ beq lbl_80357F64 -/* 80357F2C 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */ -/* 80357F30 38 83 CD E0 */ addi r4, r3, __CARDDiskNone@l /* 0x8044CDE0@l */ -/* 80357F34 38 7B 00 00 */ addi r3, r27, 0 -/* 80357F38 38 A0 00 04 */ li r5, 4 -/* 80357F3C 48 00 E1 51 */ bl memcmp -/* 80357F40 2C 03 00 00 */ cmpwi r3, 0 -/* 80357F44 40 82 00 20 */ bne lbl_80357F64 -/* 80357F48 38 7B 00 04 */ addi r3, r27, 4 -/* 80357F4C 38 9C 00 04 */ addi r4, r28, 4 -/* 80357F50 38 A0 00 02 */ li r5, 2 -/* 80357F54 48 00 E1 39 */ bl memcmp -/* 80357F58 2C 03 00 00 */ cmpwi r3, 0 -/* 80357F5C 40 82 00 08 */ bne lbl_80357F64 -/* 80357F60 3B A0 00 00 */ li r29, 0 -lbl_80357F64: -/* 80357F64 2C 1D FF F6 */ cmpwi r29, -10 -/* 80357F68 40 82 00 18 */ bne lbl_80357F80 -/* 80357F6C 88 1B 00 34 */ lbz r0, 0x34(r27) -/* 80357F70 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 80357F74 41 82 00 0C */ beq lbl_80357F80 -/* 80357F78 38 60 00 00 */ li r3, 0 -/* 80357F7C 48 00 00 08 */ b lbl_80357F84 -lbl_80357F80: -/* 80357F80 7F A3 EB 78 */ mr r3, r29 -lbl_80357F84: -/* 80357F84 BB 61 00 14 */ lmw r27, 0x14(r1) -/* 80357F88 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80357F8C 38 21 00 28 */ addi r1, r1, 0x28 -/* 80357F90 7C 08 03 A6 */ mtlr r0 -/* 80357F94 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDOpen/__CARDIsWritable.s b/asm/dolphin/card/CARDOpen/__CARDIsWritable.s deleted file mode 100644 index 7d23ac0038..0000000000 --- a/asm/dolphin/card/CARDOpen/__CARDIsWritable.s +++ /dev/null @@ -1,85 +0,0 @@ -lbl_80357D70: -/* 80357D70 7C 08 02 A6 */ mflr r0 -/* 80357D74 90 01 00 04 */ stw r0, 4(r1) -/* 80357D78 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80357D7C BF 61 00 14 */ stmw r27, 0x14(r1) -/* 80357D80 7C 9B 23 78 */ mr r27, r4 -/* 80357D84 88 04 00 00 */ lbz r0, 0(r4) -/* 80357D88 83 A3 01 0C */ lwz r29, 0x10c(r3) -/* 80357D8C 28 00 00 FF */ cmplwi r0, 0xff -/* 80357D90 40 82 00 0C */ bne lbl_80357D9C -/* 80357D94 3B C0 FF FC */ li r30, -4 -/* 80357D98 48 00 00 50 */ b lbl_80357DE8 -lbl_80357D9C: -/* 80357D9C 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */ -/* 80357DA0 38 03 CD E0 */ addi r0, r3, __CARDDiskNone@l /* 0x8044CDE0@l */ -/* 80357DA4 7C 1D 00 40 */ cmplw r29, r0 -/* 80357DA8 41 82 00 34 */ beq lbl_80357DDC -/* 80357DAC 38 7B 00 00 */ addi r3, r27, 0 -/* 80357DB0 38 9D 00 00 */ addi r4, r29, 0 -/* 80357DB4 38 A0 00 04 */ li r5, 4 -/* 80357DB8 48 00 E2 D5 */ bl memcmp -/* 80357DBC 2C 03 00 00 */ cmpwi r3, 0 -/* 80357DC0 40 82 00 24 */ bne lbl_80357DE4 -/* 80357DC4 38 7B 00 04 */ addi r3, r27, 4 -/* 80357DC8 38 9D 00 04 */ addi r4, r29, 4 -/* 80357DCC 38 A0 00 02 */ li r5, 2 -/* 80357DD0 48 00 E2 BD */ bl memcmp -/* 80357DD4 2C 03 00 00 */ cmpwi r3, 0 -/* 80357DD8 40 82 00 0C */ bne lbl_80357DE4 -lbl_80357DDC: -/* 80357DDC 3B C0 00 00 */ li r30, 0 -/* 80357DE0 48 00 00 08 */ b lbl_80357DE8 -lbl_80357DE4: -/* 80357DE4 3B C0 FF F6 */ li r30, -10 -lbl_80357DE8: -/* 80357DE8 2C 1E FF F6 */ cmpwi r30, -10 -/* 80357DEC 40 82 00 A0 */ bne lbl_80357E8C -/* 80357DF0 88 7B 00 34 */ lbz r3, 0x34(r27) -/* 80357DF4 88 0D 84 F2 */ lbz r0, data_80450A72(r13) -/* 80357DF8 7C 60 00 38 */ and r0, r3, r0 -/* 80357DFC 54 1C 06 3E */ clrlwi r28, r0, 0x18 -/* 80357E00 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a -/* 80357E04 41 82 00 44 */ beq lbl_80357E48 -/* 80357E08 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */ -/* 80357E0C 3B E3 CD E0 */ addi r31, r3, __CARDDiskNone@l /* 0x8044CDE0@l */ -/* 80357E10 38 7B 00 00 */ addi r3, r27, 0 -/* 80357E14 38 9F 00 00 */ addi r4, r31, 0 -/* 80357E18 38 A0 00 04 */ li r5, 4 -/* 80357E1C 48 00 E2 71 */ bl memcmp -/* 80357E20 2C 03 00 00 */ cmpwi r3, 0 -/* 80357E24 40 82 00 24 */ bne lbl_80357E48 -/* 80357E28 38 7B 00 04 */ addi r3, r27, 4 -/* 80357E2C 38 9F 00 04 */ addi r4, r31, 4 -/* 80357E30 38 A0 00 02 */ li r5, 2 -/* 80357E34 48 00 E2 59 */ bl memcmp -/* 80357E38 2C 03 00 00 */ cmpwi r3, 0 -/* 80357E3C 40 82 00 0C */ bne lbl_80357E48 -/* 80357E40 38 60 00 00 */ li r3, 0 -/* 80357E44 48 00 00 4C */ b lbl_80357E90 -lbl_80357E48: -/* 80357E48 57 80 06 73 */ rlwinm. r0, r28, 0, 0x19, 0x19 -/* 80357E4C 41 82 00 40 */ beq lbl_80357E8C -/* 80357E50 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */ -/* 80357E54 38 83 CD E0 */ addi r4, r3, __CARDDiskNone@l /* 0x8044CDE0@l */ -/* 80357E58 38 7B 00 00 */ addi r3, r27, 0 -/* 80357E5C 38 A0 00 04 */ li r5, 4 -/* 80357E60 48 00 E2 2D */ bl memcmp -/* 80357E64 2C 03 00 00 */ cmpwi r3, 0 -/* 80357E68 40 82 00 24 */ bne lbl_80357E8C -/* 80357E6C 38 7B 00 04 */ addi r3, r27, 4 -/* 80357E70 38 9D 00 04 */ addi r4, r29, 4 -/* 80357E74 38 A0 00 02 */ li r5, 2 -/* 80357E78 48 00 E2 15 */ bl memcmp -/* 80357E7C 2C 03 00 00 */ cmpwi r3, 0 -/* 80357E80 40 82 00 0C */ bne lbl_80357E8C -/* 80357E84 38 60 00 00 */ li r3, 0 -/* 80357E88 48 00 00 08 */ b lbl_80357E90 -lbl_80357E8C: -/* 80357E8C 7F C3 F3 78 */ mr r3, r30 -lbl_80357E90: -/* 80357E90 BB 61 00 14 */ lmw r27, 0x14(r1) -/* 80357E94 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80357E98 38 21 00 28 */ addi r1, r1, 0x28 -/* 80357E9C 7C 08 03 A6 */ mtlr r0 -/* 80357EA0 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDRdwr/BlockWriteCallback.s b/asm/dolphin/card/CARDRdwr/BlockWriteCallback.s deleted file mode 100644 index 388d34dd45..0000000000 --- a/asm/dolphin/card/CARDRdwr/BlockWriteCallback.s +++ /dev/null @@ -1,62 +0,0 @@ -lbl_803552C4: -/* 803552C4 7C 08 02 A6 */ mflr r0 -/* 803552C8 90 01 00 04 */ stw r0, 4(r1) -/* 803552CC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803552D0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803552D4 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803552D8 7C 9E 23 79 */ or. r30, r4, r4 -/* 803552DC 93 A1 00 14 */ stw r29, 0x14(r1) -/* 803552E0 3B A3 00 00 */ addi r29, r3, 0 -/* 803552E4 1C BD 01 10 */ mulli r5, r29, 0x110 -/* 803552E8 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 803552EC 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 803552F0 7F E0 2A 14 */ add r31, r0, r5 -/* 803552F4 41 80 00 5C */ blt lbl_80355350 -/* 803552F8 80 7F 00 B8 */ lwz r3, 0xb8(r31) -/* 803552FC A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 80355300 7C 03 02 14 */ add r0, r3, r0 -/* 80355304 90 1F 00 B8 */ stw r0, 0xb8(r31) -/* 80355308 80 7F 00 B0 */ lwz r3, 0xb0(r31) -/* 8035530C A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 80355310 7C 03 02 14 */ add r0, r3, r0 -/* 80355314 90 1F 00 B0 */ stw r0, 0xb0(r31) -/* 80355318 80 7F 00 B4 */ lwz r3, 0xb4(r31) -/* 8035531C A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 80355320 7C 03 02 14 */ add r0, r3, r0 -/* 80355324 90 1F 00 B4 */ stw r0, 0xb4(r31) -/* 80355328 80 7F 00 AC */ lwz r3, 0xac(r31) -/* 8035532C 34 03 FF FF */ addic. r0, r3, -1 -/* 80355330 90 1F 00 AC */ stw r0, 0xac(r31) -/* 80355334 40 81 00 1C */ ble lbl_80355350 -/* 80355338 3C 60 80 35 */ lis r3, BlockWriteCallback@ha /* 0x803552C4@ha */ -/* 8035533C 38 83 52 C4 */ addi r4, r3, BlockWriteCallback@l /* 0x803552C4@l */ -/* 80355340 38 7D 00 00 */ addi r3, r29, 0 -/* 80355344 4B FF E5 39 */ bl __CARDWritePage -/* 80355348 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8035534C 40 80 00 44 */ bge lbl_80355390 -lbl_80355350: -/* 80355350 80 1F 00 D0 */ lwz r0, 0xd0(r31) -/* 80355354 28 00 00 00 */ cmplwi r0, 0 -/* 80355358 40 82 00 10 */ bne lbl_80355368 -/* 8035535C 38 7F 00 00 */ addi r3, r31, 0 -/* 80355360 38 9E 00 00 */ addi r4, r30, 0 -/* 80355364 4B FF E9 09 */ bl __CARDPutControlBlock -lbl_80355368: -/* 80355368 80 1F 00 D4 */ lwz r0, 0xd4(r31) -/* 8035536C 28 00 00 00 */ cmplwi r0, 0 -/* 80355370 7C 0C 03 78 */ mr r12, r0 -/* 80355374 41 82 00 1C */ beq lbl_80355390 -/* 80355378 38 00 00 00 */ li r0, 0 -/* 8035537C 7D 88 03 A6 */ mtlr r12 -/* 80355380 90 1F 00 D4 */ stw r0, 0xd4(r31) -/* 80355384 38 7D 00 00 */ addi r3, r29, 0 -/* 80355388 38 9E 00 00 */ addi r4, r30, 0 -/* 8035538C 4E 80 00 21 */ blrl -lbl_80355390: -/* 80355390 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80355394 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80355398 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8035539C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 803553A0 38 21 00 20 */ addi r1, r1, 0x20 -/* 803553A4 7C 08 03 A6 */ mtlr r0 -/* 803553A8 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDRead/CARDReadAsync.s b/asm/dolphin/card/CARDRead/CARDReadAsync.s deleted file mode 100644 index 1c0001a5c3..0000000000 --- a/asm/dolphin/card/CARDRead/CARDReadAsync.s +++ /dev/null @@ -1,91 +0,0 @@ -lbl_80358788: -/* 80358788 7C 08 02 A6 */ mflr r0 -/* 8035878C 90 01 00 04 */ stw r0, 4(r1) -/* 80358790 54 C0 05 FF */ clrlwi. r0, r6, 0x17 -/* 80358794 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80358798 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 8035879C 3B E5 00 00 */ addi r31, r5, 0 -/* 803587A0 93 C1 00 28 */ stw r30, 0x28(r1) -/* 803587A4 3B C4 00 00 */ addi r30, r4, 0 -/* 803587A8 93 A1 00 24 */ stw r29, 0x24(r1) -/* 803587AC 3B A3 00 00 */ addi r29, r3, 0 -/* 803587B0 93 81 00 20 */ stw r28, 0x20(r1) -/* 803587B4 3B 87 00 00 */ addi r28, r7, 0 -/* 803587B8 40 82 00 0C */ bne lbl_803587C4 -/* 803587BC 57 E0 05 FF */ clrlwi. r0, r31, 0x17 -/* 803587C0 41 82 00 0C */ beq lbl_803587CC -lbl_803587C4: -/* 803587C4 38 60 FF 80 */ li r3, -128 -/* 803587C8 48 00 00 E4 */ b lbl_803588AC -lbl_803587CC: -/* 803587CC 38 7D 00 00 */ addi r3, r29, 0 -/* 803587D0 38 9F 00 00 */ addi r4, r31, 0 -/* 803587D4 38 A6 00 00 */ addi r5, r6, 0 -/* 803587D8 38 C1 00 1C */ addi r6, r1, 0x1c -/* 803587DC 4B FF FC C5 */ bl __CARDSeek -/* 803587E0 2C 03 00 00 */ cmpwi r3, 0 -/* 803587E4 40 80 00 08 */ bge lbl_803587EC -/* 803587E8 48 00 00 C4 */ b lbl_803588AC -lbl_803587EC: -/* 803587EC 80 61 00 1C */ lwz r3, 0x1c(r1) -/* 803587F0 4B FF CF 8D */ bl __CARDGetDirBlock -/* 803587F4 80 1D 00 04 */ lwz r0, 4(r29) -/* 803587F8 54 00 30 32 */ slwi r0, r0, 6 -/* 803587FC 7C 83 02 14 */ add r4, r3, r0 -/* 80358800 80 61 00 1C */ lwz r3, 0x1c(r1) -/* 80358804 4B FF F6 A1 */ bl __CARDIsReadable -/* 80358808 7C 64 1B 79 */ or. r4, r3, r3 -/* 8035880C 40 80 00 10 */ bge lbl_8035881C -/* 80358810 80 61 00 1C */ lwz r3, 0x1c(r1) -/* 80358814 4B FF B4 59 */ bl __CARDPutControlBlock -/* 80358818 48 00 00 94 */ b lbl_803588AC -lbl_8035881C: -/* 8035881C 38 7E 00 00 */ addi r3, r30, 0 -/* 80358820 38 9F 00 00 */ addi r4, r31, 0 -/* 80358824 4B FE 2D 5D */ bl DCInvalidateRange -/* 80358828 28 1C 00 00 */ cmplwi r28, 0 -/* 8035882C 41 82 00 0C */ beq lbl_80358838 -/* 80358830 7F 80 E3 78 */ mr r0, r28 -/* 80358834 48 00 00 0C */ b lbl_80358840 -lbl_80358838: -/* 80358838 3C 60 80 35 */ lis r3, __CARDDefaultApiCallback@ha /* 0x80352A30@ha */ -/* 8035883C 38 03 2A 30 */ addi r0, r3, __CARDDefaultApiCallback@l /* 0x80352A30@l */ -lbl_80358840: -/* 80358840 80 61 00 1C */ lwz r3, 0x1c(r1) -/* 80358844 90 03 00 D0 */ stw r0, 0xd0(r3) -/* 80358848 80 61 00 1C */ lwz r3, 0x1c(r1) -/* 8035884C 80 9D 00 08 */ lwz r4, 8(r29) -/* 80358850 80 A3 00 0C */ lwz r5, 0xc(r3) -/* 80358854 38 05 FF FF */ addi r0, r5, -1 -/* 80358858 7C 88 00 38 */ and r8, r4, r0 -/* 8035885C 7C 68 28 50 */ subf r3, r8, r5 -/* 80358860 7C 1F 18 00 */ cmpw r31, r3 -/* 80358864 40 80 00 08 */ bge lbl_8035886C -/* 80358868 7F E3 FB 78 */ mr r3, r31 -lbl_8035886C: -/* 8035886C A0 1D 00 10 */ lhz r0, 0x10(r29) -/* 80358870 3C 80 80 36 */ lis r4, ReadCallback@ha /* 0x80358658@ha */ -/* 80358874 3B E3 00 00 */ addi r31, r3, 0 -/* 80358878 80 7D 00 00 */ lwz r3, 0(r29) -/* 8035887C 7C 05 01 D6 */ mullw r0, r5, r0 -/* 80358880 38 E4 86 58 */ addi r7, r4, ReadCallback@l /* 0x80358658@l */ -/* 80358884 38 BF 00 00 */ addi r5, r31, 0 -/* 80358888 38 DE 00 00 */ addi r6, r30, 0 -/* 8035888C 7C 88 02 14 */ add r4, r8, r0 -/* 80358890 4B FF C9 D1 */ bl __CARDRead -/* 80358894 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80358898 40 80 00 10 */ bge lbl_803588A8 -/* 8035889C 80 61 00 1C */ lwz r3, 0x1c(r1) -/* 803588A0 7F A4 EB 78 */ mr r4, r29 -/* 803588A4 4B FF B3 C9 */ bl __CARDPutControlBlock -lbl_803588A8: -/* 803588A8 7F A3 EB 78 */ mr r3, r29 -lbl_803588AC: -/* 803588AC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 803588B0 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 803588B4 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 803588B8 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 803588BC 83 81 00 20 */ lwz r28, 0x20(r1) -/* 803588C0 38 21 00 30 */ addi r1, r1, 0x30 -/* 803588C4 7C 08 03 A6 */ mtlr r0 -/* 803588C8 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDStat/CARDGetStatus.s b/asm/dolphin/card/CARDStat/CARDGetStatus.s deleted file mode 100644 index b80edccac2..0000000000 --- a/asm/dolphin/card/CARDStat/CARDGetStatus.s +++ /dev/null @@ -1,75 +0,0 @@ -lbl_80358E88: -/* 80358E88 7C 08 02 A6 */ mflr r0 -/* 80358E8C 90 01 00 04 */ stw r0, 4(r1) -/* 80358E90 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80358E94 93 E1 00 24 */ stw r31, 0x24(r1) -/* 80358E98 3B E5 00 00 */ addi r31, r5, 0 -/* 80358E9C 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80358EA0 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 80358EA4 7C 9D 23 79 */ or. r29, r4, r4 -/* 80358EA8 41 80 00 0C */ blt lbl_80358EB4 -/* 80358EAC 2C 1D 00 7F */ cmpwi r29, 0x7f -/* 80358EB0 41 80 00 0C */ blt lbl_80358EBC -lbl_80358EB4: -/* 80358EB4 38 60 FF 80 */ li r3, -128 -/* 80358EB8 48 00 00 C8 */ b lbl_80358F80 -lbl_80358EBC: -/* 80358EBC 38 81 00 14 */ addi r4, r1, 0x14 -/* 80358EC0 4B FF AC F5 */ bl __CARDGetControlBlock -/* 80358EC4 2C 03 00 00 */ cmpwi r3, 0 -/* 80358EC8 40 80 00 08 */ bge lbl_80358ED0 -/* 80358ECC 48 00 00 B4 */ b lbl_80358F80 -lbl_80358ED0: -/* 80358ED0 80 61 00 14 */ lwz r3, 0x14(r1) -/* 80358ED4 4B FF C8 A9 */ bl __CARDGetDirBlock -/* 80358ED8 57 A0 30 32 */ slwi r0, r29, 6 -/* 80358EDC 7F A3 02 14 */ add r29, r3, r0 -/* 80358EE0 80 61 00 14 */ lwz r3, 0x14(r1) -/* 80358EE4 7F A4 EB 78 */ mr r4, r29 -/* 80358EE8 4B FF EF BD */ bl __CARDIsReadable -/* 80358EEC 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80358EF0 41 80 00 84 */ blt lbl_80358F74 -/* 80358EF4 38 9D 00 00 */ addi r4, r29, 0 -/* 80358EF8 38 7F 00 28 */ addi r3, r31, 0x28 -/* 80358EFC 38 A0 00 04 */ li r5, 4 -/* 80358F00 4B CA A6 41 */ bl memcpy -/* 80358F04 38 7F 00 2C */ addi r3, r31, 0x2c -/* 80358F08 38 9D 00 04 */ addi r4, r29, 4 -/* 80358F0C 38 A0 00 02 */ li r5, 2 -/* 80358F10 4B CA A6 31 */ bl memcpy -/* 80358F14 80 A1 00 14 */ lwz r5, 0x14(r1) -/* 80358F18 7F E3 FB 78 */ mr r3, r31 -/* 80358F1C A0 DD 00 38 */ lhz r6, 0x38(r29) -/* 80358F20 38 9D 00 08 */ addi r4, r29, 8 -/* 80358F24 80 05 00 0C */ lwz r0, 0xc(r5) -/* 80358F28 38 A0 00 20 */ li r5, 0x20 -/* 80358F2C 7C 06 01 D6 */ mullw r0, r6, r0 -/* 80358F30 90 1F 00 20 */ stw r0, 0x20(r31) -/* 80358F34 4B CA A6 0D */ bl memcpy -/* 80358F38 80 1D 00 28 */ lwz r0, 0x28(r29) -/* 80358F3C 38 7D 00 00 */ addi r3, r29, 0 -/* 80358F40 38 9F 00 00 */ addi r4, r31, 0 -/* 80358F44 90 1F 00 24 */ stw r0, 0x24(r31) -/* 80358F48 88 1D 00 07 */ lbz r0, 7(r29) -/* 80358F4C 98 1F 00 2E */ stb r0, 0x2e(r31) -/* 80358F50 80 1D 00 2C */ lwz r0, 0x2c(r29) -/* 80358F54 90 1F 00 30 */ stw r0, 0x30(r31) -/* 80358F58 A0 1D 00 30 */ lhz r0, 0x30(r29) -/* 80358F5C B0 1F 00 34 */ sth r0, 0x34(r31) -/* 80358F60 A0 1D 00 32 */ lhz r0, 0x32(r29) -/* 80358F64 B0 1F 00 36 */ sth r0, 0x36(r31) -/* 80358F68 80 1D 00 3C */ lwz r0, 0x3c(r29) -/* 80358F6C 90 1F 00 38 */ stw r0, 0x38(r31) -/* 80358F70 4B FF FD 21 */ bl UpdateIconOffsets -lbl_80358F74: -/* 80358F74 80 61 00 14 */ lwz r3, 0x14(r1) -/* 80358F78 7F C4 F3 78 */ mr r4, r30 -/* 80358F7C 4B FF AC F1 */ bl __CARDPutControlBlock -lbl_80358F80: -/* 80358F80 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80358F84 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 80358F88 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 80358F8C 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 80358F90 38 21 00 28 */ addi r1, r1, 0x28 -/* 80358F94 7C 08 03 A6 */ mtlr r0 -/* 80358F98 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDStat/CARDSetStatusAsync.s b/asm/dolphin/card/CARDStat/CARDSetStatusAsync.s deleted file mode 100644 index 2d6600d80a..0000000000 --- a/asm/dolphin/card/CARDStat/CARDSetStatusAsync.s +++ /dev/null @@ -1,102 +0,0 @@ -lbl_80358F9C: -/* 80358F9C 7C 08 02 A6 */ mflr r0 -/* 80358FA0 90 01 00 04 */ stw r0, 4(r1) -/* 80358FA4 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80358FA8 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80358FAC 7C 9F 23 79 */ or. r31, r4, r4 -/* 80358FB0 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80358FB4 3B C6 00 00 */ addi r30, r6, 0 -/* 80358FB8 93 A1 00 24 */ stw r29, 0x24(r1) -/* 80358FBC 3B A5 00 00 */ addi r29, r5, 0 -/* 80358FC0 93 81 00 20 */ stw r28, 0x20(r1) -/* 80358FC4 3B 83 00 00 */ addi r28, r3, 0 -/* 80358FC8 41 80 00 40 */ blt lbl_80359008 -/* 80358FCC 2C 1F 00 7F */ cmpwi r31, 0x7f -/* 80358FD0 40 80 00 38 */ bge lbl_80359008 -/* 80358FD4 80 7D 00 30 */ lwz r3, 0x30(r29) -/* 80358FD8 3C 03 00 01 */ addis r0, r3, 1 -/* 80358FDC 28 00 FF FF */ cmplwi r0, 0xffff -/* 80358FE0 41 82 00 0C */ beq lbl_80358FEC -/* 80358FE4 28 03 02 00 */ cmplwi r3, 0x200 -/* 80358FE8 40 80 00 20 */ bge lbl_80359008 -lbl_80358FEC: -/* 80358FEC 80 7D 00 38 */ lwz r3, 0x38(r29) -/* 80358FF0 3C 03 00 01 */ addis r0, r3, 1 -/* 80358FF4 28 00 FF FF */ cmplwi r0, 0xffff -/* 80358FF8 41 82 00 18 */ beq lbl_80359010 -/* 80358FFC 54 60 04 FE */ clrlwi r0, r3, 0x13 -/* 80359000 28 00 1F C0 */ cmplwi r0, 0x1fc0 -/* 80359004 40 81 00 0C */ ble lbl_80359010 -lbl_80359008: -/* 80359008 38 60 FF 80 */ li r3, -128 -/* 8035900C 48 00 00 E4 */ b lbl_803590F0 -lbl_80359010: -/* 80359010 38 7C 00 00 */ addi r3, r28, 0 -/* 80359014 38 81 00 18 */ addi r4, r1, 0x18 -/* 80359018 4B FF AB 9D */ bl __CARDGetControlBlock -/* 8035901C 2C 03 00 00 */ cmpwi r3, 0 -/* 80359020 40 80 00 08 */ bge lbl_80359028 -/* 80359024 48 00 00 CC */ b lbl_803590F0 -lbl_80359028: -/* 80359028 80 61 00 18 */ lwz r3, 0x18(r1) -/* 8035902C 4B FF C7 51 */ bl __CARDGetDirBlock -/* 80359030 57 E0 30 32 */ slwi r0, r31, 6 -/* 80359034 7F E3 02 14 */ add r31, r3, r0 -/* 80359038 80 61 00 18 */ lwz r3, 0x18(r1) -/* 8035903C 7F E4 FB 78 */ mr r4, r31 -/* 80359040 4B FF ED 31 */ bl __CARDIsWritable -/* 80359044 7C 64 1B 79 */ or. r4, r3, r3 -/* 80359048 40 80 00 10 */ bge lbl_80359058 -/* 8035904C 80 61 00 18 */ lwz r3, 0x18(r1) -/* 80359050 4B FF AC 1D */ bl __CARDPutControlBlock -/* 80359054 48 00 00 9C */ b lbl_803590F0 -lbl_80359058: -/* 80359058 88 1D 00 2E */ lbz r0, 0x2e(r29) -/* 8035905C 38 7F 00 00 */ addi r3, r31, 0 -/* 80359060 38 9D 00 00 */ addi r4, r29, 0 -/* 80359064 98 1F 00 07 */ stb r0, 7(r31) -/* 80359068 80 1D 00 30 */ lwz r0, 0x30(r29) -/* 8035906C 90 1F 00 2C */ stw r0, 0x2c(r31) -/* 80359070 A0 1D 00 34 */ lhz r0, 0x34(r29) -/* 80359074 B0 1F 00 30 */ sth r0, 0x30(r31) -/* 80359078 A0 1D 00 36 */ lhz r0, 0x36(r29) -/* 8035907C B0 1F 00 32 */ sth r0, 0x32(r31) -/* 80359080 80 1D 00 38 */ lwz r0, 0x38(r29) -/* 80359084 90 1F 00 3C */ stw r0, 0x3c(r31) -/* 80359088 4B FF FC 09 */ bl UpdateIconOffsets -/* 8035908C 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 80359090 3C 03 00 01 */ addis r0, r3, 1 -/* 80359094 28 00 FF FF */ cmplwi r0, 0xffff -/* 80359098 40 82 00 14 */ bne lbl_803590AC -/* 8035909C A0 1F 00 32 */ lhz r0, 0x32(r31) -/* 803590A0 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d -/* 803590A4 60 00 00 01 */ ori r0, r0, 1 -/* 803590A8 B0 1F 00 32 */ sth r0, 0x32(r31) -lbl_803590AC: -/* 803590AC 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 803590B0 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */ -/* 803590B4 54 1D F0 BE */ srwi r29, r0, 2 -/* 803590B8 4B FE 96 45 */ bl OSGetTime -/* 803590BC 38 DD 00 00 */ addi r6, r29, 0 -/* 803590C0 38 A0 00 00 */ li r5, 0 -/* 803590C4 48 00 92 61 */ bl __div2i -/* 803590C8 90 9F 00 28 */ stw r4, 0x28(r31) -/* 803590CC 38 7C 00 00 */ addi r3, r28, 0 -/* 803590D0 38 9E 00 00 */ addi r4, r30, 0 -/* 803590D4 4B FF C8 49 */ bl __CARDUpdateDir -/* 803590D8 7C 7C 1B 79 */ or. r28, r3, r3 -/* 803590DC 40 80 00 10 */ bge lbl_803590EC -/* 803590E0 80 61 00 18 */ lwz r3, 0x18(r1) -/* 803590E4 7F 84 E3 78 */ mr r4, r28 -/* 803590E8 4B FF AB 85 */ bl __CARDPutControlBlock -lbl_803590EC: -/* 803590EC 7F 83 E3 78 */ mr r3, r28 -lbl_803590F0: -/* 803590F0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 803590F4 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 803590F8 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 803590FC 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 80359100 83 81 00 20 */ lwz r28, 0x20(r1) -/* 80359104 38 21 00 30 */ addi r1, r1, 0x30 -/* 80359108 7C 08 03 A6 */ mtlr r0 -/* 8035910C 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDUnlock/DoneCallback.s b/asm/dolphin/card/CARDUnlock/DoneCallback.s deleted file mode 100644 index ff38d7b7b2..0000000000 --- a/asm/dolphin/card/CARDUnlock/DoneCallback.s +++ /dev/null @@ -1,212 +0,0 @@ -lbl_80354E60: -/* 80354E60 7C 08 02 A6 */ mflr r0 -/* 80354E64 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80354E68 90 01 00 04 */ stw r0, 4(r1) -/* 80354E6C 38 84 CB C0 */ addi r4, r4, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80354E70 38 04 00 30 */ addi r0, r4, 0x30 -/* 80354E74 94 21 FF 78 */ stwu r1, -0x88(r1) -/* 80354E78 7C 00 18 40 */ cmplw r0, r3 -/* 80354E7C 93 E1 00 84 */ stw r31, 0x84(r1) -/* 80354E80 3B E0 00 00 */ li r31, 0 -/* 80354E84 93 C1 00 80 */ stw r30, 0x80(r1) -/* 80354E88 93 A1 00 7C */ stw r29, 0x7c(r1) -/* 80354E8C 3B A4 00 00 */ addi r29, r4, 0 -/* 80354E90 93 81 00 78 */ stw r28, 0x78(r1) -/* 80354E94 41 82 00 20 */ beq lbl_80354EB4 -/* 80354E98 38 04 01 40 */ addi r0, r4, 0x140 -/* 80354E9C 7C 00 18 40 */ cmplw r0, r3 -/* 80354EA0 38 84 01 10 */ addi r4, r4, 0x110 -/* 80354EA4 3B A4 00 00 */ addi r29, r4, 0 -/* 80354EA8 3B E0 00 01 */ li r31, 1 -/* 80354EAC 41 82 00 08 */ beq lbl_80354EB4 -/* 80354EB0 3B E0 00 02 */ li r31, 2 -lbl_80354EB4: -/* 80354EB4 80 7D 00 80 */ lwz r3, 0x80(r29) -/* 80354EB8 38 03 00 2F */ addi r0, r3, 0x2f -/* 80354EBC 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a -/* 80354EC0 83 C3 00 20 */ lwz r30, 0x20(r3) -/* 80354EC4 4B FF F3 11 */ bl DummyLen -/* 80354EC8 80 1D 00 2C */ lwz r0, 0x2c(r29) -/* 80354ECC 3B 83 00 00 */ addi r28, r3, 0 -/* 80354ED0 38 DC 00 00 */ addi r6, r28, 0 -/* 80354ED4 7F C0 02 78 */ xor r0, r30, r0 -/* 80354ED8 54 04 00 1E */ rlwinm r4, r0, 0, 0, 0xf -/* 80354EDC 38 7F 00 00 */ addi r3, r31, 0 -/* 80354EE0 38 A1 00 34 */ addi r5, r1, 0x34 -/* 80354EE4 38 E0 00 01 */ li r7, 1 -/* 80354EE8 4B FF F1 A9 */ bl ReadArrayUnlock -/* 80354EEC 2C 03 00 00 */ cmpwi r3, 0 -/* 80354EF0 40 80 00 1C */ bge lbl_80354F0C -/* 80354EF4 7F E3 FB 78 */ mr r3, r31 -/* 80354EF8 4B FE F2 25 */ bl EXIUnlock -/* 80354EFC 38 7F 00 00 */ addi r3, r31, 0 -/* 80354F00 38 80 FF FD */ li r4, -3 -/* 80354F04 48 00 21 19 */ bl __CARDMountCallback -/* 80354F08 48 00 02 5C */ b lbl_80355164 -lbl_80354F0C: -/* 80354F0C 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 80354F10 38 60 00 00 */ li r3, 0 -/* 80354F14 80 1D 00 2C */ lwz r0, 0x2c(r29) -/* 80354F18 7C 9C 22 14 */ add r4, r28, r4 -/* 80354F1C 38 84 00 04 */ addi r4, r4, 4 -/* 80354F20 54 84 18 38 */ slwi r4, r4, 3 -/* 80354F24 38 84 00 01 */ addi r4, r4, 1 -/* 80354F28 28 04 00 00 */ cmplwi r4, 0 -/* 80354F2C 40 81 01 68 */ ble lbl_80355094 -/* 80354F30 28 04 00 08 */ cmplwi r4, 8 -/* 80354F34 38 C4 FF F8 */ addi r6, r4, -8 -/* 80354F38 40 81 01 24 */ ble lbl_8035505C -/* 80354F3C 38 A6 00 07 */ addi r5, r6, 7 -/* 80354F40 54 A5 E8 FE */ srwi r5, r5, 3 -/* 80354F44 28 06 00 00 */ cmplwi r6, 0 -/* 80354F48 7C A9 03 A6 */ mtctr r5 -/* 80354F4C 40 81 01 10 */ ble lbl_8035505C -lbl_80354F50: -/* 80354F50 54 05 38 30 */ slwi r5, r0, 7 -/* 80354F54 54 06 78 20 */ slwi r6, r0, 0xf -/* 80354F58 7C 05 2A 78 */ xor r5, r0, r5 -/* 80354F5C 7C C5 2A 78 */ xor r5, r6, r5 -/* 80354F60 54 07 B8 10 */ slwi r7, r0, 0x17 -/* 80354F64 7C E5 2A 38 */ eqv r5, r7, r5 -/* 80354F68 54 06 08 3C */ slwi r6, r0, 1 -/* 80354F6C 54 A0 17 BC */ rlwinm r0, r5, 2, 0x1e, 0x1e -/* 80354F70 7C C7 03 78 */ or r7, r6, r0 -/* 80354F74 54 E0 38 30 */ slwi r0, r7, 7 -/* 80354F78 54 E5 78 20 */ slwi r5, r7, 0xf -/* 80354F7C 7C E0 02 78 */ xor r0, r7, r0 -/* 80354F80 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354F84 7C A0 02 78 */ xor r0, r5, r0 -/* 80354F88 7C C0 02 38 */ eqv r0, r6, r0 -/* 80354F8C 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e -/* 80354F90 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 80354F94 55 00 38 30 */ slwi r0, r8, 7 -/* 80354F98 55 05 78 20 */ slwi r5, r8, 0xf -/* 80354F9C 7D 00 02 78 */ xor r0, r8, r0 -/* 80354FA0 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 80354FA4 7C A0 02 78 */ xor r0, r5, r0 -/* 80354FA8 7C C0 02 38 */ eqv r0, r6, r0 -/* 80354FAC 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e -/* 80354FB0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 80354FB4 54 E0 38 30 */ slwi r0, r7, 7 -/* 80354FB8 54 E5 78 20 */ slwi r5, r7, 0xf -/* 80354FBC 7C E0 02 78 */ xor r0, r7, r0 -/* 80354FC0 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354FC4 7C A0 02 78 */ xor r0, r5, r0 -/* 80354FC8 7C C0 02 38 */ eqv r0, r6, r0 -/* 80354FCC 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e -/* 80354FD0 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 80354FD4 55 00 38 30 */ slwi r0, r8, 7 -/* 80354FD8 55 05 78 20 */ slwi r5, r8, 0xf -/* 80354FDC 7D 00 02 78 */ xor r0, r8, r0 -/* 80354FE0 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 80354FE4 7C A0 02 78 */ xor r0, r5, r0 -/* 80354FE8 7C C0 02 38 */ eqv r0, r6, r0 -/* 80354FEC 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e -/* 80354FF0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 80354FF4 54 E0 38 30 */ slwi r0, r7, 7 -/* 80354FF8 54 E5 78 20 */ slwi r5, r7, 0xf -/* 80354FFC 7C E0 02 78 */ xor r0, r7, r0 -/* 80355000 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80355004 7C A0 02 78 */ xor r0, r5, r0 -/* 80355008 7C C0 02 38 */ eqv r0, r6, r0 -/* 8035500C 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e -/* 80355010 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 80355014 55 00 38 30 */ slwi r0, r8, 7 -/* 80355018 55 05 78 20 */ slwi r5, r8, 0xf -/* 8035501C 7D 00 02 78 */ xor r0, r8, r0 -/* 80355020 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 80355024 7C A0 02 78 */ xor r0, r5, r0 -/* 80355028 7C C0 02 38 */ eqv r0, r6, r0 -/* 8035502C 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e -/* 80355030 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 80355034 54 E0 38 30 */ slwi r0, r7, 7 -/* 80355038 54 E5 78 20 */ slwi r5, r7, 0xf -/* 8035503C 7C E0 02 78 */ xor r0, r7, r0 -/* 80355040 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80355044 7C A0 02 78 */ xor r0, r5, r0 -/* 80355048 7C C0 02 38 */ eqv r0, r6, r0 -/* 8035504C 54 00 17 BC */ rlwinm r0, r0, 2, 0x1e, 0x1e -/* 80355050 50 E0 08 3A */ rlwimi r0, r7, 1, 0, 0x1d -/* 80355054 38 63 00 08 */ addi r3, r3, 8 -/* 80355058 42 00 FE F8 */ bdnz lbl_80354F50 -lbl_8035505C: -/* 8035505C 7C A3 20 50 */ subf r5, r3, r4 -/* 80355060 7C 03 20 40 */ cmplw r3, r4 -/* 80355064 7C A9 03 A6 */ mtctr r5 -/* 80355068 40 80 00 2C */ bge lbl_80355094 -lbl_8035506C: -/* 8035506C 54 03 38 30 */ slwi r3, r0, 7 -/* 80355070 54 04 78 20 */ slwi r4, r0, 0xf -/* 80355074 7C 03 1A 78 */ xor r3, r0, r3 -/* 80355078 54 05 B8 10 */ slwi r5, r0, 0x17 -/* 8035507C 7C 83 1A 78 */ xor r3, r4, r3 -/* 80355080 7C A3 1A 38 */ eqv r3, r5, r3 -/* 80355084 54 04 08 3C */ slwi r4, r0, 1 -/* 80355088 54 60 17 BC */ rlwinm r0, r3, 2, 0x1e, 0x1e -/* 8035508C 7C 80 03 78 */ or r0, r4, r0 -/* 80355090 42 00 FF DC */ bdnz lbl_8035506C -lbl_80355094: -/* 80355094 54 03 38 30 */ slwi r3, r0, 7 -/* 80355098 54 04 78 20 */ slwi r4, r0, 0xf -/* 8035509C 7C 03 1A 78 */ xor r3, r0, r3 -/* 803550A0 54 05 B8 10 */ slwi r5, r0, 0x17 -/* 803550A4 7C 83 1A 78 */ xor r3, r4, r3 -/* 803550A8 7C A3 1A 38 */ eqv r3, r5, r3 -/* 803550AC 54 63 0F FE */ srwi r3, r3, 0x1f -/* 803550B0 7C 00 1B 78 */ or r0, r0, r3 -/* 803550B4 90 1D 00 2C */ stw r0, 0x2c(r29) -/* 803550B8 4B FF F1 1D */ bl DummyLen -/* 803550BC 80 1D 00 2C */ lwz r0, 0x2c(r29) -/* 803550C0 57 C4 80 1E */ slwi r4, r30, 0x10 -/* 803550C4 38 C3 00 00 */ addi r6, r3, 0 -/* 803550C8 7C 80 02 78 */ xor r0, r4, r0 -/* 803550CC 54 04 00 1E */ rlwinm r4, r0, 0, 0, 0xf -/* 803550D0 38 7F 00 00 */ addi r3, r31, 0 -/* 803550D4 38 A1 00 34 */ addi r5, r1, 0x34 -/* 803550D8 38 E0 00 01 */ li r7, 1 -/* 803550DC 4B FF EF B5 */ bl ReadArrayUnlock -/* 803550E0 2C 03 00 00 */ cmpwi r3, 0 -/* 803550E4 40 80 00 1C */ bge lbl_80355100 -/* 803550E8 7F E3 FB 78 */ mr r3, r31 -/* 803550EC 4B FE F0 31 */ bl EXIUnlock -/* 803550F0 38 7F 00 00 */ addi r3, r31, 0 -/* 803550F4 38 80 FF FD */ li r4, -3 -/* 803550F8 48 00 1F 25 */ bl __CARDMountCallback -/* 803550FC 48 00 00 68 */ b lbl_80355164 -lbl_80355100: -/* 80355100 38 7F 00 00 */ addi r3, r31, 0 -/* 80355104 38 81 00 30 */ addi r4, r1, 0x30 -/* 80355108 4B FF DD 3D */ bl __CARDReadStatus -/* 8035510C 3B 83 00 00 */ addi r28, r3, 0 -/* 80355110 38 7F 00 00 */ addi r3, r31, 0 -/* 80355114 4B FE E4 59 */ bl EXIProbe -/* 80355118 2C 03 00 00 */ cmpwi r3, 0 -/* 8035511C 40 82 00 1C */ bne lbl_80355138 -/* 80355120 7F E3 FB 78 */ mr r3, r31 -/* 80355124 4B FE EF F9 */ bl EXIUnlock -/* 80355128 38 7F 00 00 */ addi r3, r31, 0 -/* 8035512C 38 80 FF FD */ li r4, -3 -/* 80355130 48 00 1E ED */ bl __CARDMountCallback -/* 80355134 48 00 00 30 */ b lbl_80355164 -lbl_80355138: -/* 80355138 2C 1C 00 00 */ cmpwi r28, 0 -/* 8035513C 40 82 00 1C */ bne lbl_80355158 -/* 80355140 88 01 00 30 */ lbz r0, 0x30(r1) -/* 80355144 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 -/* 80355148 40 82 00 10 */ bne lbl_80355158 -/* 8035514C 7F E3 FB 78 */ mr r3, r31 -/* 80355150 4B FE EF CD */ bl EXIUnlock -/* 80355154 3B 80 FF FB */ li r28, -5 -lbl_80355158: -/* 80355158 38 7F 00 00 */ addi r3, r31, 0 -/* 8035515C 38 9C 00 00 */ addi r4, r28, 0 -/* 80355160 48 00 1E BD */ bl __CARDMountCallback -lbl_80355164: -/* 80355164 80 01 00 8C */ lwz r0, 0x8c(r1) -/* 80355168 83 E1 00 84 */ lwz r31, 0x84(r1) -/* 8035516C 83 C1 00 80 */ lwz r30, 0x80(r1) -/* 80355170 83 A1 00 7C */ lwz r29, 0x7c(r1) -/* 80355174 83 81 00 78 */ lwz r28, 0x78(r1) -/* 80355178 38 21 00 88 */ addi r1, r1, 0x88 -/* 8035517C 7C 08 03 A6 */ mtlr r0 -/* 80355180 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDUnlock/DummyLen.s b/asm/dolphin/card/CARDUnlock/DummyLen.s deleted file mode 100644 index 614994ff59..0000000000 --- a/asm/dolphin/card/CARDUnlock/DummyLen.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_803541D4: -/* 803541D4 7C 08 02 A6 */ mflr r0 -/* 803541D8 90 01 00 04 */ stw r0, 4(r1) -/* 803541DC 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803541E0 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803541E4 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803541E8 3B C0 00 01 */ li r30, 1 -/* 803541EC 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803541F0 3B A0 00 00 */ li r29, 0 -/* 803541F4 4B FE E5 21 */ bl OSGetTick -/* 803541F8 90 6D 84 E8 */ stw r3, next(r13) -/* 803541FC 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */ -/* 80354200 3B E3 4E 6D */ addi r31, r3, 0x4E6D /* 0x41C64E6D@l */ -/* 80354204 80 0D 84 E8 */ lwz r0, next(r13) -/* 80354208 7C 60 F9 D6 */ mullw r3, r0, r31 -/* 8035420C 38 03 30 39 */ addi r0, r3, 0x3039 -/* 80354210 90 0D 84 E8 */ stw r0, next(r13) -/* 80354214 80 0D 84 E8 */ lwz r0, next(r13) -/* 80354218 54 03 86 FE */ rlwinm r3, r0, 0x10, 0x1b, 0x1f -/* 8035421C 38 63 00 01 */ addi r3, r3, 1 -/* 80354220 48 00 00 40 */ b lbl_80354260 -lbl_80354224: -/* 80354224 4B FE E4 F1 */ bl OSGetTick -/* 80354228 7C 60 F0 30 */ slw r0, r3, r30 -/* 8035422C 3B DE 00 01 */ addi r30, r30, 1 -/* 80354230 28 1E 00 10 */ cmplwi r30, 0x10 -/* 80354234 40 81 00 08 */ ble lbl_8035423C -/* 80354238 3B C0 00 01 */ li r30, 1 -lbl_8035423C: -/* 8035423C 90 0D 84 E8 */ stw r0, next(r13) -/* 80354240 3B BD 00 01 */ addi r29, r29, 1 -/* 80354244 80 0D 84 E8 */ lwz r0, next(r13) -/* 80354248 7C 60 F9 D6 */ mullw r3, r0, r31 -/* 8035424C 38 03 30 39 */ addi r0, r3, 0x3039 -/* 80354250 90 0D 84 E8 */ stw r0, next(r13) -/* 80354254 80 0D 84 E8 */ lwz r0, next(r13) -/* 80354258 54 03 86 FE */ rlwinm r3, r0, 0x10, 0x1b, 0x1f -/* 8035425C 38 63 00 01 */ addi r3, r3, 1 -lbl_80354260: -/* 80354260 2C 03 00 04 */ cmpwi r3, 4 -/* 80354264 40 80 00 0C */ bge lbl_80354270 -/* 80354268 28 1D 00 0A */ cmplwi r29, 0xa -/* 8035426C 41 80 FF B8 */ blt lbl_80354224 -lbl_80354270: -/* 80354270 2C 03 00 04 */ cmpwi r3, 4 -/* 80354274 40 80 00 08 */ bge lbl_8035427C -/* 80354278 38 60 00 04 */ li r3, 4 -lbl_8035427C: -/* 8035427C 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80354280 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 80354284 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 80354288 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 8035428C 38 21 00 28 */ addi r1, r1, 0x28 -/* 80354290 7C 08 03 A6 */ mtlr r0 -/* 80354294 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDUnlock/InitCallback.s b/asm/dolphin/card/CARDUnlock/InitCallback.s deleted file mode 100644 index 2be8d62bcc..0000000000 --- a/asm/dolphin/card/CARDUnlock/InitCallback.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_80354DF0: -/* 80354DF0 7C 08 02 A6 */ mflr r0 -/* 80354DF4 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80354DF8 90 01 00 04 */ stw r0, 4(r1) -/* 80354DFC 38 84 CB C0 */ addi r4, r4, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80354E00 38 04 00 30 */ addi r0, r4, 0x30 -/* 80354E04 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80354E08 7C 00 18 40 */ cmplw r0, r3 -/* 80354E0C 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80354E10 41 82 00 10 */ beq lbl_80354E20 -/* 80354E14 38 04 01 40 */ addi r0, r4, 0x140 -/* 80354E18 7C 00 18 40 */ cmplw r0, r3 -/* 80354E1C 38 84 01 10 */ addi r4, r4, 0x110 -lbl_80354E20: -/* 80354E20 83 E4 00 80 */ lwz r31, 0x80(r4) -/* 80354E24 3C 60 FF 00 */ lis r3, 0xff00 -/* 80354E28 4B FF D6 41 */ bl DSPSendMailToDSP -lbl_80354E2C: -/* 80354E2C 4B FF D6 05 */ bl DSPCheckMailToDSP -/* 80354E30 28 03 00 00 */ cmplwi r3, 0 -/* 80354E34 40 82 FF F8 */ bne lbl_80354E2C -/* 80354E38 7F E3 FB 78 */ mr r3, r31 -/* 80354E3C 4B FF D6 2D */ bl DSPSendMailToDSP -lbl_80354E40: -/* 80354E40 4B FF D5 F1 */ bl DSPCheckMailToDSP -/* 80354E44 28 03 00 00 */ cmplwi r3, 0 -/* 80354E48 40 82 FF F8 */ bne lbl_80354E40 -/* 80354E4C 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80354E50 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80354E54 38 21 00 18 */ addi r1, r1, 0x18 -/* 80354E58 7C 08 03 A6 */ mtlr r0 -/* 80354E5C 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDUnlock/__CARDUnlock.s b/asm/dolphin/card/CARDUnlock/__CARDUnlock.s deleted file mode 100644 index d6df853015..0000000000 --- a/asm/dolphin/card/CARDUnlock/__CARDUnlock.s +++ /dev/null @@ -1,745 +0,0 @@ -lbl_80354298: -/* 80354298 7C 08 02 A6 */ mflr r0 -/* 8035429C 90 01 00 04 */ stw r0, 4(r1) -/* 803542A0 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 803542A4 BE C1 00 F8 */ stmw r22, 0xf8(r1) -/* 803542A8 3B 03 00 00 */ addi r24, r3, 0 -/* 803542AC 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 803542B0 1C B8 01 10 */ mulli r5, r24, 0x110 -/* 803542B4 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 803542B8 7F E0 2A 14 */ add r31, r0, r5 -/* 803542BC 3A E4 00 00 */ addi r23, r4, 0 -/* 803542C0 3B DF 00 30 */ addi r30, r31, 0x30 -/* 803542C4 80 7F 00 80 */ lwz r3, 0x80(r31) -/* 803542C8 38 03 00 2F */ addi r0, r3, 0x2f -/* 803542CC 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a -/* 803542D0 3B A3 00 00 */ addi r29, r3, 0 -/* 803542D4 3A DC 00 20 */ addi r22, r28, 0x20 -/* 803542D8 4B FE E4 3D */ bl OSGetTick -/* 803542DC 90 6D 84 E8 */ stw r3, next(r13) -/* 803542E0 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */ -/* 803542E4 3C A0 7F ED */ lis r5, 0x7FED /* 0x7FEC8000@ha */ -/* 803542E8 80 8D 84 E8 */ lwz r4, next(r13) -/* 803542EC 38 03 4E 6D */ addi r0, r3, 0x4E6D /* 0x41C64E6D@l */ -/* 803542F0 3B 25 80 00 */ addi r25, r5, 0x8000 /* 0x7FEC8000@l */ -/* 803542F4 7C 64 01 D6 */ mullw r3, r4, r0 -/* 803542F8 38 03 30 39 */ addi r0, r3, 0x3039 -/* 803542FC 90 0D 84 E8 */ stw r0, next(r13) -/* 80354300 80 0D 84 E8 */ lwz r0, next(r13) -/* 80354304 54 00 84 7E */ rlwinm r0, r0, 0x10, 0x11, 0x1f -/* 80354308 7F 39 03 78 */ or r25, r25, r0 -/* 8035430C 57 39 00 26 */ rlwinm r25, r25, 0, 0, 0x13 -/* 80354310 4B FF FE C5 */ bl DummyLen -/* 80354314 3B 43 00 00 */ addi r26, r3, 0 -/* 80354318 38 DA 00 00 */ addi r6, r26, 0 -/* 8035431C 38 78 00 00 */ addi r3, r24, 0 -/* 80354320 38 99 00 00 */ addi r4, r25, 0 -/* 80354324 38 A1 00 A4 */ addi r5, r1, 0xa4 -/* 80354328 38 E0 00 00 */ li r7, 0 -/* 8035432C 4B FF FD 65 */ bl ReadArrayUnlock -/* 80354330 2C 03 00 00 */ cmpwi r3, 0 -/* 80354334 40 80 00 0C */ bge lbl_80354340 -/* 80354338 38 60 FF FD */ li r3, -3 -/* 8035433C 48 00 0A A0 */ b lbl_80354DDC -lbl_80354340: -/* 80354340 57 43 18 38 */ slwi r3, r26, 3 -/* 80354344 38 83 00 01 */ addi r4, r3, 1 -/* 80354348 28 04 00 00 */ cmplwi r4, 0 -/* 8035434C 38 60 00 00 */ li r3, 0 -/* 80354350 40 81 01 68 */ ble lbl_803544B8 -/* 80354354 28 04 00 08 */ cmplwi r4, 8 -/* 80354358 38 A4 FF F8 */ addi r5, r4, -8 -/* 8035435C 40 81 01 24 */ ble lbl_80354480 -/* 80354360 38 05 00 07 */ addi r0, r5, 7 -/* 80354364 54 00 E8 FE */ srwi r0, r0, 3 -/* 80354368 28 05 00 00 */ cmplwi r5, 0 -/* 8035436C 7C 09 03 A6 */ mtctr r0 -/* 80354370 40 81 01 10 */ ble lbl_80354480 -lbl_80354374: -/* 80354374 57 20 C9 FE */ srwi r0, r25, 7 -/* 80354378 57 25 8B FE */ srwi r5, r25, 0xf -/* 8035437C 7F 20 02 78 */ xor r0, r25, r0 -/* 80354380 7C A0 02 78 */ xor r0, r5, r0 -/* 80354384 57 26 4D FE */ srwi r6, r25, 0x17 -/* 80354388 7C C0 02 38 */ eqv r0, r6, r0 -/* 8035438C 57 25 F8 7E */ srwi r5, r25, 1 -/* 80354390 54 00 F0 42 */ rlwinm r0, r0, 0x1e, 1, 1 -/* 80354394 7C A7 03 78 */ or r7, r5, r0 -/* 80354398 54 E0 C9 FE */ srwi r0, r7, 7 -/* 8035439C 54 E5 8B FE */ srwi r5, r7, 0xf -/* 803543A0 7C E0 02 78 */ xor r0, r7, r0 -/* 803543A4 54 E6 4D FE */ srwi r6, r7, 0x17 -/* 803543A8 7C A0 02 78 */ xor r0, r5, r0 -/* 803543AC 7C C0 02 38 */ eqv r0, r6, r0 -/* 803543B0 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1 -/* 803543B4 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f -/* 803543B8 55 00 C9 FE */ srwi r0, r8, 7 -/* 803543BC 55 05 8B FE */ srwi r5, r8, 0xf -/* 803543C0 7D 00 02 78 */ xor r0, r8, r0 -/* 803543C4 55 06 4D FE */ srwi r6, r8, 0x17 -/* 803543C8 7C A0 02 78 */ xor r0, r5, r0 -/* 803543CC 7C C0 02 38 */ eqv r0, r6, r0 -/* 803543D0 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1 -/* 803543D4 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f -/* 803543D8 54 E0 C9 FE */ srwi r0, r7, 7 -/* 803543DC 54 E5 8B FE */ srwi r5, r7, 0xf -/* 803543E0 7C E0 02 78 */ xor r0, r7, r0 -/* 803543E4 54 E6 4D FE */ srwi r6, r7, 0x17 -/* 803543E8 7C A0 02 78 */ xor r0, r5, r0 -/* 803543EC 7C C0 02 38 */ eqv r0, r6, r0 -/* 803543F0 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1 -/* 803543F4 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f -/* 803543F8 55 00 C9 FE */ srwi r0, r8, 7 -/* 803543FC 55 05 8B FE */ srwi r5, r8, 0xf -/* 80354400 7D 00 02 78 */ xor r0, r8, r0 -/* 80354404 55 06 4D FE */ srwi r6, r8, 0x17 -/* 80354408 7C A0 02 78 */ xor r0, r5, r0 -/* 8035440C 7C C0 02 38 */ eqv r0, r6, r0 -/* 80354410 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1 -/* 80354414 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f -/* 80354418 54 E0 C9 FE */ srwi r0, r7, 7 -/* 8035441C 54 E5 8B FE */ srwi r5, r7, 0xf -/* 80354420 7C E0 02 78 */ xor r0, r7, r0 -/* 80354424 54 E6 4D FE */ srwi r6, r7, 0x17 -/* 80354428 7C A0 02 78 */ xor r0, r5, r0 -/* 8035442C 7C C0 02 38 */ eqv r0, r6, r0 -/* 80354430 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1 -/* 80354434 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f -/* 80354438 55 00 C9 FE */ srwi r0, r8, 7 -/* 8035443C 55 05 8B FE */ srwi r5, r8, 0xf -/* 80354440 7D 00 02 78 */ xor r0, r8, r0 -/* 80354444 55 06 4D FE */ srwi r6, r8, 0x17 -/* 80354448 7C A0 02 78 */ xor r0, r5, r0 -/* 8035444C 7C C0 02 38 */ eqv r0, r6, r0 -/* 80354450 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1 -/* 80354454 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f -/* 80354458 54 E0 C9 FE */ srwi r0, r7, 7 -/* 8035445C 54 E5 8B FE */ srwi r5, r7, 0xf -/* 80354460 7C E0 02 78 */ xor r0, r7, r0 -/* 80354464 54 E6 4D FE */ srwi r6, r7, 0x17 -/* 80354468 7C A0 02 78 */ xor r0, r5, r0 -/* 8035446C 7C C0 02 38 */ eqv r0, r6, r0 -/* 80354470 54 19 F0 42 */ rlwinm r25, r0, 0x1e, 1, 1 -/* 80354474 50 F9 F8 BE */ rlwimi r25, r7, 0x1f, 2, 0x1f -/* 80354478 38 63 00 08 */ addi r3, r3, 8 -/* 8035447C 42 00 FE F8 */ bdnz lbl_80354374 -lbl_80354480: -/* 80354480 7C 03 20 50 */ subf r0, r3, r4 -/* 80354484 7C 03 20 40 */ cmplw r3, r4 -/* 80354488 7C 09 03 A6 */ mtctr r0 -/* 8035448C 40 80 00 2C */ bge lbl_803544B8 -lbl_80354490: -/* 80354490 57 20 C9 FE */ srwi r0, r25, 7 -/* 80354494 57 23 8B FE */ srwi r3, r25, 0xf -/* 80354498 7F 20 02 78 */ xor r0, r25, r0 -/* 8035449C 57 24 4D FE */ srwi r4, r25, 0x17 -/* 803544A0 7C 60 02 78 */ xor r0, r3, r0 -/* 803544A4 7C 80 02 38 */ eqv r0, r4, r0 -/* 803544A8 57 23 F8 7E */ srwi r3, r25, 1 -/* 803544AC 54 00 F0 42 */ rlwinm r0, r0, 0x1e, 1, 1 -/* 803544B0 7C 79 03 78 */ or r25, r3, r0 -/* 803544B4 42 00 FF DC */ bdnz lbl_80354490 -lbl_803544B8: -/* 803544B8 57 20 C9 FE */ srwi r0, r25, 7 -/* 803544BC 57 23 8B FE */ srwi r3, r25, 0xf -/* 803544C0 7F 20 02 78 */ xor r0, r25, r0 -/* 803544C4 57 24 4D FE */ srwi r4, r25, 0x17 -/* 803544C8 7C 60 02 78 */ xor r0, r3, r0 -/* 803544CC 7C 80 02 38 */ eqv r0, r4, r0 -/* 803544D0 54 00 F8 00 */ slwi r0, r0, 0x1f -/* 803544D4 7F 20 03 78 */ or r0, r25, r0 -/* 803544D8 90 1F 00 2C */ stw r0, 0x2c(r31) -/* 803544DC 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 803544E0 4B FF FA 45 */ bl bitrev -/* 803544E4 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 803544E8 4B FF FC ED */ bl DummyLen -/* 803544EC 3B 63 00 00 */ addi r27, r3, 0 -/* 803544F0 38 DB 00 14 */ addi r6, r27, 0x14 -/* 803544F4 38 78 00 00 */ addi r3, r24, 0 -/* 803544F8 38 A1 00 A4 */ addi r5, r1, 0xa4 -/* 803544FC 38 80 00 00 */ li r4, 0 -/* 80354500 38 E0 00 01 */ li r7, 1 -/* 80354504 4B FF FB 8D */ bl ReadArrayUnlock -/* 80354508 2C 03 00 00 */ cmpwi r3, 0 -/* 8035450C 40 80 00 0C */ bge lbl_80354518 -/* 80354510 38 60 FF FD */ li r3, -3 -/* 80354514 48 00 08 C8 */ b lbl_80354DDC -lbl_80354518: -/* 80354518 38 60 00 04 */ li r3, 4 -/* 8035451C 80 FF 00 2C */ lwz r7, 0x2c(r31) -/* 80354520 83 21 00 A4 */ lwz r25, 0xa4(r1) -/* 80354524 7C 69 03 A6 */ mtctr r3 -/* 80354528 83 41 00 A8 */ lwz r26, 0xa8(r1) -/* 8035452C 83 01 00 AC */ lwz r24, 0xac(r1) -/* 80354530 7F 39 3A 78 */ xor r25, r25, r7 -/* 80354534 80 01 00 B0 */ lwz r0, 0xb0(r1) -/* 80354538 80 A1 00 B4 */ lwz r5, 0xb4(r1) -lbl_8035453C: -/* 8035453C 54 E3 38 30 */ slwi r3, r7, 7 -/* 80354540 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354544 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354548 7C 83 1A 78 */ xor r3, r4, r3 -/* 8035454C 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354550 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354554 54 E4 08 3C */ slwi r4, r7, 1 -/* 80354558 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e -/* 8035455C 7C 87 1B 78 */ or r7, r4, r3 -/* 80354560 54 E3 38 30 */ slwi r3, r7, 7 -/* 80354564 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354568 7C E3 1A 78 */ xor r3, r7, r3 -/* 8035456C 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354570 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354574 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354578 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e -/* 8035457C 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d -/* 80354580 55 23 38 30 */ slwi r3, r9, 7 -/* 80354584 55 24 78 20 */ slwi r4, r9, 0xf -/* 80354588 7D 23 1A 78 */ xor r3, r9, r3 -/* 8035458C 55 26 B8 10 */ slwi r6, r9, 0x17 -/* 80354590 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354594 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354598 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 8035459C 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d -/* 803545A0 55 03 38 30 */ slwi r3, r8, 7 -/* 803545A4 55 04 78 20 */ slwi r4, r8, 0xf -/* 803545A8 7D 03 1A 78 */ xor r3, r8, r3 -/* 803545AC 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 803545B0 7C 83 1A 78 */ xor r3, r4, r3 -/* 803545B4 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803545B8 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 803545BC 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 803545C0 54 E3 38 30 */ slwi r3, r7, 7 -/* 803545C4 54 E4 78 20 */ slwi r4, r7, 0xf -/* 803545C8 7C E3 1A 78 */ xor r3, r7, r3 -/* 803545CC 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 803545D0 7C 83 1A 78 */ xor r3, r4, r3 -/* 803545D4 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803545D8 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 803545DC 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 803545E0 55 03 38 30 */ slwi r3, r8, 7 -/* 803545E4 55 04 78 20 */ slwi r4, r8, 0xf -/* 803545E8 7D 03 1A 78 */ xor r3, r8, r3 -/* 803545EC 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 803545F0 7C 83 1A 78 */ xor r3, r4, r3 -/* 803545F4 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803545F8 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 803545FC 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 80354600 54 E3 38 30 */ slwi r3, r7, 7 -/* 80354604 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354608 7C E3 1A 78 */ xor r3, r7, r3 -/* 8035460C 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354610 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354614 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354618 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 8035461C 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 80354620 55 03 38 30 */ slwi r3, r8, 7 -/* 80354624 55 04 78 20 */ slwi r4, r8, 0xf -/* 80354628 7D 03 1A 78 */ xor r3, r8, r3 -/* 8035462C 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 80354630 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354634 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354638 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 8035463C 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 80354640 42 00 FE FC */ bdnz lbl_8035453C -/* 80354644 54 E3 38 30 */ slwi r3, r7, 7 -/* 80354648 54 E4 78 20 */ slwi r4, r7, 0xf -/* 8035464C 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354650 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354654 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354658 7C C3 1A 38 */ eqv r3, r6, r3 -/* 8035465C 54 63 0F FE */ srwi r3, r3, 0x1f -/* 80354660 7C E3 1B 78 */ or r3, r7, r3 -/* 80354664 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 80354668 38 60 00 04 */ li r3, 4 -/* 8035466C 7C 69 03 A6 */ mtctr r3 -/* 80354670 80 FF 00 2C */ lwz r7, 0x2c(r31) -/* 80354674 7F 5A 3A 78 */ xor r26, r26, r7 -lbl_80354678: -/* 80354678 54 E3 38 30 */ slwi r3, r7, 7 -/* 8035467C 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354680 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354684 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354688 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 8035468C 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354690 54 E4 08 3C */ slwi r4, r7, 1 -/* 80354694 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e -/* 80354698 7C 87 1B 78 */ or r7, r4, r3 -/* 8035469C 54 E3 38 30 */ slwi r3, r7, 7 -/* 803546A0 54 E4 78 20 */ slwi r4, r7, 0xf -/* 803546A4 7C E3 1A 78 */ xor r3, r7, r3 -/* 803546A8 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 803546AC 7C 83 1A 78 */ xor r3, r4, r3 -/* 803546B0 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803546B4 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e -/* 803546B8 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d -/* 803546BC 55 23 38 30 */ slwi r3, r9, 7 -/* 803546C0 55 24 78 20 */ slwi r4, r9, 0xf -/* 803546C4 7D 23 1A 78 */ xor r3, r9, r3 -/* 803546C8 55 26 B8 10 */ slwi r6, r9, 0x17 -/* 803546CC 7C 83 1A 78 */ xor r3, r4, r3 -/* 803546D0 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803546D4 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 803546D8 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d -/* 803546DC 55 03 38 30 */ slwi r3, r8, 7 -/* 803546E0 55 04 78 20 */ slwi r4, r8, 0xf -/* 803546E4 7D 03 1A 78 */ xor r3, r8, r3 -/* 803546E8 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 803546EC 7C 83 1A 78 */ xor r3, r4, r3 -/* 803546F0 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803546F4 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 803546F8 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 803546FC 54 E3 38 30 */ slwi r3, r7, 7 -/* 80354700 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354704 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354708 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 8035470C 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354710 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354714 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 80354718 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 8035471C 55 03 38 30 */ slwi r3, r8, 7 -/* 80354720 55 04 78 20 */ slwi r4, r8, 0xf -/* 80354724 7D 03 1A 78 */ xor r3, r8, r3 -/* 80354728 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 8035472C 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354730 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354734 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 80354738 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 8035473C 54 E3 38 30 */ slwi r3, r7, 7 -/* 80354740 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354744 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354748 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 8035474C 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354750 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354754 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 80354758 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 8035475C 55 03 38 30 */ slwi r3, r8, 7 -/* 80354760 55 04 78 20 */ slwi r4, r8, 0xf -/* 80354764 7D 03 1A 78 */ xor r3, r8, r3 -/* 80354768 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 8035476C 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354770 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354774 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 80354778 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 8035477C 42 00 FE FC */ bdnz lbl_80354678 -/* 80354780 54 E3 38 30 */ slwi r3, r7, 7 -/* 80354784 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354788 7C E3 1A 78 */ xor r3, r7, r3 -/* 8035478C 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354790 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354794 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354798 54 63 0F FE */ srwi r3, r3, 0x1f -/* 8035479C 7C E3 1B 78 */ or r3, r7, r3 -/* 803547A0 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 803547A4 38 60 00 04 */ li r3, 4 -/* 803547A8 7C 69 03 A6 */ mtctr r3 -/* 803547AC 80 FF 00 2C */ lwz r7, 0x2c(r31) -/* 803547B0 7F 18 3A 78 */ xor r24, r24, r7 -lbl_803547B4: -/* 803547B4 54 E3 38 30 */ slwi r3, r7, 7 -/* 803547B8 54 E4 78 20 */ slwi r4, r7, 0xf -/* 803547BC 7C E3 1A 78 */ xor r3, r7, r3 -/* 803547C0 7C 83 1A 78 */ xor r3, r4, r3 -/* 803547C4 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 803547C8 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803547CC 54 E4 08 3C */ slwi r4, r7, 1 -/* 803547D0 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e -/* 803547D4 7C 87 1B 78 */ or r7, r4, r3 -/* 803547D8 54 E3 38 30 */ slwi r3, r7, 7 -/* 803547DC 54 E4 78 20 */ slwi r4, r7, 0xf -/* 803547E0 7C E3 1A 78 */ xor r3, r7, r3 -/* 803547E4 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 803547E8 7C 83 1A 78 */ xor r3, r4, r3 -/* 803547EC 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803547F0 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e -/* 803547F4 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d -/* 803547F8 55 23 38 30 */ slwi r3, r9, 7 -/* 803547FC 55 24 78 20 */ slwi r4, r9, 0xf -/* 80354800 7D 23 1A 78 */ xor r3, r9, r3 -/* 80354804 55 26 B8 10 */ slwi r6, r9, 0x17 -/* 80354808 7C 83 1A 78 */ xor r3, r4, r3 -/* 8035480C 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354810 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 80354814 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d -/* 80354818 55 03 38 30 */ slwi r3, r8, 7 -/* 8035481C 55 04 78 20 */ slwi r4, r8, 0xf -/* 80354820 7D 03 1A 78 */ xor r3, r8, r3 -/* 80354824 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 80354828 7C 83 1A 78 */ xor r3, r4, r3 -/* 8035482C 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354830 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 80354834 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 80354838 54 E3 38 30 */ slwi r3, r7, 7 -/* 8035483C 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354840 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354844 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354848 7C 83 1A 78 */ xor r3, r4, r3 -/* 8035484C 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354850 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 80354854 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 80354858 55 03 38 30 */ slwi r3, r8, 7 -/* 8035485C 55 04 78 20 */ slwi r4, r8, 0xf -/* 80354860 7D 03 1A 78 */ xor r3, r8, r3 -/* 80354864 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 80354868 7C 83 1A 78 */ xor r3, r4, r3 -/* 8035486C 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354870 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 80354874 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 80354878 54 E3 38 30 */ slwi r3, r7, 7 -/* 8035487C 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354880 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354884 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354888 7C 83 1A 78 */ xor r3, r4, r3 -/* 8035488C 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354890 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 80354894 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 80354898 55 03 38 30 */ slwi r3, r8, 7 -/* 8035489C 55 04 78 20 */ slwi r4, r8, 0xf -/* 803548A0 7D 03 1A 78 */ xor r3, r8, r3 -/* 803548A4 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 803548A8 7C 83 1A 78 */ xor r3, r4, r3 -/* 803548AC 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803548B0 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 803548B4 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 803548B8 42 00 FE FC */ bdnz lbl_803547B4 -/* 803548BC 54 E3 38 30 */ slwi r3, r7, 7 -/* 803548C0 54 E4 78 20 */ slwi r4, r7, 0xf -/* 803548C4 7C E3 1A 78 */ xor r3, r7, r3 -/* 803548C8 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 803548CC 7C 83 1A 78 */ xor r3, r4, r3 -/* 803548D0 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803548D4 54 63 0F FE */ srwi r3, r3, 0x1f -/* 803548D8 7C E3 1B 78 */ or r3, r7, r3 -/* 803548DC 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 803548E0 38 60 00 04 */ li r3, 4 -/* 803548E4 7C 69 03 A6 */ mtctr r3 -/* 803548E8 80 FF 00 2C */ lwz r7, 0x2c(r31) -/* 803548EC 7C 00 3A 78 */ xor r0, r0, r7 -lbl_803548F0: -/* 803548F0 54 E3 38 30 */ slwi r3, r7, 7 -/* 803548F4 54 E4 78 20 */ slwi r4, r7, 0xf -/* 803548F8 7C E3 1A 78 */ xor r3, r7, r3 -/* 803548FC 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354900 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354904 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354908 54 E4 08 3C */ slwi r4, r7, 1 -/* 8035490C 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e -/* 80354910 7C 87 1B 78 */ or r7, r4, r3 -/* 80354914 54 E3 38 30 */ slwi r3, r7, 7 -/* 80354918 54 E4 78 20 */ slwi r4, r7, 0xf -/* 8035491C 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354920 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354924 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354928 7C C3 1A 38 */ eqv r3, r6, r3 -/* 8035492C 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e -/* 80354930 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d -/* 80354934 55 23 38 30 */ slwi r3, r9, 7 -/* 80354938 55 24 78 20 */ slwi r4, r9, 0xf -/* 8035493C 7D 23 1A 78 */ xor r3, r9, r3 -/* 80354940 55 26 B8 10 */ slwi r6, r9, 0x17 -/* 80354944 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354948 7C C3 1A 38 */ eqv r3, r6, r3 -/* 8035494C 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 80354950 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d -/* 80354954 55 03 38 30 */ slwi r3, r8, 7 -/* 80354958 55 04 78 20 */ slwi r4, r8, 0xf -/* 8035495C 7D 03 1A 78 */ xor r3, r8, r3 -/* 80354960 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 80354964 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354968 7C C3 1A 38 */ eqv r3, r6, r3 -/* 8035496C 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 80354970 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 80354974 54 E3 38 30 */ slwi r3, r7, 7 -/* 80354978 54 E4 78 20 */ slwi r4, r7, 0xf -/* 8035497C 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354980 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354984 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354988 7C C3 1A 38 */ eqv r3, r6, r3 -/* 8035498C 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 80354990 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 80354994 55 03 38 30 */ slwi r3, r8, 7 -/* 80354998 55 04 78 20 */ slwi r4, r8, 0xf -/* 8035499C 7D 03 1A 78 */ xor r3, r8, r3 -/* 803549A0 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 803549A4 7C 83 1A 78 */ xor r3, r4, r3 -/* 803549A8 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803549AC 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 803549B0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 803549B4 54 E3 38 30 */ slwi r3, r7, 7 -/* 803549B8 54 E4 78 20 */ slwi r4, r7, 0xf -/* 803549BC 7C E3 1A 78 */ xor r3, r7, r3 -/* 803549C0 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 803549C4 7C 83 1A 78 */ xor r3, r4, r3 -/* 803549C8 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803549CC 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e -/* 803549D0 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d -/* 803549D4 55 03 38 30 */ slwi r3, r8, 7 -/* 803549D8 55 04 78 20 */ slwi r4, r8, 0xf -/* 803549DC 7D 03 1A 78 */ xor r3, r8, r3 -/* 803549E0 55 06 B8 10 */ slwi r6, r8, 0x17 -/* 803549E4 7C 83 1A 78 */ xor r3, r4, r3 -/* 803549E8 7C C3 1A 38 */ eqv r3, r6, r3 -/* 803549EC 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e -/* 803549F0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d -/* 803549F4 42 00 FE FC */ bdnz lbl_803548F0 -/* 803549F8 54 E3 38 30 */ slwi r3, r7, 7 -/* 803549FC 54 E4 78 20 */ slwi r4, r7, 0xf -/* 80354A00 7C E3 1A 78 */ xor r3, r7, r3 -/* 80354A04 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354A08 54 E6 B8 10 */ slwi r6, r7, 0x17 -/* 80354A0C 7C C3 1A 38 */ eqv r3, r6, r3 -/* 80354A10 54 63 0F FE */ srwi r3, r3, 0x1f -/* 80354A14 7C E3 1B 78 */ or r3, r7, r3 -/* 80354A18 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 80354A1C 57 64 18 38 */ slwi r4, r27, 3 -/* 80354A20 28 04 00 00 */ cmplwi r4, 0 -/* 80354A24 80 DF 00 2C */ lwz r6, 0x2c(r31) -/* 80354A28 38 60 00 00 */ li r3, 0 -/* 80354A2C 7C A5 32 78 */ xor r5, r5, r6 -/* 80354A30 40 81 01 68 */ ble lbl_80354B98 -/* 80354A34 28 04 00 08 */ cmplwi r4, 8 -/* 80354A38 39 04 FF F8 */ addi r8, r4, -8 -/* 80354A3C 40 81 01 24 */ ble lbl_80354B60 -/* 80354A40 38 E8 00 07 */ addi r7, r8, 7 -/* 80354A44 54 E7 E8 FE */ srwi r7, r7, 3 -/* 80354A48 28 08 00 00 */ cmplwi r8, 0 -/* 80354A4C 7C E9 03 A6 */ mtctr r7 -/* 80354A50 40 81 01 10 */ ble lbl_80354B60 -lbl_80354A54: -/* 80354A54 54 C7 38 30 */ slwi r7, r6, 7 -/* 80354A58 54 C8 78 20 */ slwi r8, r6, 0xf -/* 80354A5C 7C C7 3A 78 */ xor r7, r6, r7 -/* 80354A60 7D 07 3A 78 */ xor r7, r8, r7 -/* 80354A64 54 C9 B8 10 */ slwi r9, r6, 0x17 -/* 80354A68 7D 27 3A 38 */ eqv r7, r9, r7 -/* 80354A6C 54 C8 08 3C */ slwi r8, r6, 1 -/* 80354A70 54 E6 17 BC */ rlwinm r6, r7, 2, 0x1e, 0x1e -/* 80354A74 7D 09 33 78 */ or r9, r8, r6 -/* 80354A78 55 26 38 30 */ slwi r6, r9, 7 -/* 80354A7C 55 27 78 20 */ slwi r7, r9, 0xf -/* 80354A80 7D 26 32 78 */ xor r6, r9, r6 -/* 80354A84 55 28 B8 10 */ slwi r8, r9, 0x17 -/* 80354A88 7C E6 32 78 */ xor r6, r7, r6 -/* 80354A8C 7D 06 32 38 */ eqv r6, r8, r6 -/* 80354A90 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e -/* 80354A94 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d -/* 80354A98 55 46 38 30 */ slwi r6, r10, 7 -/* 80354A9C 55 47 78 20 */ slwi r7, r10, 0xf -/* 80354AA0 7D 46 32 78 */ xor r6, r10, r6 -/* 80354AA4 55 48 B8 10 */ slwi r8, r10, 0x17 -/* 80354AA8 7C E6 32 78 */ xor r6, r7, r6 -/* 80354AAC 7D 06 32 38 */ eqv r6, r8, r6 -/* 80354AB0 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e -/* 80354AB4 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d -/* 80354AB8 55 26 38 30 */ slwi r6, r9, 7 -/* 80354ABC 55 27 78 20 */ slwi r7, r9, 0xf -/* 80354AC0 7D 26 32 78 */ xor r6, r9, r6 -/* 80354AC4 55 28 B8 10 */ slwi r8, r9, 0x17 -/* 80354AC8 7C E6 32 78 */ xor r6, r7, r6 -/* 80354ACC 7D 06 32 38 */ eqv r6, r8, r6 -/* 80354AD0 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e -/* 80354AD4 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d -/* 80354AD8 55 46 38 30 */ slwi r6, r10, 7 -/* 80354ADC 55 47 78 20 */ slwi r7, r10, 0xf -/* 80354AE0 7D 46 32 78 */ xor r6, r10, r6 -/* 80354AE4 55 48 B8 10 */ slwi r8, r10, 0x17 -/* 80354AE8 7C E6 32 78 */ xor r6, r7, r6 -/* 80354AEC 7D 06 32 38 */ eqv r6, r8, r6 -/* 80354AF0 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e -/* 80354AF4 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d -/* 80354AF8 55 26 38 30 */ slwi r6, r9, 7 -/* 80354AFC 55 27 78 20 */ slwi r7, r9, 0xf -/* 80354B00 7D 26 32 78 */ xor r6, r9, r6 -/* 80354B04 55 28 B8 10 */ slwi r8, r9, 0x17 -/* 80354B08 7C E6 32 78 */ xor r6, r7, r6 -/* 80354B0C 7D 06 32 38 */ eqv r6, r8, r6 -/* 80354B10 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e -/* 80354B14 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d -/* 80354B18 55 46 38 30 */ slwi r6, r10, 7 -/* 80354B1C 55 47 78 20 */ slwi r7, r10, 0xf -/* 80354B20 7D 46 32 78 */ xor r6, r10, r6 -/* 80354B24 55 48 B8 10 */ slwi r8, r10, 0x17 -/* 80354B28 7C E6 32 78 */ xor r6, r7, r6 -/* 80354B2C 7D 06 32 38 */ eqv r6, r8, r6 -/* 80354B30 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e -/* 80354B34 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d -/* 80354B38 55 26 38 30 */ slwi r6, r9, 7 -/* 80354B3C 55 27 78 20 */ slwi r7, r9, 0xf -/* 80354B40 7D 26 32 78 */ xor r6, r9, r6 -/* 80354B44 55 28 B8 10 */ slwi r8, r9, 0x17 -/* 80354B48 7C E6 32 78 */ xor r6, r7, r6 -/* 80354B4C 7D 06 32 38 */ eqv r6, r8, r6 -/* 80354B50 54 C6 17 BC */ rlwinm r6, r6, 2, 0x1e, 0x1e -/* 80354B54 51 26 08 3A */ rlwimi r6, r9, 1, 0, 0x1d -/* 80354B58 38 63 00 08 */ addi r3, r3, 8 -/* 80354B5C 42 00 FE F8 */ bdnz lbl_80354A54 -lbl_80354B60: -/* 80354B60 7C E3 20 50 */ subf r7, r3, r4 -/* 80354B64 7C 03 20 40 */ cmplw r3, r4 -/* 80354B68 7C E9 03 A6 */ mtctr r7 -/* 80354B6C 40 80 00 2C */ bge lbl_80354B98 -lbl_80354B70: -/* 80354B70 54 C3 38 30 */ slwi r3, r6, 7 -/* 80354B74 54 C4 78 20 */ slwi r4, r6, 0xf -/* 80354B78 7C C3 1A 78 */ xor r3, r6, r3 -/* 80354B7C 54 C7 B8 10 */ slwi r7, r6, 0x17 -/* 80354B80 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354B84 7C E3 1A 38 */ eqv r3, r7, r3 -/* 80354B88 54 C4 08 3C */ slwi r4, r6, 1 -/* 80354B8C 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e -/* 80354B90 7C 86 1B 78 */ or r6, r4, r3 -/* 80354B94 42 00 FF DC */ bdnz lbl_80354B70 -lbl_80354B98: -/* 80354B98 54 C3 38 30 */ slwi r3, r6, 7 -/* 80354B9C 54 C4 78 20 */ slwi r4, r6, 0xf -/* 80354BA0 7C C3 1A 78 */ xor r3, r6, r3 -/* 80354BA4 54 C7 B8 10 */ slwi r7, r6, 0x17 -/* 80354BA8 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354BAC 7C E3 1A 38 */ eqv r3, r7, r3 -/* 80354BB0 54 63 0F FE */ srwi r3, r3, 0x1f -/* 80354BB4 7C C3 1B 78 */ or r3, r6, r3 -/* 80354BB8 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 80354BBC 38 60 00 04 */ li r3, 4 -/* 80354BC0 7C 69 03 A6 */ mtctr r3 -/* 80354BC4 38 60 00 00 */ li r3, 0 -/* 80354BC8 80 9F 00 2C */ lwz r4, 0x2c(r31) -lbl_80354BCC: -/* 80354BCC 54 86 38 30 */ slwi r6, r4, 7 -/* 80354BD0 54 87 78 20 */ slwi r7, r4, 0xf -/* 80354BD4 7C 86 32 78 */ xor r6, r4, r6 -/* 80354BD8 7C E6 32 78 */ xor r6, r7, r6 -/* 80354BDC 54 88 B8 10 */ slwi r8, r4, 0x17 -/* 80354BE0 7D 06 32 38 */ eqv r6, r8, r6 -/* 80354BE4 54 87 08 3C */ slwi r7, r4, 1 -/* 80354BE8 54 C4 17 BC */ rlwinm r4, r6, 2, 0x1e, 0x1e -/* 80354BEC 7C E8 23 78 */ or r8, r7, r4 -/* 80354BF0 55 04 38 30 */ slwi r4, r8, 7 -/* 80354BF4 55 06 78 20 */ slwi r6, r8, 0xf -/* 80354BF8 7D 04 22 78 */ xor r4, r8, r4 -/* 80354BFC 55 07 B8 10 */ slwi r7, r8, 0x17 -/* 80354C00 7C C4 22 78 */ xor r4, r6, r4 -/* 80354C04 7C E4 22 38 */ eqv r4, r7, r4 -/* 80354C08 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e -/* 80354C0C 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d -/* 80354C10 55 24 38 30 */ slwi r4, r9, 7 -/* 80354C14 55 26 78 20 */ slwi r6, r9, 0xf -/* 80354C18 7D 24 22 78 */ xor r4, r9, r4 -/* 80354C1C 55 27 B8 10 */ slwi r7, r9, 0x17 -/* 80354C20 7C C4 22 78 */ xor r4, r6, r4 -/* 80354C24 7C E4 22 38 */ eqv r4, r7, r4 -/* 80354C28 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e -/* 80354C2C 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d -/* 80354C30 55 04 38 30 */ slwi r4, r8, 7 -/* 80354C34 55 06 78 20 */ slwi r6, r8, 0xf -/* 80354C38 7D 04 22 78 */ xor r4, r8, r4 -/* 80354C3C 55 07 B8 10 */ slwi r7, r8, 0x17 -/* 80354C40 7C C4 22 78 */ xor r4, r6, r4 -/* 80354C44 7C E4 22 38 */ eqv r4, r7, r4 -/* 80354C48 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e -/* 80354C4C 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d -/* 80354C50 55 24 38 30 */ slwi r4, r9, 7 -/* 80354C54 55 26 78 20 */ slwi r6, r9, 0xf -/* 80354C58 7D 24 22 78 */ xor r4, r9, r4 -/* 80354C5C 55 27 B8 10 */ slwi r7, r9, 0x17 -/* 80354C60 7C C4 22 78 */ xor r4, r6, r4 -/* 80354C64 7C E4 22 38 */ eqv r4, r7, r4 -/* 80354C68 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e -/* 80354C6C 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d -/* 80354C70 55 04 38 30 */ slwi r4, r8, 7 -/* 80354C74 55 06 78 20 */ slwi r6, r8, 0xf -/* 80354C78 7D 04 22 78 */ xor r4, r8, r4 -/* 80354C7C 55 07 B8 10 */ slwi r7, r8, 0x17 -/* 80354C80 7C C4 22 78 */ xor r4, r6, r4 -/* 80354C84 7C E4 22 38 */ eqv r4, r7, r4 -/* 80354C88 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e -/* 80354C8C 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d -/* 80354C90 55 24 38 30 */ slwi r4, r9, 7 -/* 80354C94 55 26 78 20 */ slwi r6, r9, 0xf -/* 80354C98 7D 24 22 78 */ xor r4, r9, r4 -/* 80354C9C 55 27 B8 10 */ slwi r7, r9, 0x17 -/* 80354CA0 7C C4 22 78 */ xor r4, r6, r4 -/* 80354CA4 7C E4 22 38 */ eqv r4, r7, r4 -/* 80354CA8 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e -/* 80354CAC 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d -/* 80354CB0 55 04 38 30 */ slwi r4, r8, 7 -/* 80354CB4 55 06 78 20 */ slwi r6, r8, 0xf -/* 80354CB8 7D 04 22 78 */ xor r4, r8, r4 -/* 80354CBC 55 07 B8 10 */ slwi r7, r8, 0x17 -/* 80354CC0 7C C4 22 78 */ xor r4, r6, r4 -/* 80354CC4 7C E4 22 38 */ eqv r4, r7, r4 -/* 80354CC8 54 84 17 BC */ rlwinm r4, r4, 2, 0x1e, 0x1e -/* 80354CCC 51 04 08 3A */ rlwimi r4, r8, 1, 0, 0x1d -/* 80354CD0 38 63 00 08 */ addi r3, r3, 8 -/* 80354CD4 42 00 FE F8 */ bdnz lbl_80354BCC -/* 80354CD8 20 C3 00 21 */ subfic r6, r3, 0x21 -/* 80354CDC 28 03 00 21 */ cmplwi r3, 0x21 -/* 80354CE0 7C C9 03 A6 */ mtctr r6 -/* 80354CE4 40 80 00 2C */ bge lbl_80354D10 -lbl_80354CE8: -/* 80354CE8 54 83 38 30 */ slwi r3, r4, 7 -/* 80354CEC 54 86 78 20 */ slwi r6, r4, 0xf -/* 80354CF0 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354CF4 54 87 B8 10 */ slwi r7, r4, 0x17 -/* 80354CF8 7C C3 1A 78 */ xor r3, r6, r3 -/* 80354CFC 7C E3 1A 38 */ eqv r3, r7, r3 -/* 80354D00 54 84 08 3C */ slwi r4, r4, 1 -/* 80354D04 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e -/* 80354D08 7C 84 1B 78 */ or r4, r4, r3 -/* 80354D0C 42 00 FF DC */ bdnz lbl_80354CE8 -lbl_80354D10: -/* 80354D10 54 83 38 30 */ slwi r3, r4, 7 -/* 80354D14 54 86 78 20 */ slwi r6, r4, 0xf -/* 80354D18 7C 83 1A 78 */ xor r3, r4, r3 -/* 80354D1C 54 87 B8 10 */ slwi r7, r4, 0x17 -/* 80354D20 7C C3 1A 78 */ xor r3, r6, r3 -/* 80354D24 7C E3 1A 38 */ eqv r3, r7, r3 -/* 80354D28 54 63 0F FE */ srwi r3, r3, 0x1f -/* 80354D2C 7C 83 1B 78 */ or r3, r4, r3 -/* 80354D30 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 80354D34 38 C0 00 08 */ li r6, 8 -/* 80354D38 3B 60 00 00 */ li r27, 0 -/* 80354D3C 90 1C 00 00 */ stw r0, 0(r28) -/* 80354D40 38 7C 00 00 */ addi r3, r28, 0 -/* 80354D44 38 80 00 08 */ li r4, 8 -/* 80354D48 90 BC 00 04 */ stw r5, 4(r28) -/* 80354D4C 93 9D 00 00 */ stw r28, 0(r29) -/* 80354D50 90 DD 00 04 */ stw r6, 4(r29) -/* 80354D54 92 DD 00 0C */ stw r22, 0xc(r29) -/* 80354D58 93 7D 00 08 */ stw r27, 8(r29) -/* 80354D5C 4B FE 68 51 */ bl DCFlushRange -/* 80354D60 38 76 00 00 */ addi r3, r22, 0 -/* 80354D64 38 80 00 04 */ li r4, 4 -/* 80354D68 4B FE 68 19 */ bl DCInvalidateRange -/* 80354D6C 38 7D 00 00 */ addi r3, r29, 0 -/* 80354D70 38 80 00 10 */ li r4, 0x10 -/* 80354D74 4B FE 68 39 */ bl DCFlushRange -/* 80354D78 38 00 00 FF */ li r0, 0xff -/* 80354D7C 3C 60 80 3D */ lis r3, CardData@ha /* 0x803D1EA0@ha */ -/* 80354D80 90 1E 00 04 */ stw r0, 4(r30) -/* 80354D84 38 63 1E A0 */ addi r3, r3, CardData@l /* 0x803D1EA0@l */ -/* 80354D88 3C 03 80 00 */ addis r0, r3, 0x8000 -/* 80354D8C 90 1E 00 0C */ stw r0, 0xc(r30) -/* 80354D90 38 00 01 60 */ li r0, 0x160 -/* 80354D94 3C 80 80 35 */ lis r4, InitCallback@ha /* 0x80354DF0@ha */ -/* 80354D98 90 1E 00 10 */ stw r0, 0x10(r30) -/* 80354D9C 3C 60 80 35 */ lis r3, DoneCallback@ha /* 0x80354E60@ha */ -/* 80354DA0 38 A0 00 10 */ li r5, 0x10 -/* 80354DA4 93 7E 00 14 */ stw r27, 0x14(r30) -/* 80354DA8 38 84 4D F0 */ addi r4, r4, InitCallback@l /* 0x80354DF0@l */ -/* 80354DAC 38 03 4E 60 */ addi r0, r3, DoneCallback@l /* 0x80354E60@l */ -/* 80354DB0 B0 BE 00 24 */ sth r5, 0x24(r30) -/* 80354DB4 7F C3 F3 78 */ mr r3, r30 -/* 80354DB8 90 9E 00 28 */ stw r4, 0x28(r30) -/* 80354DBC 93 7E 00 2C */ stw r27, 0x2c(r30) -/* 80354DC0 90 1E 00 30 */ stw r0, 0x30(r30) -/* 80354DC4 93 7E 00 34 */ stw r27, 0x34(r30) -/* 80354DC8 4B F4 9C 39 */ bl DSPAddTask -/* 80354DCC 93 37 00 00 */ stw r25, 0(r23) -/* 80354DD0 38 60 00 00 */ li r3, 0 -/* 80354DD4 93 57 00 04 */ stw r26, 4(r23) -/* 80354DD8 93 17 00 08 */ stw r24, 8(r23) -lbl_80354DDC: -/* 80354DDC BA C1 00 F8 */ lmw r22, 0xf8(r1) -/* 80354DE0 80 01 01 24 */ lwz r0, 0x124(r1) -/* 80354DE4 38 21 01 20 */ addi r1, r1, 0x120 -/* 80354DE8 7C 08 03 A6 */ mtlr r0 -/* 80354DEC 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDWrite/EraseCallback.s b/asm/dolphin/card/CARDWrite/EraseCallback.s deleted file mode 100644 index d7140c2a86..0000000000 --- a/asm/dolphin/card/CARDWrite/EraseCallback.s +++ /dev/null @@ -1,47 +0,0 @@ -lbl_80358A84: -/* 80358A84 7C 08 02 A6 */ mflr r0 -/* 80358A88 90 01 00 04 */ stw r0, 4(r1) -/* 80358A8C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80358A90 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80358A94 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80358A98 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80358A9C 7C 9D 23 79 */ or. r29, r4, r4 -/* 80358AA0 93 81 00 10 */ stw r28, 0x10(r1) -/* 80358AA4 3B 83 00 00 */ addi r28, r3, 0 -/* 80358AA8 1C BC 01 10 */ mulli r5, r28, 0x110 -/* 80358AAC 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80358AB0 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80358AB4 7F E0 2A 14 */ add r31, r0, r5 -/* 80358AB8 41 80 00 30 */ blt lbl_80358AE8 -/* 80358ABC 80 9F 00 C0 */ lwz r4, 0xc0(r31) -/* 80358AC0 3C 60 80 36 */ lis r3, WriteCallback@ha /* 0x80358914@ha */ -/* 80358AC4 38 E3 89 14 */ addi r7, r3, WriteCallback@l /* 0x80358914@l */ -/* 80358AC8 80 BF 00 0C */ lwz r5, 0xc(r31) -/* 80358ACC A0 04 00 10 */ lhz r0, 0x10(r4) -/* 80358AD0 80 DF 00 B4 */ lwz r6, 0xb4(r31) -/* 80358AD4 38 7C 00 00 */ addi r3, r28, 0 -/* 80358AD8 7C 85 01 D6 */ mullw r4, r5, r0 -/* 80358ADC 4B FF C8 D1 */ bl __CARDWrite -/* 80358AE0 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80358AE4 40 80 00 30 */ bge lbl_80358B14 -lbl_80358AE8: -/* 80358AE8 83 DF 00 D0 */ lwz r30, 0xd0(r31) -/* 80358AEC 38 00 00 00 */ li r0, 0 -/* 80358AF0 38 7F 00 00 */ addi r3, r31, 0 -/* 80358AF4 90 1F 00 D0 */ stw r0, 0xd0(r31) -/* 80358AF8 7F A4 EB 78 */ mr r4, r29 -/* 80358AFC 4B FF B1 71 */ bl __CARDPutControlBlock -/* 80358B00 39 9E 00 00 */ addi r12, r30, 0 -/* 80358B04 7D 88 03 A6 */ mtlr r12 -/* 80358B08 38 7C 00 00 */ addi r3, r28, 0 -/* 80358B0C 38 9D 00 00 */ addi r4, r29, 0 -/* 80358B10 4E 80 00 21 */ blrl -lbl_80358B14: -/* 80358B14 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80358B18 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80358B1C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80358B20 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80358B24 83 81 00 10 */ lwz r28, 0x10(r1) -/* 80358B28 38 21 00 20 */ addi r1, r1, 0x20 -/* 80358B2C 7C 08 03 A6 */ mtlr r0 -/* 80358B30 4E 80 00 20 */ blr diff --git a/asm/dolphin/card/CARDWrite/WriteCallback.s b/asm/dolphin/card/CARDWrite/WriteCallback.s deleted file mode 100644 index ba0a778188..0000000000 --- a/asm/dolphin/card/CARDWrite/WriteCallback.s +++ /dev/null @@ -1,100 +0,0 @@ -lbl_80358914: -/* 80358914 7C 08 02 A6 */ mflr r0 -/* 80358918 90 01 00 04 */ stw r0, 4(r1) -/* 8035891C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80358920 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80358924 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80358928 3B C3 00 00 */ addi r30, r3, 0 -/* 8035892C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 80358930 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80358934 1C BE 01 10 */ mulli r5, r30, 0x110 -/* 80358938 93 81 00 10 */ stw r28, 0x10(r1) -/* 8035893C 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 80358940 7C 9C 23 79 */ or. r28, r4, r4 -/* 80358944 7F E0 2A 14 */ add r31, r0, r5 -/* 80358948 41 80 00 F0 */ blt lbl_80358A38 -/* 8035894C 83 BF 00 C0 */ lwz r29, 0xc0(r31) -/* 80358950 80 7D 00 0C */ lwz r3, 0xc(r29) -/* 80358954 2C 03 00 00 */ cmpwi r3, 0 -/* 80358958 40 80 00 0C */ bge lbl_80358964 -/* 8035895C 3B 80 FF F2 */ li r28, -14 -/* 80358960 48 00 00 D8 */ b lbl_80358A38 -lbl_80358964: -/* 80358964 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80358968 7C 00 18 50 */ subf r0, r0, r3 -/* 8035896C 90 1D 00 0C */ stw r0, 0xc(r29) -/* 80358970 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 80358974 2C 00 00 00 */ cmpwi r0, 0 -/* 80358978 41 81 00 54 */ bgt lbl_803589CC -/* 8035897C 7F E3 FB 78 */ mr r3, r31 -/* 80358980 4B FF CD FD */ bl __CARDGetDirBlock -/* 80358984 80 BD 00 04 */ lwz r5, 4(r29) -/* 80358988 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000F8@ha */ -/* 8035898C 80 04 00 F8 */ lwz r0, 0x00F8(r4) /* 0x800000F8@l */ -/* 80358990 54 A4 30 32 */ slwi r4, r5, 6 -/* 80358994 7F 83 22 14 */ add r28, r3, r4 -/* 80358998 54 1D F0 BE */ srwi r29, r0, 2 -/* 8035899C 4B FE 9D 61 */ bl OSGetTime -/* 803589A0 38 DD 00 00 */ addi r6, r29, 0 -/* 803589A4 38 A0 00 00 */ li r5, 0 -/* 803589A8 48 00 99 7D */ bl __div2i -/* 803589AC 90 9C 00 28 */ stw r4, 0x28(r28) -/* 803589B0 38 00 00 00 */ li r0, 0 -/* 803589B4 38 7E 00 00 */ addi r3, r30, 0 -/* 803589B8 80 9F 00 D0 */ lwz r4, 0xd0(r31) -/* 803589BC 90 1F 00 D0 */ stw r0, 0xd0(r31) -/* 803589C0 4B FF CF 5D */ bl __CARDUpdateDir -/* 803589C4 7C 7C 1B 78 */ mr r28, r3 -/* 803589C8 48 00 00 68 */ b lbl_80358A30 -lbl_803589CC: -/* 803589CC 7F E3 FB 78 */ mr r3, r31 -/* 803589D0 4B FF CA 45 */ bl __CARDGetFatBlock -/* 803589D4 80 9D 00 08 */ lwz r4, 8(r29) -/* 803589D8 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 803589DC 7C 04 02 14 */ add r0, r4, r0 -/* 803589E0 90 1D 00 08 */ stw r0, 8(r29) -/* 803589E4 A0 1D 00 10 */ lhz r0, 0x10(r29) -/* 803589E8 54 00 08 3C */ slwi r0, r0, 1 -/* 803589EC 7C 03 02 2E */ lhzx r0, r3, r0 -/* 803589F0 B0 1D 00 10 */ sth r0, 0x10(r29) -/* 803589F4 A0 9D 00 10 */ lhz r4, 0x10(r29) -/* 803589F8 28 04 00 05 */ cmplwi r4, 5 -/* 803589FC 41 80 00 10 */ blt lbl_80358A0C -/* 80358A00 A0 1F 00 10 */ lhz r0, 0x10(r31) -/* 80358A04 7C 04 00 40 */ cmplw r4, r0 -/* 80358A08 41 80 00 0C */ blt lbl_80358A14 -lbl_80358A0C: -/* 80358A0C 3B 80 FF FA */ li r28, -6 -/* 80358A10 48 00 00 28 */ b lbl_80358A38 -lbl_80358A14: -/* 80358A14 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80358A18 3C 60 80 36 */ lis r3, EraseCallback@ha /* 0x80358A84@ha */ -/* 80358A1C 38 A3 8A 84 */ addi r5, r3, EraseCallback@l /* 0x80358A84@l */ -/* 80358A20 7C 80 21 D6 */ mullw r4, r0, r4 -/* 80358A24 38 7E 00 00 */ addi r3, r30, 0 -/* 80358A28 4B FF AF 91 */ bl __CARDEraseSector -/* 80358A2C 7C 7C 1B 78 */ mr r28, r3 -lbl_80358A30: -/* 80358A30 2C 1C 00 00 */ cmpwi r28, 0 -/* 80358A34 40 80 00 30 */ bge lbl_80358A64 -lbl_80358A38: -/* 80358A38 83 BF 00 D0 */ lwz r29, 0xd0(r31) -/* 80358A3C 38 00 00 00 */ li r0, 0 -/* 80358A40 38 7F 00 00 */ addi r3, r31, 0 -/* 80358A44 90 1F 00 D0 */ stw r0, 0xd0(r31) -/* 80358A48 7F 84 E3 78 */ mr r4, r28 -/* 80358A4C 4B FF B2 21 */ bl __CARDPutControlBlock -/* 80358A50 39 9D 00 00 */ addi r12, r29, 0 -/* 80358A54 7D 88 03 A6 */ mtlr r12 -/* 80358A58 38 7E 00 00 */ addi r3, r30, 0 -/* 80358A5C 38 9C 00 00 */ addi r4, r28, 0 -/* 80358A60 4E 80 00 21 */ blrl -lbl_80358A64: -/* 80358A64 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80358A68 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80358A6C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80358A70 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80358A74 83 81 00 10 */ lwz r28, 0x10(r1) -/* 80358A78 38 21 00 20 */ addi r1, r1, 0x20 -/* 80358A7C 7C 08 03 A6 */ mtlr r0 -/* 80358A80 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/DVDCancelAsync.s b/asm/dolphin/dvd/dvd/DVDCancelAsync.s deleted file mode 100644 index 186bc4a9d5..0000000000 --- a/asm/dolphin/dvd/dvd/DVDCancelAsync.s +++ /dev/null @@ -1,177 +0,0 @@ -lbl_8034B2D4: -/* 8034B2D4 7C 08 02 A6 */ mflr r0 -/* 8034B2D8 90 01 00 04 */ stw r0, 4(r1) -/* 8034B2DC 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 8034B2E0 93 E1 00 24 */ stw r31, 0x24(r1) -/* 8034B2E4 93 C1 00 20 */ stw r30, 0x20(r1) -/* 8034B2E8 3B C4 00 00 */ addi r30, r4, 0 -/* 8034B2EC 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 8034B2F0 3B A3 00 00 */ addi r29, r3, 0 -/* 8034B2F4 4B FF 24 01 */ bl OSDisableInterrupts -/* 8034B2F8 80 9D 00 0C */ lwz r4, 0xc(r29) -/* 8034B2FC 3B E3 00 00 */ addi r31, r3, 0 -/* 8034B300 38 04 00 01 */ addi r0, r4, 1 -/* 8034B304 28 00 00 0C */ cmplwi r0, 0xc -/* 8034B308 41 81 02 20 */ bgt lbl_8034B528 -/* 8034B30C 3C 60 80 3D */ lis r3, lit_956@ha /* 0x803D163C@ha */ -/* 8034B310 38 63 16 3C */ addi r3, r3, lit_956@l /* 0x803D163C@l */ -/* 8034B314 54 00 10 3A */ slwi r0, r0, 2 -/* 8034B318 7C 03 00 2E */ lwzx r0, r3, r0 -/* 8034B31C 7C 09 03 A6 */ mtctr r0 -/* 8034B320 4E 80 04 20 */ bctr -/* 8034B324 28 1E 00 00 */ cmplwi r30, 0 -/* 8034B328 41 82 02 00 */ beq lbl_8034B528 -/* 8034B32C 39 9E 00 00 */ addi r12, r30, 0 -/* 8034B330 7D 88 03 A6 */ mtlr r12 -/* 8034B334 38 9D 00 00 */ addi r4, r29, 0 -/* 8034B338 38 60 00 00 */ li r3, 0 -/* 8034B33C 4E 80 00 21 */ blrl -/* 8034B340 48 00 01 E8 */ b lbl_8034B528 -/* 8034B344 80 0D 92 18 */ lwz r0, Canceling(r13) -/* 8034B348 28 00 00 00 */ cmplwi r0, 0 -/* 8034B34C 41 82 00 14 */ beq lbl_8034B360 -/* 8034B350 7F E3 FB 78 */ mr r3, r31 -/* 8034B354 4B FF 23 C9 */ bl OSRestoreInterrupts -/* 8034B358 38 60 00 00 */ li r3, 0 -/* 8034B35C 48 00 01 D8 */ b lbl_8034B534 -lbl_8034B360: -/* 8034B360 38 00 00 01 */ li r0, 1 -/* 8034B364 93 CD 92 1C */ stw r30, CancelCallback(r13) -/* 8034B368 90 0D 92 18 */ stw r0, Canceling(r13) -/* 8034B36C 80 1D 00 08 */ lwz r0, 8(r29) -/* 8034B370 28 00 00 04 */ cmplwi r0, 4 -/* 8034B374 41 82 00 0C */ beq lbl_8034B380 -/* 8034B378 28 00 00 01 */ cmplwi r0, 1 -/* 8034B37C 40 82 01 AC */ bne lbl_8034B528 -lbl_8034B380: -/* 8034B380 4B FF D0 C5 */ bl DVDLowBreak -/* 8034B384 48 00 01 A4 */ b lbl_8034B528 -/* 8034B388 7F A3 EB 78 */ mr r3, r29 -/* 8034B38C 48 00 06 81 */ bl __DVDDequeueWaitingQueue -/* 8034B390 38 00 00 0A */ li r0, 0xa -/* 8034B394 90 1D 00 0C */ stw r0, 0xc(r29) -/* 8034B398 81 9D 00 28 */ lwz r12, 0x28(r29) -/* 8034B39C 28 0C 00 00 */ cmplwi r12, 0 -/* 8034B3A0 41 82 00 14 */ beq lbl_8034B3B4 -/* 8034B3A4 7D 88 03 A6 */ mtlr r12 -/* 8034B3A8 38 9D 00 00 */ addi r4, r29, 0 -/* 8034B3AC 38 60 FF FD */ li r3, -3 -/* 8034B3B0 4E 80 00 21 */ blrl -lbl_8034B3B4: -/* 8034B3B4 28 1E 00 00 */ cmplwi r30, 0 -/* 8034B3B8 41 82 01 70 */ beq lbl_8034B528 -/* 8034B3BC 39 9E 00 00 */ addi r12, r30, 0 -/* 8034B3C0 7D 88 03 A6 */ mtlr r12 -/* 8034B3C4 38 9D 00 00 */ addi r4, r29, 0 -/* 8034B3C8 38 60 00 00 */ li r3, 0 -/* 8034B3CC 4E 80 00 21 */ blrl -/* 8034B3D0 48 00 01 58 */ b lbl_8034B528 -/* 8034B3D4 80 1D 00 08 */ lwz r0, 8(r29) -/* 8034B3D8 2C 00 00 0D */ cmpwi r0, 0xd -/* 8034B3DC 41 82 00 28 */ beq lbl_8034B404 -/* 8034B3E0 40 80 00 18 */ bge lbl_8034B3F8 -/* 8034B3E4 2C 00 00 06 */ cmpwi r0, 6 -/* 8034B3E8 40 80 00 3C */ bge lbl_8034B424 -/* 8034B3EC 2C 00 00 04 */ cmpwi r0, 4 -/* 8034B3F0 40 80 00 14 */ bge lbl_8034B404 -/* 8034B3F4 48 00 00 30 */ b lbl_8034B424 -lbl_8034B3F8: -/* 8034B3F8 2C 00 00 0F */ cmpwi r0, 0xf -/* 8034B3FC 41 82 00 08 */ beq lbl_8034B404 -/* 8034B400 48 00 00 24 */ b lbl_8034B424 -lbl_8034B404: -/* 8034B404 28 1E 00 00 */ cmplwi r30, 0 -/* 8034B408 41 82 01 20 */ beq lbl_8034B528 -/* 8034B40C 39 9E 00 00 */ addi r12, r30, 0 -/* 8034B410 7D 88 03 A6 */ mtlr r12 -/* 8034B414 38 9D 00 00 */ addi r4, r29, 0 -/* 8034B418 38 60 00 00 */ li r3, 0 -/* 8034B41C 4E 80 00 21 */ blrl -/* 8034B420 48 00 01 08 */ b lbl_8034B528 -lbl_8034B424: -/* 8034B424 80 0D 92 18 */ lwz r0, Canceling(r13) -/* 8034B428 28 00 00 00 */ cmplwi r0, 0 -/* 8034B42C 41 82 00 14 */ beq lbl_8034B440 -/* 8034B430 7F E3 FB 78 */ mr r3, r31 -/* 8034B434 4B FF 22 E9 */ bl OSRestoreInterrupts -/* 8034B438 38 60 00 00 */ li r3, 0 -/* 8034B43C 48 00 00 F8 */ b lbl_8034B534 -lbl_8034B440: -/* 8034B440 38 00 00 01 */ li r0, 1 -/* 8034B444 93 CD 92 1C */ stw r30, CancelCallback(r13) -/* 8034B448 90 0D 92 18 */ stw r0, Canceling(r13) -/* 8034B44C 48 00 00 DC */ b lbl_8034B528 -/* 8034B450 4B FF D0 09 */ bl DVDLowClearCallback -/* 8034B454 3C 80 80 35 */ lis r4, cbForStateMotorStopped@ha /* 0x80349FC0@ha */ -/* 8034B458 38 04 9F C0 */ addi r0, r4, cbForStateMotorStopped@l /* 0x80349FC0@l */ -/* 8034B45C 7C 03 00 40 */ cmplw r3, r0 -/* 8034B460 41 82 00 14 */ beq lbl_8034B474 -/* 8034B464 7F E3 FB 78 */ mr r3, r31 -/* 8034B468 4B FF 22 B5 */ bl OSRestoreInterrupts -/* 8034B46C 38 60 00 00 */ li r3, 0 -/* 8034B470 48 00 00 C4 */ b lbl_8034B534 -lbl_8034B474: -/* 8034B474 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 8034B478 2C 00 00 04 */ cmpwi r0, 4 -/* 8034B47C 40 82 00 0C */ bne lbl_8034B488 -/* 8034B480 38 00 00 03 */ li r0, 3 -/* 8034B484 90 0D 92 20 */ stw r0, ResumeFromHere(r13) -lbl_8034B488: -/* 8034B488 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 8034B48C 2C 00 00 05 */ cmpwi r0, 5 -/* 8034B490 40 82 00 0C */ bne lbl_8034B49C -/* 8034B494 38 00 00 04 */ li r0, 4 -/* 8034B498 90 0D 92 20 */ stw r0, ResumeFromHere(r13) -lbl_8034B49C: -/* 8034B49C 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 8034B4A0 2C 00 00 06 */ cmpwi r0, 6 -/* 8034B4A4 40 82 00 0C */ bne lbl_8034B4B0 -/* 8034B4A8 38 00 00 01 */ li r0, 1 -/* 8034B4AC 90 0D 92 20 */ stw r0, ResumeFromHere(r13) -lbl_8034B4B0: -/* 8034B4B0 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 8034B4B4 2C 00 00 0B */ cmpwi r0, 0xb -/* 8034B4B8 40 82 00 0C */ bne lbl_8034B4C4 -/* 8034B4BC 38 00 00 02 */ li r0, 2 -/* 8034B4C0 90 0D 92 20 */ stw r0, ResumeFromHere(r13) -lbl_8034B4C4: -/* 8034B4C4 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 8034B4C8 2C 00 00 07 */ cmpwi r0, 7 -/* 8034B4CC 40 82 00 0C */ bne lbl_8034B4D8 -/* 8034B4D0 38 00 00 07 */ li r0, 7 -/* 8034B4D4 90 0D 92 20 */ stw r0, ResumeFromHere(r13) -lbl_8034B4D8: -/* 8034B4D8 3C 60 80 45 */ lis r3, DummyCommandBlock@ha /* 0x8044C940@ha */ -/* 8034B4DC 38 03 C9 40 */ addi r0, r3, DummyCommandBlock@l /* 0x8044C940@l */ -/* 8034B4E0 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034B4E4 38 00 00 0A */ li r0, 0xa -/* 8034B4E8 90 1D 00 0C */ stw r0, 0xc(r29) -/* 8034B4EC 81 9D 00 28 */ lwz r12, 0x28(r29) -/* 8034B4F0 28 0C 00 00 */ cmplwi r12, 0 -/* 8034B4F4 41 82 00 14 */ beq lbl_8034B508 -/* 8034B4F8 7D 88 03 A6 */ mtlr r12 -/* 8034B4FC 38 9D 00 00 */ addi r4, r29, 0 -/* 8034B500 38 60 FF FD */ li r3, -3 -/* 8034B504 4E 80 00 21 */ blrl -lbl_8034B508: -/* 8034B508 28 1E 00 00 */ cmplwi r30, 0 -/* 8034B50C 41 82 00 18 */ beq lbl_8034B524 -/* 8034B510 39 9E 00 00 */ addi r12, r30, 0 -/* 8034B514 7D 88 03 A6 */ mtlr r12 -/* 8034B518 38 9D 00 00 */ addi r4, r29, 0 -/* 8034B51C 38 60 00 00 */ li r3, 0 -/* 8034B520 4E 80 00 21 */ blrl -lbl_8034B524: -/* 8034B524 4B FF EB 89 */ bl stateReady -lbl_8034B528: -/* 8034B528 7F E3 FB 78 */ mr r3, r31 -/* 8034B52C 4B FF 21 F1 */ bl OSRestoreInterrupts -/* 8034B530 38 60 00 01 */ li r3, 1 -lbl_8034B534: -/* 8034B534 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8034B538 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 8034B53C 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 8034B540 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 8034B544 38 21 00 28 */ addi r1, r1, 0x28 -/* 8034B548 7C 08 03 A6 */ mtlr r0 -/* 8034B54C 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/DVDCancelStreamAsync.s b/asm/dolphin/dvd/dvd/DVDCancelStreamAsync.s deleted file mode 100644 index 4ee9413913..0000000000 --- a/asm/dolphin/dvd/dvd/DVDCancelStreamAsync.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_8034AFAC: -/* 8034AFAC 7C 08 02 A6 */ mflr r0 -/* 8034AFB0 90 01 00 04 */ stw r0, 4(r1) -/* 8034AFB4 38 00 00 07 */ li r0, 7 -/* 8034AFB8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8034AFBC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8034AFC0 3B E3 00 00 */ addi r31, r3, 0 -/* 8034AFC4 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8034AFC8 90 03 00 08 */ stw r0, 8(r3) -/* 8034AFCC 90 83 00 28 */ stw r4, 0x28(r3) -/* 8034AFD0 80 0D 84 6C */ lwz r0, autoInvalidation(r13) -/* 8034AFD4 2C 00 00 00 */ cmpwi r0, 0 -/* 8034AFD8 41 82 00 30 */ beq lbl_8034B008 -/* 8034AFDC 80 7F 00 08 */ lwz r3, 8(r31) -/* 8034AFE0 28 03 00 01 */ cmplwi r3, 1 -/* 8034AFE4 41 82 00 18 */ beq lbl_8034AFFC -/* 8034AFE8 38 03 FF FC */ addi r0, r3, -4 -/* 8034AFEC 28 00 00 01 */ cmplwi r0, 1 -/* 8034AFF0 40 81 00 0C */ ble lbl_8034AFFC -/* 8034AFF4 28 03 00 0E */ cmplwi r3, 0xe -/* 8034AFF8 40 82 00 10 */ bne lbl_8034B008 -lbl_8034AFFC: -/* 8034AFFC 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8034B000 80 9F 00 14 */ lwz r4, 0x14(r31) -/* 8034B004 4B FF 05 7D */ bl DCInvalidateRange -lbl_8034B008: -/* 8034B008 4B FF 26 ED */ bl OSDisableInterrupts -/* 8034B00C 38 00 00 02 */ li r0, 2 -/* 8034B010 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8034B014 3B C3 00 00 */ addi r30, r3, 0 -/* 8034B018 38 9F 00 00 */ addi r4, r31, 0 -/* 8034B01C 38 60 00 01 */ li r3, 1 -/* 8034B020 48 00 08 8D */ bl __DVDPushWaitingQueue -/* 8034B024 80 0D 91 F8 */ lwz r0, executing(r13) -/* 8034B028 3B E3 00 00 */ addi r31, r3, 0 -/* 8034B02C 28 00 00 00 */ cmplwi r0, 0 -/* 8034B030 40 82 00 14 */ bne lbl_8034B044 -/* 8034B034 80 0D 92 04 */ lwz r0, PauseFlag(r13) -/* 8034B038 2C 00 00 00 */ cmpwi r0, 0 -/* 8034B03C 40 82 00 08 */ bne lbl_8034B044 -/* 8034B040 4B FF F0 6D */ bl stateReady -lbl_8034B044: -/* 8034B044 7F C3 F3 78 */ mr r3, r30 -/* 8034B048 4B FF 26 D5 */ bl OSRestoreInterrupts -/* 8034B04C 7F E3 FB 78 */ mr r3, r31 -/* 8034B050 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8034B054 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8034B058 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8034B05C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8034B060 7C 08 03 A6 */ mtlr r0 -/* 8034B064 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/DVDCheckDisk.s b/asm/dolphin/dvd/dvd/DVDCheckDisk.s deleted file mode 100644 index ef6f95e2e6..0000000000 --- a/asm/dolphin/dvd/dvd/DVDCheckDisk.s +++ /dev/null @@ -1,72 +0,0 @@ -lbl_8034B628: -/* 8034B628 7C 08 02 A6 */ mflr r0 -/* 8034B62C 90 01 00 04 */ stw r0, 4(r1) -/* 8034B630 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8034B634 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8034B638 4B FF 20 BD */ bl OSDisableInterrupts -/* 8034B63C 80 0D 92 10 */ lwz r0, FatalErrorFlag(r13) -/* 8034B640 2C 00 00 00 */ cmpwi r0, 0 -/* 8034B644 41 82 00 0C */ beq lbl_8034B650 -/* 8034B648 38 80 FF FF */ li r4, -1 -/* 8034B64C 48 00 00 48 */ b lbl_8034B694 -lbl_8034B650: -/* 8034B650 80 0D 92 08 */ lwz r0, PausingFlag(r13) -/* 8034B654 2C 00 00 00 */ cmpwi r0, 0 -/* 8034B658 41 82 00 0C */ beq lbl_8034B664 -/* 8034B65C 38 80 00 08 */ li r4, 8 -/* 8034B660 48 00 00 34 */ b lbl_8034B694 -lbl_8034B664: -/* 8034B664 80 AD 91 F8 */ lwz r5, executing(r13) -/* 8034B668 28 05 00 00 */ cmplwi r5, 0 -/* 8034B66C 40 82 00 0C */ bne lbl_8034B678 -/* 8034B670 38 80 00 00 */ li r4, 0 -/* 8034B674 48 00 00 20 */ b lbl_8034B694 -lbl_8034B678: -/* 8034B678 3C 80 80 45 */ lis r4, DummyCommandBlock@ha /* 0x8044C940@ha */ -/* 8034B67C 38 04 C9 40 */ addi r0, r4, DummyCommandBlock@l /* 0x8044C940@l */ -/* 8034B680 7C 05 00 40 */ cmplw r5, r0 -/* 8034B684 40 82 00 0C */ bne lbl_8034B690 -/* 8034B688 38 80 00 00 */ li r4, 0 -/* 8034B68C 48 00 00 08 */ b lbl_8034B694 -lbl_8034B690: -/* 8034B690 80 85 00 0C */ lwz r4, 0xc(r5) -lbl_8034B694: -/* 8034B694 38 04 00 01 */ addi r0, r4, 1 -/* 8034B698 28 00 00 0C */ cmplwi r0, 0xc -/* 8034B69C 41 81 00 68 */ bgt lbl_8034B704 -/* 8034B6A0 3C 80 80 3D */ lis r4, lit_1060@ha /* 0x803D1670@ha */ -/* 8034B6A4 38 84 16 70 */ addi r4, r4, lit_1060@l /* 0x803D1670@l */ -/* 8034B6A8 54 00 10 3A */ slwi r0, r0, 2 -/* 8034B6AC 7C 04 00 2E */ lwzx r0, r4, r0 -/* 8034B6B0 7C 09 03 A6 */ mtctr r0 -/* 8034B6B4 4E 80 04 20 */ bctr -/* 8034B6B8 3B E0 00 01 */ li r31, 1 -/* 8034B6BC 48 00 00 48 */ b lbl_8034B704 -/* 8034B6C0 3B E0 00 00 */ li r31, 0 -/* 8034B6C4 48 00 00 40 */ b lbl_8034B704 -/* 8034B6C8 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006000@ha */ -/* 8034B6CC 38 84 60 00 */ addi r4, r4, 0x6000 /* 0xCC006000@l */ -/* 8034B6D0 80 84 00 04 */ lwz r4, 4(r4) -/* 8034B6D4 54 80 F7 FF */ rlwinm. r0, r4, 0x1e, 0x1f, 0x1f -/* 8034B6D8 40 82 00 0C */ bne lbl_8034B6E4 -/* 8034B6DC 54 80 07 FF */ clrlwi. r0, r4, 0x1f -/* 8034B6E0 41 82 00 0C */ beq lbl_8034B6EC -lbl_8034B6E4: -/* 8034B6E4 3B E0 00 00 */ li r31, 0 -/* 8034B6E8 48 00 00 1C */ b lbl_8034B704 -lbl_8034B6EC: -/* 8034B6EC 80 0D 92 20 */ lwz r0, ResumeFromHere(r13) -/* 8034B6F0 28 00 00 00 */ cmplwi r0, 0 -/* 8034B6F4 41 82 00 0C */ beq lbl_8034B700 -/* 8034B6F8 3B E0 00 00 */ li r31, 0 -/* 8034B6FC 48 00 00 08 */ b lbl_8034B704 -lbl_8034B700: -/* 8034B700 3B E0 00 01 */ li r31, 1 -lbl_8034B704: -/* 8034B704 4B FF 20 19 */ bl OSRestoreInterrupts -/* 8034B708 7F E3 FB 78 */ mr r3, r31 -/* 8034B70C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8034B710 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8034B714 38 21 00 10 */ addi r1, r1, 0x10 -/* 8034B718 7C 08 03 A6 */ mtlr r0 -/* 8034B71C 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/DVDGetCommandBlockStatus.s b/asm/dolphin/dvd/dvd/DVDGetCommandBlockStatus.s deleted file mode 100644 index bab5cb0953..0000000000 --- a/asm/dolphin/dvd/dvd/DVDGetCommandBlockStatus.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8034B17C: -/* 8034B17C 7C 08 02 A6 */ mflr r0 -/* 8034B180 90 01 00 04 */ stw r0, 4(r1) -/* 8034B184 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034B188 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034B18C 7C 7F 1B 78 */ mr r31, r3 -/* 8034B190 4B FF 25 65 */ bl OSDisableInterrupts -/* 8034B194 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 8034B198 2C 00 00 03 */ cmpwi r0, 3 -/* 8034B19C 40 82 00 0C */ bne lbl_8034B1A8 -/* 8034B1A0 3B E0 00 01 */ li r31, 1 -/* 8034B1A4 48 00 00 08 */ b lbl_8034B1AC -lbl_8034B1A8: -/* 8034B1A8 7C 1F 03 78 */ mr r31, r0 -lbl_8034B1AC: -/* 8034B1AC 4B FF 25 71 */ bl OSRestoreInterrupts -/* 8034B1B0 7F E3 FB 78 */ mr r3, r31 -/* 8034B1B4 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034B1B8 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034B1BC 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034B1C0 7C 08 03 A6 */ mtlr r0 -/* 8034B1C4 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/DVDGetDriveStatus.s b/asm/dolphin/dvd/dvd/DVDGetDriveStatus.s deleted file mode 100644 index 4712c8c140..0000000000 --- a/asm/dolphin/dvd/dvd/DVDGetDriveStatus.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_8034B1C8: -/* 8034B1C8 7C 08 02 A6 */ mflr r0 -/* 8034B1CC 90 01 00 04 */ stw r0, 4(r1) -/* 8034B1D0 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034B1D4 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034B1D8 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8034B1DC 4B FF 25 19 */ bl OSDisableInterrupts -/* 8034B1E0 80 0D 92 10 */ lwz r0, FatalErrorFlag(r13) -/* 8034B1E4 3B C3 00 00 */ addi r30, r3, 0 -/* 8034B1E8 2C 00 00 00 */ cmpwi r0, 0 -/* 8034B1EC 41 82 00 0C */ beq lbl_8034B1F8 -/* 8034B1F0 3B E0 FF FF */ li r31, -1 -/* 8034B1F4 48 00 00 5C */ b lbl_8034B250 -lbl_8034B1F8: -/* 8034B1F8 80 0D 92 08 */ lwz r0, PausingFlag(r13) -/* 8034B1FC 2C 00 00 00 */ cmpwi r0, 0 -/* 8034B200 41 82 00 0C */ beq lbl_8034B20C -/* 8034B204 3B E0 00 08 */ li r31, 8 -/* 8034B208 48 00 00 48 */ b lbl_8034B250 -lbl_8034B20C: -/* 8034B20C 83 ED 91 F8 */ lwz r31, executing(r13) -/* 8034B210 28 1F 00 00 */ cmplwi r31, 0 -/* 8034B214 40 82 00 0C */ bne lbl_8034B220 -/* 8034B218 3B E0 00 00 */ li r31, 0 -/* 8034B21C 48 00 00 34 */ b lbl_8034B250 -lbl_8034B220: -/* 8034B220 3C 60 80 45 */ lis r3, DummyCommandBlock@ha /* 0x8044C940@ha */ -/* 8034B224 38 03 C9 40 */ addi r0, r3, DummyCommandBlock@l /* 0x8044C940@l */ -/* 8034B228 7C 1F 00 40 */ cmplw r31, r0 -/* 8034B22C 40 82 00 0C */ bne lbl_8034B238 -/* 8034B230 3B E0 00 00 */ li r31, 0 -/* 8034B234 48 00 00 1C */ b lbl_8034B250 -lbl_8034B238: -/* 8034B238 4B FF 24 BD */ bl OSDisableInterrupts -/* 8034B23C 83 FF 00 0C */ lwz r31, 0xc(r31) -/* 8034B240 2C 1F 00 03 */ cmpwi r31, 3 -/* 8034B244 40 82 00 08 */ bne lbl_8034B24C -/* 8034B248 3B E0 00 01 */ li r31, 1 -lbl_8034B24C: -/* 8034B24C 4B FF 24 D1 */ bl OSRestoreInterrupts -lbl_8034B250: -/* 8034B250 7F C3 F3 78 */ mr r3, r30 -/* 8034B254 4B FF 24 C9 */ bl OSRestoreInterrupts -/* 8034B258 7F E3 FB 78 */ mr r3, r31 -/* 8034B25C 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034B260 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034B264 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8034B268 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034B26C 7C 08 03 A6 */ mtlr r0 -/* 8034B270 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/DVDInquiryAsync.s b/asm/dolphin/dvd/dvd/DVDInquiryAsync.s deleted file mode 100644 index a60ea21b00..0000000000 --- a/asm/dolphin/dvd/dvd/DVDInquiryAsync.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_8034B068: -/* 8034B068 7C 08 02 A6 */ mflr r0 -/* 8034B06C 90 01 00 04 */ stw r0, 4(r1) -/* 8034B070 38 00 00 0E */ li r0, 0xe -/* 8034B074 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 8034B078 93 E1 00 24 */ stw r31, 0x24(r1) -/* 8034B07C 3B E3 00 00 */ addi r31, r3, 0 -/* 8034B080 93 C1 00 20 */ stw r30, 0x20(r1) -/* 8034B084 90 03 00 08 */ stw r0, 8(r3) -/* 8034B088 38 60 00 20 */ li r3, 0x20 -/* 8034B08C 38 00 00 00 */ li r0, 0 -/* 8034B090 90 9F 00 18 */ stw r4, 0x18(r31) -/* 8034B094 90 7F 00 14 */ stw r3, 0x14(r31) -/* 8034B098 90 1F 00 20 */ stw r0, 0x20(r31) -/* 8034B09C 90 BF 00 28 */ stw r5, 0x28(r31) -/* 8034B0A0 80 0D 84 6C */ lwz r0, autoInvalidation(r13) -/* 8034B0A4 2C 00 00 00 */ cmpwi r0, 0 -/* 8034B0A8 41 82 00 30 */ beq lbl_8034B0D8 -/* 8034B0AC 80 7F 00 08 */ lwz r3, 8(r31) -/* 8034B0B0 28 03 00 01 */ cmplwi r3, 1 -/* 8034B0B4 41 82 00 18 */ beq lbl_8034B0CC -/* 8034B0B8 38 03 FF FC */ addi r0, r3, -4 -/* 8034B0BC 28 00 00 01 */ cmplwi r0, 1 -/* 8034B0C0 40 81 00 0C */ ble lbl_8034B0CC -/* 8034B0C4 28 03 00 0E */ cmplwi r3, 0xe -/* 8034B0C8 40 82 00 10 */ bne lbl_8034B0D8 -lbl_8034B0CC: -/* 8034B0CC 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8034B0D0 80 9F 00 14 */ lwz r4, 0x14(r31) -/* 8034B0D4 4B FF 04 AD */ bl DCInvalidateRange -lbl_8034B0D8: -/* 8034B0D8 4B FF 26 1D */ bl OSDisableInterrupts -/* 8034B0DC 38 00 00 02 */ li r0, 2 -/* 8034B0E0 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8034B0E4 3B C3 00 00 */ addi r30, r3, 0 -/* 8034B0E8 38 9F 00 00 */ addi r4, r31, 0 -/* 8034B0EC 38 60 00 02 */ li r3, 2 -/* 8034B0F0 48 00 07 BD */ bl __DVDPushWaitingQueue -/* 8034B0F4 80 0D 91 F8 */ lwz r0, executing(r13) -/* 8034B0F8 3B E3 00 00 */ addi r31, r3, 0 -/* 8034B0FC 28 00 00 00 */ cmplwi r0, 0 -/* 8034B100 40 82 00 14 */ bne lbl_8034B114 -/* 8034B104 80 0D 92 04 */ lwz r0, PauseFlag(r13) -/* 8034B108 2C 00 00 00 */ cmpwi r0, 0 -/* 8034B10C 40 82 00 08 */ bne lbl_8034B114 -/* 8034B110 4B FF EF 9D */ bl stateReady -lbl_8034B114: -/* 8034B114 7F C3 F3 78 */ mr r3, r30 -/* 8034B118 4B FF 26 05 */ bl OSRestoreInterrupts -/* 8034B11C 7F E3 FB 78 */ mr r3, r31 -/* 8034B120 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8034B124 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 8034B128 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 8034B12C 38 21 00 28 */ addi r1, r1, 0x28 -/* 8034B130 7C 08 03 A6 */ mtlr r0 -/* 8034B134 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/DVDReadAbsAsyncForBS.s b/asm/dolphin/dvd/dvd/DVDReadAbsAsyncForBS.s deleted file mode 100644 index f988406bc0..0000000000 --- a/asm/dolphin/dvd/dvd/DVDReadAbsAsyncForBS.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_8034AE08: -/* 8034AE08 7C 08 02 A6 */ mflr r0 -/* 8034AE0C 90 01 00 04 */ stw r0, 4(r1) -/* 8034AE10 38 00 00 04 */ li r0, 4 -/* 8034AE14 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8034AE18 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 8034AE1C 3B E3 00 00 */ addi r31, r3, 0 -/* 8034AE20 93 C1 00 28 */ stw r30, 0x28(r1) -/* 8034AE24 90 03 00 08 */ stw r0, 8(r3) -/* 8034AE28 38 00 00 00 */ li r0, 0 -/* 8034AE2C 90 83 00 18 */ stw r4, 0x18(r3) -/* 8034AE30 90 A3 00 14 */ stw r5, 0x14(r3) -/* 8034AE34 90 C3 00 10 */ stw r6, 0x10(r3) -/* 8034AE38 90 03 00 20 */ stw r0, 0x20(r3) -/* 8034AE3C 90 E3 00 28 */ stw r7, 0x28(r3) -/* 8034AE40 80 0D 84 6C */ lwz r0, autoInvalidation(r13) -/* 8034AE44 2C 00 00 00 */ cmpwi r0, 0 -/* 8034AE48 41 82 00 30 */ beq lbl_8034AE78 -/* 8034AE4C 80 7F 00 08 */ lwz r3, 8(r31) -/* 8034AE50 28 03 00 01 */ cmplwi r3, 1 -/* 8034AE54 41 82 00 18 */ beq lbl_8034AE6C -/* 8034AE58 38 03 FF FC */ addi r0, r3, -4 -/* 8034AE5C 28 00 00 01 */ cmplwi r0, 1 -/* 8034AE60 40 81 00 0C */ ble lbl_8034AE6C -/* 8034AE64 28 03 00 0E */ cmplwi r3, 0xe -/* 8034AE68 40 82 00 10 */ bne lbl_8034AE78 -lbl_8034AE6C: -/* 8034AE6C 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8034AE70 80 9F 00 14 */ lwz r4, 0x14(r31) -/* 8034AE74 4B FF 07 0D */ bl DCInvalidateRange -lbl_8034AE78: -/* 8034AE78 4B FF 28 7D */ bl OSDisableInterrupts -/* 8034AE7C 38 00 00 02 */ li r0, 2 -/* 8034AE80 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8034AE84 3B C3 00 00 */ addi r30, r3, 0 -/* 8034AE88 38 9F 00 00 */ addi r4, r31, 0 -/* 8034AE8C 38 60 00 02 */ li r3, 2 -/* 8034AE90 48 00 0A 1D */ bl __DVDPushWaitingQueue -/* 8034AE94 80 0D 91 F8 */ lwz r0, executing(r13) -/* 8034AE98 3B E3 00 00 */ addi r31, r3, 0 -/* 8034AE9C 28 00 00 00 */ cmplwi r0, 0 -/* 8034AEA0 40 82 00 14 */ bne lbl_8034AEB4 -/* 8034AEA4 80 0D 92 04 */ lwz r0, PauseFlag(r13) -/* 8034AEA8 2C 00 00 00 */ cmpwi r0, 0 -/* 8034AEAC 40 82 00 08 */ bne lbl_8034AEB4 -/* 8034AEB0 4B FF F1 FD */ bl stateReady -lbl_8034AEB4: -/* 8034AEB4 7F C3 F3 78 */ mr r3, r30 -/* 8034AEB8 4B FF 28 65 */ bl OSRestoreInterrupts -/* 8034AEBC 7F E3 FB 78 */ mr r3, r31 -/* 8034AEC0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8034AEC4 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 8034AEC8 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 8034AECC 38 21 00 30 */ addi r1, r1, 0x30 -/* 8034AED0 7C 08 03 A6 */ mtlr r0 -/* 8034AED4 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/DVDReadAbsAsyncPrio.s b/asm/dolphin/dvd/dvd/DVDReadAbsAsyncPrio.s deleted file mode 100644 index 21506fe7d6..0000000000 --- a/asm/dolphin/dvd/dvd/DVDReadAbsAsyncPrio.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_8034AD2C: -/* 8034AD2C 7C 08 02 A6 */ mflr r0 -/* 8034AD30 90 01 00 04 */ stw r0, 4(r1) -/* 8034AD34 38 00 00 01 */ li r0, 1 -/* 8034AD38 94 21 FF C8 */ stwu r1, -0x38(r1) -/* 8034AD3C 93 E1 00 34 */ stw r31, 0x34(r1) -/* 8034AD40 3B E8 00 00 */ addi r31, r8, 0 -/* 8034AD44 93 C1 00 30 */ stw r30, 0x30(r1) -/* 8034AD48 93 A1 00 2C */ stw r29, 0x2c(r1) -/* 8034AD4C 3B A3 00 00 */ addi r29, r3, 0 -/* 8034AD50 90 03 00 08 */ stw r0, 8(r3) -/* 8034AD54 38 00 00 00 */ li r0, 0 -/* 8034AD58 90 83 00 18 */ stw r4, 0x18(r3) -/* 8034AD5C 90 A3 00 14 */ stw r5, 0x14(r3) -/* 8034AD60 90 C3 00 10 */ stw r6, 0x10(r3) -/* 8034AD64 90 03 00 20 */ stw r0, 0x20(r3) -/* 8034AD68 90 E3 00 28 */ stw r7, 0x28(r3) -/* 8034AD6C 80 0D 84 6C */ lwz r0, autoInvalidation(r13) -/* 8034AD70 2C 00 00 00 */ cmpwi r0, 0 -/* 8034AD74 41 82 00 30 */ beq lbl_8034ADA4 -/* 8034AD78 80 7D 00 08 */ lwz r3, 8(r29) -/* 8034AD7C 28 03 00 01 */ cmplwi r3, 1 -/* 8034AD80 41 82 00 18 */ beq lbl_8034AD98 -/* 8034AD84 38 03 FF FC */ addi r0, r3, -4 -/* 8034AD88 28 00 00 01 */ cmplwi r0, 1 -/* 8034AD8C 40 81 00 0C */ ble lbl_8034AD98 -/* 8034AD90 28 03 00 0E */ cmplwi r3, 0xe -/* 8034AD94 40 82 00 10 */ bne lbl_8034ADA4 -lbl_8034AD98: -/* 8034AD98 80 7D 00 18 */ lwz r3, 0x18(r29) -/* 8034AD9C 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 8034ADA0 4B FF 07 E1 */ bl DCInvalidateRange -lbl_8034ADA4: -/* 8034ADA4 4B FF 29 51 */ bl OSDisableInterrupts -/* 8034ADA8 38 00 00 02 */ li r0, 2 -/* 8034ADAC 90 1D 00 0C */ stw r0, 0xc(r29) -/* 8034ADB0 3B C3 00 00 */ addi r30, r3, 0 -/* 8034ADB4 38 7F 00 00 */ addi r3, r31, 0 -/* 8034ADB8 38 9D 00 00 */ addi r4, r29, 0 -/* 8034ADBC 48 00 0A F1 */ bl __DVDPushWaitingQueue -/* 8034ADC0 80 0D 91 F8 */ lwz r0, executing(r13) -/* 8034ADC4 3B E3 00 00 */ addi r31, r3, 0 -/* 8034ADC8 28 00 00 00 */ cmplwi r0, 0 -/* 8034ADCC 40 82 00 14 */ bne lbl_8034ADE0 -/* 8034ADD0 80 0D 92 04 */ lwz r0, PauseFlag(r13) -/* 8034ADD4 2C 00 00 00 */ cmpwi r0, 0 -/* 8034ADD8 40 82 00 08 */ bne lbl_8034ADE0 -/* 8034ADDC 4B FF F2 D1 */ bl stateReady -lbl_8034ADE0: -/* 8034ADE0 7F C3 F3 78 */ mr r3, r30 -/* 8034ADE4 4B FF 29 39 */ bl OSRestoreInterrupts -/* 8034ADE8 7F E3 FB 78 */ mr r3, r31 -/* 8034ADEC 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 8034ADF0 83 E1 00 34 */ lwz r31, 0x34(r1) -/* 8034ADF4 83 C1 00 30 */ lwz r30, 0x30(r1) -/* 8034ADF8 83 A1 00 2C */ lwz r29, 0x2c(r1) -/* 8034ADFC 38 21 00 38 */ addi r1, r1, 0x38 -/* 8034AE00 7C 08 03 A6 */ mtlr r0 -/* 8034AE04 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/DVDReadDiskID.s b/asm/dolphin/dvd/dvd/DVDReadDiskID.s deleted file mode 100644 index 22f315a9d9..0000000000 --- a/asm/dolphin/dvd/dvd/DVDReadDiskID.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_8034AED8: -/* 8034AED8 7C 08 02 A6 */ mflr r0 -/* 8034AEDC 90 01 00 04 */ stw r0, 4(r1) -/* 8034AEE0 38 00 00 05 */ li r0, 5 -/* 8034AEE4 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 8034AEE8 93 E1 00 24 */ stw r31, 0x24(r1) -/* 8034AEEC 3B E3 00 00 */ addi r31, r3, 0 -/* 8034AEF0 93 C1 00 20 */ stw r30, 0x20(r1) -/* 8034AEF4 90 03 00 08 */ stw r0, 8(r3) -/* 8034AEF8 38 60 00 20 */ li r3, 0x20 -/* 8034AEFC 38 00 00 00 */ li r0, 0 -/* 8034AF00 90 9F 00 18 */ stw r4, 0x18(r31) -/* 8034AF04 90 7F 00 14 */ stw r3, 0x14(r31) -/* 8034AF08 90 1F 00 10 */ stw r0, 0x10(r31) -/* 8034AF0C 90 1F 00 20 */ stw r0, 0x20(r31) -/* 8034AF10 90 BF 00 28 */ stw r5, 0x28(r31) -/* 8034AF14 80 0D 84 6C */ lwz r0, autoInvalidation(r13) -/* 8034AF18 2C 00 00 00 */ cmpwi r0, 0 -/* 8034AF1C 41 82 00 30 */ beq lbl_8034AF4C -/* 8034AF20 80 7F 00 08 */ lwz r3, 8(r31) -/* 8034AF24 28 03 00 01 */ cmplwi r3, 1 -/* 8034AF28 41 82 00 18 */ beq lbl_8034AF40 -/* 8034AF2C 38 03 FF FC */ addi r0, r3, -4 -/* 8034AF30 28 00 00 01 */ cmplwi r0, 1 -/* 8034AF34 40 81 00 0C */ ble lbl_8034AF40 -/* 8034AF38 28 03 00 0E */ cmplwi r3, 0xe -/* 8034AF3C 40 82 00 10 */ bne lbl_8034AF4C -lbl_8034AF40: -/* 8034AF40 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8034AF44 80 9F 00 14 */ lwz r4, 0x14(r31) -/* 8034AF48 4B FF 06 39 */ bl DCInvalidateRange -lbl_8034AF4C: -/* 8034AF4C 4B FF 27 A9 */ bl OSDisableInterrupts -/* 8034AF50 38 00 00 02 */ li r0, 2 -/* 8034AF54 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8034AF58 3B C3 00 00 */ addi r30, r3, 0 -/* 8034AF5C 38 9F 00 00 */ addi r4, r31, 0 -/* 8034AF60 38 60 00 02 */ li r3, 2 -/* 8034AF64 48 00 09 49 */ bl __DVDPushWaitingQueue -/* 8034AF68 80 0D 91 F8 */ lwz r0, executing(r13) -/* 8034AF6C 3B E3 00 00 */ addi r31, r3, 0 -/* 8034AF70 28 00 00 00 */ cmplwi r0, 0 -/* 8034AF74 40 82 00 14 */ bne lbl_8034AF88 -/* 8034AF78 80 0D 92 04 */ lwz r0, PauseFlag(r13) -/* 8034AF7C 2C 00 00 00 */ cmpwi r0, 0 -/* 8034AF80 40 82 00 08 */ bne lbl_8034AF88 -/* 8034AF84 4B FF F1 29 */ bl stateReady -lbl_8034AF88: -/* 8034AF88 7F C3 F3 78 */ mr r3, r30 -/* 8034AF8C 4B FF 27 91 */ bl OSRestoreInterrupts -/* 8034AF90 7F E3 FB 78 */ mr r3, r31 -/* 8034AF94 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8034AF98 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 8034AF9C 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 8034AFA0 38 21 00 28 */ addi r1, r1, 0x28 -/* 8034AFA4 7C 08 03 A6 */ mtlr r0 -/* 8034AFA8 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/__DVDPrepareResetAsync.s b/asm/dolphin/dvd/dvd/__DVDPrepareResetAsync.s deleted file mode 100644 index 2dc596ae71..0000000000 --- a/asm/dolphin/dvd/dvd/__DVDPrepareResetAsync.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_8034B720: -/* 8034B720 7C 08 02 A6 */ mflr r0 -/* 8034B724 90 01 00 04 */ stw r0, 4(r1) -/* 8034B728 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8034B72C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8034B730 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8034B734 7C 7E 1B 78 */ mr r30, r3 -/* 8034B738 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8034B73C 4B FF 1F B9 */ bl OSDisableInterrupts -/* 8034B740 7C 7D 1B 78 */ mr r29, r3 -/* 8034B744 48 00 01 31 */ bl __DVDClearWaitingQueue -/* 8034B748 80 0D 92 18 */ lwz r0, Canceling(r13) -/* 8034B74C 28 00 00 00 */ cmplwi r0, 0 -/* 8034B750 41 82 00 0C */ beq lbl_8034B75C -/* 8034B754 93 CD 92 1C */ stw r30, CancelCallback(r13) -/* 8034B758 48 00 00 C0 */ b lbl_8034B818 -lbl_8034B75C: -/* 8034B75C 80 6D 91 F8 */ lwz r3, executing(r13) -/* 8034B760 28 03 00 00 */ cmplwi r3, 0 -/* 8034B764 41 82 00 0C */ beq lbl_8034B770 -/* 8034B768 38 00 00 00 */ li r0, 0 -/* 8034B76C 90 03 00 28 */ stw r0, 0x28(r3) -lbl_8034B770: -/* 8034B770 4B FF 1F 85 */ bl OSDisableInterrupts -/* 8034B774 7C 7F 1B 78 */ mr r31, r3 -/* 8034B778 4B FF 1F 7D */ bl OSDisableInterrupts -/* 8034B77C 80 0D 91 F8 */ lwz r0, executing(r13) -/* 8034B780 38 80 00 01 */ li r4, 1 -/* 8034B784 90 8D 92 04 */ stw r4, PauseFlag(r13) -/* 8034B788 28 00 00 00 */ cmplwi r0, 0 -/* 8034B78C 40 82 00 08 */ bne lbl_8034B794 -/* 8034B790 90 8D 92 08 */ stw r4, PausingFlag(r13) -lbl_8034B794: -/* 8034B794 4B FF 1F 89 */ bl OSRestoreInterrupts -/* 8034B798 48 00 00 0C */ b lbl_8034B7A4 -lbl_8034B79C: -/* 8034B79C 38 80 00 00 */ li r4, 0 -/* 8034B7A0 4B FF FB 35 */ bl DVDCancelAsync -lbl_8034B7A4: -/* 8034B7A4 48 00 01 71 */ bl __DVDPopWaitingQueue -/* 8034B7A8 28 03 00 00 */ cmplwi r3, 0 -/* 8034B7AC 40 82 FF F0 */ bne lbl_8034B79C -/* 8034B7B0 80 6D 91 F8 */ lwz r3, executing(r13) -/* 8034B7B4 28 03 00 00 */ cmplwi r3, 0 -/* 8034B7B8 41 82 00 10 */ beq lbl_8034B7C8 -/* 8034B7BC 7F C4 F3 78 */ mr r4, r30 -/* 8034B7C0 4B FF FB 15 */ bl DVDCancelAsync -/* 8034B7C4 48 00 00 20 */ b lbl_8034B7E4 -lbl_8034B7C8: -/* 8034B7C8 28 1E 00 00 */ cmplwi r30, 0 -/* 8034B7CC 41 82 00 18 */ beq lbl_8034B7E4 -/* 8034B7D0 39 9E 00 00 */ addi r12, r30, 0 -/* 8034B7D4 7D 88 03 A6 */ mtlr r12 -/* 8034B7D8 38 60 00 00 */ li r3, 0 -/* 8034B7DC 38 80 00 00 */ li r4, 0 -/* 8034B7E0 4E 80 00 21 */ blrl -lbl_8034B7E4: -/* 8034B7E4 4B FF 1F 11 */ bl OSDisableInterrupts -/* 8034B7E8 38 80 00 00 */ li r4, 0 -/* 8034B7EC 90 8D 92 04 */ stw r4, PauseFlag(r13) -/* 8034B7F0 7C 7E 1B 78 */ mr r30, r3 -/* 8034B7F4 80 0D 92 08 */ lwz r0, PausingFlag(r13) -/* 8034B7F8 2C 00 00 00 */ cmpwi r0, 0 -/* 8034B7FC 41 82 00 0C */ beq lbl_8034B808 -/* 8034B800 90 8D 92 08 */ stw r4, PausingFlag(r13) -/* 8034B804 4B FF E8 A9 */ bl stateReady -lbl_8034B808: -/* 8034B808 7F C3 F3 78 */ mr r3, r30 -/* 8034B80C 4B FF 1F 11 */ bl OSRestoreInterrupts -/* 8034B810 7F E3 FB 78 */ mr r3, r31 -/* 8034B814 4B FF 1F 09 */ bl OSRestoreInterrupts -lbl_8034B818: -/* 8034B818 7F A3 EB 78 */ mr r3, r29 -/* 8034B81C 4B FF 1F 01 */ bl OSRestoreInterrupts -/* 8034B820 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8034B824 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8034B828 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8034B82C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8034B830 38 21 00 20 */ addi r1, r1, 0x20 -/* 8034B834 7C 08 03 A6 */ mtlr r0 -/* 8034B838 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/cbForStateBusy.s b/asm/dolphin/dvd/dvd/cbForStateBusy.s deleted file mode 100644 index 23240e013a..0000000000 --- a/asm/dolphin/dvd/dvd/cbForStateBusy.s +++ /dev/null @@ -1,462 +0,0 @@ -lbl_8034A6D4: -/* 8034A6D4 7C 08 02 A6 */ mflr r0 -/* 8034A6D8 28 03 00 10 */ cmplwi r3, 0x10 -/* 8034A6DC 90 01 00 04 */ stw r0, 4(r1) -/* 8034A6E0 3C 80 80 45 */ lis r4, BB2@ha /* 0x8044C900@ha */ -/* 8034A6E4 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034A6E8 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034A6EC 3B E4 C9 00 */ addi r31, r4, BB2@l /* 0x8044C900@l */ -/* 8034A6F0 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8034A6F4 40 82 00 20 */ bne lbl_8034A714 -/* 8034A6F8 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234568@ha */ -/* 8034A6FC 38 63 45 68 */ addi r3, r3, 0x4568 /* 0x01234568@l */ -/* 8034A700 48 00 14 89 */ bl __DVDStoreErrorCode -/* 8034A704 48 00 0A 35 */ bl DVDReset -/* 8034A708 38 60 00 00 */ li r3, 0 -/* 8034A70C 4B FF EB D1 */ bl cbForStateError -/* 8034A710 48 00 06 04 */ b lbl_8034AD14 -lbl_8034A714: -/* 8034A714 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034A718 28 00 00 03 */ cmplwi r0, 3 -/* 8034A71C 41 82 00 10 */ beq lbl_8034A72C -/* 8034A720 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034A724 28 00 00 0F */ cmplwi r0, 0xf -/* 8034A728 40 82 00 E0 */ bne lbl_8034A808 -lbl_8034A72C: -/* 8034A72C 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e -/* 8034A730 41 82 00 20 */ beq lbl_8034A750 -/* 8034A734 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234567@ha */ -/* 8034A738 38 63 45 67 */ addi r3, r3, 0x4567 /* 0x01234567@l */ -/* 8034A73C 48 00 14 4D */ bl __DVDStoreErrorCode -/* 8034A740 3C 60 80 35 */ lis r3, cbForStateError@ha /* 0x803492DC@ha */ -/* 8034A744 38 63 92 DC */ addi r3, r3, cbForStateError@l /* 0x803492DC@l */ -/* 8034A748 4B FF D8 CD */ bl DVDLowStopMotor -/* 8034A74C 48 00 05 C8 */ b lbl_8034AD14 -lbl_8034A750: -/* 8034A750 38 00 00 00 */ li r0, 0 -/* 8034A754 90 0D 92 2C */ stw r0, NumInternalRetry(r13) -/* 8034A758 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034A75C 28 00 00 0F */ cmplwi r0, 0xf -/* 8034A760 40 82 00 0C */ bne lbl_8034A76C -/* 8034A764 38 00 00 01 */ li r0, 1 -/* 8034A768 90 0D 92 30 */ stw r0, ResetRequired(r13) -lbl_8034A76C: -/* 8034A76C 80 0D 92 18 */ lwz r0, Canceling(r13) -/* 8034A770 28 00 00 00 */ cmplwi r0, 0 -/* 8034A774 41 82 00 6C */ beq lbl_8034A7E0 -/* 8034A778 38 00 00 07 */ li r0, 7 -/* 8034A77C 83 CD 91 F8 */ lwz r30, executing(r13) -/* 8034A780 90 0D 92 20 */ stw r0, ResumeFromHere(r13) -/* 8034A784 38 7F 00 40 */ addi r3, r31, 0x40 -/* 8034A788 38 00 00 00 */ li r0, 0 -/* 8034A78C 90 0D 92 18 */ stw r0, Canceling(r13) -/* 8034A790 38 00 00 0A */ li r0, 0xa -/* 8034A794 90 6D 91 F8 */ stw r3, executing(r13) -/* 8034A798 90 1E 00 0C */ stw r0, 0xc(r30) -/* 8034A79C 81 9E 00 28 */ lwz r12, 0x28(r30) -/* 8034A7A0 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A7A4 41 82 00 14 */ beq lbl_8034A7B8 -/* 8034A7A8 7D 88 03 A6 */ mtlr r12 -/* 8034A7AC 38 9E 00 00 */ addi r4, r30, 0 -/* 8034A7B0 38 60 FF FD */ li r3, -3 -/* 8034A7B4 4E 80 00 21 */ blrl -lbl_8034A7B8: -/* 8034A7B8 81 8D 92 1C */ lwz r12, CancelCallback(r13) -/* 8034A7BC 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A7C0 41 82 00 14 */ beq lbl_8034A7D4 -/* 8034A7C4 7D 88 03 A6 */ mtlr r12 -/* 8034A7C8 38 9E 00 00 */ addi r4, r30, 0 -/* 8034A7CC 38 60 00 00 */ li r3, 0 -/* 8034A7D0 4E 80 00 21 */ blrl -lbl_8034A7D4: -/* 8034A7D4 4B FF F8 D9 */ bl stateReady -/* 8034A7D8 38 00 00 01 */ li r0, 1 -/* 8034A7DC 48 00 00 08 */ b lbl_8034A7E4 -lbl_8034A7E0: -/* 8034A7E0 38 00 00 00 */ li r0, 0 -lbl_8034A7E4: -/* 8034A7E4 2C 00 00 00 */ cmpwi r0, 0 -/* 8034A7E8 40 82 05 2C */ bne lbl_8034AD14 -/* 8034A7EC 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034A7F0 38 00 00 07 */ li r0, 7 -/* 8034A7F4 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */ -/* 8034A7F8 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034A7FC 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */ -/* 8034A800 4B FF D7 45 */ bl DVDLowWaitCoverClose -/* 8034A804 48 00 05 10 */ b lbl_8034AD14 -lbl_8034A808: -/* 8034A808 80 8D 92 14 */ lwz r4, CurrCommand(r13) -/* 8034A80C 28 04 00 01 */ cmplwi r4, 1 -/* 8034A810 41 82 00 18 */ beq lbl_8034A828 -/* 8034A814 38 04 FF FC */ addi r0, r4, -4 -/* 8034A818 28 00 00 01 */ cmplwi r0, 1 -/* 8034A81C 40 81 00 0C */ ble lbl_8034A828 -/* 8034A820 28 04 00 0E */ cmplwi r4, 0xe -/* 8034A824 40 82 00 0C */ bne lbl_8034A830 -lbl_8034A828: -/* 8034A828 38 00 00 01 */ li r0, 1 -/* 8034A82C 48 00 00 1C */ b lbl_8034A848 -lbl_8034A830: -/* 8034A830 80 0D 84 7C */ lwz r0, DmaCommand(r13) -/* 8034A834 7C 04 00 40 */ cmplw r4, r0 -/* 8034A838 40 82 00 0C */ bne lbl_8034A844 -/* 8034A83C 38 00 00 01 */ li r0, 1 -/* 8034A840 48 00 00 08 */ b lbl_8034A848 -lbl_8034A844: -/* 8034A844 38 00 00 00 */ li r0, 0 -lbl_8034A848: -/* 8034A848 2C 00 00 00 */ cmpwi r0, 0 -/* 8034A84C 41 82 00 28 */ beq lbl_8034A874 -/* 8034A850 80 CD 91 F8 */ lwz r6, executing(r13) -/* 8034A854 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006000@ha */ -/* 8034A858 38 84 60 00 */ addi r4, r4, 0x6000 /* 0xCC006000@l */ -/* 8034A85C 80 84 00 18 */ lwz r4, 0x18(r4) -/* 8034A860 80 06 00 1C */ lwz r0, 0x1c(r6) -/* 8034A864 80 A6 00 20 */ lwz r5, 0x20(r6) -/* 8034A868 7C 04 00 50 */ subf r0, r4, r0 -/* 8034A86C 7C 05 02 14 */ add r0, r5, r0 -/* 8034A870 90 06 00 20 */ stw r0, 0x20(r6) -lbl_8034A874: -/* 8034A874 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c -/* 8034A878 41 82 00 60 */ beq lbl_8034A8D8 -/* 8034A87C 83 CD 91 F8 */ lwz r30, executing(r13) -/* 8034A880 38 7F 00 40 */ addi r3, r31, 0x40 -/* 8034A884 38 00 00 00 */ li r0, 0 -/* 8034A888 90 0D 92 18 */ stw r0, Canceling(r13) -/* 8034A88C 38 00 00 0A */ li r0, 0xa -/* 8034A890 90 6D 91 F8 */ stw r3, executing(r13) -/* 8034A894 90 1E 00 0C */ stw r0, 0xc(r30) -/* 8034A898 81 9E 00 28 */ lwz r12, 0x28(r30) -/* 8034A89C 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A8A0 41 82 00 14 */ beq lbl_8034A8B4 -/* 8034A8A4 7D 88 03 A6 */ mtlr r12 -/* 8034A8A8 38 9E 00 00 */ addi r4, r30, 0 -/* 8034A8AC 38 60 FF FD */ li r3, -3 -/* 8034A8B0 4E 80 00 21 */ blrl -lbl_8034A8B4: -/* 8034A8B4 81 8D 92 1C */ lwz r12, CancelCallback(r13) -/* 8034A8B8 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A8BC 41 82 00 14 */ beq lbl_8034A8D0 -/* 8034A8C0 7D 88 03 A6 */ mtlr r12 -/* 8034A8C4 38 9E 00 00 */ addi r4, r30, 0 -/* 8034A8C8 38 60 00 00 */ li r3, 0 -/* 8034A8CC 4E 80 00 21 */ blrl -lbl_8034A8D0: -/* 8034A8D0 4B FF F7 DD */ bl stateReady -/* 8034A8D4 48 00 04 40 */ b lbl_8034AD14 -lbl_8034A8D8: -/* 8034A8D8 54 60 07 FF */ clrlwi. r0, r3, 0x1f -/* 8034A8DC 41 82 03 14 */ beq lbl_8034ABF0 -/* 8034A8E0 38 A0 00 00 */ li r5, 0 -/* 8034A8E4 90 AD 92 2C */ stw r5, NumInternalRetry(r13) -/* 8034A8E8 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034A8EC 28 00 00 10 */ cmplwi r0, 0x10 -/* 8034A8F0 40 82 00 3C */ bne lbl_8034A92C -/* 8034A8F4 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034A8F8 38 1F 00 40 */ addi r0, r31, 0x40 -/* 8034A8FC 38 60 00 01 */ li r3, 1 -/* 8034A900 90 6D 92 38 */ stw r3, MotorState(r13) -/* 8034A904 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034A908 90 A4 00 0C */ stw r5, 0xc(r4) -/* 8034A90C 81 84 00 28 */ lwz r12, 0x28(r4) -/* 8034A910 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A914 41 82 00 10 */ beq lbl_8034A924 -/* 8034A918 7D 88 03 A6 */ mtlr r12 -/* 8034A91C 38 60 00 00 */ li r3, 0 -/* 8034A920 4E 80 00 21 */ blrl -lbl_8034A924: -/* 8034A924 4B FF F7 89 */ bl stateReady -/* 8034A928 48 00 03 EC */ b lbl_8034AD14 -lbl_8034A92C: -/* 8034A92C 80 0D 92 18 */ lwz r0, Canceling(r13) -/* 8034A930 28 00 00 00 */ cmplwi r0, 0 -/* 8034A934 41 82 00 60 */ beq lbl_8034A994 -/* 8034A938 90 AD 92 20 */ stw r5, ResumeFromHere(r13) -/* 8034A93C 38 7F 00 40 */ addi r3, r31, 0x40 -/* 8034A940 83 CD 91 F8 */ lwz r30, executing(r13) -/* 8034A944 38 00 00 0A */ li r0, 0xa -/* 8034A948 90 AD 92 18 */ stw r5, Canceling(r13) -/* 8034A94C 90 6D 91 F8 */ stw r3, executing(r13) -/* 8034A950 90 1E 00 0C */ stw r0, 0xc(r30) -/* 8034A954 81 9E 00 28 */ lwz r12, 0x28(r30) -/* 8034A958 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A95C 41 82 00 14 */ beq lbl_8034A970 -/* 8034A960 7D 88 03 A6 */ mtlr r12 -/* 8034A964 38 9E 00 00 */ addi r4, r30, 0 -/* 8034A968 38 60 FF FD */ li r3, -3 -/* 8034A96C 4E 80 00 21 */ blrl -lbl_8034A970: -/* 8034A970 81 8D 92 1C */ lwz r12, CancelCallback(r13) -/* 8034A974 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A978 41 82 00 14 */ beq lbl_8034A98C -/* 8034A97C 7D 88 03 A6 */ mtlr r12 -/* 8034A980 38 9E 00 00 */ addi r4, r30, 0 -/* 8034A984 38 60 00 00 */ li r3, 0 -/* 8034A988 4E 80 00 21 */ blrl -lbl_8034A98C: -/* 8034A98C 4B FF F7 21 */ bl stateReady -/* 8034A990 38 A0 00 01 */ li r5, 1 -lbl_8034A994: -/* 8034A994 2C 05 00 00 */ cmpwi r5, 0 -/* 8034A998 40 82 03 7C */ bne lbl_8034AD14 -/* 8034A99C 80 6D 92 14 */ lwz r3, CurrCommand(r13) -/* 8034A9A0 28 03 00 01 */ cmplwi r3, 1 -/* 8034A9A4 41 82 00 18 */ beq lbl_8034A9BC -/* 8034A9A8 38 03 FF FC */ addi r0, r3, -4 -/* 8034A9AC 28 00 00 01 */ cmplwi r0, 1 -/* 8034A9B0 40 81 00 0C */ ble lbl_8034A9BC -/* 8034A9B4 28 03 00 0E */ cmplwi r3, 0xe -/* 8034A9B8 40 82 00 0C */ bne lbl_8034A9C4 -lbl_8034A9BC: -/* 8034A9BC 38 00 00 01 */ li r0, 1 -/* 8034A9C0 48 00 00 1C */ b lbl_8034A9DC -lbl_8034A9C4: -/* 8034A9C4 80 0D 84 7C */ lwz r0, DmaCommand(r13) -/* 8034A9C8 7C 03 00 40 */ cmplw r3, r0 -/* 8034A9CC 40 82 00 0C */ bne lbl_8034A9D8 -/* 8034A9D0 38 00 00 01 */ li r0, 1 -/* 8034A9D4 48 00 00 08 */ b lbl_8034A9DC -lbl_8034A9D8: -/* 8034A9D8 38 00 00 00 */ li r0, 0 -lbl_8034A9DC: -/* 8034A9DC 2C 00 00 00 */ cmpwi r0, 0 -/* 8034A9E0 41 82 00 54 */ beq lbl_8034AA34 -/* 8034A9E4 80 6D 91 F8 */ lwz r3, executing(r13) -/* 8034A9E8 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8034A9EC 80 03 00 14 */ lwz r0, 0x14(r3) -/* 8034A9F0 7C 04 00 40 */ cmplw r4, r0 -/* 8034A9F4 41 82 00 0C */ beq lbl_8034AA00 -/* 8034A9F8 4B FF F9 9D */ bl stateBusy -/* 8034A9FC 48 00 03 18 */ b lbl_8034AD14 -lbl_8034AA00: -/* 8034AA00 38 1F 00 40 */ addi r0, r31, 0x40 -/* 8034AA04 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034AA08 38 00 00 00 */ li r0, 0 -/* 8034AA0C 38 83 00 00 */ addi r4, r3, 0 -/* 8034AA10 90 03 00 0C */ stw r0, 0xc(r3) -/* 8034AA14 81 83 00 28 */ lwz r12, 0x28(r3) -/* 8034AA18 28 0C 00 00 */ cmplwi r12, 0 -/* 8034AA1C 41 82 00 10 */ beq lbl_8034AA2C -/* 8034AA20 80 64 00 20 */ lwz r3, 0x20(r4) -/* 8034AA24 7D 88 03 A6 */ mtlr r12 -/* 8034AA28 4E 80 00 21 */ blrl -lbl_8034AA2C: -/* 8034AA2C 4B FF F6 81 */ bl stateReady -/* 8034AA30 48 00 02 E4 */ b lbl_8034AD14 -lbl_8034AA34: -/* 8034AA34 80 8D 92 14 */ lwz r4, CurrCommand(r13) -/* 8034AA38 38 04 FF F7 */ addi r0, r4, -9 -/* 8034AA3C 28 00 00 03 */ cmplwi r0, 3 -/* 8034AA40 41 81 00 0C */ bgt lbl_8034AA4C -/* 8034AA44 38 00 00 01 */ li r0, 1 -/* 8034AA48 48 00 00 48 */ b lbl_8034AA90 -lbl_8034AA4C: -/* 8034AA4C 3C 60 80 3D */ lis r3, ImmCommand@ha /* 0x803D15EC@ha */ -/* 8034AA50 84 03 15 EC */ lwzu r0, ImmCommand@l(r3) /* 0x803D15EC@l */ -/* 8034AA54 7C 04 00 40 */ cmplw r4, r0 -/* 8034AA58 40 82 00 0C */ bne lbl_8034AA64 -/* 8034AA5C 38 00 00 01 */ li r0, 1 -/* 8034AA60 48 00 00 30 */ b lbl_8034AA90 -lbl_8034AA64: -/* 8034AA64 84 03 00 04 */ lwzu r0, 4(r3) -/* 8034AA68 7C 04 00 40 */ cmplw r4, r0 -/* 8034AA6C 40 82 00 0C */ bne lbl_8034AA78 -/* 8034AA70 38 00 00 01 */ li r0, 1 -/* 8034AA74 48 00 00 1C */ b lbl_8034AA90 -lbl_8034AA78: -/* 8034AA78 80 03 00 04 */ lwz r0, 4(r3) -/* 8034AA7C 7C 04 00 40 */ cmplw r4, r0 -/* 8034AA80 40 82 00 0C */ bne lbl_8034AA8C -/* 8034AA84 38 00 00 01 */ li r0, 1 -/* 8034AA88 48 00 00 08 */ b lbl_8034AA90 -lbl_8034AA8C: -/* 8034AA8C 38 00 00 00 */ li r0, 0 -lbl_8034AA90: -/* 8034AA90 2C 00 00 00 */ cmpwi r0, 0 -/* 8034AA94 41 82 00 68 */ beq lbl_8034AAFC -/* 8034AA98 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034AA9C 28 00 00 0B */ cmplwi r0, 0xb -/* 8034AAA0 41 82 00 10 */ beq lbl_8034AAB0 -/* 8034AAA4 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034AAA8 28 00 00 0A */ cmplwi r0, 0xa -/* 8034AAAC 40 82 00 14 */ bne lbl_8034AAC0 -lbl_8034AAB0: -/* 8034AAB0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006020@ha */ -/* 8034AAB4 80 03 60 20 */ lwz r0, 0x6020(r3) /* 0xCC006020@l */ -/* 8034AAB8 54 03 10 3A */ slwi r3, r0, 2 -/* 8034AABC 48 00 00 10 */ b lbl_8034AACC -lbl_8034AAC0: -/* 8034AAC0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006000@ha */ -/* 8034AAC4 38 63 60 00 */ addi r3, r3, 0x6000 /* 0xCC006000@l */ -/* 8034AAC8 80 63 00 20 */ lwz r3, 0x20(r3) -lbl_8034AACC: -/* 8034AACC 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034AAD0 38 BF 00 40 */ addi r5, r31, 0x40 -/* 8034AAD4 38 00 00 00 */ li r0, 0 -/* 8034AAD8 90 AD 91 F8 */ stw r5, executing(r13) -/* 8034AADC 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034AAE0 81 84 00 28 */ lwz r12, 0x28(r4) -/* 8034AAE4 28 0C 00 00 */ cmplwi r12, 0 -/* 8034AAE8 41 82 00 0C */ beq lbl_8034AAF4 -/* 8034AAEC 7D 88 03 A6 */ mtlr r12 -/* 8034AAF0 4E 80 00 21 */ blrl -lbl_8034AAF4: -/* 8034AAF4 4B FF F5 B9 */ bl stateReady -/* 8034AAF8 48 00 02 1C */ b lbl_8034AD14 -lbl_8034AAFC: -/* 8034AAFC 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034AB00 28 00 00 06 */ cmplwi r0, 6 -/* 8034AB04 40 82 00 B8 */ bne lbl_8034ABBC -/* 8034AB08 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034AB0C 38 A4 00 1C */ addi r5, r4, 0x1c -/* 8034AB10 80 04 00 1C */ lwz r0, 0x1c(r4) -/* 8034AB14 28 00 00 00 */ cmplwi r0, 0 -/* 8034AB18 40 82 00 74 */ bne lbl_8034AB8C -/* 8034AB1C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006020@ha */ -/* 8034AB20 80 03 60 20 */ lwz r0, 0x6020(r3) /* 0xCC006020@l */ -/* 8034AB24 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 8034AB28 41 82 00 34 */ beq lbl_8034AB5C -/* 8034AB2C 38 1F 00 40 */ addi r0, r31, 0x40 -/* 8034AB30 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034AB34 38 00 00 09 */ li r0, 9 -/* 8034AB38 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034AB3C 81 84 00 28 */ lwz r12, 0x28(r4) -/* 8034AB40 28 0C 00 00 */ cmplwi r12, 0 -/* 8034AB44 41 82 00 10 */ beq lbl_8034AB54 -/* 8034AB48 7D 88 03 A6 */ mtlr r12 -/* 8034AB4C 38 60 FF FE */ li r3, -2 -/* 8034AB50 4E 80 00 21 */ blrl -lbl_8034AB54: -/* 8034AB54 4B FF F5 59 */ bl stateReady -/* 8034AB58 48 00 01 BC */ b lbl_8034AD14 -lbl_8034AB5C: -/* 8034AB5C 38 00 00 00 */ li r0, 0 -/* 8034AB60 90 0D 92 0C */ stw r0, AutoFinishing(r13) -/* 8034AB64 38 00 00 01 */ li r0, 1 -/* 8034AB68 3C 60 80 35 */ lis r3, cbForStateBusy@ha /* 0x8034A6D4@ha */ -/* 8034AB6C 90 05 00 00 */ stw r0, 0(r5) -/* 8034AB70 38 C3 A6 D4 */ addi r6, r3, cbForStateBusy@l /* 0x8034A6D4@l */ -/* 8034AB74 38 60 00 00 */ li r3, 0 -/* 8034AB78 80 AD 91 F8 */ lwz r5, executing(r13) -/* 8034AB7C 80 85 00 14 */ lwz r4, 0x14(r5) -/* 8034AB80 80 A5 00 10 */ lwz r5, 0x10(r5) -/* 8034AB84 4B FF D6 45 */ bl DVDLowAudioStream -/* 8034AB88 48 00 01 8C */ b lbl_8034AD14 -lbl_8034AB8C: -/* 8034AB8C 38 1F 00 40 */ addi r0, r31, 0x40 -/* 8034AB90 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034AB94 38 00 00 00 */ li r0, 0 -/* 8034AB98 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034AB9C 81 84 00 28 */ lwz r12, 0x28(r4) -/* 8034ABA0 28 0C 00 00 */ cmplwi r12, 0 -/* 8034ABA4 41 82 00 10 */ beq lbl_8034ABB4 -/* 8034ABA8 7D 88 03 A6 */ mtlr r12 -/* 8034ABAC 38 60 00 00 */ li r3, 0 -/* 8034ABB0 4E 80 00 21 */ blrl -lbl_8034ABB4: -/* 8034ABB4 4B FF F4 F9 */ bl stateReady -/* 8034ABB8 48 00 01 5C */ b lbl_8034AD14 -lbl_8034ABBC: -/* 8034ABBC 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034ABC0 38 7F 00 40 */ addi r3, r31, 0x40 -/* 8034ABC4 38 00 00 00 */ li r0, 0 -/* 8034ABC8 90 6D 91 F8 */ stw r3, executing(r13) -/* 8034ABCC 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034ABD0 81 84 00 28 */ lwz r12, 0x28(r4) -/* 8034ABD4 28 0C 00 00 */ cmplwi r12, 0 -/* 8034ABD8 41 82 00 10 */ beq lbl_8034ABE8 -/* 8034ABDC 7D 88 03 A6 */ mtlr r12 -/* 8034ABE0 38 60 00 00 */ li r3, 0 -/* 8034ABE4 4E 80 00 21 */ blrl -lbl_8034ABE8: -/* 8034ABE8 4B FF F4 C5 */ bl stateReady -/* 8034ABEC 48 00 01 28 */ b lbl_8034AD14 -lbl_8034ABF0: -/* 8034ABF0 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034ABF4 28 00 00 0E */ cmplwi r0, 0xe -/* 8034ABF8 40 82 00 20 */ bne lbl_8034AC18 -/* 8034ABFC 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234567@ha */ -/* 8034AC00 38 63 45 67 */ addi r3, r3, 0x4567 /* 0x01234567@l */ -/* 8034AC04 48 00 0F 85 */ bl __DVDStoreErrorCode -/* 8034AC08 3C 60 80 35 */ lis r3, cbForStateError@ha /* 0x803492DC@ha */ -/* 8034AC0C 38 63 92 DC */ addi r3, r3, cbForStateError@l /* 0x803492DC@l */ -/* 8034AC10 4B FF D4 05 */ bl DVDLowStopMotor -/* 8034AC14 48 00 01 00 */ b lbl_8034AD14 -lbl_8034AC18: -/* 8034AC18 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034AC1C 28 00 00 01 */ cmplwi r0, 1 -/* 8034AC20 41 82 00 28 */ beq lbl_8034AC48 -/* 8034AC24 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034AC28 28 00 00 04 */ cmplwi r0, 4 -/* 8034AC2C 41 82 00 1C */ beq lbl_8034AC48 -/* 8034AC30 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034AC34 28 00 00 05 */ cmplwi r0, 5 -/* 8034AC38 41 82 00 10 */ beq lbl_8034AC48 -/* 8034AC3C 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034AC40 28 00 00 0E */ cmplwi r0, 0xe -/* 8034AC44 40 82 00 C4 */ bne lbl_8034AD08 -lbl_8034AC48: -/* 8034AC48 83 CD 91 F8 */ lwz r30, executing(r13) -/* 8034AC4C 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 8034AC50 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8034AC54 7C 03 00 40 */ cmplw r3, r0 -/* 8034AC58 40 82 00 B0 */ bne lbl_8034AD08 -/* 8034AC5C 80 0D 92 18 */ lwz r0, Canceling(r13) -/* 8034AC60 28 00 00 00 */ cmplwi r0, 0 -/* 8034AC64 41 82 00 64 */ beq lbl_8034ACC8 -/* 8034AC68 38 80 00 00 */ li r4, 0 -/* 8034AC6C 90 8D 92 20 */ stw r4, ResumeFromHere(r13) -/* 8034AC70 38 7F 00 40 */ addi r3, r31, 0x40 -/* 8034AC74 38 00 00 0A */ li r0, 0xa -/* 8034AC78 90 8D 92 18 */ stw r4, Canceling(r13) -/* 8034AC7C 90 6D 91 F8 */ stw r3, executing(r13) -/* 8034AC80 90 1E 00 0C */ stw r0, 0xc(r30) -/* 8034AC84 81 9E 00 28 */ lwz r12, 0x28(r30) -/* 8034AC88 28 0C 00 00 */ cmplwi r12, 0 -/* 8034AC8C 41 82 00 14 */ beq lbl_8034ACA0 -/* 8034AC90 7D 88 03 A6 */ mtlr r12 -/* 8034AC94 38 9E 00 00 */ addi r4, r30, 0 -/* 8034AC98 38 60 FF FD */ li r3, -3 -/* 8034AC9C 4E 80 00 21 */ blrl -lbl_8034ACA0: -/* 8034ACA0 81 8D 92 1C */ lwz r12, CancelCallback(r13) -/* 8034ACA4 28 0C 00 00 */ cmplwi r12, 0 -/* 8034ACA8 41 82 00 14 */ beq lbl_8034ACBC -/* 8034ACAC 7D 88 03 A6 */ mtlr r12 -/* 8034ACB0 38 9E 00 00 */ addi r4, r30, 0 -/* 8034ACB4 38 60 00 00 */ li r3, 0 -/* 8034ACB8 4E 80 00 21 */ blrl -lbl_8034ACBC: -/* 8034ACBC 4B FF F3 F1 */ bl stateReady -/* 8034ACC0 38 00 00 01 */ li r0, 1 -/* 8034ACC4 48 00 00 08 */ b lbl_8034ACCC -lbl_8034ACC8: -/* 8034ACC8 38 00 00 00 */ li r0, 0 -lbl_8034ACCC: -/* 8034ACCC 2C 00 00 00 */ cmpwi r0, 0 -/* 8034ACD0 40 82 00 44 */ bne lbl_8034AD14 -/* 8034ACD4 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034ACD8 38 7F 00 40 */ addi r3, r31, 0x40 -/* 8034ACDC 38 00 00 00 */ li r0, 0 -/* 8034ACE0 90 6D 91 F8 */ stw r3, executing(r13) -/* 8034ACE4 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034ACE8 81 84 00 28 */ lwz r12, 0x28(r4) -/* 8034ACEC 28 0C 00 00 */ cmplwi r12, 0 -/* 8034ACF0 41 82 00 10 */ beq lbl_8034AD00 -/* 8034ACF4 80 64 00 20 */ lwz r3, 0x20(r4) -/* 8034ACF8 7D 88 03 A6 */ mtlr r12 -/* 8034ACFC 4E 80 00 21 */ blrl -lbl_8034AD00: -/* 8034AD00 4B FF F3 AD */ bl stateReady -/* 8034AD04 48 00 00 10 */ b lbl_8034AD14 -lbl_8034AD08: -/* 8034AD08 3C 60 80 35 */ lis r3, cbForStateGettingError@ha /* 0x80349498@ha */ -/* 8034AD0C 38 63 94 98 */ addi r3, r3, cbForStateGettingError@l /* 0x80349498@l */ -/* 8034AD10 4B FF D3 91 */ bl DVDLowRequestError -lbl_8034AD14: -/* 8034AD14 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034AD18 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034AD1C 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8034AD20 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034AD24 7C 08 03 A6 */ mtlr r0 -/* 8034AD28 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/cbForStateCheckID2.s b/asm/dolphin/dvd/dvd/cbForStateCheckID2.s deleted file mode 100644 index 5eddaa7220..0000000000 --- a/asm/dolphin/dvd/dvd/cbForStateCheckID2.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_80349C24: -/* 80349C24 7C 08 02 A6 */ mflr r0 -/* 80349C28 28 03 00 10 */ cmplwi r3, 0x10 -/* 80349C2C 90 01 00 04 */ stw r0, 4(r1) -/* 80349C30 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80349C34 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80349C38 40 82 00 20 */ bne lbl_80349C58 -/* 80349C3C 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234568@ha */ -/* 80349C40 38 63 45 68 */ addi r3, r3, 0x4568 /* 0x01234568@l */ -/* 80349C44 48 00 1F 45 */ bl __DVDStoreErrorCode -/* 80349C48 48 00 14 F1 */ bl DVDReset -/* 80349C4C 38 60 00 00 */ li r3, 0 -/* 80349C50 4B FF F6 8D */ bl cbForStateError -/* 80349C54 48 00 00 94 */ b lbl_80349CE8 -lbl_80349C58: -/* 80349C58 54 60 07 FF */ clrlwi. r0, r3, 0x1f -/* 80349C5C 41 82 00 80 */ beq lbl_80349CDC -/* 80349C60 3C 60 80 35 */ lis r3, stateReadingFST@ha /* 0x803491C8@ha */ -/* 80349C64 80 8D 92 00 */ lwz r4, bootInfo(r13) -/* 80349C68 38 03 91 C8 */ addi r0, r3, stateReadingFST@l /* 0x803491C8@l */ -/* 80349C6C 38 A0 00 00 */ li r5, 0 -/* 80349C70 90 0D 92 40 */ stw r0, LastState(r13) -/* 80349C74 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */ -/* 80349C78 90 AD 92 2C */ stw r5, NumInternalRetry(r13) -/* 80349C7C 38 63 C9 00 */ addi r3, r3, BB2@l /* 0x8044C900@l */ -/* 80349C80 3B E3 00 08 */ addi r31, r3, 8 -/* 80349C84 80 64 00 3C */ lwz r3, 0x3c(r4) -/* 80349C88 80 1F 00 00 */ lwz r0, 0(r31) -/* 80349C8C 7C 03 00 40 */ cmplw r3, r0 -/* 80349C90 40 80 00 1C */ bge lbl_80349CAC -/* 80349C94 3C 60 80 3D */ lis r3, lit_24@ha /* 0x803D1574@ha */ -/* 80349C98 4C C6 31 82 */ crclr 6 -/* 80349C9C 38 A3 15 74 */ addi r5, r3, lit_24@l /* 0x803D1574@l */ -/* 80349CA0 38 6D 84 74 */ la r3, lit_23(r13) /* 804509F4-_SDA_BASE_ */ -/* 80349CA4 38 80 02 95 */ li r4, 0x295 -/* 80349CA8 4B CB D1 D5 */ bl OSPanic -lbl_80349CAC: -/* 80349CAC 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */ -/* 80349CB0 80 DF 00 00 */ lwz r6, 0(r31) -/* 80349CB4 38 A3 C9 00 */ addi r5, r3, BB2@l /* 0x8044C900@l */ -/* 80349CB8 80 ED 92 00 */ lwz r7, bootInfo(r13) -/* 80349CBC 3C 80 80 35 */ lis r4, cbForStateReadingFST@ha /* 0x8034925C@ha */ -/* 80349CC0 80 A5 00 04 */ lwz r5, 4(r5) -/* 80349CC4 38 06 00 1F */ addi r0, r6, 0x1f -/* 80349CC8 80 67 00 38 */ lwz r3, 0x38(r7) -/* 80349CCC 38 C4 92 5C */ addi r6, r4, cbForStateReadingFST@l /* 0x8034925C@l */ -/* 80349CD0 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a -/* 80349CD4 4B FF DF 45 */ bl DVDLowRead -/* 80349CD8 48 00 00 10 */ b lbl_80349CE8 -lbl_80349CDC: -/* 80349CDC 3C 60 80 35 */ lis r3, cbForStateGettingError@ha /* 0x80349498@ha */ -/* 80349CE0 38 63 94 98 */ addi r3, r3, cbForStateGettingError@l /* 0x80349498@l */ -/* 80349CE4 4B FF E3 BD */ bl DVDLowRequestError -lbl_80349CE8: -/* 80349CE8 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80349CEC 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80349CF0 38 21 00 18 */ addi r1, r1, 0x18 -/* 80349CF4 7C 08 03 A6 */ mtlr r0 -/* 80349CF8 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/stateReadingFST.s b/asm/dolphin/dvd/dvd/stateReadingFST.s deleted file mode 100644 index 799c2da465..0000000000 --- a/asm/dolphin/dvd/dvd/stateReadingFST.s +++ /dev/null @@ -1,39 +0,0 @@ -lbl_803491C8: -/* 803491C8 7C 08 02 A6 */ mflr r0 -/* 803491CC 3C 60 80 35 */ lis r3, stateReadingFST@ha /* 0x803491C8@ha */ -/* 803491D0 90 01 00 04 */ stw r0, 4(r1) -/* 803491D4 38 03 91 C8 */ addi r0, r3, stateReadingFST@l /* 0x803491C8@l */ -/* 803491D8 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */ -/* 803491DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803491E0 38 63 C9 00 */ addi r3, r3, BB2@l /* 0x8044C900@l */ -/* 803491E4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803491E8 3B E3 00 08 */ addi r31, r3, 8 -/* 803491EC 90 0D 92 40 */ stw r0, LastState(r13) -/* 803491F0 80 8D 92 00 */ lwz r4, bootInfo(r13) -/* 803491F4 80 1F 00 00 */ lwz r0, 0(r31) -/* 803491F8 80 64 00 3C */ lwz r3, 0x3c(r4) -/* 803491FC 7C 03 00 40 */ cmplw r3, r0 -/* 80349200 40 80 00 1C */ bge lbl_8034921C -/* 80349204 3C 60 80 3D */ lis r3, lit_24@ha /* 0x803D1574@ha */ -/* 80349208 4C C6 31 82 */ crclr 6 -/* 8034920C 38 A3 15 74 */ addi r5, r3, lit_24@l /* 0x803D1574@l */ -/* 80349210 38 6D 84 74 */ la r3, lit_23(r13) /* 804509F4-_SDA_BASE_ */ -/* 80349214 38 80 02 95 */ li r4, 0x295 -/* 80349218 4B CB DC 65 */ bl OSPanic -lbl_8034921C: -/* 8034921C 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */ -/* 80349220 80 DF 00 00 */ lwz r6, 0(r31) -/* 80349224 38 A3 C9 00 */ addi r5, r3, BB2@l /* 0x8044C900@l */ -/* 80349228 80 ED 92 00 */ lwz r7, bootInfo(r13) -/* 8034922C 3C 80 80 35 */ lis r4, cbForStateReadingFST@ha /* 0x8034925C@ha */ -/* 80349230 80 A5 00 04 */ lwz r5, 4(r5) -/* 80349234 38 06 00 1F */ addi r0, r6, 0x1f -/* 80349238 80 67 00 38 */ lwz r3, 0x38(r7) -/* 8034923C 38 C4 92 5C */ addi r6, r4, cbForStateReadingFST@l /* 0x8034925C@l */ -/* 80349240 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a -/* 80349244 4B FF E9 D5 */ bl DVDLowRead -/* 80349248 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8034924C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80349250 38 21 00 10 */ addi r1, r1, 0x10 -/* 80349254 7C 08 03 A6 */ mtlr r0 -/* 80349258 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvd/stateReady.s b/asm/dolphin/dvd/dvd/stateReady.s deleted file mode 100644 index 01427ffd08..0000000000 --- a/asm/dolphin/dvd/dvd/stateReady.s +++ /dev/null @@ -1,209 +0,0 @@ -lbl_8034A0AC: -/* 8034A0AC 7C 08 02 A6 */ mflr r0 -/* 8034A0B0 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */ -/* 8034A0B4 90 01 00 04 */ stw r0, 4(r1) -/* 8034A0B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8034A0BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8034A0C0 3B E3 C9 00 */ addi r31, r3, BB2@l /* 0x8044C900@l */ -/* 8034A0C4 48 00 18 F1 */ bl __DVDCheckWaitingQueue -/* 8034A0C8 2C 03 00 00 */ cmpwi r3, 0 -/* 8034A0CC 40 82 00 10 */ bne lbl_8034A0DC -/* 8034A0D0 38 00 00 00 */ li r0, 0 -/* 8034A0D4 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034A0D8 48 00 02 A8 */ b lbl_8034A380 -lbl_8034A0DC: -/* 8034A0DC 80 0D 92 04 */ lwz r0, PauseFlag(r13) -/* 8034A0E0 2C 00 00 00 */ cmpwi r0, 0 -/* 8034A0E4 41 82 00 18 */ beq lbl_8034A0FC -/* 8034A0E8 38 60 00 01 */ li r3, 1 -/* 8034A0EC 38 00 00 00 */ li r0, 0 -/* 8034A0F0 90 6D 92 08 */ stw r3, PausingFlag(r13) -/* 8034A0F4 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034A0F8 48 00 02 88 */ b lbl_8034A380 -lbl_8034A0FC: -/* 8034A0FC 48 00 18 19 */ bl __DVDPopWaitingQueue -/* 8034A100 80 0D 92 10 */ lwz r0, FatalErrorFlag(r13) -/* 8034A104 90 6D 91 F8 */ stw r3, executing(r13) -/* 8034A108 2C 00 00 00 */ cmpwi r0, 0 -/* 8034A10C 41 82 00 3C */ beq lbl_8034A148 -/* 8034A110 80 6D 91 F8 */ lwz r3, executing(r13) -/* 8034A114 38 80 FF FF */ li r4, -1 -/* 8034A118 38 1F 00 40 */ addi r0, r31, 0x40 -/* 8034A11C 90 83 00 0C */ stw r4, 0xc(r3) -/* 8034A120 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034A124 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034A128 81 84 00 28 */ lwz r12, 0x28(r4) -/* 8034A12C 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A130 41 82 00 10 */ beq lbl_8034A140 -/* 8034A134 7D 88 03 A6 */ mtlr r12 -/* 8034A138 38 60 FF FF */ li r3, -1 -/* 8034A13C 4E 80 00 21 */ blrl -lbl_8034A140: -/* 8034A140 4B FF FF 6D */ bl stateReady -/* 8034A144 48 00 02 3C */ b lbl_8034A380 -lbl_8034A148: -/* 8034A148 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034A14C 80 04 00 08 */ lwz r0, 8(r4) -/* 8034A150 90 0D 92 14 */ stw r0, CurrCommand(r13) -/* 8034A154 80 0D 92 20 */ lwz r0, ResumeFromHere(r13) -/* 8034A158 28 00 00 00 */ cmplwi r0, 0 -/* 8034A15C 41 82 01 5C */ beq lbl_8034A2B8 -/* 8034A160 80 0D 92 20 */ lwz r0, ResumeFromHere(r13) -/* 8034A164 2C 00 00 04 */ cmpwi r0, 4 -/* 8034A168 41 82 00 64 */ beq lbl_8034A1CC -/* 8034A16C 40 80 00 1C */ bge lbl_8034A188 -/* 8034A170 2C 00 00 02 */ cmpwi r0, 2 -/* 8034A174 41 82 00 28 */ beq lbl_8034A19C -/* 8034A178 40 80 00 3C */ bge lbl_8034A1B4 -/* 8034A17C 2C 00 00 01 */ cmpwi r0, 1 -/* 8034A180 40 80 00 64 */ bge lbl_8034A1E4 -/* 8034A184 48 00 01 28 */ b lbl_8034A2AC -lbl_8034A188: -/* 8034A188 2C 00 00 08 */ cmpwi r0, 8 -/* 8034A18C 40 80 01 20 */ bge lbl_8034A2AC -/* 8034A190 2C 00 00 06 */ cmpwi r0, 6 -/* 8034A194 40 80 00 50 */ bge lbl_8034A1E4 -/* 8034A198 48 00 01 00 */ b lbl_8034A298 -lbl_8034A19C: -/* 8034A19C 38 00 00 0B */ li r0, 0xb -/* 8034A1A0 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */ -/* 8034A1A4 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034A1A8 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */ -/* 8034A1AC 4B FF DD 99 */ bl DVDLowWaitCoverClose -/* 8034A1B0 48 00 00 FC */ b lbl_8034A2AC -lbl_8034A1B4: -/* 8034A1B4 38 00 00 04 */ li r0, 4 -/* 8034A1B8 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */ -/* 8034A1BC 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034A1C0 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */ -/* 8034A1C4 4B FF DD 81 */ bl DVDLowWaitCoverClose -/* 8034A1C8 48 00 00 E4 */ b lbl_8034A2AC -lbl_8034A1CC: -/* 8034A1CC 38 00 00 05 */ li r0, 5 -/* 8034A1D0 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */ -/* 8034A1D4 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034A1D8 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */ -/* 8034A1DC 4B FF DD 69 */ bl DVDLowWaitCoverClose -/* 8034A1E0 48 00 00 CC */ b lbl_8034A2AC -lbl_8034A1E4: -/* 8034A1E4 38 00 00 03 */ li r0, 3 -/* 8034A1E8 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034A1EC 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034A1F0 2C 00 00 0D */ cmpwi r0, 0xd -/* 8034A1F4 41 82 00 28 */ beq lbl_8034A21C -/* 8034A1F8 40 80 00 18 */ bge lbl_8034A210 -/* 8034A1FC 2C 00 00 06 */ cmpwi r0, 6 -/* 8034A200 40 80 00 4C */ bge lbl_8034A24C -/* 8034A204 2C 00 00 04 */ cmpwi r0, 4 -/* 8034A208 40 80 00 14 */ bge lbl_8034A21C -/* 8034A20C 48 00 00 40 */ b lbl_8034A24C -lbl_8034A210: -/* 8034A210 2C 00 00 0F */ cmpwi r0, 0xf -/* 8034A214 41 82 00 08 */ beq lbl_8034A21C -/* 8034A218 48 00 00 34 */ b lbl_8034A24C -lbl_8034A21C: -/* 8034A21C 48 00 16 59 */ bl __DVDClearWaitingQueue -/* 8034A220 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034A224 38 1F 00 40 */ addi r0, r31, 0x40 -/* 8034A228 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034A22C 81 84 00 28 */ lwz r12, 0x28(r4) -/* 8034A230 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A234 41 82 00 10 */ beq lbl_8034A244 -/* 8034A238 7D 88 03 A6 */ mtlr r12 -/* 8034A23C 38 60 FF FC */ li r3, -4 -/* 8034A240 4E 80 00 21 */ blrl -lbl_8034A244: -/* 8034A244 4B FF FE 69 */ bl stateReady -/* 8034A248 48 00 00 64 */ b lbl_8034A2AC -lbl_8034A24C: -/* 8034A24C 38 00 00 00 */ li r0, 0 -/* 8034A250 90 0D 92 38 */ stw r0, MotorState(r13) -/* 8034A254 48 00 0E E5 */ bl DVDReset -/* 8034A258 38 7F 00 70 */ addi r3, r31, 0x70 -/* 8034A25C 4B FF 06 9D */ bl OSCreateAlarm -/* 8034A260 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 8034A264 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */ -/* 8034A268 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */ -/* 8034A26C 3C 60 80 35 */ lis r3, AlarmHandler@ha /* 0x80349DEC@ha */ -/* 8034A270 54 00 F0 BE */ srwi r0, r0, 2 -/* 8034A274 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */ -/* 8034A278 7C 04 00 16 */ mulhwu r0, r4, r0 -/* 8034A27C 54 00 D1 BE */ srwi r0, r0, 6 -/* 8034A280 1C C0 04 7E */ mulli r6, r0, 0x47e -/* 8034A284 38 E3 9D EC */ addi r7, r3, AlarmHandler@l /* 0x80349DEC@l */ -/* 8034A288 38 7F 00 70 */ addi r3, r31, 0x70 -/* 8034A28C 38 A0 00 00 */ li r5, 0 -/* 8034A290 4B FF 08 C9 */ bl OSSetAlarm -/* 8034A294 48 00 00 18 */ b lbl_8034A2AC -lbl_8034A298: -/* 8034A298 80 6D 92 24 */ lwz r3, CancelLastError(r13) -/* 8034A29C 48 00 18 ED */ bl __DVDStoreErrorCode -/* 8034A2A0 3C 60 80 35 */ lis r3, cbForStateError@ha /* 0x803492DC@ha */ -/* 8034A2A4 38 63 92 DC */ addi r3, r3, cbForStateError@l /* 0x803492DC@l */ -/* 8034A2A8 4B FF DD 6D */ bl DVDLowStopMotor -lbl_8034A2AC: -/* 8034A2AC 38 00 00 00 */ li r0, 0 -/* 8034A2B0 90 0D 92 20 */ stw r0, ResumeFromHere(r13) -/* 8034A2B4 48 00 00 CC */ b lbl_8034A380 -lbl_8034A2B8: -/* 8034A2B8 80 0D 92 38 */ lwz r0, MotorState(r13) -/* 8034A2BC 28 00 00 00 */ cmplwi r0, 0 -/* 8034A2C0 40 82 00 18 */ bne lbl_8034A2D8 -/* 8034A2C4 38 00 00 01 */ li r0, 1 -/* 8034A2C8 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034A2CC 80 6D 91 F8 */ lwz r3, executing(r13) -/* 8034A2D0 48 00 00 C5 */ bl stateBusy -/* 8034A2D4 48 00 00 AC */ b lbl_8034A380 -lbl_8034A2D8: -/* 8034A2D8 80 0D 92 14 */ lwz r0, CurrCommand(r13) -/* 8034A2DC 2C 00 00 0D */ cmpwi r0, 0xd -/* 8034A2E0 41 82 00 28 */ beq lbl_8034A308 -/* 8034A2E4 40 80 00 18 */ bge lbl_8034A2FC -/* 8034A2E8 2C 00 00 06 */ cmpwi r0, 6 -/* 8034A2EC 40 80 00 4C */ bge lbl_8034A338 -/* 8034A2F0 2C 00 00 04 */ cmpwi r0, 4 -/* 8034A2F4 40 80 00 14 */ bge lbl_8034A308 -/* 8034A2F8 48 00 00 40 */ b lbl_8034A338 -lbl_8034A2FC: -/* 8034A2FC 2C 00 00 0F */ cmpwi r0, 0xf -/* 8034A300 41 82 00 08 */ beq lbl_8034A308 -/* 8034A304 48 00 00 34 */ b lbl_8034A338 -lbl_8034A308: -/* 8034A308 48 00 15 6D */ bl __DVDClearWaitingQueue -/* 8034A30C 80 8D 91 F8 */ lwz r4, executing(r13) -/* 8034A310 38 1F 00 40 */ addi r0, r31, 0x40 -/* 8034A314 90 0D 91 F8 */ stw r0, executing(r13) -/* 8034A318 81 84 00 28 */ lwz r12, 0x28(r4) -/* 8034A31C 28 0C 00 00 */ cmplwi r12, 0 -/* 8034A320 41 82 00 10 */ beq lbl_8034A330 -/* 8034A324 7D 88 03 A6 */ mtlr r12 -/* 8034A328 38 60 FF FC */ li r3, -4 -/* 8034A32C 4E 80 00 21 */ blrl -lbl_8034A330: -/* 8034A330 4B FF FD 7D */ bl stateReady -/* 8034A334 48 00 00 4C */ b lbl_8034A380 -lbl_8034A338: -/* 8034A338 38 00 00 00 */ li r0, 0 -/* 8034A33C 90 0D 92 38 */ stw r0, MotorState(r13) -/* 8034A340 48 00 0D F9 */ bl DVDReset -/* 8034A344 38 7F 00 70 */ addi r3, r31, 0x70 -/* 8034A348 4B FF 05 B1 */ bl OSCreateAlarm -/* 8034A34C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 8034A350 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */ -/* 8034A354 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */ -/* 8034A358 3C 60 80 35 */ lis r3, AlarmHandler@ha /* 0x80349DEC@ha */ -/* 8034A35C 54 00 F0 BE */ srwi r0, r0, 2 -/* 8034A360 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */ -/* 8034A364 7C 04 00 16 */ mulhwu r0, r4, r0 -/* 8034A368 54 00 D1 BE */ srwi r0, r0, 6 -/* 8034A36C 1C C0 04 7E */ mulli r6, r0, 0x47e -/* 8034A370 38 E3 9D EC */ addi r7, r3, AlarmHandler@l /* 0x80349DEC@l */ -/* 8034A374 38 7F 00 70 */ addi r3, r31, 0x70 -/* 8034A378 38 A0 00 00 */ li r5, 0 -/* 8034A37C 4B FF 07 DD */ bl OSSetAlarm -lbl_8034A380: -/* 8034A380 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8034A384 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8034A388 38 21 00 10 */ addi r1, r1, 0x10 -/* 8034A38C 7C 08 03 A6 */ mtlr r0 -/* 8034A390 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdlow/DVDLowClearCallback.s b/asm/dolphin/dvd/dvdlow/DVDLowClearCallback.s deleted file mode 100644 index 8210d28a93..0000000000 --- a/asm/dolphin/dvd/dvdlow/DVDLowClearCallback.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_80348458: -/* 80348458 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006004@ha */ -/* 8034845C 38 00 00 00 */ li r0, 0 -/* 80348460 90 03 60 04 */ stw r0, 0x6004(r3) /* 0xCC006004@l */ -/* 80348464 80 6D 91 98 */ lwz r3, Callback(r13) -/* 80348468 90 0D 91 AC */ stw r0, WaitingCoverClose(r13) -/* 8034846C 90 0D 91 98 */ stw r0, Callback(r13) -/* 80348470 4E 80 00 20 */ blr diff --git a/asm/dolphin/pad/Pad/PADReceiveCheckCallback.s b/asm/dolphin/pad/Pad/PADReceiveCheckCallback.s deleted file mode 100644 index 679217e739..0000000000 --- a/asm/dolphin/pad/Pad/PADReceiveCheckCallback.s +++ /dev/null @@ -1,83 +0,0 @@ -lbl_8034E9EC: -/* 8034E9EC 7C 08 02 A6 */ mflr r0 -/* 8034E9F0 90 01 00 04 */ stw r0, 4(r1) -/* 8034E9F4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8034E9F8 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8034E9FC 7C 7F 1B 78 */ mr r31, r3 -/* 8034EA00 3C 60 80 00 */ lis r3, 0x8000 -/* 8034EA04 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8034EA08 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8034EA0C 7C 7D FC 30 */ srw r29, r3, r31 -/* 8034EA10 80 0D 92 CC */ lwz r0, EnabledBits(r13) -/* 8034EA14 7C 00 E8 39 */ and. r0, r0, r29 -/* 8034EA18 41 82 00 F8 */ beq lbl_8034EB10 -/* 8034EA1C 80 AD 92 D8 */ lwz r5, WaitingBits(r13) -/* 8034EA20 7F A6 E8 F8 */ nor r6, r29, r29 -/* 8034EA24 80 6D 92 DC */ lwz r3, CheckingBits(r13) -/* 8034EA28 54 80 07 3F */ clrlwi. r0, r4, 0x1c -/* 8034EA2C 7C A5 30 38 */ and r5, r5, r6 -/* 8034EA30 7C 63 30 38 */ and r3, r3, r6 -/* 8034EA34 90 AD 92 D8 */ stw r5, WaitingBits(r13) -/* 8034EA38 90 6D 92 DC */ stw r3, CheckingBits(r13) -/* 8034EA3C 54 83 00 2E */ rlwinm r3, r4, 0, 0, 0x17 -/* 8034EA40 40 82 00 6C */ bne lbl_8034EAAC -/* 8034EA44 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 -/* 8034EA48 41 82 00 64 */ beq lbl_8034EAAC -/* 8034EA4C 54 60 02 D7 */ rlwinm. r0, r3, 0, 0xb, 0xb -/* 8034EA50 41 82 00 5C */ beq lbl_8034EAAC -/* 8034EA54 54 60 00 43 */ rlwinm. r0, r3, 0, 1, 1 -/* 8034EA58 41 82 00 54 */ beq lbl_8034EAAC -/* 8034EA5C 54 60 01 4B */ rlwinm. r0, r3, 0, 5, 5 -/* 8034EA60 40 82 00 4C */ bne lbl_8034EAAC -/* 8034EA64 54 60 03 19 */ rlwinm. r0, r3, 0, 0xc, 0xc -/* 8034EA68 40 82 00 44 */ bne lbl_8034EAAC -/* 8034EA6C 54 60 03 5B */ rlwinm. r0, r3, 0, 0xd, 0xd -/* 8034EA70 40 82 00 3C */ bne lbl_8034EAAC -/* 8034EA74 1C 9F 00 0C */ mulli r4, r31, 0xc -/* 8034EA78 3C 60 80 45 */ lis r3, Origin@ha /* 0x8044CB80@ha */ -/* 8034EA7C 38 03 CB 80 */ addi r0, r3, Origin@l /* 0x8044CB80@l */ -/* 8034EA80 3C 60 80 35 */ lis r3, PADOriginUpdateCallback@ha /* 0x8034E51C@ha */ -/* 8034EA84 7C C0 22 14 */ add r6, r0, r4 -/* 8034EA88 39 03 E5 1C */ addi r8, r3, PADOriginUpdateCallback@l /* 0x8034E51C@l */ -/* 8034EA8C 38 7F 00 00 */ addi r3, r31, 0 -/* 8034EA90 38 8D 84 B8 */ la r4, CmdReadOrigin(r13) /* 80450A38-_SDA_BASE_ */ -/* 8034EA94 38 A0 00 01 */ li r5, 1 -/* 8034EA98 38 E0 00 0A */ li r7, 0xa -/* 8034EA9C 39 40 00 00 */ li r10, 0 -/* 8034EAA0 39 20 00 00 */ li r9, 0 -/* 8034EAA4 4B FF 70 E9 */ bl SITransfer -/* 8034EAA8 48 00 00 68 */ b lbl_8034EB10 -lbl_8034EAAC: -/* 8034EAAC 4B FE EC 49 */ bl OSDisableInterrupts -/* 8034EAB0 3B C3 00 00 */ addi r30, r3, 0 -/* 8034EAB4 38 7D 00 00 */ addi r3, r29, 0 -/* 8034EAB8 4B FF 6E 45 */ bl SIDisablePolling -/* 8034EABC 80 0D 92 CC */ lwz r0, EnabledBits(r13) -/* 8034EAC0 7F A9 E8 F8 */ nor r9, r29, r29 -/* 8034EAC4 80 CD 92 D8 */ lwz r6, WaitingBits(r13) -/* 8034EAC8 7F E3 FB 78 */ mr r3, r31 -/* 8034EACC 80 AD 92 DC */ lwz r5, CheckingBits(r13) -/* 8034EAD0 80 8D 92 E0 */ lwz r4, PendingBits(r13) -/* 8034EAD4 7C 08 48 38 */ and r8, r0, r9 -/* 8034EAD8 80 0D 92 E4 */ lwz r0, BarrelBits(r13) -/* 8034EADC 7C C7 48 38 */ and r7, r6, r9 -/* 8034EAE0 7C A6 48 38 */ and r6, r5, r9 -/* 8034EAE4 7C 85 48 38 */ and r5, r4, r9 -/* 8034EAE8 91 0D 92 CC */ stw r8, EnabledBits(r13) -/* 8034EAEC 7C 00 48 38 */ and r0, r0, r9 -/* 8034EAF0 90 ED 92 D8 */ stw r7, WaitingBits(r13) -/* 8034EAF4 38 80 00 00 */ li r4, 0 -/* 8034EAF8 90 CD 92 DC */ stw r6, CheckingBits(r13) -/* 8034EAFC 90 AD 92 E0 */ stw r5, PendingBits(r13) -/* 8034EB00 90 0D 92 E4 */ stw r0, BarrelBits(r13) -/* 8034EB04 4B FF 1D 49 */ bl OSSetWirelessID -/* 8034EB08 7F C3 F3 78 */ mr r3, r30 -/* 8034EB0C 4B FE EC 11 */ bl OSRestoreInterrupts -lbl_8034EB10: -/* 8034EB10 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8034EB14 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8034EB18 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8034EB1C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8034EB20 38 21 00 20 */ addi r1, r1, 0x20 -/* 8034EB24 7C 08 03 A6 */ mtlr r0 -/* 8034EB28 4E 80 00 20 */ blr diff --git a/asm/dolphin/pad/Pad/PADSetSamplingCallback.s b/asm/dolphin/pad/Pad/PADSetSamplingCallback.s deleted file mode 100644 index 3963385512..0000000000 --- a/asm/dolphin/pad/Pad/PADSetSamplingCallback.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_8034FBA0: -/* 8034FBA0 7C 08 02 A6 */ mflr r0 -/* 8034FBA4 28 03 00 00 */ cmplwi r3, 0 -/* 8034FBA8 90 01 00 04 */ stw r0, 4(r1) -/* 8034FBAC 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034FBB0 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034FBB4 83 ED 92 E8 */ lwz r31, SamplingCallback(r13) -/* 8034FBB8 90 6D 92 E8 */ stw r3, SamplingCallback(r13) -/* 8034FBBC 41 82 00 14 */ beq lbl_8034FBD0 -/* 8034FBC0 3C 60 80 35 */ lis r3, SamplingHandler@ha /* 0x8034FB40@ha */ -/* 8034FBC4 38 63 FB 40 */ addi r3, r3, SamplingHandler@l /* 0x8034FB40@l */ -/* 8034FBC8 4B FF 57 0D */ bl SIRegisterPollingHandler -/* 8034FBCC 48 00 00 10 */ b lbl_8034FBDC -lbl_8034FBD0: -/* 8034FBD0 3C 60 80 35 */ lis r3, SamplingHandler@ha /* 0x8034FB40@ha */ -/* 8034FBD4 38 63 FB 40 */ addi r3, r3, SamplingHandler@l /* 0x8034FB40@l */ -/* 8034FBD8 4B FF 57 C9 */ bl SIUnregisterPollingHandler -lbl_8034FBDC: -/* 8034FBDC 7F E3 FB 78 */ mr r3, r31 -/* 8034FBE0 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034FBE4 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034FBE8 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034FBEC 7C 08 03 A6 */ mtlr r0 -/* 8034FBF0 4E 80 00 20 */ blr diff --git a/asm/dolphin/pad/Pad/__PADDisableRecalibration.s b/asm/dolphin/pad/Pad/__PADDisableRecalibration.s deleted file mode 100644 index 8ebfedd7e0..0000000000 --- a/asm/dolphin/pad/Pad/__PADDisableRecalibration.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_8034FBF4: -/* 8034FBF4 7C 08 02 A6 */ mflr r0 -/* 8034FBF8 90 01 00 04 */ stw r0, 4(r1) -/* 8034FBFC 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034FC00 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034FC04 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8034FC08 7C 7E 1B 78 */ mr r30, r3 -/* 8034FC0C 4B FE DA E9 */ bl OSDisableInterrupts -/* 8034FC10 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030E3@ha */ -/* 8034FC14 88 04 30 E3 */ lbz r0, 0x30E3(r4) /* 0x800030E3@l */ -/* 8034FC18 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 -/* 8034FC1C 41 82 00 0C */ beq lbl_8034FC28 -/* 8034FC20 3B E0 00 01 */ li r31, 1 -/* 8034FC24 48 00 00 08 */ b lbl_8034FC2C -lbl_8034FC28: -/* 8034FC28 3B E0 00 00 */ li r31, 0 -lbl_8034FC2C: -/* 8034FC2C 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030E3@ha */ -/* 8034FC30 88 04 30 E3 */ lbz r0, 0x30E3(r4) /* 0x800030E3@l */ -/* 8034FC34 2C 1E 00 00 */ cmpwi r30, 0 -/* 8034FC38 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 -/* 8034FC3C 98 04 30 E3 */ stb r0, 0x30e3(r4) -/* 8034FC40 41 82 00 10 */ beq lbl_8034FC50 -/* 8034FC44 88 04 30 E3 */ lbz r0, 0x30e3(r4) -/* 8034FC48 60 00 00 40 */ ori r0, r0, 0x40 -/* 8034FC4C 98 04 30 E3 */ stb r0, 0x30e3(r4) -lbl_8034FC50: -/* 8034FC50 4B FE DA CD */ bl OSRestoreInterrupts -/* 8034FC54 7F E3 FB 78 */ mr r3, r31 -/* 8034FC58 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034FC5C 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034FC60 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8034FC64 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034FC68 7C 08 03 A6 */ mtlr r0 -/* 8034FC6C 4E 80 00 20 */ blr diff --git a/diff.py b/diff.py index 10451f29f7..676e1c24a4 100644 --- a/diff.py +++ b/diff.py @@ -334,7 +334,7 @@ parser.add_argument( "--select-occurence", dest="select_occurence", type=int, - default=0, + default=None, help="If multiple occurence of the same symbol is found, use this to select the correct ocurrance." ) parser.add_argument( @@ -426,6 +426,7 @@ class Config: source_old_binutils: bool diff_section: str inlines: bool + select_occurence: Optional[int] max_function_size_lines: int max_function_size_bytes: int @@ -515,6 +516,7 @@ def create_config(args: argparse.Namespace, project: ProjectSettings) -> Config: source_old_binutils=args.source_old_binutils, diff_section=args.diff_section, inlines=args.inlines, + select_occurence=args.select_occurence, max_function_size_lines=args.max_lines, max_function_size_bytes=args.max_lines * 4, # Display options @@ -1155,7 +1157,12 @@ def search_map_file( fail(f"Internal error while parsing map file") if len(cands) > 1: - fail(f"Found multiple occurrences of function {fn_name} in map file.") + if config.select_occurence is None : + fail(f"Found {len(cands)} occurrences of function {fn_name} in map file.") + elif config.select_occurence >= len(cands): + fail(f"Could not choose index {config.select_occurence} of {fn_name} in map file out of {len(cands)}.") + else: + return cands[config.select_occurence] if len(cands) == 1: return cands[0] elif project.map_format == "mw": @@ -1171,7 +1178,12 @@ def search_map_file( contents, ) if len(find) > 1: - fail(f"Found multiple occurrences of function {fn_name} in map file.") + if config.select_occurence is None: + fail(f"Found {len(find)} occurrences of function {fn_name} in map file.") + elif config.select_occurence >= len(find): + fail(f"Could not choose index {config.select_occurence} of {fn_name} in map file out of {len(find)}.") + else: + find = [find[config.select_occurence]] if len(find) == 1: rom = int(find[0][1], 16) objname = find[0][2] @@ -1209,7 +1221,11 @@ def search_map_file( contents, ) if len(find) > 1: - fail(f"Found multiple occurrences of function {fn_name} in map file.") + fail(f"Found {len(find)} occurrences of function {fn_name} in map file.") + elif config.select_occurence >= len(find): + fail(f"Could not choose index {config.select_occurence} of {fn_name} in map file out of {len(find)}.") + else: + find = [find[config.select_occurence]] if len(find) == 1: names_find = re.search(r"(\S+) ... (\S+)", find[0]) assert names_find is not None diff --git a/include/dolphin/ar/arq.h b/include/dolphin/ar/arq.h index b34cf555a1..083c118a4a 100644 --- a/include/dolphin/ar/arq.h +++ b/include/dolphin/ar/arq.h @@ -7,8 +7,20 @@ extern "C" { #endif +#define ARQ_CHUNK_SIZE_DEFAULT 4096 + typedef void (*ARQCallback)(u32 request_address); +typedef enum _ARamType { + ARAM_DIR_MRAM_TO_ARAM, + ARAM_DIR_ARAM_TO_MRAM, +} ARamType; + +typedef enum _ArqPriotity { + ARQ_PRIORITY_LOW, + ARQ_PRIORITY_HIGH, +} ArqPriotity; + typedef struct ARQRequest { struct ARQRequest* next; u32 owner; diff --git a/include/dolphin/card/CARDPriv.h b/include/dolphin/card/CARDPriv.h index 6d6f3da480..2e6df14132 100644 --- a/include/dolphin/card/CARDPriv.h +++ b/include/dolphin/card/CARDPriv.h @@ -117,7 +117,7 @@ void __CARDTxHandler(s32 chan, OSContext* context); void __CARDUnlockedHandler(s32 chan, OSContext* context); s32 __CARDEnableInterrupt(s32 chan, BOOL enable); s32 __CARDReadStatus(s32 chan, u8* status); -void __CARDReadVendorID(); +s32 __CARDReadVendorID(s32 chan, u16* vendorId); s32 __CARDClearStatus(s32 chan); s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback); s32 __CARDReadSegment(s32 chan, CARDCallback callback); diff --git a/include/dolphin/dvd/dvd.h b/include/dolphin/dvd/dvd.h index 5253960ac2..4674992277 100644 --- a/include/dolphin/dvd/dvd.h +++ b/include/dolphin/dvd/dvd.h @@ -7,8 +7,6 @@ extern "C" { #endif -vu32 __DIRegs[16] : 0xCC006000; - typedef enum DVDState { DVD_STATE_END = 0x0, DVD_STATE_BUSY = 0x1, @@ -50,7 +48,6 @@ struct DVDFileInfo; struct DVDCommandBlock; typedef void (*DVDCBCallback)(s32 result, struct DVDCommandBlock* block); typedef void (*DVDCallback)(s32 result, struct DVDFileInfo* info); -typedef void (*DVDLowCallback)(u32 intType); typedef struct DVDCommandBlock { /* 0x00 */ struct DVDCommandBlock* next; diff --git a/include/dolphin/dvd/dvdlow.h b/include/dolphin/dvd/dvdlow.h index c6a28eeaa1..a7645d901c 100644 --- a/include/dolphin/dvd/dvdlow.h +++ b/include/dolphin/dvd/dvdlow.h @@ -3,4 +3,7 @@ #include "dolphin/types.h" +typedef void (*DVDLowCallback)(u32 intType); +vu32 __DIRegs[16] : 0xCC006000; + #endif /* DVDLOW_H */ diff --git a/include/dolphin/os/OS.h b/include/dolphin/os/OS.h index 2d91a6ad0c..cee76aa0db 100644 --- a/include/dolphin/os/OS.h +++ b/include/dolphin/os/OS.h @@ -131,7 +131,7 @@ void __OSEVEnd(); static void OSDefaultExceptionHandler(__OSException exception, OSContext* context); void __OSPSInit(void); u32 __OSGetDIConfig(void); -void OSRegisterVersion(char* version); +void OSRegisterVersion(const char* version); void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32); inline s16 __OSf32tos16(register f32 inF) { diff --git a/libs/dolphin/ai/Makefile b/libs/dolphin/ai/Makefile index 256159ed07..7adebe00ec 100644 --- a/libs/dolphin/ai/Makefile +++ b/libs/dolphin/ai/Makefile @@ -14,6 +14,7 @@ LIBAI_A_CFLAGS := \ -fp hard \ -nodefaults \ -str reuse \ + -inline auto \ -RTTI off \ -maxerrors 5 \ -enum int $(INCLUDES) \ @@ -35,10 +36,11 @@ $(BUILD_DIR)/libs/dolphin/ai/%.o: libs/dolphin/ai/%.c $(BUILD_DIR)/libs/dolphin/ @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBAI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(FRANK_CC) $(LIBAI_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBAI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ - @$(PYTHON) $(FRANK) $@ $@ $@ + @$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@ ifndef DISABLE_DEPS LIBAI_A_D_FILES := $(LIBAI_A_O_FILES:.o=.d) diff --git a/libs/dolphin/ai/ai.c b/libs/dolphin/ai/ai.c index c305f12085..c5f864b734 100644 --- a/libs/dolphin/ai/ai.c +++ b/libs/dolphin/ai/ai.c @@ -211,8 +211,41 @@ static OSTime max_wait; /* 804518B0-804518B4 000DB0 0004+00 2/2 0/0 0/0 .sbss buffer */ static OSTime buffer; +inline void AIResetStreamSampleCount(void) { __AIRegs[0] = (__AIRegs[0] & ~0x20) | 0x20; } + +inline void AISetStreamTrigger(u32 trigger) { __AIRegs[3] = trigger; } + /* 80350084-803501F0 34A9C4 016C+00 0/0 1/1 0/0 .text AIInit */ -// need compiler epilogue patch +// time assignments are weird +#ifdef NONMATCHING +void AIInit(u8* stack) { + if (__AI_init_flag == TRUE) { + return; + } + + OSRegisterVersion(__AIVersion); + bound_32KHz = OSNanosecondsToTicks(31524); + bound_48KHz = OSNanosecondsToTicks(42024); + min_wait = OSNanosecondsToTicks(42000); + max_wait = OSNanosecondsToTicks(63000); + buffer = OSNanosecondsToTicks(3000); + + AISetStreamVolRight(0); + AISetStreamVolLeft(0); + AISetStreamTrigger(0); + AIResetStreamSampleCount(); + __AI_set_stream_sample_rate(1); + AISetDSPSampleRate(0); + __AIS_Callback = 0; + __AID_Callback = 0; + __CallbackStack = stack; + __OSSetInterruptHandler(5, __AIDHandler); + __OSUnmaskInterrupts(0x04000000); + __OSSetInterruptHandler(8, __AISHandler); + __OSUnmaskInterrupts(0x800000); + __AI_init_flag = TRUE; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -221,6 +254,7 @@ asm void AIInit(u8* stack) { #include "asm/dolphin/ai/ai/AIInit.s" } #pragma pop +#endif /* 803501F0-8035026C 34AB30 007C+00 1/1 0/0 0/0 .text __AISHandler */ void __AISHandler(s16 interrupt, OSContext* context) { diff --git a/libs/dolphin/ar/Makefile b/libs/dolphin/ar/Makefile index 0d583d014c..f46c7fa8d9 100644 --- a/libs/dolphin/ar/Makefile +++ b/libs/dolphin/ar/Makefile @@ -37,10 +37,11 @@ $(BUILD_DIR)/libs/dolphin/ar/%.o: libs/dolphin/ar/%.c $(BUILD_DIR)/libs/dolphin/ @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBAR_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(FRANK_CC) $(LIBAR_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBAR_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ - @$(PYTHON) $(FRANK) $@ $@ $@ + @$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@ ifndef DISABLE_DEPS LIBAR_A_D_FILES := $(LIBAR_A_O_FILES:.o=.d) diff --git a/libs/dolphin/ar/ar.c b/libs/dolphin/ar/ar.c index 71a085cce9..6f11a21f84 100644 --- a/libs/dolphin/ar/ar.c +++ b/libs/dolphin/ar/ar.c @@ -12,7 +12,7 @@ void __ARHandler(s16 interrupt, OSContext* context); void __ARClearInterrupt(); -void __ARGetInterruptStatus(); +u16 __ARGetInterruptStatus(); void __ARChecksize(); /* ############################################################################################## */ @@ -20,8 +20,6 @@ void __ARChecksize(); static ARCallback __AR_Callback; /* 80350554-80350598 34AE94 0044+00 0/0 1/1 0/0 .text ARRegisterDMACallback */ -// needs compiler epilogue patch -#ifdef NONMATCHING ARCallback ARRegisterDMACallback(ARCallback callback) { ARCallback oldCb; BOOL enabled; @@ -31,20 +29,8 @@ ARCallback ARRegisterDMACallback(ARCallback callback) { OSRestoreInterrupts(enabled); return oldCb; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm ARCallback ARRegisterDMACallback(ARCallback callback) { - nofralloc -#include "asm/dolphin/ar/ar/ARRegisterDMACallback.s" -} -#pragma pop -#endif /* 80350598-803505D4 34AED8 003C+00 0/0 2/2 0/0 .text ARGetDMAStatus */ -// needs compiler epilogue patch -#ifdef NONMATCHING u32 ARGetDMAStatus() { BOOL enabled; u32 val; @@ -53,16 +39,6 @@ u32 ARGetDMAStatus() { OSRestoreInterrupts(enabled); return val; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 ARGetDMAStatus(void) { - nofralloc -#include "asm/dolphin/ar/ar/ARGetDMAStatus.s" -} -#pragma pop -#endif /* 803505D4-803506C4 34AF14 00F0+00 0/0 5/5 0/0 .text ARStartDMA */ void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length) { @@ -100,8 +76,6 @@ static u32 __AR_FreeBlocks; static u32* __AR_BlockLength; /* 803506C4-8035072C 34B004 0068+00 0/0 1/1 0/0 .text ARAlloc */ -// needs compiler epilogue patch -#ifdef NONMATCHING u32 ARAlloc(u32 length) { u32 tmp; BOOL enabled; @@ -116,16 +90,6 @@ u32 ARAlloc(u32 length) { return tmp; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 ARAlloc(u32 length) { - nofralloc -#include "asm/dolphin/ar/ar/ARAlloc.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 803D1BE8-803D1C30 02ED08 0044+04 1/0 0/0 0/0 .data @1 */ @@ -139,14 +103,39 @@ SECTION_SDATA static const char* __ARVersion = lit_1; static volatile BOOL __AR_init_flag; /* 8035072C-803507F0 34B06C 00C4+00 0/0 1/1 0/0 .text ARInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 ARInit(u32* stack_index_addr, u32 num_entries) { - nofralloc -#include "asm/dolphin/ar/ar/ARInit.s" +u32 ARInit(u32* stack_index_addr, u32 num_entries) { + BOOL old; + u16 refresh; + + if (__AR_init_flag == TRUE) { + return 0x4000; + } + + OSRegisterVersion(__ARVersion); + + old = OSDisableInterrupts(); + + __AR_Callback = NULL; + + __OSSetInterruptHandler(OS_INTR_DSP_ARAM, __ARHandler); + __OSUnmaskInterrupts(OS_INTERRUPTMASK_DSP_ARAM); + + __AR_StackPointer = 0x4000; + __AR_FreeBlocks = num_entries; + __AR_BlockLength = stack_index_addr; + + refresh = (u16)(__DSPRegs[13] & 0x000000ff); + + __DSPRegs[13] = (u16)((__DSPRegs[13] & ~0x000000ff) | (refresh & 0x000000ff)); + + __ARChecksize(); + + __AR_init_flag = TRUE; + + OSRestoreInterrupts(old); + + return __AR_StackPointer; } -#pragma pop /* 803507F0-803507F8 -00001 0008+00 0/0 0/0 0/0 .text ARGetSize */ u32 ARGetSize(void) { @@ -174,26 +163,201 @@ static void __ARHandler(s16 interrupt, OSContext* context) { } /* 80350870-80350890 34B1B0 0020+00 0/0 2/2 0/0 .text __ARClearInterrupt */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ARClearInterrupt() { - nofralloc -#include "asm/dolphin/ar/ar/__ARClearInterrupt.s" +void __ARClearInterrupt(void) { + u16 tmp; + tmp = __DSPRegs[5]; + tmp = (u16)((tmp & ~(0x00000080 | 0x00000008)) | 0x00000020); + __DSPRegs[5] = tmp; } -#pragma pop /* 80350890-803508A0 34B1D0 0010+00 0/0 2/2 0/0 .text __ARGetInterruptStatus */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ARGetInterruptStatus() { - nofralloc -#include "asm/dolphin/ar/ar/__ARGetInterruptStatus.s" +u16 __ARGetInterruptStatus(void) { + return ((u16)(__DSPRegs[5] & 0x0020)); } -#pragma pop + +#define RoundUP32(x) (((u32)(x) + 32 - 1) & ~(32 - 1)) /* 803508A0-80352094 34B1E0 17F4+00 1/1 0/0 0/0 .text __ARChecksize */ +#ifdef NONMATCHING +void __ARChecksize(void) { + + u8 test_data_pad[0x20 + 31]; + u8 dummy_data_pad[0x20 + 31]; + u8 buffer_pad[0x20 + 31]; + + u8 save_pad_1[0x20 + 31]; + u8 save_pad_2[0x20 + 31]; + u8 save_pad_3[0x20 + 31]; + u8 save_pad_4[0x20 + 31]; + u8 save_pad_5[0x20 + 31]; + + u16 dspreg9; + u32* test_data; + u32* dummy_data; + u32* buffer; + u32* save1; + u32* save2; + u32* save3; + u32* save4; + u32* save5; + + u16 ARAM_mode = 0; + u32 ARAM_size = 0; + + u32 i; + + while (!(__DSPRegs[11] & 1)) + ; + + ARAM_mode = 3; + __DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x00000007 | 0x00000038)) | 0x20 | 2 | 1); + ARAM_size = __AR_InternalSize = 0x1000000; + + test_data = (u32*)(RoundUP32((u32)(test_data_pad))); + dummy_data = (u32*)(RoundUP32((u32)(dummy_data_pad))); + buffer = (u32*)(RoundUP32((u32)(buffer_pad))); + + save1 = (u32*)(RoundUP32((u32)(save_pad_1))); + save2 = (u32*)(RoundUP32((u32)(save_pad_2))); + save3 = (u32*)(RoundUP32((u32)(save_pad_3))); + save4 = (u32*)(RoundUP32((u32)(save_pad_4))); + save5 = (u32*)(RoundUP32((u32)(save_pad_5))); + + for (i = 0; i < 8; i++) { + *(test_data + i) = 0xdeadbeef; + *(dummy_data + i) = 0xbad0bad0; + } + + DCFlushRange((void*)test_data, 0x20); + DCFlushRange((void*)dummy_data, 0x20); + + __AR_ExpansionSize = 0; + + DCInvalidateRange((void*)save1, 0x20); + __ARReadDMA((u32)save1, ARAM_size + 0, 0x20); + PPCSync(); + + __ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20); + + memset((void*)buffer, 0, 0x20); + DCFlushRange((void*)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0000000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + + DCInvalidateRange((void*)save2, 0x20); + __ARReadDMA((u32)save2, ARAM_size + 0x0200000, 0x20); + PPCSync(); + + DCInvalidateRange((void*)save3, 0x20); + __ARReadDMA((u32)save3, ARAM_size + 0x1000000, 0x20); + PPCSync(); + + DCInvalidateRange((void*)save4, 0x20); + __ARReadDMA((u32)save4, ARAM_size + 0x0000200, 0x20); + PPCSync(); + + DCInvalidateRange((void*)save5, 0x20); + __ARReadDMA((u32)save5, ARAM_size + 0x0400000, 0x20); + PPCSync(); + + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x0200000, 0x20); + + __ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20); + + memset((void*)buffer, 0, 0x20); + DCFlushRange((void*)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0200000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + __ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20); + + ARAM_mode |= 0 << 1; + ARAM_size += 0x0200000; + __AR_ExpansionSize = 0x0200000; + } else { + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x1000000, 0x20); + + __ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20); + + memset((void*)buffer, 0, 0x20); + DCFlushRange((void*)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x1000000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + __ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20); + __ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20); + + ARAM_mode |= 4 << 1; + ARAM_size += 0x0400000; + __AR_ExpansionSize = 0x0400000; + } else { + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x0000200, 0x20); + + __ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20); + + memset((void*)buffer, 0, 0x20); + DCFlushRange((void*)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0000200, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + __ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20); + __ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20); + __ARWriteDMA((u32)save3, ARAM_size + 0x1000000, 0x20); + + ARAM_mode |= 8 << 1; + ARAM_size += 0x0800000; + __AR_ExpansionSize = 0x0800000; + } else { + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x0400000, 0x20); + + __ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20); + + memset((void*)buffer, 0, 0x20); + DCFlushRange((void*)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0400000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + __ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20); + __ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20); + __ARWriteDMA((u32)save3, ARAM_size + 0x1000000, 0x20); + __ARWriteDMA((u32)save4, ARAM_size + 0x0000200, 0x20); + + ARAM_mode |= 12 << 1; + ARAM_size += 0x1000000; + __AR_ExpansionSize = 0x1000000; + } else { + __ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20); + __ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20); + __ARWriteDMA((u32)save3, ARAM_size + 0x1000000, 0x20); + __ARWriteDMA((u32)save4, ARAM_size + 0x0000200, 0x20); + __ARWriteDMA((u32)save5, ARAM_size + 0x0400000, 0x20); + + ARAM_mode |= 16 << 1; + ARAM_size += 0x2000000; + __AR_ExpansionSize = 0x2000000; + } + } + } + } + __DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x07 | 0x38)) | ARAM_mode); + } + + *(u32*)OSPhysicalToUncached(0x00D0) = ARAM_size; + + __AR_Size = ARAM_size; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -202,3 +366,4 @@ asm void __ARChecksize() { #include "asm/dolphin/ar/ar/__ARChecksize.s" } #pragma pop +#endif \ No newline at end of file diff --git a/libs/dolphin/ar/arq.c b/libs/dolphin/ar/arq.c index e068cea863..138c15676d 100644 --- a/libs/dolphin/ar/arq.c +++ b/libs/dolphin/ar/arq.c @@ -21,7 +21,7 @@ void ARQInit(); // void OSRegisterVersion(); -void OSDisableInterrupts(); +BOOL OSDisableInterrupts(); void OSRestoreInterrupts(); void ARRegisterDMACallback(); void ARStartDMA(); @@ -32,41 +32,71 @@ void ARStartDMA(); /* ############################################################################################## */ /* 804518D8-804518DC 000DD8 0004+00 3/3 0/0 0/0 .sbss __ARQRequestQueueHi */ -static u8 __ARQRequestQueueHi[4]; +static ARQRequest* __ARQRequestQueueHi; /* 804518DC-804518E0 000DDC 0004+00 1/1 0/0 0/0 .sbss __ARQRequestTailHi */ -static u8 __ARQRequestTailHi[4]; +static ARQRequest* __ARQRequestTailHi; /* 804518E0-804518E4 000DE0 0004+00 3/3 0/0 0/0 .sbss __ARQRequestQueueLo */ -static u8 __ARQRequestQueueLo[4]; +static ARQRequest* __ARQRequestQueueLo; /* 804518E4-804518E8 000DE4 0004+00 1/1 0/0 0/0 .sbss __ARQRequestTailLo */ -static u8 __ARQRequestTailLo[4]; +static ARQRequest* __ARQRequestTailLo; /* 804518E8-804518EC 000DE8 0004+00 3/3 0/0 0/0 .sbss __ARQRequestPendingHi */ -static u8 __ARQRequestPendingHi[4]; +static ARQRequest* __ARQRequestPendingHi; /* 804518EC-804518F0 000DEC 0004+00 4/4 0/0 0/0 .sbss __ARQRequestPendingLo */ -static u8 __ARQRequestPendingLo[4]; +static ARQRequest* __ARQRequestPendingLo; /* 804518F0-804518F4 000DF0 0004+00 3/3 0/0 0/0 .sbss __ARQCallbackHi */ -static u8 __ARQCallbackHi[4]; +static ARQCallback __ARQCallbackHi; /* 804518F4-804518F8 000DF4 0004+00 3/3 0/0 0/0 .sbss __ARQCallbackLo */ -static u8 __ARQCallbackLo[4]; +static ARQCallback __ARQCallbackLo; /* 804518F8-804518FC 000DF8 0004+00 2/2 0/0 0/0 .sbss __ARQChunkSize */ -static u8 __ARQChunkSize[4]; +static u32 __ARQChunkSize; + +/* 803D1C30-803D1C78 02ED50 0045+03 1/0 0/0 0/0 .data @1 */ +const char* __ARQVersion = "<< Dolphin SDK - ARQ\trelease build: Apr 5 2004 04:15:04 (0x2301) >>"; + +/* 804518FC-80451900 000DFC 0004+00 1/1 0/0 0/0 .sbss __ARQ_init_flag */ +static BOOL __ARQ_init_flag; + /* 80352094-80352194 34C9D4 0100+00 2/2 0/0 0/0 .text __ARQServiceQueueLo */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ARQServiceQueueLo() { - nofralloc -#include "asm/dolphin/ar/arq/__ARQServiceQueueLo.s" +void __ARQServiceQueueLo(void) { + if ((__ARQRequestPendingLo == NULL) && (__ARQRequestQueueLo)) { + __ARQRequestPendingLo = __ARQRequestQueueLo; + + __ARQRequestQueueLo = __ARQRequestQueueLo->next; + } + + if (__ARQRequestPendingLo) { + if (__ARQRequestPendingLo->length <= __ARQChunkSize) { + if (__ARQRequestPendingLo->type == ARAM_DIR_MRAM_TO_ARAM) + ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->source, + __ARQRequestPendingLo->destination, __ARQRequestPendingLo->length); + else + ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->destination, + __ARQRequestPendingLo->source, __ARQRequestPendingLo->length); + + __ARQCallbackLo = __ARQRequestPendingLo->callback; + } else { + if (__ARQRequestPendingLo->type == ARAM_DIR_MRAM_TO_ARAM) + ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->source, + __ARQRequestPendingLo->destination, __ARQChunkSize); + else + ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->destination, + __ARQRequestPendingLo->source, __ARQChunkSize); + } + + __ARQRequestPendingLo->length -= __ARQChunkSize; + __ARQRequestPendingLo->source += __ARQChunkSize; + __ARQRequestPendingLo->destination += __ARQChunkSize; + } } -#pragma pop /* 80352194-80352198 34CAD4 0004+00 1/1 0/0 0/0 .text __ARQCallbackHack */ void __ARQCallbackHack() { @@ -74,46 +104,121 @@ void __ARQCallbackHack() { } /* 80352198-80352264 34CAD8 00CC+00 1/1 0/0 0/0 .text __ARQInterruptServiceRoutine */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __ARQInterruptServiceRoutine() { - nofralloc -#include "asm/dolphin/ar/arq/__ARQInterruptServiceRoutine.s" +void __ARQInterruptServiceRoutine(void) { + if (__ARQCallbackHi) { + (*__ARQCallbackHi)((u32)__ARQRequestPendingHi); + __ARQRequestPendingHi = NULL; + __ARQCallbackHi = NULL; + } + + else if (__ARQCallbackLo) + { + (*__ARQCallbackLo)((u32)__ARQRequestPendingLo); + __ARQRequestPendingLo = NULL; + __ARQCallbackLo = NULL; + } + + if (__ARQRequestQueueHi) { + if (__ARQRequestQueueHi->type == 0) { + ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->source, + __ARQRequestQueueHi->destination, __ARQRequestQueueHi->length); + } else { + ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->destination, + __ARQRequestQueueHi->source, __ARQRequestQueueHi->length); + } + __ARQCallbackHi = __ARQRequestQueueHi->callback; + __ARQRequestPendingHi = __ARQRequestQueueHi; + __ARQRequestQueueHi = __ARQRequestQueueHi->next; + } + + if (__ARQRequestPendingHi == NULL) { + __ARQServiceQueueLo(); + } } -#pragma pop - -/* ############################################################################################## */ -/* 803D1C30-803D1C78 02ED50 0045+03 1/0 0/0 0/0 .data @1 */ -SECTION_DATA static char lit_1[] = "<< Dolphin SDK - ARQ\trelease build: Apr 5 2004 04:15:04 (0x2301) >>"; - -/* 80450A50-80450A58 -00001 0004+04 1/1 0/0 0/0 .sdata __ARQVersion */ -SECTION_SDATA static void* __ARQVersion[1 + 1 /* padding */] = { - (void*)&lit_1, - /* padding */ - NULL, -}; - -/* 804518FC-80451900 000DFC 0004+00 1/1 0/0 0/0 .sbss __ARQ_init_flag */ -static u8 __ARQ_init_flag[4]; /* 80352264-803522D4 34CBA4 0070+00 0/0 1/1 0/0 .text ARQInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void ARQInit() { - nofralloc -#include "asm/dolphin/ar/arq/ARQInit.s" +void ARQInit(void) { + if (__ARQ_init_flag == TRUE) { + return; + } + + OSRegisterVersion(__ARQVersion); + __ARQRequestQueueHi = __ARQRequestQueueLo = NULL; + __ARQChunkSize = ARQ_CHUNK_SIZE_DEFAULT; + ARRegisterDMACallback(&__ARQInterruptServiceRoutine); + __ARQRequestPendingHi = NULL; + __ARQRequestPendingLo = NULL; + __ARQCallbackHi = NULL; + __ARQCallbackLo = NULL; + __ARQ_init_flag = TRUE; } -#pragma pop /* 803522D4-80352430 34CC14 015C+00 0/0 1/1 0/0 .text ARQPostRequest */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void ARQPostRequest(ARQRequest* task, u32 owner, u32 type, u32 priority, u32 source, - u32 destination, u32 length, ARQCallback callback) { - nofralloc -#include "asm/dolphin/ar/arq/ARQPostRequest.s" +void ARQPostRequest(ARQRequest* request, u32 owner, u32 type, u32 priority, u32 source, u32 dest, + u32 length, ARQCallback callback) { + BOOL enabled; + + request->next = NULL; + request->owner = owner; + request->type = type; + request->source = source; + request->destination = dest; + request->length = length; + + if (callback) { + request->callback = callback; + } else { + request->callback = (ARQCallback)&__ARQCallbackHack; + } + + enabled = OSDisableInterrupts(); + + switch (priority) { + case ARQ_PRIORITY_LOW: + + if (__ARQRequestQueueLo) { + __ARQRequestTailLo->next = request; + } else { + __ARQRequestQueueLo = request; + } + __ARQRequestTailLo = request; + + break; + + case ARQ_PRIORITY_HIGH: + + if (__ARQRequestQueueHi) { + __ARQRequestTailHi->next = request; + } else { + __ARQRequestQueueHi = request; + } + + __ARQRequestTailHi = request; + + break; + } + + if ((__ARQRequestPendingHi == NULL) && (__ARQRequestPendingLo == NULL)) { + if (__ARQRequestQueueHi) { + if (__ARQRequestQueueHi->type == ARAM_DIR_MRAM_TO_ARAM) { + ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->source, + __ARQRequestQueueHi->destination, __ARQRequestQueueHi->length); + } else { + ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->destination, + __ARQRequestQueueHi->source, __ARQRequestQueueHi->length); + } + + __ARQCallbackHi = __ARQRequestQueueHi->callback; + + __ARQRequestPendingHi = __ARQRequestQueueHi; + + __ARQRequestQueueHi = __ARQRequestQueueHi->next; + } + + if (__ARQRequestPendingHi == NULL) { + __ARQServiceQueueLo(); + } + } + + OSRestoreInterrupts(enabled); } -#pragma pop diff --git a/libs/dolphin/base/Makefile b/libs/dolphin/base/Makefile index 086f7cd8ef..8a626555e5 100644 --- a/libs/dolphin/base/Makefile +++ b/libs/dolphin/base/Makefile @@ -27,7 +27,7 @@ $(BUILD_DIR)/libs/dolphin/base/%.o: libs/dolphin/base/%.c $(BUILD_DIR)/libs/dolp @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBBASE_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(CFLAGS) $(LIBBASE_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/libs/dolphin/card/CARDBios.c b/libs/dolphin/card/CARDBios.c index 47217f41be..9df3a700f4 100644 --- a/libs/dolphin/card/CARDBios.c +++ b/libs/dolphin/card/CARDBios.c @@ -186,14 +186,23 @@ s32 __CARDReadStatus(s32 chan, u8* status) { } /* 80352F34-80353024 34D874 00F0+00 0/0 1/1 0/0 .text __CARDReadVendorID */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __CARDReadVendorID() { - nofralloc -#include "asm/dolphin/card/CARDBios/__CARDReadVendorID.s" +s32 __CARDReadVendorID(s32 chan, u16* vendorId) { + BOOL err; + u32 cmd; + + if (!EXISelect(chan, 0, 4)) { + return CARD_RESULT_NOCARD; + } + + cmd = 0x85000000; + err = FALSE; + err |= !EXIImm(chan, &cmd, 2, 1, NULL); + err |= !EXISync(chan); + err |= !EXIImm(chan, vendorId, 2, 0, NULL); + err |= !EXISync(chan); + err |= !EXIDeselect(chan); + return err ? CARD_RESULT_NOCARD : CARD_RESULT_READY; } -#pragma pop /* 80353024-803530D0 34D964 00AC+00 1/1 1/1 0/0 .text __CARDClearStatus */ s32 __CARDClearStatus(s32 chan) { @@ -237,15 +246,69 @@ static void TimeoutHandler(OSAlarm* alarm, OSContext* context) { } } -/* 80353174-80353414 34DAB4 02A0+00 2/2 0/0 0/0 .text Retry */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 Retry(s32 chan) { - nofralloc -#include "asm/dolphin/card/CARDBios/Retry.s" +static inline void SetupTimeoutAlarm(CARDControl* card) { + OSCancelAlarm(&card->alarm); + switch (card->cmd[0]) { + case 0xF2: + OSSetAlarm(&card->alarm, OSMillisecondsToTicks(100), TimeoutHandler); + break; + case 0xF3: + break; + case 0xF4: + if (card->pageSize > 0x80) { + OSSetAlarm(&card->alarm, OSSecondsToTicks((OSTime)2) * (card->cBlock / 0x40), + TimeoutHandler); + break; + } + case 0xF1: + OSSetAlarm(&card->alarm, OSSecondsToTicks((OSTime)2) * (card->sectorSize / 0x2000), + TimeoutHandler); + break; + default: + break; + } +} + +/* 80353174-80353414 34DAB4 02A0+00 2/2 0/0 0/0 .text Retry */ +static s32 Retry(s32 chan) { + CARDControl* card; + card = &__CARDBlock[chan]; + + if (!EXISelect(chan, 0, 4)) { + EXIUnlock(chan); + return CARD_RESULT_NOCARD; + } + + SetupTimeoutAlarm(card); + + if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1)) { + EXIDeselect(chan); + EXIUnlock(chan); + return CARD_RESULT_NOCARD; + } + + if (card->cmd[0] == 0x52 && + !EXIImmEx(chan, (u8*)card->workArea + sizeof(CARDID), card->latency, 1)) { + EXIDeselect(chan); + EXIUnlock(chan); + return CARD_RESULT_NOCARD; + } + + if (card->mode == 0xffffffff) { + EXIDeselect(chan); + EXIUnlock(chan); + return CARD_RESULT_READY; + } + + if (!EXIDma(chan, card->buffer, (s32)((card->cmd[0] == 0x52) ? 512 : card->pageSize), card->mode, + __CARDTxHandler)) { + EXIDeselect(chan); + EXIUnlock(chan); + return CARD_RESULT_NOCARD; + } + + return CARD_RESULT_READY; } -#pragma pop /* 80353414-80353524 34DD54 0110+00 1/1 0/0 0/0 .text UnlockedCallback */ static void UnlockedCallback(s32 chan, s32 result) { @@ -287,14 +350,43 @@ static void UnlockedCallback(s32 chan, s32 result) { } /* 80353524-80353748 34DE64 0224+00 3/3 0/0 0/0 .text __CARDStart */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback) { - nofralloc -#include "asm/dolphin/card/CARDBios/__CARDStart.s" +static s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback) { + BOOL enabled; + CARDControl* card; + s32 result; + + enabled = OSDisableInterrupts(); + + card = &__CARDBlock[chan]; + if (!card->attached) { + result = CARD_RESULT_NOCARD; + } else { + + if (txCallback) { + card->txCallback = txCallback; + } + if (exiCallback) { + card->exiCallback = exiCallback; + } + card->unlockCallback = UnlockedCallback; + if (!EXILock(chan, 0, __CARDUnlockedHandler)) { + result = CARD_RESULT_BUSY; + } else { + card->unlockCallback = 0; + + if (!EXISelect(chan, 0, 4)) { + EXIUnlock(chan); + result = CARD_RESULT_NOCARD; + } else { + SetupTimeoutAlarm(card); + result = CARD_RESULT_READY; + } + } + } + + OSRestoreInterrupts(enabled); + return result; } -#pragma pop #define AD1(x) ((u8)(((x) >> 17) & 0x7f)) #define AD1EX(x) ((u8)(AD1(x) | 0x80)); @@ -337,15 +429,19 @@ s32 __CARDReadSegment(s32 chan, CARDCallback callback) { } /* 8035387C-803539B8 34E1BC 013C+00 0/0 2/2 0/0 .text __CARDWritePage */ -// needs compiler epilogue patch -#ifdef NONMATCH s32 __CARDWritePage(s32 chan, CARDCallback callback) { CARDControl* card; s32 result; card = &__CARDBlock[chan]; + card->cmd[0] = 0xF2; - card->cmd[1] = AD1(card->addr); + if (card->pageSize > 0x80) { + card->cmd[1] = AD1(card->addr) | 0x80; + } else { + card->cmd[1] = AD1(card->addr); + } + card->cmd[2] = AD2(card->addr); card->cmd[3] = AD3(card->addr); card->cmd[4] = BA(card->addr); @@ -358,7 +454,7 @@ s32 __CARDWritePage(s32 chan, CARDCallback callback) { result = CARD_RESULT_READY; } else if (result >= 0) { if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1) || - !EXIDma(chan, card->buffer, 128, card->mode, __CARDTxHandler)) { + !EXIDma(chan, card->buffer, card->pageSize, card->mode, __CARDTxHandler)) { card->exiCallback = 0; EXIDeselect(chan); EXIUnlock(chan); @@ -369,26 +465,43 @@ s32 __CARDWritePage(s32 chan, CARDCallback callback) { } return result; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDWritePage(s32 chan, CARDCallback callback) { - nofralloc -#include "asm/dolphin/card/CARDBios/__CARDWritePage.s" -} -#pragma pop -#endif /* 803539B8-80353AC8 34E2F8 0110+00 0/0 6/6 0/0 .text __CARDEraseSector */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDEraseSector(s32 chan, u32 addr, CARDCallback callback) { - nofralloc -#include "asm/dolphin/card/CARDBios/__CARDEraseSector.s" +s32 __CARDEraseSector(s32 chan, u32 addr, CARDCallback callback) { + CARDControl* card; + s32 result; + + card = &__CARDBlock[chan]; + if (card->pageSize > 0x80) { + if (callback) { + callback(chan, 0); + } + return 0; + } + card->cmd[0] = 0xF1; + card->cmd[1] = AD1(addr); + card->cmd[2] = AD2(addr); + card->cmdlen = 3; + card->mode = -1; + card->retry = 3; + + result = __CARDStart(chan, 0, callback); + + if (result == CARD_RESULT_BUSY) { + result = CARD_RESULT_READY; + } else if (result >= 0) { + if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1)) { + card->exiCallback = NULL; + result = CARD_RESULT_NOCARD; + } else { + result = CARD_RESULT_READY; + } + + EXIDeselect(chan); + EXIUnlock(chan); + } + return result; } -#pragma pop /* ############################################################################################## */ /* 803D1E38-803D1E80 02EF58 0046+02 1/0 0/0 0/0 .data @1 */ @@ -478,26 +591,84 @@ s32 __CARDGetControlBlock(s32 chan, CARDControl** pcard) { } /* 80353C6C-80353CD0 34E5AC 0064+00 0/0 24/24 0/0 .text __CARDPutControlBlock */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDPutControlBlock(CARDControl* card, s32 result) { - nofralloc -#include "asm/dolphin/card/CARDBios/__CARDPutControlBlock.s" +s32 __CARDPutControlBlock(CARDControl* card, s32 result) { + BOOL enabled; + + enabled = OSDisableInterrupts(); + if (card->attached) { + card->result = result; + } else if (card->result == CARD_RESULT_BUSY) { + card->result = result; + } + OSRestoreInterrupts(enabled); + return result; } -#pragma pop /* 80353CD0-80353E20 34E610 0150+00 0/0 1/1 0/0 .text CARDFreeBlocks */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 CARDFreeBlocks(s32 chan, s32* byteNotUsed, s32* filesNotUsed) { - nofralloc -#include "asm/dolphin/card/CARDBios/CARDFreeBlocks.s" +s32 CARDFreeBlocks(s32 chan, s32* byteNotUsed, s32* filesNotUsed) { + CARDControl* card; + s32 result; + u16* fat; + CARDDir* dir; + CARDDir* ent; + u16 fileNo; + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + fat = __CARDGetFatBlock(card); + dir = __CARDGetDirBlock(card); + if (fat == 0 || dir == 0) { + return __CARDPutControlBlock(card, CARD_RESULT_BROKEN); + } + + if (byteNotUsed) { + *byteNotUsed = (s32)(card->sectorSize * fat[CARD_FAT_FREEBLOCKS]); + } + + if (filesNotUsed) { + *filesNotUsed = 0; + for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) { + ent = &dir[fileNo]; + if (ent->fileName[0] == 0xff) { + ++*filesNotUsed; + } + } + } + + return __CARDPutControlBlock(card, CARD_RESULT_READY); } -#pragma pop /* 80353E20-80353EB8 34E760 0098+00 0/0 7/7 0/0 .text __CARDSync */ +#ifdef NONMATCHING +s32 __CARDSync(s32 chan) { + CARDControl* card; + s32 val; + BOOL enabled; + s32 result; + + card = &__CARDBlock[chan]; + enabled = OSDisableInterrupts(); + for (;; ) { + if (chan < 0 || chan >= 2) + result = -0x80; + else + result = card->result; + val = result; + + if (val != CARD_RESULT_BUSY){ + break; + } else { + OSSleepThread(&card->threadQueue); + } + } + OSRestoreInterrupts(enabled); + + return val; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -506,6 +677,7 @@ asm s32 __CARDSync(s32 chan) { #include "asm/dolphin/card/CARDBios/__CARDSync.s" } #pragma pop +#endif /* 80353EB8-80353F08 34E7F8 0050+00 1/0 0/0 0/0 .text OnReset */ static s32 OnReset(s32 f) { diff --git a/libs/dolphin/card/CARDBlock.c b/libs/dolphin/card/CARDBlock.c index a1cab5be6a..011489d080 100644 --- a/libs/dolphin/card/CARDBlock.c +++ b/libs/dolphin/card/CARDBlock.c @@ -62,18 +62,39 @@ static void WriteCallback(s32 chan, s32 result) { } /* 803554F0-803555B8 34FE30 00C8+00 1/1 0/0 0/0 .text EraseCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void EraseCallback(s32 chan, s32 result) { - nofralloc -#include "asm/dolphin/card/CARDBlock/EraseCallback.s" +static void EraseCallback(s32 chan, s32 result) { + CARDControl* card; + CARDCallback callback; + u32 temp[2]; /* this compiler sucks */ + u16* fat; + u32 addr; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + fat = __CARDGetFatBlock(card); + addr = ((u32)fat - (u32)card->workArea) / CARD_SYSTEM_BLOCK_SIZE * card->sectorSize; + result = __CARDWrite(chan, addr, CARD_SYSTEM_BLOCK_SIZE, fat, WriteCallback); + if (result < 0) { + goto error; + } + + return; + +error: + if (card->apiCallback == NULL) { + __CARDPutControlBlock(card, result); + } + callback = card->eraseCallback; + if (callback) { + card->eraseCallback = NULL; + callback(chan, result); + } } -#pragma pop /* 803555B8-803556D0 34FEF8 0118+00 0/0 1/1 0/0 .text __CARDAllocBlock */ -// needs compiler epilogue patch -#ifdef NONMATCHING s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) { CARDControl* card; u16* fat; @@ -122,23 +143,17 @@ s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) { return __CARDUpdateFatBlock(chan, fat, callback); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) { - nofralloc -#include "asm/dolphin/card/CARDBlock/__CARDAllocBlock.s" -} -#pragma pop -#endif /* 803556D0-8035577C 350010 00AC+00 1/1 1/1 0/0 .text __CARDUpdateFatBlock */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDUpdateFatBlock(s32 chan, u16* fat, CARDCallback callback) { - nofralloc -#include "asm/dolphin/card/CARDBlock/__CARDUpdateFatBlock.s" +s32 __CARDUpdateFatBlock(s32 chan, u16* fat, CARDCallback callback) { + CARDControl* card; + + card = &__CARDBlock[chan]; + ++fat[2]; + __CARDCheckSum(fat + 2, 0x1FFC, fat, fat + 1); + DCStoreRange(fat, 0x2000); + card->eraseCallback = callback; + + return __CARDEraseSector(chan, (((u32)fat - (u32)card->workArea) / 8192u) * card->sectorSize, + EraseCallback); } -#pragma pop diff --git a/libs/dolphin/card/CARDCheck.c b/libs/dolphin/card/CARDCheck.c index d1fea3f8da..abd98491a7 100644 --- a/libs/dolphin/card/CARDCheck.c +++ b/libs/dolphin/card/CARDCheck.c @@ -53,34 +53,143 @@ void __CARDCheckSum(void* ptr, int length, u16* checksum, u16* checksumInv) { } /* 80355B90-80355E14 3504D0 0284+00 2/2 0/0 0/0 .text VerifyID */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 VerifyID(CARDControl* card) { - nofralloc -#include "asm/dolphin/card/CARDCheck/VerifyID.s" +static s32 VerifyID(CARDControl* card) { + CARDID* id; + u16 checksum; + u16 checksumInv; + OSSramEx* sramEx; + OSTime rand; + int i; + + id = card->workArea; + + if (id->deviceID != 0 || id->size != card->size) { + return CARD_RESULT_BROKEN; + } + + __CARDCheckSum(id, sizeof(CARDID) - sizeof(u32), &checksum, &checksumInv); + if (id->checkSum != checksum || id->checkSumInv != checksumInv) { + return CARD_RESULT_BROKEN; + } + + rand = *(OSTime*)&id->serial[12]; + sramEx = __OSLockSramEx(); + + for (i = 0; i < 12; i++) { + rand = (rand * 1103515245 + 12345) >> 16; + if (id->serial[i] != (u8)(sramEx->flashID[card - __CARDBlock][i] + rand)) { + __OSUnlockSramEx(FALSE); + return CARD_RESULT_BROKEN; + } + rand = ((rand * 1103515245 + 12345) >> 16) & 0x7FFF; + } + + __OSUnlockSramEx(FALSE); + if (id->encode != __CARDGetFontEncode()) { + return CARD_RESULT_ENCODING; + } + + return CARD_RESULT_READY; } -#pragma pop /* 80355E14-80356054 350754 0240+00 2/2 0/0 0/0 .text VerifyDir */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 VerifyDir(CARDControl* card, int* outCurrent) { - nofralloc -#include "asm/dolphin/card/CARDCheck/VerifyDir.s" +static s32 VerifyDir(CARDControl* card, int* outCurrent) { + CARDDir* dir[2]; + CARDDirCheck* check[2]; + u16 checkSum; + u16 checkSumInv; + int i; + int errors; + int current; + + current = errors = 0; + for (i = 0; i < 2; i++) { + dir[i] = (CARDDir*)((u8*)card->workArea + (1 + i) * CARD_SYSTEM_BLOCK_SIZE); + check[i] = __CARDGetDirCheck(dir[i]); + __CARDCheckSum(dir[i], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &checkSum, &checkSumInv); + if (check[i]->checkSum != checkSum || check[i]->checkSumInv != checkSumInv) { + ++errors; + current = i; + card->currentDir = 0; + } + } + + if (0 == errors) { + if (card->currentDir == 0) { + if ((check[0]->checkCode - check[1]->checkCode) < 0) { + current = 0; + } else { + current = 1; + } + card->currentDir = dir[current]; + memcpy(dir[current], dir[current ^ 1], CARD_SYSTEM_BLOCK_SIZE); + } else { + current = (card->currentDir == dir[0]) ? 0 : 1; + } + } + if (outCurrent) { + *outCurrent = current; + } + return errors; } -#pragma pop /* 80356054-803562D8 350994 0284+00 2/2 0/0 0/0 .text VerifyFAT */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 VerifyFAT(CARDControl* card, int* outCurrent) { - nofralloc -#include "asm/dolphin/card/CARDCheck/VerifyFAT.s" +static s32 VerifyFAT(CARDControl* card, int* outCurrent) { + u16* fat[2]; + u16* fatp; + u16 nBlock; + u16 cFree; + int i; + u16 checkSum; + u16 checkSumInv; + int errors; + int current; + + current = errors = 0; + for (i = 0; i < 2; i++) { + fatp = fat[i] = (u16*)((u8*)card->workArea + (3 + i) * CARD_SYSTEM_BLOCK_SIZE); + + __CARDCheckSum(&fatp[CARD_FAT_CHECKCODE], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &checkSum, + &checkSumInv); + if (fatp[CARD_FAT_CHECKSUM] != checkSum || fatp[CARD_FAT_CHECKSUMINV] != checkSumInv) { + ++errors; + current = i; + card->currentFat = 0; + continue; + } + + cFree = 0; + for (nBlock = CARD_NUM_SYSTEM_BLOCK; nBlock < card->cBlock; nBlock++) { + if (fatp[nBlock] == CARD_FAT_AVAIL) { + cFree++; + } + } + if (cFree != fatp[CARD_FAT_FREEBLOCKS]) { + ++errors; + current = i; + card->currentFat = 0; + continue; + } + } + + if (0 == errors) { + if (card->currentFat == 0) { + if (((s16)fat[0][CARD_FAT_CHECKCODE] - (s16)fat[1][CARD_FAT_CHECKCODE]) < 0) { + current = 0; + } else { + current = 1; + } + card->currentFat = fat[current]; + memcpy(fat[current], fat[current ^ 1], CARD_SYSTEM_BLOCK_SIZE); + } else { + current = (card->currentFat == fat[0]) ? 0 : 1; + } + } + if (outCurrent) { + *outCurrent = current; + } + return errors; } -#pragma pop /* 803562D8-80356364 350C18 008C+00 0/0 1/1 0/0 .text __CARDVerify */ s32 __CARDVerify(CARDControl* card) { @@ -105,7 +214,6 @@ s32 __CARDVerify(CARDControl* card) { } /* 80356364-803568F4 350CA4 0590+00 1/1 0/0 0/0 .text CARDCheckExAsync */ -#ifdef NONMATCHING s32 CARDCheckExAsync(s32 chan, s32* xferBytes, CARDCallback callback) { CARDControl* card; CARDDir* dir[2]; @@ -235,16 +343,6 @@ s32 CARDCheckExAsync(s32 chan, s32* xferBytes, CARDCallback callback) { } return CARD_RESULT_READY; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 CARDCheckExAsync(s32 chan, s32* xferBytes, CARDCallback callback) { - nofralloc -#include "asm/dolphin/card/CARDCheck/CARDCheckExAsync.s" -} -#pragma pop -#endif /* 803568F4-80356948 351234 0054+00 0/0 2/2 0/0 .text CARDCheck */ s32 CARDCheck(s32 chan) { diff --git a/libs/dolphin/card/CARDDir.c b/libs/dolphin/card/CARDDir.c index adbdffaf4f..87d776574c 100644 --- a/libs/dolphin/card/CARDDir.c +++ b/libs/dolphin/card/CARDDir.c @@ -55,8 +55,6 @@ error: } /* 80355854-8035591C 350194 00C8+00 1/1 0/0 0/0 .text EraseCallback */ -// needs compiler epilogue patch -#ifdef NONMATCHING static void EraseCallback(s32 chan, s32 result) { CARDControl* card; CARDCallback callback; @@ -88,19 +86,8 @@ error: callback(chan, result); } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void EraseCallback(s32 chan, s32 result) { - nofralloc -#include "asm/dolphin/card/CARDDir/EraseCallback.s" -} -#pragma pop -#endif /* 8035591C-803559E0 35025C 00C4+00 0/0 4/4 0/0 .text __CARDUpdateDir */ -#ifdef NONMATCHING s32 __CARDUpdateDir(s32 chan, CARDCallback callback) { CARDControl* card; CARDDirCheck* check; @@ -123,13 +110,3 @@ s32 __CARDUpdateDir(s32 chan, CARDCallback callback) { addr = ((u32)dir - (u32)card->workArea) / 0x2000 * card->sectorSize; return __CARDEraseSector(chan, addr, EraseCallback); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDUpdateDir(s32 chan, CARDCallback callback) { - nofralloc -#include "asm/dolphin/card/CARDDir/__CARDUpdateDir.s" -} -#pragma pop -#endif diff --git a/libs/dolphin/card/CARDFormat.c b/libs/dolphin/card/CARDFormat.c index 00d5923bfa..d633512260 100644 --- a/libs/dolphin/card/CARDFormat.c +++ b/libs/dolphin/card/CARDFormat.c @@ -9,6 +9,7 @@ #include "dolphin/card/card.h" #include "dolphin/dsp/dsp.h" #include "dolphin/dvd/dvd.h" +#include "dolphin/vi/vi.h" #include "dolphin/card/CARDPriv.h" @@ -68,14 +69,82 @@ error: } /* 803575C8-80357C20 351F08 0658+00 1/1 0/0 0/0 .text __CARDFormatRegionAsync */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDFormatRegionAsync(s32 chan, u16 encode, CARDCallback callback) { - nofralloc -#include "asm/dolphin/card/CARDFormat/__CARDFormatRegionAsync.s" +s32 __CARDFormatRegionAsync(s32 chan, u16 encode, CARDCallback callback) { + CARDControl* card; + CARDID* id; + CARDDir* dir; + u16* fat; + s16 i; + s32 result; + OSSram* sram; + OSSramEx* sramEx; + u16 viDTVStatus; + OSTime time; + OSTime rand; + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + id = (CARDID*)card->workArea; + memset(id, 0xff, CARD_SYSTEM_BLOCK_SIZE); + viDTVStatus = __VIRegs[55]; + + id->encode = encode; + + sram = __OSLockSram(); + *(u32*)&id->serial[20] = sram->counterBias; + *(u32*)&id->serial[24] = sram->language; + __OSUnlockSram(FALSE); + + rand = time = OSGetTime(); + + sramEx = __OSLockSramEx(); + for (i = 0; i < 12; i++) { + rand = (rand * 1103515245 + 12345) >> 16; + id->serial[i] = (u8)(sramEx->flashID[chan][i] + rand); + rand = ((rand * 1103515245 + 12345) >> 16) & 0x7FFF; + } + __OSUnlockSramEx(FALSE); + + *(u32*)&id->serial[28] = viDTVStatus; + *(OSTime*)&id->serial[12] = time; + + id->deviceID = 0; + id->size = card->size; + __CARDCheckSum(id, sizeof(CARDID) - sizeof(u32), &id->checkSum, &id->checkSumInv); + + for (i = 0; i < 2; i++) { + CARDDirCheck* check; + + dir = (CARDDir*)((u8*)card->workArea + (1 + i) * CARD_SYSTEM_BLOCK_SIZE); + memset(dir, 0xff, CARD_SYSTEM_BLOCK_SIZE); + check = __CARDGetDirCheck(dir); + check->checkCode = i; + __CARDCheckSum(dir, CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &check->checkSum, + &check->checkSumInv); + } + for (i = 0; i < 2; i++) { + fat = (u16*)((u8*)card->workArea + (3 + i) * CARD_SYSTEM_BLOCK_SIZE); + memset(fat, 0x00, CARD_SYSTEM_BLOCK_SIZE); + fat[CARD_FAT_CHECKCODE] = (u16)i; + fat[CARD_FAT_FREEBLOCKS] = (u16)(card->cBlock - CARD_NUM_SYSTEM_BLOCK); + fat[CARD_FAT_LASTSLOT] = CARD_NUM_SYSTEM_BLOCK - 1; + __CARDCheckSum(&fat[CARD_FAT_CHECKCODE], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), + &fat[CARD_FAT_CHECKSUM], &fat[CARD_FAT_CHECKSUMINV]); + } + + card->apiCallback = callback ? callback : __CARDDefaultApiCallback; + DCStoreRange(card->workArea, CARD_WORKAREA_SIZE); + + card->formatStep = 0; + result = __CARDEraseSector(chan, (u32)card->sectorSize * card->formatStep, FormatCallback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; } -#pragma pop /* 80357C20-80357C74 352560 0054+00 0/0 1/1 0/0 .text CARDFormat */ s32 CARDFormat(s32 chan) { diff --git a/libs/dolphin/card/CARDMount.c b/libs/dolphin/card/CARDMount.c index 77c0441807..cb33f9e4aa 100644 --- a/libs/dolphin/card/CARDMount.c +++ b/libs/dolphin/card/CARDMount.c @@ -146,14 +146,133 @@ static u32 LatencyTable[8] = { }; /* 80356BC8-8035701C 351508 0454+00 2/2 0/0 0/0 .text DoMount */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 DoMount(s32 chan) { - nofralloc -#include "asm/dolphin/card/CARDMount/DoMount.s" +static s32 DoMount(s32 chan) { + CARDControl* card; + u32 id; + u8 status; + s32 result; + OSSramEx* sram; + int i; + u8 checkSum; + int step; + + card = &__CARDBlock[chan]; + + if (card->mountStep == 0) { + if (EXIGetID(chan, 0, &id) == 0) { + result = CARD_RESULT_NOCARD; + } else if (IsCard(id)) { + result = CARD_RESULT_READY; + } else { + result = CARD_RESULT_WRONGDEVICE; + } + if (result < 0) { + goto error; + } + + card->cid = id; + + card->size = (u16)(id & 0xFC); + card->sectorSize = SectorSizeTable[(id & 0x00003800) >> 11]; + card->cBlock = (u16)((card->size * 1024 * 1024 / 8) / card->sectorSize); + card->latency = LatencyTable[(id & 0x00000700) >> 8]; + + result = __CARDReadVendorID(chan, &card->vendorID); + if (result < 0) { + goto error; + } + + if (CARDGetFastMode() && (card->vendorID >> 8) == 0xec) { + card->pageSize = 0x200; + } else { + card->pageSize = 0x80; + } + result = __CARDClearStatus(chan); + if (result < 0) { + goto error; + } + + result = __CARDReadStatus(chan, &status); + if (result < 0) { + goto error; + } + + if (!EXIProbe(chan)) { + result = CARD_RESULT_NOCARD; + goto error; + } + + if (!(status & 0x40)) { + result = __CARDUnlock(chan, card->id); + if (result < 0) { + goto error; + } + + checkSum = 0; + sram = __OSLockSramEx(); + for (i = 0; i < 12; i++) { + sram->flashID[chan][i] = card->id[i]; + checkSum += card->id[i]; + } + sram->flashIDCheckSum[chan] = (u8)~checkSum; + __OSUnlockSramEx(TRUE); + + return result; + } else { + card->mountStep = 1; + + checkSum = 0; + sram = __OSLockSramEx(); + for (i = 0; i < 12; i++) { + checkSum += sram->flashID[chan][i]; + } + __OSUnlockSramEx(FALSE); + if (sram->flashIDCheckSum[chan] != (u8)~checkSum) { + result = CARD_RESULT_IOERROR; + goto error; + } + } + } + + if (card->mountStep == 1) { + if (card->cid == 0x80000004) { + u16 vendorID; + + sram = __OSLockSramEx(); + vendorID = *(u16*)sram->flashID[chan]; + __OSUnlockSramEx(FALSE); + + if (__CARDVendorID == 0xffff || vendorID != __CARDVendorID) { + result = CARD_RESULT_WRONGDEVICE; + goto error; + } + } + + card->mountStep = 2; + + result = __CARDEnableInterrupt(chan, TRUE); + if (result < 0) { + goto error; + } + + EXISetExiCallback(chan, __CARDExiHandler); + EXIUnlock(chan); + DCInvalidateRange(card->workArea, CARD_WORKAREA_SIZE); + } + + step = card->mountStep - 2; + result = __CARDRead(chan, (u32)card->sectorSize * step, CARD_SYSTEM_BLOCK_SIZE, + (u8*)card->workArea + (CARD_SYSTEM_BLOCK_SIZE * step), __CARDMountCallback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; + +error: + EXIUnlock(chan); + DoUnmount(chan, result); + return result; } -#pragma pop /* 8035701C-80357154 35195C 0138+00 2/2 1/1 0/0 .text __CARDMountCallback */ void __CARDMountCallback(s32 chan, s32 result) { @@ -266,7 +385,7 @@ s32 CARDMount(s32 chan, void* workArea, CARDCallback attachCb) { } /* 8035733C-803573D8 351C7C 009C+00 2/2 0/0 0/0 .text DoUnmount */ -static void DoUnmount(s32 chan, s32 result) { +static inline void DoUnmount(s32 chan, s32 result) { CARDControl* card; BOOL enabled; @@ -284,11 +403,14 @@ static void DoUnmount(s32 chan, s32 result) { } /* 803573D8-80357484 351D18 00AC+00 0/0 2/2 0/0 .text CARDUnmount */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 CARDUnmount(s32 chan) { - nofralloc -#include "asm/dolphin/card/CARDMount/CARDUnmount.s" +s32 CARDUnmount(s32 chan) { + CARDControl* card; + s32 result; + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + DoUnmount(chan, CARD_RESULT_NOCARD); + return CARD_RESULT_READY; } -#pragma pop diff --git a/libs/dolphin/card/CARDNet.c b/libs/dolphin/card/CARDNet.c index 1ce5bcf2c1..087361de62 100644 --- a/libs/dolphin/card/CARDNet.c +++ b/libs/dolphin/card/CARDNet.c @@ -12,10 +12,10 @@ #include "dolphin/card/CARDPriv.h" /* 80450A70 0002+00 data_80450A70 __CARDVendorID */ -SECTION_SDATA u16 __CARDVendorID = 0xFFFF; +u16 __CARDVendorID = 0xFFFF; /* 80450A72 0006+00 data_80450A72 None */ -SECTION_SDATA u8 data_80450A72 = 0x1C; +u8 data_80450A72 = 0x1C; /* 80359158-8035921C 353A98 00C4+00 0/0 1/1 0/0 .text CARDGetSerialNo */ s32 CARDGetSerialNo(s32 chan, u64* serialNo) { diff --git a/libs/dolphin/card/CARDOpen.c b/libs/dolphin/card/CARDOpen.c index a492ad9ab2..2321c21542 100644 --- a/libs/dolphin/card/CARDOpen.c +++ b/libs/dolphin/card/CARDOpen.c @@ -41,60 +41,130 @@ BOOL __CARDCompareFileName(CARDDir* ent, const char* fileName) { } /* 80357CDC-80357D70 35261C 0094+00 2/2 0/0 0/0 .text __CARDAccess */ -#ifdef NONMATCHING s32 __CARDAccess(CARDControl* card, CARDDir* ent) { + const DVDDiskID* diskId = card->diskID; if (ent->gameName[0] == 0xFF) { return CARD_RESULT_NOFILE; } - if (card->diskID == &__CARDDiskNone || - (memcmp(ent->gameName, card->diskID->game_name, 4) == 0 && - memcmp(ent->company, card->diskID->company, 2) == 0)) { + if (diskId == &__CARDDiskNone || + (memcmp(ent->gameName, diskId->game_name, 4) == 0 && + memcmp(ent->company, diskId->company, 2) == 0)) { return CARD_RESULT_READY; } return CARD_RESULT_NOPERM; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDAccess(CARDControl* card, CARDDir* ent) { - nofralloc -#include "asm/dolphin/card/CARDOpen/__CARDAccess.s" -} -#pragma pop -#endif /* 80357D70-80357EA4 3526B0 0134+00 0/0 2/2 0/0 .text __CARDIsWritable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDIsWritable(CARDControl* card, CARDDir* ent) { - nofralloc -#include "asm/dolphin/card/CARDOpen/__CARDIsWritable.s" +s32 __CARDIsWritable(CARDControl* card, CARDDir* ent) { + s32 retVal; + const DVDDiskID* diskId = card->diskID; + u8 val; + if ((u8)ent->gameName[0] == 0xFFu) { + retVal = CARD_RESULT_NOFILE; + } else if (diskId == &__CARDDiskNone || + (memcmp(ent->gameName, diskId->game_name, 4) == 0 && + memcmp(ent->company, diskId->company, 2) == 0)) { + retVal = CARD_RESULT_READY; + } else { + retVal = CARD_RESULT_NOPERM; + } + + if (retVal == CARD_RESULT_NOPERM) { + val = ent->permission & data_80450A72; + if (val & 0x20u && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 && + memcmp(ent->company, __CARDDiskNone.company, 2) == 0)) { + return CARD_RESULT_READY; + } else if (val & 0x40 && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 && + memcmp(ent->company, diskId->company, 2) == 0)) { + return CARD_RESULT_READY; + } + } + + return retVal; } -#pragma pop /* 80357EA4-80357F98 3527E4 00F4+00 0/0 2/2 0/0 .text __CARDIsReadable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDIsReadable(CARDControl* card, CARDDir* ent) { - nofralloc -#include "asm/dolphin/card/CARDOpen/__CARDIsReadable.s" +s32 __CARDIsReadable(CARDControl* card, CARDDir* ent) { + u8 val; + s32 retVal; + const DVDDiskID* diskId = card->diskID; + + retVal = __CARDAccess(card, ent); + + if (retVal == CARD_RESULT_NOPERM) { + val = ent->permission & data_80450A72; + if (val & 0x20u && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 && + memcmp(ent->company, __CARDDiskNone.company, 2) == 0)) { + retVal = CARD_RESULT_READY; + } else if (val & 0x40 && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 && + memcmp(ent->company, diskId->company, 2) == 0)) { + retVal = CARD_RESULT_READY; + } + } + + if (retVal == CARD_RESULT_NOPERM && (ent->permission & 0x4)) { + return CARD_RESULT_READY; + } + + return retVal; +} + +static inline s32 __CARDGetFileNo(CARDControl* card, const char* fileName, s32* pfileNo) { + CARDDir* dir; + CARDDir* ent; + s32 fileNo; + s32 result; + + if (!card->attached) { + return CARD_RESULT_NOCARD; + } + + dir = __CARDGetDirBlock(card); + for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) { + ent = &dir[fileNo]; + result = __CARDAccess(card, ent); + if (result < 0) { + continue; + } + if (__CARDCompareFileName(ent, fileName)) { + *pfileNo = fileNo; + return CARD_RESULT_READY; + } + } + + return CARD_RESULT_NOFILE; } -#pragma pop /* 80357F98-803580B4 3528D8 011C+00 0/0 3/3 0/0 .text CARDOpen */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 CARDOpen(s32 chan, const char* fileName, CARDFileInfo* fileInfo) { - nofralloc -#include "asm/dolphin/card/CARDOpen/CARDOpen.s" +s32 CARDOpen(s32 chan, const char* fileName, CARDFileInfo* fileInfo) { + CARDControl* card; + CARDDir* dir; + CARDDir* ent; + s32 result; + s32 fileNo; + + fileInfo->chan = -1; + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + result = __CARDGetFileNo(card, fileName, &fileNo); + if (0 <= result) { + dir = __CARDGetDirBlock(card); + ent = &dir[fileNo]; + if (!CARDIsValidBlockNo(card, ent->startBlock)) { + result = CARD_RESULT_BROKEN; + } else { + fileInfo->chan = chan; + fileInfo->fileNo = fileNo; + fileInfo->offset = 0; + fileInfo->iBlock = ent->startBlock; + } + } + return __CARDPutControlBlock(card, result); } -#pragma pop /* 803580B4-80358108 3529F4 0054+00 0/0 3/3 0/0 .text CARDClose */ s32 CARDClose(CARDFileInfo* fileInfo) { diff --git a/libs/dolphin/card/CARDRdwr.c b/libs/dolphin/card/CARDRdwr.c index 6e244cdecd..6a8ca19f68 100644 --- a/libs/dolphin/card/CARDRdwr.c +++ b/libs/dolphin/card/CARDRdwr.c @@ -74,14 +74,39 @@ s32 __CARDRead(s32 chan, u32 addr, s32 length, void* dst, CARDCallback callback) } /* 803552C4-803553AC 34FC04 00E8+00 1/1 0/0 0/0 .text BlockWriteCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void BlockWriteCallback(s32 chan, s32 result) { - nofralloc -#include "asm/dolphin/card/CARDRdwr/BlockWriteCallback.s" +static void BlockWriteCallback(s32 chan, s32 result) { + CARDCallback callback; + CARDControl* card = &__CARDBlock[chan]; + + if (result < 0) { + goto error; + } + + card->xferred += card->pageSize; + + card->addr += card->pageSize; + (u8*)card->buffer += card->pageSize; + if (--card->repeat <= 0) { + goto error; + } + + result = __CARDWritePage(chan, BlockWriteCallback); + if (result < 0) { + goto error; + } + return; + +error: + if (card->apiCallback == 0) { + __CARDPutControlBlock(card, result); + } + callback = card->xferCallback; + if (callback) { + card->xferCallback = 0; + callback(chan, result); + } } -#pragma pop + /* 803553AC-80355414 34FCEC 0068+00 0/0 4/4 0/0 .text __CARDWrite */ s32 __CARDWrite(s32 chan, u32 addr, s32 length, void* dst, CARDCallback callback) { diff --git a/libs/dolphin/card/CARDRead.c b/libs/dolphin/card/CARDRead.c index f48f104f6e..4b80389295 100644 --- a/libs/dolphin/card/CARDRead.c +++ b/libs/dolphin/card/CARDRead.c @@ -120,7 +120,6 @@ error: } /* 80358788-803588CC 3530C8 0144+00 1/1 0/0 0/0 .text CARDReadAsync */ -#ifdef NONMATCHING s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset, CARDCallback callback) { CARDControl* card; @@ -138,10 +137,7 @@ s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset, dir = __CARDGetDirBlock(card); ent = &dir[fileInfo->fileNo]; - result = __CARDAccess(card, ent); - if (result == CARD_RESULT_NOPERM) { - result = __CARDIsWritable(ent); - } + result = __CARDIsReadable(card, ent); if (result < 0) { return __CARDPutControlBlock(card, result); @@ -159,17 +155,6 @@ s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset, } return result; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset, - CARDCallback callback) { - nofralloc -#include "asm/dolphin/card/CARDRead/CARDReadAsync.s" -} -#pragma pop -#endif /* 803588CC-80358914 35320C 0048+00 0/0 2/2 0/0 .text CARDRead */ s32 CARDRead(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset) { diff --git a/libs/dolphin/card/CARDStat.c b/libs/dolphin/card/CARDStat.c index 2d5531682e..965367466e 100644 --- a/libs/dolphin/card/CARDStat.c +++ b/libs/dolphin/card/CARDStat.c @@ -17,7 +17,7 @@ static void UpdateIconOffsets(CARDDir* ent, CARDStat* stat); // External References: // -SECTION_INIT void memcpy(); +void memcpy(); void __div2i(); // @@ -84,7 +84,6 @@ static void UpdateIconOffsets(CARDDir* ent, CARDStat* stat) { } /* 80358E88-80358F9C 3537C8 0114+00 0/0 2/2 0/0 .text CARDGetStatus */ -#ifdef NONMATCHING s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) { CARDControl* card; CARDDir* dir; @@ -101,10 +100,7 @@ s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) { dir = __CARDGetDirBlock(card); ent = &dir[fileNo]; - result = __CARDAccess(card, ent); - if (result == CARD_RESULT_NOPERM) { - result = __CARDIsWritable(ent); - } + result = __CARDIsReadable(card, ent); if (result >= 0) { memcpy(stat->gameName, ent->gameName, sizeof(stat->gameName)); @@ -123,19 +119,8 @@ s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) { } return __CARDPutControlBlock(card, result); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) { - nofralloc -#include "asm/dolphin/card/CARDStat/CARDGetStatus.s" -} -#pragma pop -#endif /* 80358F9C-80359110 3538DC 0174+00 1/1 0/0 0/0 .text CARDSetStatusAsync */ -#ifdef NONMATCHING s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callback) { CARDControl* card; CARDDir* dir; @@ -155,7 +140,7 @@ s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callba dir = __CARDGetDirBlock(card); ent = &dir[fileNo]; - result = __CARDAccess(card, ent); + result = __CARDIsWritable(card, ent); if (result < 0) { return __CARDPutControlBlock(card, result); } @@ -178,16 +163,6 @@ s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callba } return result; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callback) { - nofralloc -#include "asm/dolphin/card/CARDStat/CARDSetStatusAsync.s" -} -#pragma pop -#endif /* 80359110-80359158 353A50 0048+00 0/0 1/1 0/0 .text CARDSetStatus */ s32 CARDSetStatus(s32 chan, s32 fileNo, CARDStat* stat) { diff --git a/libs/dolphin/card/CARDUnlock.c b/libs/dolphin/card/CARDUnlock.c index 20b38c35f8..5a541a4f9b 100644 --- a/libs/dolphin/card/CARDUnlock.c +++ b/libs/dolphin/card/CARDUnlock.c @@ -26,7 +26,7 @@ static void DoneCallback(void* _task); // External References: // -SECTION_INIT void memset(); +void memset(); void DSPAddTask(); void DSPSendMailToDSP(); @@ -100,15 +100,47 @@ static s32 ReadArrayUnlock(s32 chan, u32 data, void* rbuf, s32 rlen, s32 mode) { /* 80450A68-80450A70 0004E8 0004+04 2/2 0/0 0/0 .sdata next */ static unsigned long int next = 1; -/* 803541D4-80354298 34EB14 00C4+00 2/2 0/0 0/0 .text DummyLen */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 DummyLen(void) { - nofralloc -#include "asm/dolphin/card/CARDUnlock/DummyLen.s" +static inline int CARDRand(void) { + next = next * 1103515245 + 12345; + return (int)((unsigned int)(next / 65536) % 32768); +} + +static inline void CARDSrand(unsigned int seed) { next = seed; } + +/* 803541D4-80354298 34EB14 00C4+00 2/2 0/0 0/0 .text DummyLen */ +static s32 DummyLen(void) { + u32 tick; + u32 wk; + s32 tmp; + u32 max; + + wk = 1; + max = 0; + tick = OSGetTick(); + CARDSrand(tick); + + tmp = CARDRand(); + tmp &= 0x0000001f; + tmp += 1; + while ((tmp < 4) && (max < 10)) { + tick = OSGetTick(); + tmp = (s32)(tick << wk); + wk++; + if (wk > 16) { + wk = 1; + } + CARDSrand((u32)tmp); + tmp = CARDRand(); + tmp &= 0x0000001f; + tmp += 1; + max++; + } + if (tmp < 4) { + tmp = 4; + } + + return tmp; } -#pragma pop /* ############################################################################################## */ /* 803D1EA0-803D2000 02EFC0 0160+00 1/1 0/0 0/0 .data CardData */ @@ -137,32 +169,263 @@ SECTION_DATA static u8 CardData[352] ALIGN_DECL(32) = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -/* 80354298-80354DF0 34EBD8 0B58+00 0/0 1/1 0/0 .text __CARDUnlock */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __CARDUnlock(s32 chan, u8 flashID[12]) { - nofralloc -#include "asm/dolphin/card/CARDUnlock/__CARDUnlock.s" +typedef struct DecodeParameters { + u8* inputAddr; + u32 inputLength; + u32 aramAddr; + u8* outputAddr; +} DecodeParameters; + +static inline u32 GetInitVal(void) { + u32 tmp; + u32 tick; + + tick = OSGetTick(); + CARDSrand(tick); + tmp = 0x7fec8000; + tmp |= CARDRand(); + tmp &= 0xfffff000; + return tmp; +} + +static inline u32 exnor_1st(u32 data, u32 rshift) { + u32 wk; + u32 w; + u32 i; + + w = data; + for (i = 0; i < rshift; i++) { + wk = ~(w ^ (w >> 7) ^ (w >> 15) ^ (w >> 23)); + w = (w >> 1) | ((wk << 30) & 0x40000000); + } + return w; +} + +static inline u32 exnor(u32 data, u32 lshift) { + u32 wk; + u32 w; + u32 i; + + w = data; + for (i = 0; i < lshift; i++) { + // 1bit Left Shift + wk = ~(w ^ (w << 7) ^ (w << 15) ^ (w << 23)); + w = (w << 1) | ((wk >> 30) & 0x00000002); + // printf("i=%d, w=%8x\n", i, w); + } + return w; +} + +/* 80354298-80354DF0 34EBD8 0B58+00 0/0 1/1 0/0 .text __CARDUnlock */ +s32 __CARDUnlock(s32 chan, u8 flashID[12]) { + u32 init_val; + u32 data; + + s32 dummy; + s32 rlen; + u32 rshift; + + u8 fsts; + u32 wk, wk1; + u32 Ans1 = 0; + u32 Ans2 = 0; + u32* dp; + u8 rbuf[64]; + u32 para1A = 0; + u32 para1B = 0; + u32 para2A = 0; + u32 para2B = 0; + + CARDControl* card; + DSPTaskInfo* task; + DecodeParameters* param; + u8* input; + u8* output; + + card = &__CARDBlock[chan]; + task = &card->task; + param = (DecodeParameters*)card->workArea; + input = (u8*)((u8*)param + sizeof(DecodeParameters)); + input = (u8*)OSRoundUp32B(input); + output = input + 32; + + fsts = 0; + init_val = GetInitVal(); + + dummy = DummyLen(); + rlen = dummy; + if (ReadArrayUnlock(chan, init_val, rbuf, rlen, 0) < 0) { + return CARD_RESULT_NOCARD; + } + + rshift = (u32)(dummy * 8 + 1); + wk = exnor_1st(init_val, rshift); + wk1 = ~(wk ^ (wk >> 7) ^ (wk >> 15) ^ (wk >> 23)); + card->scramble = (wk | ((wk1 << 31) & 0x80000000)); + card->scramble = bitrev(card->scramble); + dummy = DummyLen(); + rlen = 20 + dummy; + data = 0; + if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) { + return CARD_RESULT_NOCARD; + } + dp = (u32*)rbuf; + para1A = *dp++; + para1B = *dp++; + Ans1 = *dp++; + para2A = *dp++; + para2B = *dp++; + para1A = (para1A ^ card->scramble); + rshift = 32; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + para1B = (para1B ^ card->scramble); + rshift = 32; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + Ans1 ^= card->scramble; + rshift = 32; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + para2A = (para2A ^ card->scramble); + rshift = 32; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + para2B = (para2B ^ card->scramble); + rshift = (u32)(dummy * 8); + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + rshift = 32 + 1; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + + *(u32*)&input[0] = para2A; + *(u32*)&input[4] = para2B; + + param->inputAddr = input; + param->inputLength = 8; + param->outputAddr = output; + param->aramAddr = 0; + + DCFlushRange(input, 8); + DCInvalidateRange(output, 4); + DCFlushRange(param, sizeof(DecodeParameters)); + + task->priority = 255; + task->iram_mmem_addr = (u16*)OSPhysicalToCached(CardData); + task->iram_length = 0x160; + task->iram_addr = 0; + task->dsp_init_vector = 0x10; + task->init_cb = InitCallback; + task->res_cb = NULL; + task->done_cb = DoneCallback; + task->req_cb = NULL; + DSPAddTask(task); + + dp = (u32*)flashID; + *dp++ = para1A; + *dp++ = para1B; + *dp = Ans1; + + return CARD_RESULT_READY; } -#pragma pop /* 80354DF0-80354E60 34F730 0070+00 1/1 0/0 0/0 .text InitCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void InitCallback(void* _task) { - nofralloc -#include "asm/dolphin/card/CARDUnlock/InitCallback.s" +static void InitCallback(void* _task) { + s32 chan; + CARDControl* card; + DSPTaskInfo* task; + DecodeParameters* param; + + task = _task; + for (chan = 0; chan < 2; ++chan) { + card = &__CARDBlock[chan]; + if ((DSPTaskInfo*)&card->task == task) { + break; + } + } + param = (DecodeParameters*)card->workArea; + + DSPSendMailToDSP(0xff000000); + while (DSPCheckMailToDSP()) + ; + + DSPSendMailToDSP((u32)param); + while (DSPCheckMailToDSP()) + ; } -#pragma pop /* 80354E60-80355184 34F7A0 0324+00 1/1 0/0 0/0 .text DoneCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void DoneCallback(void* _task) { - nofralloc -#include "asm/dolphin/card/CARDUnlock/DoneCallback.s" -} -#pragma pop +static void DoneCallback(void* _task) { + u8 rbuf[64]; + u32 data; + s32 dummy; + s32 rlen; + u32 rshift; + + u8 unk; + u32 wk, wk1; + u32 Ans2; + + s32 chan; + CARDControl* card; + s32 result; + DSPTaskInfo* task; + DecodeParameters* param; + + u8* input; + u8* output; + task = _task; + for (chan = 0; chan < 2; ++chan) { + card = &__CARDBlock[chan]; + if ((DSPTaskInfo*)&card->task == task) { + break; + } + } + + param = (DecodeParameters*)card->workArea; + input = (u8*)((u8*)param + sizeof(DecodeParameters)); + input = (u8*)OSRoundUp32B(input); + output = input + 32; + + Ans2 = *(u32*)output; + dummy = DummyLen(); + rlen = dummy; + data = ((Ans2 ^ card->scramble) & 0xffff0000); + if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) { + EXIUnlock(chan); + __CARDMountCallback(chan, CARD_RESULT_NOCARD); + return; + } + + rshift = (u32)((dummy + 4 + card->latency) * 8 + 1); + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + + dummy = DummyLen(); + rlen = dummy; + data = (((Ans2 << 16) ^ card->scramble) & 0xffff0000); + if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) { + EXIUnlock(chan); + __CARDMountCallback(chan, CARD_RESULT_NOCARD); + return; + } + result = __CARDReadStatus(chan, &unk); + if (!EXIProbe(chan)) { + EXIUnlock(chan); + __CARDMountCallback(chan, CARD_RESULT_NOCARD); + return; + } + if (result == CARD_RESULT_READY && !(unk & 0x40)) { + EXIUnlock(chan); + result = CARD_RESULT_IOERROR; + } + __CARDMountCallback(chan, result); +} \ No newline at end of file diff --git a/libs/dolphin/card/CARDWrite.c b/libs/dolphin/card/CARDWrite.c index a020c7c209..d3f3cd0cb9 100644 --- a/libs/dolphin/card/CARDWrite.c +++ b/libs/dolphin/card/CARDWrite.c @@ -29,24 +29,81 @@ void __div2i(); // /* 80358914-80358A84 353254 0170+00 1/1 0/0 0/0 .text WriteCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void WriteCallback(s32 chan, s32 result) { - nofralloc -#include "asm/dolphin/card/CARDWrite/WriteCallback.s" +static void WriteCallback(s32 chan, s32 result) { + CARDControl* card; + CARDCallback callback; + u16* fat; + CARDDir* dir; + CARDDir* ent; + CARDFileInfo* fileInfo; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + fileInfo = card->fileInfo; + if (fileInfo->length < 0) { + result = CARD_RESULT_CANCELED; + goto error; + } + + fileInfo->length -= card->sectorSize; + if (fileInfo->length <= 0) { + dir = __CARDGetDirBlock(card); + ent = &dir[fileInfo->fileNo]; + ent->time = (u32)OSTicksToSeconds(OSGetTime()); + callback = card->apiCallback; + card->apiCallback = 0; + result = __CARDUpdateDir(chan, callback); + } else { + fat = __CARDGetFatBlock(card); + fileInfo->offset += card->sectorSize; + fileInfo->iBlock = fat[fileInfo->iBlock]; + if (!CARDIsValidBlockNo(card, fileInfo->iBlock)) { + result = CARD_RESULT_BROKEN; + goto error; + } + result = __CARDEraseSector(chan, card->sectorSize * (u32)fileInfo->iBlock, EraseCallback); + } + + if (result < 0) { + goto error; + } + return; + +error: + callback = card->apiCallback; + card->apiCallback = 0; + __CARDPutControlBlock(card, result); + callback(chan, result); } -#pragma pop /* 80358A84-80358B34 3533C4 00B0+00 2/2 0/0 0/0 .text EraseCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void EraseCallback(s32 chan, s32 result) { - nofralloc -#include "asm/dolphin/card/CARDWrite/EraseCallback.s" +static void EraseCallback(s32 chan, s32 result) { + CARDControl* card; + CARDCallback callback; + CARDFileInfo* fileInfo; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + fileInfo = card->fileInfo; + result = __CARDWrite(chan, card->sectorSize * (u32)fileInfo->iBlock, card->sectorSize, + card->buffer, WriteCallback); + if (result < 0) { + goto error; + } + return; + +error: + callback = card->apiCallback; + card->apiCallback = 0; + __CARDPutControlBlock(card, result); + callback(chan, result); } -#pragma pop /* 80358B34-80358C48 353474 0114+00 1/1 0/0 0/0 .text CARDWriteAsync */ s32 CARDWriteAsync(CARDFileInfo* fileInfo, const void* buf, s32 length, s32 offset, diff --git a/libs/dolphin/card/Makefile b/libs/dolphin/card/Makefile index ac749c4cf5..a896a9991d 100644 --- a/libs/dolphin/card/Makefile +++ b/libs/dolphin/card/Makefile @@ -34,12 +34,15 @@ LIBCARD_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/card/CARDStat.o \ $(BUILD_DIR)/libs/dolphin/card/CARDNet.o \ -LIBCARD_A_CFLAGS := \ +NO_INLINE_FILES = libs/dolphin/card/CARDOpen.c + +LIBCARD_A_CFLAGS = \ -Cpp_exceptions off \ -proc gekko \ -fp hard \ -nodefaults \ -str reuse \ + $(if $(filter $(NO_INLINE_FILES), $<),,-inline auto) \ -RTTI off \ -maxerrors 5 \ -enum int $(INCLUDES) \ @@ -61,10 +64,11 @@ $(BUILD_DIR)/libs/dolphin/card/%.o: libs/dolphin/card/%.c $(BUILD_DIR)/libs/dolp @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBCARD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(FRANK_CC) $(LIBCARD_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBCARD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ - @$(PYTHON) $(FRANK) $@ $@ $@ + @$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@ ifndef DISABLE_DEPS LIBCARD_A_D_FILES := $(LIBCARD_A_O_FILES:.o=.d) diff --git a/libs/dolphin/db/Makefile b/libs/dolphin/db/Makefile index 3ad6bd440d..6f5fe8d6b8 100644 --- a/libs/dolphin/db/Makefile +++ b/libs/dolphin/db/Makefile @@ -35,7 +35,7 @@ $(BUILD_DIR)/libs/dolphin/db/%.o: libs/dolphin/db/%.c $(BUILD_DIR)/libs/dolphin/ @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBDB_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBDB_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/libs/dolphin/dsp/Makefile b/libs/dolphin/dsp/Makefile index 4987d752e5..b670c347f7 100644 --- a/libs/dolphin/dsp/Makefile +++ b/libs/dolphin/dsp/Makefile @@ -39,7 +39,7 @@ $(BUILD_DIR)/libs/dolphin/dsp/%.o: libs/dolphin/dsp/%.c $(BUILD_DIR)/libs/dolphi @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBDSP_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBDSP_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/libs/dolphin/dvd/Makefile b/libs/dolphin/dvd/Makefile index da1943fdb2..ad08643a4c 100644 --- a/libs/dolphin/dvd/Makefile +++ b/libs/dolphin/dvd/Makefile @@ -28,6 +28,7 @@ LIBDVD_A_CFLAGS := \ -fp hard \ -nodefaults \ -str reuse \ + -inline auto \ -RTTI off \ -maxerrors 5 \ -enum int $(INCLUDES) \ @@ -49,10 +50,11 @@ $(BUILD_DIR)/libs/dolphin/dvd/%.o: libs/dolphin/dvd/%.c $(BUILD_DIR)/libs/dolphi @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBDVD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(FRANK_CC) $(LIBDVD_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBDVD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ - @$(PYTHON) $(FRANK) $@ $@ $@ + @$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@ ifndef DISABLE_DEPS LIBDVD_A_D_FILES := $(LIBDVD_A_O_FILES:.o=.d) diff --git a/libs/dolphin/dvd/dvd.c b/libs/dolphin/dvd/dvd.c index ee2f9879ad..c3b4720d5a 100644 --- a/libs/dolphin/dvd/dvd.c +++ b/libs/dolphin/dvd/dvd.c @@ -4,6 +4,7 @@ // #include "dolphin/dvd/dvd.h" +#include "dolphin/dvd/dvdlow.h" #include "MSL_C/MSL_Common/Src/mem.h" #include "MSL_C/MSL_Common/Src/string.h" #include "dol2asm.h" @@ -64,7 +65,7 @@ void DVDLowRequestAudioStatus(); void DVDLowAudioBufferConfig(); void DVDLowReset(); void DVDLowBreak(); -void DVDLowClearCallback(); +DVDLowCallback DVDLowClearCallback(); BOOL __DVDLowTestAlarm(OSAlarm* alarm); void __DVDFSInit(); void __DVDClearWaitingQueue(); @@ -86,7 +87,7 @@ extern OSThreadQueue __DVDThreadQueue; static void defaultOptionalCommandChecker() {} /* 804509E8-804509EC -00001 0004+00 1/1 0/0 0/0 .sdata __DVDVersion */ -SECTION_SDATA static char* __DVDVersion = "<< Dolphin SDK - DVD\trelease build: Apr 5 2004 04:14:51 (0x2301) >>"; +static char* __DVDVersion = "<< Dolphin SDK - DVD\trelease build: Apr 5 2004 04:14:51 (0x2301) >>"; /* 80451778-8045177C 000C78 0004+00 24/24 0/0 0/0 .sbss executing */ static DVDCommandBlock* executing; @@ -173,34 +174,33 @@ void DVDInit(void) { } /* ############################################################################################## */ -/* 803D1574-803D15A8 02E694 0034+00 2/2 0/0 0/0 .data @24 */ -SECTION_DATA static char lit_24[] = "DVDChangeDisk(): FST in the new disc is too big. "; /* 8044C900-8044C920 079620 0020+00 8/8 0/0 0/0 .bss BB2 */ static DVDBB2 BB2 ALIGN_DECL(32); /* 804509EC-804509F0 00046C 0004+00 6/6 0/0 0/0 .sdata autoInvalidation */ -SECTION_SDATA static u32 autoInvalidation = 0x00000001; +static BOOL autoInvalidation = TRUE; /* 804509F0-804509F4 -00001 0004+00 1/1 0/0 0/0 .sdata checkOptionalCommand */ -SECTION_SDATA static DVDOptionalCommandChecker checkOptionalCommand = defaultOptionalCommandChecker; +static DVDOptionalCommandChecker checkOptionalCommand = defaultOptionalCommandChecker; /* 804509F4-804509FC 000474 0006+02 2/2 0/0 0/0 .sdata @23 */ -SECTION_SDATA static char lit_23[] = "dvd.c"; typedef void (*stateFunc)(DVDCommandBlock* block); -/* 804517C0-804517C8 000CC0 0004+04 6/6 0/0 0/0 .sbss LastState */ +/* 804517C0-804517C8 000CC0 0004+04 6/6 0/0 0/0 .sbss "dvd.c" LastState */ static stateFunc LastState; /* 803491C8-8034925C 343B08 0094+00 1/1 0/0 0/0 .text stateReadingFST */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void stateReadingFST(void) { - nofralloc -#include "asm/dolphin/dvd/dvd/stateReadingFST.s" +void stateReadingFST() { + LastState = (stateFunc)stateReadingFST; + + if (bootInfo->fst_max_length < BB2.FSTLength) { + OSPanic("dvd.c", 661, "DVDChangeDisk(): FST in the new disc is too big. "); + } + + DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition, + cbForStateReadingFST); } -#pragma pop /* ############################################################################################## */ /* 8044C920-8044C940 079640 0020+00 2/3 0/0 0/0 .bss CurrDiskID */ @@ -235,6 +235,11 @@ static void cbForStateReadingFST(u32 intType) { } } +inline static void stateError(u32 error) { + __DVDStoreErrorCode(error); + DVDLowStopMotor(cbForStateError); +} + /* 803492DC-80349388 343C1C 00AC+00 12/12 0/0 0/0 .text cbForStateError */ static void cbForStateError(u32 intType) { DVDCommandBlock* finished; @@ -264,7 +269,7 @@ static void cbForStateError(u32 intType) { } /* 80349388-803493BC 343CC8 0034+00 2/2 0/0 0/0 .text stateTimeout */ -static void stateTimeout(void) { +static inline void stateTimeout(void) { __DVDStoreErrorCode(0x1234568); DVDReset(); cbForStateError(0); @@ -344,8 +349,7 @@ static void cbForStateGettingError(u32 intType) { } if (intType & 2) { - __DVDStoreErrorCode(0x1234567); - DVDLowStopMotor(cbForStateError); + stateError(0x1234567); return; } @@ -355,8 +359,7 @@ static void cbForStateGettingError(u32 intType) { errorCategory = CategorizeError(error); if (errorCategory == 1) { - __DVDStoreErrorCode(error); - DVDLowStopMotor(cbForStateError); + stateError(error); return; } @@ -404,8 +407,7 @@ static void cbForStateGettingError(u32 intType) { stateMotorStopped(); return; } else { - __DVDStoreErrorCode(0x1234567); - DVDLowStopMotor(cbForStateError); + stateError(0x1234567); return; } } @@ -437,13 +439,11 @@ static void cbForUnrecoveredErrorRetry(u32 intType) { } if (intType & 2) { - __DVDStoreErrorCode(0x1234567); - DVDLowStopMotor(cbForStateError); + stateError(0x1234567); return; } - __DVDStoreErrorCode(__DIRegs[8]); - DVDLowStopMotor(cbForStateError); + stateError(__DIRegs[8]); } /* 803497D8-80349800 344118 0028+00 2/2 0/0 0/0 .text stateGoToRetry */ @@ -461,8 +461,7 @@ static void cbForStateGoToRetry(u32 intType) { } if (intType & 2) { - __DVDStoreErrorCode(0x1234567); - DVDLowStopMotor(cbForStateError); + stateError(0x1234567); return; } @@ -549,8 +548,7 @@ static void cbForStateCheckID1(u32 intType) { } if (intType & 2) { - __DVDStoreErrorCode(0x1234567); - DVDLowStopMotor(cbForStateError); + stateError(0x1234567); return; } @@ -563,14 +561,29 @@ static void cbForStateCheckID1(u32 intType) { } /* 80349C24-80349CFC 344564 00D8+00 1/1 0/0 0/0 .text cbForStateCheckID2 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void cbForStateCheckID2(u32 intType) { - nofralloc -#include "asm/dolphin/dvd/dvd/cbForStateCheckID2.s" + +static void cbForStateCheckID2(u32 intType) { + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType & 1) { + NumInternalRetry = 0; + + LastState = (stateFunc)stateReadingFST; + + if (bootInfo->fst_max_length < BB2.FSTLength) { + OSPanic("dvd.c", 661, "DVDChangeDisk(): FST in the new disc is too big. "); + } + + DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition, + cbForStateReadingFST); + + } else { + stateGettingError(); + } } -#pragma pop /* 80349CFC-80349DEC 34463C 00F0+00 1/1 0/0 0/0 .text cbForStateCheckID3 */ static void cbForStateCheckID3(u32 intType) { @@ -655,7 +668,7 @@ static void cbForStateCoverClosed(u32 intType) { } /* 80349F98-80349FC0 3448D8 0028+00 3/3 0/0 0/0 .text stateMotorStopped */ -static void stateMotorStopped(void) { +static inline void stateMotorStopped(void) { DVDLowWaitCoverClose(cbForStateMotorStopped); } @@ -667,7 +680,6 @@ static void cbForStateMotorStopped(u32 intType) { } /* 8034A0AC-8034A394 3449EC 02E8+00 18/18 0/0 0/0 .text stateReady */ -#ifdef NONMATCHING static void stateReady() { DVDCommandBlock* finished; @@ -699,51 +711,38 @@ static void stateReady() { if (ResumeFromHere) { switch (ResumeFromHere) { - case 1: - executing->state = 1; - stateCoverClosed(); - break; case 2: executing->state = 11; stateMotorStopped(); break; - case 3: executing->state = 4; stateMotorStopped(); break; - case 4: executing->state = 5; stateMotorStopped(); break; case 7: case 6: + case 1: executing->state = 3; stateCoverClosed(); break; - case 5: - executing->state = -1; + stateError(CancelLastError); break; } - ResumeFromHere = 0; } else { - executing->state = 1; - stateBusy(executing); + if (MotorState == 0) { + executing->state = 1; + stateBusy(executing); + } else { + stateCoverClosed(); + } } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void stateReady(void) { - nofralloc -#include "asm/dolphin/dvd/dvd/stateReady.s" -} -#pragma pop -#endif /* 8034A394-8034A6D4 344CD4 0340+00 4/3 0/0 0/0 .text stateBusy */ #define MIN(a, b) (((a) > (b)) ? (b) : (a)) @@ -844,15 +843,193 @@ static u32 ImmCommand[] = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF}; /* 804509FC-80450A00 00047C 0004+00 1/1 0/0 0/0 .sdata DmaCommand */ SECTION_SDATA static u32 DmaCommand[] = {0xFFFFFFFF}; -/* 8034A6D4-8034AD2C 345014 0658+00 1/1 0/0 0/0 .text cbForStateBusy */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void cbForStateBusy(u32 intType) { - nofralloc -#include "asm/dolphin/dvd/dvd/cbForStateBusy.s" +inline static BOOL IsImmCommandWithResult(u32 command) { + u32 i; + + if (command == 9 || command == 10 || command == 11 || command == 12) { + return TRUE; + } + + for (i = 0; i < sizeof(ImmCommand) / sizeof(ImmCommand[0]); i++) { + if (command == ImmCommand[i]) + return TRUE; + } + + return FALSE; +} + +inline static BOOL IsDmaCommand(u32 command) { + u32 i; + + if (command == 1 || command == 4 || command == 5 || command == 14) + return TRUE; + + for (i = 0; i < sizeof(DmaCommand) / sizeof(DmaCommand[0]); i++) { + if (command == DmaCommand[i]) + return TRUE; + } + + return FALSE; +} + +/* 8034A6D4-8034AD2C 345014 0658+00 1/1 0/0 0/0 .text cbForStateBusy */ +static void cbForStateBusy(u32 intType) { + DVDCommandBlock* finished; + + if (intType == 16) { + stateTimeout(); + return; + } + + if ((CurrCommand == 3) || (CurrCommand == 15)) { + if (intType & 2) { + stateError(0x1234567); + return; + } + + NumInternalRetry = 0; + + if (CurrCommand == 15) { + ResetRequired = TRUE; + } + + if (CheckCancel(7)) { + return; + } + + executing->state = 7; + stateMotorStopped(); + return; + } + + if (IsDmaCommand(CurrCommand)) { + executing->transferred_size += executing->current_transfer_size - __DIRegs[6]; + } + + if (intType & 8) { + Canceling = FALSE; + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 10; + if (finished->callback) + (*finished->callback)(-3, finished); + if (CancelCallback) + (CancelCallback)(0, finished); + stateReady(); + + return; + } + + if (intType & 1) { + NumInternalRetry = 0; + + if (CurrCommand == 16) { + MotorState = 1; + finished = executing; + executing = &DummyCommandBlock; + finished->state = 0; + if (finished->callback) { + (*finished->callback)(0, finished); + } + stateReady(); + return; + } + + if (CheckCancel(0)) + return; + + if (IsDmaCommand(CurrCommand)) { + if (executing->transferred_size != executing->length) { + stateBusy(executing); + return; + } + + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)((s32)finished->transferred_size, finished); + } + stateReady(); + } else if (IsImmCommandWithResult(CurrCommand)) { + s32 result; + + if ((CurrCommand == 11) || (CurrCommand == 10)) { + result = (s32)(__DIRegs[8] << 2); + } else { + result = (s32)__DIRegs[8]; + } + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)(result, finished); + } + stateReady(); + } else if (CurrCommand == 6) { + if (executing->current_transfer_size == 0) { + if (__DIRegs[8] & 1) { + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 9; + if (finished->callback) { + (finished->callback)(-2, finished); + } + stateReady(); + } else { + AutoFinishing = FALSE; + executing->current_transfer_size = 1; + DVDLowAudioStream(0, executing->length, executing->offset, cbForStateBusy); + } + } else { + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)(0, finished); + } + stateReady(); + } + } else { + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)(0, finished); + } + stateReady(); + } + } else { + if (CurrCommand == 14) { + stateError(0x01234567); + return; + } + + if ((CurrCommand == 1 || CurrCommand == 4 || CurrCommand == 5 || CurrCommand == 14) && + (executing->transferred_size == executing->length)) { + if (CheckCancel(0)) { + return; + } + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)((s32)finished->transferred_size, finished); + } + stateReady(); + return; + } + + stateGettingError(); + } } -#pragma pop static inline BOOL issueCommand(s32 prio, DVDCommandBlock* block) { BOOL level; @@ -878,7 +1055,6 @@ static inline BOOL issueCommand(s32 prio, DVDCommandBlock* block) { } /* 8034AD2C-8034AE08 34566C 00DC+00 0/0 5/5 0/0 .text DVDReadAbsAsyncPrio */ -#ifdef NONMATCHING BOOL DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 offset, DVDCBCallback callback, s32 prio) { BOOL idle; @@ -892,58 +1068,59 @@ BOOL DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 off idle = issueCommand(prio, block); return idle; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 offset, - DVDCBCallback callback, s32 prio) { - nofralloc -#include "asm/dolphin/dvd/dvd/DVDReadAbsAsyncPrio.s" -} -#pragma pop -#endif /* 8034AE08-8034AED8 345748 00D0+00 0/0 1/1 0/0 .text DVDReadAbsAsyncForBS */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL DVDReadAbsAsyncForBS(DVDCommandBlock* block, void* addr, s32 length, s32 offset, - DVDCBCallback callback) { - nofralloc -#include "asm/dolphin/dvd/dvd/DVDReadAbsAsyncForBS.s" +BOOL DVDReadAbsAsyncForBS(DVDCommandBlock* block, void* addr, s32 length, s32 offset, + DVDCBCallback callback) { + BOOL idle; + block->command = 4; + block->buffer = addr; + block->length = length; + block->offset = offset; + block->transferred_size = 0; + block->callback = callback; + + idle = issueCommand(2, block); + return idle; } -#pragma pop /* 8034AED8-8034AFAC 345818 00D4+00 0/0 2/2 0/0 .text DVDReadDiskID */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL DVDReadDiskID(DVDCommandBlock* block, DVDDiskID* diskID, DVDCBCallback callback) { - nofralloc -#include "asm/dolphin/dvd/dvd/DVDReadDiskID.s" +BOOL DVDReadDiskID(DVDCommandBlock* block, DVDDiskID* diskID, DVDCBCallback callback) { + BOOL idle; + block->command = 5; + block->buffer = diskID; + block->length = sizeof(DVDDiskID); + block->offset = 0; + block->transferred_size = 0; + block->callback = callback; + + idle = issueCommand(2, block); + return idle; } -#pragma pop /* 8034AFAC-8034B068 3458EC 00BC+00 0/0 1/1 0/0 .text DVDCancelStreamAsync */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL DVDCancelStreamAsync(DVDCommandBlock* block, DVDCBCallback callback) { - nofralloc -#include "asm/dolphin/dvd/dvd/DVDCancelStreamAsync.s" +BOOL DVDCancelStreamAsync(DVDCommandBlock* block, DVDCBCallback callback) { + BOOL idle; + block->command = 7; + block->callback = callback; + idle = issueCommand(1, block); + return idle; } -#pragma pop /* 8034B068-8034B138 3459A8 00D0+00 0/0 1/1 0/0 .text DVDInquiryAsync */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL DVDInquiryAsync(DVDCommandBlock* block, DVDDriveInfo* info, DVDCBCallback callback) { - nofralloc -#include "asm/dolphin/dvd/dvd/DVDInquiryAsync.s" +BOOL DVDInquiryAsync(DVDCommandBlock* block, DVDDriveInfo* info, DVDCBCallback callback) { + BOOL idle; + + block->command = 14; + block->buffer = (void*)info; + block->length = sizeof(DVDDriveInfo); + block->transferred_size = 0; + block->callback = callback; + + idle = issueCommand(2, block); + + return idle; } -#pragma pop /* 8034B138-8034B17C 345A78 0044+00 15/15 2/2 0/0 .text DVDReset */ void DVDReset(void) { @@ -955,8 +1132,6 @@ void DVDReset(void) { } /* 8034B17C-8034B1C8 345ABC 004C+00 0/0 6/6 0/0 .text DVDGetCommandBlockStatus */ -// needs compiler epilogue patch -#ifdef NONMATCHING s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) { BOOL enabled; s32 retVal; @@ -973,26 +1148,34 @@ s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) { return retVal; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) { - nofralloc -#include "asm/dolphin/dvd/dvd/DVDGetCommandBlockStatus.s" -} -#pragma pop -#endif /* 8034B1C8-8034B274 345B08 00AC+00 0/0 7/7 0/0 .text DVDGetDriveStatus */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 DVDGetDriveStatus(void) { - nofralloc -#include "asm/dolphin/dvd/dvd/DVDGetDriveStatus.s" +s32 DVDGetDriveStatus() { + BOOL enabled; + s32 retVal; + DVDCommandBlock* cmd; + + enabled = OSDisableInterrupts(); + + if (FatalErrorFlag) { + retVal = -1; + } else if (PausingFlag) { + retVal = 8; + } else { + cmd = executing; + if (cmd == (DVDCommandBlock*)NULL) { + retVal = 0; + } else if (cmd == &DummyCommandBlock) { + retVal = 0; + } else { + retVal = DVDGetCommandBlockStatus(executing); + } + } + + OSRestoreInterrupts(enabled); + + return retVal; } -#pragma pop /* 8034B274-8034B284 345BB4 0010+00 0/0 1/1 0/0 .text DVDSetAutoInvalidation */ BOOL DVDSetAutoInvalidation(BOOL autoInval) { @@ -1016,33 +1199,18 @@ void DVDResume(void) { /* ############################################################################################## */ /* 803D15F8-803D163C 02E718 0041+03 0/0 0/0 0/0 .data @789 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_789[] = - "DVDChangeDiskAsync(): You can't specify NULL to company name. \n"; -#pragma pop - -/* 803D163C-803D1670 -00001 0034+00 1/1 0/0 0/0 .data @956 */ -SECTION_DATA static void* lit_956[13] = { - (void*)(((char*)DVDCancelAsync) + 0x50), (void*)(((char*)DVDCancelAsync) + 0x50), - (void*)(((char*)DVDCancelAsync) + 0x70), (void*)(((char*)DVDCancelAsync) + 0xB4), - (void*)(((char*)DVDCancelAsync) + 0x100), (void*)(((char*)DVDCancelAsync) + 0x17C), - (void*)(((char*)DVDCancelAsync) + 0x17C), (void*)(((char*)DVDCancelAsync) + 0x17C), - (void*)(((char*)DVDCancelAsync) + 0x17C), (void*)(((char*)DVDCancelAsync) + 0x254), - (void*)(((char*)DVDCancelAsync) + 0x254), (void*)(((char*)DVDCancelAsync) + 0x50), - (void*)(((char*)DVDCancelAsync) + 0x17C), -}; +static char string_DVDChangeDiskAsyncMsg[] = "DVDChangeDiskAsync(): You can't specify NULL to company name. \n"; /* 8034B2D4-8034B550 345C14 027C+00 3/2 0/0 0/0 .text DVDCancelAsync */ -// needs compiler epilogue patch -#ifdef NONMATCHING BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) { BOOL enabled; DVDLowCallback old; + s32 state; enabled = OSDisableInterrupts(); - switch (block->state) { + state = block->state; + switch (state) { case -1: case 0: case 10: @@ -1131,16 +1299,6 @@ BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) { OSRestoreInterrupts(enabled); return TRUE; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) { - nofralloc -#include "asm/dolphin/dvd/dvd/DVDCancelAsync.s" -} -#pragma pop -#endif /* 8034B550-8034B5FC 345E90 00AC+00 0/0 1/1 1/1 .text DVDCancel */ s32 DVDCancel(DVDCommandBlock* block) { @@ -1190,28 +1348,8 @@ DVDDiskID* DVDGetCurrentDiskID(void) { } /* ############################################################################################## */ -/* 803D1670-803D16A8 -00001 0034+04 1/1 0/0 0/0 .data @1060 */ -SECTION_DATA static void* lit_1060[13 + 1 /* padding */] = { - (void*)(((char*)DVDCheckDisk) + 0x98), - (void*)(((char*)DVDCheckDisk) + 0xA0), - (void*)(((char*)DVDCheckDisk) + 0x90), - (void*)(((char*)DVDCheckDisk) + 0x90), - (void*)(((char*)DVDCheckDisk) + 0x98), - (void*)(((char*)DVDCheckDisk) + 0x98), - (void*)(((char*)DVDCheckDisk) + 0x98), - (void*)(((char*)DVDCheckDisk) + 0x98), - (void*)(((char*)DVDCheckDisk) + 0x98), - (void*)(((char*)DVDCheckDisk) + 0xA0), - (void*)(((char*)DVDCheckDisk) + 0x90), - (void*)(((char*)DVDCheckDisk) + 0x90), - (void*)(((char*)DVDCheckDisk) + 0x98), - /* padding */ - NULL, -}; /* 8034B628-8034B720 345F68 00F8+00 1/0 4/4 0/0 .text DVDCheckDisk */ -// needs compiler epilogue patch -#ifdef NONMATCHING BOOL DVDCheckDisk(void) { BOOL enabled; s32 retVal; @@ -1257,8 +1395,10 @@ BOOL DVDCheckDisk(void) { coverReg = __DIRegs[1]; if (((coverReg >> 2) & 1) || (coverReg & 1)) { retVal = FALSE; + } else if (ResumeFromHere) { + retVal = 0; } else { - retVal = TRUE; + retVal = 1; } } @@ -1266,26 +1406,62 @@ BOOL DVDCheckDisk(void) { return retVal; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL DVDCheckDisk(void) { - nofralloc -#include "asm/dolphin/dvd/dvd/DVDCheckDisk.s" + +inline void DVDPause(void) { + BOOL level; + level = OSDisableInterrupts(); + PauseFlag = TRUE; + if (executing == (DVDCommandBlock*)NULL) { + PausingFlag = TRUE; + } + OSRestoreInterrupts(level); +} + +inline BOOL DVDCancelAllAsync(DVDCBCallback callback) { + BOOL enabled; + DVDCommandBlock* p; + BOOL retVal; + + enabled = OSDisableInterrupts(); + DVDPause(); + + while ((p = __DVDPopWaitingQueue()) != 0) { + DVDCancelAsync(p, NULL); + } + + if (executing) + retVal = DVDCancelAsync(executing, callback); + else { + retVal = TRUE; + if (callback) + (*callback)(0, NULL); + } + + DVDResume(); + OSRestoreInterrupts(enabled); + return retVal; } -#pragma pop -#endif /* 8034B720-8034B83C 346060 011C+00 0/0 1/1 0/0 .text __DVDPrepareResetAsync */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DVDPrepareResetAsync(DVDCBCallback callback) { - nofralloc -#include "asm/dolphin/dvd/dvd/__DVDPrepareResetAsync.s" +void __DVDPrepareResetAsync(DVDCBCallback callback) { + BOOL enabled; + + enabled = OSDisableInterrupts(); + + __DVDClearWaitingQueue(); + + if (Canceling) { + CancelCallback = callback; + } else { + if (executing) { + executing->callback = NULL; + } + + DVDCancelAllAsync(callback); + } + + OSRestoreInterrupts(enabled); } -#pragma pop /* 8034B83C-8034B874 34617C 0038+00 0/0 1/1 0/0 .text __DVDTestAlarm */ BOOL __DVDTestAlarm(OSAlarm* alarm) { diff --git a/libs/dolphin/dvd/dvdlow.c b/libs/dolphin/dvd/dvdlow.c index d928e81efe..2421c98d7d 100644 --- a/libs/dolphin/dvd/dvdlow.c +++ b/libs/dolphin/dvd/dvdlow.c @@ -29,7 +29,7 @@ void DVDLowRequestAudioStatus(); void DVDLowAudioBufferConfig(); void DVDLowReset(); void DVDLowBreak(); -void DVDLowClearCallback(); +DVDLowCallback DVDLowClearCallback(); void __DVDLowSetWAType(); void __DVDLowTestAlarm(); @@ -64,7 +64,7 @@ static u8 StopAtNextInt[4]; static u8 LastLength[4]; /* 80451718-8045171C 000C18 0004+00 13/13 0/0 0/0 .sbss Callback */ -static u8 Callback[4]; +static DVDLowCallback Callback; /* 8045171C-80451720 000C1C 0004+00 1/1 0/0 0/0 .sbss ResetCoverCallback */ static u8 ResetCoverCallback[4]; @@ -79,7 +79,7 @@ static u8 data_80451724[4]; static u8 ResetOccurred[4]; /* 8045172C-80451730 000C2C 0004+00 3/3 0/0 0/0 .sbss WaitingCoverClose */ -static u8 WaitingCoverClose[4]; +static DVDLowCallback WaitingCoverClose; /* 80451730-80451734 000C30 0004+00 2/2 0/0 0/0 .sbss Breaking */ static u8 Breaking[4]; @@ -321,14 +321,14 @@ asm void DVDLowBreak() { #pragma pop /* 80348458-80348474 342D98 001C+00 0/0 1/1 0/0 .text DVDLowClearCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DVDLowClearCallback() { - nofralloc -#include "asm/dolphin/dvd/dvdlow/DVDLowClearCallback.s" +DVDLowCallback DVDLowClearCallback() { + DVDLowCallback rv; + __DIRegs[1] = 0; + rv = Callback; + WaitingCoverClose = NULL; + Callback = NULL; + return rv; } -#pragma pop /* 80348474-803484B8 342DB4 0044+00 1/1 0/0 0/0 .text __DVDLowSetWAType */ #pragma push diff --git a/libs/dolphin/exi/Makefile b/libs/dolphin/exi/Makefile index e37f98a2d3..1bf69c6680 100644 --- a/libs/dolphin/exi/Makefile +++ b/libs/dolphin/exi/Makefile @@ -37,7 +37,7 @@ $(BUILD_DIR)/libs/dolphin/exi/%.o: libs/dolphin/exi/%.c $(BUILD_DIR)/libs/dolphi @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBEXI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBEXI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/libs/dolphin/gd/Makefile b/libs/dolphin/gd/Makefile index 6388955b90..82bda247c4 100644 --- a/libs/dolphin/gd/Makefile +++ b/libs/dolphin/gd/Makefile @@ -37,7 +37,7 @@ $(BUILD_DIR)/libs/dolphin/gd/%.o: libs/dolphin/gd/%.c $(BUILD_DIR)/libs/dolphin/ @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBGD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBGD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/libs/dolphin/gx/Makefile b/libs/dolphin/gx/Makefile index 33bca405fb..a83a0ee3f3 100644 --- a/libs/dolphin/gx/Makefile +++ b/libs/dolphin/gx/Makefile @@ -53,7 +53,7 @@ $(BUILD_DIR)/libs/dolphin/gx/%.o: libs/dolphin/gx/%.c $(BUILD_DIR)/libs/dolphin/ @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBGX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(CFLAGS) $(LIBGX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/libs/dolphin/mtx/Makefile b/libs/dolphin/mtx/Makefile index 99f00a40d9..8c5c92226e 100644 --- a/libs/dolphin/mtx/Makefile +++ b/libs/dolphin/mtx/Makefile @@ -35,7 +35,7 @@ $(BUILD_DIR)/libs/dolphin/mtx/%.o: libs/dolphin/mtx/%.c $(BUILD_DIR)/libs/dolphi @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBMTX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(CFLAGS) $(LIBMTX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/libs/dolphin/os/Makefile b/libs/dolphin/os/Makefile index d9818d6ca0..a0e5986d50 100644 --- a/libs/dolphin/os/Makefile +++ b/libs/dolphin/os/Makefile @@ -79,7 +79,7 @@ $(BUILD_DIR)/libs/dolphin/os/%.o: libs/dolphin/os/%.c $(BUILD_DIR)/libs/dolphin/ @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBOS_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBOS_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/libs/dolphin/os/OS.c b/libs/dolphin/os/OS.c index 4d884b53f0..9d57618ba6 100644 --- a/libs/dolphin/os/OS.c +++ b/libs/dolphin/os/OS.c @@ -832,6 +832,6 @@ u32 __OSGetDIConfig(void) { } /* 8033A874-8033A8A0 3351B4 002C+00 1/1 11/11 0/0 .text OSRegisterVersion */ -void OSRegisterVersion(char* version) { +void OSRegisterVersion(const char* version) { OSReport("%s\n", version); } diff --git a/libs/dolphin/pad/Makefile b/libs/dolphin/pad/Makefile index b531393957..7f3f10b581 100644 --- a/libs/dolphin/pad/Makefile +++ b/libs/dolphin/pad/Makefile @@ -37,10 +37,11 @@ $(BUILD_DIR)/libs/dolphin/pad/%.o: libs/dolphin/pad/%.c $(BUILD_DIR)/libs/dolphi @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBPAD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(FRANK_CC) $(LIBPAD_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBPAD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ - @$(PYTHON) $(FRANK) $@ $@ $@ + @$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@ ifndef DISABLE_DEPS LIBPAD_A_D_FILES := $(LIBPAD_A_O_FILES:.o=.d) diff --git a/libs/dolphin/pad/Pad.c b/libs/dolphin/pad/Pad.c index 908ab7d14f..d4ac7d1773 100644 --- a/libs/dolphin/pad/Pad.c +++ b/libs/dolphin/pad/Pad.c @@ -286,14 +286,31 @@ static void PADTypeAndStatusCallback(s32 chan, u32 type) { } /* 8034E9EC-8034EB2C 34932C 0140+00 1/1 0/0 0/0 .text PADReceiveCheckCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void PADReceiveCheckCallback(s32 chan, u32 type) { - nofralloc -#include "asm/dolphin/pad/Pad/PADReceiveCheckCallback.s" +static void PADReceiveCheckCallback(s32 chan, u32 type) { + u32 error; + u32 chanBit; + + chanBit = (u32)PAD_CHAN0_BIT >> chan; + if (!(EnabledBits & chanBit)) { + return; + } + + error = type & 0xFF; + type &= ~0xFF; + + WaitingBits &= ~chanBit; + CheckingBits &= ~chanBit; + + if (!(error & + (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION)) && + (type & SI_GC_WIRELESS) && (type & SI_WIRELESS_FIX_ID) && (type & SI_WIRELESS_RECEIVED) && + !(type & SI_WIRELESS_IR) && (type & SI_WIRELESS_CONT_MASK) == SI_WIRELESS_CONT && + !(type & SI_WIRELESS_LITE)) { + SITransfer(chan, &CmdReadOrigin, 1, &Origin[chan], 10, PADOriginUpdateCallback, 0); + } else { + PADDisable(chan); + } } -#pragma pop /* 8034EB2C-8034EC3C 34946C 0110+00 2/2 1/1 0/0 .text PADReset */ BOOL PADReset(u32 mask) { @@ -649,9 +666,12 @@ inline u8 ClampU8(u8 var, u8 org) { PAD_BUTTON_MENU | 0x2000 | 0x0080) /* 8034F5A0-8034FA10 349EE0 0470+00 2/1 0/0 0/0 .text SPEC2_MakeStatus */ +// lis and stw instruction order #ifdef NONMATCHING static void SPEC2_MakeStatus(s32 chan, PADStatus* status, u32 data[2]) { + u32 type; PADStatus* origin; + u32 chanBit; status->button = (u16)((data[0] >> 16) & PAD_ALL); status->stick_x = (s8)(data[0] >> 8); @@ -708,13 +728,24 @@ static void SPEC2_MakeStatus(s32 chan, PADStatus* status, u32 data[2]) { status->substick_x -= 128; status->substick_y -= 128; - origin = &Origin[chan]; - status->stick_x = ClampS8(status->stick_x, origin->stick_x); - status->stick_y = ClampS8(status->stick_y, origin->stick_y); - status->substick_x = ClampS8(status->substick_x, origin->substick_x); - status->substick_y = ClampS8(status->substick_y, origin->substick_y); - status->trigger_left = ClampU8(status->trigger_left, origin->trigger_left); - status->trigger_right = ClampU8(status->trigger_right, origin->trigger_right); + type = Type[chan]; + + if (((type & (0xffff0000u)) == SI_GC_CONTROLLER) && ((status->button & 0x80) ^ 0x80)) { + BarrelBits |= ((u32)PAD_CHAN0_BIT >> chan); + status->stick_x = 0; + status->stick_y = 0; + status->substick_x = 0; + status->substick_y = 0; + } else { + BarrelBits &= ~((u32)PAD_CHAN0_BIT >> chan); + origin = &Origin[chan]; + status->stick_x = ClampS8(status->stick_x, origin->stick_x); + status->stick_y = ClampS8(status->stick_y, origin->stick_y); + status->substick_x = ClampS8(status->substick_x, origin->substick_x); + status->substick_y = ClampS8(status->substick_y, origin->substick_y); + status->trigger_left = ClampU8(status->trigger_left, origin->trigger_left); + status->trigger_right = ClampU8(status->trigger_right, origin->trigger_right); + } } #else #pragma push @@ -786,21 +817,30 @@ static void SamplingHandler(OSInterrupt interrupt, OSContext* context) { } /* 8034FBA0-8034FBF4 34A4E0 0054+00 1/1 0/0 0/0 .text PADSetSamplingCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm PADSamplingCallback PADSetSamplingCallback(PADSamplingCallback callback) { - nofralloc -#include "asm/dolphin/pad/Pad/PADSetSamplingCallback.s" +PADSamplingCallback PADSetSamplingCallback(PADSamplingCallback callback) { + PADSamplingCallback prev; + + prev = SamplingCallback; + SamplingCallback = callback; + if (callback) { + SIRegisterPollingHandler(SamplingHandler); + } else { + SIUnregisterPollingHandler(SamplingHandler); + } + return prev; } -#pragma pop /* 8034FBF4-8034FC70 34A534 007C+00 0/0 1/1 0/0 .text __PADDisableRecalibration */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL __PADDisableRecalibration(BOOL disable) { - nofralloc -#include "asm/dolphin/pad/Pad/__PADDisableRecalibration.s" +BOOL __PADDisableRecalibration(BOOL disable) { + BOOL enabled; + BOOL prev; + + enabled = OSDisableInterrupts(); + prev = (UnkVal & 0x40) ? TRUE : FALSE; + UnkVal &= ~0x40; + if (disable) { + UnkVal |= 0x40; + } + OSRestoreInterrupts(enabled); + return prev; } -#pragma pop diff --git a/libs/dolphin/si/Makefile b/libs/dolphin/si/Makefile index 892875eae3..a5323107f4 100644 --- a/libs/dolphin/si/Makefile +++ b/libs/dolphin/si/Makefile @@ -37,7 +37,7 @@ $(BUILD_DIR)/libs/dolphin/si/%.o: libs/dolphin/si/%.c $(BUILD_DIR)/libs/dolphin/ @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBSI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBSI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/libs/dolphin/vi/Makefile b/libs/dolphin/vi/Makefile index 17c0b6f8eb..77b012b0c6 100644 --- a/libs/dolphin/vi/Makefile +++ b/libs/dolphin/vi/Makefile @@ -35,7 +35,7 @@ $(BUILD_DIR)/libs/dolphin/vi/%.o: libs/dolphin/vi/%.c $(BUILD_DIR)/libs/dolphin/ @mkdir -p $(@D) @echo building... $< @$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c - @$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBVI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c + @$(DOLPHIN_LIB_CC) $(LIBVI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c @if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi @echo Frank is fixing $@ @$(PYTHON) $(FRANK) $@ $@ $@ diff --git a/tools/tp.py b/tools/tp.py index 89466bb4f5..b268efdd25 100644 --- a/tools/tp.py +++ b/tools/tp.py @@ -179,6 +179,16 @@ def setup(debug: bool, game_path: Path, tools_path: Path): ) sys.exit(1) + c125e = compilers.joinpath("1.2.5e") + if not c125e.exists() or not c125e.is_dir(): + LOG.error( + ( + f"Unable to find patched MWCC compiler version 1.2.5e: missing directory '{c125e}'\n" + f"Check the README for instructions on how to obtain the compilers" + ) + ) + sys.exit(1) + c27_lmgr326b = c27.joinpath("Lmgr326b.dll") if not c27_lmgr326b.exists() or not c27_lmgr326b.is_file(): c27_lmgr326b = c27.joinpath("lmgr326b.dll")