diff --git a/Progress.md b/Progress.md index 25fbc2edf4c..716470116b2 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.734158% | 817644 | 3596544 +.text | 23.128426% | 831824 | 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.879913% | 1241580 | 4020672 +Total | 31.232590% | 1255760 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 30.879913% | 1241580 | 4020672 +main.dol | 31.232590% | 1255760 | 4020672 RELs | 33.041295% | 3799856 | 11500324 -Total | 32.481395% | 5041436 | 15520996 +Total | 32.572755% | 5055616 | 15520996 ## RELs diff --git a/README.md b/README.md index 61b52feb526..7816d0cdc20 100644 --- a/README.md +++ b/README.md @@ -30,10 +30,10 @@ mkdir -p tools/mwcc_compiler/ 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 +4. Extract `GC_WII_COMPILERS.zip` into the previously created `mwcc_compiler` directory ```bash -unzip GC_COMPILERS.zip -d tools/mwcc_compiler/ +unzip GC_WII_COMPILERS.zip "GC/*" -d tools/mwcc_compiler/ && mv tools/mwcc_compiler/GC/* tools/mwcc_compiler/ && rmdir tools/mwcc_compiler/GC ``` 5. Place a copy of NTSC-U GCN Twilight Princess in the root directory and call it `gz2e01.iso` (find this on your own) diff --git a/asm/dolphin/dvd/dvdFatal/__DVDPrintFatalMessage.s b/asm/dolphin/dvd/dvdFatal/__DVDPrintFatalMessage.s deleted file mode 100644 index d61841e5f50..00000000000 --- a/asm/dolphin/dvd/dvdFatal/__DVDPrintFatalMessage.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8034BCFC: -/* 8034BCFC 7C 08 02 A6 */ mflr r0 -/* 8034BD00 90 01 00 04 */ stw r0, 4(r1) -/* 8034BD04 94 21 FF F8 */ stwu r1, -8(r1) -/* 8034BD08 81 8D 92 48 */ lwz r12, FatalFunc(r13) -/* 8034BD0C 28 0C 00 00 */ cmplwi r12, 0 -/* 8034BD10 41 82 00 0C */ beq lbl_8034BD1C -/* 8034BD14 7D 88 03 A6 */ mtlr r12 -/* 8034BD18 4E 80 00 21 */ blrl -lbl_8034BD1C: -/* 8034BD1C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8034BD20 38 21 00 08 */ addi r1, r1, 8 -/* 8034BD24 7C 08 03 A6 */ mtlr r0 -/* 8034BD28 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvderror/ErrorCode2Num.s b/asm/dolphin/dvd/dvderror/ErrorCode2Num.s deleted file mode 100644 index c717202c471..00000000000 --- a/asm/dolphin/dvd/dvderror/ErrorCode2Num.s +++ /dev/null @@ -1,83 +0,0 @@ -lbl_8034BA6C: -/* 8034BA6C 38 00 00 02 */ li r0, 2 -/* 8034BA70 3C 80 80 3D */ lis r4, ErrorTable@ha /* 0x803D16A8@ha */ -/* 8034BA74 7C 09 03 A6 */ mtctr r0 -/* 8034BA78 38 84 16 A8 */ addi r4, r4, ErrorTable@l /* 0x803D16A8@l */ -/* 8034BA7C 38 A0 00 00 */ li r5, 0 -lbl_8034BA80: -/* 8034BA80 80 04 00 00 */ lwz r0, 0(r4) -/* 8034BA84 7C 03 00 40 */ cmplw r3, r0 -/* 8034BA88 40 82 00 0C */ bne lbl_8034BA94 -/* 8034BA8C 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8034BA90 4E 80 00 20 */ blr -lbl_8034BA94: -/* 8034BA94 84 04 00 04 */ lwzu r0, 4(r4) -/* 8034BA98 38 A5 00 01 */ addi r5, r5, 1 -/* 8034BA9C 7C 03 00 40 */ cmplw r3, r0 -/* 8034BAA0 40 82 00 0C */ bne lbl_8034BAAC -/* 8034BAA4 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8034BAA8 4E 80 00 20 */ blr -lbl_8034BAAC: -/* 8034BAAC 84 04 00 04 */ lwzu r0, 4(r4) -/* 8034BAB0 38 A5 00 01 */ addi r5, r5, 1 -/* 8034BAB4 7C 03 00 40 */ cmplw r3, r0 -/* 8034BAB8 40 82 00 0C */ bne lbl_8034BAC4 -/* 8034BABC 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8034BAC0 4E 80 00 20 */ blr -lbl_8034BAC4: -/* 8034BAC4 84 04 00 04 */ lwzu r0, 4(r4) -/* 8034BAC8 38 A5 00 01 */ addi r5, r5, 1 -/* 8034BACC 7C 03 00 40 */ cmplw r3, r0 -/* 8034BAD0 40 82 00 0C */ bne lbl_8034BADC -/* 8034BAD4 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8034BAD8 4E 80 00 20 */ blr -lbl_8034BADC: -/* 8034BADC 84 04 00 04 */ lwzu r0, 4(r4) -/* 8034BAE0 38 A5 00 01 */ addi r5, r5, 1 -/* 8034BAE4 7C 03 00 40 */ cmplw r3, r0 -/* 8034BAE8 40 82 00 0C */ bne lbl_8034BAF4 -/* 8034BAEC 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8034BAF0 4E 80 00 20 */ blr -lbl_8034BAF4: -/* 8034BAF4 84 04 00 04 */ lwzu r0, 4(r4) -/* 8034BAF8 38 A5 00 01 */ addi r5, r5, 1 -/* 8034BAFC 7C 03 00 40 */ cmplw r3, r0 -/* 8034BB00 40 82 00 0C */ bne lbl_8034BB0C -/* 8034BB04 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8034BB08 4E 80 00 20 */ blr -lbl_8034BB0C: -/* 8034BB0C 84 04 00 04 */ lwzu r0, 4(r4) -/* 8034BB10 38 A5 00 01 */ addi r5, r5, 1 -/* 8034BB14 7C 03 00 40 */ cmplw r3, r0 -/* 8034BB18 40 82 00 0C */ bne lbl_8034BB24 -/* 8034BB1C 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8034BB20 4E 80 00 20 */ blr -lbl_8034BB24: -/* 8034BB24 84 04 00 04 */ lwzu r0, 4(r4) -/* 8034BB28 38 A5 00 01 */ addi r5, r5, 1 -/* 8034BB2C 7C 03 00 40 */ cmplw r3, r0 -/* 8034BB30 40 82 00 0C */ bne lbl_8034BB3C -/* 8034BB34 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8034BB38 4E 80 00 20 */ blr -lbl_8034BB3C: -/* 8034BB3C 84 04 00 04 */ lwzu r0, 4(r4) -/* 8034BB40 38 A5 00 01 */ addi r5, r5, 1 -/* 8034BB44 7C 03 00 40 */ cmplw r3, r0 -/* 8034BB48 40 82 00 0C */ bne lbl_8034BB54 -/* 8034BB4C 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8034BB50 4E 80 00 20 */ blr -lbl_8034BB54: -/* 8034BB54 38 84 00 04 */ addi r4, r4, 4 -/* 8034BB58 38 A5 00 01 */ addi r5, r5, 1 -/* 8034BB5C 42 00 FF 24 */ bdnz lbl_8034BA80 -/* 8034BB60 3C 80 00 10 */ lis r4, 0x10 -/* 8034BB64 7C 03 20 40 */ cmplw r3, r4 -/* 8034BB68 41 80 00 18 */ blt lbl_8034BB80 -/* 8034BB6C 38 04 00 08 */ addi r0, r4, 8 -/* 8034BB70 7C 03 00 40 */ cmplw r3, r0 -/* 8034BB74 41 81 00 0C */ bgt lbl_8034BB80 -/* 8034BB78 38 60 00 11 */ li r3, 0x11 -/* 8034BB7C 4E 80 00 20 */ blr -lbl_8034BB80: -/* 8034BB80 38 60 00 1D */ li r3, 0x1d -/* 8034BB84 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvderror/__DVDStoreErrorCode.s b/asm/dolphin/dvd/dvderror/__DVDStoreErrorCode.s deleted file mode 100644 index 9c5ecfc0060..00000000000 --- a/asm/dolphin/dvd/dvderror/__DVDStoreErrorCode.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_8034BB88: -/* 8034BB88 7C 08 02 A6 */ mflr r0 -/* 8034BB8C 90 01 00 04 */ stw r0, 4(r1) -/* 8034BB90 3C 03 FE DD */ addis r0, r3, 0xfedd -/* 8034BB94 28 00 45 67 */ cmplwi r0, 0x4567 -/* 8034BB98 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034BB9C 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034BBA0 40 82 00 0C */ bne lbl_8034BBAC -/* 8034BBA4 3B E0 00 FF */ li r31, 0xff -/* 8034BBA8 48 00 00 38 */ b lbl_8034BBE0 -lbl_8034BBAC: -/* 8034BBAC 28 00 45 68 */ cmplwi r0, 0x4568 -/* 8034BBB0 40 82 00 0C */ bne lbl_8034BBBC -/* 8034BBB4 3B E0 00 FE */ li r31, 0xfe -/* 8034BBB8 48 00 00 28 */ b lbl_8034BBE0 -lbl_8034BBBC: -/* 8034BBBC 54 7F 46 3E */ srwi r31, r3, 0x18 -/* 8034BBC0 54 63 02 3E */ clrlwi r3, r3, 8 -/* 8034BBC4 4B FF FE A9 */ bl ErrorCode2Num -/* 8034BBC8 28 1F 00 06 */ cmplwi r31, 6 -/* 8034BBCC 41 80 00 08 */ blt lbl_8034BBD4 -/* 8034BBD0 3B E0 00 06 */ li r31, 6 -lbl_8034BBD4: -/* 8034BBD4 1C 1F 00 1E */ mulli r0, r31, 0x1e -/* 8034BBD8 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 8034BBDC 7F E3 02 14 */ add r31, r3, r0 -lbl_8034BBE0: -/* 8034BBE0 4B FF 45 C1 */ bl __OSLockSramEx -/* 8034BBE4 9B E3 00 24 */ stb r31, 0x24(r3) -/* 8034BBE8 38 60 00 01 */ li r3, 1 -/* 8034BBEC 4B FF 49 71 */ bl __OSUnlockSramEx -/* 8034BBF0 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034BBF4 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034BBF8 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034BBFC 7C 08 03 A6 */ mtlr r0 -/* 8034BC00 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDChangeDir.s b/asm/dolphin/dvd/dvdfs/DVDChangeDir.s deleted file mode 100644 index c622bd7b805..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDChangeDir.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80348CF4: -/* 80348CF4 7C 08 02 A6 */ mflr r0 -/* 80348CF8 90 01 00 04 */ stw r0, 4(r1) -/* 80348CFC 94 21 FF F8 */ stwu r1, -8(r1) -/* 80348D00 4B FF F8 29 */ bl DVDConvertPathToEntrynum -/* 80348D04 2C 03 00 00 */ cmpwi r3, 0 -/* 80348D08 41 80 00 2C */ blt lbl_80348D34 -/* 80348D0C 1C 03 00 0C */ mulli r0, r3, 0xc -/* 80348D10 80 8D 91 DC */ lwz r4, FstStart(r13) -/* 80348D14 7C 04 00 2E */ lwzx r0, r4, r0 -/* 80348D18 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 -/* 80348D1C 40 82 00 0C */ bne lbl_80348D28 -/* 80348D20 38 00 00 00 */ li r0, 0 -/* 80348D24 48 00 00 08 */ b lbl_80348D2C -lbl_80348D28: -/* 80348D28 38 00 00 01 */ li r0, 1 -lbl_80348D2C: -/* 80348D2C 2C 00 00 00 */ cmpwi r0, 0 -/* 80348D30 40 82 00 0C */ bne lbl_80348D3C -lbl_80348D34: -/* 80348D34 38 60 00 00 */ li r3, 0 -/* 80348D38 48 00 00 0C */ b lbl_80348D44 -lbl_80348D3C: -/* 80348D3C 90 6D 91 E8 */ stw r3, currentDirectory(r13) -/* 80348D40 38 60 00 01 */ li r3, 1 -lbl_80348D44: -/* 80348D44 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80348D48 38 21 00 08 */ addi r1, r1, 8 -/* 80348D4C 7C 08 03 A6 */ mtlr r0 -/* 80348D50 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDClose.s b/asm/dolphin/dvd/dvdfs/DVDClose.s deleted file mode 100644 index c90dd4ac86d..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDClose.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80348958: -/* 80348958 7C 08 02 A6 */ mflr r0 -/* 8034895C 90 01 00 04 */ stw r0, 4(r1) -/* 80348960 94 21 FF F8 */ stwu r1, -8(r1) -/* 80348964 48 00 2B ED */ bl DVDCancel -/* 80348968 38 60 00 01 */ li r3, 1 -/* 8034896C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80348970 38 21 00 08 */ addi r1, r1, 8 -/* 80348974 7C 08 03 A6 */ mtlr r0 -/* 80348978 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDConvertEntrynumToPath.s b/asm/dolphin/dvd/dvdfs/DVDConvertEntrynumToPath.s deleted file mode 100644 index a29edb6b78d..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDConvertEntrynumToPath.s +++ /dev/null @@ -1,98 +0,0 @@ -lbl_80348ADC: -/* 80348ADC 7C 08 02 A6 */ mflr r0 -/* 80348AE0 90 01 00 04 */ stw r0, 4(r1) -/* 80348AE4 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80348AE8 93 E1 00 24 */ stw r31, 0x24(r1) -/* 80348AEC 3B E5 00 00 */ addi r31, r5, 0 -/* 80348AF0 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80348AF4 3B C4 00 00 */ addi r30, r4, 0 -/* 80348AF8 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 80348AFC 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80348B00 93 81 00 18 */ stw r28, 0x18(r1) -/* 80348B04 40 82 00 0C */ bne lbl_80348B10 -/* 80348B08 38 60 00 00 */ li r3, 0 -/* 80348B0C 48 00 00 8C */ b lbl_80348B98 -lbl_80348B10: -/* 80348B10 1C 7D 00 0C */ mulli r3, r29, 0xc -/* 80348B14 80 8D 91 DC */ lwz r4, FstStart(r13) -/* 80348B18 80 CD 91 E0 */ lwz r6, FstStringStart(r13) -/* 80348B1C 7C 04 18 2E */ lwzx r0, r4, r3 -/* 80348B20 7C 64 1A 14 */ add r3, r4, r3 -/* 80348B24 80 63 00 04 */ lwz r3, 4(r3) -/* 80348B28 38 9E 00 00 */ addi r4, r30, 0 -/* 80348B2C 54 00 02 3E */ clrlwi r0, r0, 8 -/* 80348B30 38 BF 00 00 */ addi r5, r31, 0 -/* 80348B34 7F 86 02 14 */ add r28, r6, r0 -/* 80348B38 4B FF FE 45 */ bl entryToPath -/* 80348B3C 7C 03 F8 40 */ cmplw r3, r31 -/* 80348B40 40 82 00 08 */ bne lbl_80348B48 -/* 80348B44 48 00 00 54 */ b lbl_80348B98 -lbl_80348B48: -/* 80348B48 38 03 00 00 */ addi r0, r3, 0 -/* 80348B4C 38 63 00 01 */ addi r3, r3, 1 -/* 80348B50 38 80 00 2F */ li r4, 0x2f -/* 80348B54 7C C3 F8 50 */ subf r6, r3, r31 -/* 80348B58 7C 9E 01 AE */ stbx r4, r30, r0 -/* 80348B5C 38 86 00 00 */ addi r4, r6, 0 -/* 80348B60 7C BE 1A 14 */ add r5, r30, r3 -/* 80348B64 48 00 00 18 */ b lbl_80348B7C -lbl_80348B68: -/* 80348B68 88 1C 00 00 */ lbz r0, 0(r28) -/* 80348B6C 3B 9C 00 01 */ addi r28, r28, 1 -/* 80348B70 38 84 FF FF */ addi r4, r4, -1 -/* 80348B74 98 05 00 00 */ stb r0, 0(r5) -/* 80348B78 38 A5 00 01 */ addi r5, r5, 1 -lbl_80348B7C: -/* 80348B7C 28 04 00 00 */ cmplwi r4, 0 -/* 80348B80 41 82 00 10 */ beq lbl_80348B90 -/* 80348B84 88 1C 00 00 */ lbz r0, 0(r28) -/* 80348B88 7C 00 07 75 */ extsb. r0, r0 -/* 80348B8C 40 82 FF DC */ bne lbl_80348B68 -lbl_80348B90: -/* 80348B90 7C 04 30 50 */ subf r0, r4, r6 -/* 80348B94 7C 63 02 14 */ add r3, r3, r0 -lbl_80348B98: -/* 80348B98 7C 03 F8 40 */ cmplw r3, r31 -/* 80348B9C 40 82 00 18 */ bne lbl_80348BB4 -/* 80348BA0 7C 7E FA 14 */ add r3, r30, r31 -/* 80348BA4 38 00 00 00 */ li r0, 0 -/* 80348BA8 98 03 FF FF */ stb r0, -1(r3) -/* 80348BAC 38 60 00 00 */ li r3, 0 -/* 80348BB0 48 00 00 60 */ b lbl_80348C10 -lbl_80348BB4: -/* 80348BB4 1C 1D 00 0C */ mulli r0, r29, 0xc -/* 80348BB8 80 8D 91 DC */ lwz r4, FstStart(r13) -/* 80348BBC 7C 04 00 2E */ lwzx r0, r4, r0 -/* 80348BC0 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 -/* 80348BC4 40 82 00 0C */ bne lbl_80348BD0 -/* 80348BC8 38 00 00 00 */ li r0, 0 -/* 80348BCC 48 00 00 08 */ b lbl_80348BD4 -lbl_80348BD0: -/* 80348BD0 38 00 00 01 */ li r0, 1 -lbl_80348BD4: -/* 80348BD4 2C 00 00 00 */ cmpwi r0, 0 -/* 80348BD8 41 82 00 2C */ beq lbl_80348C04 -/* 80348BDC 38 1F FF FF */ addi r0, r31, -1 -/* 80348BE0 7C 03 00 40 */ cmplw r3, r0 -/* 80348BE4 40 82 00 14 */ bne lbl_80348BF8 -/* 80348BE8 38 00 00 00 */ li r0, 0 -/* 80348BEC 7C 1E 19 AE */ stbx r0, r30, r3 -/* 80348BF0 38 60 00 00 */ li r3, 0 -/* 80348BF4 48 00 00 1C */ b lbl_80348C10 -lbl_80348BF8: -/* 80348BF8 38 00 00 2F */ li r0, 0x2f -/* 80348BFC 7C 1E 19 AE */ stbx r0, r30, r3 -/* 80348C00 38 63 00 01 */ addi r3, r3, 1 -lbl_80348C04: -/* 80348C04 38 00 00 00 */ li r0, 0 -/* 80348C08 7C 1E 19 AE */ stbx r0, r30, r3 -/* 80348C0C 38 60 00 01 */ li r3, 1 -lbl_80348C10: -/* 80348C10 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80348C14 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 80348C18 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 80348C1C 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 80348C20 83 81 00 18 */ lwz r28, 0x18(r1) -/* 80348C24 38 21 00 28 */ addi r1, r1, 0x28 -/* 80348C28 7C 08 03 A6 */ mtlr r0 -/* 80348C2C 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDConvertPathToEntrynum.s b/asm/dolphin/dvd/dvdfs/DVDConvertPathToEntrynum.s deleted file mode 100644 index f7cdcf14c44..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDConvertPathToEntrynum.s +++ /dev/null @@ -1,229 +0,0 @@ -lbl_80348528: -/* 80348528 7C 08 02 A6 */ mflr r0 -/* 8034852C 90 01 00 04 */ stw r0, 4(r1) -/* 80348530 94 21 FF B8 */ stwu r1, -0x48(r1) -/* 80348534 BE 81 00 18 */ stmw r20, 0x18(r1) -/* 80348538 7C 77 1B 78 */ mr r23, r3 -/* 8034853C 3C 60 80 3D */ lis r3, lit_119@ha /* 0x803D1380@ha */ -/* 80348540 3B 37 00 00 */ addi r25, r23, 0 -/* 80348544 3B E3 13 80 */ addi r31, r3, lit_119@l /* 0x803D1380@l */ -/* 80348548 83 4D 91 E8 */ lwz r26, currentDirectory(r13) -lbl_8034854C: -/* 8034854C 88 77 00 00 */ lbz r3, 0(r23) -/* 80348550 7C 60 07 75 */ extsb. r0, r3 -/* 80348554 40 82 00 0C */ bne lbl_80348560 -/* 80348558 7F 43 D3 78 */ mr r3, r26 -/* 8034855C 48 00 02 AC */ b lbl_80348808 -lbl_80348560: -/* 80348560 7C 60 07 74 */ extsb r0, r3 -/* 80348564 2C 00 00 2F */ cmpwi r0, 0x2f -/* 80348568 40 82 00 10 */ bne lbl_80348578 -/* 8034856C 3B 40 00 00 */ li r26, 0 -/* 80348570 3A F7 00 01 */ addi r23, r23, 1 -/* 80348574 4B FF FF D8 */ b lbl_8034854C -lbl_80348578: -/* 80348578 2C 00 00 2E */ cmpwi r0, 0x2e -/* 8034857C 40 82 00 74 */ bne lbl_803485F0 -/* 80348580 88 77 00 01 */ lbz r3, 1(r23) -/* 80348584 7C 60 07 74 */ extsb r0, r3 -/* 80348588 2C 00 00 2E */ cmpwi r0, 0x2e -/* 8034858C 40 82 00 44 */ bne lbl_803485D0 -/* 80348590 88 77 00 02 */ lbz r3, 2(r23) -/* 80348594 2C 03 00 2F */ cmpwi r3, 0x2f -/* 80348598 40 82 00 1C */ bne lbl_803485B4 -/* 8034859C 1C 7A 00 0C */ mulli r3, r26, 0xc -/* 803485A0 80 8D 91 DC */ lwz r4, FstStart(r13) -/* 803485A4 38 03 00 04 */ addi r0, r3, 4 -/* 803485A8 7F 44 00 2E */ lwzx r26, r4, r0 -/* 803485AC 3A F7 00 03 */ addi r23, r23, 3 -/* 803485B0 4B FF FF 9C */ b lbl_8034854C -lbl_803485B4: -/* 803485B4 7C 60 07 75 */ extsb. r0, r3 -/* 803485B8 40 82 00 38 */ bne lbl_803485F0 -/* 803485BC 1C 1A 00 0C */ mulli r0, r26, 0xc -/* 803485C0 80 6D 91 DC */ lwz r3, FstStart(r13) -/* 803485C4 7C 63 02 14 */ add r3, r3, r0 -/* 803485C8 80 63 00 04 */ lwz r3, 4(r3) -/* 803485CC 48 00 02 3C */ b lbl_80348808 -lbl_803485D0: -/* 803485D0 2C 00 00 2F */ cmpwi r0, 0x2f -/* 803485D4 40 82 00 0C */ bne lbl_803485E0 -/* 803485D8 3A F7 00 02 */ addi r23, r23, 2 -/* 803485DC 4B FF FF 70 */ b lbl_8034854C -lbl_803485E0: -/* 803485E0 7C 60 07 75 */ extsb. r0, r3 -/* 803485E4 40 82 00 0C */ bne lbl_803485F0 -/* 803485E8 7F 43 D3 78 */ mr r3, r26 -/* 803485EC 48 00 02 1C */ b lbl_80348808 -lbl_803485F0: -/* 803485F0 80 0D 91 EC */ lwz r0, __DVDLongFileNameFlag(r13) -/* 803485F4 28 00 00 00 */ cmplwi r0, 0 -/* 803485F8 40 82 00 AC */ bne lbl_803486A4 -/* 803485FC 3B 97 00 00 */ addi r28, r23, 0 -/* 80348600 38 A0 00 00 */ li r5, 0 -/* 80348604 38 80 00 00 */ li r4, 0 -/* 80348608 48 00 00 48 */ b lbl_80348650 -lbl_8034860C: -/* 8034860C 7C 60 07 74 */ extsb r0, r3 -/* 80348610 2C 00 00 2E */ cmpwi r0, 0x2e -/* 80348614 40 82 00 2C */ bne lbl_80348640 -/* 80348618 7C 17 E0 50 */ subf r0, r23, r28 -/* 8034861C 2C 00 00 08 */ cmpwi r0, 8 -/* 80348620 41 81 00 0C */ bgt lbl_8034862C -/* 80348624 2C 05 00 01 */ cmpwi r5, 1 -/* 80348628 40 82 00 0C */ bne lbl_80348634 -lbl_8034862C: -/* 8034862C 38 80 00 01 */ li r4, 1 -/* 80348630 48 00 00 38 */ b lbl_80348668 -lbl_80348634: -/* 80348634 3B 1C 00 01 */ addi r24, r28, 1 -/* 80348638 38 A0 00 01 */ li r5, 1 -/* 8034863C 48 00 00 10 */ b lbl_8034864C -lbl_80348640: -/* 80348640 2C 00 00 20 */ cmpwi r0, 0x20 -/* 80348644 40 82 00 08 */ bne lbl_8034864C -/* 80348648 38 80 00 01 */ li r4, 1 -lbl_8034864C: -/* 8034864C 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80348650: -/* 80348650 88 7C 00 00 */ lbz r3, 0(r28) -/* 80348654 7C 60 07 75 */ extsb. r0, r3 -/* 80348658 41 82 00 10 */ beq lbl_80348668 -/* 8034865C 7C 60 07 74 */ extsb r0, r3 -/* 80348660 2C 00 00 2F */ cmpwi r0, 0x2f -/* 80348664 40 82 FF A8 */ bne lbl_8034860C -lbl_80348668: -/* 80348668 2C 05 00 01 */ cmpwi r5, 1 -/* 8034866C 40 82 00 14 */ bne lbl_80348680 -/* 80348670 7C 18 E0 50 */ subf r0, r24, r28 -/* 80348674 2C 00 00 03 */ cmpwi r0, 3 -/* 80348678 40 81 00 08 */ ble lbl_80348680 -/* 8034867C 38 80 00 01 */ li r4, 1 -lbl_80348680: -/* 80348680 2C 04 00 00 */ cmpwi r4, 0 -/* 80348684 41 82 00 44 */ beq lbl_803486C8 -/* 80348688 38 BF 00 00 */ addi r5, r31, 0 -/* 8034868C 4C C6 31 82 */ crclr 6 -/* 80348690 38 D9 00 00 */ addi r6, r25, 0 -/* 80348694 38 6D 84 60 */ la r3, lit_118(r13) /* 804509E0-_SDA_BASE_ */ -/* 80348698 38 80 01 83 */ li r4, 0x183 -/* 8034869C 4B CB E7 E1 */ bl OSPanic -/* 803486A0 48 00 00 28 */ b lbl_803486C8 -lbl_803486A4: -/* 803486A4 7E FC BB 78 */ mr r28, r23 -/* 803486A8 48 00 00 08 */ b lbl_803486B0 -lbl_803486AC: -/* 803486AC 3B 9C 00 01 */ addi r28, r28, 1 -lbl_803486B0: -/* 803486B0 88 7C 00 00 */ lbz r3, 0(r28) -/* 803486B4 7C 60 07 75 */ extsb. r0, r3 -/* 803486B8 41 82 00 10 */ beq lbl_803486C8 -/* 803486BC 7C 60 07 74 */ extsb r0, r3 -/* 803486C0 2C 00 00 2F */ cmpwi r0, 0x2f -/* 803486C4 40 82 FF E8 */ bne lbl_803486AC -lbl_803486C8: -/* 803486C8 88 1C 00 00 */ lbz r0, 0(r28) -/* 803486CC 7C 00 07 75 */ extsb. r0, r0 -/* 803486D0 40 82 00 0C */ bne lbl_803486DC -/* 803486D4 3B C0 00 00 */ li r30, 0 -/* 803486D8 48 00 00 08 */ b lbl_803486E0 -lbl_803486DC: -/* 803486DC 3B C0 00 01 */ li r30, 1 -lbl_803486E0: -/* 803486E0 1F BA 00 0C */ mulli r29, r26, 0xc -/* 803486E4 7F 77 E0 50 */ subf r27, r23, r28 -/* 803486E8 3B 5A 00 01 */ addi r26, r26, 1 -/* 803486EC 48 00 00 E4 */ b lbl_803487D0 -lbl_803486F0: -/* 803486F0 1F 9A 00 0C */ mulli r28, r26, 0xc -/* 803486F4 7C 83 E0 2E */ lwzx r4, r3, r28 -/* 803486F8 54 80 00 0F */ rlwinm. r0, r4, 0, 0, 7 -/* 803486FC 40 82 00 0C */ bne lbl_80348708 -/* 80348700 38 00 00 00 */ li r0, 0 -/* 80348704 48 00 00 08 */ b lbl_8034870C -lbl_80348708: -/* 80348708 38 00 00 01 */ li r0, 1 -lbl_8034870C: -/* 8034870C 2C 00 00 00 */ cmpwi r0, 0 -/* 80348710 40 82 00 0C */ bne lbl_8034871C -/* 80348714 2C 1E 00 01 */ cmpwi r30, 1 -/* 80348718 41 82 00 80 */ beq lbl_80348798 -lbl_8034871C: -/* 8034871C 80 6D 91 E0 */ lwz r3, FstStringStart(r13) -/* 80348720 54 80 02 3E */ clrlwi r0, r4, 8 -/* 80348724 3A B7 00 00 */ addi r21, r23, 0 -/* 80348728 7E 83 02 14 */ add r20, r3, r0 -/* 8034872C 48 00 00 38 */ b lbl_80348764 -lbl_80348730: -/* 80348730 88 14 00 00 */ lbz r0, 0(r20) -/* 80348734 3A 94 00 01 */ addi r20, r20, 1 -/* 80348738 7C 03 07 74 */ extsb r3, r0 -/* 8034873C 48 01 CD 35 */ bl tolower -/* 80348740 88 15 00 00 */ lbz r0, 0(r21) -/* 80348744 3A C3 00 00 */ addi r22, r3, 0 -/* 80348748 3A B5 00 01 */ addi r21, r21, 1 -/* 8034874C 7C 03 07 74 */ extsb r3, r0 -/* 80348750 48 01 CD 21 */ bl tolower -/* 80348754 7C 03 B0 00 */ cmpw r3, r22 -/* 80348758 41 82 00 0C */ beq lbl_80348764 -/* 8034875C 38 00 00 00 */ li r0, 0 -/* 80348760 48 00 00 30 */ b lbl_80348790 -lbl_80348764: -/* 80348764 88 14 00 00 */ lbz r0, 0(r20) -/* 80348768 7C 00 07 75 */ extsb. r0, r0 -/* 8034876C 40 82 FF C4 */ bne lbl_80348730 -/* 80348770 88 75 00 00 */ lbz r3, 0(r21) -/* 80348774 2C 03 00 2F */ cmpwi r3, 0x2f -/* 80348778 41 82 00 0C */ beq lbl_80348784 -/* 8034877C 7C 60 07 75 */ extsb. r0, r3 -/* 80348780 40 82 00 0C */ bne lbl_8034878C -lbl_80348784: -/* 80348784 38 00 00 01 */ li r0, 1 -/* 80348788 48 00 00 08 */ b lbl_80348790 -lbl_8034878C: -/* 8034878C 38 00 00 00 */ li r0, 0 -lbl_80348790: -/* 80348790 2C 00 00 01 */ cmpwi r0, 1 -/* 80348794 41 82 00 58 */ beq lbl_803487EC -lbl_80348798: -/* 80348798 80 0D 91 DC */ lwz r0, FstStart(r13) -/* 8034879C 7C 60 E2 14 */ add r3, r0, r28 -/* 803487A0 80 03 00 00 */ lwz r0, 0(r3) -/* 803487A4 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 -/* 803487A8 40 82 00 0C */ bne lbl_803487B4 -/* 803487AC 38 00 00 00 */ li r0, 0 -/* 803487B0 48 00 00 08 */ b lbl_803487B8 -lbl_803487B4: -/* 803487B4 38 00 00 01 */ li r0, 1 -lbl_803487B8: -/* 803487B8 2C 00 00 00 */ cmpwi r0, 0 -/* 803487BC 41 82 00 0C */ beq lbl_803487C8 -/* 803487C0 80 03 00 08 */ lwz r0, 8(r3) -/* 803487C4 48 00 00 08 */ b lbl_803487CC -lbl_803487C8: -/* 803487C8 38 1A 00 01 */ addi r0, r26, 1 -lbl_803487CC: -/* 803487CC 7C 1A 03 78 */ mr r26, r0 -lbl_803487D0: -/* 803487D0 80 6D 91 DC */ lwz r3, FstStart(r13) -/* 803487D4 38 03 00 08 */ addi r0, r3, 8 -/* 803487D8 7C 1D 00 2E */ lwzx r0, r29, r0 -/* 803487DC 7C 1A 00 40 */ cmplw r26, r0 -/* 803487E0 41 80 FF 10 */ blt lbl_803486F0 -/* 803487E4 38 60 FF FF */ li r3, -1 -/* 803487E8 48 00 00 20 */ b lbl_80348808 -lbl_803487EC: -/* 803487EC 2C 1E 00 00 */ cmpwi r30, 0 -/* 803487F0 40 82 00 0C */ bne lbl_803487FC -/* 803487F4 7F 43 D3 78 */ mr r3, r26 -/* 803487F8 48 00 00 10 */ b lbl_80348808 -lbl_803487FC: -/* 803487FC 7E FB BA 14 */ add r23, r27, r23 -/* 80348800 3A F7 00 01 */ addi r23, r23, 1 -/* 80348804 4B FF FD 48 */ b lbl_8034854C -lbl_80348808: -/* 80348808 BA 81 00 18 */ lmw r20, 0x18(r1) -/* 8034880C 80 01 00 4C */ lwz r0, 0x4c(r1) -/* 80348810 38 21 00 48 */ addi r1, r1, 0x48 -/* 80348814 7C 08 03 A6 */ mtlr r0 -/* 80348818 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDFastOpen.s b/asm/dolphin/dvd/dvdfs/DVDFastOpen.s deleted file mode 100644 index bbd6703a750..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDFastOpen.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_8034881C: -/* 8034881C 2C 03 00 00 */ cmpwi r3, 0 -/* 80348820 41 80 00 38 */ blt lbl_80348858 -/* 80348824 80 0D 91 E4 */ lwz r0, MaxEntryNum(r13) -/* 80348828 7C 03 00 40 */ cmplw r3, r0 -/* 8034882C 40 80 00 2C */ bge lbl_80348858 -/* 80348830 1C C3 00 0C */ mulli r6, r3, 0xc -/* 80348834 80 6D 91 DC */ lwz r3, FstStart(r13) -/* 80348838 7C 03 30 2E */ lwzx r0, r3, r6 -/* 8034883C 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 -/* 80348840 40 82 00 0C */ bne lbl_8034884C -/* 80348844 38 00 00 00 */ li r0, 0 -/* 80348848 48 00 00 08 */ b lbl_80348850 -lbl_8034884C: -/* 8034884C 38 00 00 01 */ li r0, 1 -lbl_80348850: -/* 80348850 2C 00 00 00 */ cmpwi r0, 0 -/* 80348854 41 82 00 0C */ beq lbl_80348860 -lbl_80348858: -/* 80348858 38 60 00 00 */ li r3, 0 -/* 8034885C 4E 80 00 20 */ blr -lbl_80348860: -/* 80348860 7C 63 32 14 */ add r3, r3, r6 -/* 80348864 80 A3 00 04 */ lwz r5, 4(r3) -/* 80348868 38 00 00 00 */ li r0, 0 -/* 8034886C 38 60 00 01 */ li r3, 1 -/* 80348870 90 A4 00 30 */ stw r5, 0x30(r4) -/* 80348874 80 AD 91 DC */ lwz r5, FstStart(r13) -/* 80348878 7C A5 32 14 */ add r5, r5, r6 -/* 8034887C 80 A5 00 08 */ lwz r5, 8(r5) -/* 80348880 90 A4 00 34 */ stw r5, 0x34(r4) -/* 80348884 90 04 00 38 */ stw r0, 0x38(r4) -/* 80348888 90 04 00 0C */ stw r0, 0xc(r4) -/* 8034888C 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDGetCurrentDir.s b/asm/dolphin/dvd/dvdfs/DVDGetCurrentDir.s deleted file mode 100644 index 9a6b0815e25..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDGetCurrentDir.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_80348C30: -/* 80348C30 7C 08 02 A6 */ mflr r0 -/* 80348C34 90 01 00 04 */ stw r0, 4(r1) -/* 80348C38 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80348C3C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80348C40 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80348C44 3B C4 00 00 */ addi r30, r4, 0 -/* 80348C48 38 BE 00 00 */ addi r5, r30, 0 -/* 80348C4C 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80348C50 3B A3 00 00 */ addi r29, r3, 0 -/* 80348C54 38 9D 00 00 */ addi r4, r29, 0 -/* 80348C58 83 ED 91 E8 */ lwz r31, currentDirectory(r13) -/* 80348C5C 38 7F 00 00 */ addi r3, r31, 0 -/* 80348C60 4B FF FD 1D */ bl entryToPath -/* 80348C64 7C 03 F0 40 */ cmplw r3, r30 -/* 80348C68 40 82 00 14 */ bne lbl_80348C7C -/* 80348C6C 38 00 00 00 */ li r0, 0 -/* 80348C70 7C 7D F2 14 */ add r3, r29, r30 -/* 80348C74 98 03 FF FF */ stb r0, -1(r3) -/* 80348C78 48 00 00 5C */ b lbl_80348CD4 -lbl_80348C7C: -/* 80348C7C 1C 1F 00 0C */ mulli r0, r31, 0xc -/* 80348C80 80 8D 91 DC */ lwz r4, FstStart(r13) -/* 80348C84 7C 04 00 2E */ lwzx r0, r4, r0 -/* 80348C88 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 -/* 80348C8C 40 82 00 0C */ bne lbl_80348C98 -/* 80348C90 38 00 00 00 */ li r0, 0 -/* 80348C94 48 00 00 08 */ b lbl_80348C9C -lbl_80348C98: -/* 80348C98 38 00 00 01 */ li r0, 1 -lbl_80348C9C: -/* 80348C9C 2C 00 00 00 */ cmpwi r0, 0 -/* 80348CA0 41 82 00 28 */ beq lbl_80348CC8 -/* 80348CA4 38 1E FF FF */ addi r0, r30, -1 -/* 80348CA8 7C 03 00 40 */ cmplw r3, r0 -/* 80348CAC 40 82 00 10 */ bne lbl_80348CBC -/* 80348CB0 38 00 00 00 */ li r0, 0 -/* 80348CB4 7C 1D 19 AE */ stbx r0, r29, r3 -/* 80348CB8 48 00 00 1C */ b lbl_80348CD4 -lbl_80348CBC: -/* 80348CBC 38 00 00 2F */ li r0, 0x2f -/* 80348CC0 7C 1D 19 AE */ stbx r0, r29, r3 -/* 80348CC4 38 63 00 01 */ addi r3, r3, 1 -lbl_80348CC8: -/* 80348CC8 38 00 00 00 */ li r0, 0 -/* 80348CCC 7C 1D 19 AE */ stbx r0, r29, r3 -/* 80348CD0 38 00 00 01 */ li r0, 1 -lbl_80348CD4: -/* 80348CD4 7C 03 03 78 */ mr r3, r0 -/* 80348CD8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80348CDC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80348CE0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80348CE4 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80348CE8 38 21 00 20 */ addi r1, r1, 0x20 -/* 80348CEC 7C 08 03 A6 */ mtlr r0 -/* 80348CF0 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDOpen.s b/asm/dolphin/dvd/dvdfs/DVDOpen.s deleted file mode 100644 index 40216f12beb..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDOpen.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_80348890: -/* 80348890 7C 08 02 A6 */ mflr r0 -/* 80348894 90 01 00 04 */ stw r0, 4(r1) -/* 80348898 94 21 FF 68 */ stwu r1, -0x98(r1) -/* 8034889C 93 E1 00 94 */ stw r31, 0x94(r1) -/* 803488A0 3B E4 00 00 */ addi r31, r4, 0 -/* 803488A4 93 C1 00 90 */ stw r30, 0x90(r1) -/* 803488A8 3B C3 00 00 */ addi r30, r3, 0 -/* 803488AC 4B FF FC 7D */ bl DVDConvertPathToEntrynum -/* 803488B0 2C 03 00 00 */ cmpwi r3, 0 -/* 803488B4 40 80 00 30 */ bge lbl_803488E4 -/* 803488B8 38 61 00 10 */ addi r3, r1, 0x10 -/* 803488BC 38 80 00 80 */ li r4, 0x80 -/* 803488C0 48 00 03 71 */ bl DVDGetCurrentDir -/* 803488C4 3C 60 80 3D */ lis r3, lit_140@ha /* 0x803D1448@ha */ -/* 803488C8 4C C6 31 82 */ crclr 6 -/* 803488CC 38 63 14 48 */ addi r3, r3, lit_140@l /* 0x803D1448@l */ -/* 803488D0 38 9E 00 00 */ addi r4, r30, 0 -/* 803488D4 38 A1 00 10 */ addi r5, r1, 0x10 -/* 803488D8 4B CB E1 E5 */ bl OSReport -/* 803488DC 38 60 00 00 */ li r3, 0 -/* 803488E0 48 00 00 60 */ b lbl_80348940 -lbl_803488E4: -/* 803488E4 1C A3 00 0C */ mulli r5, r3, 0xc -/* 803488E8 80 6D 91 DC */ lwz r3, FstStart(r13) -/* 803488EC 7C 03 28 2E */ lwzx r0, r3, r5 -/* 803488F0 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 -/* 803488F4 40 82 00 0C */ bne lbl_80348900 -/* 803488F8 38 00 00 00 */ li r0, 0 -/* 803488FC 48 00 00 08 */ b lbl_80348904 -lbl_80348900: -/* 80348900 38 00 00 01 */ li r0, 1 -lbl_80348904: -/* 80348904 2C 00 00 00 */ cmpwi r0, 0 -/* 80348908 41 82 00 0C */ beq lbl_80348914 -/* 8034890C 38 60 00 00 */ li r3, 0 -/* 80348910 48 00 00 30 */ b lbl_80348940 -lbl_80348914: -/* 80348914 7C 63 2A 14 */ add r3, r3, r5 -/* 80348918 80 83 00 04 */ lwz r4, 4(r3) -/* 8034891C 38 00 00 00 */ li r0, 0 -/* 80348920 38 60 00 01 */ li r3, 1 -/* 80348924 90 9F 00 30 */ stw r4, 0x30(r31) -/* 80348928 80 8D 91 DC */ lwz r4, FstStart(r13) -/* 8034892C 7C 84 2A 14 */ add r4, r4, r5 -/* 80348930 80 84 00 08 */ lwz r4, 8(r4) -/* 80348934 90 9F 00 34 */ stw r4, 0x34(r31) -/* 80348938 90 1F 00 38 */ stw r0, 0x38(r31) -/* 8034893C 90 1F 00 0C */ stw r0, 0xc(r31) -lbl_80348940: -/* 80348940 80 01 00 9C */ lwz r0, 0x9c(r1) -/* 80348944 83 E1 00 94 */ lwz r31, 0x94(r1) -/* 80348948 83 C1 00 90 */ lwz r30, 0x90(r1) -/* 8034894C 38 21 00 98 */ addi r1, r1, 0x98 -/* 80348950 7C 08 03 A6 */ mtlr r0 -/* 80348954 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDOpenDir.s b/asm/dolphin/dvd/dvdfs/DVDOpenDir.s deleted file mode 100644 index 17c8361030a..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDOpenDir.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_80348F80: -/* 80348F80 7C 08 02 A6 */ mflr r0 -/* 80348F84 90 01 00 04 */ stw r0, 4(r1) -/* 80348F88 94 21 FF 68 */ stwu r1, -0x98(r1) -/* 80348F8C 93 E1 00 94 */ stw r31, 0x94(r1) -/* 80348F90 3B E4 00 00 */ addi r31, r4, 0 -/* 80348F94 93 C1 00 90 */ stw r30, 0x90(r1) -/* 80348F98 3B C3 00 00 */ addi r30, r3, 0 -/* 80348F9C 4B FF F5 8D */ bl DVDConvertPathToEntrynum -/* 80348FA0 2C 03 00 00 */ cmpwi r3, 0 -/* 80348FA4 40 80 00 34 */ bge lbl_80348FD8 -/* 80348FA8 80 6D 91 E8 */ lwz r3, currentDirectory(r13) -/* 80348FAC 38 81 00 10 */ addi r4, r1, 0x10 -/* 80348FB0 38 A0 00 80 */ li r5, 0x80 -/* 80348FB4 4B FF FB 29 */ bl DVDConvertEntrynumToPath -/* 80348FB8 3C 60 80 3D */ lis r3, lit_311@ha /* 0x803D14E4@ha */ -/* 80348FBC 4C C6 31 82 */ crclr 6 -/* 80348FC0 38 63 14 E4 */ addi r3, r3, lit_311@l /* 0x803D14E4@l */ -/* 80348FC4 38 9E 00 00 */ addi r4, r30, 0 -/* 80348FC8 38 A1 00 10 */ addi r5, r1, 0x10 -/* 80348FCC 4B CB DA F1 */ bl OSReport -/* 80348FD0 38 60 00 00 */ li r3, 0 -/* 80348FD4 48 00 00 54 */ b lbl_80349028 -lbl_80348FD8: -/* 80348FD8 1C A3 00 0C */ mulli r5, r3, 0xc -/* 80348FDC 80 8D 91 DC */ lwz r4, FstStart(r13) -/* 80348FE0 7C 04 28 2E */ lwzx r0, r4, r5 -/* 80348FE4 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 -/* 80348FE8 40 82 00 0C */ bne lbl_80348FF4 -/* 80348FEC 38 00 00 00 */ li r0, 0 -/* 80348FF0 48 00 00 08 */ b lbl_80348FF8 -lbl_80348FF4: -/* 80348FF4 38 00 00 01 */ li r0, 1 -lbl_80348FF8: -/* 80348FF8 2C 00 00 00 */ cmpwi r0, 0 -/* 80348FFC 40 82 00 0C */ bne lbl_80349008 -/* 80349000 38 60 00 00 */ li r3, 0 -/* 80349004 48 00 00 24 */ b lbl_80349028 -lbl_80349008: -/* 80349008 90 7F 00 00 */ stw r3, 0(r31) -/* 8034900C 38 03 00 01 */ addi r0, r3, 1 -/* 80349010 38 60 00 01 */ li r3, 1 -/* 80349014 90 1F 00 04 */ stw r0, 4(r31) -/* 80349018 80 0D 91 DC */ lwz r0, FstStart(r13) -/* 8034901C 7C 80 2A 14 */ add r4, r0, r5 -/* 80349020 80 04 00 08 */ lwz r0, 8(r4) -/* 80349024 90 1F 00 08 */ stw r0, 8(r31) -lbl_80349028: -/* 80349028 80 01 00 9C */ lwz r0, 0x9c(r1) -/* 8034902C 83 E1 00 94 */ lwz r31, 0x94(r1) -/* 80349030 83 C1 00 90 */ lwz r30, 0x90(r1) -/* 80349034 38 21 00 98 */ addi r1, r1, 0x98 -/* 80349038 7C 08 03 A6 */ mtlr r0 -/* 8034903C 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDReadDir.s b/asm/dolphin/dvd/dvdfs/DVDReadDir.s deleted file mode 100644 index cf11b7151e6..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDReadDir.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_80349040: -/* 80349040 80 E3 00 04 */ lwz r7, 4(r3) -/* 80349044 80 03 00 00 */ lwz r0, 0(r3) -/* 80349048 7C 07 00 40 */ cmplw r7, r0 -/* 8034904C 40 81 00 10 */ ble lbl_8034905C -/* 80349050 80 03 00 08 */ lwz r0, 8(r3) -/* 80349054 7C 00 38 40 */ cmplw r0, r7 -/* 80349058 41 81 00 0C */ bgt lbl_80349064 -lbl_8034905C: -/* 8034905C 38 60 00 00 */ li r3, 0 -/* 80349060 4E 80 00 20 */ blr -lbl_80349064: -/* 80349064 90 E4 00 00 */ stw r7, 0(r4) -/* 80349068 1D 07 00 0C */ mulli r8, r7, 0xc -/* 8034906C 80 AD 91 DC */ lwz r5, FstStart(r13) -/* 80349070 7C 05 40 2E */ lwzx r0, r5, r8 -/* 80349074 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 -/* 80349078 40 82 00 0C */ bne lbl_80349084 -/* 8034907C 38 00 00 00 */ li r0, 0 -/* 80349080 48 00 00 08 */ b lbl_80349088 -lbl_80349084: -/* 80349084 38 00 00 01 */ li r0, 1 -lbl_80349088: -/* 80349088 90 04 00 04 */ stw r0, 4(r4) -/* 8034908C 80 AD 91 DC */ lwz r5, FstStart(r13) -/* 80349090 80 CD 91 E0 */ lwz r6, FstStringStart(r13) -/* 80349094 7C 05 40 2E */ lwzx r0, r5, r8 -/* 80349098 54 00 02 3E */ clrlwi r0, r0, 8 -/* 8034909C 7C 06 02 14 */ add r0, r6, r0 -/* 803490A0 90 04 00 08 */ stw r0, 8(r4) -/* 803490A4 80 8D 91 DC */ lwz r4, FstStart(r13) -/* 803490A8 7C 04 40 2E */ lwzx r0, r4, r8 -/* 803490AC 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 -/* 803490B0 40 82 00 0C */ bne lbl_803490BC -/* 803490B4 38 00 00 00 */ li r0, 0 -/* 803490B8 48 00 00 08 */ b lbl_803490C0 -lbl_803490BC: -/* 803490BC 38 00 00 01 */ li r0, 1 -lbl_803490C0: -/* 803490C0 2C 00 00 00 */ cmpwi r0, 0 -/* 803490C4 41 82 00 10 */ beq lbl_803490D4 -/* 803490C8 7C 84 42 14 */ add r4, r4, r8 -/* 803490CC 80 04 00 08 */ lwz r0, 8(r4) -/* 803490D0 48 00 00 08 */ b lbl_803490D8 -lbl_803490D4: -/* 803490D4 38 07 00 01 */ addi r0, r7, 1 -lbl_803490D8: -/* 803490D8 90 03 00 04 */ stw r0, 4(r3) -/* 803490DC 38 60 00 01 */ li r3, 1 -/* 803490E0 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/DVDReadPrio.s b/asm/dolphin/dvd/dvdfs/DVDReadPrio.s deleted file mode 100644 index 3acf2eebd4e..00000000000 --- a/asm/dolphin/dvd/dvdfs/DVDReadPrio.s +++ /dev/null @@ -1,82 +0,0 @@ -lbl_80348E44: -/* 80348E44 7C 08 02 A6 */ mflr r0 -/* 80348E48 90 01 00 04 */ stw r0, 4(r1) -/* 80348E4C 94 21 FF C8 */ stwu r1, -0x38(r1) -/* 80348E50 BF 61 00 24 */ stmw r27, 0x24(r1) -/* 80348E54 7C DD 33 79 */ or. r29, r6, r6 -/* 80348E58 3B E3 00 00 */ addi r31, r3, 0 -/* 80348E5C 3B 64 00 00 */ addi r27, r4, 0 -/* 80348E60 3B 85 00 00 */ addi r28, r5, 0 -/* 80348E64 3B C7 00 00 */ addi r30, r7, 0 -/* 80348E68 41 80 00 10 */ blt lbl_80348E78 -/* 80348E6C 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 80348E70 7C 1D 00 40 */ cmplw r29, r0 -/* 80348E74 40 81 00 1C */ ble lbl_80348E90 -lbl_80348E78: -/* 80348E78 3C 60 80 3D */ lis r3, lit_265@ha /* 0x803D14B4@ha */ -/* 80348E7C 4C C6 31 82 */ crclr 6 -/* 80348E80 38 A3 14 B4 */ addi r5, r3, lit_265@l /* 0x803D14B4@l */ -/* 80348E84 38 6D 84 60 */ la r3, lit_118(r13) /* 804509E0-_SDA_BASE_ */ -/* 80348E88 38 80 03 34 */ li r4, 0x334 -/* 80348E8C 4B CB DF F1 */ bl OSPanic -lbl_80348E90: -/* 80348E90 7C 9D E2 15 */ add. r4, r29, r28 -/* 80348E94 41 80 00 14 */ blt lbl_80348EA8 -/* 80348E98 80 7F 00 34 */ lwz r3, 0x34(r31) -/* 80348E9C 38 03 00 20 */ addi r0, r3, 0x20 -/* 80348EA0 7C 04 00 40 */ cmplw r4, r0 -/* 80348EA4 41 80 00 1C */ blt lbl_80348EC0 -lbl_80348EA8: -/* 80348EA8 3C 60 80 3D */ lis r3, lit_265@ha /* 0x803D14B4@ha */ -/* 80348EAC 4C C6 31 82 */ crclr 6 -/* 80348EB0 38 A3 14 B4 */ addi r5, r3, lit_265@l /* 0x803D14B4@l */ -/* 80348EB4 38 6D 84 60 */ la r3, lit_118(r13) /* 804509E0-_SDA_BASE_ */ -/* 80348EB8 38 80 03 3A */ li r4, 0x33a -/* 80348EBC 4B CB DF C1 */ bl OSPanic -lbl_80348EC0: -/* 80348EC0 80 1F 00 30 */ lwz r0, 0x30(r31) -/* 80348EC4 3C 80 80 35 */ lis r4, cbForReadSync@ha /* 0x80348F5C@ha */ -/* 80348EC8 38 E4 8F 5C */ addi r7, r4, cbForReadSync@l /* 0x80348F5C@l */ -/* 80348ECC 38 7F 00 00 */ addi r3, r31, 0 -/* 80348ED0 38 9B 00 00 */ addi r4, r27, 0 -/* 80348ED4 38 BC 00 00 */ addi r5, r28, 0 -/* 80348ED8 39 1E 00 00 */ addi r8, r30, 0 -/* 80348EDC 7C C0 EA 14 */ add r6, r0, r29 -/* 80348EE0 48 00 1E 4D */ bl DVDReadAbsAsyncPrio -/* 80348EE4 2C 03 00 00 */ cmpwi r3, 0 -/* 80348EE8 40 82 00 0C */ bne lbl_80348EF4 -/* 80348EEC 38 60 FF FF */ li r3, -1 -/* 80348EF0 48 00 00 58 */ b lbl_80348F48 -lbl_80348EF4: -/* 80348EF4 4B FF 48 01 */ bl OSDisableInterrupts -/* 80348EF8 7C 7E 1B 78 */ mr r30, r3 -lbl_80348EFC: -/* 80348EFC 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80348F00 2C 00 00 00 */ cmpwi r0, 0 -/* 80348F04 40 82 00 0C */ bne lbl_80348F10 -/* 80348F08 83 FF 00 20 */ lwz r31, 0x20(r31) -/* 80348F0C 48 00 00 30 */ b lbl_80348F3C -lbl_80348F10: -/* 80348F10 2C 00 FF FF */ cmpwi r0, -1 -/* 80348F14 40 82 00 0C */ bne lbl_80348F20 -/* 80348F18 3B E0 FF FF */ li r31, -1 -/* 80348F1C 48 00 00 20 */ b lbl_80348F3C -lbl_80348F20: -/* 80348F20 2C 00 00 0A */ cmpwi r0, 0xa -/* 80348F24 40 82 00 0C */ bne lbl_80348F30 -/* 80348F28 3B E0 FF FD */ li r31, -3 -/* 80348F2C 48 00 00 10 */ b lbl_80348F3C -lbl_80348F30: -/* 80348F30 38 6D 91 F0 */ la r3, __DVDThreadQueue(r13) /* 80451770-_SDA_BASE_ */ -/* 80348F34 4B FF 8C 79 */ bl OSSleepThread -/* 80348F38 4B FF FF C4 */ b lbl_80348EFC -lbl_80348F3C: -/* 80348F3C 7F C3 F3 78 */ mr r3, r30 -/* 80348F40 4B FF 47 DD */ bl OSRestoreInterrupts -/* 80348F44 7F E3 FB 78 */ mr r3, r31 -lbl_80348F48: -/* 80348F48 BB 61 00 24 */ lmw r27, 0x24(r1) -/* 80348F4C 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 80348F50 38 21 00 38 */ addi r1, r1, 0x38 -/* 80348F54 7C 08 03 A6 */ mtlr r0 -/* 80348F58 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/__DVDFSInit.s b/asm/dolphin/dvd/dvdfs/__DVDFSInit.s deleted file mode 100644 index ddf83e38e10..00000000000 --- a/asm/dolphin/dvd/dvdfs/__DVDFSInit.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_803484F0: -/* 803484F0 3C 60 80 00 */ lis r3, 0x8000 /* 0x80000038@ha */ -/* 803484F4 90 6D 91 D8 */ stw r3, BootInfo(r13) -/* 803484F8 80 03 00 38 */ lwz r0, 0x0038(r3) /* 0x80000038@l */ -/* 803484FC 90 0D 91 DC */ stw r0, FstStart(r13) -/* 80348500 80 6D 91 DC */ lwz r3, FstStart(r13) -/* 80348504 28 03 00 00 */ cmplwi r3, 0 -/* 80348508 4D 82 00 20 */ beqlr -/* 8034850C 80 03 00 08 */ lwz r0, 8(r3) -/* 80348510 90 0D 91 E4 */ stw r0, MaxEntryNum(r13) -/* 80348514 80 0D 91 E4 */ lwz r0, MaxEntryNum(r13) -/* 80348518 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8034851C 7C 03 02 14 */ add r0, r3, r0 -/* 80348520 90 0D 91 E0 */ stw r0, FstStringStart(r13) -/* 80348524 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/cbForReadAsync.s b/asm/dolphin/dvd/dvdfs/cbForReadAsync.s deleted file mode 100644 index 9f3e32f8b68..00000000000 --- a/asm/dolphin/dvd/dvdfs/cbForReadAsync.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80348E14: -/* 80348E14 7C 08 02 A6 */ mflr r0 -/* 80348E18 90 01 00 04 */ stw r0, 4(r1) -/* 80348E1C 94 21 FF F8 */ stwu r1, -8(r1) -/* 80348E20 81 84 00 38 */ lwz r12, 0x38(r4) -/* 80348E24 28 0C 00 00 */ cmplwi r12, 0 -/* 80348E28 41 82 00 0C */ beq lbl_80348E34 -/* 80348E2C 7D 88 03 A6 */ mtlr r12 -/* 80348E30 4E 80 00 21 */ blrl -lbl_80348E34: -/* 80348E34 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80348E38 38 21 00 08 */ addi r1, r1, 8 -/* 80348E3C 7C 08 03 A6 */ mtlr r0 -/* 80348E40 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/cbForReadSync.s b/asm/dolphin/dvd/dvdfs/cbForReadSync.s deleted file mode 100644 index ae1179bb035..00000000000 --- a/asm/dolphin/dvd/dvdfs/cbForReadSync.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80348F5C: -/* 80348F5C 7C 08 02 A6 */ mflr r0 -/* 80348F60 38 6D 91 F0 */ la r3, __DVDThreadQueue(r13) /* 80451770-_SDA_BASE_ */ -/* 80348F64 90 01 00 04 */ stw r0, 4(r1) -/* 80348F68 94 21 FF F8 */ stwu r1, -8(r1) -/* 80348F6C 4B FF 8D 2D */ bl OSWakeupThread -/* 80348F70 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80348F74 38 21 00 08 */ addi r1, r1, 8 -/* 80348F78 7C 08 03 A6 */ mtlr r0 -/* 80348F7C 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdfs/entryToPath.s b/asm/dolphin/dvd/dvdfs/entryToPath.s deleted file mode 100644 index 2c78b7b7853..00000000000 --- a/asm/dolphin/dvd/dvdfs/entryToPath.s +++ /dev/null @@ -1,101 +0,0 @@ -lbl_8034897C: -/* 8034897C 7C 08 02 A6 */ mflr r0 -/* 80348980 28 03 00 00 */ cmplwi r3, 0 -/* 80348984 90 01 00 04 */ stw r0, 4(r1) -/* 80348988 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8034898C 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80348990 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80348994 3B C5 00 00 */ addi r30, r5, 0 -/* 80348998 93 A1 00 24 */ stw r29, 0x24(r1) -/* 8034899C 3B A4 00 00 */ addi r29, r4, 0 -/* 803489A0 93 81 00 20 */ stw r28, 0x20(r1) -/* 803489A4 40 82 00 0C */ bne lbl_803489B0 -/* 803489A8 38 60 00 00 */ li r3, 0 -/* 803489AC 48 00 01 10 */ b lbl_80348ABC -lbl_803489B0: -/* 803489B0 80 8D 91 DC */ lwz r4, FstStart(r13) -/* 803489B4 1C 63 00 0C */ mulli r3, r3, 0xc -/* 803489B8 80 CD 91 E0 */ lwz r6, FstStringStart(r13) -/* 803489BC 38 A4 00 04 */ addi r5, r4, 4 -/* 803489C0 7C 04 18 2E */ lwzx r0, r4, r3 -/* 803489C4 7C 65 18 2E */ lwzx r3, r5, r3 -/* 803489C8 54 00 02 3E */ clrlwi r0, r0, 8 -/* 803489CC 28 03 00 00 */ cmplwi r3, 0 -/* 803489D0 7F E6 02 14 */ add r31, r6, r0 -/* 803489D4 40 82 00 0C */ bne lbl_803489E0 -/* 803489D8 38 60 00 00 */ li r3, 0 -/* 803489DC 48 00 00 80 */ b lbl_80348A5C -lbl_803489E0: -/* 803489E0 1C 63 00 0C */ mulli r3, r3, 0xc -/* 803489E4 7C 04 18 2E */ lwzx r0, r4, r3 -/* 803489E8 7F A4 EB 78 */ mr r4, r29 -/* 803489EC 7C 65 18 2E */ lwzx r3, r5, r3 -/* 803489F0 38 BE 00 00 */ addi r5, r30, 0 -/* 803489F4 54 00 02 3E */ clrlwi r0, r0, 8 -/* 803489F8 7F 86 02 14 */ add r28, r6, r0 -/* 803489FC 4B FF FF 81 */ bl entryToPath -/* 80348A00 7C 03 F0 40 */ cmplw r3, r30 -/* 80348A04 40 82 00 08 */ bne lbl_80348A0C -/* 80348A08 48 00 00 54 */ b lbl_80348A5C -lbl_80348A0C: -/* 80348A0C 38 03 00 00 */ addi r0, r3, 0 -/* 80348A10 38 63 00 01 */ addi r3, r3, 1 -/* 80348A14 38 80 00 2F */ li r4, 0x2f -/* 80348A18 7C C3 F0 50 */ subf r6, r3, r30 -/* 80348A1C 7C 9D 01 AE */ stbx r4, r29, r0 -/* 80348A20 38 86 00 00 */ addi r4, r6, 0 -/* 80348A24 7C BD 1A 14 */ add r5, r29, r3 -/* 80348A28 48 00 00 18 */ b lbl_80348A40 -lbl_80348A2C: -/* 80348A2C 88 1C 00 00 */ lbz r0, 0(r28) -/* 80348A30 3B 9C 00 01 */ addi r28, r28, 1 -/* 80348A34 38 84 FF FF */ addi r4, r4, -1 -/* 80348A38 98 05 00 00 */ stb r0, 0(r5) -/* 80348A3C 38 A5 00 01 */ addi r5, r5, 1 -lbl_80348A40: -/* 80348A40 28 04 00 00 */ cmplwi r4, 0 -/* 80348A44 41 82 00 10 */ beq lbl_80348A54 -/* 80348A48 88 1C 00 00 */ lbz r0, 0(r28) -/* 80348A4C 7C 00 07 75 */ extsb. r0, r0 -/* 80348A50 40 82 FF DC */ bne lbl_80348A2C -lbl_80348A54: -/* 80348A54 7C 04 30 50 */ subf r0, r4, r6 -/* 80348A58 7C 63 02 14 */ add r3, r3, r0 -lbl_80348A5C: -/* 80348A5C 7C 03 F0 40 */ cmplw r3, r30 -/* 80348A60 40 82 00 08 */ bne lbl_80348A68 -/* 80348A64 48 00 00 58 */ b lbl_80348ABC -lbl_80348A68: -/* 80348A68 38 03 00 00 */ addi r0, r3, 0 -/* 80348A6C 38 63 00 01 */ addi r3, r3, 1 -/* 80348A70 38 80 00 2F */ li r4, 0x2f -/* 80348A74 7C E3 F0 50 */ subf r7, r3, r30 -/* 80348A78 7C 9D 01 AE */ stbx r4, r29, r0 -/* 80348A7C 38 DF 00 00 */ addi r6, r31, 0 -/* 80348A80 38 87 00 00 */ addi r4, r7, 0 -/* 80348A84 7C BD 1A 14 */ add r5, r29, r3 -/* 80348A88 48 00 00 18 */ b lbl_80348AA0 -lbl_80348A8C: -/* 80348A8C 88 06 00 00 */ lbz r0, 0(r6) -/* 80348A90 38 C6 00 01 */ addi r6, r6, 1 -/* 80348A94 38 84 FF FF */ addi r4, r4, -1 -/* 80348A98 98 05 00 00 */ stb r0, 0(r5) -/* 80348A9C 38 A5 00 01 */ addi r5, r5, 1 -lbl_80348AA0: -/* 80348AA0 28 04 00 00 */ cmplwi r4, 0 -/* 80348AA4 41 82 00 10 */ beq lbl_80348AB4 -/* 80348AA8 88 06 00 00 */ lbz r0, 0(r6) -/* 80348AAC 7C 00 07 75 */ extsb. r0, r0 -/* 80348AB0 40 82 FF DC */ bne lbl_80348A8C -lbl_80348AB4: -/* 80348AB4 7C 04 38 50 */ subf r0, r4, r7 -/* 80348AB8 7C 63 02 14 */ add r3, r3, r0 -lbl_80348ABC: -/* 80348ABC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80348AC0 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80348AC4 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 80348AC8 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 80348ACC 83 81 00 20 */ lwz r28, 0x20(r1) -/* 80348AD0 38 21 00 30 */ addi r1, r1, 0x30 -/* 80348AD4 7C 08 03 A6 */ mtlr r0 -/* 80348AD8 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdqueue/__DVDCheckWaitingQueue.s b/asm/dolphin/dvd/dvdqueue/__DVDCheckWaitingQueue.s deleted file mode 100644 index 61c8d5bc467..00000000000 --- a/asm/dolphin/dvd/dvdqueue/__DVDCheckWaitingQueue.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_8034B9B4: -/* 8034B9B4 7C 08 02 A6 */ mflr r0 -/* 8034B9B8 90 01 00 04 */ stw r0, 4(r1) -/* 8034B9BC 94 21 FF F8 */ stwu r1, -8(r1) -/* 8034B9C0 4B FF 1D 35 */ bl OSDisableInterrupts -/* 8034B9C4 38 00 00 04 */ li r0, 4 -/* 8034B9C8 3C 80 80 45 */ lis r4, WaitingQueue@ha /* 0x8044C998@ha */ -/* 8034B9CC 7C 09 03 A6 */ mtctr r0 -/* 8034B9D0 38 84 C9 98 */ addi r4, r4, WaitingQueue@l /* 0x8044C998@l */ -lbl_8034B9D4: -/* 8034B9D4 80 04 00 00 */ lwz r0, 0(r4) -/* 8034B9D8 7C 00 20 40 */ cmplw r0, r4 -/* 8034B9DC 41 82 00 10 */ beq lbl_8034B9EC -/* 8034B9E0 4B FF 1D 3D */ bl OSRestoreInterrupts -/* 8034B9E4 38 60 00 01 */ li r3, 1 -/* 8034B9E8 48 00 00 14 */ b lbl_8034B9FC -lbl_8034B9EC: -/* 8034B9EC 38 84 00 08 */ addi r4, r4, 8 -/* 8034B9F0 42 00 FF E4 */ bdnz lbl_8034B9D4 -/* 8034B9F4 4B FF 1D 29 */ bl OSRestoreInterrupts -/* 8034B9F8 38 60 00 00 */ li r3, 0 -lbl_8034B9FC: -/* 8034B9FC 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8034BA00 38 21 00 08 */ addi r1, r1, 8 -/* 8034BA04 7C 08 03 A6 */ mtlr r0 -/* 8034BA08 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdqueue/__DVDClearWaitingQueue.s b/asm/dolphin/dvd/dvdqueue/__DVDClearWaitingQueue.s deleted file mode 100644 index 16edf9b3571..00000000000 --- a/asm/dolphin/dvd/dvdqueue/__DVDClearWaitingQueue.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8034B874: -/* 8034B874 3C 60 80 45 */ lis r3, WaitingQueue@ha /* 0x8044C998@ha */ -/* 8034B878 38 63 C9 98 */ addi r3, r3, WaitingQueue@l /* 0x8044C998@l */ -/* 8034B87C 90 63 00 00 */ stw r3, 0(r3) -/* 8034B880 38 A3 00 08 */ addi r5, r3, 8 -/* 8034B884 38 83 00 10 */ addi r4, r3, 0x10 -/* 8034B888 90 63 00 04 */ stw r3, 4(r3) -/* 8034B88C 38 63 00 18 */ addi r3, r3, 0x18 -/* 8034B890 90 A5 00 00 */ stw r5, 0(r5) -/* 8034B894 90 A5 00 04 */ stw r5, 4(r5) -/* 8034B898 90 84 00 00 */ stw r4, 0(r4) -/* 8034B89C 90 84 00 04 */ stw r4, 4(r4) -/* 8034B8A0 90 63 00 00 */ stw r3, 0(r3) -/* 8034B8A4 90 63 00 04 */ stw r3, 4(r3) -/* 8034B8A8 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdqueue/__DVDDequeueWaitingQueue.s b/asm/dolphin/dvd/dvdqueue/__DVDDequeueWaitingQueue.s deleted file mode 100644 index 3bb62848608..00000000000 --- a/asm/dolphin/dvd/dvdqueue/__DVDDequeueWaitingQueue.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_8034BA0C: -/* 8034BA0C 7C 08 02 A6 */ mflr r0 -/* 8034BA10 90 01 00 04 */ stw r0, 4(r1) -/* 8034BA14 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034BA18 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034BA1C 7C 7F 1B 78 */ mr r31, r3 -/* 8034BA20 4B FF 1C D5 */ bl OSDisableInterrupts -/* 8034BA24 80 9F 00 04 */ lwz r4, 4(r31) -/* 8034BA28 80 BF 00 00 */ lwz r5, 0(r31) -/* 8034BA2C 28 04 00 00 */ cmplwi r4, 0 -/* 8034BA30 41 82 00 0C */ beq lbl_8034BA3C -/* 8034BA34 28 05 00 00 */ cmplwi r5, 0 -/* 8034BA38 40 82 00 10 */ bne lbl_8034BA48 -lbl_8034BA3C: -/* 8034BA3C 4B FF 1C E1 */ bl OSRestoreInterrupts -/* 8034BA40 38 60 00 00 */ li r3, 0 -/* 8034BA44 48 00 00 14 */ b lbl_8034BA58 -lbl_8034BA48: -/* 8034BA48 90 A4 00 00 */ stw r5, 0(r4) -/* 8034BA4C 90 85 00 04 */ stw r4, 4(r5) -/* 8034BA50 4B FF 1C CD */ bl OSRestoreInterrupts -/* 8034BA54 38 60 00 01 */ li r3, 1 -lbl_8034BA58: -/* 8034BA58 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034BA5C 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034BA60 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034BA64 7C 08 03 A6 */ mtlr r0 -/* 8034BA68 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdqueue/__DVDPopWaitingQueue.s b/asm/dolphin/dvd/dvdqueue/__DVDPopWaitingQueue.s deleted file mode 100644 index 0757e9ec166..00000000000 --- a/asm/dolphin/dvd/dvdqueue/__DVDPopWaitingQueue.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_8034B914: -/* 8034B914 7C 08 02 A6 */ mflr r0 -/* 8034B918 90 01 00 04 */ stw r0, 4(r1) -/* 8034B91C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8034B920 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8034B924 4B FF 1D D1 */ bl OSDisableInterrupts -/* 8034B928 38 00 00 04 */ li r0, 4 -/* 8034B92C 3C 80 80 45 */ lis r4, WaitingQueue@ha /* 0x8044C998@ha */ -/* 8034B930 7C 09 03 A6 */ mtctr r0 -/* 8034B934 38 84 C9 98 */ addi r4, r4, WaitingQueue@l /* 0x8044C998@l */ -/* 8034B938 3B E0 00 00 */ li r31, 0 -lbl_8034B93C: -/* 8034B93C 80 04 00 00 */ lwz r0, 0(r4) -/* 8034B940 7C 00 20 40 */ cmplw r0, r4 -/* 8034B944 41 82 00 48 */ beq lbl_8034B98C -/* 8034B948 4B FF 1D D5 */ bl OSRestoreInterrupts -/* 8034B94C 4B FF 1D A9 */ bl OSDisableInterrupts -/* 8034B950 3C 80 80 45 */ lis r4, WaitingQueue@ha /* 0x8044C998@ha */ -/* 8034B954 57 E5 18 38 */ slwi r5, r31, 3 -/* 8034B958 38 04 C9 98 */ addi r0, r4, WaitingQueue@l /* 0x8044C998@l */ -/* 8034B95C 7C A0 2A 14 */ add r5, r0, r5 -/* 8034B960 83 E5 00 00 */ lwz r31, 0(r5) -/* 8034B964 80 1F 00 00 */ lwz r0, 0(r31) -/* 8034B968 90 05 00 00 */ stw r0, 0(r5) -/* 8034B96C 80 9F 00 00 */ lwz r4, 0(r31) -/* 8034B970 90 A4 00 04 */ stw r5, 4(r4) -/* 8034B974 4B FF 1D A9 */ bl OSRestoreInterrupts -/* 8034B978 38 00 00 00 */ li r0, 0 -/* 8034B97C 90 1F 00 00 */ stw r0, 0(r31) -/* 8034B980 7F E3 FB 78 */ mr r3, r31 -/* 8034B984 90 1F 00 04 */ stw r0, 4(r31) -/* 8034B988 48 00 00 18 */ b lbl_8034B9A0 -lbl_8034B98C: -/* 8034B98C 38 84 00 08 */ addi r4, r4, 8 -/* 8034B990 3B FF 00 01 */ addi r31, r31, 1 -/* 8034B994 42 00 FF A8 */ bdnz lbl_8034B93C -/* 8034B998 4B FF 1D 85 */ bl OSRestoreInterrupts -/* 8034B99C 38 60 00 00 */ li r3, 0 -lbl_8034B9A0: -/* 8034B9A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8034B9A4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8034B9A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8034B9AC 7C 08 03 A6 */ mtlr r0 -/* 8034B9B0 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdqueue/__DVDPushWaitingQueue.s b/asm/dolphin/dvd/dvdqueue/__DVDPushWaitingQueue.s deleted file mode 100644 index 21dad64b227..00000000000 --- a/asm/dolphin/dvd/dvdqueue/__DVDPushWaitingQueue.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_8034B8AC: -/* 8034B8AC 7C 08 02 A6 */ mflr r0 -/* 8034B8B0 90 01 00 04 */ stw r0, 4(r1) -/* 8034B8B4 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034B8B8 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034B8BC 3B E4 00 00 */ addi r31, r4, 0 -/* 8034B8C0 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8034B8C4 3B C3 00 00 */ addi r30, r3, 0 -/* 8034B8C8 4B FF 1E 2D */ bl OSDisableInterrupts -/* 8034B8CC 3C 80 80 45 */ lis r4, WaitingQueue@ha /* 0x8044C998@ha */ -/* 8034B8D0 57 C5 18 38 */ slwi r5, r30, 3 -/* 8034B8D4 38 04 C9 98 */ addi r0, r4, WaitingQueue@l /* 0x8044C998@l */ -/* 8034B8D8 7C A0 2A 14 */ add r5, r0, r5 -/* 8034B8DC 80 85 00 04 */ lwz r4, 4(r5) -/* 8034B8E0 93 E4 00 00 */ stw r31, 0(r4) -/* 8034B8E4 80 05 00 04 */ lwz r0, 4(r5) -/* 8034B8E8 90 1F 00 04 */ stw r0, 4(r31) -/* 8034B8EC 90 BF 00 00 */ stw r5, 0(r31) -/* 8034B8F0 93 E5 00 04 */ stw r31, 4(r5) -/* 8034B8F4 4B FF 1E 29 */ bl OSRestoreInterrupts -/* 8034B8F8 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034B8FC 38 60 00 01 */ li r3, 1 -/* 8034B900 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034B904 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8034B908 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034B90C 7C 08 03 A6 */ mtlr r0 -/* 8034B910 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/DMAErrorHandler.s b/asm/dolphin/os/OSCache/DMAErrorHandler.s deleted file mode 100644 index a8f96d213a6..00000000000 --- a/asm/dolphin/os/OSCache/DMAErrorHandler.s +++ /dev/null @@ -1,96 +0,0 @@ -lbl_8033B990: -/* 8033B990 7C 08 02 A6 */ mflr r0 -/* 8033B994 90 01 00 04 */ stw r0, 4(r1) -/* 8033B998 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 8033B99C 93 E1 00 7C */ stw r31, 0x7c(r1) -/* 8033B9A0 93 C1 00 78 */ stw r30, 0x78(r1) -/* 8033B9A4 93 A1 00 74 */ stw r29, 0x74(r1) -/* 8033B9A8 40 86 00 24 */ bne cr1, lbl_8033B9CC -/* 8033B9AC D8 21 00 28 */ stfd f1, 0x28(r1) -/* 8033B9B0 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 8033B9B4 D8 61 00 38 */ stfd f3, 0x38(r1) -/* 8033B9B8 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 8033B9BC D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 8033B9C0 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 8033B9C4 D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 8033B9C8 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_8033B9CC: -/* 8033B9CC 90 61 00 08 */ stw r3, 8(r1) -/* 8033B9D0 90 81 00 0C */ stw r4, 0xc(r1) -/* 8033B9D4 90 A1 00 10 */ stw r5, 0x10(r1) -/* 8033B9D8 90 C1 00 14 */ stw r6, 0x14(r1) -/* 8033B9DC 90 E1 00 18 */ stw r7, 0x18(r1) -/* 8033B9E0 91 01 00 1C */ stw r8, 0x1c(r1) -/* 8033B9E4 91 21 00 20 */ stw r9, 0x20(r1) -/* 8033B9E8 91 41 00 24 */ stw r10, 0x24(r1) -/* 8033B9EC 7C 9D 23 78 */ mr r29, r4 -/* 8033B9F0 3C 60 80 3D */ lis r3, lit_63@ha /* 0x803CF510@ha */ -/* 8033B9F4 3B E3 F5 10 */ addi r31, r3, lit_63@l /* 0x803CF510@l */ -/* 8033B9F8 4B FF E3 95 */ bl PPCMfhid2 -/* 8033B9FC 7C 7E 1B 78 */ mr r30, r3 -/* 8033BA00 4C C6 31 82 */ crclr 6 -/* 8033BA04 38 7F 00 2C */ addi r3, r31, 0x2c -/* 8033BA08 4B CC B0 B5 */ bl OSReport -/* 8033BA0C 80 BD 01 9C */ lwz r5, 0x19c(r29) -/* 8033BA10 7F C4 F3 78 */ mr r4, r30 -/* 8033BA14 38 7F 00 44 */ addi r3, r31, 0x44 -/* 8033BA18 4C C6 31 82 */ crclr 6 -/* 8033BA1C 4B CC B0 A1 */ bl OSReport -/* 8033BA20 57 C0 02 16 */ rlwinm r0, r30, 0, 8, 0xb -/* 8033BA24 28 00 00 00 */ cmplwi r0, 0 -/* 8033BA28 41 82 00 14 */ beq lbl_8033BA3C -/* 8033BA2C 80 1D 01 9C */ lwz r0, 0x19c(r29) -/* 8033BA30 54 00 02 94 */ rlwinm r0, r0, 0, 0xa, 0xa -/* 8033BA34 28 00 00 00 */ cmplwi r0, 0 -/* 8033BA38 40 82 00 1C */ bne lbl_8033BA54 -lbl_8033BA3C: -/* 8033BA3C 38 7F 00 60 */ addi r3, r31, 0x60 -/* 8033BA40 4C C6 31 82 */ crclr 6 -/* 8033BA44 4B CC B0 79 */ bl OSReport -/* 8033BA48 7F A3 EB 78 */ mr r3, r29 -/* 8033BA4C 48 00 06 95 */ bl OSDumpContext -/* 8033BA50 4B FF E2 B1 */ bl PPCHalt -lbl_8033BA54: -/* 8033BA54 38 7F 00 90 */ addi r3, r31, 0x90 -/* 8033BA58 4C C6 31 82 */ crclr 6 -/* 8033BA5C 4B CC B0 61 */ bl OSReport -/* 8033BA60 38 7F 00 CC */ addi r3, r31, 0xcc -/* 8033BA64 4C C6 31 82 */ crclr 6 -/* 8033BA68 4B CC B0 55 */ bl OSReport -/* 8033BA6C 57 C0 02 10 */ rlwinm r0, r30, 0, 8, 8 -/* 8033BA70 28 00 00 00 */ cmplwi r0, 0 -/* 8033BA74 41 82 00 10 */ beq lbl_8033BA84 -/* 8033BA78 38 7F 01 04 */ addi r3, r31, 0x104 -/* 8033BA7C 4C C6 31 82 */ crclr 6 -/* 8033BA80 4B CC B0 3D */ bl OSReport -lbl_8033BA84: -/* 8033BA84 57 C0 02 52 */ rlwinm r0, r30, 0, 9, 9 -/* 8033BA88 28 00 00 00 */ cmplwi r0, 0 -/* 8033BA8C 41 82 00 10 */ beq lbl_8033BA9C -/* 8033BA90 38 7F 01 44 */ addi r3, r31, 0x144 -/* 8033BA94 4C C6 31 82 */ crclr 6 -/* 8033BA98 4B CC B0 25 */ bl OSReport -lbl_8033BA9C: -/* 8033BA9C 57 C0 02 94 */ rlwinm r0, r30, 0, 0xa, 0xa -/* 8033BAA0 28 00 00 00 */ cmplwi r0, 0 -/* 8033BAA4 41 82 00 10 */ beq lbl_8033BAB4 -/* 8033BAA8 38 7F 01 70 */ addi r3, r31, 0x170 -/* 8033BAAC 4C C6 31 82 */ crclr 6 -/* 8033BAB0 4B CC B0 0D */ bl OSReport -lbl_8033BAB4: -/* 8033BAB4 57 C0 02 D6 */ rlwinm r0, r30, 0, 0xb, 0xb -/* 8033BAB8 28 00 00 00 */ cmplwi r0, 0 -/* 8033BABC 41 82 00 10 */ beq lbl_8033BACC -/* 8033BAC0 38 7F 01 90 */ addi r3, r31, 0x190 -/* 8033BAC4 4C C6 31 82 */ crclr 6 -/* 8033BAC8 4B CC AF F5 */ bl OSReport -lbl_8033BACC: -/* 8033BACC 7F C3 F3 78 */ mr r3, r30 -/* 8033BAD0 4B FF E2 C5 */ bl PPCMthid2 -/* 8033BAD4 80 01 00 84 */ lwz r0, 0x84(r1) -/* 8033BAD8 83 E1 00 7C */ lwz r31, 0x7c(r1) -/* 8033BADC 83 C1 00 78 */ lwz r30, 0x78(r1) -/* 8033BAE0 83 A1 00 74 */ lwz r29, 0x74(r1) -/* 8033BAE4 38 21 00 80 */ addi r1, r1, 0x80 -/* 8033BAE8 7C 08 03 A6 */ mtlr r0 -/* 8033BAEC 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/L2GlobalInvalidate.s b/asm/dolphin/os/OSCache/L2GlobalInvalidate.s deleted file mode 100644 index e4e341bdc9a..00000000000 --- a/asm/dolphin/os/OSCache/L2GlobalInvalidate.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_8033B8F8: -/* 8033B8F8 7C 08 02 A6 */ mflr r0 -/* 8033B8FC 90 01 00 04 */ stw r0, 4(r1) -/* 8033B900 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8033B904 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8033B908 7C 00 04 AC */ sync -/* 8033B90C 4B FF E3 D5 */ bl PPCMfl2cr -/* 8033B910 54 63 00 7E */ clrlwi r3, r3, 1 -/* 8033B914 4B FF E3 D5 */ bl PPCMtl2cr -/* 8033B918 7C 00 04 AC */ sync -/* 8033B91C 4B FF E3 C5 */ bl PPCMfl2cr -/* 8033B920 64 63 00 20 */ oris r3, r3, 0x20 -/* 8033B924 4B FF E3 C5 */ bl PPCMtl2cr -/* 8033B928 48 00 00 04 */ b lbl_8033B92C -lbl_8033B92C: -/* 8033B92C 48 00 00 04 */ b lbl_8033B930 -lbl_8033B930: -/* 8033B930 4B FF E3 B1 */ bl PPCMfl2cr -/* 8033B934 54 60 07 FE */ clrlwi r0, r3, 0x1f -/* 8033B938 28 00 00 00 */ cmplwi r0, 0 -/* 8033B93C 40 82 FF F4 */ bne lbl_8033B930 -/* 8033B940 4B FF E3 A1 */ bl PPCMfl2cr -/* 8033B944 54 63 02 D2 */ rlwinm r3, r3, 0, 0xb, 9 -/* 8033B948 4B FF E3 A1 */ bl PPCMtl2cr -/* 8033B94C 48 00 00 04 */ b lbl_8033B950 -lbl_8033B950: -/* 8033B950 3C 60 80 3D */ lis r3, lit_63@ha /* 0x803CF510@ha */ -/* 8033B954 3B E3 F5 10 */ addi r31, r3, lit_63@l /* 0x803CF510@l */ -/* 8033B958 48 00 00 04 */ b lbl_8033B95C -lbl_8033B95C: -/* 8033B95C 48 00 00 10 */ b lbl_8033B96C -lbl_8033B960: -/* 8033B960 7F E3 FB 78 */ mr r3, r31 -/* 8033B964 4C C6 31 82 */ crclr 6 -/* 8033B968 48 00 AA CD */ bl DBPrintf -lbl_8033B96C: -/* 8033B96C 4B FF E3 75 */ bl PPCMfl2cr -/* 8033B970 54 60 07 FE */ clrlwi r0, r3, 0x1f -/* 8033B974 28 00 00 00 */ cmplwi r0, 0 -/* 8033B978 40 82 FF E8 */ bne lbl_8033B960 -/* 8033B97C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8033B980 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8033B984 38 21 00 10 */ addi r1, r1, 0x10 -/* 8033B988 7C 08 03 A6 */ mtlr r0 -/* 8033B98C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSCache/__OSCacheInit.s b/asm/dolphin/os/OSCache/__OSCacheInit.s deleted file mode 100644 index 55607c73516..00000000000 --- a/asm/dolphin/os/OSCache/__OSCacheInit.s +++ /dev/null @@ -1,65 +0,0 @@ -lbl_8033BAF0: -/* 8033BAF0 7C 08 02 A6 */ mflr r0 -/* 8033BAF4 90 01 00 04 */ stw r0, 4(r1) -/* 8033BAF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8033BAFC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8033BB00 93 C1 00 08 */ stw r30, 8(r1) -/* 8033BB04 3C 60 80 3D */ lis r3, lit_63@ha /* 0x803CF510@ha */ -/* 8033BB08 3B E3 F5 10 */ addi r31, r3, lit_63@l /* 0x803CF510@l */ -/* 8033BB0C 4B FF E1 C5 */ bl PPCMfhid0 -/* 8033BB10 54 60 04 20 */ rlwinm r0, r3, 0, 0x10, 0x10 -/* 8033BB14 28 00 00 00 */ cmplwi r0, 0 -/* 8033BB18 40 82 00 14 */ bne lbl_8033BB2C -/* 8033BB1C 4B FF FB B9 */ bl ICEnable -/* 8033BB20 38 7F 01 AC */ addi r3, r31, 0x1ac -/* 8033BB24 4C C6 31 82 */ crclr 6 -/* 8033BB28 48 00 A9 0D */ bl DBPrintf -lbl_8033BB2C: -/* 8033BB2C 4B FF E1 A5 */ bl PPCMfhid0 -/* 8033BB30 54 60 04 62 */ rlwinm r0, r3, 0, 0x11, 0x11 -/* 8033BB34 28 00 00 00 */ cmplwi r0, 0 -/* 8033BB38 40 82 00 14 */ bne lbl_8033BB4C -/* 8033BB3C 4B FF FA 31 */ bl DCEnable -/* 8033BB40 38 7F 01 C8 */ addi r3, r31, 0x1c8 -/* 8033BB44 4C C6 31 82 */ crclr 6 -/* 8033BB48 48 00 A8 ED */ bl DBPrintf -lbl_8033BB4C: -/* 8033BB4C 4B FF E1 95 */ bl PPCMfl2cr -/* 8033BB50 54 60 00 00 */ rlwinm r0, r3, 0, 0, 0 -/* 8033BB54 28 00 00 00 */ cmplwi r0, 0 -/* 8033BB58 40 82 00 58 */ bne lbl_8033BBB0 -/* 8033BB5C 4B FF E1 65 */ bl PPCMfmsr -/* 8033BB60 7C 7E 1B 78 */ mr r30, r3 -/* 8033BB64 7C 00 04 AC */ sync -/* 8033BB68 38 60 00 30 */ li r3, 0x30 -/* 8033BB6C 4B FF E1 5D */ bl PPCMtmsr -/* 8033BB70 7C 00 04 AC */ sync -/* 8033BB74 7C 00 04 AC */ sync -/* 8033BB78 4B FF E1 69 */ bl PPCMfl2cr -/* 8033BB7C 54 63 00 7E */ clrlwi r3, r3, 1 -/* 8033BB80 4B FF E1 69 */ bl PPCMtl2cr -/* 8033BB84 7C 00 04 AC */ sync -/* 8033BB88 4B FF FD 71 */ bl L2GlobalInvalidate -/* 8033BB8C 7F C3 F3 78 */ mr r3, r30 -/* 8033BB90 4B FF E1 39 */ bl PPCMtmsr -/* 8033BB94 4B FF E1 4D */ bl PPCMfl2cr -/* 8033BB98 64 60 80 00 */ oris r0, r3, 0x8000 -/* 8033BB9C 54 03 02 D2 */ rlwinm r3, r0, 0, 0xb, 9 -/* 8033BBA0 4B FF E1 49 */ bl PPCMtl2cr -/* 8033BBA4 38 7F 01 E4 */ addi r3, r31, 0x1e4 -/* 8033BBA8 4C C6 31 82 */ crclr 6 -/* 8033BBAC 48 00 A8 89 */ bl DBPrintf -lbl_8033BBB0: -/* 8033BBB0 3C 60 80 34 */ lis r3, DMAErrorHandler@ha /* 0x8033B990@ha */ -/* 8033BBB4 38 83 B9 90 */ addi r4, r3, DMAErrorHandler@l /* 0x8033B990@l */ -/* 8033BBB8 38 60 00 01 */ li r3, 1 -/* 8033BBBC 48 00 09 C5 */ bl OSSetErrorHandler -/* 8033BBC0 38 7F 01 FC */ addi r3, r31, 0x1fc -/* 8033BBC4 4C C6 31 82 */ crclr 6 -/* 8033BBC8 48 00 A8 6D */ bl DBPrintf -/* 8033BBCC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8033BBD0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8033BBD4 83 C1 00 08 */ lwz r30, 8(r1) -/* 8033BBD8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8033BBDC 7C 08 03 A6 */ mtlr r0 -/* 8033BBE0 4E 80 00 20 */ blr diff --git a/asm/dolphin/si/SIBios/SIEnablePolling.s b/asm/dolphin/si/SIBios/SIEnablePolling.s deleted file mode 100644 index 4076526d5f3..00000000000 --- a/asm/dolphin/si/SIBios/SIEnablePolling.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_80345860: -/* 80345860 7C 08 02 A6 */ mflr r0 -/* 80345864 90 01 00 04 */ stw r0, 4(r1) -/* 80345868 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034586C 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80345870 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80345874 40 82 00 14 */ bne lbl_80345888 -/* 80345878 3C 60 80 3D */ lis r3, Si@ha /* 0x803D11FC@ha */ -/* 8034587C 38 63 11 FC */ addi r3, r3, Si@l /* 0x803D11FC@l */ -/* 80345880 80 63 00 04 */ lwz r3, 4(r3) -/* 80345884 48 00 00 64 */ b lbl_803458E8 -lbl_80345888: -/* 80345888 4B FF 7E 6D */ bl OSDisableInterrupts -/* 8034588C 3C 80 80 3D */ lis r4, Si@ha /* 0x803D11FC@ha */ -/* 80345890 38 84 11 FC */ addi r4, r4, Si@l /* 0x803D11FC@l */ -/* 80345894 57 FF 46 3E */ srwi r31, r31, 0x18 -/* 80345898 80 04 00 04 */ lwz r0, 4(r4) -/* 8034589C 38 A4 00 04 */ addi r5, r4, 4 -/* 803458A0 57 E4 E7 3E */ rlwinm r4, r31, 0x1c, 0x1c, 0x1f -/* 803458A4 7C 00 20 78 */ andc r0, r0, r4 -/* 803458A8 90 05 00 00 */ stw r0, 0(r5) -/* 803458AC 64 80 03 FF */ oris r0, r4, 0x3ff -/* 803458B0 60 00 FF F0 */ ori r0, r0, 0xfff0 -/* 803458B4 7F FF 00 38 */ and r31, r31, r0 -/* 803458B8 80 05 00 00 */ lwz r0, 0(r5) -/* 803458BC 57 FF 06 0A */ rlwinm r31, r31, 0, 0x18, 5 -/* 803458C0 7C 00 FB 78 */ or r0, r0, r31 -/* 803458C4 90 05 00 00 */ stw r0, 0(r5) -/* 803458C8 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006400@ha */ -/* 803458CC 38 84 64 00 */ addi r4, r4, 0x6400 /* 0xCC006400@l */ -/* 803458D0 83 E5 00 00 */ lwz r31, 0(r5) -/* 803458D4 3C 00 80 00 */ lis r0, 0x8000 -/* 803458D8 90 04 00 38 */ stw r0, 0x38(r4) -/* 803458DC 93 E4 00 30 */ stw r31, 0x30(r4) -/* 803458E0 4B FF 7E 3D */ bl OSRestoreInterrupts -/* 803458E4 7F E3 FB 78 */ mr r3, r31 -lbl_803458E8: -/* 803458E8 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 803458EC 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 803458F0 38 21 00 18 */ addi r1, r1, 0x18 -/* 803458F4 7C 08 03 A6 */ mtlr r0 -/* 803458F8 4E 80 00 20 */ blr diff --git a/asm/dolphin/si/SIBios/SIEnablePollingInterrupt.s b/asm/dolphin/si/SIBios/SIEnablePollingInterrupt.s deleted file mode 100644 index 34ed9d69784..00000000000 --- a/asm/dolphin/si/SIBios/SIEnablePollingInterrupt.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_8034523C: -/* 8034523C 7C 08 02 A6 */ mflr r0 -/* 80345240 3C 80 80 45 */ lis r4, Packet@ha /* 0x8044C630@ha */ -/* 80345244 90 01 00 04 */ stw r0, 4(r1) -/* 80345248 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8034524C 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80345250 3B E4 C6 30 */ addi r31, r4, Packet@l /* 0x8044C630@l */ -/* 80345254 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80345258 93 A1 00 24 */ stw r29, 0x24(r1) -/* 8034525C 3B A3 00 00 */ addi r29, r3, 0 -/* 80345260 4B FF 84 95 */ bl OSDisableInterrupts -/* 80345264 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006434@ha */ -/* 80345268 84 A4 64 34 */ lwzu r5, 0x6434(r4) /* 0xCC006434@l */ -/* 8034526C 54 A0 01 09 */ rlwinm. r0, r5, 0, 4, 4 -/* 80345270 41 82 00 0C */ beq lbl_8034527C -/* 80345274 3B C0 00 01 */ li r30, 1 -/* 80345278 48 00 00 08 */ b lbl_80345280 -lbl_8034527C: -/* 8034527C 3B C0 00 00 */ li r30, 0 -lbl_80345280: -/* 80345280 2C 1D 00 00 */ cmpwi r29, 0 -/* 80345284 41 82 00 20 */ beq lbl_803452A4 -/* 80345288 38 00 00 00 */ li r0, 0 -/* 8034528C 90 1F 01 E0 */ stw r0, 0x1e0(r31) -/* 80345290 64 A5 08 00 */ oris r5, r5, 0x800 -/* 80345294 90 1F 01 E4 */ stw r0, 0x1e4(r31) -/* 80345298 90 1F 01 E8 */ stw r0, 0x1e8(r31) -/* 8034529C 90 1F 01 EC */ stw r0, 0x1ec(r31) -/* 803452A0 48 00 00 08 */ b lbl_803452A8 -lbl_803452A4: -/* 803452A4 54 A5 01 46 */ rlwinm r5, r5, 0, 5, 3 -lbl_803452A8: -/* 803452A8 54 A5 00 7C */ rlwinm r5, r5, 0, 1, 0x1e -/* 803452AC 90 A4 00 00 */ stw r5, 0(r4) -/* 803452B0 4B FF 84 6D */ bl OSRestoreInterrupts -/* 803452B4 7F C3 F3 78 */ mr r3, r30 -/* 803452B8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 803452BC 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 803452C0 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 803452C4 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 803452C8 38 21 00 30 */ addi r1, r1, 0x30 -/* 803452CC 7C 08 03 A6 */ mtlr r0 -/* 803452D0 4E 80 00 20 */ blr diff --git a/asm/dolphin/si/SIBios/SIGetResponse.s b/asm/dolphin/si/SIBios/SIGetResponse.s deleted file mode 100644 index 7bd163e5bc3..00000000000 --- a/asm/dolphin/si/SIBios/SIGetResponse.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_80345A3C: -/* 80345A3C 7C 08 02 A6 */ mflr r0 -/* 80345A40 3C A0 80 45 */ lis r5, Packet@ha /* 0x8044C630@ha */ -/* 80345A44 90 01 00 04 */ stw r0, 4(r1) -/* 80345A48 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80345A4C BF 61 00 14 */ stmw r27, 0x14(r1) -/* 80345A50 3B A3 00 00 */ addi r29, r3, 0 -/* 80345A54 3B C4 00 00 */ addi r30, r4, 0 -/* 80345A58 3B 85 C6 30 */ addi r28, r5, Packet@l /* 0x8044C630@l */ -/* 80345A5C 4B FF 7C 99 */ bl OSDisableInterrupts -/* 80345A60 3B E3 00 00 */ addi r31, r3, 0 -/* 80345A64 38 7D 00 00 */ addi r3, r29, 0 -/* 80345A68 4B FF FC ED */ bl SIGetStatus -/* 80345A6C 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a -/* 80345A70 41 82 00 3C */ beq lbl_80345AAC -/* 80345A74 1C 9D 00 0C */ mulli r4, r29, 0xc -/* 80345A78 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006400@ha */ -/* 80345A7C 38 03 64 00 */ addi r0, r3, 0x6400 /* 0xCC006400@l */ -/* 80345A80 7C 80 22 14 */ add r4, r0, r4 -/* 80345A84 57 A3 18 38 */ slwi r3, r29, 3 -/* 80345A88 80 04 00 04 */ lwz r0, 4(r4) -/* 80345A8C 7C BC 1A 14 */ add r5, r28, r3 -/* 80345A90 90 05 01 C0 */ stw r0, 0x1c0(r5) -/* 80345A94 57 A0 10 3A */ slwi r0, r29, 2 -/* 80345A98 7C 7C 02 14 */ add r3, r28, r0 -/* 80345A9C 80 84 00 08 */ lwz r4, 8(r4) -/* 80345AA0 38 00 00 01 */ li r0, 1 -/* 80345AA4 90 85 01 C4 */ stw r4, 0x1c4(r5) -/* 80345AA8 90 03 01 B0 */ stw r0, 0x1b0(r3) -lbl_80345AAC: -/* 80345AAC 57 A0 10 3A */ slwi r0, r29, 2 -/* 80345AB0 7C 7C 02 14 */ add r3, r28, r0 -/* 80345AB4 83 63 01 B0 */ lwz r27, 0x1b0(r3) -/* 80345AB8 38 00 00 00 */ li r0, 0 -/* 80345ABC 2C 1B 00 00 */ cmpwi r27, 0 -/* 80345AC0 90 03 01 B0 */ stw r0, 0x1b0(r3) -/* 80345AC4 41 82 00 1C */ beq lbl_80345AE0 -/* 80345AC8 57 A0 18 38 */ slwi r0, r29, 3 -/* 80345ACC 7C 7C 02 14 */ add r3, r28, r0 -/* 80345AD0 80 03 01 C0 */ lwz r0, 0x1c0(r3) -/* 80345AD4 90 1E 00 00 */ stw r0, 0(r30) -/* 80345AD8 80 03 01 C4 */ lwz r0, 0x1c4(r3) -/* 80345ADC 90 1E 00 04 */ stw r0, 4(r30) -lbl_80345AE0: -/* 80345AE0 7F E3 FB 78 */ mr r3, r31 -/* 80345AE4 4B FF 7C 39 */ bl OSRestoreInterrupts -/* 80345AE8 7F 63 DB 78 */ mr r3, r27 -/* 80345AEC BB 61 00 14 */ lmw r27, 0x14(r1) -/* 80345AF0 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80345AF4 38 21 00 28 */ addi r1, r1, 0x28 -/* 80345AF8 7C 08 03 A6 */ mtlr r0 -/* 80345AFC 4E 80 00 20 */ blr diff --git a/asm/dolphin/si/SIBios/SIGetResponseRaw.s b/asm/dolphin/si/SIBios/SIGetResponseRaw.s deleted file mode 100644 index fa7f03ef4e0..00000000000 --- a/asm/dolphin/si/SIBios/SIGetResponseRaw.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_80345968: -/* 80345968 7C 08 02 A6 */ mflr r0 -/* 8034596C 3C 80 80 45 */ lis r4, Packet@ha /* 0x8044C630@ha */ -/* 80345970 90 01 00 04 */ stw r0, 4(r1) -/* 80345974 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80345978 93 E1 00 24 */ stw r31, 0x24(r1) -/* 8034597C 3B E4 C6 30 */ addi r31, r4, Packet@l /* 0x8044C630@l */ -/* 80345980 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80345984 3B C3 00 00 */ addi r30, r3, 0 -/* 80345988 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 8034598C 4B FF 7D 69 */ bl OSDisableInterrupts -/* 80345990 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006438@ha */ -/* 80345994 20 1E 00 03 */ subfic r0, r30, 3 -/* 80345998 83 A4 64 38 */ lwz r29, 0x6438(r4) /* 0xCC006438@l */ -/* 8034599C 54 00 18 38 */ slwi r0, r0, 3 -/* 803459A0 7F BD 04 30 */ srw r29, r29, r0 -/* 803459A4 57 A0 07 39 */ rlwinm. r0, r29, 0, 0x1c, 0x1c -/* 803459A8 41 82 00 28 */ beq lbl_803459D0 -/* 803459AC 3C 80 80 3D */ lis r4, Type@ha /* 0x803D1210@ha */ -/* 803459B0 57 C5 10 3A */ slwi r5, r30, 2 -/* 803459B4 38 04 12 10 */ addi r0, r4, Type@l /* 0x803D1210@l */ -/* 803459B8 7C 80 2A 14 */ add r4, r0, r5 -/* 803459BC 80 04 00 00 */ lwz r0, 0(r4) -/* 803459C0 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 -/* 803459C4 40 82 00 0C */ bne lbl_803459D0 -/* 803459C8 38 00 00 08 */ li r0, 8 -/* 803459CC 90 04 00 00 */ stw r0, 0(r4) -lbl_803459D0: -/* 803459D0 4B FF 7D 4D */ bl OSRestoreInterrupts -/* 803459D4 57 A0 06 B5 */ rlwinm. r0, r29, 0, 0x1a, 0x1a -/* 803459D8 41 82 00 44 */ beq lbl_80345A1C -/* 803459DC 1C 9E 00 0C */ mulli r4, r30, 0xc -/* 803459E0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006400@ha */ -/* 803459E4 38 03 64 00 */ addi r0, r3, 0x6400 /* 0xCC006400@l */ -/* 803459E8 7C 60 22 14 */ add r3, r0, r4 -/* 803459EC 57 C4 18 38 */ slwi r4, r30, 3 -/* 803459F0 80 03 00 04 */ lwz r0, 4(r3) -/* 803459F4 7C DF 22 14 */ add r6, r31, r4 -/* 803459F8 90 06 01 C0 */ stw r0, 0x1c0(r6) -/* 803459FC 57 C0 10 3A */ slwi r0, r30, 2 -/* 80345A00 7C 9F 02 14 */ add r4, r31, r0 -/* 80345A04 80 A3 00 08 */ lwz r5, 8(r3) -/* 80345A08 38 00 00 01 */ li r0, 1 -/* 80345A0C 38 60 00 01 */ li r3, 1 -/* 80345A10 90 A6 01 C4 */ stw r5, 0x1c4(r6) -/* 80345A14 90 04 01 B0 */ stw r0, 0x1b0(r4) -/* 80345A18 48 00 00 08 */ b lbl_80345A20 -lbl_80345A1C: -/* 80345A1C 38 60 00 00 */ li r3, 0 -lbl_80345A20: -/* 80345A20 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80345A24 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 80345A28 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 80345A2C 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 80345A30 38 21 00 28 */ addi r1, r1, 0x28 -/* 80345A34 7C 08 03 A6 */ mtlr r0 -/* 80345A38 4E 80 00 20 */ blr diff --git a/asm/dolphin/si/SIBios/SIGetStatus.s b/asm/dolphin/si/SIBios/SIGetStatus.s deleted file mode 100644 index f5776b2ffc3..00000000000 --- a/asm/dolphin/si/SIBios/SIGetStatus.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_80345754: -/* 80345754 7C 08 02 A6 */ mflr r0 -/* 80345758 90 01 00 04 */ stw r0, 4(r1) -/* 8034575C 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80345760 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80345764 93 C1 00 10 */ stw r30, 0x10(r1) -/* 80345768 7C 7E 1B 78 */ mr r30, r3 -/* 8034576C 4B FF 7F 89 */ bl OSDisableInterrupts -/* 80345770 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006438@ha */ -/* 80345774 20 1E 00 03 */ subfic r0, r30, 3 -/* 80345778 83 E4 64 38 */ lwz r31, 0x6438(r4) /* 0xCC006438@l */ -/* 8034577C 54 00 18 38 */ slwi r0, r0, 3 -/* 80345780 7F FF 04 30 */ srw r31, r31, r0 -/* 80345784 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c -/* 80345788 41 82 00 28 */ beq lbl_803457B0 -/* 8034578C 3C 80 80 3D */ lis r4, Type@ha /* 0x803D1210@ha */ -/* 80345790 57 C5 10 3A */ slwi r5, r30, 2 -/* 80345794 38 04 12 10 */ addi r0, r4, Type@l /* 0x803D1210@l */ -/* 80345798 7C 80 2A 14 */ add r4, r0, r5 -/* 8034579C 80 04 00 00 */ lwz r0, 0(r4) -/* 803457A0 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 -/* 803457A4 40 82 00 0C */ bne lbl_803457B0 -/* 803457A8 38 00 00 08 */ li r0, 8 -/* 803457AC 90 04 00 00 */ stw r0, 0(r4) -lbl_803457B0: -/* 803457B0 4B FF 7F 6D */ bl OSRestoreInterrupts -/* 803457B4 7F E3 FB 78 */ mr r3, r31 -/* 803457B8 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 803457BC 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 803457C0 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 803457C4 38 21 00 18 */ addi r1, r1, 0x18 -/* 803457C8 7C 08 03 A6 */ mtlr r0 -/* 803457CC 4E 80 00 20 */ blr diff --git a/asm/dolphin/si/SIBios/SIGetTypeAsync.s b/asm/dolphin/si/SIBios/SIGetTypeAsync.s deleted file mode 100644 index 5ea8dba85c0..00000000000 --- a/asm/dolphin/si/SIBios/SIGetTypeAsync.s +++ /dev/null @@ -1,85 +0,0 @@ -lbl_80346154: -/* 80346154 7C 08 02 A6 */ mflr r0 -/* 80346158 90 01 00 04 */ stw r0, 4(r1) -/* 8034615C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80346160 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80346164 3B E4 00 00 */ addi r31, r4, 0 -/* 80346168 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8034616C 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80346170 93 81 00 10 */ stw r28, 0x10(r1) -/* 80346174 3B 83 00 00 */ addi r28, r3, 0 -/* 80346178 4B FF 75 7D */ bl OSDisableInterrupts -/* 8034617C 3B C3 00 00 */ addi r30, r3, 0 -/* 80346180 38 7C 00 00 */ addi r3, r28, 0 -/* 80346184 4B FF FE 0D */ bl SIGetType -/* 80346188 3C 80 80 3D */ lis r4, Type@ha /* 0x803D1210@ha */ -/* 8034618C 57 85 10 3A */ slwi r5, r28, 2 -/* 80346190 38 04 12 10 */ addi r0, r4, Type@l /* 0x803D1210@l */ -/* 80346194 7C 80 2A 14 */ add r4, r0, r5 -/* 80346198 80 04 00 00 */ lwz r0, 0(r4) -/* 8034619C 3B A3 00 00 */ addi r29, r3, 0 -/* 803461A0 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 -/* 803461A4 41 82 00 AC */ beq lbl_80346250 -/* 803461A8 3C 60 80 45 */ lis r3, TypeCallback@ha /* 0x8044C790@ha */ -/* 803461AC 57 84 20 36 */ slwi r4, r28, 4 -/* 803461B0 38 03 C7 90 */ addi r0, r3, TypeCallback@l /* 0x8044C790@l */ -/* 803461B4 7C 80 22 14 */ add r4, r0, r4 -/* 803461B8 80 04 00 00 */ lwz r0, 0(r4) -/* 803461BC 38 A0 00 00 */ li r5, 0 -/* 803461C0 7C 00 F8 40 */ cmplw r0, r31 -/* 803461C4 41 82 00 A0 */ beq lbl_80346264 -/* 803461C8 28 00 00 00 */ cmplwi r0, 0 -/* 803461CC 40 82 00 10 */ bne lbl_803461DC -/* 803461D0 54 A0 10 3A */ slwi r0, r5, 2 -/* 803461D4 7F E4 01 2E */ stwx r31, r4, r0 -/* 803461D8 48 00 00 8C */ b lbl_80346264 -lbl_803461DC: -/* 803461DC 38 64 00 04 */ addi r3, r4, 4 -/* 803461E0 80 04 00 04 */ lwz r0, 4(r4) -/* 803461E4 38 A0 00 01 */ li r5, 1 -/* 803461E8 7C 00 F8 40 */ cmplw r0, r31 -/* 803461EC 41 82 00 78 */ beq lbl_80346264 -/* 803461F0 28 00 00 00 */ cmplwi r0, 0 -/* 803461F4 40 82 00 10 */ bne lbl_80346204 -/* 803461F8 54 A0 10 3A */ slwi r0, r5, 2 -/* 803461FC 7F E4 01 2E */ stwx r31, r4, r0 -/* 80346200 48 00 00 64 */ b lbl_80346264 -lbl_80346204: -/* 80346204 84 03 00 04 */ lwzu r0, 4(r3) -/* 80346208 38 A0 00 02 */ li r5, 2 -/* 8034620C 7C 00 F8 40 */ cmplw r0, r31 -/* 80346210 41 82 00 54 */ beq lbl_80346264 -/* 80346214 28 00 00 00 */ cmplwi r0, 0 -/* 80346218 40 82 00 10 */ bne lbl_80346228 -/* 8034621C 54 A0 10 3A */ slwi r0, r5, 2 -/* 80346220 7F E4 01 2E */ stwx r31, r4, r0 -/* 80346224 48 00 00 40 */ b lbl_80346264 -lbl_80346228: -/* 80346228 80 03 00 04 */ lwz r0, 4(r3) -/* 8034622C 38 A0 00 03 */ li r5, 3 -/* 80346230 7C 00 F8 40 */ cmplw r0, r31 -/* 80346234 41 82 00 30 */ beq lbl_80346264 -/* 80346238 28 00 00 00 */ cmplwi r0, 0 -/* 8034623C 40 82 00 28 */ bne lbl_80346264 -/* 80346240 54 A0 10 3A */ slwi r0, r5, 2 -/* 80346244 7F E4 01 2E */ stwx r31, r4, r0 -/* 80346248 48 00 00 1C */ b lbl_80346264 -/* 8034624C 48 00 00 18 */ b lbl_80346264 -lbl_80346250: -/* 80346250 39 9F 00 00 */ addi r12, r31, 0 -/* 80346254 7D 88 03 A6 */ mtlr r12 -/* 80346258 38 7C 00 00 */ addi r3, r28, 0 -/* 8034625C 38 9D 00 00 */ addi r4, r29, 0 -/* 80346260 4E 80 00 21 */ blrl -lbl_80346264: -/* 80346264 7F C3 F3 78 */ mr r3, r30 -/* 80346268 4B FF 74 B5 */ bl OSRestoreInterrupts -/* 8034626C 7F A3 EB 78 */ mr r3, r29 -/* 80346270 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80346274 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80346278 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8034627C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80346280 83 81 00 10 */ lwz r28, 0x10(r1) -/* 80346284 38 21 00 20 */ addi r1, r1, 0x20 -/* 80346288 7C 08 03 A6 */ mtlr r0 -/* 8034628C 4E 80 00 20 */ blr diff --git a/asm/dolphin/si/SIBios/SISetXY.s b/asm/dolphin/si/SIBios/SISetXY.s deleted file mode 100644 index ec12a0a1a1f..00000000000 --- a/asm/dolphin/si/SIBios/SISetXY.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_803457F4: -/* 803457F4 7C 08 02 A6 */ mflr r0 -/* 803457F8 90 01 00 04 */ stw r0, 4(r1) -/* 803457FC 54 80 40 2E */ slwi r0, r4, 8 -/* 80345800 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80345804 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80345808 54 7F 80 1E */ slwi r31, r3, 0x10 -/* 8034580C 7F FF 03 78 */ or r31, r31, r0 -/* 80345810 4B FF 7E E5 */ bl OSDisableInterrupts -/* 80345814 3C 80 80 3D */ lis r4, Si@ha /* 0x803D11FC@ha */ -/* 80345818 38 84 11 FC */ addi r4, r4, Si@l /* 0x803D11FC@l */ -/* 8034581C 80 04 00 04 */ lwz r0, 4(r4) -/* 80345820 38 A4 00 04 */ addi r5, r4, 4 -/* 80345824 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006430@ha */ -/* 80345828 54 00 06 0A */ rlwinm r0, r0, 0, 0x18, 5 -/* 8034582C 90 05 00 00 */ stw r0, 0(r5) -/* 80345830 80 05 00 00 */ lwz r0, 0(r5) -/* 80345834 7C 00 FB 78 */ or r0, r0, r31 -/* 80345838 90 05 00 00 */ stw r0, 0(r5) -/* 8034583C 83 E5 00 00 */ lwz r31, 0(r5) -/* 80345840 93 E4 64 30 */ stw r31, 0x6430(r4) /* 0xCC006430@l */ -/* 80345844 4B FF 7E D9 */ bl OSRestoreInterrupts -/* 80345848 7F E3 FB 78 */ mr r3, r31 -/* 8034584C 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80345850 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80345854 38 21 00 18 */ addi r1, r1, 0x18 -/* 80345858 7C 08 03 A6 */ mtlr r0 -/* 8034585C 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIAttach.s b/asm/exi/EXIBios/EXIAttach.s deleted file mode 100644 index 529ef1de171..00000000000 --- a/asm/exi/EXIBios/EXIAttach.s +++ /dev/null @@ -1,74 +0,0 @@ -lbl_803436A0: -/* 803436A0 7C 08 02 A6 */ mflr r0 -/* 803436A4 90 01 00 04 */ stw r0, 4(r1) -/* 803436A8 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 803436AC BF 61 00 2C */ stmw r27, 0x2c(r1) -/* 803436B0 3B 63 00 00 */ addi r27, r3, 0 -/* 803436B4 3B 84 00 00 */ addi r28, r4, 0 -/* 803436B8 54 64 30 32 */ slwi r4, r3, 6 -/* 803436BC 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 803436C0 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 803436C4 7F C0 22 14 */ add r30, r0, r4 -/* 803436C8 38 7B 00 00 */ addi r3, r27, 0 -/* 803436CC 4B FF FD 2D */ bl __EXIProbe -/* 803436D0 2C 03 00 00 */ cmpwi r3, 0 -/* 803436D4 41 82 00 20 */ beq lbl_803436F4 -/* 803436D8 80 1E 00 20 */ lwz r0, 0x20(r30) -/* 803436DC 2C 00 00 00 */ cmpwi r0, 0 -/* 803436E0 40 82 00 14 */ bne lbl_803436F4 -/* 803436E4 38 7B 00 00 */ addi r3, r27, 0 -/* 803436E8 38 80 00 00 */ li r4, 0 -/* 803436EC 38 A1 00 1C */ addi r5, r1, 0x1c -/* 803436F0 48 00 0B 49 */ bl EXIGetID -lbl_803436F4: -/* 803436F4 4B FF A0 01 */ bl OSDisableInterrupts -/* 803436F8 7C 7D 1B 78 */ mr r29, r3 -/* 803436FC 80 1E 00 20 */ lwz r0, 0x20(r30) -/* 80343700 2C 00 00 00 */ cmpwi r0, 0 -/* 80343704 40 82 00 14 */ bne lbl_80343718 -/* 80343708 7F A3 EB 78 */ mr r3, r29 -/* 8034370C 4B FF A0 11 */ bl OSRestoreInterrupts -/* 80343710 38 60 00 00 */ li r3, 0 -/* 80343714 48 00 00 84 */ b lbl_80343798 -lbl_80343718: -/* 80343718 4B FF 9F DD */ bl OSDisableInterrupts -/* 8034371C 7C 7F 1B 78 */ mr r31, r3 -/* 80343720 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 80343724 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80343728 40 82 00 14 */ bne lbl_8034373C -/* 8034372C 7F 63 DB 78 */ mr r3, r27 -/* 80343730 4B FF FC C9 */ bl __EXIProbe -/* 80343734 2C 03 00 00 */ cmpwi r3, 0 -/* 80343738 40 82 00 14 */ bne lbl_8034374C -lbl_8034373C: -/* 8034373C 7F E3 FB 78 */ mr r3, r31 -/* 80343740 4B FF 9F DD */ bl OSRestoreInterrupts -/* 80343744 3B E0 00 00 */ li r31, 0 -/* 80343748 48 00 00 44 */ b lbl_8034378C -lbl_8034374C: -/* 8034374C 38 7B 00 00 */ addi r3, r27, 0 -/* 80343750 38 80 00 01 */ li r4, 1 -/* 80343754 38 A0 00 00 */ li r5, 0 -/* 80343758 38 C0 00 00 */ li r6, 0 -/* 8034375C 4B FF FB D9 */ bl EXIClearInterrupts -/* 80343760 93 9E 00 08 */ stw r28, 8(r30) -/* 80343764 3C 60 00 10 */ lis r3, 0x10 -/* 80343768 1C 1B 00 03 */ mulli r0, r27, 3 -/* 8034376C 7C 63 04 30 */ srw r3, r3, r0 -/* 80343770 4B FF A3 D5 */ bl __OSUnmaskInterrupts -/* 80343774 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 80343778 60 00 00 08 */ ori r0, r0, 8 -/* 8034377C 90 1E 00 0C */ stw r0, 0xc(r30) -/* 80343780 7F E3 FB 78 */ mr r3, r31 -/* 80343784 4B FF 9F 99 */ bl OSRestoreInterrupts -/* 80343788 3B E0 00 01 */ li r31, 1 -lbl_8034378C: -/* 8034378C 7F A3 EB 78 */ mr r3, r29 -/* 80343790 4B FF 9F 8D */ bl OSRestoreInterrupts -/* 80343794 7F E3 FB 78 */ mr r3, r31 -lbl_80343798: -/* 80343798 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8034379C BB 61 00 2C */ lmw r27, 0x2c(r1) -/* 803437A0 38 21 00 40 */ addi r1, r1, 0x40 -/* 803437A4 7C 08 03 A6 */ mtlr r0 -/* 803437A8 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIClearInterrupts.s b/asm/exi/EXIBios/EXIClearInterrupts.s deleted file mode 100644 index aef7a9d50c8..00000000000 --- a/asm/exi/EXIBios/EXIClearInterrupts.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80343334: -/* 80343334 1C 03 00 14 */ mulli r0, r3, 0x14 -/* 80343338 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 8034333C 38 E3 68 00 */ addi r7, r3, 0x6800 /* 0xCC006800@l */ -/* 80343340 7C E7 02 14 */ add r7, r7, r0 -/* 80343344 80 07 00 00 */ lwz r0, 0(r7) -/* 80343348 7C 03 03 78 */ mr r3, r0 -/* 8034334C 70 00 07 F5 */ andi. r0, r0, 0x7f5 -/* 80343350 2C 04 00 00 */ cmpwi r4, 0 -/* 80343354 41 82 00 08 */ beq lbl_8034335C -/* 80343358 60 00 00 02 */ ori r0, r0, 2 -lbl_8034335C: -/* 8034335C 2C 05 00 00 */ cmpwi r5, 0 -/* 80343360 41 82 00 08 */ beq lbl_80343368 -/* 80343364 60 00 00 08 */ ori r0, r0, 8 -lbl_80343368: -/* 80343368 2C 06 00 00 */ cmpwi r6, 0 -/* 8034336C 41 82 00 08 */ beq lbl_80343374 -/* 80343370 60 00 08 00 */ ori r0, r0, 0x800 -lbl_80343374: -/* 80343374 90 07 00 00 */ stw r0, 0(r7) -/* 80343378 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIDeselect.s b/asm/exi/EXIBios/EXIDeselect.s deleted file mode 100644 index 98675062cb7..00000000000 --- a/asm/exi/EXIBios/EXIDeselect.s +++ /dev/null @@ -1,76 +0,0 @@ -lbl_80343994: -/* 80343994 7C 08 02 A6 */ mflr r0 -/* 80343998 90 01 00 04 */ stw r0, 4(r1) -/* 8034399C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803439A0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803439A4 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803439A8 93 A1 00 14 */ stw r29, 0x14(r1) -/* 803439AC 93 81 00 10 */ stw r28, 0x10(r1) -/* 803439B0 3B E3 00 00 */ addi r31, r3, 0 -/* 803439B4 54 64 30 32 */ slwi r4, r3, 6 -/* 803439B8 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 803439BC 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 803439C0 7F C0 22 14 */ add r30, r0, r4 -/* 803439C4 4B FF 9D 31 */ bl OSDisableInterrupts -/* 803439C8 7C 7C 1B 78 */ mr r28, r3 -/* 803439CC 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 803439D0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 803439D4 40 82 00 14 */ bne lbl_803439E8 -/* 803439D8 7F 83 E3 78 */ mr r3, r28 -/* 803439DC 4B FF 9D 41 */ bl OSRestoreInterrupts -/* 803439E0 38 60 00 00 */ li r3, 0 -/* 803439E4 48 00 00 A0 */ b lbl_80343A84 -lbl_803439E8: -/* 803439E8 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 803439EC 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c -/* 803439F0 90 1E 00 0C */ stw r0, 0xc(r30) -/* 803439F4 1C 1F 00 14 */ mulli r0, r31, 0x14 -/* 803439F8 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 803439FC 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */ -/* 80343A00 7C 63 02 14 */ add r3, r3, r0 -/* 80343A04 83 A3 00 00 */ lwz r29, 0(r3) -/* 80343A08 73 A0 04 05 */ andi. r0, r29, 0x405 -/* 80343A0C 90 03 00 00 */ stw r0, 0(r3) -/* 80343A10 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 80343A14 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80343A18 41 82 00 30 */ beq lbl_80343A48 -/* 80343A1C 2C 1F 00 01 */ cmpwi r31, 1 -/* 80343A20 41 82 00 20 */ beq lbl_80343A40 -/* 80343A24 40 80 00 24 */ bge lbl_80343A48 -/* 80343A28 2C 1F 00 00 */ cmpwi r31, 0 -/* 80343A2C 40 80 00 08 */ bge lbl_80343A34 -/* 80343A30 48 00 00 18 */ b lbl_80343A48 -lbl_80343A34: -/* 80343A34 3C 60 00 10 */ lis r3, 0x10 -/* 80343A38 4B FF A1 0D */ bl __OSUnmaskInterrupts -/* 80343A3C 48 00 00 0C */ b lbl_80343A48 -lbl_80343A40: -/* 80343A40 3C 60 00 02 */ lis r3, 2 -/* 80343A44 4B FF A1 01 */ bl __OSUnmaskInterrupts -lbl_80343A48: -/* 80343A48 7F 83 E3 78 */ mr r3, r28 -/* 80343A4C 4B FF 9C D1 */ bl OSRestoreInterrupts -/* 80343A50 2C 1F 00 02 */ cmpwi r31, 2 -/* 80343A54 41 82 00 2C */ beq lbl_80343A80 -/* 80343A58 57 A0 06 31 */ rlwinm. r0, r29, 0, 0x18, 0x18 -/* 80343A5C 41 82 00 24 */ beq lbl_80343A80 -/* 80343A60 7F E3 FB 78 */ mr r3, r31 -/* 80343A64 4B FF F9 95 */ bl __EXIProbe -/* 80343A68 2C 03 00 00 */ cmpwi r3, 0 -/* 80343A6C 41 82 00 0C */ beq lbl_80343A78 -/* 80343A70 38 60 00 01 */ li r3, 1 -/* 80343A74 48 00 00 10 */ b lbl_80343A84 -lbl_80343A78: -/* 80343A78 38 60 00 00 */ li r3, 0 -/* 80343A7C 48 00 00 08 */ b lbl_80343A84 -lbl_80343A80: -/* 80343A80 38 60 00 01 */ li r3, 1 -lbl_80343A84: -/* 80343A84 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80343A88 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80343A8C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80343A90 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80343A94 83 81 00 10 */ lwz r28, 0x10(r1) -/* 80343A98 38 21 00 20 */ addi r1, r1, 0x20 -/* 80343A9C 7C 08 03 A6 */ mtlr r0 -/* 80343AA0 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIDetach.s b/asm/exi/EXIBios/EXIDetach.s deleted file mode 100644 index b823b91e01d..00000000000 --- a/asm/exi/EXIBios/EXIDetach.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_803437AC: -/* 803437AC 7C 08 02 A6 */ mflr r0 -/* 803437B0 90 01 00 04 */ stw r0, 4(r1) -/* 803437B4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803437B8 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803437BC 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803437C0 93 A1 00 14 */ stw r29, 0x14(r1) -/* 803437C4 3B A3 00 00 */ addi r29, r3, 0 -/* 803437C8 54 64 30 32 */ slwi r4, r3, 6 -/* 803437CC 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 803437D0 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 803437D4 7F E0 22 14 */ add r31, r0, r4 -/* 803437D8 4B FF 9F 1D */ bl OSDisableInterrupts -/* 803437DC 7C 7E 1B 78 */ mr r30, r3 -/* 803437E0 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 803437E4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 803437E8 40 82 00 14 */ bne lbl_803437FC -/* 803437EC 7F C3 F3 78 */ mr r3, r30 -/* 803437F0 4B FF 9F 2D */ bl OSRestoreInterrupts -/* 803437F4 38 60 00 01 */ li r3, 1 -/* 803437F8 48 00 00 54 */ b lbl_8034384C -lbl_803437FC: -/* 803437FC 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343800 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 80343804 41 82 00 20 */ beq lbl_80343824 -/* 80343808 80 1F 00 18 */ lwz r0, 0x18(r31) -/* 8034380C 28 00 00 00 */ cmplwi r0, 0 -/* 80343810 40 82 00 14 */ bne lbl_80343824 -/* 80343814 7F C3 F3 78 */ mr r3, r30 -/* 80343818 4B FF 9F 05 */ bl OSRestoreInterrupts -/* 8034381C 38 60 00 00 */ li r3, 0 -/* 80343820 48 00 00 2C */ b lbl_8034384C -lbl_80343824: -/* 80343824 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343828 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b -/* 8034382C 90 1F 00 0C */ stw r0, 0xc(r31) -/* 80343830 3C 60 00 50 */ lis r3, 0x50 -/* 80343834 1C 1D 00 03 */ mulli r0, r29, 3 -/* 80343838 7C 63 04 30 */ srw r3, r3, r0 -/* 8034383C 4B FF A2 81 */ bl __OSMaskInterrupts -/* 80343840 7F C3 F3 78 */ mr r3, r30 -/* 80343844 4B FF 9E D9 */ bl OSRestoreInterrupts -/* 80343848 38 60 00 01 */ li r3, 1 -lbl_8034384C: -/* 8034384C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80343850 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80343854 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80343858 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8034385C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80343860 7C 08 03 A6 */ mtlr r0 -/* 80343864 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIDma.s b/asm/exi/EXIBios/EXIDma.s deleted file mode 100644 index 026cfa3ad72..00000000000 --- a/asm/exi/EXIBios/EXIDma.s +++ /dev/null @@ -1,64 +0,0 @@ -lbl_80342FFC: -/* 80342FFC 7C 08 02 A6 */ mflr r0 -/* 80343000 90 01 00 04 */ stw r0, 4(r1) -/* 80343004 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80343008 BF 21 00 24 */ stmw r25, 0x24(r1) -/* 8034300C 3B 63 00 00 */ addi r27, r3, 0 -/* 80343010 3B 84 00 00 */ addi r28, r4, 0 -/* 80343014 3B A5 00 00 */ addi r29, r5, 0 -/* 80343018 3B C6 00 00 */ addi r30, r6, 0 -/* 8034301C 3B 27 00 00 */ addi r25, r7, 0 -/* 80343020 54 64 30 32 */ slwi r4, r3, 6 -/* 80343024 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 80343028 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 8034302C 7F 40 22 14 */ add r26, r0, r4 -/* 80343030 4B FF A6 C5 */ bl OSDisableInterrupts -/* 80343034 7C 7F 1B 78 */ mr r31, r3 -/* 80343038 80 1A 00 0C */ lwz r0, 0xc(r26) -/* 8034303C 54 00 07 BF */ clrlwi. r0, r0, 0x1e -/* 80343040 40 82 00 10 */ bne lbl_80343050 -/* 80343044 80 1A 00 0C */ lwz r0, 0xc(r26) -/* 80343048 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 8034304C 40 82 00 14 */ bne lbl_80343060 -lbl_80343050: -/* 80343050 7F E3 FB 78 */ mr r3, r31 -/* 80343054 4B FF A6 C9 */ bl OSRestoreInterrupts -/* 80343058 38 60 00 00 */ li r3, 0 -/* 8034305C 48 00 00 78 */ b lbl_803430D4 -lbl_80343060: -/* 80343060 93 3A 00 04 */ stw r25, 4(r26) -/* 80343064 80 1A 00 04 */ lwz r0, 4(r26) -/* 80343068 28 00 00 00 */ cmplwi r0, 0 -/* 8034306C 41 82 00 28 */ beq lbl_80343094 -/* 80343070 38 7B 00 00 */ addi r3, r27, 0 -/* 80343074 38 80 00 00 */ li r4, 0 -/* 80343078 38 A0 00 01 */ li r5, 1 -/* 8034307C 38 C0 00 00 */ li r6, 0 -/* 80343080 48 00 02 B5 */ bl EXIClearInterrupts -/* 80343084 3C 60 00 20 */ lis r3, 0x20 -/* 80343088 1C 1B 00 03 */ mulli r0, r27, 3 -/* 8034308C 7C 63 04 30 */ srw r3, r3, r0 -/* 80343090 4B FF AA B5 */ bl __OSUnmaskInterrupts -lbl_80343094: -/* 80343094 80 1A 00 0C */ lwz r0, 0xc(r26) -/* 80343098 60 00 00 01 */ ori r0, r0, 1 -/* 8034309C 90 1A 00 0C */ stw r0, 0xc(r26) -/* 803430A0 57 84 01 B4 */ rlwinm r4, r28, 0, 6, 0x1a -/* 803430A4 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 803430A8 38 03 68 00 */ addi r0, r3, 0x6800 /* 0xCC006800@l */ -/* 803430AC 1C 7B 00 14 */ mulli r3, r27, 0x14 -/* 803430B0 7C 60 1A 14 */ add r3, r0, r3 -/* 803430B4 90 83 00 04 */ stw r4, 4(r3) -/* 803430B8 93 A3 00 08 */ stw r29, 8(r3) -/* 803430BC 57 C0 10 3A */ slwi r0, r30, 2 -/* 803430C0 60 00 00 03 */ ori r0, r0, 3 -/* 803430C4 90 03 00 0C */ stw r0, 0xc(r3) -/* 803430C8 7F E3 FB 78 */ mr r3, r31 -/* 803430CC 4B FF A6 51 */ bl OSRestoreInterrupts -/* 803430D0 38 60 00 01 */ li r3, 1 -lbl_803430D4: -/* 803430D4 80 01 00 44 */ lwz r0, 0x44(r1) -/* 803430D8 BB 21 00 24 */ lmw r25, 0x24(r1) -/* 803430DC 38 21 00 40 */ addi r1, r1, 0x40 -/* 803430E0 7C 08 03 A6 */ mtlr r0 -/* 803430E4 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIGetState.s b/asm/exi/EXIBios/EXIGetState.s deleted file mode 100644 index 6cca8ee1840..00000000000 --- a/asm/exi/EXIBios/EXIGetState.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_803441F8: -/* 803441F8 54 64 30 32 */ slwi r4, r3, 6 -/* 803441FC 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 80344200 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80344204 7C 60 22 14 */ add r3, r0, r4 -/* 80344208 80 63 00 0C */ lwz r3, 0xc(r3) -/* 8034420C 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIImm.s b/asm/exi/EXIBios/EXIImm.s deleted file mode 100644 index b67bca62c0a..00000000000 --- a/asm/exi/EXIBios/EXIImm.s +++ /dev/null @@ -1,164 +0,0 @@ -lbl_80342D00: -/* 80342D00 7C 08 02 A6 */ mflr r0 -/* 80342D04 90 01 00 04 */ stw r0, 4(r1) -/* 80342D08 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80342D0C BF 21 00 24 */ stmw r25, 0x24(r1) -/* 80342D10 3B 43 00 00 */ addi r26, r3, 0 -/* 80342D14 3B 64 00 00 */ addi r27, r4, 0 -/* 80342D18 3B 85 00 00 */ addi r28, r5, 0 -/* 80342D1C 3B A6 00 00 */ addi r29, r6, 0 -/* 80342D20 3B 27 00 00 */ addi r25, r7, 0 -/* 80342D24 54 64 30 32 */ slwi r4, r3, 6 -/* 80342D28 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 80342D2C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80342D30 7F E0 22 14 */ add r31, r0, r4 -/* 80342D34 4B FF A9 C1 */ bl OSDisableInterrupts -/* 80342D38 7C 7E 1B 78 */ mr r30, r3 -/* 80342D3C 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80342D40 54 00 07 BF */ clrlwi. r0, r0, 0x1e -/* 80342D44 40 82 00 10 */ bne lbl_80342D54 -/* 80342D48 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80342D4C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 80342D50 40 82 00 14 */ bne lbl_80342D64 -lbl_80342D54: -/* 80342D54 7F C3 F3 78 */ mr r3, r30 -/* 80342D58 4B FF A9 C5 */ bl OSRestoreInterrupts -/* 80342D5C 38 60 00 00 */ li r3, 0 -/* 80342D60 48 00 01 E8 */ b lbl_80342F48 -lbl_80342D64: -/* 80342D64 93 3F 00 04 */ stw r25, 4(r31) -/* 80342D68 80 1F 00 04 */ lwz r0, 4(r31) -/* 80342D6C 28 00 00 00 */ cmplwi r0, 0 -/* 80342D70 41 82 00 28 */ beq lbl_80342D98 -/* 80342D74 38 7A 00 00 */ addi r3, r26, 0 -/* 80342D78 38 80 00 00 */ li r4, 0 -/* 80342D7C 38 A0 00 01 */ li r5, 1 -/* 80342D80 38 C0 00 00 */ li r6, 0 -/* 80342D84 48 00 05 B1 */ bl EXIClearInterrupts -/* 80342D88 3C 60 00 20 */ lis r3, 0x20 -/* 80342D8C 1C 1A 00 03 */ mulli r0, r26, 3 -/* 80342D90 7C 63 04 30 */ srw r3, r3, r0 -/* 80342D94 4B FF AD B1 */ bl __OSUnmaskInterrupts -lbl_80342D98: -/* 80342D98 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80342D9C 60 00 00 02 */ ori r0, r0, 2 -/* 80342DA0 90 1F 00 0C */ stw r0, 0xc(r31) -/* 80342DA4 28 1D 00 00 */ cmplwi r29, 0 -/* 80342DA8 41 82 01 44 */ beq lbl_80342EEC -/* 80342DAC 38 00 00 00 */ li r0, 0 -/* 80342DB0 38 80 00 00 */ li r4, 0 -/* 80342DB4 7C 04 E0 00 */ cmpw r4, r28 -/* 80342DB8 40 80 01 20 */ bge lbl_80342ED8 -/* 80342DBC 38 DC FF F8 */ addi r6, r28, -8 -/* 80342DC0 2C 1C 00 08 */ cmpwi r28, 8 -/* 80342DC4 40 81 01 7C */ ble lbl_80342F40 -/* 80342DC8 38 7B 00 00 */ addi r3, r27, 0 -/* 80342DCC 38 A6 00 07 */ addi r5, r6, 7 -/* 80342DD0 54 A5 E8 FE */ srwi r5, r5, 3 -/* 80342DD4 7C A9 03 A6 */ mtctr r5 -/* 80342DD8 2C 06 00 00 */ cmpwi r6, 0 -/* 80342DDC 40 81 01 64 */ ble lbl_80342F40 -lbl_80342DE0: -/* 80342DE0 88 C3 00 00 */ lbz r6, 0(r3) -/* 80342DE4 20 A4 00 03 */ subfic r5, r4, 3 -/* 80342DE8 54 A5 18 38 */ slwi r5, r5, 3 -/* 80342DEC 7C C5 28 30 */ slw r5, r6, r5 -/* 80342DF0 7C 00 2B 78 */ or r0, r0, r5 -/* 80342DF4 88 C3 00 01 */ lbz r6, 1(r3) -/* 80342DF8 38 A4 00 01 */ addi r5, r4, 1 -/* 80342DFC 20 A5 00 03 */ subfic r5, r5, 3 -/* 80342E00 54 A5 18 38 */ slwi r5, r5, 3 -/* 80342E04 7C C5 28 30 */ slw r5, r6, r5 -/* 80342E08 7C 00 2B 78 */ or r0, r0, r5 -/* 80342E0C 88 C3 00 02 */ lbz r6, 2(r3) -/* 80342E10 38 A4 00 02 */ addi r5, r4, 2 -/* 80342E14 20 A5 00 03 */ subfic r5, r5, 3 -/* 80342E18 54 A5 18 38 */ slwi r5, r5, 3 -/* 80342E1C 7C C5 28 30 */ slw r5, r6, r5 -/* 80342E20 7C 00 2B 78 */ or r0, r0, r5 -/* 80342E24 88 C3 00 03 */ lbz r6, 3(r3) -/* 80342E28 7C A4 00 D0 */ neg r5, r4 -/* 80342E2C 54 A5 18 38 */ slwi r5, r5, 3 -/* 80342E30 7C C5 28 30 */ slw r5, r6, r5 -/* 80342E34 7C 00 2B 78 */ or r0, r0, r5 -/* 80342E38 88 C3 00 04 */ lbz r6, 4(r3) -/* 80342E3C 38 A4 00 04 */ addi r5, r4, 4 -/* 80342E40 20 A5 00 03 */ subfic r5, r5, 3 -/* 80342E44 54 A5 18 38 */ slwi r5, r5, 3 -/* 80342E48 7C C5 28 30 */ slw r5, r6, r5 -/* 80342E4C 7C 00 2B 78 */ or r0, r0, r5 -/* 80342E50 88 C3 00 05 */ lbz r6, 5(r3) -/* 80342E54 38 A4 00 05 */ addi r5, r4, 5 -/* 80342E58 20 A5 00 03 */ subfic r5, r5, 3 -/* 80342E5C 54 A5 18 38 */ slwi r5, r5, 3 -/* 80342E60 7C C5 28 30 */ slw r5, r6, r5 -/* 80342E64 7C 00 2B 78 */ or r0, r0, r5 -/* 80342E68 88 C3 00 06 */ lbz r6, 6(r3) -/* 80342E6C 38 A4 00 06 */ addi r5, r4, 6 -/* 80342E70 20 A5 00 03 */ subfic r5, r5, 3 -/* 80342E74 54 A5 18 38 */ slwi r5, r5, 3 -/* 80342E78 7C C5 28 30 */ slw r5, r6, r5 -/* 80342E7C 7C 00 2B 78 */ or r0, r0, r5 -/* 80342E80 88 C3 00 07 */ lbz r6, 7(r3) -/* 80342E84 38 A4 00 07 */ addi r5, r4, 7 -/* 80342E88 20 A5 00 03 */ subfic r5, r5, 3 -/* 80342E8C 54 A5 18 38 */ slwi r5, r5, 3 -/* 80342E90 7C C5 28 30 */ slw r5, r6, r5 -/* 80342E94 7C 00 2B 78 */ or r0, r0, r5 -/* 80342E98 38 63 00 08 */ addi r3, r3, 8 -/* 80342E9C 38 84 00 08 */ addi r4, r4, 8 -/* 80342EA0 42 00 FF 40 */ bdnz lbl_80342DE0 -/* 80342EA4 48 00 00 9C */ b lbl_80342F40 -lbl_80342EA8: -/* 80342EA8 7C 64 E0 50 */ subf r3, r4, r28 -/* 80342EAC 7C 69 03 A6 */ mtctr r3 -/* 80342EB0 7C 04 E0 00 */ cmpw r4, r28 -/* 80342EB4 40 80 00 24 */ bge lbl_80342ED8 -lbl_80342EB8: -/* 80342EB8 88 A6 00 00 */ lbz r5, 0(r6) -/* 80342EBC 20 64 00 03 */ subfic r3, r4, 3 -/* 80342EC0 54 63 18 38 */ slwi r3, r3, 3 -/* 80342EC4 7C A3 18 30 */ slw r3, r5, r3 -/* 80342EC8 7C 00 1B 78 */ or r0, r0, r3 -/* 80342ECC 38 C6 00 01 */ addi r6, r6, 1 -/* 80342ED0 38 84 00 01 */ addi r4, r4, 1 -/* 80342ED4 42 00 FF E4 */ bdnz lbl_80342EB8 -lbl_80342ED8: -/* 80342ED8 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 80342EDC 38 83 68 00 */ addi r4, r3, 0x6800 /* 0xCC006800@l */ -/* 80342EE0 1C 7A 00 14 */ mulli r3, r26, 0x14 -/* 80342EE4 7C 64 1A 14 */ add r3, r4, r3 -/* 80342EE8 90 03 00 10 */ stw r0, 0x10(r3) -lbl_80342EEC: -/* 80342EEC 93 7F 00 14 */ stw r27, 0x14(r31) -/* 80342EF0 28 1D 00 01 */ cmplwi r29, 1 -/* 80342EF4 41 82 00 0C */ beq lbl_80342F00 -/* 80342EF8 7F 80 E3 78 */ mr r0, r28 -/* 80342EFC 48 00 00 08 */ b lbl_80342F04 -lbl_80342F00: -/* 80342F00 38 00 00 00 */ li r0, 0 -lbl_80342F04: -/* 80342F04 90 1F 00 10 */ stw r0, 0x10(r31) -/* 80342F08 57 A0 10 3A */ slwi r0, r29, 2 -/* 80342F0C 60 03 00 01 */ ori r3, r0, 1 -/* 80342F10 38 1C FF FF */ addi r0, r28, -1 -/* 80342F14 54 00 20 36 */ slwi r0, r0, 4 -/* 80342F18 7C 64 03 78 */ or r4, r3, r0 -/* 80342F1C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 80342F20 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */ -/* 80342F24 1C 1A 00 14 */ mulli r0, r26, 0x14 -/* 80342F28 7C 63 02 14 */ add r3, r3, r0 -/* 80342F2C 90 83 00 0C */ stw r4, 0xc(r3) -/* 80342F30 7F C3 F3 78 */ mr r3, r30 -/* 80342F34 4B FF A7 E9 */ bl OSRestoreInterrupts -/* 80342F38 38 60 00 01 */ li r3, 1 -/* 80342F3C 48 00 00 0C */ b lbl_80342F48 -lbl_80342F40: -/* 80342F40 7C DB 22 14 */ add r6, r27, r4 -/* 80342F44 4B FF FF 64 */ b lbl_80342EA8 -lbl_80342F48: -/* 80342F48 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80342F4C BB 21 00 24 */ lmw r25, 0x24(r1) -/* 80342F50 38 21 00 40 */ addi r1, r1, 0x40 -/* 80342F54 7C 08 03 A6 */ mtlr r0 -/* 80342F58 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIImmEx.s b/asm/exi/EXIBios/EXIImmEx.s deleted file mode 100644 index 360ceea8fef..00000000000 --- a/asm/exi/EXIBios/EXIImmEx.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_80342F5C: -/* 80342F5C 7C 08 02 A6 */ mflr r0 -/* 80342F60 90 01 00 04 */ stw r0, 4(r1) -/* 80342F64 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80342F68 BF 61 00 1C */ stmw r27, 0x1c(r1) -/* 80342F6C 3B 63 00 00 */ addi r27, r3, 0 -/* 80342F70 3B 84 00 00 */ addi r28, r4, 0 -/* 80342F74 3B A5 00 00 */ addi r29, r5, 0 -/* 80342F78 3B C6 00 00 */ addi r30, r6, 0 -/* 80342F7C 48 00 00 60 */ b lbl_80342FDC -lbl_80342F80: -/* 80342F80 2C 1D 00 04 */ cmpwi r29, 4 -/* 80342F84 40 80 00 0C */ bge lbl_80342F90 -/* 80342F88 7F BF EB 78 */ mr r31, r29 -/* 80342F8C 48 00 00 08 */ b lbl_80342F94 -lbl_80342F90: -/* 80342F90 3B E0 00 04 */ li r31, 4 -lbl_80342F94: -/* 80342F94 38 BF 00 00 */ addi r5, r31, 0 -/* 80342F98 38 7B 00 00 */ addi r3, r27, 0 -/* 80342F9C 38 9C 00 00 */ addi r4, r28, 0 -/* 80342FA0 38 DE 00 00 */ addi r6, r30, 0 -/* 80342FA4 38 E0 00 00 */ li r7, 0 -/* 80342FA8 4B FF FD 59 */ bl EXIImm -/* 80342FAC 2C 03 00 00 */ cmpwi r3, 0 -/* 80342FB0 40 82 00 0C */ bne lbl_80342FBC -/* 80342FB4 38 60 00 00 */ li r3, 0 -/* 80342FB8 48 00 00 30 */ b lbl_80342FE8 -lbl_80342FBC: -/* 80342FBC 7F 63 DB 78 */ mr r3, r27 -/* 80342FC0 48 00 01 29 */ bl EXISync -/* 80342FC4 2C 03 00 00 */ cmpwi r3, 0 -/* 80342FC8 40 82 00 0C */ bne lbl_80342FD4 -/* 80342FCC 38 60 00 00 */ li r3, 0 -/* 80342FD0 48 00 00 18 */ b lbl_80342FE8 -lbl_80342FD4: -/* 80342FD4 7F 9C FA 14 */ add r28, r28, r31 -/* 80342FD8 7F BF E8 50 */ subf r29, r31, r29 -lbl_80342FDC: -/* 80342FDC 2C 1D 00 00 */ cmpwi r29, 0 -/* 80342FE0 40 82 FF A0 */ bne lbl_80342F80 -/* 80342FE4 38 60 00 01 */ li r3, 1 -lbl_80342FE8: -/* 80342FE8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80342FEC BB 61 00 1C */ lmw r27, 0x1c(r1) -/* 80342FF0 38 21 00 30 */ addi r1, r1, 0x30 -/* 80342FF4 7C 08 03 A6 */ mtlr r0 -/* 80342FF8 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIInit.s b/asm/exi/EXIBios/EXIInit.s deleted file mode 100644 index 5e9eecf39f6..00000000000 --- a/asm/exi/EXIBios/EXIInit.s +++ /dev/null @@ -1,122 +0,0 @@ -lbl_80343E54: -/* 80343E54 7C 08 02 A6 */ mflr r0 -/* 80343E58 90 01 00 04 */ stw r0, 4(r1) -/* 80343E5C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80343E60 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80343E64 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80343E68 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80343E6C 93 81 00 10 */ stw r28, 0x10(r1) -/* 80343E70 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 80343E74 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */ -lbl_80343E78: -/* 80343E78 80 03 00 0C */ lwz r0, 0xc(r3) -/* 80343E7C 54 00 07 FE */ clrlwi r0, r0, 0x1f -/* 80343E80 28 00 00 01 */ cmplwi r0, 1 -/* 80343E84 41 82 FF F4 */ beq lbl_80343E78 -/* 80343E88 80 03 00 20 */ lwz r0, 0x20(r3) -/* 80343E8C 54 00 07 FE */ clrlwi r0, r0, 0x1f -/* 80343E90 28 00 00 01 */ cmplwi r0, 1 -/* 80343E94 41 82 FF E4 */ beq lbl_80343E78 -/* 80343E98 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80343E9C 54 00 07 FE */ clrlwi r0, r0, 0x1f -/* 80343EA0 28 00 00 01 */ cmplwi r0, 1 -/* 80343EA4 41 82 FF D4 */ beq lbl_80343E78 -/* 80343EA8 3C 60 00 80 */ lis r3, 0x0080 /* 0x007F8000@ha */ -/* 80343EAC 38 63 80 00 */ addi r3, r3, 0x8000 /* 0x007F8000@l */ -/* 80343EB0 4B FF 9C 0D */ bl __OSMaskInterrupts -/* 80343EB4 3B E0 00 00 */ li r31, 0 -/* 80343EB8 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006800@ha */ -/* 80343EBC 93 E4 68 00 */ stw r31, 0x6800(r4) /* 0xCC006800@l */ -/* 80343EC0 93 E4 68 14 */ stw r31, 0x6814(r4) -/* 80343EC4 93 E4 68 28 */ stw r31, 0x6828(r4) -/* 80343EC8 38 00 20 00 */ li r0, 0x2000 -/* 80343ECC 90 04 68 00 */ stw r0, 0x6800(r4) -/* 80343ED0 38 60 00 09 */ li r3, 9 -/* 80343ED4 3C 80 80 34 */ lis r4, EXIIntrruptHandler@ha /* 0x80343AA4@ha */ -/* 80343ED8 3B 84 3A A4 */ addi r28, r4, EXIIntrruptHandler@l /* 0x80343AA4@l */ -/* 80343EDC 38 9C 00 00 */ addi r4, r28, 0 -/* 80343EE0 4B FF 98 61 */ bl __OSSetInterruptHandler -/* 80343EE4 38 60 00 0A */ li r3, 0xa -/* 80343EE8 3C 80 80 34 */ lis r4, TCIntrruptHandler@ha /* 0x80343B6C@ha */ -/* 80343EEC 3B A4 3B 6C */ addi r29, r4, TCIntrruptHandler@l /* 0x80343B6C@l */ -/* 80343EF0 38 9D 00 00 */ addi r4, r29, 0 -/* 80343EF4 4B FF 98 4D */ bl __OSSetInterruptHandler -/* 80343EF8 38 60 00 0B */ li r3, 0xb -/* 80343EFC 3C 80 80 34 */ lis r4, EXTIntrruptHandler@ha /* 0x80343D84@ha */ -/* 80343F00 3B C4 3D 84 */ addi r30, r4, EXTIntrruptHandler@l /* 0x80343D84@l */ -/* 80343F04 38 9E 00 00 */ addi r4, r30, 0 -/* 80343F08 4B FF 98 39 */ bl __OSSetInterruptHandler -/* 80343F0C 38 60 00 0C */ li r3, 0xc -/* 80343F10 38 9C 00 00 */ addi r4, r28, 0 -/* 80343F14 4B FF 98 2D */ bl __OSSetInterruptHandler -/* 80343F18 38 60 00 0D */ li r3, 0xd -/* 80343F1C 38 9D 00 00 */ addi r4, r29, 0 -/* 80343F20 4B FF 98 21 */ bl __OSSetInterruptHandler -/* 80343F24 38 60 00 0E */ li r3, 0xe -/* 80343F28 38 9E 00 00 */ addi r4, r30, 0 -/* 80343F2C 4B FF 98 15 */ bl __OSSetInterruptHandler -/* 80343F30 38 60 00 0F */ li r3, 0xf -/* 80343F34 38 9C 00 00 */ addi r4, r28, 0 -/* 80343F38 4B FF 98 09 */ bl __OSSetInterruptHandler -/* 80343F3C 38 60 00 10 */ li r3, 0x10 -/* 80343F40 38 9D 00 00 */ addi r4, r29, 0 -/* 80343F44 4B FF 97 FD */ bl __OSSetInterruptHandler -/* 80343F48 38 60 00 00 */ li r3, 0 -/* 80343F4C 38 80 00 02 */ li r4, 2 -/* 80343F50 38 AD 91 58 */ la r5, IDSerialPort1(r13) /* 804516D8-_SDA_BASE_ */ -/* 80343F54 48 00 02 E5 */ bl EXIGetID -/* 80343F58 80 0D 90 A8 */ lwz r0, __OSInIPL(r13) -/* 80343F5C 2C 00 00 00 */ cmpwi r0, 0 -/* 80343F60 41 82 00 34 */ beq lbl_80343F94 -/* 80343F64 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030C4@ha */ -/* 80343F68 93 E4 30 C4 */ stw r31, 0x30C4(r4) /* 0x800030C4@l */ -/* 80343F6C 93 E4 30 C0 */ stw r31, 0x30c0(r4) -/* 80343F70 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 80343F74 38 63 C5 70 */ addi r3, r3, Ecb@l /* 0x8044C570@l */ -/* 80343F78 93 E3 00 60 */ stw r31, 0x60(r3) -/* 80343F7C 93 E3 00 20 */ stw r31, 0x20(r3) -/* 80343F80 38 60 00 00 */ li r3, 0 -/* 80343F84 4B FF F4 75 */ bl __EXIProbe -/* 80343F88 38 60 00 01 */ li r3, 1 -/* 80343F8C 4B FF F4 6D */ bl __EXIProbe -/* 80343F90 48 00 00 70 */ b lbl_80344000 -lbl_80343F94: -/* 80343F94 38 60 00 00 */ li r3, 0 -/* 80343F98 38 80 00 00 */ li r4, 0 -/* 80343F9C 38 A1 00 08 */ addi r5, r1, 8 -/* 80343FA0 48 00 02 99 */ bl EXIGetID -/* 80343FA4 2C 03 00 00 */ cmpwi r3, 0 -/* 80343FA8 41 82 00 24 */ beq lbl_80343FCC -/* 80343FAC 80 61 00 08 */ lwz r3, 8(r1) -/* 80343FB0 3C 03 F8 FF */ addis r0, r3, 0xf8ff -/* 80343FB4 28 00 00 00 */ cmplwi r0, 0 -/* 80343FB8 40 82 00 14 */ bne lbl_80343FCC -/* 80343FBC 38 60 00 01 */ li r3, 1 -/* 80343FC0 38 80 00 00 */ li r4, 0 -/* 80343FC4 48 00 07 B1 */ bl __OSEnableBarnacle -/* 80343FC8 48 00 00 38 */ b lbl_80344000 -lbl_80343FCC: -/* 80343FCC 38 60 00 01 */ li r3, 1 -/* 80343FD0 38 80 00 00 */ li r4, 0 -/* 80343FD4 38 A1 00 08 */ addi r5, r1, 8 -/* 80343FD8 48 00 02 61 */ bl EXIGetID -/* 80343FDC 2C 03 00 00 */ cmpwi r3, 0 -/* 80343FE0 41 82 00 20 */ beq lbl_80344000 -/* 80343FE4 80 61 00 08 */ lwz r3, 8(r1) -/* 80343FE8 3C 03 F8 FF */ addis r0, r3, 0xf8ff -/* 80343FEC 28 00 00 00 */ cmplwi r0, 0 -/* 80343FF0 40 82 00 10 */ bne lbl_80344000 -/* 80343FF4 38 60 00 00 */ li r3, 0 -/* 80343FF8 38 80 00 02 */ li r4, 2 -/* 80343FFC 48 00 07 79 */ bl __OSEnableBarnacle -lbl_80344000: -/* 80344000 80 6D 84 40 */ lwz r3, __EXIVersion(r13) -/* 80344004 4B FF 68 71 */ bl OSRegisterVersion -/* 80344008 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8034400C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80344010 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80344014 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80344018 83 81 00 10 */ lwz r28, 0x10(r1) -/* 8034401C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80344020 7C 08 03 A6 */ mtlr r0 -/* 80344024 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIIntrruptHandler.s b/asm/exi/EXIBios/EXIIntrruptHandler.s deleted file mode 100644 index b57ca08b92d..00000000000 --- a/asm/exi/EXIBios/EXIIntrruptHandler.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_80343AA4: -/* 80343AA4 7C 08 02 A6 */ mflr r0 -/* 80343AA8 90 01 00 04 */ stw r0, 4(r1) -/* 80343AAC 94 21 FD 08 */ stwu r1, -0x2f8(r1) -/* 80343AB0 93 E1 02 F4 */ stw r31, 0x2f4(r1) -/* 80343AB4 93 C1 02 F0 */ stw r30, 0x2f0(r1) -/* 80343AB8 93 A1 02 EC */ stw r29, 0x2ec(r1) -/* 80343ABC 3B E4 00 00 */ addi r31, r4, 0 -/* 80343AC0 7C 63 07 34 */ extsh r3, r3 -/* 80343AC4 38 03 FF F7 */ addi r0, r3, -9 -/* 80343AC8 3C 60 55 55 */ lis r3, 0x5555 /* 0x55555556@ha */ -/* 80343ACC 38 63 55 56 */ addi r3, r3, 0x5556 /* 0x55555556@l */ -/* 80343AD0 7C 63 00 96 */ mulhw r3, r3, r0 -/* 80343AD4 54 60 0F FE */ srwi r0, r3, 0x1f -/* 80343AD8 7F C3 02 14 */ add r30, r3, r0 -/* 80343ADC 1C 1E 00 14 */ mulli r0, r30, 0x14 -/* 80343AE0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 80343AE4 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */ -/* 80343AE8 7C 63 02 14 */ add r3, r3, r0 -/* 80343AEC 80 03 00 00 */ lwz r0, 0(r3) -/* 80343AF0 70 00 07 F5 */ andi. r0, r0, 0x7f5 -/* 80343AF4 60 00 00 02 */ ori r0, r0, 2 -/* 80343AF8 90 03 00 00 */ stw r0, 0(r3) -/* 80343AFC 57 C4 30 32 */ slwi r4, r30, 6 -/* 80343B00 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 80343B04 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80343B08 7C 60 22 14 */ add r3, r0, r4 -/* 80343B0C 80 03 00 00 */ lwz r0, 0(r3) -/* 80343B10 7C 1D 03 78 */ mr r29, r0 -/* 80343B14 28 00 00 00 */ cmplwi r0, 0 -/* 80343B18 41 82 00 38 */ beq lbl_80343B50 -/* 80343B1C 38 61 00 18 */ addi r3, r1, 0x18 -/* 80343B20 4B FF 84 E1 */ bl OSClearContext -/* 80343B24 38 61 00 18 */ addi r3, r1, 0x18 -/* 80343B28 4B FF 83 11 */ bl OSSetCurrentContext -/* 80343B2C 38 7E 00 00 */ addi r3, r30, 0 -/* 80343B30 38 9F 00 00 */ addi r4, r31, 0 -/* 80343B34 39 9D 00 00 */ addi r12, r29, 0 -/* 80343B38 7D 88 03 A6 */ mtlr r12 -/* 80343B3C 4E 80 00 21 */ blrl -/* 80343B40 38 61 00 18 */ addi r3, r1, 0x18 -/* 80343B44 4B FF 84 BD */ bl OSClearContext -/* 80343B48 7F E3 FB 78 */ mr r3, r31 -/* 80343B4C 4B FF 82 ED */ bl OSSetCurrentContext -lbl_80343B50: -/* 80343B50 80 01 02 FC */ lwz r0, 0x2fc(r1) -/* 80343B54 83 E1 02 F4 */ lwz r31, 0x2f4(r1) -/* 80343B58 83 C1 02 F0 */ lwz r30, 0x2f0(r1) -/* 80343B5C 83 A1 02 EC */ lwz r29, 0x2ec(r1) -/* 80343B60 38 21 02 F8 */ addi r1, r1, 0x2f8 -/* 80343B64 7C 08 03 A6 */ mtlr r0 -/* 80343B68 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXILock.s b/asm/exi/EXIBios/EXILock.s deleted file mode 100644 index cfd36adf048..00000000000 --- a/asm/exi/EXIBios/EXILock.s +++ /dev/null @@ -1,68 +0,0 @@ -lbl_80344028: -/* 80344028 7C 08 02 A6 */ mflr r0 -/* 8034402C 90 01 00 04 */ stw r0, 4(r1) -/* 80344030 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80344034 BF 61 00 1C */ stmw r27, 0x1c(r1) -/* 80344038 3B 63 00 00 */ addi r27, r3, 0 -/* 8034403C 3B E4 00 00 */ addi r31, r4, 0 -/* 80344040 3B 85 00 00 */ addi r28, r5, 0 -/* 80344044 54 64 30 32 */ slwi r4, r3, 6 -/* 80344048 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 8034404C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80344050 7F C0 22 14 */ add r30, r0, r4 -/* 80344054 4B FF 96 A1 */ bl OSDisableInterrupts -/* 80344058 7C 7D 1B 78 */ mr r29, r3 -/* 8034405C 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 80344060 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 80344064 41 82 00 7C */ beq lbl_803440E0 -/* 80344068 28 1C 00 00 */ cmplwi r28, 0 -/* 8034406C 41 82 00 64 */ beq lbl_803440D0 -/* 80344070 7F C3 F3 78 */ mr r3, r30 -/* 80344074 80 9E 00 24 */ lwz r4, 0x24(r30) -/* 80344078 7C 89 03 A6 */ mtctr r4 -/* 8034407C 2C 04 00 00 */ cmpwi r4, 0 -/* 80344080 40 81 00 28 */ ble lbl_803440A8 -lbl_80344084: -/* 80344084 80 03 00 28 */ lwz r0, 0x28(r3) -/* 80344088 7C 00 F8 40 */ cmplw r0, r31 -/* 8034408C 40 82 00 14 */ bne lbl_803440A0 -/* 80344090 7F A3 EB 78 */ mr r3, r29 -/* 80344094 4B FF 96 89 */ bl OSRestoreInterrupts -/* 80344098 38 60 00 00 */ li r3, 0 -/* 8034409C 48 00 00 6C */ b lbl_80344108 -lbl_803440A0: -/* 803440A0 38 63 00 08 */ addi r3, r3, 8 -/* 803440A4 42 00 FF E0 */ bdnz lbl_80344084 -lbl_803440A8: -/* 803440A8 54 80 18 38 */ slwi r0, r4, 3 -/* 803440AC 7C 7E 02 14 */ add r3, r30, r0 -/* 803440B0 93 83 00 2C */ stw r28, 0x2c(r3) -/* 803440B4 80 1E 00 24 */ lwz r0, 0x24(r30) -/* 803440B8 54 00 18 38 */ slwi r0, r0, 3 -/* 803440BC 7C 7E 02 14 */ add r3, r30, r0 -/* 803440C0 93 E3 00 28 */ stw r31, 0x28(r3) -/* 803440C4 80 7E 00 24 */ lwz r3, 0x24(r30) -/* 803440C8 38 03 00 01 */ addi r0, r3, 1 -/* 803440CC 90 1E 00 24 */ stw r0, 0x24(r30) -lbl_803440D0: -/* 803440D0 7F A3 EB 78 */ mr r3, r29 -/* 803440D4 4B FF 96 49 */ bl OSRestoreInterrupts -/* 803440D8 38 60 00 00 */ li r3, 0 -/* 803440DC 48 00 00 2C */ b lbl_80344108 -lbl_803440E0: -/* 803440E0 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 803440E4 60 00 00 10 */ ori r0, r0, 0x10 -/* 803440E8 90 1E 00 0C */ stw r0, 0xc(r30) -/* 803440EC 93 FE 00 18 */ stw r31, 0x18(r30) -/* 803440F0 38 7B 00 00 */ addi r3, r27, 0 -/* 803440F4 38 9E 00 00 */ addi r4, r30, 0 -/* 803440F8 4B FF EB 15 */ bl SetExiInterruptMask -/* 803440FC 7F A3 EB 78 */ mr r3, r29 -/* 80344100 4B FF 96 1D */ bl OSRestoreInterrupts -/* 80344104 38 60 00 01 */ li r3, 1 -lbl_80344108: -/* 80344108 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8034410C BB 61 00 1C */ lmw r27, 0x1c(r1) -/* 80344110 38 21 00 30 */ addi r1, r1, 0x30 -/* 80344114 7C 08 03 A6 */ mtlr r0 -/* 80344118 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIProbe.s b/asm/exi/EXIBios/EXIProbe.s deleted file mode 100644 index ae56ef4f4da..00000000000 --- a/asm/exi/EXIBios/EXIProbe.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_8034356C: -/* 8034356C 7C 08 02 A6 */ mflr r0 -/* 80343570 90 01 00 04 */ stw r0, 4(r1) -/* 80343574 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80343578 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034357C 93 C1 00 10 */ stw r30, 0x10(r1) -/* 80343580 3B C3 00 00 */ addi r30, r3, 0 -/* 80343584 54 64 30 32 */ slwi r4, r3, 6 -/* 80343588 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 8034358C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80343590 7F E0 22 14 */ add r31, r0, r4 -/* 80343594 38 7E 00 00 */ addi r3, r30, 0 -/* 80343598 4B FF FE 61 */ bl __EXIProbe -/* 8034359C 2C 03 00 00 */ cmpwi r3, 0 -/* 803435A0 41 82 00 34 */ beq lbl_803435D4 -/* 803435A4 80 1F 00 20 */ lwz r0, 0x20(r31) -/* 803435A8 2C 00 00 00 */ cmpwi r0, 0 -/* 803435AC 40 82 00 28 */ bne lbl_803435D4 -/* 803435B0 38 7E 00 00 */ addi r3, r30, 0 -/* 803435B4 38 80 00 00 */ li r4, 0 -/* 803435B8 38 A1 00 0C */ addi r5, r1, 0xc -/* 803435BC 48 00 0C 7D */ bl EXIGetID -/* 803435C0 2C 03 00 00 */ cmpwi r3, 0 -/* 803435C4 41 82 00 0C */ beq lbl_803435D0 -/* 803435C8 38 60 00 01 */ li r3, 1 -/* 803435CC 48 00 00 08 */ b lbl_803435D4 -lbl_803435D0: -/* 803435D0 38 60 00 00 */ li r3, 0 -lbl_803435D4: -/* 803435D4 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 803435D8 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 803435DC 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 803435E0 38 21 00 18 */ addi r1, r1, 0x18 -/* 803435E4 7C 08 03 A6 */ mtlr r0 -/* 803435E8 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIProbeEx.s b/asm/exi/EXIBios/EXIProbeEx.s deleted file mode 100644 index 0bd9709774a..00000000000 --- a/asm/exi/EXIBios/EXIProbeEx.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_803435EC: -/* 803435EC 7C 08 02 A6 */ mflr r0 -/* 803435F0 90 01 00 04 */ stw r0, 4(r1) -/* 803435F4 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 803435F8 93 E1 00 14 */ stw r31, 0x14(r1) -/* 803435FC 93 C1 00 10 */ stw r30, 0x10(r1) -/* 80343600 3B C3 00 00 */ addi r30, r3, 0 -/* 80343604 54 64 30 32 */ slwi r4, r3, 6 -/* 80343608 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 8034360C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80343610 7F E0 22 14 */ add r31, r0, r4 -/* 80343614 38 7E 00 00 */ addi r3, r30, 0 -/* 80343618 4B FF FD E1 */ bl __EXIProbe -/* 8034361C 2C 03 00 00 */ cmpwi r3, 0 -/* 80343620 41 82 00 34 */ beq lbl_80343654 -/* 80343624 80 1F 00 20 */ lwz r0, 0x20(r31) -/* 80343628 2C 00 00 00 */ cmpwi r0, 0 -/* 8034362C 40 82 00 28 */ bne lbl_80343654 -/* 80343630 38 7E 00 00 */ addi r3, r30, 0 -/* 80343634 38 80 00 00 */ li r4, 0 -/* 80343638 38 A1 00 0C */ addi r5, r1, 0xc -/* 8034363C 48 00 0B FD */ bl EXIGetID -/* 80343640 2C 03 00 00 */ cmpwi r3, 0 -/* 80343644 41 82 00 0C */ beq lbl_80343650 -/* 80343648 38 60 00 01 */ li r3, 1 -/* 8034364C 48 00 00 08 */ b lbl_80343654 -lbl_80343650: -/* 80343650 38 60 00 00 */ li r3, 0 -lbl_80343654: -/* 80343654 2C 03 00 00 */ cmpwi r3, 0 -/* 80343658 41 82 00 0C */ beq lbl_80343664 -/* 8034365C 38 60 00 01 */ li r3, 1 -/* 80343660 48 00 00 28 */ b lbl_80343688 -lbl_80343664: -/* 80343664 57 C0 10 3A */ slwi r0, r30, 2 -/* 80343668 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C0@ha */ -/* 8034366C 38 63 30 C0 */ addi r3, r3, 0x30C0 /* 0x800030C0@l */ -/* 80343670 7C 03 00 2E */ lwzx r0, r3, r0 -/* 80343674 2C 00 00 00 */ cmpwi r0, 0 -/* 80343678 41 82 00 0C */ beq lbl_80343684 -/* 8034367C 38 60 00 00 */ li r3, 0 -/* 80343680 48 00 00 08 */ b lbl_80343688 -lbl_80343684: -/* 80343684 38 60 FF FF */ li r3, -1 -lbl_80343688: -/* 80343688 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034368C 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80343690 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 80343694 38 21 00 18 */ addi r1, r1, 0x18 -/* 80343698 7C 08 03 A6 */ mtlr r0 -/* 8034369C 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXISelect.s b/asm/exi/EXIBios/EXISelect.s deleted file mode 100644 index 283ee1a3d67..00000000000 --- a/asm/exi/EXIBios/EXISelect.s +++ /dev/null @@ -1,83 +0,0 @@ -lbl_80343868: -/* 80343868 7C 08 02 A6 */ mflr r0 -/* 8034386C 90 01 00 04 */ stw r0, 4(r1) -/* 80343870 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80343874 BF 61 00 1C */ stmw r27, 0x1c(r1) -/* 80343878 3B 63 00 00 */ addi r27, r3, 0 -/* 8034387C 3B 84 00 00 */ addi r28, r4, 0 -/* 80343880 3B A5 00 00 */ addi r29, r5, 0 -/* 80343884 54 64 30 32 */ slwi r4, r3, 6 -/* 80343888 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 8034388C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80343890 7F E0 22 14 */ add r31, r0, r4 -/* 80343894 4B FF 9E 61 */ bl OSDisableInterrupts -/* 80343898 7C 7E 1B 78 */ mr r30, r3 -/* 8034389C 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 803438A0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 803438A4 40 82 00 48 */ bne lbl_803438EC -/* 803438A8 2C 1B 00 02 */ cmpwi r27, 2 -/* 803438AC 41 82 00 50 */ beq lbl_803438FC -/* 803438B0 28 1C 00 00 */ cmplwi r28, 0 -/* 803438B4 40 82 00 20 */ bne lbl_803438D4 -/* 803438B8 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 803438BC 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 803438C0 40 82 00 14 */ bne lbl_803438D4 -/* 803438C4 7F 63 DB 78 */ mr r3, r27 -/* 803438C8 4B FF FB 31 */ bl __EXIProbe -/* 803438CC 2C 03 00 00 */ cmpwi r3, 0 -/* 803438D0 41 82 00 1C */ beq lbl_803438EC -lbl_803438D4: -/* 803438D4 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 803438D8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 803438DC 41 82 00 10 */ beq lbl_803438EC -/* 803438E0 80 1F 00 18 */ lwz r0, 0x18(r31) -/* 803438E4 7C 00 E0 40 */ cmplw r0, r28 -/* 803438E8 41 82 00 14 */ beq lbl_803438FC -lbl_803438EC: -/* 803438EC 7F C3 F3 78 */ mr r3, r30 -/* 803438F0 4B FF 9E 2D */ bl OSRestoreInterrupts -/* 803438F4 38 60 00 00 */ li r3, 0 -/* 803438F8 48 00 00 88 */ b lbl_80343980 -lbl_803438FC: -/* 803438FC 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343900 60 00 00 04 */ ori r0, r0, 4 -/* 80343904 90 1F 00 0C */ stw r0, 0xc(r31) -/* 80343908 1C 1B 00 14 */ mulli r0, r27, 0x14 -/* 8034390C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 80343910 38 83 68 00 */ addi r4, r3, 0x6800 /* 0xCC006800@l */ -/* 80343914 7C 84 02 14 */ add r4, r4, r0 -/* 80343918 80 A4 00 00 */ lwz r5, 0(r4) -/* 8034391C 70 A5 04 05 */ andi. r5, r5, 0x405 -/* 80343920 38 00 00 01 */ li r0, 1 -/* 80343924 7C 00 E0 30 */ slw r0, r0, r28 -/* 80343928 54 03 38 30 */ slwi r3, r0, 7 -/* 8034392C 57 A0 20 36 */ slwi r0, r29, 4 -/* 80343930 7C 60 03 78 */ or r0, r3, r0 -/* 80343934 7C A5 03 78 */ or r5, r5, r0 -/* 80343938 90 A4 00 00 */ stw r5, 0(r4) -/* 8034393C 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343940 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80343944 41 82 00 30 */ beq lbl_80343974 -/* 80343948 2C 1B 00 01 */ cmpwi r27, 1 -/* 8034394C 41 82 00 20 */ beq lbl_8034396C -/* 80343950 40 80 00 24 */ bge lbl_80343974 -/* 80343954 2C 1B 00 00 */ cmpwi r27, 0 -/* 80343958 40 80 00 08 */ bge lbl_80343960 -/* 8034395C 48 00 00 18 */ b lbl_80343974 -lbl_80343960: -/* 80343960 3C 60 00 10 */ lis r3, 0x10 -/* 80343964 4B FF A1 59 */ bl __OSMaskInterrupts -/* 80343968 48 00 00 0C */ b lbl_80343974 -lbl_8034396C: -/* 8034396C 3C 60 00 02 */ lis r3, 2 -/* 80343970 4B FF A1 4D */ bl __OSMaskInterrupts -lbl_80343974: -/* 80343974 7F C3 F3 78 */ mr r3, r30 -/* 80343978 4B FF 9D A5 */ bl OSRestoreInterrupts -/* 8034397C 38 60 00 01 */ li r3, 1 -lbl_80343980: -/* 80343980 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80343984 BB 61 00 1C */ lmw r27, 0x1c(r1) -/* 80343988 38 21 00 30 */ addi r1, r1, 0x30 -/* 8034398C 7C 08 03 A6 */ mtlr r0 -/* 80343990 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXISetExiCallback.s b/asm/exi/EXIBios/EXISetExiCallback.s deleted file mode 100644 index 7c442da9854..00000000000 --- a/asm/exi/EXIBios/EXISetExiCallback.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_8034337C: -/* 8034337C 7C 08 02 A6 */ mflr r0 -/* 80343380 90 01 00 04 */ stw r0, 4(r1) -/* 80343384 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80343388 BF 41 00 10 */ stmw r26, 0x10(r1) -/* 8034338C 3B 43 00 00 */ addi r26, r3, 0 -/* 80343390 3B 64 00 00 */ addi r27, r4, 0 -/* 80343394 54 60 30 32 */ slwi r0, r3, 6 -/* 80343398 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 8034339C 3B E3 C5 70 */ addi r31, r3, Ecb@l /* 0x8044C570@l */ -/* 803433A0 7F DF 02 14 */ add r30, r31, r0 -/* 803433A4 4B FF A3 51 */ bl OSDisableInterrupts -/* 803433A8 7C 7C 1B 78 */ mr r28, r3 -/* 803433AC 83 BE 00 00 */ lwz r29, 0(r30) -/* 803433B0 93 7E 00 00 */ stw r27, 0(r30) -/* 803433B4 2C 1A 00 02 */ cmpwi r26, 2 -/* 803433B8 41 82 00 14 */ beq lbl_803433CC -/* 803433BC 38 7A 00 00 */ addi r3, r26, 0 -/* 803433C0 38 9E 00 00 */ addi r4, r30, 0 -/* 803433C4 4B FF F8 49 */ bl SetExiInterruptMask -/* 803433C8 48 00 00 10 */ b lbl_803433D8 -lbl_803433CC: -/* 803433CC 38 60 00 00 */ li r3, 0 -/* 803433D0 38 9F 00 00 */ addi r4, r31, 0 -/* 803433D4 4B FF F8 39 */ bl SetExiInterruptMask -lbl_803433D8: -/* 803433D8 7F 83 E3 78 */ mr r3, r28 -/* 803433DC 4B FF A3 41 */ bl OSRestoreInterrupts -/* 803433E0 7F A3 EB 78 */ mr r3, r29 -/* 803433E4 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803433E8 BB 41 00 10 */ lmw r26, 0x10(r1) -/* 803433EC 38 21 00 28 */ addi r1, r1, 0x28 -/* 803433F0 7C 08 03 A6 */ mtlr r0 -/* 803433F4 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXISync.s b/asm/exi/EXIBios/EXISync.s deleted file mode 100644 index 42b5a99a75d..00000000000 --- a/asm/exi/EXIBios/EXISync.s +++ /dev/null @@ -1,159 +0,0 @@ -lbl_803430E8: -/* 803430E8 7C 08 02 A6 */ mflr r0 -/* 803430EC 90 01 00 04 */ stw r0, 4(r1) -/* 803430F0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 803430F4 BF 61 00 1C */ stmw r27, 0x1c(r1) -/* 803430F8 54 65 30 32 */ slwi r5, r3, 6 -/* 803430FC 3C 80 80 45 */ lis r4, Ecb@ha /* 0x8044C570@ha */ -/* 80343100 38 04 C5 70 */ addi r0, r4, Ecb@l /* 0x8044C570@l */ -/* 80343104 7F E0 2A 14 */ add r31, r0, r5 -/* 80343108 3B 80 00 00 */ li r28, 0 -/* 8034310C 1F C3 00 14 */ mulli r30, r3, 0x14 -/* 80343110 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 80343114 3B A3 68 00 */ addi r29, r3, 0x6800 /* 0xCC006800@l */ -/* 80343118 7F BD F2 14 */ add r29, r29, r30 -/* 8034311C 48 00 01 F4 */ b lbl_80343310 -lbl_80343120: -/* 80343120 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 80343124 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80343128 40 82 01 E8 */ bne lbl_80343310 -/* 8034312C 4B FF A5 C9 */ bl OSDisableInterrupts -/* 80343130 7C 7B 1B 78 */ mr r27, r3 -/* 80343134 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343138 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 8034313C 41 82 01 C8 */ beq lbl_80343304 -/* 80343140 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343144 54 00 07 BF */ clrlwi. r0, r0, 0x1e -/* 80343148 41 82 01 34 */ beq lbl_8034327C -/* 8034314C 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343150 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e -/* 80343154 41 82 01 1C */ beq lbl_80343270 -/* 80343158 80 7F 00 10 */ lwz r3, 0x10(r31) -/* 8034315C 2C 03 00 00 */ cmpwi r3, 0 -/* 80343160 41 82 01 10 */ beq lbl_80343270 -/* 80343164 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 80343168 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006800@ha */ -/* 8034316C 38 04 68 00 */ addi r0, r4, 0x6800 /* 0xCC006800@l */ -/* 80343170 7C 80 F2 14 */ add r4, r0, r30 -/* 80343174 80 04 00 10 */ lwz r0, 0x10(r4) -/* 80343178 38 80 00 00 */ li r4, 0 -/* 8034317C 40 81 00 F4 */ ble lbl_80343270 -/* 80343180 38 E3 FF F8 */ addi r7, r3, -8 -/* 80343184 2C 03 00 08 */ cmpwi r3, 8 -/* 80343188 40 81 00 BC */ ble lbl_80343244 -/* 8034318C 38 C7 00 07 */ addi r6, r7, 7 -/* 80343190 54 C6 E8 FE */ srwi r6, r6, 3 -/* 80343194 7C C9 03 A6 */ mtctr r6 -/* 80343198 2C 07 00 00 */ cmpwi r7, 0 -/* 8034319C 40 81 00 A8 */ ble lbl_80343244 -lbl_803431A0: -/* 803431A0 20 C4 00 03 */ subfic r6, r4, 3 -/* 803431A4 54 C6 18 38 */ slwi r6, r6, 3 -/* 803431A8 7C 06 34 30 */ srw r6, r0, r6 -/* 803431AC 98 C5 00 00 */ stb r6, 0(r5) -/* 803431B0 38 C4 00 01 */ addi r6, r4, 1 -/* 803431B4 20 C6 00 03 */ subfic r6, r6, 3 -/* 803431B8 54 C6 18 38 */ slwi r6, r6, 3 -/* 803431BC 7C 06 34 30 */ srw r6, r0, r6 -/* 803431C0 98 C5 00 01 */ stb r6, 1(r5) -/* 803431C4 38 C4 00 02 */ addi r6, r4, 2 -/* 803431C8 20 C6 00 03 */ subfic r6, r6, 3 -/* 803431CC 54 C6 18 38 */ slwi r6, r6, 3 -/* 803431D0 7C 06 34 30 */ srw r6, r0, r6 -/* 803431D4 98 C5 00 02 */ stb r6, 2(r5) -/* 803431D8 7C C4 00 D0 */ neg r6, r4 -/* 803431DC 54 C6 18 38 */ slwi r6, r6, 3 -/* 803431E0 7C 06 34 30 */ srw r6, r0, r6 -/* 803431E4 98 C5 00 03 */ stb r6, 3(r5) -/* 803431E8 38 C4 00 04 */ addi r6, r4, 4 -/* 803431EC 20 C6 00 03 */ subfic r6, r6, 3 -/* 803431F0 54 C6 18 38 */ slwi r6, r6, 3 -/* 803431F4 7C 06 34 30 */ srw r6, r0, r6 -/* 803431F8 98 C5 00 04 */ stb r6, 4(r5) -/* 803431FC 38 C4 00 05 */ addi r6, r4, 5 -/* 80343200 20 C6 00 03 */ subfic r6, r6, 3 -/* 80343204 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343208 7C 06 34 30 */ srw r6, r0, r6 -/* 8034320C 98 C5 00 05 */ stb r6, 5(r5) -/* 80343210 38 C4 00 06 */ addi r6, r4, 6 -/* 80343214 20 C6 00 03 */ subfic r6, r6, 3 -/* 80343218 54 C6 18 38 */ slwi r6, r6, 3 -/* 8034321C 7C 06 34 30 */ srw r6, r0, r6 -/* 80343220 98 C5 00 06 */ stb r6, 6(r5) -/* 80343224 38 C4 00 07 */ addi r6, r4, 7 -/* 80343228 20 C6 00 03 */ subfic r6, r6, 3 -/* 8034322C 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343230 7C 06 34 30 */ srw r6, r0, r6 -/* 80343234 98 C5 00 07 */ stb r6, 7(r5) -/* 80343238 38 A5 00 08 */ addi r5, r5, 8 -/* 8034323C 38 84 00 08 */ addi r4, r4, 8 -/* 80343240 42 00 FF 60 */ bdnz lbl_803431A0 -lbl_80343244: -/* 80343244 7C C4 18 50 */ subf r6, r4, r3 -/* 80343248 7C C9 03 A6 */ mtctr r6 -/* 8034324C 7C 04 18 00 */ cmpw r4, r3 -/* 80343250 40 80 00 20 */ bge lbl_80343270 -lbl_80343254: -/* 80343254 20 64 00 03 */ subfic r3, r4, 3 -/* 80343258 54 63 18 38 */ slwi r3, r3, 3 -/* 8034325C 7C 03 1C 30 */ srw r3, r0, r3 -/* 80343260 98 65 00 00 */ stb r3, 0(r5) -/* 80343264 38 A5 00 01 */ addi r5, r5, 1 -/* 80343268 38 84 00 01 */ addi r4, r4, 1 -/* 8034326C 42 00 FF E8 */ bdnz lbl_80343254 -lbl_80343270: -/* 80343270 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343274 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d -/* 80343278 90 1F 00 0C */ stw r0, 0xc(r31) -lbl_8034327C: -/* 8034327C 4B FF 75 E5 */ bl __OSGetDIConfig -/* 80343280 28 03 00 FF */ cmplwi r3, 0xff -/* 80343284 40 82 00 7C */ bne lbl_80343300 -/* 80343288 4B FF 6C 75 */ bl OSGetConsoleType -/* 8034328C 54 63 00 06 */ rlwinm r3, r3, 0, 0, 3 -/* 80343290 3C 03 E0 00 */ addis r0, r3, 0xe000 -/* 80343294 28 00 00 00 */ cmplwi r0, 0 -/* 80343298 41 82 00 68 */ beq lbl_80343300 -/* 8034329C 80 1F 00 10 */ lwz r0, 0x10(r31) -/* 803432A0 2C 00 00 04 */ cmpwi r0, 4 -/* 803432A4 40 82 00 5C */ bne lbl_80343300 -/* 803432A8 80 1D 00 00 */ lwz r0, 0(r29) -/* 803432AC 54 00 06 77 */ rlwinm. r0, r0, 0, 0x19, 0x1b -/* 803432B0 40 82 00 50 */ bne lbl_80343300 -/* 803432B4 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 803432B8 38 03 68 00 */ addi r0, r3, 0x6800 /* 0xCC006800@l */ -/* 803432BC 7C 80 F2 14 */ add r4, r0, r30 -/* 803432C0 84 64 00 10 */ lwzu r3, 0x10(r4) -/* 803432C4 3C 03 FE FF */ addis r0, r3, 0xfeff -/* 803432C8 28 00 00 00 */ cmplwi r0, 0 -/* 803432CC 41 82 00 24 */ beq lbl_803432F0 -/* 803432D0 80 64 00 00 */ lwz r3, 0(r4) -/* 803432D4 3C 03 FA F9 */ addis r0, r3, 0xfaf9 -/* 803432D8 28 00 00 00 */ cmplwi r0, 0 -/* 803432DC 41 82 00 14 */ beq lbl_803432F0 -/* 803432E0 80 64 00 00 */ lwz r3, 0(r4) -/* 803432E4 3C 03 FB DE */ addis r0, r3, 0xfbde -/* 803432E8 28 00 00 01 */ cmplwi r0, 1 -/* 803432EC 40 82 00 14 */ bne lbl_80343300 -lbl_803432F0: -/* 803432F0 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030E6@ha */ -/* 803432F4 A0 03 30 E6 */ lhz r0, 0x30E6(r3) /* 0x800030E6@l */ -/* 803432F8 28 00 82 00 */ cmplwi r0, 0x8200 -/* 803432FC 40 82 00 08 */ bne lbl_80343304 -lbl_80343300: -/* 80343300 3B 80 00 01 */ li r28, 1 -lbl_80343304: -/* 80343304 7F 63 DB 78 */ mr r3, r27 -/* 80343308 4B FF A4 15 */ bl OSRestoreInterrupts -/* 8034330C 48 00 00 10 */ b lbl_8034331C -lbl_80343310: -/* 80343310 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343314 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 80343318 40 82 FE 08 */ bne lbl_80343120 -lbl_8034331C: -/* 8034331C 7F 83 E3 78 */ mr r3, r28 -/* 80343320 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80343324 BB 61 00 1C */ lmw r27, 0x1c(r1) -/* 80343328 38 21 00 30 */ addi r1, r1, 0x30 -/* 8034332C 7C 08 03 A6 */ mtlr r0 -/* 80343330 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXIUnlock.s b/asm/exi/EXIBios/EXIUnlock.s deleted file mode 100644 index 9a0f6b9907c..00000000000 --- a/asm/exi/EXIBios/EXIUnlock.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_8034411C: -/* 8034411C 7C 08 02 A6 */ mflr r0 -/* 80344120 90 01 00 04 */ stw r0, 4(r1) -/* 80344124 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80344128 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8034412C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80344130 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80344134 93 81 00 10 */ stw r28, 0x10(r1) -/* 80344138 3B 83 00 00 */ addi r28, r3, 0 -/* 8034413C 54 64 30 32 */ slwi r4, r3, 6 -/* 80344140 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 80344144 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80344148 7F E0 22 14 */ add r31, r0, r4 -/* 8034414C 4B FF 95 A9 */ bl OSDisableInterrupts -/* 80344150 7C 7E 1B 78 */ mr r30, r3 -/* 80344154 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80344158 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 8034415C 40 82 00 14 */ bne lbl_80344170 -/* 80344160 7F C3 F3 78 */ mr r3, r30 -/* 80344164 4B FF 95 B9 */ bl OSRestoreInterrupts -/* 80344168 38 60 00 00 */ li r3, 0 -/* 8034416C 48 00 00 6C */ b lbl_803441D8 -lbl_80344170: -/* 80344170 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80344174 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a -/* 80344178 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8034417C 38 7C 00 00 */ addi r3, r28, 0 -/* 80344180 38 9F 00 00 */ addi r4, r31, 0 -/* 80344184 4B FF EA 89 */ bl SetExiInterruptMask -/* 80344188 80 7F 00 24 */ lwz r3, 0x24(r31) -/* 8034418C 2C 03 00 00 */ cmpwi r3, 0 -/* 80344190 40 81 00 3C */ ble lbl_803441CC -/* 80344194 83 BF 00 2C */ lwz r29, 0x2c(r31) -/* 80344198 34 03 FF FF */ addic. r0, r3, -1 -/* 8034419C 90 1F 00 24 */ stw r0, 0x24(r31) -/* 803441A0 40 81 00 18 */ ble lbl_803441B8 -/* 803441A4 38 7F 00 28 */ addi r3, r31, 0x28 -/* 803441A8 38 9F 00 30 */ addi r4, r31, 0x30 -/* 803441AC 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 803441B0 54 05 18 38 */ slwi r5, r0, 3 -/* 803441B4 48 02 1F 7D */ bl memmove -lbl_803441B8: -/* 803441B8 38 7C 00 00 */ addi r3, r28, 0 -/* 803441BC 38 80 00 00 */ li r4, 0 -/* 803441C0 39 9D 00 00 */ addi r12, r29, 0 -/* 803441C4 7D 88 03 A6 */ mtlr r12 -/* 803441C8 4E 80 00 21 */ blrl -lbl_803441CC: -/* 803441CC 7F C3 F3 78 */ mr r3, r30 -/* 803441D0 4B FF 95 4D */ bl OSRestoreInterrupts -/* 803441D4 38 60 00 01 */ li r3, 1 -lbl_803441D8: -/* 803441D8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803441DC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803441E0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803441E4 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 803441E8 83 81 00 10 */ lwz r28, 0x10(r1) -/* 803441EC 38 21 00 20 */ addi r1, r1, 0x20 -/* 803441F0 7C 08 03 A6 */ mtlr r0 -/* 803441F4 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/EXTIntrruptHandler.s b/asm/exi/EXIBios/EXTIntrruptHandler.s deleted file mode 100644 index ea35a8351a5..00000000000 --- a/asm/exi/EXIBios/EXTIntrruptHandler.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_80343D84: -/* 80343D84 7C 08 02 A6 */ mflr r0 -/* 80343D88 90 01 00 04 */ stw r0, 4(r1) -/* 80343D8C 94 21 FD 18 */ stwu r1, -0x2e8(r1) -/* 80343D90 93 E1 02 E4 */ stw r31, 0x2e4(r1) -/* 80343D94 93 C1 02 E0 */ stw r30, 0x2e0(r1) -/* 80343D98 93 A1 02 DC */ stw r29, 0x2dc(r1) -/* 80343D9C 93 81 02 D8 */ stw r28, 0x2d8(r1) -/* 80343DA0 3B E4 00 00 */ addi r31, r4, 0 -/* 80343DA4 7C 63 07 34 */ extsh r3, r3 -/* 80343DA8 38 03 FF F5 */ addi r0, r3, -11 -/* 80343DAC 3C 60 55 55 */ lis r3, 0x5555 /* 0x55555556@ha */ -/* 80343DB0 38 63 55 56 */ addi r3, r3, 0x5556 /* 0x55555556@l */ -/* 80343DB4 7C 63 00 96 */ mulhw r3, r3, r0 -/* 80343DB8 54 60 0F FE */ srwi r0, r3, 0x1f -/* 80343DBC 7F C3 02 14 */ add r30, r3, r0 -/* 80343DC0 3C 60 00 50 */ lis r3, 0x50 -/* 80343DC4 1C 1E 00 03 */ mulli r0, r30, 3 -/* 80343DC8 7C 63 04 30 */ srw r3, r3, r0 -/* 80343DCC 4B FF 9C F1 */ bl __OSMaskInterrupts -/* 80343DD0 57 C4 30 32 */ slwi r4, r30, 6 -/* 80343DD4 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 80343DD8 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80343DDC 7F A0 22 14 */ add r29, r0, r4 -/* 80343DE0 83 9D 00 08 */ lwz r28, 8(r29) -/* 80343DE4 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 80343DE8 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b -/* 80343DEC 90 1D 00 0C */ stw r0, 0xc(r29) -/* 80343DF0 28 1C 00 00 */ cmplwi r28, 0 -/* 80343DF4 41 82 00 40 */ beq lbl_80343E34 -/* 80343DF8 38 61 00 10 */ addi r3, r1, 0x10 -/* 80343DFC 4B FF 82 05 */ bl OSClearContext -/* 80343E00 38 61 00 10 */ addi r3, r1, 0x10 -/* 80343E04 4B FF 80 35 */ bl OSSetCurrentContext -/* 80343E08 38 00 00 00 */ li r0, 0 -/* 80343E0C 90 1D 00 08 */ stw r0, 8(r29) -/* 80343E10 38 7E 00 00 */ addi r3, r30, 0 -/* 80343E14 38 9F 00 00 */ addi r4, r31, 0 -/* 80343E18 39 9C 00 00 */ addi r12, r28, 0 -/* 80343E1C 7D 88 03 A6 */ mtlr r12 -/* 80343E20 4E 80 00 21 */ blrl -/* 80343E24 38 61 00 10 */ addi r3, r1, 0x10 -/* 80343E28 4B FF 81 D9 */ bl OSClearContext -/* 80343E2C 7F E3 FB 78 */ mr r3, r31 -/* 80343E30 4B FF 80 09 */ bl OSSetCurrentContext -lbl_80343E34: -/* 80343E34 80 01 02 EC */ lwz r0, 0x2ec(r1) -/* 80343E38 83 E1 02 E4 */ lwz r31, 0x2e4(r1) -/* 80343E3C 83 C1 02 E0 */ lwz r30, 0x2e0(r1) -/* 80343E40 83 A1 02 DC */ lwz r29, 0x2dc(r1) -/* 80343E44 83 81 02 D8 */ lwz r28, 0x2d8(r1) -/* 80343E48 38 21 02 E8 */ addi r1, r1, 0x2e8 -/* 80343E4C 7C 08 03 A6 */ mtlr r0 -/* 80343E50 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/SetExiInterruptMask.s b/asm/exi/EXIBios/SetExiInterruptMask.s deleted file mode 100644 index 59bf44cb29a..00000000000 --- a/asm/exi/EXIBios/SetExiInterruptMask.s +++ /dev/null @@ -1,74 +0,0 @@ -lbl_80342C0C: -/* 80342C0C 7C 08 02 A6 */ mflr r0 -/* 80342C10 90 01 00 04 */ stw r0, 4(r1) -/* 80342C14 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80342C18 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80342C1C 3B E4 00 00 */ addi r31, r4, 0 -/* 80342C20 3C 80 80 45 */ lis r4, Ecb@ha /* 0x8044C570@ha */ -/* 80342C24 38 84 C5 70 */ addi r4, r4, Ecb@l /* 0x8044C570@l */ -/* 80342C28 38 84 00 80 */ addi r4, r4, 0x80 -/* 80342C2C 2C 03 00 01 */ cmpwi r3, 1 -/* 80342C30 41 82 00 5C */ beq lbl_80342C8C -/* 80342C34 40 80 00 10 */ bge lbl_80342C44 -/* 80342C38 2C 03 00 00 */ cmpwi r3, 0 -/* 80342C3C 40 80 00 14 */ bge lbl_80342C50 -/* 80342C40 48 00 00 AC */ b lbl_80342CEC -lbl_80342C44: -/* 80342C44 2C 03 00 03 */ cmpwi r3, 3 -/* 80342C48 40 80 00 A4 */ bge lbl_80342CEC -/* 80342C4C 48 00 00 70 */ b lbl_80342CBC -lbl_80342C50: -/* 80342C50 80 1F 00 00 */ lwz r0, 0(r31) -/* 80342C54 28 00 00 00 */ cmplwi r0, 0 -/* 80342C58 40 82 00 10 */ bne lbl_80342C68 -/* 80342C5C 80 04 00 00 */ lwz r0, 0(r4) -/* 80342C60 28 00 00 00 */ cmplwi r0, 0 -/* 80342C64 41 82 00 10 */ beq lbl_80342C74 -lbl_80342C68: -/* 80342C68 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80342C6C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 80342C70 41 82 00 10 */ beq lbl_80342C80 -lbl_80342C74: -/* 80342C74 3C 60 00 41 */ lis r3, 0x41 -/* 80342C78 4B FF AE 45 */ bl __OSMaskInterrupts -/* 80342C7C 48 00 00 70 */ b lbl_80342CEC -lbl_80342C80: -/* 80342C80 3C 60 00 41 */ lis r3, 0x41 -/* 80342C84 4B FF AE C1 */ bl __OSUnmaskInterrupts -/* 80342C88 48 00 00 64 */ b lbl_80342CEC -lbl_80342C8C: -/* 80342C8C 80 1F 00 00 */ lwz r0, 0(r31) -/* 80342C90 28 00 00 00 */ cmplwi r0, 0 -/* 80342C94 41 82 00 10 */ beq lbl_80342CA4 -/* 80342C98 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80342C9C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 80342CA0 41 82 00 10 */ beq lbl_80342CB0 -lbl_80342CA4: -/* 80342CA4 3C 60 00 08 */ lis r3, 8 -/* 80342CA8 4B FF AE 15 */ bl __OSMaskInterrupts -/* 80342CAC 48 00 00 40 */ b lbl_80342CEC -lbl_80342CB0: -/* 80342CB0 3C 60 00 08 */ lis r3, 8 -/* 80342CB4 4B FF AE 91 */ bl __OSUnmaskInterrupts -/* 80342CB8 48 00 00 34 */ b lbl_80342CEC -lbl_80342CBC: -/* 80342CBC 38 60 00 19 */ li r3, 0x19 -/* 80342CC0 4B FF AA 9D */ bl __OSGetInterruptHandler -/* 80342CC4 28 03 00 00 */ cmplwi r3, 0 -/* 80342CC8 41 82 00 10 */ beq lbl_80342CD8 -/* 80342CCC 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80342CD0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 80342CD4 41 82 00 10 */ beq lbl_80342CE4 -lbl_80342CD8: -/* 80342CD8 38 60 00 40 */ li r3, 0x40 -/* 80342CDC 4B FF AD E1 */ bl __OSMaskInterrupts -/* 80342CE0 48 00 00 0C */ b lbl_80342CEC -lbl_80342CE4: -/* 80342CE4 38 60 00 40 */ li r3, 0x40 -/* 80342CE8 4B FF AE 5D */ bl __OSUnmaskInterrupts -lbl_80342CEC: -/* 80342CEC 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80342CF0 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80342CF4 38 21 00 18 */ addi r1, r1, 0x18 -/* 80342CF8 7C 08 03 A6 */ mtlr r0 -/* 80342CFC 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/TCIntrruptHandler.s b/asm/exi/EXIBios/TCIntrruptHandler.s deleted file mode 100644 index f9b882ccd11..00000000000 --- a/asm/exi/EXIBios/TCIntrruptHandler.s +++ /dev/null @@ -1,141 +0,0 @@ -lbl_80343B6C: -/* 80343B6C 7C 08 02 A6 */ mflr r0 -/* 80343B70 90 01 00 04 */ stw r0, 4(r1) -/* 80343B74 94 21 FD 08 */ stwu r1, -0x2f8(r1) -/* 80343B78 93 E1 02 F4 */ stw r31, 0x2f4(r1) -/* 80343B7C 93 C1 02 F0 */ stw r30, 0x2f0(r1) -/* 80343B80 93 A1 02 EC */ stw r29, 0x2ec(r1) -/* 80343B84 93 81 02 E8 */ stw r28, 0x2e8(r1) -/* 80343B88 3B 84 00 00 */ addi r28, r4, 0 -/* 80343B8C 7C 65 07 34 */ extsh r5, r3 -/* 80343B90 38 05 FF F6 */ addi r0, r5, -10 -/* 80343B94 3C 60 55 55 */ lis r3, 0x5555 /* 0x55555556@ha */ -/* 80343B98 38 63 55 56 */ addi r3, r3, 0x5556 /* 0x55555556@l */ -/* 80343B9C 7C 63 00 96 */ mulhw r3, r3, r0 -/* 80343BA0 54 60 0F FE */ srwi r0, r3, 0x1f -/* 80343BA4 7F C3 02 14 */ add r30, r3, r0 -/* 80343BA8 57 C4 30 32 */ slwi r4, r30, 6 -/* 80343BAC 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 80343BB0 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80343BB4 7F E0 22 14 */ add r31, r0, r4 -/* 80343BB8 3C 00 80 00 */ lis r0, 0x8000 -/* 80343BBC 7C 03 2C 30 */ srw r3, r0, r5 -/* 80343BC0 4B FF 9E FD */ bl __OSMaskInterrupts -/* 80343BC4 1C FE 00 14 */ mulli r7, r30, 0x14 -/* 80343BC8 3C C0 CC 00 */ lis r6, 0xCC00 /* 0xCC006800@ha */ -/* 80343BCC 38 66 68 00 */ addi r3, r6, 0x6800 /* 0xCC006800@l */ -/* 80343BD0 7C 63 3A 14 */ add r3, r3, r7 -/* 80343BD4 80 03 00 00 */ lwz r0, 0(r3) -/* 80343BD8 70 00 07 F5 */ andi. r0, r0, 0x7f5 -/* 80343BDC 60 00 00 08 */ ori r0, r0, 8 -/* 80343BE0 90 03 00 00 */ stw r0, 0(r3) -/* 80343BE4 80 1F 00 04 */ lwz r0, 4(r31) -/* 80343BE8 7C 1D 03 78 */ mr r29, r0 -/* 80343BEC 28 00 00 00 */ cmplwi r0, 0 -/* 80343BF0 41 82 01 74 */ beq lbl_80343D64 -/* 80343BF4 38 80 00 00 */ li r4, 0 -/* 80343BF8 90 9F 00 04 */ stw r4, 4(r31) -/* 80343BFC 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343C00 54 00 07 BF */ clrlwi. r0, r0, 0x1e -/* 80343C04 41 82 01 2C */ beq lbl_80343D30 -/* 80343C08 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343C0C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e -/* 80343C10 41 82 01 14 */ beq lbl_80343D24 -/* 80343C14 80 7F 00 10 */ lwz r3, 0x10(r31) -/* 80343C18 2C 03 00 00 */ cmpwi r3, 0 -/* 80343C1C 41 82 01 08 */ beq lbl_80343D24 -/* 80343C20 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 80343C24 38 06 68 00 */ addi r0, r6, 0x6800 -/* 80343C28 7C C0 3A 14 */ add r6, r0, r7 -/* 80343C2C 80 06 00 10 */ lwz r0, 0x10(r6) -/* 80343C30 40 81 00 F4 */ ble lbl_80343D24 -/* 80343C34 38 E3 FF F8 */ addi r7, r3, -8 -/* 80343C38 2C 03 00 08 */ cmpwi r3, 8 -/* 80343C3C 40 81 00 BC */ ble lbl_80343CF8 -/* 80343C40 38 C7 00 07 */ addi r6, r7, 7 -/* 80343C44 54 C6 E8 FE */ srwi r6, r6, 3 -/* 80343C48 7C C9 03 A6 */ mtctr r6 -/* 80343C4C 2C 07 00 00 */ cmpwi r7, 0 -/* 80343C50 40 81 00 A8 */ ble lbl_80343CF8 -lbl_80343C54: -/* 80343C54 20 C4 00 03 */ subfic r6, r4, 3 -/* 80343C58 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343C5C 7C 06 34 30 */ srw r6, r0, r6 -/* 80343C60 98 C5 00 00 */ stb r6, 0(r5) -/* 80343C64 38 C4 00 01 */ addi r6, r4, 1 -/* 80343C68 20 C6 00 03 */ subfic r6, r6, 3 -/* 80343C6C 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343C70 7C 06 34 30 */ srw r6, r0, r6 -/* 80343C74 98 C5 00 01 */ stb r6, 1(r5) -/* 80343C78 38 C4 00 02 */ addi r6, r4, 2 -/* 80343C7C 20 C6 00 03 */ subfic r6, r6, 3 -/* 80343C80 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343C84 7C 06 34 30 */ srw r6, r0, r6 -/* 80343C88 98 C5 00 02 */ stb r6, 2(r5) -/* 80343C8C 7C C4 00 D0 */ neg r6, r4 -/* 80343C90 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343C94 7C 06 34 30 */ srw r6, r0, r6 -/* 80343C98 98 C5 00 03 */ stb r6, 3(r5) -/* 80343C9C 38 C4 00 04 */ addi r6, r4, 4 -/* 80343CA0 20 C6 00 03 */ subfic r6, r6, 3 -/* 80343CA4 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343CA8 7C 06 34 30 */ srw r6, r0, r6 -/* 80343CAC 98 C5 00 04 */ stb r6, 4(r5) -/* 80343CB0 38 C4 00 05 */ addi r6, r4, 5 -/* 80343CB4 20 C6 00 03 */ subfic r6, r6, 3 -/* 80343CB8 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343CBC 7C 06 34 30 */ srw r6, r0, r6 -/* 80343CC0 98 C5 00 05 */ stb r6, 5(r5) -/* 80343CC4 38 C4 00 06 */ addi r6, r4, 6 -/* 80343CC8 20 C6 00 03 */ subfic r6, r6, 3 -/* 80343CCC 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343CD0 7C 06 34 30 */ srw r6, r0, r6 -/* 80343CD4 98 C5 00 06 */ stb r6, 6(r5) -/* 80343CD8 38 C4 00 07 */ addi r6, r4, 7 -/* 80343CDC 20 C6 00 03 */ subfic r6, r6, 3 -/* 80343CE0 54 C6 18 38 */ slwi r6, r6, 3 -/* 80343CE4 7C 06 34 30 */ srw r6, r0, r6 -/* 80343CE8 98 C5 00 07 */ stb r6, 7(r5) -/* 80343CEC 38 A5 00 08 */ addi r5, r5, 8 -/* 80343CF0 38 84 00 08 */ addi r4, r4, 8 -/* 80343CF4 42 00 FF 60 */ bdnz lbl_80343C54 -lbl_80343CF8: -/* 80343CF8 7C C4 18 50 */ subf r6, r4, r3 -/* 80343CFC 7C C9 03 A6 */ mtctr r6 -/* 80343D00 7C 04 18 00 */ cmpw r4, r3 -/* 80343D04 40 80 00 20 */ bge lbl_80343D24 -lbl_80343D08: -/* 80343D08 20 64 00 03 */ subfic r3, r4, 3 -/* 80343D0C 54 63 18 38 */ slwi r3, r3, 3 -/* 80343D10 7C 03 1C 30 */ srw r3, r0, r3 -/* 80343D14 98 65 00 00 */ stb r3, 0(r5) -/* 80343D18 38 A5 00 01 */ addi r5, r5, 1 -/* 80343D1C 38 84 00 01 */ addi r4, r4, 1 -/* 80343D20 42 00 FF E8 */ bdnz lbl_80343D08 -lbl_80343D24: -/* 80343D24 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343D28 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d -/* 80343D2C 90 1F 00 0C */ stw r0, 0xc(r31) -lbl_80343D30: -/* 80343D30 38 61 00 20 */ addi r3, r1, 0x20 -/* 80343D34 4B FF 82 CD */ bl OSClearContext -/* 80343D38 38 61 00 20 */ addi r3, r1, 0x20 -/* 80343D3C 4B FF 80 FD */ bl OSSetCurrentContext -/* 80343D40 38 7E 00 00 */ addi r3, r30, 0 -/* 80343D44 38 9C 00 00 */ addi r4, r28, 0 -/* 80343D48 39 9D 00 00 */ addi r12, r29, 0 -/* 80343D4C 7D 88 03 A6 */ mtlr r12 -/* 80343D50 4E 80 00 21 */ blrl -/* 80343D54 38 61 00 20 */ addi r3, r1, 0x20 -/* 80343D58 4B FF 82 A9 */ bl OSClearContext -/* 80343D5C 7F 83 E3 78 */ mr r3, r28 -/* 80343D60 4B FF 80 D9 */ bl OSSetCurrentContext -lbl_80343D64: -/* 80343D64 80 01 02 FC */ lwz r0, 0x2fc(r1) -/* 80343D68 83 E1 02 F4 */ lwz r31, 0x2f4(r1) -/* 80343D6C 83 C1 02 F0 */ lwz r30, 0x2f0(r1) -/* 80343D70 83 A1 02 EC */ lwz r29, 0x2ec(r1) -/* 80343D74 83 81 02 E8 */ lwz r28, 0x2e8(r1) -/* 80343D78 38 21 02 F8 */ addi r1, r1, 0x2f8 -/* 80343D7C 7C 08 03 A6 */ mtlr r0 -/* 80343D80 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/UnlockedHandler.s b/asm/exi/EXIBios/UnlockedHandler.s deleted file mode 100644 index 36d64fe43f7..00000000000 --- a/asm/exi/EXIBios/UnlockedHandler.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80344210: -/* 80344210 7C 08 02 A6 */ mflr r0 -/* 80344214 90 01 00 04 */ stw r0, 4(r1) -/* 80344218 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034421C 38 80 00 00 */ li r4, 0 -/* 80344220 38 A1 00 10 */ addi r5, r1, 0x10 -/* 80344224 48 00 00 15 */ bl EXIGetID -/* 80344228 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034422C 38 21 00 18 */ addi r1, r1, 0x18 -/* 80344230 7C 08 03 A6 */ mtlr r0 -/* 80344234 4E 80 00 20 */ blr diff --git a/asm/exi/EXIBios/__EXIProbe.s b/asm/exi/EXIBios/__EXIProbe.s deleted file mode 100644 index 4d739b00c3e..00000000000 --- a/asm/exi/EXIBios/__EXIProbe.s +++ /dev/null @@ -1,102 +0,0 @@ -lbl_803433F8: -/* 803433F8 7C 08 02 A6 */ mflr r0 -/* 803433FC 90 01 00 04 */ stw r0, 4(r1) -/* 80343400 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80343404 BF 61 00 14 */ stmw r27, 0x14(r1) -/* 80343408 3B 83 00 00 */ addi r28, r3, 0 -/* 8034340C 54 64 30 32 */ slwi r4, r3, 6 -/* 80343410 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */ -/* 80343414 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */ -/* 80343418 7F E0 22 14 */ add r31, r0, r4 -/* 8034341C 2C 1C 00 02 */ cmpwi r28, 2 -/* 80343420 40 82 00 0C */ bne lbl_8034342C -/* 80343424 38 60 00 01 */ li r3, 1 -/* 80343428 48 00 01 30 */ b lbl_80343558 -lbl_8034342C: -/* 8034342C 3B A0 00 01 */ li r29, 1 -/* 80343430 4B FF A2 C5 */ bl OSDisableInterrupts -/* 80343434 3B C3 00 00 */ addi r30, r3, 0 -/* 80343438 1C 1C 00 14 */ mulli r0, r28, 0x14 -/* 8034343C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */ -/* 80343440 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */ -/* 80343444 7C 63 02 14 */ add r3, r3, r0 -/* 80343448 80 A3 00 00 */ lwz r5, 0(r3) -/* 8034344C 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80343450 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80343454 40 82 00 CC */ bne lbl_80343520 -/* 80343458 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14 -/* 8034345C 41 82 00 2C */ beq lbl_80343488 -/* 80343460 80 03 00 00 */ lwz r0, 0(r3) -/* 80343464 70 00 07 F5 */ andi. r0, r0, 0x7f5 -/* 80343468 60 00 08 00 */ ori r0, r0, 0x800 -/* 8034346C 90 03 00 00 */ stw r0, 0(r3) -/* 80343470 38 80 00 00 */ li r4, 0 -/* 80343474 90 9F 00 20 */ stw r4, 0x20(r31) -/* 80343478 57 80 10 3A */ slwi r0, r28, 2 -/* 8034347C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C0@ha */ -/* 80343480 38 63 30 C0 */ addi r3, r3, 0x30C0 /* 0x800030C0@l */ -/* 80343484 7C 83 01 2E */ stwx r4, r3, r0 -lbl_80343488: -/* 80343488 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13 -/* 8034348C 41 82 00 74 */ beq lbl_80343500 -/* 80343490 3F E0 80 00 */ lis r31, 0x8000 /* 0x800000F8@ha */ -/* 80343494 80 1F 00 F8 */ lwz r0, 0x00F8(r31) /* 0x800000F8@l */ -/* 80343498 54 00 F0 BE */ srwi r0, r0, 2 -/* 8034349C 3C 60 10 62 */ lis r3, 0x1062 /* 0x10624DD3@ha */ -/* 803434A0 38 63 4D D3 */ addi r3, r3, 0x4DD3 /* 0x10624DD3@l */ -/* 803434A4 7C 03 00 16 */ mulhwu r0, r3, r0 -/* 803434A8 54 1B D1 BE */ srwi r27, r0, 6 -/* 803434AC 4B FF F2 51 */ bl OSGetTime -/* 803434B0 38 A0 00 00 */ li r5, 0 -/* 803434B4 38 DB 00 00 */ addi r6, r27, 0 -/* 803434B8 48 01 EE 6D */ bl __div2i -/* 803434BC 38 A0 00 00 */ li r5, 0 -/* 803434C0 38 C0 00 64 */ li r6, 0x64 -/* 803434C4 48 01 EE 61 */ bl __div2i -/* 803434C8 38 84 00 01 */ addi r4, r4, 1 -/* 803434CC 57 80 10 3A */ slwi r0, r28, 2 -/* 803434D0 38 7F 30 C0 */ addi r3, r31, 0x30c0 -/* 803434D4 7C 63 02 14 */ add r3, r3, r0 -/* 803434D8 80 03 00 00 */ lwz r0, 0(r3) -/* 803434DC 2C 00 00 00 */ cmpwi r0, 0 -/* 803434E0 40 82 00 08 */ bne lbl_803434E8 -/* 803434E4 90 83 00 00 */ stw r4, 0(r3) -lbl_803434E8: -/* 803434E8 80 03 00 00 */ lwz r0, 0(r3) -/* 803434EC 7C 00 20 50 */ subf r0, r0, r4 -/* 803434F0 2C 00 00 03 */ cmpwi r0, 3 -/* 803434F4 40 80 00 58 */ bge lbl_8034354C -/* 803434F8 3B A0 00 00 */ li r29, 0 -/* 803434FC 48 00 00 50 */ b lbl_8034354C -lbl_80343500: -/* 80343500 38 80 00 00 */ li r4, 0 -/* 80343504 90 9F 00 20 */ stw r4, 0x20(r31) -/* 80343508 57 80 10 3A */ slwi r0, r28, 2 -/* 8034350C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C0@ha */ -/* 80343510 38 63 30 C0 */ addi r3, r3, 0x30C0 /* 0x800030C0@l */ -/* 80343514 7C 83 01 2E */ stwx r4, r3, r0 -/* 80343518 3B A0 00 00 */ li r29, 0 -/* 8034351C 48 00 00 30 */ b lbl_8034354C -lbl_80343520: -/* 80343520 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13 -/* 80343524 41 82 00 0C */ beq lbl_80343530 -/* 80343528 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14 -/* 8034352C 41 82 00 20 */ beq lbl_8034354C -lbl_80343530: -/* 80343530 38 80 00 00 */ li r4, 0 -/* 80343534 90 9F 00 20 */ stw r4, 0x20(r31) -/* 80343538 57 80 10 3A */ slwi r0, r28, 2 -/* 8034353C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C0@ha */ -/* 80343540 38 63 30 C0 */ addi r3, r3, 0x30C0 /* 0x800030C0@l */ -/* 80343544 7C 83 01 2E */ stwx r4, r3, r0 -/* 80343548 3B A0 00 00 */ li r29, 0 -lbl_8034354C: -/* 8034354C 7F C3 F3 78 */ mr r3, r30 -/* 80343550 4B FF A1 CD */ bl OSRestoreInterrupts -/* 80343554 7F A3 EB 78 */ mr r3, r29 -lbl_80343558: -/* 80343558 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8034355C BB 61 00 14 */ lmw r27, 0x14(r1) -/* 80343560 38 21 00 28 */ addi r1, r1, 0x28 -/* 80343564 7C 08 03 A6 */ mtlr r0 -/* 80343568 4E 80 00 20 */ blr diff --git a/asm/exi/EXIUart/InitializeUART.s b/asm/exi/EXIUart/InitializeUART.s deleted file mode 100644 index 7dbb38d42c9..00000000000 --- a/asm/exi/EXIUart/InitializeUART.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_80344930: -/* 80344930 7C 08 02 A6 */ mflr r0 -/* 80344934 90 01 00 04 */ stw r0, 4(r1) -/* 80344938 94 21 FF F8 */ stwu r1, -8(r1) -/* 8034493C 80 6D 91 6C */ lwz r3, BarnacleEnabled(r13) -/* 80344940 3C 03 5A 01 */ addis r0, r3, 0x5a01 -/* 80344944 28 00 00 5A */ cmplwi r0, 0x5a -/* 80344948 40 82 00 0C */ bne lbl_80344954 -/* 8034494C 38 60 00 00 */ li r3, 0 -/* 80344950 48 00 00 40 */ b lbl_80344990 -lbl_80344954: -/* 80344954 4B FF 55 A9 */ bl OSGetConsoleType -/* 80344958 54 60 00 C7 */ rlwinm. r0, r3, 0, 3, 3 -/* 8034495C 40 82 00 14 */ bne lbl_80344970 -/* 80344960 38 00 00 00 */ li r0, 0 -/* 80344964 90 0D 91 68 */ stw r0, Enabled(r13) -/* 80344968 38 60 00 02 */ li r3, 2 -/* 8034496C 48 00 00 24 */ b lbl_80344990 -lbl_80344970: -/* 80344970 3C 60 A5 FF */ lis r3, 0xA5FF /* 0xA5FF005A@ha */ -/* 80344974 38 03 00 5A */ addi r0, r3, 0x005A /* 0xA5FF005A@l */ -/* 80344978 38 60 00 00 */ li r3, 0 -/* 8034497C 90 0D 91 68 */ stw r0, Enabled(r13) -/* 80344980 38 00 00 01 */ li r0, 1 -/* 80344984 90 6D 91 60 */ stw r3, Chan(r13) -/* 80344988 38 60 00 00 */ li r3, 0 -/* 8034498C 90 0D 91 64 */ stw r0, Dev(r13) -lbl_80344990: -/* 80344990 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80344994 38 21 00 08 */ addi r1, r1, 8 -/* 80344998 7C 08 03 A6 */ mtlr r0 -/* 8034499C 4E 80 00 20 */ blr diff --git a/asm/exi/EXIUart/ProbeBarnacle.s b/asm/exi/EXIUart/ProbeBarnacle.s deleted file mode 100644 index 6b1b6c59106..00000000000 --- a/asm/exi/EXIUart/ProbeBarnacle.s +++ /dev/null @@ -1,107 +0,0 @@ -lbl_803445E8: -/* 803445E8 7C 08 02 A6 */ mflr r0 -/* 803445EC 90 01 00 04 */ stw r0, 4(r1) -/* 803445F0 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803445F4 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803445F8 3B E5 00 00 */ addi r31, r5, 0 -/* 803445FC 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80344600 3B C4 00 00 */ addi r30, r4, 0 -/* 80344604 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 80344608 3B A3 00 00 */ addi r29, r3, 0 -/* 8034460C 2C 1D 00 02 */ cmpwi r29, 2 -/* 80344610 93 81 00 18 */ stw r28, 0x18(r1) -/* 80344614 41 82 00 28 */ beq lbl_8034463C -/* 80344618 28 1E 00 00 */ cmplwi r30, 0 -/* 8034461C 40 82 00 20 */ bne lbl_8034463C -/* 80344620 38 7D 00 00 */ addi r3, r29, 0 -/* 80344624 38 80 00 00 */ li r4, 0 -/* 80344628 4B FF F0 79 */ bl EXIAttach -/* 8034462C 2C 03 00 00 */ cmpwi r3, 0 -/* 80344630 40 82 00 0C */ bne lbl_8034463C -/* 80344634 38 60 00 00 */ li r3, 0 -/* 80344638 48 00 01 1C */ b lbl_80344754 -lbl_8034463C: -/* 8034463C 38 7D 00 00 */ addi r3, r29, 0 -/* 80344640 38 9E 00 00 */ addi r4, r30, 0 -/* 80344644 38 A0 00 00 */ li r5, 0 -/* 80344648 4B FF F9 E1 */ bl EXILock -/* 8034464C 7C 60 00 34 */ cntlzw r0, r3 -/* 80344650 54 00 D9 7E */ srwi r0, r0, 5 -/* 80344654 7C 1C 03 79 */ or. r28, r0, r0 -/* 80344658 40 82 00 B8 */ bne lbl_80344710 -/* 8034465C 38 7D 00 00 */ addi r3, r29, 0 -/* 80344660 38 9E 00 00 */ addi r4, r30, 0 -/* 80344664 38 A0 00 00 */ li r5, 0 -/* 80344668 4B FF F2 01 */ bl EXISelect -/* 8034466C 7C 60 00 34 */ cntlzw r0, r3 -/* 80344670 54 00 D9 7E */ srwi r0, r0, 5 -/* 80344674 7C 1C 03 79 */ or. r28, r0, r0 -/* 80344678 40 82 00 90 */ bne lbl_80344708 -/* 8034467C 3C 60 20 01 */ lis r3, 0x2001 /* 0x20011300@ha */ -/* 80344680 38 03 13 00 */ addi r0, r3, 0x1300 /* 0x20011300@l */ -/* 80344684 90 01 00 14 */ stw r0, 0x14(r1) -/* 80344688 38 7D 00 00 */ addi r3, r29, 0 -/* 8034468C 38 81 00 14 */ addi r4, r1, 0x14 -/* 80344690 38 A0 00 04 */ li r5, 4 -/* 80344694 38 C0 00 01 */ li r6, 1 -/* 80344698 38 E0 00 00 */ li r7, 0 -/* 8034469C 4B FF E6 65 */ bl EXIImm -/* 803446A0 7C 60 00 34 */ cntlzw r0, r3 -/* 803446A4 38 7D 00 00 */ addi r3, r29, 0 -/* 803446A8 54 1C D9 7E */ srwi r28, r0, 5 -/* 803446AC 4B FF EA 3D */ bl EXISync -/* 803446B0 7C 60 00 34 */ cntlzw r0, r3 -/* 803446B4 54 00 D9 7E */ srwi r0, r0, 5 -/* 803446B8 38 7D 00 00 */ addi r3, r29, 0 -/* 803446BC 38 9F 00 00 */ addi r4, r31, 0 -/* 803446C0 7F 9C 03 78 */ or r28, r28, r0 -/* 803446C4 38 A0 00 04 */ li r5, 4 -/* 803446C8 38 C0 00 00 */ li r6, 0 -/* 803446CC 38 E0 00 00 */ li r7, 0 -/* 803446D0 4B FF E6 31 */ bl EXIImm -/* 803446D4 7C 60 00 34 */ cntlzw r0, r3 -/* 803446D8 54 00 D9 7E */ srwi r0, r0, 5 -/* 803446DC 38 7D 00 00 */ addi r3, r29, 0 -/* 803446E0 7F 9C 03 78 */ or r28, r28, r0 -/* 803446E4 4B FF EA 05 */ bl EXISync -/* 803446E8 7C 60 00 34 */ cntlzw r0, r3 -/* 803446EC 54 00 D9 7E */ srwi r0, r0, 5 -/* 803446F0 38 7D 00 00 */ addi r3, r29, 0 -/* 803446F4 7F 9C 03 78 */ or r28, r28, r0 -/* 803446F8 4B FF F2 9D */ bl EXIDeselect -/* 803446FC 7C 60 00 34 */ cntlzw r0, r3 -/* 80344700 54 00 D9 7E */ srwi r0, r0, 5 -/* 80344704 7F 9C 03 78 */ or r28, r28, r0 -lbl_80344708: -/* 80344708 7F A3 EB 78 */ mr r3, r29 -/* 8034470C 4B FF FA 11 */ bl EXIUnlock -lbl_80344710: -/* 80344710 2C 1D 00 02 */ cmpwi r29, 2 -/* 80344714 41 82 00 14 */ beq lbl_80344728 -/* 80344718 28 1E 00 00 */ cmplwi r30, 0 -/* 8034471C 40 82 00 0C */ bne lbl_80344728 -/* 80344720 7F A3 EB 78 */ mr r3, r29 -/* 80344724 4B FF F0 89 */ bl EXIDetach -lbl_80344728: -/* 80344728 2C 1C 00 00 */ cmpwi r28, 0 -/* 8034472C 41 82 00 0C */ beq lbl_80344738 -/* 80344730 38 60 00 00 */ li r3, 0 -/* 80344734 48 00 00 20 */ b lbl_80344754 -lbl_80344738: -/* 80344738 80 7F 00 00 */ lwz r3, 0(r31) -/* 8034473C 3C 03 00 01 */ addis r0, r3, 1 -/* 80344740 28 00 FF FF */ cmplwi r0, 0xffff -/* 80344744 41 82 00 0C */ beq lbl_80344750 -/* 80344748 38 60 00 01 */ li r3, 1 -/* 8034474C 48 00 00 08 */ b lbl_80344754 -lbl_80344750: -/* 80344750 38 60 00 00 */ li r3, 0 -lbl_80344754: -/* 80344754 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80344758 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 8034475C 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 80344760 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 80344764 83 81 00 18 */ lwz r28, 0x18(r1) -/* 80344768 38 21 00 28 */ addi r1, r1, 0x28 -/* 8034476C 7C 08 03 A6 */ mtlr r0 -/* 80344770 4E 80 00 20 */ blr diff --git a/asm/exi/EXIUart/WriteUARTN.s b/asm/exi/EXIUart/WriteUARTN.s deleted file mode 100644 index e2b18a8f48a..00000000000 --- a/asm/exi/EXIUart/WriteUARTN.s +++ /dev/null @@ -1,149 +0,0 @@ -lbl_803449A0: -/* 803449A0 7C 08 02 A6 */ mflr r0 -/* 803449A4 90 01 00 04 */ stw r0, 4(r1) -/* 803449A8 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 803449AC BF 41 00 18 */ stmw r26, 0x18(r1) -/* 803449B0 3B C3 00 00 */ addi r30, r3, 0 -/* 803449B4 3B E4 00 00 */ addi r31, r4, 0 -/* 803449B8 80 AD 91 68 */ lwz r5, Enabled(r13) -/* 803449BC 3C 05 5A 01 */ addis r0, r5, 0x5a01 -/* 803449C0 28 00 00 5A */ cmplwi r0, 0x5a -/* 803449C4 41 82 00 0C */ beq lbl_803449D0 -/* 803449C8 38 60 00 02 */ li r3, 2 -/* 803449CC 48 00 01 C0 */ b lbl_80344B8C -lbl_803449D0: -/* 803449D0 80 6D 91 60 */ lwz r3, Chan(r13) -/* 803449D4 38 A0 00 00 */ li r5, 0 -/* 803449D8 80 8D 91 64 */ lwz r4, Dev(r13) -/* 803449DC 4B FF F6 4D */ bl EXILock -/* 803449E0 2C 03 00 00 */ cmpwi r3, 0 -/* 803449E4 40 82 00 0C */ bne lbl_803449F0 -/* 803449E8 38 60 00 00 */ li r3, 0 -/* 803449EC 48 00 01 A0 */ b lbl_80344B8C -lbl_803449F0: -/* 803449F0 38 9E 00 00 */ addi r4, r30, 0 -/* 803449F4 38 60 00 0D */ li r3, 0xd -/* 803449F8 48 00 00 18 */ b lbl_80344A10 -lbl_803449FC: -/* 803449FC 88 04 00 00 */ lbz r0, 0(r4) -/* 80344A00 2C 00 00 0A */ cmpwi r0, 0xa -/* 80344A04 40 82 00 08 */ bne lbl_80344A0C -/* 80344A08 98 64 00 00 */ stb r3, 0(r4) -lbl_80344A0C: -/* 80344A0C 38 84 00 01 */ addi r4, r4, 1 -lbl_80344A10: -/* 80344A10 7C 1E 20 50 */ subf r0, r30, r4 -/* 80344A14 7C 00 F8 40 */ cmplw r0, r31 -/* 80344A18 41 80 FF E4 */ blt lbl_803449FC -/* 80344A1C 3C 00 A0 01 */ lis r0, 0xa001 -/* 80344A20 90 01 00 14 */ stw r0, 0x14(r1) -/* 80344A24 3B 40 00 00 */ li r26, 0 -/* 80344A28 3F A0 20 01 */ lis r29, 0x2001 -/* 80344A2C 48 00 01 4C */ b lbl_80344B78 -lbl_80344A30: -/* 80344A30 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344A34 38 A0 00 03 */ li r5, 3 -/* 80344A38 80 8D 91 64 */ lwz r4, Dev(r13) -/* 80344A3C 4B FF EE 2D */ bl EXISelect -/* 80344A40 2C 03 00 00 */ cmpwi r3, 0 -/* 80344A44 40 82 00 0C */ bne lbl_80344A50 -/* 80344A48 38 00 FF FF */ li r0, -1 -/* 80344A4C 48 00 00 5C */ b lbl_80344AA8 -lbl_80344A50: -/* 80344A50 93 A1 00 10 */ stw r29, 0x10(r1) -/* 80344A54 38 81 00 10 */ addi r4, r1, 0x10 -/* 80344A58 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344A5C 38 A0 00 04 */ li r5, 4 -/* 80344A60 38 C0 00 01 */ li r6, 1 -/* 80344A64 38 E0 00 00 */ li r7, 0 -/* 80344A68 4B FF E2 99 */ bl EXIImm -/* 80344A6C 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344A70 4B FF E6 79 */ bl EXISync -/* 80344A74 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344A78 38 81 00 10 */ addi r4, r1, 0x10 -/* 80344A7C 38 A0 00 01 */ li r5, 1 -/* 80344A80 38 C0 00 00 */ li r6, 0 -/* 80344A84 38 E0 00 00 */ li r7, 0 -/* 80344A88 4B FF E2 79 */ bl EXIImm -/* 80344A8C 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344A90 4B FF E6 59 */ bl EXISync -/* 80344A94 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344A98 4B FF EE FD */ bl EXIDeselect -/* 80344A9C 80 01 00 10 */ lwz r0, 0x10(r1) -/* 80344AA0 54 00 46 3E */ srwi r0, r0, 0x18 -/* 80344AA4 20 00 00 10 */ subfic r0, r0, 0x10 -lbl_80344AA8: -/* 80344AA8 2C 00 00 00 */ cmpwi r0, 0 -/* 80344AAC 7C 1B 03 78 */ mr r27, r0 -/* 80344AB0 40 80 00 0C */ bge lbl_80344ABC -/* 80344AB4 3B 40 00 03 */ li r26, 3 -/* 80344AB8 48 00 00 C8 */ b lbl_80344B80 -lbl_80344ABC: -/* 80344ABC 2C 00 00 0C */ cmpwi r0, 0xc -/* 80344AC0 40 80 00 0C */ bge lbl_80344ACC -/* 80344AC4 7C 00 F8 40 */ cmplw r0, r31 -/* 80344AC8 41 80 00 B0 */ blt lbl_80344B78 -lbl_80344ACC: -/* 80344ACC 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344AD0 38 A0 00 03 */ li r5, 3 -/* 80344AD4 80 8D 91 64 */ lwz r4, Dev(r13) -/* 80344AD8 4B FF ED 91 */ bl EXISelect -/* 80344ADC 2C 03 00 00 */ cmpwi r3, 0 -/* 80344AE0 40 82 00 0C */ bne lbl_80344AEC -/* 80344AE4 3B 40 00 03 */ li r26, 3 -/* 80344AE8 48 00 00 98 */ b lbl_80344B80 -lbl_80344AEC: -/* 80344AEC 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344AF0 38 81 00 14 */ addi r4, r1, 0x14 -/* 80344AF4 38 A0 00 04 */ li r5, 4 -/* 80344AF8 38 C0 00 01 */ li r6, 1 -/* 80344AFC 38 E0 00 00 */ li r7, 0 -/* 80344B00 4B FF E2 01 */ bl EXIImm -/* 80344B04 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344B08 4B FF E5 E1 */ bl EXISync -/* 80344B0C 48 00 00 54 */ b lbl_80344B60 -lbl_80344B10: -/* 80344B10 2C 1B 00 04 */ cmpwi r27, 4 -/* 80344B14 40 80 00 0C */ bge lbl_80344B20 -/* 80344B18 7C 1B F8 40 */ cmplw r27, r31 -/* 80344B1C 41 80 00 54 */ blt lbl_80344B70 -lbl_80344B20: -/* 80344B20 28 1F 00 04 */ cmplwi r31, 4 -/* 80344B24 40 80 00 0C */ bge lbl_80344B30 -/* 80344B28 7F FC FB 78 */ mr r28, r31 -/* 80344B2C 48 00 00 08 */ b lbl_80344B34 -lbl_80344B30: -/* 80344B30 3B 80 00 04 */ li r28, 4 -lbl_80344B34: -/* 80344B34 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344B38 7F 85 E3 78 */ mr r5, r28 -/* 80344B3C 38 9E 00 00 */ addi r4, r30, 0 -/* 80344B40 38 C0 00 01 */ li r6, 1 -/* 80344B44 38 E0 00 00 */ li r7, 0 -/* 80344B48 4B FF E1 B9 */ bl EXIImm -/* 80344B4C 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344B50 7F DE E2 14 */ add r30, r30, r28 -/* 80344B54 7F FC F8 50 */ subf r31, r28, r31 -/* 80344B58 7F 7C D8 50 */ subf r27, r28, r27 -/* 80344B5C 4B FF E5 8D */ bl EXISync -lbl_80344B60: -/* 80344B60 2C 1B 00 00 */ cmpwi r27, 0 -/* 80344B64 41 82 00 0C */ beq lbl_80344B70 -/* 80344B68 28 1F 00 00 */ cmplwi r31, 0 -/* 80344B6C 40 82 FF A4 */ bne lbl_80344B10 -lbl_80344B70: -/* 80344B70 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344B74 4B FF EE 21 */ bl EXIDeselect -lbl_80344B78: -/* 80344B78 28 1F 00 00 */ cmplwi r31, 0 -/* 80344B7C 40 82 FE B4 */ bne lbl_80344A30 -lbl_80344B80: -/* 80344B80 80 6D 91 60 */ lwz r3, Chan(r13) -/* 80344B84 4B FF F5 99 */ bl EXIUnlock -/* 80344B88 7F 43 D3 78 */ mr r3, r26 -lbl_80344B8C: -/* 80344B8C BB 41 00 18 */ lmw r26, 0x18(r1) -/* 80344B90 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80344B94 38 21 00 30 */ addi r1, r1, 0x30 -/* 80344B98 7C 08 03 A6 */ mtlr r0 -/* 80344B9C 4E 80 00 20 */ blr diff --git a/asm/exi/EXIUart/__OSEnableBarnacle.s b/asm/exi/EXIUart/__OSEnableBarnacle.s deleted file mode 100644 index 2092d3e8c1d..00000000000 --- a/asm/exi/EXIUart/__OSEnableBarnacle.s +++ /dev/null @@ -1,121 +0,0 @@ -lbl_80344774: -/* 80344774 7C 08 02 A6 */ mflr r0 -/* 80344778 90 01 00 04 */ stw r0, 4(r1) -/* 8034477C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80344780 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80344784 3B E4 00 00 */ addi r31, r4, 0 -/* 80344788 38 A1 00 10 */ addi r5, r1, 0x10 -/* 8034478C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80344790 3B C3 00 00 */ addi r30, r3, 0 -/* 80344794 4B FF FA A5 */ bl EXIGetID -/* 80344798 2C 03 00 00 */ cmpwi r3, 0 -/* 8034479C 41 82 01 7C */ beq lbl_80344918 -/* 803447A0 80 81 00 10 */ lwz r4, 0x10(r1) -/* 803447A4 3C 00 01 02 */ lis r0, 0x102 -/* 803447A8 7C 04 00 00 */ cmpw r4, r0 -/* 803447AC 41 82 01 6C */ beq lbl_80344918 -/* 803447B0 40 80 00 94 */ bge lbl_80344844 -/* 803447B4 2C 04 00 04 */ cmpwi r4, 4 -/* 803447B8 41 82 01 60 */ beq lbl_80344918 -/* 803447BC 40 80 00 54 */ bge lbl_80344810 -/* 803447C0 3C 60 80 00 */ lis r3, 0x8000 /* 0x80000010@ha */ -/* 803447C4 38 03 00 10 */ addi r0, r3, 0x0010 /* 0x80000010@l */ -/* 803447C8 7C 04 00 00 */ cmpw r4, r0 -/* 803447CC 41 82 01 4C */ beq lbl_80344918 -/* 803447D0 40 80 00 24 */ bge lbl_803447F4 -/* 803447D4 38 03 00 08 */ addi r0, r3, 8 -/* 803447D8 7C 04 00 00 */ cmpw r4, r0 -/* 803447DC 41 82 01 3C */ beq lbl_80344918 -/* 803447E0 40 80 01 08 */ bge lbl_803448E8 -/* 803447E4 38 03 00 04 */ addi r0, r3, 4 -/* 803447E8 7C 04 00 00 */ cmpw r4, r0 -/* 803447EC 41 82 01 2C */ beq lbl_80344918 -/* 803447F0 48 00 00 F8 */ b lbl_803448E8 -lbl_803447F4: -/* 803447F4 2C 04 FF FF */ cmpwi r4, -1 -/* 803447F8 41 82 01 20 */ beq lbl_80344918 -/* 803447FC 40 80 00 EC */ bge lbl_803448E8 -/* 80344800 38 03 00 20 */ addi r0, r3, 0x20 -/* 80344804 7C 04 00 00 */ cmpw r4, r0 -/* 80344808 41 82 01 10 */ beq lbl_80344918 -/* 8034480C 48 00 00 DC */ b lbl_803448E8 -lbl_80344810: -/* 80344810 2C 04 00 20 */ cmpwi r4, 0x20 -/* 80344814 41 82 01 04 */ beq lbl_80344918 -/* 80344818 40 80 00 1C */ bge lbl_80344834 -/* 8034481C 2C 04 00 10 */ cmpwi r4, 0x10 -/* 80344820 41 82 00 F8 */ beq lbl_80344918 -/* 80344824 40 80 00 C4 */ bge lbl_803448E8 -/* 80344828 2C 04 00 08 */ cmpwi r4, 8 -/* 8034482C 41 82 00 EC */ beq lbl_80344918 -/* 80344830 48 00 00 B8 */ b lbl_803448E8 -lbl_80344834: -/* 80344834 3C 00 01 01 */ lis r0, 0x101 -/* 80344838 7C 04 00 00 */ cmpw r4, r0 -/* 8034483C 41 82 00 DC */ beq lbl_80344918 -/* 80344840 48 00 00 A8 */ b lbl_803448E8 -lbl_80344844: -/* 80344844 3C 60 04 04 */ lis r3, 0x0404 /* 0x04040404@ha */ -/* 80344848 38 03 04 04 */ addi r0, r3, 0x0404 /* 0x04040404@l */ -/* 8034484C 7C 04 00 00 */ cmpw r4, r0 -/* 80344850 41 82 00 C8 */ beq lbl_80344918 -/* 80344854 40 80 00 58 */ bge lbl_803448AC -/* 80344858 3C 60 04 02 */ lis r3, 0x0402 /* 0x04020100@ha */ -/* 8034485C 38 03 01 00 */ addi r0, r3, 0x0100 /* 0x04020100@l */ -/* 80344860 7C 04 00 00 */ cmpw r4, r0 -/* 80344864 41 82 00 B4 */ beq lbl_80344918 -/* 80344868 40 80 00 24 */ bge lbl_8034488C -/* 8034486C 3C 00 03 01 */ lis r0, 0x301 -/* 80344870 7C 04 00 00 */ cmpw r4, r0 -/* 80344874 41 82 00 A4 */ beq lbl_80344918 -/* 80344878 40 80 00 70 */ bge lbl_803448E8 -/* 8034487C 3C 00 02 02 */ lis r0, 0x202 -/* 80344880 7C 04 00 00 */ cmpw r4, r0 -/* 80344884 41 82 00 94 */ beq lbl_80344918 -/* 80344888 48 00 00 60 */ b lbl_803448E8 -lbl_8034488C: -/* 8034488C 38 03 03 00 */ addi r0, r3, 0x300 -/* 80344890 7C 04 00 00 */ cmpw r4, r0 -/* 80344894 41 82 00 84 */ beq lbl_80344918 -/* 80344898 40 80 00 50 */ bge lbl_803448E8 -/* 8034489C 38 03 02 00 */ addi r0, r3, 0x200 -/* 803448A0 7C 04 00 00 */ cmpw r4, r0 -/* 803448A4 41 82 00 74 */ beq lbl_80344918 -/* 803448A8 48 00 00 40 */ b lbl_803448E8 -lbl_803448AC: -/* 803448AC 3C 00 04 13 */ lis r0, 0x413 -/* 803448B0 7C 04 00 00 */ cmpw r4, r0 -/* 803448B4 41 82 00 64 */ beq lbl_80344918 -/* 803448B8 40 80 00 24 */ bge lbl_803448DC -/* 803448BC 3C 00 04 12 */ lis r0, 0x412 -/* 803448C0 7C 04 00 00 */ cmpw r4, r0 -/* 803448C4 41 82 00 54 */ beq lbl_80344918 -/* 803448C8 40 80 00 20 */ bge lbl_803448E8 -/* 803448CC 3C 00 04 06 */ lis r0, 0x406 -/* 803448D0 7C 04 00 00 */ cmpw r4, r0 -/* 803448D4 41 82 00 44 */ beq lbl_80344918 -/* 803448D8 48 00 00 10 */ b lbl_803448E8 -lbl_803448DC: -/* 803448DC 3C 00 04 22 */ lis r0, 0x422 -/* 803448E0 7C 04 00 00 */ cmpw r4, r0 -/* 803448E4 41 82 00 34 */ beq lbl_80344918 -lbl_803448E8: -/* 803448E8 38 7E 00 00 */ addi r3, r30, 0 -/* 803448EC 38 9F 00 00 */ addi r4, r31, 0 -/* 803448F0 38 A1 00 10 */ addi r5, r1, 0x10 -/* 803448F4 4B FF FC F5 */ bl ProbeBarnacle -/* 803448F8 2C 03 00 00 */ cmpwi r3, 0 -/* 803448FC 41 82 00 1C */ beq lbl_80344918 -/* 80344900 3C 60 A5 FF */ lis r3, 0xA5FF /* 0xA5FF005A@ha */ -/* 80344904 93 CD 91 60 */ stw r30, Chan(r13) -/* 80344908 38 03 00 5A */ addi r0, r3, 0x005A /* 0xA5FF005A@l */ -/* 8034490C 93 ED 91 64 */ stw r31, Dev(r13) -/* 80344910 90 0D 91 6C */ stw r0, BarnacleEnabled(r13) -/* 80344914 90 0D 91 68 */ stw r0, Enabled(r13) -lbl_80344918: -/* 80344918 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8034491C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80344920 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80344924 38 21 00 20 */ addi r1, r1, 0x20 -/* 80344928 7C 08 03 A6 */ mtlr r0 -/* 8034492C 4E 80 00 20 */ blr diff --git a/include/dolphin/dvd/dvd.h b/include/dolphin/dvd/dvd.h index 46749922779..1baab94a110 100644 --- a/include/dolphin/dvd/dvd.h +++ b/include/dolphin/dvd/dvd.h @@ -22,6 +22,14 @@ typedef enum DVDState { DVD_STATE_FATAL_ERROR = -1, } DVDState; + +typedef enum DVDResult { + DVD_RESULT_GOOD = 0, + DVD_RESULT_FATAL_ERROR = -1, + DVD_RESULT_IGNORED = -2, + DVD_RESULT_CANCELED = -3, +} DVDResult; + typedef struct DVDDirectory { /* 0x0 */ u32 entry_number; /* 0x4 */ u32 location; diff --git a/include/dolphin/exi/EXIBios.h b/include/dolphin/exi/EXIBios.h index 5e842a27742..71f91dcaffa 100644 --- a/include/dolphin/exi/EXIBios.h +++ b/include/dolphin/exi/EXIBios.h @@ -9,6 +9,49 @@ extern "C" { vu32 __EXIRegs[16] : 0xCC006800; +#define EXI_MEMORY_CARD_59 0x00000004 +#define EXI_MEMORY_CARD_123 0x00000008 +#define EXI_MEMORY_CARD_251 0x00000010 +#define EXI_MEMORY_CARD_507 0x00000020 + +#define EXI_MEMORY_CARD_1019 0x00000040 +#define EXI_MEMORY_CARD_2043 0x00000080 + +#define EXI_MEMORY_CARD_1019A 0x00000140 +#define EXI_MEMORY_CARD_1019B 0x00000240 +#define EXI_MEMORY_CARD_1019C 0x00000340 +#define EXI_MEMORY_CARD_1019D 0x00000440 +#define EXI_MEMORY_CARD_1019E 0x00000540 +#define EXI_MEMORY_CARD_1019F 0x00000640 +#define EXI_MEMORY_CARD_1019G 0x00000740 + +#define EXI_MEMORY_CARD_2043A 0x00000180 +#define EXI_MEMORY_CARD_2043B 0x00000280 +#define EXI_MEMORY_CARD_2043C 0x00000380 +#define EXI_MEMORY_CARD_2043D 0x00000480 +#define EXI_MEMORY_CARD_2043E 0x00000580 +#define EXI_MEMORY_CARD_2043F 0x00000680 +#define EXI_MEMORY_CARD_2043G 0x00000780 + +#define EXI_USB_ADAPTER 0x01010000 +#define EXI_NPDP_GDEV 0x01020000 + +#define EXI_MODEM 0x02020000 +#define EXI_ETHER 0x04020200 +#define EXI_ETHER_VIEWER 0x04220001 +#define EXI_STREAM_HANGER 0x04130000 + +#define EXI_MARLIN 0x03010000 + +#define EXI_IS_VIEWER 0x05070000 + +#define EXI_FREQ_1M 0 +#define EXI_FREQ_2M 1 +#define EXI_FREQ_4M 2 +#define EXI_FREQ_8M 3 +#define EXI_FREQ_16M 4 +#define EXI_FREQ_32M 5 + #define EXI_READ 0 #define EXI_WRITE 1 diff --git a/include/dolphin/os/OSCache.h b/include/dolphin/os/OSCache.h index e0a1939e79f..23885420be8 100644 --- a/include/dolphin/os/OSCache.h +++ b/include/dolphin/os/OSCache.h @@ -24,7 +24,7 @@ static void LCStoreBlocks(void* destAddr, void* srcAddr, u32 blockNum); u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes); void LCQueueWait(u32 len); static void L2GlobalInvalidate(void); -static void DMAErrorHandler(s32 error, struct OSContext* context); +static void DMAErrorHandler(u16 error, struct OSContext* context, ...); void __OSCacheInit(void); #ifdef __cplusplus diff --git a/libs/dolphin/dvd/dvd.c b/libs/dolphin/dvd/dvd.c index c3b4720d5af..668e8a363d3 100644 --- a/libs/dolphin/dvd/dvd.c +++ b/libs/dolphin/dvd/dvd.c @@ -4,10 +4,10 @@ // #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" +#include "dolphin/dvd/dvdlow.h" #include "dolphin/os/OS.h" // @@ -195,7 +195,7 @@ 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. "); + OSPanic(__FILE__, 661, "DVDChangeDisk(): FST in the new disc is too big. "); } DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition, @@ -236,8 +236,8 @@ static void cbForStateReadingFST(u32 intType) { } inline static void stateError(u32 error) { - __DVDStoreErrorCode(error); - DVDLowStopMotor(cbForStateError); + __DVDStoreErrorCode(error); + DVDLowStopMotor(cbForStateError); } /* 803492DC-80349388 343C1C 00AC+00 12/12 0/0 0/0 .text cbForStateError */ @@ -574,11 +574,11 @@ static void cbForStateCheckID2(u32 intType) { LastState = (stateFunc)stateReadingFST; if (bootInfo->fst_max_length < BB2.FSTLength) { - OSPanic("dvd.c", 661, "DVDChangeDisk(): FST in the new disc is too big. "); + OSPanic(__FILE__, 661, "DVDChangeDisk(): FST in the new disc is too big. "); } DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition, - cbForStateReadingFST); + cbForStateReadingFST); } else { stateGettingError(); @@ -844,199 +844,199 @@ static u32 ImmCommand[] = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF}; SECTION_SDATA static u32 DmaCommand[] = {0xFFFFFFFF}; inline static BOOL IsImmCommandWithResult(u32 command) { - u32 i; + u32 i; - if (command == 9 || command == 10 || command == 11 || command == 12) { - return TRUE; - } + 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; - } + for (i = 0; i < sizeof(ImmCommand) / sizeof(ImmCommand[0]); i++) { + if (command == ImmCommand[i]) + return TRUE; + } - return FALSE; + return FALSE; } inline static BOOL IsDmaCommand(u32 command) { - u32 i; + u32 i; - if (command == 1 || command == 4 || command == 5 || command == 14) - return TRUE; + 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; - } + for (i = 0; i < sizeof(DmaCommand) / sizeof(DmaCommand[0]); i++) { + if (command == DmaCommand[i]) + return TRUE; + } - return FALSE; + return FALSE; } /* 8034A6D4-8034AD2C 345014 0658+00 1/1 0/0 0/0 .text cbForStateBusy */ static void cbForStateBusy(u32 intType) { - DVDCommandBlock* finished; + 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(); + if (intType == 16) { + stateTimeout(); return; } - if (CheckCancel(0)) - 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)) { - if (executing->transferred_size != executing->length) { - stateBusy(executing); - return; - } + executing->transferred_size += executing->current_transfer_size - __DIRegs[6]; + } - 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 { + if (intType & 8) { + Canceling = FALSE; finished = executing; executing = &DummyCommandBlock; - finished->state = 0; - if (finished->callback) { - (finished->callback)(0, finished); - } + finished->state = 10; + if (finished->callback) + (*finished->callback)(-3, finished); + if (CancelCallback) + (CancelCallback)(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(); - } + 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(); + } } static inline BOOL issueCommand(s32 prio, DVDCommandBlock* block) { BOOL level; BOOL result; - if (autoInvalidation && (block->command == 1 || block->command == 4 || block->command == 5 || - block->command == 14)) { + if (autoInvalidation && + (block->command == 1 || block->command == 4 || block->command == 5 || block->command == 14)) { DCInvalidateRange(block->buffer, block->length); } @@ -1199,7 +1199,8 @@ void DVDResume(void) { /* ############################################################################################## */ /* 803D15F8-803D163C 02E718 0041+03 0/0 0/0 0/0 .data @789 */ -static char string_DVDChangeDiskAsyncMsg[] = "DVDChangeDiskAsync(): You can't specify NULL to company name. \n"; +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 */ BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) { @@ -1408,38 +1409,38 @@ BOOL DVDCheckDisk(void) { } inline void DVDPause(void) { - BOOL level; - level = OSDisableInterrupts(); - PauseFlag = TRUE; - if (executing == (DVDCommandBlock*)NULL) { - PausingFlag = TRUE; - } - OSRestoreInterrupts(level); + 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; + BOOL enabled; + DVDCommandBlock* p; + BOOL retVal; - enabled = OSDisableInterrupts(); - DVDPause(); + enabled = OSDisableInterrupts(); + DVDPause(); - while ((p = __DVDPopWaitingQueue()) != 0) { - DVDCancelAsync(p, NULL); - } + while ((p = __DVDPopWaitingQueue()) != 0) { + DVDCancelAsync(p, NULL); + } - if (executing) - retVal = DVDCancelAsync(executing, callback); - else { - retVal = TRUE; - if (callback) - (*callback)(0, NULL); - } + if (executing) + retVal = DVDCancelAsync(executing, callback); + else { + retVal = TRUE; + if (callback) + (*callback)(0, NULL); + } - DVDResume(); - OSRestoreInterrupts(enabled); - return retVal; + DVDResume(); + OSRestoreInterrupts(enabled); + return retVal; } /* 8034B720-8034B83C 346060 011C+00 0/0 1/1 0/0 .text __DVDPrepareResetAsync */ diff --git a/libs/dolphin/dvd/dvdFatal.c b/libs/dolphin/dvd/dvdFatal.c index 29b0376a641..d78eee5e7c7 100644 --- a/libs/dolphin/dvd/dvdFatal.c +++ b/libs/dolphin/dvd/dvdFatal.c @@ -23,14 +23,12 @@ void __DVDPrintFatalMessage(); /* ############################################################################################## */ /* 804517C8-804517D0 000CC8 0004+04 1/1 0/0 0/0 .sbss FatalFunc */ -static u8 FatalFunc[4 + 4 /* padding */]; +static void (*FatalFunc)(void) = NULL; /* 8034BCFC-8034BD2C 34663C 0030+00 0/0 1/1 0/0 .text __DVDPrintFatalMessage */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DVDPrintFatalMessage() { - nofralloc -#include "asm/dolphin/dvd/dvdFatal/__DVDPrintFatalMessage.s" +void __DVDPrintFatalMessage(void) { + if (!FatalFunc) { + return; + } + FatalFunc(); } -#pragma pop diff --git a/libs/dolphin/dvd/dvderror.c b/libs/dolphin/dvd/dvderror.c index 9183c16a13f..24ea0db874e 100644 --- a/libs/dolphin/dvd/dvderror.c +++ b/libs/dolphin/dvd/dvderror.c @@ -5,52 +5,78 @@ #include "dolphin/dvd/dvderror.h" #include "dol2asm.h" +#include "dolphin/os/OSRtc.h" #include "dolphin/types.h" // // Forward References: // -static void ErrorCode2Num(); +static u8 ErrorCode2Num(u32 errorCode); void __DVDStoreErrorCode(); // // External References: // -void __OSLockSramEx(); -void __OSUnlockSramEx(); - // // Declarations: // /* ############################################################################################## */ /* 803D16A8-803D16F0 02E7C8 0048+00 1/1 0/0 0/0 .data ErrorTable */ -SECTION_DATA static u8 ErrorTable[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x3A, 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0x03, 0x02, - 0x00, 0x00, 0x03, 0x11, 0x00, 0x00, 0x05, 0x20, 0x00, 0x00, 0x05, 0x20, 0x01, 0x00, 0x05, - 0x21, 0x00, 0x00, 0x05, 0x24, 0x00, 0x00, 0x05, 0x24, 0x01, 0x00, 0x05, 0x24, 0x02, 0x00, - 0x0B, 0x5A, 0x01, 0x00, 0x05, 0x63, 0x00, 0x00, 0x02, 0x04, 0x01, 0x00, 0x02, 0x04, 0x00, - 0x00, 0x04, 0x08, 0x00, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, +static u32 ErrorTable[] = { + 0, 0x00023A00, 0x00062800, 0x00030200, 0x00031100, 0x00052000, + 0x00052001, 0x00052100, 0x00052400, 0x00052401, 0x00052402, 0x000B5A01, + 0x00056300, 0x00020401, 0x00020400, 0x00040800, 0x00100007, 0, }; /* 8034BA6C-8034BB88 3463AC 011C+00 1/1 0/0 0/0 .text ErrorCode2Num */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void ErrorCode2Num() { - nofralloc -#include "asm/dolphin/dvd/dvderror/ErrorCode2Num.s" +static u8 ErrorCode2Num(u32 errorCode) { + u32 i; + + for (i = 0; i < sizeof(ErrorTable) / sizeof(ErrorTable[0]); i++) { + if (ErrorTable[i] == errorCode) { + return (u8)i; + } + } + + if ((errorCode >= 0x00100000) && (errorCode <= 0x00100008)) { + return 17; + } + + return 29; } -#pragma pop /* 8034BB88-8034BC04 3464C8 007C+00 0/0 12/12 0/0 .text __DVDStoreErrorCode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DVDStoreErrorCode() { - nofralloc -#include "asm/dolphin/dvd/dvderror/__DVDStoreErrorCode.s" +static u8 Convert(u32 error) { + u32 statusCode; + u32 errorCode; + u8 errorNum; + + if (error == 0x01234567) + return 255; + + if (error == 0x01234568) + return 254; + + statusCode = (error & 0xff000000) >> 24; + errorCode = error & 0x00ffffff; + + errorNum = ErrorCode2Num(errorCode); + if (statusCode >= 6) + statusCode = 6; + + return (u8)(statusCode * 30 + errorNum); +} + +void __DVDStoreErrorCode(u32 error) { + OSSramEx* sram; + u8 num; + + num = Convert(error); + + sram = __OSLockSramEx(); + sram->dvdErrorCode = num; + __OSUnlockSramEx(TRUE); } -#pragma pop diff --git a/libs/dolphin/dvd/dvdfs.c b/libs/dolphin/dvd/dvdfs.c index 4a32ab3ace9..be643958868 100644 --- a/libs/dolphin/dvd/dvdfs.c +++ b/libs/dolphin/dvd/dvdfs.c @@ -4,70 +4,74 @@ // #include "dolphin/dvd/dvdfs.h" +#include "dolphin/dvd/dvd.h" +#include "dolphin/os/OS.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "MSL_C/MSL_Common/Src/ctype.h" // // Forward References: // void __DVDFSInit(); -void DVDConvertPathToEntrynum(); -void DVDFastOpen(); -void DVDOpen(); -void DVDClose(); -static void entryToPath(); -static void DVDConvertEntrynumToPath(); -static void DVDGetCurrentDir(); -void DVDChangeDir(); -void DVDReadAsyncPrio(); +int DVDConvertPathToEntrynum(const char* path); +int DVDFastOpen(long entryNum, DVDFileInfo* info); +BOOL DVDOpen(const char* filename, DVDFileInfo* fileinfo); +BOOL DVDClose(DVDFileInfo* fileinfo); +static u32 entryToPath(u32 entry, char* path, u32 maxlen); +static BOOL DVDConvertEntrynumToPath(s32 entrynum, char* path, u32 maxlen); +static BOOL DVDGetCurrentDir(char* path, u32 maxlen); +BOOL DVDChangeDir(const char* dirname); +BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, + DVDCallback callback, s32 prio); static void cbForReadAsync(); -void DVDReadPrio(); +int DVDReadPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, s32 prio); static void cbForReadSync(); -void DVDOpenDir(); -void DVDReadDir(); -u8 DVDCloseDir(); +BOOL DVDOpenDir(const char*, DVDDirectory* dir); +BOOL DVDReadDir(DVDDirectory* dir, DVDDirectoryEntry* entry); +BOOL DVDCloseDir(); // // External References: // -void OSReport(); -void OSPanic(); -void OSDisableInterrupts(); -void OSRestoreInterrupts(); -void OSSleepThread(); -void OSWakeupThread(); -void DVDReadAbsAsyncPrio(); -void DVDCancel(); -void tolower(); - // // Declarations: // + +typedef struct FSTEntry FSTEntry; + +struct FSTEntry { + unsigned int isDirAndStringOff; + unsigned int parentOrPosition; + unsigned int nextEntryOrLength; +}; + /* ############################################################################################## */ /* 80451758-8045175C 000C58 0004+00 1/1 0/0 0/0 .sbss BootInfo */ -static u8 BootInfo[4]; +static OSBootInfo* BootInfo; /* 8045175C-80451760 000C5C 0004+00 10/10 0/0 0/0 .sbss FstStart */ -static u8 FstStart[4]; +static FSTEntry* FstStart; /* 80451760-80451764 000C60 0004+00 5/5 0/0 0/0 .sbss FstStringStart */ -static u8 FstStringStart[4]; +static char* FstStringStart; /* 80451764-80451768 000C64 0004+00 2/2 0/0 0/0 .sbss MaxEntryNum */ -static u8 MaxEntryNum[4]; +static unsigned int MaxEntryNum; /* 803484F0-80348528 342E30 0038+00 0/0 2/2 0/0 .text __DVDFSInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DVDFSInit() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/__DVDFSInit.s" +void __DVDFSInit() { + BootInfo = (OSBootInfo*)OSPhysicalToCached(0); + FstStart = (FSTEntry*)BootInfo->fst_location; + + if (FstStart) { + MaxEntryNum = FstStart[0].nextEntryOrLength; + FstStringStart = (char*)&(FstStart[MaxEntryNum]); + } } -#pragma pop /* ############################################################################################## */ /* 803D1380-803D1448 02E4A0 00C8+00 1/1 0/0 0/0 .data @119 */ @@ -80,173 +84,408 @@ SECTION_DATA static char lit_119[] = SECTION_SDATA static char lit_118[] = "dvdfs.c"; /* 80451768-8045176C 000C68 0004+00 4/4 0/0 0/0 .sbss currentDirectory */ -static u8 currentDirectory[4]; +static u32 currentDirectory; /* 80451770-80451778 000C70 0008+00 2/2 3/3 0/0 .sbss __DVDThreadQueue */ -extern u8 __DVDThreadQueue[8]; -u8 __DVDThreadQueue[8]; +OSThreadQueue __DVDThreadQueue; /* 8045176C-80451770 000C6C 0004+00 1/1 1/1 0/0 .sbss __DVDLongFileNameFlag */ -extern u8 __DVDLongFileNameFlag[4]; -u8 __DVDLongFileNameFlag[4]; +u32 __DVDLongFileNameFlag; + + +/* For convenience */ +#define entryIsDir(i) (((FstStart[i].isDirAndStringOff & 0xff000000) == 0) ? FALSE : TRUE) +#define stringOff(i) (FstStart[i].isDirAndStringOff & ~0xff000000) +#define parentDir(i) (FstStart[i].parentOrPosition) +#define nextDir(i) (FstStart[i].nextEntryOrLength) +#define filePosition(i) (FstStart[i].parentOrPosition) +#define fileLength(i) (FstStart[i].nextEntryOrLength) + +static inline BOOL isSame(const char* path, const char* string) { + while (*string != '\0') { + if (tolower(*path++) != tolower(*string++)) { + return FALSE; + } + } + + if ((*path == '/') || (*path == '\0')) { + return TRUE; + } + + return FALSE; +} /* 80348528-8034881C 342E68 02F4+00 3/3 6/6 0/0 .text DVDConvertPathToEntrynum */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DVDConvertPathToEntrynum() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDConvertPathToEntrynum.s" +int DVDConvertPathToEntrynum(const char* pathPtr) { + const char* ptr; + char* stringPtr; + BOOL isDir; + u32 length; + u32 dirLookAt; + u32 i; + const char* origPathPtr = pathPtr; + const char* extentionStart; + BOOL illegal; + BOOL extention; + + dirLookAt = currentDirectory; + + while (1) { + if (*pathPtr == '\0') { + return (s32)dirLookAt; + } else if (*pathPtr == '/') { + dirLookAt = 0; + pathPtr++; + continue; + } else if (*pathPtr == '.') { + if (*(pathPtr + 1) == '.') { + if (*(pathPtr + 2) == '/') { + dirLookAt = parentDir(dirLookAt); + pathPtr += 3; + continue; + } else if (*(pathPtr + 2) == '\0') { + return (s32)parentDir(dirLookAt); + } + } else if (*(pathPtr + 1) == '/') { + pathPtr += 2; + continue; + } else if (*(pathPtr + 1) == '\0') { + return (s32)dirLookAt; + } + } + + if (__DVDLongFileNameFlag == 0) { + extention = FALSE; + illegal = FALSE; + + for (ptr = pathPtr; (*ptr != '\0') && (*ptr != '/'); ptr++) { + if (*ptr == '.') { + if ((ptr - pathPtr > 8) || (extention == TRUE)) { + illegal = TRUE; + break; + } + extention = TRUE; + extentionStart = ptr + 1; + + } else if (*ptr == ' ') + illegal = TRUE; + } + + if ((extention == TRUE) && (ptr - extentionStart > 3)) + illegal = TRUE; + + if (illegal) + OSPanic(lit_118, 387, lit_119, origPathPtr); + } else { + for (ptr = pathPtr; (*ptr != '\0') && (*ptr != '/'); ptr++) + ; + } + + isDir = (*ptr == '\0') ? FALSE : TRUE; + length = (u32)(ptr - pathPtr); + + ptr = pathPtr; + + for (i = dirLookAt + 1; i < nextDir(dirLookAt); i = entryIsDir(i) ? nextDir(i) : (i + 1)) { + if ((entryIsDir(i) == FALSE) && (isDir == TRUE)) { + continue; + } + + stringPtr = FstStringStart + stringOff(i); + + if (isSame(ptr, stringPtr) == TRUE) { + goto next_hier; + } + } + + return -1; + + next_hier: + if (!isDir) { + return (s32)i; + } + + dirLookAt = i; + pathPtr += length + 1; + } } -#pragma pop /* 8034881C-80348890 34315C 0074+00 0/0 3/3 0/0 .text DVDFastOpen */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DVDFastOpen() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDFastOpen.s" +int DVDFastOpen(s32 entrynum, DVDFileInfo* fileInfo) { + if ((entrynum < 0) || (entrynum >= MaxEntryNum) || entryIsDir(entrynum)) { + return FALSE; + } + + fileInfo->start_address = filePosition(entrynum); + fileInfo->length = fileLength(entrynum); + fileInfo->callback = (DVDCallback)NULL; + fileInfo->block.state = DVD_STATE_END; + + return TRUE; } -#pragma pop /* ############################################################################################## */ -/* 803D1448-803D1480 02E568 0037+01 1/1 0/0 0/0 .data @140 */ -SECTION_DATA static char lit_140[] = "Warning: DVDOpen(): file '%s' was not found under %s.\n"; /* 80348890-80348958 3431D0 00C8+00 0/0 3/3 1/1 .text DVDOpen */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DVDOpen() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDOpen.s" +BOOL DVDOpen(const char* fileName, DVDFileInfo* fileInfo) { + s32 entry; + char currentDir[128]; + + entry = DVDConvertPathToEntrynum(fileName); + + if (0 > entry) { + DVDGetCurrentDir(currentDir, 128); + OSReport("Warning: DVDOpen(): file '%s' was not found under %s.\n", fileName, currentDir); + return FALSE; + } + + if (entryIsDir(entry)) { + return FALSE; + } + + fileInfo->start_address = filePosition(entry); + fileInfo->length = fileLength(entry); + fileInfo->callback = (DVDCallback)NULL; + fileInfo->block.state = DVD_STATE_END; + + return TRUE; } -#pragma pop /* 80348958-8034897C 343298 0024+00 0/0 4/4 2/2 .text DVDClose */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DVDClose() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDClose.s" +BOOL DVDClose(DVDFileInfo* fileInfo) { + DVDCancel(&(fileInfo->block)); + return TRUE; +} + +static inline u32 myStrncpy(char* dest, char* src, u32 maxlen) { + u32 i = maxlen; + + while ((i > 0) && (*src != 0)) { + *dest++ = *src++; + i--; + } + + return (maxlen - i); } -#pragma pop /* 8034897C-80348ADC 3432BC 0160+00 2/2 0/0 0/0 .text entryToPath */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void entryToPath() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/entryToPath.s" +static u32 entryToPath(u32 entry, char* path, u32 maxlen) { + char* name; + u32 loc; + + if (entry == 0) { + return 0; + } + + name = FstStringStart + stringOff(entry); + + loc = entryToPath(parentDir(entry), path, maxlen); + + if (loc == maxlen) { + return loc; + } + + *(path + loc++) = '/'; + + loc += myStrncpy(path + loc, name, maxlen - loc); + + return loc; } -#pragma pop /* 80348ADC-80348C30 34341C 0154+00 1/1 0/0 0/0 .text DVDConvertEntrynumToPath */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void DVDConvertEntrynumToPath() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDConvertEntrynumToPath.s" +static BOOL DVDConvertEntrynumToPath(s32 entrynum, char* path, u32 maxlen) { + u32 loc; + + loc = entryToPath((u32)entrynum, path, maxlen); + + if (loc == maxlen) { + path[maxlen - 1] = '\0'; + return FALSE; + } + + if (entryIsDir(entrynum)) { + if (loc == maxlen - 1) { + path[loc] = '\0'; + return FALSE; + } + + path[loc++] = '/'; + } + + path[loc] = '\0'; + return TRUE; } -#pragma pop + /* 80348C30-80348CF4 343570 00C4+00 1/1 0/0 0/0 .text DVDGetCurrentDir */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void DVDGetCurrentDir() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDGetCurrentDir.s" +BOOL DVDGetCurrentDir(char* path, u32 maxlen) { + return DVDConvertEntrynumToPath((s32)currentDirectory, path, maxlen); } -#pragma pop /* 80348CF4-80348D54 343634 0060+00 0/0 2/2 0/0 .text DVDChangeDir */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DVDChangeDir() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDChangeDir.s" +BOOL DVDChangeDir(const char* dirName) { + s32 entry; + entry = DVDConvertPathToEntrynum(dirName); + if ((entry < 0) || (entryIsDir(entry) == FALSE)) { + return FALSE; + } + + currentDirectory = (u32)entry; + + return TRUE; } -#pragma pop /* ############################################################################################## */ /* 803D1480-803D14B4 02E5A0 0034+00 1/1 0/0 0/0 .data @239 */ SECTION_DATA static char lit_239[] = "DVDReadAsync(): specified area is out of the file "; +#define DVD_MIN_TRANSFER_SIZE 32 + /* 80348D54-80348E14 343694 00C0+00 0/0 2/2 0/0 .text DVDReadAsyncPrio */ +#ifdef NONMATCHING +BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, + DVDCallback callback, s32 prio) { + + if (!((0 <= offset) && (offset <= fileInfo->length))) { + OSPanic(lit_118, 750, lit_239); + } + + if (!((0 <= offset + length) && (offset + length < fileInfo->length + DVD_MIN_TRANSFER_SIZE))) { + OSPanic(lit_118, 756, lit_239); + } + + fileInfo->callback = callback; + DVDReadAbsAsyncPrio(&(fileInfo->block), addr, length, (s32)(fileInfo->start_address + offset), + cbForReadAsync, prio); + + return TRUE; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void DVDReadAsyncPrio() { +asm BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, + DVDCallback callback, s32 prio) { nofralloc #include "asm/dolphin/dvd/dvdfs/DVDReadAsyncPrio.s" } #pragma pop +#endif + +#ifndef offsetof +#define offsetof(type, memb) ((u32) & ((type*)0)->memb) +#endif /* 80348E14-80348E44 343754 0030+00 1/1 0/0 0/0 .text cbForReadAsync */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void cbForReadAsync() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/cbForReadAsync.s" +static void cbForReadAsync(s32 result, DVDCommandBlock* block) { + DVDFileInfo* fileInfo; + + fileInfo = (DVDFileInfo*)((char*)block - offsetof(DVDFileInfo, block)); + if (fileInfo->callback) { + (fileInfo->callback)(result, fileInfo); + } } -#pragma pop /* ############################################################################################## */ -/* 803D14B4-803D14E4 02E5D4 002F+01 1/1 0/0 0/0 .data @265 */ -SECTION_DATA static char lit_265[] = "DVDRead(): specified area is out of the file "; /* 80348E44-80348F5C 343784 0118+00 0/0 9/9 3/3 .text DVDReadPrio */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DVDReadPrio() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDReadPrio.s" +int DVDReadPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, s32 prio) { + BOOL result; + DVDCommandBlock* block; + s32 state; + BOOL enabled; + int retVal; + + if (!((0 <= offset) && (offset <= fileInfo->length))) { + OSPanic(lit_118, 820, "DVDRead(): specified area is out of the file "); + } + + if (!((0 <= offset + length) && (offset + length < fileInfo->length + DVD_MIN_TRANSFER_SIZE))) { + OSPanic(lit_118, 826, "DVDRead(): specified area is out of the file "); + } + + block = &(fileInfo->block); + + result = DVDReadAbsAsyncPrio(block, addr, length, (s32)(fileInfo->start_address + offset), + cbForReadSync, prio); + + if (result == FALSE) { + return -1; + } + + enabled = OSDisableInterrupts(); + + while (1) { + state = ((volatile DVDCommandBlock*)block)->state; + + if (state == DVD_STATE_END) { + retVal = (s32)block->transferred_size; + break; + } + if (state == DVD_STATE_FATAL_ERROR) { + retVal = DVD_RESULT_FATAL_ERROR; + break; + } + if (state == DVD_STATE_CANCELED) { + retVal = DVD_RESULT_CANCELED; + break; + } + + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return retVal; } -#pragma pop /* 80348F5C-80348F80 34389C 0024+00 1/1 0/0 0/0 .text cbForReadSync */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void cbForReadSync() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/cbForReadSync.s" -} -#pragma pop +/* This is based on the revolution SDK, these may not match in all cases */ +static void cbForReadSync(s32 result, DVDCommandBlock* block) { OSWakeupThread(&__DVDThreadQueue); } /* ############################################################################################## */ /* 803D14E4-803D1520 02E604 003A+02 1/1 0/0 0/0 .data @311 */ SECTION_DATA static char lit_311[] = "Warning: DVDOpenDir(): file '%s' was not found under %s.\n"; /* 80348F80-80349040 3438C0 00C0+00 0/0 3/3 0/0 .text DVDOpenDir */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DVDOpenDir() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDOpenDir.s" +BOOL DVDOpenDir(const char* dirName, DVDDirectory* dir) { + s32 entry; + char currentDir[128]; + entry = DVDConvertPathToEntrynum(dirName); + + if (entry < 0) { + DVDGetCurrentDir(currentDir, 128); + OSReport(lit_311, dirName, currentDir); + return FALSE; + } + + if (!entryIsDir(entry)) { + return FALSE; + } + + dir->entry_number = (u32)entry; + dir->location = (u32)entry + 1; + dir->next = nextDir(entry); + + return TRUE; } -#pragma pop /* 80349040-803490E4 343980 00A4+00 0/0 3/3 0/0 .text DVDReadDir */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DVDReadDir() { - nofralloc -#include "asm/dolphin/dvd/dvdfs/DVDReadDir.s" +BOOL DVDReadDir(DVDDirectory* dir, DVDDirectoryEntry* dirent) { + u32 loc = dir->location; + if ((loc <= dir->entry_number) || (dir->next <= loc)) { + return FALSE; + } + + dirent->entry_number = loc; + dirent->is_directory = entryIsDir(loc); + dirent->name = FstStringStart + stringOff(loc); + + dir->location = entryIsDir(loc) ? nextDir(loc) : (loc + 1); + + return TRUE; } -#pragma pop /* 803490E4-803490EC 343A24 0008+00 0/0 3/3 0/0 .text DVDCloseDir */ -u8 DVDCloseDir() { +BOOL DVDCloseDir() { return 1; } diff --git a/libs/dolphin/dvd/dvdqueue.c b/libs/dolphin/dvd/dvdqueue.c index 07e41a615b1..dca7a503b00 100644 --- a/libs/dolphin/dvd/dvdqueue.c +++ b/libs/dolphin/dvd/dvdqueue.c @@ -6,78 +6,153 @@ #include "dolphin/dvd/dvdqueue.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "dolphin/dvd/dvd.h" +#include "dolphin/os/OSInterrupt.h" // // Forward References: // void __DVDClearWaitingQueue(); -void __DVDPushWaitingQueue(); -void __DVDPopWaitingQueue(); -void __DVDCheckWaitingQueue(); -void __DVDDequeueWaitingQueue(); +BOOL __DVDPushWaitingQueue(s32 prio, DVDCommandBlock* block); +DVDCommandBlock* __DVDPopWaitingQueue(void); +BOOL __DVDCheckWaitingQueue(void); +BOOL __DVDDequeueWaitingQueue(DVDCommandBlock* block); // // External References: // -void OSDisableInterrupts(); -void OSRestoreInterrupts(); - // // Declarations: // +#define MAX_QUEUES 4 + +typedef struct { + DVDCommandBlock* next; + DVDCommandBlock* prev; +} DVDQueue; + /* ############################################################################################## */ /* 8044C998-8044C9B8 0796B8 0020+00 4/4 0/0 0/0 .bss WaitingQueue */ -static u8 WaitingQueue[32]; +static DVDQueue WaitingQueue[MAX_QUEUES]; /* 8034B874-8034B8AC 3461B4 0038+00 0/0 5/5 0/0 .text __DVDClearWaitingQueue */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DVDClearWaitingQueue() { - nofralloc -#include "asm/dolphin/dvd/dvdqueue/__DVDClearWaitingQueue.s" +void __DVDClearWaitingQueue(void) { + u32 i; + + for (i = 0; i < MAX_QUEUES; i++) { + DVDCommandBlock* q; + + q = (DVDCommandBlock*)&(WaitingQueue[i]); + q->next = q; + q->prev = q; + } } -#pragma pop /* 8034B8AC-8034B914 3461EC 0068+00 0/0 5/5 0/0 .text __DVDPushWaitingQueue */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DVDPushWaitingQueue() { - nofralloc -#include "asm/dolphin/dvd/dvdqueue/__DVDPushWaitingQueue.s" +BOOL __DVDPushWaitingQueue(s32 prio, DVDCommandBlock* block) { + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + + q = (DVDCommandBlock*)&(WaitingQueue[prio]); + + q->prev->next = block; + block->prev = q->prev; + block->next = q; + q->prev = block; + + OSRestoreInterrupts(enabled); + + return TRUE; +} + +static inline DVDCommandBlock* PopWaitingQueuePrio(s32 prio) { + DVDCommandBlock* tmp; + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + + q = (DVDCommandBlock*)&(WaitingQueue[prio]); + + tmp = q->next; + q->next = tmp->next; + tmp->next->prev = q; + + OSRestoreInterrupts(enabled); + + tmp->next = (DVDCommandBlock*)NULL; + tmp->prev = (DVDCommandBlock*)NULL; + + return tmp; } -#pragma pop /* 8034B914-8034B9B4 346254 00A0+00 0/0 2/2 0/0 .text __DVDPopWaitingQueue */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DVDPopWaitingQueue() { - nofralloc -#include "asm/dolphin/dvd/dvdqueue/__DVDPopWaitingQueue.s" +DVDCommandBlock* __DVDPopWaitingQueue(void) { + u32 i; + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + + for (i = 0; i < MAX_QUEUES; i++) { + q = (DVDCommandBlock*)&(WaitingQueue[i]); + if (q->next != q) { + OSRestoreInterrupts(enabled); + return PopWaitingQueuePrio((s32)i); + } + } + + OSRestoreInterrupts(enabled); + + return (DVDCommandBlock*)NULL; } -#pragma pop /* 8034B9B4-8034BA0C 3462F4 0058+00 0/0 1/1 0/0 .text __DVDCheckWaitingQueue */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DVDCheckWaitingQueue() { - nofralloc -#include "asm/dolphin/dvd/dvdqueue/__DVDCheckWaitingQueue.s" +BOOL __DVDCheckWaitingQueue(void) { + u32 i; + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + + for (i = 0; i < MAX_QUEUES; i++) { + q = (DVDCommandBlock*)&(WaitingQueue[i]); + if (q->next != q) { + OSRestoreInterrupts(enabled); + return TRUE; + } + } + + OSRestoreInterrupts(enabled); + + return FALSE; } -#pragma pop /* 8034BA0C-8034BA6C 34634C 0060+00 0/0 1/1 0/0 .text __DVDDequeueWaitingQueue */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __DVDDequeueWaitingQueue() { - nofralloc -#include "asm/dolphin/dvd/dvdqueue/__DVDDequeueWaitingQueue.s" +BOOL __DVDDequeueWaitingQueue(DVDCommandBlock* block) { + BOOL enabled; + DVDCommandBlock* prev; + DVDCommandBlock* next; + + enabled = OSDisableInterrupts(); + + prev = block->prev; + next = block->next; + + if ((prev == (DVDCommandBlock*)NULL) || (next == (DVDCommandBlock*)NULL)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + prev->next = next; + next->prev = prev; + + OSRestoreInterrupts(enabled); + + return TRUE; } -#pragma pop diff --git a/libs/dolphin/exi/EXIBios.c b/libs/dolphin/exi/EXIBios.c index a2534b240e9..0f483ab2d80 100644 --- a/libs/dolphin/exi/EXIBios.c +++ b/libs/dolphin/exi/EXIBios.c @@ -10,6 +10,9 @@ #define REG_MAX 5 #define REG(chan, idx) (__EXIRegs[((chan)*REG_MAX) + (idx)]) +#define CPR_CS(x) ((1u << (x)) << 7) +#define CPR_CLK(x) ((x) << 4) + #define EXI_0CR(tstart, dma, rw, tlen) \ ((((u32)(tstart)) << 0) | (((u32)(dma)) << 1) | (((u32)(rw)) << 2) | (((u32)(tlen)) << 4)) @@ -28,10 +31,10 @@ static void EXTIntrruptHandler(s16 interrupt, OSContext* context); // External References: // -void __OSEnableBarnacle(); +void __OSEnableBarnacle(u32, u32); void __div2i(); void memmove(); -extern u8 __OSInIPL[4 + 4 /* padding */]; +extern s32 __OSInIPL; // // Declarations: @@ -42,28 +45,27 @@ extern u8 __OSInIPL[4 + 4 /* padding */]; static EXIControl Ecb[3]; /* 80342C0C-80342D00 33D54C 00F4+00 4/4 0/0 0/0 .text SetExiInterruptMask */ -#ifdef NONMATCHING static void SetExiInterruptMask(s32 chan, EXIControl* exi) { EXIControl* exi2; exi2 = &Ecb[2]; switch (chan) { case 0: - if ((exi->exiCallback == 0 && exi2->exiCallback == 0) || (exi->state & STATE_LOCKED)) { + if ((exi->exiCallback == 0 && exi2->exiCallback == 0) || (exi->state & EXI_STATE_LOCKED)) { __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXI | OS_INTERRUPTMASK_EXI_2_EXI); } else { __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXI | OS_INTERRUPTMASK_EXI_2_EXI); } break; case 1: - if (exi->exiCallback == 0 || (exi->state & STATE_LOCKED)) { + if (exi->exiCallback == 0 || (exi->state & EXI_STATE_LOCKED)) { __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXI); } else { __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXI); } break; case 2: - if (__OSGetInterruptHandler(OS_INTR_PI_DEBUG) == 0 || (exi->state & STATE_LOCKED)) { + if (__OSGetInterruptHandler(OS_INTR_PI_DEBUG) == 0 || (exi->state & EXI_STATE_LOCKED)) { __OSMaskInterrupts(OS_INTERRUPTMASK_PI_DEBUG); } else { __OSUnmaskInterrupts(OS_INTERRUPTMASK_PI_DEBUG); @@ -71,19 +73,8 @@ static void SetExiInterruptMask(s32 chan, EXIControl* exi) { break; } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void SetExiInterruptMask(s32 chan, EXIControl* exi) { - nofralloc -#include "asm/exi/EXIBios/SetExiInterruptMask.s" -} -#pragma pop -#endif /* 80342D00-80342F5C 33D640 025C+00 2/2 9/9 0/0 .text EXIImm */ -#ifdef NONMATCHING s32 EXIImm(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) { EXIControl* exi = &Ecb[chan]; BOOL enabled; @@ -122,20 +113,8 @@ s32 EXIImm(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) { return TRUE; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 EXIImm(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) { - nofralloc -#include "asm/exi/EXIBios/EXIImm.s" -} -#pragma pop -#endif /* 80342F5C-80342FFC 33D89C 00A0+00 0/0 7/7 0/0 .text EXIImmEx */ -// needs compiler lmw/lwz order patch -#ifdef NONMATCHING s32 EXIImmEx(s32 chan, void* buf, s32 len, u32 mode) { s32 xLen; @@ -154,19 +133,8 @@ s32 EXIImmEx(s32 chan, void* buf, s32 len, u32 mode) { } return TRUE; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 EXIImmEx(s32 chan, void* buf, s32 len, u32 mode) { - nofralloc -#include "asm/exi/EXIBios/EXIImmEx.s" -} -#pragma pop -#endif /* 80342FFC-803430E8 33D93C 00EC+00 0/0 4/4 0/0 .text EXIDma */ -#ifdef NONMATCHING BOOL EXIDma(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) { EXIControl* exi = &Ecb[chan]; BOOL enabled; @@ -193,146 +161,361 @@ BOOL EXIDma(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) { return TRUE; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL EXIDma(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) { - nofralloc -#include "asm/exi/EXIBios/EXIDma.s" + +static void CompleteTransfer(s32 chan) { + EXIControl* exi = &Ecb[chan]; + u8* buf; + u32 data; + int i; + int len; + + if (exi->state & EXI_STATE_BUSY) { + if ((exi->state & EXI_STATE_IMM) && (len = exi->immLen)) { + buf = exi->immBuf; + data = REG(chan, 4); + for (i = 0; i < len; i++) { + *buf++ = (u8)((data >> ((3 - i) * 8)) & 0xff); + } + } + exi->state &= ~EXI_STATE_BUSY; + } } -#pragma pop -#endif /* 803430E8-80343334 33DA28 024C+00 2/2 9/9 0/0 .text EXISync */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL EXISync(s32 chan) { - nofralloc -#include "asm/exi/EXIBios/EXISync.s" +BOOL EXISync(s32 chan) { + EXIControl* exi = &Ecb[chan]; + BOOL rc = FALSE; + BOOL enabled; + + while (exi->state & EXI_STATE_SELECTED) { + if (((REG(chan, 3) & 1) >> 0) == 0) { + enabled = OSDisableInterrupts(); + if (exi->state & EXI_STATE_SELECTED) { + CompleteTransfer(chan); + if (__OSGetDIConfig() != 0xff || (OSGetConsoleType() & 0xf0000000) == 0x20000000 || + exi->immLen != 4 || (REG(chan, 0) & 0x00000070) != (EXI_FREQ_1M << 4) || + (REG(chan, 4) != EXI_USB_ADAPTER && REG(chan, 4) != EXI_IS_VIEWER && + REG(chan, 4) != 0x04220001) || + __OSDeviceCode == 0x8200) { + rc = TRUE; + } + } + OSRestoreInterrupts(enabled); + break; + } + } + return rc; } -#pragma pop /* 80343334-8034337C 33DC74 0048+00 4/4 0/0 0/0 .text EXIClearInterrupts */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm u32 EXIClearInterrupts(s32 chan, BOOL exi, BOOL tc, BOOL ext) { - nofralloc -#include "asm/exi/EXIBios/EXIClearInterrupts.s" +u32 EXIClearInterrupts(s32 chan, BOOL exi, BOOL tc, BOOL ext) { + u32 cpr; + u32 prev; + + prev = cpr = REG(chan, 0); + cpr &= 0x7f5; + if (exi) + cpr |= 2; + if (tc) + cpr |= 8; + if (ext) + cpr |= 0x800; + REG(chan, 0) = cpr; + return prev; } -#pragma pop /* 8034337C-803433F8 33DCBC 007C+00 0/0 6/6 0/0 .text EXISetExiCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm EXICallback EXISetExiCallback(s32 chan, EXICallback exiCallback) { - nofralloc -#include "asm/exi/EXIBios/EXISetExiCallback.s" +EXICallback EXISetExiCallback(s32 chan, EXICallback exiCallback) { + EXIControl* exi = &Ecb[chan]; + EXICallback prev; + BOOL enabled; + + enabled = OSDisableInterrupts(); + prev = exi->exiCallback; + exi->exiCallback = exiCallback; + + if (chan != 2) { + SetExiInterruptMask(chan, exi); + } else { + SetExiInterruptMask(0, &Ecb[0]); + } + + OSRestoreInterrupts(enabled); + return prev; } -#pragma pop + +s32 __EXIProbeStartTime[2] : (OS_BASE_CACHED | 0x30C0); /* 803433F8-8034356C 33DD38 0174+00 7/7 0/0 0/0 .text __EXIProbe */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL __EXIProbe(s32 chan) { - nofralloc -#include "asm/exi/EXIBios/__EXIProbe.s" +static BOOL __EXIProbe(s32 chan) { + EXIControl* exi = &Ecb[chan]; + BOOL enabled; + BOOL rc; + u32 cpr; + s32 t; + + if (chan == 2) { + return TRUE; + } + + rc = TRUE; + enabled = OSDisableInterrupts(); + cpr = REG(chan, 0); + if (!(exi->state & EXI_STATE_ATTACHED)) { + if (cpr & 0x00000800) { + EXIClearInterrupts(chan, FALSE, FALSE, TRUE); + __EXIProbeStartTime[chan] = exi->idTime = 0; + } + + if (cpr & 0x00001000) { + t = (s32)(OSTicksToMilliseconds(OSGetTime()) / 100) + 1; + if (__EXIProbeStartTime[chan] == 0) { + __EXIProbeStartTime[chan] = t; + } + if (t - __EXIProbeStartTime[chan] < 300 / 100) { + rc = FALSE; + } + } else { + __EXIProbeStartTime[chan] = exi->idTime = 0; + rc = FALSE; + } + } else if (!(cpr & 0x00001000) || (cpr & 0x00000800)) { + __EXIProbeStartTime[chan] = exi->idTime = 0; + rc = FALSE; + } + OSRestoreInterrupts(enabled); + + return rc; } -#pragma pop /* 8034356C-803435EC 33DEAC 0080+00 0/0 5/5 0/0 .text EXIProbe */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL EXIProbe(s32 chan) { - nofralloc -#include "asm/exi/EXIBios/EXIProbe.s" +BOOL EXIProbe(s32 chan) { + EXIControl* exi = &Ecb[chan]; + BOOL rc; + u32 id; + + rc = __EXIProbe(chan); + if (rc && exi->idTime == 0) { + rc = EXIGetID(chan, 0, &id) ? TRUE : FALSE; + } + return rc; } -#pragma pop /* 803435EC-803436A0 33DF2C 00B4+00 0/0 1/1 0/0 .text EXIProbeEx */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 EXIProbeEx(s32 chan) { - nofralloc -#include "asm/exi/EXIBios/EXIProbeEx.s" + +s32 EXIProbeEx(s32 chan) { + if (EXIProbe(chan)) { + return 1; + } else if (__EXIProbeStartTime[chan] != 0) { + return 0; + } else { + return -1; + } } -#pragma pop /* 803436A0-803437AC 33DFE0 010C+00 0/0 2/2 0/0 .text EXIAttach */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL EXIAttach(s32 chan, EXICallback extCallback) { - nofralloc -#include "asm/exi/EXIBios/EXIAttach.s" +static BOOL __EXIAttach(s32 chan, EXICallback extCallback) { + EXIControl* exi = &Ecb[chan]; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if ((exi->state & EXI_STATE_ATTACHED) || __EXIProbe(chan) == FALSE) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + EXIClearInterrupts(chan, TRUE, FALSE, FALSE); + + exi->extCallback = extCallback; + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXT >> (3 * chan)); + exi->state |= EXI_STATE_ATTACHED; + OSRestoreInterrupts(enabled); + + return TRUE; +} + +BOOL EXIAttach(s32 chan, EXICallback extCallback) { + EXIControl* exi = &Ecb[chan]; + BOOL enabled; + BOOL rc; + + EXIProbe(chan); + + enabled = OSDisableInterrupts(); + if (exi->idTime == 0) { + OSRestoreInterrupts(enabled); + return FALSE; + } + rc = __EXIAttach(chan, extCallback); + OSRestoreInterrupts(enabled); + return rc; } -#pragma pop /* 803437AC-80343868 33E0EC 00BC+00 0/0 3/3 0/0 .text EXIDetach */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL EXIDetach(s32 chan) { - nofralloc -#include "asm/exi/EXIBios/EXIDetach.s" +BOOL EXIDetach(s32 chan) { + EXIControl* exi = &Ecb[chan]; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if (!(exi->state & EXI_STATE_ATTACHED)) { + OSRestoreInterrupts(enabled); + return TRUE; + } + if ((exi->state & EXI_STATE_LOCKED) && exi->dev == 0) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + exi->state &= ~EXI_STATE_ATTACHED; + __OSMaskInterrupts((OS_INTERRUPTMASK_EXI_0_EXT | OS_INTERRUPTMASK_EXI_0_EXI) >> (3 * chan)); + OSRestoreInterrupts(enabled); + return TRUE; } -#pragma pop /* 80343868-80343994 33E1A8 012C+00 1/1 12/12 0/0 .text EXISelect */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL EXISelect(s32 chan, u32 dev, u32 freq) { - nofralloc -#include "asm/exi/EXIBios/EXISelect.s" +BOOL EXISelect(s32 chan, u32 dev, u32 freq) { + EXIControl* exi = &Ecb[chan]; + u32 cpr; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if ((exi->state & EXI_STATE_SELECTED) || + chan != 2 && (dev == 0 && !(exi->state & EXI_STATE_ATTACHED) && !__EXIProbe(chan) || + !(exi->state & EXI_STATE_LOCKED) || (exi->dev != dev))) + { + OSRestoreInterrupts(enabled); + return FALSE; + } + + exi->state |= EXI_STATE_SELECTED; + cpr = REG(chan, 0); + cpr &= 0x405; + cpr |= CPR_CS(dev) | CPR_CLK(freq); + REG(chan, 0) = cpr; + + if (exi->state & EXI_STATE_ATTACHED) { + switch (chan) { + case 0: + __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXT); + break; + case 1: + __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXT); + break; + } + } + + OSRestoreInterrupts(enabled); + return TRUE; } -#pragma pop /* 80343994-80343AA4 33E2D4 0110+00 1/1 15/15 0/0 .text EXIDeselect */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL EXIDeselect(s32 chan) { - nofralloc -#include "asm/exi/EXIBios/EXIDeselect.s" +BOOL EXIDeselect(s32 chan) { + EXIControl* exi = &Ecb[chan]; + u32 cpr; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if (!(exi->state & EXI_STATE_SELECTED)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + exi->state &= ~EXI_STATE_SELECTED; + cpr = REG(chan, 0); + REG(chan, 0) = cpr & 0x405; + + if (exi->state & EXI_STATE_ATTACHED) { + switch (chan) { + case 0: + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXT); + break; + case 1: + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXT); + break; + } + } + + OSRestoreInterrupts(enabled); + + if (chan != 2 && (cpr & CPR_CS(0))) { + return __EXIProbe(chan) ? TRUE : FALSE; + } + + return TRUE; } -#pragma pop /* 80343AA4-80343B6C 33E3E4 00C8+00 1/1 0/0 0/0 .text EXIIntrruptHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void EXIIntrruptHandler(s16 interrupt, OSContext* context) { - nofralloc -#include "asm/exi/EXIBios/EXIIntrruptHandler.s" +static void EXIIntrruptHandler(s16 interrupt, OSContext* context) { + s32 chan; + EXIControl* exi; + EXICallback callback; + + chan = (interrupt - OS_INTR_EXI_0_EXI) / 3; + exi = &Ecb[chan]; + EXIClearInterrupts(chan, TRUE, FALSE, FALSE); + callback = exi->exiCallback; + if (callback) { + OSContext exceptionContext; + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + callback(chan, context); + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } } -#pragma pop /* 80343B6C-80343D84 33E4AC 0218+00 1/1 0/0 0/0 .text TCIntrruptHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void TCIntrruptHandler(s16 interrupt, OSContext* context) { - nofralloc -#include "asm/exi/EXIBios/TCIntrruptHandler.s" +static void TCIntrruptHandler(s16 interrupt, OSContext* context) { + OSContext exceptionContext; + s32 chan; + EXIControl* exi; + EXICallback callback; + + chan = (interrupt - OS_INTR_EXI_0_TC) / 3; + exi = &Ecb[chan]; + __OSMaskInterrupts(OS_INTERRUPTMASK(interrupt)); + EXIClearInterrupts(chan, FALSE, TRUE, FALSE); + callback = exi->tcCallback; + if (callback) { + exi->tcCallback = 0; + CompleteTransfer(chan); + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + callback(chan, context); + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } } -#pragma pop /* 80343D84-80343E54 33E6C4 00D0+00 1/1 0/0 0/0 .text EXTIntrruptHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void EXTIntrruptHandler(s16 interrupt, OSContext* context) { - nofralloc -#include "asm/exi/EXIBios/EXTIntrruptHandler.s" +static void EXTIntrruptHandler(s16 interrupt, OSContext* context) { + s32 chan; + EXIControl* exi; + EXICallback callback; + + chan = (interrupt - OS_INTR_EXI_0_EXT) / 3; + __OSMaskInterrupts((OS_INTERRUPTMASK_EXI_0_EXT | OS_INTERRUPTMASK_EXI_0_EXI) >> (3 * chan)); + exi = &Ecb[chan]; + callback = exi->extCallback; + exi->state &= ~EXI_STATE_ATTACHED; + if (callback) { + OSContext exceptionContext; + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + exi->extCallback = 0; + callback(chan, context); + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } } -#pragma pop /* ############################################################################################## */ /* 803D10A8-803D10F0 02E1C8 0045+03 1/0 0/0 0/0 .data @1 */ @@ -343,59 +526,187 @@ SECTION_DATA static char lit_1[] = SECTION_SDATA static const char* __EXIVersion = lit_1; /* 804516D8-804516E0 000BD8 0004+04 2/2 0/0 0/0 .sbss IDSerialPort1 */ -static u8 IDSerialPort1[4 + 4 /* padding */]; +static u32 IDSerialPort1[2 /* padding */]; /* 80343E54-80344028 33E794 01D4+00 0/0 1/1 0/0 .text EXIInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void EXIInit(void) { - nofralloc -#include "asm/exi/EXIBios/EXIInit.s" +void EXIInit(void) { + u32 idSerial; + + while (((REG(0, 3) & 1) == 1) || ((REG(1, 3) & 1) == 1) || ((REG(2, 3) & 1) == 1)) { + } + + __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXI | OS_INTERRUPTMASK_EXI_0_TC | + OS_INTERRUPTMASK_EXI_0_EXT | OS_INTERRUPTMASK_EXI_1_EXI | + OS_INTERRUPTMASK_EXI_1_TC | OS_INTERRUPTMASK_EXI_1_EXT | + OS_INTERRUPTMASK_EXI_2_EXI | OS_INTERRUPTMASK_EXI_2_TC); + + REG(0, 0) = 0; + REG(1, 0) = 0; + REG(2, 0) = 0; + + REG(0, 0) = 0x00002000; + + __OSSetInterruptHandler(OS_INTR_EXI_0_EXI, EXIIntrruptHandler); + __OSSetInterruptHandler(OS_INTR_EXI_0_TC, TCIntrruptHandler); + __OSSetInterruptHandler(OS_INTR_EXI_0_EXT, EXTIntrruptHandler); + __OSSetInterruptHandler(OS_INTR_EXI_1_EXI, EXIIntrruptHandler); + __OSSetInterruptHandler(OS_INTR_EXI_1_TC, TCIntrruptHandler); + __OSSetInterruptHandler(OS_INTR_EXI_1_EXT, EXTIntrruptHandler); + __OSSetInterruptHandler(OS_INTR_EXI_2_EXI, EXIIntrruptHandler); + __OSSetInterruptHandler(OS_INTR_EXI_2_TC, TCIntrruptHandler); + + EXIGetID(0, 2, IDSerialPort1); + if (__OSInIPL) { + __EXIProbeStartTime[0] = __EXIProbeStartTime[1] = 0; + Ecb[0].idTime = Ecb[1].idTime = 0; + __EXIProbe(0); + __EXIProbe(1); + } else if (EXIGetID(0, 0, &idSerial) && idSerial == 0x7010000) { + __OSEnableBarnacle(1, 0); + } else if (EXIGetID(1, 0, &idSerial) && idSerial == 0x7010000) { + __OSEnableBarnacle(0, 2); + } + + OSRegisterVersion(__EXIVersion); } -#pragma pop /* 80344028-8034411C 33E968 00F4+00 1/1 10/10 0/0 .text EXILock */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL EXILock(s32 chan, u32 dev, EXICallback unlockedCallback) { - nofralloc -#include "asm/exi/EXIBios/EXILock.s" +BOOL EXILock(s32 chan, u32 dev, EXICallback unlockedCallback) { + EXIControl* exi = &Ecb[chan]; + BOOL enabled; + int i; + + enabled = OSDisableInterrupts(); + if (exi->state & EXI_STATE_LOCKED) { + if (unlockedCallback) { + for (i = 0; i < exi->items; i++) { + if (exi->queue[i].dev == dev) { + OSRestoreInterrupts(enabled); + return FALSE; + } + } + exi->queue[exi->items].callback = unlockedCallback; + exi->queue[exi->items].dev = dev; + exi->items++; + } + OSRestoreInterrupts(enabled); + return FALSE; + } + + exi->state |= EXI_STATE_LOCKED; + exi->dev = dev; + SetExiInterruptMask(chan, exi); + + OSRestoreInterrupts(enabled); + return TRUE; } -#pragma pop /* 8034411C-803441F8 33EA5C 00DC+00 0/0 14/14 0/0 .text EXIUnlock */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL EXIUnlock(s32 chan) { - nofralloc -#include "asm/exi/EXIBios/EXIUnlock.s" +BOOL EXIUnlock(s32 chan) { + EXIControl* exi = &Ecb[chan]; + BOOL enabled; + EXICallback unlockedCallback; + + enabled = OSDisableInterrupts(); + if (!(exi->state & EXI_STATE_LOCKED)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + exi->state &= ~EXI_STATE_LOCKED; + SetExiInterruptMask(chan, exi); + + if (0 < exi->items) { + unlockedCallback = exi->queue[0].callback; + if (0 < --exi->items) { + memmove(&exi->queue[0], &exi->queue[1], sizeof(exi->queue[0]) * exi->items); + } + unlockedCallback(chan, 0); + } + + OSRestoreInterrupts(enabled); + return TRUE; } -#pragma pop /* 803441F8-80344210 33EB38 0018+00 0/0 2/2 0/0 .text EXIGetState */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 EXIGetState(s32 chan) { - nofralloc -#include "asm/exi/EXIBios/EXIGetState.s" +u32 EXIGetState(s32 chan) { + EXIControl* exi = &Ecb[chan]; + + return (u32)exi->state; } -#pragma pop /* 80344210-80344238 33EB50 0028+00 1/1 0/0 0/0 .text UnlockedHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void UnlockedHandler(s32 chan, OSContext* context) { - nofralloc -#include "asm/exi/EXIBios/UnlockedHandler.s" +static void UnlockedHandler(s32 chan, OSContext* context) { + u32 id; + + EXIGetID(chan, 0, &id); } -#pragma pop /* 80344238-803445E8 33EB78 03B0+00 5/5 3/3 0/0 .text EXIGetID */ +// Use of add. instead of add +#ifdef NONMATCHING +s32 EXIGetID(s32 chan, u32 dev, u32* id) { + EXIControl* exi = &Ecb[chan]; + BOOL err; + u32 cmd; + s32 startTime; + BOOL enabled; + + if (exi == (EXIControl*)NULL && dev == 2 && IDSerialPort1[0] != 0) { + *id = IDSerialPort1[0]; + return 1; + } + + if (chan < 2 && dev == 0) { + if (!__EXIProbe(chan)) { + return 0; + } + + if (exi->idTime == __EXIProbeStartTime[chan]) { + *id = exi->id; + return exi->idTime; + } + + if (!__EXIAttach(chan, NULL)) { + return 0; + } + + startTime = __EXIProbeStartTime[chan]; + } + + enabled = OSDisableInterrupts(); + + err = !EXILock(chan, dev, (chan < 2 && dev == 0) ? UnlockedHandler : NULL); + if (!err) { + err = !EXISelect(chan, dev, EXI_FREQ_1M); + if (!err) { + cmd = 0; + err |= !EXIImm(chan, &cmd, 2, EXI_WRITE, NULL); + err |= !EXISync(chan); + err |= !EXIImm(chan, id, 4, EXI_READ, NULL); + err |= !EXISync(chan); + err |= !EXIDeselect(chan); + } + EXIUnlock(chan); + } + + OSRestoreInterrupts(enabled); + + if (chan < 2 && dev == 0) { + EXIDetach(chan); + enabled = OSDisableInterrupts(); + err |= (startTime != __EXIProbeStartTime[chan]); + if (!err) { + exi->id = *id; + exi->idTime = startTime; + } + OSRestoreInterrupts(enabled); + + return err ? 0 : exi->idTime; + } + + return err ? 0 : !0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -404,6 +715,7 @@ asm s32 EXIGetID(s32 chan, u32 dev, u32* id) { #include "asm/exi/EXIBios/EXIGetID.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803D10F0-803D1100 02E210 000F+01 0/0 0/0 0/0 .data @473 */ diff --git a/libs/dolphin/exi/EXIUart.c b/libs/dolphin/exi/EXIUart.c index e030d9b9391..62234c7141a 100644 --- a/libs/dolphin/exi/EXIUart.c +++ b/libs/dolphin/exi/EXIUart.c @@ -5,85 +5,204 @@ #include "dolphin/exi/EXIUart.h" #include "dol2asm.h" +#include "dolphin/exi/EXIBios.h" #include "dolphin/types.h" // // Forward References: // -static void ProbeBarnacle(); -void __OSEnableBarnacle(); -void InitializeUART(); -void WriteUARTN(); - // // External References: // -void OSGetConsoleType(); -void EXIImm(); -void EXISync(); -void EXIAttach(); -void EXIDetach(); -void EXISelect(); -void EXIDeselect(); -void EXILock(); -void EXIUnlock(); -void EXIGetID(); - // // Declarations: // +#define EXI_TX 0x800400u +#define EXI_MAGIC 0xa5ff005a + /* 803445E8-80344774 33EF28 018C+00 1/1 0/0 0/0 .text ProbeBarnacle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void ProbeBarnacle() { - nofralloc -#include "asm/exi/EXIUart/ProbeBarnacle.s" +static BOOL ProbeBarnacle(s32 chan, u32 dev, u32* revision) { + BOOL err; + u32 cmd; + + if (chan != 2 && dev == 0 && !EXIAttach(chan, NULL)) { + return FALSE; + } + + err = !EXILock(chan, dev, NULL); + if (!err) { + err = !EXISelect(chan, dev, EXI_FREQ_1M); + if (!err) { + cmd = 0x20011300; + err = FALSE; + err |= !EXIImm(chan, &cmd, 4, EXI_WRITE, NULL); + err |= !EXISync(chan); + err |= !EXIImm(chan, revision, 4, EXI_READ, NULL); + err |= !EXISync(chan); + err |= !EXIDeselect(chan); + } + EXIUnlock(chan); + } + + if (chan != 2 && dev == 0) { + EXIDetach(chan); + } + + if (err) { + return FALSE; + } + + return (*revision != 0xFFFFFFFF) ? TRUE : FALSE; } -#pragma pop /* ############################################################################################## */ /* 804516E0-804516E4 000BE0 0004+00 3/3 0/0 0/0 .sbss Chan */ -static u8 Chan[4]; +static s32 Chan; /* 804516E4-804516E8 000BE4 0004+00 3/3 0/0 0/0 .sbss Dev */ -static u8 Dev[4]; +static u32 Dev; /* 804516E8-804516EC 000BE8 0004+00 3/3 0/0 0/0 .sbss Enabled */ -static u8 Enabled[4]; +static u32 Enabled; /* 804516EC-804516F0 000BEC 0004+00 2/2 0/0 0/0 .sbss BarnacleEnabled */ -static u8 BarnacleEnabled[4]; +static u32 BarnacleEnabled; /* 80344774-80344930 33F0B4 01BC+00 0/0 1/1 0/0 .text __OSEnableBarnacle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSEnableBarnacle() { - nofralloc -#include "asm/exi/EXIUart/__OSEnableBarnacle.s" +void __OSEnableBarnacle(s32 chan, u32 dev) { + u32 id; + + if (EXIGetID(chan, dev, &id)) { + switch (id) { + case 0xffffffff: + case EXI_MEMORY_CARD_59: + case EXI_MEMORY_CARD_123: + case EXI_MEMORY_CARD_251: + case EXI_MEMORY_CARD_507: + case EXI_USB_ADAPTER: + case EXI_NPDP_GDEV: + case EXI_MODEM: + case EXI_MARLIN: + case 0x04220000: + case 0x04020100: + case 0x04020200: + case 0x04020300: + case 0x04040404: + case 0x04060000: + case 0x04120000: + case 0x04130000: + case 0x80000000 | EXI_MEMORY_CARD_59: + case 0x80000000 | EXI_MEMORY_CARD_123: + case 0x80000000 | EXI_MEMORY_CARD_251: + case 0x80000000 | EXI_MEMORY_CARD_507: + break; + default: + if (ProbeBarnacle(chan, dev, &id)) { + Chan = chan; + Dev = dev; + Enabled = BarnacleEnabled = EXI_MAGIC; + } + break; + } + } } -#pragma pop /* 80344930-803449A0 33F270 0070+00 0/0 1/1 0/0 .text InitializeUART */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void InitializeUART() { - nofralloc -#include "asm/exi/EXIUart/InitializeUART.s" +u32 InitializeUART(u32 baudRate) { + if (BarnacleEnabled == EXI_MAGIC) { + return 0; + } + + if (!(OSGetConsoleType() & OS_CONSOLE_DEVELOPMENT)) { + Enabled = 0; + return 2; + } else { + Chan = 0; + Dev = 1; + Enabled = EXI_MAGIC; + return 0; + } +} + +u32 ReadUARTN(void* bytes, unsigned long length) { + return 4; +} + +static int QueueLength(void) { + u32 cmd; + + if (!EXISelect(Chan, Dev, EXI_FREQ_8M)) + return -1; + + cmd = EXI_TX << 6; + EXIImm(Chan, &cmd, 4, EXI_WRITE, NULL); + EXISync(Chan); + + EXIImm(Chan, &cmd, 1, EXI_READ, NULL); + EXISync(Chan); + EXIDeselect(Chan); + + return 16 - (int)((cmd >> 24) & 0xff); } -#pragma pop /* 803449A0-80344BA0 33F2E0 0200+00 0/0 1/1 0/0 .text WriteUARTN */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void WriteUARTN() { - nofralloc -#include "asm/exi/EXIUart/WriteUARTN.s" -} -#pragma pop +u32 WriteUARTN(const void* buf, unsigned long len) { + u32 cmd; + int qLen; + long xLen; + char* ptr; + BOOL locked; + u32 error; + + if (Enabled != EXI_MAGIC) + return 2; + + locked = EXILock(Chan, Dev, 0); + if (!locked) { + return 0; + } + + for (ptr = (char*)buf; ptr - buf < len; ptr++) { + if (*ptr == '\n') + *ptr = '\r'; + } + + error = 0; + cmd = (EXI_TX | 0x2000000) << 6; + while (len) { + qLen = QueueLength(); + if (qLen < 0) { + error = 3; + break; + } + + if (qLen < 12 && qLen < len) + continue; + + if (!EXISelect(Chan, Dev, EXI_FREQ_8M)) { + error = 3; + break; + } + + EXIImm(Chan, &cmd, 4, EXI_WRITE, NULL); + EXISync(Chan); + + while (qLen && len) { + if (qLen < 4 && qLen < len) + break; + xLen = (len < 4) ? (long)len : 4; + EXIImm(Chan, (void*)buf, xLen, EXI_WRITE, NULL); + (u8*)buf += xLen; + len -= xLen; + qLen -= xLen; + EXISync(Chan); + } + EXIDeselect(Chan); + } + + EXIUnlock(Chan); + return error; +} \ No newline at end of file diff --git a/libs/dolphin/exi/Makefile b/libs/dolphin/exi/Makefile index 1bf69c6680e..0e4b4d5d625 100644 --- a/libs/dolphin/exi/Makefile +++ b/libs/dolphin/exi/Makefile @@ -10,16 +10,18 @@ LIBEXI_A_O_FILES := \ $(BUILD_DIR)/libs/dolphin/exi/EXIBios.o \ $(BUILD_DIR)/libs/dolphin/exi/EXIUart.o \ -LIBEXI_A_CFLAGS := \ +LIBEXI_A_CFLAGS = \ -Cpp_exceptions off \ -proc gekko \ -fp hard \ + -fp_contract on \ -nodefaults \ -str reuse \ + -inline auto \ -RTTI off \ -maxerrors 5 \ -enum int $(INCLUDES) \ - -O4,p \ + $(if $(filter %EXIBios.c, $<),-O3,-O4),p \ -lang=c \ LIBEXI_A_LDFLAGS := \ @@ -37,10 +39,11 @@ $(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 + @$(FRANK_CC) $(LIBEXI_A_CFLAGS) -c -o $(@:.o=.po) $(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) $@ $@ $@ + @$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@ ifndef DISABLE_DEPS LIBEXI_A_D_FILES := $(LIBEXI_A_O_FILES:.o=.d) diff --git a/libs/dolphin/os/Makefile b/libs/dolphin/os/Makefile index a0e5986d505..4fdc7c0f9a7 100644 --- a/libs/dolphin/os/Makefile +++ b/libs/dolphin/os/Makefile @@ -58,6 +58,7 @@ LIBOS_A_CFLAGS := \ -fp hard \ -nodefaults \ -str reuse \ + -inline auto \ -RTTI off \ -maxerrors 5 \ -enum int $(INCLUDES) \ @@ -79,10 +80,11 @@ $(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 + @$(FRANK_CC) $(LIBOS_A_CFLAGS) -c -o $(@:.o=.po) $(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) $@ $@ $@ + @$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@ ifndef DISABLE_DEPS LIBOS_A_D_FILES := $(LIBOS_A_O_FILES:.o=.d) diff --git a/libs/dolphin/os/OSCache.c b/libs/dolphin/os/OSCache.c index 35290c9ac4c..ca0198b5a06 100644 --- a/libs/dolphin/os/OSCache.c +++ b/libs/dolphin/os/OSCache.c @@ -5,6 +5,9 @@ #include "dolphin/os/OSCache.h" #include "dol2asm.h" +#include "dolphin/base/PPCArch.h" +#include "dolphin/db/db.h" +#include "dolphin/os/OS.h" #include "dolphin/os/OSError.h" #include "dolphin/os/OSInterrupt.h" @@ -12,18 +15,6 @@ // External References: // -void OSReport(); -void PPCMfmsr(); -void PPCMtmsr(); -void PPCMfhid0(); -void PPCMfl2cr(); -void PPCMtl2cr(); -void PPCHalt(); -void PPCMfhid2(); -void PPCMthid2(); -void OSDumpContext(); -void DBPrintf(); - // // Declarations: // @@ -334,7 +325,7 @@ do_invalidate: /* 8033B814-8033B838 336154 0024+00 1/1 0/0 0/0 .text LCStoreBlocks */ static asm void LCStoreBlocks(register void* destAddr, register void* srcAddr, - register u32 blockNum) { + register u32 blockNum){ // clang-format off nofralloc @@ -349,8 +340,7 @@ static asm void LCStoreBlocks(register void* destAddr, register void* srcAddr, blr // clang-format on -} -/* 8033B838-8033B8E4 336178 00AC+00 0/0 0/0 3/3 .text LCStoreData */ +} /* 8033B838-8033B8E4 336178 00AC+00 0/0 0/0 3/3 .text LCStoreData */ u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes) { u32 blocks = (nBytes + 31) / 32; u32 ret = (blocks + 127) / 128; @@ -372,7 +362,7 @@ u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes) { } /* 8033B8E4-8033B8F8 336224 0014+00 0/0 0/0 3/3 .text LCQueueWait */ -asm void LCQueueWait(register u32 len){ +asm void LCQueueWait(register u32 len) { // clang-format off nofralloc @@ -386,116 +376,98 @@ asm void LCQueueWait(register u32 len){ } /* ############################################################################################## */ -/* 803CF510-803CF53C 02C630 0029+03 3/3 0/0 0/0 .data @63 */ -SECTION_DATA static char lit_63[] = ">>> L2 INVALIDATE : SHOULD NEVER HAPPEN\n"; + +static void L2Disable(void) { + __sync(); + PPCMtl2cr(PPCMfl2cr() & ~0x80000000); + __sync(); +} /* 8033B8F8-8033B990 336238 0098+00 1/1 0/0 0/0 .text L2GlobalInvalidate */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void L2GlobalInvalidate(void) { - nofralloc -#include "asm/dolphin/os/OSCache/L2GlobalInvalidate.s" +void L2GlobalInvalidate(void) { + L2Disable(); + PPCMtl2cr(PPCMfl2cr() | 0x00200000); + while (PPCMfl2cr() & 0x00000001u) + ; + PPCMtl2cr(PPCMfl2cr() & ~0x00200000); + while (PPCMfl2cr() & 0x00000001u) { + DBPrintf(">>> L2 INVALIDATE : SHOULD NEVER HAPPEN\n"); + } } -#pragma pop /* ############################################################################################## */ -/* 803CF53C-803CF554 02C65C 0018+00 0/1 0/0 0/0 .data @84 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_84[] = "Machine check received\n"; -#pragma pop - -/* 803CF554-803CF570 02C674 001B+01 0/1 0/0 0/0 .data @85 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_85[] = "HID2 = 0x%x SRR1 = 0x%x\n"; -#pragma pop - -/* 803CF570-803CF5A0 02C690 0030+00 0/1 0/0 0/0 .data @86 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_86[] = "Machine check was not DMA/locked cache related\n"; -#pragma pop - -/* 803CF5A0-803CF5DC 02C6C0 003C+00 0/1 0/0 0/0 .data @87 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_87[] = "DMAErrorHandler(): An error occurred while processing DMA.\n"; -#pragma pop - -/* 803CF5DC-803CF614 02C6FC 0037+01 0/1 0/0 0/0 .data @88 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_88[] = "The following errors have been detected and cleared :\n"; -#pragma pop - -/* 803CF614-803CF654 02C734 003F+01 0/1 0/0 0/0 .data @89 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_89[] = - "\t- Requested a locked cache tag that was already in the cache\n"; -#pragma pop - -/* 803CF654-803CF680 02C774 0029+03 0/1 0/0 0/0 .data @90 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_90[] = "\t- DMA attempted to access normal cache\n"; -#pragma pop - -/* 803CF680-803CF6A0 02C7A0 001D+03 0/1 0/0 0/0 .data @91 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_91[] = "\t- DMA missed in data cache\n"; -#pragma pop - -/* 803CF6A0-803CF6BC 02C7C0 0019+03 0/1 0/0 0/0 .data @92 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_92[] = "\t- DMA queue overflowed\n"; -#pragma pop /* 8033B990-8033BAF0 3362D0 0160+00 1/1 0/0 0/0 .text DMAErrorHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void DMAErrorHandler(s32 error, OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSCache/DMAErrorHandler.s" +void DMAErrorHandler(u16 error, OSContext* context, ...) { + u32 hid2 = PPCMfhid2(); + + OSReport("Machine check received\n"); + OSReport("HID2 = 0x%x SRR1 = 0x%x\n", hid2, context->srr1); + if (!(hid2 & (HID2_DCHERR | HID2_DNCERR | HID2_DCMERR | HID2_DQOERR)) || + !(context->srr1 & SRR1_DMA_BIT)) { + OSReport("Machine check was not DMA/locked cache related\n"); + OSDumpContext(context); + PPCHalt(); + } + + OSReport("DMAErrorHandler(): An error occurred while processing DMA.\n"); + OSReport("The following errors have been detected and cleared :\n"); + + if (hid2 & HID2_DCHERR) { + OSReport("\t- Requested a locked cache tag that was already in the cache\n"); + } + + if (hid2 & HID2_DNCERR) { + OSReport("\t- DMA attempted to access normal cache\n"); + } + + if (hid2 & HID2_DCMERR) { + OSReport("\t- DMA missed in data cache\n"); + } + + if (hid2 & HID2_DQOERR) { + OSReport("\t- DMA queue overflowed\n"); + } + + // write hid2 back to clear the error bits + PPCMthid2(hid2); } -#pragma pop /* ############################################################################################## */ /* 803CF6BC-803CF6D8 02C7DC 0019+03 0/1 0/0 0/0 .data @104 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_104[] = "L1 i-caches initialized\n"; -#pragma pop -/* 803CF6D8-803CF6F4 02C7F8 0019+03 0/1 0/0 0/0 .data @105 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_105[] = "L1 d-caches initialized\n"; -#pragma pop +static void L2Init(void) { + u32 oldMSR; + oldMSR = PPCMfmsr(); + __sync(); + PPCMtmsr(MSR_IR | MSR_DR); + __sync(); + L2Disable(); + L2GlobalInvalidate(); + PPCMtmsr(oldMSR); +} -/* 803CF6F4-803CF70C 02C814 0016+02 0/1 0/0 0/0 .data @106 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_106[] = "L2 cache initialized\n"; -#pragma pop - -/* 803CF70C-803CF740 02C82C 002E+06 0/1 0/0 0/0 .data @107 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_107[] = "Locked cache machine check handler installed\n"; -#pragma pop +void L2Enable(void) { + PPCMtl2cr((PPCMfl2cr() | L2CR_L2E) & ~L2CR_L2I); +} /* 8033BAF0-8033BBE4 336430 00F4+00 0/0 2/2 0/0 .text __OSCacheInit */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSCacheInit(void) { - nofralloc -#include "asm/dolphin/os/OSCache/__OSCacheInit.s" +void __OSCacheInit() { + if (!(PPCMfhid0() & HID0_ICE)) { + ICEnable(); + DBPrintf("L1 i-caches initialized\n"); + } + if (!(PPCMfhid0() & HID0_DCE)) { + DCEnable(); + DBPrintf("L1 d-caches initialized\n"); + } + + if (!(PPCMfl2cr() & L2CR_L2E)) { + L2Init(); + L2Enable(); + DBPrintf("L2 cache initialized\n"); + } + + OSSetErrorHandler(OS_ERROR_MACHINE_CHECK, DMAErrorHandler); + DBPrintf("Locked cache machine check handler installed\n"); } -#pragma pop diff --git a/libs/dolphin/os/OSError.c b/libs/dolphin/os/OSError.c index dfd56d764fe..b70dc7ee24d 100644 --- a/libs/dolphin/os/OSError.c +++ b/libs/dolphin/os/OSError.c @@ -6,8 +6,9 @@ #include "dolphin/os/OSError.h" #include "dol2asm.h" #include "dolphin/base/PPCArch.h" -#include "dolphin/os/OS.h" #include "dolphin/dsp/dsp.h" +#include "dolphin/dvd/dvdlow.h" +#include "dolphin/os/OS.h" OSThread* __OSCurrentThread : (OS_BASE_CACHED | 0x00E4); OSThreadQueue __OSActiveThreadQueue : (OS_BASE_CACHED | 0x00DC); @@ -17,10 +18,9 @@ volatile OSContext* __OSFPUContext : (OS_BASE_CACHED | 0x00D8); // External References: // -extern u8 __OSLastInterruptSrr0[4]; -extern u8 __OSLastInterrupt[2 + 6 /* padding */]; -extern u8 __OSLastInterruptTime[4]; -extern u8 data_80451684[4]; +extern u32 __OSLastInterruptSrr0; +extern s16 __OSLastInterrupt[4]; +extern OSTime __OSLastInterruptTime; // // Declarations: @@ -36,26 +36,82 @@ OSErrorHandler __OSErrorTable[17]; SECTION_SDATA extern u32 __OSFpscrEnableBits = FPSCR_ENABLE; /* 8033C580-8033C798 336EC0 0218+00 0/0 4/4 0/0 .text OSSetErrorHandler */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler) { - nofralloc -#include "asm/dolphin/os/OSError/OSSetErrorHandler.s" +OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler) { + OSErrorHandler oldHandler; + BOOL enabled; + + enabled = OSDisableInterrupts(); + oldHandler = __OSErrorTable[error]; + __OSErrorTable[error] = handler; + + if (error == EXCEPTION_FLOATING_POINT_EXCEPTION) { + u32 msr; + u32 fpscr; + OSThread* thread; + + msr = PPCMfmsr(); + PPCMtmsr(msr | MSR_FP); + fpscr = PPCMffpscr(); + if (handler) { + for (thread = __OSActiveThreadQueue.head; thread; + thread = thread->active_threads_link.next) + { + thread->context.srr1 |= MSR_FE0 | MSR_FE1; + if ((thread->context.state & OS_CONTEXT_STATE_FPSAVED) == 0) { + int i; + thread->context.state |= OS_CONTEXT_STATE_FPSAVED; + for (i = 0; i < 32; ++i) { + *(u64*)&thread->context.fpr[i] = (u64)0xffffffffffffffffLL; + *(u64*)&thread->context.ps[i] = (u64)0xffffffffffffffffLL; + } + thread->context.fpscr = FPSCR_NI; + } + thread->context.fpscr |= __OSFpscrEnableBits & FPSCR_ENABLE; + thread->context.fpscr &= + ~(FPSCR_VXVC | FPSCR_VXIMZ | FPSCR_VXZDZ | FPSCR_VXIDI | FPSCR_VXISI | + FPSCR_VXSNAN | FPSCR_VXSOFT | FPSCR_VXSQRT | FPSCR_VXCVI | FPSCR_XX | + FPSCR_ZX | FPSCR_UX | FPSCR_OX | FPSCR_FX | FPSCR_FI); + } + fpscr |= __OSFpscrEnableBits & FPSCR_ENABLE; + msr |= MSR_FE0 | MSR_FE1; + } else { + for (thread = __OSActiveThreadQueue.head; thread; + thread = thread->active_threads_link.next) + { + thread->context.srr1 &= ~(MSR_FE0 | MSR_FE1); + thread->context.fpscr &= ~FPSCR_ENABLE; + thread->context.fpscr &= + ~(FPSCR_VXVC | FPSCR_VXIMZ | FPSCR_VXZDZ | FPSCR_VXIDI | FPSCR_VXISI | + FPSCR_VXSNAN | FPSCR_VXSOFT | FPSCR_VXSQRT | FPSCR_VXCVI | FPSCR_XX | + FPSCR_ZX | FPSCR_UX | FPSCR_OX | FPSCR_FX | FPSCR_FI); + } + fpscr &= ~FPSCR_ENABLE; + msr &= ~(MSR_FE0 | MSR_FE1); + } + + fpscr &= ~(FPSCR_VXVC | FPSCR_VXIMZ | FPSCR_VXZDZ | FPSCR_VXIDI | FPSCR_VXISI | + FPSCR_VXSNAN | FPSCR_VXSOFT | FPSCR_VXSQRT | FPSCR_VXCVI | FPSCR_XX | FPSCR_ZX | + FPSCR_UX | FPSCR_OX | FPSCR_FX | FPSCR_FI); + + PPCMtfpscr(fpscr); + PPCMtmsr(msr); + } + + OSRestoreInterrupts(enabled); + return oldHandler; } -#pragma pop /* ############################################################################################## */ /* 803CF918-803CF930 02CA38 0016+02 1/1 0/0 0/0 .data @13 */ -SECTION_DATA static char lit_13[] = " in \"%s\" on line %d.\n"; + SECTION_DATA static char lit_13[] = " in \"%s\" on line %d.\n"; -/* 803CF930-803CF958 02CA50 0026+02 0/0 0/0 0/0 .data @14 */ +// /* 803CF930-803CF958 02CA50 0026+02 0/0 0/0 0/0 .data @14 */ #pragma push #pragma force_active on SECTION_DATA static char lit_14[] = "\nAddress: Back Chain LR Save\n"; #pragma pop -/* 803CF958-803CF974 02CA78 001C+00 0/0 0/0 0/0 .data @15 */ +// /* 803CF958-803CF974 02CA78 001C+00 0/0 0/0 0/0 .data @15 */ #pragma push #pragma force_active on SECTION_DATA static char lit_15[] = "0x%08x: 0x%08x 0x%08x\n"; @@ -265,7 +321,7 @@ void __OSUnhandledException(__OSException exception, OSContext* context, u32 dsi break; } - OSReport("\nLast interrupt (%d): SRR0 = 0x%08x TB = 0x%016llx\n", __OSLastInterrupt, + OSReport("\nLast interrupt (%d): SRR0 = 0x%08x TB = 0x%016llx\n", __OSLastInterrupt[0], __OSLastInterruptSrr0, __OSLastInterruptTime); PPCHalt(); diff --git a/libs/dolphin/si/Makefile b/libs/dolphin/si/Makefile index a5323107f41..a6fc6d9b6b1 100644 --- a/libs/dolphin/si/Makefile +++ b/libs/dolphin/si/Makefile @@ -16,6 +16,7 @@ LIBSI_A_CFLAGS := \ -fp hard \ -nodefaults \ -str reuse \ + -inline auto \ -RTTI off \ -maxerrors 5 \ -enum int $(INCLUDES) \ @@ -37,10 +38,11 @@ $(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 + @$(FRANK_CC) $(LIBSI_A_CFLAGS) -c -o $(@:.o=.po) $(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) $@ $@ $@ + @$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@ ifndef DISABLE_DEPS LIBSI_A_D_FILES := $(LIBSI_A_O_FILES:.o=.d) diff --git a/libs/dolphin/si/SIBios.c b/libs/dolphin/si/SIBios.c index af28da30bbc..132316cc60f 100644 --- a/libs/dolphin/si/SIBios.c +++ b/libs/dolphin/si/SIBios.c @@ -259,8 +259,6 @@ static asm void SIInterruptHandler(OSInterrupt interrupt, OSContext* context) { #endif /* 8034523C-803452D4 33FB7C 0098+00 2/2 0/0 0/0 .text SIEnablePollingInterrupt */ -// lwz and mr swapped -#ifdef NONMATCHING static BOOL SIEnablePollingInterrupt(BOOL enable) { BOOL enabled; BOOL rc; @@ -283,16 +281,6 @@ static BOOL SIEnablePollingInterrupt(BOOL enable) { OSRestoreInterrupts(enabled); return rc; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm BOOL SIEnablePollingInterrupt(BOOL enable) { - nofralloc -#include "asm/dolphin/si/SIBios/SIEnablePollingInterrupt.s" -} -#pragma pop -#endif /* 803452D4-803453A0 33FC14 00CC+00 0/0 1/1 0/0 .text SIRegisterPollingHandler */ BOOL SIRegisterPollingHandler(OSInterruptHandler handler) { @@ -413,8 +401,6 @@ static BOOL __SITransfer(s32 chan, void* output, u32 outputBytes, void* input, u } /* 80345754-803457D0 340094 007C+00 1/1 1/1 0/0 .text SIGetStatus */ -// lwz and mr swap -#ifdef NONMATCHING u32 SIGetStatus(s32 chan) { BOOL enabled; u32 sr; @@ -432,16 +418,6 @@ u32 SIGetStatus(s32 chan) { OSRestoreInterrupts(enabled); return sr; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 SIGetStatus(s32 chan) { - nofralloc -#include "asm/dolphin/si/SIBios/SIGetStatus.s" -} -#pragma pop -#endif /* 803457D0-803457E4 340110 0014+00 0/0 4/4 0/0 .text SISetCommand */ void SISetCommand(s32 chan, u32 command) { @@ -455,7 +431,6 @@ void SITransferCommands(void) { /* 803457F4-80345860 340134 006C+00 0/0 1/1 0/0 .text SISetXY */ // needs compiler epilogue patch -#ifdef NONMATCHING u32 SISetXY(u32 x, u32 y) { u32 poll; BOOL enabled; @@ -471,19 +446,8 @@ u32 SISetXY(u32 x, u32 y) { OSRestoreInterrupts(enabled); return poll; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 SISetXY(u32 x, u32 y) { - nofralloc -#include "asm/dolphin/si/SIBios/SISetXY.s" -} -#pragma pop -#endif /* 80345860-803458FC 3401A0 009C+00 0/0 3/3 0/0 .text SIEnablePolling */ -#ifdef NONMATCHING u32 SIEnablePolling(u32 poll) { BOOL enabled; u32 en; @@ -515,16 +479,6 @@ u32 SIEnablePolling(u32 poll) { return poll; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 SIEnablePolling(u32 poll) { - nofralloc -#include "asm/dolphin/si/SIBios/SIEnablePolling.s" -} -#pragma pop -#endif /* 803458FC-80345968 34023C 006C+00 0/0 6/6 0/0 .text SIDisablePolling */ u32 SIDisablePolling(u32 poll) { @@ -549,7 +503,6 @@ u32 SIDisablePolling(u32 poll) { } /* 80345968-80345A3C 3402A8 00D4+00 1/1 0/0 0/0 .text SIGetResponseRaw */ -#ifdef NONMATCHING static BOOL SIGetResponseRaw(s32 chan) { u32 sr; @@ -562,19 +515,8 @@ static BOOL SIGetResponseRaw(s32 chan) { } return FALSE; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm BOOL SIGetResponseRaw(s32 chan) { - nofralloc -#include "asm/dolphin/si/SIBios/SIGetResponseRaw.s" -} -#pragma pop -#endif /* 80345A3C-80345B00 34037C 00C4+00 0/0 4/4 0/0 .text SIGetResponse */ -#ifdef NONMATCHING BOOL SIGetResponse(s32 chan, void* data) { BOOL rc; BOOL enabled; @@ -590,16 +532,6 @@ BOOL SIGetResponse(s32 chan, void* data) { OSRestoreInterrupts(enabled); return rc; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL SIGetResponse(s32 chan, void* data) { - nofralloc -#include "asm/dolphin/si/SIBios/SIGetResponse.s" -} -#pragma pop -#endif /* 80345B00-80345B8C 340440 008C+00 1/1 0/0 0/0 .text AlarmHandler */ static void AlarmHandler(OSAlarm* alarm, OSContext* context) { @@ -664,15 +596,85 @@ static u8 cmdTypeAndStatus_372[4]; extern u32 __PADFixBits; u32 __PADFixBits; -/* 80345CF8-80345F90 340638 0298+00 2/2 0/0 0/0 .text GetTypeCallback */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void GetTypeCallback(s32 chan, u32 error, OSContext* context) { - nofralloc -#include "asm/dolphin/si/SIBios/GetTypeCallback.s" +static inline void CallTypeAndStatusCallback(s32 chan, u32 type) { + SITypeAndStatusCallback callback; + int i; + + for (i = 0; i < 4; ++i) { + callback = TypeCallback[chan][i]; + if (callback) { + TypeCallback[chan][i] = 0; + callback(chan, type); + } + } +} + +/* 80345CF8-80345F90 340638 0298+00 2/2 0/0 0/0 .text GetTypeCallback */ +static void GetTypeCallback(s32 chan, u32 error, OSContext* context) { + static u32 cmdFixDevice[SI_MAX_CHAN]; + u32 type; + u32 chanBit; + BOOL fix; + u32 id; + + Type[chan] &= ~SI_ERROR_BUSY; + Type[chan] |= error; + TypeTime[chan] = __OSGetSystemTime(); + + type = Type[chan]; + + chanBit = SI_CHAN0_BIT >> chan; + fix = (BOOL)(__PADFixBits & chanBit); + __PADFixBits &= ~chanBit; + + if ((error & + (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION)) || + (type & SI_TYPE_MASK) != SI_TYPE_DOLPHIN || !(type & SI_GC_WIRELESS) || + (type & SI_WIRELESS_IR)) + { + OSSetWirelessID(chan, 0); + CallTypeAndStatusCallback(chan, Type[chan]); + return; + } + + id = (u32)(OSGetWirelessID(chan) << 8); + + if (fix && (id & SI_WIRELESS_FIX_ID)) { + cmdFixDevice[chan] = 0x4Eu << 24 | (id & SI_WIRELESS_TYPE_ID) | SI_WIRELESS_FIX_ID; + Type[chan] = SI_ERROR_BUSY; + SITransfer(chan, &cmdFixDevice[chan], 3, &Type[chan], 3, GetTypeCallback, 0); + return; + } + + if (type & SI_WIRELESS_FIX_ID) { + if ((id & SI_WIRELESS_TYPE_ID) != (type & SI_WIRELESS_TYPE_ID)) { + if (!(id & SI_WIRELESS_FIX_ID)) { + id = type & SI_WIRELESS_TYPE_ID; + id |= SI_WIRELESS_FIX_ID; + OSSetWirelessID(chan, (u16)((id >> 8) & 0xffff)); + } + + cmdFixDevice[chan] = 0x4E << 24 | id; + Type[chan] = SI_ERROR_BUSY; + SITransfer(chan, &cmdFixDevice[chan], 3, &Type[chan], 3, GetTypeCallback, 0); + return; + } + } else if (type & SI_WIRELESS_RECEIVED) { + id = type & SI_WIRELESS_TYPE_ID; + id |= SI_WIRELESS_FIX_ID; + + OSSetWirelessID(chan, (u16)((id >> 8) & 0xffff)); + + cmdFixDevice[chan] = 0x4E << 24 | id; + Type[chan] = SI_ERROR_BUSY; + SITransfer(chan, &cmdFixDevice[chan], 3, &Type[chan], 3, GetTypeCallback, 0); + return; + } else { + OSSetWirelessID(chan, 0); + } + + CallTypeAndStatusCallback(chan, Type[chan]); } -#pragma pop /* 80345F90-80346154 3408D0 01C4+00 2/2 3/3 0/0 .text SIGetType */ #ifdef NONMATCHING @@ -722,8 +724,6 @@ asm u32 SIGetType(s32 chan) { #endif /* 80346154-80346290 340A94 013C+00 0/0 6/6 0/0 .text SIGetTypeAsync */ -// needs compiler epilogue patch -#ifdef NONMATCHING u32 SIGetTypeAsync(s32 chan, SITypeAndStatusCallback callback) { BOOL enabled; u32 type; @@ -748,16 +748,6 @@ u32 SIGetTypeAsync(s32 chan, SITypeAndStatusCallback callback) { OSRestoreInterrupts(enabled); return type; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 SIGetTypeAsync(s32 chan, SITypeAndStatusCallback callback) { - nofralloc -#include "asm/dolphin/si/SIBios/SIGetTypeAsync.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 803D1220-803D122C 02E340 000C+00 0/0 0/0 0/0 .data @457 */ @@ -827,9 +817,3 @@ SECTION_DATA static char lit_467[] = "Keyboard"; #pragma force_active on SECTION_DATA static char lit_468[] = "Steering"; #pragma pop - -/* 8044C820-8044C830 079540 0010+00 0/0 0/0 0/0 .bss cmdFixDevice$327 */ -#pragma push -#pragma force_active on -static u8 cmdFixDevice[16]; -#pragma pop