Merge remote-tracking branch 'upstream/master' into d_a_do

This commit is contained in:
Pheenoh
2023-01-20 11:42:12 -07:00
105 changed files with 2072 additions and 7028 deletions
+2
View File
@@ -71,6 +71,8 @@ AS := $(DEVKITPPC)/bin/powerpc-eabi-as
OBJCOPY := $(DEVKITPPC)/bin/powerpc-eabi-objcopy
STRIP := $(DEVKITPPC)/bin/powerpc-eabi-strip
CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_patched.exe
DOLPHIN_LIB_CC := $(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe
FRANK_CC := $(WINE) tools/mwcc_compiler/1.2.5e/mwcceppc.exe
LD := $(WINE_LD) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe
ELF2DOL := $(BUILD_PATH)/elf2dol
PYTHON := python3
+4 -4
View File
@@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 22.077750% | 794036 | 3596544
.text | 22.734158% | 817644 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
Total | 30.292747% | 1217972 | 4020672
Total | 30.879913% | 1241580 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 30.292747% | 1217972 | 4020672
main.dol | 30.879913% | 1241580 | 4020672
RELs | 33.041295% | 3799856 | 11500324
Total | 32.329291% | 5017828 | 15520996
Total | 32.481395% | 5041436 | 15520996
## RELs
+1 -1
View File
@@ -28,7 +28,7 @@ git clone https://github.com/zeldaret/tp
mkdir -p tools/mwcc_compiler/
```
3. Download `GC_COMPILERS.zip` from the [Discord](https://discord.gg/Nshw5pHS4h) server. See the pins in the `#tp-decomp` channel under the Twilight Princess group.
3. Download [GC_WII_COMPILERS.zip](https://cdn.discordapp.com/attachments/727918646525165659/917185027656286218/GC_WII_COMPILERS.zip).
4. Extract `GC_COMPILERS.zip` into the previously created `mwcc_compiler` directory
-27
View File
@@ -1,27 +0,0 @@
lbl_803506C4:
/* 803506C4 7C 08 02 A6 */ mflr r0
/* 803506C8 90 01 00 04 */ stw r0, 4(r1)
/* 803506CC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803506D0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803506D4 93 C1 00 10 */ stw r30, 0x10(r1)
/* 803506D8 7C 7E 1B 78 */ mr r30, r3
/* 803506DC 4B FE D0 19 */ bl OSDisableInterrupts
/* 803506E0 83 ED 93 48 */ lwz r31, __AR_StackPointer(r13)
/* 803506E4 80 8D 93 50 */ lwz r4, __AR_BlockLength(r13)
/* 803506E8 7C 1F F2 14 */ add r0, r31, r30
/* 803506EC 90 0D 93 48 */ stw r0, __AR_StackPointer(r13)
/* 803506F0 93 C4 00 00 */ stw r30, 0(r4)
/* 803506F4 80 AD 93 50 */ lwz r5, __AR_BlockLength(r13)
/* 803506F8 80 8D 93 4C */ lwz r4, __AR_FreeBlocks(r13)
/* 803506FC 38 A5 00 04 */ addi r5, r5, 4
/* 80350700 38 04 FF FF */ addi r0, r4, -1
/* 80350704 90 AD 93 50 */ stw r5, __AR_BlockLength(r13)
/* 80350708 90 0D 93 4C */ stw r0, __AR_FreeBlocks(r13)
/* 8035070C 4B FE D0 11 */ bl OSRestoreInterrupts
/* 80350710 7F E3 FB 78 */ mr r3, r31
/* 80350714 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80350718 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8035071C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80350720 38 21 00 18 */ addi r1, r1, 0x18
/* 80350724 7C 08 03 A6 */ mtlr r0
/* 80350728 4E 80 00 20 */ blr
-16
View File
@@ -1,16 +0,0 @@
lbl_80350598:
/* 80350598 7C 08 02 A6 */ mflr r0
/* 8035059C 90 01 00 04 */ stw r0, 4(r1)
/* 803505A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803505A4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803505A8 4B FE D1 4D */ bl OSDisableInterrupts
/* 803505AC 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC00500A@ha */
/* 803505B0 A0 04 50 0A */ lhz r0, 0x500A(r4) /* 0xCC00500A@l */
/* 803505B4 54 1F 05 AC */ rlwinm r31, r0, 0, 0x16, 0x16
/* 803505B8 4B FE D1 65 */ bl OSRestoreInterrupts
/* 803505BC 7F E3 FB 78 */ mr r3, r31
/* 803505C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803505C4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803505C8 38 21 00 10 */ addi r1, r1, 0x10
/* 803505CC 7C 08 03 A6 */ mtlr r0
/* 803505D0 4E 80 00 20 */ blr
-52
View File
@@ -1,52 +0,0 @@
lbl_8035072C:
/* 8035072C 7C 08 02 A6 */ mflr r0
/* 80350730 90 01 00 04 */ stw r0, 4(r1)
/* 80350734 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80350738 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8035073C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80350740 3B C4 00 00 */ addi r30, r4, 0
/* 80350744 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80350748 3B A3 00 00 */ addi r29, r3, 0
/* 8035074C 80 0D 93 54 */ lwz r0, __AR_init_flag(r13)
/* 80350750 2C 00 00 01 */ cmpwi r0, 1
/* 80350754 40 82 00 0C */ bne lbl_80350760
/* 80350758 38 60 40 00 */ li r3, 0x4000
/* 8035075C 48 00 00 78 */ b lbl_803507D4
lbl_80350760:
/* 80350760 80 6D 84 C8 */ lwz r3, __ARVersion(r13)
/* 80350764 4B FE A1 11 */ bl OSRegisterVersion
/* 80350768 4B FE CF 8D */ bl OSDisableInterrupts
/* 8035076C 38 00 00 00 */ li r0, 0
/* 80350770 3C 80 80 35 */ lis r4, __ARHandler@ha /* 0x803507F8@ha */
/* 80350774 90 0D 93 38 */ stw r0, __AR_Callback(r13)
/* 80350778 3B E3 00 00 */ addi r31, r3, 0
/* 8035077C 38 84 07 F8 */ addi r4, r4, __ARHandler@l /* 0x803507F8@l */
/* 80350780 38 60 00 06 */ li r3, 6
/* 80350784 4B FE CF BD */ bl __OSSetInterruptHandler
/* 80350788 3C 60 02 00 */ lis r3, 0x200
/* 8035078C 4B FE D3 B9 */ bl __OSUnmaskInterrupts
/* 80350790 38 00 40 00 */ li r0, 0x4000
/* 80350794 93 CD 93 4C */ stw r30, __AR_FreeBlocks(r13)
/* 80350798 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC005000@ha */
/* 8035079C 90 0D 93 48 */ stw r0, __AR_StackPointer(r13)
/* 803507A0 38 83 50 00 */ addi r4, r3, 0x5000 /* 0xCC005000@l */
/* 803507A4 93 AD 93 50 */ stw r29, __AR_BlockLength(r13)
/* 803507A8 A0 04 00 1A */ lhz r0, 0x1a(r4)
/* 803507AC A0 63 50 1A */ lhz r3, 0x501a(r3)
/* 803507B0 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
/* 803507B4 50 60 06 3E */ rlwimi r0, r3, 0, 0x18, 0x1f
/* 803507B8 B0 04 00 1A */ sth r0, 0x1a(r4)
/* 803507BC 48 00 00 E5 */ bl __ARChecksize
/* 803507C0 38 00 00 01 */ li r0, 1
/* 803507C4 90 0D 93 54 */ stw r0, __AR_init_flag(r13)
/* 803507C8 7F E3 FB 78 */ mr r3, r31
/* 803507CC 4B FE CF 51 */ bl OSRestoreInterrupts
/* 803507D0 80 6D 93 48 */ lwz r3, __AR_StackPointer(r13)
lbl_803507D4:
/* 803507D4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803507D8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803507DC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803507E0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803507E4 38 21 00 20 */ addi r1, r1, 0x20
/* 803507E8 7C 08 03 A6 */ mtlr r0
/* 803507EC 4E 80 00 20 */ blr
-18
View File
@@ -1,18 +0,0 @@
lbl_80350554:
/* 80350554 7C 08 02 A6 */ mflr r0
/* 80350558 90 01 00 04 */ stw r0, 4(r1)
/* 8035055C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80350560 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80350564 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80350568 7C 7E 1B 78 */ mr r30, r3
/* 8035056C 83 ED 93 38 */ lwz r31, __AR_Callback(r13)
/* 80350570 4B FE D1 85 */ bl OSDisableInterrupts
/* 80350574 93 CD 93 38 */ stw r30, __AR_Callback(r13)
/* 80350578 4B FE D1 A5 */ bl OSRestoreInterrupts
/* 8035057C 7F E3 FB 78 */ mr r3, r31
/* 80350580 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80350584 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80350588 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8035058C 38 21 00 18 */ addi r1, r1, 0x18
/* 80350590 7C 08 03 A6 */ mtlr r0
/* 80350594 4E 80 00 20 */ blr
-9
View File
@@ -1,9 +0,0 @@
lbl_80350870:
/* 80350870 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC005000@ha */
/* 80350874 38 63 50 00 */ addi r3, r3, 0x5000 /* 0xCC005000@l */
/* 80350878 A0 83 00 0A */ lhz r4, 0xa(r3)
/* 8035087C 38 00 FF 77 */ li r0, -137
/* 80350880 7C 80 00 38 */ and r0, r4, r0
/* 80350884 60 00 00 20 */ ori r0, r0, 0x20
/* 80350888 B0 03 00 0A */ sth r0, 0xa(r3)
/* 8035088C 4E 80 00 20 */ blr
@@ -1,5 +0,0 @@
lbl_80350890:
/* 80350890 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC00500A@ha */
/* 80350894 A0 03 50 0A */ lhz r0, 0x500A(r3) /* 0xCC00500A@l */
/* 80350898 54 03 06 B4 */ rlwinm r3, r0, 0, 0x1a, 0x1a
/* 8035089C 4E 80 00 20 */ blr
-30
View File
@@ -1,30 +0,0 @@
lbl_80352264:
/* 80352264 7C 08 02 A6 */ mflr r0
/* 80352268 90 01 00 04 */ stw r0, 4(r1)
/* 8035226C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80352270 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80352274 80 0D 93 7C */ lwz r0, __ARQ_init_flag(r13)
/* 80352278 2C 00 00 01 */ cmpwi r0, 1
/* 8035227C 41 82 00 44 */ beq lbl_803522C0
/* 80352280 80 6D 84 D0 */ lwz r3, __ARQVersion(r13)
/* 80352284 4B FE 85 F1 */ bl OSRegisterVersion
/* 80352288 3B E0 00 00 */ li r31, 0
/* 8035228C 38 00 10 00 */ li r0, 0x1000
/* 80352290 93 ED 93 60 */ stw r31, __ARQRequestQueueLo(r13)
/* 80352294 3C 60 80 35 */ lis r3, __ARQInterruptServiceRoutine@ha /* 0x80352198@ha */
/* 80352298 93 ED 93 58 */ stw r31, __ARQRequestQueueHi(r13)
/* 8035229C 38 63 21 98 */ addi r3, r3, __ARQInterruptServiceRoutine@l /* 0x80352198@l */
/* 803522A0 90 0D 93 78 */ stw r0, __ARQChunkSize(r13)
/* 803522A4 4B FF E2 B1 */ bl ARRegisterDMACallback
/* 803522A8 38 00 00 01 */ li r0, 1
/* 803522AC 93 ED 93 68 */ stw r31, __ARQRequestPendingHi(r13)
/* 803522B0 93 ED 93 6C */ stw r31, __ARQRequestPendingLo(r13)
/* 803522B4 93 ED 93 70 */ stw r31, __ARQCallbackHi(r13)
/* 803522B8 93 ED 93 74 */ stw r31, __ARQCallbackLo(r13)
/* 803522BC 90 0D 93 7C */ stw r0, __ARQ_init_flag(r13)
lbl_803522C0:
/* 803522C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803522C4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803522C8 38 21 00 10 */ addi r1, r1, 0x10
/* 803522CC 7C 08 03 A6 */ mtlr r0
/* 803522D0 4E 80 00 20 */ blr
-101
View File
@@ -1,101 +0,0 @@
lbl_803522D4:
/* 803522D4 7C 08 02 A6 */ mflr r0
/* 803522D8 28 0A 00 00 */ cmplwi r10, 0
/* 803522DC 90 01 00 04 */ stw r0, 4(r1)
/* 803522E0 38 00 00 00 */ li r0, 0
/* 803522E4 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 803522E8 93 E1 00 34 */ stw r31, 0x34(r1)
/* 803522EC 93 C1 00 30 */ stw r30, 0x30(r1)
/* 803522F0 3B C6 00 00 */ addi r30, r6, 0
/* 803522F4 93 A1 00 2C */ stw r29, 0x2c(r1)
/* 803522F8 3B A3 00 00 */ addi r29, r3, 0
/* 803522FC 90 03 00 00 */ stw r0, 0(r3)
/* 80352300 90 83 00 04 */ stw r4, 4(r3)
/* 80352304 90 A3 00 08 */ stw r5, 8(r3)
/* 80352308 90 E3 00 10 */ stw r7, 0x10(r3)
/* 8035230C 91 03 00 14 */ stw r8, 0x14(r3)
/* 80352310 91 23 00 18 */ stw r9, 0x18(r3)
/* 80352314 41 82 00 0C */ beq lbl_80352320
/* 80352318 91 5D 00 1C */ stw r10, 0x1c(r29)
/* 8035231C 48 00 00 10 */ b lbl_8035232C
lbl_80352320:
/* 80352320 3C 60 80 35 */ lis r3, __ARQCallbackHack@ha /* 0x80352194@ha */
/* 80352324 38 03 21 94 */ addi r0, r3, __ARQCallbackHack@l /* 0x80352194@l */
/* 80352328 90 1D 00 1C */ stw r0, 0x1c(r29)
lbl_8035232C:
/* 8035232C 4B FE B3 C9 */ bl OSDisableInterrupts
/* 80352330 2C 1E 00 01 */ cmpwi r30, 1
/* 80352334 3B E3 00 00 */ addi r31, r3, 0
/* 80352338 41 82 00 38 */ beq lbl_80352370
/* 8035233C 40 80 00 54 */ bge lbl_80352390
/* 80352340 2C 1E 00 00 */ cmpwi r30, 0
/* 80352344 40 80 00 08 */ bge lbl_8035234C
/* 80352348 48 00 00 48 */ b lbl_80352390
lbl_8035234C:
/* 8035234C 80 0D 93 60 */ lwz r0, __ARQRequestQueueLo(r13)
/* 80352350 28 00 00 00 */ cmplwi r0, 0
/* 80352354 41 82 00 10 */ beq lbl_80352364
/* 80352358 80 6D 93 64 */ lwz r3, __ARQRequestTailLo(r13)
/* 8035235C 93 A3 00 00 */ stw r29, 0(r3)
/* 80352360 48 00 00 08 */ b lbl_80352368
lbl_80352364:
/* 80352364 93 AD 93 60 */ stw r29, __ARQRequestQueueLo(r13)
lbl_80352368:
/* 80352368 93 AD 93 64 */ stw r29, __ARQRequestTailLo(r13)
/* 8035236C 48 00 00 24 */ b lbl_80352390
lbl_80352370:
/* 80352370 80 0D 93 58 */ lwz r0, __ARQRequestQueueHi(r13)
/* 80352374 28 00 00 00 */ cmplwi r0, 0
/* 80352378 41 82 00 10 */ beq lbl_80352388
/* 8035237C 80 6D 93 5C */ lwz r3, __ARQRequestTailHi(r13)
/* 80352380 93 A3 00 00 */ stw r29, 0(r3)
/* 80352384 48 00 00 08 */ b lbl_8035238C
lbl_80352388:
/* 80352388 93 AD 93 58 */ stw r29, __ARQRequestQueueHi(r13)
lbl_8035238C:
/* 8035238C 93 AD 93 5C */ stw r29, __ARQRequestTailHi(r13)
lbl_80352390:
/* 80352390 80 0D 93 68 */ lwz r0, __ARQRequestPendingHi(r13)
/* 80352394 28 00 00 00 */ cmplwi r0, 0
/* 80352398 40 82 00 74 */ bne lbl_8035240C
/* 8035239C 80 0D 93 6C */ lwz r0, __ARQRequestPendingLo(r13)
/* 803523A0 28 00 00 00 */ cmplwi r0, 0
/* 803523A4 40 82 00 68 */ bne lbl_8035240C
/* 803523A8 80 CD 93 58 */ lwz r6, __ARQRequestQueueHi(r13)
/* 803523AC 28 06 00 00 */ cmplwi r6, 0
/* 803523B0 41 82 00 4C */ beq lbl_803523FC
/* 803523B4 80 66 00 08 */ lwz r3, 8(r6)
/* 803523B8 28 03 00 00 */ cmplwi r3, 0
/* 803523BC 40 82 00 18 */ bne lbl_803523D4
/* 803523C0 80 86 00 10 */ lwz r4, 0x10(r6)
/* 803523C4 80 A6 00 14 */ lwz r5, 0x14(r6)
/* 803523C8 80 C6 00 18 */ lwz r6, 0x18(r6)
/* 803523CC 4B FF E2 09 */ bl ARStartDMA
/* 803523D0 48 00 00 14 */ b lbl_803523E4
lbl_803523D4:
/* 803523D4 80 86 00 14 */ lwz r4, 0x14(r6)
/* 803523D8 80 A6 00 10 */ lwz r5, 0x10(r6)
/* 803523DC 80 C6 00 18 */ lwz r6, 0x18(r6)
/* 803523E0 4B FF E1 F5 */ bl ARStartDMA
lbl_803523E4:
/* 803523E4 80 6D 93 58 */ lwz r3, __ARQRequestQueueHi(r13)
/* 803523E8 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 803523EC 90 0D 93 70 */ stw r0, __ARQCallbackHi(r13)
/* 803523F0 90 6D 93 68 */ stw r3, __ARQRequestPendingHi(r13)
/* 803523F4 80 03 00 00 */ lwz r0, 0(r3)
/* 803523F8 90 0D 93 58 */ stw r0, __ARQRequestQueueHi(r13)
lbl_803523FC:
/* 803523FC 80 0D 93 68 */ lwz r0, __ARQRequestPendingHi(r13)
/* 80352400 28 00 00 00 */ cmplwi r0, 0
/* 80352404 40 82 00 08 */ bne lbl_8035240C
/* 80352408 4B FF FC 8D */ bl __ARQServiceQueueLo
lbl_8035240C:
/* 8035240C 7F E3 FB 78 */ mr r3, r31
/* 80352410 4B FE B3 0D */ bl OSRestoreInterrupts
/* 80352414 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80352418 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 8035241C 83 C1 00 30 */ lwz r30, 0x30(r1)
/* 80352420 83 A1 00 2C */ lwz r29, 0x2c(r1)
/* 80352424 38 21 00 38 */ addi r1, r1, 0x38
/* 80352428 7C 08 03 A6 */ mtlr r0
/* 8035242C 4E 80 00 20 */ blr
@@ -1,58 +0,0 @@
lbl_80352198:
/* 80352198 7C 08 02 A6 */ mflr r0
/* 8035219C 90 01 00 04 */ stw r0, 4(r1)
/* 803521A0 94 21 FF F8 */ stwu r1, -8(r1)
/* 803521A4 81 8D 93 70 */ lwz r12, __ARQCallbackHi(r13)
/* 803521A8 28 0C 00 00 */ cmplwi r12, 0
/* 803521AC 41 82 00 20 */ beq lbl_803521CC
/* 803521B0 80 6D 93 68 */ lwz r3, __ARQRequestPendingHi(r13)
/* 803521B4 7D 88 03 A6 */ mtlr r12
/* 803521B8 4E 80 00 21 */ blrl
/* 803521BC 38 00 00 00 */ li r0, 0
/* 803521C0 90 0D 93 68 */ stw r0, __ARQRequestPendingHi(r13)
/* 803521C4 90 0D 93 70 */ stw r0, __ARQCallbackHi(r13)
/* 803521C8 48 00 00 28 */ b lbl_803521F0
lbl_803521CC:
/* 803521CC 81 8D 93 74 */ lwz r12, __ARQCallbackLo(r13)
/* 803521D0 28 0C 00 00 */ cmplwi r12, 0
/* 803521D4 41 82 00 1C */ beq lbl_803521F0
/* 803521D8 80 6D 93 6C */ lwz r3, __ARQRequestPendingLo(r13)
/* 803521DC 7D 88 03 A6 */ mtlr r12
/* 803521E0 4E 80 00 21 */ blrl
/* 803521E4 38 00 00 00 */ li r0, 0
/* 803521E8 90 0D 93 6C */ stw r0, __ARQRequestPendingLo(r13)
/* 803521EC 90 0D 93 74 */ stw r0, __ARQCallbackLo(r13)
lbl_803521F0:
/* 803521F0 80 CD 93 58 */ lwz r6, __ARQRequestQueueHi(r13)
/* 803521F4 28 06 00 00 */ cmplwi r6, 0
/* 803521F8 41 82 00 4C */ beq lbl_80352244
/* 803521FC 80 66 00 08 */ lwz r3, 8(r6)
/* 80352200 28 03 00 00 */ cmplwi r3, 0
/* 80352204 40 82 00 18 */ bne lbl_8035221C
/* 80352208 80 86 00 10 */ lwz r4, 0x10(r6)
/* 8035220C 80 A6 00 14 */ lwz r5, 0x14(r6)
/* 80352210 80 C6 00 18 */ lwz r6, 0x18(r6)
/* 80352214 4B FF E3 C1 */ bl ARStartDMA
/* 80352218 48 00 00 14 */ b lbl_8035222C
lbl_8035221C:
/* 8035221C 80 86 00 14 */ lwz r4, 0x14(r6)
/* 80352220 80 A6 00 10 */ lwz r5, 0x10(r6)
/* 80352224 80 C6 00 18 */ lwz r6, 0x18(r6)
/* 80352228 4B FF E3 AD */ bl ARStartDMA
lbl_8035222C:
/* 8035222C 80 6D 93 58 */ lwz r3, __ARQRequestQueueHi(r13)
/* 80352230 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80352234 90 0D 93 70 */ stw r0, __ARQCallbackHi(r13)
/* 80352238 90 6D 93 68 */ stw r3, __ARQRequestPendingHi(r13)
/* 8035223C 80 03 00 00 */ lwz r0, 0(r3)
/* 80352240 90 0D 93 58 */ stw r0, __ARQRequestQueueHi(r13)
lbl_80352244:
/* 80352244 80 0D 93 68 */ lwz r0, __ARQRequestPendingHi(r13)
/* 80352248 28 00 00 00 */ cmplwi r0, 0
/* 8035224C 40 82 00 08 */ bne lbl_80352254
/* 80352250 4B FF FE 45 */ bl __ARQServiceQueueLo
lbl_80352254:
/* 80352254 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80352258 38 21 00 08 */ addi r1, r1, 8
/* 8035225C 7C 08 03 A6 */ mtlr r0
/* 80352260 4E 80 00 20 */ blr
-72
View File
@@ -1,72 +0,0 @@
lbl_80352094:
/* 80352094 7C 08 02 A6 */ mflr r0
/* 80352098 90 01 00 04 */ stw r0, 4(r1)
/* 8035209C 94 21 FF F8 */ stwu r1, -8(r1)
/* 803520A0 80 0D 93 6C */ lwz r0, __ARQRequestPendingLo(r13)
/* 803520A4 28 00 00 00 */ cmplwi r0, 0
/* 803520A8 40 82 00 1C */ bne lbl_803520C4
/* 803520AC 80 6D 93 60 */ lwz r3, __ARQRequestQueueLo(r13)
/* 803520B0 28 03 00 00 */ cmplwi r3, 0
/* 803520B4 41 82 00 10 */ beq lbl_803520C4
/* 803520B8 90 6D 93 6C */ stw r3, __ARQRequestPendingLo(r13)
/* 803520BC 80 03 00 00 */ lwz r0, 0(r3)
/* 803520C0 90 0D 93 60 */ stw r0, __ARQRequestQueueLo(r13)
lbl_803520C4:
/* 803520C4 80 AD 93 6C */ lwz r5, __ARQRequestPendingLo(r13)
/* 803520C8 28 05 00 00 */ cmplwi r5, 0
/* 803520CC 41 82 00 B8 */ beq lbl_80352184
/* 803520D0 80 C5 00 18 */ lwz r6, 0x18(r5)
/* 803520D4 80 0D 93 78 */ lwz r0, __ARQChunkSize(r13)
/* 803520D8 7C 06 00 40 */ cmplw r6, r0
/* 803520DC 41 81 00 3C */ bgt lbl_80352118
/* 803520E0 80 65 00 08 */ lwz r3, 8(r5)
/* 803520E4 28 03 00 00 */ cmplwi r3, 0
/* 803520E8 40 82 00 14 */ bne lbl_803520FC
/* 803520EC 80 85 00 10 */ lwz r4, 0x10(r5)
/* 803520F0 80 A5 00 14 */ lwz r5, 0x14(r5)
/* 803520F4 4B FF E4 E1 */ bl ARStartDMA
/* 803520F8 48 00 00 10 */ b lbl_80352108
lbl_803520FC:
/* 803520FC 80 85 00 14 */ lwz r4, 0x14(r5)
/* 80352100 80 A5 00 10 */ lwz r5, 0x10(r5)
/* 80352104 4B FF E4 D1 */ bl ARStartDMA
lbl_80352108:
/* 80352108 80 6D 93 6C */ lwz r3, __ARQRequestPendingLo(r13)
/* 8035210C 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80352110 90 0D 93 74 */ stw r0, __ARQCallbackLo(r13)
/* 80352114 48 00 00 34 */ b lbl_80352148
lbl_80352118:
/* 80352118 80 65 00 08 */ lwz r3, 8(r5)
/* 8035211C 28 03 00 00 */ cmplwi r3, 0
/* 80352120 40 82 00 18 */ bne lbl_80352138
/* 80352124 80 85 00 10 */ lwz r4, 0x10(r5)
/* 80352128 7C 06 03 78 */ mr r6, r0
/* 8035212C 80 A5 00 14 */ lwz r5, 0x14(r5)
/* 80352130 4B FF E4 A5 */ bl ARStartDMA
/* 80352134 48 00 00 14 */ b lbl_80352148
lbl_80352138:
/* 80352138 80 85 00 14 */ lwz r4, 0x14(r5)
/* 8035213C 7C 06 03 78 */ mr r6, r0
/* 80352140 80 A5 00 10 */ lwz r5, 0x10(r5)
/* 80352144 4B FF E4 91 */ bl ARStartDMA
lbl_80352148:
/* 80352148 80 6D 93 6C */ lwz r3, __ARQRequestPendingLo(r13)
/* 8035214C 80 8D 93 78 */ lwz r4, __ARQChunkSize(r13)
/* 80352150 80 03 00 18 */ lwz r0, 0x18(r3)
/* 80352154 7C 04 00 50 */ subf r0, r4, r0
/* 80352158 90 03 00 18 */ stw r0, 0x18(r3)
/* 8035215C 80 8D 93 6C */ lwz r4, __ARQRequestPendingLo(r13)
/* 80352160 80 0D 93 78 */ lwz r0, __ARQChunkSize(r13)
/* 80352164 80 64 00 10 */ lwz r3, 0x10(r4)
/* 80352168 7C 03 02 14 */ add r0, r3, r0
/* 8035216C 90 04 00 10 */ stw r0, 0x10(r4)
/* 80352170 80 8D 93 6C */ lwz r4, __ARQRequestPendingLo(r13)
/* 80352174 80 0D 93 78 */ lwz r0, __ARQChunkSize(r13)
/* 80352178 80 64 00 14 */ lwz r3, 0x14(r4)
/* 8035217C 7C 03 02 14 */ add r0, r3, r0
/* 80352180 90 04 00 14 */ stw r0, 0x14(r4)
lbl_80352184:
/* 80352184 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80352188 38 21 00 08 */ addi r1, r1, 8
/* 8035218C 7C 08 03 A6 */ mtlr r0
/* 80352190 4E 80 00 20 */ blr
@@ -1,98 +0,0 @@
lbl_80353CD0:
/* 80353CD0 7C 08 02 A6 */ mflr r0
/* 80353CD4 90 01 00 04 */ stw r0, 4(r1)
/* 80353CD8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80353CDC 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80353CE0 3B E5 00 00 */ addi r31, r5, 0
/* 80353CE4 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80353CE8 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80353CEC 3B A4 00 00 */ addi r29, r4, 0
/* 80353CF0 38 81 00 18 */ addi r4, r1, 0x18
/* 80353CF4 4B FF FE C1 */ bl __CARDGetControlBlock
/* 80353CF8 2C 03 00 00 */ cmpwi r3, 0
/* 80353CFC 40 80 00 08 */ bge lbl_80353D04
/* 80353D00 48 00 01 04 */ b lbl_80353E04
lbl_80353D04:
/* 80353D04 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80353D08 48 00 17 0D */ bl __CARDGetFatBlock
/* 80353D0C 7C 7E 1B 78 */ mr r30, r3
/* 80353D10 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80353D14 48 00 1A 69 */ bl __CARDGetDirBlock
/* 80353D18 28 1E 00 00 */ cmplwi r30, 0
/* 80353D1C 41 82 00 0C */ beq lbl_80353D28
/* 80353D20 28 03 00 00 */ cmplwi r3, 0
/* 80353D24 40 82 00 44 */ bne lbl_80353D68
lbl_80353D28:
/* 80353D28 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80353D2C 4B FE 99 C9 */ bl OSDisableInterrupts
/* 80353D30 80 1E 00 00 */ lwz r0, 0(r30)
/* 80353D34 2C 00 00 00 */ cmpwi r0, 0
/* 80353D38 41 82 00 10 */ beq lbl_80353D48
/* 80353D3C 38 00 FF FA */ li r0, -6
/* 80353D40 90 1E 00 04 */ stw r0, 4(r30)
/* 80353D44 48 00 00 18 */ b lbl_80353D5C
lbl_80353D48:
/* 80353D48 80 1E 00 04 */ lwz r0, 4(r30)
/* 80353D4C 2C 00 FF FF */ cmpwi r0, -1
/* 80353D50 40 82 00 0C */ bne lbl_80353D5C
/* 80353D54 38 00 FF FA */ li r0, -6
/* 80353D58 90 1E 00 04 */ stw r0, 4(r30)
lbl_80353D5C:
/* 80353D5C 4B FE 99 C1 */ bl OSRestoreInterrupts
/* 80353D60 38 60 FF FA */ li r3, -6
/* 80353D64 48 00 00 A0 */ b lbl_80353E04
lbl_80353D68:
/* 80353D68 28 1D 00 00 */ cmplwi r29, 0
/* 80353D6C 41 82 00 18 */ beq lbl_80353D84
/* 80353D70 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80353D74 A0 1E 00 06 */ lhz r0, 6(r30)
/* 80353D78 80 84 00 0C */ lwz r4, 0xc(r4)
/* 80353D7C 7C 04 01 D6 */ mullw r0, r4, r0
/* 80353D80 90 1D 00 00 */ stw r0, 0(r29)
lbl_80353D84:
/* 80353D84 28 1F 00 00 */ cmplwi r31, 0
/* 80353D88 41 82 00 40 */ beq lbl_80353DC8
/* 80353D8C 38 00 00 00 */ li r0, 0
/* 80353D90 90 1F 00 00 */ stw r0, 0(r31)
/* 80353D94 38 A0 00 00 */ li r5, 0
/* 80353D98 48 00 00 24 */ b lbl_80353DBC
lbl_80353D9C:
/* 80353D9C 88 03 00 08 */ lbz r0, 8(r3)
/* 80353DA0 28 00 00 FF */ cmplwi r0, 0xff
/* 80353DA4 40 82 00 10 */ bne lbl_80353DB4
/* 80353DA8 80 9F 00 00 */ lwz r4, 0(r31)
/* 80353DAC 38 04 00 01 */ addi r0, r4, 1
/* 80353DB0 90 1F 00 00 */ stw r0, 0(r31)
lbl_80353DB4:
/* 80353DB4 38 63 00 40 */ addi r3, r3, 0x40
/* 80353DB8 38 A5 00 01 */ addi r5, r5, 1
lbl_80353DBC:
/* 80353DBC 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 80353DC0 28 00 00 7F */ cmplwi r0, 0x7f
/* 80353DC4 41 80 FF D8 */ blt lbl_80353D9C
lbl_80353DC8:
/* 80353DC8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80353DCC 4B FE 99 29 */ bl OSDisableInterrupts
/* 80353DD0 80 1E 00 00 */ lwz r0, 0(r30)
/* 80353DD4 2C 00 00 00 */ cmpwi r0, 0
/* 80353DD8 41 82 00 10 */ beq lbl_80353DE8
/* 80353DDC 38 00 00 00 */ li r0, 0
/* 80353DE0 90 1E 00 04 */ stw r0, 4(r30)
/* 80353DE4 48 00 00 18 */ b lbl_80353DFC
lbl_80353DE8:
/* 80353DE8 80 1E 00 04 */ lwz r0, 4(r30)
/* 80353DEC 2C 00 FF FF */ cmpwi r0, -1
/* 80353DF0 40 82 00 0C */ bne lbl_80353DFC
/* 80353DF4 38 00 00 00 */ li r0, 0
/* 80353DF8 90 1E 00 04 */ stw r0, 4(r30)
lbl_80353DFC:
/* 80353DFC 4B FE 99 21 */ bl OSRestoreInterrupts
/* 80353E00 38 60 00 00 */ li r3, 0
lbl_80353E04:
/* 80353E04 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80353E08 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80353E0C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80353E10 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80353E14 38 21 00 30 */ addi r1, r1, 0x30
/* 80353E18 7C 08 03 A6 */ mtlr r0
/* 80353E1C 4E 80 00 20 */ blr
-182
View File
@@ -1,182 +0,0 @@
lbl_80353174:
/* 80353174 7C 08 02 A6 */ mflr r0
/* 80353178 38 A0 00 04 */ li r5, 4
/* 8035317C 90 01 00 04 */ stw r0, 4(r1)
/* 80353180 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80353184 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80353188 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8035318C 3B C3 00 00 */ addi r30, r3, 0
/* 80353190 1C 9E 01 10 */ mulli r4, r30, 0x110
/* 80353194 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80353198 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 8035319C 7F E0 22 14 */ add r31, r0, r4
/* 803531A0 38 7E 00 00 */ addi r3, r30, 0
/* 803531A4 38 80 00 00 */ li r4, 0
/* 803531A8 4B FF 06 C1 */ bl EXISelect
/* 803531AC 2C 03 00 00 */ cmpwi r3, 0
/* 803531B0 40 82 00 14 */ bne lbl_803531C4
/* 803531B4 7F C3 F3 78 */ mr r3, r30
/* 803531B8 4B FF 0F 65 */ bl EXIUnlock
/* 803531BC 38 60 FF FD */ li r3, -3
/* 803531C0 48 00 02 3C */ b lbl_803533FC
lbl_803531C4:
/* 803531C4 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 803531C8 4B FE 7A 75 */ bl OSCancelAlarm
/* 803531CC 88 1F 00 94 */ lbz r0, 0x94(r31)
/* 803531D0 2C 00 00 F3 */ cmpwi r0, 0xf3
/* 803531D4 41 82 01 34 */ beq lbl_80353308
/* 803531D8 40 80 00 14 */ bge lbl_803531EC
/* 803531DC 2C 00 00 F1 */ cmpwi r0, 0xf1
/* 803531E0 41 82 00 C4 */ beq lbl_803532A4
/* 803531E4 40 80 00 14 */ bge lbl_803531F8
/* 803531E8 48 00 01 20 */ b lbl_80353308
lbl_803531EC:
/* 803531EC 2C 00 00 F5 */ cmpwi r0, 0xf5
/* 803531F0 40 80 01 18 */ bge lbl_80353308
/* 803531F4 48 00 00 3C */ b lbl_80353230
lbl_803531F8:
/* 803531F8 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
/* 803531FC 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
/* 80353200 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */
/* 80353204 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
/* 80353208 54 00 F0 BE */ srwi r0, r0, 2
/* 8035320C 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */
/* 80353210 7C 04 00 16 */ mulhwu r0, r4, r0
/* 80353214 54 00 D1 BE */ srwi r0, r0, 6
/* 80353218 1C C0 00 64 */ mulli r6, r0, 0x64
/* 8035321C 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
/* 80353220 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 80353224 38 A0 00 00 */ li r5, 0
/* 80353228 4B FE 79 31 */ bl OSSetAlarm
/* 8035322C 48 00 00 DC */ b lbl_80353308
lbl_80353230:
/* 80353230 A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 80353234 28 00 00 80 */ cmplwi r0, 0x80
/* 80353238 40 81 00 6C */ ble lbl_803532A4
/* 8035323C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
/* 80353240 A0 9F 00 10 */ lhz r4, 0x10(r31)
/* 80353244 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
/* 80353248 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
/* 8035324C 7C 89 36 70 */ srawi r9, r4, 6
/* 80353250 54 07 F0 BE */ srwi r7, r0, 2
/* 80353254 38 00 00 02 */ li r0, 2
/* 80353258 38 80 00 00 */ li r4, 0
/* 8035325C 7D 04 01 D6 */ mullw r8, r4, r0
/* 80353260 7C C7 00 16 */ mulhwu r6, r7, r0
/* 80353264 7D 08 32 14 */ add r8, r8, r6
/* 80353268 7C A7 01 D6 */ mullw r5, r7, r0
/* 8035326C 7D 29 01 94 */ addze r9, r9
/* 80353270 7C C7 21 D6 */ mullw r6, r7, r4
/* 80353274 7D 20 FE 70 */ srawi r0, r9, 0x1f
/* 80353278 7C 80 29 D6 */ mullw r4, r0, r5
/* 8035327C 7C 09 28 16 */ mulhwu r0, r9, r5
/* 80353280 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
/* 80353284 7C 68 32 14 */ add r3, r8, r6
/* 80353288 7C 84 02 14 */ add r4, r4, r0
/* 8035328C 7C 09 19 D6 */ mullw r0, r9, r3
/* 80353290 7C C9 29 D6 */ mullw r6, r9, r5
/* 80353294 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 80353298 7C A4 02 14 */ add r5, r4, r0
/* 8035329C 4B FE 78 BD */ bl OSSetAlarm
/* 803532A0 48 00 00 68 */ b lbl_80353308
lbl_803532A4:
/* 803532A4 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
/* 803532A8 80 9F 00 0C */ lwz r4, 0xc(r31)
/* 803532AC 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
/* 803532B0 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
/* 803532B4 7C 89 6E 70 */ srawi r9, r4, 0xd
/* 803532B8 54 07 F0 BE */ srwi r7, r0, 2
/* 803532BC 38 00 00 02 */ li r0, 2
/* 803532C0 38 80 00 00 */ li r4, 0
/* 803532C4 7D 04 01 D6 */ mullw r8, r4, r0
/* 803532C8 7C C7 00 16 */ mulhwu r6, r7, r0
/* 803532CC 7D 08 32 14 */ add r8, r8, r6
/* 803532D0 7C A7 01 D6 */ mullw r5, r7, r0
/* 803532D4 7D 29 01 94 */ addze r9, r9
/* 803532D8 7C C7 21 D6 */ mullw r6, r7, r4
/* 803532DC 7D 20 FE 70 */ srawi r0, r9, 0x1f
/* 803532E0 7C 80 29 D6 */ mullw r4, r0, r5
/* 803532E4 7C 09 28 16 */ mulhwu r0, r9, r5
/* 803532E8 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
/* 803532EC 7C 68 32 14 */ add r3, r8, r6
/* 803532F0 7C 84 02 14 */ add r4, r4, r0
/* 803532F4 7C 09 19 D6 */ mullw r0, r9, r3
/* 803532F8 7C C9 29 D6 */ mullw r6, r9, r5
/* 803532FC 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 80353300 7C A4 02 14 */ add r5, r4, r0
/* 80353304 4B FE 78 55 */ bl OSSetAlarm
lbl_80353308:
/* 80353308 80 BF 00 A0 */ lwz r5, 0xa0(r31)
/* 8035330C 38 7E 00 00 */ addi r3, r30, 0
/* 80353310 38 9F 00 94 */ addi r4, r31, 0x94
/* 80353314 38 C0 00 01 */ li r6, 1
/* 80353318 4B FE FC 45 */ bl EXIImmEx
/* 8035331C 2C 03 00 00 */ cmpwi r3, 0
/* 80353320 40 82 00 1C */ bne lbl_8035333C
/* 80353324 7F C3 F3 78 */ mr r3, r30
/* 80353328 4B FF 06 6D */ bl EXIDeselect
/* 8035332C 7F C3 F3 78 */ mr r3, r30
/* 80353330 4B FF 0D ED */ bl EXIUnlock
/* 80353334 38 60 FF FD */ li r3, -3
/* 80353338 48 00 00 C4 */ b lbl_803533FC
lbl_8035333C:
/* 8035333C 88 1F 00 94 */ lbz r0, 0x94(r31)
/* 80353340 28 00 00 52 */ cmplwi r0, 0x52
/* 80353344 40 82 00 3C */ bne lbl_80353380
/* 80353348 80 9F 00 80 */ lwz r4, 0x80(r31)
/* 8035334C 7F C3 F3 78 */ mr r3, r30
/* 80353350 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 80353354 38 C0 00 01 */ li r6, 1
/* 80353358 38 84 02 00 */ addi r4, r4, 0x200
/* 8035335C 4B FE FC 01 */ bl EXIImmEx
/* 80353360 2C 03 00 00 */ cmpwi r3, 0
/* 80353364 40 82 00 1C */ bne lbl_80353380
/* 80353368 7F C3 F3 78 */ mr r3, r30
/* 8035336C 4B FF 06 29 */ bl EXIDeselect
/* 80353370 7F C3 F3 78 */ mr r3, r30
/* 80353374 4B FF 0D A9 */ bl EXIUnlock
/* 80353378 38 60 FF FD */ li r3, -3
/* 8035337C 48 00 00 80 */ b lbl_803533FC
lbl_80353380:
/* 80353380 80 7F 00 A4 */ lwz r3, 0xa4(r31)
/* 80353384 3C 03 00 01 */ addis r0, r3, 1
/* 80353388 28 00 FF FF */ cmplwi r0, 0xffff
/* 8035338C 40 82 00 1C */ bne lbl_803533A8
/* 80353390 7F C3 F3 78 */ mr r3, r30
/* 80353394 4B FF 06 01 */ bl EXIDeselect
/* 80353398 7F C3 F3 78 */ mr r3, r30
/* 8035339C 4B FF 0D 81 */ bl EXIUnlock
/* 803533A0 38 60 00 00 */ li r3, 0
/* 803533A4 48 00 00 58 */ b lbl_803533FC
lbl_803533A8:
/* 803533A8 88 1F 00 94 */ lbz r0, 0x94(r31)
/* 803533AC 28 00 00 52 */ cmplwi r0, 0x52
/* 803533B0 40 82 00 0C */ bne lbl_803533BC
/* 803533B4 38 A0 02 00 */ li r5, 0x200
/* 803533B8 48 00 00 08 */ b lbl_803533C0
lbl_803533BC:
/* 803533BC A0 BF 00 0A */ lhz r5, 0xa(r31)
lbl_803533C0:
/* 803533C0 3C 60 80 35 */ lis r3, __CARDTxHandler@ha /* 0x80352C58@ha */
/* 803533C4 80 9F 00 B4 */ lwz r4, 0xb4(r31)
/* 803533C8 38 E3 2C 58 */ addi r7, r3, __CARDTxHandler@l /* 0x80352C58@l */
/* 803533CC 80 DF 00 A4 */ lwz r6, 0xa4(r31)
/* 803533D0 7F C3 F3 78 */ mr r3, r30
/* 803533D4 4B FE FC 29 */ bl EXIDma
/* 803533D8 2C 03 00 00 */ cmpwi r3, 0
/* 803533DC 40 82 00 1C */ bne lbl_803533F8
/* 803533E0 7F C3 F3 78 */ mr r3, r30
/* 803533E4 4B FF 05 B1 */ bl EXIDeselect
/* 803533E8 7F C3 F3 78 */ mr r3, r30
/* 803533EC 4B FF 0D 31 */ bl EXIUnlock
/* 803533F0 38 60 FF FD */ li r3, -3
/* 803533F4 48 00 00 08 */ b lbl_803533FC
lbl_803533F8:
/* 803533F8 38 60 00 00 */ li r3, 0
lbl_803533FC:
/* 803533FC 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80353400 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80353404 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80353408 38 21 00 18 */ addi r1, r1, 0x18
/* 8035340C 7C 08 03 A6 */ mtlr r0
/* 80353410 4E 80 00 20 */ blr
@@ -1,28 +0,0 @@
lbl_80353C6C:
/* 80353C6C 7C 08 02 A6 */ mflr r0
/* 80353C70 90 01 00 04 */ stw r0, 4(r1)
/* 80353C74 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80353C78 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80353C7C 3B E4 00 00 */ addi r31, r4, 0
/* 80353C80 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80353C84 3B C3 00 00 */ addi r30, r3, 0
/* 80353C88 4B FE 9A 6D */ bl OSDisableInterrupts
/* 80353C8C 80 1E 00 00 */ lwz r0, 0(r30)
/* 80353C90 2C 00 00 00 */ cmpwi r0, 0
/* 80353C94 41 82 00 0C */ beq lbl_80353CA0
/* 80353C98 93 FE 00 04 */ stw r31, 4(r30)
/* 80353C9C 48 00 00 14 */ b lbl_80353CB0
lbl_80353CA0:
/* 80353CA0 80 1E 00 04 */ lwz r0, 4(r30)
/* 80353CA4 2C 00 FF FF */ cmpwi r0, -1
/* 80353CA8 40 82 00 08 */ bne lbl_80353CB0
/* 80353CAC 93 FE 00 04 */ stw r31, 4(r30)
lbl_80353CB0:
/* 80353CB0 4B FE 9A 6D */ bl OSRestoreInterrupts
/* 80353CB4 7F E3 FB 78 */ mr r3, r31
/* 80353CB8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80353CBC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80353CC0 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80353CC4 38 21 00 18 */ addi r1, r1, 0x18
/* 80353CC8 7C 08 03 A6 */ mtlr r0
/* 80353CCC 4E 80 00 20 */ blr
@@ -1,64 +0,0 @@
lbl_80352F34:
/* 80352F34 7C 08 02 A6 */ mflr r0
/* 80352F38 38 A0 00 04 */ li r5, 4
/* 80352F3C 90 01 00 04 */ stw r0, 4(r1)
/* 80352F40 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80352F44 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80352F48 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80352F4C 3B C4 00 00 */ addi r30, r4, 0
/* 80352F50 38 80 00 00 */ li r4, 0
/* 80352F54 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80352F58 3B A3 00 00 */ addi r29, r3, 0
/* 80352F5C 4B FF 09 0D */ bl EXISelect
/* 80352F60 2C 03 00 00 */ cmpwi r3, 0
/* 80352F64 40 82 00 0C */ bne lbl_80352F70
/* 80352F68 38 60 FF FD */ li r3, -3
/* 80352F6C 48 00 00 9C */ b lbl_80353008
lbl_80352F70:
/* 80352F70 3C 00 85 00 */ lis r0, 0x8500
/* 80352F74 90 01 00 10 */ stw r0, 0x10(r1)
/* 80352F78 38 7D 00 00 */ addi r3, r29, 0
/* 80352F7C 38 81 00 10 */ addi r4, r1, 0x10
/* 80352F80 38 A0 00 02 */ li r5, 2
/* 80352F84 38 C0 00 01 */ li r6, 1
/* 80352F88 38 E0 00 00 */ li r7, 0
/* 80352F8C 4B FE FD 75 */ bl EXIImm
/* 80352F90 7C 60 00 34 */ cntlzw r0, r3
/* 80352F94 38 7D 00 00 */ addi r3, r29, 0
/* 80352F98 54 1F D9 7E */ srwi r31, r0, 5
/* 80352F9C 4B FF 01 4D */ bl EXISync
/* 80352FA0 7C 60 00 34 */ cntlzw r0, r3
/* 80352FA4 54 00 D9 7E */ srwi r0, r0, 5
/* 80352FA8 38 7D 00 00 */ addi r3, r29, 0
/* 80352FAC 38 9E 00 00 */ addi r4, r30, 0
/* 80352FB0 7F FF 03 78 */ or r31, r31, r0
/* 80352FB4 38 A0 00 02 */ li r5, 2
/* 80352FB8 38 C0 00 00 */ li r6, 0
/* 80352FBC 38 E0 00 00 */ li r7, 0
/* 80352FC0 4B FE FD 41 */ bl EXIImm
/* 80352FC4 7C 60 00 34 */ cntlzw r0, r3
/* 80352FC8 54 00 D9 7E */ srwi r0, r0, 5
/* 80352FCC 38 7D 00 00 */ addi r3, r29, 0
/* 80352FD0 7F FF 03 78 */ or r31, r31, r0
/* 80352FD4 4B FF 01 15 */ bl EXISync
/* 80352FD8 7C 60 00 34 */ cntlzw r0, r3
/* 80352FDC 54 00 D9 7E */ srwi r0, r0, 5
/* 80352FE0 38 7D 00 00 */ addi r3, r29, 0
/* 80352FE4 7F FF 03 78 */ or r31, r31, r0
/* 80352FE8 4B FF 09 AD */ bl EXIDeselect
/* 80352FEC 7C 60 00 34 */ cntlzw r0, r3
/* 80352FF0 54 00 D9 7E */ srwi r0, r0, 5
/* 80352FF4 7F FF 03 79 */ or. r31, r31, r0
/* 80352FF8 41 82 00 0C */ beq lbl_80353004
/* 80352FFC 38 60 FF FD */ li r3, -3
/* 80353000 48 00 00 08 */ b lbl_80353008
lbl_80353004:
/* 80353004 38 60 00 00 */ li r3, 0
lbl_80353008:
/* 80353008 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8035300C 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80353010 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80353014 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80353018 38 21 00 28 */ addi r1, r1, 0x28
/* 8035301C 7C 08 03 A6 */ mtlr r0
/* 80353020 4E 80 00 20 */ blr
-149
View File
@@ -1,149 +0,0 @@
lbl_80353524:
/* 80353524 7C 08 02 A6 */ mflr r0
/* 80353528 90 01 00 04 */ stw r0, 4(r1)
/* 8035352C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80353530 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 80353534 3B 63 00 00 */ addi r27, r3, 0
/* 80353538 3B 84 00 00 */ addi r28, r4, 0
/* 8035353C 3B A5 00 00 */ addi r29, r5, 0
/* 80353540 4B FE A1 B5 */ bl OSDisableInterrupts
/* 80353544 1C BB 01 10 */ mulli r5, r27, 0x110
/* 80353548 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 8035354C 38 04 CB C0 */ addi r0, r4, __CARDBlock@l /* 0x8044CBC0@l */
/* 80353550 7F E0 2A 14 */ add r31, r0, r5
/* 80353554 80 1F 00 00 */ lwz r0, 0(r31)
/* 80353558 3B C3 00 00 */ addi r30, r3, 0
/* 8035355C 2C 00 00 00 */ cmpwi r0, 0
/* 80353560 40 82 00 0C */ bne lbl_8035356C
/* 80353564 3B A0 FF FD */ li r29, -3
/* 80353568 48 00 01 C0 */ b lbl_80353728
lbl_8035356C:
/* 8035356C 28 1C 00 00 */ cmplwi r28, 0
/* 80353570 41 82 00 08 */ beq lbl_80353578
/* 80353574 93 9F 00 C8 */ stw r28, 0xc8(r31)
lbl_80353578:
/* 80353578 28 1D 00 00 */ cmplwi r29, 0
/* 8035357C 41 82 00 08 */ beq lbl_80353584
/* 80353580 93 BF 00 CC */ stw r29, 0xcc(r31)
lbl_80353584:
/* 80353584 3C 60 80 35 */ lis r3, UnlockedCallback@ha /* 0x80353414@ha */
/* 80353588 38 03 34 14 */ addi r0, r3, UnlockedCallback@l /* 0x80353414@l */
/* 8035358C 3C 60 80 35 */ lis r3, __CARDUnlockedHandler@ha /* 0x80352D00@ha */
/* 80353590 90 1F 00 DC */ stw r0, 0xdc(r31)
/* 80353594 38 A3 2D 00 */ addi r5, r3, __CARDUnlockedHandler@l /* 0x80352D00@l */
/* 80353598 38 7B 00 00 */ addi r3, r27, 0
/* 8035359C 38 80 00 00 */ li r4, 0
/* 803535A0 4B FF 0A 89 */ bl EXILock
/* 803535A4 2C 03 00 00 */ cmpwi r3, 0
/* 803535A8 40 82 00 0C */ bne lbl_803535B4
/* 803535AC 3B A0 FF FF */ li r29, -1
/* 803535B0 48 00 01 78 */ b lbl_80353728
lbl_803535B4:
/* 803535B4 3B A0 00 00 */ li r29, 0
/* 803535B8 93 BF 00 DC */ stw r29, 0xdc(r31)
/* 803535BC 38 7B 00 00 */ addi r3, r27, 0
/* 803535C0 38 80 00 00 */ li r4, 0
/* 803535C4 38 A0 00 04 */ li r5, 4
/* 803535C8 4B FF 02 A1 */ bl EXISelect
/* 803535CC 2C 03 00 00 */ cmpwi r3, 0
/* 803535D0 40 82 00 14 */ bne lbl_803535E4
/* 803535D4 7F 63 DB 78 */ mr r3, r27
/* 803535D8 4B FF 0B 45 */ bl EXIUnlock
/* 803535DC 3B A0 FF FD */ li r29, -3
/* 803535E0 48 00 01 48 */ b lbl_80353728
lbl_803535E4:
/* 803535E4 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 803535E8 4B FE 76 55 */ bl OSCancelAlarm
/* 803535EC 88 1F 00 94 */ lbz r0, 0x94(r31)
/* 803535F0 2C 00 00 F3 */ cmpwi r0, 0xf3
/* 803535F4 41 82 01 30 */ beq lbl_80353724
/* 803535F8 40 80 00 14 */ bge lbl_8035360C
/* 803535FC 2C 00 00 F1 */ cmpwi r0, 0xf1
/* 80353600 41 82 00 C0 */ beq lbl_803536C0
/* 80353604 40 80 00 14 */ bge lbl_80353618
/* 80353608 48 00 01 1C */ b lbl_80353724
lbl_8035360C:
/* 8035360C 2C 00 00 F5 */ cmpwi r0, 0xf5
/* 80353610 40 80 01 14 */ bge lbl_80353724
/* 80353614 48 00 00 3C */ b lbl_80353650
lbl_80353618:
/* 80353618 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
/* 8035361C 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
/* 80353620 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */
/* 80353624 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
/* 80353628 54 00 F0 BE */ srwi r0, r0, 2
/* 8035362C 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */
/* 80353630 7C 04 00 16 */ mulhwu r0, r4, r0
/* 80353634 54 00 D1 BE */ srwi r0, r0, 6
/* 80353638 1C C0 00 64 */ mulli r6, r0, 0x64
/* 8035363C 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
/* 80353640 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 80353644 38 A0 00 00 */ li r5, 0
/* 80353648 4B FE 75 11 */ bl OSSetAlarm
/* 8035364C 48 00 00 D8 */ b lbl_80353724
lbl_80353650:
/* 80353650 A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 80353654 28 00 00 80 */ cmplwi r0, 0x80
/* 80353658 40 81 00 68 */ ble lbl_803536C0
/* 8035365C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
/* 80353660 A0 9F 00 10 */ lhz r4, 0x10(r31)
/* 80353664 80 63 00 F8 */ lwz r3, 0x00F8(r3) /* 0x800000F8@l */
/* 80353668 38 00 00 02 */ li r0, 2
/* 8035366C 7C 89 36 70 */ srawi r9, r4, 6
/* 80353670 54 63 F0 BE */ srwi r3, r3, 2
/* 80353674 7D 1D 01 D6 */ mullw r8, r29, r0
/* 80353678 7C C3 00 16 */ mulhwu r6, r3, r0
/* 8035367C 7D 08 32 14 */ add r8, r8, r6
/* 80353680 7C A3 01 D6 */ mullw r5, r3, r0
/* 80353684 7D 29 01 94 */ addze r9, r9
/* 80353688 7D 20 FE 70 */ srawi r0, r9, 0x1f
/* 8035368C 7C C3 E9 D6 */ mullw r6, r3, r29
/* 80353690 7C 80 29 D6 */ mullw r4, r0, r5
/* 80353694 7C 09 28 16 */ mulhwu r0, r9, r5
/* 80353698 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
/* 8035369C 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
/* 803536A0 7C 68 32 14 */ add r3, r8, r6
/* 803536A4 7C 84 02 14 */ add r4, r4, r0
/* 803536A8 7C 09 19 D6 */ mullw r0, r9, r3
/* 803536AC 7C C9 29 D6 */ mullw r6, r9, r5
/* 803536B0 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 803536B4 7C A4 02 14 */ add r5, r4, r0
/* 803536B8 4B FE 74 A1 */ bl OSSetAlarm
/* 803536BC 48 00 00 68 */ b lbl_80353724
lbl_803536C0:
/* 803536C0 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
/* 803536C4 80 9F 00 0C */ lwz r4, 0xc(r31)
/* 803536C8 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
/* 803536CC 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
/* 803536D0 7C 89 6E 70 */ srawi r9, r4, 0xd
/* 803536D4 54 07 F0 BE */ srwi r7, r0, 2
/* 803536D8 38 00 00 02 */ li r0, 2
/* 803536DC 38 80 00 00 */ li r4, 0
/* 803536E0 7D 04 01 D6 */ mullw r8, r4, r0
/* 803536E4 7C C7 00 16 */ mulhwu r6, r7, r0
/* 803536E8 7D 08 32 14 */ add r8, r8, r6
/* 803536EC 7C A7 01 D6 */ mullw r5, r7, r0
/* 803536F0 7D 29 01 94 */ addze r9, r9
/* 803536F4 7C C7 21 D6 */ mullw r6, r7, r4
/* 803536F8 7D 20 FE 70 */ srawi r0, r9, 0x1f
/* 803536FC 7C 80 29 D6 */ mullw r4, r0, r5
/* 80353700 7C 09 28 16 */ mulhwu r0, r9, r5
/* 80353704 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
/* 80353708 7C 68 32 14 */ add r3, r8, r6
/* 8035370C 7C 84 02 14 */ add r4, r4, r0
/* 80353710 7C 09 19 D6 */ mullw r0, r9, r3
/* 80353714 7C C9 29 D6 */ mullw r6, r9, r5
/* 80353718 38 7F 00 E0 */ addi r3, r31, 0xe0
/* 8035371C 7C A4 02 14 */ add r5, r4, r0
/* 80353720 4B FE 74 39 */ bl OSSetAlarm
lbl_80353724:
/* 80353724 3B A0 00 00 */ li r29, 0
lbl_80353728:
/* 80353728 7F C3 F3 78 */ mr r3, r30
/* 8035372C 4B FE 9F F1 */ bl OSRestoreInterrupts
/* 80353730 7F A3 EB 78 */ mr r3, r29
/* 80353734 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 80353738 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8035373C 38 21 00 30 */ addi r1, r1, 0x30
/* 80353740 7C 08 03 A6 */ mtlr r0
/* 80353744 4E 80 00 20 */ blr
@@ -1,86 +0,0 @@
lbl_8035387C:
/* 8035387C 7C 08 02 A6 */ mflr r0
/* 80353880 90 01 00 04 */ stw r0, 4(r1)
/* 80353884 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80353888 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8035388C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80353890 3B C3 00 00 */ addi r30, r3, 0
/* 80353894 1C BE 01 10 */ mulli r5, r30, 0x110
/* 80353898 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 8035389C 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 803538A0 7F E0 2A 14 */ add r31, r0, r5
/* 803538A4 38 00 00 F2 */ li r0, 0xf2
/* 803538A8 98 1F 00 94 */ stb r0, 0x94(r31)
/* 803538AC A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 803538B0 28 00 00 80 */ cmplwi r0, 0x80
/* 803538B4 40 81 00 18 */ ble lbl_803538CC
/* 803538B8 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 803538BC 54 00 7E 7E */ rlwinm r0, r0, 0xf, 0x19, 0x1f
/* 803538C0 60 00 00 80 */ ori r0, r0, 0x80
/* 803538C4 98 1F 00 95 */ stb r0, 0x95(r31)
/* 803538C8 48 00 00 10 */ b lbl_803538D8
lbl_803538CC:
/* 803538CC 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 803538D0 54 00 7E 7E */ rlwinm r0, r0, 0xf, 0x19, 0x1f
/* 803538D4 98 1F 00 95 */ stb r0, 0x95(r31)
lbl_803538D8:
/* 803538D8 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 803538DC 38 E0 00 05 */ li r7, 5
/* 803538E0 38 C0 00 01 */ li r6, 1
/* 803538E4 54 00 BE 3E */ rlwinm r0, r0, 0x17, 0x18, 0x1f
/* 803538E8 98 1F 00 96 */ stb r0, 0x96(r31)
/* 803538EC 38 00 00 03 */ li r0, 3
/* 803538F0 38 7E 00 00 */ addi r3, r30, 0
/* 803538F4 81 1F 00 B0 */ lwz r8, 0xb0(r31)
/* 803538F8 38 A4 00 00 */ addi r5, r4, 0
/* 803538FC 38 80 00 00 */ li r4, 0
/* 80353900 55 08 CF BE */ rlwinm r8, r8, 0x19, 0x1e, 0x1f
/* 80353904 99 1F 00 97 */ stb r8, 0x97(r31)
/* 80353908 81 1F 00 B0 */ lwz r8, 0xb0(r31)
/* 8035390C 55 08 06 7E */ clrlwi r8, r8, 0x19
/* 80353910 99 1F 00 98 */ stb r8, 0x98(r31)
/* 80353914 90 FF 00 A0 */ stw r7, 0xa0(r31)
/* 80353918 90 DF 00 A4 */ stw r6, 0xa4(r31)
/* 8035391C 90 1F 00 A8 */ stw r0, 0xa8(r31)
/* 80353920 4B FF FC 05 */ bl __CARDStart
/* 80353924 2C 03 FF FF */ cmpwi r3, -1
/* 80353928 40 82 00 0C */ bne lbl_80353934
/* 8035392C 38 60 00 00 */ li r3, 0
/* 80353930 48 00 00 70 */ b lbl_803539A0
lbl_80353934:
/* 80353934 2C 03 00 00 */ cmpwi r3, 0
/* 80353938 41 80 00 68 */ blt lbl_803539A0
/* 8035393C 80 BF 00 A0 */ lwz r5, 0xa0(r31)
/* 80353940 38 7E 00 00 */ addi r3, r30, 0
/* 80353944 38 9F 00 94 */ addi r4, r31, 0x94
/* 80353948 38 C0 00 01 */ li r6, 1
/* 8035394C 4B FE F6 11 */ bl EXIImmEx
/* 80353950 2C 03 00 00 */ cmpwi r3, 0
/* 80353954 41 82 00 28 */ beq lbl_8035397C
/* 80353958 3C 60 80 35 */ lis r3, __CARDTxHandler@ha /* 0x80352C58@ha */
/* 8035395C 80 9F 00 B4 */ lwz r4, 0xb4(r31)
/* 80353960 38 E3 2C 58 */ addi r7, r3, __CARDTxHandler@l /* 0x80352C58@l */
/* 80353964 A0 BF 00 0A */ lhz r5, 0xa(r31)
/* 80353968 80 DF 00 A4 */ lwz r6, 0xa4(r31)
/* 8035396C 7F C3 F3 78 */ mr r3, r30
/* 80353970 4B FE F6 8D */ bl EXIDma
/* 80353974 2C 03 00 00 */ cmpwi r3, 0
/* 80353978 40 82 00 24 */ bne lbl_8035399C
lbl_8035397C:
/* 8035397C 38 00 00 00 */ li r0, 0
/* 80353980 90 1F 00 CC */ stw r0, 0xcc(r31)
/* 80353984 7F C3 F3 78 */ mr r3, r30
/* 80353988 4B FF 00 0D */ bl EXIDeselect
/* 8035398C 7F C3 F3 78 */ mr r3, r30
/* 80353990 4B FF 07 8D */ bl EXIUnlock
/* 80353994 38 60 FF FD */ li r3, -3
/* 80353998 48 00 00 08 */ b lbl_803539A0
lbl_8035399C:
/* 8035399C 38 60 00 00 */ li r3, 0
lbl_803539A0:
/* 803539A0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803539A4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803539A8 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803539AC 38 21 00 18 */ addi r1, r1, 0x18
/* 803539B0 7C 08 03 A6 */ mtlr r0
/* 803539B4 4E 80 00 20 */ blr
@@ -1,54 +0,0 @@
lbl_803554F0:
/* 803554F0 7C 08 02 A6 */ mflr r0
/* 803554F4 90 01 00 04 */ stw r0, 4(r1)
/* 803554F8 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803554FC 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80355500 3B E3 00 00 */ addi r31, r3, 0
/* 80355504 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80355508 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8035550C 1C BF 01 10 */ mulli r5, r31, 0x110
/* 80355510 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80355514 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 80355518 7C 9D 23 79 */ or. r29, r4, r4
/* 8035551C 7F C0 2A 14 */ add r30, r0, r5
/* 80355520 41 80 00 3C */ blt lbl_8035555C
/* 80355524 80 BE 00 88 */ lwz r5, 0x88(r30)
/* 80355528 3C 60 80 35 */ lis r3, WriteCallback@ha /* 0x8035541C@ha */
/* 8035552C 80 1E 00 80 */ lwz r0, 0x80(r30)
/* 80355530 38 E3 54 1C */ addi r7, r3, WriteCallback@l /* 0x8035541C@l */
/* 80355534 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 80355538 7C 00 28 50 */ subf r0, r0, r5
/* 8035553C 54 00 9B 7E */ srwi r0, r0, 0xd
/* 80355540 7C 83 01 D6 */ mullw r4, r3, r0
/* 80355544 38 C5 00 00 */ addi r6, r5, 0
/* 80355548 38 7F 00 00 */ addi r3, r31, 0
/* 8035554C 38 A0 20 00 */ li r5, 0x2000
/* 80355550 4B FF FE 5D */ bl __CARDWrite
/* 80355554 7C 7D 1B 79 */ or. r29, r3, r3
/* 80355558 40 80 00 44 */ bge lbl_8035559C
lbl_8035555C:
/* 8035555C 80 1E 00 D0 */ lwz r0, 0xd0(r30)
/* 80355560 28 00 00 00 */ cmplwi r0, 0
/* 80355564 40 82 00 10 */ bne lbl_80355574
/* 80355568 38 7E 00 00 */ addi r3, r30, 0
/* 8035556C 38 9D 00 00 */ addi r4, r29, 0
/* 80355570 4B FF E6 FD */ bl __CARDPutControlBlock
lbl_80355574:
/* 80355574 80 1E 00 D8 */ lwz r0, 0xd8(r30)
/* 80355578 28 00 00 00 */ cmplwi r0, 0
/* 8035557C 7C 0C 03 78 */ mr r12, r0
/* 80355580 41 82 00 1C */ beq lbl_8035559C
/* 80355584 38 00 00 00 */ li r0, 0
/* 80355588 7D 88 03 A6 */ mtlr r12
/* 8035558C 90 1E 00 D8 */ stw r0, 0xd8(r30)
/* 80355590 38 7F 00 00 */ addi r3, r31, 0
/* 80355594 38 9D 00 00 */ addi r4, r29, 0
/* 80355598 4E 80 00 21 */ blrl
lbl_8035559C:
/* 8035559C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803555A0 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 803555A4 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 803555A8 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 803555AC 38 21 00 28 */ addi r1, r1, 0x28
/* 803555B0 7C 08 03 A6 */ mtlr r0
/* 803555B4 4E 80 00 20 */ blr
@@ -1,81 +0,0 @@
lbl_803555B8:
/* 803555B8 7C 08 02 A6 */ mflr r0
/* 803555BC 1C E3 01 10 */ mulli r7, r3, 0x110
/* 803555C0 90 01 00 04 */ stw r0, 4(r1)
/* 803555C4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803555C8 3C C0 80 45 */ lis r6, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 803555CC 38 06 CB C0 */ addi r0, r6, __CARDBlock@l /* 0x8044CBC0@l */
/* 803555D0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803555D4 7D 20 3A 14 */ add r9, r0, r7
/* 803555D8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803555DC 80 09 00 00 */ lwz r0, 0(r9)
/* 803555E0 2C 00 00 00 */ cmpwi r0, 0
/* 803555E4 40 82 00 0C */ bne lbl_803555F0
/* 803555E8 38 60 FF FD */ li r3, -3
/* 803555EC 48 00 00 CC */ b lbl_803556B8
lbl_803555F0:
/* 803555F0 81 09 00 88 */ lwz r8, 0x88(r9)
/* 803555F4 A0 08 00 06 */ lhz r0, 6(r8)
/* 803555F8 7C 00 20 40 */ cmplw r0, r4
/* 803555FC 40 80 00 0C */ bge lbl_80355608
/* 80355600 38 60 FF F7 */ li r3, -9
/* 80355604 48 00 00 B4 */ b lbl_803556B8
lbl_80355608:
/* 80355608 7C 04 00 50 */ subf r0, r4, r0
/* 8035560C B0 08 00 06 */ sth r0, 6(r8)
/* 80355610 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */
/* 80355614 39 86 FF FF */ addi r12, r6, 0xFFFF /* 0x0000FFFF@l */
/* 80355618 A1 68 00 08 */ lhz r11, 8(r8)
/* 8035561C 38 0C 00 00 */ addi r0, r12, 0
/* 80355620 3B C0 00 00 */ li r30, 0
/* 80355624 48 00 00 7C */ b lbl_803556A0
lbl_80355628:
/* 80355628 A1 49 00 10 */ lhz r10, 0x10(r9)
/* 8035562C 3B DE 00 01 */ addi r30, r30, 1
/* 80355630 57 C6 04 3E */ clrlwi r6, r30, 0x10
/* 80355634 38 EA FF FB */ addi r7, r10, -5
/* 80355638 7C 07 30 00 */ cmpw r7, r6
/* 8035563C 40 80 00 0C */ bge lbl_80355648
/* 80355640 38 60 FF FA */ li r3, -6
/* 80355644 48 00 00 74 */ b lbl_803556B8
lbl_80355648:
/* 80355648 39 6B 00 01 */ addi r11, r11, 1
/* 8035564C 55 66 04 3E */ clrlwi r6, r11, 0x10
/* 80355650 28 06 00 05 */ cmplwi r6, 5
/* 80355654 41 80 00 0C */ blt lbl_80355660
/* 80355658 7C 06 50 40 */ cmplw r6, r10
/* 8035565C 41 80 00 08 */ blt lbl_80355664
lbl_80355660:
/* 80355660 39 60 00 05 */ li r11, 5
lbl_80355664:
/* 80355664 55 66 0B FC */ rlwinm r6, r11, 1, 0xf, 0x1e
/* 80355668 7C E8 32 14 */ add r7, r8, r6
/* 8035566C A0 C7 00 00 */ lhz r6, 0(r7)
/* 80355670 28 06 00 00 */ cmplwi r6, 0
/* 80355674 40 82 00 2C */ bne lbl_803556A0
/* 80355678 55 86 04 3E */ clrlwi r6, r12, 0x10
/* 8035567C 28 06 FF FF */ cmplwi r6, 0xffff
/* 80355680 40 82 00 0C */ bne lbl_8035568C
/* 80355684 7D 6C 5B 78 */ mr r12, r11
/* 80355688 48 00 00 0C */ b lbl_80355694
lbl_8035568C:
/* 8035568C 57 E6 0B FC */ rlwinm r6, r31, 1, 0xf, 0x1e
/* 80355690 7D 68 33 2E */ sthx r11, r8, r6
lbl_80355694:
/* 80355694 B0 07 00 00 */ sth r0, 0(r7)
/* 80355698 3B EB 00 00 */ addi r31, r11, 0
/* 8035569C 38 84 FF FF */ addi r4, r4, -1
lbl_803556A0:
/* 803556A0 28 04 00 00 */ cmplwi r4, 0
/* 803556A4 40 82 FF 84 */ bne lbl_80355628
/* 803556A8 B1 68 00 08 */ sth r11, 8(r8)
/* 803556AC 7D 04 43 78 */ mr r4, r8
/* 803556B0 B1 89 00 BE */ sth r12, 0xbe(r9)
/* 803556B4 48 00 00 1D */ bl __CARDUpdateFatBlock
lbl_803556B8:
/* 803556B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803556BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803556C0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803556C4 38 21 00 20 */ addi r1, r1, 0x20
/* 803556C8 7C 08 03 A6 */ mtlr r0
/* 803556CC 4E 80 00 20 */ blr
@@ -1,44 +0,0 @@
lbl_803556D0:
/* 803556D0 7C 08 02 A6 */ mflr r0
/* 803556D4 90 01 00 04 */ stw r0, 4(r1)
/* 803556D8 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803556DC 93 E1 00 24 */ stw r31, 0x24(r1)
/* 803556E0 93 C1 00 20 */ stw r30, 0x20(r1)
/* 803556E4 3B C5 00 00 */ addi r30, r5, 0
/* 803556E8 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 803556EC 3B A4 00 00 */ addi r29, r4, 0
/* 803556F0 38 BD 00 00 */ addi r5, r29, 0
/* 803556F4 93 81 00 18 */ stw r28, 0x18(r1)
/* 803556F8 3B 83 00 00 */ addi r28, r3, 0
/* 803556FC 38 DD 00 02 */ addi r6, r29, 2
/* 80355700 A0 64 00 04 */ lhz r3, 4(r4)
/* 80355704 1C 9C 01 10 */ mulli r4, r28, 0x110
/* 80355708 38 03 00 01 */ addi r0, r3, 1
/* 8035570C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80355710 B0 1D 00 04 */ sth r0, 4(r29)
/* 80355714 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 80355718 7F E0 22 14 */ add r31, r0, r4
/* 8035571C 38 7D 00 04 */ addi r3, r29, 4
/* 80355720 38 80 1F FC */ li r4, 0x1ffc
/* 80355724 48 00 02 BD */ bl __CARDCheckSum
/* 80355728 38 7D 00 00 */ addi r3, r29, 0
/* 8035572C 38 80 20 00 */ li r4, 0x2000
/* 80355730 4B FE 5E AD */ bl DCStoreRange
/* 80355734 93 DF 00 D8 */ stw r30, 0xd8(r31)
/* 80355738 3C 60 80 35 */ lis r3, EraseCallback@ha /* 0x803554F0@ha */
/* 8035573C 38 A3 54 F0 */ addi r5, r3, EraseCallback@l /* 0x803554F0@l */
/* 80355740 80 1F 00 80 */ lwz r0, 0x80(r31)
/* 80355744 7F 83 E3 78 */ mr r3, r28
/* 80355748 80 9F 00 0C */ lwz r4, 0xc(r31)
/* 8035574C 7C 00 E8 50 */ subf r0, r0, r29
/* 80355750 54 00 9B 7E */ srwi r0, r0, 0xd
/* 80355754 7C 84 01 D6 */ mullw r4, r4, r0
/* 80355758 4B FF E2 61 */ bl __CARDEraseSector
/* 8035575C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80355760 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80355764 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80355768 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8035576C 83 81 00 18 */ lwz r28, 0x18(r1)
/* 80355770 38 21 00 28 */ addi r1, r1, 0x28
/* 80355774 7C 08 03 A6 */ mtlr r0
/* 80355778 4E 80 00 20 */ blr
@@ -1,391 +0,0 @@
lbl_80356364:
/* 80356364 7C 08 02 A6 */ mflr r0
/* 80356368 90 01 00 04 */ stw r0, 4(r1)
/* 8035636C 94 21 FF A8 */ stwu r1, -0x58(r1)
/* 80356370 BF 21 00 3C */ stmw r25, 0x3c(r1)
/* 80356374 7C 9A 23 79 */ or. r26, r4, r4
/* 80356378 3B 23 00 00 */ addi r25, r3, 0
/* 8035637C 3B 65 00 00 */ addi r27, r5, 0
/* 80356380 3B C0 00 00 */ li r30, 0
/* 80356384 3B A0 00 00 */ li r29, 0
/* 80356388 3B 80 00 00 */ li r28, 0
/* 8035638C 41 82 00 0C */ beq lbl_80356398
/* 80356390 38 00 00 00 */ li r0, 0
/* 80356394 90 1A 00 00 */ stw r0, 0(r26)
lbl_80356398:
/* 80356398 38 79 00 00 */ addi r3, r25, 0
/* 8035639C 38 81 00 30 */ addi r4, r1, 0x30
/* 803563A0 4B FF D8 15 */ bl __CARDGetControlBlock
/* 803563A4 2C 03 00 00 */ cmpwi r3, 0
/* 803563A8 40 80 00 08 */ bge lbl_803563B0
/* 803563AC 48 00 05 34 */ b lbl_803568E0
lbl_803563B0:
/* 803563B0 80 61 00 30 */ lwz r3, 0x30(r1)
/* 803563B4 4B FF F7 DD */ bl VerifyID
/* 803563B8 7C 64 1B 79 */ or. r4, r3, r3
/* 803563BC 40 80 00 10 */ bge lbl_803563CC
/* 803563C0 80 61 00 30 */ lwz r3, 0x30(r1)
/* 803563C4 4B FF D8 A9 */ bl __CARDPutControlBlock
/* 803563C8 48 00 05 18 */ b lbl_803568E0
lbl_803563CC:
/* 803563CC 80 61 00 30 */ lwz r3, 0x30(r1)
/* 803563D0 38 81 00 18 */ addi r4, r1, 0x18
/* 803563D4 4B FF FA 41 */ bl VerifyDir
/* 803563D8 7C 7F 1B 78 */ mr r31, r3
/* 803563DC 80 61 00 30 */ lwz r3, 0x30(r1)
/* 803563E0 38 81 00 1C */ addi r4, r1, 0x1c
/* 803563E4 4B FF FC 71 */ bl VerifyFAT
/* 803563E8 7C BF 1A 14 */ add r5, r31, r3
/* 803563EC 2C 05 00 01 */ cmpwi r5, 1
/* 803563F0 40 81 00 14 */ ble lbl_80356404
/* 803563F4 80 61 00 30 */ lwz r3, 0x30(r1)
/* 803563F8 38 80 FF FA */ li r4, -6
/* 803563FC 4B FF D8 71 */ bl __CARDPutControlBlock
/* 80356400 48 00 04 E0 */ b lbl_803568E0
lbl_80356404:
/* 80356404 80 C1 00 30 */ lwz r6, 0x30(r1)
/* 80356408 80 86 00 80 */ lwz r4, 0x80(r6)
/* 8035640C 38 64 20 00 */ addi r3, r4, 0x2000
/* 80356410 38 04 60 00 */ addi r0, r4, 0x6000
/* 80356414 90 61 00 28 */ stw r3, 0x28(r1)
/* 80356418 3C 64 00 01 */ addis r3, r4, 1
/* 8035641C 38 84 40 00 */ addi r4, r4, 0x4000
/* 80356420 90 01 00 20 */ stw r0, 0x20(r1)
/* 80356424 38 03 80 00 */ addi r0, r3, -32768
/* 80356428 90 81 00 2C */ stw r4, 0x2c(r1)
/* 8035642C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80356430 41 82 00 0C */ beq lbl_8035643C
/* 80356434 40 80 00 8C */ bge lbl_803564C0
/* 80356438 48 00 00 88 */ b lbl_803564C0
lbl_8035643C:
/* 8035643C 38 66 00 84 */ addi r3, r6, 0x84
/* 80356440 80 06 00 84 */ lwz r0, 0x84(r6)
/* 80356444 28 00 00 00 */ cmplwi r0, 0
/* 80356448 40 82 00 40 */ bne lbl_80356488
/* 8035644C 80 01 00 18 */ lwz r0, 0x18(r1)
/* 80356450 38 81 00 28 */ addi r4, r1, 0x28
/* 80356454 38 A0 20 00 */ li r5, 0x2000
/* 80356458 54 00 10 3A */ slwi r0, r0, 2
/* 8035645C 7C 04 00 2E */ lwzx r0, r4, r0
/* 80356460 90 03 00 00 */ stw r0, 0(r3)
/* 80356464 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80356468 68 60 00 01 */ xori r0, r3, 1
/* 8035646C 54 63 10 3A */ slwi r3, r3, 2
/* 80356470 54 00 10 3A */ slwi r0, r0, 2
/* 80356474 7C 64 18 2E */ lwzx r3, r4, r3
/* 80356478 7C 84 00 2E */ lwzx r4, r4, r0
/* 8035647C 4B CA D0 C5 */ bl memcpy
/* 80356480 3B A0 00 01 */ li r29, 1
/* 80356484 48 00 00 3C */ b lbl_803564C0
lbl_80356488:
/* 80356488 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8035648C 38 81 00 20 */ addi r4, r1, 0x20
/* 80356490 38 A0 20 00 */ li r5, 0x2000
/* 80356494 54 00 10 3A */ slwi r0, r0, 2
/* 80356498 7C 04 00 2E */ lwzx r0, r4, r0
/* 8035649C 90 06 00 88 */ stw r0, 0x88(r6)
/* 803564A0 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 803564A4 68 60 00 01 */ xori r0, r3, 1
/* 803564A8 54 63 10 3A */ slwi r3, r3, 2
/* 803564AC 54 00 10 3A */ slwi r0, r0, 2
/* 803564B0 7C 64 18 2E */ lwzx r3, r4, r3
/* 803564B4 7C 84 00 2E */ lwzx r4, r4, r0
/* 803564B8 4B CA D0 89 */ bl memcpy
/* 803564BC 3B C0 00 01 */ li r30, 1
lbl_803564C0:
/* 803564C0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803564C4 38 61 00 20 */ addi r3, r1, 0x20
/* 803564C8 38 80 00 00 */ li r4, 0
/* 803564CC 68 00 00 01 */ xori r0, r0, 1
/* 803564D0 54 00 10 3A */ slwi r0, r0, 2
/* 803564D4 7F E3 00 2E */ lwzx r31, r3, r0
/* 803564D8 38 A0 20 00 */ li r5, 0x2000
/* 803564DC 38 7F 00 00 */ addi r3, r31, 0
/* 803564E0 4B CA CF 79 */ bl memset
/* 803564E4 38 00 00 7F */ li r0, 0x7f
/* 803564E8 80 A1 00 30 */ lwz r5, 0x30(r1)
/* 803564EC 7C 09 03 A6 */ mtctr r0
/* 803564F0 38 C0 00 00 */ li r6, 0
lbl_803564F4:
/* 803564F4 80 05 00 84 */ lwz r0, 0x84(r5)
/* 803564F8 7C E0 32 14 */ add r7, r0, r6
/* 803564FC 88 07 00 00 */ lbz r0, 0(r7)
/* 80356500 28 00 00 FF */ cmplwi r0, 0xff
/* 80356504 41 82 00 A8 */ beq lbl_803565AC
/* 80356508 A0 87 00 36 */ lhz r4, 0x36(r7)
/* 8035650C 39 00 00 00 */ li r8, 0
/* 80356510 48 00 00 54 */ b lbl_80356564
lbl_80356514:
/* 80356514 54 83 04 3E */ clrlwi r3, r4, 0x10
/* 80356518 28 03 00 05 */ cmplwi r3, 5
/* 8035651C 41 80 00 2C */ blt lbl_80356548
/* 80356520 A0 05 00 10 */ lhz r0, 0x10(r5)
/* 80356524 7C 03 00 40 */ cmplw r3, r0
/* 80356528 40 80 00 20 */ bge lbl_80356548
/* 8035652C 54 64 08 3C */ slwi r4, r3, 1
/* 80356530 7C 7F 22 2E */ lhzx r3, r31, r4
/* 80356534 38 63 00 01 */ addi r3, r3, 1
/* 80356538 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 8035653C 7C 7F 23 2E */ sthx r3, r31, r4
/* 80356540 28 00 00 01 */ cmplwi r0, 1
/* 80356544 40 81 00 14 */ ble lbl_80356558
lbl_80356548:
/* 80356548 80 61 00 30 */ lwz r3, 0x30(r1)
/* 8035654C 38 80 FF FA */ li r4, -6
/* 80356550 4B FF D7 1D */ bl __CARDPutControlBlock
/* 80356554 48 00 03 8C */ b lbl_803568E0
lbl_80356558:
/* 80356558 80 65 00 88 */ lwz r3, 0x88(r5)
/* 8035655C 39 08 00 01 */ addi r8, r8, 1
/* 80356560 7C 83 22 2E */ lhzx r4, r3, r4
lbl_80356564:
/* 80356564 54 80 04 3E */ clrlwi r0, r4, 0x10
/* 80356568 28 00 FF FF */ cmplwi r0, 0xffff
/* 8035656C 41 82 00 14 */ beq lbl_80356580
/* 80356570 A0 07 00 38 */ lhz r0, 0x38(r7)
/* 80356574 55 03 04 3E */ clrlwi r3, r8, 0x10
/* 80356578 7C 03 00 40 */ cmplw r3, r0
/* 8035657C 41 80 FF 98 */ blt lbl_80356514
lbl_80356580:
/* 80356580 A0 07 00 38 */ lhz r0, 0x38(r7)
/* 80356584 55 03 04 3E */ clrlwi r3, r8, 0x10
/* 80356588 7C 03 00 40 */ cmplw r3, r0
/* 8035658C 40 82 00 10 */ bne lbl_8035659C
/* 80356590 54 80 04 3E */ clrlwi r0, r4, 0x10
/* 80356594 28 00 FF FF */ cmplwi r0, 0xffff
/* 80356598 41 82 00 14 */ beq lbl_803565AC
lbl_8035659C:
/* 8035659C 80 61 00 30 */ lwz r3, 0x30(r1)
/* 803565A0 38 80 FF FA */ li r4, -6
/* 803565A4 4B FF D6 C9 */ bl __CARDPutControlBlock
/* 803565A8 48 00 03 38 */ b lbl_803568E0
lbl_803565AC:
/* 803565AC 38 C6 00 40 */ addi r6, r6, 0x40
/* 803565B0 42 00 FF 44 */ bdnz lbl_803564F4
/* 803565B4 80 61 00 30 */ lwz r3, 0x30(r1)
/* 803565B8 38 DF 00 0A */ addi r6, r31, 0xa
/* 803565BC 39 20 00 00 */ li r9, 0
/* 803565C0 39 00 00 05 */ li r8, 5
/* 803565C4 38 A0 00 0A */ li r5, 0xa
/* 803565C8 48 00 00 68 */ b lbl_80356630
lbl_803565CC:
/* 803565CC 80 83 00 88 */ lwz r4, 0x88(r3)
/* 803565D0 A0 06 00 00 */ lhz r0, 0(r6)
/* 803565D4 7C 84 2A 14 */ add r4, r4, r5
/* 803565D8 28 00 00 00 */ cmplwi r0, 0
/* 803565DC A0 04 00 00 */ lhz r0, 0(r4)
/* 803565E0 40 82 00 20 */ bne lbl_80356600
/* 803565E4 28 00 00 00 */ cmplwi r0, 0
/* 803565E8 41 82 00 10 */ beq lbl_803565F8
/* 803565EC 38 00 00 00 */ li r0, 0
/* 803565F0 B0 04 00 00 */ sth r0, 0(r4)
/* 803565F4 3B 80 00 01 */ li r28, 1
lbl_803565F8:
/* 803565F8 39 29 00 01 */ addi r9, r9, 1
/* 803565FC 48 00 00 28 */ b lbl_80356624
lbl_80356600:
/* 80356600 28 00 00 05 */ cmplwi r0, 5
/* 80356604 41 80 00 0C */ blt lbl_80356610
/* 80356608 7C 00 38 40 */ cmplw r0, r7
/* 8035660C 41 80 00 18 */ blt lbl_80356624
lbl_80356610:
/* 80356610 28 00 FF FF */ cmplwi r0, 0xffff
/* 80356614 41 82 00 10 */ beq lbl_80356624
/* 80356618 38 80 FF FA */ li r4, -6
/* 8035661C 4B FF D6 51 */ bl __CARDPutControlBlock
/* 80356620 48 00 02 C0 */ b lbl_803568E0
lbl_80356624:
/* 80356624 38 A5 00 02 */ addi r5, r5, 2
/* 80356628 38 C6 00 02 */ addi r6, r6, 2
/* 8035662C 39 08 00 01 */ addi r8, r8, 1
lbl_80356630:
/* 80356630 A0 E3 00 10 */ lhz r7, 0x10(r3)
/* 80356634 55 00 04 3E */ clrlwi r0, r8, 0x10
/* 80356638 7C 00 38 40 */ cmplw r0, r7
/* 8035663C 41 80 FF 90 */ blt lbl_803565CC
/* 80356640 80 63 00 88 */ lwz r3, 0x88(r3)
/* 80356644 55 24 04 3E */ clrlwi r4, r9, 0x10
/* 80356648 A4 03 00 06 */ lhzu r0, 6(r3)
/* 8035664C 7C 04 00 40 */ cmplw r4, r0
/* 80356650 41 82 00 0C */ beq lbl_8035665C
/* 80356654 B1 23 00 00 */ sth r9, 0(r3)
/* 80356658 3B 80 00 01 */ li r28, 1
lbl_8035665C:
/* 8035665C 2C 1C 00 00 */ cmpwi r28, 0
/* 80356660 41 82 01 C8 */ beq lbl_80356828
/* 80356664 80 61 00 30 */ lwz r3, 0x30(r1)
/* 80356668 38 80 1F FC */ li r4, 0x1ffc
/* 8035666C 7C 84 0E 70 */ srawi r4, r4, 1
/* 80356670 80 C3 00 88 */ lwz r6, 0x88(r3)
/* 80356674 38 00 00 00 */ li r0, 0
/* 80356678 7C 84 01 95 */ addze. r4, r4
/* 8035667C B0 06 00 02 */ sth r0, 2(r6)
/* 80356680 38 E6 00 02 */ addi r7, r6, 2
/* 80356684 38 A6 00 04 */ addi r5, r6, 4
/* 80356688 B0 06 00 00 */ sth r0, 0(r6)
/* 8035668C 38 64 00 00 */ addi r3, r4, 0
/* 80356690 40 81 01 70 */ ble lbl_80356800
/* 80356694 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 80356698 7C 09 03 A6 */ mtctr r0
/* 8035669C 41 82 01 34 */ beq lbl_803567D0
lbl_803566A0:
/* 803566A0 A0 86 00 00 */ lhz r4, 0(r6)
/* 803566A4 A0 05 00 00 */ lhz r0, 0(r5)
/* 803566A8 7C 04 02 14 */ add r0, r4, r0
/* 803566AC B0 06 00 00 */ sth r0, 0(r6)
/* 803566B0 A0 05 00 00 */ lhz r0, 0(r5)
/* 803566B4 A0 87 00 00 */ lhz r4, 0(r7)
/* 803566B8 7C 00 00 F8 */ nor r0, r0, r0
/* 803566BC 7C 04 02 14 */ add r0, r4, r0
/* 803566C0 B0 07 00 00 */ sth r0, 0(r7)
/* 803566C4 A0 86 00 00 */ lhz r4, 0(r6)
/* 803566C8 A0 05 00 02 */ lhz r0, 2(r5)
/* 803566CC 7C 04 02 14 */ add r0, r4, r0
/* 803566D0 B0 06 00 00 */ sth r0, 0(r6)
/* 803566D4 A0 05 00 02 */ lhz r0, 2(r5)
/* 803566D8 A0 87 00 00 */ lhz r4, 0(r7)
/* 803566DC 7C 00 00 F8 */ nor r0, r0, r0
/* 803566E0 7C 04 02 14 */ add r0, r4, r0
/* 803566E4 B0 07 00 00 */ sth r0, 0(r7)
/* 803566E8 A0 86 00 00 */ lhz r4, 0(r6)
/* 803566EC A0 05 00 04 */ lhz r0, 4(r5)
/* 803566F0 7C 04 02 14 */ add r0, r4, r0
/* 803566F4 B0 06 00 00 */ sth r0, 0(r6)
/* 803566F8 A0 05 00 04 */ lhz r0, 4(r5)
/* 803566FC A0 87 00 00 */ lhz r4, 0(r7)
/* 80356700 7C 00 00 F8 */ nor r0, r0, r0
/* 80356704 7C 04 02 14 */ add r0, r4, r0
/* 80356708 B0 07 00 00 */ sth r0, 0(r7)
/* 8035670C A0 86 00 00 */ lhz r4, 0(r6)
/* 80356710 A0 05 00 06 */ lhz r0, 6(r5)
/* 80356714 7C 04 02 14 */ add r0, r4, r0
/* 80356718 B0 06 00 00 */ sth r0, 0(r6)
/* 8035671C A0 05 00 06 */ lhz r0, 6(r5)
/* 80356720 A0 87 00 00 */ lhz r4, 0(r7)
/* 80356724 7C 00 00 F8 */ nor r0, r0, r0
/* 80356728 7C 04 02 14 */ add r0, r4, r0
/* 8035672C B0 07 00 00 */ sth r0, 0(r7)
/* 80356730 A0 86 00 00 */ lhz r4, 0(r6)
/* 80356734 A0 05 00 08 */ lhz r0, 8(r5)
/* 80356738 7C 04 02 14 */ add r0, r4, r0
/* 8035673C B0 06 00 00 */ sth r0, 0(r6)
/* 80356740 A0 05 00 08 */ lhz r0, 8(r5)
/* 80356744 A0 87 00 00 */ lhz r4, 0(r7)
/* 80356748 7C 00 00 F8 */ nor r0, r0, r0
/* 8035674C 7C 04 02 14 */ add r0, r4, r0
/* 80356750 B0 07 00 00 */ sth r0, 0(r7)
/* 80356754 A0 86 00 00 */ lhz r4, 0(r6)
/* 80356758 A0 05 00 0A */ lhz r0, 0xa(r5)
/* 8035675C 7C 04 02 14 */ add r0, r4, r0
/* 80356760 B0 06 00 00 */ sth r0, 0(r6)
/* 80356764 A0 05 00 0A */ lhz r0, 0xa(r5)
/* 80356768 A0 87 00 00 */ lhz r4, 0(r7)
/* 8035676C 7C 00 00 F8 */ nor r0, r0, r0
/* 80356770 7C 04 02 14 */ add r0, r4, r0
/* 80356774 B0 07 00 00 */ sth r0, 0(r7)
/* 80356778 A0 86 00 00 */ lhz r4, 0(r6)
/* 8035677C A0 05 00 0C */ lhz r0, 0xc(r5)
/* 80356780 7C 04 02 14 */ add r0, r4, r0
/* 80356784 B0 06 00 00 */ sth r0, 0(r6)
/* 80356788 A0 05 00 0C */ lhz r0, 0xc(r5)
/* 8035678C A0 87 00 00 */ lhz r4, 0(r7)
/* 80356790 7C 00 00 F8 */ nor r0, r0, r0
/* 80356794 7C 04 02 14 */ add r0, r4, r0
/* 80356798 B0 07 00 00 */ sth r0, 0(r7)
/* 8035679C A0 86 00 00 */ lhz r4, 0(r6)
/* 803567A0 A0 05 00 0E */ lhz r0, 0xe(r5)
/* 803567A4 7C 04 02 14 */ add r0, r4, r0
/* 803567A8 B0 06 00 00 */ sth r0, 0(r6)
/* 803567AC A0 05 00 0E */ lhz r0, 0xe(r5)
/* 803567B0 38 A5 00 10 */ addi r5, r5, 0x10
/* 803567B4 A0 87 00 00 */ lhz r4, 0(r7)
/* 803567B8 7C 00 00 F8 */ nor r0, r0, r0
/* 803567BC 7C 04 02 14 */ add r0, r4, r0
/* 803567C0 B0 07 00 00 */ sth r0, 0(r7)
/* 803567C4 42 00 FE DC */ bdnz lbl_803566A0
/* 803567C8 70 63 00 07 */ andi. r3, r3, 7
/* 803567CC 41 82 00 34 */ beq lbl_80356800
lbl_803567D0:
/* 803567D0 7C 69 03 A6 */ mtctr r3
lbl_803567D4:
/* 803567D4 A0 86 00 00 */ lhz r4, 0(r6)
/* 803567D8 A0 05 00 00 */ lhz r0, 0(r5)
/* 803567DC 7C 04 02 14 */ add r0, r4, r0
/* 803567E0 B0 06 00 00 */ sth r0, 0(r6)
/* 803567E4 A0 05 00 00 */ lhz r0, 0(r5)
/* 803567E8 38 A5 00 02 */ addi r5, r5, 2
/* 803567EC A0 87 00 00 */ lhz r4, 0(r7)
/* 803567F0 7C 00 00 F8 */ nor r0, r0, r0
/* 803567F4 7C 04 02 14 */ add r0, r4, r0
/* 803567F8 B0 07 00 00 */ sth r0, 0(r7)
/* 803567FC 42 00 FF D8 */ bdnz lbl_803567D4
lbl_80356800:
/* 80356800 A0 06 00 00 */ lhz r0, 0(r6)
/* 80356804 28 00 FF FF */ cmplwi r0, 0xffff
/* 80356808 40 82 00 0C */ bne lbl_80356814
/* 8035680C 38 00 00 00 */ li r0, 0
/* 80356810 B0 06 00 00 */ sth r0, 0(r6)
lbl_80356814:
/* 80356814 A0 07 00 00 */ lhz r0, 0(r7)
/* 80356818 28 00 FF FF */ cmplwi r0, 0xffff
/* 8035681C 40 82 00 0C */ bne lbl_80356828
/* 80356820 38 00 00 00 */ li r0, 0
/* 80356824 B0 07 00 00 */ sth r0, 0(r7)
lbl_80356828:
/* 80356828 80 C1 00 1C */ lwz r6, 0x1c(r1)
/* 8035682C 38 81 00 20 */ addi r4, r1, 0x20
/* 80356830 38 A0 20 00 */ li r5, 0x2000
/* 80356834 68 C0 00 01 */ xori r0, r6, 1
/* 80356838 54 03 10 3A */ slwi r3, r0, 2
/* 8035683C 54 C0 10 3A */ slwi r0, r6, 2
/* 80356840 7C 64 18 2E */ lwzx r3, r4, r3
/* 80356844 7C 84 00 2E */ lwzx r4, r4, r0
/* 80356848 4B CA CC F9 */ bl memcpy
/* 8035684C 2C 1D 00 00 */ cmpwi r29, 0
/* 80356850 41 82 00 24 */ beq lbl_80356874
/* 80356854 28 1A 00 00 */ cmplwi r26, 0
/* 80356858 41 82 00 0C */ beq lbl_80356864
/* 8035685C 38 00 20 00 */ li r0, 0x2000
/* 80356860 90 1A 00 00 */ stw r0, 0(r26)
lbl_80356864:
/* 80356864 38 79 00 00 */ addi r3, r25, 0
/* 80356868 38 9B 00 00 */ addi r4, r27, 0
/* 8035686C 4B FF F0 B1 */ bl __CARDUpdateDir
/* 80356870 48 00 00 70 */ b lbl_803568E0
lbl_80356874:
/* 80356874 7F C0 E3 79 */ or. r0, r30, r28
/* 80356878 41 82 00 2C */ beq lbl_803568A4
/* 8035687C 28 1A 00 00 */ cmplwi r26, 0
/* 80356880 41 82 00 0C */ beq lbl_8035688C
/* 80356884 38 00 20 00 */ li r0, 0x2000
/* 80356888 90 1A 00 00 */ stw r0, 0(r26)
lbl_8035688C:
/* 8035688C 80 81 00 30 */ lwz r4, 0x30(r1)
/* 80356890 38 79 00 00 */ addi r3, r25, 0
/* 80356894 38 BB 00 00 */ addi r5, r27, 0
/* 80356898 80 84 00 88 */ lwz r4, 0x88(r4)
/* 8035689C 4B FF EE 35 */ bl __CARDUpdateFatBlock
/* 803568A0 48 00 00 40 */ b lbl_803568E0
lbl_803568A4:
/* 803568A4 80 61 00 30 */ lwz r3, 0x30(r1)
/* 803568A8 38 80 00 00 */ li r4, 0
/* 803568AC 4B FF D3 C1 */ bl __CARDPutControlBlock
/* 803568B0 28 1B 00 00 */ cmplwi r27, 0
/* 803568B4 41 82 00 28 */ beq lbl_803568DC
/* 803568B8 4B FE 6E 3D */ bl OSDisableInterrupts
/* 803568BC 39 9B 00 00 */ addi r12, r27, 0
/* 803568C0 7D 88 03 A6 */ mtlr r12
/* 803568C4 3B 43 00 00 */ addi r26, r3, 0
/* 803568C8 38 79 00 00 */ addi r3, r25, 0
/* 803568CC 38 80 00 00 */ li r4, 0
/* 803568D0 4E 80 00 21 */ blrl
/* 803568D4 7F 43 D3 78 */ mr r3, r26
/* 803568D8 4B FE 6E 45 */ bl OSRestoreInterrupts
lbl_803568DC:
/* 803568DC 38 60 00 00 */ li r3, 0
lbl_803568E0:
/* 803568E0 BB 21 00 3C */ lmw r25, 0x3c(r1)
/* 803568E4 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 803568E8 38 21 00 58 */ addi r1, r1, 0x58
/* 803568EC 7C 08 03 A6 */ mtlr r0
/* 803568F0 4E 80 00 20 */ blr
-161
View File
@@ -1,161 +0,0 @@
lbl_80355E14:
/* 80355E14 7C 08 02 A6 */ mflr r0
/* 80355E18 90 01 00 04 */ stw r0, 4(r1)
/* 80355E1C 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 80355E20 93 E1 00 34 */ stw r31, 0x34(r1)
/* 80355E24 38 E1 00 1C */ addi r7, r1, 0x1c
/* 80355E28 39 01 00 14 */ addi r8, r1, 0x14
/* 80355E2C 93 C1 00 30 */ stw r30, 0x30(r1)
/* 80355E30 3B E0 00 00 */ li r31, 0
/* 80355E34 3B C0 00 00 */ li r30, 0
/* 80355E38 93 A1 00 2C */ stw r29, 0x2c(r1)
/* 80355E3C 3B A4 00 00 */ addi r29, r4, 0
/* 80355E40 38 80 00 00 */ li r4, 0
lbl_80355E44:
/* 80355E44 38 04 00 01 */ addi r0, r4, 1
/* 80355E48 80 A3 00 80 */ lwz r5, 0x80(r3)
/* 80355E4C 54 00 68 24 */ slwi r0, r0, 0xd
/* 80355E50 7C 05 02 14 */ add r0, r5, r0
/* 80355E54 90 07 00 00 */ stw r0, 0(r7)
/* 80355E58 38 C0 1F FC */ li r6, 0x1ffc
/* 80355E5C 7C C6 0E 70 */ srawi r6, r6, 1
/* 80355E60 80 A7 00 00 */ lwz r5, 0(r7)
/* 80355E64 7C C6 01 95 */ addze. r6, r6
/* 80355E68 39 60 00 00 */ li r11, 0
/* 80355E6C 38 05 1F C0 */ addi r0, r5, 0x1fc0
/* 80355E70 90 08 00 00 */ stw r0, 0(r8)
/* 80355E74 39 40 00 00 */ li r10, 0
/* 80355E78 80 A7 00 00 */ lwz r5, 0(r7)
/* 80355E7C 40 81 00 BC */ ble lbl_80355F38
/* 80355E80 54 C0 E8 FF */ rlwinm. r0, r6, 0x1d, 3, 0x1f
/* 80355E84 7C 09 03 A6 */ mtctr r0
/* 80355E88 41 82 00 94 */ beq lbl_80355F1C
lbl_80355E8C:
/* 80355E8C A1 25 00 00 */ lhz r9, 0(r5)
/* 80355E90 7D 20 48 F8 */ nor r0, r9, r9
/* 80355E94 7D 4A 4A 14 */ add r10, r10, r9
/* 80355E98 A1 25 00 02 */ lhz r9, 2(r5)
/* 80355E9C 7D 6B 02 14 */ add r11, r11, r0
/* 80355EA0 7D 20 48 F8 */ nor r0, r9, r9
/* 80355EA4 7D 4A 4A 14 */ add r10, r10, r9
/* 80355EA8 A1 25 00 04 */ lhz r9, 4(r5)
/* 80355EAC 7D 6B 02 14 */ add r11, r11, r0
/* 80355EB0 7D 20 48 F8 */ nor r0, r9, r9
/* 80355EB4 7D 4A 4A 14 */ add r10, r10, r9
/* 80355EB8 A1 25 00 06 */ lhz r9, 6(r5)
/* 80355EBC 7D 6B 02 14 */ add r11, r11, r0
/* 80355EC0 7D 20 48 F8 */ nor r0, r9, r9
/* 80355EC4 7D 4A 4A 14 */ add r10, r10, r9
/* 80355EC8 A1 25 00 08 */ lhz r9, 8(r5)
/* 80355ECC 7D 6B 02 14 */ add r11, r11, r0
/* 80355ED0 7D 20 48 F8 */ nor r0, r9, r9
/* 80355ED4 7D 4A 4A 14 */ add r10, r10, r9
/* 80355ED8 A1 25 00 0A */ lhz r9, 0xa(r5)
/* 80355EDC 7D 6B 02 14 */ add r11, r11, r0
/* 80355EE0 7D 20 48 F8 */ nor r0, r9, r9
/* 80355EE4 7D 4A 4A 14 */ add r10, r10, r9
/* 80355EE8 A1 25 00 0C */ lhz r9, 0xc(r5)
/* 80355EEC 7D 6B 02 14 */ add r11, r11, r0
/* 80355EF0 7D 20 48 F8 */ nor r0, r9, r9
/* 80355EF4 7D 4A 4A 14 */ add r10, r10, r9
/* 80355EF8 A1 25 00 0E */ lhz r9, 0xe(r5)
/* 80355EFC 7D 6B 02 14 */ add r11, r11, r0
/* 80355F00 7D 20 48 F8 */ nor r0, r9, r9
/* 80355F04 7D 4A 4A 14 */ add r10, r10, r9
/* 80355F08 7D 6B 02 14 */ add r11, r11, r0
/* 80355F0C 38 A5 00 10 */ addi r5, r5, 0x10
/* 80355F10 42 00 FF 7C */ bdnz lbl_80355E8C
/* 80355F14 70 C6 00 07 */ andi. r6, r6, 7
/* 80355F18 41 82 00 20 */ beq lbl_80355F38
lbl_80355F1C:
/* 80355F1C 7C C9 03 A6 */ mtctr r6
lbl_80355F20:
/* 80355F20 A1 25 00 00 */ lhz r9, 0(r5)
/* 80355F24 38 A5 00 02 */ addi r5, r5, 2
/* 80355F28 7D 20 48 F8 */ nor r0, r9, r9
/* 80355F2C 7D 4A 4A 14 */ add r10, r10, r9
/* 80355F30 7D 6B 02 14 */ add r11, r11, r0
/* 80355F34 42 00 FF EC */ bdnz lbl_80355F20
lbl_80355F38:
/* 80355F38 55 40 04 3E */ clrlwi r0, r10, 0x10
/* 80355F3C 28 00 FF FF */ cmplwi r0, 0xffff
/* 80355F40 40 82 00 08 */ bne lbl_80355F48
/* 80355F44 39 40 00 00 */ li r10, 0
lbl_80355F48:
/* 80355F48 55 60 04 3E */ clrlwi r0, r11, 0x10
/* 80355F4C 28 00 FF FF */ cmplwi r0, 0xffff
/* 80355F50 40 82 00 08 */ bne lbl_80355F58
/* 80355F54 39 60 00 00 */ li r11, 0
lbl_80355F58:
/* 80355F58 80 C8 00 00 */ lwz r6, 0(r8)
/* 80355F5C 55 45 04 3E */ clrlwi r5, r10, 0x10
/* 80355F60 A0 06 00 3C */ lhz r0, 0x3c(r6)
/* 80355F64 7C 05 00 40 */ cmplw r5, r0
/* 80355F68 40 82 00 14 */ bne lbl_80355F7C
/* 80355F6C A0 06 00 3E */ lhz r0, 0x3e(r6)
/* 80355F70 55 65 04 3E */ clrlwi r5, r11, 0x10
/* 80355F74 7C 05 00 40 */ cmplw r5, r0
/* 80355F78 41 82 00 14 */ beq lbl_80355F8C
lbl_80355F7C:
/* 80355F7C 38 00 00 00 */ li r0, 0
/* 80355F80 90 03 00 84 */ stw r0, 0x84(r3)
/* 80355F84 3B C4 00 00 */ addi r30, r4, 0
/* 80355F88 3B FF 00 01 */ addi r31, r31, 1
lbl_80355F8C:
/* 80355F8C 38 84 00 01 */ addi r4, r4, 1
/* 80355F90 2C 04 00 02 */ cmpwi r4, 2
/* 80355F94 38 E7 00 04 */ addi r7, r7, 4
/* 80355F98 39 08 00 04 */ addi r8, r8, 4
/* 80355F9C 41 80 FE A8 */ blt lbl_80355E44
/* 80355FA0 2C 1F 00 00 */ cmpwi r31, 0
/* 80355FA4 40 82 00 84 */ bne lbl_80356028
/* 80355FA8 80 83 00 84 */ lwz r4, 0x84(r3)
/* 80355FAC 28 04 00 00 */ cmplwi r4, 0
/* 80355FB0 40 82 00 5C */ bne lbl_8035600C
/* 80355FB4 80 A1 00 18 */ lwz r5, 0x18(r1)
/* 80355FB8 80 81 00 14 */ lwz r4, 0x14(r1)
/* 80355FBC A8 A5 00 3A */ lha r5, 0x3a(r5)
/* 80355FC0 A8 04 00 3A */ lha r0, 0x3a(r4)
/* 80355FC4 7C 05 00 51 */ subf. r0, r5, r0
/* 80355FC8 40 80 00 0C */ bge lbl_80355FD4
/* 80355FCC 3B C0 00 00 */ li r30, 0
/* 80355FD0 48 00 00 08 */ b lbl_80355FD8
lbl_80355FD4:
/* 80355FD4 3B C0 00 01 */ li r30, 1
lbl_80355FD8:
/* 80355FD8 57 C0 10 3A */ slwi r0, r30, 2
/* 80355FDC 38 C1 00 1C */ addi r6, r1, 0x1c
/* 80355FE0 7C C6 02 14 */ add r6, r6, r0
/* 80355FE4 80 86 00 00 */ lwz r4, 0(r6)
/* 80355FE8 6B C0 00 01 */ xori r0, r30, 1
/* 80355FEC 54 00 10 3A */ slwi r0, r0, 2
/* 80355FF0 90 83 00 84 */ stw r4, 0x84(r3)
/* 80355FF4 38 81 00 1C */ addi r4, r1, 0x1c
/* 80355FF8 38 A0 20 00 */ li r5, 0x2000
/* 80355FFC 80 66 00 00 */ lwz r3, 0(r6)
/* 80356000 7C 84 00 2E */ lwzx r4, r4, r0
/* 80356004 4B CA D5 3D */ bl memcpy
/* 80356008 48 00 00 20 */ b lbl_80356028
lbl_8035600C:
/* 8035600C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80356010 7C 04 00 40 */ cmplw r4, r0
/* 80356014 40 82 00 0C */ bne lbl_80356020
/* 80356018 38 00 00 00 */ li r0, 0
/* 8035601C 48 00 00 08 */ b lbl_80356024
lbl_80356020:
/* 80356020 38 00 00 01 */ li r0, 1
lbl_80356024:
/* 80356024 7C 1E 03 78 */ mr r30, r0
lbl_80356028:
/* 80356028 28 1D 00 00 */ cmplwi r29, 0
/* 8035602C 41 82 00 08 */ beq lbl_80356034
/* 80356030 93 DD 00 00 */ stw r30, 0(r29)
lbl_80356034:
/* 80356034 7F E3 FB 78 */ mr r3, r31
/* 80356038 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8035603C 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 80356040 83 C1 00 30 */ lwz r30, 0x30(r1)
/* 80356044 83 A1 00 2C */ lwz r29, 0x2c(r1)
/* 80356048 38 21 00 38 */ addi r1, r1, 0x38
/* 8035604C 7C 08 03 A6 */ mtlr r0
/* 80356050 4E 80 00 20 */ blr
-182
View File
@@ -1,182 +0,0 @@
lbl_80356054:
/* 80356054 7C 08 02 A6 */ mflr r0
/* 80356058 38 A0 00 00 */ li r5, 0
/* 8035605C 90 01 00 04 */ stw r0, 4(r1)
/* 80356060 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80356064 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80356068 3B E0 00 00 */ li r31, 0
/* 8035606C 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80356070 3B C0 00 00 */ li r30, 0
/* 80356074 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80356078 3B A4 00 00 */ addi r29, r4, 0
/* 8035607C 38 81 00 10 */ addi r4, r1, 0x10
lbl_80356080:
/* 80356080 39 00 1F FC */ li r8, 0x1ffc
/* 80356084 80 C3 00 80 */ lwz r6, 0x80(r3)
/* 80356088 38 05 00 03 */ addi r0, r5, 3
/* 8035608C 7D 08 0E 70 */ srawi r8, r8, 1
/* 80356090 54 00 68 24 */ slwi r0, r0, 0xd
/* 80356094 7C E6 02 14 */ add r7, r6, r0
/* 80356098 7D 08 01 95 */ addze. r8, r8
/* 8035609C 90 E4 00 00 */ stw r7, 0(r4)
/* 803560A0 38 C7 00 04 */ addi r6, r7, 4
/* 803560A4 39 60 00 00 */ li r11, 0
/* 803560A8 39 40 00 00 */ li r10, 0
/* 803560AC 40 81 00 BC */ ble lbl_80356168
/* 803560B0 55 00 E8 FF */ rlwinm. r0, r8, 0x1d, 3, 0x1f
/* 803560B4 7C 09 03 A6 */ mtctr r0
/* 803560B8 41 82 00 94 */ beq lbl_8035614C
lbl_803560BC:
/* 803560BC A1 26 00 00 */ lhz r9, 0(r6)
/* 803560C0 7D 20 48 F8 */ nor r0, r9, r9
/* 803560C4 7D 4A 4A 14 */ add r10, r10, r9
/* 803560C8 A1 26 00 02 */ lhz r9, 2(r6)
/* 803560CC 7D 6B 02 14 */ add r11, r11, r0
/* 803560D0 7D 20 48 F8 */ nor r0, r9, r9
/* 803560D4 7D 4A 4A 14 */ add r10, r10, r9
/* 803560D8 A1 26 00 04 */ lhz r9, 4(r6)
/* 803560DC 7D 6B 02 14 */ add r11, r11, r0
/* 803560E0 7D 20 48 F8 */ nor r0, r9, r9
/* 803560E4 7D 4A 4A 14 */ add r10, r10, r9
/* 803560E8 A1 26 00 06 */ lhz r9, 6(r6)
/* 803560EC 7D 6B 02 14 */ add r11, r11, r0
/* 803560F0 7D 20 48 F8 */ nor r0, r9, r9
/* 803560F4 7D 4A 4A 14 */ add r10, r10, r9
/* 803560F8 A1 26 00 08 */ lhz r9, 8(r6)
/* 803560FC 7D 6B 02 14 */ add r11, r11, r0
/* 80356100 7D 20 48 F8 */ nor r0, r9, r9
/* 80356104 7D 4A 4A 14 */ add r10, r10, r9
/* 80356108 A1 26 00 0A */ lhz r9, 0xa(r6)
/* 8035610C 7D 6B 02 14 */ add r11, r11, r0
/* 80356110 7D 20 48 F8 */ nor r0, r9, r9
/* 80356114 7D 4A 4A 14 */ add r10, r10, r9
/* 80356118 A1 26 00 0C */ lhz r9, 0xc(r6)
/* 8035611C 7D 6B 02 14 */ add r11, r11, r0
/* 80356120 7D 20 48 F8 */ nor r0, r9, r9
/* 80356124 7D 4A 4A 14 */ add r10, r10, r9
/* 80356128 A1 26 00 0E */ lhz r9, 0xe(r6)
/* 8035612C 7D 6B 02 14 */ add r11, r11, r0
/* 80356130 7D 20 48 F8 */ nor r0, r9, r9
/* 80356134 7D 4A 4A 14 */ add r10, r10, r9
/* 80356138 7D 6B 02 14 */ add r11, r11, r0
/* 8035613C 38 C6 00 10 */ addi r6, r6, 0x10
/* 80356140 42 00 FF 7C */ bdnz lbl_803560BC
/* 80356144 71 08 00 07 */ andi. r8, r8, 7
/* 80356148 41 82 00 20 */ beq lbl_80356168
lbl_8035614C:
/* 8035614C 7D 09 03 A6 */ mtctr r8
lbl_80356150:
/* 80356150 A1 26 00 00 */ lhz r9, 0(r6)
/* 80356154 38 C6 00 02 */ addi r6, r6, 2
/* 80356158 7D 20 48 F8 */ nor r0, r9, r9
/* 8035615C 7D 4A 4A 14 */ add r10, r10, r9
/* 80356160 7D 6B 02 14 */ add r11, r11, r0
/* 80356164 42 00 FF EC */ bdnz lbl_80356150
lbl_80356168:
/* 80356168 55 40 04 3E */ clrlwi r0, r10, 0x10
/* 8035616C 28 00 FF FF */ cmplwi r0, 0xffff
/* 80356170 40 82 00 08 */ bne lbl_80356178
/* 80356174 39 40 00 00 */ li r10, 0
lbl_80356178:
/* 80356178 55 60 04 3E */ clrlwi r0, r11, 0x10
/* 8035617C 28 00 FF FF */ cmplwi r0, 0xffff
/* 80356180 40 82 00 08 */ bne lbl_80356188
/* 80356184 39 60 00 00 */ li r11, 0
lbl_80356188:
/* 80356188 A0 C7 00 00 */ lhz r6, 0(r7)
/* 8035618C 55 40 04 3E */ clrlwi r0, r10, 0x10
/* 80356190 7C 06 00 40 */ cmplw r6, r0
/* 80356194 40 82 00 14 */ bne lbl_803561A8
/* 80356198 A0 C7 00 02 */ lhz r6, 2(r7)
/* 8035619C 55 60 04 3E */ clrlwi r0, r11, 0x10
/* 803561A0 7C 06 00 40 */ cmplw r6, r0
/* 803561A4 41 82 00 18 */ beq lbl_803561BC
lbl_803561A8:
/* 803561A8 38 00 00 00 */ li r0, 0
/* 803561AC 90 03 00 88 */ stw r0, 0x88(r3)
/* 803561B0 3B C5 00 00 */ addi r30, r5, 0
/* 803561B4 3B FF 00 01 */ addi r31, r31, 1
/* 803561B8 48 00 00 5C */ b lbl_80356214
lbl_803561BC:
/* 803561BC A1 03 00 10 */ lhz r8, 0x10(r3)
/* 803561C0 38 C7 00 0A */ addi r6, r7, 0xa
/* 803561C4 39 40 00 00 */ li r10, 0
/* 803561C8 39 20 00 05 */ li r9, 5
/* 803561CC 48 00 00 1C */ b lbl_803561E8
lbl_803561D0:
/* 803561D0 A0 06 00 00 */ lhz r0, 0(r6)
/* 803561D4 28 00 00 00 */ cmplwi r0, 0
/* 803561D8 40 82 00 08 */ bne lbl_803561E0
/* 803561DC 39 4A 00 01 */ addi r10, r10, 1
lbl_803561E0:
/* 803561E0 38 C6 00 02 */ addi r6, r6, 2
/* 803561E4 39 29 00 01 */ addi r9, r9, 1
lbl_803561E8:
/* 803561E8 55 20 04 3E */ clrlwi r0, r9, 0x10
/* 803561EC 7C 00 40 40 */ cmplw r0, r8
/* 803561F0 41 80 FF E0 */ blt lbl_803561D0
/* 803561F4 A0 07 00 06 */ lhz r0, 6(r7)
/* 803561F8 55 46 04 3E */ clrlwi r6, r10, 0x10
/* 803561FC 7C 06 00 40 */ cmplw r6, r0
/* 80356200 41 82 00 14 */ beq lbl_80356214
/* 80356204 38 00 00 00 */ li r0, 0
/* 80356208 90 03 00 88 */ stw r0, 0x88(r3)
/* 8035620C 3B C5 00 00 */ addi r30, r5, 0
/* 80356210 3B FF 00 01 */ addi r31, r31, 1
lbl_80356214:
/* 80356214 38 A5 00 01 */ addi r5, r5, 1
/* 80356218 2C 05 00 02 */ cmpwi r5, 2
/* 8035621C 38 84 00 04 */ addi r4, r4, 4
/* 80356220 41 80 FE 60 */ blt lbl_80356080
/* 80356224 2C 1F 00 00 */ cmpwi r31, 0
/* 80356228 40 82 00 84 */ bne lbl_803562AC
/* 8035622C 80 83 00 88 */ lwz r4, 0x88(r3)
/* 80356230 28 04 00 00 */ cmplwi r4, 0
/* 80356234 40 82 00 5C */ bne lbl_80356290
/* 80356238 80 A1 00 14 */ lwz r5, 0x14(r1)
/* 8035623C 80 81 00 10 */ lwz r4, 0x10(r1)
/* 80356240 A8 A5 00 04 */ lha r5, 4(r5)
/* 80356244 A8 04 00 04 */ lha r0, 4(r4)
/* 80356248 7C 05 00 51 */ subf. r0, r5, r0
/* 8035624C 40 80 00 0C */ bge lbl_80356258
/* 80356250 3B C0 00 00 */ li r30, 0
/* 80356254 48 00 00 08 */ b lbl_8035625C
lbl_80356258:
/* 80356258 3B C0 00 01 */ li r30, 1
lbl_8035625C:
/* 8035625C 57 C0 10 3A */ slwi r0, r30, 2
/* 80356260 38 C1 00 10 */ addi r6, r1, 0x10
/* 80356264 7C C6 02 14 */ add r6, r6, r0
/* 80356268 80 86 00 00 */ lwz r4, 0(r6)
/* 8035626C 6B C0 00 01 */ xori r0, r30, 1
/* 80356270 54 00 10 3A */ slwi r0, r0, 2
/* 80356274 90 83 00 88 */ stw r4, 0x88(r3)
/* 80356278 38 81 00 10 */ addi r4, r1, 0x10
/* 8035627C 38 A0 20 00 */ li r5, 0x2000
/* 80356280 80 66 00 00 */ lwz r3, 0(r6)
/* 80356284 7C 84 00 2E */ lwzx r4, r4, r0
/* 80356288 4B CA D2 B9 */ bl memcpy
/* 8035628C 48 00 00 20 */ b lbl_803562AC
lbl_80356290:
/* 80356290 80 01 00 10 */ lwz r0, 0x10(r1)
/* 80356294 7C 04 00 40 */ cmplw r4, r0
/* 80356298 40 82 00 0C */ bne lbl_803562A4
/* 8035629C 38 00 00 00 */ li r0, 0
/* 803562A0 48 00 00 08 */ b lbl_803562A8
lbl_803562A4:
/* 803562A4 38 00 00 01 */ li r0, 1
lbl_803562A8:
/* 803562A8 7C 1E 03 78 */ mr r30, r0
lbl_803562AC:
/* 803562AC 28 1D 00 00 */ cmplwi r29, 0
/* 803562B0 41 82 00 08 */ beq lbl_803562B8
/* 803562B4 93 DD 00 00 */ stw r30, 0(r29)
lbl_803562B8:
/* 803562B8 7F E3 FB 78 */ mr r3, r31
/* 803562BC 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803562C0 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 803562C4 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 803562C8 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 803562CC 38 21 00 28 */ addi r1, r1, 0x28
/* 803562D0 7C 08 03 A6 */ mtlr r0
/* 803562D4 4E 80 00 20 */ blr
-176
View File
@@ -1,176 +0,0 @@
lbl_80355B90:
/* 80355B90 7C 08 02 A6 */ mflr r0
/* 80355B94 90 01 00 04 */ stw r0, 4(r1)
/* 80355B98 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80355B9C BF 21 00 14 */ stmw r25, 0x14(r1)
/* 80355BA0 7C 7A 1B 78 */ mr r26, r3
/* 80355BA4 80 63 00 80 */ lwz r3, 0x80(r3)
/* 80355BA8 A0 03 00 20 */ lhz r0, 0x20(r3)
/* 80355BAC 3B 63 00 00 */ addi r27, r3, 0
/* 80355BB0 28 00 00 00 */ cmplwi r0, 0
/* 80355BB4 40 82 00 14 */ bne lbl_80355BC8
/* 80355BB8 A0 7B 00 22 */ lhz r3, 0x22(r27)
/* 80355BBC A0 1A 00 08 */ lhz r0, 8(r26)
/* 80355BC0 7C 03 00 40 */ cmplw r3, r0
/* 80355BC4 41 82 00 0C */ beq lbl_80355BD0
lbl_80355BC8:
/* 80355BC8 38 60 FF FA */ li r3, -6
/* 80355BCC 48 00 02 34 */ b lbl_80355E00
lbl_80355BD0:
/* 80355BD0 38 00 01 FC */ li r0, 0x1fc
/* 80355BD4 7C 00 0E 70 */ srawi r0, r0, 1
/* 80355BD8 7C 00 01 95 */ addze. r0, r0
/* 80355BDC 38 9B 00 00 */ addi r4, r27, 0
/* 80355BE0 38 E0 00 00 */ li r7, 0
/* 80355BE4 7C 03 03 78 */ mr r3, r0
/* 80355BE8 38 C0 00 00 */ li r6, 0
/* 80355BEC 40 81 00 BC */ ble lbl_80355CA8
/* 80355BF0 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 80355BF4 7C 09 03 A6 */ mtctr r0
/* 80355BF8 41 82 00 94 */ beq lbl_80355C8C
lbl_80355BFC:
/* 80355BFC A0 A4 00 00 */ lhz r5, 0(r4)
/* 80355C00 7C A0 28 F8 */ nor r0, r5, r5
/* 80355C04 7C C6 2A 14 */ add r6, r6, r5
/* 80355C08 A0 A4 00 02 */ lhz r5, 2(r4)
/* 80355C0C 7C E7 02 14 */ add r7, r7, r0
/* 80355C10 7C A0 28 F8 */ nor r0, r5, r5
/* 80355C14 7C C6 2A 14 */ add r6, r6, r5
/* 80355C18 A0 A4 00 04 */ lhz r5, 4(r4)
/* 80355C1C 7C E7 02 14 */ add r7, r7, r0
/* 80355C20 7C A0 28 F8 */ nor r0, r5, r5
/* 80355C24 7C C6 2A 14 */ add r6, r6, r5
/* 80355C28 A0 A4 00 06 */ lhz r5, 6(r4)
/* 80355C2C 7C E7 02 14 */ add r7, r7, r0
/* 80355C30 7C A0 28 F8 */ nor r0, r5, r5
/* 80355C34 7C C6 2A 14 */ add r6, r6, r5
/* 80355C38 A0 A4 00 08 */ lhz r5, 8(r4)
/* 80355C3C 7C E7 02 14 */ add r7, r7, r0
/* 80355C40 7C A0 28 F8 */ nor r0, r5, r5
/* 80355C44 7C C6 2A 14 */ add r6, r6, r5
/* 80355C48 A0 A4 00 0A */ lhz r5, 0xa(r4)
/* 80355C4C 7C E7 02 14 */ add r7, r7, r0
/* 80355C50 7C A0 28 F8 */ nor r0, r5, r5
/* 80355C54 7C C6 2A 14 */ add r6, r6, r5
/* 80355C58 A0 A4 00 0C */ lhz r5, 0xc(r4)
/* 80355C5C 7C E7 02 14 */ add r7, r7, r0
/* 80355C60 7C A0 28 F8 */ nor r0, r5, r5
/* 80355C64 7C C6 2A 14 */ add r6, r6, r5
/* 80355C68 A0 A4 00 0E */ lhz r5, 0xe(r4)
/* 80355C6C 7C E7 02 14 */ add r7, r7, r0
/* 80355C70 7C A0 28 F8 */ nor r0, r5, r5
/* 80355C74 7C C6 2A 14 */ add r6, r6, r5
/* 80355C78 7C E7 02 14 */ add r7, r7, r0
/* 80355C7C 38 84 00 10 */ addi r4, r4, 0x10
/* 80355C80 42 00 FF 7C */ bdnz lbl_80355BFC
/* 80355C84 70 63 00 07 */ andi. r3, r3, 7
/* 80355C88 41 82 00 20 */ beq lbl_80355CA8
lbl_80355C8C:
/* 80355C8C 7C 69 03 A6 */ mtctr r3
lbl_80355C90:
/* 80355C90 A0 A4 00 00 */ lhz r5, 0(r4)
/* 80355C94 38 84 00 02 */ addi r4, r4, 2
/* 80355C98 7C A0 28 F8 */ nor r0, r5, r5
/* 80355C9C 7C C6 2A 14 */ add r6, r6, r5
/* 80355CA0 7C E7 02 14 */ add r7, r7, r0
/* 80355CA4 42 00 FF EC */ bdnz lbl_80355C90
lbl_80355CA8:
/* 80355CA8 54 C0 04 3E */ clrlwi r0, r6, 0x10
/* 80355CAC 28 00 FF FF */ cmplwi r0, 0xffff
/* 80355CB0 40 82 00 08 */ bne lbl_80355CB8
/* 80355CB4 38 C0 00 00 */ li r6, 0
lbl_80355CB8:
/* 80355CB8 54 E0 04 3E */ clrlwi r0, r7, 0x10
/* 80355CBC 28 00 FF FF */ cmplwi r0, 0xffff
/* 80355CC0 40 82 00 08 */ bne lbl_80355CC8
/* 80355CC4 38 E0 00 00 */ li r7, 0
lbl_80355CC8:
/* 80355CC8 A0 7B 01 FC */ lhz r3, 0x1fc(r27)
/* 80355CCC 54 C0 04 3E */ clrlwi r0, r6, 0x10
/* 80355CD0 7C 03 00 40 */ cmplw r3, r0
/* 80355CD4 40 82 00 14 */ bne lbl_80355CE8
/* 80355CD8 A0 7B 01 FE */ lhz r3, 0x1fe(r27)
/* 80355CDC 54 E0 04 3E */ clrlwi r0, r7, 0x10
/* 80355CE0 7C 03 00 40 */ cmplw r3, r0
/* 80355CE4 41 82 00 0C */ beq lbl_80355CF0
lbl_80355CE8:
/* 80355CE8 38 60 FF FA */ li r3, -6
/* 80355CEC 48 00 01 14 */ b lbl_80355E00
lbl_80355CF0:
/* 80355CF0 83 FB 00 0C */ lwz r31, 0xc(r27)
/* 80355CF4 83 9B 00 10 */ lwz r28, 0x10(r27)
/* 80355CF8 4B FE A4 A9 */ bl __OSLockSramEx
/* 80355CFC 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80355D00 38 04 CB C0 */ addi r0, r4, __CARDBlock@l /* 0x8044CBC0@l */
/* 80355D04 3C 80 78 78 */ lis r4, 0x7878 /* 0x78787879@ha */
/* 80355D08 7C 00 D0 50 */ subf r0, r0, r26
/* 80355D0C 38 84 78 79 */ addi r4, r4, 0x7879 /* 0x78787879@l */
/* 80355D10 7C 04 00 96 */ mulhw r0, r4, r0
/* 80355D14 7C 00 3E 70 */ srawi r0, r0, 7
/* 80355D18 54 04 0F FE */ srwi r4, r0, 0x1f
/* 80355D1C 7C 00 22 14 */ add r0, r0, r4
/* 80355D20 1C 00 00 0C */ mulli r0, r0, 0xc
/* 80355D24 3C 80 41 C6 */ lis r4, 0x41C6 /* 0x41C64E6D@ha */
/* 80355D28 3B 3B 00 00 */ addi r25, r27, 0
/* 80355D2C 7F A3 02 14 */ add r29, r3, r0
/* 80355D30 3B C4 4E 6D */ addi r30, r4, 0x4E6D /* 0x41C64E6D@l */
/* 80355D34 3B 40 00 00 */ li r26, 0
lbl_80355D38:
/* 80355D38 7C BF F1 D6 */ mullw r5, r31, r30
/* 80355D3C 7C 7C F0 16 */ mulhwu r3, r28, r30
/* 80355D40 3B E0 00 00 */ li r31, 0
/* 80355D44 7C A5 1A 14 */ add r5, r5, r3
/* 80355D48 7C 7C F9 D6 */ mullw r3, r28, r31
/* 80355D4C 7C 1C F1 D6 */ mullw r0, r28, r30
/* 80355D50 3B 80 30 39 */ li r28, 0x3039
/* 80355D54 7C 80 E0 14 */ addc r4, r0, r28
/* 80355D58 7C 05 1A 14 */ add r0, r5, r3
/* 80355D5C 7C 60 F9 14 */ adde r3, r0, r31
/* 80355D60 38 A0 00 10 */ li r5, 0x10
/* 80355D64 48 00 C9 31 */ bl __shr2i
/* 80355D68 88 1D 00 00 */ lbz r0, 0(r29)
/* 80355D6C 88 D9 00 00 */ lbz r6, 0(r25)
/* 80355D70 7C 04 00 14 */ addc r0, r4, r0
/* 80355D74 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 80355D78 7C 06 00 40 */ cmplw r6, r0
/* 80355D7C 41 82 00 14 */ beq lbl_80355D90
/* 80355D80 38 60 00 00 */ li r3, 0
/* 80355D84 4B FE A7 D9 */ bl __OSUnlockSramEx
/* 80355D88 38 60 FF FA */ li r3, -6
/* 80355D8C 48 00 00 74 */ b lbl_80355E00
lbl_80355D90:
/* 80355D90 7C A3 F1 D6 */ mullw r5, r3, r30
/* 80355D94 7C 64 F0 16 */ mulhwu r3, r4, r30
/* 80355D98 7C A5 1A 14 */ add r5, r5, r3
/* 80355D9C 7C 64 F9 D6 */ mullw r3, r4, r31
/* 80355DA0 7C 04 F1 D6 */ mullw r0, r4, r30
/* 80355DA4 7C 80 E0 14 */ addc r4, r0, r28
/* 80355DA8 7C 05 1A 14 */ add r0, r5, r3
/* 80355DAC 7C 60 F9 14 */ adde r3, r0, r31
/* 80355DB0 38 A0 00 10 */ li r5, 0x10
/* 80355DB4 48 00 C8 E1 */ bl __shr2i
/* 80355DB8 3B 5A 00 01 */ addi r26, r26, 1
/* 80355DBC 2C 1A 00 0C */ cmpwi r26, 0xc
/* 80355DC0 38 00 7F FF */ li r0, 0x7fff
/* 80355DC4 7C 9C 00 38 */ and r28, r4, r0
/* 80355DC8 7C 7F F8 38 */ and r31, r3, r31
/* 80355DCC 3B BD 00 01 */ addi r29, r29, 1
/* 80355DD0 3B 39 00 01 */ addi r25, r25, 1
/* 80355DD4 41 80 FF 64 */ blt lbl_80355D38
/* 80355DD8 38 60 00 00 */ li r3, 0
/* 80355DDC 4B FE A7 81 */ bl __OSUnlockSramEx
/* 80355DE0 4B FF DD 95 */ bl __CARDGetFontEncode
/* 80355DE4 A0 1B 00 24 */ lhz r0, 0x24(r27)
/* 80355DE8 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 80355DEC 7C 00 18 40 */ cmplw r0, r3
/* 80355DF0 41 82 00 0C */ beq lbl_80355DFC
/* 80355DF4 38 60 FF F3 */ li r3, -13
/* 80355DF8 48 00 00 08 */ b lbl_80355E00
lbl_80355DFC:
/* 80355DFC 38 60 00 00 */ li r3, 0
lbl_80355E00:
/* 80355E00 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 80355E04 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80355E08 38 21 00 30 */ addi r1, r1, 0x30
/* 80355E0C 7C 08 03 A6 */ mtlr r0
/* 80355E10 4E 80 00 20 */ blr
-54
View File
@@ -1,54 +0,0 @@
lbl_80355854:
/* 80355854 7C 08 02 A6 */ mflr r0
/* 80355858 90 01 00 04 */ stw r0, 4(r1)
/* 8035585C 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80355860 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80355864 3B E3 00 00 */ addi r31, r3, 0
/* 80355868 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 8035586C 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80355870 1C BF 01 10 */ mulli r5, r31, 0x110
/* 80355874 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80355878 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 8035587C 7C 9D 23 79 */ or. r29, r4, r4
/* 80355880 7F C0 2A 14 */ add r30, r0, r5
/* 80355884 41 80 00 3C */ blt lbl_803558C0
/* 80355888 80 BE 00 84 */ lwz r5, 0x84(r30)
/* 8035588C 3C 60 80 35 */ lis r3, WriteCallback@ha /* 0x80355784@ha */
/* 80355890 80 1E 00 80 */ lwz r0, 0x80(r30)
/* 80355894 38 E3 57 84 */ addi r7, r3, WriteCallback@l /* 0x80355784@l */
/* 80355898 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8035589C 7C 00 28 50 */ subf r0, r0, r5
/* 803558A0 54 00 9B 7E */ srwi r0, r0, 0xd
/* 803558A4 7C 83 01 D6 */ mullw r4, r3, r0
/* 803558A8 38 C5 00 00 */ addi r6, r5, 0
/* 803558AC 38 7F 00 00 */ addi r3, r31, 0
/* 803558B0 38 A0 20 00 */ li r5, 0x2000
/* 803558B4 4B FF FA F9 */ bl __CARDWrite
/* 803558B8 7C 7D 1B 79 */ or. r29, r3, r3
/* 803558BC 40 80 00 44 */ bge lbl_80355900
lbl_803558C0:
/* 803558C0 80 1E 00 D0 */ lwz r0, 0xd0(r30)
/* 803558C4 28 00 00 00 */ cmplwi r0, 0
/* 803558C8 40 82 00 10 */ bne lbl_803558D8
/* 803558CC 38 7E 00 00 */ addi r3, r30, 0
/* 803558D0 38 9D 00 00 */ addi r4, r29, 0
/* 803558D4 4B FF E3 99 */ bl __CARDPutControlBlock
lbl_803558D8:
/* 803558D8 80 1E 00 D8 */ lwz r0, 0xd8(r30)
/* 803558DC 28 00 00 00 */ cmplwi r0, 0
/* 803558E0 7C 0C 03 78 */ mr r12, r0
/* 803558E4 41 82 00 1C */ beq lbl_80355900
/* 803558E8 38 00 00 00 */ li r0, 0
/* 803558EC 7D 88 03 A6 */ mtlr r12
/* 803558F0 90 1E 00 D8 */ stw r0, 0xd8(r30)
/* 803558F4 38 7F 00 00 */ addi r3, r31, 0
/* 803558F8 38 9D 00 00 */ addi r4, r29, 0
/* 803558FC 4E 80 00 21 */ blrl
lbl_80355900:
/* 80355900 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80355904 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80355908 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8035590C 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80355910 38 21 00 28 */ addi r1, r1, 0x28
/* 80355914 7C 08 03 A6 */ mtlr r0
/* 80355918 4E 80 00 20 */ blr
@@ -1,52 +0,0 @@
lbl_8035591C:
/* 8035591C 7C 08 02 A6 */ mflr r0
/* 80355920 90 01 00 04 */ stw r0, 4(r1)
/* 80355924 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80355928 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8035592C 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80355930 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80355934 3B A4 00 00 */ addi r29, r4, 0
/* 80355938 93 81 00 18 */ stw r28, 0x18(r1)
/* 8035593C 3B 83 00 00 */ addi r28, r3, 0
/* 80355940 1C BC 01 10 */ mulli r5, r28, 0x110
/* 80355944 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80355948 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 8035594C 7F C0 2A 14 */ add r30, r0, r5
/* 80355950 80 1E 00 00 */ lwz r0, 0(r30)
/* 80355954 2C 00 00 00 */ cmpwi r0, 0
/* 80355958 40 82 00 0C */ bne lbl_80355964
/* 8035595C 38 60 FF FD */ li r3, -3
/* 80355960 48 00 00 60 */ b lbl_803559C0
lbl_80355964:
/* 80355964 83 FE 00 84 */ lwz r31, 0x84(r30)
/* 80355968 38 80 1F FC */ li r4, 0x1ffc
/* 8035596C A8 BF 1F FA */ lha r5, 0x1ffa(r31)
/* 80355970 38 DF 1F C0 */ addi r6, r31, 0x1fc0
/* 80355974 38 7F 00 00 */ addi r3, r31, 0
/* 80355978 38 05 00 01 */ addi r0, r5, 1
/* 8035597C B0 1F 1F FA */ sth r0, 0x1ffa(r31)
/* 80355980 38 A6 00 3C */ addi r5, r6, 0x3c
/* 80355984 38 C6 00 3E */ addi r6, r6, 0x3e
/* 80355988 48 00 00 59 */ bl __CARDCheckSum
/* 8035598C 38 7F 00 00 */ addi r3, r31, 0
/* 80355990 38 80 20 00 */ li r4, 0x2000
/* 80355994 4B FE 5C 49 */ bl DCStoreRange
/* 80355998 93 BE 00 D8 */ stw r29, 0xd8(r30)
/* 8035599C 3C 60 80 35 */ lis r3, EraseCallback@ha /* 0x80355854@ha */
/* 803559A0 38 A3 58 54 */ addi r5, r3, EraseCallback@l /* 0x80355854@l */
/* 803559A4 80 1E 00 80 */ lwz r0, 0x80(r30)
/* 803559A8 7F 83 E3 78 */ mr r3, r28
/* 803559AC 80 9E 00 0C */ lwz r4, 0xc(r30)
/* 803559B0 7C 00 F8 50 */ subf r0, r0, r31
/* 803559B4 54 00 9B 7E */ srwi r0, r0, 0xd
/* 803559B8 7C 84 01 D6 */ mullw r4, r4, r0
/* 803559BC 4B FF DF FD */ bl __CARDEraseSector
lbl_803559C0:
/* 803559C0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803559C4 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 803559C8 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 803559CC 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 803559D0 83 81 00 18 */ lwz r28, 0x18(r1)
/* 803559D4 38 21 00 28 */ addi r1, r1, 0x28
/* 803559D8 7C 08 03 A6 */ mtlr r0
/* 803559DC 4E 80 00 20 */ blr
@@ -1,422 +0,0 @@
lbl_803575C8:
/* 803575C8 7C 08 02 A6 */ mflr r0
/* 803575CC 90 01 00 04 */ stw r0, 4(r1)
/* 803575D0 94 21 FF A8 */ stwu r1, -0x58(r1)
/* 803575D4 BE 41 00 20 */ stmw r18, 0x20(r1)
/* 803575D8 3A 84 00 00 */ addi r20, r4, 0
/* 803575DC 3A C3 00 00 */ addi r22, r3, 0
/* 803575E0 3A 65 00 00 */ addi r19, r5, 0
/* 803575E4 38 81 00 18 */ addi r4, r1, 0x18
/* 803575E8 4B FF C5 CD */ bl __CARDGetControlBlock
/* 803575EC 2C 03 00 00 */ cmpwi r3, 0
/* 803575F0 40 80 00 08 */ bge lbl_803575F8
/* 803575F4 48 00 06 18 */ b lbl_80357C0C
lbl_803575F8:
/* 803575F8 80 61 00 18 */ lwz r3, 0x18(r1)
/* 803575FC 38 80 00 FF */ li r4, 0xff
/* 80357600 38 A0 20 00 */ li r5, 0x2000
/* 80357604 83 63 00 80 */ lwz r27, 0x80(r3)
/* 80357608 7F 63 DB 78 */ mr r3, r27
/* 8035760C 4B CA BE 4D */ bl memset
/* 80357610 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC00206E@ha */
/* 80357614 A2 43 20 6E */ lhz r18, 0x206E(r3) /* 0xCC00206E@l */
/* 80357618 B2 9B 00 24 */ sth r20, 0x24(r27)
/* 8035761C 4B FE 8B 29 */ bl __OSLockSram
/* 80357620 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80357624 90 1B 00 14 */ stw r0, 0x14(r27)
/* 80357628 88 03 00 12 */ lbz r0, 0x12(r3)
/* 8035762C 38 60 00 00 */ li r3, 0
/* 80357630 90 1B 00 18 */ stw r0, 0x18(r27)
/* 80357634 4B FE 8F 05 */ bl __OSUnlockSram
/* 80357638 4B FE B0 C5 */ bl OSGetTime
/* 8035763C 3A A4 00 00 */ addi r21, r4, 0
/* 80357640 3A 83 00 00 */ addi r20, r3, 0
/* 80357644 3B 55 00 00 */ addi r26, r21, 0
/* 80357648 3B D4 00 00 */ addi r30, r20, 0
/* 8035764C 4B FE 8B 55 */ bl __OSLockSramEx
/* 80357650 1C 16 00 0C */ mulli r0, r22, 0xc
/* 80357654 7F 23 02 14 */ add r25, r3, r0
/* 80357658 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */
/* 8035765C 3B 19 00 00 */ addi r24, r25, 0
/* 80357660 3B E3 4E 6D */ addi r31, r3, 0x4E6D /* 0x41C64E6D@l */
/* 80357664 3B 80 00 00 */ li r28, 0
/* 80357668 3A E0 00 04 */ li r23, 4
/* 8035766C 48 00 03 74 */ b lbl_803579E0
lbl_80357670:
/* 80357670 7C BE F9 D6 */ mullw r5, r30, r31
/* 80357674 7C 7A F8 16 */ mulhwu r3, r26, r31
/* 80357678 3B C0 00 00 */ li r30, 0
/* 8035767C 7C A5 1A 14 */ add r5, r5, r3
/* 80357680 7C 7A F1 D6 */ mullw r3, r26, r30
/* 80357684 7C 1A F9 D6 */ mullw r0, r26, r31
/* 80357688 3B A0 30 39 */ li r29, 0x3039
/* 8035768C 7C 80 E8 14 */ addc r4, r0, r29
/* 80357690 7C 05 1A 14 */ add r0, r5, r3
/* 80357694 7C 60 F1 14 */ adde r3, r0, r30
/* 80357698 38 A0 00 10 */ li r5, 0x10
/* 8035769C 48 00 AF F9 */ bl __shr2i
/* 803576A0 7C C3 F9 D6 */ mullw r6, r3, r31
/* 803576A4 88 18 00 00 */ lbz r0, 0(r24)
/* 803576A8 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 803576AC 7C C6 2A 14 */ add r6, r6, r5
/* 803576B0 7D 04 00 14 */ addc r8, r4, r0
/* 803576B4 7F 87 07 34 */ extsh r7, r28
/* 803576B8 7C A4 F1 D6 */ mullw r5, r4, r30
/* 803576BC 7D 1B 39 AE */ stbx r8, r27, r7
/* 803576C0 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803576C4 7C 80 E8 14 */ addc r4, r0, r29
/* 803576C8 7C 06 2A 14 */ add r0, r6, r5
/* 803576CC 7C 60 F1 14 */ adde r3, r0, r30
/* 803576D0 38 A0 00 10 */ li r5, 0x10
/* 803576D4 48 00 AF C1 */ bl __shr2i
/* 803576D8 3B 40 7F FF */ li r26, 0x7fff
/* 803576DC 7C 60 F0 38 */ and r0, r3, r30
/* 803576E0 7C 84 D0 38 */ and r4, r4, r26
/* 803576E4 7C A0 F9 D6 */ mullw r5, r0, r31
/* 803576E8 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 803576EC 7C A5 1A 14 */ add r5, r5, r3
/* 803576F0 7C 64 F1 D6 */ mullw r3, r4, r30
/* 803576F4 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803576F8 7C 80 E8 14 */ addc r4, r0, r29
/* 803576FC 7C 05 1A 14 */ add r0, r5, r3
/* 80357700 7C 60 F1 14 */ adde r3, r0, r30
/* 80357704 38 A0 00 10 */ li r5, 0x10
/* 80357708 48 00 AF 8D */ bl __shr2i
/* 8035770C 7C C3 F9 D6 */ mullw r6, r3, r31
/* 80357710 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 80357714 39 3C 00 01 */ addi r9, r28, 1
/* 80357718 7D 29 07 34 */ extsh r9, r9
/* 8035771C 7C 19 48 AE */ lbzx r0, r25, r9
/* 80357720 7C C6 2A 14 */ add r6, r6, r5
/* 80357724 7C A4 F1 D6 */ mullw r5, r4, r30
/* 80357728 7C E4 00 14 */ addc r7, r4, r0
/* 8035772C 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357730 7C FB 49 AE */ stbx r7, r27, r9
/* 80357734 7C 80 E8 14 */ addc r4, r0, r29
/* 80357738 7C 06 2A 14 */ add r0, r6, r5
/* 8035773C 7C 60 F1 14 */ adde r3, r0, r30
/* 80357740 38 A0 00 10 */ li r5, 0x10
/* 80357744 48 00 AF 51 */ bl __shr2i
/* 80357748 7C 60 F0 38 */ and r0, r3, r30
/* 8035774C 7C 84 D0 38 */ and r4, r4, r26
/* 80357750 7C A0 F9 D6 */ mullw r5, r0, r31
/* 80357754 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 80357758 7C A5 1A 14 */ add r5, r5, r3
/* 8035775C 7C 64 F1 D6 */ mullw r3, r4, r30
/* 80357760 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357764 7C 80 E8 14 */ addc r4, r0, r29
/* 80357768 7C 05 1A 14 */ add r0, r5, r3
/* 8035776C 7C 60 F1 14 */ adde r3, r0, r30
/* 80357770 38 A0 00 10 */ li r5, 0x10
/* 80357774 48 00 AF 21 */ bl __shr2i
/* 80357778 7C C3 F9 D6 */ mullw r6, r3, r31
/* 8035777C 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 80357780 39 3C 00 02 */ addi r9, r28, 2
/* 80357784 7D 29 07 34 */ extsh r9, r9
/* 80357788 7C 19 48 AE */ lbzx r0, r25, r9
/* 8035778C 7C C6 2A 14 */ add r6, r6, r5
/* 80357790 7C A4 F1 D6 */ mullw r5, r4, r30
/* 80357794 7C E4 00 14 */ addc r7, r4, r0
/* 80357798 7C 04 F9 D6 */ mullw r0, r4, r31
/* 8035779C 7C FB 49 AE */ stbx r7, r27, r9
/* 803577A0 7C 80 E8 14 */ addc r4, r0, r29
/* 803577A4 7C 06 2A 14 */ add r0, r6, r5
/* 803577A8 7C 60 F1 14 */ adde r3, r0, r30
/* 803577AC 38 A0 00 10 */ li r5, 0x10
/* 803577B0 48 00 AE E5 */ bl __shr2i
/* 803577B4 7C 60 F0 38 */ and r0, r3, r30
/* 803577B8 7C 84 D0 38 */ and r4, r4, r26
/* 803577BC 7C A0 F9 D6 */ mullw r5, r0, r31
/* 803577C0 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 803577C4 7C A5 1A 14 */ add r5, r5, r3
/* 803577C8 7C 64 F1 D6 */ mullw r3, r4, r30
/* 803577CC 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803577D0 7C 80 E8 14 */ addc r4, r0, r29
/* 803577D4 7C 05 1A 14 */ add r0, r5, r3
/* 803577D8 7C 60 F1 14 */ adde r3, r0, r30
/* 803577DC 38 A0 00 10 */ li r5, 0x10
/* 803577E0 48 00 AE B5 */ bl __shr2i
/* 803577E4 7C C3 F9 D6 */ mullw r6, r3, r31
/* 803577E8 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 803577EC 39 3C 00 03 */ addi r9, r28, 3
/* 803577F0 7D 29 07 34 */ extsh r9, r9
/* 803577F4 7C 19 48 AE */ lbzx r0, r25, r9
/* 803577F8 7C C6 2A 14 */ add r6, r6, r5
/* 803577FC 7C A4 F1 D6 */ mullw r5, r4, r30
/* 80357800 7C E4 00 14 */ addc r7, r4, r0
/* 80357804 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357808 7C FB 49 AE */ stbx r7, r27, r9
/* 8035780C 7C 80 E8 14 */ addc r4, r0, r29
/* 80357810 7C 06 2A 14 */ add r0, r6, r5
/* 80357814 7C 60 F1 14 */ adde r3, r0, r30
/* 80357818 38 A0 00 10 */ li r5, 0x10
/* 8035781C 48 00 AE 79 */ bl __shr2i
/* 80357820 7C 60 F0 38 */ and r0, r3, r30
/* 80357824 7C 84 D0 38 */ and r4, r4, r26
/* 80357828 7C A0 F9 D6 */ mullw r5, r0, r31
/* 8035782C 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 80357830 7C A5 1A 14 */ add r5, r5, r3
/* 80357834 7C 64 F1 D6 */ mullw r3, r4, r30
/* 80357838 7C 04 F9 D6 */ mullw r0, r4, r31
/* 8035783C 7C 80 E8 14 */ addc r4, r0, r29
/* 80357840 7C 05 1A 14 */ add r0, r5, r3
/* 80357844 7C 60 F1 14 */ adde r3, r0, r30
/* 80357848 38 A0 00 10 */ li r5, 0x10
/* 8035784C 48 00 AE 49 */ bl __shr2i
/* 80357850 7C C3 F9 D6 */ mullw r6, r3, r31
/* 80357854 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 80357858 39 3C 00 04 */ addi r9, r28, 4
/* 8035785C 7D 29 07 34 */ extsh r9, r9
/* 80357860 7C 19 48 AE */ lbzx r0, r25, r9
/* 80357864 7C C6 2A 14 */ add r6, r6, r5
/* 80357868 7C A4 F1 D6 */ mullw r5, r4, r30
/* 8035786C 7C E4 00 14 */ addc r7, r4, r0
/* 80357870 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357874 7C FB 49 AE */ stbx r7, r27, r9
/* 80357878 7C 80 E8 14 */ addc r4, r0, r29
/* 8035787C 7C 06 2A 14 */ add r0, r6, r5
/* 80357880 7C 60 F1 14 */ adde r3, r0, r30
/* 80357884 38 A0 00 10 */ li r5, 0x10
/* 80357888 48 00 AE 0D */ bl __shr2i
/* 8035788C 7C 60 F0 38 */ and r0, r3, r30
/* 80357890 7C 84 D0 38 */ and r4, r4, r26
/* 80357894 7C A0 F9 D6 */ mullw r5, r0, r31
/* 80357898 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 8035789C 7C A5 1A 14 */ add r5, r5, r3
/* 803578A0 7C 64 F1 D6 */ mullw r3, r4, r30
/* 803578A4 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803578A8 7C 80 E8 14 */ addc r4, r0, r29
/* 803578AC 7C 05 1A 14 */ add r0, r5, r3
/* 803578B0 7C 60 F1 14 */ adde r3, r0, r30
/* 803578B4 38 A0 00 10 */ li r5, 0x10
/* 803578B8 48 00 AD DD */ bl __shr2i
/* 803578BC 7C C3 F9 D6 */ mullw r6, r3, r31
/* 803578C0 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 803578C4 39 3C 00 05 */ addi r9, r28, 5
/* 803578C8 7D 29 07 34 */ extsh r9, r9
/* 803578CC 7C 19 48 AE */ lbzx r0, r25, r9
/* 803578D0 7C C6 2A 14 */ add r6, r6, r5
/* 803578D4 7C A4 F1 D6 */ mullw r5, r4, r30
/* 803578D8 7C E4 00 14 */ addc r7, r4, r0
/* 803578DC 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803578E0 7C FB 49 AE */ stbx r7, r27, r9
/* 803578E4 7C 80 E8 14 */ addc r4, r0, r29
/* 803578E8 7C 06 2A 14 */ add r0, r6, r5
/* 803578EC 7C 60 F1 14 */ adde r3, r0, r30
/* 803578F0 38 A0 00 10 */ li r5, 0x10
/* 803578F4 48 00 AD A1 */ bl __shr2i
/* 803578F8 7C 60 F0 38 */ and r0, r3, r30
/* 803578FC 7C 84 D0 38 */ and r4, r4, r26
/* 80357900 7C A0 F9 D6 */ mullw r5, r0, r31
/* 80357904 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 80357908 7C A5 1A 14 */ add r5, r5, r3
/* 8035790C 7C 64 F1 D6 */ mullw r3, r4, r30
/* 80357910 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357914 7C 80 E8 14 */ addc r4, r0, r29
/* 80357918 7C 05 1A 14 */ add r0, r5, r3
/* 8035791C 7C 60 F1 14 */ adde r3, r0, r30
/* 80357920 38 A0 00 10 */ li r5, 0x10
/* 80357924 48 00 AD 71 */ bl __shr2i
/* 80357928 7C C3 F9 D6 */ mullw r6, r3, r31
/* 8035792C 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 80357930 39 3C 00 06 */ addi r9, r28, 6
/* 80357934 7D 29 07 34 */ extsh r9, r9
/* 80357938 7C 19 48 AE */ lbzx r0, r25, r9
/* 8035793C 7C C6 2A 14 */ add r6, r6, r5
/* 80357940 7C A4 F1 D6 */ mullw r5, r4, r30
/* 80357944 7C E4 00 14 */ addc r7, r4, r0
/* 80357948 7C 04 F9 D6 */ mullw r0, r4, r31
/* 8035794C 7C FB 49 AE */ stbx r7, r27, r9
/* 80357950 7C 80 E8 14 */ addc r4, r0, r29
/* 80357954 7C 06 2A 14 */ add r0, r6, r5
/* 80357958 7C 60 F1 14 */ adde r3, r0, r30
/* 8035795C 38 A0 00 10 */ li r5, 0x10
/* 80357960 48 00 AD 35 */ bl __shr2i
/* 80357964 7C 60 F0 38 */ and r0, r3, r30
/* 80357968 7C 84 D0 38 */ and r4, r4, r26
/* 8035796C 7C A0 F9 D6 */ mullw r5, r0, r31
/* 80357970 7C 64 F8 16 */ mulhwu r3, r4, r31
/* 80357974 7C A5 1A 14 */ add r5, r5, r3
/* 80357978 7C 64 F1 D6 */ mullw r3, r4, r30
/* 8035797C 7C 04 F9 D6 */ mullw r0, r4, r31
/* 80357980 7C 80 E8 14 */ addc r4, r0, r29
/* 80357984 7C 05 1A 14 */ add r0, r5, r3
/* 80357988 7C 60 F1 14 */ adde r3, r0, r30
/* 8035798C 38 A0 00 10 */ li r5, 0x10
/* 80357990 48 00 AD 05 */ bl __shr2i
/* 80357994 7C C3 F9 D6 */ mullw r6, r3, r31
/* 80357998 7C A4 F8 16 */ mulhwu r5, r4, r31
/* 8035799C 39 3C 00 07 */ addi r9, r28, 7
/* 803579A0 7D 29 07 34 */ extsh r9, r9
/* 803579A4 7C 19 48 AE */ lbzx r0, r25, r9
/* 803579A8 7C C6 2A 14 */ add r6, r6, r5
/* 803579AC 7C A4 F1 D6 */ mullw r5, r4, r30
/* 803579B0 7C E4 00 14 */ addc r7, r4, r0
/* 803579B4 7C 04 F9 D6 */ mullw r0, r4, r31
/* 803579B8 7C FB 49 AE */ stbx r7, r27, r9
/* 803579BC 7C 80 E8 14 */ addc r4, r0, r29
/* 803579C0 7C 06 2A 14 */ add r0, r6, r5
/* 803579C4 7C 60 F1 14 */ adde r3, r0, r30
/* 803579C8 38 A0 00 10 */ li r5, 0x10
/* 803579CC 48 00 AC C9 */ bl __shr2i
/* 803579D0 7C 9A D0 38 */ and r26, r4, r26
/* 803579D4 7C 7E F0 38 */ and r30, r3, r30
/* 803579D8 3B 18 00 08 */ addi r24, r24, 8
/* 803579DC 3B 9C 00 08 */ addi r28, r28, 8
lbl_803579E0:
/* 803579E0 7F 80 07 34 */ extsh r0, r28
/* 803579E4 7C 00 B8 00 */ cmpw r0, r23
/* 803579E8 41 80 FC 88 */ blt lbl_80357670
/* 803579EC 48 00 02 18 */ b lbl_80357C04
lbl_803579F0:
/* 803579F0 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */
/* 803579F4 3B 23 4E 6D */ addi r25, r3, 0x4E6D /* 0x41C64E6D@l */
/* 803579F8 48 00 00 80 */ b lbl_80357A78
lbl_803579FC:
/* 803579FC 7C BE C9 D6 */ mullw r5, r30, r25
/* 80357A00 7C 7A C8 16 */ mulhwu r3, r26, r25
/* 80357A04 3B 00 00 00 */ li r24, 0
/* 80357A08 7C A5 1A 14 */ add r5, r5, r3
/* 80357A0C 7C 7A C1 D6 */ mullw r3, r26, r24
/* 80357A10 7C 1A C9 D6 */ mullw r0, r26, r25
/* 80357A14 3A E0 30 39 */ li r23, 0x3039
/* 80357A18 7C 80 B8 14 */ addc r4, r0, r23
/* 80357A1C 7C 05 1A 14 */ add r0, r5, r3
/* 80357A20 7C 60 C1 14 */ adde r3, r0, r24
/* 80357A24 38 A0 00 10 */ li r5, 0x10
/* 80357A28 48 00 AC 6D */ bl __shr2i
/* 80357A2C 7C C3 C9 D6 */ mullw r6, r3, r25
/* 80357A30 88 1D 00 00 */ lbz r0, 0(r29)
/* 80357A34 7C A4 C8 16 */ mulhwu r5, r4, r25
/* 80357A38 7C C6 2A 14 */ add r6, r6, r5
/* 80357A3C 7D 04 00 14 */ addc r8, r4, r0
/* 80357A40 7F 87 07 34 */ extsh r7, r28
/* 80357A44 7C A4 C1 D6 */ mullw r5, r4, r24
/* 80357A48 7D 1B 39 AE */ stbx r8, r27, r7
/* 80357A4C 7C 04 C9 D6 */ mullw r0, r4, r25
/* 80357A50 7C 80 B8 14 */ addc r4, r0, r23
/* 80357A54 7C 06 2A 14 */ add r0, r6, r5
/* 80357A58 7C 60 C1 14 */ adde r3, r0, r24
/* 80357A5C 38 A0 00 10 */ li r5, 0x10
/* 80357A60 48 00 AC 35 */ bl __shr2i
/* 80357A64 38 00 7F FF */ li r0, 0x7fff
/* 80357A68 7C 9A 00 38 */ and r26, r4, r0
/* 80357A6C 7C 7E C0 38 */ and r30, r3, r24
/* 80357A70 3B BD 00 01 */ addi r29, r29, 1
/* 80357A74 3B 9C 00 01 */ addi r28, r28, 1
lbl_80357A78:
/* 80357A78 7F 80 07 34 */ extsh r0, r28
/* 80357A7C 2C 00 00 0C */ cmpwi r0, 0xc
/* 80357A80 41 80 FF 7C */ blt lbl_803579FC
/* 80357A84 38 60 00 00 */ li r3, 0
/* 80357A88 4B FE 8A D5 */ bl __OSUnlockSramEx
/* 80357A8C 92 5B 00 1C */ stw r18, 0x1c(r27)
/* 80357A90 3A 40 00 00 */ li r18, 0
/* 80357A94 38 7B 00 00 */ addi r3, r27, 0
/* 80357A98 92 BB 00 10 */ stw r21, 0x10(r27)
/* 80357A9C 38 BB 01 FC */ addi r5, r27, 0x1fc
/* 80357AA0 38 DB 01 FE */ addi r6, r27, 0x1fe
/* 80357AA4 92 9B 00 0C */ stw r20, 0xc(r27)
/* 80357AA8 38 80 01 FC */ li r4, 0x1fc
/* 80357AAC B2 5B 00 20 */ sth r18, 0x20(r27)
/* 80357AB0 80 E1 00 18 */ lwz r7, 0x18(r1)
/* 80357AB4 A0 07 00 08 */ lhz r0, 8(r7)
/* 80357AB8 B0 1B 00 22 */ sth r0, 0x22(r27)
/* 80357ABC 4B FF DF 25 */ bl __CARDCheckSum
/* 80357AC0 48 00 00 4C */ b lbl_80357B0C
lbl_80357AC4:
/* 80357AC4 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80357AC8 7E 43 07 34 */ extsh r3, r18
/* 80357ACC 38 03 00 01 */ addi r0, r3, 1
/* 80357AD0 80 64 00 80 */ lwz r3, 0x80(r4)
/* 80357AD4 54 00 68 24 */ slwi r0, r0, 0xd
/* 80357AD8 38 80 00 FF */ li r4, 0xff
/* 80357ADC 7E 83 02 14 */ add r20, r3, r0
/* 80357AE0 38 74 00 00 */ addi r3, r20, 0
/* 80357AE4 38 A0 20 00 */ li r5, 0x2000
/* 80357AE8 4B CA B9 71 */ bl memset
/* 80357AEC 38 94 1F C0 */ addi r4, r20, 0x1fc0
/* 80357AF0 B2 54 1F FA */ sth r18, 0x1ffa(r20)
/* 80357AF4 38 74 00 00 */ addi r3, r20, 0
/* 80357AF8 38 A4 00 3C */ addi r5, r4, 0x3c
/* 80357AFC 38 C4 00 3E */ addi r6, r4, 0x3e
/* 80357B00 38 80 1F FC */ li r4, 0x1ffc
/* 80357B04 4B FF DE DD */ bl __CARDCheckSum
/* 80357B08 3A 52 00 01 */ addi r18, r18, 1
lbl_80357B0C:
/* 80357B0C 7E 40 07 34 */ extsh r0, r18
/* 80357B10 2C 00 00 02 */ cmpwi r0, 2
/* 80357B14 41 80 FF B0 */ blt lbl_80357AC4
/* 80357B18 3A 40 00 00 */ li r18, 0
/* 80357B1C 48 00 00 60 */ b lbl_80357B7C
lbl_80357B20:
/* 80357B20 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80357B24 7E 43 07 34 */ extsh r3, r18
/* 80357B28 38 03 00 03 */ addi r0, r3, 3
/* 80357B2C 80 64 00 80 */ lwz r3, 0x80(r4)
/* 80357B30 54 00 68 24 */ slwi r0, r0, 0xd
/* 80357B34 38 80 00 00 */ li r4, 0
/* 80357B38 7E 83 02 14 */ add r20, r3, r0
/* 80357B3C 38 74 00 00 */ addi r3, r20, 0
/* 80357B40 38 A0 20 00 */ li r5, 0x2000
/* 80357B44 4B CA B9 15 */ bl memset
/* 80357B48 B2 54 00 04 */ sth r18, 4(r20)
/* 80357B4C 38 00 00 04 */ li r0, 4
/* 80357B50 38 B4 00 00 */ addi r5, r20, 0
/* 80357B54 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80357B58 38 74 00 04 */ addi r3, r20, 4
/* 80357B5C 38 D4 00 02 */ addi r6, r20, 2
/* 80357B60 A0 E4 00 10 */ lhz r7, 0x10(r4)
/* 80357B64 38 80 1F FC */ li r4, 0x1ffc
/* 80357B68 38 E7 FF FB */ addi r7, r7, -5
/* 80357B6C B0 F4 00 06 */ sth r7, 6(r20)
/* 80357B70 B0 14 00 08 */ sth r0, 8(r20)
/* 80357B74 4B FF DE 6D */ bl __CARDCheckSum
/* 80357B78 3A 52 00 01 */ addi r18, r18, 1
lbl_80357B7C:
/* 80357B7C 7E 40 07 34 */ extsh r0, r18
/* 80357B80 2C 00 00 02 */ cmpwi r0, 2
/* 80357B84 41 80 FF 9C */ blt lbl_80357B20
/* 80357B88 28 13 00 00 */ cmplwi r19, 0
/* 80357B8C 41 82 00 0C */ beq lbl_80357B98
/* 80357B90 7E 60 9B 78 */ mr r0, r19
/* 80357B94 48 00 00 0C */ b lbl_80357BA0
lbl_80357B98:
/* 80357B98 3C 60 80 35 */ lis r3, __CARDDefaultApiCallback@ha /* 0x80352A30@ha */
/* 80357B9C 38 03 2A 30 */ addi r0, r3, __CARDDefaultApiCallback@l /* 0x80352A30@l */
lbl_80357BA0:
/* 80357BA0 80 A1 00 18 */ lwz r5, 0x18(r1)
/* 80357BA4 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000A000@ha */
/* 80357BA8 38 83 A0 00 */ addi r4, r3, 0xA000 /* 0x0000A000@l */
/* 80357BAC 90 05 00 D0 */ stw r0, 0xd0(r5)
/* 80357BB0 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80357BB4 80 63 00 80 */ lwz r3, 0x80(r3)
/* 80357BB8 4B FE 3A 25 */ bl DCStoreRange
/* 80357BBC 80 81 00 18 */ lwz r4, 0x18(r1)
/* 80357BC0 38 00 00 00 */ li r0, 0
/* 80357BC4 3C 60 80 35 */ lis r3, FormatCallback@ha /* 0x80357484@ha */
/* 80357BC8 90 04 00 28 */ stw r0, 0x28(r4)
/* 80357BCC 38 A3 74 84 */ addi r5, r3, FormatCallback@l /* 0x80357484@l */
/* 80357BD0 38 76 00 00 */ addi r3, r22, 0
/* 80357BD4 80 C1 00 18 */ lwz r6, 0x18(r1)
/* 80357BD8 80 86 00 0C */ lwz r4, 0xc(r6)
/* 80357BDC 80 06 00 28 */ lwz r0, 0x28(r6)
/* 80357BE0 7C 84 01 D6 */ mullw r4, r4, r0
/* 80357BE4 4B FF BD D5 */ bl __CARDEraseSector
/* 80357BE8 7C 72 1B 79 */ or. r18, r3, r3
/* 80357BEC 40 80 00 10 */ bge lbl_80357BFC
/* 80357BF0 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80357BF4 7E 44 93 78 */ mr r4, r18
/* 80357BF8 4B FF C0 75 */ bl __CARDPutControlBlock
lbl_80357BFC:
/* 80357BFC 7E 43 93 78 */ mr r3, r18
/* 80357C00 48 00 00 0C */ b lbl_80357C0C
lbl_80357C04:
/* 80357C04 7F B9 02 14 */ add r29, r25, r0
/* 80357C08 4B FF FD E8 */ b lbl_803579F0
lbl_80357C0C:
/* 80357C0C BA 41 00 20 */ lmw r18, 0x20(r1)
/* 80357C10 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 80357C14 38 21 00 58 */ addi r1, r1, 0x58
/* 80357C18 7C 08 03 A6 */ mtlr r0
/* 80357C1C 4E 80 00 20 */ blr
-47
View File
@@ -1,47 +0,0 @@
lbl_803573D8:
/* 803573D8 7C 08 02 A6 */ mflr r0
/* 803573DC 90 01 00 04 */ stw r0, 4(r1)
/* 803573E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803573E4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803573E8 38 81 00 0C */ addi r4, r1, 0xc
/* 803573EC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803573F0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803573F4 3B A3 00 00 */ addi r29, r3, 0
/* 803573F8 4B FF C7 BD */ bl __CARDGetControlBlock
/* 803573FC 2C 03 00 00 */ cmpwi r3, 0
/* 80357400 40 80 00 08 */ bge lbl_80357408
/* 80357404 48 00 00 64 */ b lbl_80357468
lbl_80357408:
/* 80357408 1C 9D 01 10 */ mulli r4, r29, 0x110
/* 8035740C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80357410 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 80357414 7F C0 22 14 */ add r30, r0, r4
/* 80357418 4B FE 62 DD */ bl OSDisableInterrupts
/* 8035741C 80 1E 00 00 */ lwz r0, 0(r30)
/* 80357420 3B E3 00 00 */ addi r31, r3, 0
/* 80357424 2C 00 00 00 */ cmpwi r0, 0
/* 80357428 41 82 00 34 */ beq lbl_8035745C
/* 8035742C 38 7D 00 00 */ addi r3, r29, 0
/* 80357430 38 80 00 00 */ li r4, 0
/* 80357434 4B FE BF 49 */ bl EXISetExiCallback
/* 80357438 7F A3 EB 78 */ mr r3, r29
/* 8035743C 4B FE C3 71 */ bl EXIDetach
/* 80357440 38 7E 00 E0 */ addi r3, r30, 0xe0
/* 80357444 4B FE 37 F9 */ bl OSCancelAlarm
/* 80357448 38 60 00 00 */ li r3, 0
/* 8035744C 90 7E 00 00 */ stw r3, 0(r30)
/* 80357450 38 00 FF FD */ li r0, -3
/* 80357454 90 1E 00 04 */ stw r0, 4(r30)
/* 80357458 90 7E 00 24 */ stw r3, 0x24(r30)
lbl_8035745C:
/* 8035745C 7F E3 FB 78 */ mr r3, r31
/* 80357460 4B FE 62 BD */ bl OSRestoreInterrupts
/* 80357464 38 60 00 00 */ li r3, 0
lbl_80357468:
/* 80357468 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8035746C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80357470 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80357474 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80357478 38 21 00 20 */ addi r1, r1, 0x20
/* 8035747C 7C 08 03 A6 */ mtlr r0
/* 80357480 4E 80 00 20 */ blr
-300
View File
@@ -1,300 +0,0 @@
lbl_80356BC8:
/* 80356BC8 7C 08 02 A6 */ mflr r0
/* 80356BCC 90 01 00 04 */ stw r0, 4(r1)
/* 80356BD0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80356BD4 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80356BD8 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80356BDC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80356BE0 3B A3 00 00 */ addi r29, r3, 0
/* 80356BE4 1C 9D 01 10 */ mulli r4, r29, 0x110
/* 80356BE8 93 81 00 20 */ stw r28, 0x20(r1)
/* 80356BEC 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80356BF0 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 80356BF4 7C 60 22 14 */ add r3, r0, r4
/* 80356BF8 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80356BFC 3B E3 00 00 */ addi r31, r3, 0
/* 80356C00 2C 00 00 00 */ cmpwi r0, 0
/* 80356C04 40 82 02 F0 */ bne lbl_80356EF4
/* 80356C08 38 7D 00 00 */ addi r3, r29, 0
/* 80356C0C 38 A1 00 18 */ addi r5, r1, 0x18
/* 80356C10 38 80 00 00 */ li r4, 0
/* 80356C14 4B FE D6 25 */ bl EXIGetID
/* 80356C18 2C 03 00 00 */ cmpwi r3, 0
/* 80356C1C 40 82 00 0C */ bne lbl_80356C28
/* 80356C20 3B C0 FF FD */ li r30, -3
/* 80356C24 48 00 00 20 */ b lbl_80356C44
lbl_80356C28:
/* 80356C28 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80356C2C 4B FF FD 1D */ bl IsCard
/* 80356C30 2C 03 00 00 */ cmpwi r3, 0
/* 80356C34 41 82 00 0C */ beq lbl_80356C40
/* 80356C38 3B C0 00 00 */ li r30, 0
/* 80356C3C 48 00 00 08 */ b lbl_80356C44
lbl_80356C40:
/* 80356C40 3B C0 FF FE */ li r30, -2
lbl_80356C44:
/* 80356C44 2C 1E 00 00 */ cmpwi r30, 0
/* 80356C48 41 80 03 88 */ blt lbl_80356FD0
/* 80356C4C 80 01 00 18 */ lwz r0, 0x18(r1)
/* 80356C50 3C 80 80 3D */ lis r4, SectorSizeTable@ha /* 0x803D2000@ha */
/* 80356C54 38 A4 20 00 */ addi r5, r4, SectorSizeTable@l /* 0x803D2000@l */
/* 80356C58 90 1F 01 08 */ stw r0, 0x108(r31)
/* 80356C5C 3C 60 80 3D */ lis r3, LatencyTable@ha /* 0x803D2020@ha */
/* 80356C60 38 03 20 20 */ addi r0, r3, LatencyTable@l /* 0x803D2020@l */
/* 80356C64 80 C1 00 18 */ lwz r6, 0x18(r1)
/* 80356C68 38 7D 00 00 */ addi r3, r29, 0
/* 80356C6C 38 9F 00 12 */ addi r4, r31, 0x12
/* 80356C70 54 C6 06 3A */ rlwinm r6, r6, 0, 0x18, 0x1d
/* 80356C74 B0 DF 00 08 */ sth r6, 8(r31)
/* 80356C78 80 C1 00 18 */ lwz r6, 0x18(r1)
/* 80356C7C 54 C6 BE FA */ rlwinm r6, r6, 0x17, 0x1b, 0x1d
/* 80356C80 7C A5 32 14 */ add r5, r5, r6
/* 80356C84 80 A5 00 00 */ lwz r5, 0(r5)
/* 80356C88 90 BF 00 0C */ stw r5, 0xc(r31)
/* 80356C8C A0 DF 00 08 */ lhz r6, 8(r31)
/* 80356C90 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 80356C94 54 C6 A0 16 */ slwi r6, r6, 0x14
/* 80356C98 7C C6 1E 70 */ srawi r6, r6, 3
/* 80356C9C 7C C6 01 94 */ addze r6, r6
/* 80356CA0 7C A6 2B D6 */ divw r5, r6, r5
/* 80356CA4 B0 BF 00 10 */ sth r5, 0x10(r31)
/* 80356CA8 80 A1 00 18 */ lwz r5, 0x18(r1)
/* 80356CAC 54 A5 D6 FA */ rlwinm r5, r5, 0x1a, 0x1b, 0x1d
/* 80356CB0 7C A0 2A 14 */ add r5, r0, r5
/* 80356CB4 80 05 00 00 */ lwz r0, 0(r5)
/* 80356CB8 90 1F 00 14 */ stw r0, 0x14(r31)
/* 80356CBC 4B FF C2 79 */ bl __CARDReadVendorID
/* 80356CC0 7C 7E 1B 79 */ or. r30, r3, r3
/* 80356CC4 41 80 03 0C */ blt lbl_80356FD0
/* 80356CC8 4B FF D2 41 */ bl CARDGetFastMode
/* 80356CCC 2C 03 00 00 */ cmpwi r3, 0
/* 80356CD0 41 82 00 20 */ beq lbl_80356CF0
/* 80356CD4 A0 1F 00 12 */ lhz r0, 0x12(r31)
/* 80356CD8 7C 00 46 70 */ srawi r0, r0, 8
/* 80356CDC 2C 00 00 EC */ cmpwi r0, 0xec
/* 80356CE0 40 82 00 10 */ bne lbl_80356CF0
/* 80356CE4 38 00 02 00 */ li r0, 0x200
/* 80356CE8 B0 1F 00 0A */ sth r0, 0xa(r31)
/* 80356CEC 48 00 00 0C */ b lbl_80356CF8
lbl_80356CF0:
/* 80356CF0 38 00 00 80 */ li r0, 0x80
/* 80356CF4 B0 1F 00 0A */ sth r0, 0xa(r31)
lbl_80356CF8:
/* 80356CF8 7F A3 EB 78 */ mr r3, r29
/* 80356CFC 4B FF C3 29 */ bl __CARDClearStatus
/* 80356D00 7C 7E 1B 79 */ or. r30, r3, r3
/* 80356D04 41 80 02 CC */ blt lbl_80356FD0
/* 80356D08 38 7D 00 00 */ addi r3, r29, 0
/* 80356D0C 38 81 00 14 */ addi r4, r1, 0x14
/* 80356D10 4B FF C1 35 */ bl __CARDReadStatus
/* 80356D14 7C 7E 1B 79 */ or. r30, r3, r3
/* 80356D18 41 80 02 B8 */ blt lbl_80356FD0
/* 80356D1C 7F A3 EB 78 */ mr r3, r29
/* 80356D20 4B FE C8 4D */ bl EXIProbe
/* 80356D24 2C 03 00 00 */ cmpwi r3, 0
/* 80356D28 40 82 00 0C */ bne lbl_80356D34
/* 80356D2C 3B C0 FF FD */ li r30, -3
/* 80356D30 48 00 02 A0 */ b lbl_80356FD0
lbl_80356D34:
/* 80356D34 88 01 00 14 */ lbz r0, 0x14(r1)
/* 80356D38 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 80356D3C 40 82 01 14 */ bne lbl_80356E50
/* 80356D40 38 7D 00 00 */ addi r3, r29, 0
/* 80356D44 38 9F 00 18 */ addi r4, r31, 0x18
/* 80356D48 4B FF D5 51 */ bl __CARDUnlock
/* 80356D4C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80356D50 41 80 02 80 */ blt lbl_80356FD0
/* 80356D54 4B FE 94 4D */ bl __OSLockSramEx
/* 80356D58 1C 1D 00 0C */ mulli r0, r29, 0xc
/* 80356D5C 7C 83 02 14 */ add r4, r3, r0
/* 80356D60 88 1F 00 18 */ lbz r0, 0x18(r31)
/* 80356D64 38 BF 00 18 */ addi r5, r31, 0x18
/* 80356D68 98 04 00 00 */ stb r0, 0(r4)
/* 80356D6C 39 05 00 02 */ addi r8, r5, 2
/* 80356D70 39 25 00 03 */ addi r9, r5, 3
/* 80356D74 88 FF 00 18 */ lbz r7, 0x18(r31)
/* 80356D78 39 45 00 04 */ addi r10, r5, 4
/* 80356D7C 88 1F 00 19 */ lbz r0, 0x19(r31)
/* 80356D80 39 65 00 05 */ addi r11, r5, 5
/* 80356D84 39 85 00 06 */ addi r12, r5, 6
/* 80356D88 98 04 00 01 */ stb r0, 1(r4)
/* 80356D8C 3B 85 00 07 */ addi r28, r5, 7
/* 80356D90 38 A0 00 08 */ li r5, 8
/* 80356D94 88 1F 00 19 */ lbz r0, 0x19(r31)
/* 80356D98 88 C8 00 00 */ lbz r6, 0(r8)
/* 80356D9C 7C 07 02 14 */ add r0, r7, r0
/* 80356DA0 98 C4 00 02 */ stb r6, 2(r4)
/* 80356DA4 88 E8 00 00 */ lbz r7, 0(r8)
/* 80356DA8 88 C9 00 00 */ lbz r6, 0(r9)
/* 80356DAC 7C 00 3A 14 */ add r0, r0, r7
/* 80356DB0 98 C4 00 03 */ stb r6, 3(r4)
/* 80356DB4 88 E9 00 00 */ lbz r7, 0(r9)
/* 80356DB8 88 CA 00 00 */ lbz r6, 0(r10)
/* 80356DBC 7C 00 3A 14 */ add r0, r0, r7
/* 80356DC0 98 C4 00 04 */ stb r6, 4(r4)
/* 80356DC4 88 EA 00 00 */ lbz r7, 0(r10)
/* 80356DC8 88 CB 00 00 */ lbz r6, 0(r11)
/* 80356DCC 7C 00 3A 14 */ add r0, r0, r7
/* 80356DD0 98 C4 00 05 */ stb r6, 5(r4)
/* 80356DD4 88 EB 00 00 */ lbz r7, 0(r11)
/* 80356DD8 88 CC 00 00 */ lbz r6, 0(r12)
/* 80356DDC 7C 00 3A 14 */ add r0, r0, r7
/* 80356DE0 98 C4 00 06 */ stb r6, 6(r4)
/* 80356DE4 88 EC 00 00 */ lbz r7, 0(r12)
/* 80356DE8 88 DC 00 00 */ lbz r6, 0(r28)
/* 80356DEC 7C 00 3A 14 */ add r0, r0, r7
/* 80356DF0 98 C4 00 07 */ stb r6, 7(r4)
/* 80356DF4 88 DC 00 00 */ lbz r6, 0(r28)
/* 80356DF8 7C 00 32 14 */ add r0, r0, r6
/* 80356DFC 48 00 01 F0 */ b lbl_80356FEC
lbl_80356E00:
/* 80356E00 20 85 00 0C */ subfic r4, r5, 0xc
/* 80356E04 2C 05 00 0C */ cmpwi r5, 0xc
/* 80356E08 7C 89 03 A6 */ mtctr r4
/* 80356E0C 40 80 00 28 */ bge lbl_80356E34
lbl_80356E10:
/* 80356E10 38 E5 00 18 */ addi r7, r5, 0x18
/* 80356E14 7C FF 3A 14 */ add r7, r31, r7
/* 80356E18 88 87 00 00 */ lbz r4, 0(r7)
/* 80356E1C 38 A5 00 01 */ addi r5, r5, 1
/* 80356E20 98 86 00 00 */ stb r4, 0(r6)
/* 80356E24 38 C6 00 01 */ addi r6, r6, 1
/* 80356E28 88 87 00 00 */ lbz r4, 0(r7)
/* 80356E2C 7C 00 22 14 */ add r0, r0, r4
/* 80356E30 42 00 FF E0 */ bdnz lbl_80356E10
lbl_80356E34:
/* 80356E34 7C 63 EA 14 */ add r3, r3, r29
/* 80356E38 7C 00 00 F8 */ nor r0, r0, r0
/* 80356E3C 98 03 00 26 */ stb r0, 0x26(r3)
/* 80356E40 38 60 00 01 */ li r3, 1
/* 80356E44 4B FE 97 19 */ bl __OSUnlockSramEx
/* 80356E48 7F C3 F3 78 */ mr r3, r30
/* 80356E4C 48 00 01 B0 */ b lbl_80356FFC
lbl_80356E50:
/* 80356E50 38 00 00 01 */ li r0, 1
/* 80356E54 90 1F 00 24 */ stw r0, 0x24(r31)
/* 80356E58 4B FE 93 49 */ bl __OSLockSramEx
/* 80356E5C 1C 1D 00 0C */ mulli r0, r29, 0xc
/* 80356E60 3B C3 00 00 */ addi r30, r3, 0
/* 80356E64 7C BE 02 14 */ add r5, r30, r0
/* 80356E68 88 85 00 00 */ lbz r4, 0(r5)
/* 80356E6C 38 C0 00 08 */ li r6, 8
/* 80356E70 88 05 00 01 */ lbz r0, 1(r5)
/* 80356E74 88 65 00 02 */ lbz r3, 2(r5)
/* 80356E78 7F 84 02 14 */ add r28, r4, r0
/* 80356E7C 88 05 00 03 */ lbz r0, 3(r5)
/* 80356E80 7F 9C 1A 14 */ add r28, r28, r3
/* 80356E84 88 65 00 04 */ lbz r3, 4(r5)
/* 80356E88 7F 9C 02 14 */ add r28, r28, r0
/* 80356E8C 88 05 00 05 */ lbz r0, 5(r5)
/* 80356E90 7F 9C 1A 14 */ add r28, r28, r3
/* 80356E94 88 65 00 06 */ lbz r3, 6(r5)
/* 80356E98 7F 9C 02 14 */ add r28, r28, r0
/* 80356E9C 88 05 00 07 */ lbz r0, 7(r5)
/* 80356EA0 7F 9C 1A 14 */ add r28, r28, r3
/* 80356EA4 7F 9C 02 14 */ add r28, r28, r0
/* 80356EA8 48 00 01 4C */ b lbl_80356FF4
lbl_80356EAC:
/* 80356EAC 20 06 00 0C */ subfic r0, r6, 0xc
/* 80356EB0 2C 06 00 0C */ cmpwi r6, 0xc
/* 80356EB4 7C 09 03 A6 */ mtctr r0
/* 80356EB8 40 80 00 14 */ bge lbl_80356ECC
lbl_80356EBC:
/* 80356EBC 88 03 00 00 */ lbz r0, 0(r3)
/* 80356EC0 38 63 00 01 */ addi r3, r3, 1
/* 80356EC4 7F 9C 02 14 */ add r28, r28, r0
/* 80356EC8 42 00 FF F4 */ bdnz lbl_80356EBC
lbl_80356ECC:
/* 80356ECC 38 60 00 00 */ li r3, 0
/* 80356ED0 4B FE 96 8D */ bl __OSUnlockSramEx
/* 80356ED4 7C 7E EA 14 */ add r3, r30, r29
/* 80356ED8 7F 80 E0 F8 */ nor r0, r28, r28
/* 80356EDC 88 63 00 26 */ lbz r3, 0x26(r3)
/* 80356EE0 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 80356EE4 7C 03 00 40 */ cmplw r3, r0
/* 80356EE8 41 82 00 0C */ beq lbl_80356EF4
/* 80356EEC 3B C0 FF FB */ li r30, -5
/* 80356EF0 48 00 00 E0 */ b lbl_80356FD0
lbl_80356EF4:
/* 80356EF4 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 80356EF8 2C 00 00 01 */ cmpwi r0, 1
/* 80356EFC 40 82 00 88 */ bne lbl_80356F84
/* 80356F00 80 7F 01 08 */ lwz r3, 0x108(r31)
/* 80356F04 3C 03 80 00 */ addis r0, r3, 0x8000
/* 80356F08 28 00 00 04 */ cmplwi r0, 4
/* 80356F0C 40 82 00 34 */ bne lbl_80356F40
/* 80356F10 4B FE 92 91 */ bl __OSLockSramEx
/* 80356F14 1C 1D 00 0C */ mulli r0, r29, 0xc
/* 80356F18 7F 83 02 2E */ lhzx r28, r3, r0
/* 80356F1C 38 60 00 00 */ li r3, 0
/* 80356F20 4B FE 96 3D */ bl __OSUnlockSramEx
/* 80356F24 A0 0D 84 F0 */ lhz r0, __CARDVendorID+0x0(r13)
/* 80356F28 28 00 FF FF */ cmplwi r0, 0xffff
/* 80356F2C 41 82 00 0C */ beq lbl_80356F38
/* 80356F30 7C 1C 00 40 */ cmplw r28, r0
/* 80356F34 41 82 00 0C */ beq lbl_80356F40
lbl_80356F38:
/* 80356F38 3B C0 FF FE */ li r30, -2
/* 80356F3C 48 00 00 94 */ b lbl_80356FD0
lbl_80356F40:
/* 80356F40 38 00 00 02 */ li r0, 2
/* 80356F44 90 1F 00 24 */ stw r0, 0x24(r31)
/* 80356F48 38 7D 00 00 */ addi r3, r29, 0
/* 80356F4C 38 80 00 01 */ li r4, 1
/* 80356F50 4B FF BE 35 */ bl __CARDEnableInterrupt
/* 80356F54 7C 7E 1B 79 */ or. r30, r3, r3
/* 80356F58 41 80 00 78 */ blt lbl_80356FD0
/* 80356F5C 3C 60 80 35 */ lis r3, __CARDExiHandler@ha /* 0x80352B40@ha */
/* 80356F60 38 83 2B 40 */ addi r4, r3, __CARDExiHandler@l /* 0x80352B40@l */
/* 80356F64 38 7D 00 00 */ addi r3, r29, 0
/* 80356F68 4B FE C4 15 */ bl EXISetExiCallback
/* 80356F6C 7F A3 EB 78 */ mr r3, r29
/* 80356F70 4B FE D1 AD */ bl EXIUnlock
/* 80356F74 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000A000@ha */
/* 80356F78 80 7F 00 80 */ lwz r3, 0x80(r31)
/* 80356F7C 38 84 A0 00 */ addi r4, r4, 0xA000 /* 0x0000A000@l */
/* 80356F80 4B FE 46 01 */ bl DCInvalidateRange
lbl_80356F84:
/* 80356F84 80 9F 00 24 */ lwz r4, 0x24(r31)
/* 80356F88 3C 60 80 35 */ lis r3, __CARDMountCallback@ha /* 0x8035701C@ha */
/* 80356F8C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80356F90 38 E3 70 1C */ addi r7, r3, __CARDMountCallback@l /* 0x8035701C@l */
/* 80356F94 38 64 FF FE */ addi r3, r4, -2
/* 80356F98 7C 80 19 D6 */ mullw r4, r0, r3
/* 80356F9C 80 BF 00 80 */ lwz r5, 0x80(r31)
/* 80356FA0 54 60 68 24 */ slwi r0, r3, 0xd
/* 80356FA4 7C C5 02 14 */ add r6, r5, r0
/* 80356FA8 38 7D 00 00 */ addi r3, r29, 0
/* 80356FAC 38 A0 20 00 */ li r5, 0x2000
/* 80356FB0 4B FF E2 B1 */ bl __CARDRead
/* 80356FB4 7C 7C 1B 79 */ or. r28, r3, r3
/* 80356FB8 40 80 00 10 */ bge lbl_80356FC8
/* 80356FBC 38 7F 00 00 */ addi r3, r31, 0
/* 80356FC0 38 9C 00 00 */ addi r4, r28, 0
/* 80356FC4 4B FF CC A9 */ bl __CARDPutControlBlock
lbl_80356FC8:
/* 80356FC8 7F 83 E3 78 */ mr r3, r28
/* 80356FCC 48 00 00 30 */ b lbl_80356FFC
lbl_80356FD0:
/* 80356FD0 7F A3 EB 78 */ mr r3, r29
/* 80356FD4 4B FE D1 49 */ bl EXIUnlock
/* 80356FD8 38 7D 00 00 */ addi r3, r29, 0
/* 80356FDC 38 9E 00 00 */ addi r4, r30, 0
/* 80356FE0 48 00 03 5D */ bl DoUnmount
/* 80356FE4 7F C3 F3 78 */ mr r3, r30
/* 80356FE8 48 00 00 14 */ b lbl_80356FFC
lbl_80356FEC:
/* 80356FEC 38 C4 00 08 */ addi r6, r4, 8
/* 80356FF0 4B FF FE 10 */ b lbl_80356E00
lbl_80356FF4:
/* 80356FF4 38 65 00 08 */ addi r3, r5, 8
/* 80356FF8 4B FF FE B4 */ b lbl_80356EAC
lbl_80356FFC:
/* 80356FFC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80357000 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80357004 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80357008 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8035700C 83 81 00 20 */ lwz r28, 0x20(r1)
/* 80357010 38 21 00 30 */ addi r1, r1, 0x30
/* 80357014 7C 08 03 A6 */ mtlr r0
/* 80357018 4E 80 00 20 */ blr
-81
View File
@@ -1,81 +0,0 @@
lbl_80357F98:
/* 80357F98 7C 08 02 A6 */ mflr r0
/* 80357F9C 90 01 00 04 */ stw r0, 4(r1)
/* 80357FA0 38 00 FF FF */ li r0, -1
/* 80357FA4 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 80357FA8 BF 21 00 1C */ stmw r25, 0x1c(r1)
/* 80357FAC 3B 24 00 00 */ addi r25, r4, 0
/* 80357FB0 3B C5 00 00 */ addi r30, r5, 0
/* 80357FB4 3B A3 00 00 */ addi r29, r3, 0
/* 80357FB8 38 81 00 14 */ addi r4, r1, 0x14
/* 80357FBC 90 05 00 00 */ stw r0, 0(r5)
/* 80357FC0 4B FF BB F5 */ bl __CARDGetControlBlock
/* 80357FC4 2C 03 00 00 */ cmpwi r3, 0
/* 80357FC8 40 80 00 08 */ bge lbl_80357FD0
/* 80357FCC 48 00 00 D4 */ b lbl_803580A0
lbl_80357FD0:
/* 80357FD0 83 41 00 14 */ lwz r26, 0x14(r1)
/* 80357FD4 80 1A 00 00 */ lwz r0, 0(r26)
/* 80357FD8 2C 00 00 00 */ cmpwi r0, 0
/* 80357FDC 40 82 00 0C */ bne lbl_80357FE8
/* 80357FE0 3B 40 FF FD */ li r26, -3
/* 80357FE4 48 00 00 5C */ b lbl_80358040
lbl_80357FE8:
/* 80357FE8 7F 43 D3 78 */ mr r3, r26
/* 80357FEC 4B FF D7 91 */ bl __CARDGetDirBlock
/* 80357FF0 3B 63 00 00 */ addi r27, r3, 0
/* 80357FF4 3B 80 00 00 */ li r28, 0
lbl_80357FF8:
/* 80357FF8 38 7A 00 00 */ addi r3, r26, 0
/* 80357FFC 38 9B 00 00 */ addi r4, r27, 0
/* 80358000 4B FF FC DD */ bl __CARDAccess
/* 80358004 2C 03 00 00 */ cmpwi r3, 0
/* 80358008 41 80 00 24 */ blt lbl_8035802C
/* 8035800C 38 7B 00 00 */ addi r3, r27, 0
/* 80358010 38 99 00 00 */ addi r4, r25, 0
/* 80358014 4B FF FC 61 */ bl __CARDCompareFileName
/* 80358018 2C 03 00 00 */ cmpwi r3, 0
/* 8035801C 41 82 00 10 */ beq lbl_8035802C
/* 80358020 3B FC 00 00 */ addi r31, r28, 0
/* 80358024 3B 40 00 00 */ li r26, 0
/* 80358028 48 00 00 18 */ b lbl_80358040
lbl_8035802C:
/* 8035802C 3B 9C 00 01 */ addi r28, r28, 1
/* 80358030 2C 1C 00 7F */ cmpwi r28, 0x7f
/* 80358034 3B 7B 00 40 */ addi r27, r27, 0x40
/* 80358038 41 80 FF C0 */ blt lbl_80357FF8
/* 8035803C 3B 40 FF FC */ li r26, -4
lbl_80358040:
/* 80358040 2C 1A 00 00 */ cmpwi r26, 0
/* 80358044 41 80 00 50 */ blt lbl_80358094
/* 80358048 80 61 00 14 */ lwz r3, 0x14(r1)
/* 8035804C 4B FF D7 31 */ bl __CARDGetDirBlock
/* 80358050 57 E0 30 32 */ slwi r0, r31, 6
/* 80358054 7C A3 02 14 */ add r5, r3, r0
/* 80358058 A0 85 00 36 */ lhz r4, 0x36(r5)
/* 8035805C 28 04 00 05 */ cmplwi r4, 5
/* 80358060 41 80 00 14 */ blt lbl_80358074
/* 80358064 80 61 00 14 */ lwz r3, 0x14(r1)
/* 80358068 A0 03 00 10 */ lhz r0, 0x10(r3)
/* 8035806C 7C 04 00 40 */ cmplw r4, r0
/* 80358070 41 80 00 0C */ blt lbl_8035807C
lbl_80358074:
/* 80358074 3B 40 FF FA */ li r26, -6
/* 80358078 48 00 00 1C */ b lbl_80358094
lbl_8035807C:
/* 8035807C 93 BE 00 00 */ stw r29, 0(r30)
/* 80358080 38 00 00 00 */ li r0, 0
/* 80358084 93 FE 00 04 */ stw r31, 4(r30)
/* 80358088 90 1E 00 08 */ stw r0, 8(r30)
/* 8035808C A0 05 00 36 */ lhz r0, 0x36(r5)
/* 80358090 B0 1E 00 10 */ sth r0, 0x10(r30)
lbl_80358094:
/* 80358094 80 61 00 14 */ lwz r3, 0x14(r1)
/* 80358098 7F 44 D3 78 */ mr r4, r26
/* 8035809C 4B FF BB D1 */ bl __CARDPutControlBlock
lbl_803580A0:
/* 803580A0 BB 21 00 1C */ lmw r25, 0x1c(r1)
/* 803580A4 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 803580A8 38 21 00 38 */ addi r1, r1, 0x38
/* 803580AC 7C 08 03 A6 */ mtlr r0
/* 803580B0 4E 80 00 20 */ blr
-42
View File
@@ -1,42 +0,0 @@
lbl_80357CDC:
/* 80357CDC 7C 08 02 A6 */ mflr r0
/* 80357CE0 90 01 00 04 */ stw r0, 4(r1)
/* 80357CE4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80357CE8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80357CEC 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80357CF0 7C 9E 23 78 */ mr r30, r4
/* 80357CF4 88 04 00 00 */ lbz r0, 0(r4)
/* 80357CF8 83 E3 01 0C */ lwz r31, 0x10c(r3)
/* 80357CFC 28 00 00 FF */ cmplwi r0, 0xff
/* 80357D00 40 82 00 0C */ bne lbl_80357D0C
/* 80357D04 38 60 FF FC */ li r3, -4
/* 80357D08 48 00 00 50 */ b lbl_80357D58
lbl_80357D0C:
/* 80357D0C 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
/* 80357D10 38 03 CD E0 */ addi r0, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
/* 80357D14 7C 1F 00 40 */ cmplw r31, r0
/* 80357D18 41 82 00 34 */ beq lbl_80357D4C
/* 80357D1C 38 7E 00 00 */ addi r3, r30, 0
/* 80357D20 38 9F 00 00 */ addi r4, r31, 0
/* 80357D24 38 A0 00 04 */ li r5, 4
/* 80357D28 48 00 E3 65 */ bl memcmp
/* 80357D2C 2C 03 00 00 */ cmpwi r3, 0
/* 80357D30 40 82 00 24 */ bne lbl_80357D54
/* 80357D34 38 7E 00 04 */ addi r3, r30, 4
/* 80357D38 38 9F 00 04 */ addi r4, r31, 4
/* 80357D3C 38 A0 00 02 */ li r5, 2
/* 80357D40 48 00 E3 4D */ bl memcmp
/* 80357D44 2C 03 00 00 */ cmpwi r3, 0
/* 80357D48 40 82 00 0C */ bne lbl_80357D54
lbl_80357D4C:
/* 80357D4C 38 60 00 00 */ li r3, 0
/* 80357D50 48 00 00 08 */ b lbl_80357D58
lbl_80357D54:
/* 80357D54 38 60 FF F6 */ li r3, -10
lbl_80357D58:
/* 80357D58 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80357D5C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80357D60 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80357D64 38 21 00 18 */ addi r1, r1, 0x18
/* 80357D68 7C 08 03 A6 */ mtlr r0
/* 80357D6C 4E 80 00 20 */ blr
@@ -1,66 +0,0 @@
lbl_80357EA4:
/* 80357EA4 7C 08 02 A6 */ mflr r0
/* 80357EA8 90 01 00 04 */ stw r0, 4(r1)
/* 80357EAC 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80357EB0 BF 61 00 14 */ stmw r27, 0x14(r1)
/* 80357EB4 7C 9B 23 78 */ mr r27, r4
/* 80357EB8 83 83 01 0C */ lwz r28, 0x10c(r3)
/* 80357EBC 4B FF FE 21 */ bl __CARDAccess
/* 80357EC0 3B A3 00 00 */ addi r29, r3, 0
/* 80357EC4 2C 1D FF F6 */ cmpwi r29, -10
/* 80357EC8 40 82 00 9C */ bne lbl_80357F64
/* 80357ECC 88 7B 00 34 */ lbz r3, 0x34(r27)
/* 80357ED0 88 0D 84 F2 */ lbz r0, data_80450A72(r13)
/* 80357ED4 7C 60 00 38 */ and r0, r3, r0
/* 80357ED8 54 1E 06 3E */ clrlwi r30, r0, 0x18
/* 80357EDC 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80357EE0 41 82 00 44 */ beq lbl_80357F24
/* 80357EE4 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
/* 80357EE8 3B E3 CD E0 */ addi r31, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
/* 80357EEC 38 7B 00 00 */ addi r3, r27, 0
/* 80357EF0 38 9F 00 00 */ addi r4, r31, 0
/* 80357EF4 38 A0 00 04 */ li r5, 4
/* 80357EF8 48 00 E1 95 */ bl memcmp
/* 80357EFC 2C 03 00 00 */ cmpwi r3, 0
/* 80357F00 40 82 00 24 */ bne lbl_80357F24
/* 80357F04 38 7B 00 04 */ addi r3, r27, 4
/* 80357F08 38 9F 00 04 */ addi r4, r31, 4
/* 80357F0C 38 A0 00 02 */ li r5, 2
/* 80357F10 48 00 E1 7D */ bl memcmp
/* 80357F14 2C 03 00 00 */ cmpwi r3, 0
/* 80357F18 40 82 00 0C */ bne lbl_80357F24
/* 80357F1C 3B A0 00 00 */ li r29, 0
/* 80357F20 48 00 00 44 */ b lbl_80357F64
lbl_80357F24:
/* 80357F24 57 C0 06 73 */ rlwinm. r0, r30, 0, 0x19, 0x19
/* 80357F28 41 82 00 3C */ beq lbl_80357F64
/* 80357F2C 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
/* 80357F30 38 83 CD E0 */ addi r4, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
/* 80357F34 38 7B 00 00 */ addi r3, r27, 0
/* 80357F38 38 A0 00 04 */ li r5, 4
/* 80357F3C 48 00 E1 51 */ bl memcmp
/* 80357F40 2C 03 00 00 */ cmpwi r3, 0
/* 80357F44 40 82 00 20 */ bne lbl_80357F64
/* 80357F48 38 7B 00 04 */ addi r3, r27, 4
/* 80357F4C 38 9C 00 04 */ addi r4, r28, 4
/* 80357F50 38 A0 00 02 */ li r5, 2
/* 80357F54 48 00 E1 39 */ bl memcmp
/* 80357F58 2C 03 00 00 */ cmpwi r3, 0
/* 80357F5C 40 82 00 08 */ bne lbl_80357F64
/* 80357F60 3B A0 00 00 */ li r29, 0
lbl_80357F64:
/* 80357F64 2C 1D FF F6 */ cmpwi r29, -10
/* 80357F68 40 82 00 18 */ bne lbl_80357F80
/* 80357F6C 88 1B 00 34 */ lbz r0, 0x34(r27)
/* 80357F70 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80357F74 41 82 00 0C */ beq lbl_80357F80
/* 80357F78 38 60 00 00 */ li r3, 0
/* 80357F7C 48 00 00 08 */ b lbl_80357F84
lbl_80357F80:
/* 80357F80 7F A3 EB 78 */ mr r3, r29
lbl_80357F84:
/* 80357F84 BB 61 00 14 */ lmw r27, 0x14(r1)
/* 80357F88 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80357F8C 38 21 00 28 */ addi r1, r1, 0x28
/* 80357F90 7C 08 03 A6 */ mtlr r0
/* 80357F94 4E 80 00 20 */ blr
@@ -1,85 +0,0 @@
lbl_80357D70:
/* 80357D70 7C 08 02 A6 */ mflr r0
/* 80357D74 90 01 00 04 */ stw r0, 4(r1)
/* 80357D78 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80357D7C BF 61 00 14 */ stmw r27, 0x14(r1)
/* 80357D80 7C 9B 23 78 */ mr r27, r4
/* 80357D84 88 04 00 00 */ lbz r0, 0(r4)
/* 80357D88 83 A3 01 0C */ lwz r29, 0x10c(r3)
/* 80357D8C 28 00 00 FF */ cmplwi r0, 0xff
/* 80357D90 40 82 00 0C */ bne lbl_80357D9C
/* 80357D94 3B C0 FF FC */ li r30, -4
/* 80357D98 48 00 00 50 */ b lbl_80357DE8
lbl_80357D9C:
/* 80357D9C 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
/* 80357DA0 38 03 CD E0 */ addi r0, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
/* 80357DA4 7C 1D 00 40 */ cmplw r29, r0
/* 80357DA8 41 82 00 34 */ beq lbl_80357DDC
/* 80357DAC 38 7B 00 00 */ addi r3, r27, 0
/* 80357DB0 38 9D 00 00 */ addi r4, r29, 0
/* 80357DB4 38 A0 00 04 */ li r5, 4
/* 80357DB8 48 00 E2 D5 */ bl memcmp
/* 80357DBC 2C 03 00 00 */ cmpwi r3, 0
/* 80357DC0 40 82 00 24 */ bne lbl_80357DE4
/* 80357DC4 38 7B 00 04 */ addi r3, r27, 4
/* 80357DC8 38 9D 00 04 */ addi r4, r29, 4
/* 80357DCC 38 A0 00 02 */ li r5, 2
/* 80357DD0 48 00 E2 BD */ bl memcmp
/* 80357DD4 2C 03 00 00 */ cmpwi r3, 0
/* 80357DD8 40 82 00 0C */ bne lbl_80357DE4
lbl_80357DDC:
/* 80357DDC 3B C0 00 00 */ li r30, 0
/* 80357DE0 48 00 00 08 */ b lbl_80357DE8
lbl_80357DE4:
/* 80357DE4 3B C0 FF F6 */ li r30, -10
lbl_80357DE8:
/* 80357DE8 2C 1E FF F6 */ cmpwi r30, -10
/* 80357DEC 40 82 00 A0 */ bne lbl_80357E8C
/* 80357DF0 88 7B 00 34 */ lbz r3, 0x34(r27)
/* 80357DF4 88 0D 84 F2 */ lbz r0, data_80450A72(r13)
/* 80357DF8 7C 60 00 38 */ and r0, r3, r0
/* 80357DFC 54 1C 06 3E */ clrlwi r28, r0, 0x18
/* 80357E00 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80357E04 41 82 00 44 */ beq lbl_80357E48
/* 80357E08 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
/* 80357E0C 3B E3 CD E0 */ addi r31, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
/* 80357E10 38 7B 00 00 */ addi r3, r27, 0
/* 80357E14 38 9F 00 00 */ addi r4, r31, 0
/* 80357E18 38 A0 00 04 */ li r5, 4
/* 80357E1C 48 00 E2 71 */ bl memcmp
/* 80357E20 2C 03 00 00 */ cmpwi r3, 0
/* 80357E24 40 82 00 24 */ bne lbl_80357E48
/* 80357E28 38 7B 00 04 */ addi r3, r27, 4
/* 80357E2C 38 9F 00 04 */ addi r4, r31, 4
/* 80357E30 38 A0 00 02 */ li r5, 2
/* 80357E34 48 00 E2 59 */ bl memcmp
/* 80357E38 2C 03 00 00 */ cmpwi r3, 0
/* 80357E3C 40 82 00 0C */ bne lbl_80357E48
/* 80357E40 38 60 00 00 */ li r3, 0
/* 80357E44 48 00 00 4C */ b lbl_80357E90
lbl_80357E48:
/* 80357E48 57 80 06 73 */ rlwinm. r0, r28, 0, 0x19, 0x19
/* 80357E4C 41 82 00 40 */ beq lbl_80357E8C
/* 80357E50 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
/* 80357E54 38 83 CD E0 */ addi r4, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
/* 80357E58 38 7B 00 00 */ addi r3, r27, 0
/* 80357E5C 38 A0 00 04 */ li r5, 4
/* 80357E60 48 00 E2 2D */ bl memcmp
/* 80357E64 2C 03 00 00 */ cmpwi r3, 0
/* 80357E68 40 82 00 24 */ bne lbl_80357E8C
/* 80357E6C 38 7B 00 04 */ addi r3, r27, 4
/* 80357E70 38 9D 00 04 */ addi r4, r29, 4
/* 80357E74 38 A0 00 02 */ li r5, 2
/* 80357E78 48 00 E2 15 */ bl memcmp
/* 80357E7C 2C 03 00 00 */ cmpwi r3, 0
/* 80357E80 40 82 00 0C */ bne lbl_80357E8C
/* 80357E84 38 60 00 00 */ li r3, 0
/* 80357E88 48 00 00 08 */ b lbl_80357E90
lbl_80357E8C:
/* 80357E8C 7F C3 F3 78 */ mr r3, r30
lbl_80357E90:
/* 80357E90 BB 61 00 14 */ lmw r27, 0x14(r1)
/* 80357E94 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80357E98 38 21 00 28 */ addi r1, r1, 0x28
/* 80357E9C 7C 08 03 A6 */ mtlr r0
/* 80357EA0 4E 80 00 20 */ blr
@@ -1,62 +0,0 @@
lbl_803552C4:
/* 803552C4 7C 08 02 A6 */ mflr r0
/* 803552C8 90 01 00 04 */ stw r0, 4(r1)
/* 803552CC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803552D0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803552D4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803552D8 7C 9E 23 79 */ or. r30, r4, r4
/* 803552DC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803552E0 3B A3 00 00 */ addi r29, r3, 0
/* 803552E4 1C BD 01 10 */ mulli r5, r29, 0x110
/* 803552E8 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 803552EC 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 803552F0 7F E0 2A 14 */ add r31, r0, r5
/* 803552F4 41 80 00 5C */ blt lbl_80355350
/* 803552F8 80 7F 00 B8 */ lwz r3, 0xb8(r31)
/* 803552FC A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 80355300 7C 03 02 14 */ add r0, r3, r0
/* 80355304 90 1F 00 B8 */ stw r0, 0xb8(r31)
/* 80355308 80 7F 00 B0 */ lwz r3, 0xb0(r31)
/* 8035530C A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 80355310 7C 03 02 14 */ add r0, r3, r0
/* 80355314 90 1F 00 B0 */ stw r0, 0xb0(r31)
/* 80355318 80 7F 00 B4 */ lwz r3, 0xb4(r31)
/* 8035531C A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 80355320 7C 03 02 14 */ add r0, r3, r0
/* 80355324 90 1F 00 B4 */ stw r0, 0xb4(r31)
/* 80355328 80 7F 00 AC */ lwz r3, 0xac(r31)
/* 8035532C 34 03 FF FF */ addic. r0, r3, -1
/* 80355330 90 1F 00 AC */ stw r0, 0xac(r31)
/* 80355334 40 81 00 1C */ ble lbl_80355350
/* 80355338 3C 60 80 35 */ lis r3, BlockWriteCallback@ha /* 0x803552C4@ha */
/* 8035533C 38 83 52 C4 */ addi r4, r3, BlockWriteCallback@l /* 0x803552C4@l */
/* 80355340 38 7D 00 00 */ addi r3, r29, 0
/* 80355344 4B FF E5 39 */ bl __CARDWritePage
/* 80355348 7C 7E 1B 79 */ or. r30, r3, r3
/* 8035534C 40 80 00 44 */ bge lbl_80355390
lbl_80355350:
/* 80355350 80 1F 00 D0 */ lwz r0, 0xd0(r31)
/* 80355354 28 00 00 00 */ cmplwi r0, 0
/* 80355358 40 82 00 10 */ bne lbl_80355368
/* 8035535C 38 7F 00 00 */ addi r3, r31, 0
/* 80355360 38 9E 00 00 */ addi r4, r30, 0
/* 80355364 4B FF E9 09 */ bl __CARDPutControlBlock
lbl_80355368:
/* 80355368 80 1F 00 D4 */ lwz r0, 0xd4(r31)
/* 8035536C 28 00 00 00 */ cmplwi r0, 0
/* 80355370 7C 0C 03 78 */ mr r12, r0
/* 80355374 41 82 00 1C */ beq lbl_80355390
/* 80355378 38 00 00 00 */ li r0, 0
/* 8035537C 7D 88 03 A6 */ mtlr r12
/* 80355380 90 1F 00 D4 */ stw r0, 0xd4(r31)
/* 80355384 38 7D 00 00 */ addi r3, r29, 0
/* 80355388 38 9E 00 00 */ addi r4, r30, 0
/* 8035538C 4E 80 00 21 */ blrl
lbl_80355390:
/* 80355390 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80355394 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80355398 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8035539C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803553A0 38 21 00 20 */ addi r1, r1, 0x20
/* 803553A4 7C 08 03 A6 */ mtlr r0
/* 803553A8 4E 80 00 20 */ blr
-91
View File
@@ -1,91 +0,0 @@
lbl_80358788:
/* 80358788 7C 08 02 A6 */ mflr r0
/* 8035878C 90 01 00 04 */ stw r0, 4(r1)
/* 80358790 54 C0 05 FF */ clrlwi. r0, r6, 0x17
/* 80358794 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80358798 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8035879C 3B E5 00 00 */ addi r31, r5, 0
/* 803587A0 93 C1 00 28 */ stw r30, 0x28(r1)
/* 803587A4 3B C4 00 00 */ addi r30, r4, 0
/* 803587A8 93 A1 00 24 */ stw r29, 0x24(r1)
/* 803587AC 3B A3 00 00 */ addi r29, r3, 0
/* 803587B0 93 81 00 20 */ stw r28, 0x20(r1)
/* 803587B4 3B 87 00 00 */ addi r28, r7, 0
/* 803587B8 40 82 00 0C */ bne lbl_803587C4
/* 803587BC 57 E0 05 FF */ clrlwi. r0, r31, 0x17
/* 803587C0 41 82 00 0C */ beq lbl_803587CC
lbl_803587C4:
/* 803587C4 38 60 FF 80 */ li r3, -128
/* 803587C8 48 00 00 E4 */ b lbl_803588AC
lbl_803587CC:
/* 803587CC 38 7D 00 00 */ addi r3, r29, 0
/* 803587D0 38 9F 00 00 */ addi r4, r31, 0
/* 803587D4 38 A6 00 00 */ addi r5, r6, 0
/* 803587D8 38 C1 00 1C */ addi r6, r1, 0x1c
/* 803587DC 4B FF FC C5 */ bl __CARDSeek
/* 803587E0 2C 03 00 00 */ cmpwi r3, 0
/* 803587E4 40 80 00 08 */ bge lbl_803587EC
/* 803587E8 48 00 00 C4 */ b lbl_803588AC
lbl_803587EC:
/* 803587EC 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 803587F0 4B FF CF 8D */ bl __CARDGetDirBlock
/* 803587F4 80 1D 00 04 */ lwz r0, 4(r29)
/* 803587F8 54 00 30 32 */ slwi r0, r0, 6
/* 803587FC 7C 83 02 14 */ add r4, r3, r0
/* 80358800 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80358804 4B FF F6 A1 */ bl __CARDIsReadable
/* 80358808 7C 64 1B 79 */ or. r4, r3, r3
/* 8035880C 40 80 00 10 */ bge lbl_8035881C
/* 80358810 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80358814 4B FF B4 59 */ bl __CARDPutControlBlock
/* 80358818 48 00 00 94 */ b lbl_803588AC
lbl_8035881C:
/* 8035881C 38 7E 00 00 */ addi r3, r30, 0
/* 80358820 38 9F 00 00 */ addi r4, r31, 0
/* 80358824 4B FE 2D 5D */ bl DCInvalidateRange
/* 80358828 28 1C 00 00 */ cmplwi r28, 0
/* 8035882C 41 82 00 0C */ beq lbl_80358838
/* 80358830 7F 80 E3 78 */ mr r0, r28
/* 80358834 48 00 00 0C */ b lbl_80358840
lbl_80358838:
/* 80358838 3C 60 80 35 */ lis r3, __CARDDefaultApiCallback@ha /* 0x80352A30@ha */
/* 8035883C 38 03 2A 30 */ addi r0, r3, __CARDDefaultApiCallback@l /* 0x80352A30@l */
lbl_80358840:
/* 80358840 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80358844 90 03 00 D0 */ stw r0, 0xd0(r3)
/* 80358848 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 8035884C 80 9D 00 08 */ lwz r4, 8(r29)
/* 80358850 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 80358854 38 05 FF FF */ addi r0, r5, -1
/* 80358858 7C 88 00 38 */ and r8, r4, r0
/* 8035885C 7C 68 28 50 */ subf r3, r8, r5
/* 80358860 7C 1F 18 00 */ cmpw r31, r3
/* 80358864 40 80 00 08 */ bge lbl_8035886C
/* 80358868 7F E3 FB 78 */ mr r3, r31
lbl_8035886C:
/* 8035886C A0 1D 00 10 */ lhz r0, 0x10(r29)
/* 80358870 3C 80 80 36 */ lis r4, ReadCallback@ha /* 0x80358658@ha */
/* 80358874 3B E3 00 00 */ addi r31, r3, 0
/* 80358878 80 7D 00 00 */ lwz r3, 0(r29)
/* 8035887C 7C 05 01 D6 */ mullw r0, r5, r0
/* 80358880 38 E4 86 58 */ addi r7, r4, ReadCallback@l /* 0x80358658@l */
/* 80358884 38 BF 00 00 */ addi r5, r31, 0
/* 80358888 38 DE 00 00 */ addi r6, r30, 0
/* 8035888C 7C 88 02 14 */ add r4, r8, r0
/* 80358890 4B FF C9 D1 */ bl __CARDRead
/* 80358894 7C 7D 1B 79 */ or. r29, r3, r3
/* 80358898 40 80 00 10 */ bge lbl_803588A8
/* 8035889C 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 803588A0 7F A4 EB 78 */ mr r4, r29
/* 803588A4 4B FF B3 C9 */ bl __CARDPutControlBlock
lbl_803588A8:
/* 803588A8 7F A3 EB 78 */ mr r3, r29
lbl_803588AC:
/* 803588AC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803588B0 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803588B4 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 803588B8 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 803588BC 83 81 00 20 */ lwz r28, 0x20(r1)
/* 803588C0 38 21 00 30 */ addi r1, r1, 0x30
/* 803588C4 7C 08 03 A6 */ mtlr r0
/* 803588C8 4E 80 00 20 */ blr
-75
View File
@@ -1,75 +0,0 @@
lbl_80358E88:
/* 80358E88 7C 08 02 A6 */ mflr r0
/* 80358E8C 90 01 00 04 */ stw r0, 4(r1)
/* 80358E90 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80358E94 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80358E98 3B E5 00 00 */ addi r31, r5, 0
/* 80358E9C 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80358EA0 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80358EA4 7C 9D 23 79 */ or. r29, r4, r4
/* 80358EA8 41 80 00 0C */ blt lbl_80358EB4
/* 80358EAC 2C 1D 00 7F */ cmpwi r29, 0x7f
/* 80358EB0 41 80 00 0C */ blt lbl_80358EBC
lbl_80358EB4:
/* 80358EB4 38 60 FF 80 */ li r3, -128
/* 80358EB8 48 00 00 C8 */ b lbl_80358F80
lbl_80358EBC:
/* 80358EBC 38 81 00 14 */ addi r4, r1, 0x14
/* 80358EC0 4B FF AC F5 */ bl __CARDGetControlBlock
/* 80358EC4 2C 03 00 00 */ cmpwi r3, 0
/* 80358EC8 40 80 00 08 */ bge lbl_80358ED0
/* 80358ECC 48 00 00 B4 */ b lbl_80358F80
lbl_80358ED0:
/* 80358ED0 80 61 00 14 */ lwz r3, 0x14(r1)
/* 80358ED4 4B FF C8 A9 */ bl __CARDGetDirBlock
/* 80358ED8 57 A0 30 32 */ slwi r0, r29, 6
/* 80358EDC 7F A3 02 14 */ add r29, r3, r0
/* 80358EE0 80 61 00 14 */ lwz r3, 0x14(r1)
/* 80358EE4 7F A4 EB 78 */ mr r4, r29
/* 80358EE8 4B FF EF BD */ bl __CARDIsReadable
/* 80358EEC 7C 7E 1B 79 */ or. r30, r3, r3
/* 80358EF0 41 80 00 84 */ blt lbl_80358F74
/* 80358EF4 38 9D 00 00 */ addi r4, r29, 0
/* 80358EF8 38 7F 00 28 */ addi r3, r31, 0x28
/* 80358EFC 38 A0 00 04 */ li r5, 4
/* 80358F00 4B CA A6 41 */ bl memcpy
/* 80358F04 38 7F 00 2C */ addi r3, r31, 0x2c
/* 80358F08 38 9D 00 04 */ addi r4, r29, 4
/* 80358F0C 38 A0 00 02 */ li r5, 2
/* 80358F10 4B CA A6 31 */ bl memcpy
/* 80358F14 80 A1 00 14 */ lwz r5, 0x14(r1)
/* 80358F18 7F E3 FB 78 */ mr r3, r31
/* 80358F1C A0 DD 00 38 */ lhz r6, 0x38(r29)
/* 80358F20 38 9D 00 08 */ addi r4, r29, 8
/* 80358F24 80 05 00 0C */ lwz r0, 0xc(r5)
/* 80358F28 38 A0 00 20 */ li r5, 0x20
/* 80358F2C 7C 06 01 D6 */ mullw r0, r6, r0
/* 80358F30 90 1F 00 20 */ stw r0, 0x20(r31)
/* 80358F34 4B CA A6 0D */ bl memcpy
/* 80358F38 80 1D 00 28 */ lwz r0, 0x28(r29)
/* 80358F3C 38 7D 00 00 */ addi r3, r29, 0
/* 80358F40 38 9F 00 00 */ addi r4, r31, 0
/* 80358F44 90 1F 00 24 */ stw r0, 0x24(r31)
/* 80358F48 88 1D 00 07 */ lbz r0, 7(r29)
/* 80358F4C 98 1F 00 2E */ stb r0, 0x2e(r31)
/* 80358F50 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 80358F54 90 1F 00 30 */ stw r0, 0x30(r31)
/* 80358F58 A0 1D 00 30 */ lhz r0, 0x30(r29)
/* 80358F5C B0 1F 00 34 */ sth r0, 0x34(r31)
/* 80358F60 A0 1D 00 32 */ lhz r0, 0x32(r29)
/* 80358F64 B0 1F 00 36 */ sth r0, 0x36(r31)
/* 80358F68 80 1D 00 3C */ lwz r0, 0x3c(r29)
/* 80358F6C 90 1F 00 38 */ stw r0, 0x38(r31)
/* 80358F70 4B FF FD 21 */ bl UpdateIconOffsets
lbl_80358F74:
/* 80358F74 80 61 00 14 */ lwz r3, 0x14(r1)
/* 80358F78 7F C4 F3 78 */ mr r4, r30
/* 80358F7C 4B FF AC F1 */ bl __CARDPutControlBlock
lbl_80358F80:
/* 80358F80 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80358F84 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80358F88 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80358F8C 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80358F90 38 21 00 28 */ addi r1, r1, 0x28
/* 80358F94 7C 08 03 A6 */ mtlr r0
/* 80358F98 4E 80 00 20 */ blr
@@ -1,102 +0,0 @@
lbl_80358F9C:
/* 80358F9C 7C 08 02 A6 */ mflr r0
/* 80358FA0 90 01 00 04 */ stw r0, 4(r1)
/* 80358FA4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80358FA8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80358FAC 7C 9F 23 79 */ or. r31, r4, r4
/* 80358FB0 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80358FB4 3B C6 00 00 */ addi r30, r6, 0
/* 80358FB8 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80358FBC 3B A5 00 00 */ addi r29, r5, 0
/* 80358FC0 93 81 00 20 */ stw r28, 0x20(r1)
/* 80358FC4 3B 83 00 00 */ addi r28, r3, 0
/* 80358FC8 41 80 00 40 */ blt lbl_80359008
/* 80358FCC 2C 1F 00 7F */ cmpwi r31, 0x7f
/* 80358FD0 40 80 00 38 */ bge lbl_80359008
/* 80358FD4 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 80358FD8 3C 03 00 01 */ addis r0, r3, 1
/* 80358FDC 28 00 FF FF */ cmplwi r0, 0xffff
/* 80358FE0 41 82 00 0C */ beq lbl_80358FEC
/* 80358FE4 28 03 02 00 */ cmplwi r3, 0x200
/* 80358FE8 40 80 00 20 */ bge lbl_80359008
lbl_80358FEC:
/* 80358FEC 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 80358FF0 3C 03 00 01 */ addis r0, r3, 1
/* 80358FF4 28 00 FF FF */ cmplwi r0, 0xffff
/* 80358FF8 41 82 00 18 */ beq lbl_80359010
/* 80358FFC 54 60 04 FE */ clrlwi r0, r3, 0x13
/* 80359000 28 00 1F C0 */ cmplwi r0, 0x1fc0
/* 80359004 40 81 00 0C */ ble lbl_80359010
lbl_80359008:
/* 80359008 38 60 FF 80 */ li r3, -128
/* 8035900C 48 00 00 E4 */ b lbl_803590F0
lbl_80359010:
/* 80359010 38 7C 00 00 */ addi r3, r28, 0
/* 80359014 38 81 00 18 */ addi r4, r1, 0x18
/* 80359018 4B FF AB 9D */ bl __CARDGetControlBlock
/* 8035901C 2C 03 00 00 */ cmpwi r3, 0
/* 80359020 40 80 00 08 */ bge lbl_80359028
/* 80359024 48 00 00 CC */ b lbl_803590F0
lbl_80359028:
/* 80359028 80 61 00 18 */ lwz r3, 0x18(r1)
/* 8035902C 4B FF C7 51 */ bl __CARDGetDirBlock
/* 80359030 57 E0 30 32 */ slwi r0, r31, 6
/* 80359034 7F E3 02 14 */ add r31, r3, r0
/* 80359038 80 61 00 18 */ lwz r3, 0x18(r1)
/* 8035903C 7F E4 FB 78 */ mr r4, r31
/* 80359040 4B FF ED 31 */ bl __CARDIsWritable
/* 80359044 7C 64 1B 79 */ or. r4, r3, r3
/* 80359048 40 80 00 10 */ bge lbl_80359058
/* 8035904C 80 61 00 18 */ lwz r3, 0x18(r1)
/* 80359050 4B FF AC 1D */ bl __CARDPutControlBlock
/* 80359054 48 00 00 9C */ b lbl_803590F0
lbl_80359058:
/* 80359058 88 1D 00 2E */ lbz r0, 0x2e(r29)
/* 8035905C 38 7F 00 00 */ addi r3, r31, 0
/* 80359060 38 9D 00 00 */ addi r4, r29, 0
/* 80359064 98 1F 00 07 */ stb r0, 7(r31)
/* 80359068 80 1D 00 30 */ lwz r0, 0x30(r29)
/* 8035906C 90 1F 00 2C */ stw r0, 0x2c(r31)
/* 80359070 A0 1D 00 34 */ lhz r0, 0x34(r29)
/* 80359074 B0 1F 00 30 */ sth r0, 0x30(r31)
/* 80359078 A0 1D 00 36 */ lhz r0, 0x36(r29)
/* 8035907C B0 1F 00 32 */ sth r0, 0x32(r31)
/* 80359080 80 1D 00 38 */ lwz r0, 0x38(r29)
/* 80359084 90 1F 00 3C */ stw r0, 0x3c(r31)
/* 80359088 4B FF FC 09 */ bl UpdateIconOffsets
/* 8035908C 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 80359090 3C 03 00 01 */ addis r0, r3, 1
/* 80359094 28 00 FF FF */ cmplwi r0, 0xffff
/* 80359098 40 82 00 14 */ bne lbl_803590AC
/* 8035909C A0 1F 00 32 */ lhz r0, 0x32(r31)
/* 803590A0 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 803590A4 60 00 00 01 */ ori r0, r0, 1
/* 803590A8 B0 1F 00 32 */ sth r0, 0x32(r31)
lbl_803590AC:
/* 803590AC 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
/* 803590B0 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
/* 803590B4 54 1D F0 BE */ srwi r29, r0, 2
/* 803590B8 4B FE 96 45 */ bl OSGetTime
/* 803590BC 38 DD 00 00 */ addi r6, r29, 0
/* 803590C0 38 A0 00 00 */ li r5, 0
/* 803590C4 48 00 92 61 */ bl __div2i
/* 803590C8 90 9F 00 28 */ stw r4, 0x28(r31)
/* 803590CC 38 7C 00 00 */ addi r3, r28, 0
/* 803590D0 38 9E 00 00 */ addi r4, r30, 0
/* 803590D4 4B FF C8 49 */ bl __CARDUpdateDir
/* 803590D8 7C 7C 1B 79 */ or. r28, r3, r3
/* 803590DC 40 80 00 10 */ bge lbl_803590EC
/* 803590E0 80 61 00 18 */ lwz r3, 0x18(r1)
/* 803590E4 7F 84 E3 78 */ mr r4, r28
/* 803590E8 4B FF AB 85 */ bl __CARDPutControlBlock
lbl_803590EC:
/* 803590EC 7F 83 E3 78 */ mr r3, r28
lbl_803590F0:
/* 803590F0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803590F4 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803590F8 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 803590FC 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80359100 83 81 00 20 */ lwz r28, 0x20(r1)
/* 80359104 38 21 00 30 */ addi r1, r1, 0x30
/* 80359108 7C 08 03 A6 */ mtlr r0
/* 8035910C 4E 80 00 20 */ blr
-212
View File
@@ -1,212 +0,0 @@
lbl_80354E60:
/* 80354E60 7C 08 02 A6 */ mflr r0
/* 80354E64 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80354E68 90 01 00 04 */ stw r0, 4(r1)
/* 80354E6C 38 84 CB C0 */ addi r4, r4, __CARDBlock@l /* 0x8044CBC0@l */
/* 80354E70 38 04 00 30 */ addi r0, r4, 0x30
/* 80354E74 94 21 FF 78 */ stwu r1, -0x88(r1)
/* 80354E78 7C 00 18 40 */ cmplw r0, r3
/* 80354E7C 93 E1 00 84 */ stw r31, 0x84(r1)
/* 80354E80 3B E0 00 00 */ li r31, 0
/* 80354E84 93 C1 00 80 */ stw r30, 0x80(r1)
/* 80354E88 93 A1 00 7C */ stw r29, 0x7c(r1)
/* 80354E8C 3B A4 00 00 */ addi r29, r4, 0
/* 80354E90 93 81 00 78 */ stw r28, 0x78(r1)
/* 80354E94 41 82 00 20 */ beq lbl_80354EB4
/* 80354E98 38 04 01 40 */ addi r0, r4, 0x140
/* 80354E9C 7C 00 18 40 */ cmplw r0, r3
/* 80354EA0 38 84 01 10 */ addi r4, r4, 0x110
/* 80354EA4 3B A4 00 00 */ addi r29, r4, 0
/* 80354EA8 3B E0 00 01 */ li r31, 1
/* 80354EAC 41 82 00 08 */ beq lbl_80354EB4
/* 80354EB0 3B E0 00 02 */ li r31, 2
lbl_80354EB4:
/* 80354EB4 80 7D 00 80 */ lwz r3, 0x80(r29)
/* 80354EB8 38 03 00 2F */ addi r0, r3, 0x2f
/* 80354EBC 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a
/* 80354EC0 83 C3 00 20 */ lwz r30, 0x20(r3)
/* 80354EC4 4B FF F3 11 */ bl DummyLen
/* 80354EC8 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 80354ECC 3B 83 00 00 */ addi r28, r3, 0
/* 80354ED0 38 DC 00 00 */ addi r6, r28, 0
/* 80354ED4 7F C0 02 78 */ xor r0, r30, r0
/* 80354ED8 54 04 00 1E */ rlwinm r4, r0, 0, 0, 0xf
/* 80354EDC 38 7F 00 00 */ addi r3, r31, 0
/* 80354EE0 38 A1 00 34 */ addi r5, r1, 0x34
/* 80354EE4 38 E0 00 01 */ li r7, 1
/* 80354EE8 4B FF F1 A9 */ bl ReadArrayUnlock
/* 80354EEC 2C 03 00 00 */ cmpwi r3, 0
/* 80354EF0 40 80 00 1C */ bge lbl_80354F0C
/* 80354EF4 7F E3 FB 78 */ mr r3, r31
/* 80354EF8 4B FE F2 25 */ bl EXIUnlock
/* 80354EFC 38 7F 00 00 */ addi r3, r31, 0
/* 80354F00 38 80 FF FD */ li r4, -3
/* 80354F04 48 00 21 19 */ bl __CARDMountCallback
/* 80354F08 48 00 02 5C */ b lbl_80355164
lbl_80354F0C:
/* 80354F0C 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 80354F10 38 60 00 00 */ li r3, 0
/* 80354F14 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 80354F18 7C 9C 22 14 */ add r4, r28, r4
/* 80354F1C 38 84 00 04 */ addi r4, r4, 4
/* 80354F20 54 84 18 38 */ slwi r4, r4, 3
/* 80354F24 38 84 00 01 */ addi r4, r4, 1
/* 80354F28 28 04 00 00 */ cmplwi r4, 0
/* 80354F2C 40 81 01 68 */ ble lbl_80355094
/* 80354F30 28 04 00 08 */ cmplwi r4, 8
/* 80354F34 38 C4 FF F8 */ addi r6, r4, -8
/* 80354F38 40 81 01 24 */ ble lbl_8035505C
/* 80354F3C 38 A6 00 07 */ addi r5, r6, 7
/* 80354F40 54 A5 E8 FE */ srwi r5, r5, 3
/* 80354F44 28 06 00 00 */ cmplwi r6, 0
/* 80354F48 7C A9 03 A6 */ mtctr r5
/* 80354F4C 40 81 01 10 */ ble lbl_8035505C
lbl_80354F50:
/* 80354F50 54 05 38 30 */ slwi r5, r0, 7
/* 80354F54 54 06 78 20 */ slwi r6, r0, 0xf
/* 80354F58 7C 05 2A 78 */ xor r5, r0, r5
/* 80354F5C 7C C5 2A 78 */ xor r5, r6, r5
/* 80354F60 54 07 B8 10 */ slwi r7, r0, 0x17
/* 80354F64 7C E5 2A 38 */ eqv r5, r7, r5
/* 80354F68 54 06 08 3C */ slwi r6, r0, 1
/* 80354F6C 54 A0 17 BC */ rlwinm r0, r5, 2, 0x1e, 0x1e
/* 80354F70 7C C7 03 78 */ or r7, r6, r0
/* 80354F74 54 E0 38 30 */ slwi r0, r7, 7
/* 80354F78 54 E5 78 20 */ slwi r5, r7, 0xf
/* 80354F7C 7C E0 02 78 */ xor r0, r7, r0
/* 80354F80 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354F84 7C A0 02 78 */ xor r0, r5, r0
/* 80354F88 7C C0 02 38 */ eqv r0, r6, r0
/* 80354F8C 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e
/* 80354F90 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 80354F94 55 00 38 30 */ slwi r0, r8, 7
/* 80354F98 55 05 78 20 */ slwi r5, r8, 0xf
/* 80354F9C 7D 00 02 78 */ xor r0, r8, r0
/* 80354FA0 55 06 B8 10 */ slwi r6, r8, 0x17
/* 80354FA4 7C A0 02 78 */ xor r0, r5, r0
/* 80354FA8 7C C0 02 38 */ eqv r0, r6, r0
/* 80354FAC 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e
/* 80354FB0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 80354FB4 54 E0 38 30 */ slwi r0, r7, 7
/* 80354FB8 54 E5 78 20 */ slwi r5, r7, 0xf
/* 80354FBC 7C E0 02 78 */ xor r0, r7, r0
/* 80354FC0 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354FC4 7C A0 02 78 */ xor r0, r5, r0
/* 80354FC8 7C C0 02 38 */ eqv r0, r6, r0
/* 80354FCC 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e
/* 80354FD0 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 80354FD4 55 00 38 30 */ slwi r0, r8, 7
/* 80354FD8 55 05 78 20 */ slwi r5, r8, 0xf
/* 80354FDC 7D 00 02 78 */ xor r0, r8, r0
/* 80354FE0 55 06 B8 10 */ slwi r6, r8, 0x17
/* 80354FE4 7C A0 02 78 */ xor r0, r5, r0
/* 80354FE8 7C C0 02 38 */ eqv r0, r6, r0
/* 80354FEC 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e
/* 80354FF0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 80354FF4 54 E0 38 30 */ slwi r0, r7, 7
/* 80354FF8 54 E5 78 20 */ slwi r5, r7, 0xf
/* 80354FFC 7C E0 02 78 */ xor r0, r7, r0
/* 80355000 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80355004 7C A0 02 78 */ xor r0, r5, r0
/* 80355008 7C C0 02 38 */ eqv r0, r6, r0
/* 8035500C 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e
/* 80355010 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 80355014 55 00 38 30 */ slwi r0, r8, 7
/* 80355018 55 05 78 20 */ slwi r5, r8, 0xf
/* 8035501C 7D 00 02 78 */ xor r0, r8, r0
/* 80355020 55 06 B8 10 */ slwi r6, r8, 0x17
/* 80355024 7C A0 02 78 */ xor r0, r5, r0
/* 80355028 7C C0 02 38 */ eqv r0, r6, r0
/* 8035502C 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e
/* 80355030 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 80355034 54 E0 38 30 */ slwi r0, r7, 7
/* 80355038 54 E5 78 20 */ slwi r5, r7, 0xf
/* 8035503C 7C E0 02 78 */ xor r0, r7, r0
/* 80355040 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80355044 7C A0 02 78 */ xor r0, r5, r0
/* 80355048 7C C0 02 38 */ eqv r0, r6, r0
/* 8035504C 54 00 17 BC */ rlwinm r0, r0, 2, 0x1e, 0x1e
/* 80355050 50 E0 08 3A */ rlwimi r0, r7, 1, 0, 0x1d
/* 80355054 38 63 00 08 */ addi r3, r3, 8
/* 80355058 42 00 FE F8 */ bdnz lbl_80354F50
lbl_8035505C:
/* 8035505C 7C A3 20 50 */ subf r5, r3, r4
/* 80355060 7C 03 20 40 */ cmplw r3, r4
/* 80355064 7C A9 03 A6 */ mtctr r5
/* 80355068 40 80 00 2C */ bge lbl_80355094
lbl_8035506C:
/* 8035506C 54 03 38 30 */ slwi r3, r0, 7
/* 80355070 54 04 78 20 */ slwi r4, r0, 0xf
/* 80355074 7C 03 1A 78 */ xor r3, r0, r3
/* 80355078 54 05 B8 10 */ slwi r5, r0, 0x17
/* 8035507C 7C 83 1A 78 */ xor r3, r4, r3
/* 80355080 7C A3 1A 38 */ eqv r3, r5, r3
/* 80355084 54 04 08 3C */ slwi r4, r0, 1
/* 80355088 54 60 17 BC */ rlwinm r0, r3, 2, 0x1e, 0x1e
/* 8035508C 7C 80 03 78 */ or r0, r4, r0
/* 80355090 42 00 FF DC */ bdnz lbl_8035506C
lbl_80355094:
/* 80355094 54 03 38 30 */ slwi r3, r0, 7
/* 80355098 54 04 78 20 */ slwi r4, r0, 0xf
/* 8035509C 7C 03 1A 78 */ xor r3, r0, r3
/* 803550A0 54 05 B8 10 */ slwi r5, r0, 0x17
/* 803550A4 7C 83 1A 78 */ xor r3, r4, r3
/* 803550A8 7C A3 1A 38 */ eqv r3, r5, r3
/* 803550AC 54 63 0F FE */ srwi r3, r3, 0x1f
/* 803550B0 7C 00 1B 78 */ or r0, r0, r3
/* 803550B4 90 1D 00 2C */ stw r0, 0x2c(r29)
/* 803550B8 4B FF F1 1D */ bl DummyLen
/* 803550BC 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 803550C0 57 C4 80 1E */ slwi r4, r30, 0x10
/* 803550C4 38 C3 00 00 */ addi r6, r3, 0
/* 803550C8 7C 80 02 78 */ xor r0, r4, r0
/* 803550CC 54 04 00 1E */ rlwinm r4, r0, 0, 0, 0xf
/* 803550D0 38 7F 00 00 */ addi r3, r31, 0
/* 803550D4 38 A1 00 34 */ addi r5, r1, 0x34
/* 803550D8 38 E0 00 01 */ li r7, 1
/* 803550DC 4B FF EF B5 */ bl ReadArrayUnlock
/* 803550E0 2C 03 00 00 */ cmpwi r3, 0
/* 803550E4 40 80 00 1C */ bge lbl_80355100
/* 803550E8 7F E3 FB 78 */ mr r3, r31
/* 803550EC 4B FE F0 31 */ bl EXIUnlock
/* 803550F0 38 7F 00 00 */ addi r3, r31, 0
/* 803550F4 38 80 FF FD */ li r4, -3
/* 803550F8 48 00 1F 25 */ bl __CARDMountCallback
/* 803550FC 48 00 00 68 */ b lbl_80355164
lbl_80355100:
/* 80355100 38 7F 00 00 */ addi r3, r31, 0
/* 80355104 38 81 00 30 */ addi r4, r1, 0x30
/* 80355108 4B FF DD 3D */ bl __CARDReadStatus
/* 8035510C 3B 83 00 00 */ addi r28, r3, 0
/* 80355110 38 7F 00 00 */ addi r3, r31, 0
/* 80355114 4B FE E4 59 */ bl EXIProbe
/* 80355118 2C 03 00 00 */ cmpwi r3, 0
/* 8035511C 40 82 00 1C */ bne lbl_80355138
/* 80355120 7F E3 FB 78 */ mr r3, r31
/* 80355124 4B FE EF F9 */ bl EXIUnlock
/* 80355128 38 7F 00 00 */ addi r3, r31, 0
/* 8035512C 38 80 FF FD */ li r4, -3
/* 80355130 48 00 1E ED */ bl __CARDMountCallback
/* 80355134 48 00 00 30 */ b lbl_80355164
lbl_80355138:
/* 80355138 2C 1C 00 00 */ cmpwi r28, 0
/* 8035513C 40 82 00 1C */ bne lbl_80355158
/* 80355140 88 01 00 30 */ lbz r0, 0x30(r1)
/* 80355144 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 80355148 40 82 00 10 */ bne lbl_80355158
/* 8035514C 7F E3 FB 78 */ mr r3, r31
/* 80355150 4B FE EF CD */ bl EXIUnlock
/* 80355154 3B 80 FF FB */ li r28, -5
lbl_80355158:
/* 80355158 38 7F 00 00 */ addi r3, r31, 0
/* 8035515C 38 9C 00 00 */ addi r4, r28, 0
/* 80355160 48 00 1E BD */ bl __CARDMountCallback
lbl_80355164:
/* 80355164 80 01 00 8C */ lwz r0, 0x8c(r1)
/* 80355168 83 E1 00 84 */ lwz r31, 0x84(r1)
/* 8035516C 83 C1 00 80 */ lwz r30, 0x80(r1)
/* 80355170 83 A1 00 7C */ lwz r29, 0x7c(r1)
/* 80355174 83 81 00 78 */ lwz r28, 0x78(r1)
/* 80355178 38 21 00 88 */ addi r1, r1, 0x88
/* 8035517C 7C 08 03 A6 */ mtlr r0
/* 80355180 4E 80 00 20 */ blr
-55
View File
@@ -1,55 +0,0 @@
lbl_803541D4:
/* 803541D4 7C 08 02 A6 */ mflr r0
/* 803541D8 90 01 00 04 */ stw r0, 4(r1)
/* 803541DC 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803541E0 93 E1 00 24 */ stw r31, 0x24(r1)
/* 803541E4 93 C1 00 20 */ stw r30, 0x20(r1)
/* 803541E8 3B C0 00 01 */ li r30, 1
/* 803541EC 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 803541F0 3B A0 00 00 */ li r29, 0
/* 803541F4 4B FE E5 21 */ bl OSGetTick
/* 803541F8 90 6D 84 E8 */ stw r3, next(r13)
/* 803541FC 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */
/* 80354200 3B E3 4E 6D */ addi r31, r3, 0x4E6D /* 0x41C64E6D@l */
/* 80354204 80 0D 84 E8 */ lwz r0, next(r13)
/* 80354208 7C 60 F9 D6 */ mullw r3, r0, r31
/* 8035420C 38 03 30 39 */ addi r0, r3, 0x3039
/* 80354210 90 0D 84 E8 */ stw r0, next(r13)
/* 80354214 80 0D 84 E8 */ lwz r0, next(r13)
/* 80354218 54 03 86 FE */ rlwinm r3, r0, 0x10, 0x1b, 0x1f
/* 8035421C 38 63 00 01 */ addi r3, r3, 1
/* 80354220 48 00 00 40 */ b lbl_80354260
lbl_80354224:
/* 80354224 4B FE E4 F1 */ bl OSGetTick
/* 80354228 7C 60 F0 30 */ slw r0, r3, r30
/* 8035422C 3B DE 00 01 */ addi r30, r30, 1
/* 80354230 28 1E 00 10 */ cmplwi r30, 0x10
/* 80354234 40 81 00 08 */ ble lbl_8035423C
/* 80354238 3B C0 00 01 */ li r30, 1
lbl_8035423C:
/* 8035423C 90 0D 84 E8 */ stw r0, next(r13)
/* 80354240 3B BD 00 01 */ addi r29, r29, 1
/* 80354244 80 0D 84 E8 */ lwz r0, next(r13)
/* 80354248 7C 60 F9 D6 */ mullw r3, r0, r31
/* 8035424C 38 03 30 39 */ addi r0, r3, 0x3039
/* 80354250 90 0D 84 E8 */ stw r0, next(r13)
/* 80354254 80 0D 84 E8 */ lwz r0, next(r13)
/* 80354258 54 03 86 FE */ rlwinm r3, r0, 0x10, 0x1b, 0x1f
/* 8035425C 38 63 00 01 */ addi r3, r3, 1
lbl_80354260:
/* 80354260 2C 03 00 04 */ cmpwi r3, 4
/* 80354264 40 80 00 0C */ bge lbl_80354270
/* 80354268 28 1D 00 0A */ cmplwi r29, 0xa
/* 8035426C 41 80 FF B8 */ blt lbl_80354224
lbl_80354270:
/* 80354270 2C 03 00 04 */ cmpwi r3, 4
/* 80354274 40 80 00 08 */ bge lbl_8035427C
/* 80354278 38 60 00 04 */ li r3, 4
lbl_8035427C:
/* 8035427C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80354280 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80354284 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80354288 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8035428C 38 21 00 28 */ addi r1, r1, 0x28
/* 80354290 7C 08 03 A6 */ mtlr r0
/* 80354294 4E 80 00 20 */ blr
@@ -1,32 +0,0 @@
lbl_80354DF0:
/* 80354DF0 7C 08 02 A6 */ mflr r0
/* 80354DF4 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80354DF8 90 01 00 04 */ stw r0, 4(r1)
/* 80354DFC 38 84 CB C0 */ addi r4, r4, __CARDBlock@l /* 0x8044CBC0@l */
/* 80354E00 38 04 00 30 */ addi r0, r4, 0x30
/* 80354E04 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80354E08 7C 00 18 40 */ cmplw r0, r3
/* 80354E0C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80354E10 41 82 00 10 */ beq lbl_80354E20
/* 80354E14 38 04 01 40 */ addi r0, r4, 0x140
/* 80354E18 7C 00 18 40 */ cmplw r0, r3
/* 80354E1C 38 84 01 10 */ addi r4, r4, 0x110
lbl_80354E20:
/* 80354E20 83 E4 00 80 */ lwz r31, 0x80(r4)
/* 80354E24 3C 60 FF 00 */ lis r3, 0xff00
/* 80354E28 4B FF D6 41 */ bl DSPSendMailToDSP
lbl_80354E2C:
/* 80354E2C 4B FF D6 05 */ bl DSPCheckMailToDSP
/* 80354E30 28 03 00 00 */ cmplwi r3, 0
/* 80354E34 40 82 FF F8 */ bne lbl_80354E2C
/* 80354E38 7F E3 FB 78 */ mr r3, r31
/* 80354E3C 4B FF D6 2D */ bl DSPSendMailToDSP
lbl_80354E40:
/* 80354E40 4B FF D5 F1 */ bl DSPCheckMailToDSP
/* 80354E44 28 03 00 00 */ cmplwi r3, 0
/* 80354E48 40 82 FF F8 */ bne lbl_80354E40
/* 80354E4C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80354E50 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80354E54 38 21 00 18 */ addi r1, r1, 0x18
/* 80354E58 7C 08 03 A6 */ mtlr r0
/* 80354E5C 4E 80 00 20 */ blr
-745
View File
@@ -1,745 +0,0 @@
lbl_80354298:
/* 80354298 7C 08 02 A6 */ mflr r0
/* 8035429C 90 01 00 04 */ stw r0, 4(r1)
/* 803542A0 94 21 FE E0 */ stwu r1, -0x120(r1)
/* 803542A4 BE C1 00 F8 */ stmw r22, 0xf8(r1)
/* 803542A8 3B 03 00 00 */ addi r24, r3, 0
/* 803542AC 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 803542B0 1C B8 01 10 */ mulli r5, r24, 0x110
/* 803542B4 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 803542B8 7F E0 2A 14 */ add r31, r0, r5
/* 803542BC 3A E4 00 00 */ addi r23, r4, 0
/* 803542C0 3B DF 00 30 */ addi r30, r31, 0x30
/* 803542C4 80 7F 00 80 */ lwz r3, 0x80(r31)
/* 803542C8 38 03 00 2F */ addi r0, r3, 0x2f
/* 803542CC 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a
/* 803542D0 3B A3 00 00 */ addi r29, r3, 0
/* 803542D4 3A DC 00 20 */ addi r22, r28, 0x20
/* 803542D8 4B FE E4 3D */ bl OSGetTick
/* 803542DC 90 6D 84 E8 */ stw r3, next(r13)
/* 803542E0 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */
/* 803542E4 3C A0 7F ED */ lis r5, 0x7FED /* 0x7FEC8000@ha */
/* 803542E8 80 8D 84 E8 */ lwz r4, next(r13)
/* 803542EC 38 03 4E 6D */ addi r0, r3, 0x4E6D /* 0x41C64E6D@l */
/* 803542F0 3B 25 80 00 */ addi r25, r5, 0x8000 /* 0x7FEC8000@l */
/* 803542F4 7C 64 01 D6 */ mullw r3, r4, r0
/* 803542F8 38 03 30 39 */ addi r0, r3, 0x3039
/* 803542FC 90 0D 84 E8 */ stw r0, next(r13)
/* 80354300 80 0D 84 E8 */ lwz r0, next(r13)
/* 80354304 54 00 84 7E */ rlwinm r0, r0, 0x10, 0x11, 0x1f
/* 80354308 7F 39 03 78 */ or r25, r25, r0
/* 8035430C 57 39 00 26 */ rlwinm r25, r25, 0, 0, 0x13
/* 80354310 4B FF FE C5 */ bl DummyLen
/* 80354314 3B 43 00 00 */ addi r26, r3, 0
/* 80354318 38 DA 00 00 */ addi r6, r26, 0
/* 8035431C 38 78 00 00 */ addi r3, r24, 0
/* 80354320 38 99 00 00 */ addi r4, r25, 0
/* 80354324 38 A1 00 A4 */ addi r5, r1, 0xa4
/* 80354328 38 E0 00 00 */ li r7, 0
/* 8035432C 4B FF FD 65 */ bl ReadArrayUnlock
/* 80354330 2C 03 00 00 */ cmpwi r3, 0
/* 80354334 40 80 00 0C */ bge lbl_80354340
/* 80354338 38 60 FF FD */ li r3, -3
/* 8035433C 48 00 0A A0 */ b lbl_80354DDC
lbl_80354340:
/* 80354340 57 43 18 38 */ slwi r3, r26, 3
/* 80354344 38 83 00 01 */ addi r4, r3, 1
/* 80354348 28 04 00 00 */ cmplwi r4, 0
/* 8035434C 38 60 00 00 */ li r3, 0
/* 80354350 40 81 01 68 */ ble lbl_803544B8
/* 80354354 28 04 00 08 */ cmplwi r4, 8
/* 80354358 38 A4 FF F8 */ addi r5, r4, -8
/* 8035435C 40 81 01 24 */ ble lbl_80354480
/* 80354360 38 05 00 07 */ addi r0, r5, 7
/* 80354364 54 00 E8 FE */ srwi r0, r0, 3
/* 80354368 28 05 00 00 */ cmplwi r5, 0
/* 8035436C 7C 09 03 A6 */ mtctr r0
/* 80354370 40 81 01 10 */ ble lbl_80354480
lbl_80354374:
/* 80354374 57 20 C9 FE */ srwi r0, r25, 7
/* 80354378 57 25 8B FE */ srwi r5, r25, 0xf
/* 8035437C 7F 20 02 78 */ xor r0, r25, r0
/* 80354380 7C A0 02 78 */ xor r0, r5, r0
/* 80354384 57 26 4D FE */ srwi r6, r25, 0x17
/* 80354388 7C C0 02 38 */ eqv r0, r6, r0
/* 8035438C 57 25 F8 7E */ srwi r5, r25, 1
/* 80354390 54 00 F0 42 */ rlwinm r0, r0, 0x1e, 1, 1
/* 80354394 7C A7 03 78 */ or r7, r5, r0
/* 80354398 54 E0 C9 FE */ srwi r0, r7, 7
/* 8035439C 54 E5 8B FE */ srwi r5, r7, 0xf
/* 803543A0 7C E0 02 78 */ xor r0, r7, r0
/* 803543A4 54 E6 4D FE */ srwi r6, r7, 0x17
/* 803543A8 7C A0 02 78 */ xor r0, r5, r0
/* 803543AC 7C C0 02 38 */ eqv r0, r6, r0
/* 803543B0 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1
/* 803543B4 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f
/* 803543B8 55 00 C9 FE */ srwi r0, r8, 7
/* 803543BC 55 05 8B FE */ srwi r5, r8, 0xf
/* 803543C0 7D 00 02 78 */ xor r0, r8, r0
/* 803543C4 55 06 4D FE */ srwi r6, r8, 0x17
/* 803543C8 7C A0 02 78 */ xor r0, r5, r0
/* 803543CC 7C C0 02 38 */ eqv r0, r6, r0
/* 803543D0 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1
/* 803543D4 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f
/* 803543D8 54 E0 C9 FE */ srwi r0, r7, 7
/* 803543DC 54 E5 8B FE */ srwi r5, r7, 0xf
/* 803543E0 7C E0 02 78 */ xor r0, r7, r0
/* 803543E4 54 E6 4D FE */ srwi r6, r7, 0x17
/* 803543E8 7C A0 02 78 */ xor r0, r5, r0
/* 803543EC 7C C0 02 38 */ eqv r0, r6, r0
/* 803543F0 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1
/* 803543F4 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f
/* 803543F8 55 00 C9 FE */ srwi r0, r8, 7
/* 803543FC 55 05 8B FE */ srwi r5, r8, 0xf
/* 80354400 7D 00 02 78 */ xor r0, r8, r0
/* 80354404 55 06 4D FE */ srwi r6, r8, 0x17
/* 80354408 7C A0 02 78 */ xor r0, r5, r0
/* 8035440C 7C C0 02 38 */ eqv r0, r6, r0
/* 80354410 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1
/* 80354414 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f
/* 80354418 54 E0 C9 FE */ srwi r0, r7, 7
/* 8035441C 54 E5 8B FE */ srwi r5, r7, 0xf
/* 80354420 7C E0 02 78 */ xor r0, r7, r0
/* 80354424 54 E6 4D FE */ srwi r6, r7, 0x17
/* 80354428 7C A0 02 78 */ xor r0, r5, r0
/* 8035442C 7C C0 02 38 */ eqv r0, r6, r0
/* 80354430 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1
/* 80354434 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f
/* 80354438 55 00 C9 FE */ srwi r0, r8, 7
/* 8035443C 55 05 8B FE */ srwi r5, r8, 0xf
/* 80354440 7D 00 02 78 */ xor r0, r8, r0
/* 80354444 55 06 4D FE */ srwi r6, r8, 0x17
/* 80354448 7C A0 02 78 */ xor r0, r5, r0
/* 8035444C 7C C0 02 38 */ eqv r0, r6, r0
/* 80354450 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1
/* 80354454 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f
/* 80354458 54 E0 C9 FE */ srwi r0, r7, 7
/* 8035445C 54 E5 8B FE */ srwi r5, r7, 0xf
/* 80354460 7C E0 02 78 */ xor r0, r7, r0
/* 80354464 54 E6 4D FE */ srwi r6, r7, 0x17
/* 80354468 7C A0 02 78 */ xor r0, r5, r0
/* 8035446C 7C C0 02 38 */ eqv r0, r6, r0
/* 80354470 54 19 F0 42 */ rlwinm r25, r0, 0x1e, 1, 1
/* 80354474 50 F9 F8 BE */ rlwimi r25, r7, 0x1f, 2, 0x1f
/* 80354478 38 63 00 08 */ addi r3, r3, 8
/* 8035447C 42 00 FE F8 */ bdnz lbl_80354374
lbl_80354480:
/* 80354480 7C 03 20 50 */ subf r0, r3, r4
/* 80354484 7C 03 20 40 */ cmplw r3, r4
/* 80354488 7C 09 03 A6 */ mtctr r0
/* 8035448C 40 80 00 2C */ bge lbl_803544B8
lbl_80354490:
/* 80354490 57 20 C9 FE */ srwi r0, r25, 7
/* 80354494 57 23 8B FE */ srwi r3, r25, 0xf
/* 80354498 7F 20 02 78 */ xor r0, r25, r0
/* 8035449C 57 24 4D FE */ srwi r4, r25, 0x17
/* 803544A0 7C 60 02 78 */ xor r0, r3, r0
/* 803544A4 7C 80 02 38 */ eqv r0, r4, r0
/* 803544A8 57 23 F8 7E */ srwi r3, r25, 1
/* 803544AC 54 00 F0 42 */ rlwinm r0, r0, 0x1e, 1, 1
/* 803544B0 7C 79 03 78 */ or r25, r3, r0
/* 803544B4 42 00 FF DC */ bdnz lbl_80354490
lbl_803544B8:
/* 803544B8 57 20 C9 FE */ srwi r0, r25, 7
/* 803544BC 57 23 8B FE */ srwi r3, r25, 0xf
/* 803544C0 7F 20 02 78 */ xor r0, r25, r0
/* 803544C4 57 24 4D FE */ srwi r4, r25, 0x17
/* 803544C8 7C 60 02 78 */ xor r0, r3, r0
/* 803544CC 7C 80 02 38 */ eqv r0, r4, r0
/* 803544D0 54 00 F8 00 */ slwi r0, r0, 0x1f
/* 803544D4 7F 20 03 78 */ or r0, r25, r0
/* 803544D8 90 1F 00 2C */ stw r0, 0x2c(r31)
/* 803544DC 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 803544E0 4B FF FA 45 */ bl bitrev
/* 803544E4 90 7F 00 2C */ stw r3, 0x2c(r31)
/* 803544E8 4B FF FC ED */ bl DummyLen
/* 803544EC 3B 63 00 00 */ addi r27, r3, 0
/* 803544F0 38 DB 00 14 */ addi r6, r27, 0x14
/* 803544F4 38 78 00 00 */ addi r3, r24, 0
/* 803544F8 38 A1 00 A4 */ addi r5, r1, 0xa4
/* 803544FC 38 80 00 00 */ li r4, 0
/* 80354500 38 E0 00 01 */ li r7, 1
/* 80354504 4B FF FB 8D */ bl ReadArrayUnlock
/* 80354508 2C 03 00 00 */ cmpwi r3, 0
/* 8035450C 40 80 00 0C */ bge lbl_80354518
/* 80354510 38 60 FF FD */ li r3, -3
/* 80354514 48 00 08 C8 */ b lbl_80354DDC
lbl_80354518:
/* 80354518 38 60 00 04 */ li r3, 4
/* 8035451C 80 FF 00 2C */ lwz r7, 0x2c(r31)
/* 80354520 83 21 00 A4 */ lwz r25, 0xa4(r1)
/* 80354524 7C 69 03 A6 */ mtctr r3
/* 80354528 83 41 00 A8 */ lwz r26, 0xa8(r1)
/* 8035452C 83 01 00 AC */ lwz r24, 0xac(r1)
/* 80354530 7F 39 3A 78 */ xor r25, r25, r7
/* 80354534 80 01 00 B0 */ lwz r0, 0xb0(r1)
/* 80354538 80 A1 00 B4 */ lwz r5, 0xb4(r1)
lbl_8035453C:
/* 8035453C 54 E3 38 30 */ slwi r3, r7, 7
/* 80354540 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354544 7C E3 1A 78 */ xor r3, r7, r3
/* 80354548 7C 83 1A 78 */ xor r3, r4, r3
/* 8035454C 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354550 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354554 54 E4 08 3C */ slwi r4, r7, 1
/* 80354558 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
/* 8035455C 7C 87 1B 78 */ or r7, r4, r3
/* 80354560 54 E3 38 30 */ slwi r3, r7, 7
/* 80354564 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354568 7C E3 1A 78 */ xor r3, r7, r3
/* 8035456C 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354570 7C 83 1A 78 */ xor r3, r4, r3
/* 80354574 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354578 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e
/* 8035457C 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d
/* 80354580 55 23 38 30 */ slwi r3, r9, 7
/* 80354584 55 24 78 20 */ slwi r4, r9, 0xf
/* 80354588 7D 23 1A 78 */ xor r3, r9, r3
/* 8035458C 55 26 B8 10 */ slwi r6, r9, 0x17
/* 80354590 7C 83 1A 78 */ xor r3, r4, r3
/* 80354594 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354598 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 8035459C 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
/* 803545A0 55 03 38 30 */ slwi r3, r8, 7
/* 803545A4 55 04 78 20 */ slwi r4, r8, 0xf
/* 803545A8 7D 03 1A 78 */ xor r3, r8, r3
/* 803545AC 55 06 B8 10 */ slwi r6, r8, 0x17
/* 803545B0 7C 83 1A 78 */ xor r3, r4, r3
/* 803545B4 7C C3 1A 38 */ eqv r3, r6, r3
/* 803545B8 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 803545BC 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 803545C0 54 E3 38 30 */ slwi r3, r7, 7
/* 803545C4 54 E4 78 20 */ slwi r4, r7, 0xf
/* 803545C8 7C E3 1A 78 */ xor r3, r7, r3
/* 803545CC 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 803545D0 7C 83 1A 78 */ xor r3, r4, r3
/* 803545D4 7C C3 1A 38 */ eqv r3, r6, r3
/* 803545D8 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 803545DC 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 803545E0 55 03 38 30 */ slwi r3, r8, 7
/* 803545E4 55 04 78 20 */ slwi r4, r8, 0xf
/* 803545E8 7D 03 1A 78 */ xor r3, r8, r3
/* 803545EC 55 06 B8 10 */ slwi r6, r8, 0x17
/* 803545F0 7C 83 1A 78 */ xor r3, r4, r3
/* 803545F4 7C C3 1A 38 */ eqv r3, r6, r3
/* 803545F8 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 803545FC 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 80354600 54 E3 38 30 */ slwi r3, r7, 7
/* 80354604 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354608 7C E3 1A 78 */ xor r3, r7, r3
/* 8035460C 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354610 7C 83 1A 78 */ xor r3, r4, r3
/* 80354614 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354618 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 8035461C 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 80354620 55 03 38 30 */ slwi r3, r8, 7
/* 80354624 55 04 78 20 */ slwi r4, r8, 0xf
/* 80354628 7D 03 1A 78 */ xor r3, r8, r3
/* 8035462C 55 06 B8 10 */ slwi r6, r8, 0x17
/* 80354630 7C 83 1A 78 */ xor r3, r4, r3
/* 80354634 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354638 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 8035463C 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 80354640 42 00 FE FC */ bdnz lbl_8035453C
/* 80354644 54 E3 38 30 */ slwi r3, r7, 7
/* 80354648 54 E4 78 20 */ slwi r4, r7, 0xf
/* 8035464C 7C E3 1A 78 */ xor r3, r7, r3
/* 80354650 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354654 7C 83 1A 78 */ xor r3, r4, r3
/* 80354658 7C C3 1A 38 */ eqv r3, r6, r3
/* 8035465C 54 63 0F FE */ srwi r3, r3, 0x1f
/* 80354660 7C E3 1B 78 */ or r3, r7, r3
/* 80354664 90 7F 00 2C */ stw r3, 0x2c(r31)
/* 80354668 38 60 00 04 */ li r3, 4
/* 8035466C 7C 69 03 A6 */ mtctr r3
/* 80354670 80 FF 00 2C */ lwz r7, 0x2c(r31)
/* 80354674 7F 5A 3A 78 */ xor r26, r26, r7
lbl_80354678:
/* 80354678 54 E3 38 30 */ slwi r3, r7, 7
/* 8035467C 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354680 7C E3 1A 78 */ xor r3, r7, r3
/* 80354684 7C 83 1A 78 */ xor r3, r4, r3
/* 80354688 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 8035468C 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354690 54 E4 08 3C */ slwi r4, r7, 1
/* 80354694 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
/* 80354698 7C 87 1B 78 */ or r7, r4, r3
/* 8035469C 54 E3 38 30 */ slwi r3, r7, 7
/* 803546A0 54 E4 78 20 */ slwi r4, r7, 0xf
/* 803546A4 7C E3 1A 78 */ xor r3, r7, r3
/* 803546A8 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 803546AC 7C 83 1A 78 */ xor r3, r4, r3
/* 803546B0 7C C3 1A 38 */ eqv r3, r6, r3
/* 803546B4 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e
/* 803546B8 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d
/* 803546BC 55 23 38 30 */ slwi r3, r9, 7
/* 803546C0 55 24 78 20 */ slwi r4, r9, 0xf
/* 803546C4 7D 23 1A 78 */ xor r3, r9, r3
/* 803546C8 55 26 B8 10 */ slwi r6, r9, 0x17
/* 803546CC 7C 83 1A 78 */ xor r3, r4, r3
/* 803546D0 7C C3 1A 38 */ eqv r3, r6, r3
/* 803546D4 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 803546D8 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
/* 803546DC 55 03 38 30 */ slwi r3, r8, 7
/* 803546E0 55 04 78 20 */ slwi r4, r8, 0xf
/* 803546E4 7D 03 1A 78 */ xor r3, r8, r3
/* 803546E8 55 06 B8 10 */ slwi r6, r8, 0x17
/* 803546EC 7C 83 1A 78 */ xor r3, r4, r3
/* 803546F0 7C C3 1A 38 */ eqv r3, r6, r3
/* 803546F4 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 803546F8 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 803546FC 54 E3 38 30 */ slwi r3, r7, 7
/* 80354700 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354704 7C E3 1A 78 */ xor r3, r7, r3
/* 80354708 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 8035470C 7C 83 1A 78 */ xor r3, r4, r3
/* 80354710 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354714 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 80354718 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 8035471C 55 03 38 30 */ slwi r3, r8, 7
/* 80354720 55 04 78 20 */ slwi r4, r8, 0xf
/* 80354724 7D 03 1A 78 */ xor r3, r8, r3
/* 80354728 55 06 B8 10 */ slwi r6, r8, 0x17
/* 8035472C 7C 83 1A 78 */ xor r3, r4, r3
/* 80354730 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354734 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 80354738 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 8035473C 54 E3 38 30 */ slwi r3, r7, 7
/* 80354740 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354744 7C E3 1A 78 */ xor r3, r7, r3
/* 80354748 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 8035474C 7C 83 1A 78 */ xor r3, r4, r3
/* 80354750 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354754 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 80354758 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 8035475C 55 03 38 30 */ slwi r3, r8, 7
/* 80354760 55 04 78 20 */ slwi r4, r8, 0xf
/* 80354764 7D 03 1A 78 */ xor r3, r8, r3
/* 80354768 55 06 B8 10 */ slwi r6, r8, 0x17
/* 8035476C 7C 83 1A 78 */ xor r3, r4, r3
/* 80354770 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354774 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 80354778 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 8035477C 42 00 FE FC */ bdnz lbl_80354678
/* 80354780 54 E3 38 30 */ slwi r3, r7, 7
/* 80354784 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354788 7C E3 1A 78 */ xor r3, r7, r3
/* 8035478C 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354790 7C 83 1A 78 */ xor r3, r4, r3
/* 80354794 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354798 54 63 0F FE */ srwi r3, r3, 0x1f
/* 8035479C 7C E3 1B 78 */ or r3, r7, r3
/* 803547A0 90 7F 00 2C */ stw r3, 0x2c(r31)
/* 803547A4 38 60 00 04 */ li r3, 4
/* 803547A8 7C 69 03 A6 */ mtctr r3
/* 803547AC 80 FF 00 2C */ lwz r7, 0x2c(r31)
/* 803547B0 7F 18 3A 78 */ xor r24, r24, r7
lbl_803547B4:
/* 803547B4 54 E3 38 30 */ slwi r3, r7, 7
/* 803547B8 54 E4 78 20 */ slwi r4, r7, 0xf
/* 803547BC 7C E3 1A 78 */ xor r3, r7, r3
/* 803547C0 7C 83 1A 78 */ xor r3, r4, r3
/* 803547C4 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 803547C8 7C C3 1A 38 */ eqv r3, r6, r3
/* 803547CC 54 E4 08 3C */ slwi r4, r7, 1
/* 803547D0 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
/* 803547D4 7C 87 1B 78 */ or r7, r4, r3
/* 803547D8 54 E3 38 30 */ slwi r3, r7, 7
/* 803547DC 54 E4 78 20 */ slwi r4, r7, 0xf
/* 803547E0 7C E3 1A 78 */ xor r3, r7, r3
/* 803547E4 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 803547E8 7C 83 1A 78 */ xor r3, r4, r3
/* 803547EC 7C C3 1A 38 */ eqv r3, r6, r3
/* 803547F0 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e
/* 803547F4 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d
/* 803547F8 55 23 38 30 */ slwi r3, r9, 7
/* 803547FC 55 24 78 20 */ slwi r4, r9, 0xf
/* 80354800 7D 23 1A 78 */ xor r3, r9, r3
/* 80354804 55 26 B8 10 */ slwi r6, r9, 0x17
/* 80354808 7C 83 1A 78 */ xor r3, r4, r3
/* 8035480C 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354810 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 80354814 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
/* 80354818 55 03 38 30 */ slwi r3, r8, 7
/* 8035481C 55 04 78 20 */ slwi r4, r8, 0xf
/* 80354820 7D 03 1A 78 */ xor r3, r8, r3
/* 80354824 55 06 B8 10 */ slwi r6, r8, 0x17
/* 80354828 7C 83 1A 78 */ xor r3, r4, r3
/* 8035482C 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354830 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 80354834 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 80354838 54 E3 38 30 */ slwi r3, r7, 7
/* 8035483C 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354840 7C E3 1A 78 */ xor r3, r7, r3
/* 80354844 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354848 7C 83 1A 78 */ xor r3, r4, r3
/* 8035484C 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354850 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 80354854 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 80354858 55 03 38 30 */ slwi r3, r8, 7
/* 8035485C 55 04 78 20 */ slwi r4, r8, 0xf
/* 80354860 7D 03 1A 78 */ xor r3, r8, r3
/* 80354864 55 06 B8 10 */ slwi r6, r8, 0x17
/* 80354868 7C 83 1A 78 */ xor r3, r4, r3
/* 8035486C 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354870 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 80354874 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 80354878 54 E3 38 30 */ slwi r3, r7, 7
/* 8035487C 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354880 7C E3 1A 78 */ xor r3, r7, r3
/* 80354884 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354888 7C 83 1A 78 */ xor r3, r4, r3
/* 8035488C 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354890 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 80354894 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 80354898 55 03 38 30 */ slwi r3, r8, 7
/* 8035489C 55 04 78 20 */ slwi r4, r8, 0xf
/* 803548A0 7D 03 1A 78 */ xor r3, r8, r3
/* 803548A4 55 06 B8 10 */ slwi r6, r8, 0x17
/* 803548A8 7C 83 1A 78 */ xor r3, r4, r3
/* 803548AC 7C C3 1A 38 */ eqv r3, r6, r3
/* 803548B0 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 803548B4 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 803548B8 42 00 FE FC */ bdnz lbl_803547B4
/* 803548BC 54 E3 38 30 */ slwi r3, r7, 7
/* 803548C0 54 E4 78 20 */ slwi r4, r7, 0xf
/* 803548C4 7C E3 1A 78 */ xor r3, r7, r3
/* 803548C8 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 803548CC 7C 83 1A 78 */ xor r3, r4, r3
/* 803548D0 7C C3 1A 38 */ eqv r3, r6, r3
/* 803548D4 54 63 0F FE */ srwi r3, r3, 0x1f
/* 803548D8 7C E3 1B 78 */ or r3, r7, r3
/* 803548DC 90 7F 00 2C */ stw r3, 0x2c(r31)
/* 803548E0 38 60 00 04 */ li r3, 4
/* 803548E4 7C 69 03 A6 */ mtctr r3
/* 803548E8 80 FF 00 2C */ lwz r7, 0x2c(r31)
/* 803548EC 7C 00 3A 78 */ xor r0, r0, r7
lbl_803548F0:
/* 803548F0 54 E3 38 30 */ slwi r3, r7, 7
/* 803548F4 54 E4 78 20 */ slwi r4, r7, 0xf
/* 803548F8 7C E3 1A 78 */ xor r3, r7, r3
/* 803548FC 7C 83 1A 78 */ xor r3, r4, r3
/* 80354900 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354904 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354908 54 E4 08 3C */ slwi r4, r7, 1
/* 8035490C 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
/* 80354910 7C 87 1B 78 */ or r7, r4, r3
/* 80354914 54 E3 38 30 */ slwi r3, r7, 7
/* 80354918 54 E4 78 20 */ slwi r4, r7, 0xf
/* 8035491C 7C E3 1A 78 */ xor r3, r7, r3
/* 80354920 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354924 7C 83 1A 78 */ xor r3, r4, r3
/* 80354928 7C C3 1A 38 */ eqv r3, r6, r3
/* 8035492C 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e
/* 80354930 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d
/* 80354934 55 23 38 30 */ slwi r3, r9, 7
/* 80354938 55 24 78 20 */ slwi r4, r9, 0xf
/* 8035493C 7D 23 1A 78 */ xor r3, r9, r3
/* 80354940 55 26 B8 10 */ slwi r6, r9, 0x17
/* 80354944 7C 83 1A 78 */ xor r3, r4, r3
/* 80354948 7C C3 1A 38 */ eqv r3, r6, r3
/* 8035494C 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 80354950 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
/* 80354954 55 03 38 30 */ slwi r3, r8, 7
/* 80354958 55 04 78 20 */ slwi r4, r8, 0xf
/* 8035495C 7D 03 1A 78 */ xor r3, r8, r3
/* 80354960 55 06 B8 10 */ slwi r6, r8, 0x17
/* 80354964 7C 83 1A 78 */ xor r3, r4, r3
/* 80354968 7C C3 1A 38 */ eqv r3, r6, r3
/* 8035496C 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 80354970 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 80354974 54 E3 38 30 */ slwi r3, r7, 7
/* 80354978 54 E4 78 20 */ slwi r4, r7, 0xf
/* 8035497C 7C E3 1A 78 */ xor r3, r7, r3
/* 80354980 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354984 7C 83 1A 78 */ xor r3, r4, r3
/* 80354988 7C C3 1A 38 */ eqv r3, r6, r3
/* 8035498C 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 80354990 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 80354994 55 03 38 30 */ slwi r3, r8, 7
/* 80354998 55 04 78 20 */ slwi r4, r8, 0xf
/* 8035499C 7D 03 1A 78 */ xor r3, r8, r3
/* 803549A0 55 06 B8 10 */ slwi r6, r8, 0x17
/* 803549A4 7C 83 1A 78 */ xor r3, r4, r3
/* 803549A8 7C C3 1A 38 */ eqv r3, r6, r3
/* 803549AC 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 803549B0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 803549B4 54 E3 38 30 */ slwi r3, r7, 7
/* 803549B8 54 E4 78 20 */ slwi r4, r7, 0xf
/* 803549BC 7C E3 1A 78 */ xor r3, r7, r3
/* 803549C0 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 803549C4 7C 83 1A 78 */ xor r3, r4, r3
/* 803549C8 7C C3 1A 38 */ eqv r3, r6, r3
/* 803549CC 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
/* 803549D0 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
/* 803549D4 55 03 38 30 */ slwi r3, r8, 7
/* 803549D8 55 04 78 20 */ slwi r4, r8, 0xf
/* 803549DC 7D 03 1A 78 */ xor r3, r8, r3
/* 803549E0 55 06 B8 10 */ slwi r6, r8, 0x17
/* 803549E4 7C 83 1A 78 */ xor r3, r4, r3
/* 803549E8 7C C3 1A 38 */ eqv r3, r6, r3
/* 803549EC 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
/* 803549F0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
/* 803549F4 42 00 FE FC */ bdnz lbl_803548F0
/* 803549F8 54 E3 38 30 */ slwi r3, r7, 7
/* 803549FC 54 E4 78 20 */ slwi r4, r7, 0xf
/* 80354A00 7C E3 1A 78 */ xor r3, r7, r3
/* 80354A04 7C 83 1A 78 */ xor r3, r4, r3
/* 80354A08 54 E6 B8 10 */ slwi r6, r7, 0x17
/* 80354A0C 7C C3 1A 38 */ eqv r3, r6, r3
/* 80354A10 54 63 0F FE */ srwi r3, r3, 0x1f
/* 80354A14 7C E3 1B 78 */ or r3, r7, r3
/* 80354A18 90 7F 00 2C */ stw r3, 0x2c(r31)
/* 80354A1C 57 64 18 38 */ slwi r4, r27, 3
/* 80354A20 28 04 00 00 */ cmplwi r4, 0
/* 80354A24 80 DF 00 2C */ lwz r6, 0x2c(r31)
/* 80354A28 38 60 00 00 */ li r3, 0
/* 80354A2C 7C A5 32 78 */ xor r5, r5, r6
/* 80354A30 40 81 01 68 */ ble lbl_80354B98
/* 80354A34 28 04 00 08 */ cmplwi r4, 8
/* 80354A38 39 04 FF F8 */ addi r8, r4, -8
/* 80354A3C 40 81 01 24 */ ble lbl_80354B60
/* 80354A40 38 E8 00 07 */ addi r7, r8, 7
/* 80354A44 54 E7 E8 FE */ srwi r7, r7, 3
/* 80354A48 28 08 00 00 */ cmplwi r8, 0
/* 80354A4C 7C E9 03 A6 */ mtctr r7
/* 80354A50 40 81 01 10 */ ble lbl_80354B60
lbl_80354A54:
/* 80354A54 54 C7 38 30 */ slwi r7, r6, 7
/* 80354A58 54 C8 78 20 */ slwi r8, r6, 0xf
/* 80354A5C 7C C7 3A 78 */ xor r7, r6, r7
/* 80354A60 7D 07 3A 78 */ xor r7, r8, r7
/* 80354A64 54 C9 B8 10 */ slwi r9, r6, 0x17
/* 80354A68 7D 27 3A 38 */ eqv r7, r9, r7
/* 80354A6C 54 C8 08 3C */ slwi r8, r6, 1
/* 80354A70 54 E6 17 BC */ rlwinm r6, r7, 2, 0x1e, 0x1e
/* 80354A74 7D 09 33 78 */ or r9, r8, r6
/* 80354A78 55 26 38 30 */ slwi r6, r9, 7
/* 80354A7C 55 27 78 20 */ slwi r7, r9, 0xf
/* 80354A80 7D 26 32 78 */ xor r6, r9, r6
/* 80354A84 55 28 B8 10 */ slwi r8, r9, 0x17
/* 80354A88 7C E6 32 78 */ xor r6, r7, r6
/* 80354A8C 7D 06 32 38 */ eqv r6, r8, r6
/* 80354A90 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e
/* 80354A94 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d
/* 80354A98 55 46 38 30 */ slwi r6, r10, 7
/* 80354A9C 55 47 78 20 */ slwi r7, r10, 0xf
/* 80354AA0 7D 46 32 78 */ xor r6, r10, r6
/* 80354AA4 55 48 B8 10 */ slwi r8, r10, 0x17
/* 80354AA8 7C E6 32 78 */ xor r6, r7, r6
/* 80354AAC 7D 06 32 38 */ eqv r6, r8, r6
/* 80354AB0 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e
/* 80354AB4 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d
/* 80354AB8 55 26 38 30 */ slwi r6, r9, 7
/* 80354ABC 55 27 78 20 */ slwi r7, r9, 0xf
/* 80354AC0 7D 26 32 78 */ xor r6, r9, r6
/* 80354AC4 55 28 B8 10 */ slwi r8, r9, 0x17
/* 80354AC8 7C E6 32 78 */ xor r6, r7, r6
/* 80354ACC 7D 06 32 38 */ eqv r6, r8, r6
/* 80354AD0 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e
/* 80354AD4 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d
/* 80354AD8 55 46 38 30 */ slwi r6, r10, 7
/* 80354ADC 55 47 78 20 */ slwi r7, r10, 0xf
/* 80354AE0 7D 46 32 78 */ xor r6, r10, r6
/* 80354AE4 55 48 B8 10 */ slwi r8, r10, 0x17
/* 80354AE8 7C E6 32 78 */ xor r6, r7, r6
/* 80354AEC 7D 06 32 38 */ eqv r6, r8, r6
/* 80354AF0 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e
/* 80354AF4 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d
/* 80354AF8 55 26 38 30 */ slwi r6, r9, 7
/* 80354AFC 55 27 78 20 */ slwi r7, r9, 0xf
/* 80354B00 7D 26 32 78 */ xor r6, r9, r6
/* 80354B04 55 28 B8 10 */ slwi r8, r9, 0x17
/* 80354B08 7C E6 32 78 */ xor r6, r7, r6
/* 80354B0C 7D 06 32 38 */ eqv r6, r8, r6
/* 80354B10 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e
/* 80354B14 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d
/* 80354B18 55 46 38 30 */ slwi r6, r10, 7
/* 80354B1C 55 47 78 20 */ slwi r7, r10, 0xf
/* 80354B20 7D 46 32 78 */ xor r6, r10, r6
/* 80354B24 55 48 B8 10 */ slwi r8, r10, 0x17
/* 80354B28 7C E6 32 78 */ xor r6, r7, r6
/* 80354B2C 7D 06 32 38 */ eqv r6, r8, r6
/* 80354B30 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e
/* 80354B34 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d
/* 80354B38 55 26 38 30 */ slwi r6, r9, 7
/* 80354B3C 55 27 78 20 */ slwi r7, r9, 0xf
/* 80354B40 7D 26 32 78 */ xor r6, r9, r6
/* 80354B44 55 28 B8 10 */ slwi r8, r9, 0x17
/* 80354B48 7C E6 32 78 */ xor r6, r7, r6
/* 80354B4C 7D 06 32 38 */ eqv r6, r8, r6
/* 80354B50 54 C6 17 BC */ rlwinm r6, r6, 2, 0x1e, 0x1e
/* 80354B54 51 26 08 3A */ rlwimi r6, r9, 1, 0, 0x1d
/* 80354B58 38 63 00 08 */ addi r3, r3, 8
/* 80354B5C 42 00 FE F8 */ bdnz lbl_80354A54
lbl_80354B60:
/* 80354B60 7C E3 20 50 */ subf r7, r3, r4
/* 80354B64 7C 03 20 40 */ cmplw r3, r4
/* 80354B68 7C E9 03 A6 */ mtctr r7
/* 80354B6C 40 80 00 2C */ bge lbl_80354B98
lbl_80354B70:
/* 80354B70 54 C3 38 30 */ slwi r3, r6, 7
/* 80354B74 54 C4 78 20 */ slwi r4, r6, 0xf
/* 80354B78 7C C3 1A 78 */ xor r3, r6, r3
/* 80354B7C 54 C7 B8 10 */ slwi r7, r6, 0x17
/* 80354B80 7C 83 1A 78 */ xor r3, r4, r3
/* 80354B84 7C E3 1A 38 */ eqv r3, r7, r3
/* 80354B88 54 C4 08 3C */ slwi r4, r6, 1
/* 80354B8C 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
/* 80354B90 7C 86 1B 78 */ or r6, r4, r3
/* 80354B94 42 00 FF DC */ bdnz lbl_80354B70
lbl_80354B98:
/* 80354B98 54 C3 38 30 */ slwi r3, r6, 7
/* 80354B9C 54 C4 78 20 */ slwi r4, r6, 0xf
/* 80354BA0 7C C3 1A 78 */ xor r3, r6, r3
/* 80354BA4 54 C7 B8 10 */ slwi r7, r6, 0x17
/* 80354BA8 7C 83 1A 78 */ xor r3, r4, r3
/* 80354BAC 7C E3 1A 38 */ eqv r3, r7, r3
/* 80354BB0 54 63 0F FE */ srwi r3, r3, 0x1f
/* 80354BB4 7C C3 1B 78 */ or r3, r6, r3
/* 80354BB8 90 7F 00 2C */ stw r3, 0x2c(r31)
/* 80354BBC 38 60 00 04 */ li r3, 4
/* 80354BC0 7C 69 03 A6 */ mtctr r3
/* 80354BC4 38 60 00 00 */ li r3, 0
/* 80354BC8 80 9F 00 2C */ lwz r4, 0x2c(r31)
lbl_80354BCC:
/* 80354BCC 54 86 38 30 */ slwi r6, r4, 7
/* 80354BD0 54 87 78 20 */ slwi r7, r4, 0xf
/* 80354BD4 7C 86 32 78 */ xor r6, r4, r6
/* 80354BD8 7C E6 32 78 */ xor r6, r7, r6
/* 80354BDC 54 88 B8 10 */ slwi r8, r4, 0x17
/* 80354BE0 7D 06 32 38 */ eqv r6, r8, r6
/* 80354BE4 54 87 08 3C */ slwi r7, r4, 1
/* 80354BE8 54 C4 17 BC */ rlwinm r4, r6, 2, 0x1e, 0x1e
/* 80354BEC 7C E8 23 78 */ or r8, r7, r4
/* 80354BF0 55 04 38 30 */ slwi r4, r8, 7
/* 80354BF4 55 06 78 20 */ slwi r6, r8, 0xf
/* 80354BF8 7D 04 22 78 */ xor r4, r8, r4
/* 80354BFC 55 07 B8 10 */ slwi r7, r8, 0x17
/* 80354C00 7C C4 22 78 */ xor r4, r6, r4
/* 80354C04 7C E4 22 38 */ eqv r4, r7, r4
/* 80354C08 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e
/* 80354C0C 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d
/* 80354C10 55 24 38 30 */ slwi r4, r9, 7
/* 80354C14 55 26 78 20 */ slwi r6, r9, 0xf
/* 80354C18 7D 24 22 78 */ xor r4, r9, r4
/* 80354C1C 55 27 B8 10 */ slwi r7, r9, 0x17
/* 80354C20 7C C4 22 78 */ xor r4, r6, r4
/* 80354C24 7C E4 22 38 */ eqv r4, r7, r4
/* 80354C28 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e
/* 80354C2C 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
/* 80354C30 55 04 38 30 */ slwi r4, r8, 7
/* 80354C34 55 06 78 20 */ slwi r6, r8, 0xf
/* 80354C38 7D 04 22 78 */ xor r4, r8, r4
/* 80354C3C 55 07 B8 10 */ slwi r7, r8, 0x17
/* 80354C40 7C C4 22 78 */ xor r4, r6, r4
/* 80354C44 7C E4 22 38 */ eqv r4, r7, r4
/* 80354C48 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e
/* 80354C4C 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d
/* 80354C50 55 24 38 30 */ slwi r4, r9, 7
/* 80354C54 55 26 78 20 */ slwi r6, r9, 0xf
/* 80354C58 7D 24 22 78 */ xor r4, r9, r4
/* 80354C5C 55 27 B8 10 */ slwi r7, r9, 0x17
/* 80354C60 7C C4 22 78 */ xor r4, r6, r4
/* 80354C64 7C E4 22 38 */ eqv r4, r7, r4
/* 80354C68 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e
/* 80354C6C 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
/* 80354C70 55 04 38 30 */ slwi r4, r8, 7
/* 80354C74 55 06 78 20 */ slwi r6, r8, 0xf
/* 80354C78 7D 04 22 78 */ xor r4, r8, r4
/* 80354C7C 55 07 B8 10 */ slwi r7, r8, 0x17
/* 80354C80 7C C4 22 78 */ xor r4, r6, r4
/* 80354C84 7C E4 22 38 */ eqv r4, r7, r4
/* 80354C88 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e
/* 80354C8C 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d
/* 80354C90 55 24 38 30 */ slwi r4, r9, 7
/* 80354C94 55 26 78 20 */ slwi r6, r9, 0xf
/* 80354C98 7D 24 22 78 */ xor r4, r9, r4
/* 80354C9C 55 27 B8 10 */ slwi r7, r9, 0x17
/* 80354CA0 7C C4 22 78 */ xor r4, r6, r4
/* 80354CA4 7C E4 22 38 */ eqv r4, r7, r4
/* 80354CA8 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e
/* 80354CAC 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
/* 80354CB0 55 04 38 30 */ slwi r4, r8, 7
/* 80354CB4 55 06 78 20 */ slwi r6, r8, 0xf
/* 80354CB8 7D 04 22 78 */ xor r4, r8, r4
/* 80354CBC 55 07 B8 10 */ slwi r7, r8, 0x17
/* 80354CC0 7C C4 22 78 */ xor r4, r6, r4
/* 80354CC4 7C E4 22 38 */ eqv r4, r7, r4
/* 80354CC8 54 84 17 BC */ rlwinm r4, r4, 2, 0x1e, 0x1e
/* 80354CCC 51 04 08 3A */ rlwimi r4, r8, 1, 0, 0x1d
/* 80354CD0 38 63 00 08 */ addi r3, r3, 8
/* 80354CD4 42 00 FE F8 */ bdnz lbl_80354BCC
/* 80354CD8 20 C3 00 21 */ subfic r6, r3, 0x21
/* 80354CDC 28 03 00 21 */ cmplwi r3, 0x21
/* 80354CE0 7C C9 03 A6 */ mtctr r6
/* 80354CE4 40 80 00 2C */ bge lbl_80354D10
lbl_80354CE8:
/* 80354CE8 54 83 38 30 */ slwi r3, r4, 7
/* 80354CEC 54 86 78 20 */ slwi r6, r4, 0xf
/* 80354CF0 7C 83 1A 78 */ xor r3, r4, r3
/* 80354CF4 54 87 B8 10 */ slwi r7, r4, 0x17
/* 80354CF8 7C C3 1A 78 */ xor r3, r6, r3
/* 80354CFC 7C E3 1A 38 */ eqv r3, r7, r3
/* 80354D00 54 84 08 3C */ slwi r4, r4, 1
/* 80354D04 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
/* 80354D08 7C 84 1B 78 */ or r4, r4, r3
/* 80354D0C 42 00 FF DC */ bdnz lbl_80354CE8
lbl_80354D10:
/* 80354D10 54 83 38 30 */ slwi r3, r4, 7
/* 80354D14 54 86 78 20 */ slwi r6, r4, 0xf
/* 80354D18 7C 83 1A 78 */ xor r3, r4, r3
/* 80354D1C 54 87 B8 10 */ slwi r7, r4, 0x17
/* 80354D20 7C C3 1A 78 */ xor r3, r6, r3
/* 80354D24 7C E3 1A 38 */ eqv r3, r7, r3
/* 80354D28 54 63 0F FE */ srwi r3, r3, 0x1f
/* 80354D2C 7C 83 1B 78 */ or r3, r4, r3
/* 80354D30 90 7F 00 2C */ stw r3, 0x2c(r31)
/* 80354D34 38 C0 00 08 */ li r6, 8
/* 80354D38 3B 60 00 00 */ li r27, 0
/* 80354D3C 90 1C 00 00 */ stw r0, 0(r28)
/* 80354D40 38 7C 00 00 */ addi r3, r28, 0
/* 80354D44 38 80 00 08 */ li r4, 8
/* 80354D48 90 BC 00 04 */ stw r5, 4(r28)
/* 80354D4C 93 9D 00 00 */ stw r28, 0(r29)
/* 80354D50 90 DD 00 04 */ stw r6, 4(r29)
/* 80354D54 92 DD 00 0C */ stw r22, 0xc(r29)
/* 80354D58 93 7D 00 08 */ stw r27, 8(r29)
/* 80354D5C 4B FE 68 51 */ bl DCFlushRange
/* 80354D60 38 76 00 00 */ addi r3, r22, 0
/* 80354D64 38 80 00 04 */ li r4, 4
/* 80354D68 4B FE 68 19 */ bl DCInvalidateRange
/* 80354D6C 38 7D 00 00 */ addi r3, r29, 0
/* 80354D70 38 80 00 10 */ li r4, 0x10
/* 80354D74 4B FE 68 39 */ bl DCFlushRange
/* 80354D78 38 00 00 FF */ li r0, 0xff
/* 80354D7C 3C 60 80 3D */ lis r3, CardData@ha /* 0x803D1EA0@ha */
/* 80354D80 90 1E 00 04 */ stw r0, 4(r30)
/* 80354D84 38 63 1E A0 */ addi r3, r3, CardData@l /* 0x803D1EA0@l */
/* 80354D88 3C 03 80 00 */ addis r0, r3, 0x8000
/* 80354D8C 90 1E 00 0C */ stw r0, 0xc(r30)
/* 80354D90 38 00 01 60 */ li r0, 0x160
/* 80354D94 3C 80 80 35 */ lis r4, InitCallback@ha /* 0x80354DF0@ha */
/* 80354D98 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80354D9C 3C 60 80 35 */ lis r3, DoneCallback@ha /* 0x80354E60@ha */
/* 80354DA0 38 A0 00 10 */ li r5, 0x10
/* 80354DA4 93 7E 00 14 */ stw r27, 0x14(r30)
/* 80354DA8 38 84 4D F0 */ addi r4, r4, InitCallback@l /* 0x80354DF0@l */
/* 80354DAC 38 03 4E 60 */ addi r0, r3, DoneCallback@l /* 0x80354E60@l */
/* 80354DB0 B0 BE 00 24 */ sth r5, 0x24(r30)
/* 80354DB4 7F C3 F3 78 */ mr r3, r30
/* 80354DB8 90 9E 00 28 */ stw r4, 0x28(r30)
/* 80354DBC 93 7E 00 2C */ stw r27, 0x2c(r30)
/* 80354DC0 90 1E 00 30 */ stw r0, 0x30(r30)
/* 80354DC4 93 7E 00 34 */ stw r27, 0x34(r30)
/* 80354DC8 4B F4 9C 39 */ bl DSPAddTask
/* 80354DCC 93 37 00 00 */ stw r25, 0(r23)
/* 80354DD0 38 60 00 00 */ li r3, 0
/* 80354DD4 93 57 00 04 */ stw r26, 4(r23)
/* 80354DD8 93 17 00 08 */ stw r24, 8(r23)
lbl_80354DDC:
/* 80354DDC BA C1 00 F8 */ lmw r22, 0xf8(r1)
/* 80354DE0 80 01 01 24 */ lwz r0, 0x124(r1)
/* 80354DE4 38 21 01 20 */ addi r1, r1, 0x120
/* 80354DE8 7C 08 03 A6 */ mtlr r0
/* 80354DEC 4E 80 00 20 */ blr
@@ -1,47 +0,0 @@
lbl_80358A84:
/* 80358A84 7C 08 02 A6 */ mflr r0
/* 80358A88 90 01 00 04 */ stw r0, 4(r1)
/* 80358A8C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80358A90 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80358A94 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80358A98 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80358A9C 7C 9D 23 79 */ or. r29, r4, r4
/* 80358AA0 93 81 00 10 */ stw r28, 0x10(r1)
/* 80358AA4 3B 83 00 00 */ addi r28, r3, 0
/* 80358AA8 1C BC 01 10 */ mulli r5, r28, 0x110
/* 80358AAC 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80358AB0 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 80358AB4 7F E0 2A 14 */ add r31, r0, r5
/* 80358AB8 41 80 00 30 */ blt lbl_80358AE8
/* 80358ABC 80 9F 00 C0 */ lwz r4, 0xc0(r31)
/* 80358AC0 3C 60 80 36 */ lis r3, WriteCallback@ha /* 0x80358914@ha */
/* 80358AC4 38 E3 89 14 */ addi r7, r3, WriteCallback@l /* 0x80358914@l */
/* 80358AC8 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 80358ACC A0 04 00 10 */ lhz r0, 0x10(r4)
/* 80358AD0 80 DF 00 B4 */ lwz r6, 0xb4(r31)
/* 80358AD4 38 7C 00 00 */ addi r3, r28, 0
/* 80358AD8 7C 85 01 D6 */ mullw r4, r5, r0
/* 80358ADC 4B FF C8 D1 */ bl __CARDWrite
/* 80358AE0 7C 7D 1B 79 */ or. r29, r3, r3
/* 80358AE4 40 80 00 30 */ bge lbl_80358B14
lbl_80358AE8:
/* 80358AE8 83 DF 00 D0 */ lwz r30, 0xd0(r31)
/* 80358AEC 38 00 00 00 */ li r0, 0
/* 80358AF0 38 7F 00 00 */ addi r3, r31, 0
/* 80358AF4 90 1F 00 D0 */ stw r0, 0xd0(r31)
/* 80358AF8 7F A4 EB 78 */ mr r4, r29
/* 80358AFC 4B FF B1 71 */ bl __CARDPutControlBlock
/* 80358B00 39 9E 00 00 */ addi r12, r30, 0
/* 80358B04 7D 88 03 A6 */ mtlr r12
/* 80358B08 38 7C 00 00 */ addi r3, r28, 0
/* 80358B0C 38 9D 00 00 */ addi r4, r29, 0
/* 80358B10 4E 80 00 21 */ blrl
lbl_80358B14:
/* 80358B14 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80358B18 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80358B1C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80358B20 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80358B24 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80358B28 38 21 00 20 */ addi r1, r1, 0x20
/* 80358B2C 7C 08 03 A6 */ mtlr r0
/* 80358B30 4E 80 00 20 */ blr
-100
View File
@@ -1,100 +0,0 @@
lbl_80358914:
/* 80358914 7C 08 02 A6 */ mflr r0
/* 80358918 90 01 00 04 */ stw r0, 4(r1)
/* 8035891C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80358920 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80358924 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80358928 3B C3 00 00 */ addi r30, r3, 0
/* 8035892C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
/* 80358930 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80358934 1C BE 01 10 */ mulli r5, r30, 0x110
/* 80358938 93 81 00 10 */ stw r28, 0x10(r1)
/* 8035893C 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
/* 80358940 7C 9C 23 79 */ or. r28, r4, r4
/* 80358944 7F E0 2A 14 */ add r31, r0, r5
/* 80358948 41 80 00 F0 */ blt lbl_80358A38
/* 8035894C 83 BF 00 C0 */ lwz r29, 0xc0(r31)
/* 80358950 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 80358954 2C 03 00 00 */ cmpwi r3, 0
/* 80358958 40 80 00 0C */ bge lbl_80358964
/* 8035895C 3B 80 FF F2 */ li r28, -14
/* 80358960 48 00 00 D8 */ b lbl_80358A38
lbl_80358964:
/* 80358964 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80358968 7C 00 18 50 */ subf r0, r0, r3
/* 8035896C 90 1D 00 0C */ stw r0, 0xc(r29)
/* 80358970 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80358974 2C 00 00 00 */ cmpwi r0, 0
/* 80358978 41 81 00 54 */ bgt lbl_803589CC
/* 8035897C 7F E3 FB 78 */ mr r3, r31
/* 80358980 4B FF CD FD */ bl __CARDGetDirBlock
/* 80358984 80 BD 00 04 */ lwz r5, 4(r29)
/* 80358988 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000F8@ha */
/* 8035898C 80 04 00 F8 */ lwz r0, 0x00F8(r4) /* 0x800000F8@l */
/* 80358990 54 A4 30 32 */ slwi r4, r5, 6
/* 80358994 7F 83 22 14 */ add r28, r3, r4
/* 80358998 54 1D F0 BE */ srwi r29, r0, 2
/* 8035899C 4B FE 9D 61 */ bl OSGetTime
/* 803589A0 38 DD 00 00 */ addi r6, r29, 0
/* 803589A4 38 A0 00 00 */ li r5, 0
/* 803589A8 48 00 99 7D */ bl __div2i
/* 803589AC 90 9C 00 28 */ stw r4, 0x28(r28)
/* 803589B0 38 00 00 00 */ li r0, 0
/* 803589B4 38 7E 00 00 */ addi r3, r30, 0
/* 803589B8 80 9F 00 D0 */ lwz r4, 0xd0(r31)
/* 803589BC 90 1F 00 D0 */ stw r0, 0xd0(r31)
/* 803589C0 4B FF CF 5D */ bl __CARDUpdateDir
/* 803589C4 7C 7C 1B 78 */ mr r28, r3
/* 803589C8 48 00 00 68 */ b lbl_80358A30
lbl_803589CC:
/* 803589CC 7F E3 FB 78 */ mr r3, r31
/* 803589D0 4B FF CA 45 */ bl __CARDGetFatBlock
/* 803589D4 80 9D 00 08 */ lwz r4, 8(r29)
/* 803589D8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803589DC 7C 04 02 14 */ add r0, r4, r0
/* 803589E0 90 1D 00 08 */ stw r0, 8(r29)
/* 803589E4 A0 1D 00 10 */ lhz r0, 0x10(r29)
/* 803589E8 54 00 08 3C */ slwi r0, r0, 1
/* 803589EC 7C 03 02 2E */ lhzx r0, r3, r0
/* 803589F0 B0 1D 00 10 */ sth r0, 0x10(r29)
/* 803589F4 A0 9D 00 10 */ lhz r4, 0x10(r29)
/* 803589F8 28 04 00 05 */ cmplwi r4, 5
/* 803589FC 41 80 00 10 */ blt lbl_80358A0C
/* 80358A00 A0 1F 00 10 */ lhz r0, 0x10(r31)
/* 80358A04 7C 04 00 40 */ cmplw r4, r0
/* 80358A08 41 80 00 0C */ blt lbl_80358A14
lbl_80358A0C:
/* 80358A0C 3B 80 FF FA */ li r28, -6
/* 80358A10 48 00 00 28 */ b lbl_80358A38
lbl_80358A14:
/* 80358A14 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80358A18 3C 60 80 36 */ lis r3, EraseCallback@ha /* 0x80358A84@ha */
/* 80358A1C 38 A3 8A 84 */ addi r5, r3, EraseCallback@l /* 0x80358A84@l */
/* 80358A20 7C 80 21 D6 */ mullw r4, r0, r4
/* 80358A24 38 7E 00 00 */ addi r3, r30, 0
/* 80358A28 4B FF AF 91 */ bl __CARDEraseSector
/* 80358A2C 7C 7C 1B 78 */ mr r28, r3
lbl_80358A30:
/* 80358A30 2C 1C 00 00 */ cmpwi r28, 0
/* 80358A34 40 80 00 30 */ bge lbl_80358A64
lbl_80358A38:
/* 80358A38 83 BF 00 D0 */ lwz r29, 0xd0(r31)
/* 80358A3C 38 00 00 00 */ li r0, 0
/* 80358A40 38 7F 00 00 */ addi r3, r31, 0
/* 80358A44 90 1F 00 D0 */ stw r0, 0xd0(r31)
/* 80358A48 7F 84 E3 78 */ mr r4, r28
/* 80358A4C 4B FF B2 21 */ bl __CARDPutControlBlock
/* 80358A50 39 9D 00 00 */ addi r12, r29, 0
/* 80358A54 7D 88 03 A6 */ mtlr r12
/* 80358A58 38 7E 00 00 */ addi r3, r30, 0
/* 80358A5C 38 9C 00 00 */ addi r4, r28, 0
/* 80358A60 4E 80 00 21 */ blrl
lbl_80358A64:
/* 80358A64 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80358A68 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80358A6C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80358A70 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80358A74 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80358A78 38 21 00 20 */ addi r1, r1, 0x20
/* 80358A7C 7C 08 03 A6 */ mtlr r0
/* 80358A80 4E 80 00 20 */ blr
-177
View File
@@ -1,177 +0,0 @@
lbl_8034B2D4:
/* 8034B2D4 7C 08 02 A6 */ mflr r0
/* 8034B2D8 90 01 00 04 */ stw r0, 4(r1)
/* 8034B2DC 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8034B2E0 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8034B2E4 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8034B2E8 3B C4 00 00 */ addi r30, r4, 0
/* 8034B2EC 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8034B2F0 3B A3 00 00 */ addi r29, r3, 0
/* 8034B2F4 4B FF 24 01 */ bl OSDisableInterrupts
/* 8034B2F8 80 9D 00 0C */ lwz r4, 0xc(r29)
/* 8034B2FC 3B E3 00 00 */ addi r31, r3, 0
/* 8034B300 38 04 00 01 */ addi r0, r4, 1
/* 8034B304 28 00 00 0C */ cmplwi r0, 0xc
/* 8034B308 41 81 02 20 */ bgt lbl_8034B528
/* 8034B30C 3C 60 80 3D */ lis r3, lit_956@ha /* 0x803D163C@ha */
/* 8034B310 38 63 16 3C */ addi r3, r3, lit_956@l /* 0x803D163C@l */
/* 8034B314 54 00 10 3A */ slwi r0, r0, 2
/* 8034B318 7C 03 00 2E */ lwzx r0, r3, r0
/* 8034B31C 7C 09 03 A6 */ mtctr r0
/* 8034B320 4E 80 04 20 */ bctr
/* 8034B324 28 1E 00 00 */ cmplwi r30, 0
/* 8034B328 41 82 02 00 */ beq lbl_8034B528
/* 8034B32C 39 9E 00 00 */ addi r12, r30, 0
/* 8034B330 7D 88 03 A6 */ mtlr r12
/* 8034B334 38 9D 00 00 */ addi r4, r29, 0
/* 8034B338 38 60 00 00 */ li r3, 0
/* 8034B33C 4E 80 00 21 */ blrl
/* 8034B340 48 00 01 E8 */ b lbl_8034B528
/* 8034B344 80 0D 92 18 */ lwz r0, Canceling(r13)
/* 8034B348 28 00 00 00 */ cmplwi r0, 0
/* 8034B34C 41 82 00 14 */ beq lbl_8034B360
/* 8034B350 7F E3 FB 78 */ mr r3, r31
/* 8034B354 4B FF 23 C9 */ bl OSRestoreInterrupts
/* 8034B358 38 60 00 00 */ li r3, 0
/* 8034B35C 48 00 01 D8 */ b lbl_8034B534
lbl_8034B360:
/* 8034B360 38 00 00 01 */ li r0, 1
/* 8034B364 93 CD 92 1C */ stw r30, CancelCallback(r13)
/* 8034B368 90 0D 92 18 */ stw r0, Canceling(r13)
/* 8034B36C 80 1D 00 08 */ lwz r0, 8(r29)
/* 8034B370 28 00 00 04 */ cmplwi r0, 4
/* 8034B374 41 82 00 0C */ beq lbl_8034B380
/* 8034B378 28 00 00 01 */ cmplwi r0, 1
/* 8034B37C 40 82 01 AC */ bne lbl_8034B528
lbl_8034B380:
/* 8034B380 4B FF D0 C5 */ bl DVDLowBreak
/* 8034B384 48 00 01 A4 */ b lbl_8034B528
/* 8034B388 7F A3 EB 78 */ mr r3, r29
/* 8034B38C 48 00 06 81 */ bl __DVDDequeueWaitingQueue
/* 8034B390 38 00 00 0A */ li r0, 0xa
/* 8034B394 90 1D 00 0C */ stw r0, 0xc(r29)
/* 8034B398 81 9D 00 28 */ lwz r12, 0x28(r29)
/* 8034B39C 28 0C 00 00 */ cmplwi r12, 0
/* 8034B3A0 41 82 00 14 */ beq lbl_8034B3B4
/* 8034B3A4 7D 88 03 A6 */ mtlr r12
/* 8034B3A8 38 9D 00 00 */ addi r4, r29, 0
/* 8034B3AC 38 60 FF FD */ li r3, -3
/* 8034B3B0 4E 80 00 21 */ blrl
lbl_8034B3B4:
/* 8034B3B4 28 1E 00 00 */ cmplwi r30, 0
/* 8034B3B8 41 82 01 70 */ beq lbl_8034B528
/* 8034B3BC 39 9E 00 00 */ addi r12, r30, 0
/* 8034B3C0 7D 88 03 A6 */ mtlr r12
/* 8034B3C4 38 9D 00 00 */ addi r4, r29, 0
/* 8034B3C8 38 60 00 00 */ li r3, 0
/* 8034B3CC 4E 80 00 21 */ blrl
/* 8034B3D0 48 00 01 58 */ b lbl_8034B528
/* 8034B3D4 80 1D 00 08 */ lwz r0, 8(r29)
/* 8034B3D8 2C 00 00 0D */ cmpwi r0, 0xd
/* 8034B3DC 41 82 00 28 */ beq lbl_8034B404
/* 8034B3E0 40 80 00 18 */ bge lbl_8034B3F8
/* 8034B3E4 2C 00 00 06 */ cmpwi r0, 6
/* 8034B3E8 40 80 00 3C */ bge lbl_8034B424
/* 8034B3EC 2C 00 00 04 */ cmpwi r0, 4
/* 8034B3F0 40 80 00 14 */ bge lbl_8034B404
/* 8034B3F4 48 00 00 30 */ b lbl_8034B424
lbl_8034B3F8:
/* 8034B3F8 2C 00 00 0F */ cmpwi r0, 0xf
/* 8034B3FC 41 82 00 08 */ beq lbl_8034B404
/* 8034B400 48 00 00 24 */ b lbl_8034B424
lbl_8034B404:
/* 8034B404 28 1E 00 00 */ cmplwi r30, 0
/* 8034B408 41 82 01 20 */ beq lbl_8034B528
/* 8034B40C 39 9E 00 00 */ addi r12, r30, 0
/* 8034B410 7D 88 03 A6 */ mtlr r12
/* 8034B414 38 9D 00 00 */ addi r4, r29, 0
/* 8034B418 38 60 00 00 */ li r3, 0
/* 8034B41C 4E 80 00 21 */ blrl
/* 8034B420 48 00 01 08 */ b lbl_8034B528
lbl_8034B424:
/* 8034B424 80 0D 92 18 */ lwz r0, Canceling(r13)
/* 8034B428 28 00 00 00 */ cmplwi r0, 0
/* 8034B42C 41 82 00 14 */ beq lbl_8034B440
/* 8034B430 7F E3 FB 78 */ mr r3, r31
/* 8034B434 4B FF 22 E9 */ bl OSRestoreInterrupts
/* 8034B438 38 60 00 00 */ li r3, 0
/* 8034B43C 48 00 00 F8 */ b lbl_8034B534
lbl_8034B440:
/* 8034B440 38 00 00 01 */ li r0, 1
/* 8034B444 93 CD 92 1C */ stw r30, CancelCallback(r13)
/* 8034B448 90 0D 92 18 */ stw r0, Canceling(r13)
/* 8034B44C 48 00 00 DC */ b lbl_8034B528
/* 8034B450 4B FF D0 09 */ bl DVDLowClearCallback
/* 8034B454 3C 80 80 35 */ lis r4, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
/* 8034B458 38 04 9F C0 */ addi r0, r4, cbForStateMotorStopped@l /* 0x80349FC0@l */
/* 8034B45C 7C 03 00 40 */ cmplw r3, r0
/* 8034B460 41 82 00 14 */ beq lbl_8034B474
/* 8034B464 7F E3 FB 78 */ mr r3, r31
/* 8034B468 4B FF 22 B5 */ bl OSRestoreInterrupts
/* 8034B46C 38 60 00 00 */ li r3, 0
/* 8034B470 48 00 00 C4 */ b lbl_8034B534
lbl_8034B474:
/* 8034B474 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8034B478 2C 00 00 04 */ cmpwi r0, 4
/* 8034B47C 40 82 00 0C */ bne lbl_8034B488
/* 8034B480 38 00 00 03 */ li r0, 3
/* 8034B484 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
lbl_8034B488:
/* 8034B488 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8034B48C 2C 00 00 05 */ cmpwi r0, 5
/* 8034B490 40 82 00 0C */ bne lbl_8034B49C
/* 8034B494 38 00 00 04 */ li r0, 4
/* 8034B498 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
lbl_8034B49C:
/* 8034B49C 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8034B4A0 2C 00 00 06 */ cmpwi r0, 6
/* 8034B4A4 40 82 00 0C */ bne lbl_8034B4B0
/* 8034B4A8 38 00 00 01 */ li r0, 1
/* 8034B4AC 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
lbl_8034B4B0:
/* 8034B4B0 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8034B4B4 2C 00 00 0B */ cmpwi r0, 0xb
/* 8034B4B8 40 82 00 0C */ bne lbl_8034B4C4
/* 8034B4BC 38 00 00 02 */ li r0, 2
/* 8034B4C0 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
lbl_8034B4C4:
/* 8034B4C4 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8034B4C8 2C 00 00 07 */ cmpwi r0, 7
/* 8034B4CC 40 82 00 0C */ bne lbl_8034B4D8
/* 8034B4D0 38 00 00 07 */ li r0, 7
/* 8034B4D4 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
lbl_8034B4D8:
/* 8034B4D8 3C 60 80 45 */ lis r3, DummyCommandBlock@ha /* 0x8044C940@ha */
/* 8034B4DC 38 03 C9 40 */ addi r0, r3, DummyCommandBlock@l /* 0x8044C940@l */
/* 8034B4E0 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034B4E4 38 00 00 0A */ li r0, 0xa
/* 8034B4E8 90 1D 00 0C */ stw r0, 0xc(r29)
/* 8034B4EC 81 9D 00 28 */ lwz r12, 0x28(r29)
/* 8034B4F0 28 0C 00 00 */ cmplwi r12, 0
/* 8034B4F4 41 82 00 14 */ beq lbl_8034B508
/* 8034B4F8 7D 88 03 A6 */ mtlr r12
/* 8034B4FC 38 9D 00 00 */ addi r4, r29, 0
/* 8034B500 38 60 FF FD */ li r3, -3
/* 8034B504 4E 80 00 21 */ blrl
lbl_8034B508:
/* 8034B508 28 1E 00 00 */ cmplwi r30, 0
/* 8034B50C 41 82 00 18 */ beq lbl_8034B524
/* 8034B510 39 9E 00 00 */ addi r12, r30, 0
/* 8034B514 7D 88 03 A6 */ mtlr r12
/* 8034B518 38 9D 00 00 */ addi r4, r29, 0
/* 8034B51C 38 60 00 00 */ li r3, 0
/* 8034B520 4E 80 00 21 */ blrl
lbl_8034B524:
/* 8034B524 4B FF EB 89 */ bl stateReady
lbl_8034B528:
/* 8034B528 7F E3 FB 78 */ mr r3, r31
/* 8034B52C 4B FF 21 F1 */ bl OSRestoreInterrupts
/* 8034B530 38 60 00 01 */ li r3, 1
lbl_8034B534:
/* 8034B534 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8034B538 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8034B53C 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8034B540 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8034B544 38 21 00 28 */ addi r1, r1, 0x28
/* 8034B548 7C 08 03 A6 */ mtlr r0
/* 8034B54C 4E 80 00 20 */ blr
@@ -1,51 +0,0 @@
lbl_8034AFAC:
/* 8034AFAC 7C 08 02 A6 */ mflr r0
/* 8034AFB0 90 01 00 04 */ stw r0, 4(r1)
/* 8034AFB4 38 00 00 07 */ li r0, 7
/* 8034AFB8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8034AFBC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034AFC0 3B E3 00 00 */ addi r31, r3, 0
/* 8034AFC4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8034AFC8 90 03 00 08 */ stw r0, 8(r3)
/* 8034AFCC 90 83 00 28 */ stw r4, 0x28(r3)
/* 8034AFD0 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
/* 8034AFD4 2C 00 00 00 */ cmpwi r0, 0
/* 8034AFD8 41 82 00 30 */ beq lbl_8034B008
/* 8034AFDC 80 7F 00 08 */ lwz r3, 8(r31)
/* 8034AFE0 28 03 00 01 */ cmplwi r3, 1
/* 8034AFE4 41 82 00 18 */ beq lbl_8034AFFC
/* 8034AFE8 38 03 FF FC */ addi r0, r3, -4
/* 8034AFEC 28 00 00 01 */ cmplwi r0, 1
/* 8034AFF0 40 81 00 0C */ ble lbl_8034AFFC
/* 8034AFF4 28 03 00 0E */ cmplwi r3, 0xe
/* 8034AFF8 40 82 00 10 */ bne lbl_8034B008
lbl_8034AFFC:
/* 8034AFFC 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 8034B000 80 9F 00 14 */ lwz r4, 0x14(r31)
/* 8034B004 4B FF 05 7D */ bl DCInvalidateRange
lbl_8034B008:
/* 8034B008 4B FF 26 ED */ bl OSDisableInterrupts
/* 8034B00C 38 00 00 02 */ li r0, 2
/* 8034B010 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8034B014 3B C3 00 00 */ addi r30, r3, 0
/* 8034B018 38 9F 00 00 */ addi r4, r31, 0
/* 8034B01C 38 60 00 01 */ li r3, 1
/* 8034B020 48 00 08 8D */ bl __DVDPushWaitingQueue
/* 8034B024 80 0D 91 F8 */ lwz r0, executing(r13)
/* 8034B028 3B E3 00 00 */ addi r31, r3, 0
/* 8034B02C 28 00 00 00 */ cmplwi r0, 0
/* 8034B030 40 82 00 14 */ bne lbl_8034B044
/* 8034B034 80 0D 92 04 */ lwz r0, PauseFlag(r13)
/* 8034B038 2C 00 00 00 */ cmpwi r0, 0
/* 8034B03C 40 82 00 08 */ bne lbl_8034B044
/* 8034B040 4B FF F0 6D */ bl stateReady
lbl_8034B044:
/* 8034B044 7F C3 F3 78 */ mr r3, r30
/* 8034B048 4B FF 26 D5 */ bl OSRestoreInterrupts
/* 8034B04C 7F E3 FB 78 */ mr r3, r31
/* 8034B050 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034B054 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8034B058 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8034B05C 38 21 00 20 */ addi r1, r1, 0x20
/* 8034B060 7C 08 03 A6 */ mtlr r0
/* 8034B064 4E 80 00 20 */ blr
-72
View File
@@ -1,72 +0,0 @@
lbl_8034B628:
/* 8034B628 7C 08 02 A6 */ mflr r0
/* 8034B62C 90 01 00 04 */ stw r0, 4(r1)
/* 8034B630 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8034B634 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8034B638 4B FF 20 BD */ bl OSDisableInterrupts
/* 8034B63C 80 0D 92 10 */ lwz r0, FatalErrorFlag(r13)
/* 8034B640 2C 00 00 00 */ cmpwi r0, 0
/* 8034B644 41 82 00 0C */ beq lbl_8034B650
/* 8034B648 38 80 FF FF */ li r4, -1
/* 8034B64C 48 00 00 48 */ b lbl_8034B694
lbl_8034B650:
/* 8034B650 80 0D 92 08 */ lwz r0, PausingFlag(r13)
/* 8034B654 2C 00 00 00 */ cmpwi r0, 0
/* 8034B658 41 82 00 0C */ beq lbl_8034B664
/* 8034B65C 38 80 00 08 */ li r4, 8
/* 8034B660 48 00 00 34 */ b lbl_8034B694
lbl_8034B664:
/* 8034B664 80 AD 91 F8 */ lwz r5, executing(r13)
/* 8034B668 28 05 00 00 */ cmplwi r5, 0
/* 8034B66C 40 82 00 0C */ bne lbl_8034B678
/* 8034B670 38 80 00 00 */ li r4, 0
/* 8034B674 48 00 00 20 */ b lbl_8034B694
lbl_8034B678:
/* 8034B678 3C 80 80 45 */ lis r4, DummyCommandBlock@ha /* 0x8044C940@ha */
/* 8034B67C 38 04 C9 40 */ addi r0, r4, DummyCommandBlock@l /* 0x8044C940@l */
/* 8034B680 7C 05 00 40 */ cmplw r5, r0
/* 8034B684 40 82 00 0C */ bne lbl_8034B690
/* 8034B688 38 80 00 00 */ li r4, 0
/* 8034B68C 48 00 00 08 */ b lbl_8034B694
lbl_8034B690:
/* 8034B690 80 85 00 0C */ lwz r4, 0xc(r5)
lbl_8034B694:
/* 8034B694 38 04 00 01 */ addi r0, r4, 1
/* 8034B698 28 00 00 0C */ cmplwi r0, 0xc
/* 8034B69C 41 81 00 68 */ bgt lbl_8034B704
/* 8034B6A0 3C 80 80 3D */ lis r4, lit_1060@ha /* 0x803D1670@ha */
/* 8034B6A4 38 84 16 70 */ addi r4, r4, lit_1060@l /* 0x803D1670@l */
/* 8034B6A8 54 00 10 3A */ slwi r0, r0, 2
/* 8034B6AC 7C 04 00 2E */ lwzx r0, r4, r0
/* 8034B6B0 7C 09 03 A6 */ mtctr r0
/* 8034B6B4 4E 80 04 20 */ bctr
/* 8034B6B8 3B E0 00 01 */ li r31, 1
/* 8034B6BC 48 00 00 48 */ b lbl_8034B704
/* 8034B6C0 3B E0 00 00 */ li r31, 0
/* 8034B6C4 48 00 00 40 */ b lbl_8034B704
/* 8034B6C8 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006000@ha */
/* 8034B6CC 38 84 60 00 */ addi r4, r4, 0x6000 /* 0xCC006000@l */
/* 8034B6D0 80 84 00 04 */ lwz r4, 4(r4)
/* 8034B6D4 54 80 F7 FF */ rlwinm. r0, r4, 0x1e, 0x1f, 0x1f
/* 8034B6D8 40 82 00 0C */ bne lbl_8034B6E4
/* 8034B6DC 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 8034B6E0 41 82 00 0C */ beq lbl_8034B6EC
lbl_8034B6E4:
/* 8034B6E4 3B E0 00 00 */ li r31, 0
/* 8034B6E8 48 00 00 1C */ b lbl_8034B704
lbl_8034B6EC:
/* 8034B6EC 80 0D 92 20 */ lwz r0, ResumeFromHere(r13)
/* 8034B6F0 28 00 00 00 */ cmplwi r0, 0
/* 8034B6F4 41 82 00 0C */ beq lbl_8034B700
/* 8034B6F8 3B E0 00 00 */ li r31, 0
/* 8034B6FC 48 00 00 08 */ b lbl_8034B704
lbl_8034B700:
/* 8034B700 3B E0 00 01 */ li r31, 1
lbl_8034B704:
/* 8034B704 4B FF 20 19 */ bl OSRestoreInterrupts
/* 8034B708 7F E3 FB 78 */ mr r3, r31
/* 8034B70C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8034B710 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8034B714 38 21 00 10 */ addi r1, r1, 0x10
/* 8034B718 7C 08 03 A6 */ mtlr r0
/* 8034B71C 4E 80 00 20 */ blr
@@ -1,22 +0,0 @@
lbl_8034B17C:
/* 8034B17C 7C 08 02 A6 */ mflr r0
/* 8034B180 90 01 00 04 */ stw r0, 4(r1)
/* 8034B184 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034B188 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034B18C 7C 7F 1B 78 */ mr r31, r3
/* 8034B190 4B FF 25 65 */ bl OSDisableInterrupts
/* 8034B194 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8034B198 2C 00 00 03 */ cmpwi r0, 3
/* 8034B19C 40 82 00 0C */ bne lbl_8034B1A8
/* 8034B1A0 3B E0 00 01 */ li r31, 1
/* 8034B1A4 48 00 00 08 */ b lbl_8034B1AC
lbl_8034B1A8:
/* 8034B1A8 7C 1F 03 78 */ mr r31, r0
lbl_8034B1AC:
/* 8034B1AC 4B FF 25 71 */ bl OSRestoreInterrupts
/* 8034B1B0 7F E3 FB 78 */ mr r3, r31
/* 8034B1B4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034B1B8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8034B1BC 38 21 00 18 */ addi r1, r1, 0x18
/* 8034B1C0 7C 08 03 A6 */ mtlr r0
/* 8034B1C4 4E 80 00 20 */ blr
-50
View File
@@ -1,50 +0,0 @@
lbl_8034B1C8:
/* 8034B1C8 7C 08 02 A6 */ mflr r0
/* 8034B1CC 90 01 00 04 */ stw r0, 4(r1)
/* 8034B1D0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034B1D4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034B1D8 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8034B1DC 4B FF 25 19 */ bl OSDisableInterrupts
/* 8034B1E0 80 0D 92 10 */ lwz r0, FatalErrorFlag(r13)
/* 8034B1E4 3B C3 00 00 */ addi r30, r3, 0
/* 8034B1E8 2C 00 00 00 */ cmpwi r0, 0
/* 8034B1EC 41 82 00 0C */ beq lbl_8034B1F8
/* 8034B1F0 3B E0 FF FF */ li r31, -1
/* 8034B1F4 48 00 00 5C */ b lbl_8034B250
lbl_8034B1F8:
/* 8034B1F8 80 0D 92 08 */ lwz r0, PausingFlag(r13)
/* 8034B1FC 2C 00 00 00 */ cmpwi r0, 0
/* 8034B200 41 82 00 0C */ beq lbl_8034B20C
/* 8034B204 3B E0 00 08 */ li r31, 8
/* 8034B208 48 00 00 48 */ b lbl_8034B250
lbl_8034B20C:
/* 8034B20C 83 ED 91 F8 */ lwz r31, executing(r13)
/* 8034B210 28 1F 00 00 */ cmplwi r31, 0
/* 8034B214 40 82 00 0C */ bne lbl_8034B220
/* 8034B218 3B E0 00 00 */ li r31, 0
/* 8034B21C 48 00 00 34 */ b lbl_8034B250
lbl_8034B220:
/* 8034B220 3C 60 80 45 */ lis r3, DummyCommandBlock@ha /* 0x8044C940@ha */
/* 8034B224 38 03 C9 40 */ addi r0, r3, DummyCommandBlock@l /* 0x8044C940@l */
/* 8034B228 7C 1F 00 40 */ cmplw r31, r0
/* 8034B22C 40 82 00 0C */ bne lbl_8034B238
/* 8034B230 3B E0 00 00 */ li r31, 0
/* 8034B234 48 00 00 1C */ b lbl_8034B250
lbl_8034B238:
/* 8034B238 4B FF 24 BD */ bl OSDisableInterrupts
/* 8034B23C 83 FF 00 0C */ lwz r31, 0xc(r31)
/* 8034B240 2C 1F 00 03 */ cmpwi r31, 3
/* 8034B244 40 82 00 08 */ bne lbl_8034B24C
/* 8034B248 3B E0 00 01 */ li r31, 1
lbl_8034B24C:
/* 8034B24C 4B FF 24 D1 */ bl OSRestoreInterrupts
lbl_8034B250:
/* 8034B250 7F C3 F3 78 */ mr r3, r30
/* 8034B254 4B FF 24 C9 */ bl OSRestoreInterrupts
/* 8034B258 7F E3 FB 78 */ mr r3, r31
/* 8034B25C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034B260 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8034B264 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8034B268 38 21 00 18 */ addi r1, r1, 0x18
/* 8034B26C 7C 08 03 A6 */ mtlr r0
/* 8034B270 4E 80 00 20 */ blr
-56
View File
@@ -1,56 +0,0 @@
lbl_8034B068:
/* 8034B068 7C 08 02 A6 */ mflr r0
/* 8034B06C 90 01 00 04 */ stw r0, 4(r1)
/* 8034B070 38 00 00 0E */ li r0, 0xe
/* 8034B074 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8034B078 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8034B07C 3B E3 00 00 */ addi r31, r3, 0
/* 8034B080 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8034B084 90 03 00 08 */ stw r0, 8(r3)
/* 8034B088 38 60 00 20 */ li r3, 0x20
/* 8034B08C 38 00 00 00 */ li r0, 0
/* 8034B090 90 9F 00 18 */ stw r4, 0x18(r31)
/* 8034B094 90 7F 00 14 */ stw r3, 0x14(r31)
/* 8034B098 90 1F 00 20 */ stw r0, 0x20(r31)
/* 8034B09C 90 BF 00 28 */ stw r5, 0x28(r31)
/* 8034B0A0 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
/* 8034B0A4 2C 00 00 00 */ cmpwi r0, 0
/* 8034B0A8 41 82 00 30 */ beq lbl_8034B0D8
/* 8034B0AC 80 7F 00 08 */ lwz r3, 8(r31)
/* 8034B0B0 28 03 00 01 */ cmplwi r3, 1
/* 8034B0B4 41 82 00 18 */ beq lbl_8034B0CC
/* 8034B0B8 38 03 FF FC */ addi r0, r3, -4
/* 8034B0BC 28 00 00 01 */ cmplwi r0, 1
/* 8034B0C0 40 81 00 0C */ ble lbl_8034B0CC
/* 8034B0C4 28 03 00 0E */ cmplwi r3, 0xe
/* 8034B0C8 40 82 00 10 */ bne lbl_8034B0D8
lbl_8034B0CC:
/* 8034B0CC 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 8034B0D0 80 9F 00 14 */ lwz r4, 0x14(r31)
/* 8034B0D4 4B FF 04 AD */ bl DCInvalidateRange
lbl_8034B0D8:
/* 8034B0D8 4B FF 26 1D */ bl OSDisableInterrupts
/* 8034B0DC 38 00 00 02 */ li r0, 2
/* 8034B0E0 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8034B0E4 3B C3 00 00 */ addi r30, r3, 0
/* 8034B0E8 38 9F 00 00 */ addi r4, r31, 0
/* 8034B0EC 38 60 00 02 */ li r3, 2
/* 8034B0F0 48 00 07 BD */ bl __DVDPushWaitingQueue
/* 8034B0F4 80 0D 91 F8 */ lwz r0, executing(r13)
/* 8034B0F8 3B E3 00 00 */ addi r31, r3, 0
/* 8034B0FC 28 00 00 00 */ cmplwi r0, 0
/* 8034B100 40 82 00 14 */ bne lbl_8034B114
/* 8034B104 80 0D 92 04 */ lwz r0, PauseFlag(r13)
/* 8034B108 2C 00 00 00 */ cmpwi r0, 0
/* 8034B10C 40 82 00 08 */ bne lbl_8034B114
/* 8034B110 4B FF EF 9D */ bl stateReady
lbl_8034B114:
/* 8034B114 7F C3 F3 78 */ mr r3, r30
/* 8034B118 4B FF 26 05 */ bl OSRestoreInterrupts
/* 8034B11C 7F E3 FB 78 */ mr r3, r31
/* 8034B120 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8034B124 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8034B128 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8034B12C 38 21 00 28 */ addi r1, r1, 0x28
/* 8034B130 7C 08 03 A6 */ mtlr r0
/* 8034B134 4E 80 00 20 */ blr
@@ -1,56 +0,0 @@
lbl_8034AE08:
/* 8034AE08 7C 08 02 A6 */ mflr r0
/* 8034AE0C 90 01 00 04 */ stw r0, 4(r1)
/* 8034AE10 38 00 00 04 */ li r0, 4
/* 8034AE14 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8034AE18 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8034AE1C 3B E3 00 00 */ addi r31, r3, 0
/* 8034AE20 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8034AE24 90 03 00 08 */ stw r0, 8(r3)
/* 8034AE28 38 00 00 00 */ li r0, 0
/* 8034AE2C 90 83 00 18 */ stw r4, 0x18(r3)
/* 8034AE30 90 A3 00 14 */ stw r5, 0x14(r3)
/* 8034AE34 90 C3 00 10 */ stw r6, 0x10(r3)
/* 8034AE38 90 03 00 20 */ stw r0, 0x20(r3)
/* 8034AE3C 90 E3 00 28 */ stw r7, 0x28(r3)
/* 8034AE40 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
/* 8034AE44 2C 00 00 00 */ cmpwi r0, 0
/* 8034AE48 41 82 00 30 */ beq lbl_8034AE78
/* 8034AE4C 80 7F 00 08 */ lwz r3, 8(r31)
/* 8034AE50 28 03 00 01 */ cmplwi r3, 1
/* 8034AE54 41 82 00 18 */ beq lbl_8034AE6C
/* 8034AE58 38 03 FF FC */ addi r0, r3, -4
/* 8034AE5C 28 00 00 01 */ cmplwi r0, 1
/* 8034AE60 40 81 00 0C */ ble lbl_8034AE6C
/* 8034AE64 28 03 00 0E */ cmplwi r3, 0xe
/* 8034AE68 40 82 00 10 */ bne lbl_8034AE78
lbl_8034AE6C:
/* 8034AE6C 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 8034AE70 80 9F 00 14 */ lwz r4, 0x14(r31)
/* 8034AE74 4B FF 07 0D */ bl DCInvalidateRange
lbl_8034AE78:
/* 8034AE78 4B FF 28 7D */ bl OSDisableInterrupts
/* 8034AE7C 38 00 00 02 */ li r0, 2
/* 8034AE80 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8034AE84 3B C3 00 00 */ addi r30, r3, 0
/* 8034AE88 38 9F 00 00 */ addi r4, r31, 0
/* 8034AE8C 38 60 00 02 */ li r3, 2
/* 8034AE90 48 00 0A 1D */ bl __DVDPushWaitingQueue
/* 8034AE94 80 0D 91 F8 */ lwz r0, executing(r13)
/* 8034AE98 3B E3 00 00 */ addi r31, r3, 0
/* 8034AE9C 28 00 00 00 */ cmplwi r0, 0
/* 8034AEA0 40 82 00 14 */ bne lbl_8034AEB4
/* 8034AEA4 80 0D 92 04 */ lwz r0, PauseFlag(r13)
/* 8034AEA8 2C 00 00 00 */ cmpwi r0, 0
/* 8034AEAC 40 82 00 08 */ bne lbl_8034AEB4
/* 8034AEB0 4B FF F1 FD */ bl stateReady
lbl_8034AEB4:
/* 8034AEB4 7F C3 F3 78 */ mr r3, r30
/* 8034AEB8 4B FF 28 65 */ bl OSRestoreInterrupts
/* 8034AEBC 7F E3 FB 78 */ mr r3, r31
/* 8034AEC0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8034AEC4 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8034AEC8 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8034AECC 38 21 00 30 */ addi r1, r1, 0x30
/* 8034AED0 7C 08 03 A6 */ mtlr r0
/* 8034AED4 4E 80 00 20 */ blr
-59
View File
@@ -1,59 +0,0 @@
lbl_8034AD2C:
/* 8034AD2C 7C 08 02 A6 */ mflr r0
/* 8034AD30 90 01 00 04 */ stw r0, 4(r1)
/* 8034AD34 38 00 00 01 */ li r0, 1
/* 8034AD38 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 8034AD3C 93 E1 00 34 */ stw r31, 0x34(r1)
/* 8034AD40 3B E8 00 00 */ addi r31, r8, 0
/* 8034AD44 93 C1 00 30 */ stw r30, 0x30(r1)
/* 8034AD48 93 A1 00 2C */ stw r29, 0x2c(r1)
/* 8034AD4C 3B A3 00 00 */ addi r29, r3, 0
/* 8034AD50 90 03 00 08 */ stw r0, 8(r3)
/* 8034AD54 38 00 00 00 */ li r0, 0
/* 8034AD58 90 83 00 18 */ stw r4, 0x18(r3)
/* 8034AD5C 90 A3 00 14 */ stw r5, 0x14(r3)
/* 8034AD60 90 C3 00 10 */ stw r6, 0x10(r3)
/* 8034AD64 90 03 00 20 */ stw r0, 0x20(r3)
/* 8034AD68 90 E3 00 28 */ stw r7, 0x28(r3)
/* 8034AD6C 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
/* 8034AD70 2C 00 00 00 */ cmpwi r0, 0
/* 8034AD74 41 82 00 30 */ beq lbl_8034ADA4
/* 8034AD78 80 7D 00 08 */ lwz r3, 8(r29)
/* 8034AD7C 28 03 00 01 */ cmplwi r3, 1
/* 8034AD80 41 82 00 18 */ beq lbl_8034AD98
/* 8034AD84 38 03 FF FC */ addi r0, r3, -4
/* 8034AD88 28 00 00 01 */ cmplwi r0, 1
/* 8034AD8C 40 81 00 0C */ ble lbl_8034AD98
/* 8034AD90 28 03 00 0E */ cmplwi r3, 0xe
/* 8034AD94 40 82 00 10 */ bne lbl_8034ADA4
lbl_8034AD98:
/* 8034AD98 80 7D 00 18 */ lwz r3, 0x18(r29)
/* 8034AD9C 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 8034ADA0 4B FF 07 E1 */ bl DCInvalidateRange
lbl_8034ADA4:
/* 8034ADA4 4B FF 29 51 */ bl OSDisableInterrupts
/* 8034ADA8 38 00 00 02 */ li r0, 2
/* 8034ADAC 90 1D 00 0C */ stw r0, 0xc(r29)
/* 8034ADB0 3B C3 00 00 */ addi r30, r3, 0
/* 8034ADB4 38 7F 00 00 */ addi r3, r31, 0
/* 8034ADB8 38 9D 00 00 */ addi r4, r29, 0
/* 8034ADBC 48 00 0A F1 */ bl __DVDPushWaitingQueue
/* 8034ADC0 80 0D 91 F8 */ lwz r0, executing(r13)
/* 8034ADC4 3B E3 00 00 */ addi r31, r3, 0
/* 8034ADC8 28 00 00 00 */ cmplwi r0, 0
/* 8034ADCC 40 82 00 14 */ bne lbl_8034ADE0
/* 8034ADD0 80 0D 92 04 */ lwz r0, PauseFlag(r13)
/* 8034ADD4 2C 00 00 00 */ cmpwi r0, 0
/* 8034ADD8 40 82 00 08 */ bne lbl_8034ADE0
/* 8034ADDC 4B FF F2 D1 */ bl stateReady
lbl_8034ADE0:
/* 8034ADE0 7F C3 F3 78 */ mr r3, r30
/* 8034ADE4 4B FF 29 39 */ bl OSRestoreInterrupts
/* 8034ADE8 7F E3 FB 78 */ mr r3, r31
/* 8034ADEC 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8034ADF0 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 8034ADF4 83 C1 00 30 */ lwz r30, 0x30(r1)
/* 8034ADF8 83 A1 00 2C */ lwz r29, 0x2c(r1)
/* 8034ADFC 38 21 00 38 */ addi r1, r1, 0x38
/* 8034AE00 7C 08 03 A6 */ mtlr r0
/* 8034AE04 4E 80 00 20 */ blr
-57
View File
@@ -1,57 +0,0 @@
lbl_8034AED8:
/* 8034AED8 7C 08 02 A6 */ mflr r0
/* 8034AEDC 90 01 00 04 */ stw r0, 4(r1)
/* 8034AEE0 38 00 00 05 */ li r0, 5
/* 8034AEE4 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8034AEE8 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8034AEEC 3B E3 00 00 */ addi r31, r3, 0
/* 8034AEF0 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8034AEF4 90 03 00 08 */ stw r0, 8(r3)
/* 8034AEF8 38 60 00 20 */ li r3, 0x20
/* 8034AEFC 38 00 00 00 */ li r0, 0
/* 8034AF00 90 9F 00 18 */ stw r4, 0x18(r31)
/* 8034AF04 90 7F 00 14 */ stw r3, 0x14(r31)
/* 8034AF08 90 1F 00 10 */ stw r0, 0x10(r31)
/* 8034AF0C 90 1F 00 20 */ stw r0, 0x20(r31)
/* 8034AF10 90 BF 00 28 */ stw r5, 0x28(r31)
/* 8034AF14 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
/* 8034AF18 2C 00 00 00 */ cmpwi r0, 0
/* 8034AF1C 41 82 00 30 */ beq lbl_8034AF4C
/* 8034AF20 80 7F 00 08 */ lwz r3, 8(r31)
/* 8034AF24 28 03 00 01 */ cmplwi r3, 1
/* 8034AF28 41 82 00 18 */ beq lbl_8034AF40
/* 8034AF2C 38 03 FF FC */ addi r0, r3, -4
/* 8034AF30 28 00 00 01 */ cmplwi r0, 1
/* 8034AF34 40 81 00 0C */ ble lbl_8034AF40
/* 8034AF38 28 03 00 0E */ cmplwi r3, 0xe
/* 8034AF3C 40 82 00 10 */ bne lbl_8034AF4C
lbl_8034AF40:
/* 8034AF40 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 8034AF44 80 9F 00 14 */ lwz r4, 0x14(r31)
/* 8034AF48 4B FF 06 39 */ bl DCInvalidateRange
lbl_8034AF4C:
/* 8034AF4C 4B FF 27 A9 */ bl OSDisableInterrupts
/* 8034AF50 38 00 00 02 */ li r0, 2
/* 8034AF54 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8034AF58 3B C3 00 00 */ addi r30, r3, 0
/* 8034AF5C 38 9F 00 00 */ addi r4, r31, 0
/* 8034AF60 38 60 00 02 */ li r3, 2
/* 8034AF64 48 00 09 49 */ bl __DVDPushWaitingQueue
/* 8034AF68 80 0D 91 F8 */ lwz r0, executing(r13)
/* 8034AF6C 3B E3 00 00 */ addi r31, r3, 0
/* 8034AF70 28 00 00 00 */ cmplwi r0, 0
/* 8034AF74 40 82 00 14 */ bne lbl_8034AF88
/* 8034AF78 80 0D 92 04 */ lwz r0, PauseFlag(r13)
/* 8034AF7C 2C 00 00 00 */ cmpwi r0, 0
/* 8034AF80 40 82 00 08 */ bne lbl_8034AF88
/* 8034AF84 4B FF F1 29 */ bl stateReady
lbl_8034AF88:
/* 8034AF88 7F C3 F3 78 */ mr r3, r30
/* 8034AF8C 4B FF 27 91 */ bl OSRestoreInterrupts
/* 8034AF90 7F E3 FB 78 */ mr r3, r31
/* 8034AF94 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8034AF98 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8034AF9C 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8034AFA0 38 21 00 28 */ addi r1, r1, 0x28
/* 8034AFA4 7C 08 03 A6 */ mtlr r0
/* 8034AFA8 4E 80 00 20 */ blr
@@ -1,81 +0,0 @@
lbl_8034B720:
/* 8034B720 7C 08 02 A6 */ mflr r0
/* 8034B724 90 01 00 04 */ stw r0, 4(r1)
/* 8034B728 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8034B72C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034B730 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8034B734 7C 7E 1B 78 */ mr r30, r3
/* 8034B738 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8034B73C 4B FF 1F B9 */ bl OSDisableInterrupts
/* 8034B740 7C 7D 1B 78 */ mr r29, r3
/* 8034B744 48 00 01 31 */ bl __DVDClearWaitingQueue
/* 8034B748 80 0D 92 18 */ lwz r0, Canceling(r13)
/* 8034B74C 28 00 00 00 */ cmplwi r0, 0
/* 8034B750 41 82 00 0C */ beq lbl_8034B75C
/* 8034B754 93 CD 92 1C */ stw r30, CancelCallback(r13)
/* 8034B758 48 00 00 C0 */ b lbl_8034B818
lbl_8034B75C:
/* 8034B75C 80 6D 91 F8 */ lwz r3, executing(r13)
/* 8034B760 28 03 00 00 */ cmplwi r3, 0
/* 8034B764 41 82 00 0C */ beq lbl_8034B770
/* 8034B768 38 00 00 00 */ li r0, 0
/* 8034B76C 90 03 00 28 */ stw r0, 0x28(r3)
lbl_8034B770:
/* 8034B770 4B FF 1F 85 */ bl OSDisableInterrupts
/* 8034B774 7C 7F 1B 78 */ mr r31, r3
/* 8034B778 4B FF 1F 7D */ bl OSDisableInterrupts
/* 8034B77C 80 0D 91 F8 */ lwz r0, executing(r13)
/* 8034B780 38 80 00 01 */ li r4, 1
/* 8034B784 90 8D 92 04 */ stw r4, PauseFlag(r13)
/* 8034B788 28 00 00 00 */ cmplwi r0, 0
/* 8034B78C 40 82 00 08 */ bne lbl_8034B794
/* 8034B790 90 8D 92 08 */ stw r4, PausingFlag(r13)
lbl_8034B794:
/* 8034B794 4B FF 1F 89 */ bl OSRestoreInterrupts
/* 8034B798 48 00 00 0C */ b lbl_8034B7A4
lbl_8034B79C:
/* 8034B79C 38 80 00 00 */ li r4, 0
/* 8034B7A0 4B FF FB 35 */ bl DVDCancelAsync
lbl_8034B7A4:
/* 8034B7A4 48 00 01 71 */ bl __DVDPopWaitingQueue
/* 8034B7A8 28 03 00 00 */ cmplwi r3, 0
/* 8034B7AC 40 82 FF F0 */ bne lbl_8034B79C
/* 8034B7B0 80 6D 91 F8 */ lwz r3, executing(r13)
/* 8034B7B4 28 03 00 00 */ cmplwi r3, 0
/* 8034B7B8 41 82 00 10 */ beq lbl_8034B7C8
/* 8034B7BC 7F C4 F3 78 */ mr r4, r30
/* 8034B7C0 4B FF FB 15 */ bl DVDCancelAsync
/* 8034B7C4 48 00 00 20 */ b lbl_8034B7E4
lbl_8034B7C8:
/* 8034B7C8 28 1E 00 00 */ cmplwi r30, 0
/* 8034B7CC 41 82 00 18 */ beq lbl_8034B7E4
/* 8034B7D0 39 9E 00 00 */ addi r12, r30, 0
/* 8034B7D4 7D 88 03 A6 */ mtlr r12
/* 8034B7D8 38 60 00 00 */ li r3, 0
/* 8034B7DC 38 80 00 00 */ li r4, 0
/* 8034B7E0 4E 80 00 21 */ blrl
lbl_8034B7E4:
/* 8034B7E4 4B FF 1F 11 */ bl OSDisableInterrupts
/* 8034B7E8 38 80 00 00 */ li r4, 0
/* 8034B7EC 90 8D 92 04 */ stw r4, PauseFlag(r13)
/* 8034B7F0 7C 7E 1B 78 */ mr r30, r3
/* 8034B7F4 80 0D 92 08 */ lwz r0, PausingFlag(r13)
/* 8034B7F8 2C 00 00 00 */ cmpwi r0, 0
/* 8034B7FC 41 82 00 0C */ beq lbl_8034B808
/* 8034B800 90 8D 92 08 */ stw r4, PausingFlag(r13)
/* 8034B804 4B FF E8 A9 */ bl stateReady
lbl_8034B808:
/* 8034B808 7F C3 F3 78 */ mr r3, r30
/* 8034B80C 4B FF 1F 11 */ bl OSRestoreInterrupts
/* 8034B810 7F E3 FB 78 */ mr r3, r31
/* 8034B814 4B FF 1F 09 */ bl OSRestoreInterrupts
lbl_8034B818:
/* 8034B818 7F A3 EB 78 */ mr r3, r29
/* 8034B81C 4B FF 1F 01 */ bl OSRestoreInterrupts
/* 8034B820 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034B824 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8034B828 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8034B82C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8034B830 38 21 00 20 */ addi r1, r1, 0x20
/* 8034B834 7C 08 03 A6 */ mtlr r0
/* 8034B838 4E 80 00 20 */ blr
-462
View File
@@ -1,462 +0,0 @@
lbl_8034A6D4:
/* 8034A6D4 7C 08 02 A6 */ mflr r0
/* 8034A6D8 28 03 00 10 */ cmplwi r3, 0x10
/* 8034A6DC 90 01 00 04 */ stw r0, 4(r1)
/* 8034A6E0 3C 80 80 45 */ lis r4, BB2@ha /* 0x8044C900@ha */
/* 8034A6E4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034A6E8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034A6EC 3B E4 C9 00 */ addi r31, r4, BB2@l /* 0x8044C900@l */
/* 8034A6F0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8034A6F4 40 82 00 20 */ bne lbl_8034A714
/* 8034A6F8 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234568@ha */
/* 8034A6FC 38 63 45 68 */ addi r3, r3, 0x4568 /* 0x01234568@l */
/* 8034A700 48 00 14 89 */ bl __DVDStoreErrorCode
/* 8034A704 48 00 0A 35 */ bl DVDReset
/* 8034A708 38 60 00 00 */ li r3, 0
/* 8034A70C 4B FF EB D1 */ bl cbForStateError
/* 8034A710 48 00 06 04 */ b lbl_8034AD14
lbl_8034A714:
/* 8034A714 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034A718 28 00 00 03 */ cmplwi r0, 3
/* 8034A71C 41 82 00 10 */ beq lbl_8034A72C
/* 8034A720 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034A724 28 00 00 0F */ cmplwi r0, 0xf
/* 8034A728 40 82 00 E0 */ bne lbl_8034A808
lbl_8034A72C:
/* 8034A72C 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 8034A730 41 82 00 20 */ beq lbl_8034A750
/* 8034A734 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234567@ha */
/* 8034A738 38 63 45 67 */ addi r3, r3, 0x4567 /* 0x01234567@l */
/* 8034A73C 48 00 14 4D */ bl __DVDStoreErrorCode
/* 8034A740 3C 60 80 35 */ lis r3, cbForStateError@ha /* 0x803492DC@ha */
/* 8034A744 38 63 92 DC */ addi r3, r3, cbForStateError@l /* 0x803492DC@l */
/* 8034A748 4B FF D8 CD */ bl DVDLowStopMotor
/* 8034A74C 48 00 05 C8 */ b lbl_8034AD14
lbl_8034A750:
/* 8034A750 38 00 00 00 */ li r0, 0
/* 8034A754 90 0D 92 2C */ stw r0, NumInternalRetry(r13)
/* 8034A758 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034A75C 28 00 00 0F */ cmplwi r0, 0xf
/* 8034A760 40 82 00 0C */ bne lbl_8034A76C
/* 8034A764 38 00 00 01 */ li r0, 1
/* 8034A768 90 0D 92 30 */ stw r0, ResetRequired(r13)
lbl_8034A76C:
/* 8034A76C 80 0D 92 18 */ lwz r0, Canceling(r13)
/* 8034A770 28 00 00 00 */ cmplwi r0, 0
/* 8034A774 41 82 00 6C */ beq lbl_8034A7E0
/* 8034A778 38 00 00 07 */ li r0, 7
/* 8034A77C 83 CD 91 F8 */ lwz r30, executing(r13)
/* 8034A780 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
/* 8034A784 38 7F 00 40 */ addi r3, r31, 0x40
/* 8034A788 38 00 00 00 */ li r0, 0
/* 8034A78C 90 0D 92 18 */ stw r0, Canceling(r13)
/* 8034A790 38 00 00 0A */ li r0, 0xa
/* 8034A794 90 6D 91 F8 */ stw r3, executing(r13)
/* 8034A798 90 1E 00 0C */ stw r0, 0xc(r30)
/* 8034A79C 81 9E 00 28 */ lwz r12, 0x28(r30)
/* 8034A7A0 28 0C 00 00 */ cmplwi r12, 0
/* 8034A7A4 41 82 00 14 */ beq lbl_8034A7B8
/* 8034A7A8 7D 88 03 A6 */ mtlr r12
/* 8034A7AC 38 9E 00 00 */ addi r4, r30, 0
/* 8034A7B0 38 60 FF FD */ li r3, -3
/* 8034A7B4 4E 80 00 21 */ blrl
lbl_8034A7B8:
/* 8034A7B8 81 8D 92 1C */ lwz r12, CancelCallback(r13)
/* 8034A7BC 28 0C 00 00 */ cmplwi r12, 0
/* 8034A7C0 41 82 00 14 */ beq lbl_8034A7D4
/* 8034A7C4 7D 88 03 A6 */ mtlr r12
/* 8034A7C8 38 9E 00 00 */ addi r4, r30, 0
/* 8034A7CC 38 60 00 00 */ li r3, 0
/* 8034A7D0 4E 80 00 21 */ blrl
lbl_8034A7D4:
/* 8034A7D4 4B FF F8 D9 */ bl stateReady
/* 8034A7D8 38 00 00 01 */ li r0, 1
/* 8034A7DC 48 00 00 08 */ b lbl_8034A7E4
lbl_8034A7E0:
/* 8034A7E0 38 00 00 00 */ li r0, 0
lbl_8034A7E4:
/* 8034A7E4 2C 00 00 00 */ cmpwi r0, 0
/* 8034A7E8 40 82 05 2C */ bne lbl_8034AD14
/* 8034A7EC 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034A7F0 38 00 00 07 */ li r0, 7
/* 8034A7F4 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
/* 8034A7F8 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034A7FC 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */
/* 8034A800 4B FF D7 45 */ bl DVDLowWaitCoverClose
/* 8034A804 48 00 05 10 */ b lbl_8034AD14
lbl_8034A808:
/* 8034A808 80 8D 92 14 */ lwz r4, CurrCommand(r13)
/* 8034A80C 28 04 00 01 */ cmplwi r4, 1
/* 8034A810 41 82 00 18 */ beq lbl_8034A828
/* 8034A814 38 04 FF FC */ addi r0, r4, -4
/* 8034A818 28 00 00 01 */ cmplwi r0, 1
/* 8034A81C 40 81 00 0C */ ble lbl_8034A828
/* 8034A820 28 04 00 0E */ cmplwi r4, 0xe
/* 8034A824 40 82 00 0C */ bne lbl_8034A830
lbl_8034A828:
/* 8034A828 38 00 00 01 */ li r0, 1
/* 8034A82C 48 00 00 1C */ b lbl_8034A848
lbl_8034A830:
/* 8034A830 80 0D 84 7C */ lwz r0, DmaCommand(r13)
/* 8034A834 7C 04 00 40 */ cmplw r4, r0
/* 8034A838 40 82 00 0C */ bne lbl_8034A844
/* 8034A83C 38 00 00 01 */ li r0, 1
/* 8034A840 48 00 00 08 */ b lbl_8034A848
lbl_8034A844:
/* 8034A844 38 00 00 00 */ li r0, 0
lbl_8034A848:
/* 8034A848 2C 00 00 00 */ cmpwi r0, 0
/* 8034A84C 41 82 00 28 */ beq lbl_8034A874
/* 8034A850 80 CD 91 F8 */ lwz r6, executing(r13)
/* 8034A854 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006000@ha */
/* 8034A858 38 84 60 00 */ addi r4, r4, 0x6000 /* 0xCC006000@l */
/* 8034A85C 80 84 00 18 */ lwz r4, 0x18(r4)
/* 8034A860 80 06 00 1C */ lwz r0, 0x1c(r6)
/* 8034A864 80 A6 00 20 */ lwz r5, 0x20(r6)
/* 8034A868 7C 04 00 50 */ subf r0, r4, r0
/* 8034A86C 7C 05 02 14 */ add r0, r5, r0
/* 8034A870 90 06 00 20 */ stw r0, 0x20(r6)
lbl_8034A874:
/* 8034A874 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c
/* 8034A878 41 82 00 60 */ beq lbl_8034A8D8
/* 8034A87C 83 CD 91 F8 */ lwz r30, executing(r13)
/* 8034A880 38 7F 00 40 */ addi r3, r31, 0x40
/* 8034A884 38 00 00 00 */ li r0, 0
/* 8034A888 90 0D 92 18 */ stw r0, Canceling(r13)
/* 8034A88C 38 00 00 0A */ li r0, 0xa
/* 8034A890 90 6D 91 F8 */ stw r3, executing(r13)
/* 8034A894 90 1E 00 0C */ stw r0, 0xc(r30)
/* 8034A898 81 9E 00 28 */ lwz r12, 0x28(r30)
/* 8034A89C 28 0C 00 00 */ cmplwi r12, 0
/* 8034A8A0 41 82 00 14 */ beq lbl_8034A8B4
/* 8034A8A4 7D 88 03 A6 */ mtlr r12
/* 8034A8A8 38 9E 00 00 */ addi r4, r30, 0
/* 8034A8AC 38 60 FF FD */ li r3, -3
/* 8034A8B0 4E 80 00 21 */ blrl
lbl_8034A8B4:
/* 8034A8B4 81 8D 92 1C */ lwz r12, CancelCallback(r13)
/* 8034A8B8 28 0C 00 00 */ cmplwi r12, 0
/* 8034A8BC 41 82 00 14 */ beq lbl_8034A8D0
/* 8034A8C0 7D 88 03 A6 */ mtlr r12
/* 8034A8C4 38 9E 00 00 */ addi r4, r30, 0
/* 8034A8C8 38 60 00 00 */ li r3, 0
/* 8034A8CC 4E 80 00 21 */ blrl
lbl_8034A8D0:
/* 8034A8D0 4B FF F7 DD */ bl stateReady
/* 8034A8D4 48 00 04 40 */ b lbl_8034AD14
lbl_8034A8D8:
/* 8034A8D8 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8034A8DC 41 82 03 14 */ beq lbl_8034ABF0
/* 8034A8E0 38 A0 00 00 */ li r5, 0
/* 8034A8E4 90 AD 92 2C */ stw r5, NumInternalRetry(r13)
/* 8034A8E8 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034A8EC 28 00 00 10 */ cmplwi r0, 0x10
/* 8034A8F0 40 82 00 3C */ bne lbl_8034A92C
/* 8034A8F4 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034A8F8 38 1F 00 40 */ addi r0, r31, 0x40
/* 8034A8FC 38 60 00 01 */ li r3, 1
/* 8034A900 90 6D 92 38 */ stw r3, MotorState(r13)
/* 8034A904 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034A908 90 A4 00 0C */ stw r5, 0xc(r4)
/* 8034A90C 81 84 00 28 */ lwz r12, 0x28(r4)
/* 8034A910 28 0C 00 00 */ cmplwi r12, 0
/* 8034A914 41 82 00 10 */ beq lbl_8034A924
/* 8034A918 7D 88 03 A6 */ mtlr r12
/* 8034A91C 38 60 00 00 */ li r3, 0
/* 8034A920 4E 80 00 21 */ blrl
lbl_8034A924:
/* 8034A924 4B FF F7 89 */ bl stateReady
/* 8034A928 48 00 03 EC */ b lbl_8034AD14
lbl_8034A92C:
/* 8034A92C 80 0D 92 18 */ lwz r0, Canceling(r13)
/* 8034A930 28 00 00 00 */ cmplwi r0, 0
/* 8034A934 41 82 00 60 */ beq lbl_8034A994
/* 8034A938 90 AD 92 20 */ stw r5, ResumeFromHere(r13)
/* 8034A93C 38 7F 00 40 */ addi r3, r31, 0x40
/* 8034A940 83 CD 91 F8 */ lwz r30, executing(r13)
/* 8034A944 38 00 00 0A */ li r0, 0xa
/* 8034A948 90 AD 92 18 */ stw r5, Canceling(r13)
/* 8034A94C 90 6D 91 F8 */ stw r3, executing(r13)
/* 8034A950 90 1E 00 0C */ stw r0, 0xc(r30)
/* 8034A954 81 9E 00 28 */ lwz r12, 0x28(r30)
/* 8034A958 28 0C 00 00 */ cmplwi r12, 0
/* 8034A95C 41 82 00 14 */ beq lbl_8034A970
/* 8034A960 7D 88 03 A6 */ mtlr r12
/* 8034A964 38 9E 00 00 */ addi r4, r30, 0
/* 8034A968 38 60 FF FD */ li r3, -3
/* 8034A96C 4E 80 00 21 */ blrl
lbl_8034A970:
/* 8034A970 81 8D 92 1C */ lwz r12, CancelCallback(r13)
/* 8034A974 28 0C 00 00 */ cmplwi r12, 0
/* 8034A978 41 82 00 14 */ beq lbl_8034A98C
/* 8034A97C 7D 88 03 A6 */ mtlr r12
/* 8034A980 38 9E 00 00 */ addi r4, r30, 0
/* 8034A984 38 60 00 00 */ li r3, 0
/* 8034A988 4E 80 00 21 */ blrl
lbl_8034A98C:
/* 8034A98C 4B FF F7 21 */ bl stateReady
/* 8034A990 38 A0 00 01 */ li r5, 1
lbl_8034A994:
/* 8034A994 2C 05 00 00 */ cmpwi r5, 0
/* 8034A998 40 82 03 7C */ bne lbl_8034AD14
/* 8034A99C 80 6D 92 14 */ lwz r3, CurrCommand(r13)
/* 8034A9A0 28 03 00 01 */ cmplwi r3, 1
/* 8034A9A4 41 82 00 18 */ beq lbl_8034A9BC
/* 8034A9A8 38 03 FF FC */ addi r0, r3, -4
/* 8034A9AC 28 00 00 01 */ cmplwi r0, 1
/* 8034A9B0 40 81 00 0C */ ble lbl_8034A9BC
/* 8034A9B4 28 03 00 0E */ cmplwi r3, 0xe
/* 8034A9B8 40 82 00 0C */ bne lbl_8034A9C4
lbl_8034A9BC:
/* 8034A9BC 38 00 00 01 */ li r0, 1
/* 8034A9C0 48 00 00 1C */ b lbl_8034A9DC
lbl_8034A9C4:
/* 8034A9C4 80 0D 84 7C */ lwz r0, DmaCommand(r13)
/* 8034A9C8 7C 03 00 40 */ cmplw r3, r0
/* 8034A9CC 40 82 00 0C */ bne lbl_8034A9D8
/* 8034A9D0 38 00 00 01 */ li r0, 1
/* 8034A9D4 48 00 00 08 */ b lbl_8034A9DC
lbl_8034A9D8:
/* 8034A9D8 38 00 00 00 */ li r0, 0
lbl_8034A9DC:
/* 8034A9DC 2C 00 00 00 */ cmpwi r0, 0
/* 8034A9E0 41 82 00 54 */ beq lbl_8034AA34
/* 8034A9E4 80 6D 91 F8 */ lwz r3, executing(r13)
/* 8034A9E8 80 83 00 20 */ lwz r4, 0x20(r3)
/* 8034A9EC 80 03 00 14 */ lwz r0, 0x14(r3)
/* 8034A9F0 7C 04 00 40 */ cmplw r4, r0
/* 8034A9F4 41 82 00 0C */ beq lbl_8034AA00
/* 8034A9F8 4B FF F9 9D */ bl stateBusy
/* 8034A9FC 48 00 03 18 */ b lbl_8034AD14
lbl_8034AA00:
/* 8034AA00 38 1F 00 40 */ addi r0, r31, 0x40
/* 8034AA04 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034AA08 38 00 00 00 */ li r0, 0
/* 8034AA0C 38 83 00 00 */ addi r4, r3, 0
/* 8034AA10 90 03 00 0C */ stw r0, 0xc(r3)
/* 8034AA14 81 83 00 28 */ lwz r12, 0x28(r3)
/* 8034AA18 28 0C 00 00 */ cmplwi r12, 0
/* 8034AA1C 41 82 00 10 */ beq lbl_8034AA2C
/* 8034AA20 80 64 00 20 */ lwz r3, 0x20(r4)
/* 8034AA24 7D 88 03 A6 */ mtlr r12
/* 8034AA28 4E 80 00 21 */ blrl
lbl_8034AA2C:
/* 8034AA2C 4B FF F6 81 */ bl stateReady
/* 8034AA30 48 00 02 E4 */ b lbl_8034AD14
lbl_8034AA34:
/* 8034AA34 80 8D 92 14 */ lwz r4, CurrCommand(r13)
/* 8034AA38 38 04 FF F7 */ addi r0, r4, -9
/* 8034AA3C 28 00 00 03 */ cmplwi r0, 3
/* 8034AA40 41 81 00 0C */ bgt lbl_8034AA4C
/* 8034AA44 38 00 00 01 */ li r0, 1
/* 8034AA48 48 00 00 48 */ b lbl_8034AA90
lbl_8034AA4C:
/* 8034AA4C 3C 60 80 3D */ lis r3, ImmCommand@ha /* 0x803D15EC@ha */
/* 8034AA50 84 03 15 EC */ lwzu r0, ImmCommand@l(r3) /* 0x803D15EC@l */
/* 8034AA54 7C 04 00 40 */ cmplw r4, r0
/* 8034AA58 40 82 00 0C */ bne lbl_8034AA64
/* 8034AA5C 38 00 00 01 */ li r0, 1
/* 8034AA60 48 00 00 30 */ b lbl_8034AA90
lbl_8034AA64:
/* 8034AA64 84 03 00 04 */ lwzu r0, 4(r3)
/* 8034AA68 7C 04 00 40 */ cmplw r4, r0
/* 8034AA6C 40 82 00 0C */ bne lbl_8034AA78
/* 8034AA70 38 00 00 01 */ li r0, 1
/* 8034AA74 48 00 00 1C */ b lbl_8034AA90
lbl_8034AA78:
/* 8034AA78 80 03 00 04 */ lwz r0, 4(r3)
/* 8034AA7C 7C 04 00 40 */ cmplw r4, r0
/* 8034AA80 40 82 00 0C */ bne lbl_8034AA8C
/* 8034AA84 38 00 00 01 */ li r0, 1
/* 8034AA88 48 00 00 08 */ b lbl_8034AA90
lbl_8034AA8C:
/* 8034AA8C 38 00 00 00 */ li r0, 0
lbl_8034AA90:
/* 8034AA90 2C 00 00 00 */ cmpwi r0, 0
/* 8034AA94 41 82 00 68 */ beq lbl_8034AAFC
/* 8034AA98 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034AA9C 28 00 00 0B */ cmplwi r0, 0xb
/* 8034AAA0 41 82 00 10 */ beq lbl_8034AAB0
/* 8034AAA4 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034AAA8 28 00 00 0A */ cmplwi r0, 0xa
/* 8034AAAC 40 82 00 14 */ bne lbl_8034AAC0
lbl_8034AAB0:
/* 8034AAB0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006020@ha */
/* 8034AAB4 80 03 60 20 */ lwz r0, 0x6020(r3) /* 0xCC006020@l */
/* 8034AAB8 54 03 10 3A */ slwi r3, r0, 2
/* 8034AABC 48 00 00 10 */ b lbl_8034AACC
lbl_8034AAC0:
/* 8034AAC0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006000@ha */
/* 8034AAC4 38 63 60 00 */ addi r3, r3, 0x6000 /* 0xCC006000@l */
/* 8034AAC8 80 63 00 20 */ lwz r3, 0x20(r3)
lbl_8034AACC:
/* 8034AACC 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034AAD0 38 BF 00 40 */ addi r5, r31, 0x40
/* 8034AAD4 38 00 00 00 */ li r0, 0
/* 8034AAD8 90 AD 91 F8 */ stw r5, executing(r13)
/* 8034AADC 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034AAE0 81 84 00 28 */ lwz r12, 0x28(r4)
/* 8034AAE4 28 0C 00 00 */ cmplwi r12, 0
/* 8034AAE8 41 82 00 0C */ beq lbl_8034AAF4
/* 8034AAEC 7D 88 03 A6 */ mtlr r12
/* 8034AAF0 4E 80 00 21 */ blrl
lbl_8034AAF4:
/* 8034AAF4 4B FF F5 B9 */ bl stateReady
/* 8034AAF8 48 00 02 1C */ b lbl_8034AD14
lbl_8034AAFC:
/* 8034AAFC 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034AB00 28 00 00 06 */ cmplwi r0, 6
/* 8034AB04 40 82 00 B8 */ bne lbl_8034ABBC
/* 8034AB08 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034AB0C 38 A4 00 1C */ addi r5, r4, 0x1c
/* 8034AB10 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 8034AB14 28 00 00 00 */ cmplwi r0, 0
/* 8034AB18 40 82 00 74 */ bne lbl_8034AB8C
/* 8034AB1C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006020@ha */
/* 8034AB20 80 03 60 20 */ lwz r0, 0x6020(r3) /* 0xCC006020@l */
/* 8034AB24 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8034AB28 41 82 00 34 */ beq lbl_8034AB5C
/* 8034AB2C 38 1F 00 40 */ addi r0, r31, 0x40
/* 8034AB30 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034AB34 38 00 00 09 */ li r0, 9
/* 8034AB38 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034AB3C 81 84 00 28 */ lwz r12, 0x28(r4)
/* 8034AB40 28 0C 00 00 */ cmplwi r12, 0
/* 8034AB44 41 82 00 10 */ beq lbl_8034AB54
/* 8034AB48 7D 88 03 A6 */ mtlr r12
/* 8034AB4C 38 60 FF FE */ li r3, -2
/* 8034AB50 4E 80 00 21 */ blrl
lbl_8034AB54:
/* 8034AB54 4B FF F5 59 */ bl stateReady
/* 8034AB58 48 00 01 BC */ b lbl_8034AD14
lbl_8034AB5C:
/* 8034AB5C 38 00 00 00 */ li r0, 0
/* 8034AB60 90 0D 92 0C */ stw r0, AutoFinishing(r13)
/* 8034AB64 38 00 00 01 */ li r0, 1
/* 8034AB68 3C 60 80 35 */ lis r3, cbForStateBusy@ha /* 0x8034A6D4@ha */
/* 8034AB6C 90 05 00 00 */ stw r0, 0(r5)
/* 8034AB70 38 C3 A6 D4 */ addi r6, r3, cbForStateBusy@l /* 0x8034A6D4@l */
/* 8034AB74 38 60 00 00 */ li r3, 0
/* 8034AB78 80 AD 91 F8 */ lwz r5, executing(r13)
/* 8034AB7C 80 85 00 14 */ lwz r4, 0x14(r5)
/* 8034AB80 80 A5 00 10 */ lwz r5, 0x10(r5)
/* 8034AB84 4B FF D6 45 */ bl DVDLowAudioStream
/* 8034AB88 48 00 01 8C */ b lbl_8034AD14
lbl_8034AB8C:
/* 8034AB8C 38 1F 00 40 */ addi r0, r31, 0x40
/* 8034AB90 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034AB94 38 00 00 00 */ li r0, 0
/* 8034AB98 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034AB9C 81 84 00 28 */ lwz r12, 0x28(r4)
/* 8034ABA0 28 0C 00 00 */ cmplwi r12, 0
/* 8034ABA4 41 82 00 10 */ beq lbl_8034ABB4
/* 8034ABA8 7D 88 03 A6 */ mtlr r12
/* 8034ABAC 38 60 00 00 */ li r3, 0
/* 8034ABB0 4E 80 00 21 */ blrl
lbl_8034ABB4:
/* 8034ABB4 4B FF F4 F9 */ bl stateReady
/* 8034ABB8 48 00 01 5C */ b lbl_8034AD14
lbl_8034ABBC:
/* 8034ABBC 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034ABC0 38 7F 00 40 */ addi r3, r31, 0x40
/* 8034ABC4 38 00 00 00 */ li r0, 0
/* 8034ABC8 90 6D 91 F8 */ stw r3, executing(r13)
/* 8034ABCC 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034ABD0 81 84 00 28 */ lwz r12, 0x28(r4)
/* 8034ABD4 28 0C 00 00 */ cmplwi r12, 0
/* 8034ABD8 41 82 00 10 */ beq lbl_8034ABE8
/* 8034ABDC 7D 88 03 A6 */ mtlr r12
/* 8034ABE0 38 60 00 00 */ li r3, 0
/* 8034ABE4 4E 80 00 21 */ blrl
lbl_8034ABE8:
/* 8034ABE8 4B FF F4 C5 */ bl stateReady
/* 8034ABEC 48 00 01 28 */ b lbl_8034AD14
lbl_8034ABF0:
/* 8034ABF0 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034ABF4 28 00 00 0E */ cmplwi r0, 0xe
/* 8034ABF8 40 82 00 20 */ bne lbl_8034AC18
/* 8034ABFC 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234567@ha */
/* 8034AC00 38 63 45 67 */ addi r3, r3, 0x4567 /* 0x01234567@l */
/* 8034AC04 48 00 0F 85 */ bl __DVDStoreErrorCode
/* 8034AC08 3C 60 80 35 */ lis r3, cbForStateError@ha /* 0x803492DC@ha */
/* 8034AC0C 38 63 92 DC */ addi r3, r3, cbForStateError@l /* 0x803492DC@l */
/* 8034AC10 4B FF D4 05 */ bl DVDLowStopMotor
/* 8034AC14 48 00 01 00 */ b lbl_8034AD14
lbl_8034AC18:
/* 8034AC18 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034AC1C 28 00 00 01 */ cmplwi r0, 1
/* 8034AC20 41 82 00 28 */ beq lbl_8034AC48
/* 8034AC24 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034AC28 28 00 00 04 */ cmplwi r0, 4
/* 8034AC2C 41 82 00 1C */ beq lbl_8034AC48
/* 8034AC30 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034AC34 28 00 00 05 */ cmplwi r0, 5
/* 8034AC38 41 82 00 10 */ beq lbl_8034AC48
/* 8034AC3C 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034AC40 28 00 00 0E */ cmplwi r0, 0xe
/* 8034AC44 40 82 00 C4 */ bne lbl_8034AD08
lbl_8034AC48:
/* 8034AC48 83 CD 91 F8 */ lwz r30, executing(r13)
/* 8034AC4C 80 7E 00 20 */ lwz r3, 0x20(r30)
/* 8034AC50 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 8034AC54 7C 03 00 40 */ cmplw r3, r0
/* 8034AC58 40 82 00 B0 */ bne lbl_8034AD08
/* 8034AC5C 80 0D 92 18 */ lwz r0, Canceling(r13)
/* 8034AC60 28 00 00 00 */ cmplwi r0, 0
/* 8034AC64 41 82 00 64 */ beq lbl_8034ACC8
/* 8034AC68 38 80 00 00 */ li r4, 0
/* 8034AC6C 90 8D 92 20 */ stw r4, ResumeFromHere(r13)
/* 8034AC70 38 7F 00 40 */ addi r3, r31, 0x40
/* 8034AC74 38 00 00 0A */ li r0, 0xa
/* 8034AC78 90 8D 92 18 */ stw r4, Canceling(r13)
/* 8034AC7C 90 6D 91 F8 */ stw r3, executing(r13)
/* 8034AC80 90 1E 00 0C */ stw r0, 0xc(r30)
/* 8034AC84 81 9E 00 28 */ lwz r12, 0x28(r30)
/* 8034AC88 28 0C 00 00 */ cmplwi r12, 0
/* 8034AC8C 41 82 00 14 */ beq lbl_8034ACA0
/* 8034AC90 7D 88 03 A6 */ mtlr r12
/* 8034AC94 38 9E 00 00 */ addi r4, r30, 0
/* 8034AC98 38 60 FF FD */ li r3, -3
/* 8034AC9C 4E 80 00 21 */ blrl
lbl_8034ACA0:
/* 8034ACA0 81 8D 92 1C */ lwz r12, CancelCallback(r13)
/* 8034ACA4 28 0C 00 00 */ cmplwi r12, 0
/* 8034ACA8 41 82 00 14 */ beq lbl_8034ACBC
/* 8034ACAC 7D 88 03 A6 */ mtlr r12
/* 8034ACB0 38 9E 00 00 */ addi r4, r30, 0
/* 8034ACB4 38 60 00 00 */ li r3, 0
/* 8034ACB8 4E 80 00 21 */ blrl
lbl_8034ACBC:
/* 8034ACBC 4B FF F3 F1 */ bl stateReady
/* 8034ACC0 38 00 00 01 */ li r0, 1
/* 8034ACC4 48 00 00 08 */ b lbl_8034ACCC
lbl_8034ACC8:
/* 8034ACC8 38 00 00 00 */ li r0, 0
lbl_8034ACCC:
/* 8034ACCC 2C 00 00 00 */ cmpwi r0, 0
/* 8034ACD0 40 82 00 44 */ bne lbl_8034AD14
/* 8034ACD4 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034ACD8 38 7F 00 40 */ addi r3, r31, 0x40
/* 8034ACDC 38 00 00 00 */ li r0, 0
/* 8034ACE0 90 6D 91 F8 */ stw r3, executing(r13)
/* 8034ACE4 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034ACE8 81 84 00 28 */ lwz r12, 0x28(r4)
/* 8034ACEC 28 0C 00 00 */ cmplwi r12, 0
/* 8034ACF0 41 82 00 10 */ beq lbl_8034AD00
/* 8034ACF4 80 64 00 20 */ lwz r3, 0x20(r4)
/* 8034ACF8 7D 88 03 A6 */ mtlr r12
/* 8034ACFC 4E 80 00 21 */ blrl
lbl_8034AD00:
/* 8034AD00 4B FF F3 AD */ bl stateReady
/* 8034AD04 48 00 00 10 */ b lbl_8034AD14
lbl_8034AD08:
/* 8034AD08 3C 60 80 35 */ lis r3, cbForStateGettingError@ha /* 0x80349498@ha */
/* 8034AD0C 38 63 94 98 */ addi r3, r3, cbForStateGettingError@l /* 0x80349498@l */
/* 8034AD10 4B FF D3 91 */ bl DVDLowRequestError
lbl_8034AD14:
/* 8034AD14 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034AD18 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8034AD1C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8034AD20 38 21 00 18 */ addi r1, r1, 0x18
/* 8034AD24 7C 08 03 A6 */ mtlr r0
/* 8034AD28 4E 80 00 20 */ blr
-59
View File
@@ -1,59 +0,0 @@
lbl_80349C24:
/* 80349C24 7C 08 02 A6 */ mflr r0
/* 80349C28 28 03 00 10 */ cmplwi r3, 0x10
/* 80349C2C 90 01 00 04 */ stw r0, 4(r1)
/* 80349C30 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80349C34 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80349C38 40 82 00 20 */ bne lbl_80349C58
/* 80349C3C 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234568@ha */
/* 80349C40 38 63 45 68 */ addi r3, r3, 0x4568 /* 0x01234568@l */
/* 80349C44 48 00 1F 45 */ bl __DVDStoreErrorCode
/* 80349C48 48 00 14 F1 */ bl DVDReset
/* 80349C4C 38 60 00 00 */ li r3, 0
/* 80349C50 4B FF F6 8D */ bl cbForStateError
/* 80349C54 48 00 00 94 */ b lbl_80349CE8
lbl_80349C58:
/* 80349C58 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 80349C5C 41 82 00 80 */ beq lbl_80349CDC
/* 80349C60 3C 60 80 35 */ lis r3, stateReadingFST@ha /* 0x803491C8@ha */
/* 80349C64 80 8D 92 00 */ lwz r4, bootInfo(r13)
/* 80349C68 38 03 91 C8 */ addi r0, r3, stateReadingFST@l /* 0x803491C8@l */
/* 80349C6C 38 A0 00 00 */ li r5, 0
/* 80349C70 90 0D 92 40 */ stw r0, LastState(r13)
/* 80349C74 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
/* 80349C78 90 AD 92 2C */ stw r5, NumInternalRetry(r13)
/* 80349C7C 38 63 C9 00 */ addi r3, r3, BB2@l /* 0x8044C900@l */
/* 80349C80 3B E3 00 08 */ addi r31, r3, 8
/* 80349C84 80 64 00 3C */ lwz r3, 0x3c(r4)
/* 80349C88 80 1F 00 00 */ lwz r0, 0(r31)
/* 80349C8C 7C 03 00 40 */ cmplw r3, r0
/* 80349C90 40 80 00 1C */ bge lbl_80349CAC
/* 80349C94 3C 60 80 3D */ lis r3, lit_24@ha /* 0x803D1574@ha */
/* 80349C98 4C C6 31 82 */ crclr 6
/* 80349C9C 38 A3 15 74 */ addi r5, r3, lit_24@l /* 0x803D1574@l */
/* 80349CA0 38 6D 84 74 */ la r3, lit_23(r13) /* 804509F4-_SDA_BASE_ */
/* 80349CA4 38 80 02 95 */ li r4, 0x295
/* 80349CA8 4B CB D1 D5 */ bl OSPanic
lbl_80349CAC:
/* 80349CAC 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
/* 80349CB0 80 DF 00 00 */ lwz r6, 0(r31)
/* 80349CB4 38 A3 C9 00 */ addi r5, r3, BB2@l /* 0x8044C900@l */
/* 80349CB8 80 ED 92 00 */ lwz r7, bootInfo(r13)
/* 80349CBC 3C 80 80 35 */ lis r4, cbForStateReadingFST@ha /* 0x8034925C@ha */
/* 80349CC0 80 A5 00 04 */ lwz r5, 4(r5)
/* 80349CC4 38 06 00 1F */ addi r0, r6, 0x1f
/* 80349CC8 80 67 00 38 */ lwz r3, 0x38(r7)
/* 80349CCC 38 C4 92 5C */ addi r6, r4, cbForStateReadingFST@l /* 0x8034925C@l */
/* 80349CD0 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
/* 80349CD4 4B FF DF 45 */ bl DVDLowRead
/* 80349CD8 48 00 00 10 */ b lbl_80349CE8
lbl_80349CDC:
/* 80349CDC 3C 60 80 35 */ lis r3, cbForStateGettingError@ha /* 0x80349498@ha */
/* 80349CE0 38 63 94 98 */ addi r3, r3, cbForStateGettingError@l /* 0x80349498@l */
/* 80349CE4 4B FF E3 BD */ bl DVDLowRequestError
lbl_80349CE8:
/* 80349CE8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80349CEC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80349CF0 38 21 00 18 */ addi r1, r1, 0x18
/* 80349CF4 7C 08 03 A6 */ mtlr r0
/* 80349CF8 4E 80 00 20 */ blr
-39
View File
@@ -1,39 +0,0 @@
lbl_803491C8:
/* 803491C8 7C 08 02 A6 */ mflr r0
/* 803491CC 3C 60 80 35 */ lis r3, stateReadingFST@ha /* 0x803491C8@ha */
/* 803491D0 90 01 00 04 */ stw r0, 4(r1)
/* 803491D4 38 03 91 C8 */ addi r0, r3, stateReadingFST@l /* 0x803491C8@l */
/* 803491D8 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
/* 803491DC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803491E0 38 63 C9 00 */ addi r3, r3, BB2@l /* 0x8044C900@l */
/* 803491E4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803491E8 3B E3 00 08 */ addi r31, r3, 8
/* 803491EC 90 0D 92 40 */ stw r0, LastState(r13)
/* 803491F0 80 8D 92 00 */ lwz r4, bootInfo(r13)
/* 803491F4 80 1F 00 00 */ lwz r0, 0(r31)
/* 803491F8 80 64 00 3C */ lwz r3, 0x3c(r4)
/* 803491FC 7C 03 00 40 */ cmplw r3, r0
/* 80349200 40 80 00 1C */ bge lbl_8034921C
/* 80349204 3C 60 80 3D */ lis r3, lit_24@ha /* 0x803D1574@ha */
/* 80349208 4C C6 31 82 */ crclr 6
/* 8034920C 38 A3 15 74 */ addi r5, r3, lit_24@l /* 0x803D1574@l */
/* 80349210 38 6D 84 74 */ la r3, lit_23(r13) /* 804509F4-_SDA_BASE_ */
/* 80349214 38 80 02 95 */ li r4, 0x295
/* 80349218 4B CB DC 65 */ bl OSPanic
lbl_8034921C:
/* 8034921C 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
/* 80349220 80 DF 00 00 */ lwz r6, 0(r31)
/* 80349224 38 A3 C9 00 */ addi r5, r3, BB2@l /* 0x8044C900@l */
/* 80349228 80 ED 92 00 */ lwz r7, bootInfo(r13)
/* 8034922C 3C 80 80 35 */ lis r4, cbForStateReadingFST@ha /* 0x8034925C@ha */
/* 80349230 80 A5 00 04 */ lwz r5, 4(r5)
/* 80349234 38 06 00 1F */ addi r0, r6, 0x1f
/* 80349238 80 67 00 38 */ lwz r3, 0x38(r7)
/* 8034923C 38 C4 92 5C */ addi r6, r4, cbForStateReadingFST@l /* 0x8034925C@l */
/* 80349240 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
/* 80349244 4B FF E9 D5 */ bl DVDLowRead
/* 80349248 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8034924C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80349250 38 21 00 10 */ addi r1, r1, 0x10
/* 80349254 7C 08 03 A6 */ mtlr r0
/* 80349258 4E 80 00 20 */ blr
-209
View File
@@ -1,209 +0,0 @@
lbl_8034A0AC:
/* 8034A0AC 7C 08 02 A6 */ mflr r0
/* 8034A0B0 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
/* 8034A0B4 90 01 00 04 */ stw r0, 4(r1)
/* 8034A0B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8034A0BC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8034A0C0 3B E3 C9 00 */ addi r31, r3, BB2@l /* 0x8044C900@l */
/* 8034A0C4 48 00 18 F1 */ bl __DVDCheckWaitingQueue
/* 8034A0C8 2C 03 00 00 */ cmpwi r3, 0
/* 8034A0CC 40 82 00 10 */ bne lbl_8034A0DC
/* 8034A0D0 38 00 00 00 */ li r0, 0
/* 8034A0D4 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034A0D8 48 00 02 A8 */ b lbl_8034A380
lbl_8034A0DC:
/* 8034A0DC 80 0D 92 04 */ lwz r0, PauseFlag(r13)
/* 8034A0E0 2C 00 00 00 */ cmpwi r0, 0
/* 8034A0E4 41 82 00 18 */ beq lbl_8034A0FC
/* 8034A0E8 38 60 00 01 */ li r3, 1
/* 8034A0EC 38 00 00 00 */ li r0, 0
/* 8034A0F0 90 6D 92 08 */ stw r3, PausingFlag(r13)
/* 8034A0F4 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034A0F8 48 00 02 88 */ b lbl_8034A380
lbl_8034A0FC:
/* 8034A0FC 48 00 18 19 */ bl __DVDPopWaitingQueue
/* 8034A100 80 0D 92 10 */ lwz r0, FatalErrorFlag(r13)
/* 8034A104 90 6D 91 F8 */ stw r3, executing(r13)
/* 8034A108 2C 00 00 00 */ cmpwi r0, 0
/* 8034A10C 41 82 00 3C */ beq lbl_8034A148
/* 8034A110 80 6D 91 F8 */ lwz r3, executing(r13)
/* 8034A114 38 80 FF FF */ li r4, -1
/* 8034A118 38 1F 00 40 */ addi r0, r31, 0x40
/* 8034A11C 90 83 00 0C */ stw r4, 0xc(r3)
/* 8034A120 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034A124 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034A128 81 84 00 28 */ lwz r12, 0x28(r4)
/* 8034A12C 28 0C 00 00 */ cmplwi r12, 0
/* 8034A130 41 82 00 10 */ beq lbl_8034A140
/* 8034A134 7D 88 03 A6 */ mtlr r12
/* 8034A138 38 60 FF FF */ li r3, -1
/* 8034A13C 4E 80 00 21 */ blrl
lbl_8034A140:
/* 8034A140 4B FF FF 6D */ bl stateReady
/* 8034A144 48 00 02 3C */ b lbl_8034A380
lbl_8034A148:
/* 8034A148 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034A14C 80 04 00 08 */ lwz r0, 8(r4)
/* 8034A150 90 0D 92 14 */ stw r0, CurrCommand(r13)
/* 8034A154 80 0D 92 20 */ lwz r0, ResumeFromHere(r13)
/* 8034A158 28 00 00 00 */ cmplwi r0, 0
/* 8034A15C 41 82 01 5C */ beq lbl_8034A2B8
/* 8034A160 80 0D 92 20 */ lwz r0, ResumeFromHere(r13)
/* 8034A164 2C 00 00 04 */ cmpwi r0, 4
/* 8034A168 41 82 00 64 */ beq lbl_8034A1CC
/* 8034A16C 40 80 00 1C */ bge lbl_8034A188
/* 8034A170 2C 00 00 02 */ cmpwi r0, 2
/* 8034A174 41 82 00 28 */ beq lbl_8034A19C
/* 8034A178 40 80 00 3C */ bge lbl_8034A1B4
/* 8034A17C 2C 00 00 01 */ cmpwi r0, 1
/* 8034A180 40 80 00 64 */ bge lbl_8034A1E4
/* 8034A184 48 00 01 28 */ b lbl_8034A2AC
lbl_8034A188:
/* 8034A188 2C 00 00 08 */ cmpwi r0, 8
/* 8034A18C 40 80 01 20 */ bge lbl_8034A2AC
/* 8034A190 2C 00 00 06 */ cmpwi r0, 6
/* 8034A194 40 80 00 50 */ bge lbl_8034A1E4
/* 8034A198 48 00 01 00 */ b lbl_8034A298
lbl_8034A19C:
/* 8034A19C 38 00 00 0B */ li r0, 0xb
/* 8034A1A0 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
/* 8034A1A4 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034A1A8 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */
/* 8034A1AC 4B FF DD 99 */ bl DVDLowWaitCoverClose
/* 8034A1B0 48 00 00 FC */ b lbl_8034A2AC
lbl_8034A1B4:
/* 8034A1B4 38 00 00 04 */ li r0, 4
/* 8034A1B8 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
/* 8034A1BC 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034A1C0 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */
/* 8034A1C4 4B FF DD 81 */ bl DVDLowWaitCoverClose
/* 8034A1C8 48 00 00 E4 */ b lbl_8034A2AC
lbl_8034A1CC:
/* 8034A1CC 38 00 00 05 */ li r0, 5
/* 8034A1D0 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
/* 8034A1D4 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034A1D8 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */
/* 8034A1DC 4B FF DD 69 */ bl DVDLowWaitCoverClose
/* 8034A1E0 48 00 00 CC */ b lbl_8034A2AC
lbl_8034A1E4:
/* 8034A1E4 38 00 00 03 */ li r0, 3
/* 8034A1E8 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034A1EC 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034A1F0 2C 00 00 0D */ cmpwi r0, 0xd
/* 8034A1F4 41 82 00 28 */ beq lbl_8034A21C
/* 8034A1F8 40 80 00 18 */ bge lbl_8034A210
/* 8034A1FC 2C 00 00 06 */ cmpwi r0, 6
/* 8034A200 40 80 00 4C */ bge lbl_8034A24C
/* 8034A204 2C 00 00 04 */ cmpwi r0, 4
/* 8034A208 40 80 00 14 */ bge lbl_8034A21C
/* 8034A20C 48 00 00 40 */ b lbl_8034A24C
lbl_8034A210:
/* 8034A210 2C 00 00 0F */ cmpwi r0, 0xf
/* 8034A214 41 82 00 08 */ beq lbl_8034A21C
/* 8034A218 48 00 00 34 */ b lbl_8034A24C
lbl_8034A21C:
/* 8034A21C 48 00 16 59 */ bl __DVDClearWaitingQueue
/* 8034A220 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034A224 38 1F 00 40 */ addi r0, r31, 0x40
/* 8034A228 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034A22C 81 84 00 28 */ lwz r12, 0x28(r4)
/* 8034A230 28 0C 00 00 */ cmplwi r12, 0
/* 8034A234 41 82 00 10 */ beq lbl_8034A244
/* 8034A238 7D 88 03 A6 */ mtlr r12
/* 8034A23C 38 60 FF FC */ li r3, -4
/* 8034A240 4E 80 00 21 */ blrl
lbl_8034A244:
/* 8034A244 4B FF FE 69 */ bl stateReady
/* 8034A248 48 00 00 64 */ b lbl_8034A2AC
lbl_8034A24C:
/* 8034A24C 38 00 00 00 */ li r0, 0
/* 8034A250 90 0D 92 38 */ stw r0, MotorState(r13)
/* 8034A254 48 00 0E E5 */ bl DVDReset
/* 8034A258 38 7F 00 70 */ addi r3, r31, 0x70
/* 8034A25C 4B FF 06 9D */ bl OSCreateAlarm
/* 8034A260 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
/* 8034A264 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
/* 8034A268 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */
/* 8034A26C 3C 60 80 35 */ lis r3, AlarmHandler@ha /* 0x80349DEC@ha */
/* 8034A270 54 00 F0 BE */ srwi r0, r0, 2
/* 8034A274 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */
/* 8034A278 7C 04 00 16 */ mulhwu r0, r4, r0
/* 8034A27C 54 00 D1 BE */ srwi r0, r0, 6
/* 8034A280 1C C0 04 7E */ mulli r6, r0, 0x47e
/* 8034A284 38 E3 9D EC */ addi r7, r3, AlarmHandler@l /* 0x80349DEC@l */
/* 8034A288 38 7F 00 70 */ addi r3, r31, 0x70
/* 8034A28C 38 A0 00 00 */ li r5, 0
/* 8034A290 4B FF 08 C9 */ bl OSSetAlarm
/* 8034A294 48 00 00 18 */ b lbl_8034A2AC
lbl_8034A298:
/* 8034A298 80 6D 92 24 */ lwz r3, CancelLastError(r13)
/* 8034A29C 48 00 18 ED */ bl __DVDStoreErrorCode
/* 8034A2A0 3C 60 80 35 */ lis r3, cbForStateError@ha /* 0x803492DC@ha */
/* 8034A2A4 38 63 92 DC */ addi r3, r3, cbForStateError@l /* 0x803492DC@l */
/* 8034A2A8 4B FF DD 6D */ bl DVDLowStopMotor
lbl_8034A2AC:
/* 8034A2AC 38 00 00 00 */ li r0, 0
/* 8034A2B0 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
/* 8034A2B4 48 00 00 CC */ b lbl_8034A380
lbl_8034A2B8:
/* 8034A2B8 80 0D 92 38 */ lwz r0, MotorState(r13)
/* 8034A2BC 28 00 00 00 */ cmplwi r0, 0
/* 8034A2C0 40 82 00 18 */ bne lbl_8034A2D8
/* 8034A2C4 38 00 00 01 */ li r0, 1
/* 8034A2C8 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034A2CC 80 6D 91 F8 */ lwz r3, executing(r13)
/* 8034A2D0 48 00 00 C5 */ bl stateBusy
/* 8034A2D4 48 00 00 AC */ b lbl_8034A380
lbl_8034A2D8:
/* 8034A2D8 80 0D 92 14 */ lwz r0, CurrCommand(r13)
/* 8034A2DC 2C 00 00 0D */ cmpwi r0, 0xd
/* 8034A2E0 41 82 00 28 */ beq lbl_8034A308
/* 8034A2E4 40 80 00 18 */ bge lbl_8034A2FC
/* 8034A2E8 2C 00 00 06 */ cmpwi r0, 6
/* 8034A2EC 40 80 00 4C */ bge lbl_8034A338
/* 8034A2F0 2C 00 00 04 */ cmpwi r0, 4
/* 8034A2F4 40 80 00 14 */ bge lbl_8034A308
/* 8034A2F8 48 00 00 40 */ b lbl_8034A338
lbl_8034A2FC:
/* 8034A2FC 2C 00 00 0F */ cmpwi r0, 0xf
/* 8034A300 41 82 00 08 */ beq lbl_8034A308
/* 8034A304 48 00 00 34 */ b lbl_8034A338
lbl_8034A308:
/* 8034A308 48 00 15 6D */ bl __DVDClearWaitingQueue
/* 8034A30C 80 8D 91 F8 */ lwz r4, executing(r13)
/* 8034A310 38 1F 00 40 */ addi r0, r31, 0x40
/* 8034A314 90 0D 91 F8 */ stw r0, executing(r13)
/* 8034A318 81 84 00 28 */ lwz r12, 0x28(r4)
/* 8034A31C 28 0C 00 00 */ cmplwi r12, 0
/* 8034A320 41 82 00 10 */ beq lbl_8034A330
/* 8034A324 7D 88 03 A6 */ mtlr r12
/* 8034A328 38 60 FF FC */ li r3, -4
/* 8034A32C 4E 80 00 21 */ blrl
lbl_8034A330:
/* 8034A330 4B FF FD 7D */ bl stateReady
/* 8034A334 48 00 00 4C */ b lbl_8034A380
lbl_8034A338:
/* 8034A338 38 00 00 00 */ li r0, 0
/* 8034A33C 90 0D 92 38 */ stw r0, MotorState(r13)
/* 8034A340 48 00 0D F9 */ bl DVDReset
/* 8034A344 38 7F 00 70 */ addi r3, r31, 0x70
/* 8034A348 4B FF 05 B1 */ bl OSCreateAlarm
/* 8034A34C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
/* 8034A350 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
/* 8034A354 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */
/* 8034A358 3C 60 80 35 */ lis r3, AlarmHandler@ha /* 0x80349DEC@ha */
/* 8034A35C 54 00 F0 BE */ srwi r0, r0, 2
/* 8034A360 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */
/* 8034A364 7C 04 00 16 */ mulhwu r0, r4, r0
/* 8034A368 54 00 D1 BE */ srwi r0, r0, 6
/* 8034A36C 1C C0 04 7E */ mulli r6, r0, 0x47e
/* 8034A370 38 E3 9D EC */ addi r7, r3, AlarmHandler@l /* 0x80349DEC@l */
/* 8034A374 38 7F 00 70 */ addi r3, r31, 0x70
/* 8034A378 38 A0 00 00 */ li r5, 0
/* 8034A37C 4B FF 07 DD */ bl OSSetAlarm
lbl_8034A380:
/* 8034A380 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8034A384 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8034A388 38 21 00 10 */ addi r1, r1, 0x10
/* 8034A38C 7C 08 03 A6 */ mtlr r0
/* 8034A390 4E 80 00 20 */ blr
@@ -1,8 +0,0 @@
lbl_80348458:
/* 80348458 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006004@ha */
/* 8034845C 38 00 00 00 */ li r0, 0
/* 80348460 90 03 60 04 */ stw r0, 0x6004(r3) /* 0xCC006004@l */
/* 80348464 80 6D 91 98 */ lwz r3, Callback(r13)
/* 80348468 90 0D 91 AC */ stw r0, WaitingCoverClose(r13)
/* 8034846C 90 0D 91 98 */ stw r0, Callback(r13)
/* 80348470 4E 80 00 20 */ blr
@@ -1,83 +0,0 @@
lbl_8034E9EC:
/* 8034E9EC 7C 08 02 A6 */ mflr r0
/* 8034E9F0 90 01 00 04 */ stw r0, 4(r1)
/* 8034E9F4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8034E9F8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034E9FC 7C 7F 1B 78 */ mr r31, r3
/* 8034EA00 3C 60 80 00 */ lis r3, 0x8000
/* 8034EA04 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8034EA08 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8034EA0C 7C 7D FC 30 */ srw r29, r3, r31
/* 8034EA10 80 0D 92 CC */ lwz r0, EnabledBits(r13)
/* 8034EA14 7C 00 E8 39 */ and. r0, r0, r29
/* 8034EA18 41 82 00 F8 */ beq lbl_8034EB10
/* 8034EA1C 80 AD 92 D8 */ lwz r5, WaitingBits(r13)
/* 8034EA20 7F A6 E8 F8 */ nor r6, r29, r29
/* 8034EA24 80 6D 92 DC */ lwz r3, CheckingBits(r13)
/* 8034EA28 54 80 07 3F */ clrlwi. r0, r4, 0x1c
/* 8034EA2C 7C A5 30 38 */ and r5, r5, r6
/* 8034EA30 7C 63 30 38 */ and r3, r3, r6
/* 8034EA34 90 AD 92 D8 */ stw r5, WaitingBits(r13)
/* 8034EA38 90 6D 92 DC */ stw r3, CheckingBits(r13)
/* 8034EA3C 54 83 00 2E */ rlwinm r3, r4, 0, 0, 0x17
/* 8034EA40 40 82 00 6C */ bne lbl_8034EAAC
/* 8034EA44 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0
/* 8034EA48 41 82 00 64 */ beq lbl_8034EAAC
/* 8034EA4C 54 60 02 D7 */ rlwinm. r0, r3, 0, 0xb, 0xb
/* 8034EA50 41 82 00 5C */ beq lbl_8034EAAC
/* 8034EA54 54 60 00 43 */ rlwinm. r0, r3, 0, 1, 1
/* 8034EA58 41 82 00 54 */ beq lbl_8034EAAC
/* 8034EA5C 54 60 01 4B */ rlwinm. r0, r3, 0, 5, 5
/* 8034EA60 40 82 00 4C */ bne lbl_8034EAAC
/* 8034EA64 54 60 03 19 */ rlwinm. r0, r3, 0, 0xc, 0xc
/* 8034EA68 40 82 00 44 */ bne lbl_8034EAAC
/* 8034EA6C 54 60 03 5B */ rlwinm. r0, r3, 0, 0xd, 0xd
/* 8034EA70 40 82 00 3C */ bne lbl_8034EAAC
/* 8034EA74 1C 9F 00 0C */ mulli r4, r31, 0xc
/* 8034EA78 3C 60 80 45 */ lis r3, Origin@ha /* 0x8044CB80@ha */
/* 8034EA7C 38 03 CB 80 */ addi r0, r3, Origin@l /* 0x8044CB80@l */
/* 8034EA80 3C 60 80 35 */ lis r3, PADOriginUpdateCallback@ha /* 0x8034E51C@ha */
/* 8034EA84 7C C0 22 14 */ add r6, r0, r4
/* 8034EA88 39 03 E5 1C */ addi r8, r3, PADOriginUpdateCallback@l /* 0x8034E51C@l */
/* 8034EA8C 38 7F 00 00 */ addi r3, r31, 0
/* 8034EA90 38 8D 84 B8 */ la r4, CmdReadOrigin(r13) /* 80450A38-_SDA_BASE_ */
/* 8034EA94 38 A0 00 01 */ li r5, 1
/* 8034EA98 38 E0 00 0A */ li r7, 0xa
/* 8034EA9C 39 40 00 00 */ li r10, 0
/* 8034EAA0 39 20 00 00 */ li r9, 0
/* 8034EAA4 4B FF 70 E9 */ bl SITransfer
/* 8034EAA8 48 00 00 68 */ b lbl_8034EB10
lbl_8034EAAC:
/* 8034EAAC 4B FE EC 49 */ bl OSDisableInterrupts
/* 8034EAB0 3B C3 00 00 */ addi r30, r3, 0
/* 8034EAB4 38 7D 00 00 */ addi r3, r29, 0
/* 8034EAB8 4B FF 6E 45 */ bl SIDisablePolling
/* 8034EABC 80 0D 92 CC */ lwz r0, EnabledBits(r13)
/* 8034EAC0 7F A9 E8 F8 */ nor r9, r29, r29
/* 8034EAC4 80 CD 92 D8 */ lwz r6, WaitingBits(r13)
/* 8034EAC8 7F E3 FB 78 */ mr r3, r31
/* 8034EACC 80 AD 92 DC */ lwz r5, CheckingBits(r13)
/* 8034EAD0 80 8D 92 E0 */ lwz r4, PendingBits(r13)
/* 8034EAD4 7C 08 48 38 */ and r8, r0, r9
/* 8034EAD8 80 0D 92 E4 */ lwz r0, BarrelBits(r13)
/* 8034EADC 7C C7 48 38 */ and r7, r6, r9
/* 8034EAE0 7C A6 48 38 */ and r6, r5, r9
/* 8034EAE4 7C 85 48 38 */ and r5, r4, r9
/* 8034EAE8 91 0D 92 CC */ stw r8, EnabledBits(r13)
/* 8034EAEC 7C 00 48 38 */ and r0, r0, r9
/* 8034EAF0 90 ED 92 D8 */ stw r7, WaitingBits(r13)
/* 8034EAF4 38 80 00 00 */ li r4, 0
/* 8034EAF8 90 CD 92 DC */ stw r6, CheckingBits(r13)
/* 8034EAFC 90 AD 92 E0 */ stw r5, PendingBits(r13)
/* 8034EB00 90 0D 92 E4 */ stw r0, BarrelBits(r13)
/* 8034EB04 4B FF 1D 49 */ bl OSSetWirelessID
/* 8034EB08 7F C3 F3 78 */ mr r3, r30
/* 8034EB0C 4B FE EC 11 */ bl OSRestoreInterrupts
lbl_8034EB10:
/* 8034EB10 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034EB14 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8034EB18 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8034EB1C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8034EB20 38 21 00 20 */ addi r1, r1, 0x20
/* 8034EB24 7C 08 03 A6 */ mtlr r0
/* 8034EB28 4E 80 00 20 */ blr
@@ -1,24 +0,0 @@
lbl_8034FBA0:
/* 8034FBA0 7C 08 02 A6 */ mflr r0
/* 8034FBA4 28 03 00 00 */ cmplwi r3, 0
/* 8034FBA8 90 01 00 04 */ stw r0, 4(r1)
/* 8034FBAC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034FBB0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034FBB4 83 ED 92 E8 */ lwz r31, SamplingCallback(r13)
/* 8034FBB8 90 6D 92 E8 */ stw r3, SamplingCallback(r13)
/* 8034FBBC 41 82 00 14 */ beq lbl_8034FBD0
/* 8034FBC0 3C 60 80 35 */ lis r3, SamplingHandler@ha /* 0x8034FB40@ha */
/* 8034FBC4 38 63 FB 40 */ addi r3, r3, SamplingHandler@l /* 0x8034FB40@l */
/* 8034FBC8 4B FF 57 0D */ bl SIRegisterPollingHandler
/* 8034FBCC 48 00 00 10 */ b lbl_8034FBDC
lbl_8034FBD0:
/* 8034FBD0 3C 60 80 35 */ lis r3, SamplingHandler@ha /* 0x8034FB40@ha */
/* 8034FBD4 38 63 FB 40 */ addi r3, r3, SamplingHandler@l /* 0x8034FB40@l */
/* 8034FBD8 4B FF 57 C9 */ bl SIUnregisterPollingHandler
lbl_8034FBDC:
/* 8034FBDC 7F E3 FB 78 */ mr r3, r31
/* 8034FBE0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034FBE4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8034FBE8 38 21 00 18 */ addi r1, r1, 0x18
/* 8034FBEC 7C 08 03 A6 */ mtlr r0
/* 8034FBF0 4E 80 00 20 */ blr
@@ -1,35 +0,0 @@
lbl_8034FBF4:
/* 8034FBF4 7C 08 02 A6 */ mflr r0
/* 8034FBF8 90 01 00 04 */ stw r0, 4(r1)
/* 8034FBFC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034FC00 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034FC04 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8034FC08 7C 7E 1B 78 */ mr r30, r3
/* 8034FC0C 4B FE DA E9 */ bl OSDisableInterrupts
/* 8034FC10 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030E3@ha */
/* 8034FC14 88 04 30 E3 */ lbz r0, 0x30E3(r4) /* 0x800030E3@l */
/* 8034FC18 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 8034FC1C 41 82 00 0C */ beq lbl_8034FC28
/* 8034FC20 3B E0 00 01 */ li r31, 1
/* 8034FC24 48 00 00 08 */ b lbl_8034FC2C
lbl_8034FC28:
/* 8034FC28 3B E0 00 00 */ li r31, 0
lbl_8034FC2C:
/* 8034FC2C 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030E3@ha */
/* 8034FC30 88 04 30 E3 */ lbz r0, 0x30E3(r4) /* 0x800030E3@l */
/* 8034FC34 2C 1E 00 00 */ cmpwi r30, 0
/* 8034FC38 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18
/* 8034FC3C 98 04 30 E3 */ stb r0, 0x30e3(r4)
/* 8034FC40 41 82 00 10 */ beq lbl_8034FC50
/* 8034FC44 88 04 30 E3 */ lbz r0, 0x30e3(r4)
/* 8034FC48 60 00 00 40 */ ori r0, r0, 0x40
/* 8034FC4C 98 04 30 E3 */ stb r0, 0x30e3(r4)
lbl_8034FC50:
/* 8034FC50 4B FE DA CD */ bl OSRestoreInterrupts
/* 8034FC54 7F E3 FB 78 */ mr r3, r31
/* 8034FC58 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034FC5C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8034FC60 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8034FC64 38 21 00 18 */ addi r1, r1, 0x18
/* 8034FC68 7C 08 03 A6 */ mtlr r0
/* 8034FC6C 4E 80 00 20 */ blr
+20 -4
View File
@@ -334,7 +334,7 @@ parser.add_argument(
"--select-occurence",
dest="select_occurence",
type=int,
default=0,
default=None,
help="If multiple occurence of the same symbol is found, use this to select the correct ocurrance."
)
parser.add_argument(
@@ -426,6 +426,7 @@ class Config:
source_old_binutils: bool
diff_section: str
inlines: bool
select_occurence: Optional[int]
max_function_size_lines: int
max_function_size_bytes: int
@@ -515,6 +516,7 @@ def create_config(args: argparse.Namespace, project: ProjectSettings) -> Config:
source_old_binutils=args.source_old_binutils,
diff_section=args.diff_section,
inlines=args.inlines,
select_occurence=args.select_occurence,
max_function_size_lines=args.max_lines,
max_function_size_bytes=args.max_lines * 4,
# Display options
@@ -1155,7 +1157,12 @@ def search_map_file(
fail(f"Internal error while parsing map file")
if len(cands) > 1:
fail(f"Found multiple occurrences of function {fn_name} in map file.")
if config.select_occurence is None :
fail(f"Found {len(cands)} occurrences of function {fn_name} in map file.")
elif config.select_occurence >= len(cands):
fail(f"Could not choose index {config.select_occurence} of {fn_name} in map file out of {len(cands)}.")
else:
return cands[config.select_occurence]
if len(cands) == 1:
return cands[0]
elif project.map_format == "mw":
@@ -1171,7 +1178,12 @@ def search_map_file(
contents,
)
if len(find) > 1:
fail(f"Found multiple occurrences of function {fn_name} in map file.")
if config.select_occurence is None:
fail(f"Found {len(find)} occurrences of function {fn_name} in map file.")
elif config.select_occurence >= len(find):
fail(f"Could not choose index {config.select_occurence} of {fn_name} in map file out of {len(find)}.")
else:
find = [find[config.select_occurence]]
if len(find) == 1:
rom = int(find[0][1], 16)
objname = find[0][2]
@@ -1209,7 +1221,11 @@ def search_map_file(
contents,
)
if len(find) > 1:
fail(f"Found multiple occurrences of function {fn_name} in map file.")
fail(f"Found {len(find)} occurrences of function {fn_name} in map file.")
elif config.select_occurence >= len(find):
fail(f"Could not choose index {config.select_occurence} of {fn_name} in map file out of {len(find)}.")
else:
find = [find[config.select_occurence]]
if len(find) == 1:
names_find = re.search(r"(\S+) ... (\S+)", find[0])
assert names_find is not None
+12
View File
@@ -7,8 +7,20 @@
extern "C" {
#endif
#define ARQ_CHUNK_SIZE_DEFAULT 4096
typedef void (*ARQCallback)(u32 request_address);
typedef enum _ARamType {
ARAM_DIR_MRAM_TO_ARAM,
ARAM_DIR_ARAM_TO_MRAM,
} ARamType;
typedef enum _ArqPriotity {
ARQ_PRIORITY_LOW,
ARQ_PRIORITY_HIGH,
} ArqPriotity;
typedef struct ARQRequest {
struct ARQRequest* next;
u32 owner;
+1 -1
View File
@@ -117,7 +117,7 @@ void __CARDTxHandler(s32 chan, OSContext* context);
void __CARDUnlockedHandler(s32 chan, OSContext* context);
s32 __CARDEnableInterrupt(s32 chan, BOOL enable);
s32 __CARDReadStatus(s32 chan, u8* status);
void __CARDReadVendorID();
s32 __CARDReadVendorID(s32 chan, u16* vendorId);
s32 __CARDClearStatus(s32 chan);
s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback);
s32 __CARDReadSegment(s32 chan, CARDCallback callback);
-3
View File
@@ -7,8 +7,6 @@
extern "C" {
#endif
vu32 __DIRegs[16] : 0xCC006000;
typedef enum DVDState {
DVD_STATE_END = 0x0,
DVD_STATE_BUSY = 0x1,
@@ -50,7 +48,6 @@ struct DVDFileInfo;
struct DVDCommandBlock;
typedef void (*DVDCBCallback)(s32 result, struct DVDCommandBlock* block);
typedef void (*DVDCallback)(s32 result, struct DVDFileInfo* info);
typedef void (*DVDLowCallback)(u32 intType);
typedef struct DVDCommandBlock {
/* 0x00 */ struct DVDCommandBlock* next;
+3
View File
@@ -3,4 +3,7 @@
#include "dolphin/types.h"
typedef void (*DVDLowCallback)(u32 intType);
vu32 __DIRegs[16] : 0xCC006000;
#endif /* DVDLOW_H */
+1 -1
View File
@@ -131,7 +131,7 @@ void __OSEVEnd();
static void OSDefaultExceptionHandler(__OSException exception, OSContext* context);
void __OSPSInit(void);
u32 __OSGetDIConfig(void);
void OSRegisterVersion(char* version);
void OSRegisterVersion(const char* version);
void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32);
inline s16 __OSf32tos16(register f32 inF) {
+4 -2
View File
@@ -14,6 +14,7 @@ LIBAI_A_CFLAGS := \
-fp hard \
-nodefaults \
-str reuse \
-inline auto \
-RTTI off \
-maxerrors 5 \
-enum int $(INCLUDES) \
@@ -35,10 +36,11 @@ $(BUILD_DIR)/libs/dolphin/ai/%.o: libs/dolphin/ai/%.c $(BUILD_DIR)/libs/dolphin/
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBAI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(FRANK_CC) $(LIBAI_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBAI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
ifndef DISABLE_DEPS
LIBAI_A_D_FILES := $(LIBAI_A_O_FILES:.o=.d)
+35 -1
View File
@@ -211,8 +211,41 @@ static OSTime max_wait;
/* 804518B0-804518B4 000DB0 0004+00 2/2 0/0 0/0 .sbss buffer */
static OSTime buffer;
inline void AIResetStreamSampleCount(void) { __AIRegs[0] = (__AIRegs[0] & ~0x20) | 0x20; }
inline void AISetStreamTrigger(u32 trigger) { __AIRegs[3] = trigger; }
/* 80350084-803501F0 34A9C4 016C+00 0/0 1/1 0/0 .text AIInit */
// need compiler epilogue patch
// time assignments are weird
#ifdef NONMATCHING
void AIInit(u8* stack) {
if (__AI_init_flag == TRUE) {
return;
}
OSRegisterVersion(__AIVersion);
bound_32KHz = OSNanosecondsToTicks(31524);
bound_48KHz = OSNanosecondsToTicks(42024);
min_wait = OSNanosecondsToTicks(42000);
max_wait = OSNanosecondsToTicks(63000);
buffer = OSNanosecondsToTicks(3000);
AISetStreamVolRight(0);
AISetStreamVolLeft(0);
AISetStreamTrigger(0);
AIResetStreamSampleCount();
__AI_set_stream_sample_rate(1);
AISetDSPSampleRate(0);
__AIS_Callback = 0;
__AID_Callback = 0;
__CallbackStack = stack;
__OSSetInterruptHandler(5, __AIDHandler);
__OSUnmaskInterrupts(0x04000000);
__OSSetInterruptHandler(8, __AISHandler);
__OSUnmaskInterrupts(0x800000);
__AI_init_flag = TRUE;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -221,6 +254,7 @@ asm void AIInit(u8* stack) {
#include "asm/dolphin/ai/ai/AIInit.s"
}
#pragma pop
#endif
/* 803501F0-8035026C 34AB30 007C+00 1/1 0/0 0/0 .text __AISHandler */
void __AISHandler(s16 interrupt, OSContext* context) {
+3 -2
View File
@@ -37,10 +37,11 @@ $(BUILD_DIR)/libs/dolphin/ar/%.o: libs/dolphin/ar/%.c $(BUILD_DIR)/libs/dolphin/
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBAR_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(FRANK_CC) $(LIBAR_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBAR_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
ifndef DISABLE_DEPS
LIBAR_A_D_FILES := $(LIBAR_A_O_FILES:.o=.d)
+223 -58
View File
@@ -12,7 +12,7 @@
void __ARHandler(s16 interrupt, OSContext* context);
void __ARClearInterrupt();
void __ARGetInterruptStatus();
u16 __ARGetInterruptStatus();
void __ARChecksize();
/* ############################################################################################## */
@@ -20,8 +20,6 @@ void __ARChecksize();
static ARCallback __AR_Callback;
/* 80350554-80350598 34AE94 0044+00 0/0 1/1 0/0 .text ARRegisterDMACallback */
// needs compiler epilogue patch
#ifdef NONMATCHING
ARCallback ARRegisterDMACallback(ARCallback callback) {
ARCallback oldCb;
BOOL enabled;
@@ -31,20 +29,8 @@ ARCallback ARRegisterDMACallback(ARCallback callback) {
OSRestoreInterrupts(enabled);
return oldCb;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm ARCallback ARRegisterDMACallback(ARCallback callback) {
nofralloc
#include "asm/dolphin/ar/ar/ARRegisterDMACallback.s"
}
#pragma pop
#endif
/* 80350598-803505D4 34AED8 003C+00 0/0 2/2 0/0 .text ARGetDMAStatus */
// needs compiler epilogue patch
#ifdef NONMATCHING
u32 ARGetDMAStatus() {
BOOL enabled;
u32 val;
@@ -53,16 +39,6 @@ u32 ARGetDMAStatus() {
OSRestoreInterrupts(enabled);
return val;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 ARGetDMAStatus(void) {
nofralloc
#include "asm/dolphin/ar/ar/ARGetDMAStatus.s"
}
#pragma pop
#endif
/* 803505D4-803506C4 34AF14 00F0+00 0/0 5/5 0/0 .text ARStartDMA */
void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length) {
@@ -100,8 +76,6 @@ static u32 __AR_FreeBlocks;
static u32* __AR_BlockLength;
/* 803506C4-8035072C 34B004 0068+00 0/0 1/1 0/0 .text ARAlloc */
// needs compiler epilogue patch
#ifdef NONMATCHING
u32 ARAlloc(u32 length) {
u32 tmp;
BOOL enabled;
@@ -116,16 +90,6 @@ u32 ARAlloc(u32 length) {
return tmp;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 ARAlloc(u32 length) {
nofralloc
#include "asm/dolphin/ar/ar/ARAlloc.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803D1BE8-803D1C30 02ED08 0044+04 1/0 0/0 0/0 .data @1 */
@@ -139,14 +103,39 @@ SECTION_SDATA static const char* __ARVersion = lit_1;
static volatile BOOL __AR_init_flag;
/* 8035072C-803507F0 34B06C 00C4+00 0/0 1/1 0/0 .text ARInit */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 ARInit(u32* stack_index_addr, u32 num_entries) {
nofralloc
#include "asm/dolphin/ar/ar/ARInit.s"
u32 ARInit(u32* stack_index_addr, u32 num_entries) {
BOOL old;
u16 refresh;
if (__AR_init_flag == TRUE) {
return 0x4000;
}
OSRegisterVersion(__ARVersion);
old = OSDisableInterrupts();
__AR_Callback = NULL;
__OSSetInterruptHandler(OS_INTR_DSP_ARAM, __ARHandler);
__OSUnmaskInterrupts(OS_INTERRUPTMASK_DSP_ARAM);
__AR_StackPointer = 0x4000;
__AR_FreeBlocks = num_entries;
__AR_BlockLength = stack_index_addr;
refresh = (u16)(__DSPRegs[13] & 0x000000ff);
__DSPRegs[13] = (u16)((__DSPRegs[13] & ~0x000000ff) | (refresh & 0x000000ff));
__ARChecksize();
__AR_init_flag = TRUE;
OSRestoreInterrupts(old);
return __AR_StackPointer;
}
#pragma pop
/* 803507F0-803507F8 -00001 0008+00 0/0 0/0 0/0 .text ARGetSize */
u32 ARGetSize(void) {
@@ -174,26 +163,201 @@ static void __ARHandler(s16 interrupt, OSContext* context) {
}
/* 80350870-80350890 34B1B0 0020+00 0/0 2/2 0/0 .text __ARClearInterrupt */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __ARClearInterrupt() {
nofralloc
#include "asm/dolphin/ar/ar/__ARClearInterrupt.s"
void __ARClearInterrupt(void) {
u16 tmp;
tmp = __DSPRegs[5];
tmp = (u16)((tmp & ~(0x00000080 | 0x00000008)) | 0x00000020);
__DSPRegs[5] = tmp;
}
#pragma pop
/* 80350890-803508A0 34B1D0 0010+00 0/0 2/2 0/0 .text __ARGetInterruptStatus */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __ARGetInterruptStatus() {
nofralloc
#include "asm/dolphin/ar/ar/__ARGetInterruptStatus.s"
u16 __ARGetInterruptStatus(void) {
return ((u16)(__DSPRegs[5] & 0x0020));
}
#pragma pop
#define RoundUP32(x) (((u32)(x) + 32 - 1) & ~(32 - 1))
/* 803508A0-80352094 34B1E0 17F4+00 1/1 0/0 0/0 .text __ARChecksize */
#ifdef NONMATCHING
void __ARChecksize(void) {
u8 test_data_pad[0x20 + 31];
u8 dummy_data_pad[0x20 + 31];
u8 buffer_pad[0x20 + 31];
u8 save_pad_1[0x20 + 31];
u8 save_pad_2[0x20 + 31];
u8 save_pad_3[0x20 + 31];
u8 save_pad_4[0x20 + 31];
u8 save_pad_5[0x20 + 31];
u16 dspreg9;
u32* test_data;
u32* dummy_data;
u32* buffer;
u32* save1;
u32* save2;
u32* save3;
u32* save4;
u32* save5;
u16 ARAM_mode = 0;
u32 ARAM_size = 0;
u32 i;
while (!(__DSPRegs[11] & 1))
;
ARAM_mode = 3;
__DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x00000007 | 0x00000038)) | 0x20 | 2 | 1);
ARAM_size = __AR_InternalSize = 0x1000000;
test_data = (u32*)(RoundUP32((u32)(test_data_pad)));
dummy_data = (u32*)(RoundUP32((u32)(dummy_data_pad)));
buffer = (u32*)(RoundUP32((u32)(buffer_pad)));
save1 = (u32*)(RoundUP32((u32)(save_pad_1)));
save2 = (u32*)(RoundUP32((u32)(save_pad_2)));
save3 = (u32*)(RoundUP32((u32)(save_pad_3)));
save4 = (u32*)(RoundUP32((u32)(save_pad_4)));
save5 = (u32*)(RoundUP32((u32)(save_pad_5)));
for (i = 0; i < 8; i++) {
*(test_data + i) = 0xdeadbeef;
*(dummy_data + i) = 0xbad0bad0;
}
DCFlushRange((void*)test_data, 0x20);
DCFlushRange((void*)dummy_data, 0x20);
__AR_ExpansionSize = 0;
DCInvalidateRange((void*)save1, 0x20);
__ARReadDMA((u32)save1, ARAM_size + 0, 0x20);
PPCSync();
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
memset((void*)buffer, 0, 0x20);
DCFlushRange((void*)buffer, 0x20);
__ARReadDMA((u32)buffer, ARAM_size + 0x0000000, 0x20);
PPCSync();
if (buffer[0] == test_data[0]) {
DCInvalidateRange((void*)save2, 0x20);
__ARReadDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
PPCSync();
DCInvalidateRange((void*)save3, 0x20);
__ARReadDMA((u32)save3, ARAM_size + 0x1000000, 0x20);
PPCSync();
DCInvalidateRange((void*)save4, 0x20);
__ARReadDMA((u32)save4, ARAM_size + 0x0000200, 0x20);
PPCSync();
DCInvalidateRange((void*)save5, 0x20);
__ARReadDMA((u32)save5, ARAM_size + 0x0400000, 0x20);
PPCSync();
__ARWriteDMA((u32)dummy_data, ARAM_size + 0x0200000, 0x20);
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
memset((void*)buffer, 0, 0x20);
DCFlushRange((void*)buffer, 0x20);
__ARReadDMA((u32)buffer, ARAM_size + 0x0200000, 0x20);
PPCSync();
if (buffer[0] == test_data[0]) {
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
ARAM_mode |= 0 << 1;
ARAM_size += 0x0200000;
__AR_ExpansionSize = 0x0200000;
} else {
__ARWriteDMA((u32)dummy_data, ARAM_size + 0x1000000, 0x20);
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
memset((void*)buffer, 0, 0x20);
DCFlushRange((void*)buffer, 0x20);
__ARReadDMA((u32)buffer, ARAM_size + 0x1000000, 0x20);
PPCSync();
if (buffer[0] == test_data[0]) {
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
__ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
ARAM_mode |= 4 << 1;
ARAM_size += 0x0400000;
__AR_ExpansionSize = 0x0400000;
} else {
__ARWriteDMA((u32)dummy_data, ARAM_size + 0x0000200, 0x20);
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
memset((void*)buffer, 0, 0x20);
DCFlushRange((void*)buffer, 0x20);
__ARReadDMA((u32)buffer, ARAM_size + 0x0000200, 0x20);
PPCSync();
if (buffer[0] == test_data[0]) {
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
__ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
__ARWriteDMA((u32)save3, ARAM_size + 0x1000000, 0x20);
ARAM_mode |= 8 << 1;
ARAM_size += 0x0800000;
__AR_ExpansionSize = 0x0800000;
} else {
__ARWriteDMA((u32)dummy_data, ARAM_size + 0x0400000, 0x20);
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
memset((void*)buffer, 0, 0x20);
DCFlushRange((void*)buffer, 0x20);
__ARReadDMA((u32)buffer, ARAM_size + 0x0400000, 0x20);
PPCSync();
if (buffer[0] == test_data[0]) {
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
__ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
__ARWriteDMA((u32)save3, ARAM_size + 0x1000000, 0x20);
__ARWriteDMA((u32)save4, ARAM_size + 0x0000200, 0x20);
ARAM_mode |= 12 << 1;
ARAM_size += 0x1000000;
__AR_ExpansionSize = 0x1000000;
} else {
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
__ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
__ARWriteDMA((u32)save3, ARAM_size + 0x1000000, 0x20);
__ARWriteDMA((u32)save4, ARAM_size + 0x0000200, 0x20);
__ARWriteDMA((u32)save5, ARAM_size + 0x0400000, 0x20);
ARAM_mode |= 16 << 1;
ARAM_size += 0x2000000;
__AR_ExpansionSize = 0x2000000;
}
}
}
}
__DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x07 | 0x38)) | ARAM_mode);
}
*(u32*)OSPhysicalToUncached(0x00D0) = ARAM_size;
__AR_Size = ARAM_size;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -202,3 +366,4 @@ asm void __ARChecksize() {
#include "asm/dolphin/ar/ar/__ARChecksize.s"
}
#pragma pop
#endif
+158 -53
View File
@@ -21,7 +21,7 @@ void ARQInit();
//
void OSRegisterVersion();
void OSDisableInterrupts();
BOOL OSDisableInterrupts();
void OSRestoreInterrupts();
void ARRegisterDMACallback();
void ARStartDMA();
@@ -32,41 +32,71 @@ void ARStartDMA();
/* ############################################################################################## */
/* 804518D8-804518DC 000DD8 0004+00 3/3 0/0 0/0 .sbss __ARQRequestQueueHi */
static u8 __ARQRequestQueueHi[4];
static ARQRequest* __ARQRequestQueueHi;
/* 804518DC-804518E0 000DDC 0004+00 1/1 0/0 0/0 .sbss __ARQRequestTailHi */
static u8 __ARQRequestTailHi[4];
static ARQRequest* __ARQRequestTailHi;
/* 804518E0-804518E4 000DE0 0004+00 3/3 0/0 0/0 .sbss __ARQRequestQueueLo */
static u8 __ARQRequestQueueLo[4];
static ARQRequest* __ARQRequestQueueLo;
/* 804518E4-804518E8 000DE4 0004+00 1/1 0/0 0/0 .sbss __ARQRequestTailLo */
static u8 __ARQRequestTailLo[4];
static ARQRequest* __ARQRequestTailLo;
/* 804518E8-804518EC 000DE8 0004+00 3/3 0/0 0/0 .sbss __ARQRequestPendingHi */
static u8 __ARQRequestPendingHi[4];
static ARQRequest* __ARQRequestPendingHi;
/* 804518EC-804518F0 000DEC 0004+00 4/4 0/0 0/0 .sbss __ARQRequestPendingLo */
static u8 __ARQRequestPendingLo[4];
static ARQRequest* __ARQRequestPendingLo;
/* 804518F0-804518F4 000DF0 0004+00 3/3 0/0 0/0 .sbss __ARQCallbackHi */
static u8 __ARQCallbackHi[4];
static ARQCallback __ARQCallbackHi;
/* 804518F4-804518F8 000DF4 0004+00 3/3 0/0 0/0 .sbss __ARQCallbackLo */
static u8 __ARQCallbackLo[4];
static ARQCallback __ARQCallbackLo;
/* 804518F8-804518FC 000DF8 0004+00 2/2 0/0 0/0 .sbss __ARQChunkSize */
static u8 __ARQChunkSize[4];
static u32 __ARQChunkSize;
/* 803D1C30-803D1C78 02ED50 0045+03 1/0 0/0 0/0 .data @1 */
const char* __ARQVersion = "<< Dolphin SDK - ARQ\trelease build: Apr 5 2004 04:15:04 (0x2301) >>";
/* 804518FC-80451900 000DFC 0004+00 1/1 0/0 0/0 .sbss __ARQ_init_flag */
static BOOL __ARQ_init_flag;
/* 80352094-80352194 34C9D4 0100+00 2/2 0/0 0/0 .text __ARQServiceQueueLo */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __ARQServiceQueueLo() {
nofralloc
#include "asm/dolphin/ar/arq/__ARQServiceQueueLo.s"
void __ARQServiceQueueLo(void) {
if ((__ARQRequestPendingLo == NULL) && (__ARQRequestQueueLo)) {
__ARQRequestPendingLo = __ARQRequestQueueLo;
__ARQRequestQueueLo = __ARQRequestQueueLo->next;
}
if (__ARQRequestPendingLo) {
if (__ARQRequestPendingLo->length <= __ARQChunkSize) {
if (__ARQRequestPendingLo->type == ARAM_DIR_MRAM_TO_ARAM)
ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->source,
__ARQRequestPendingLo->destination, __ARQRequestPendingLo->length);
else
ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->destination,
__ARQRequestPendingLo->source, __ARQRequestPendingLo->length);
__ARQCallbackLo = __ARQRequestPendingLo->callback;
} else {
if (__ARQRequestPendingLo->type == ARAM_DIR_MRAM_TO_ARAM)
ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->source,
__ARQRequestPendingLo->destination, __ARQChunkSize);
else
ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->destination,
__ARQRequestPendingLo->source, __ARQChunkSize);
}
__ARQRequestPendingLo->length -= __ARQChunkSize;
__ARQRequestPendingLo->source += __ARQChunkSize;
__ARQRequestPendingLo->destination += __ARQChunkSize;
}
}
#pragma pop
/* 80352194-80352198 34CAD4 0004+00 1/1 0/0 0/0 .text __ARQCallbackHack */
void __ARQCallbackHack() {
@@ -74,46 +104,121 @@ void __ARQCallbackHack() {
}
/* 80352198-80352264 34CAD8 00CC+00 1/1 0/0 0/0 .text __ARQInterruptServiceRoutine */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __ARQInterruptServiceRoutine() {
nofralloc
#include "asm/dolphin/ar/arq/__ARQInterruptServiceRoutine.s"
void __ARQInterruptServiceRoutine(void) {
if (__ARQCallbackHi) {
(*__ARQCallbackHi)((u32)__ARQRequestPendingHi);
__ARQRequestPendingHi = NULL;
__ARQCallbackHi = NULL;
}
else if (__ARQCallbackLo)
{
(*__ARQCallbackLo)((u32)__ARQRequestPendingLo);
__ARQRequestPendingLo = NULL;
__ARQCallbackLo = NULL;
}
if (__ARQRequestQueueHi) {
if (__ARQRequestQueueHi->type == 0) {
ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->source,
__ARQRequestQueueHi->destination, __ARQRequestQueueHi->length);
} else {
ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->destination,
__ARQRequestQueueHi->source, __ARQRequestQueueHi->length);
}
__ARQCallbackHi = __ARQRequestQueueHi->callback;
__ARQRequestPendingHi = __ARQRequestQueueHi;
__ARQRequestQueueHi = __ARQRequestQueueHi->next;
}
if (__ARQRequestPendingHi == NULL) {
__ARQServiceQueueLo();
}
}
#pragma pop
/* ############################################################################################## */
/* 803D1C30-803D1C78 02ED50 0045+03 1/0 0/0 0/0 .data @1 */
SECTION_DATA static char lit_1[] = "<< Dolphin SDK - ARQ\trelease build: Apr 5 2004 04:15:04 (0x2301) >>";
/* 80450A50-80450A58 -00001 0004+04 1/1 0/0 0/0 .sdata __ARQVersion */
SECTION_SDATA static void* __ARQVersion[1 + 1 /* padding */] = {
(void*)&lit_1,
/* padding */
NULL,
};
/* 804518FC-80451900 000DFC 0004+00 1/1 0/0 0/0 .sbss __ARQ_init_flag */
static u8 __ARQ_init_flag[4];
/* 80352264-803522D4 34CBA4 0070+00 0/0 1/1 0/0 .text ARQInit */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void ARQInit() {
nofralloc
#include "asm/dolphin/ar/arq/ARQInit.s"
void ARQInit(void) {
if (__ARQ_init_flag == TRUE) {
return;
}
OSRegisterVersion(__ARQVersion);
__ARQRequestQueueHi = __ARQRequestQueueLo = NULL;
__ARQChunkSize = ARQ_CHUNK_SIZE_DEFAULT;
ARRegisterDMACallback(&__ARQInterruptServiceRoutine);
__ARQRequestPendingHi = NULL;
__ARQRequestPendingLo = NULL;
__ARQCallbackHi = NULL;
__ARQCallbackLo = NULL;
__ARQ_init_flag = TRUE;
}
#pragma pop
/* 803522D4-80352430 34CC14 015C+00 0/0 1/1 0/0 .text ARQPostRequest */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void ARQPostRequest(ARQRequest* task, u32 owner, u32 type, u32 priority, u32 source,
u32 destination, u32 length, ARQCallback callback) {
nofralloc
#include "asm/dolphin/ar/arq/ARQPostRequest.s"
void ARQPostRequest(ARQRequest* request, u32 owner, u32 type, u32 priority, u32 source, u32 dest,
u32 length, ARQCallback callback) {
BOOL enabled;
request->next = NULL;
request->owner = owner;
request->type = type;
request->source = source;
request->destination = dest;
request->length = length;
if (callback) {
request->callback = callback;
} else {
request->callback = (ARQCallback)&__ARQCallbackHack;
}
enabled = OSDisableInterrupts();
switch (priority) {
case ARQ_PRIORITY_LOW:
if (__ARQRequestQueueLo) {
__ARQRequestTailLo->next = request;
} else {
__ARQRequestQueueLo = request;
}
__ARQRequestTailLo = request;
break;
case ARQ_PRIORITY_HIGH:
if (__ARQRequestQueueHi) {
__ARQRequestTailHi->next = request;
} else {
__ARQRequestQueueHi = request;
}
__ARQRequestTailHi = request;
break;
}
if ((__ARQRequestPendingHi == NULL) && (__ARQRequestPendingLo == NULL)) {
if (__ARQRequestQueueHi) {
if (__ARQRequestQueueHi->type == ARAM_DIR_MRAM_TO_ARAM) {
ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->source,
__ARQRequestQueueHi->destination, __ARQRequestQueueHi->length);
} else {
ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->destination,
__ARQRequestQueueHi->source, __ARQRequestQueueHi->length);
}
__ARQCallbackHi = __ARQRequestQueueHi->callback;
__ARQRequestPendingHi = __ARQRequestQueueHi;
__ARQRequestQueueHi = __ARQRequestQueueHi->next;
}
if (__ARQRequestPendingHi == NULL) {
__ARQServiceQueueLo();
}
}
OSRestoreInterrupts(enabled);
}
#pragma pop
+1 -1
View File
@@ -27,7 +27,7 @@ $(BUILD_DIR)/libs/dolphin/base/%.o: libs/dolphin/base/%.c $(BUILD_DIR)/libs/dolp
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBBASE_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(CFLAGS) $(LIBBASE_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
+229 -57
View File
@@ -186,14 +186,23 @@ s32 __CARDReadStatus(s32 chan, u8* status) {
}
/* 80352F34-80353024 34D874 00F0+00 0/0 1/1 0/0 .text __CARDReadVendorID */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __CARDReadVendorID() {
nofralloc
#include "asm/dolphin/card/CARDBios/__CARDReadVendorID.s"
s32 __CARDReadVendorID(s32 chan, u16* vendorId) {
BOOL err;
u32 cmd;
if (!EXISelect(chan, 0, 4)) {
return CARD_RESULT_NOCARD;
}
cmd = 0x85000000;
err = FALSE;
err |= !EXIImm(chan, &cmd, 2, 1, NULL);
err |= !EXISync(chan);
err |= !EXIImm(chan, vendorId, 2, 0, NULL);
err |= !EXISync(chan);
err |= !EXIDeselect(chan);
return err ? CARD_RESULT_NOCARD : CARD_RESULT_READY;
}
#pragma pop
/* 80353024-803530D0 34D964 00AC+00 1/1 1/1 0/0 .text __CARDClearStatus */
s32 __CARDClearStatus(s32 chan) {
@@ -237,15 +246,69 @@ static void TimeoutHandler(OSAlarm* alarm, OSContext* context) {
}
}
/* 80353174-80353414 34DAB4 02A0+00 2/2 0/0 0/0 .text Retry */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm s32 Retry(s32 chan) {
nofralloc
#include "asm/dolphin/card/CARDBios/Retry.s"
static inline void SetupTimeoutAlarm(CARDControl* card) {
OSCancelAlarm(&card->alarm);
switch (card->cmd[0]) {
case 0xF2:
OSSetAlarm(&card->alarm, OSMillisecondsToTicks(100), TimeoutHandler);
break;
case 0xF3:
break;
case 0xF4:
if (card->pageSize > 0x80) {
OSSetAlarm(&card->alarm, OSSecondsToTicks((OSTime)2) * (card->cBlock / 0x40),
TimeoutHandler);
break;
}
case 0xF1:
OSSetAlarm(&card->alarm, OSSecondsToTicks((OSTime)2) * (card->sectorSize / 0x2000),
TimeoutHandler);
break;
default:
break;
}
}
/* 80353174-80353414 34DAB4 02A0+00 2/2 0/0 0/0 .text Retry */
static s32 Retry(s32 chan) {
CARDControl* card;
card = &__CARDBlock[chan];
if (!EXISelect(chan, 0, 4)) {
EXIUnlock(chan);
return CARD_RESULT_NOCARD;
}
SetupTimeoutAlarm(card);
if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1)) {
EXIDeselect(chan);
EXIUnlock(chan);
return CARD_RESULT_NOCARD;
}
if (card->cmd[0] == 0x52 &&
!EXIImmEx(chan, (u8*)card->workArea + sizeof(CARDID), card->latency, 1)) {
EXIDeselect(chan);
EXIUnlock(chan);
return CARD_RESULT_NOCARD;
}
if (card->mode == 0xffffffff) {
EXIDeselect(chan);
EXIUnlock(chan);
return CARD_RESULT_READY;
}
if (!EXIDma(chan, card->buffer, (s32)((card->cmd[0] == 0x52) ? 512 : card->pageSize), card->mode,
__CARDTxHandler)) {
EXIDeselect(chan);
EXIUnlock(chan);
return CARD_RESULT_NOCARD;
}
return CARD_RESULT_READY;
}
#pragma pop
/* 80353414-80353524 34DD54 0110+00 1/1 0/0 0/0 .text UnlockedCallback */
static void UnlockedCallback(s32 chan, s32 result) {
@@ -287,14 +350,43 @@ static void UnlockedCallback(s32 chan, s32 result) {
}
/* 80353524-80353748 34DE64 0224+00 3/3 0/0 0/0 .text __CARDStart */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback) {
nofralloc
#include "asm/dolphin/card/CARDBios/__CARDStart.s"
static s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback) {
BOOL enabled;
CARDControl* card;
s32 result;
enabled = OSDisableInterrupts();
card = &__CARDBlock[chan];
if (!card->attached) {
result = CARD_RESULT_NOCARD;
} else {
if (txCallback) {
card->txCallback = txCallback;
}
if (exiCallback) {
card->exiCallback = exiCallback;
}
card->unlockCallback = UnlockedCallback;
if (!EXILock(chan, 0, __CARDUnlockedHandler)) {
result = CARD_RESULT_BUSY;
} else {
card->unlockCallback = 0;
if (!EXISelect(chan, 0, 4)) {
EXIUnlock(chan);
result = CARD_RESULT_NOCARD;
} else {
SetupTimeoutAlarm(card);
result = CARD_RESULT_READY;
}
}
}
OSRestoreInterrupts(enabled);
return result;
}
#pragma pop
#define AD1(x) ((u8)(((x) >> 17) & 0x7f))
#define AD1EX(x) ((u8)(AD1(x) | 0x80));
@@ -337,15 +429,19 @@ s32 __CARDReadSegment(s32 chan, CARDCallback callback) {
}
/* 8035387C-803539B8 34E1BC 013C+00 0/0 2/2 0/0 .text __CARDWritePage */
// needs compiler epilogue patch
#ifdef NONMATCH
s32 __CARDWritePage(s32 chan, CARDCallback callback) {
CARDControl* card;
s32 result;
card = &__CARDBlock[chan];
card->cmd[0] = 0xF2;
card->cmd[1] = AD1(card->addr);
if (card->pageSize > 0x80) {
card->cmd[1] = AD1(card->addr) | 0x80;
} else {
card->cmd[1] = AD1(card->addr);
}
card->cmd[2] = AD2(card->addr);
card->cmd[3] = AD3(card->addr);
card->cmd[4] = BA(card->addr);
@@ -358,7 +454,7 @@ s32 __CARDWritePage(s32 chan, CARDCallback callback) {
result = CARD_RESULT_READY;
} else if (result >= 0) {
if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1) ||
!EXIDma(chan, card->buffer, 128, card->mode, __CARDTxHandler)) {
!EXIDma(chan, card->buffer, card->pageSize, card->mode, __CARDTxHandler)) {
card->exiCallback = 0;
EXIDeselect(chan);
EXIUnlock(chan);
@@ -369,26 +465,43 @@ s32 __CARDWritePage(s32 chan, CARDCallback callback) {
}
return result;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDWritePage(s32 chan, CARDCallback callback) {
nofralloc
#include "asm/dolphin/card/CARDBios/__CARDWritePage.s"
}
#pragma pop
#endif
/* 803539B8-80353AC8 34E2F8 0110+00 0/0 6/6 0/0 .text __CARDEraseSector */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDEraseSector(s32 chan, u32 addr, CARDCallback callback) {
nofralloc
#include "asm/dolphin/card/CARDBios/__CARDEraseSector.s"
s32 __CARDEraseSector(s32 chan, u32 addr, CARDCallback callback) {
CARDControl* card;
s32 result;
card = &__CARDBlock[chan];
if (card->pageSize > 0x80) {
if (callback) {
callback(chan, 0);
}
return 0;
}
card->cmd[0] = 0xF1;
card->cmd[1] = AD1(addr);
card->cmd[2] = AD2(addr);
card->cmdlen = 3;
card->mode = -1;
card->retry = 3;
result = __CARDStart(chan, 0, callback);
if (result == CARD_RESULT_BUSY) {
result = CARD_RESULT_READY;
} else if (result >= 0) {
if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1)) {
card->exiCallback = NULL;
result = CARD_RESULT_NOCARD;
} else {
result = CARD_RESULT_READY;
}
EXIDeselect(chan);
EXIUnlock(chan);
}
return result;
}
#pragma pop
/* ############################################################################################## */
/* 803D1E38-803D1E80 02EF58 0046+02 1/0 0/0 0/0 .data @1 */
@@ -478,26 +591,84 @@ s32 __CARDGetControlBlock(s32 chan, CARDControl** pcard) {
}
/* 80353C6C-80353CD0 34E5AC 0064+00 0/0 24/24 0/0 .text __CARDPutControlBlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDPutControlBlock(CARDControl* card, s32 result) {
nofralloc
#include "asm/dolphin/card/CARDBios/__CARDPutControlBlock.s"
s32 __CARDPutControlBlock(CARDControl* card, s32 result) {
BOOL enabled;
enabled = OSDisableInterrupts();
if (card->attached) {
card->result = result;
} else if (card->result == CARD_RESULT_BUSY) {
card->result = result;
}
OSRestoreInterrupts(enabled);
return result;
}
#pragma pop
/* 80353CD0-80353E20 34E610 0150+00 0/0 1/1 0/0 .text CARDFreeBlocks */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 CARDFreeBlocks(s32 chan, s32* byteNotUsed, s32* filesNotUsed) {
nofralloc
#include "asm/dolphin/card/CARDBios/CARDFreeBlocks.s"
s32 CARDFreeBlocks(s32 chan, s32* byteNotUsed, s32* filesNotUsed) {
CARDControl* card;
s32 result;
u16* fat;
CARDDir* dir;
CARDDir* ent;
u16 fileNo;
result = __CARDGetControlBlock(chan, &card);
if (result < 0) {
return result;
}
fat = __CARDGetFatBlock(card);
dir = __CARDGetDirBlock(card);
if (fat == 0 || dir == 0) {
return __CARDPutControlBlock(card, CARD_RESULT_BROKEN);
}
if (byteNotUsed) {
*byteNotUsed = (s32)(card->sectorSize * fat[CARD_FAT_FREEBLOCKS]);
}
if (filesNotUsed) {
*filesNotUsed = 0;
for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) {
ent = &dir[fileNo];
if (ent->fileName[0] == 0xff) {
++*filesNotUsed;
}
}
}
return __CARDPutControlBlock(card, CARD_RESULT_READY);
}
#pragma pop
/* 80353E20-80353EB8 34E760 0098+00 0/0 7/7 0/0 .text __CARDSync */
#ifdef NONMATCHING
s32 __CARDSync(s32 chan) {
CARDControl* card;
s32 val;
BOOL enabled;
s32 result;
card = &__CARDBlock[chan];
enabled = OSDisableInterrupts();
for (;; ) {
if (chan < 0 || chan >= 2)
result = -0x80;
else
result = card->result;
val = result;
if (val != CARD_RESULT_BUSY){
break;
} else {
OSSleepThread(&card->threadQueue);
}
}
OSRestoreInterrupts(enabled);
return val;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -506,6 +677,7 @@ asm s32 __CARDSync(s32 chan) {
#include "asm/dolphin/card/CARDBios/__CARDSync.s"
}
#pragma pop
#endif
/* 80353EB8-80353F08 34E7F8 0050+00 1/0 0/0 0/0 .text OnReset */
static s32 OnReset(s32 f) {
+41 -26
View File
@@ -62,18 +62,39 @@ static void WriteCallback(s32 chan, s32 result) {
}
/* 803554F0-803555B8 34FE30 00C8+00 1/1 0/0 0/0 .text EraseCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void EraseCallback(s32 chan, s32 result) {
nofralloc
#include "asm/dolphin/card/CARDBlock/EraseCallback.s"
static void EraseCallback(s32 chan, s32 result) {
CARDControl* card;
CARDCallback callback;
u32 temp[2]; /* this compiler sucks */
u16* fat;
u32 addr;
card = &__CARDBlock[chan];
if (result < 0) {
goto error;
}
fat = __CARDGetFatBlock(card);
addr = ((u32)fat - (u32)card->workArea) / CARD_SYSTEM_BLOCK_SIZE * card->sectorSize;
result = __CARDWrite(chan, addr, CARD_SYSTEM_BLOCK_SIZE, fat, WriteCallback);
if (result < 0) {
goto error;
}
return;
error:
if (card->apiCallback == NULL) {
__CARDPutControlBlock(card, result);
}
callback = card->eraseCallback;
if (callback) {
card->eraseCallback = NULL;
callback(chan, result);
}
}
#pragma pop
/* 803555B8-803556D0 34FEF8 0118+00 0/0 1/1 0/0 .text __CARDAllocBlock */
// needs compiler epilogue patch
#ifdef NONMATCHING
s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) {
CARDControl* card;
u16* fat;
@@ -122,23 +143,17 @@ s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) {
return __CARDUpdateFatBlock(chan, fat, callback);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) {
nofralloc
#include "asm/dolphin/card/CARDBlock/__CARDAllocBlock.s"
}
#pragma pop
#endif
/* 803556D0-8035577C 350010 00AC+00 1/1 1/1 0/0 .text __CARDUpdateFatBlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDUpdateFatBlock(s32 chan, u16* fat, CARDCallback callback) {
nofralloc
#include "asm/dolphin/card/CARDBlock/__CARDUpdateFatBlock.s"
s32 __CARDUpdateFatBlock(s32 chan, u16* fat, CARDCallback callback) {
CARDControl* card;
card = &__CARDBlock[chan];
++fat[2];
__CARDCheckSum(fat + 2, 0x1FFC, fat, fat + 1);
DCStoreRange(fat, 0x2000);
card->eraseCallback = callback;
return __CARDEraseSector(chan, (((u32)fat - (u32)card->workArea) / 8192u) * card->sectorSize,
EraseCallback);
}
#pragma pop
+130 -32
View File
@@ -53,34 +53,143 @@ void __CARDCheckSum(void* ptr, int length, u16* checksum, u16* checksumInv) {
}
/* 80355B90-80355E14 3504D0 0284+00 2/2 0/0 0/0 .text VerifyID */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm s32 VerifyID(CARDControl* card) {
nofralloc
#include "asm/dolphin/card/CARDCheck/VerifyID.s"
static s32 VerifyID(CARDControl* card) {
CARDID* id;
u16 checksum;
u16 checksumInv;
OSSramEx* sramEx;
OSTime rand;
int i;
id = card->workArea;
if (id->deviceID != 0 || id->size != card->size) {
return CARD_RESULT_BROKEN;
}
__CARDCheckSum(id, sizeof(CARDID) - sizeof(u32), &checksum, &checksumInv);
if (id->checkSum != checksum || id->checkSumInv != checksumInv) {
return CARD_RESULT_BROKEN;
}
rand = *(OSTime*)&id->serial[12];
sramEx = __OSLockSramEx();
for (i = 0; i < 12; i++) {
rand = (rand * 1103515245 + 12345) >> 16;
if (id->serial[i] != (u8)(sramEx->flashID[card - __CARDBlock][i] + rand)) {
__OSUnlockSramEx(FALSE);
return CARD_RESULT_BROKEN;
}
rand = ((rand * 1103515245 + 12345) >> 16) & 0x7FFF;
}
__OSUnlockSramEx(FALSE);
if (id->encode != __CARDGetFontEncode()) {
return CARD_RESULT_ENCODING;
}
return CARD_RESULT_READY;
}
#pragma pop
/* 80355E14-80356054 350754 0240+00 2/2 0/0 0/0 .text VerifyDir */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm s32 VerifyDir(CARDControl* card, int* outCurrent) {
nofralloc
#include "asm/dolphin/card/CARDCheck/VerifyDir.s"
static s32 VerifyDir(CARDControl* card, int* outCurrent) {
CARDDir* dir[2];
CARDDirCheck* check[2];
u16 checkSum;
u16 checkSumInv;
int i;
int errors;
int current;
current = errors = 0;
for (i = 0; i < 2; i++) {
dir[i] = (CARDDir*)((u8*)card->workArea + (1 + i) * CARD_SYSTEM_BLOCK_SIZE);
check[i] = __CARDGetDirCheck(dir[i]);
__CARDCheckSum(dir[i], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &checkSum, &checkSumInv);
if (check[i]->checkSum != checkSum || check[i]->checkSumInv != checkSumInv) {
++errors;
current = i;
card->currentDir = 0;
}
}
if (0 == errors) {
if (card->currentDir == 0) {
if ((check[0]->checkCode - check[1]->checkCode) < 0) {
current = 0;
} else {
current = 1;
}
card->currentDir = dir[current];
memcpy(dir[current], dir[current ^ 1], CARD_SYSTEM_BLOCK_SIZE);
} else {
current = (card->currentDir == dir[0]) ? 0 : 1;
}
}
if (outCurrent) {
*outCurrent = current;
}
return errors;
}
#pragma pop
/* 80356054-803562D8 350994 0284+00 2/2 0/0 0/0 .text VerifyFAT */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm s32 VerifyFAT(CARDControl* card, int* outCurrent) {
nofralloc
#include "asm/dolphin/card/CARDCheck/VerifyFAT.s"
static s32 VerifyFAT(CARDControl* card, int* outCurrent) {
u16* fat[2];
u16* fatp;
u16 nBlock;
u16 cFree;
int i;
u16 checkSum;
u16 checkSumInv;
int errors;
int current;
current = errors = 0;
for (i = 0; i < 2; i++) {
fatp = fat[i] = (u16*)((u8*)card->workArea + (3 + i) * CARD_SYSTEM_BLOCK_SIZE);
__CARDCheckSum(&fatp[CARD_FAT_CHECKCODE], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &checkSum,
&checkSumInv);
if (fatp[CARD_FAT_CHECKSUM] != checkSum || fatp[CARD_FAT_CHECKSUMINV] != checkSumInv) {
++errors;
current = i;
card->currentFat = 0;
continue;
}
cFree = 0;
for (nBlock = CARD_NUM_SYSTEM_BLOCK; nBlock < card->cBlock; nBlock++) {
if (fatp[nBlock] == CARD_FAT_AVAIL) {
cFree++;
}
}
if (cFree != fatp[CARD_FAT_FREEBLOCKS]) {
++errors;
current = i;
card->currentFat = 0;
continue;
}
}
if (0 == errors) {
if (card->currentFat == 0) {
if (((s16)fat[0][CARD_FAT_CHECKCODE] - (s16)fat[1][CARD_FAT_CHECKCODE]) < 0) {
current = 0;
} else {
current = 1;
}
card->currentFat = fat[current];
memcpy(fat[current], fat[current ^ 1], CARD_SYSTEM_BLOCK_SIZE);
} else {
current = (card->currentFat == fat[0]) ? 0 : 1;
}
}
if (outCurrent) {
*outCurrent = current;
}
return errors;
}
#pragma pop
/* 803562D8-80356364 350C18 008C+00 0/0 1/1 0/0 .text __CARDVerify */
s32 __CARDVerify(CARDControl* card) {
@@ -105,7 +214,6 @@ s32 __CARDVerify(CARDControl* card) {
}
/* 80356364-803568F4 350CA4 0590+00 1/1 0/0 0/0 .text CARDCheckExAsync */
#ifdef NONMATCHING
s32 CARDCheckExAsync(s32 chan, s32* xferBytes, CARDCallback callback) {
CARDControl* card;
CARDDir* dir[2];
@@ -235,16 +343,6 @@ s32 CARDCheckExAsync(s32 chan, s32* xferBytes, CARDCallback callback) {
}
return CARD_RESULT_READY;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm s32 CARDCheckExAsync(s32 chan, s32* xferBytes, CARDCallback callback) {
nofralloc
#include "asm/dolphin/card/CARDCheck/CARDCheckExAsync.s"
}
#pragma pop
#endif
/* 803568F4-80356948 351234 0054+00 0/0 2/2 0/0 .text CARDCheck */
s32 CARDCheck(s32 chan) {
-23
View File
@@ -55,8 +55,6 @@ error:
}
/* 80355854-8035591C 350194 00C8+00 1/1 0/0 0/0 .text EraseCallback */
// needs compiler epilogue patch
#ifdef NONMATCHING
static void EraseCallback(s32 chan, s32 result) {
CARDControl* card;
CARDCallback callback;
@@ -88,19 +86,8 @@ error:
callback(chan, result);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void EraseCallback(s32 chan, s32 result) {
nofralloc
#include "asm/dolphin/card/CARDDir/EraseCallback.s"
}
#pragma pop
#endif
/* 8035591C-803559E0 35025C 00C4+00 0/0 4/4 0/0 .text __CARDUpdateDir */
#ifdef NONMATCHING
s32 __CARDUpdateDir(s32 chan, CARDCallback callback) {
CARDControl* card;
CARDDirCheck* check;
@@ -123,13 +110,3 @@ s32 __CARDUpdateDir(s32 chan, CARDCallback callback) {
addr = ((u32)dir - (u32)card->workArea) / 0x2000 * card->sectorSize;
return __CARDEraseSector(chan, addr, EraseCallback);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDUpdateDir(s32 chan, CARDCallback callback) {
nofralloc
#include "asm/dolphin/card/CARDDir/__CARDUpdateDir.s"
}
#pragma pop
#endif
+76 -7
View File
@@ -9,6 +9,7 @@
#include "dolphin/card/card.h"
#include "dolphin/dsp/dsp.h"
#include "dolphin/dvd/dvd.h"
#include "dolphin/vi/vi.h"
#include "dolphin/card/CARDPriv.h"
@@ -68,14 +69,82 @@ error:
}
/* 803575C8-80357C20 351F08 0658+00 1/1 0/0 0/0 .text __CARDFormatRegionAsync */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDFormatRegionAsync(s32 chan, u16 encode, CARDCallback callback) {
nofralloc
#include "asm/dolphin/card/CARDFormat/__CARDFormatRegionAsync.s"
s32 __CARDFormatRegionAsync(s32 chan, u16 encode, CARDCallback callback) {
CARDControl* card;
CARDID* id;
CARDDir* dir;
u16* fat;
s16 i;
s32 result;
OSSram* sram;
OSSramEx* sramEx;
u16 viDTVStatus;
OSTime time;
OSTime rand;
result = __CARDGetControlBlock(chan, &card);
if (result < 0) {
return result;
}
id = (CARDID*)card->workArea;
memset(id, 0xff, CARD_SYSTEM_BLOCK_SIZE);
viDTVStatus = __VIRegs[55];
id->encode = encode;
sram = __OSLockSram();
*(u32*)&id->serial[20] = sram->counterBias;
*(u32*)&id->serial[24] = sram->language;
__OSUnlockSram(FALSE);
rand = time = OSGetTime();
sramEx = __OSLockSramEx();
for (i = 0; i < 12; i++) {
rand = (rand * 1103515245 + 12345) >> 16;
id->serial[i] = (u8)(sramEx->flashID[chan][i] + rand);
rand = ((rand * 1103515245 + 12345) >> 16) & 0x7FFF;
}
__OSUnlockSramEx(FALSE);
*(u32*)&id->serial[28] = viDTVStatus;
*(OSTime*)&id->serial[12] = time;
id->deviceID = 0;
id->size = card->size;
__CARDCheckSum(id, sizeof(CARDID) - sizeof(u32), &id->checkSum, &id->checkSumInv);
for (i = 0; i < 2; i++) {
CARDDirCheck* check;
dir = (CARDDir*)((u8*)card->workArea + (1 + i) * CARD_SYSTEM_BLOCK_SIZE);
memset(dir, 0xff, CARD_SYSTEM_BLOCK_SIZE);
check = __CARDGetDirCheck(dir);
check->checkCode = i;
__CARDCheckSum(dir, CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &check->checkSum,
&check->checkSumInv);
}
for (i = 0; i < 2; i++) {
fat = (u16*)((u8*)card->workArea + (3 + i) * CARD_SYSTEM_BLOCK_SIZE);
memset(fat, 0x00, CARD_SYSTEM_BLOCK_SIZE);
fat[CARD_FAT_CHECKCODE] = (u16)i;
fat[CARD_FAT_FREEBLOCKS] = (u16)(card->cBlock - CARD_NUM_SYSTEM_BLOCK);
fat[CARD_FAT_LASTSLOT] = CARD_NUM_SYSTEM_BLOCK - 1;
__CARDCheckSum(&fat[CARD_FAT_CHECKCODE], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32),
&fat[CARD_FAT_CHECKSUM], &fat[CARD_FAT_CHECKSUMINV]);
}
card->apiCallback = callback ? callback : __CARDDefaultApiCallback;
DCStoreRange(card->workArea, CARD_WORKAREA_SIZE);
card->formatStep = 0;
result = __CARDEraseSector(chan, (u32)card->sectorSize * card->formatStep, FormatCallback);
if (result < 0) {
__CARDPutControlBlock(card, result);
}
return result;
}
#pragma pop
/* 80357C20-80357C74 352560 0054+00 0/0 1/1 0/0 .text CARDFormat */
s32 CARDFormat(s32 chan) {
+137 -15
View File
@@ -146,14 +146,133 @@ static u32 LatencyTable[8] = {
};
/* 80356BC8-8035701C 351508 0454+00 2/2 0/0 0/0 .text DoMount */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm s32 DoMount(s32 chan) {
nofralloc
#include "asm/dolphin/card/CARDMount/DoMount.s"
static s32 DoMount(s32 chan) {
CARDControl* card;
u32 id;
u8 status;
s32 result;
OSSramEx* sram;
int i;
u8 checkSum;
int step;
card = &__CARDBlock[chan];
if (card->mountStep == 0) {
if (EXIGetID(chan, 0, &id) == 0) {
result = CARD_RESULT_NOCARD;
} else if (IsCard(id)) {
result = CARD_RESULT_READY;
} else {
result = CARD_RESULT_WRONGDEVICE;
}
if (result < 0) {
goto error;
}
card->cid = id;
card->size = (u16)(id & 0xFC);
card->sectorSize = SectorSizeTable[(id & 0x00003800) >> 11];
card->cBlock = (u16)((card->size * 1024 * 1024 / 8) / card->sectorSize);
card->latency = LatencyTable[(id & 0x00000700) >> 8];
result = __CARDReadVendorID(chan, &card->vendorID);
if (result < 0) {
goto error;
}
if (CARDGetFastMode() && (card->vendorID >> 8) == 0xec) {
card->pageSize = 0x200;
} else {
card->pageSize = 0x80;
}
result = __CARDClearStatus(chan);
if (result < 0) {
goto error;
}
result = __CARDReadStatus(chan, &status);
if (result < 0) {
goto error;
}
if (!EXIProbe(chan)) {
result = CARD_RESULT_NOCARD;
goto error;
}
if (!(status & 0x40)) {
result = __CARDUnlock(chan, card->id);
if (result < 0) {
goto error;
}
checkSum = 0;
sram = __OSLockSramEx();
for (i = 0; i < 12; i++) {
sram->flashID[chan][i] = card->id[i];
checkSum += card->id[i];
}
sram->flashIDCheckSum[chan] = (u8)~checkSum;
__OSUnlockSramEx(TRUE);
return result;
} else {
card->mountStep = 1;
checkSum = 0;
sram = __OSLockSramEx();
for (i = 0; i < 12; i++) {
checkSum += sram->flashID[chan][i];
}
__OSUnlockSramEx(FALSE);
if (sram->flashIDCheckSum[chan] != (u8)~checkSum) {
result = CARD_RESULT_IOERROR;
goto error;
}
}
}
if (card->mountStep == 1) {
if (card->cid == 0x80000004) {
u16 vendorID;
sram = __OSLockSramEx();
vendorID = *(u16*)sram->flashID[chan];
__OSUnlockSramEx(FALSE);
if (__CARDVendorID == 0xffff || vendorID != __CARDVendorID) {
result = CARD_RESULT_WRONGDEVICE;
goto error;
}
}
card->mountStep = 2;
result = __CARDEnableInterrupt(chan, TRUE);
if (result < 0) {
goto error;
}
EXISetExiCallback(chan, __CARDExiHandler);
EXIUnlock(chan);
DCInvalidateRange(card->workArea, CARD_WORKAREA_SIZE);
}
step = card->mountStep - 2;
result = __CARDRead(chan, (u32)card->sectorSize * step, CARD_SYSTEM_BLOCK_SIZE,
(u8*)card->workArea + (CARD_SYSTEM_BLOCK_SIZE * step), __CARDMountCallback);
if (result < 0) {
__CARDPutControlBlock(card, result);
}
return result;
error:
EXIUnlock(chan);
DoUnmount(chan, result);
return result;
}
#pragma pop
/* 8035701C-80357154 35195C 0138+00 2/2 1/1 0/0 .text __CARDMountCallback */
void __CARDMountCallback(s32 chan, s32 result) {
@@ -266,7 +385,7 @@ s32 CARDMount(s32 chan, void* workArea, CARDCallback attachCb) {
}
/* 8035733C-803573D8 351C7C 009C+00 2/2 0/0 0/0 .text DoUnmount */
static void DoUnmount(s32 chan, s32 result) {
static inline void DoUnmount(s32 chan, s32 result) {
CARDControl* card;
BOOL enabled;
@@ -284,11 +403,14 @@ static void DoUnmount(s32 chan, s32 result) {
}
/* 803573D8-80357484 351D18 00AC+00 0/0 2/2 0/0 .text CARDUnmount */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 CARDUnmount(s32 chan) {
nofralloc
#include "asm/dolphin/card/CARDMount/CARDUnmount.s"
s32 CARDUnmount(s32 chan) {
CARDControl* card;
s32 result;
result = __CARDGetControlBlock(chan, &card);
if (result < 0) {
return result;
}
DoUnmount(chan, CARD_RESULT_NOCARD);
return CARD_RESULT_READY;
}
#pragma pop
+2 -2
View File
@@ -12,10 +12,10 @@
#include "dolphin/card/CARDPriv.h"
/* 80450A70 0002+00 data_80450A70 __CARDVendorID */
SECTION_SDATA u16 __CARDVendorID = 0xFFFF;
u16 __CARDVendorID = 0xFFFF;
/* 80450A72 0006+00 data_80450A72 None */
SECTION_SDATA u8 data_80450A72 = 0x1C;
u8 data_80450A72 = 0x1C;
/* 80359158-8035921C 353A98 00C4+00 0/0 1/1 0/0 .text CARDGetSerialNo */
s32 CARDGetSerialNo(s32 chan, u64* serialNo) {
+105 -35
View File
@@ -41,60 +41,130 @@ BOOL __CARDCompareFileName(CARDDir* ent, const char* fileName) {
}
/* 80357CDC-80357D70 35261C 0094+00 2/2 0/0 0/0 .text __CARDAccess */
#ifdef NONMATCHING
s32 __CARDAccess(CARDControl* card, CARDDir* ent) {
const DVDDiskID* diskId = card->diskID;
if (ent->gameName[0] == 0xFF) {
return CARD_RESULT_NOFILE;
}
if (card->diskID == &__CARDDiskNone ||
(memcmp(ent->gameName, card->diskID->game_name, 4) == 0 &&
memcmp(ent->company, card->diskID->company, 2) == 0)) {
if (diskId == &__CARDDiskNone ||
(memcmp(ent->gameName, diskId->game_name, 4) == 0 &&
memcmp(ent->company, diskId->company, 2) == 0)) {
return CARD_RESULT_READY;
}
return CARD_RESULT_NOPERM;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDAccess(CARDControl* card, CARDDir* ent) {
nofralloc
#include "asm/dolphin/card/CARDOpen/__CARDAccess.s"
}
#pragma pop
#endif
/* 80357D70-80357EA4 3526B0 0134+00 0/0 2/2 0/0 .text __CARDIsWritable */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDIsWritable(CARDControl* card, CARDDir* ent) {
nofralloc
#include "asm/dolphin/card/CARDOpen/__CARDIsWritable.s"
s32 __CARDIsWritable(CARDControl* card, CARDDir* ent) {
s32 retVal;
const DVDDiskID* diskId = card->diskID;
u8 val;
if ((u8)ent->gameName[0] == 0xFFu) {
retVal = CARD_RESULT_NOFILE;
} else if (diskId == &__CARDDiskNone ||
(memcmp(ent->gameName, diskId->game_name, 4) == 0 &&
memcmp(ent->company, diskId->company, 2) == 0)) {
retVal = CARD_RESULT_READY;
} else {
retVal = CARD_RESULT_NOPERM;
}
if (retVal == CARD_RESULT_NOPERM) {
val = ent->permission & data_80450A72;
if (val & 0x20u && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 &&
memcmp(ent->company, __CARDDiskNone.company, 2) == 0)) {
return CARD_RESULT_READY;
} else if (val & 0x40 && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 &&
memcmp(ent->company, diskId->company, 2) == 0)) {
return CARD_RESULT_READY;
}
}
return retVal;
}
#pragma pop
/* 80357EA4-80357F98 3527E4 00F4+00 0/0 2/2 0/0 .text __CARDIsReadable */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDIsReadable(CARDControl* card, CARDDir* ent) {
nofralloc
#include "asm/dolphin/card/CARDOpen/__CARDIsReadable.s"
s32 __CARDIsReadable(CARDControl* card, CARDDir* ent) {
u8 val;
s32 retVal;
const DVDDiskID* diskId = card->diskID;
retVal = __CARDAccess(card, ent);
if (retVal == CARD_RESULT_NOPERM) {
val = ent->permission & data_80450A72;
if (val & 0x20u && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 &&
memcmp(ent->company, __CARDDiskNone.company, 2) == 0)) {
retVal = CARD_RESULT_READY;
} else if (val & 0x40 && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 &&
memcmp(ent->company, diskId->company, 2) == 0)) {
retVal = CARD_RESULT_READY;
}
}
if (retVal == CARD_RESULT_NOPERM && (ent->permission & 0x4)) {
return CARD_RESULT_READY;
}
return retVal;
}
static inline s32 __CARDGetFileNo(CARDControl* card, const char* fileName, s32* pfileNo) {
CARDDir* dir;
CARDDir* ent;
s32 fileNo;
s32 result;
if (!card->attached) {
return CARD_RESULT_NOCARD;
}
dir = __CARDGetDirBlock(card);
for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) {
ent = &dir[fileNo];
result = __CARDAccess(card, ent);
if (result < 0) {
continue;
}
if (__CARDCompareFileName(ent, fileName)) {
*pfileNo = fileNo;
return CARD_RESULT_READY;
}
}
return CARD_RESULT_NOFILE;
}
#pragma pop
/* 80357F98-803580B4 3528D8 011C+00 0/0 3/3 0/0 .text CARDOpen */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 CARDOpen(s32 chan, const char* fileName, CARDFileInfo* fileInfo) {
nofralloc
#include "asm/dolphin/card/CARDOpen/CARDOpen.s"
s32 CARDOpen(s32 chan, const char* fileName, CARDFileInfo* fileInfo) {
CARDControl* card;
CARDDir* dir;
CARDDir* ent;
s32 result;
s32 fileNo;
fileInfo->chan = -1;
result = __CARDGetControlBlock(chan, &card);
if (result < 0) {
return result;
}
result = __CARDGetFileNo(card, fileName, &fileNo);
if (0 <= result) {
dir = __CARDGetDirBlock(card);
ent = &dir[fileNo];
if (!CARDIsValidBlockNo(card, ent->startBlock)) {
result = CARD_RESULT_BROKEN;
} else {
fileInfo->chan = chan;
fileInfo->fileNo = fileNo;
fileInfo->offset = 0;
fileInfo->iBlock = ent->startBlock;
}
}
return __CARDPutControlBlock(card, result);
}
#pragma pop
/* 803580B4-80358108 3529F4 0054+00 0/0 3/3 0/0 .text CARDClose */
s32 CARDClose(CARDFileInfo* fileInfo) {
+32 -7
View File
@@ -74,14 +74,39 @@ s32 __CARDRead(s32 chan, u32 addr, s32 length, void* dst, CARDCallback callback)
}
/* 803552C4-803553AC 34FC04 00E8+00 1/1 0/0 0/0 .text BlockWriteCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void BlockWriteCallback(s32 chan, s32 result) {
nofralloc
#include "asm/dolphin/card/CARDRdwr/BlockWriteCallback.s"
static void BlockWriteCallback(s32 chan, s32 result) {
CARDCallback callback;
CARDControl* card = &__CARDBlock[chan];
if (result < 0) {
goto error;
}
card->xferred += card->pageSize;
card->addr += card->pageSize;
(u8*)card->buffer += card->pageSize;
if (--card->repeat <= 0) {
goto error;
}
result = __CARDWritePage(chan, BlockWriteCallback);
if (result < 0) {
goto error;
}
return;
error:
if (card->apiCallback == 0) {
__CARDPutControlBlock(card, result);
}
callback = card->xferCallback;
if (callback) {
card->xferCallback = 0;
callback(chan, result);
}
}
#pragma pop
/* 803553AC-80355414 34FCEC 0068+00 0/0 4/4 0/0 .text __CARDWrite */
s32 __CARDWrite(s32 chan, u32 addr, s32 length, void* dst, CARDCallback callback) {
+1 -16
View File
@@ -120,7 +120,6 @@ error:
}
/* 80358788-803588CC 3530C8 0144+00 1/1 0/0 0/0 .text CARDReadAsync */
#ifdef NONMATCHING
s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset,
CARDCallback callback) {
CARDControl* card;
@@ -138,10 +137,7 @@ s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset,
dir = __CARDGetDirBlock(card);
ent = &dir[fileInfo->fileNo];
result = __CARDAccess(card, ent);
if (result == CARD_RESULT_NOPERM) {
result = __CARDIsWritable(ent);
}
result = __CARDIsReadable(card, ent);
if (result < 0) {
return __CARDPutControlBlock(card, result);
@@ -159,17 +155,6 @@ s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset,
}
return result;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset,
CARDCallback callback) {
nofralloc
#include "asm/dolphin/card/CARDRead/CARDReadAsync.s"
}
#pragma pop
#endif
/* 803588CC-80358914 35320C 0048+00 0/0 2/2 0/0 .text CARDRead */
s32 CARDRead(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset) {
+3 -28
View File
@@ -17,7 +17,7 @@ static void UpdateIconOffsets(CARDDir* ent, CARDStat* stat);
// External References:
//
SECTION_INIT void memcpy();
void memcpy();
void __div2i();
//
@@ -84,7 +84,6 @@ static void UpdateIconOffsets(CARDDir* ent, CARDStat* stat) {
}
/* 80358E88-80358F9C 3537C8 0114+00 0/0 2/2 0/0 .text CARDGetStatus */
#ifdef NONMATCHING
s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
CARDControl* card;
CARDDir* dir;
@@ -101,10 +100,7 @@ s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
dir = __CARDGetDirBlock(card);
ent = &dir[fileNo];
result = __CARDAccess(card, ent);
if (result == CARD_RESULT_NOPERM) {
result = __CARDIsWritable(ent);
}
result = __CARDIsReadable(card, ent);
if (result >= 0) {
memcpy(stat->gameName, ent->gameName, sizeof(stat->gameName));
@@ -123,19 +119,8 @@ s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
}
return __CARDPutControlBlock(card, result);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
nofralloc
#include "asm/dolphin/card/CARDStat/CARDGetStatus.s"
}
#pragma pop
#endif
/* 80358F9C-80359110 3538DC 0174+00 1/1 0/0 0/0 .text CARDSetStatusAsync */
#ifdef NONMATCHING
s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callback) {
CARDControl* card;
CARDDir* dir;
@@ -155,7 +140,7 @@ s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callba
dir = __CARDGetDirBlock(card);
ent = &dir[fileNo];
result = __CARDAccess(card, ent);
result = __CARDIsWritable(card, ent);
if (result < 0) {
return __CARDPutControlBlock(card, result);
}
@@ -178,16 +163,6 @@ s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callba
}
return result;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callback) {
nofralloc
#include "asm/dolphin/card/CARDStat/CARDSetStatusAsync.s"
}
#pragma pop
#endif
/* 80359110-80359158 353A50 0048+00 0/0 1/1 0/0 .text CARDSetStatus */
s32 CARDSetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
+295 -32
View File
@@ -26,7 +26,7 @@ static void DoneCallback(void* _task);
// External References:
//
SECTION_INIT void memset();
void memset();
void DSPAddTask();
void DSPSendMailToDSP();
@@ -100,15 +100,47 @@ static s32 ReadArrayUnlock(s32 chan, u32 data, void* rbuf, s32 rlen, s32 mode) {
/* 80450A68-80450A70 0004E8 0004+04 2/2 0/0 0/0 .sdata next */
static unsigned long int next = 1;
/* 803541D4-80354298 34EB14 00C4+00 2/2 0/0 0/0 .text DummyLen */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm s32 DummyLen(void) {
nofralloc
#include "asm/dolphin/card/CARDUnlock/DummyLen.s"
static inline int CARDRand(void) {
next = next * 1103515245 + 12345;
return (int)((unsigned int)(next / 65536) % 32768);
}
static inline void CARDSrand(unsigned int seed) { next = seed; }
/* 803541D4-80354298 34EB14 00C4+00 2/2 0/0 0/0 .text DummyLen */
static s32 DummyLen(void) {
u32 tick;
u32 wk;
s32 tmp;
u32 max;
wk = 1;
max = 0;
tick = OSGetTick();
CARDSrand(tick);
tmp = CARDRand();
tmp &= 0x0000001f;
tmp += 1;
while ((tmp < 4) && (max < 10)) {
tick = OSGetTick();
tmp = (s32)(tick << wk);
wk++;
if (wk > 16) {
wk = 1;
}
CARDSrand((u32)tmp);
tmp = CARDRand();
tmp &= 0x0000001f;
tmp += 1;
max++;
}
if (tmp < 4) {
tmp = 4;
}
return tmp;
}
#pragma pop
/* ############################################################################################## */
/* 803D1EA0-803D2000 02EFC0 0160+00 1/1 0/0 0/0 .data CardData */
@@ -137,32 +169,263 @@ SECTION_DATA static u8 CardData[352] ALIGN_DECL(32) = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80354298-80354DF0 34EBD8 0B58+00 0/0 1/1 0/0 .text __CARDUnlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 __CARDUnlock(s32 chan, u8 flashID[12]) {
nofralloc
#include "asm/dolphin/card/CARDUnlock/__CARDUnlock.s"
typedef struct DecodeParameters {
u8* inputAddr;
u32 inputLength;
u32 aramAddr;
u8* outputAddr;
} DecodeParameters;
static inline u32 GetInitVal(void) {
u32 tmp;
u32 tick;
tick = OSGetTick();
CARDSrand(tick);
tmp = 0x7fec8000;
tmp |= CARDRand();
tmp &= 0xfffff000;
return tmp;
}
static inline u32 exnor_1st(u32 data, u32 rshift) {
u32 wk;
u32 w;
u32 i;
w = data;
for (i = 0; i < rshift; i++) {
wk = ~(w ^ (w >> 7) ^ (w >> 15) ^ (w >> 23));
w = (w >> 1) | ((wk << 30) & 0x40000000);
}
return w;
}
static inline u32 exnor(u32 data, u32 lshift) {
u32 wk;
u32 w;
u32 i;
w = data;
for (i = 0; i < lshift; i++) {
// 1bit Left Shift
wk = ~(w ^ (w << 7) ^ (w << 15) ^ (w << 23));
w = (w << 1) | ((wk >> 30) & 0x00000002);
// printf("i=%d, w=%8x\n", i, w);
}
return w;
}
/* 80354298-80354DF0 34EBD8 0B58+00 0/0 1/1 0/0 .text __CARDUnlock */
s32 __CARDUnlock(s32 chan, u8 flashID[12]) {
u32 init_val;
u32 data;
s32 dummy;
s32 rlen;
u32 rshift;
u8 fsts;
u32 wk, wk1;
u32 Ans1 = 0;
u32 Ans2 = 0;
u32* dp;
u8 rbuf[64];
u32 para1A = 0;
u32 para1B = 0;
u32 para2A = 0;
u32 para2B = 0;
CARDControl* card;
DSPTaskInfo* task;
DecodeParameters* param;
u8* input;
u8* output;
card = &__CARDBlock[chan];
task = &card->task;
param = (DecodeParameters*)card->workArea;
input = (u8*)((u8*)param + sizeof(DecodeParameters));
input = (u8*)OSRoundUp32B(input);
output = input + 32;
fsts = 0;
init_val = GetInitVal();
dummy = DummyLen();
rlen = dummy;
if (ReadArrayUnlock(chan, init_val, rbuf, rlen, 0) < 0) {
return CARD_RESULT_NOCARD;
}
rshift = (u32)(dummy * 8 + 1);
wk = exnor_1st(init_val, rshift);
wk1 = ~(wk ^ (wk >> 7) ^ (wk >> 15) ^ (wk >> 23));
card->scramble = (wk | ((wk1 << 31) & 0x80000000));
card->scramble = bitrev(card->scramble);
dummy = DummyLen();
rlen = 20 + dummy;
data = 0;
if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) {
return CARD_RESULT_NOCARD;
}
dp = (u32*)rbuf;
para1A = *dp++;
para1B = *dp++;
Ans1 = *dp++;
para2A = *dp++;
para2B = *dp++;
para1A = (para1A ^ card->scramble);
rshift = 32;
wk = exnor(card->scramble, rshift);
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
para1B = (para1B ^ card->scramble);
rshift = 32;
wk = exnor(card->scramble, rshift);
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
Ans1 ^= card->scramble;
rshift = 32;
wk = exnor(card->scramble, rshift);
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
para2A = (para2A ^ card->scramble);
rshift = 32;
wk = exnor(card->scramble, rshift);
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
para2B = (para2B ^ card->scramble);
rshift = (u32)(dummy * 8);
wk = exnor(card->scramble, rshift);
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
rshift = 32 + 1;
wk = exnor(card->scramble, rshift);
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
*(u32*)&input[0] = para2A;
*(u32*)&input[4] = para2B;
param->inputAddr = input;
param->inputLength = 8;
param->outputAddr = output;
param->aramAddr = 0;
DCFlushRange(input, 8);
DCInvalidateRange(output, 4);
DCFlushRange(param, sizeof(DecodeParameters));
task->priority = 255;
task->iram_mmem_addr = (u16*)OSPhysicalToCached(CardData);
task->iram_length = 0x160;
task->iram_addr = 0;
task->dsp_init_vector = 0x10;
task->init_cb = InitCallback;
task->res_cb = NULL;
task->done_cb = DoneCallback;
task->req_cb = NULL;
DSPAddTask(task);
dp = (u32*)flashID;
*dp++ = para1A;
*dp++ = para1B;
*dp = Ans1;
return CARD_RESULT_READY;
}
#pragma pop
/* 80354DF0-80354E60 34F730 0070+00 1/1 0/0 0/0 .text InitCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void InitCallback(void* _task) {
nofralloc
#include "asm/dolphin/card/CARDUnlock/InitCallback.s"
static void InitCallback(void* _task) {
s32 chan;
CARDControl* card;
DSPTaskInfo* task;
DecodeParameters* param;
task = _task;
for (chan = 0; chan < 2; ++chan) {
card = &__CARDBlock[chan];
if ((DSPTaskInfo*)&card->task == task) {
break;
}
}
param = (DecodeParameters*)card->workArea;
DSPSendMailToDSP(0xff000000);
while (DSPCheckMailToDSP())
;
DSPSendMailToDSP((u32)param);
while (DSPCheckMailToDSP())
;
}
#pragma pop
/* 80354E60-80355184 34F7A0 0324+00 1/1 0/0 0/0 .text DoneCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void DoneCallback(void* _task) {
nofralloc
#include "asm/dolphin/card/CARDUnlock/DoneCallback.s"
}
#pragma pop
static void DoneCallback(void* _task) {
u8 rbuf[64];
u32 data;
s32 dummy;
s32 rlen;
u32 rshift;
u8 unk;
u32 wk, wk1;
u32 Ans2;
s32 chan;
CARDControl* card;
s32 result;
DSPTaskInfo* task;
DecodeParameters* param;
u8* input;
u8* output;
task = _task;
for (chan = 0; chan < 2; ++chan) {
card = &__CARDBlock[chan];
if ((DSPTaskInfo*)&card->task == task) {
break;
}
}
param = (DecodeParameters*)card->workArea;
input = (u8*)((u8*)param + sizeof(DecodeParameters));
input = (u8*)OSRoundUp32B(input);
output = input + 32;
Ans2 = *(u32*)output;
dummy = DummyLen();
rlen = dummy;
data = ((Ans2 ^ card->scramble) & 0xffff0000);
if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) {
EXIUnlock(chan);
__CARDMountCallback(chan, CARD_RESULT_NOCARD);
return;
}
rshift = (u32)((dummy + 4 + card->latency) * 8 + 1);
wk = exnor(card->scramble, rshift);
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
dummy = DummyLen();
rlen = dummy;
data = (((Ans2 << 16) ^ card->scramble) & 0xffff0000);
if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) {
EXIUnlock(chan);
__CARDMountCallback(chan, CARD_RESULT_NOCARD);
return;
}
result = __CARDReadStatus(chan, &unk);
if (!EXIProbe(chan)) {
EXIUnlock(chan);
__CARDMountCallback(chan, CARD_RESULT_NOCARD);
return;
}
if (result == CARD_RESULT_READY && !(unk & 0x40)) {
EXIUnlock(chan);
result = CARD_RESULT_IOERROR;
}
__CARDMountCallback(chan, result);
}
+71 -14
View File
@@ -29,24 +29,81 @@ void __div2i();
//
/* 80358914-80358A84 353254 0170+00 1/1 0/0 0/0 .text WriteCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void WriteCallback(s32 chan, s32 result) {
nofralloc
#include "asm/dolphin/card/CARDWrite/WriteCallback.s"
static void WriteCallback(s32 chan, s32 result) {
CARDControl* card;
CARDCallback callback;
u16* fat;
CARDDir* dir;
CARDDir* ent;
CARDFileInfo* fileInfo;
card = &__CARDBlock[chan];
if (result < 0) {
goto error;
}
fileInfo = card->fileInfo;
if (fileInfo->length < 0) {
result = CARD_RESULT_CANCELED;
goto error;
}
fileInfo->length -= card->sectorSize;
if (fileInfo->length <= 0) {
dir = __CARDGetDirBlock(card);
ent = &dir[fileInfo->fileNo];
ent->time = (u32)OSTicksToSeconds(OSGetTime());
callback = card->apiCallback;
card->apiCallback = 0;
result = __CARDUpdateDir(chan, callback);
} else {
fat = __CARDGetFatBlock(card);
fileInfo->offset += card->sectorSize;
fileInfo->iBlock = fat[fileInfo->iBlock];
if (!CARDIsValidBlockNo(card, fileInfo->iBlock)) {
result = CARD_RESULT_BROKEN;
goto error;
}
result = __CARDEraseSector(chan, card->sectorSize * (u32)fileInfo->iBlock, EraseCallback);
}
if (result < 0) {
goto error;
}
return;
error:
callback = card->apiCallback;
card->apiCallback = 0;
__CARDPutControlBlock(card, result);
callback(chan, result);
}
#pragma pop
/* 80358A84-80358B34 3533C4 00B0+00 2/2 0/0 0/0 .text EraseCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void EraseCallback(s32 chan, s32 result) {
nofralloc
#include "asm/dolphin/card/CARDWrite/EraseCallback.s"
static void EraseCallback(s32 chan, s32 result) {
CARDControl* card;
CARDCallback callback;
CARDFileInfo* fileInfo;
card = &__CARDBlock[chan];
if (result < 0) {
goto error;
}
fileInfo = card->fileInfo;
result = __CARDWrite(chan, card->sectorSize * (u32)fileInfo->iBlock, card->sectorSize,
card->buffer, WriteCallback);
if (result < 0) {
goto error;
}
return;
error:
callback = card->apiCallback;
card->apiCallback = 0;
__CARDPutControlBlock(card, result);
callback(chan, result);
}
#pragma pop
/* 80358B34-80358C48 353474 0114+00 1/1 0/0 0/0 .text CARDWriteAsync */
s32 CARDWriteAsync(CARDFileInfo* fileInfo, const void* buf, s32 length, s32 offset,
+7 -3
View File
@@ -34,12 +34,15 @@ LIBCARD_A_O_FILES := \
$(BUILD_DIR)/libs/dolphin/card/CARDStat.o \
$(BUILD_DIR)/libs/dolphin/card/CARDNet.o \
LIBCARD_A_CFLAGS := \
NO_INLINE_FILES = libs/dolphin/card/CARDOpen.c
LIBCARD_A_CFLAGS = \
-Cpp_exceptions off \
-proc gekko \
-fp hard \
-nodefaults \
-str reuse \
$(if $(filter $(NO_INLINE_FILES), $<),,-inline auto) \
-RTTI off \
-maxerrors 5 \
-enum int $(INCLUDES) \
@@ -61,10 +64,11 @@ $(BUILD_DIR)/libs/dolphin/card/%.o: libs/dolphin/card/%.c $(BUILD_DIR)/libs/dolp
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBCARD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(FRANK_CC) $(LIBCARD_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBCARD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
ifndef DISABLE_DEPS
LIBCARD_A_D_FILES := $(LIBCARD_A_O_FILES:.o=.d)
+1 -1
View File
@@ -35,7 +35,7 @@ $(BUILD_DIR)/libs/dolphin/db/%.o: libs/dolphin/db/%.c $(BUILD_DIR)/libs/dolphin/
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBDB_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBDB_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
+1 -1
View File
@@ -39,7 +39,7 @@ $(BUILD_DIR)/libs/dolphin/dsp/%.o: libs/dolphin/dsp/%.c $(BUILD_DIR)/libs/dolphi
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBDSP_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBDSP_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
+4 -2
View File
@@ -28,6 +28,7 @@ LIBDVD_A_CFLAGS := \
-fp hard \
-nodefaults \
-str reuse \
-inline auto \
-RTTI off \
-maxerrors 5 \
-enum int $(INCLUDES) \
@@ -49,10 +50,11 @@ $(BUILD_DIR)/libs/dolphin/dvd/%.o: libs/dolphin/dvd/%.c $(BUILD_DIR)/libs/dolphi
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBDVD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(FRANK_CC) $(LIBDVD_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBDVD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
ifndef DISABLE_DEPS
LIBDVD_A_D_FILES := $(LIBDVD_A_O_FILES:.o=.d)
+370 -194
View File
@@ -4,6 +4,7 @@
//
#include "dolphin/dvd/dvd.h"
#include "dolphin/dvd/dvdlow.h"
#include "MSL_C/MSL_Common/Src/mem.h"
#include "MSL_C/MSL_Common/Src/string.h"
#include "dol2asm.h"
@@ -64,7 +65,7 @@ void DVDLowRequestAudioStatus();
void DVDLowAudioBufferConfig();
void DVDLowReset();
void DVDLowBreak();
void DVDLowClearCallback();
DVDLowCallback DVDLowClearCallback();
BOOL __DVDLowTestAlarm(OSAlarm* alarm);
void __DVDFSInit();
void __DVDClearWaitingQueue();
@@ -86,7 +87,7 @@ extern OSThreadQueue __DVDThreadQueue;
static void defaultOptionalCommandChecker() {}
/* 804509E8-804509EC -00001 0004+00 1/1 0/0 0/0 .sdata __DVDVersion */
SECTION_SDATA static char* __DVDVersion = "<< Dolphin SDK - DVD\trelease build: Apr 5 2004 04:14:51 (0x2301) >>";
static char* __DVDVersion = "<< Dolphin SDK - DVD\trelease build: Apr 5 2004 04:14:51 (0x2301) >>";
/* 80451778-8045177C 000C78 0004+00 24/24 0/0 0/0 .sbss executing */
static DVDCommandBlock* executing;
@@ -173,34 +174,33 @@ void DVDInit(void) {
}
/* ############################################################################################## */
/* 803D1574-803D15A8 02E694 0034+00 2/2 0/0 0/0 .data @24 */
SECTION_DATA static char lit_24[] = "DVDChangeDisk(): FST in the new disc is too big. ";
/* 8044C900-8044C920 079620 0020+00 8/8 0/0 0/0 .bss BB2 */
static DVDBB2 BB2 ALIGN_DECL(32);
/* 804509EC-804509F0 00046C 0004+00 6/6 0/0 0/0 .sdata autoInvalidation */
SECTION_SDATA static u32 autoInvalidation = 0x00000001;
static BOOL autoInvalidation = TRUE;
/* 804509F0-804509F4 -00001 0004+00 1/1 0/0 0/0 .sdata checkOptionalCommand */
SECTION_SDATA static DVDOptionalCommandChecker checkOptionalCommand = defaultOptionalCommandChecker;
static DVDOptionalCommandChecker checkOptionalCommand = defaultOptionalCommandChecker;
/* 804509F4-804509FC 000474 0006+02 2/2 0/0 0/0 .sdata @23 */
SECTION_SDATA static char lit_23[] = "dvd.c";
typedef void (*stateFunc)(DVDCommandBlock* block);
/* 804517C0-804517C8 000CC0 0004+04 6/6 0/0 0/0 .sbss LastState */
/* 804517C0-804517C8 000CC0 0004+04 6/6 0/0 0/0 .sbss "dvd.c" LastState */
static stateFunc LastState;
/* 803491C8-8034925C 343B08 0094+00 1/1 0/0 0/0 .text stateReadingFST */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void stateReadingFST(void) {
nofralloc
#include "asm/dolphin/dvd/dvd/stateReadingFST.s"
void stateReadingFST() {
LastState = (stateFunc)stateReadingFST;
if (bootInfo->fst_max_length < BB2.FSTLength) {
OSPanic("dvd.c", 661, "DVDChangeDisk(): FST in the new disc is too big. ");
}
DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition,
cbForStateReadingFST);
}
#pragma pop
/* ############################################################################################## */
/* 8044C920-8044C940 079640 0020+00 2/3 0/0 0/0 .bss CurrDiskID */
@@ -235,6 +235,11 @@ static void cbForStateReadingFST(u32 intType) {
}
}
inline static void stateError(u32 error) {
__DVDStoreErrorCode(error);
DVDLowStopMotor(cbForStateError);
}
/* 803492DC-80349388 343C1C 00AC+00 12/12 0/0 0/0 .text cbForStateError */
static void cbForStateError(u32 intType) {
DVDCommandBlock* finished;
@@ -264,7 +269,7 @@ static void cbForStateError(u32 intType) {
}
/* 80349388-803493BC 343CC8 0034+00 2/2 0/0 0/0 .text stateTimeout */
static void stateTimeout(void) {
static inline void stateTimeout(void) {
__DVDStoreErrorCode(0x1234568);
DVDReset();
cbForStateError(0);
@@ -344,8 +349,7 @@ static void cbForStateGettingError(u32 intType) {
}
if (intType & 2) {
__DVDStoreErrorCode(0x1234567);
DVDLowStopMotor(cbForStateError);
stateError(0x1234567);
return;
}
@@ -355,8 +359,7 @@ static void cbForStateGettingError(u32 intType) {
errorCategory = CategorizeError(error);
if (errorCategory == 1) {
__DVDStoreErrorCode(error);
DVDLowStopMotor(cbForStateError);
stateError(error);
return;
}
@@ -404,8 +407,7 @@ static void cbForStateGettingError(u32 intType) {
stateMotorStopped();
return;
} else {
__DVDStoreErrorCode(0x1234567);
DVDLowStopMotor(cbForStateError);
stateError(0x1234567);
return;
}
}
@@ -437,13 +439,11 @@ static void cbForUnrecoveredErrorRetry(u32 intType) {
}
if (intType & 2) {
__DVDStoreErrorCode(0x1234567);
DVDLowStopMotor(cbForStateError);
stateError(0x1234567);
return;
}
__DVDStoreErrorCode(__DIRegs[8]);
DVDLowStopMotor(cbForStateError);
stateError(__DIRegs[8]);
}
/* 803497D8-80349800 344118 0028+00 2/2 0/0 0/0 .text stateGoToRetry */
@@ -461,8 +461,7 @@ static void cbForStateGoToRetry(u32 intType) {
}
if (intType & 2) {
__DVDStoreErrorCode(0x1234567);
DVDLowStopMotor(cbForStateError);
stateError(0x1234567);
return;
}
@@ -549,8 +548,7 @@ static void cbForStateCheckID1(u32 intType) {
}
if (intType & 2) {
__DVDStoreErrorCode(0x1234567);
DVDLowStopMotor(cbForStateError);
stateError(0x1234567);
return;
}
@@ -563,14 +561,29 @@ static void cbForStateCheckID1(u32 intType) {
}
/* 80349C24-80349CFC 344564 00D8+00 1/1 0/0 0/0 .text cbForStateCheckID2 */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void cbForStateCheckID2(u32 intType) {
nofralloc
#include "asm/dolphin/dvd/dvd/cbForStateCheckID2.s"
static void cbForStateCheckID2(u32 intType) {
if (intType == 16) {
stateTimeout();
return;
}
if (intType & 1) {
NumInternalRetry = 0;
LastState = (stateFunc)stateReadingFST;
if (bootInfo->fst_max_length < BB2.FSTLength) {
OSPanic("dvd.c", 661, "DVDChangeDisk(): FST in the new disc is too big. ");
}
DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition,
cbForStateReadingFST);
} else {
stateGettingError();
}
}
#pragma pop
/* 80349CFC-80349DEC 34463C 00F0+00 1/1 0/0 0/0 .text cbForStateCheckID3 */
static void cbForStateCheckID3(u32 intType) {
@@ -655,7 +668,7 @@ static void cbForStateCoverClosed(u32 intType) {
}
/* 80349F98-80349FC0 3448D8 0028+00 3/3 0/0 0/0 .text stateMotorStopped */
static void stateMotorStopped(void) {
static inline void stateMotorStopped(void) {
DVDLowWaitCoverClose(cbForStateMotorStopped);
}
@@ -667,7 +680,6 @@ static void cbForStateMotorStopped(u32 intType) {
}
/* 8034A0AC-8034A394 3449EC 02E8+00 18/18 0/0 0/0 .text stateReady */
#ifdef NONMATCHING
static void stateReady() {
DVDCommandBlock* finished;
@@ -699,51 +711,38 @@ static void stateReady() {
if (ResumeFromHere) {
switch (ResumeFromHere) {
case 1:
executing->state = 1;
stateCoverClosed();
break;
case 2:
executing->state = 11;
stateMotorStopped();
break;
case 3:
executing->state = 4;
stateMotorStopped();
break;
case 4:
executing->state = 5;
stateMotorStopped();
break;
case 7:
case 6:
case 1:
executing->state = 3;
stateCoverClosed();
break;
case 5:
executing->state = -1;
stateError(CancelLastError);
break;
}
ResumeFromHere = 0;
} else {
executing->state = 1;
stateBusy(executing);
if (MotorState == 0) {
executing->state = 1;
stateBusy(executing);
} else {
stateCoverClosed();
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void stateReady(void) {
nofralloc
#include "asm/dolphin/dvd/dvd/stateReady.s"
}
#pragma pop
#endif
/* 8034A394-8034A6D4 344CD4 0340+00 4/3 0/0 0/0 .text stateBusy */
#define MIN(a, b) (((a) > (b)) ? (b) : (a))
@@ -844,15 +843,193 @@ static u32 ImmCommand[] = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF};
/* 804509FC-80450A00 00047C 0004+00 1/1 0/0 0/0 .sdata DmaCommand */
SECTION_SDATA static u32 DmaCommand[] = {0xFFFFFFFF};
/* 8034A6D4-8034AD2C 345014 0658+00 1/1 0/0 0/0 .text cbForStateBusy */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void cbForStateBusy(u32 intType) {
nofralloc
#include "asm/dolphin/dvd/dvd/cbForStateBusy.s"
inline static BOOL IsImmCommandWithResult(u32 command) {
u32 i;
if (command == 9 || command == 10 || command == 11 || command == 12) {
return TRUE;
}
for (i = 0; i < sizeof(ImmCommand) / sizeof(ImmCommand[0]); i++) {
if (command == ImmCommand[i])
return TRUE;
}
return FALSE;
}
inline static BOOL IsDmaCommand(u32 command) {
u32 i;
if (command == 1 || command == 4 || command == 5 || command == 14)
return TRUE;
for (i = 0; i < sizeof(DmaCommand) / sizeof(DmaCommand[0]); i++) {
if (command == DmaCommand[i])
return TRUE;
}
return FALSE;
}
/* 8034A6D4-8034AD2C 345014 0658+00 1/1 0/0 0/0 .text cbForStateBusy */
static void cbForStateBusy(u32 intType) {
DVDCommandBlock* finished;
if (intType == 16) {
stateTimeout();
return;
}
if ((CurrCommand == 3) || (CurrCommand == 15)) {
if (intType & 2) {
stateError(0x1234567);
return;
}
NumInternalRetry = 0;
if (CurrCommand == 15) {
ResetRequired = TRUE;
}
if (CheckCancel(7)) {
return;
}
executing->state = 7;
stateMotorStopped();
return;
}
if (IsDmaCommand(CurrCommand)) {
executing->transferred_size += executing->current_transfer_size - __DIRegs[6];
}
if (intType & 8) {
Canceling = FALSE;
finished = executing;
executing = &DummyCommandBlock;
finished->state = 10;
if (finished->callback)
(*finished->callback)(-3, finished);
if (CancelCallback)
(CancelCallback)(0, finished);
stateReady();
return;
}
if (intType & 1) {
NumInternalRetry = 0;
if (CurrCommand == 16) {
MotorState = 1;
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(*finished->callback)(0, finished);
}
stateReady();
return;
}
if (CheckCancel(0))
return;
if (IsDmaCommand(CurrCommand)) {
if (executing->transferred_size != executing->length) {
stateBusy(executing);
return;
}
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)((s32)finished->transferred_size, finished);
}
stateReady();
} else if (IsImmCommandWithResult(CurrCommand)) {
s32 result;
if ((CurrCommand == 11) || (CurrCommand == 10)) {
result = (s32)(__DIRegs[8] << 2);
} else {
result = (s32)__DIRegs[8];
}
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)(result, finished);
}
stateReady();
} else if (CurrCommand == 6) {
if (executing->current_transfer_size == 0) {
if (__DIRegs[8] & 1) {
finished = executing;
executing = &DummyCommandBlock;
finished->state = 9;
if (finished->callback) {
(finished->callback)(-2, finished);
}
stateReady();
} else {
AutoFinishing = FALSE;
executing->current_transfer_size = 1;
DVDLowAudioStream(0, executing->length, executing->offset, cbForStateBusy);
}
} else {
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)(0, finished);
}
stateReady();
}
} else {
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)(0, finished);
}
stateReady();
}
} else {
if (CurrCommand == 14) {
stateError(0x01234567);
return;
}
if ((CurrCommand == 1 || CurrCommand == 4 || CurrCommand == 5 || CurrCommand == 14) &&
(executing->transferred_size == executing->length)) {
if (CheckCancel(0)) {
return;
}
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)((s32)finished->transferred_size, finished);
}
stateReady();
return;
}
stateGettingError();
}
}
#pragma pop
static inline BOOL issueCommand(s32 prio, DVDCommandBlock* block) {
BOOL level;
@@ -878,7 +1055,6 @@ static inline BOOL issueCommand(s32 prio, DVDCommandBlock* block) {
}
/* 8034AD2C-8034AE08 34566C 00DC+00 0/0 5/5 0/0 .text DVDReadAbsAsyncPrio */
#ifdef NONMATCHING
BOOL DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 offset,
DVDCBCallback callback, s32 prio) {
BOOL idle;
@@ -892,58 +1068,59 @@ BOOL DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 off
idle = issueCommand(prio, block);
return idle;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 offset,
DVDCBCallback callback, s32 prio) {
nofralloc
#include "asm/dolphin/dvd/dvd/DVDReadAbsAsyncPrio.s"
}
#pragma pop
#endif
/* 8034AE08-8034AED8 345748 00D0+00 0/0 1/1 0/0 .text DVDReadAbsAsyncForBS */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL DVDReadAbsAsyncForBS(DVDCommandBlock* block, void* addr, s32 length, s32 offset,
DVDCBCallback callback) {
nofralloc
#include "asm/dolphin/dvd/dvd/DVDReadAbsAsyncForBS.s"
BOOL DVDReadAbsAsyncForBS(DVDCommandBlock* block, void* addr, s32 length, s32 offset,
DVDCBCallback callback) {
BOOL idle;
block->command = 4;
block->buffer = addr;
block->length = length;
block->offset = offset;
block->transferred_size = 0;
block->callback = callback;
idle = issueCommand(2, block);
return idle;
}
#pragma pop
/* 8034AED8-8034AFAC 345818 00D4+00 0/0 2/2 0/0 .text DVDReadDiskID */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL DVDReadDiskID(DVDCommandBlock* block, DVDDiskID* diskID, DVDCBCallback callback) {
nofralloc
#include "asm/dolphin/dvd/dvd/DVDReadDiskID.s"
BOOL DVDReadDiskID(DVDCommandBlock* block, DVDDiskID* diskID, DVDCBCallback callback) {
BOOL idle;
block->command = 5;
block->buffer = diskID;
block->length = sizeof(DVDDiskID);
block->offset = 0;
block->transferred_size = 0;
block->callback = callback;
idle = issueCommand(2, block);
return idle;
}
#pragma pop
/* 8034AFAC-8034B068 3458EC 00BC+00 0/0 1/1 0/0 .text DVDCancelStreamAsync */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL DVDCancelStreamAsync(DVDCommandBlock* block, DVDCBCallback callback) {
nofralloc
#include "asm/dolphin/dvd/dvd/DVDCancelStreamAsync.s"
BOOL DVDCancelStreamAsync(DVDCommandBlock* block, DVDCBCallback callback) {
BOOL idle;
block->command = 7;
block->callback = callback;
idle = issueCommand(1, block);
return idle;
}
#pragma pop
/* 8034B068-8034B138 3459A8 00D0+00 0/0 1/1 0/0 .text DVDInquiryAsync */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL DVDInquiryAsync(DVDCommandBlock* block, DVDDriveInfo* info, DVDCBCallback callback) {
nofralloc
#include "asm/dolphin/dvd/dvd/DVDInquiryAsync.s"
BOOL DVDInquiryAsync(DVDCommandBlock* block, DVDDriveInfo* info, DVDCBCallback callback) {
BOOL idle;
block->command = 14;
block->buffer = (void*)info;
block->length = sizeof(DVDDriveInfo);
block->transferred_size = 0;
block->callback = callback;
idle = issueCommand(2, block);
return idle;
}
#pragma pop
/* 8034B138-8034B17C 345A78 0044+00 15/15 2/2 0/0 .text DVDReset */
void DVDReset(void) {
@@ -955,8 +1132,6 @@ void DVDReset(void) {
}
/* 8034B17C-8034B1C8 345ABC 004C+00 0/0 6/6 0/0 .text DVDGetCommandBlockStatus */
// needs compiler epilogue patch
#ifdef NONMATCHING
s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) {
BOOL enabled;
s32 retVal;
@@ -973,26 +1148,34 @@ s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) {
return retVal;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) {
nofralloc
#include "asm/dolphin/dvd/dvd/DVDGetCommandBlockStatus.s"
}
#pragma pop
#endif
/* 8034B1C8-8034B274 345B08 00AC+00 0/0 7/7 0/0 .text DVDGetDriveStatus */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 DVDGetDriveStatus(void) {
nofralloc
#include "asm/dolphin/dvd/dvd/DVDGetDriveStatus.s"
s32 DVDGetDriveStatus() {
BOOL enabled;
s32 retVal;
DVDCommandBlock* cmd;
enabled = OSDisableInterrupts();
if (FatalErrorFlag) {
retVal = -1;
} else if (PausingFlag) {
retVal = 8;
} else {
cmd = executing;
if (cmd == (DVDCommandBlock*)NULL) {
retVal = 0;
} else if (cmd == &DummyCommandBlock) {
retVal = 0;
} else {
retVal = DVDGetCommandBlockStatus(executing);
}
}
OSRestoreInterrupts(enabled);
return retVal;
}
#pragma pop
/* 8034B274-8034B284 345BB4 0010+00 0/0 1/1 0/0 .text DVDSetAutoInvalidation */
BOOL DVDSetAutoInvalidation(BOOL autoInval) {
@@ -1016,33 +1199,18 @@ void DVDResume(void) {
/* ############################################################################################## */
/* 803D15F8-803D163C 02E718 0041+03 0/0 0/0 0/0 .data @789 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_789[] =
"DVDChangeDiskAsync(): You can't specify NULL to company name. \n";
#pragma pop
/* 803D163C-803D1670 -00001 0034+00 1/1 0/0 0/0 .data @956 */
SECTION_DATA static void* lit_956[13] = {
(void*)(((char*)DVDCancelAsync) + 0x50), (void*)(((char*)DVDCancelAsync) + 0x50),
(void*)(((char*)DVDCancelAsync) + 0x70), (void*)(((char*)DVDCancelAsync) + 0xB4),
(void*)(((char*)DVDCancelAsync) + 0x100), (void*)(((char*)DVDCancelAsync) + 0x17C),
(void*)(((char*)DVDCancelAsync) + 0x17C), (void*)(((char*)DVDCancelAsync) + 0x17C),
(void*)(((char*)DVDCancelAsync) + 0x17C), (void*)(((char*)DVDCancelAsync) + 0x254),
(void*)(((char*)DVDCancelAsync) + 0x254), (void*)(((char*)DVDCancelAsync) + 0x50),
(void*)(((char*)DVDCancelAsync) + 0x17C),
};
static char string_DVDChangeDiskAsyncMsg[] = "DVDChangeDiskAsync(): You can't specify NULL to company name. \n";
/* 8034B2D4-8034B550 345C14 027C+00 3/2 0/0 0/0 .text DVDCancelAsync */
// needs compiler epilogue patch
#ifdef NONMATCHING
BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) {
BOOL enabled;
DVDLowCallback old;
s32 state;
enabled = OSDisableInterrupts();
switch (block->state) {
state = block->state;
switch (state) {
case -1:
case 0:
case 10:
@@ -1131,16 +1299,6 @@ BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) {
OSRestoreInterrupts(enabled);
return TRUE;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) {
nofralloc
#include "asm/dolphin/dvd/dvd/DVDCancelAsync.s"
}
#pragma pop
#endif
/* 8034B550-8034B5FC 345E90 00AC+00 0/0 1/1 1/1 .text DVDCancel */
s32 DVDCancel(DVDCommandBlock* block) {
@@ -1190,28 +1348,8 @@ DVDDiskID* DVDGetCurrentDiskID(void) {
}
/* ############################################################################################## */
/* 803D1670-803D16A8 -00001 0034+04 1/1 0/0 0/0 .data @1060 */
SECTION_DATA static void* lit_1060[13 + 1 /* padding */] = {
(void*)(((char*)DVDCheckDisk) + 0x98),
(void*)(((char*)DVDCheckDisk) + 0xA0),
(void*)(((char*)DVDCheckDisk) + 0x90),
(void*)(((char*)DVDCheckDisk) + 0x90),
(void*)(((char*)DVDCheckDisk) + 0x98),
(void*)(((char*)DVDCheckDisk) + 0x98),
(void*)(((char*)DVDCheckDisk) + 0x98),
(void*)(((char*)DVDCheckDisk) + 0x98),
(void*)(((char*)DVDCheckDisk) + 0x98),
(void*)(((char*)DVDCheckDisk) + 0xA0),
(void*)(((char*)DVDCheckDisk) + 0x90),
(void*)(((char*)DVDCheckDisk) + 0x90),
(void*)(((char*)DVDCheckDisk) + 0x98),
/* padding */
NULL,
};
/* 8034B628-8034B720 345F68 00F8+00 1/0 4/4 0/0 .text DVDCheckDisk */
// needs compiler epilogue patch
#ifdef NONMATCHING
BOOL DVDCheckDisk(void) {
BOOL enabled;
s32 retVal;
@@ -1257,8 +1395,10 @@ BOOL DVDCheckDisk(void) {
coverReg = __DIRegs[1];
if (((coverReg >> 2) & 1) || (coverReg & 1)) {
retVal = FALSE;
} else if (ResumeFromHere) {
retVal = 0;
} else {
retVal = TRUE;
retVal = 1;
}
}
@@ -1266,26 +1406,62 @@ BOOL DVDCheckDisk(void) {
return retVal;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL DVDCheckDisk(void) {
nofralloc
#include "asm/dolphin/dvd/dvd/DVDCheckDisk.s"
inline void DVDPause(void) {
BOOL level;
level = OSDisableInterrupts();
PauseFlag = TRUE;
if (executing == (DVDCommandBlock*)NULL) {
PausingFlag = TRUE;
}
OSRestoreInterrupts(level);
}
inline BOOL DVDCancelAllAsync(DVDCBCallback callback) {
BOOL enabled;
DVDCommandBlock* p;
BOOL retVal;
enabled = OSDisableInterrupts();
DVDPause();
while ((p = __DVDPopWaitingQueue()) != 0) {
DVDCancelAsync(p, NULL);
}
if (executing)
retVal = DVDCancelAsync(executing, callback);
else {
retVal = TRUE;
if (callback)
(*callback)(0, NULL);
}
DVDResume();
OSRestoreInterrupts(enabled);
return retVal;
}
#pragma pop
#endif
/* 8034B720-8034B83C 346060 011C+00 0/0 1/1 0/0 .text __DVDPrepareResetAsync */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __DVDPrepareResetAsync(DVDCBCallback callback) {
nofralloc
#include "asm/dolphin/dvd/dvd/__DVDPrepareResetAsync.s"
void __DVDPrepareResetAsync(DVDCBCallback callback) {
BOOL enabled;
enabled = OSDisableInterrupts();
__DVDClearWaitingQueue();
if (Canceling) {
CancelCallback = callback;
} else {
if (executing) {
executing->callback = NULL;
}
DVDCancelAllAsync(callback);
}
OSRestoreInterrupts(enabled);
}
#pragma pop
/* 8034B83C-8034B874 34617C 0038+00 0/0 1/1 0/0 .text __DVDTestAlarm */
BOOL __DVDTestAlarm(OSAlarm* alarm) {
+10 -10
View File
@@ -29,7 +29,7 @@ void DVDLowRequestAudioStatus();
void DVDLowAudioBufferConfig();
void DVDLowReset();
void DVDLowBreak();
void DVDLowClearCallback();
DVDLowCallback DVDLowClearCallback();
void __DVDLowSetWAType();
void __DVDLowTestAlarm();
@@ -64,7 +64,7 @@ static u8 StopAtNextInt[4];
static u8 LastLength[4];
/* 80451718-8045171C 000C18 0004+00 13/13 0/0 0/0 .sbss Callback */
static u8 Callback[4];
static DVDLowCallback Callback;
/* 8045171C-80451720 000C1C 0004+00 1/1 0/0 0/0 .sbss ResetCoverCallback */
static u8 ResetCoverCallback[4];
@@ -79,7 +79,7 @@ static u8 data_80451724[4];
static u8 ResetOccurred[4];
/* 8045172C-80451730 000C2C 0004+00 3/3 0/0 0/0 .sbss WaitingCoverClose */
static u8 WaitingCoverClose[4];
static DVDLowCallback WaitingCoverClose;
/* 80451730-80451734 000C30 0004+00 2/2 0/0 0/0 .sbss Breaking */
static u8 Breaking[4];
@@ -321,14 +321,14 @@ asm void DVDLowBreak() {
#pragma pop
/* 80348458-80348474 342D98 001C+00 0/0 1/1 0/0 .text DVDLowClearCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDLowClearCallback() {
nofralloc
#include "asm/dolphin/dvd/dvdlow/DVDLowClearCallback.s"
DVDLowCallback DVDLowClearCallback() {
DVDLowCallback rv;
__DIRegs[1] = 0;
rv = Callback;
WaitingCoverClose = NULL;
Callback = NULL;
return rv;
}
#pragma pop
/* 80348474-803484B8 342DB4 0044+00 1/1 0/0 0/0 .text __DVDLowSetWAType */
#pragma push
+1 -1
View File
@@ -37,7 +37,7 @@ $(BUILD_DIR)/libs/dolphin/exi/%.o: libs/dolphin/exi/%.c $(BUILD_DIR)/libs/dolphi
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBEXI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBEXI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
+1 -1
View File
@@ -37,7 +37,7 @@ $(BUILD_DIR)/libs/dolphin/gd/%.o: libs/dolphin/gd/%.c $(BUILD_DIR)/libs/dolphin/
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBGD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBGD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
+1 -1
View File
@@ -53,7 +53,7 @@ $(BUILD_DIR)/libs/dolphin/gx/%.o: libs/dolphin/gx/%.c $(BUILD_DIR)/libs/dolphin/
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBGX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(CFLAGS) $(LIBGX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
+1 -1
View File
@@ -35,7 +35,7 @@ $(BUILD_DIR)/libs/dolphin/mtx/%.o: libs/dolphin/mtx/%.c $(BUILD_DIR)/libs/dolphi
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBMTX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(CFLAGS) $(LIBMTX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
+1 -1
View File
@@ -79,7 +79,7 @@ $(BUILD_DIR)/libs/dolphin/os/%.o: libs/dolphin/os/%.c $(BUILD_DIR)/libs/dolphin/
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBOS_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBOS_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
+1 -1
View File
@@ -832,6 +832,6 @@ u32 __OSGetDIConfig(void) {
}
/* 8033A874-8033A8A0 3351B4 002C+00 1/1 11/11 0/0 .text OSRegisterVersion */
void OSRegisterVersion(char* version) {
void OSRegisterVersion(const char* version) {
OSReport("%s\n", version);
}

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